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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x13c
mov eax, dword [0x44e4ec]
xor eax, esp
mov dword [esp + 0x138], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
xor ecx, ecx
cmp dword [ebx], ecx
push esi
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x14]
push edi
mov dword [esp + 0x54], ebx
jne 0x4061b9
mov eax, 0x80004005
mov ecx, dword [esp + 0x144]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0043220f
mov esp, ebp
pop ebp
ret 0x10
cmp eax, ecx
mov dword [ebx + 4], edx
mov byte [esp + 0x12], 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
je 0x4062e9
mov byte [esp + 0x12], cl
lea ecx, [esp + 0x20]
push ecx
push 0x3b
mov ebx, eax
call fcn.0040df02
pop ecx
pop ecx
lea eax, [esp + 0x20]
xor edi, edi
call fcn.004011a7
test eax, eax
jbe 0x406239
push edi
lea esi, [esp + 0x24]
call fcn.004011bd
mov esi, eax
push 0x442ef0
push esi
mov ebx, 0x442e20
call fcn.0040c7df
push 0x5c
push 0x2f
call fcn.0040c834
push 0x442ee4
push esi
call fcn.0040c8af
add esp, 0x18
lea eax, [esp + 0x20]
inc edi
call fcn.004011a7
cmp edi, eax
jb 0x4061f8
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x28]
jbe 0x406248
call fcn.0043217a
lea eax, [esp + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x24], esi
mov dword [esp + 0x34], ebx
jbe 0x406267
call fcn.0043217a
mov dword [esp + 0x3c], esi
lea edi, [esp + 0x38]
lea esi, [esp + 0x30]
call fcn.004050c2
test al, al
je 0x4062ca
call fcn.004050a5
cmp dword [eax + 0x14], 0
mov esi, dword [esp + 0x30]
jne 0x4062b2
push ebx
push dword [esp + 0x2c]
lea eax, [ebx + 0x1c]
call fcn.00407386
mov eax, dword [esp + 0x30]
pop ecx
pop ecx
push eax
add eax, 0xffffffe4
call fcn.00401787
sub dword [esp + 0x28], 0x1c
mov dword [esp + 0x30], esi
jmp 0x406254
test esi, esi
jne 0x4062bb
call fcn.0043217a
cmp ebx, dword [esi + 8]
jb 0x4062c5
call fcn.0043217a
add ebx, 0x1c
jmp 0x406254
lea eax, [esp + 0x20]
call fcn.004011a7
test eax, eax
jne 0x4062e5
lea esi, [esp + 0x20]
call fcn.00401538
jmp 0x40619d
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
lea esi, [esp + 0xc0]
call fcn.00401aa5
cmp dword [esp + 0xd4], 0
je 0x40630f
mov eax, esi
push 0x10
push eax
call fcn.0040d09d
pop ecx
pop ecx
mov eax, dword [ebx]
test eax, eax
mov dword [esp + 0x18], eax
je 0x40631e
call fcn.0040e180
lea eax, [ebx + 8]
call fcn.0040e4ce
mov edi, eax
xor esi, esi
cmp edi, esi
mov dword [esp + 0x30], edi
jne 0x406366
cmp dword [esp + 0x18], esi
je 0x406341
mov esi, dword [esp + 0x18]
call fcn.0040e18d
mov edi, 0x80004005
push 0
push 1
lea esi, [esp + 0xc8]
call fcn.00401451
lea esi, [esp + 0x20]
call fcn.00401538
mov eax, edi
jmp 0x4061a2
lea ecx, [esp + 0x40]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x40], esi
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x18]
cmp eax, esi
mov dword [esp + 0x1c], eax
je 0x4063a6
lea esi, [esp + 0x44]
call fcn.00413ea0
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4063a0
call fcn.0040e18d
mov edi, dword [esp + 0x1c]
jmp 0x406346
cmp dword [esp + 0x40], esi
jne 0x4063c6
lea esi, [esp + 0x44]
call fcn.00413ea0
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4063c2
call fcn.0040e18d
xor edi, edi
jmp 0x406346
cmp dword [esp + 0x40], esi
mov dword [esp + 0x14], esi
jbe 0x4064eb
lea eax, [esp + 0x98]
mov byte [esp + 0x13], 0
call fcn.0040e492
mov eax, dword [edi]
lea ecx, [esp + 0x98]
push ecx
push 6
push dword [esp + 0x1c]
mov ecx, edi
call dword [eax + 0x1c]
cmp eax, esi
mov dword [esp + 0x1c], eax
jne 0x4065cc
lea eax, [esp + 0x98]
call fcn.0040e4ce
cmp eax, 4
jne 0x40642c
lea eax, [esp + 0x98]
call fcn.0040e4dc
test al, al
je 0x40642c
mov byte [esp + 0x13], 1
lea eax, [esp + 0x98]
call fcn.0040e4bc
mov eax, dword [edi]
lea ecx, [esp + 0x98]
push ecx
push 3
push dword [esp + 0x1c]
mov ecx, edi
call dword [eax + 0x1c]
cmp eax, esi
mov dword [esp + 0x1c], eax
jne 0x4065cc
lea eax, [esp + 0x98]
call fcn.0040e4d1
lea esi, [esp + 0xdc]
call fcn.00401aa5
cmp byte [esp + 0x12], 0
je 0x406527
lea esi, [ebx + 0x30]
mov eax, dword [esi + 4]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x5c]
push eax
lea ebx, [esp + 0x18]
mov dword [esp + 0x70], esi
call fcn.0040685f
lea edi, [esp + 0x6c]
mov esi, eax
call fcn.00403bc0
test al, al
je 0x4064b3
mov eax, ebx
push eax
lea eax, [esp + 0x48]
call fcn.004068b0
push 0
push 1
lea esi, [esp + 0xe4]
call fcn.00401451
lea eax, [esp + 0x98]
call fcn.0040e4ab
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x54]
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
xor esi, esi
cmp eax, dword [esp + 0x40]
jb 0x4063d4
cmp dword [esp + 0x48], esi
je 0x4063ac
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sar eax, 2
je 0x4063ac
push 0x140
call fcn.00431f14
cmp eax, esi
pop ecx
je 0x4065dd
mov ebx, eax
call fcn.00410e73
mov edi, eax
jmp 0x4065df
cmp byte [esp + 0x13], 0
je 0x40654c
push 0
push 1
lea esi, [esp + 0xe4]
call fcn.00401451
lea eax, [esp + 0x98]
call fcn.0040e4ab
jmp 0x4064d7
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x28]
jbe 0x40655b
call fcn.0043217a
lea eax, [esp + 0x20]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x74], eax
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x24], esi
jbe 0x40657a
call fcn.0043217a
mov dword [esp + 0x78], esi
lea edi, [esp + 0x74]
lea esi, [esp + 0x38]
call fcn.004050c2
test al, al
je 0x4064b3
call fcn.004050a5
lea ecx, [esp + 0xdc]
call fcn.0040c718
test al, al
je 0x4065b6
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x48]
call fcn.004068b0
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x28]
jb 0x4065c5
call fcn.0043217a
add dword [esp + 0x3c], 0x1c
jmp 0x40656b
lea eax, [esp + 0x98]
call fcn.0040e4ab
jmp 0x40638a
xor edi, edi
mov ecx, edi
neg ecx
lea eax, [edi + 8]
sbb ecx, ecx
and ecx, eax
lea esi, [esp + 0x14]
call fcn.00407378
movzx eax, byte [ebp + 0x10]
push eax
movzx eax, byte [ebp + 0xc]
call fcn.00411429
lea eax, [esp + 0xf8]
call fcn.0040d29b
mov ebx, dword [esp + 0x54]
push eax
lea eax, [ebx + 0x14]
push eax
call fcn.0040dae0
pop ecx
pop ecx
mov eax, 0x442e20
lea ecx, [esp + 0x7c]
call fcn.0040118b
xor eax, eax
lea ecx, [esp + 0xf8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
call fcn.0040e4d5
push edx
push eax
mov eax, ecx
call fcn.00410b76
push eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x6c]
mov eax, dword [ebx + 0x10]
push dword [esp + 0x48]
push edi
call fcn.004112f9
lea esi, [esp + 0x5c]
call fcn.00401538
push 0
push 1
lea esi, [esp + 0x84]
call fcn.00401451
cmp byte [esp + 0x12], 0
je 0x40669c
cmp dword [ebx + 0x38], 0
jne 0x40669c
lea eax, [esp + 0x44]
call fcn.0040690a
mov esi, dword [esp + 0x30]
mov edi, dword [esi]
lea eax, [esp + 0x14]
call fcn.0040e4ce
push eax
push 0
lea eax, [esp + 0x4c]
push eax
mov ecx, esi
call dword [edi + 0x20]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x4066f5
cmp byte [esp + 0x12], al
jne 0x4066f5
xor esi, esi
cmp dword [esp + 0x48], 0
je 0x4066f5
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sar eax, 2
cmp esi, eax
jae 0x4066f5
mov eax, dword [esp + 0x48]
lea eax, [eax + esi*4]
push eax
lea eax, [ebx + 0x30]
lea edi, [esp + 0x60]
call fcn.004067bb
inc esi
jmp 0x4066c8
lea eax, [esp + 0xf8]
call fcn.0040d2c9
lea eax, [esp + 0x14]
call fcn.00415814
jmp 0x40638a