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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x50
mov esi, ecx
mov eax, dword [ecx + 0x8c]
mov dword [esp + 0x2c], eax
mov edi, dword [ecx + 8]
sub edi, eax
mov dword [esp + 0x38], edi
mov edi, dword [ecx + 0xc]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x28], edx
add edx, 0x1200
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], 0
lea ecx, [ecx + 0x149c]
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x38], edi
jl 0x46bdab
mov edx, dword [esi + 0x98]
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x46c0f8
lea eax, [edi + 0x527]
mov dword [esp + 0x44], eax
lea ebx, [eax + eax]
lea edx, [ebx + ebx]
add edx, esi
shr edx, 2
neg edx
mov eax, edx
and eax, 3
lea ebx, [eax + 3]
mov ecx, 5
cmp ebx, ecx
cmovae ecx, ebx
mov ebx, dword [esp + 0x2c]
sub ebx, 1
cmp ebx, ecx
jb 0x46c101
mov ecx, dword [esp + 0x4c]
test eax, eax
je 0x46c0cb
add ecx, ecx
add ecx, ecx
add ecx, esi
lea ebx, [edi + edi]
add ebx, ebx
add ebx, esi
movss xmm1, dword [ecx + 0x9c]
mulss xmm1, dword [ebx + 0x149c]
and edx, 2
je 0x46c0b3
movss xmm2, dword [ecx + 0xa0]
mulss xmm2, dword [ebx + 0x14a0]
addss xmm1, xmm2
cmp eax, 3
jne 0x46c0e0
mov edx, dword [esp + 0x4c]
add edx, 3
mov dword [esp + 0x40], edx
movss xmm4, dword [ebx + 0x14a4]
mulss xmm4, dword [ecx + 0xa4]
addss xmm1, xmm4
mov dword [esp + 0x3c], 3
mov ebx, dword [esp + 0x2c]
sub ebx, eax
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0x4c]
lea edx, [ecx + 0x27]
add edx, eax
add edx, edx
add edx, edx
add edx, esi
mov ecx, dword [esp + 0x44]
add eax, ecx
add eax, eax
add eax, eax
add eax, esi
mov ecx, ebx
shr ecx, 2
shl ecx, 4
lea ebx, [ecx + edx]
mov dword [esp + 0x44], ebx
pxor xmm5, xmm5
sub ecx, 0x10
shr ecx, 4
add ecx, 1
and ecx, 7
je 0x46bb80
cmp ecx, 1
je 0x46bb62
cmp ecx, 2
je 0x46bb4e
cmp ecx, 3
je 0x46bb3a
cmp ecx, 4
je 0x46bb26
cmp ecx, 5
je 0x46bb12
cmp ecx, 6
je 0x46bafe
movq xmm5, qword [edx]
movhps xmm5, qword [edx + 8]
mulps xmm5, xmmword [eax]
add edx, 0x10
add eax, 0x10
movq xmm6, qword [edx]
movhps xmm6, qword [edx + 8]
mulps xmm6, xmmword [eax]
addps xmm5, xmm6
add edx, 0x10
add eax, 0x10
movq xmm7, qword [edx]
movhps xmm7, qword [edx + 8]
mulps xmm7, xmmword [eax]
addps xmm5, xmm7
add edx, 0x10
add eax, 0x10
movq xmm0, qword [edx]
movhps xmm0, qword [edx + 8]
mulps xmm0, xmmword [eax]
addps xmm5, xmm0
add edx, 0x10
add eax, 0x10
movq xmm3, qword [edx]
movhps xmm3, qword [edx + 8]
mulps xmm3, xmmword [eax]
addps xmm5, xmm3
add edx, 0x10
add eax, 0x10
movq xmm2, qword [edx]
movhps xmm2, qword [edx + 8]
mulps xmm2, xmmword [eax]
addps xmm5, xmm2
add edx, 0x10
add eax, 0x10
movq xmm4, qword [edx]
movhps xmm4, qword [edx + 8]
mulps xmm4, xmmword [eax]
addps xmm5, xmm4
add edx, 0x10
add eax, 0x10
cmp dword [esp + 0x44], edx
je 0x46bc16
mov ecx, dword [esp + 0x48]
movq xmm6, qword [edx]
movhps xmm6, qword [edx + 8]
mulps xmm6, xmmword [eax]
addps xmm5, xmm6
movq xmm7, qword [edx + 0x10]
movhps xmm7, qword [edx + 0x18]
mulps xmm7, xmmword [eax + 0x10]
addps xmm5, xmm7
movq xmm0, qword [edx + 0x20]
movhps xmm0, qword [edx + 0x28]
mulps xmm0, xmmword [eax + 0x20]
addps xmm5, xmm0
movq xmm3, qword [edx + 0x30]
movhps xmm3, qword [edx + 0x38]
mulps xmm3, xmmword [eax + 0x30]
addps xmm5, xmm3
movq xmm2, qword [edx + 0x40]
movhps xmm2, qword [edx + 0x48]
mulps xmm2, xmmword [eax + 0x40]
addps xmm5, xmm2
movq xmm4, qword [edx + 0x50]
movhps xmm4, qword [edx + 0x58]
mulps xmm4, xmmword [eax + 0x50]
addps xmm5, xmm4
movq xmm6, qword [edx + 0x60]
movhps xmm6, qword [edx + 0x68]
mulps xmm6, xmmword [eax + 0x60]
addps xmm5, xmm6
movq xmm7, qword [edx + 0x70]
movhps xmm7, qword [edx + 0x78]
mulps xmm7, xmmword [eax + 0x70]
addps xmm5, xmm7
sub edx, 0xffffff80
sub eax, 0xffffff80
cmp dword [esp + 0x44], edx
jne 0x46bb84
mov dword [esp + 0x48], ecx
movaps xmm0, xmm5
movhlps xmm0, xmm5
addps xmm0, xmm5
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addps xmm3, xmm0
addss xmm3, xmm1
mov ebx, dword [esp + 0x48]
mov eax, ebx
and eax, 0xfffffffc
mov edx, dword [esp + 0x3c]
add edx, eax
mov ecx, dword [esp + 0x40]
add eax, ecx
and ebx, 3
je 0x46bd07
add eax, eax
add eax, eax
add eax, esi
lea ebx, [edx + edi]
movss xmm1, dword [esi + ebx*4 + 0x149c]
mulss xmm1, dword [eax + 0x9c]
addss xmm3, xmm1
lea ecx, [edx + 1]
mov ebx, dword [esp + 0x2c]
cmp ebx, ecx
jle 0x46bd07
add ecx, edi
movss xmm5, dword [esi + ecx*4 + 0x149c]
mulss xmm5, dword [eax + 0xa0]
addss xmm3, xmm5
lea ecx, [edx + 2]
cmp ebx, ecx
jle 0x46bd07
add ecx, edi
movss xmm2, dword [esi + ecx*4 + 0x149c]
mulss xmm2, dword [eax + 0xa4]
addss xmm3, xmm2
lea ecx, [edx + 3]
cmp ebx, ecx
jle 0x46bd07
add ecx, edi
movss xmm4, dword [esi + ecx*4 + 0x149c]
mulss xmm4, dword [eax + 0xa8]
addss xmm3, xmm4
lea ecx, [edx + 4]
cmp ebx, ecx
jle 0x46bd07
add ecx, edi
movss xmm6, dword [esi + ecx*4 + 0x149c]
mulss xmm6, dword [eax + 0xac]
addss xmm3, xmm6
add edx, 5
cmp ebx, edx
jle 0x46bd07
add edx, edi
movss xmm7, dword [esi + edx*4 + 0x149c]
mulss xmm7, dword [eax + 0xb0]
addss xmm3, xmm7
mov eax, dword [esp + 0x2c]
add dword [esp + 0x4c], eax
mov edx, dword [esp + 0x4c]
mov dword [esi + 0x98], edx
cvttss2si ebx, xmm3
mov ecx, 0xffff8001
cmp ebx, ecx
cmovge ecx, ebx
mov eax, 0x7fff
cmp ecx, eax
cmovg ecx, eax
pxor xmm0, xmm0
cvtsi2ss xmm0, ecx
mov edx, dword [esp + 0x28]
movss dword [edx], xmm0
mov ebx, dword [esp + 0x4c]
cmp dword [esi + 0x90], ebx
jg 0x46bd57
mov dword [esi + 0x98], 0
add edi, dword [esi + 0x80]
mov dword [esi + 0xc], edi
mov ecx, dword [esi + 0x94]
sub ecx, dword [esi + 0x84]
mov dword [esi + 0x94], ecx
test ecx, ecx
jg 0x46bd88
add ecx, dword [esi + 0x88]
mov dword [esi + 0x94], ecx
add edi, 1
mov dword [esi + 0xc], edi
add dword [esp + 0x28], 4
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x24], eax
jne 0x46b9b3
mov eax, dword [esp + 0x20]
add eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov ebx, dword [esp + 0x20]
add ebx, ebx
add ebx, dword [ebp + 8]
mov dword [esp + 0x34], ebx
mov ebx, dword [esi + 8]
sub ebx, edi
mov dword [esi + 8], ebx
test ebx, ebx
jle 0x46bde4
lea eax, [ebx + ebx]
add eax, eax
mov dword [esp + 8], eax
lea edx, [edi + edi]
add edx, edx
mov edi, dword [esp + 0x18]
add edx, edi
mov dword [esp + 4], edx
mov dword [esp], edi
call sym._memmove
mov dword [esi + 0xc], 0
mov ecx, dword [esp + 0x34]
movzx edi, byte [ecx]
movzx eax, byte [ecx + 1]
add edi, eax
sub edi, 0x100
shl edi, 7
movzx eax, byte [ecx + 2]
movzx edx, byte [ecx + 3]
add eax, edx
sub eax, 0x100
shl eax, 7
mov dword [esp + 0x4c], eax
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x44], ecx
mov eax, dword [esi + 0x14]
mov dword [esp + 0x40], eax
mov edx, dword [esi + 0x28]
mov dword [esp + 0x3c], edx
mov ecx, dword [esi + 0x24]
lea edx, [ebx + 1]
lea eax, [ebx + 0x81]
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x4c]
sub ebx, edi
pxor xmm0, xmm0
cvtsi2ss xmm0, ebx
mulss xmm0, dword [esi + eax*4 + 0x2c]
pxor xmm1, xmm1
cvtsi2ss xmm1, edi
addss xmm0, xmm1
mov dword [esi + 8], edx
movss dword [esi + edx*4 + 0x1498], xmm0
add eax, 1
mov ebx, dword [esp + 0x44]
cmp eax, ebx
mov ebx, 0
cmovge eax, ebx
mov dword [esi + 0x28], eax
mov ebx, dword [esp + 0x40]
sub ecx, ebx
mov dword [esi + 0x24], ecx
test ecx, ecx
jg 0x46bed3
add ecx, dword [esi + 0x18]
mov dword [esi + 0x24], ecx
mov edi, dword [esp + 0x48]
lea ebx, [edi + 2]
add ebx, ebx
mov edi, dword [esp + 0x34]
add ebx, edi
movzx edi, byte [ebx]
movzx ebx, byte [ebx + 1]
add ebx, edi
sub ebx, 0x100
mov edi, dword [esp + 0x4c]
shl ebx, 7
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x48]
add ebx, 1
mov dword [esp + 0x48], ebx
lea ebx, [edx + 1]
mov dword [esp + 0x3c], ebx
mov edx, dword [esp + 0x4c]
sub edx, edi
pxor xmm2, xmm2
cvtsi2ss xmm2, edx
mulss xmm2, dword [esi + eax*4 + 0x2c]
pxor xmm3, xmm3
cvtsi2ss xmm3, edi
addss xmm2, xmm3
mov dword [esi + 8], ebx
movss dword [esi + ebx*4 + 0x1498], xmm2
add eax, 1
mov ebx, dword [esp + 0x44]
cmp eax, ebx
mov edx, 0
cmovge eax, edx
mov dword [esi + 0x28], eax
mov ebx, dword [esp + 0x40]
sub ecx, ebx
mov dword [esi + 0x24], ecx
test ecx, ecx
jg 0x46bf5d
add ecx, dword [esi + 0x18]
mov dword [esi + 0x24], ecx
mov ebx, dword [esp + 0x48]
lea edx, [ebx + 2]
add edx, edx
mov edi, dword [esp + 0x34]
add edx, edi
movzx edi, byte [edx]
movzx edx, byte [edx + 1]
add edx, edi
sub edx, 0x100
mov edi, dword [esp + 0x4c]
shl edx, 7
mov dword [esp + 0x4c], edx
add ebx, 1
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x3c]
lea edx, [ebx + 1]
mov ebx, dword [esp + 0x4c]
sub ebx, edi
pxor xmm4, xmm4
cvtsi2ss xmm4, ebx
mulss xmm4, dword [esi + eax*4 + 0x2c]
pxor xmm5, xmm5
cvtsi2ss xmm5, edi
addss xmm4, xmm5
mov dword [esi + 8], edx
movss dword [esi + edx*4 + 0x1498], xmm4
add eax, 1
mov edx, dword [esp + 0x44]
cmp eax, edx
mov ebx, 0
cmovge eax, ebx
mov dword [esi + 0x28], eax
mov edx, dword [esp + 0x40]
sub ecx, edx
mov dword [esi + 0x24], ecx
test ecx, ecx
jg 0x46bfe9
add ecx, dword [esi + 0x18]
mov dword [esi + 0x24], ecx
mov ebx, dword [esp + 0x48]
mov edx, ebx
add edx, 2
add edx, edx
mov edi, dword [esp + 0x34]
add edx, edi
movzx edi, byte [edx]
movzx edx, byte [edx + 1]
add edx, edi
sub edx, 0x100
mov edi, dword [esp + 0x4c]
shl edx, 7
mov dword [esp + 0x4c], edx
add ebx, 1
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x3c]
lea edx, [ebx + 2]
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x4c]
mov edx, ebx
sub edx, edi
pxor xmm6, xmm6
cvtsi2ss xmm6, edx
mulss xmm6, dword [esi + eax*4 + 0x2c]
pxor xmm7, xmm7
cvtsi2ss xmm7, edi
addss xmm6, xmm7
mov edx, dword [esp + 0x38]
mov dword [esi + 8], edx
movss dword [esi + edx*4 + 0x1498], xmm6
add eax, 1
mov edx, dword [esp + 0x44]
cmp eax, edx
mov edx, 0
cmovge eax, edx
mov dword [esi + 0x28], eax
mov edx, dword [esp + 0x40]
sub ecx, edx
mov dword [esi + 0x24], ecx
test ecx, ecx
jg 0x46c07f
add ecx, dword [esi + 0x18]
mov dword [esi + 0x24], ecx
mov edi, dword [esp + 0x48]
lea edx, [edi + 2]
add edx, edx
mov edi, dword [esp + 0x34]
add edx, edi
movzx edi, byte [edx]
movzx edx, byte [edx + 1]
add edx, edi
sub edx, 0x100
mov edi, ebx
shl edx, 7
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0x48]
add ebx, 1
mov dword [esp + 0x48], ebx
mov edx, dword [esp + 0x3c]
add edx, 3
cmp dword [esp + 0x30], edx
jne 0x46be4c
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
add dword [esp + 0x20], eax
lea ebx, [ecx + 0x80]
mov edi, dword [esp + 0x2c]
sub ebx, edi
mov dword [esp + 0x38], ebx
xor edi, edi
jmp 0x46b9bd
mov edx, dword [esp + 0x4c]
add edx, 1
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], 1
jmp 0x46ba81
mov dword [esp + 0x40], ecx
pxor xmm1, xmm1
mov dword [esp + 0x3c], 0
jmp 0x46ba81
mov ecx, dword [esp + 0x4c]
add ecx, 2
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], 2
jmp 0x46ba81
pxor xmm0, xmm0
jmp 0x46bd39
mov eax, dword [esp + 0x4c]
pxor xmm3, xmm3
xor edx, edx
jmp 0x46bc4b