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

Disassembly:
sub esp, 0xac
mov eax, dword [esp + 0xb0]
push ebx
push ebp
push esi
push edi
mov edi, dword [eax]
mov eax, dword [eax + 0x1c]
xor esi, esi
push eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x38], esi
call fcn.00448340
add esp, 4
cmp eax, esi
jne 0x45c4a9
jmp 0x45ba72
xor esi, esi
cmp dword [edi + 0x24], esi
jne 0x45c4a7
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x34]
mov edx, eax
mov ebx, ecx
add eax, 1
adc ecx, esi
mov dword [edi + 0x34], ecx
lea ecx, [esp + 0x20]
push ecx
push ebx
push edx
push esi
push esi
mov dword [edi + 0x30], eax
push esi
push esi
mov eax, edi
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ebx
call fcn.0045b8e0
mov edx, dword [edi + 0x70]
add esp, 0x1c
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
cmp eax, esi
jne 0x45bee9
cmp dword [esp + 0x20], 0
jne 0x45bee9
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 8]
mov eax, dword [edi + 0x64]
sub eax, dword [edi + 0x60]
mov dword [esp + 0x30], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x45bb51
mov edx, dword [edi]
mov eax, dword [edi + 0x14]
add edx, 0x10
push edx
push eax
mov eax, dword [eax]
call eax
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
je 0x45be41
mov ecx, dword [esp + 0x30]
mov dword [eax], 0
test ecx, ecx
je 0x45bb47
mov dword [ecx], eax
jmp 0x45bb51
mov ecx, dword [esp + 0xc0]
mov dword [ecx + 8], eax
mov esi, dword [esp + 0x28]
add eax, 0x10
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
test esi, esi
je 0x45bb87
mov edx, dword [edi + 0x5c]
mov eax, dword [edi + 0x60]
lea ecx, [edx + eax + 0x10]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x48], esi
mov dword [esp + 0x2c], ecx
jmp 0x45bc8b
mov ebx, dword [edi]
mov edx, dword [edi + 0xc]
mov ebp, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x14], edx
test ebx, ebx
je 0x45bbd0
lea ebx, [ebx]
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push ebp
push eax
mov dword [esp + 0x1c], ebx
call ecx
mov ecx, dword [esp + 0x1c]
add esp, 0xc
add esi, ecx
add ebp, ecx
sub ebx, ecx
test eax, eax
jne 0x45bd60
test ecx, ecx
je 0x45bbd0
test ebx, ebx
jne 0x45bba0
mov dword [esp + 0x14], 0
xor eax, eax
add dword [esp + 0x18], esi
adc dword [esp + 0x1c], eax
cmp dword [esp + 0x30], eax
jne 0x45bbec
mov dword [esp + 0x48], esi
add dword [edi + 0x68], esi
mov ebx, 1
adc dword [edi + 0x6c], eax
xor edx, edx
cmp esi, dword [edi]
setne dl
mov ebp, edx
mov dword [esp + 0x10], ebp
test ebp, ebp
je 0x45bc0b
mov dword [edi + 0x70], ebx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45bc27
mov ebp, ebx
mov dword [edi + 0x48], eax
mov dword [edi + 0x70], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
sbb ecx, dword [esp + 0x40]
mov dword [esp + 0xb8], ecx
jne 0x45bc44
cmp eax, ebx
jb 0x45bc94
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x20]
push edx
push eax
push ecx
push 0
push 0
push 0
push 0
mov eax, edi
call fcn.0045b8e0
add esp, 0x1c
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45bee9
cmp dword [esp + 0x20], eax
jne 0x45be8f
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
mov ebp, dword [esp + 0x10]
mov ebx, 1
mov edx, dword [esp + 0x2c]
mov eax, dword [edi + 0x18]
xor ecx, ecx
cmp dword [esp + 0x30], ecx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0xc0]
sete cl
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebp
mov dword [esp + 0x98], ebx
mov dword [esp + 0x84], ecx
mov eax, dword [eax]
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [edx + 4]
mov edx, dword [edi + 0x1c]
push ecx
push edx
call eax
mov ecx, dword [esp + 0xa4]
add esp, 0xc
mov dword [esp + 0x74], ebx
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x94], ebx
je 0x45bd69
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x8c]
xor edx, edx
cmp ecx, edx
je 0x45bd2a
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
push ebx
push edx
push eax
call fcn.00472e70
add dword [edi + 0x60], ebx
mov ecx, dword [esp + 0x34]
add esp, 0xc
xor edx, edx
mov eax, dword [esp + 0x94]
cmp eax, edx
jne 0x45bda7
cmp ebp, edx
jne 0x45bdb4
cmp ebx, esi
jne 0x45bd9a
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov dword [esp + 0x44], eax
cmp ecx, edx
je 0x45bb10
xor eax, eax
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], eax
jmp 0x45bb06
mov dword [esp + 0x14], eax
jmp 0x45bbd8
mov dword [esp + 0x10], ebx
mov dword [esp + 0x80], ebx
xor ebx, ebx
cmp dword [esp + 0x28], ebx
je 0x45bd8f
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
push esi
push ecx
push edx
call fcn.00472e70
add esp, 0xc
mov dword [edi + 0x60], ebx
mov dword [edi + 0x64], ebx
jmp 0x45be8f
mov dword [esp + 0x14], 0xb
jmp 0x45bee9
cmp eax, 3
jne 0x45bdb4
mov dword [esp + 0x10], 1
mov dword [esp + 0x38], 1
cmp ebx, esi
jne 0x45bdcb
mov dword [edi + 0x60], edx
mov dword [edi + 0x64], edx
jmp 0x45be8f
cmp eax, 3
jne 0x45be24
mov dword [edi + 0x60], edx
mov dword [edi + 0x64], edx
cmp ecx, edx
je 0x45bdff
mov ecx, dword [esp + 0x2c]
mov eax, esi
sub eax, ebx
push eax
mov eax, dword [esp + 0x28]
lea edx, [ebx + ecx]
push edx
add ebx, eax
push ebx
call fcn.00472e70
mov ebx, dword [esp + 0x98]
add esp, 0xc
xor edx, edx
mov ecx, dword [esp + 0x2c]
sub esi, ebx
sub dword [esp + 0x18], esi
lea eax, [ebx + ecx]
mov dword [esp + 0x68], esi
sbb dword [esp + 0x1c], edx
mov dword [esp + 0x64], eax
cmp dword [esp + 0x30], edx
jne 0x45be8f
mov dword [esp + 0x48], ebx
jmp 0x45be8f
cmp ecx, edx
je 0x45be32
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edx
jmp 0x45be81
push edi
call fcn.0045ba00
xor edx, edx
add esp, 4
cmp eax, edx
jne 0x45be50
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x78], eax
jmp 0x45be8f
mov ecx, dword [esp + 0x8c]
sub esi, ecx
sub dword [esp + 0x18], esi
mov dword [edi + 0x60], edx
push esi
sbb dword [esp + 0x20], edx
mov edx, dword [esp + 0x30]
add ecx, edx
push ecx
push eax
mov dword [edi + 0x64], esi
call fcn.00472e70
mov ebx, dword [esp + 0x98]
add esp, 0xc
xor edx, edx
cmp dword [esp + 0x30], edx
jne 0x45be8b
mov dword [esp + 0x48], ebx
mov dword [esp + 0x10], edx
cmp dword [esp + 0x14], 0
jne 0x45bee9
lea ebx, [edi + 0xb0]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [edi + 0x88], 0
je 0x45bed0
mov eax, dword [esp + 0x50]
cmp eax, dword [edi + 0x94]
jb 0x45bed0
ja 0x45bec6
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [edi + 0x90]
jbe 0x45bed0
mov dword [esp + 0x20], 1
jmp 0x45bed8
mov dword [esp + 0x20], 0
mov esi, dword [edi + 0x9c]
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x14], esi
xor ebx, ebx
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x14], ebx
jne 0x45bf2f
cmp dword [esp + 0x38], ebx
je 0x45bf29
cmp dword [esp + 0x20], ebx
jne 0x45bf2f
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 4]
mov edx, dword [edi + 0x18]
mov eax, dword [edi + 0x1c]
push ecx
mov ecx, dword [edx + 4]
push eax
call ecx
add esp, 8
mov dword [esp + 0x28], eax
cmp eax, ebx
je 0x45bf37
mov dword [esp + 0x38], ebx
jmp 0x45bf2f
cmp dword [esp + 0x20], ebx
je 0x45bf37
mov dword [esp + 0x10], 1
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x44], ebx
cmp dword [esp + 0x10], ebx
jne 0x45bfb4
mov eax, dword [edi + 0x58]
cmp eax, dword [edi + 0x54]
jae 0x45bf81
cmp dword [esp + 0x34], ebx
je 0x45bf81
lea edx, [eax + eax*4 + 0x19]
lea esi, [edi + edx*8]
call fcn.0045b770
cmp eax, ebx
jne 0x45bf68
inc dword [edi + 0x58]
jmp 0x45bf81
mov ecx, dword [edi + 0x58]
cmp ecx, 1
jne 0x45bf7e
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x44], eax
jmp 0x45bfb4
mov dword [edi + 0x54], ecx
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 4]
inc ecx
cmp ecx, dword [edi + 0x58]
sbb eax, eax
and eax, ecx
add eax, 5
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
mov dword [esp + 0x2c], eax
add eax, 0x1c
push eax
call fcn.00448390
add esp, 4
cmp eax, ebx
jne 0x45c4a9
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ecx
cmp dword [esp + 0x14], ecx
jne 0x45c154
cmp dword [esp + 0x38], ecx
je 0x45c154
cmp dword [esp + 0x28], ecx
jne 0x45c154
mov edx, dword [esp + 0xc0]
mov edx, dword [edx + 8]
mov eax, 1
mov dword [esp + 0x24], edx
cmp eax, ecx
je 0x45c015
mov edx, dword [esp + 0x48]
jmp 0x45c031
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [edi]
sub ecx, ebx
sbb eax, ebp
xor esi, esi
cmp esi, eax
jb 0x45c031
ja 0x45c02f
cmp edx, ecx
jbe 0x45c031
mov edx, ecx
add ebx, edx
adc ebp, 0
mov eax, 1
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x34], eax
cmp ebx, dword [esp + 0x18]
jne 0x45c053
cmp ebp, dword [esp + 0x1c]
je 0x45c055
xor eax, eax
mov ecx, dword [edi + 0x18]
mov ecx, dword [ecx + 8]
lea esi, [esp + 0x34]
push esi
lea esi, [esp + 0x60]
push esi
lea esi, [esp + 0x5c]
push esi
push eax
mov eax, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0x38]
add edx, 0x10
push edx
mov edx, dword [eax + 4]
mov eax, dword [edi + 0x1c]
push edx
push eax
call ecx
add esp, 0x20
mov dword [esp + 0x28], eax
test eax, eax
jne 0x45c140
cmp dword [esp + 0x34], eax
jne 0x45c154
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
cmp ebx, dword [esp + 0x18]
jne 0x45c0b6
cmp ebp, dword [esp + 0x1c]
je 0x45c154
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov ecx, ebx
sub ecx, dword [esp + 0x3c]
mov eax, ebp
sbb eax, dword [esp + 0x40]
sub edx, dword [esp + 0x6c]
sbb esi, dword [esp + 0x70]
test eax, eax
ja 0x45c0e6
jb 0x45c0dd
cmp ecx, 1
jae 0x45c0e6
test esi, esi
ja 0x45c0e6
cmp edx, 1
jb 0x45c131
lea ebx, [esp + 0x20]
push ebx
mov ebx, dword [esp + 0x54]
push ebx
mov ebx, dword [esp + 0x54]
push ebx
push esi
push edx
push eax
push ecx
mov eax, edi
call fcn.0045b8e0
add esp, 0x1c
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45c154
cmp dword [esp + 0x20], eax
jne 0x45c154
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
xor eax, eax
xor ecx, ecx
jmp 0x45c007
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
push eax
push ecx
mov esi, edi
call fcn.0045b9b0
add esp, 8
mov edx, dword [esp + 0xc0]
mov eax, dword [edx + 0x20]
push eax
call fcn.00448340
xor ebx, ebx
add esp, 4
cmp eax, ebx
jne 0x45c4a9
mov ecx, dword [esp + 0x74]
mov ebp, 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x24], ecx
cmp dword [edi + 0x24], ebx
jne 0x45c4a7
cmp dword [edi + 0x50], ebx
je 0x45c19a
mov dword [esp + 0x20], ebp
jmp 0x45c1e6
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x45c1af
mov dword [edi + 0x50], ebp
mov dword [edi + 0x4c], eax
mov ecx, ebp
cmp eax, 2
je 0x45c1b3
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x45c1c5
mov dword [edi + 0x50], ebp
mov dword [edi + 0x40], eax
mov dword [esp + 0x24], ebx
cmp ecx, ebx
je 0x45c1d3
mov dword [edi + 0x50], ebp
mov dword [edi + 0x38], ebp
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x80], ebx
je 0x45c1e6
mov dword [edi + 0x50], ebp
mov dword [edi + 0x3c], ebp
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x38], ebx
je 0x45c2ce
cmp dword [esp + 0x20], ebx
je 0x45c20e
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], edx
jmp 0x45c21e
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x3c]
lea ebp, [edi + 0xb0]
sbb eax, dword [esp + 0x40]
sub ebx, dword [esp + 0x6c]
push ebp
sbb edx, dword [esp + 0x74]
mov esi, ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xac], edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add dword [edi + 0xa0], esi
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xa8]
adc dword [edi + 0xa4], edx
add dword [edi + 0xa8], ebx
adc dword [edi + 0xac], eax
cmp dword [edi + 0x9c], 0
jne 0x45c2b6
mov eax, dword [edi + 0x98]
test eax, eax
je 0x45c2b6
mov ecx, dword [edi + 0xac]
mov edx, dword [edi + 0xa8]
push ecx
mov ecx, dword [edi + 0xa4]
push edx
mov edx, dword [edi + 0xa0]
push ecx
push edx
push eax
mov eax, dword [eax]
call eax
add esp, 0x14
test eax, eax
je 0x45c2b6
mov dword [edi + 0x9c], 0xa
mov esi, dword [edi + 0x9c]
push ebp
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x14], esi
mov ebp, 1
xor ebx, ebx
mov esi, dword [esp + 0x10]
xor ecx, ecx
cmp esi, ebx
sete cl
mov dword [esp + 0x7c], ecx
cmp dword [esp + 0x74], ebx
je 0x45c3a0
cmp dword [esp + 0x14], ebx
jne 0x45c2fd
cmp dword [esp + 0x24], ebx
je 0x45c2fd
cmp dword [esp + 0x20], ebx
jne 0x45c2fd
mov eax, ebp
jmp 0x45c2ff
xor eax, eax
mov edx, dword [edi + 0x18]
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
push ecx
push eax
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x1c]
push ecx
mov ecx, dword [edx + 0xc]
push eax
call ecx
add esp, 0x1c
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x45c342
mov dword [esp + 0x30], ebp
mov dword [edi + 0x50], ebp
jmp 0x45c34c
cmp dword [esp + 0x7c], ebx
jne 0x45c3a0
cmp esi, ebx
jne 0x45c3a0
lea esi, [edi + 0xb0]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [edi + 0x88], ebx
je 0x45c37b
mov edx, dword [esp + 0x50]
cmp edx, dword [edi + 0x94]
ja 0x45c395
jb 0x45c37b
mov eax, dword [esp + 0x4c]
cmp eax, dword [edi + 0x90]
jae 0x45c395
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [edi + 0x90], ecx
mov dword [edi + 0x94], edx
mov dword [edi + 0x88], ebp
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x34], ebx
je 0x45c41b
cmp dword [esp + 0x38], ebx
je 0x45c3d1
cmp dword [esp + 0x14], ebx
jne 0x45c3d1
cmp dword [edi + 0x50], ebx
jne 0x45c3d1
cmp dword [esp + 0x28], ebx
jne 0x45c3d1
cmp dword [esp + 0x20], ebx
jne 0x45c3d1
cmp dword [edi + 0x84], ebx
jne 0x45c3e9
cmp dword [esp + 0x30], ebx
je 0x45c41b
cmp dword [edi + 0x84], ebx
jne 0x45c3e9
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 4]
mov dword [edi + 0x80], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, eax
or edx, ecx
jne 0x45c3fb
cmp esi, ebx
jne 0x45c430
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0x48]
mov dword [edx + 0xc], esi
mov esi, dword [esp + 0x10]
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
add dword [edi + 0x84], ebp
jmp 0x45c422
mov edx, dword [esp + 0xc0]
cmp esi, ebx
jne 0x45c437
mov eax, dword [esp + 0x2c]
add eax, 0x20
push eax
jmp 0x45c461
mov edx, dword [esp + 0xc0]
cmp dword [esp + 0x7c], ebx
je 0x45c452
lea ecx, [edi + 0xe8]
push ecx
call fcn.00448390
add esp, 4
cmp eax, ebx
jne 0x45c4a9
jmp 0x45c45a
cmp dword [edx + 4], ebx
je 0x45c4a7
mov dword [edi + 0x24], ebp
lea edx, [edi + 0xe4]
push edx
call fcn.00448390
add esp, 4
cmp eax, ebx
jne 0x45c4a9
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x1c]
push ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x38], ebx
call fcn.00448340
add esp, 4
cmp eax, ebx
je 0x45ba70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
ret