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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x592c80]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
mov ebx, ecx
movss dword [esp + 0x10], xmm2
push esi
movaps xmm0, xmm3
movss dword [esp + 0x18], xmm1
push edi
cmp dword [ebx + 0x1a0], 0xc8
movss dword [esp + 0x20], xmm0
jge 0x49b5bc
mov eax, dword [ebx + 0x19c]
lea ecx, [esp + 0x10]
push 0
push ecx
push 0
mov edx, dword [eax]
push 0
push eax
call dword [edx + 0x2c]
test eax, eax
js 0x49b5bc
movss xmm5, dword [esp + 0x20]
movss xmm3, dword [esp + 0x1c]
movss xmm1, dword [0x5815b0]
movaps xmm0, xmm3
subss xmm0, xmm5
movss xmm4, dword [esp + 0x18]
mov eax, dword [ebx + 0x17c]
movaps xmm2, xmm4
cdq
addss xmm2, xmm5
and edx, 3
divss xmm0, xmm1
lea edi, [edx + eax]
sar edi, 2
neg edi
mov eax, edi
divss xmm2, xmm1
cvttss2si ecx, xmm0
movaps xmm0, xmm4
subss xmm0, xmm5
sub eax, ecx
cdq
mov ecx, 0
sub eax, edx
sar eax, 1
divss xmm0, xmm1
cmovns ecx, eax
mov eax, dword [ebx + 0x180]
mov dword [esp + 0x40], ecx
cdq
and edx, 3
lea esi, [edx + eax]
sar esi, 2
mov eax, esi
neg eax
cvttss2si ecx, xmm0
movaps xmm0, xmm3
addss xmm0, xmm5
sub eax, ecx
cdq
mov ecx, 0
sub eax, edx
sar eax, 1
divss xmm0, xmm1
cmovns ecx, eax
mov dword [esp + 0x28], ecx
cvttss2si ecx, xmm0
sub edi, ecx
mov eax, edi
cdq
sub eax, edx
mov edi, eax
mov eax, 0x3f
sar edi, 1
cmp edi, eax
cvttss2si ecx, xmm2
cmovg edi, eax
neg esi
mov dword [esp + 0x3c], edi
sub esi, ecx
mov ecx, 0x3f
mov eax, esi
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
cmp eax, 0x3f
cmovg eax, ecx
mov dword [esp + 0x50], eax
cmp edx, eax
jg 0x49b5b0
movss xmm6, dword [0x5812c8]
movss xmm7, dword [0x5812e0]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x30], ecx
cmp ecx, edi
jg 0x49b5a3
lea eax, [ecx*8]
mov dword [esp + 0x14], eax
lea esi, [edx*8]
mov eax, ecx
mov dword [esp + 0x38], esi
shl eax, 4
lea edi, [esi + 8]
add eax, edx
lea eax, [eax + eax*4]
lea eax, [eax + 0x70]
lea edx, [ebx + eax*4]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], edx
mov ecx, 3
mov dword [esp + 0x24], esi
sub ecx, dword [edx]
mov edx, 1
shl edx, cl
mov dword [esp + 0x48], edx
cmp esi, edi
jg 0x49b56b
lea ecx, [eax + 8]
mov dword [esp + 0x4c], ecx
mov edi, eax
cmp eax, ecx
jg 0x49b552
addss xmm5, dword [esp + 0x20]
nop word [eax + eax]
mov eax, dword [ebx + 0x1a0]
mov ecx, dword [ebx + 0x17c]
add ecx, edi
movss xmm2, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x18]
lea eax, [eax + eax*2]
mov dword [esp + 0x2c], eax
lea eax, [ecx + ecx*4]
add eax, eax
movd xmm0, eax
lea eax, [ecx + edx]
mov ecx, dword [ebx + 0x180]
lea eax, [eax + eax*4]
cvtdq2ps xmm0, xmm0
add eax, eax
add ecx, esi
mulss xmm0, xmm6
subss xmm3, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
lea eax, [ecx + ecx*4]
add eax, eax
divss xmm3, xmm5
mulss xmm0, xmm6
addss xmm3, xmm7
subss xmm2, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
lea eax, [ecx + edx]
lea eax, [eax + eax*4]
add eax, eax
divss xmm2, xmm5
mulss xmm0, xmm6
addss xmm2, xmm7
subss xmm4, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm2, dword [0x581318]
mulss xmm0, xmm6
divss xmm4, xmm5
subss xmm1, xmm0
addss xmm4, xmm7
divss xmm1, xmm5
addss xmm1, xmm7
ja 0x49b52b
xorps xmm0, xmm0
comiss xmm0, xmm3
ja 0x49b52b
comiss xmm1, dword [0x581318]
ja 0x49b52b
comiss xmm0, xmm4
ja 0x49b52b
lea esi, [edi + edx]
mov eax, 0x7e
cmp esi, 0x7e
cmovg esi, eax
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx]
mov edx, 0x7e
cmp ecx, 0x7e
cmovg ecx, edx
imul edx, eax, 0x81
imul ecx, ecx, 0x81
lea eax, [edx + edi]
lea eax, [eax + eax*8]
movq xmm0, qword [ebx + eax*4 + 0x1c50]
mov eax, dword [ebx + eax*4 + 0x1c58]
mov dword [esp + 0x5c], eax
lea eax, [ecx + edi]
lea eax, [eax + eax*8]
movq qword [esp + 0x54], xmm0
movq xmm0, qword [ebx + eax*4 + 0x1c50]
mov eax, dword [ebx + eax*4 + 0x1c58]
mov dword [esp + 0x74], eax
lea eax, [edx + esi]
lea eax, [eax + eax*8]
mov edx, dword [esp + 0x2c]
movq qword [esp + 0x6c], xmm0
movq xmm0, qword [ebx + eax*4 + 0x1c50]
mov eax, dword [ebx + eax*4 + 0x1c58]
mov dword [esp + 0x68], eax
lea eax, [ecx + esi]
lea eax, [eax + eax*8]
movq qword [esp + 0x60], xmm0
movq xmm0, qword [ebx + eax*4 + 0x1c50]
lea ecx, [edx + edx*8]
mov eax, dword [ebx + eax*4 + 0x1c58]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
movq qword [esp + 0x78], xmm0
movss xmm0, dword [esp + 0x54]
movss dword [eax + ecx*4 + 0x1c], xmm3
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x20], xmm4
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x18], 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0xc], 0
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x10], 0x3f800000
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x14], 0
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x5c]
movss dword [eax + ecx*4 + 8], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x58]
addss xmm0, dword [0x581268]
movss dword [eax + ecx*4 + 4], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x60]
movss dword [eax + ecx*4 + 0x40], xmm2
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x44], xmm4
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x3c], 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x30], 0
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x34], 0x3f800000
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x38], 0
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x24], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x68]
movss dword [eax + ecx*4 + 0x2c], xmm0
movss xmm0, dword [esp + 0x64]
addss xmm0, dword [0x581268]
mov eax, dword [esp + 0x10]
movss dword [esp + 0x44], xmm0
movss dword [eax + ecx*4 + 0x28], xmm0
lea ecx, [edx + edx*8]
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x6c]
movss dword [eax + ecx*4 + 0x64], xmm3
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x68], xmm1
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x60], 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x54], 0
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x58], 0x3f800000
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x5c], 0
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x48], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x74]
movss dword [eax + ecx*4 + 0x50], xmm0
movss xmm0, dword [esp + 0x70]
addss xmm0, dword [0x581268]
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x4c], xmm0
mov eax, dword [ebx + 0x1a0]
inc eax
movss dword [esp + 0x2c], xmm0
mov dword [ebx + 0x1a0], eax
cmp eax, 0xc8
jge 0x49b5b0
lea edx, [eax + eax*2]
movss xmm0, dword [esp + 0x78]
mov eax, dword [esp + 0x10]
lea ecx, [edx + edx*8]
movss dword [eax + ecx*4 + 0x1c], xmm2
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x20], xmm1
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x18], 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0xc], 0
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x10], 0x3f800000
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x14], 0
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x80]
movss dword [eax + ecx*4 + 8], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x7c]
addss xmm0, dword [0x581268]
movss dword [eax + ecx*4 + 4], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x6c]
movss dword [eax + ecx*4 + 0x40], xmm3
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x44], xmm1
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x3c], 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x30], 0
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x34], 0x3f800000
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x38], 0
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x24], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x74]
movss dword [eax + ecx*4 + 0x2c], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x2c]
movss dword [eax + ecx*4 + 0x28], xmm0
lea ecx, [edx + edx*8]
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x60]
movss dword [eax + ecx*4 + 0x64], xmm2
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x68], xmm4
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x60], 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x54], 0
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x58], 0x3f800000
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0x5c], 0
mov eax, dword [esp + 0x10]
movss dword [eax + ecx*4 + 0x48], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x68]
movss dword [eax + ecx*4 + 0x50], xmm0
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + 0x44]
movss dword [eax + ecx*4 + 0x4c], xmm0
inc dword [ebx + 0x1a0]
cmp dword [ebx + 0x1a0], 0xc8
jge 0x49b5b0
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
add edi, edx
movss xmm4, dword [esp + 0x18]
add eax, 8
movss xmm3, dword [esp + 0x1c]
cmp edi, eax
jle 0x49b080
movss xmm5, dword [esp + 0x20]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x38]
add esi, edx
mov eax, dword [esp + 0x14]
add edi, 8
mov dword [esp + 0x24], esi
cmp esi, edi
jle 0x49b066
mov ecx, dword [esp + 0x30]
add eax, 8
mov edx, dword [esp + 0x34]
inc ecx
mov esi, dword [esp + 0x38]
add edx, 0x140
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], eax
cmp ecx, dword [esp + 0x3c]
jle 0x49b041
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
inc edx
mov dword [esp + 0x28], edx
cmp edx, eax
jle 0x49b000
mov eax, dword [ebx + 0x19c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004c8873
mov esp, ebp
pop ebp
ret