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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x13c
mov eax, dword [0x44f4e8]
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 0x4061e9
mov eax, 0x80004005
mov ecx, dword [esp + 0x144]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004327cb
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 0x406319
mov byte [esp + 0x12], cl
lea ecx, [esp + 0x20]
push ecx
push 0x3b
mov ebx, eax
call fcn.0040deff
pop ecx
pop ecx
lea eax, [esp + 0x20]
xor edi, edi
call fcn.004011bf
test eax, eax
jbe 0x406269
push edi
lea esi, [esp + 0x24]
call fcn.004011d5
mov esi, eax
push 0x443ef0
push esi
mov ebx, 0x443e20
call fcn.0040c7df
push 0x5c
push 0x2f
call fcn.0040c834
push 0x443ee4
push esi
call fcn.0040c8af
add esp, 0x18
lea eax, [esp + 0x20]
inc edi
call fcn.004011bf
cmp edi, eax
jb 0x406228
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x28]
jbe 0x406278
call fcn.004329e2
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 0x406297
call fcn.004329e2
mov dword [esp + 0x3c], esi
lea edi, [esp + 0x38]
lea esi, [esp + 0x30]
call fcn.004050d0
test al, al
je 0x4062fa
call fcn.004050b3
cmp dword [eax + 0x14], 0
mov esi, dword [esp + 0x30]
jne 0x4062e2
push ebx
push dword [esp + 0x2c]
lea eax, [ebx + 0x1c]
call fcn.004073d3
mov eax, dword [esp + 0x30]
pop ecx
pop ecx
push eax
add eax, 0xffffffe4
call fcn.0040179f
sub dword [esp + 0x28], 0x1c
mov dword [esp + 0x30], esi
jmp 0x406284
test esi, esi
jne 0x4062eb
call fcn.004329e2
cmp ebx, dword [esi + 8]
jb 0x4062f5
call fcn.004329e2
add ebx, 0x1c
jmp 0x406284
lea eax, [esp + 0x20]
call fcn.004011bf
test eax, eax
jne 0x406315
lea esi, [esp + 0x20]
call fcn.00401550
jmp 0x4061cd
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
lea esi, [esp + 0xc0]
call fcn.00401abd
cmp dword [esp + 0xd4], 0
je 0x40633f
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 0x40634e
call fcn.0040e17d
lea eax, [ebx + 8]
call fcn.00415c0c
mov edi, eax
xor esi, esi
cmp edi, esi
mov dword [esp + 0x30], edi
jne 0x406396
cmp dword [esp + 0x18], esi
je 0x406371
mov esi, dword [esp + 0x18]
call fcn.0040e18a
mov edi, 0x80004005
push 0
push 1
lea esi, [esp + 0xc8]
call fcn.00401469
lea esi, [esp + 0x20]
call fcn.00401550
mov eax, edi
jmp 0x4061d2
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 0x4063d6
lea esi, [esp + 0x44]
call fcn.004281cd
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4063d0
call fcn.0040e18a
mov edi, dword [esp + 0x1c]
jmp 0x406376
cmp dword [esp + 0x40], esi
jne 0x4063f6
lea esi, [esp + 0x44]
call fcn.004281cd
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4063f2
call fcn.0040e18a
xor edi, edi
jmp 0x406376
cmp dword [esp + 0x40], esi
mov dword [esp + 0x14], esi
jbe 0x40651b
lea eax, [esp + 0x98]
mov byte [esp + 0x13], 0
call fcn.0040e1ad
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 0x4065fc
lea eax, [esp + 0x98]
call fcn.00415c0c
cmp eax, 4
jne 0x40645c
lea eax, [esp + 0x98]
call fcn.0040e1f0
test al, al
je 0x40645c
mov byte [esp + 0x13], 1
lea eax, [esp + 0x98]
call fcn.0040e1d7
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 0x4065fc
lea eax, [esp + 0x98]
call fcn.0040fc78
lea esi, [esp + 0xdc]
call fcn.00401abd
cmp byte [esp + 0x12], 0
je 0x406557
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.00406894
lea edi, [esp + 0x6c]
mov esi, eax
call fcn.00414b3f
test al, al
je 0x4064e3
mov eax, ebx
push eax
lea eax, [esp + 0x48]
call fcn.004068e5
push 0
push 1
lea esi, [esp + 0xe4]
call fcn.00401469
lea eax, [esp + 0x98]
call fcn.0040e1c6
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 0x406404
cmp dword [esp + 0x48], esi
je 0x4063dc
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sar eax, 2
je 0x4063dc
push 0x160
call fcn.0043284e
cmp eax, esi
pop ecx
je 0x40660d
mov ebx, eax
call fcn.00410500
mov edi, eax
jmp 0x40660f
cmp byte [esp + 0x13], 0
je 0x40657c
push 0
push 1
lea esi, [esp + 0xe4]
call fcn.00401469
lea eax, [esp + 0x98]
call fcn.0040e1c6
jmp 0x406507
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x28]
jbe 0x40658b
call fcn.004329e2
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 0x4065aa
call fcn.004329e2
mov dword [esp + 0x78], esi
lea edi, [esp + 0x74]
lea esi, [esp + 0x38]
call fcn.004050d0
test al, al
je 0x4064e3
call fcn.004050b3
lea ecx, [esp + 0xdc]
call fcn.0040c710
test al, al
je 0x4065e6
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x48]
call fcn.004068e5
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x28]
jb 0x4065f5
call fcn.004329e2
add dword [esp + 0x3c], 0x1c
jmp 0x40659b
lea eax, [esp + 0x98]
call fcn.0040e1c6
jmp 0x4063ba
xor edi, edi
mov ecx, edi
neg ecx
lea eax, [edi + 8]
sbb ecx, ecx
and ecx, eax
lea esi, [esp + 0x14]
call fcn.004153f1
movzx eax, byte [ebp + 0x10]
push eax
movzx eax, byte [ebp + 0xc]
call fcn.00410b51
lea eax, [esp + 0xf8]
call fcn.0040d29b
mov ebx, dword [esp + 0x54]
push eax
lea esi, [ebx + 0x14]
push esi
call fcn.0040dadd
pop ecx
pop ecx
mov eax, 0x443e20
lea ecx, [esp + 0x7c]
call fcn.00401183
xor eax, eax
push esi
lea ecx, [esp + 0xfc]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
call fcn.0040e1e9
push edx
push eax
mov eax, ecx
call fcn.00415b3d
mov edx, dword [ebx + 0x10]
push eax
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x70]
mov ecx, edi
push dword [esp + 0x4c]
call fcn.004109a4
lea esi, [esp + 0x5c]
call fcn.00401550
push 0
push 1
lea esi, [esp + 0x84]
call fcn.00401469
cmp byte [esp + 0x12], 0
je 0x4066ce
cmp dword [ebx + 0x38], 0
jne 0x4066ce
lea eax, [esp + 0x44]
call fcn.0040693f
mov esi, dword [esp + 0x30]
mov edi, dword [esi]
lea eax, [esp + 0x14]
call fcn.00415c0c
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 0x406727
cmp byte [esp + 0x12], al
jne 0x406727
xor esi, esi
cmp dword [esp + 0x48], 0
je 0x406727
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sar eax, 2
cmp esi, eax
jae 0x406727
mov eax, dword [esp + 0x48]
lea eax, [eax + esi*4]
push eax
lea eax, [ebx + 0x30]
lea edi, [esp + 0x60]
call fcn.004067f0
inc esi
jmp 0x4066fa
lea eax, [esp + 0xf8]
call fcn.0040d2c9
lea eax, [esp + 0x14]
call fcn.004073c7
jmp 0x4063ba