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

Disassembly:
sub esp, 0x14
push ebx
push esi
mov esi, dword [esp + 0x2c]
xor ebx, ebx
mov byte [esp + 0xa], 0
mov byte [esp + 0xb], 0
mov byte [esp + 0xc], 0
test esi, esi
je 0x432b3d
cmp dword [esi + 0x86cc], 0xc0dedbad
jne 0x432b3d
push ebp
push edi
jmp 0x431e70
xor ebp, ebp
mov byte [esp + 0x34], 0
cmp byte [esi + 0x85e1], 0
je 0x431ec1
push dword [esi + 0x85e8]
push esi
push 0x457d34
push esi
call fcn.00430890
mov eax, dword [esi + 0xc]
add esp, 0x10
cmp eax, 0x11
jge 0x431eae
cmp eax, 2
je 0x431ea9
mov dword [esi + 0xc], 2
or ebp, 0xffffffff
xor ebx, ebx
mov byte [esi + 0x85e1], 0
mov dword [esi + 8], 0
jmp 0x432afc
mov eax, dword [esi + 8]
lea edi, [esi + 8]
test eax, eax
jne 0x431ee0
mov ecx, dword [esi + 0xc]
cmp ecx, 2
jle 0x431edc
cmp ecx, 0x10
jl 0x432b12
test eax, eax
je 0x431eef
mov ecx, dword [esi + 0xc]
cmp ecx, 2
jle 0x431eef
cmp ecx, 0x11
jge 0x431eef
mov dword [eax], esi
cmp dword [edi], ebp
je 0x43201f
mov eax, dword [esi + 0xc]
cmp eax, 2
jl 0x43201f
cmp eax, 0x11
jge 0x43201f
cmp eax, 8
setle al
movzx eax, al
push eax
lea eax, [esp + 0x30]
push eax
push esi
call fcn.00433aa0
add esp, 0xc
test eax, eax
jns 0x43201f
mov eax, dword [esi + 0xc]
cmp eax, 3
jne 0x431f61
push dword [esi + 0x444]
push dword [esi + 0x440]
push dword [esp + 0x38]
push dword [esp + 0x38]
call fcn.00435ab0
push eax
push 0x457d84
push esi
call fcn.004307c0
add esp, 0x1c
jmp 0x431ff5
cmp eax, 4
jne 0x431f90
push dword [esi + 0x444]
push dword [esi + 0x440]
push dword [esp + 0x38]
push dword [esp + 0x38]
call fcn.00435ab0
push eax
push 0x457db0
push esi
call fcn.004307c0
add esp, 0x1c
jmp 0x431ff5
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x431fc7
push eax
push dword [esi + 0x5c]
push dword [esi + 0x444]
push dword [esi + 0x440]
push dword [esi + 0x78]
push dword [esi + 0x74]
call fcn.00435ab0
add esp, 0x10
push eax
push 0x457de0
push esi
call fcn.004307c0
add esp, 0x14
jmp 0x431ff5
push dword [esi + 0x5c]
push dword [esi + 0x444]
push dword [esi + 0x440]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
call fcn.00435ab0
add esp, 0x10
push eax
push 0x457e30
push esi
call fcn.004307c0
add esp, 0x10
cmp dword [esi + 0xc], 9
jle 0x432009
mov eax, dword [edi]
mov byte [esp + 0x34], 1
mov byte [eax + 0x230], 1
push 1
mov ebx, 0x1c
push ebx
push edi
call fcn.004283c0
add esp, 0xc
jmp case.0x43202b.1
mov eax, dword [esi + 0xc]
cmp eax, 0x12
ja case.default.0x43202b
jmp dword [eax*4 + 0x432b48]
push esi
call fcn.0043d480
mov ebx, eax
add esp, 4
test ebx, ebx
jne case.0x43202b.1
cmp dword [esi + 0xc], 2
je 0x432052
mov dword [esi + 0xc], 2
push 1
push esi
call fcn.0043ea10
add esp, 8
or ebp, 0xffffffff
jmp case.0x43202b.1
push 2
push esi
call fcn.0043ea10
lea eax, [esp + 0x1a]
push eax
lea eax, [esp + 0x22]
push eax
push edi
push esi
call fcn.004280c0
mov ebx, eax
add esp, 0x18
cmp ebx, 0x59
jne 0x4320ba
cmp dword [esi + 0xc], 1
je 0x432095
mov dword [esi + 0xc], 1
mov eax, dword [esp + 0x28]
push esi
mov eax, dword [eax + 0x18]
push dword [eax + 4]
push eax
call fcn.0043ba10
add esp, 0xc
mov ebx, eax
neg ebx
sbb ebx, ebx
and ebx, 0xffffffe5
add ebx, 0x1b
jmp case.0x43202b.1
test ebx, ebx
jne case.0x43202b.1
push dword [edi]
push esi
call fcn.0043ac50
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4320dd
mov byte [esp + 0x34], 1
jmp case.0x43202b.1
cmp byte [esp + 0x16], 0
je 0x4320fe
cmp dword [esi + 0xc], 3
mov edx, dword [esp + 0x28]
je 0x4329d9
mov dword [esi + 0xc], 3
jmp 0x4329d9
or ebp, 0xffffffff
cmp byte [esp + 0x12], 0
je 0x432126
mov edx, dword [esp + 0x28]
xor eax, eax
cmp byte [edx + 0x30], al
sete al
add eax, 8
push eax
push esi
call fcn.00431c20
add esp, 8
jmp 0x4329d9
mov eax, dword [edi]
mov edx, dword [esp + 0x28]
cmp dword [eax + 0x518], 1
jne 0x43214b
cmp dword [esi + 0xc], 5
je 0x4329d9
mov dword [esi + 0xc], 5
jmp 0x4329d9
cmp dword [esi + 0xc], 4
je 0x4329d9
mov dword [esi + 0xc], 4
jmp 0x4329d9
mov eax, dword [edi]
push dword [eax + 0xa0]
push dword [eax + 0x88]
push eax
call fcn.00434920
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
je 0x432192
push 0x457e74
push esi
xor ebx, ebx
call fcn.00430890
add esp, 8
jmp 0x432197
mov ebx, 6
mov eax, dword [esp + 0x28]
push esi
push eax
call fcn.00432ec0
add esp, 8
cmp dword [esp + 0x1c], ebp
je 0x4321d8
xor ebx, ebx
or ebp, 0xffffffff
cmp byte [esp + 0x12], bl
je 0x432126
mov edx, dword [esp + 0x28]
xor eax, eax
cmp byte [edx + 0x30], al
sete al
add eax, 8
push eax
push esi
call fcn.00431c20
add esp, 8
jmp 0x4329d9
mov edx, dword [esp + 0x28]
test ebx, ebx
je 0x4329d9
mov byte [esp + 0x34], 1
jmp 0x4329d9
lea eax, [esp + 0x12]
push eax
push dword [edi]
call fcn.00437180
mov ebx, eax
add esp, 8
mov eax, dword [edi]
or ebp, 0xffffffff
cmp byte [eax + 0x246], 0
je 0x432229
mov edx, dword [esp + 0x28]
xor ebx, ebx
cmp dword [esi + 0xc], 2
je 0x4329d9
mov dword [esi + 0xc], 2
jmp 0x4329d9
test ebx, ebx
jne case.0x43202b.1
cmp dword [eax + 0x518], 2
jne case.0x43202b.1
cmp dword [esi + 0xc], 6
mov edx, dword [esp + 0x28]
je 0x4329d9
mov dword [esi + 0xc], 6
jmp 0x4329d9
lea eax, [esp + 0x17]
push eax
push 0
push dword [edi]
call fcn.00433510
add esp, 0xc
mov ebx, eax
cmp byte [esp + 0x17], 0
je 0x432295
test ebx, ebx
jne 0x43229d
mov eax, dword [edi]
xor ecx, ecx
or ebp, 0xffffffff
cmp byte [eax + 0x23d], cl
sete cl
add ecx, 5
push ecx
push esi
call fcn.00431c20
jmp 0x4329d2
test ebx, ebx
je case.0x43202b.1
mov byte [esp + 0x34], 1
jmp case.0x43202b.1
lea eax, [esp + 0x12]
push eax
push dword [edi]
call fcn.00428ab0
add esp, 8
mov ebx, eax
cmp byte [esp + 0x12], 0
jne 0x4322d9
cmp dword [esi + 0xc], 7
mov edx, dword [esp + 0x28]
je 0x4329d9
mov dword [esi + 0xc], 7
jmp 0x4329d9
test ebx, ebx
jne 0x4322fe
mov edx, dword [esp + 0x28]
xor eax, eax
cmp byte [edx + 0x30], al
sete al
add eax, 8
push eax
push esi
call fcn.00431c20
add esp, 8
or ebp, 0xffffffff
jmp 0x4329d9
push esi
call fcn.0043d470
push 1
push ebx
push edi
call fcn.004283c0
add esp, 0x10
mov byte [esp + 0x34], 1
jmp case.0x43202b.1
lea eax, [esp + 0x12]
push eax
push dword [edi]
call fcn.00428b50
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4322fe
mov edx, dword [esp + 0x28]
cmp byte [esp + 0x12], al
je 0x4329d9
jmp 0x4322e1
mov edx, dword [edi]
cmp byte [edx + 0x2cd], 0
jne case.0x43202b.1
push dword [edx + 0x2d0]
push esi
call fcn.00431c00
add esp, 8
test al, al
je case.0x43202b.1
mov byte [edx + 0x2cd], 1
cmp dword [esi + 0xc], 9
je 0x432379
mov dword [esi + 0xc], 9
or ebp, 0xffffffff
jmp case.0x43202b.1
cmp byte [esi + 0x29d], 0
je 0x4323aa
mov eax, dword [edi]
mov byte [eax + 0x230], 0
cmp dword [esi + 0xc], 0x10
je 0x4323a0
mov dword [esi + 0xc], 0x10
xor ebx, ebx
or ebp, 0xffffffff
jmp case.0x43202b.1
lea eax, [esp + 0x13]
push eax
push edi
call fcn.004282a0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x43244a
cmp byte [esp + 0x13], al
jne 0x432416
cmp byte [esi + 0x380], al
je 0x432402
mov eax, dword [esi + 0x8608]
cmp eax, 6
je 0x4323e0
cmp eax, 4
jne 0x432402
push 0
push 0
push edi
call fcn.004283c0
add esp, 0xc
cmp dword [esi + 0xc], 0x10
je 0x4323fa
mov dword [esi + 0xc], 0x10
or ebp, 0xffffffff
jmp case.0x43202b.1
cmp dword [esi + 0xc], 0xa
je 0x43240f
mov dword [esi + 0xc], 0xa
xor ebp, ebp
jmp case.0x43202b.1
mov eax, dword [edi]
cmp byte [eax + 0x238], 0
je 0x432435
cmp dword [esi + 0xc], 0xb
je 0x43242e
mov dword [esi + 0xc], 0xb
xor ebp, ebp
jmp case.0x43202b.1
cmp dword [esi + 0xc], 0xc
je 0x432442
mov dword [esi + 0xc], 0xc
or ebp, 0xffffffff
jmp case.0x43202b.1
cmp ebx, 0x37
jne 0x432508
mov eax, dword [edi]
cmp byte [eax + 0x231], 0
je 0x432508
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], ebp
push ecx
push eax
mov byte [esp + 0x1d], 0
call fcn.0043d9d0
add esp, 8
test eax, eax
je 0x432486
mov ebx, eax
mov byte [esp + 0x34], 1
jmp 0x43248f
cmp dword [esp + 0x18], ebp
setne byte [esp + 0x15]
push esi
call fcn.0043d470
push 0
push ebx
push edi
call fcn.004283c0
add esp, 0x10
cmp byte [esp + 0x15], 0
je 0x4324f1
test eax, eax
je 0x4324c5
cmp eax, 0x37
je 0x4324c5
mov ebx, eax
push dword [esp + 0x18]
call dword [0x5fa2a8]
add esp, 4
jmp case.0x43202b.1
push 2
push dword [esp + 0x1c]
push esi
call fcn.0043d1a0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4324b3
cmp dword [esi + 0xc], 2
je 0x4324e7
mov dword [esi + 0xc], 2
or ebp, 0xffffffff
xor ebx, ebx
jmp case.0x43202b.1
push dword [esp + 0x18]
mov byte [esp + 0x38], 1
call dword [0x5fa2a8]
add esp, 4
jmp case.0x43202b.1
push esi
call fcn.0043d470
add esp, 4
cmp dword [edi], ebp
je 0x432521
push 0
push ebx
push edi
call fcn.004283c0
add esp, 0xc
mov byte [esp + 0x34], 1
jmp case.0x43202b.1
lea eax, [esp + 0x13]
push eax
push dword [edi]
call fcn.00428b90
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x43256c
cmp byte [esp + 0x13], al
je case.0x43202b.1
mov eax, dword [edi]
xor ecx, ecx
cmp byte [eax + 0x238], cl
sete cl
add ecx, 0xb
push ecx
push esi
call fcn.00431c20
add esp, 8
or ebp, 0xffffffff
jmp case.0x43202b.1
push esi
call fcn.0043d470
push 0
push ebx
push edi
call fcn.004283c0
add esp, 0x10
mov byte [esp + 0x34], 1
jmp case.0x43202b.1
lea eax, [esp + 0x20]
push eax
push dword [edi]
call fcn.00428330
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x43256c
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x43240f
cmp ecx, 1
sete al
lea eax, [eax*2 + 0xa]
push eax
push esi
call fcn.00431c20
add esp, 8
or ebp, 0xffffffff
jmp case.0x43202b.1
push dword [edi]
push esi
call fcn.0043aca0
mov eax, dword [esp + 0x30]
push eax
call fcn.00431190
mov eax, dword [edi]
add esp, 0xc
cmp dword [eax + 0x268], 0xffffffff
jne 0x432606
cmp dword [eax + 0x26c], 0xffffffff
jne 0x432606
cmp dword [esi + 0xc], 0x10
je 0x432613
mov dword [esi + 0xc], 0x10
or ebp, 0xffffffff
jmp case.0x43202b.1
cmp dword [esi + 0xc], 0xd
je 0x432613
mov dword [esi + 0xc], 0xd
or ebp, 0xffffffff
jmp case.0x43202b.1
mov edx, dword [edi]
cmp byte [edx + 0x2cc], 0
jne case.0x43202b.1
push dword [edx + 0x2d4]
push esi
call fcn.00431c00
add esp, 8
test al, al
je case.0x43202b.1
mov byte [edx + 0x2cc], 1
cmp dword [esi + 0xc], 0xe
je 0x432655
mov dword [esi + 0xc], 0xe
or ebp, 0xffffffff
jmp case.0x43202b.1
push dword [edi]
call fcn.0043eb60
add esp, 4
test eax, eax
je 0x432672
mov ebx, 0x2a
jmp 0x432685
push dword [esp + 0x30]
push dword [esp + 0x30]
push esi
call fcn.00441380
add esp, 0xc
mov ebx, eax
mov eax, dword [esi + 0x1bc]
test eax, eax
je 0x43269b
cmp dword [esi + 0x404], eax
jge case.0x43202b.1
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4326b1
cmp dword [esi + 0x400], eax
jge case.0x43202b.1
cmp dword [esi + 0xc], 0xe
mov edx, dword [esp + 0x28]
je 0x4329d9
mov dword [esi + 0xc], 0xe
jmp 0x4329d9
mov ecx, dword [esi + 0x1bc]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x15], 0
test ecx, ecx
jle 0x432715
mov edx, dword [esi + 0x404]
cmp edx, ecx
jle 0x432715
mov eax, dword [esi + 0x248]
mov dword [esi + 0xc], 0xf
test eax, eax
jne 0x4326fe
mov eax, 0x4000
push eax
push edx
push ecx
call fcn.0043dc30
push eax
push esi
call fcn.00430eb0
add esp, 0x14
jmp case.0x43202b.1
mov ecx, dword [esi + 0x1c0]
test ecx, ecx
jle 0x432756
mov edx, dword [esi + 0x400]
cmp edx, ecx
jle 0x432756
mov eax, dword [esi + 0x248]
mov dword [esi + 0xc], 0xf
test eax, eax
jne 0x43273f
mov eax, 0x4000
push eax
push edx
push ecx
call fcn.0043dc30
push eax
push esi
call fcn.00430eb0
add esp, 0x14
jmp case.0x43202b.1
lea eax, [esp + 0x14]
push eax
push dword [edi]
call fcn.0043d690
add esp, 8
mov ebx, eax
test byte [esi + 0xd4], 1
jne 0x432779
mov eax, dword [edi]
mov byte [eax + 0x2cc], 0
test byte [esi + 0xd4], 2
jne 0x43278b
mov eax, dword [edi]
mov byte [eax + 0x2cd], 0
cmp byte [esp + 0x14], 0
jne 0x432797
cmp ebx, 0x38
jne 0x4327c2
lea eax, [esp + 0x18]
push eax
push dword [edi]
call fcn.0043d9d0
add esp, 8
test eax, eax
jne 0x4327c2
cmp dword [esp + 0x18], ebp
setne al
mov byte [esp + 0x15], al
test al, al
je 0x4327c2
xor ebx, ebx
mov byte [esp + 0x14], 1
jmp 0x43280a
test ebx, ebx
je 0x4327ff
mov ecx, dword [edi]
mov eax, dword [ecx + 0x25c]
test byte [eax + 0x40], 2
jne 0x4327db
mov byte [ecx + 0x230], 1
push esi
call fcn.0043d470
push 0
push ebx
push edi
call fcn.004283c0
add esp, 0x10
push dword [esp + 0x18]
call dword [0x5fa2a8]
add esp, 4
jmp case.0x43202b.1
cmp byte [esp + 0x14], 0
je 0x432938
push esi
call fcn.0043d470
mov eax, dword [edi]
push dword [eax + 0x2d4]
push esi
call fcn.00428bf0
mov eax, dword [edi]
add esp, 0xc
mov eax, dword [eax + 0x2d4]
mov eax, dword [eax]
test eax, eax
je 0x43283b
push 1
push dword [eax]
call fcn.00430eb0
add esp, 8
mov eax, dword [esp + 0x28]
push eax
call fcn.00431190
add esp, 4
cmp dword [esi + 0xe0], ebp
jne 0x4328c0
cmp byte [esp + 0x15], 0
jne 0x4328ee
cmp dword [esi + 0xdc], ebp
je 0x43289a
push dword [esp + 0x18]
call dword [0x5fa2a8]
mov eax, dword [esi + 0xdc]
push 1
push eax
push esi
mov dword [esp + 0x28], eax
mov dword [esi + 0xdc], ebp
call fcn.0043d1a0
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x432895
mov dword [esp + 0x18], ebp
jmp 0x43289a
mov byte [esp + 0x34], 1
cmp dword [esi + 0xc], 0x10
je 0x432935
push dword [esp + 0x18]
mov dword [esi + 0xc], 0x10
or ebp, 0xffffffff
call dword [0x5fa2a8]
add esp, 4
jmp case.0x43202b.1
cmp byte [esp + 0x15], 0
jne 0x4328ee
push dword [esp + 0x18]
call dword [0x5fa2a8]
mov eax, dword [esi + 0xe0]
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esi + 0xe0], ebp
mov dword [esp + 0x1c], 3
jmp 0x4328f6
mov dword [esp + 0x1c], 2
push 0
push 0
push edi
call fcn.004283c0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x432938
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push esi
call fcn.0043d1a0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x432938
cmp dword [esi + 0xc], 2
je 0x43292d
mov dword [esi + 0xc], 2
mov dword [esp + 0x18], 0
or ebp, 0xffffffff
push dword [esp + 0x18]
call dword [0x5fa2a8]
add esp, 4
jmp case.0x43202b.1
mov eax, dword [edi]
or ebp, 0xffffffff
test eax, eax
je 0x432986
push dword [eax + 0x2d4]
push esi
call fcn.00428bf0
mov eax, dword [esp + 0x30]
push eax
call fcn.00431190
push 0
push ebx
push edi
call fcn.004283c0
add esp, 0x18
test ebx, ebx
jne 0x43297b
mov ebx, eax
cmp dword [edi], 0
je 0x432986
mov dword [edi], 0
cmp byte [esi + 0x380], 0
je 0x4329ab
cmp dword [esi + 0x8608], 6
je 0x4329ab
cmp dword [esi + 0xc], 0
mov edx, dword [esp + 0x28]
je 0x4329d9
mov dword [esi + 0xc], 0
jmp 0x4329d9
cmp dword [esi + 0xc], 0x11
mov edx, dword [esp + 0x28]
je 0x432ac0
mov eax, dword [esi + 0x40]
mov dword [esi + 0xc], 0x11
dec dword [eax + 0x10]
jmp 0x4329d9
push 0
push esi
mov dword [edi], ebp
call fcn.00430d20
add esp, 8
mov edx, dword [esp + 0x28]
cmp dword [esi + 0xc], 0x11
jge 0x432abe
test ebx, ebx
je 0x432a77
push edx
mov byte [esi + 0x85e1], 0
call fcn.00431190
mov eax, dword [edi]
add esp, 4
test eax, eax
je 0x432a53
mov byte [eax + 0x2cd], 0
mov eax, dword [edi]
mov byte [eax + 0x2cc], 0
mov eax, dword [edi]
push dword [eax + 0x2d0]
push esi
call fcn.00428bf0
mov eax, dword [edi]
push dword [eax + 0x2d4]
push esi
call fcn.00428bf0
add esp, 0x10
cmp byte [esp + 0x34], 0
je 0x432a62
cmp ebx, 0x1c
sete al
movzx eax, al
push eax
push dword [edi]
call fcn.004281e0
add esp, 8
mov dword [edi], 0
jmp 0x432a62
cmp dword [esi + 0xc], 2
jne 0x432a62
push esi
call fcn.0043d470
add esp, 4
cmp dword [esi + 0xc], 0x11
je 0x432ac0
mov eax, dword [esi + 0x40]
mov dword [esi + 0xc], 0x11
dec dword [eax + 0x10]
jmp 0x432aba
mov eax, dword [edi]
test eax, eax
je 0x432aba
push eax
call fcn.0043eb60
add esp, 4
test eax, eax
je 0x432aba
mov eax, dword [edi]
xor ecx, ecx
mov ebx, 0x2a
mov byte [eax + 0x230], 1
cmp dword [esi + 0xc], 0x10
setge cl
add ecx, 0x10
cmp dword [esi + 0xc], ecx
je 0x432ab7
mov dword [esi + 0xc], ecx
cmp ecx, 0x11
jne 0x432ab7
mov eax, dword [esi + 0x40]
dec dword [eax + 0x10]
or ebp, 0xffffffff
cmp dword [esi + 0xc], 0x11
jne 0x432afc
mov eax, dword [esp + 0x28]
lea ecx, [esi + 0x14]
mov dword [ecx], 1
mov dword [ecx + 4], esi
mov dword [ecx + 8], ebx
mov eax, dword [eax + 0x14]
push ecx
push dword [eax + 4]
push eax
call fcn.0043ba10
add esp, 0xc
mov ebp, eax
neg ebp
sbb ebp, ebp
and ebp, 0xfffffffd
add ebp, 3
cmp dword [esi + 0xc], 0x12
je 0x432afc
mov dword [esi + 0xc], 0x12
cmp ebp, 0xffffffff
je 0x431e70
pop edi
mov eax, ebp
mov dword [esi + 0x10], ebx
pop ebp
pop esi
pop ebx
add esp, 0x14
ret
push dword [esi + 0xc]
push 0x457d58
push esi
call fcn.004307c0
add esp, 0xc
pop edi
pop ebp
pop esi
mov eax, 4
pop ebx
add esp, 0x14
ret
pop edi
pop ebp
mov dword [esi + 0x10], ebx
xor eax, eax
pop esi
pop ebx
add esp, 0x14
ret
pop esi
mov eax, 2
pop ebx
add esp, 0x14
ret