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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0xa0
mov dword [esp + 0x60], eax
cmp byte [edx], 0
je 0x46bf4b
mov esi, edx
xorps xmm0, xmm0
movss dword [esp + 0x84], xmm0
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x94], xmm0
movss dword [esp + 0x90], xmm0
movss dword [esp + 0x9c], xmm0
movss dword [esp + 0x98], xmm0
movss dword [esp + 0x6c], xmm0
movss dword [esp + 0x68], xmm0
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x54], xmm0
xor ebx, ebx
mov al, 0x4d
mov cl, byte [esi + ebx]
mov byte [esp + 0x67], cl
test cl, cl
je 0x46bf4b
lea edx, [ecx - 9]
cmp dl, 0x17
ja 0x46ac64
mov ecx, 0x800013
bt ecx, edx
jae 0x46ac64
inc ebx
mov byte [esp + 0x67], al
mov al, byte [esp + 0x67]
jmp 0x46ac34
mov byte [esp + 0x67], al
mov cl, byte [esp + 0x67]
lea edx, [ecx - 0x41]
cmp dl, 0x39
ja case.0x46ac77.1
movzx edx, dl
jmp dword [edx*4 + 0x5db060]
lea edi, [ebx + 1]
lea edx, [esp + 0x98]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
mov ebx, eax
test eax, eax
je 0x46bf4b
add ebx, edi
lea edx, [esp + 0x9c]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
cmp byte [esp + 0x67], 0x6d
jne 0x46acf0
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x98]
movss dword [esp + 0x98], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x9c]
movss dword [esp + 0x9c], xmm0
movss xmm6, dword [esp + 0x9c]
movss dword [esp + 0x50], xmm6
movss xmm2, dword [esp + 0x98]
movss dword [esp + 0x54], xmm2
movaps xmm1, xmm6
movaps xmm0, xmm2
mov eax, dword [esp + 0x60]
call fcn.0057f7db
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
movss xmm4, dword [esp + 0x50]
movss dword [esp + 0x6c], xmm4
movss xmm5, dword [esp + 0x54]
movss dword [esp + 0x68], xmm5
jmp 0x46ac5a
dec ebx
cmp al, 0x4d
jne 0x46bf07
mov byte [esp + 0x67], 0x4c
lea edi, [ebx + 1]
lea edx, [esp + 0x98]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
mov ebx, eax
test eax, eax
je 0x46bf4b
add ebx, edi
lea edx, [esp + 0x9c]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
cmp byte [esp + 0x67], 0x6c
jne 0x46add6
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x98]
movss dword [esp + 0x98], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x9c]
movss dword [esp + 0x9c], xmm0
movss xmm6, dword [esp + 0x9c]
movss dword [esp + 0x6c], xmm6
movss xmm2, dword [esp + 0x98]
movss dword [esp + 0x68], xmm2
movaps xmm1, xmm6
movaps xmm0, xmm2
jmp 0x46ae4f
inc ebx
lea edx, [esp + 0x98]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
cmp byte [esp + 0x67], 0x68
jne 0x46ae37
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x98]
movss dword [esp + 0x98], xmm0
movss xmm3, dword [esp + 0x98]
movss dword [esp + 0x68], xmm3
movss xmm1, dword [esp + 0x6c]
movaps xmm0, xmm3
mov eax, dword [esp + 0x60]
call fcn.00541b78
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
jmp 0x46becd
inc ebx
lea edx, [esp + 0x9c]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
cmp byte [esp + 0x67], 0x76
jne 0x46aeb4
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x9c]
movss dword [esp + 0x9c], xmm0
movss xmm4, dword [esp + 0x9c]
movss dword [esp + 0x6c], xmm4
movaps xmm1, xmm4
movss xmm0, dword [esp + 0x68]
jmp 0x46ae4f
lea edi, [ebx + 1]
lea edx, [esp + 0x90]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add edi, eax
lea edx, [esp + 0x94]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add edi, eax
cmp byte [esp + 0x67], 0x63
jne 0x46af3e
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x90]
movss dword [esp + 0x90], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x94]
movss dword [esp + 0x94], xmm0
lea edx, [esp + 0x88]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add edi, eax
lea edx, [esp + 0x8c]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add edi, eax
cmp byte [esp + 0x67], 0x63
jne 0x46afab
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x88]
movss dword [esp + 0x88], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x8c]
movss dword [esp + 0x8c], xmm0
lea edx, [esp + 0x80]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
mov ebx, eax
test eax, eax
je 0x46bf4b
add ebx, edi
lea edx, [esp + 0x84]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
cmp byte [esp + 0x67], 0x63
jne 0x46b01a
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x80]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x84]
movss dword [esp + 0x84], xmm0
movss xmm5, dword [esp + 0x84]
movss dword [esp + 0x6c], xmm5
movss xmm6, dword [esp + 0x80]
movss dword [esp + 0x68], xmm6
movss dword [esp + 8], xmm5
movss dword [esp + 4], xmm6
movss xmm0, dword [esp + 0x8c]
movss dword [esp], xmm0
movss xmm2, dword [esp + 0x88]
movss xmm1, dword [esp + 0x94]
movss xmm0, dword [esp + 0x90]
jmp 0x46b1e0
inc ebx
movss xmm0, dword [esp + 0x98]
addss xmm0, xmm0
subss xmm0, dword [esp + 0x90]
movd edi, xmm0
movss dword [esp + 0x90], xmm0
movss xmm0, dword [esp + 0x9c]
addss xmm0, xmm0
subss xmm0, dword [esp + 0x94]
movss dword [esp + 0x5c], xmm0
movss dword [esp + 0x94], xmm0
lea edx, [esp + 0x88]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
lea edx, [esp + 0x8c]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
cmp byte [esp + 0x67], 0x73
jne 0x46b128
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x88]
movss dword [esp + 0x88], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x8c]
movss dword [esp + 0x8c], xmm0
lea edx, [esp + 0x80]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
lea edx, [esp + 0x84]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
cmp byte [esp + 0x67], 0x73
jne 0x46b195
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x80]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x84]
movss dword [esp + 0x84], xmm0
movss xmm5, dword [esp + 0x84]
movss dword [esp + 0x6c], xmm5
movss xmm6, dword [esp + 0x80]
movss dword [esp + 0x68], xmm6
movss dword [esp + 8], xmm5
movss dword [esp + 4], xmm6
movss xmm0, dword [esp + 0x8c]
movss dword [esp], xmm0
movss xmm2, dword [esp + 0x88]
movss xmm1, dword [esp + 0x5c]
movd xmm0, edi
mov eax, dword [esp + 0x60]
call fcn.0057f601
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x46b41a
lea edi, [ebx + 1]
lea edx, [esp + 0x90]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add edi, eax
lea edx, [esp + 0x94]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add edi, eax
cmp byte [esp + 0x67], 0x71
jne 0x46b27a
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x90]
movss dword [esp + 0x90], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x94]
movss dword [esp + 0x94], xmm0
lea edx, [esp + 0x80]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
mov ebx, eax
test eax, eax
je 0x46bf4b
add ebx, edi
lea edx, [esp + 0x84]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
cmp byte [esp + 0x67], 0x71
jne 0x46b2e9
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x80]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x84]
movss dword [esp + 0x84], xmm0
movss xmm3, dword [esp + 0x84]
movss dword [esp + 0x6c], xmm3
movss xmm4, dword [esp + 0x80]
movss dword [esp + 0x68], xmm4
movss dword [esp], xmm3
movaps xmm2, xmm4
movss xmm1, dword [esp + 0x94]
movss xmm0, dword [esp + 0x90]
jmp 0x46b411
lea edi, [ebx + 1]
movss xmm0, dword [esp + 0x98]
addss xmm0, xmm0
subss xmm0, dword [esp + 0x90]
movss dword [esp + 0x5c], xmm0
movss dword [esp + 0x90], xmm0
movss xmm1, dword [esp + 0x9c]
addss xmm1, xmm1
subss xmm1, dword [esp + 0x94]
movss dword [esp + 0x94], xmm1
movss dword [esp + 0x58], xmm1
lea edx, [esp + 0x80]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
mov ebx, eax
test eax, eax
je 0x46bf4b
add ebx, edi
lea edx, [esp + 0x84]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
cmp byte [esp + 0x67], 0x74
movss xmm1, dword [esp + 0x58]
jne 0x46b3e8
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x80]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x84]
movss dword [esp + 0x84], xmm0
movss xmm7, dword [esp + 0x84]
movss dword [esp + 0x6c], xmm7
movss xmm2, dword [esp + 0x80]
movss dword [esp + 0x68], xmm2
movss dword [esp], xmm7
movss xmm0, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
call fcn.0057f513
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
jmp 0x46ac5a
inc ebx
lea edx, [esp + 0x98]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
lea edi, [ebx + eax]
lea edx, [esp + 0x9c]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add edi, eax
lea edx, [esp + 0x7c]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add edi, eax
lea edx, [esp + 0x78]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add edi, eax
lea edx, [esp + 0x74]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add edi, eax
lea edx, [esp + 0x80]
lea eax, [esi + edi]
xor ecx, ecx
call fcn.0046a6d6
mov ebx, eax
test eax, eax
je 0x46bf4b
add ebx, edi
lea edx, [esp + 0x84]
lea eax, [esi + ebx]
xor ecx, ecx
call fcn.0046a6d6
test eax, eax
je 0x46bf4b
add ebx, eax
cmp byte [esp + 0x67], 0x61
jne 0x46b52a
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x80]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x84]
movss dword [esp + 0x84], xmm0
fld dword [esp + 0x9c]
fld dword [esp + 0x98]
movss xmm4, dword [esp + 0x84]
movss dword [esp + 0x6c], xmm4
movss xmm5, dword [esp + 0x80]
movss dword [esp + 0x68], xmm5
mov eax, dword [esp + 0x60]
mov edx, dword [eax + 4]
test edx, edx
je 0x46bebb
xorps xmm0, xmm0
fst dword [esp + 0x5c]
movss xmm6, dword [esp + 0x5c]
ucomiss xmm6, xmm0
setnp al
mov cl, 0
cmovne eax, ecx
test al, al
jne 0x46b65a
fxch st(1)
fst dword [esp + 0x5c]
movss xmm7, dword [esp + 0x5c]
ucomiss xmm7, xmm0
setnp cl
cmove eax, ecx
test al, al
jne 0x46b660
fxch st(1)
fst dword [esp + 0x5c]
comiss xmm0, dword [esp + 0x5c]
jbe 0x46b5b5
fchs
fxch st(1)
jmp 0x46b5b7
fxch st(1)
fst dword [esp + 0x5c]
comiss xmm0, dword [esp + 0x5c]
jbe 0x46b5c4
fchs
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0xc]
lea eax, [eax + edx*8 - 8]
movss xmm3, dword [eax]
movss xmm5, dword [eax + 4]
fld dword [0x5dcae0]
fmul dword [esp + 0x7c]
fsincos
fstp dword [esp + 0x58]
fstp dword [esp + 0x5c]
movaps xmm1, xmm3
subss xmm1, dword [esp + 0x68]
movss xmm2, dword [0x5dcb08]
mulss xmm1, xmm2
movss dword [esp + 0x4c], xmm1
fld dword [esp + 0x4c]
movaps xmm1, xmm5
subss xmm1, dword [esp + 0x6c]
mulss xmm1, xmm2
movss dword [esp + 0x4c], xmm1
fld dword [esp + 0x4c]
fxch st(1)
fst dword [esp + 0x4c]
movss xmm6, dword [esp + 0x4c]
ucomiss xmm6, xmm0
setnp al
mov dl, 0
cmovne eax, edx
test al, al
je 0x46b680
fxch st(1)
fst dword [esp + 0x4c]
ucomiss xmm1, xmm0
setnp al
cmovne eax, edx
test al, al
je 0x46b67e
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x46b664
fstp st(0)
fstp st(0)
jmp 0x46b664
fstp st(0)
fstp st(0)
movss xmm1, dword [esp + 0x6c]
movss xmm0, dword [esp + 0x68]
mov eax, dword [esp + 0x60]
call fcn.00541b78
jmp 0x46bebf
fxch st(1)
fst dword [esp + 0x4c]
movss xmm7, dword [esp + 0x4c]
mulss xmm7, dword [esp + 0x58]
movss dword [esp + 0x4c], xmm7
fld dword [esp + 0x4c]
fxch st(2)
fst dword [esp + 0x4c]
movss xmm7, dword [esp + 0x4c]
mulss xmm7, dword [esp + 0x5c]
movss dword [esp + 0x4c], xmm7
fld dword [esp + 0x4c]
fxch st(3)
fstp dword [esp + 0x4c]
fxch st(2)
movss xmm1, dword [esp + 0x4c]
fstp dword [esp + 0x4c]
addss xmm1, dword [esp + 0x4c]
fstp dword [esp + 0x4c]
movss xmm7, dword [esp + 0x4c]
mulss xmm7, dword [esp + 0x5c]
movss dword [esp + 0x4c], xmm7
fld dword [esp + 0x4c]
fxch st(1)
fstp dword [esp + 0x4c]
movss xmm4, dword [esp + 0x4c]
mulss xmm4, dword [esp + 0x58]
movss dword [esp + 0x48], xmm4
fst dword [esp + 0x4c]
subss xmm4, dword [esp + 0x4c]
movaps xmm7, xmm1
mulss xmm7, xmm1
movss dword [esp + 0x4c], xmm7
fld dword [esp + 0x4c]
movaps xmm6, xmm4
mulss xmm6, xmm4
movss dword [esp + 0x4c], xmm6
fld dword [esp + 0x4c]
fxch st(4)
fst dword [esp + 0x4c]
movss xmm7, dword [esp + 0x4c]
mulss xmm7, dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm7
fld dword [esp + 0x4c]
fxch st(4)
fst dword [esp + 0x4c]
movss xmm6, dword [esp + 0x4c]
mulss xmm6, dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm6
fld dword [esp + 0x4c]
fldz
fxch st(6)
fucomi st(6)
fstp st(6)
jp 0x46b77c
movss xmm0, dword [0x5dcaf4]
je 0x46b798
fxch st(3)
jmp 0x46b77e
fxch st(3)
fst dword [esp + 0x4c]
fxch st(5)
movss xmm0, dword [esp + 0x4c]
fst dword [esp + 0x4c]
fxch st(5)
fxch st(3)
divss xmm0, dword [esp + 0x4c]
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x46b7b0
movss xmm2, dword [0x5dcaf4]
je 0x46b7c8
fxch st(6)
jmp 0x46b7b2
fxch st(6)
fst dword [esp + 0x4c]
fxch st(6)
movss xmm2, dword [esp + 0x4c]
fst dword [esp + 0x4c]
divss xmm2, dword [esp + 0x4c]
addss xmm0, xmm2
fld1
fstp dword [esp + 0x4c]
comiss xmm0, dword [esp + 0x4c]
jbe 0x46b833
fstp st(0)
fstp st(4)
fxch st(1)
fxch st(2)
fxch st(3)
fxch st(1)
sqrtss xmm0, xmm0
movss dword [esp + 0x4c], xmm0
fmul dword [esp + 0x4c]
fxch st(1)
fmul dword [esp + 0x4c]
fxch st(1)
fst dword [esp + 0x4c]
movss xmm7, dword [esp + 0x4c]
mulss xmm7, dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm7
fld dword [esp + 0x4c]
fxch st(2)
fst dword [esp + 0x4c]
movss xmm6, dword [esp + 0x4c]
mulss xmm6, dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm6
fld dword [esp + 0x4c]
jmp 0x46b83b
fxch st(3)
fxch st(4)
fxch st(5)
fxch st(3)
fldz
fucomi st(1)
setnp dl
mov cl, 0
cmovne edx, ecx
fucomi st(5)
setnp al
cmovne eax, ecx
or edx, eax
fucomi st(4)
setnp al
cmovne eax, ecx
test al, al
jne 0x46b879
fucomi st(7)
setnp cl
cmove eax, ecx
test al, al
je 0x46b8a2
fstp st(0)
fstp st(0)
fstp st(5)
fxch st(1)
fxch st(2)
fxch st(3)
fxch st(4)
jmp 0x46b887
fstp st(0)
fstp st(0)
fstp st(5)
fxch st(1)
fxch st(2)
fxch st(3)
fxch st(4)
fld1
test dl, dl
jne 0x46b94b
fxch st(4)
fdivp st(3)
fxch st(3)
fsubp st(2)
fxch st(2)
fxch st(1)
jmp 0x46b95f
test dl, dl
je 0x46b8df
fstp st(0)
fstp st(4)
fstp st(2)
fxch st(2)
fstp dword [esp + 0x4c]
fxch st(3)
movss xmm7, dword [esp + 0x4c]
fstp dword [esp + 0x4c]
divss xmm7, dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm7
fld dword [esp + 0x4c]
fld1
fsubp st(1)
fxch st(1)
fxch st(2)
fxch st(3)
fxch st(1)
jmp 0x46b95f
fxch st(4)
fdivr st(1)
fmulp st(5)
fxch st(6)
fst dword [esp + 0x4c]
fxch st(4)
movss xmm6, dword [esp + 0x4c]
fst dword [esp + 0x4c]
addss xmm6, dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm6
fld dword [esp + 0x4c]
fucomi st(4)
fstp st(4)
jp 0x46b91b
fld dword [0x5dcaf4]
je 0x46b953
fstp st(0)
fxch st(6)
jmp 0x46b91d
fxch st(6)
fsubrp st(4)
fxch st(3)
fsubrp st(5)
fxch st(4)
fstp dword [esp + 0x4c]
movss xmm7, dword [esp + 0x4c]
fstp dword [esp + 0x4c]
divss xmm7, dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm7
fld dword [esp + 0x4c]
fxch st(2)
fxch st(3)
fxch st(2)
jmp 0x46b95f
fstp st(4)
fstp st(2)
fxch st(2)
jmp 0x46b95f
fstp st(7)
fstp st(0)
fstp st(3)
fstp st(1)
fxch st(2)
fxch st(3)
fstp dword [esp + 0x4c]
movss xmm0, dword [esp + 0x4c]
andps xmm0, xmmword [0x5dcb10]
sqrtss xmm0, xmm0
xorps xmm2, xmm2
fst dword [esp + 0x4c]
movss xmm6, dword [esp + 0x4c]
ucomiss xmm6, xmm2
jp 0x46b994
movss xmm2, dword [0x5dcaf4]
je 0x46b9b4
fxch st(1)
jmp 0x46b996
fxch st(1)
fst dword [esp + 0x4c]
fxch st(1)
movss xmm2, dword [esp + 0x4c]
mulss xmm2, xmm4
fst dword [esp + 0x4c]
fxch st(1)
divss xmm2, dword [esp + 0x4c]
jmp 0x46b9b6
fxch st(1)
mulss xmm2, xmm0
xorps xmm6, xmm6
fst dword [esp + 0x4c]
movss xmm7, dword [esp + 0x4c]
ucomiss xmm7, xmm6
jp 0x46b9da
movss xmm6, dword [0x5dcaf8]
je 0x46b9fd
fxch st(1)
jmp 0x46b9dc
fxch st(1)
fst dword [esp + 0x4c]
fxch st(1)
movss xmm6, dword [esp + 0x4c]
mulss xmm6, xmm1
fst dword [esp + 0x4c]
divss xmm6, dword [esp + 0x4c]
xorps xmm6, xmmword [0x5dcad0]
fld dword [esp + 0x74]
mulss xmm0, xmm6
movss xmm6, dword [0x5dca94]
fst dword [esp + 0x4c]
movss xmm7, dword [esp + 0x4c]
ucomiss xmm7, xmm6
setnp dl
mov cl, 0
cmovne edx, ecx
ucomiss xmm6, dword [esp + 0x78]
setnp al
cmovne eax, ecx
cmp dl, al
jne 0x46ba43
fxch st(1)
movss xmm6, dword [0x5dcad0]
xorps xmm2, xmm6
xorps xmm0, xmm6
jmp 0x46ba45
fxch st(1)
addss xmm3, dword [esp + 0x68]
movss xmm6, dword [0x5dcb08]
mulss xmm3, xmm6
movss xmm7, dword [esp + 0x58]
mulss xmm7, xmm2
addss xmm3, xmm7
movss xmm7, dword [esp + 0x5c]
mulss xmm7, xmm0
subss xmm3, xmm7
movss dword [esp + 0x44], xmm3
movss xmm7, dword [esp + 0x58]
mulss xmm7, xmm0
movss xmm3, dword [esp + 0x5c]
mulss xmm3, xmm2
addss xmm3, xmm7
addss xmm5, dword [esp + 0x6c]
mulss xmm5, xmm6
addss xmm3, xmm5
movss dword [esp + 0x40], xmm3
xorps xmm3, xmm3
fst dword [esp + 0x4c]
movss xmm5, dword [esp + 0x4c]
ucomiss xmm5, xmm3
jp 0x46bac1
fld dword [0x5dcaf4]
je 0x46bae0
fstp st(0)
movaps xmm5, xmm1
subss xmm5, xmm2
fst dword [esp + 0x4c]
divss xmm5, dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm5
fld dword [esp + 0x4c]
fxch st(3)
jmp 0x46bae2
fxch st(3)
xorps xmm3, xmm3
fst dword [esp + 0x4c]
movss xmm5, dword [esp + 0x4c]
ucomiss xmm5, xmm3
jp 0x46bafe
movss xmm5, dword [0x5dcaf4]
je 0x46bb13
subss xmm4, xmm0
fst dword [esp + 0x4c]
fxch st(3)
divss xmm4, dword [esp + 0x4c]
movaps xmm5, xmm4
jmp 0x46bb15
fxch st(3)
movaps xmm4, xmm5
mulss xmm4, xmm5
fst dword [esp + 0x4c]
movss xmm3, dword [esp + 0x4c]
mulss xmm3, dword [esp + 0x4c]
addss xmm3, xmm4
xorps xmm4, xmm4
ucomiss xmm3, xmm4
jp 0x46bb3a
je 0x46bb62
sqrtss xmm4, xmm3
movss dword [esp + 0x4c], xmm4
fst dword [esp + 0x3c]
movss xmm4, dword [esp + 0x3c]
divss xmm4, dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm4
fld dword [esp + 0x4c]
fxch st(5)
jmp 0x46bb6a
fld qword [0x5dcb00]
fxch st(5)
fstp dword [esp + 0x18]
movss dword [esp + 0x1c], xmm3
movss dword [esp + 0x20], xmm5
fstp dword [esp + 0x24]
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x2c], xmm2
movss dword [esp + 0x30], xmm1
fstp dword [esp + 0x34]
fxch st(1)
fstp dword [esp + 0x38]
fstp dword [esp + 0x3c]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_acos
fstp dword [esp + 0x4c]
xorps xmm4, xmm4
movss xmm5, dword [esp + 0x20]
ucomiss xmm5, xmm4
fld dword [esp + 0x3c]
fld dword [esp + 0x38]
fld dword [esp + 0x34]
movss xmm1, dword [esp + 0x30]
movss xmm2, dword [esp + 0x2c]
movss xmm0, dword [esp + 0x28]
fld dword [esp + 0x24]
movss xmm3, dword [esp + 0x1c]
fld dword [esp + 0x18]
ja 0x46bbfb
fxch st(2)
movss xmm4, dword [esp + 0x4c]
xorps xmm4, xmmword [0x5dcad0]
movss dword [esp + 0x4c], xmm4
jmp 0x46bbfd
fxch st(2)
xorps xmm4, xmm4
fst dword [esp + 0x3c]
movss xmm6, dword [esp + 0x3c]
ucomiss xmm6, xmm4
jp 0x46bc19
fld dword [0x5dcaf4]
je 0x46bc3c
fstp st(0)
addss xmm1, xmm2
xorps xmm1, xmmword [0x5dcad0]
fst dword [esp + 0x3c]
divss xmm1, dword [esp + 0x3c]
movss dword [esp + 0x3c], xmm1
fld dword [esp + 0x3c]
fxch st(4)
jmp 0x46bc3e
fxch st(4)
xorps xmm1, xmm1
fst dword [esp + 0x3c]
movss xmm2, dword [esp + 0x3c]
ucomiss xmm2, xmm1
jp 0x46bc5e
fld dword [0x5dcaf4]
je 0x46bc97
fstp st(0)
fxch st(3)
jmp 0x46bc60
fxch st(3)
fstp dword [esp + 0x3c]
fxch st(2)
movss xmm1, dword [esp + 0x3c]
subss xmm1, dword [esp + 0x48]
subss xmm1, xmm0
movaps xmm0, xmm1
fst dword [esp + 0x48]
divss xmm0, dword [esp + 0x48]
movss dword [esp + 0x48], xmm0
fld dword [esp + 0x48]
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(2)
jmp 0x46bca1
fstp st(4)
fxch st(1)
fxch st(2)
fxch st(3)
fxch st(4)
fst dword [esp + 0x48]
fxch st(3)
movss xmm1, dword [esp + 0x48]
mulss xmm1, xmm5
fst dword [esp + 0x48]
fxch st(4)
movss xmm0, dword [esp + 0x48]
fst dword [esp + 0x48]
mulss xmm0, dword [esp + 0x48]
subss xmm0, xmm1
movss dword [esp + 0x48], xmm0
xorps xmm0, xmm0
ucomiss xmm3, xmm0
jp 0x46bce7
movss xmm0, dword [0x5dcaf4]
je 0x46bd3c
fxch st(4)
jmp 0x46bce9
fxch st(4)
fmulp st(3)
fxch st(3)
fstp dword [esp + 0x3c]
fxch st(1)
movss xmm0, dword [esp + 0x3c]
mulss xmm0, xmm5
fstp dword [esp + 0x3c]
movss xmm5, dword [esp + 0x3c]
addss xmm5, xmm0
movaps xmm0, xmm5
divss xmm0, xmm3
fld1
fstp dword [esp + 0x3c]
movss xmm3, dword [esp + 0x3c]
ucomiss xmm3, xmm0
jbe 0x46bd44
fld1
fchs
fst dword [esp + 0x3c]
movss xmm3, dword [esp + 0x3c]
ucomiss xmm3, xmm0
ja 0x46bd62
fstp st(0)
fxch st(1)
jmp 0x46bd46
fstp st(0)
fstp st(2)
fstp st(2)
jmp 0x46bd46
fxch st(1)
movss xmm1, dword [0x5dca94]
minss xmm0, xmm1
movss dword [esp + 0x3c], xmm0
fld dword [esp + 0x3c]
fxch st(1)
fxch st(2)
jmp 0x46bd64
fxch st(1)
fstp dword [esp + 0x34]
fxch st(1)
fstp dword [esp + 0x38]
fxch st(1)
fstp dword [esp + 0x3c]
fstp dword [esp]
call fcn.005ada7c
fldz
movss xmm3, dword [esp + 0x48]
fst dword [esp + 0x48]
ucomiss xmm3, dword [esp + 0x48]
fld1
fld dword [esp + 0x3c]
fld dword [esp + 0x38]
fld dword [esp + 0x34]
ja 0x46bf19
fxch st(5)
fst dword [esp + 0x48]
movss xmm5, dword [esp + 0x48]
xorps xmm5, xmmword [0x5dcad0]
movss dword [esp + 0x48], xmm5
fld dword [esp + 0x48]
fxch st(3)
fucompi st(4)
fstp st(3)
jp 0x46bddc
jne 0x46bde2
fxch st(2)
fcomi st(3)
fstp st(3)
jbe 0x46bde8
fstp st(0)
fxch st(1)
fsubr dword [0x5dcb20]
jmp 0x46bdf0
fstp st(2)
fstp st(2)
jmp 0x46bdea
fstp st(2)
fstp st(2)
jmp 0x46bdea
fstp st(2)
fxch st(1)
jmp 0x46bdf0
fxch st(1)
fstp dword [esp + 0x48]
movss xmm5, dword [esp + 0x48]
mulss xmm5, dword [0x5dcb24]
movss dword [esp + 0x48], xmm5
mov edi, 1
jmp 0x46be11
fxch st(1)
mov dword [esp + 0x3c], edi
fild dword [esp + 0x3c]
fmul dword [esp + 0x48]
fadd dword [esp + 0x4c]
fsincos
fmul st(3)
fxch st(3)
fstp dword [esp + 0x30]
fmul st(1)
fxch st(1)
fstp dword [esp + 0x34]
fxch st(1)
fst dword [esp + 0x3c]
fxch st(1)
movss xmm2, dword [esp + 0x3c]
mulss xmm2, dword [esp + 0x5c]
fst dword [esp + 0x38]
fxch st(1)
movss xmm5, dword [esp + 0x38]
mulss xmm5, dword [esp + 0x58]
movss dword [esp + 0x38], xmm5
movaps xmm1, xmm2
addss xmm1, xmm5
fmul dword [esp + 0x58]
fstp dword [esp + 0x3c]
movss xmm0, dword [esp + 0x3c]
addss xmm0, dword [esp + 0x44]
fstp dword [esp + 0x3c]
movss xmm4, dword [esp + 0x3c]
mulss xmm4, dword [esp + 0x5c]
movss dword [esp + 0x3c], xmm4
subss xmm0, xmm4
addss xmm1, dword [esp + 0x40]
mov eax, dword [esp + 0x60]
call fcn.00541b78
inc edi
cmp edi, 0x21
fld dword [esp + 0x34]
fld dword [esp + 0x30]
jne 0x46be0f
fstp st(0)
fstp st(0)
jmp 0x46bebf
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x46ac5a
inc ebx
mov eax, dword [esp + 0x60]
call fcn.0057f71e
movss xmm5, dword [esp + 0x50]
movss dword [esp + 0x6c], xmm5
movss xmm2, dword [esp + 0x54]
movss dword [esp + 0x68], xmm2
jmp 0x46ac5a
cmp al, 0x6d
jne 0x46ac60
mov byte [esp + 0x67], 0x6c
jmp case.0x46ac77.11
fxch st(2)
fucompi st(3)
fstp st(2)
jnp 0x46bf3e
fxch st(3)
jmp 0x46bf27
fxch st(3)
fcomi st(2)
fstp st(2)
jbe 0x46bdee
fxch st(1)
fsub dword [0x5dcb20]
jmp 0x46bdf0
jne 0x46bf25
fstp st(2)
fxch st(1)
fxch st(2)
jmp 0x46bdf0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret