1. char __thiscall sub_69C890(void *this, int a2)
  2. {
  3. char result; // al@1
  4. int v3; // ebx@1
  5. void *v4; // edi@1
  6. unsigned int v5; // esi@1
  7. unsigned int v6; // ST00_4@1
  8. int v7; // [sp+Ch] [bp-8h]@1
  9. char v8; // [sp+10h] [bp-4h]@1
  10. char v9; // [sp+11h] [bp-3h]@1
  11. v3 = a2;
  12. v4 = this;
  13. CDataStore__PutInt32((OutData *)a2, 4135);
  14. LOBYTE(a2) = 0;
  15. v6 = *((_DWORD *)v4 + 5);
  16. v7 = v3;
  17. v8 = 0;
  18. v9 = 0;
  19. WriteLengthBits_24(&v7, v6, a2);
  20. result = sub_66ADB0((OutData *)&v7);
  21. v5 = 0;
  22. if ( *((_DWORD *)v4 + 5) )
  23. {
  24. do
  25. result = (unsigned int)CDataStore__PutInt32((OutData *)v3, *(_DWORD *)(*((_DWORD *)v4 + 6) + 4 * v5++));
  26. while ( v5 < *((_DWORD *)v4 + 5) );
  27. }
  28. return result;
  29. }