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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x5c]
mov esi, dword [edi + 0x48]
mov ebx, dword [esi + 4]
mov dword [esp + 0x44], ebx
test eax, eax
je 0x406092
cmp dword [esi + 0x34], 0
jne 0x406092
mov dword [edi + 0x1c], 3
jmp 0x406533
movzx ecx, word [esp + 0x6c]
movzx edx, word [esp + 0x64]
movzx ecx, cx
movzx ebp, word [esp + 0x74]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
add ecx, edx
add ecx, ebp
xor edx, edx
add ecx, dword [esp + 0xac]
setb dl
add ecx, ebx
adc edx, 0
add ecx, 0x2e
adc edx, 0
cmp ecx, 0xffffffff
sbb edx, 0
jb 0x4060db
mov dword [edi + 0x1c], 0xf
jmp 0x406533
mov dword [esp + 0x34], ebp
mov dword [esp], ebx
mov ebp, dword [esp + 0x84]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0xa], 0
mov dword [esp + 0xe], 0
mov dword [esp + 0x12], 0
mov dword [esp + 0x16], 0
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
mov dword [esp + 6], 0x2014b50
mov ebx, dword [esp + 0x88]
movzx ecx, word [esp + 0x6c]
mov edx, dword [esp + 0xac]
add ecx, edx
mov dword [esp + 0x40], ecx
xor ecx, ecx
mov edx, 0
cmp word [esp + 0x8c], 0
je 0x406169
mov dl, 0x14
mov byte [esp + 0xc], dl
movzx edx, word [esp + 0x90]
mov byte [esp + 0xe], dl
mov byte [esp + 0xf], dh
movzx edx, word [esp + 0x8c]
mov byte [esp + 0x10], dl
mov byte [esp + 0x11], dh
movzx edx, word [esp + 0x94]
mov byte [esp + 0x12], dl
mov byte [esp + 0x13], dh
movzx edx, word [esp + 0x98]
mov byte [esp + 0x14], dl
mov byte [esp + 0x15], dh
mov byte [esp + 0x16], bl
mov byte [esp + 0x17], bh
mov edx, ebx
shr edx, 0x10
mov byte [esp + 0x18], dl
shr ebx, 0x18
neg ebp
mov edx, 0
sbb edx, edx
mov byte [esp + 0x19], bl
or edx, dword [esp + 0x80]
mov byte [esp + 0x1a], dl
mov byte [esp + 0x1b], dh
mov ebx, edx
shr ebx, 0x10
mov byte [esp + 0x1c], bl
shr edx, 0x18
neg edi
mov ebx, 0
sbb ebx, ebx
mov byte [esp + 0x1d], dl
or ebx, dword [esp + 0x78]
mov byte [esp + 0x1e], bl
mov byte [esp + 0x1f], bh
mov edx, ebx
shr edx, 0x10
mov byte [esp + 0x20], dl
shr ebx, 0x18
mov byte [esp + 0x21], bl
movzx edx, word [esp + 0x64]
mov byte [esp + 0x22], dl
mov byte [esp + 0x23], dh
mov edx, dword [esp + 0x40]
mov byte [esp + 0x24], dl
mov byte [esp + 0x25], dh
movzx edx, word [esp + 0x74]
mov byte [esp + 0x26], dl
mov byte [esp + 0x27], dh
mov ebx, dword [esp + 0xa4]
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bh
mov edx, ebx
shr edx, 0x10
mov byte [esp + 0x2e], dl
shr ebx, 0x18
neg eax
sbb ecx, ecx
mov byte [esp + 0x2f], bl
or ecx, dword [esp + 0x9c]
mov byte [esp + 0x30], cl
mov byte [esp + 0x31], ch
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x32], al
shr ecx, 0x18
mov byte [esp + 0x33], cl
mov ebx, dword [esp]
mov eax, ebx
and eax, 0x2e
mov ecx, ebx
xor ecx, 0x2e
lea edi, [ecx + eax*2]
mov eax, dword [esi + 8]
cmp eax, edi
jae 0x4062cd
cmp eax, 1
adc eax, 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
add eax, eax
cmp ebx, edi
jb 0x4062a0
push ebx
push dword [esi + 0xc]
push dword [esi]
mov eax, dword [esp + 0x68]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0x406505
mov dword [esi], eax
mov dword [esi + 8], ebx
mov ebx, dword [esp]
jmp 0x4062cf
mov eax, dword [esi]
mov dword [esi + 4], edi
mov ecx, dword [esi + 0xc]
imul edx, ecx, 0x2e
imul ecx, ebx
add ecx, eax
lea eax, [esp + 6]
push edx
push eax
push ecx
call fcn.00409600
add esp, 0xc
mov ebx, dword [esi + 4]
mov edi, dword [esi + 8]
mov eax, ebx
mov edx, dword [esp + 0x3c]
and eax, edx
mov ecx, ebx
xor ecx, edx
lea ebp, [ecx + eax*2]
cmp edi, ebp
jae 0x406338
cmp edi, 1
adc edi, 0
mov eax, edi
nop
nop
nop
mov edi, eax
add eax, eax
cmp edi, ebp
jb 0x406310
push edi
push dword [esi + 0xc]
push dword [esi]
mov eax, dword [esp + 0x68]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0x406505
mov dword [esi], eax
mov dword [esi + 8], edi
mov dword [esi + 4], ebp
cmp word [esp + 0x64], 0
je 0x406366
mov eax, dword [esi + 0xc]
imul ebx, eax
add ebx, dword [esi]
mov ecx, dword [esp + 0x3c]
imul ecx, eax
push ecx
push dword [esp + 0x64]
push ebx
call fcn.00409600
add esp, 0xc
mov ebp, dword [esi + 4]
mov edi, dword [esi + 8]
mov eax, ebp
mov edx, dword [esp + 0x38]
and eax, edx
mov ecx, ebp
xor ecx, edx
lea ebx, [ecx + eax*2]
cmp edi, ebx
jae 0x4063b8
cmp edi, 1
adc edi, 0
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
add eax, eax
cmp edi, ebx
jb 0x406390
push edi
push dword [esi + 0xc]
push dword [esi]
mov eax, dword [esp + 0x68]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0x406505
mov dword [esi], eax
mov dword [esi + 8], edi
mov dword [esi + 4], ebx
movzx eax, word [esp + 0x6c]
test ax, ax
je 0x4063e8
mov eax, dword [esi + 0xc]
imul ebp, eax
add ebp, dword [esi]
mov ecx, dword [esp + 0x38]
imul ecx, eax
push ecx
push dword [esp + 0x6c]
push ebp
call fcn.00409600
add esp, 0xc
mov ebx, dword [esi + 4]
mov edi, dword [esi + 8]
mov eax, ebx
mov edx, dword [esp + 0xac]
and eax, edx
mov ecx, ebx
xor ecx, edx
lea ebp, [ecx + eax*2]
cmp edi, ebp
jae 0x406438
cmp edi, 1
adc edi, 0
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
add eax, eax
cmp edi, ebp
jb 0x406410
push edi
push dword [esi + 0xc]
push dword [esi]
mov eax, dword [esp + 0x68]
push dword [eax + 0x34]
call dword [eax + 0x30]
add esp, 0x10
test eax, eax
je 0x406505
mov dword [esi], eax
mov dword [esi + 8], edi
mov dword [esi + 4], ebp
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x406468
mov eax, dword [esi + 0xc]
imul ebx, eax
add ebx, dword [esi]
imul ecx, eax
push ecx
push dword [esp + 0xac]
push ebx
call fcn.00409600
add esp, 0xc
mov ebp, dword [esi + 4]
mov edi, dword [esi + 8]
mov eax, ebp
mov edx, dword [esp + 0x34]
and eax, edx
mov ecx, ebp
xor ecx, edx
lea ebx, [ecx + eax*2]
cmp edi, ebx
jae 0x406490
mov ecx, dword [esp + 0x5c]
mov edx, esi
push 1
push ebx
call fcn.00409450
add esp, 8
test eax, eax
je 0x406505
mov dword [esi + 4], ebx
cmp word [esp + 0x74], 0
je 0x4064b8
mov eax, dword [esi + 0xc]
imul ebp, eax
add ebp, dword [esi]
mov ecx, dword [esp + 0x34]
imul ecx, eax
push ecx
push dword [esp + 0x74]
push ebp
call fcn.00409600
add esp, 0xc
mov edi, dword [esi + 0x14]
mov eax, edi
and eax, 1
mov ecx, edi
xor ecx, 1
lea ebx, [ecx + eax*2]
cmp dword [esi + 0x18], ebx
jae 0x4064e3
lea edx, [esi + 0x10]
mov ecx, dword [esp + 0x5c]
push 1
push ebx
call fcn.00409450
add esp, 8
test eax, eax
je 0x406505
mov dword [esi + 0x14], ebx
mov eax, dword [esi + 0x1c]
imul edi, eax
add edi, dword [esi + 0x10]
lea ecx, [esp + 0x44]
push eax
push ecx
push edi
call fcn.00409600
add esp, 0xc
mov eax, 1
jmp 0x406535
mov ebx, dword [esp]
cmp dword [esi + 8], ebx
mov edi, dword [esp + 0x5c]
jae 0x406529
push ebx
push dword [esi + 0xc]
push dword [esi]
push dword [edi + 0x34]
call dword [edi + 0x30]
add esp, 0x10
test eax, eax
je 0x40652c
mov dword [esi], eax
mov dword [esi + 8], ebx
mov dword [esi + 4], ebx
mov dword [edi + 0x1c], 0x10
xor eax, eax
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret