So i am trying to reverse the weapon structs for Combat Arms but i am encountering some problems... I am not sure about the value type of the members. Let's say i got this code:
Code:
374025EE . 8911 MOV DWORD PTR DS:[ECX],EDX
374025F0 . 83C1 04 ADD ECX,4
374025F3 . 83F8 0A CMP EAX,0A
374025F6 . 894424 18 MOV DWORD PTR SS:[ESP+18],EAX
374025FA . 894C24 34 MOV DWORD PTR SS:[ESP+34],ECX
374025FE .^0F8C 6CFFFFFF JL CSHell_2.37402570
37402604 . 8B86 FC020000 MOV EAX,DWORD PTR DS:[ESI+2FC]
3740260A . 50 PUSH EAX
3740260B . 68 ACD66F37 PUSH CSHell_2.376FD6AC ; ASCII "FireDelay"
37402610 . 53 PUSH EBX
37402611 . 8BCF MOV ECX,EDI
37402613 . E8 6820FEFF CALL CSHell_2.373E4680
37402618 . 33C9 XOR ECX,ECX
3740261A . 85C0 TEST EAX,EAX
3740261C . 0F9EC1 SETLE CL
3740261F . 83EC 08 SUB ESP,8
37402622 . 49 DEC ECX
I didn't see any commands for float values like FLD or FSTP, but i also didn't see any commands for integer commands...
This command is returning a float value:
Code:
37402625 . 898E FC020000 MOV DWORD PTR DS:[ESI+2FC],ECX
3740262B . D986 00030000 FLD DWORD PTR DS:[ESI+300]
37402631 . DD1C24 FSTP QWORD PTR SS:[ESP]
37402634 . 68 A0D66F37 PUSH CSHell_2.376FD6A0 ; ASCII "MovePenalty"
37402639 . 53 PUSH EBX
3740263A . 8BCF MOV ECX,EDI
3740263C . E8 3F23FEFF CALL CSHell_2.373E4980
So anyone explain me the value it is returning and why so?