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

Disassembly:
mov eax, 0x4060
call fcn.00453a70
mov eax, dword [esp + 0x4068]
push ebx
cdq
push ebp
push esi
mov ebp, eax
mov ebx, edx
push edi
mov edi, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebx
call fcn.004174d0
mov esi, edx
add eax, ebp
adc esi, ebx
mov ecx, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], esi
mov byte [esp + 0x13], 0
call fcn.004174d0
cmp edx, esi
jg 0x418633
jl 0x418587
cmp eax, dword [esp + 0x30]
jae 0x418633
cmp byte [esp + 0x13], 0xb3
je 0x418642
mov esi, ebp
mov ecx, edi
mov ebp, ebx
call fcn.00417930
or ebx, 0xffffffff
jmp 0x4185aa
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov eax, esi
add esi, 0xffffffff
mov ecx, ebp
mov dword [esp + 0x24], esi
adc ebp, 0xffffffff
or eax, ecx
mov dword [esp + 0x28], ebp
je 0x418b90
mov ecx, edi
call fcn.004174f0
mov ecx, edi
mov ebp, eax
mov esi, edx
call fcn.004174d0
cmp edx, esi
jg 0x418b90
jl 0x4185e8
cmp eax, ebp
jae 0x418b90
push 0
push 8
mov ecx, edi
call fcn.00417870
and eax, 0xff
shl ebx, 8
or ebx, eax
mov eax, ebx
xor al, al
cmp eax, 0x100
jne 0x4185a2
mov ecx, edi
mov byte [esp + 0x13], bl
call fcn.004174d0
cmp edx, dword [esp + 0x34]
jg 0x41862e
jl 0x418621
cmp eax, dword [esp + 0x30]
jae 0x41862e
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
jmp 0x418587
cmp bl, 0xb3
je 0x418642
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x4060
ret 0xc
mov ecx, edi
call fcn.004174d0
mov ebp, eax
mov ebx, edx
sub ebp, 4
push 0
sbb ebx, 0
push 0xc
mov ecx, edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebx
call fcn.00417870
mov esi, dword [esp + 0x4074]
push 0
push 0xc
mov ecx, edi
mov word [esi], ax
call fcn.00417870
push 0
push 4
mov ecx, edi
mov word [esi + 2], ax
call fcn.00417870
mov cl, byte [esi + 4]
mov dword [esp + 0x18], edx
mov dl, cl
push 0
xor dl, al
push 4
and dl, 0xf
xor dl, cl
mov ecx, edi
mov byte [esi + 4], dl
call fcn.00417870
mov eax, dword [eax*4 + 0x4b6808]
push 0
push 0x12
mov ecx, edi
mov dword [esi + 5], eax
call fcn.00417870
push 0
push 1
mov ecx, edi
mov dword [esi + 9], eax
call fcn.00417870
cmp eax, 1
jne 0x4186d4
test edx, edx
je 0x4186e3
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x4060
ret 0xc
push 0
push 0xa
mov ecx, edi
call fcn.00417870
push 0
push 1
mov ecx, edi
mov dword [esi + 0xd], eax
call fcn.00417870
mov cl, byte [esi + 0x11]
mov dword [esp + 0x18], edx
mov dl, cl
push 0
xor dl, al
push 1
and dl, 1
xor dl, cl
mov ecx, edi
mov byte [esi + 0x11], dl
call fcn.00417870
mov cl, byte [esi + 0x11]
add al, al
xor al, cl
mov dword [esp + 0x18], edx
and al, 2
xor al, cl
test al, 2
mov byte [esi + 0x11], al
je 0x41874b
xor ebx, ebx
push 0
push 8
mov ecx, edi
call fcn.00417870
mov byte [esi + ebx + 0x12], al
inc ebx
cmp ebx, 0x40
jb 0x418732
mov ebx, dword [esp + 0x34]
push 0
push 1
mov ecx, edi
call fcn.00417870
mov dword [esp + 0x18], edx
mov dl, byte [esi + 0x52]
mov cl, dl
xor cl, al
and cl, 1
xor cl, dl
test cl, 1
mov byte [esi + 0x52], cl
je 0x418789
xor ebx, ebx
push 0
push 8
mov ecx, edi
call fcn.00417870
mov byte [esi + ebx + 0x53], al
inc ebx
cmp ebx, 0x40
jb 0x418770
mov ebx, dword [esp + 0x34]
mov ecx, edi
call fcn.004174d0
sub eax, ebp
mov cl, byte [esi + 4]
mov dword [esp + 0x24], eax
sbb edx, ebx
xor eax, eax
mov ax, word [esi]
and ecx, 0xf
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edx
fild dword [esp + 0x2c]
fdiv dword [ecx*4 + 0x4b6848]
fadd qword [0x499530]
call fcn.00454b6c
xor edx, edx
xor ebp, ebp
mov dx, word [esi + 2]
mov ecx, edi
mov dword [esi + 0x95], eax
mov dword [esi + 0x99], edx
mov dword [esp + 0x2c], 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x38], 8
mov dword [esp + 0x3c], ebp
call fcn.00417930
or ebx, 0xffffffff
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov eax, ecx
add ecx, 0xffffffff
mov dword [esp + 0x38], ecx
mov ecx, edx
adc ecx, 0xffffffff
or eax, edx
mov dword [esp + 0x3c], ecx
je 0x418ae0
mov ecx, edi
call fcn.004174f0
mov ecx, edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
call fcn.004174d0
cmp edx, dword [esp + 0x44]
jg 0x418ae0
jl 0x41884d
cmp eax, dword [esp + 0x40]
jae 0x418ae0
push 0
push 8
mov ecx, edi
call fcn.00417870
and eax, 0xff
shl ebx, 8
or ebx, eax
mov eax, ebx
xor al, al
cmp eax, 0x100
jne 0x4187ff
cmp bl, 0xb5
jne 0x418ae0
mov ecx, edi
call fcn.004174d0
sub eax, 4
push 0
sbb edx, 0
push 4
mov ecx, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
call fcn.00417870
mov cl, byte [esi + 0x93]
mov dword [esp + 0x18], edx
mov dl, cl
push 0
xor dl, al
push 1
and dl, 0xf
xor dl, cl
mov ecx, edi
mov byte [esi + 0x93], dl
call fcn.00417870
mov cl, byte [esi + 0x93]
push 0
shl al, 4
xor al, cl
push 3
and al, 0x10
mov dword [esp + 0x20], edx
xor al, cl
mov ecx, edi
mov byte [esi + 0x93], al
call fcn.00417870
mov cl, byte [esi + 0x93]
push 0
shl al, 5
and cl, 0x1f
push 4
xor al, cl
mov ecx, edi
mov dword [esp + 0x20], edx
mov byte [esi + 0x93], al
call fcn.00417870
mov cl, byte [esi + 0x94]
mov dword [esp + 0x18], edx
mov dl, cl
push 0
xor dl, al
push 1
and dl, 0xf
xor dl, cl
mov ecx, edi
mov byte [esi + 0x94], dl
call fcn.00417870
mov cl, byte [esi + 0x94]
push 0
shl al, 4
xor al, cl
push 2
and al, 0x10
mov dword [esp + 0x20], edx
xor al, cl
mov ecx, edi
mov byte [esi + 0x94], al
call fcn.00417870
mov cl, byte [esi + 0x94]
push 0
shl al, 5
xor al, cl
push 2
and al, 0x60
mov dword [esp + 0x20], edx
xor al, cl
mov ecx, edi
mov byte [esi + 0x94], al
call fcn.00417870
shl eax, 0xc
or word [esi], ax
push 0
push 2
mov ecx, edi
call fcn.00417870
shl eax, 0xc
or word [esi + 2], ax
push 0
push 0xc
mov ecx, edi
call fcn.00417870
mov ebp, dword [esi + 9]
push 0
shl eax, 0x12
or ebp, eax
push 1
mov ecx, edi
mov dword [esi + 9], ebp
call fcn.00417870
cmp eax, 1
jne 0x4189af
test edx, edx
je 0x4189be
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x4060
ret 0xc
push 0
push 8
mov ecx, edi
call fcn.00417870
mov ecx, dword [esi + 0xd]
push 0
shl eax, 0xa
or ecx, eax
push 1
mov dword [esi + 0xd], ecx
mov ecx, edi
call fcn.00417870
mov cl, byte [esi + 0x94]
push 0
and cl, 0x7f
push 2
shl al, 7
xor cl, al
mov dword [esp + 0x20], edx
mov byte [esi + 0x94], cl
mov ecx, edi
call fcn.00417870
mov ecx, dword [esi + 5]
add eax, 1
adc edx, 0
push 0
push ecx
push edx
push eax
call fcn.00455270
push 0
push 5
mov ecx, edi
mov ebx, eax
mov ebp, edx
call fcn.00417870
add eax, 1
adc edx, 0
push edx
push eax
push ebp
push ebx
call fcn.00455540
mov ecx, edi
mov dword [esi + 5], eax
call fcn.004174d0
mov ecx, dword [esp + 0x1c]
mov ebp, eax
mov eax, dword [esp + 0x20]
mov ebx, edx
sub ebp, ecx
mov dword [esp + 0x50], 4
sbb ebx, eax
xor ecx, ecx
mov cx, word [esi + 2]
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x6c], ecx
mov cl, byte [esi + 4]
mov dword [esp + 0x48], eax
mov dword [esp + 0x68], eax
mov al, cl
mov dword [esp + 0x54], 3
and al, 0xf
mov dword [esp + 0x58], 0x10
cmp al, 1
mov dword [esp + 0x5c], 9
mov dword [esp + 0x60], 0xdd
mov dword [esp + 0x64], 0x64
jbe 0x418ab6
mov edx, ecx
and edx, 0xf
cmp edx, 5
jge 0x418abd
cmp al, 1
jbe 0x418ab6
and ecx, 0xf
jmp 0x418ac2
mov ecx, 1
jmp 0x418ac2
mov ecx, 5
mov edx, dword [esp + ecx*8 + 0x40]
mov eax, dword [esp + ecx*8 + 0x44]
mov dword [esi + 0x95], edx
mov dword [esi + 0x99], eax
mov dword [esp + 0x2c], 2
jmp 0x418ae4
mov ebx, dword [esp + 0x18]
mov ecx, dword [esi + 5]
mov eax, 0x2f684bdb
lea ecx, [ecx + ecx*4]
add ecx, ecx
mul ecx
mov eax, dword [esi + 9]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 4
cmp eax, 0x3fffffff
mov dword [esi + 5], ecx
jne 0x418b0d
xor eax, eax
jmp 0x418b16
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 4
mov ecx, dword [esi + 0x95]
mov edx, dword [esi + 0x99]
test ecx, ecx
mov dword [esi + 9], eax
mov dword [esp + 0x40], edx
je 0x418b47
mov eax, dword [esp + 0x40]
xor edx, edx
div ecx
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov ecx, edx
test ecx, ecx
jne 0x418b2d
mov eax, dword [esp + 0x40]
test eax, eax
je 0x418b73
mov eax, dword [esi + 0x95]
mov ecx, dword [esp + 0x40]
xor edx, edx
div ecx
xor edx, edx
mov dword [esi + 0x95], eax
mov eax, dword [esi + 0x99]
div ecx
mov dword [esi + 0x99], eax
mov eax, dword [esp + 0x407c]
test eax, eax
je 0x418c60
mov eax, dword [esp + 0x2c]
cmp eax, 1
je 0x418b9f
cmp eax, 2
je 0x418b9f
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x4060
ret 0xc
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [edi]
push eax
push ecx
mov ecx, edi
call dword [edx + 8]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
lea ecx, [esp + 0x74]
push eax
push ecx
mov ecx, edi
call fcn.00417940
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, eax
or edx, ecx
je 0x418be3
mov edx, ebp
or edx, ebx
je 0x418be3
mov edx, dword [edi]
push ecx
push eax
mov ecx, edi
call dword [edx + 8]
mov eax, dword [esp + 0x24]
push ebx
push ebp
lea ecx, [esp + eax + 0x78]
push ecx
mov ecx, edi
call fcn.00417940
mov edi, dword [esp + 0x407c]
mov eax, dword [esp + 0x2c]
cmp eax, 1
mov edx, str.MP1V
mov dword [edi], 1
je 0x418c15
mov edx, str.MP2V
lea ecx, [edi + 4]
mov al, byte [edx]
inc edx
mov byte [ecx], al
inc ecx
test al, al
jne 0x418c18
mov edx, dword [esi + 9]
xor eax, eax
mov dword [edi + 0x24], edx
mov ax, word [esi]
xor ecx, ecx
mov dword [edi + 0x28], eax
mov cx, word [esi + 2]
mov dword [esp + 0x28], 0
mov dword [edi + 0x2c], ecx
mov edx, dword [esi + 5]
mov dword [esp + 0x24], edx
fild qword [esp + 0x24]
fdivr qword [0x499a90]
call fcn.00454b6c
mov dword [edi + 0x30], eax
mov eax, dword [esi + 5]
mov dword [edi + 0x34], eax
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x4060
ret 0xc