int __usercall sub_5C81E0(CDataStore *a1, int _EDI, int _ESI) { int result; // eax@1 int value; // [sp+18h] [bp-4h]@1 int v5; // [sp+Ch] [bp-10h]@1 signed int v6; // [sp+10h] [bp-Ch]@1 signed int v8; // [sp+14h] [bp-8h]@1 CDataStore_ReadInt32(a1, &value); v5 = (value & 0x7FF) << 21 >> 21; __asm { fild [ebp+var_10] fld ds:dbl_8901E8 } v6 = (signed int)((((unsigned int)value >> 11) & 0x7FF) << 21) >> 21; __asm { fmul st(1), st fxch st(1) fstp [ebp+var_1C] } v8 = (signed int)((unsigned int)value >> 22 << 22) >> 22; __asm { fild [ebp+var_C] } result = _ESI; __asm { fmul st, st(1) fstp [ebp+var_18] fimul [ebp+var_8] fstp [ebp+var_14] fld dword ptr [edi] fsub [ebp+var_1C] fstp dword ptr [esi] fld dword ptr [edi+4] fsub [ebp+var_18] fstp dword ptr [esi+4] fld dword ptr [edi+8] fsub [ebp+var_14] fstp dword ptr [esi+8] } return result; }