Function at 0x1000ac74
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1006f94f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf8
mov dword [esp + 0xa0], edx
xor edx, edx
inc edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], edx
mov dword [esp + 8], 9
mov eax, dword [esp + 0xb8]
push ebx
mov dword [esp + 0xc], eax
xor ebx, ebx
cmp dword [esp + 0xc], ebx
push esi
push edi
mov byte [esp + 0x13], bl
je 0x1000acf5
cmp byte [esp + 0x13], bl
je 0x1000ad0f
push ebx
push 0x1c91
call dword [sym.imp.GDI32.dll_SetTextColor]
jmp 0x1000ad0c
cmp byte [esp + 0x13], bl
je 0x1000ad0f
push ebx
push 0x1a4a
push 0x2a9
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
xor edx, edx
inc edx
mov dword [esp + 0x14], 0x72226312
push 3
pop edi
cmp dword [esp + 0x14], ebx
je 0x1000ad7c
mov dword [esp + 0x14], ebx
jmp 0x1000ad70
mov dword [esp + 0xc], 0x576c5165
mov dword [esp + 0x3c], edx
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x1000ad4f
push 0x527
push 0xc1d
call dword [sym.imp.USER32.dll_GetWindowLongW]
xor edx, edx
inc edx
mov dword [esp + 0xc], 0xb
jmp 0x1000ad65
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe4
jle 0x1000ad59
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffeb
jge 0x1000ad26
jmp 0x1000ae71
mov dword [esp + 0xc], 0xb4ef66b1
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], edi
jg 0x1000ae40
jmp 0x1000ad97
xor edx, edx
inc edx
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x1c], ebx
jmp 0x1000adad
dec dword [esp + 0xc]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jle 0x1000ada5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0xbc]
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xbc], ecx
test ecx, ecx
jne 0x1000add5
mov esi, ebx
cmp dword [esp + 0x1c], ebx
je 0x1000add7
mov esi, edx
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
neg eax
sbb eax, eax
xor edx, edx
inc eax
sub ecx, eax
sub ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, ecx
mov eax, dword [esp + 0x1c]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp esi, ecx
setl al
xor ecx, ecx
imul eax, dword [esp + 0x1c]
cmp eax, 1
mov eax, dword [esp + 0x14]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x1c], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x1000ad94
mov dword [esp + 0xc], ebx
jmp 0x1000ae6b
mov dword [esp + 0x20], 1
dec dword [esp + 0x20]
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x1000ae67
push 0xe3
call dword [sym.imp.USER32.dll_PostQuitMessage]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jle 0x1000ae46
push 2
lea ecx, [esp + 0xa4]
call fcn.1000f401
mov dword [esp + 0x18], 0x39beb064
mov dword [esp + 0x18], ebx
jmp 0x1000aea3
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xa0]
mov dword [eax + ecx*4], 0xbca63185
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1000ae8d
mov dword [esp + 0x18], 1
cmp dword [esp + 0x18], ebx
jl 0x1000af5b
mov dword [esp + 0xc], 0x90a624cd
mov dword [esp + 0xc], 1
cmp dword [esp + 0xc], ebx
jl 0x1000af3c
mov dword [esp + 0x1c], 0x3921ded6
mov dword [esp + 0x3c], 0xb8cff26a
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x1c], ebx
jl 0x1000af36
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], 0xf4f23013
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
dec dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], 0x40271dbc
dec dword [esp + 0x1c]
jns 0x1000aef0
dec dword [esp + 0xc]
jns 0x1000aed2
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x1000af51
push 0x19a0
call dword [sym.imp.KERNEL32.dll_Sleep]
dec dword [esp + 0x18]
jns 0x1000aebc
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x1000af6c
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [esp + 0xa0], ebx
je 0x1000af97
push dword [esp + 0xa0]
call fcn.10055e77
pop ecx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
push dword [esp + 0x60]
movdqa xmm0, xmmword [0x10008a90]
lea eax, [esp + 0xe8]
push eax
mov dword [esp + 0x58], 0x8885
lea eax, [esp + 0xdc]
mov dword [esp + 0xb8], 0x815cbcef
lea ecx, [esp + 0x8c]
push eax
mov dword [esp + 0x48], 0x822cb3a3
mov dword [esp + 0x18], 0x5020f89b
mov dword [esp + 0x38], 0xffffffff
push ebx
movdqu xmmword [esp + 0xe4], xmm0
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
call fcn.10012921
mov dword [esp + 0x18], ebx
jmp 0x1000b022
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xcc], 0x5f70
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1000b00f
xor ecx, ecx
mov dword [esp + 0xc], ebx
inc ecx
jmp 0x1000b072
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], 7
mov dword [esp + 0x18], ebx
jmp 0x1000b057
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xf4], 0x77c8748a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x1000b044
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0xcc], ebx
jne 0x1000b078
dec dword [esp + 0x20]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jle 0x1000b032
mov ecx, dword [esp + 0x84]
push ecx
mov eax, dword [ecx]
neg eax
mov dword [ecx + 0xc], eax
call fcn.10055e77
pop ecx
mov dword [esp + 0x84], ebx
xor ecx, ecx
mov dword [esp + 0x88], ebx
inc ecx
mov dword [esp + 0x8c], ebx
push 0xfffffffffffffffe
pop eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], 0x8de6
mov dword [esp + 0x1c], 0x24a8c6a5
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0xc], ebx
jmp 0x1000b0de
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x78], 0xcd333563
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x1000b0ce
mov dword [esp + 0x1c], 0xffffffe7
cmp dword [esp + 0x1c], 0xfffffffa
jge 0x1000b508
push dword [esp + 0x60]
movdqa xmm0, xmmword [0x10008ac0]
lea eax, [esp + 0xf8]
mov dword [esp + 0x28], 0x91f782a1
lea ecx, [esp + 0x70]
mov dword [esp + 0x34], 4
mov dword [esp + 0x34], 0xfdb696
mov dword [esp + 0x34], 9
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x34], 0xfecbe92e
push eax
mov dword [esp + 0x38], 0xfffffff8
lea eax, [esp + 0xec]
mov dword [esp + 0x2c], 0xffffffff
push eax
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x30], 0xdd1edb6b
mov dword [esp + 0x34], 0xfff7
push ebx
movdqu xmmword [esp + 0xf4], xmm0
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
call fcn.10012921
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x24], 0x18ae
cmp dword [esp + 0x24], 0xdaa
jge 0x1000b487
lea eax, [esp + 0x40]
mov dword [esp + 0x40], ebx
push eax
push 0x10008178
call fcn.10055adb
pop ecx
mov edi, ebx
mov dword [esp + 0x50], ebx
mov esi, ebx
mov dword [esp + 0x48], edi
pop ecx
mov dword [esp + 0x48], esi
mov byte [esp + 0x10c], 1
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], ebx
test eax, eax
jle 0x1000b32e
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xc], ebx
lea eax, [esp + 0xb8]
mov dword [esp + 0x54], ebx
push eax
push 4
lea ecx, [esp + 0x5c]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
call fcn.1000fd7d
lea eax, [esp + 0x54]
mov byte [esp + 0x10c], 2
cmp eax, esi
jae 0x1000b257
cmp edi, eax
ja 0x1000b257
sub eax, edi
push 0xc
cdq
pop ecx
idiv ecx
mov dword [esp + 0x24], eax
cmp esi, dword [esp + 0x4c]
jne 0x1000b250
push ecx
lea ecx, [esp + 0x48]
call fcn.1000fe01
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
imul eax, eax, 0xc
add eax, edi
jmp 0x1000b273
cmp esi, dword [esp + 0x4c]
jne 0x1000b26f
push ecx
lea ecx, [esp + 0x48]
call fcn.1000fe01
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
lea eax, [esp + 0x54]
push eax
push esi
call fcn.1001224b
push 0xc
pop eax
add esi, eax
mov byte [esp + 0x10c], 1
cmp dword [esp + 0x54], 0
mov dword [esp + 0x48], esi
je 0x1000b2a8
push dword [esp + 0x54]
call fcn.10055e77
pop ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
lea eax, [esp + 0x80]
mov dword [esp + 0x7c], ebx
push eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x68], ebx
push eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x70], ebx
push eax
lea eax, [esp + 0x88]
mov dword [esp + 0x8c], ebx
push eax
push 0x1000819c
call fcn.10055adb
mov edx, dword [esp + 0x20]
add esp, 0x14
mov eax, dword [esp + 0x7c]
mov ecx, dword [edi + edx]
push 0xc
mov dword [ecx], eax
mov ecx, dword [edi + edx]
mov eax, dword [esp + 0x68]
mov dword [ecx + 4], eax
mov ecx, dword [edi + edx]
mov eax, dword [esp + 0x6c]
mov dword [ecx + 8], eax
mov ecx, dword [edi + edx]
mov eax, dword [esp + 0x84]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x24]
pop eax
add edx, eax
inc ecx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], ecx
mov dword [esp + 0xc], edx
cmp ecx, eax
jl 0x1000b1f5
push eax
call fcn.100511e4
pop ecx
mov ecx, dword [esp + 0x40]
mov edx, ebx
mov dword [esp + 0x24], eax
test ecx, ecx
jle 0x1000b350
mov byte [edx + eax], 1
inc edx
mov ecx, dword [esp + 0x40]
cmp edx, ecx
jl 0x1000b343
mov edx, ebx
test ecx, ecx
jle 0x1000b3f5
mov dword [esp + 0xc], edi
mov eax, ebx
mov dword [esp + 0x14], eax
test ecx, ecx
jle 0x1000b3e1
mov esi, edi
mov dword [esp + 0x20], edi
cmp edx, eax
je 0x1000b3c4
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
push 0
mov eax, dword [ebx]
mov ebx, dword [esi]
mov eax, dword [eax]
cmp eax, dword [ebx]
pop ebx
jge 0x1000b3c0
mov ebx, dword [esp + 0xc]
push 0
mov eax, dword [ebx]
mov ebx, dword [esi]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
pop ebx
jge 0x1000b3c0
mov ebx, dword [esp + 0xc]
push 0
mov eax, dword [ebx]
mov ebx, dword [esi]
mov eax, dword [eax + 8]
cmp eax, dword [ebx + 8]
pop ebx
jge 0x1000b3c0
mov ebx, dword [esp + 0xc]
push 0
mov eax, dword [ebx]
mov ebx, dword [esi]
mov eax, dword [eax + 0xc]
cmp eax, dword [ebx + 0xc]
pop ebx
jl 0x1000b3d6
mov eax, dword [esp + 0x14]
inc eax
add esi, 0xc
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], esi
cmp eax, ecx
jl 0x1000b36e
jmp 0x1000b3e1
mov eax, dword [esp + 0x24]
mov byte [edx + eax], bl
mov ecx, dword [esp + 0x40]
push 0xc
pop eax
add dword [esp + 0xc], eax
inc edx
cmp edx, ecx
jl 0x1000b35e
mov esi, dword [esp + 0x48]
or eax, 0xffffffff
mov dword [esp + 0xc], 0xc2
mov dword [esp + 0x20], eax
mov edx, ebx
test ecx, ecx
jle 0x1000b442
mov esi, dword [esp + 0xc]
mov ebx, edi
mov edi, dword [esp + 0x24]
cmp byte [edx + edi], 0
je 0x1000b430
mov eax, dword [ebx]
cmp dword [eax + 0xc], esi
jge 0x1000b42c
mov esi, dword [eax + 0xc]
mov eax, edx
mov dword [esp + 0x20], eax
jmp 0x1000b430
mov eax, dword [esp + 0x20]
inc edx
add ebx, 0xc
cmp edx, ecx
jl 0x1000b414
mov esi, dword [esp + 0x48]
xor ebx, ebx
mov edi, dword [esp + 0x44]
inc eax
push eax
push 0x10008198
call fcn.10055d0f
pop ecx
pop ecx
test edi, edi
je 0x1000b487
mov dword [esp + 0x24], edi
cmp edi, esi
je 0x1000b474
push 0xc
mov ebx, edi
pop edi
mov ecx, ebx
call fcn.1000fd61
add ebx, edi
cmp ebx, esi
jne 0x1000b461
mov edi, dword [esp + 0x44]
xor ebx, ebx
push edi
call fcn.10055e77
pop ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x78], eax
inc dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
cmp eax, 0xe141
mov eax, dword [esp + 0x6c]
setne cl
xor edx, edx
cmp ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x30]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 1
setle al
mov dword [esp + 0x14], eax
or dword [esp + 0x10c], 0xffffffff
push dword [esp + 0x6c]
call fcn.10055e77
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0xfffffffa
pop ecx
jl 0x1000b0f7
xor ecx, ecx
inc ecx
mov dword [esp + 0x14], 0xe
jmp 0x1000b688
mov dword [esp + 0x30], 0x1d4a
cmp dword [esp + 0x30], 0xa7c
jge 0x1000b64c
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x94]
push eax
push 0x100081a8
call fcn.10055adb
mov edi, dword [esp + 0xa0]
add esp, 0xc
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
cmp edi, ebx
jl 0x1000b635
mov esi, dword [esp + 0x90]
jg 0x1000b571
cmp esi, ebx
jbe 0x1000b635
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ecx
cmp edx, ebx
jl 0x1000b63d
jg 0x1000b5ab
cmp dword [esp + 0xc], ebx
jbe 0x1000b63d
mov eax, dword [esp + 0xc]
cmp edi, edx
jl 0x1000b5e6
jg 0x1000b5b9
cmp esi, eax
jbe 0x1000b5e6
push edx
push eax
push edi
push esi
call fcn.1006afc0
mov esi, ecx
mov edi, ebx
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov dword [esp + 0x90], esi
mov eax, dword [esp + 0x28]
adc eax, edx
mov dword [esp + 0x94], edi
mov edx, dword [esp + 0x20]
jmp 0x1000b617
push edi
push esi
push edx
push eax
call fcn.1006afc0
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x28]
adc eax, edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x98], edx
mov edx, ebx
mov dword [esp + 0x9c], edx
xor ebx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ecx
cmp edi, ebx
jg 0x1000b597
jl 0x1000b63d
cmp esi, ebx
ja 0x1000b597
jmp 0x1000b63d
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
push 0x100081b4
call fcn.10055d0f
add esp, 0xc
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1000b669
push ebx
push 0x4d4
push ebx
push 0x1c49
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
xor ecx, ecx
mov dword [esp + 0xc], ebx
inc ecx
jmp 0x1000b67e
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x78], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x1000b672
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x13
jle 0x1000b515
mov dword [esp + 0x24], 0x378470ed
mov dword [esp + 0xc], 2
mov dword [esp + 0xc], ebx
jmp 0x1000b6bc
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xb4], 0xfffffffc
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x1000b6a9
mov dword [esp + 0xc], ebx
jmp 0x1000b6db
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xb4], 6
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x1000b6c8
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1000b6f7
push 0x13a
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov eax, dword [esp + 0x50]
xor edx, edx
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0xb0]
cmp eax, ecx
setle dl
cmp edx, dword [esp + 0x3c]
jle 0x1000b732
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x50]
cmp ecx, eax
setne dl
imul edx, dword [esp + 0x50]
test edx, edx
je 0x1000b732
xor ecx, ecx
inc ecx
mov edx, ecx
jmp 0x1000b737
xor ecx, ecx
mov edx, ebx
inc ecx
xor eax, eax
cmp edx, 0xced4
setne al
cmp eax, dword [esp + 0x50]
jl 0x1000b74e
cmp dword [esp + 0x50], ebx
je 0x1000b754
cmp dword [esp + 0x2c], ebx
jne 0x1000b756
mov ecx, ebx
cmp ecx, dword [esp + 0x24]
jne 0x1000b770
cmp dword [esp + 0x24], ebx
je 0x1000b770
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x2c], 0xc4365de
jmp 0x1000b798
mov dword [esp + 0x2c], 0x6a37bd55
mov dword [esp + 0x18], 0xffffffe3
jmp 0x1000b78c
cmp dword [esp + 0x2c], ebx
jne 0x1000b793
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x17
jl 0x1000b782
call fcn.1000a305
mov eax, dword [esp + 0xac]
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [esp + 0x60]
mov edi, edx
mov esi, eax
call fcn.1000a293
mov ecx, dword [esp + 0x104]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret