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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
xor eax, eax
mov dword [esp + 0x60], ecx
mov ecx, dword [ebp + 0xc]
push ebx
push esi
mov esi, edx
mov dword [esp + 0x90], 1
cdq
xor eax, edx
mov dword [esp + 0x60], esi
sub eax, edx
mov dword [esp + 0x94], 1
mov dword [esp + 0x48], eax
lea edx, [esp + 0x90]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x70]
push edi
mov dword [esp + 0x9c], eax
call fcn.004036a0
test eax, eax
jne 0x404018
mov eax, 0xfffffff4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
xor ebx, ebx
mov ecx, dword [ebp + 8]
xor edi, edi
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x50], 1
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], ebx
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
call fcn.00403620
test eax, eax
jns 0x4040cf
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x4040ae
xor edx, edx
mov ecx, eax
call fcn.00403080
mov esi, eax
test esi, esi
jne 0x4041f9
mov esi, dword [esp + 0x64]
test esi, esi
je 0x4040c6
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.00402f90
mov esi, eax
test esi, esi
jne 0x4041f9
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x14]
call fcn.00402f90
mov esi, eax
test esi, esi
jne 0x4041d1
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x2c]
call fcn.00402f90
mov esi, eax
test esi, esi
jne 0x4041d1
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x14], 1
mov edx, dword [eax + 4]
add edx, 2
cmp edx, 0x2710
jbe 0x404126
mov esi, 0xfffffff0
jmp 0x4041d1
lea ecx, [esp + 0x50]
call fcn.00402f20
mov esi, eax
test esi, esi
jne 0x4041cd
xor edx, edx
lea ecx, [esp + 0x50]
call fcn.00403080
mov esi, eax
test esi, esi
jne 0x4041cd
push 4
push 2
call fcn.0040a8ac
add esp, 8
test eax, eax
jne 0x404163
lea esi, [eax - 0x10]
jmp 0x4041cd
mov edx, 3
mov dword [esp + 0x24], 2
lea ecx, [esp + 0x38]
mov dword [esp + 0x28], eax
call fcn.00402f20
mov esi, eax
test esi, esi
jne 0x4041c9
lea ecx, [esp + 0x2c]
call fcn.00403180
and eax, 0x1f
cmp eax, 0x1f
jae 0x4042fe
mov ebx, 0x1f
lea ecx, [esp + 0x14]
sub ebx, eax
mov edx, ebx
mov dword [esp + 0x70], ebx
call fcn.004033b0
mov esi, eax
test esi, esi
jne 0x4041c9
mov edx, ebx
lea ecx, [esp + 0x2c]
call fcn.004033b0
mov esi, eax
test esi, esi
je 0x404302
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4041f9
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4041ed
mov dword [eax], 0
lea eax, [eax + 4]
dec ecx
jne 0x4041e1
push dword [esp + 0x1c]
call fcn.0040a874
add esp, 4
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
test eax, eax
je 0x404239
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x40422d
mov dword [eax], 0
lea eax, [eax + 4]
dec ecx
jne 0x404221
push dword [esp + 0x34]
call fcn.0040a874
add esp, 4
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
test ebx, ebx
je 0x404275
mov eax, dword [esp + 0x54]
mov ecx, ebx
test eax, eax
je 0x40426c
nop
mov dword [ecx], 0
lea ecx, [ecx + 4]
dec eax
jne 0x404260
push ebx
call fcn.0040a874
add esp, 4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x50], 1
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
test eax, eax
je 0x4042b8
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4042ac
lea ecx, [ecx]
mov dword [eax], 0
lea eax, [eax + 4]
dec ecx
jne 0x4042a0
push dword [esp + 0x28]
call fcn.0040a874
add esp, 4
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
test edi, edi
je 0x4042f5
mov eax, dword [esp + 0x3c]
mov ecx, edi
test eax, eax
je 0x4042ec
mov edi, edi
mov dword [ecx], 0
lea ecx, [ecx + 4]
dec eax
jne 0x4042e0
push edi
call fcn.0040a874
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x70], ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
dec ecx
dec eax
mov dword [esp + 0x44], ecx
mov edi, ecx
mov dword [esp + 0x5c], eax
sub edi, eax
lea ecx, [esp + 0x2c]
mov ebx, edi
shl ebx, 5
mov edx, ebx
call fcn.004033b0
mov esi, eax
test esi, esi
jne 0x4041c9
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x14]
call fcn.004036a0
test eax, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], eax
js 0x404385
jmp 0x404350
inc dword [eax + edi*4]
lea edx, [esp + 0x14]
lea eax, [esp + 0x2c]
mov ecx, edx
push eax
call fcn.00403ab0
mov esi, eax
add esp, 4
test esi, esi
jne 0x4046a0
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x14]
call fcn.004036a0
test eax, eax
mov eax, dword [esp + 0x10]
jns 0x404350
mov edx, ebx
lea ecx, [esp + 0x2c]
call fcn.00403540
mov esi, eax
test esi, esi
jne 0x4046a0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x5c]
cmp ecx, edx
jbe 0x4045f3
mov eax, dword [esp + 0x34]
lea edx, [eax + edx*4]
lea eax, [ebx - 0x20]
mov dword [esp + 0x60], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
sub eax, 4
lea ebx, [eax + edi*4]
mov edi, dword [esp + 0x40]
lea ebx, [ebx]
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
mov edx, dword [edx]
mov dword [esp + 0x68], eax
cmp esi, edx
jb 0x4043ec
mov dword [ebx], 0xffffffff
jmp 0x40441e
test edx, edx
je 0x404419
cmp esi, edx
jae 0x404419
mov ecx, dword [eax - 4]
xor eax, eax
push 0
push edx
or eax, esi
push eax
push ecx
call fcn.00419960
test edx, edx
jne 0x40440e
cmp eax, 0xffffffff
jbe 0x40441c
mov dword [esp + 0x84], 0
or eax, 0xffffffff
mov dword [ebx], eax
inc dword [ebx]
dec dword [ebx]
lea ecx, [esp + 0x20]
xor edx, edx
call fcn.00403080
mov esi, eax
test esi, esi
jne 0x404697
cmp dword [esp + 0x5c], 1
jb 0x404445
mov eax, dword [esp + 0x60]
mov eax, dword [eax - 4]
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x20]
mov dword [esp + 0xa0], 1
mov dword [esp + 0xa4], 1
mov dword [ecx], eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov dword [ecx + 4], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0xa8], eax
mov ecx, edx
mov eax, dword [ebx]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0xa0]
push eax
call fcn.00403d30
mov esi, eax
add esp, 4
test esi, esi
jne 0x404697
xor edx, edx
lea ecx, [esp + 0x38]
call fcn.00403080
mov esi, eax
test esi, esi
jne 0x4046a0
mov ecx, dword [esp + 0x44]
cmp ecx, 2
jb 0x4044c1
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + ecx*4 - 8]
mov edi, dword [esp + 0x40]
mov dword [edi], eax
cmp ecx, 1
jae 0x4044d0
xor eax, eax
jmp 0x4044d7
mov eax, dword [esp + 0x68]
mov eax, dword [eax - 4]
mov dword [edi + 4], eax
lea edx, [esp + 0x38]
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x20]
mov eax, dword [eax]
mov dword [edi + 8], eax
call fcn.004036a0
test eax, eax
jg 0x404420
push dword [ebx]
lea edx, [esp + 0x30]
lea ecx, [esp + 0x24]
call fcn.00403f80
mov esi, eax
add esp, 4
test esi, esi
jne 0x404697
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x20]
call fcn.004033b0
mov esi, eax
test esi, esi
jne 0x404697
lea eax, [esp + 0x20]
lea edx, [esp + 0x14]
push eax
mov ecx, edx
call fcn.00403ab0
mov esi, eax
add esp, 4
test esi, esi
jne 0x404697
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0xac]
mov dword [esp + 0x78], eax
lea ecx, [esp + 0x14]
lea eax, [esp + 0x78]
mov dword [esp + 0xac], 1
mov dword [esp + 0xb0], 1
mov dword [esp + 0xb4], eax
call fcn.004036a0
test eax, eax
jns 0x4045d2
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x20]
call fcn.00402f90
mov esi, eax
test esi, esi
jne 0x404697
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x20]
call fcn.004033b0
mov esi, eax
test esi, esi
jne 0x404697
lea eax, [esp + 0x20]
lea edx, [esp + 0x14]
push eax
mov ecx, edx
call fcn.00403a40
mov esi, eax
add esp, 4
test esi, esi
jne 0x404697
dec dword [ebx]
mov ecx, dword [esp + 0x44]
sub ebx, 4
sub dword [esp + 0x48], 0x20
dec ecx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x44], ecx
cmp ecx, dword [esp + 0x5c]
ja 0x4043d0
jmp 0x4045f7
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x404621
lea edx, [esp + 0x50]
mov ecx, ebx
call fcn.00402f90
mov esi, eax
test esi, esi
jne 0x404697
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
imul eax, dword [ecx]
mov dword [ebx], eax
mov ebx, dword [esp + 0x64]
test ebx, ebx
je 0x404697
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x14]
call fcn.00403540
mov esi, eax
test esi, esi
jne 0x404697
mov eax, dword [ebp + 8]
lea edx, [esp + 0x14]
mov ecx, ebx
mov eax, dword [eax]
mov dword [esp + 0x14], eax
call fcn.00402f90
mov esi, eax
test esi, esi
jne 0x404697
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x80]
mov dword [esp + 0x4c], eax
mov ecx, ebx
lea eax, [esp + 0x4c]
mov dword [esp + 0x80], 1
mov dword [esp + 0x84], 1
mov dword [esp + 0x88], eax
call fcn.004036a0
test eax, eax
jne 0x404697
mov dword [ebx], 1
mov ebx, dword [esp + 0x10]
jmp 0x4041d1
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x10]
jmp 0x4041d1