Function at 0x469346
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 + 0x30], eax
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x38], ecx
mov edi, dword [esi + 0xc]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x2c], edx
add edx, 0x1200
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], 0
lea ebx, [esi + 0x149c]
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x38], edi
jl 0x469788
mov edx, dword [esi + 0x98]
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x30]
test ecx, ecx
jle 0x469a78
lea eax, [edi + 0x527]
lea ecx, [eax + eax]
add ecx, ecx
add ecx, esi
shr ecx, 2
neg ecx
mov dword [esp + 0x48], ecx
and ecx, 3
lea edx, [ecx + 3]
mov ebx, 5
cmp edx, ebx
cmovae ebx, edx
mov edx, dword [esp + 0x30]
sub edx, 1
cmp edx, ebx
jb 0x469a81
mov ebx, dword [esp + 0x4c]
test ecx, ecx
je 0x469a4b
add ebx, ebx
add ebx, ebx
add ebx, esi
lea edx, [edi + edi]
add edx, edx
add edx, esi
mov dword [esp + 0x44], edx
movss xmm1, dword [ebx + 0x9c]
mulss xmm1, dword [edx + 0x149c]
test byte [esp + 0x48], 2
je 0x469a33
movss xmm2, dword [ebx + 0xa0]
mulss xmm2, dword [edx + 0x14a0]
addss xmm1, xmm2
cmp ecx, 3
jne 0x469a60
mov edx, dword [esp + 0x4c]
add edx, 3
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x44]
movss xmm4, dword [edx + 0x14a4]
mulss xmm4, dword [ebx + 0xa4]
addss xmm1, xmm4
mov dword [esp + 0x3c], 3
mov ebx, dword [esp + 0x30]
sub ebx, ecx
mov dword [esp + 0x48], ebx
add eax, ecx
add eax, eax
add eax, eax
lea edx, [esi + eax]
mov eax, dword [esp + 0x4c]
add eax, 0x27
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 0x46955f
cmp ecx, 1
je 0x469541
cmp ecx, 2
je 0x46952d
cmp ecx, 3
je 0x469519
cmp ecx, 4
nop
je 0x469505
cmp ecx, 5
je 0x4694f1
cmp ecx, 6
je 0x4694dd
movq xmm5, qword [eax]
movhps xmm5, qword [eax + 8]
mulps xmm5, xmmword [edx]
add edx, 0x10
add eax, 0x10
movq xmm6, qword [eax]
movhps xmm6, qword [eax + 8]
mulps xmm6, xmmword [edx]
addps xmm5, xmm6
add edx, 0x10
add eax, 0x10
movq xmm7, qword [eax]
movhps xmm7, qword [eax + 8]
mulps xmm7, xmmword [edx]
addps xmm5, xmm7
add edx, 0x10
add eax, 0x10
movq xmm0, qword [eax]
movhps xmm0, qword [eax + 8]
mulps xmm0, xmmword [edx]
addps xmm5, xmm0
add edx, 0x10
add eax, 0x10
movq xmm3, qword [eax]
movhps xmm3, qword [eax + 8]
mulps xmm3, xmmword [edx]
addps xmm5, xmm3
add edx, 0x10
add eax, 0x10
movq xmm2, qword [eax]
movhps xmm2, qword [eax + 8]
mulps xmm2, xmmword [edx]
addps xmm5, xmm2
add edx, 0x10
add eax, 0x10
movq xmm4, qword [eax]
movhps xmm4, qword [eax + 8]
mulps xmm4, xmmword [edx]
addps xmm5, xmm4
add edx, 0x10
add eax, 0x10
cmp dword [esp + 0x44], edx
je 0x4695f5
mov ecx, dword [esp + 0x48]
movq xmm6, qword [eax]
movhps xmm6, qword [eax + 8]
mulps xmm6, xmmword [edx]
addps xmm5, xmm6
movq xmm7, qword [eax + 0x10]
movhps xmm7, qword [eax + 0x18]
mulps xmm7, xmmword [edx + 0x10]
addps xmm5, xmm7
movq xmm0, qword [eax + 0x20]
movhps xmm0, qword [eax + 0x28]
mulps xmm0, xmmword [edx + 0x20]
addps xmm5, xmm0
movq xmm3, qword [eax + 0x30]
movhps xmm3, qword [eax + 0x38]
mulps xmm3, xmmword [edx + 0x30]
addps xmm5, xmm3
movq xmm2, qword [eax + 0x40]
movhps xmm2, qword [eax + 0x48]
mulps xmm2, xmmword [edx + 0x40]
addps xmm5, xmm2
movq xmm4, qword [eax + 0x50]
movhps xmm4, qword [eax + 0x58]
mulps xmm4, xmmword [edx + 0x50]
addps xmm5, xmm4
movq xmm6, qword [eax + 0x60]
movhps xmm6, qword [eax + 0x68]
mulps xmm6, xmmword [edx + 0x60]
addps xmm5, xmm6
movq xmm7, qword [eax + 0x70]
movhps xmm7, qword [eax + 0x78]
mulps xmm7, xmmword [edx + 0x70]
addps xmm5, xmm7
sub edx, 0xffffff80
sub eax, 0xffffff80
cmp dword [esp + 0x44], edx
jne 0x469563
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 0x4696e6
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 + 0x30]
cmp ebx, ecx
jle 0x4696e6
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 0x4696e6
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 0x4696e6
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 0x4696e6
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 0x4696e6
add edx, edi
movss xmm7, dword [esi + edx*4 + 0x149c]
mulss xmm7, dword [eax + 0xb0]
addss xmm3, xmm7
mov edx, dword [esp + 0x30]
add dword [esp + 0x4c], edx
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x98], eax
cvttss2si ebx, xmm3
mov ecx, 0xffff8001
cmp ebx, ecx
cmovge ecx, ebx
mov edx, 0x7fff
cmp ecx, edx
cmovg ecx, edx
pxor xmm0, xmm0
cvtsi2ss xmm0, ecx
mov eax, dword [esp + 0x2c]
movss dword [eax], xmm0
mov ebx, dword [esp + 0x4c]
cmp dword [esi + 0x90], ebx
jg 0x469736
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 0x469767
add ecx, dword [esi + 0x88]
mov dword [esi + 0x94], ecx
add edi, 1
mov dword [esi + 0xc], edi
add dword [esp + 0x2c], 4
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x28], edx
jne 0x46938d
mov eax, dword [esp + 0x20]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov eax, dword [esp + 0x20]
add eax, dword [ebp + 8]
mov dword [esp + 0x38], eax
mov ecx, dword [esi + 8]
sub ecx, edi
mov dword [esp + 0x24], ecx
mov dword [esi + 8], ecx
test ecx, ecx
jle 0x4697c2
add ecx, ecx
add ecx, ecx
mov dword [esp + 8], ecx
lea edi, [edi + edi]
add edi, edi
mov edx, dword [esp + 0x1c]
add edi, edx
mov dword [esp + 4], edi
mov dword [esp], edx
call sym._memmove
mov dword [esi + 0xc], 0
mov ebx, dword [esp + 0x38]
movzx edi, byte [ebx]
add edi, 0xffffff80
shl edi, 8
movzx edx, byte [ebx + 1]
add edx, 0xffffff80
shl edx, 8
sub edx, edi
mov eax, dword [esi + 0x20]
mov dword [esp + 0x44], eax
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x40], ecx
mov eax, dword [esi + 0x28]
mov ebx, dword [esi + 0x24]
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0x24]
lea ebx, [ecx + 1]
add ecx, 0x81
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], edi
mov ecx, ebx
mov ebx, dword [esp + 0x48]
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mulss xmm0, dword [esi + eax*4 + 0x2c]
pxor xmm1, xmm1
cvtsi2ss xmm1, dword [esp + 0x4c]
addss xmm0, xmm1
mov dword [esi + 8], ecx
movss dword [esi + ecx*4 + 0x1498], xmm0
add eax, 1
mov edi, dword [esp + 0x44]
cmp eax, edi
mov edi, 0
cmovge eax, edi
mov dword [esi + 0x28], eax
mov edi, dword [esp + 0x40]
sub ebx, edi
mov dword [esi + 0x24], ebx
test ebx, ebx
jg 0x469894
add ebx, dword [esi + 0x18]
mov dword [esi + 0x24], ebx
add dword [esp + 0x4c], edx
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
movzx edx, byte [edx + edi + 2]
add edx, 0xffffff80
shl edx, 8
mov edi, dword [esp + 0x4c]
sub edx, edi
mov edi, dword [esp + 0x3c]
add edi, 1
mov dword [esp + 0x3c], edi
add ecx, 1
mov dword [esp + 0x48], ecx
pxor xmm2, xmm2
cvtsi2ss xmm2, edx
mulss xmm2, dword [esi + eax*4 + 0x2c]
pxor xmm3, xmm3
cvtsi2ss xmm3, dword [esp + 0x4c]
addss xmm2, xmm3
mov dword [esi + 8], ecx
movss dword [esi + ecx*4 + 0x1498], xmm2
add eax, 1
mov ecx, dword [esp + 0x44]
cmp eax, ecx
mov edi, 0
cmovge eax, edi
mov dword [esi + 0x28], eax
mov ecx, dword [esp + 0x40]
sub ebx, ecx
mov dword [esi + 0x24], ebx
test ebx, ebx
jg 0x46990e
add ebx, dword [esi + 0x18]
mov dword [esi + 0x24], ebx
add dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
movzx edx, byte [edx + edi + 2]
add edx, 0xffffff80
shl edx, 8
sub edx, ecx
add edi, 1
mov dword [esp + 0x3c], edi
mov ecx, dword [esp + 0x48]
lea edi, [ecx + 1]
pxor xmm4, xmm4
cvtsi2ss xmm4, edx
mulss xmm4, dword [esi + eax*4 + 0x2c]
mov ecx, dword [esp + 0x4c]
pxor xmm5, xmm5
cvtsi2ss xmm5, ecx
addss xmm4, xmm5
mov dword [esi + 8], edi
movss dword [esi + edi*4 + 0x1498], xmm4
add eax, 1
mov edi, dword [esp + 0x44]
cmp eax, edi
mov edi, 0
cmovge eax, edi
mov dword [esi + 0x28], eax
mov edi, dword [esp + 0x40]
sub ebx, edi
mov dword [esi + 0x24], ebx
test ebx, ebx
jg 0x469988
add ebx, dword [esi + 0x18]
mov dword [esi + 0x24], ebx
add ecx, edx
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
movzx edx, byte [edx + edi + 2]
add edx, 0xffffff80
shl edx, 8
sub edx, ecx
add edi, 1
mov dword [esp + 0x3c], edi
mov ecx, dword [esp + 0x48]
lea edi, [ecx + 2]
pxor xmm6, xmm6
cvtsi2ss xmm6, edx
mulss xmm6, dword [esi + eax*4 + 0x2c]
mov ecx, dword [esp + 0x4c]
pxor xmm7, xmm7
cvtsi2ss xmm7, ecx
addss xmm6, xmm7
mov dword [esi + 8], edi
movss dword [esi + edi*4 + 0x1498], xmm6
add eax, 1
mov edi, dword [esp + 0x44]
cmp eax, edi
mov edi, 0
cmovge eax, edi
mov dword [esi + 0x28], eax
mov edi, dword [esp + 0x40]
sub ebx, edi
mov dword [esi + 0x24], ebx
test ebx, ebx
jg 0x469a02
add ebx, dword [esi + 0x18]
mov dword [esi + 0x24], ebx
add ecx, edx
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
movzx edx, byte [edx + edi + 2]
add edx, 0xffffff80
shl edx, 8
sub edx, ecx
add edi, 1
mov dword [esp + 0x3c], edi
mov ecx, dword [esp + 0x48]
add ecx, 3
cmp dword [esp + 0x34], ecx
jne 0x46981d
mov eax, dword [esp + 0x3c]
add dword [esp + 0x20], eax
mov ebx, dword [esp + 0x24]
sub ebx, 0xffffff80
mov edi, dword [esp + 0x30]
sub ebx, edi
mov dword [esp + 0x38], ebx
xor edi, edi
jmp 0x469397
mov ebx, dword [esp + 0x4c]
add ebx, 1
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], 1
jmp 0x469462
mov dword [esp + 0x40], ebx
pxor xmm1, xmm1
mov dword [esp + 0x3c], 0
jmp 0x469462
mov edx, dword [esp + 0x4c]
add edx, 2
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], 2
jmp 0x469462
pxor xmm0, xmm0
jmp 0x469718
mov eax, dword [esp + 0x4c]
pxor xmm3, xmm3
xor edx, edx
jmp 0x46962a