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

Disassembly:
sub esp, 0x984
mov eax, dword [0x6229a0]
xor eax, esp
mov dword [esp + 0x980], eax
mov eax, dword [esp + 0x988]
push edi
mov edi, ecx
mov dword [esp + 0x58], eax
cmp byte [edi + 0xa4], 0
jne 0x48c9f0
mov edx, dword [edi + 0xa0]
cmp edx, 2
jl 0x48c9f0
mov eax, dword [edi + 0xb0]
lea ecx, [esp + 0xac]
movd xmm1, dword [edi + 0xac]
dec eax
cvtdq2ps xmm1, xmm1
movd xmm0, eax
lea eax, [edx*2 - 2]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x54], eax
mov eax, 0x72
divss xmm1, xmm0
movss dword [esp + 0x14], xmm1
nop dword [eax + eax]
mov dword [ecx], 0
add ecx, 0x14
sub eax, 1
jne 0x48c400
push ebx
xor cl, cl
lea eax, [edx - 1]
xorps xmm0, xmm0
mov byte [esp + 0xb], cl
xorps xmm1, xmm1
movss dword [esp + 0x10], xmm0
xor ebx, ebx
movss dword [esp + 0x14], xmm1
test eax, eax
jle 0x48c9d2
push ebp
push esi
lea esi, [esp + 0xe8]
lea ebp, [edi + 4]
test cl, cl
jne 0x48c466
lea eax, [esp + 0x18]
mov ecx, edi
push eax
push ebx
call fcn.0048ca10
test al, al
je 0x48c4ab
movss xmm0, dword [esp + 0x18]
movss xmm1, dword [esp + 0x1c]
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], 0
lea eax, [ebx + 1]
mov dword [esp + 0x3c], 0
push ecx
movaps xmm2, xmm0
movss dword [esp + 0x34], xmm1
push eax
mov ecx, edi
movss dword [esp + 0x34], xmm2
mov dword [esp + 0x1c], eax
call fcn.0048ca10
test al, al
jne 0x48c4b1
movss xmm0, dword [esp + 0x18]
movss xmm1, dword [esp + 0x1c]
jmp 0x48c4c9
inc ebx
jmp 0x48c9ab
movss xmm0, dword [esp + 0x38]
movss xmm1, dword [esp + 0x3c]
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x1c], xmm1
mov eax, dword [edi + 0xa0]
sub esp, 8
movss dword [esp + 0x3c], xmm0
dec eax
movss dword [esp + 0x2c], xmm1
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mov ebx, dword [esp + 0x1c]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [edi + 0xb4]
add eax, 0x18
movss xmm2, dword [0x5d9834]
divss xmm0, xmm1
subss xmm2, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x30], xmm2
divss xmm0, xmm1
movss xmm1, dword [0x5d9834]
subss xmm1, xmm0
movss xmm0, dword [edi + 0xbc]
movss dword [esp + 4], xmm0
movss dword [esp], xmm2
push eax
movss dword [esp + 0x20], xmm1
call fcn.00404610
movss xmm0, dword [edi + 0xbc]
add esp, 4
mov eax, dword [edi + 0xb4]
add eax, 0x18
fstp dword [esp + 0x58]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x1c]
movss dword [esp], xmm0
push eax
call fcn.00404610
movss xmm0, dword [edi + 0xc0]
add esp, 4
mov eax, dword [edi + 0xb4]
add eax, 0x20
fstp dword [esp + 0x60]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [esp], xmm0
push eax
call fcn.00404610
movss xmm0, dword [edi + 0xc0]
add esp, 4
mov eax, dword [edi + 0xb4]
add eax, 0x20
fstp dword [esp + 0x5c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [esp], xmm0
push eax
call fcn.00404610
movss xmm0, dword [edi + 0xc4]
add esp, 4
mov eax, dword [edi + 0xb4]
add eax, 0x28
fstp dword [esp + 0x64]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp], xmm0
push eax
call fcn.00404610
movss xmm0, dword [edi + 0xc4]
add esp, 4
mov eax, dword [edi + 0xb4]
add eax, 0x28
fstp dword [esp + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x1c]
movss dword [esp], xmm0
push eax
call fcn.00404610
movss xmm0, dword [edi + 0xc8]
add esp, 4
fstp dword [esp + 0x54]
movss dword [esp + 4], xmm0
mov eax, dword [edi + 0xb4]
movss xmm0, dword [esp + 0x28]
add eax, 0x30
movss dword [esp], xmm0
push eax
call fcn.00404610
movss xmm0, dword [edi + 0xc8]
add esp, 4
mov eax, dword [edi + 0xb4]
add eax, 0x30
fstp dword [esp + 0x48]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [esp], xmm0
push eax
call fcn.00404610
movd xmm2, dword [edi + 0xe4]
xorps xmm3, xmm3
movss xmm0, dword [esp + 0x4c]
add esp, 0xc
mulss xmm0, dword [esp + 0x44]
movss xmm1, dword [0x5d9838]
cvtdq2ps xmm2, xmm2
fstp dword [esp + 0x48]
mulss xmm0, xmm2
comiss xmm0, xmm3
jbe 0x48c6c7
addss xmm0, xmm1
jmp 0x48c6cb
subss xmm0, xmm1
cvttss2si ecx, xmm0
mov edx, 0xff
test ecx, ecx
jg 0x48c6dc
xor ecx, ecx
jmp 0x48c6e5
cmp ecx, 0xff
cmovge ecx, edx
movss xmm0, dword [esp + 0x48]
mulss xmm0, dword [esp + 0x4c]
mulss xmm0, xmm2
comiss xmm0, xmm3
jbe 0x48c700
addss xmm0, xmm1
jmp 0x48c704
subss xmm0, xmm1
cvttss2si eax, xmm0
test eax, eax
jg 0x48c710
xor eax, eax
jmp 0x48c718
cmp eax, 0xff
cmovge eax, edx
movups xmm0, xmmword [edi + 0xd8]
movups xmmword [esp + 0x68], xmm0
mov dword [esp + 0x74], ecx
mov ecx, 4
movups xmm0, xmmword [edi + 0xd8]
movups xmmword [esp + 0x78], xmm0
mov dword [esp + 0x84], eax
lea eax, [esp + 0x88]
nop word [eax + eax]
mov dword [eax], 0
lea eax, [eax + 8]
mov dword [eax - 4], 0
sub ecx, 1
jne 0x48c750
movss xmm0, dword [esp + 0x2c]
lea ecx, [esp + 0x68]
mulss xmm0, dword [esp + 0x50]
mov dword [esi - 0x34], 0x3f800000
movss xmm7, dword [edi + 0xcc]
movss xmm4, dword [esp + 0x30]
movaps xmm3, xmm7
mulss xmm0, dword [esp + 0x54]
addss xmm3, dword [ebp - 4]
movss xmm5, dword [edi + 0xd0]
mulss xmm4, dword [esp + 0x50]
addss xmm7, dword [ebp + 4]
movss dword [esp + 0x2c], xmm0
movaps xmm6, xmm3
subss xmm3, dword [esp + 0x2c]
mulss xmm4, dword [esp + 0x54]
addss xmm6, xmm0
movaps xmm0, xmm5
addss xmm0, dword [ebp]
addss xmm5, dword [ebp + 8]
movss dword [esp + 0x90], xmm3
movss xmm3, dword [esp + 0x34]
mulss xmm3, dword [esp + 0x58]
movss dword [esp + 0x30], xmm4
addss xmm4, xmm0
subss xmm0, dword [esp + 0x30]
mulss xmm3, dword [esp + 0x5c]
movss dword [esp + 0x88], xmm6
movss dword [esp + 0x8c], xmm4
movss dword [esp + 0x94], xmm0
movaps xmm0, xmm7
addss xmm0, xmm3
movss dword [esi - 0x40], xmm6
subss xmm7, xmm3
movss dword [esi - 0x3c], xmm4
movss dword [esp + 0x98], xmm0
movss xmm0, dword [esp + 0x24]
mulss xmm0, dword [esp + 0x58]
movss dword [esp + 0xa0], xmm7
mulss xmm0, dword [esp + 0x5c]
movss dword [esp + 0x24], xmm0
movaps xmm0, xmm5
addss xmm0, dword [esp + 0x24]
subss xmm5, dword [esp + 0x24]
movss dword [esp + 0x9c], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [esp + 0xa4], xmm5
movss dword [esi - 0x38], xmm0
call fcn.00532d60
movss xmm0, dword [esp + 0x90]
lea ecx, [esp + 0x68]
movss dword [esi - 0x2c], xmm0
movss xmm0, dword [esp + 0x94]
movss dword [esi - 0x28], xmm0
movss xmm0, dword [esp + 0x28]
mov dword [esi - 0x30], eax
movss dword [esi - 0x24], xmm0
mov dword [esi - 0x20], 0
call fcn.00532d60
movss xmm0, dword [esp + 0x98]
lea ecx, [esp + 0x78]
movss dword [esi - 0x18], xmm0
movss xmm0, dword [esp + 0x9c]
movss dword [esi - 0x14], xmm0
movss xmm0, dword [esp + 0x14]
mov dword [esi - 0x1c], eax
movss dword [esi - 0x10], xmm0
mov dword [esi - 0xc], 0x3f800000
call fcn.00532d60
movss xmm0, dword [esp + 0x98]
lea ecx, [esp + 0x78]
mov dword [esi - 8], eax
movss dword [esi - 4], xmm0
movss xmm0, dword [esp + 0x9c]
movss dword [esi], xmm0
movss xmm0, dword [esp + 0x14]
movss dword [esi + 4], xmm0
mov dword [esi + 8], 0x3f800000
call fcn.00532d60
movss xmm0, dword [esp + 0x90]
mov dword [esi + 0xc], eax
movss dword [esi + 0x10], xmm0
lea ecx, [esp + 0x68]
movss xmm0, dword [esp + 0x94]
movss dword [esi + 0x14], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [esi + 0x18], xmm0
mov dword [esi + 0x1c], 0
call fcn.00532d60
movss xmm0, dword [esp + 0xa0]
lea ecx, [esp + 0x78]
movss dword [esi + 0x24], xmm0
movss xmm0, dword [esp + 0xa4]
movss dword [esi + 0x28], xmm0
movss xmm0, dword [esp + 0x14]
mov dword [esi + 0x20], eax
movss dword [esi + 0x2c], xmm0
mov dword [esi + 0x30], 0
call fcn.00532d60
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0xa0]
add ebp, 8
movss xmm0, dword [esp + 0x18]
dec eax
movss xmm1, dword [esp + 0x1c]
add esi, 0x78
mov cl, byte [esp + 0x13]
cmp ebx, eax
jl 0x48c440
pop esi
pop ebp
push dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0xa4]
push eax
mov eax, dword [edi + 0xb4]
push dword [eax]
call fcn.005169c0
pop ebx
mov ecx, dword [esp + 0x984]
pop edi
xor ecx, esp
call fcn.0059b734
add esp, 0x984
ret 4