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

Disassembly:
mov eax, 0x12c4
call fcn.004012c0
or dword [esp + 0x18], 0xffffffff
push ebx
push ebp
push esi
xor esi, esi
push edi
push 0x40
lea ecx, [esp + 0x44]
mov dword [esp + 0x30], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x1c], esi
call fcn.00402175
lea ecx, [esp + 0x144]
call fcn.0040c98e
lea ecx, [esp + 0x9c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
call fcn.0040c98e
mov eax, dword [esp + 0x40]
mov dword [0x411548], eax
mov dword [0x410908], 1
cmp byte [0x42584a], 0
jne 0x402f42
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebx
inc edi
mov ebp, 0x41093c
mov esi, 0x42167c
mov eax, dword [esp + 0x1c]
cmp eax, 0x40
jl 0x402387
cmp byte [0x4226fc], 0
je 0x402679
cmp eax, dword [esp + 0x44]
jl 0x40239c
mov eax, dword [esp + 0x1c]
inc eax
push eax
lea ecx, [esp + 0x44]
call fcn.00402256
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
push 4
add ecx, eax
push ebp
mov dword [0x411548], ecx
call fcn.0040406c
test eax, eax
je 0x4025e7
push 4
push 0x4215a5
push ebp
call fcn.004094db
test eax, eax
jne 0x4025f4
call fcn.004087fe
cmp eax, ebx
jne 0x402653
movzx eax, word [0x4215dc]
push eax
movzx eax, word [0x4215f8]
push 2
push eax
call fcn.0040445a
cmp eax, ebx
je 0x40240b
cmp eax, dword [esp + 0x10]
jle 0x402403
mov dword [esp + 0x10], eax
cmp eax, edi
jg 0x402659
movzx eax, word [0x4215fa]
push ebx
push 3
push eax
call fcn.0040445a
cmp eax, ebx
je 0x402431
cmp eax, dword [esp + 0x10]
jle 0x402429
mov dword [esp + 0x10], eax
cmp eax, edi
jg 0x402659
movzx eax, word [0x4215fa]
push 0x4215de
push eax
push dword [0x421598]
call fcn.0040cc17
movzx eax, word [0x4215fc]
push ebx
push ebx
push eax
call fcn.0040445a
cmp eax, ebx
je 0x40246e
cmp eax, dword [esp + 0x10]
jle 0x402466
mov dword [esp + 0x10], eax
cmp eax, edi
jg 0x402659
test byte [0x421604], 0x10
je 0x40249d
movzx eax, byte [0x4215d9]
cmp eax, ebx
je 0x402487
cmp eax, 0xb
jne 0x40249d
push esi
call fcn.004075a4
cmp byte [eax], 0x5c
je 0x40249d
push 0x40e2f8
push esi
call fcn.00409538
lea ecx, [esp + 0x5ec]
call fcn.0040228b
push 0xce8
push ebx
lea eax, [esp + 0x5f4]
push eax
call fcn.004092c3
push esi
lea eax, [esp + 0x620]
push eax
call fcn.00409415
movzx eax, word [0x4215e2]
movzx ecx, word [0x4215e0]
shl eax, 0x10
or eax, ecx
mov dword [esp + 0x608], eax
mov eax, dword [0x4215f0]
mov dword [esp + 0x12cc], eax
mov eax, dword [0x4215f4]
mov dword [esp + 0x12d0], eax
mov eax, dword [0x4215dc]
shr eax, 0xb
test al, 1
je 0x402554
mov eax, 0x200
or word [esp + 0x5f4], ax
push 0x400
lea eax, [esp + 0xa20]
push eax
push esi
call fcn.0040d0d3
xor eax, eax
mov word [esp + 0x121a], ax
push 0x3ff
lea eax, [esp + 0x620]
push eax
lea eax, [esp + 0xa24]
push eax
call fcn.0040d076
mov byte [esp + 0xa1b], 0
push 5
push 0
lea eax, [esp + 0x5f4]
push eax
mov ecx, 0x4269b0
call fcn.004014f2
test eax, eax
setne bl
cmp byte [0x42167c], 0
je 0x4025a2
cmp byte [0x42167d], 0
je 0x4025a2
cmp byte [0x42167e], 0
mov eax, 0x42167e
je 0x4025a2
cmp byte [eax], 0x3a
jne 0x402597
mov byte [eax], 0x5f
push eax
call fcn.0040223b
cmp byte [eax], 0
jne 0x40258f
test bl, bl
je 0x4025cb
call fcn.00401be2
test eax, eax
je 0x4025c7
push esi
lea ecx, [esp + 0x148]
call fcn.0040c9ad
inc dword [esp + 0x1c]
add dword [esp + 0x14], 0x30
jmp 0x4025cb
inc dword [esp + 0x24]
add dword [esp + 0x38], edi
lea ecx, [esp + 0x121c]
adc dword [esp + 0x3c], 0
call fcn.00407193
xor ebx, ebx
jmp 0x402371
mov dword [esp + 0x10], 0x33
jmp 0x402675
mov ecx, dword [0x421620]
mov eax, ecx
xor eax, dword [esp + 0x38]
mov esi, 0xffff
and eax, esi
xor edx, edx
or eax, edx
je 0x40263a
cmp ecx, esi
jne 0x402619
cmp dword [0x421624], ebx
je 0x40263a
push 0xa0
call fcn.004090ab
push eax
push 0x42b0a4
call fcn.0040a354
pop ecx
pop ecx
mov dword [esp + 0x10], 3
jmp 0x402675
push 4
push 0x4215aa
push ebp
call fcn.004094db
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x4c], eax
jmp 0x402675
mov dword [esp + 0x10], eax
jmp 0x402675
push esi
call fcn.0040c7be
push eax
push 0x68
call fcn.004090ab
push eax
push 0x42b0a4
call fcn.0040a354
add esp, 0xc
mov dword [esp + 0x18], edi
cmp byte [0x4226fc], 0
mov eax, dword [0x421588]
mov dword [esp + 0x70], eax
mov eax, dword [0x42158c]
mov dword [esp + 0x74], eax
mov eax, dword [0x421558]
mov dword [esp + 0x60], eax
mov eax, dword [0x421560]
mov dword [esp + 0x68], eax
mov eax, dword [0x421564]
mov dword [esp + 0x6c], eax
je 0x4026f6
push 0x40e2f4
push 0x42aca4
mov dword [0x422700], ebx
call fcn.0040778c
cmp word [0x42b0a4], bx
je 0x4026dc
push 0x40e2ec
push 0x42b0a4
call fcn.004077cb
mov ecx, dword [0x421578]
cmp ecx, ebx
je 0x4026eb
mov eax, dword [ecx]
push edi
call dword [eax]
mov dword [0x421578], ebx
call fcn.00403e0b
cmp dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebx
jle 0x402edd
mov ecx, dword [esp + 0x2c]
shl ecx, 6
mov dword [esp + 0x64], ecx
jmp 0x402715
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x14]
add ecx, eax
imul eax, eax, 0x30
add eax, dword [esp + 0x40]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x144]
mov dword [0x411548], eax
call fcn.0040c9ff
cmp byte [0x4226fc], 0
mov dword [esp + 0x50], eax
je 0x4027e1
mov eax, dword [0x411548]
mov eax, dword [eax + 0x20]
cmp eax, dword [0x422700]
je 0x4027e1
movzx ecx, word [0x421610]
cmp eax, ecx
jne 0x402791
push 0x40e2e8
push 0x42aca4
call fcn.0040778c
cmp word [0x42b0a4], 0
je 0x4027b8
push 0x40e2e0
push 0x42b0a4
call fcn.004077cb
jmp 0x4027b8
push eax
push 0x42aca4
call fcn.004020ff
cmp word [0x42b0a4], 0
je 0x4027b8
mov eax, dword [0x411548]
push dword [eax + 0x20]
push 0x42b0a4
call fcn.00402139
mov eax, dword [0x411548]
mov ecx, dword [0x421578]
mov eax, dword [eax + 0x20]
mov dword [0x422700], eax
test ecx, ecx
je 0x4027d5
mov eax, dword [ecx]
push 1
call dword [eax]
and dword [0x421578], 0
call fcn.00403e0b
mov eax, dword [0x411548]
mov edi, dword [eax]
add edi, dword [0x421590]
mov esi, dword [eax + 4]
adc esi, dword [0x421594]
push 0
mov ebx, 0x2000
push ebx
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 0x4028ba
jl 0x402822
test edi, edi
jae 0x4028ba
push 0xa0
call fcn.004090ab
push eax
push 0x42b0a4
call fcn.0040a354
cmp dword [esp + 0x30], 0
pop ecx
pop ecx
mov dword [esp + 0x10], 2
jne 0x4028ad
mov eax, dword [0x421590]
mov ecx, dword [0x421594]
mov edx, eax
or edx, ecx
je 0x4028ad
mov dword [esp + 0x34], ecx
xor ecx, ecx
push ecx
mov dword [esp + 0x34], eax
mov eax, dword [0x411548]
mov dword [0x421590], ecx
mov dword [0x421594], ecx
mov esi, dword [eax + 4]
mov edi, dword [eax]
push ebx
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 0x4028ba
jl 0x402896
test edi, edi
jae 0x4028ba
push 0xa0
call fcn.004090ab
push eax
push 0x42b0a4
call fcn.0040a354
pop ecx
pop ecx
mov dword [esp + 0x10], 3
jmp 0x402ecb
cmp eax, dword [0x421588]
jne 0x4028f9
cmp ecx, dword [0x42158c]
jne 0x4028f9
cmp byte [0x4226fc], 0
jne 0x4028f9
mov eax, dword [0x421558]
mov ecx, dword [0x421554]
sub eax, ebp
sub eax, ecx
cdq
add dword [0x421560], eax
adc dword [0x421564], edx
add ebp, ecx
mov dword [0x421558], ebp
jmp 0x402963
push 0
push ecx
mov ecx, dword [0x421578]
push eax
call fcn.0040374d
mov ecx, dword [0x421578]
call fcn.00403287
push ebx
push dword [0x421554]
mov dword [0x421588], eax
mov dword [0x42158c], edx
call fcn.00403f79
cdq
mov dword [0x421560], eax
mov dword [0x421564], edx
test edx, edx
jg 0x402948
jl 0x402896
test eax, eax
jbe 0x402896
mov eax, dword [0x421554]
add eax, ebp
mov dword [0x421558], eax
mov eax, ebp
cdq
sub dword [0x421560], eax
sbb dword [0x421564], edx
push 4
mov edi, 0x41093c
push edi
mov ebx, 0xa0
call fcn.0040406c
test eax, eax
jne 0x40297f
push ebx
jmp 0x40289b
push 4
push 0x4215a0
push edi
call fcn.004094db
test eax, eax
je 0x402a41
push ebx
call fcn.004090ab
push eax
mov esi, 0x42b0a4
push esi
call fcn.0040a354
mov eax, dword [0x421590]
pop ecx
xor edx, edx
pop ecx
mov ecx, dword [0x421594]
mov dword [esp + 0x10], 2
cmp dword [esp + 0x28], edx
jne 0x4029c9
mov ebp, eax
or ebp, ecx
jne 0x402a2b
or eax, ecx
jne 0x402ecb
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, eax
or edx, ecx
je 0x402ecb
mov dword [0x421590], eax
mov dword [0x421594], ecx
mov eax, dword [0x411548]
push dword [eax + 4]
push dword [eax]
call fcn.00404267
test eax, eax
jne 0x402a1e
push 4
push edi
call fcn.0040406c
test eax, eax
je 0x402a1e
push 4
push 0x4215a0
push edi
call fcn.004094db
test eax, eax
je 0x402a41
push ebx
call fcn.004090ab
push eax
push esi
jmp 0x4028a6
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [0x421590], edx
mov dword [0x421594], edx
jmp 0x4029ee
call fcn.0040830e
mov esi, eax
xor edi, edi
cmp esi, edi
je 0x402a6e
push 0xa0
call fcn.004090ab
push eax
push 0x42b0a4
call fcn.0040a354
pop ecx
pop ecx
mov dword [esp + 0x10], esi
jmp 0x402ecb
movzx eax, word [0x4215b2]
push eax
movzx eax, word [0x4215d0]
push 2
push eax
call fcn.0040445a
cmp eax, edi
je 0x402abd
cmp eax, dword [esp + 0x10]
jle 0x402a93
mov dword [esp + 0x10], eax
cmp eax, 1
jle 0x402abd
push 0x42167c
call fcn.0040c7be
push eax
push 0x68
call fcn.004090ab
push eax
push 0x42b0a4
call fcn.0040a354
add esp, 0xc
jmp 0x402ecb
mov eax, dword [0x421598]
cmp eax, edi
je 0x402ad2
push eax
call fcn.00409140
mov dword [0x421598], edi
movzx eax, word [0x4215d2]
push edi
push 3
push eax
call fcn.0040445a
cmp eax, edi
je 0x402af5
cmp eax, dword [esp + 0x10]
jle 0x402af0
mov dword [esp + 0x10], eax
cmp eax, 1
jg 0x402a98
movzx eax, word [0x4215d2]
push 0x4215b4
push eax
push dword [0x421598]
call fcn.0040cc17
cmp dword [esp + 0x50], edi
je 0x402b21
push dword [esp + 0x50]
push 0x42167c
call fcn.00409415
mov esi, 0x42167c
push esi
call fcn.004075a4
cmp byte [eax], 0x5c
sete bl
test bl, bl
je 0x402b39
mov byte [eax], 0
push esi
push esi
call fcn.004075c0
push esi
push 0x42227c
call fcn.00409415
xor eax, eax
mov word [0x421a7c], ax
mov eax, dword [0x4215b2]
shr eax, 0xb
test al, 1
je 0x402b8c
mov edi, 0x400
push edi
mov ebp, 0x421a7c
push ebp
push esi
call fcn.0040d0d3
push edi
push 0x42227c
xor eax, eax
push ebp
mov word [0x42227a], ax
call fcn.0040d076
mov byte [0x42267b], 0
mov eax, dword [0x411548]
test byte [eax + 0x24], 0x10
je 0x402ba5
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x402ba3
cmp eax, 0xb
jne 0x402ba5
mov bl, 1
cmp byte [0x42a073], 0x49
push 0
sete al
movzx eax, al
push eax
movzx eax, byte [0x429792]
push eax
push 0
push esi
call fcn.00409e6b
test al, al
je 0x402edd
cmp byte [0x429792], 0
jne 0x402e2d
xor edi, edi
test bl, bl
jne 0x402d10
push 0x421a7c
push esi
call fcn.004043cf
cmp eax, 0xffffffff
je 0x402cf6
test eax, eax
je 0x402c29
cmp eax, 1
jne 0x402e2d
mov eax, dword [0x4296d4]
cmp eax, 2
je 0x402ecb
cmp byte [0x4296f5], 0
jne 0x402c25
cmp byte [0x4296f4], 0
je 0x402c37
test edi, edi
jmp 0x402c31
mov eax, dword [0x4296d4]
cmp eax, 2
je 0x402ecb
test eax, eax
je 0x402c44
cmp eax, 3
jne 0x402e2d
push 0x42227c
lea eax, [esp + 0x1f0]
push eax
call fcn.00409415
movzx eax, word [0x4215b8]
movzx ecx, word [0x4215b6]
push 0
shl eax, 0x10
add eax, ecx
push eax
push dword [0x41092c]
lea eax, [esp + 0x1f8]
push dword [0x410928]
push 0
push eax
call fcn.0040ad16
cmp al, 0x43
je 0x402edd
cmp al, 0x41
je 0x402e23
cmp al, 0x4e
je 0x402ecb
cmp al, 0x52
je 0x402cb8
cmp al, 0x59
je 0x402e2d
cmp al, 0x72
je 0x402cb8
cmp al, 0x79
jne 0x402c44
jmp 0x402e2d
mov esi, 0x42167c
lea eax, [esp + 0x1ec]
push eax
push esi
call fcn.00409415
xor eax, eax
push esi
mov word [0x421a7c], ax
call fcn.00409322
cmp byte [eax + 0x42167b], 0xa
jne 0x402cea
dec eax
mov byte [eax + 0x42167c], 0
test eax, eax
je 0x402cbd
xor edi, edi
inc edi
jmp 0x402be4
cmp byte [0x4296f4], 0
je 0x402e2d
test edi, edi
je 0x402ecb
jmp 0x402e2d
cmp byte [0x4296f4], 0
jne 0x402ecb
cmp byte [0x42167c], 0
je 0x402ecb
cmp dword [0x4296f8], 2
je 0x402ecb
mov eax, dword [0x411548]
mov ecx, dword [eax + 0x1c]
xor esi, esi
test ecx, ecx
je 0x402d4a
cmp ecx, 0xb
jne 0x402d4d
mov esi, dword [eax + 0x24]
mov edi, 0x421a7c
push edi
mov ebx, 0x42167c
push ebx
call fcn.00403891
test al, al
jne 0x402dcd
cmp byte [0x429737], al
push esi
sete al
movzx eax, al
push eax
push edi
push ebx
call fcn.00403ab5
test eax, eax
je 0x402dcd
push 1
push edi
push ebx
call fcn.00403c7e
cmp byte [0x429737], 0
push esi
sete al
movzx eax, al
push eax
push edi
push ebx
call fcn.00403ab5
test eax, eax
je 0x402dcd
push 0x42227c
call fcn.0040c7be
push eax
push 0x6f
call fcn.004090ab
push eax
push 0x42b0a4
call fcn.0040a354
add esp, 0xc
mov ecx, 0x42698c
call fcn.00401980
jmp 0x402ecb
movzx esi, word [0x4215b8]
movzx eax, word [0x4215b6]
shl esi, 0x10
lea ecx, [esp + 0x78]
or esi, eax
call fcn.0040cb5a
push esi
lea ecx, [esp + 0x7c]
call fcn.0040cae0
push 0
push 0
lea eax, [esp + 0x80]
push eax
push edi
push ebx
call fcn.00403cb6
push edi
push ebx
lea ecx, [esp + 0xa4]
call fcn.0040c8b7
push esi
lea ecx, [esp + 0x58]
call fcn.00402270
jmp 0x402ecb
mov dword [0x4296d4], 1
mov eax, dword [0x411548]
test byte [eax + 0x28], 1
je 0x402ea3
call fcn.0040d063
xor esi, esi
cmp eax, esi
je 0x402ea5
cmp eax, 1
jne 0x402e87
cmp dword [0x4108e8], esi
jne 0x402e81
cmp dword [0x42267c], esi
je 0x402e61
push esi
call fcn.00409e29
pop ecx
jmp 0x402e81
push 0x42227c
call fcn.0040c7be
push eax
push 0x73
call fcn.004090ab
push eax
push 0x42b0a4
call fcn.0040a354
add esp, 0xc
inc dword [esp + 0x20]
jmp 0x402ecb
cmp eax, dword [esp + 0x10]
jle 0x402e91
mov dword [esp + 0x10], eax
push 0x42227c
call fcn.0040c7be
push eax
push 0x73
jmp 0x402aa5
xor esi, esi
mov dword [0x42164c], esi
call fcn.00401cf6
cmp eax, esi
je 0x402ecb
cmp eax, dword [esp + 0x10]
jle 0x402ebe
mov dword [esp + 0x10], eax
cmp dword [0x42164c], 1
jg 0x40300e
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x1c]
jl 0x402711
mov ecx, dword [0x421578]
push 0
push dword [esp + 0x78]
push dword [esp + 0x78]
call fcn.0040374d
mov ecx, dword [0x421578]
call fcn.00403287
push 0x2000
push dword [0x421554]
mov dword [0x421588], eax
mov dword [0x42158c], edx
call fcn.00403f79
mov eax, dword [esp + 0x60]
inc dword [esp + 0x2c]
cmp dword [esp + 0x18], 0
mov dword [0x421558], eax
mov eax, dword [esp + 0x68]
mov dword [0x421560], eax
mov eax, dword [esp + 0x6c]
mov dword [0x421564], eax
je 0x40234d
mov ebx, 0x400
push ebx
lea eax, [esp + 0x5f0]
push eax
lea eax, [esp + 0x1f4]
push eax
lea ecx, [esp + 0xa8]
call fcn.0040c9bb
xor ebp, ebp
test al, al
je 0x402fc6
mov esi, dword [esp + 0x54]
mov edi, dword [esi]
lea ecx, [esp + 0x78]
call fcn.0040cb5a
push edi
lea ecx, [esp + 0x7c]
call fcn.0040cae0
push ebp
push ebp
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x5f8]
push eax
lea eax, [esp + 0x1fc]
push eax
call fcn.00403cb6
push ebx
lea eax, [esp + 0x5f0]
push eax
lea eax, [esp + 0x1f4]
push eax
lea ecx, [esp + 0xa8]
add esi, 4
call fcn.0040c9bb
test al, al
jne 0x402f6e
cmp byte [0x42584a], 0
jne 0x403079
cmp dword [esp + 0x4c], ebp
je 0x403079
cmp byte [0x4226fc], 0
jne 0x403079
push 0xa0
call fcn.004090ab
push eax
push 0x42b0a4
call fcn.0040a354
mov edi, dword [esp + 0x18]
pop ecx
pop ecx
cmp edi, ebp
jne 0x40307d
xor edi, edi
inc edi
jmp 0x40307d
lea ecx, [esp + 0xac]
call fcn.00407193
xor esi, esi
cmp dword [esp + 0x9c], esi
je 0x403031
push dword [esp + 0x9c]
call fcn.00409140
cmp dword [esp + 0x54], esi
je 0x403040
push dword [esp + 0x54]
call fcn.00409140
lea ecx, [esp + 0x154]
call fcn.00407193
cmp dword [esp + 0x144], esi
je 0x403061
push dword [esp + 0x144]
call fcn.00409140
cmp dword [esp + 0x40], esi
je 0x403070
push dword [esp + 0x40]
call fcn.00409140
mov eax, dword [esp + 0x10]
jmp 0x40315c
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
movzx esi, word [esp + 0x20]
inc ebx
cmp ebx, esi
jne 0x4030b3
cmp byte [0x42a073], 0x49
je 0x4030b3
cmp dword [0x42267c], ebp
jne 0x4030b3
push 0x343
call fcn.004090ab
push eax
push 0x42b0a4
call fcn.0040a354
pop ecx
pop ecx
cmp ebx, ebp
jne 0x4030ce
cmp edi, 1
jg 0x4030ce
xor ax, ax
cmp ax, word [esp + 0x24]
sbb edi, edi
and edi, 0x46
add edi, 0xb
jmp 0x4030fa
cmp ebx, esi
jne 0x4030db
cmp edi, 1
jg 0x4030db
push 0x52
jmp 0x4030e9
cmp word [esp + 0x24], bp
jbe 0x4030ec
cmp edi, 1
jg 0x4030ec
push 0x51
pop edi
jmp 0x4030fa
cmp word [esp + 0x20], bp
jbe 0x4030fa
cmp edi, ebp
jne 0x4030fa
xor edi, edi
inc edi
lea ecx, [esp + 0xac]
call fcn.00407193
cmp dword [esp + 0x9c], ebp
je 0x40311b
push dword [esp + 0x9c]
call fcn.00409140
cmp dword [esp + 0x54], ebp
je 0x40312a
push dword [esp + 0x54]
call fcn.00409140
lea ecx, [esp + 0x154]
call fcn.00407193
cmp dword [esp + 0x144], ebp
je 0x40314b
push dword [esp + 0x144]
call fcn.00409140
cmp dword [esp + 0x40], ebp
je 0x40315a
push dword [esp + 0x40]
call fcn.00409140
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c4
ret