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

Disassembly:
mov eax, 0x1368
call fcn.004012c0
or dword [esp + 0x14], 0xffffffff
push ebx
push ebp
push esi
xor esi, esi
push edi
push 0x40
lea ecx, [esp + 0x48]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x1c], esi
call fcn.00401eb8
lea ecx, [esp + 0x198]
call fcn.0040c0b2
lea ecx, [esp + 0xa0]
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
call fcn.0040c0b2
mov eax, dword [esp + 0x44]
mov dword [0x410550], eax
mov dword [0x40f908], 1
mov ebx, 0x420684
xor esi, esi
cmp dword [0x4237e0], esi
jne 0x402c85
xor edi, edi
mov dword [esp + 0x1c], esi
inc edi
mov ebp, 0x40f93c
mov eax, dword [esp + 0x1c]
cmp eax, 0x40
jl 0x4020c5
cmp byte [0x421704], 0
je 0x4023ae
cmp eax, dword [esp + 0x48]
jl 0x4020da
mov eax, dword [esp + 0x1c]
inc eax
push eax
lea ecx, [esp + 0x48]
call fcn.00401f99
mov eax, dword [esp + 0x44]
push 4
add eax, esi
push ebp
mov dword [0x410550], eax
call fcn.00403c66
test eax, eax
je 0x402325
push 4
push 0x4205ad
push ebp
call fcn.00408ecc
test eax, eax
jne 0x40232f
call fcn.00408238
test eax, eax
jne 0x40238e
movzx eax, word [0x4205e4]
push eax
movzx eax, word [0x420600]
push 2
push eax
call fcn.00404024
test eax, eax
je 0x402144
cmp eax, dword [esp + 0x10]
jle 0x40213c
mov dword [esp + 0x10], eax
cmp eax, edi
jg 0x402394
movzx eax, word [0x420602]
push 0
push 3
push eax
call fcn.00404024
test eax, eax
je 0x40216b
cmp eax, dword [esp + 0x10]
jle 0x402163
mov dword [esp + 0x10], eax
cmp eax, edi
jg 0x402394
movzx eax, word [0x420602]
push 0x4205e6
push eax
push dword [0x4205a0]
call fcn.0040c309
movzx eax, word [0x420604]
push 0
push 0
push eax
call fcn.00404024
test eax, eax
je 0x4021aa
cmp eax, dword [esp + 0x10]
jle 0x4021a2
mov dword [esp + 0x10], eax
cmp eax, edi
jg 0x402394
test byte [0x42060c], 0x10
je 0x4021d9
movzx eax, byte [0x4205e1]
test eax, eax
je 0x4021c3
cmp eax, 0xb
jne 0x4021d9
push ebx
call fcn.00407016
cmp byte [eax], 0x5c
je 0x4021d9
push 0x40d2bc
push ebx
call fcn.00408f71
lea ecx, [esp + 0x690]
call fcn.00401fce
push 0xce8
push 0
lea eax, [esp + 0x698]
push eax
call fcn.00408c69
push ebx
lea eax, [esp + 0x6c4]
push eax
call fcn.00408e06
movzx eax, word [0x4205ea]
movzx ecx, word [0x4205e8]
shl eax, 0x10
or eax, ecx
mov dword [esp + 0x6ac], eax
mov eax, dword [0x4205f8]
mov dword [esp + 0x1370], eax
mov eax, dword [0x4205fc]
mov dword [esp + 0x1374], eax
mov eax, dword [0x4205e4]
shr eax, 0xb
test al, 1
je 0x402291
mov eax, 0x200
or word [esp + 0x698], ax
push 0x400
lea eax, [esp + 0xac4]
push eax
push ebx
call fcn.0040c7bd
xor eax, eax
mov word [esp + 0x12be], ax
push 0x3ff
lea eax, [esp + 0x6c4]
push eax
lea eax, [esp + 0xac8]
push eax
call fcn.0040c767
mov byte [esp + 0xabf], 0
push 4
push 0
lea eax, [esp + 0x698]
push eax
mov ecx, 0x4240b8
call fcn.004014b4
test eax, eax
setne byte [esp + 0x17]
cmp byte [0x420684], 0
je 0x4022e1
cmp byte [0x420685], 0
je 0x4022e1
cmp byte [0x420686], 0
mov eax, 0x420686
je 0x4022e1
cmp byte [eax], 0x3a
jne 0x4022d6
mov byte [eax], 0x5f
push eax
call fcn.00401f7e
cmp byte [eax], 0
jne 0x4022ce
cmp byte [esp + 0x17], 0
je 0x40230b
call fcn.00401989
test eax, eax
je 0x402307
push ebx
lea ecx, [esp + 0x19c]
call fcn.0040c0da
inc dword [esp + 0x1c]
add esi, 0x30
jmp 0x40230b
inc dword [esp + 0x28]
add dword [esp + 0x3c], edi
lea ecx, [esp + 0x12c0]
adc dword [esp + 0x40], 0
call fcn.0040beb3
jmp 0x4020af
mov dword [esp + 0x10], 0x33
jmp 0x4023aa
mov ecx, dword [0x420628]
mov eax, ecx
xor eax, dword [esp + 0x3c]
mov esi, 0xffff
and eax, esi
xor edx, edx
or eax, edx
je 0x402375
cmp ecx, esi
jne 0x402354
cmp dword [0x42062c], edx
je 0x402375
push 0xa0
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
pop ecx
pop ecx
mov dword [esp + 0x10], 3
jmp 0x4023aa
push 4
push 0x4205b2
push ebp
call fcn.00408ecc
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x60], eax
jmp 0x4023aa
mov dword [esp + 0x10], eax
jmp 0x4023aa
push ebx
push 0x68
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
add esp, 0xc
mov dword [esp + 0x18], edi
cmp byte [0x421704], 0
mov eax, dword [0x420590]
mov dword [esp + 0x74], eax
mov eax, dword [0x420594]
mov dword [esp + 0x78], eax
mov eax, dword [0x420560]
mov dword [esp + 0x68], eax
mov eax, dword [0x420568]
mov dword [esp + 0x6c], eax
mov eax, dword [0x42056c]
mov dword [esp + 0x70], eax
je 0x40241d
and dword [0x421708], 0
push 0x40d2b8
push 0x427f84
call fcn.00407223
mov ecx, dword [0x420580]
xor eax, eax
mov word [0x428384], ax
test ecx, ecx
je 0x402411
mov eax, dword [ecx]
push edi
call dword [eax]
and dword [0x420580], 0
call fcn.00403a4d
and dword [esp + 0x2c], 0
cmp dword [esp + 0x1c], 0
jle 0x402c20
mov eax, dword [esp + 0x38]
shl eax, 6
mov dword [esp + 0x64], eax
jmp 0x40243e
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x2c]
add eax, ecx
imul ecx, ecx, 0x30
add ecx, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov dword [0x410550], ecx
lea ecx, [esp + 0x198]
call fcn.0040c136
cmp byte [0x421704], 0
mov dword [esp + 0x50], eax
je 0x4024ce
mov eax, dword [0x410550]
mov eax, dword [eax + 0x20]
cmp eax, dword [0x421708]
je 0x4024ce
movzx ecx, word [0x420618]
cmp eax, ecx
jne 0x40249a
push 0x40d2b4
push 0x427f84
call fcn.00407223
jmp 0x4024a5
push eax
push 0x427f84
call fcn.00401e7e
mov eax, dword [0x410550]
mov ecx, dword [0x420580]
mov eax, dword [eax + 0x20]
mov dword [0x421708], eax
test ecx, ecx
je 0x4024c2
mov eax, dword [ecx]
push 1
call dword [eax]
and dword [0x420580], 0
call fcn.00403a4d
mov eax, dword [0x410550]
mov edi, dword [eax]
add edi, dword [0x420598]
mov esi, dword [eax + 4]
adc esi, dword [0x42059c]
push 0
push 0x2000
push esi
push edi
call fcn.00401200
mov ebp, eax
mov eax, edi
sub eax, ebp
mov ecx, esi
sbb ecx, edx
test esi, esi
jg 0x4025aa
jl 0x40250e
test edi, edi
jae 0x4025aa
push 0xa0
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
cmp dword [esp + 0x2c], 0
pop ecx
pop ecx
mov dword [esp + 0x10], 2
jne 0x40259d
mov eax, dword [0x420598]
mov ecx, dword [0x42059c]
mov edx, eax
or edx, ecx
je 0x40259d
mov dword [esp + 0x34], ecx
xor ecx, ecx
push ecx
mov dword [esp + 0x34], eax
mov eax, dword [0x410550]
mov dword [0x420598], ecx
mov dword [0x42059c], ecx
mov esi, dword [eax + 4]
mov edi, dword [eax]
push 0x2000
push esi
push edi
call fcn.00401200
mov ebp, eax
mov eax, edi
sub eax, ebp
mov ecx, esi
sbb ecx, edx
test esi, esi
jg 0x4025aa
jl 0x402586
test edi, edi
jae 0x4025aa
push 0xa0
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
pop ecx
pop ecx
mov dword [esp + 0x10], 3
jmp 0x402c0e
cmp eax, dword [0x420590]
jne 0x4025e9
cmp ecx, dword [0x420594]
jne 0x4025e9
cmp byte [0x421704], 0
jne 0x4025e9
mov eax, dword [0x420560]
mov ecx, dword [0x42055c]
sub eax, ebp
sub eax, ecx
cdq
add dword [0x420568], eax
adc dword [0x42056c], edx
add ebp, ecx
mov dword [0x420560], ebp
jmp 0x402657
push 0
push ecx
mov ecx, dword [0x420580]
push eax
call fcn.004033f6
mov ecx, dword [0x420580]
call fcn.00402f5d
push 0x2000
push dword [0x42055c]
mov dword [0x420590], eax
mov dword [0x420594], edx
call fcn.00403bb6
cdq
mov dword [0x420568], eax
mov dword [0x42056c], edx
test edx, edx
jg 0x40263c
jl 0x402586
test eax, eax
jbe 0x402586
mov eax, dword [0x42055c]
add eax, ebp
mov dword [0x420560], eax
mov eax, ebp
cdq
sub dword [0x420568], eax
sbb dword [0x42056c], edx
push 4
mov esi, 0x40f93c
push esi
call fcn.00403c66
test eax, eax
je 0x402586
push 4
push 0x4205a8
push esi
call fcn.00408ecc
mov edi, 0xa0
test eax, eax
je 0x402733
push edi
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
mov eax, dword [0x420598]
pop ecx
xor edx, edx
pop ecx
mov ecx, dword [0x42059c]
mov dword [esp + 0x10], 2
cmp dword [esp + 0x24], edx
jne 0x4026ba
mov ebp, eax
or ebp, ecx
jne 0x40271d
or eax, ecx
jne 0x402c0e
mov eax, dword [esp + 0x30]
or eax, dword [esp + 0x34]
je 0x402c0e
mov eax, dword [esp + 0x30]
mov dword [0x420598], eax
mov eax, dword [esp + 0x34]
mov dword [0x42059c], eax
mov esi, 0x40f93c
mov eax, dword [0x410550]
push dword [eax + 4]
push dword [eax]
call fcn.00403e50
test eax, eax
jne 0x402717
push 4
push esi
call fcn.00403c66
test eax, eax
je 0x402717
push 4
push 0x4205a8
push esi
call fcn.00408ecc
test eax, eax
je 0x402733
push edi
jmp 0x40258b
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [0x420598], edx
mov dword [0x42059c], edx
jmp 0x4026e7
call fcn.00407d4b
mov esi, eax
xor ebp, ebp
cmp esi, ebp
je 0x40275c
push edi
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
pop ecx
pop ecx
mov dword [esp + 0x10], esi
jmp 0x402c0e
movzx eax, word [0x4205ba]
push eax
movzx eax, word [0x4205d8]
push 2
push eax
call fcn.00404024
cmp eax, ebp
je 0x4027a1
cmp eax, dword [esp + 0x10]
jle 0x402781
mov dword [esp + 0x10], eax
cmp eax, 1
jle 0x4027a1
push ebx
push 0x68
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
add esp, 0xc
jmp 0x402c0e
mov eax, dword [0x4205a0]
cmp eax, ebp
je 0x4027b6
push eax
call fcn.00408a6b
mov dword [0x4205a0], ebp
movzx eax, word [0x4205da]
push ebp
push 3
push eax
call fcn.00404024
cmp eax, ebp
je 0x4027d9
cmp eax, dword [esp + 0x10]
jle 0x4027d4
mov dword [esp + 0x10], eax
cmp eax, 1
jg 0x402786
movzx eax, word [0x4205da]
push 0x4205bc
push eax
push dword [0x4205a0]
call fcn.0040c309
cmp dword [esp + 0x50], ebp
je 0x402801
push dword [esp + 0x50]
push ebx
call fcn.00408e06
cmp byte [0x4258d0], 0
je 0x402852
cmp dword [0x426980], 5
je 0x402852
mov edi, 0x4258d0
push edi
call fcn.00408d13
mov esi, eax
cmp esi, ebp
jbe 0x402852
push esi
push ebx
push edi
call fcn.0040bda5
test eax, eax
jne 0x402852
lea esi, [esi + 0x420684]
mov al, byte [esi]
cmp al, 0x5c
je 0x402840
cmp al, 0x2f
jne 0x402843
inc esi
jmp 0x402836
push esi
call fcn.00408d13
inc eax
push eax
push esi
push ebx
call fcn.00408cc8
cmp dword [0x426980], 2
jne 0x402872
push ebx
call fcn.00406f83
mov esi, eax
push esi
call fcn.00408d13
inc eax
push eax
push esi
push ebx
call fcn.00408cc8
push ebx
call fcn.00407016
cmp byte [eax], 0x5c
sete byte [esp + 0x17]
cmp byte [esp + 0x17], 0
je 0x40288a
mov byte [eax], 0
push ebx
push ebx
call fcn.00407032
cmp dword [0x426980], 5
jne 0x4028bb
cmp byte [0x420685], 0x5f
jne 0x4028bb
movsx eax, byte [0x420686]
push eax
call fcn.00406e01
test al, al
je 0x4028bb
mov byte [0x420685], 0x3a
push ebx
mov ebp, 0x421284
push ebp
call fcn.00408e06
xor eax, eax
mov word [0x420a84], ax
mov eax, dword [0x4205ba]
shr eax, 0xb
test al, 1
je 0x402904
mov esi, 0x400
push esi
mov edi, 0x420a84
push edi
push ebx
call fcn.0040c7bd
push esi
push ebp
xor eax, eax
push edi
mov word [0x421282], ax
call fcn.0040c767
mov byte [0x421683], 0
mov eax, dword [0x410550]
test byte [eax + 0x24], 0x10
je 0x402920
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x40291b
cmp eax, 0xb
jne 0x402920
mov byte [esp + 0x17], 1
xor esi, esi
cmp byte [0x427353], 0x49
push esi
sete al
movzx eax, al
push eax
movzx eax, byte [0x426a72]
push eax
push esi
push ebx
call fcn.0040a4ad
test al, al
je 0x402c20
cmp byte [0x426a72], 0
jne 0x402b8f
cmp byte [esp + 0x17], 0
jne 0x402a87
push 0x420a84
push ebx
call fcn.00403f99
cmp eax, 0xffffffff
je 0x402a6d
test eax, eax
je 0x4029a5
cmp eax, 1
jne 0x402b8f
mov eax, dword [0x42695c]
cmp eax, 2
je 0x402c0e
cmp byte [0x42697d], 0
jne 0x4029a1
cmp byte [0x42697c], 0
je 0x4029b3
test esi, esi
jmp 0x4029ad
mov eax, dword [0x42695c]
cmp eax, 2
je 0x402c0e
test eax, eax
je 0x4029c0
cmp eax, 3
jne 0x402b8f
push 0x421284
lea eax, [esp + 0x294]
push eax
call fcn.00408e06
movzx eax, word [0x4205c0]
movzx ecx, word [0x4205be]
push 0
shl eax, 0x10
add eax, ecx
push eax
push dword [0x40f92c]
lea eax, [esp + 0x29c]
push dword [0x40f928]
push eax
push 0x40f941
call fcn.0040a4e1
mov al, byte [0x40f941]
cmp al, 0x43
je 0x402c20
cmp al, 0x41
je 0x402b85
cmp al, 0x4e
je 0x402c0e
cmp al, 0x52
je 0x402a3c
cmp al, 0x59
je 0x402b8f
cmp al, 0x72
je 0x402a3c
cmp al, 0x79
jne 0x4029c0
jmp 0x402b8f
lea eax, [esp + 0x290]
push eax
push ebx
call fcn.00408e06
push ebx
call fcn.00408d13
cmp byte [eax + 0x420683], 0xa
jne 0x402a61
dec eax
mov byte [eax + 0x420684], 0
test eax, eax
je 0x402a3c
xor esi, esi
inc esi
jmp 0x402960
cmp byte [0x42697c], 0
je 0x402b8f
test esi, esi
je 0x402c0e
jmp 0x402b8f
cmp byte [0x42697c], 0
jne 0x402c0e
cmp byte [0x420684], 0
je 0x402c0e
mov eax, dword [0x410550]
mov ecx, dword [eax + 0x1c]
xor esi, esi
test ecx, ecx
je 0x402ab4
cmp ecx, 0xb
jne 0x402ab7
mov esi, dword [eax + 0x24]
mov edi, 0x420a84
push edi
push ebx
call fcn.00403525
test al, al
jne 0x402b2c
cmp byte [0x426a11], al
push esi
sete al
movzx eax, al
push eax
push edi
push ebx
call fcn.00403738
test eax, eax
je 0x402b2c
push 1
push edi
push ebx
call fcn.0040379f
cmp byte [0x426a11], 0
push esi
sete al
movzx eax, al
push eax
push edi
push ebx
call fcn.00403738
test eax, eax
je 0x402b2c
push 0x421284
push 0x6f
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
add esp, 0xc
mov ecx, 0x424098
call fcn.00401846
jmp 0x402c0e
movzx esi, word [0x4205c0]
movzx eax, word [0x4205be]
shl esi, 0x10
lea ecx, [esp + 0x7c]
or esi, eax
call fcn.0040c258
push esi
lea ecx, [esp + 0x80]
call fcn.0040c1de
push 0
push 0
lea eax, [esp + 0x84]
push eax
push edi
push ebx
call fcn.004038fd
push edi
push ebx
lea ecx, [esp + 0xa8]
call fcn.0040bfb2
push esi
lea ecx, [esp + 0x58]
call fcn.00401fb3
jmp 0x402c0e
mov dword [0x42695c], 1
mov eax, dword [0x410550]
test byte [eax + 0x28], 1
je 0x402be7
call fcn.0040c754
test eax, eax
je 0x402be7
cmp eax, 1
jne 0x402bd1
cmp dword [0x40f8e8], 0
jne 0x402bcb
push 0x421284
push 0x73
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
add esp, 0xc
inc dword [esp + 0x20]
jmp 0x402c0e
cmp eax, dword [esp + 0x10]
jle 0x402bdb
mov dword [esp + 0x10], eax
push 0x421284
push 0x73
jmp 0x402789
and dword [0x420654], 0
call fcn.00401a97
test eax, eax
je 0x402c0e
cmp eax, dword [esp + 0x10]
jle 0x402c01
mov dword [esp + 0x10], eax
cmp dword [0x420654], 1
jg 0x402d47
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x1c]
jl 0x40243a
mov ecx, dword [0x420580]
push 0
push dword [esp + 0x7c]
push dword [esp + 0x7c]
call fcn.004033f6
mov ecx, dword [0x420580]
call fcn.00402f5d
push 0x2000
push dword [0x42055c]
mov dword [0x420590], eax
mov dword [0x420594], edx
call fcn.00403bb6
mov eax, dword [esp + 0x68]
inc dword [esp + 0x38]
cmp dword [esp + 0x18], 0
mov dword [0x420560], eax
mov eax, dword [esp + 0x6c]
mov dword [0x420568], eax
mov eax, dword [esp + 0x70]
mov dword [0x42056c], eax
je 0x402095
mov ebx, 0x400
push ebx
lea eax, [esp + 0x694]
push eax
lea eax, [esp + 0x298]
push eax
lea ecx, [esp + 0xac]
call fcn.0040c0e8
xor ebp, ebp
test al, al
je 0x402d0c
mov esi, dword [esp + 0x54]
mov edi, dword [esi]
lea ecx, [esp + 0x7c]
call fcn.0040c258
push edi
lea ecx, [esp + 0x80]
call fcn.0040c1de
push ebp
push ebp
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x69c]
push eax
lea eax, [esp + 0x2a0]
push eax
call fcn.004038fd
push ebx
lea eax, [esp + 0x694]
push eax
lea eax, [esp + 0x298]
push eax
lea ecx, [esp + 0xac]
add esi, 4
call fcn.0040c0e8
test al, al
jne 0x402cb1
cmp dword [0x4237e0], ebp
jne 0x402d88
cmp dword [esp + 0x60], ebp
je 0x402d88
cmp byte [0x421704], 0
jne 0x402d88
push 0xa0
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
mov edi, dword [esp + 0x18]
pop ecx
pop ecx
cmp edi, ebp
jne 0x402d8c
xor edi, edi
inc edi
jmp 0x402d8c
lea ecx, [esp + 0xa0]
call fcn.0040bf67
cmp dword [esp + 0x54], 0
je 0x402d63
push dword [esp + 0x54]
call fcn.00408a6b
lea ecx, [esp + 0x198]
call fcn.0040bf67
cmp dword [esp + 0x44], 0
je 0x402d7f
push dword [esp + 0x44]
call fcn.00408a6b
mov eax, dword [esp + 0x10]
jmp 0x402e39
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
movzx esi, word [esp + 0x20]
inc ebx
cmp ebx, esi
jne 0x402dba
cmp byte [0x427353], 0x49
je 0x402dba
push 0x343
call fcn.004089d9
push eax
push 0x427f84
call fcn.00409bef
pop ecx
pop ecx
cmp ebx, ebp
jne 0x402dd5
cmp edi, 1
jg 0x402dd5
xor ax, ax
cmp ax, word [esp + 0x28]
sbb edi, edi
and edi, 0x46
add edi, 0xb
jmp 0x402e01
cmp ebx, esi
jne 0x402de2
cmp edi, 1
jg 0x402de2
push 0x52
jmp 0x402df0
cmp word [esp + 0x28], bp
jbe 0x402df3
cmp edi, 1
jg 0x402df3
push 0x51
pop edi
jmp 0x402e01
cmp word [esp + 0x20], bp
jbe 0x402e01
cmp edi, ebp
jne 0x402e01
xor edi, edi
inc edi
lea ecx, [esp + 0xa0]
call fcn.0040bf67
cmp dword [esp + 0x54], ebp
je 0x402e1c
push dword [esp + 0x54]
call fcn.00408a6b
lea ecx, [esp + 0x198]
call fcn.0040bf67
cmp dword [esp + 0x44], ebp
je 0x402e37
push dword [esp + 0x44]
call fcn.00408a6b
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1368
ret