.text:
00411380
55
push ebp
.text:
00411381
8B
EC mov ebp, esp
.text:
00411383
81
EC E4
00
00
00
sub esp,
0E4h
开辟栈空间
.text:
00411389
53
push ebx
.text:
0041138A
56
push esi
.text:
0041138B
57
push edi
.text:
0041138C
8D
BD
1C
FF FF FF lea edi,
[ebp
+
var_E4]
.text:
00411392
B9
39
00
00
00
mov ecx,
39h
.text:
00411397
B8 CC CC CC CC mov eax,
0CCCCCCCCh
.text:
0041139C
F3 AB rep stosd
保存异变寄存器以及将栈空间填充为C
.text:
0041139E
C7
45
F8
14
00
00
00
mov [ebp
+
var_8],
14h
.text:
004113A5
C7
45
EC
1E
00
00
00
mov [ebp
+
var_14],
1Eh
.text:
004113AC
8B
45
EC mov eax,
[ebp
+
var_14]
.text:
004113AF
2B
45
F8 sub eax,
[ebp
+
var_8]
.text:
004113B2
89
45
E0 mov [ebp
+
var_20],
eax
.text:
004113B5
8B
F4 mov esi, esp
.text:
004113B7
8B
45
E0 mov eax,
[ebp
+
var_20]
.text:
004113BA
50
push eax
.text:
004113BB
68
3C
57
41
00
push offset
Format
;
"%d\r\n"
.text:
004113C0
FF
15
B0
82
41
00
call ds:printf
栈操作
.text:
004113C0
.text:
004113C6
83
C4
08
add esp,
8
.text:
004113C9
3B
F4
cmp
esi, esp
.text:
004113CB
E8
5C
FD FF FF call
栈内操作解释
二者相同,就只解释一种了。
j___RTC_CheckEsp
.text:
004113CB
.text:
004113D0
33
C0 xor eax, eax
.text:
004113D2
5F
pop edi
.text:
004113D3
5E
pop esi
.text:
004113D4
5B
pop ebx
.text:
004113D5
81
C4 E4
00
00
00
add esp,
0E4h
.text:
004113DB
3B
EC
cmp
ebp, esp
.text:
004113DD
E8
4A
FD FF FF call
j___RTC_CheckEsp
.text:
004113DD
.text:
004113E2
8B
E5 mov esp, ebp
.text:
004113E4
5D
pop ebp
.text:
004113E5
C3 retn
.text:
004113E5
恢复栈并返回