1. unsigned int __thiscall sub_710880(CDataStore *this, int a2)
  2. {
  3. char v3; // cl@1
  4. CDataStore *v4; // ecx@2
  5. unsigned int v5; // eax@2
  6. unsigned int v6; // esi@3
  7. CDataStore *v7; // ecx@3
  8. int v9; // [sp+Ah] [bp-6h]@0
  9. unsigned __int8 v10; // [sp+Eh] [bp-2h]@3
  10. unsigned __int8 v11; // [sp+Fh] [bp-1h]@2
  11. v3 = BYTE1(this->m_buffer);
  12. if ( v3 == 8 )
  13. {
  14. v11 = 0;
  15. CDataStore::GetInt8(this, (int)&v11);
  16. v5 = v11;
  17. }
  18. else
  19. {
  20. v6 = (unsigned int)LOBYTE(this->m_buffer) >> v3;
  21. v10 = 0;
  22. CDataStore::GetInt8(this, (int)&v10);
  23. v5 = (v6 << BYTE1(this->m_buffer)) | ((unsigned int)v10 >> (8 - BYTE1(this->m_buffer)));
  24. LOBYTE(this->m_buffer) = v10 << BYTE1(this->m_buffer);
  25. }
  26. LOBYTE(v9) = 0;
  27. return 8 * v5 | sub_70A470(this, v9);
  28. }
  29. unsigned int __thiscall sub_70A470(CDataStore *this, int a2)
  30. {
  31. unsigned __int8 v3; // cl@1
  32. unsigned __int8 v4; // dl@2
  33. unsigned int result; // eax@2
  34. unsigned int v6; // edi@5
  35. unsigned __int8 v7; // bl@5
  36. char v8; // dl@5
  37. unsigned int v9; // eax@5
  38. char v10; // cl@5
  39. unsigned __int8 v11; // [sp+7h] [bp-1h]@3
  40. v3 = BYTE1(this->m_buffer);
  41. if ( v3 > 5u )
  42. {
  43. v11 = 0;
  44. if ( v3 == 8 )
  45. {
  46. CDataStore::GetInt8(this, (int)&v11);
  47. result = (unsigned int)v11 >> 5;
  48. LOBYTE(this->m_buffer) = 8 * v11;
  49. BYTE1(this->m_buffer) = 3;
  50. }
  51. else
  52. {
  53. v6 = (unsigned int)LOBYTE(this->m_buffer) >> v3;
  54. CDataStore::GetInt8(this, (int)&v11);
  55. v7 = v11;
  56. v8 = BYTE1(this->m_buffer) - 5;
  57. v9 = (unsigned int)v11 >> (8 - v8);
  58. v10 = BYTE1(this->m_buffer) - 5;
  59. BYTE1(this->m_buffer) = v8;
  60. result = (v6 << v10) | v9;
  61. LOBYTE(this->m_buffer) = v7 << v10;
  62. }
  63. }
  64. else
  65. {
  66. v4 = LOBYTE(this->m_buffer);
  67. result = (unsigned int)v4 >> 5;
  68. LOBYTE(this->m_buffer) = 8 * v4;
  69. BYTE1(this->m_buffer) = v3 + 3;
  70. }
  71. return result;
  72. }