[esp+4]是esp寄存器+4以后的值,因为有[],标示取某某内存的“内容”
MOV EAX,DWORD PTR SS:[ESP+4]
是去函数这个函数的第一个参数;
具体值在调用这个函数之前用push指令送入堆栈区域;
你会经常见到
MOV EAX,DWORD PTR SS:[ESP+X]
这样的值,一般都是取参数的;
看分号以后的注释:
0043EE30 |. 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4] ;取参数
0043EE34 |. 68 00F00000 PUSH 0F000;根据推算为下边0048E0EA 的第二个参数,这个放到下边的push ecx之前也是可以的
0043EE39 |. 50 PUSH EAX ;传送0043ECE0的第一个参数
0043EE3A |. E8 A1FEFFFF CALL San5原版.0043ECE0;调用0043ECE0函数取得阵型基础地址
0043EE3F |. 66:8B48 06 MOV CX,WORD PTR DS:[EAX+6];;取得标示阵型熟悉的2个字节
0043EE43 |. 83C4 04 ADD ESP,4;堆栈平衡需要
0043EE46 |. 51 PUSH ECX ;0048E0EA的第一个参数
0043EE47 |. E8 9EF20400 CALL San5原版.0048E0EA
0043EE4C |. 25 FFFF0000 AND EAX,0FFFF
0043EE51 |. 83C4 08 ADD ESP,8
0043EE54 |. 40 INC EAX
0043EE55 |. C3 RETN