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

Disassembly:
push 0xffffffffffffffff
push 0x4a6a30
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
mov eax, dword [esp + 0x78]
push ebx
push ebp
push esi
push edi
push eax
lea ecx, [esp + 0x58]
call fcn.0040f9a0
xor edi, edi
lea ecx, [esp + 0x28]
mov dword [esp + 0x38], edi
call fcn.00439d80
lea ecx, [esp + 0x18]
mov dword [esp + 0x78], edi
call fcn.00439d80
mov ebp, dword [esp + 0x80]
sub esp, 8
mov byte [esp + 0x80], 1
mov dword [esp + 0x18], edi
fld dword [ebp + 0x2c]
fmul qword [0x4dd328]
xor ebx, ebx
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_ceil]
add esp, 8
call sub.MSVCRT.dll__ftol
mov esi, eax
mov eax, dword [ebp + 0x10]
cmp eax, 1
je 0x4867bd
cmp eax, 3
je 0x4867bd
push esi
push ebx
lea ecx, [esp + 0x30]
call fcn.00439d90
push esi
push ebx
lea ecx, [esp + 0x20]
call fcn.00439d90
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x80], 1
test eax, eax
je 0x4864de
mov dword [esp + 0x68], eax
jmp 0x4864e3
mov byte [esp + 0x65], 1
mov esi, dword [esp + 0x10]
mov byte [esp + 0x6c], 0
mov ecx, dword [esp + 0x54]
cmp dword [ecx], 0
je 0x486735
cmp eax, dword [esp + 0x68]
jne 0x48650b
mov cl, byte [esp + 0x6c]
test cl, cl
jne 0x486735
lea edx, [eax + 0x5c]
mov dword [esp + 0x38], edx
mov eax, dword [edx]
mov dword [esp + 0x3c], eax
mov eax, dword [edx]
test eax, eax
je 0x486523
mov eax, dword [eax + 4]
jmp 0x486525
xor eax, eax
mov ecx, eax
test ecx, ecx
mov dword [esp + 0x40], ecx
je 0x486534
mov eax, dword [ecx + 4]
jmp 0x486536
xor eax, eax
test ecx, ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], 0
mov byte [esp + 0x48], 0
mov byte [esp + 0x49], 0
je 0x486556
mov dword [esp + 0x4c], ecx
jmp 0x48655b
mov byte [esp + 0x49], 1
mov esi, dword [esp + 0x10]
mov byte [esp + 0x50], 0
cmp dword [edx], 0
je 0x486710
cmp ecx, dword [esp + 0x4c]
jne 0x48657f
mov al, byte [esp + 0x50]
test al, al
jne 0x486710
mov dl, byte [ebp + 9]
test dl, dl
je 0x4865d4
fld dword [ecx + 0x30]
fadd dword [ecx + 0x2c]
fld dword [ebp + 0x30]
fadd dword [ebp + 0x2c]
fld st(1)
fld qword [0x4dd268]
fadd qword [0x4a8200]
fld st(2)
fmulp st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x4865c8
fld qword [0x4a8200]
fsub qword [0x4dd268]
fxch st(1)
fmulp st(1)
fcompp
fnstsw ax
test ah, 1
jne 0x486612
jmp 0x4865cc
fstp st(0)
fstp st(0)
test dl, dl
jne 0x4866c5
fld dword [ecx + 0x2c]
fld qword [0x4dd268]
fadd qword [0x4a8200]
fmul dword [ebp + 0x2c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4866c5
fld dword [ecx + 0x2c]
fld qword [0x4a8200]
fsub qword [0x4dd268]
fmul dword [ebp + 0x2c]
fcompp
fnstsw ax
test ah, 1
je 0x4866c5
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x80]
cmp eax, edx
mov eax, dword [ecx + 0x10]
jne 0x48667b
cmp eax, 1
jne 0x486636
mov eax, dword [0x4dd278]
add edi, eax
push eax
jmp 0x486667
cmp eax, 2
je 0x486664
cmp eax, 5
je 0x486664
cmp eax, 3
jne 0x486650
sub edi, dword [0x4dd278]
jmp 0x4866fa
cmp eax, 4
je 0x48665e
cmp eax, 6
jne 0x4866fa
dec edi
jmp 0x4866fa
inc edi
push 1
fld dword [ecx + 0x14]
call sub.MSVCRT.dll__ftol
push eax
lea ecx, [esp + 0x30]
call fcn.00439e30
jmp 0x4866fa
cmp eax, 1
jne 0x48669c
mov eax, dword [0x4dd278]
add ebx, eax
push eax
fld dword [ecx + 0x14]
call sub.MSVCRT.dll__ftol
push eax
lea ecx, [esp + 0x20]
call fcn.00439e30
jmp 0x4866fa
cmp eax, 2
je 0x4866c0
cmp eax, 5
je 0x4866c0
cmp eax, 3
jne 0x4866b3
sub ebx, dword [0x4dd278]
jmp 0x4866fa
cmp eax, 4
je 0x4866bd
cmp eax, 6
jne 0x4866fa
dec ebx
jmp 0x4866fa
inc ebx
push 1
jmp 0x486688
mov ecx, dword [ecx + 0x10]
cmp ecx, 1
jne 0x4866d5
add esi, dword [0x4dd278]
jmp 0x4866fa
cmp ecx, 2
je 0x4866f9
cmp ecx, 5
je 0x4866f9
cmp ecx, 3
jne 0x4866ec
sub esi, dword [0x4dd278]
jmp 0x4866fa
cmp ecx, 4
je 0x4866f6
cmp ecx, 6
jne 0x4866fa
dec esi
jmp 0x4866fa
inc esi
lea ecx, [esp + 0x38]
call fcn.00440e40
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
jmp 0x486564
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x54]
inc eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x80], eax
call fcn.004403e0
mov eax, dword [esp + 0x5c]
jmp 0x4864ec
cmp edi, dword [0x4dd278]
jle 0x486757
push 0x3f000000
lea ecx, [esp + 0x2c]
call fcn.00439fc0
fstp dword [ebp + 0x14]
mov dword [ebp + 0x10], 5
jmp 0x4867c1
test ebx, ebx
jle 0x486775
push 0x3f000000
lea ecx, [esp + 0x1c]
call fcn.00439fc0
fstp dword [ebp + 0x14]
mov dword [ebp + 0x10], 5
jmp 0x4867c1
test edi, edi
mov dword [ebp + 0x10], 6
jne 0x4867c1
test ebx, ebx
jne 0x4867c1
test esi, esi
jle 0x4867c1
mov al, byte [0x4dcba0]
test al, al
jne 0x48679e
mov al, byte [0x4dcb70]
test al, al
je 0x486897
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
push 0x4c6108
call fcn.00443600
add esp, 0xc
jmp 0x4867c1
mov esi, dword [esp + 0x10]
mov al, byte [0x4dcb70]
test al, al
je 0x486897
push esi
push ebx
push edi
push 0x4c60e4
call fcn.00443600
mov eax, dword [ebp + 0x10]
add esp, 0x10
cmp eax, 6
je 0x486818
cmp eax, 3
je 0x486818
mov edx, dword [esp + 0x84]
mov eax, dword [edx + 0x18]
mov eax, dword [eax + 4]
test eax, eax
je 0x486811
mov cl, byte [eax + 0x1b]
test cl, cl
jne 0x48680a
mov esi, 0x4c60e0
jmp 0x486843
mov esi, 0x4c60dc
jmp 0x486843
mov esi, 0x4c60d8
jmp 0x486843
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 4]
test eax, eax
je 0x48683e
mov cl, byte [eax + 0x1b]
test cl, cl
jne 0x486837
mov esi, 0x4c60d4
jmp 0x486843
mov esi, 0x4c60d0
jmp 0x486843
mov esi, 0x4c60cc
test eax, eax
je 0x486854
mov al, byte [eax + 0x1b]
neg al
sbb al, al
and al, 0xf6
add al, 0x50
jmp 0x486856
mov al, 0x58
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
movsx eax, al
push eax
push ecx
push edx
push 0x4c60b8
call fcn.00443600
fld dword [ebp + 0x30]
add esp, 0x10
push esi
sub esp, 8
fstp qword [esp]
fld dword [ebp + 0x2c]
sub esp, 8
fstp qword [esp]
push 0x4c609c
call fcn.00443600
add esp, 0x18
mov al, byte [0x4dcb40]
test al, al
je 0x4868be
mov eax, dword [esp + 0x84]
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx + 4]
test eax, eax
je 0x4868be
mov dl, byte [eax + 0x1b]
neg dl
sbb edx, edx
add edx, 6
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x10]
cmp eax, 5
jne 0x4869d3
fild dword [0x4dc6c8]
lea esi, [ebp + 0x14]
fcomp dword [esi]
fnstsw ax
test ah, 0x41
jne 0x48692c
test edi, edi
jle 0x4868f2
push 0x3f000000
lea ecx, [esp + 0x2c]
call fcn.00439fc0
fstp dword [esi]
jmp 0x48692c
jne 0x48690a
test ebx, ebx
jle 0x48690a
push 0x3f000000
lea ecx, [esp + 0x1c]
call fcn.00439fc0
fstp dword [esi]
jmp 0x48692c
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
push 0x4c6064
call fcn.00443600
mov edx, dword [ebp + 0x2c]
add esp, 0xc
mov dword [esi], edx
fild dword [0x4dc6c8]
fcom dword [esi]
fnstsw ax
test ah, 0x41
jne 0x48693f
fstp dword [esi]
jmp 0x486941
fstp st(0)
fld dword [esi]
fmul dword [0x4a8658]
fstp dword [ebp + 0x44]
fld dword [esi]
fmul qword [str.333333]
call sub.MSVCRT.dll__ftol
fld dword [esi]
fmul qword [0x4a8650]
mov edi, eax
mov dword [ebp + 0x38], edi
call sub.MSVCRT.dll__ftol
mov ecx, eax
mov dword [ebp + 0x3c], ecx
lea eax, [ecx + edi]
cdq
sub eax, edx
mov edx, dword [ebp + 0x50]
sar eax, 1
mov dword [ebp + 0x40], eax
mov eax, dword [esi]
mov dword [ebp + 0x48], eax
lea eax, [ebp + 0x50]
test edx, edx
jne 0x4869f1
lea ecx, [ecx + ecx*2]
push 0
mov dword [esp + 0x94], ecx
push eax
fild dword [esp + 0x98]
lea edx, [esp + 0x90]
lea eax, [esp + 0x1c]
push edx
mov dx, word [ebp + 0xe]
fadd dword [esi]
push eax
mov ax, word [ebp + 0xc]
push esi
push ecx
fmul dword [0x4a8658]
lea ecx, [ebp + 0x60]
fstp dword [esp]
push edx
push eax
push ecx
push ebp
call fcn.004887f0
fstp st(0)
add esp, 0x28
jmp 0x4869f1
cmp eax, 6
je 0x4869dd
cmp eax, 3
jne 0x4869f1
push 0x4331a0
lea ecx, [ebp + 0x50]
mov dword [ebp + 0x14], 0
call fcn.0043fe20
lea ecx, [esp + 0x18]
mov byte [esp + 0x78], 0
call fcn.00439e10
lea ecx, [esp + 0x28]
mov dword [esp + 0x78], 0xffffffff
call fcn.00439e10
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x6c
ret