Function at 0x40618d
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 0x4061dc
mov eax, 0x80004005
mov ecx, dword [esp + 0x144]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004327bb
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 0x40630c
mov byte [esp + 0x12], cl
lea ecx, [esp + 0x20]
push ecx
push 0x3b
mov ebx, eax
call fcn.0040dee6
pop ecx
pop ecx
lea eax, [esp + 0x20]
xor edi, edi
call fcn.0040119f
test eax, eax
jbe 0x40625c
push edi
lea esi, [esp + 0x24]
call fcn.004011b5
mov esi, eax
push 0x443ef0
push esi
mov ebx, 0x443e20
call fcn.0040c7c6
push 0x5c
push 0x2f
call fcn.0040c81b
push 0x443ee4
push esi
call fcn.0040c896
add esp, 0x18
lea eax, [esp + 0x20]
inc edi
call fcn.0040119f
cmp edi, eax
jb 0x40621b
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x28]
jbe 0x40626b
call fcn.004329d2
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 0x40628a
call fcn.004329d2
mov dword [esp + 0x3c], esi
lea edi, [esp + 0x38]
lea esi, [esp + 0x30]
call fcn.004050d0
test al, al
je 0x4062ed
call fcn.004050b3
cmp dword [eax + 0x14], 0
mov esi, dword [esp + 0x30]
jne 0x4062d5
push ebx
push dword [esp + 0x2c]
lea eax, [ebx + 0x1c]
call fcn.004073ce
mov eax, dword [esp + 0x30]
pop ecx
pop ecx
push eax
add eax, 0xffffffe4
call fcn.0040177f
sub dword [esp + 0x28], 0x1c
mov dword [esp + 0x30], esi
jmp 0x406277
test esi, esi
jne 0x4062de
call fcn.004329d2
cmp ebx, dword [esi + 8]
jb 0x4062e8
call fcn.004329d2
add ebx, 0x1c
jmp 0x406277
lea eax, [esp + 0x20]
call fcn.0040119f
test eax, eax
jne 0x406308
lea esi, [esp + 0x20]
call fcn.00401530
jmp 0x4061c0
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
lea esi, [esp + 0xc0]
call fcn.00401a9d
cmp dword [esp + 0xd4], 0
je 0x406332
mov eax, esi
push 0x10
push eax
call fcn.0040d084
pop ecx
pop ecx
mov eax, dword [ebx]
test eax, eax
mov dword [esp + 0x18], eax
je 0x406341
call fcn.0040e164
lea eax, [ebx + 8]
call fcn.004073cb
mov edi, eax
xor esi, esi
cmp edi, esi
mov dword [esp + 0x30], edi
jne 0x406389
cmp dword [esp + 0x18], esi
je 0x406364
mov esi, dword [esp + 0x18]
call fcn.0040e171
mov edi, 0x80004005
push 0
push 1
lea esi, [esp + 0xc8]
call fcn.00401449
lea esi, [esp + 0x20]
call fcn.00401530
mov eax, edi
jmp 0x4061c5
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 0x4063c9
lea esi, [esp + 0x44]
call fcn.00428564
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4063c3
call fcn.0040e171
mov edi, dword [esp + 0x1c]
jmp 0x406369
cmp dword [esp + 0x40], esi
jne 0x4063e9
lea esi, [esp + 0x44]
call fcn.00428564
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4063e5
call fcn.0040e171
xor edi, edi
jmp 0x406369
cmp dword [esp + 0x40], esi
mov dword [esp + 0x14], esi
jbe 0x40650e
lea eax, [esp + 0x98]
mov byte [esp + 0x13], 0
call fcn.0040e194
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 0x4065ef
lea eax, [esp + 0x98]
call fcn.004073cb
cmp eax, 4
jne 0x40644f
lea eax, [esp + 0x98]
call fcn.0040e1d7
test al, al
je 0x40644f
mov byte [esp + 0x13], 1
lea eax, [esp + 0x98]
call fcn.0040e1be
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 0x4065ef
lea eax, [esp + 0x98]
call fcn.0040e567
lea esi, [esp + 0xdc]
call fcn.00401a9d
cmp byte [esp + 0x12], 0
je 0x40654a
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.00406887
lea edi, [esp + 0x6c]
mov esi, eax
call fcn.004137cc
test al, al
je 0x4064d6
mov eax, ebx
push eax
lea eax, [esp + 0x48]
call fcn.004068d8
push 0
push 1
lea esi, [esp + 0xe4]
call fcn.00401449
lea eax, [esp + 0x98]
call fcn.0040e1ad
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 0x4063f7
cmp dword [esp + 0x48], esi
je 0x4063cf
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sar eax, 2
je 0x4063cf
push 0x160
call fcn.0043283e
cmp eax, esi
pop ecx
je 0x406600
mov ebx, eax
call fcn.004104ef
mov edi, eax
jmp 0x406602
cmp byte [esp + 0x13], 0
je 0x40656f
push 0
push 1
lea esi, [esp + 0xe4]
call fcn.00401449
lea eax, [esp + 0x98]
call fcn.0040e1ad
jmp 0x4064fa
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x28]
jbe 0x40657e
call fcn.004329d2
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 0x40659d
call fcn.004329d2
mov dword [esp + 0x78], esi
lea edi, [esp + 0x74]
lea esi, [esp + 0x38]
call fcn.004050d0
test al, al
je 0x4064d6
call fcn.004050b3
lea ecx, [esp + 0xdc]
call fcn.0040c6f7
test al, al
je 0x4065d9
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x48]
call fcn.004068d8
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x28]
jb 0x4065e8
call fcn.004329d2
add dword [esp + 0x3c], 0x1c
jmp 0x40658e
lea eax, [esp + 0x98]
call fcn.0040e1ad
jmp 0x4063ad
xor edi, edi
mov ecx, edi
neg ecx
lea eax, [edi + 8]
sbb ecx, ecx
and ecx, eax
lea esi, [esp + 0x14]
call fcn.004153a4
movzx eax, byte [ebp + 0x10]
push eax
movzx eax, byte [ebp + 0xc]
call fcn.00410b40
lea eax, [esp + 0xf8]
call fcn.0040d282
mov ebx, dword [esp + 0x54]
push eax
lea esi, [ebx + 0x14]
push esi
call fcn.0040dac4
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.0040e1d0
push edx
push eax
mov eax, ecx
call fcn.00415b0d
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.00410993
lea esi, [esp + 0x5c]
call fcn.00401530
push 0
push 1
lea esi, [esp + 0x84]
call fcn.00401449
cmp byte [esp + 0x12], 0
je 0x4066c1
cmp dword [ebx + 0x38], 0
jne 0x4066c1
lea eax, [esp + 0x44]
call fcn.00406932
mov esi, dword [esp + 0x30]
mov edi, dword [esi]
lea eax, [esp + 0x14]
call fcn.004073cb
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 0x40671a
cmp byte [esp + 0x12], al
jne 0x40671a
xor esi, esi
cmp dword [esp + 0x48], 0
je 0x40671a
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sar eax, 2
cmp esi, eax
jae 0x40671a
mov eax, dword [esp + 0x48]
lea eax, [eax + esi*4]
push eax
lea eax, [ebx + 0x30]
lea edi, [esp + 0x60]
call fcn.004067e3
inc esi
jmp 0x4066ed
lea eax, [esp + 0xf8]
call fcn.0040d2b0
lea eax, [esp + 0x14]
call fcn.0042bd29
jmp 0x4063ad