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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
push ebx
xor eax, eax
mov dword [esp + 0x20], 1
push esi
mov esi, edx
mov dword [esp + 0x28], 1
cdq
mov ebx, eax
mov dword [esp + 0x18], esi
xor ebx, edx
lea eax, [esp + 0x1c]
sub ebx, edx
mov dword [esp + 0x2c], eax
push edi
mov edi, ecx
mov dword [esp + 0x24], ebx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x28]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x20], ebx
call fcn.00413040
test eax, eax
jne 0x413a0d
mov eax, 0xfffffff4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x40], 1
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x58], 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 1
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x70], 1
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
call fcn.00412fb0
test eax, eax
jns 0x413af9
test edi, edi
je 0x413ad8
mov edx, 1
mov ecx, edi
call fcn.004125f0
mov esi, eax
test esi, esi
jne 0x413f41
mov eax, dword [edi + 4]
shl eax, 2
push eax
push esi
push dword [edi + 8]
call fcn.004d64c0
mov eax, dword [edi + 8]
add esp, 0xc
mov dword [eax], ebx
mov dword [edi], 1
test esi, esi
jne 0x413f41
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x413af0
mov edx, dword [ebp + 8]
mov ecx, esi
call fcn.00412720
mov esi, eax
test esi, esi
jne 0x413f41
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 8]
lea ecx, [esp + 0x40]
mov edx, edi
call fcn.00412720
mov esi, eax
test esi, esi
jne 0x413f41
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x58]
call fcn.00412720
mov esi, eax
test esi, esi
jne 0x413f41
mov edx, dword [edi + 4]
lea ecx, [esp + 0x64]
add edx, 2
mov dword [esp + 0x58], 1
mov dword [esp + 0x40], 1
call fcn.004125f0
mov esi, eax
test esi, esi
jne 0x413f41
lea edx, [eax + 1]
lea ecx, [esp + 0x64]
call fcn.004125f0
mov edi, dword [esp + 0x6c]
mov esi, eax
test esi, esi
jne 0x413f41
mov eax, dword [esp + 0x68]
shl eax, 2
push eax
push 0
push edi
call fcn.004d64c0
add esp, 0xc
mov dword [edi], ebx
mov dword [esp + 0x64], 1
test esi, esi
jne 0x413f41
lea edx, [esi + 2]
lea ecx, [esp + 0x4c]
call fcn.004125f0
mov esi, eax
test esi, esi
jne 0x413f41
lea edx, [eax + 3]
lea ecx, [esp + 0x70]
call fcn.004125f0
mov esi, eax
test esi, esi
jne 0x413f41
lea ecx, [esp + 0x58]
call fcn.00412a80
and eax, 0x1f
cmp eax, 0x1f
jae 0x413c03
mov ebx, 0x1f
lea ecx, [esp + 0x40]
sub ebx, eax
mov edx, ebx
mov dword [esp + 0x20], ebx
call fcn.00412dc0
mov esi, eax
test esi, esi
jne 0x413f41
mov edx, ebx
lea ecx, [esp + 0x58]
call fcn.00412dc0
mov esi, eax
test esi, esi
jne 0x413f41
jmp 0x413c0b
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x5c]
dec ecx
dec eax
mov dword [esp + 0xc], ecx
mov ebx, ecx
mov dword [esp + 0x14], eax
sub ebx, eax
lea ecx, [esp + 0x58]
mov eax, ebx
shl eax, 5
mov edx, eax
mov dword [esp + 0x10], eax
call fcn.00412dc0
mov esi, eax
test esi, esi
jne 0x413f41
lea edx, [esp + 0x58]
lea ecx, [esp + 0x40]
call fcn.00413040
test eax, eax
js 0x413c81
inc dword [edi + ebx*4]
lea eax, [esp + 0x58]
lea edx, [esp + 0x40]
push eax
mov ecx, edx
call fcn.004133f0
mov esi, eax
add esp, 4
test esi, esi
jne 0x413f41
lea edx, [esp + 0x58]
lea ecx, [esp + 0x40]
call fcn.00413040
test eax, eax
jns 0x413c50
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x58]
call fcn.00412ea0
mov esi, eax
test esi, esi
jne 0x413f41
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0xc], ecx
jbe 0x413ed3
mov eax, dword [esp + 0x60]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x10]
add eax, 0xffffffe0
mov dword [esp + 0x18], edx
sub edi, 4
mov dword [esp + 0x10], eax
lea ebx, [edi + ebx*4]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov edx, dword [edx]
mov esi, dword [ecx + edi*4]
cmp esi, edx
jb 0x413cdb
mov dword [ebx], 0xffffffff
jmp 0x413d0b
test edx, edx
je 0x413d06
cmp esi, edx
jae 0x413d06
mov ecx, dword [ecx + edi*4 - 4]
xor eax, eax
push 0
push edx
or eax, esi
push eax
push ecx
call fcn.004d2d70
test edx, edx
jne 0x413cfe
cmp eax, 0xffffffff
jbe 0x413d09
mov dword [esp + 0x2c], 0
or eax, 0xffffffff
mov dword [ebx], eax
inc dword [ebx]
nop dword [eax]
dec dword [ebx]
lea ecx, [esp + 0x4c]
mov edx, 1
call fcn.004125f0
mov edi, dword [esp + 0x54]
mov esi, eax
test esi, esi
jne 0x413f41
mov eax, dword [esp + 0x50]
shl eax, 2
push eax
push 0
push edi
call fcn.004d64c0
mov eax, dword [esp + 0x30]
add esp, 0xc
mov dword [edi], eax
mov dword [esp + 0x4c], 1
test esi, esi
jne 0x413f41
cmp dword [esp + 0x14], 1
jae 0x413d62
xor eax, eax
jmp 0x413d69
mov eax, dword [esp + 0x18]
mov eax, dword [eax - 4]
mov dword [edi], eax
lea edx, [esp + 0x4c]
mov eax, dword [esp + 0x18]
mov ecx, edx
mov dword [esp + 0x7c], 1
mov dword [esp + 0x80], 1
mov eax, dword [eax]
mov dword [edi + 4], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x84], eax
mov eax, dword [ebx]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x7c]
push eax
call fcn.00413770
mov esi, eax
add esp, 4
test esi, esi
jne 0x413f41
xor edx, edx
lea ecx, [esp + 0x70]
call fcn.00412920
mov esi, eax
test esi, esi
jne 0x413f41
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
cmp edi, 2
jb 0x413ddb
mov eax, dword [edx + edi*4 - 8]
mov ecx, dword [esp + 0x78]
mov dword [ecx], eax
cmp edi, 1
jae 0x413dea
xor eax, eax
jmp 0x413dee
mov eax, dword [edx + edi*4 - 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + edi*4]
lea edx, [esp + 0x70]
mov dword [ecx + 8], eax
lea ecx, [esp + 0x4c]
call fcn.00413040
test eax, eax
jg 0x413d10
push dword [ebx]
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x50]
call fcn.00413980
mov esi, eax
add esp, 4
test esi, esi
jne 0x413f41
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x4c]
call fcn.00412dc0
mov esi, eax
test esi, esi
jne 0x413f41
lea eax, [esp + 0x4c]
lea edx, [esp + 0x40]
push eax
mov ecx, edx
call fcn.004133f0
mov esi, eax
add esp, 4
test esi, esi
jne 0x413f41
xor edx, edx
lea ecx, [esp + 0x40]
call fcn.00413100
test eax, eax
jns 0x413eb8
lea edx, [esp + 0x58]
lea ecx, [esp + 0x4c]
call fcn.00412720
mov esi, eax
test esi, esi
jne 0x413f41
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x4c]
call fcn.00412dc0
mov esi, eax
test esi, esi
jne 0x413f41
lea eax, [esp + 0x4c]
lea edx, [esp + 0x40]
push eax
mov ecx, edx
call fcn.00413380
mov esi, eax
add esp, 4
test esi, esi
jne 0x413f41
dec dword [ebx]
sub dword [esp + 0x10], 0x20
dec edi
mov edx, dword [esp + 0x18]
sub ebx, 4
mov dword [esp + 0xc], edi
cmp edi, dword [esp + 0x14]
ja 0x413cc6
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x413ef9
lea edx, [esp + 0x64]
mov ecx, edi
call fcn.00412720
mov esi, eax
test esi, esi
jne 0x413f41
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
imul eax, dword [ecx]
mov dword [edi], eax
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x413f41
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x40]
call fcn.00412ea0
mov esi, eax
test esi, esi
jne 0x413f41
mov eax, dword [ebp + 8]
lea edx, [esp + 0x40]
mov ecx, ebx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
call fcn.00412720
mov esi, eax
test esi, esi
jne 0x413f41
xor edx, edx
mov ecx, ebx
call fcn.00413100
test eax, eax
jne 0x413f41
mov dword [ebx], 1
lea ecx, [esp + 0x40]
call fcn.004125a0
lea ecx, [esp + 0x58]
call fcn.004125a0
lea ecx, [esp + 0x64]
call fcn.004125a0
lea ecx, [esp + 0x4c]
call fcn.004125a0
lea ecx, [esp + 0x70]
call fcn.004125a0
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret