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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
push ebx
push esi
mov esi, dword [ebp + 0xc]
lea eax, [esp + 0x54]
mov ebx, edx
mov dword [esp + 0x7c], ecx
push edi
lea edx, [esp + 0x60]
mov dword [esp + 0x5c], ebx
mov ecx, esi
mov dword [esp + 0x58], 0
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 1
mov dword [esp + 0x68], eax
call fcn.00415660
test eax, eax
jne 0x416197
mov eax, 0xfffffff4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, esi
mov dword [esp + 0x10], 1
mov esi, dword [ebp + 8]
xor edi, edi
mov ecx, esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x74], 1
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], edi
call fcn.004155d0
test eax, eax
jns 0x41625e
mov eax, dword [esp + 0x80]
test eax, eax
je 0x41623e
xor edx, edx
mov ecx, eax
call fcn.00414d80
mov esi, eax
test esi, esi
jne 0x41690f
mov esi, dword [ebp + 8]
test ebx, ebx
je 0x416255
mov edx, esi
mov ecx, ebx
call fcn.00414980
mov esi, eax
test esi, esi
jne 0x41690f
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, esi
lea ecx, [esp + 0x10]
call fcn.00414980
mov esi, eax
test esi, esi
jne 0x41690f
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x30]
call fcn.00414980
mov esi, eax
test esi, esi
jne 0x41690f
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x74]
mov dword [esp + 0x30], 1
mov dword [esp + 0x10], 1
mov edx, dword [edx + 4]
add edx, 2
call fcn.00414880
mov esi, eax
test esi, esi
jne 0x41690f
xor edx, edx
lea ecx, [esp + 0x74]
call fcn.00414d80
mov esi, eax
test esi, esi
jne 0x41690f
push 4
push 2
call fcn.0044a732
add esp, 8
test eax, eax
jne 0x4162e2
lea esi, [eax - 0x10]
jmp 0x41690f
push 4
push 3
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], eax
call fcn.0044a732
add esp, 8
test eax, eax
jne 0x416308
mov esi, 0xfffffff0
jmp 0x41690f
mov edi, eax
mov dword [esp + 0x48], 3
lea ecx, [esp + 0x30]
mov dword [esp + 0x4c], edi
call fcn.00414f60
and eax, 0x1f
cmp eax, 0x1f
jae 0x41635e
mov ebx, 0x1f
lea ecx, [esp + 0x10]
sub ebx, eax
mov edx, ebx
mov dword [esp + 0x58], ebx
call fcn.00415320
mov esi, eax
test esi, esi
jne 0x41690f
mov edx, ebx
lea ecx, [esp + 0x30]
call fcn.00415320
mov esi, eax
test esi, esi
jne 0x41690f
jmp 0x416366
mov dword [esp + 0x58], 0
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
dec ebx
dec ecx
mov dword [esp + 0x50], ebx
mov eax, ebx
mov dword [esp + 0x54], ecx
sub eax, ecx
lea ecx, [esp + 0x30]
mov dword [esp + 0x3c], eax
shl eax, 5
mov edx, eax
mov dword [esp + 0x40], eax
call fcn.00415320
mov esi, eax
test esi, esi
jne 0x41690f
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x30]
lea ecx, [esp + 0x10]
lea esi, [eax*4]
mov dword [esp + 0x2c], esi
call fcn.00415660
test eax, eax
js 0x416461
mov eax, dword [esp + 0x7c]
add eax, esi
mov dword [esp + 0x3c], eax
nop word [eax + eax]
inc dword [eax]
lea ecx, [esp + 0x10]
mov ebx, dword [esp + 0x10]
mov eax, ebx
imul eax, dword [esp + 0x30]
test eax, eax
jle 0x416423
lea edx, [esp + 0x30]
call fcn.004155d0
lea ecx, [esp + 0x10]
test eax, eax
js 0x416404
lea eax, [esp + 0x30]
mov edx, ecx
push eax
call fcn.00415960
jmp 0x416431
lea eax, [esp + 0x10]
push eax
lea edx, [esp + 0x34]
call fcn.00415960
mov esi, eax
add esp, 4
test esi, esi
jne 0x41690f
neg ebx
jmp 0x41643e
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x14]
call fcn.00415720
mov esi, eax
add esp, 4
test esi, esi
jne 0x41690f
lea edx, [esp + 0x30]
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x10]
call fcn.00415660
test eax, eax
mov eax, dword [esp + 0x3c]
jns 0x4163d0
mov ebx, dword [esp + 0x50]
jmp 0x416465
mov dword [esp + 0x2c], esi
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x30]
call fcn.004154a0
mov esi, eax
test esi, esi
jne 0x41690f
mov ecx, dword [esp + 0x54]
cmp ebx, ecx
jbe 0x416870
mov eax, dword [esp + 0x38]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x7c]
add eax, 0xfffffffc
mov dword [esp + 0x40], edx
add eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov eax, ebx
sub eax, ecx
shl eax, 5
sub eax, 0x20
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
mov esi, dword [eax + ebx*4]
lea ecx, [eax + ebx*4]
mov edx, dword [edx]
cmp esi, edx
jae 0x4164e6
test edx, edx
je 0x4164e6
mov ecx, dword [ecx - 4]
xor eax, eax
push 0
push edx
or eax, esi
push eax
push ecx
call fcn.00456c60
test edx, edx
jne 0x4164de
cmp eax, 0xffffffff
jbe 0x4164e9
mov dword [esp + 0x64], 0
or eax, 0xffffffff
mov ecx, dword [esp + 0x28]
inc eax
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
lea eax, [eax + ebx*4]
mov dword [esp + 0x3c], eax
jmp 0x416504
mov ecx, dword [esp + 0x28]
dec dword [ecx]
xor edx, edx
lea ecx, [esp + 0x1c]
call fcn.00414d80
mov esi, eax
test esi, esi
jne 0x41690f
cmp dword [esp + 0x54], 1
jb 0x416529
mov eax, dword [esp + 0x40]
mov eax, dword [eax - 4]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1c]
mov dword [esp + 0x90], 1
mov dword [esp + 0x94], 1
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [ecx + 4], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x98], eax
mov ecx, edx
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x90]
push eax
call fcn.00415e20
mov esi, eax
add esp, 4
test esi, esi
jne 0x41690f
mov esi, dword [esp + 0x48]
cmp esi, 1
jae 0x4165db
push 4
push 1
call fcn.0044a732
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4162fe
test edi, edi
je 0x4165c8
shl esi, 2
push esi
push edi
push ebx
call fcn.00446970
mov eax, dword [fcn.004459f0]
push esi
push 0
push edi
call eax
push dword [esp + 0x64]
call fcn.0044a73d
add esp, 0x1c
mov edi, ebx
mov esi, 1
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], edi
lea eax, [esi*4]
push eax
push 0
push edi
call fcn.004459f0
add esp, 0xc
mov dword [edi], 0
mov dword [esp + 0x44], 1
cmp ebx, 2
jae 0x416610
mov dword [edi], 0
cmp ebx, 1
jae 0x41661a
xor eax, eax
jmp 0x416621
mov eax, dword [esp + 0x18]
mov eax, dword [eax + ebx*4 - 8]
mov dword [edi], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax - 4]
mov dword [edi + 4], eax
lea edx, [esp + 0x44]
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x1c]
mov eax, dword [eax]
mov dword [edi + 8], eax
call fcn.00415660
test eax, eax
jg 0x416500
lea eax, [esp + 0x60]
mov dword [esp + 0x9c], 1
mov dword [esp + 0xa4], eax
lea edx, [esp + 0x30]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x1c]
mov dword [esp + 0xa0], 1
mov eax, dword [eax]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x9c]
push eax
call fcn.00415e20
mov esi, eax
add esp, 4
test esi, esi
jne 0x41690f
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x1c]
call fcn.00415320
mov esi, eax
test esi, esi
jne 0x41690f
mov ebx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov eax, ebx
imul eax, dword [esp + 0x1c]
test eax, eax
jle 0x4167d8
lea edx, [esp + 0x1c]
call fcn.004155d0
lea ecx, [esp + 0x10]
test eax, eax
js 0x4167b2
lea eax, [esp + 0x1c]
mov edx, ecx
push eax
call fcn.00415960
add esp, 4
test eax, eax
je 0x4167cd
mov esi, eax
test eax, eax
jne 0x41690f
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x60]
mov dword [esp + 0x60], 0
lea edx, [esp + 0x84]
mov dword [esp + 0x84], 1
lea ecx, [esp + 0x10]
mov dword [esp + 0x88], 1
mov dword [esp + 0x8c], eax
call fcn.00415660
test eax, eax
jns 0x416848
lea edx, [esp + 0x30]
lea ecx, [esp + 0x1c]
call fcn.00414980
mov esi, eax
test esi, esi
jne 0x41690f
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x1c]
call fcn.00415320
mov esi, eax
test esi, esi
jne 0x41690f
mov eax, ebx
lea ecx, [esp + 0x10]
imul eax, dword [esp + 0x1c]
test eax, eax
jns 0x416821
lea edx, [esp + 0x1c]
call fcn.004155d0
lea ecx, [esp + 0x10]
test eax, eax
js 0x4167fc
lea eax, [esp + 0x1c]
mov edx, ecx
push eax
call fcn.00415960
add esp, 4
test eax, eax
je 0x416813
mov esi, eax
test eax, eax
jne 0x41690f
mov eax, dword [esp + 0x28]
dec dword [eax]
jmp 0x41684c
lea eax, [esp + 0x10]
push eax
lea edx, [esp + 0x20]
call fcn.00415960
add esp, 4
test eax, eax
jne 0x4166e9
neg ebx
mov dword [esp + 0x10], ebx
mov esi, eax
jmp 0x4166f7
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x14]
call fcn.00415720
add esp, 4
mov esi, eax
test eax, eax
jne 0x4166e9
mov dword [esp + 0x10], ebx
jmp 0x4166f7
lea eax, [esp + 0x10]
push eax
lea edx, [esp + 0x20]
call fcn.00415960
add esp, 4
test eax, eax
jne 0x41679d
neg ebx
mov esi, eax
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x28]
dec dword [eax]
jmp 0x41684c
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x14]
call fcn.00415720
add esp, 4
mov esi, eax
test eax, eax
jne 0x41679d
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], ebx
dec dword [eax]
jmp 0x41684c
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x50]
sub eax, 4
sub dword [esp + 0x2c], 0x20
dec ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x28], eax
cmp ebx, dword [esp + 0x54]
jbe 0x416870
mov edx, dword [esp + 0x40]
jmp 0x4164b0
mov ebx, dword [esp + 0x80]
test ebx, ebx
je 0x41689d
lea edx, [esp + 0x74]
mov ecx, ebx
call fcn.00414980
mov esi, eax
test esi, esi
jne 0x41690f
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 + 0x5c]
test ebx, ebx
je 0x41690f
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x10]
call fcn.004154a0
mov esi, eax
test esi, esi
jne 0x41690f
mov eax, dword [ebp + 8]
lea edx, [esp + 0x10]
mov ecx, ebx
mov eax, dword [eax]
mov dword [esp + 0x10], eax
call fcn.00414980
mov esi, eax
test esi, esi
jne 0x41690f
mov dword [esp + 0x5c], eax
lea edx, [esp + 0x84]
lea eax, [esp + 0x5c]
mov dword [esp + 0x84], 1
mov ecx, ebx
mov dword [esp + 0x88], 1
mov dword [esp + 0x8c], eax
call fcn.00415660
test eax, eax
jne 0x41690f
mov dword [ebx], 1
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x416939
mov eax, dword [esp + 0x14]
shl eax, 2
push eax
mov eax, dword [fcn.004459f0]
push 0
push ecx
call eax
push dword [esp + 0x24]
call fcn.0044a73d
mov edi, dword [esp + 0x5c]
add esp, 0x10
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x416963
mov eax, dword [esp + 0x34]
shl eax, 2
push eax
mov eax, dword [fcn.004459f0]
push 0
push ecx
call eax
push dword [esp + 0x44]
call fcn.0044a73d
mov edi, dword [esp + 0x5c]
add esp, 0x10
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x416990
mov eax, dword [esp + 0x78]
shl eax, 2
push eax
mov eax, dword [fcn.004459f0]
push 0
push ecx
call eax
push dword [esp + 0x88]
call fcn.0044a73d
mov edi, dword [esp + 0x5c]
add esp, 0x10
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4169ba
mov eax, dword [esp + 0x20]
shl eax, 2
push eax
mov eax, dword [fcn.004459f0]
push 0
push ecx
call eax
push dword [esp + 0x30]
call fcn.0044a73d
mov edi, dword [esp + 0x5c]
add esp, 0x10
test edi, edi
je 0x4169dc
mov eax, dword [esp + 0x48]
shl eax, 2
push eax
mov eax, dword [fcn.004459f0]
push 0
push edi
call eax
push dword [esp + 0x58]
call fcn.0044a73d
add esp, 0x10
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret