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

Disassembly:
push esi
push edi
push ebx
sub esp, 0xb8
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov eax, dword [ecx]
mov ecx, dword [edx]
mov dword [esp + 0x94], eax
lea ebx, [eax*8]
shl eax, 6
mov dword [esp + 0xb4], eax
lea eax, [ecx - 1]
mov dword [esp + 0x38], eax
cmp ecx, 2
jl 0x47993f
mov esi, ebx
sar esi, 2
mov edi, dword [esp + 0xd4]
shr esi, 0x1d
mov eax, dword [esp + 0xd8]
add esi, ebx
mov edx, eax
sar esi, 3
sub edx, ebx
mov dword [esp + 0x9c], esi
lea esi, [edi + ecx*8]
mov edi, dword [esp + 0xd0]
lea eax, [eax + ecx*8]
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x98], ebx
lea esi, [edi + ecx*8]
mov dword [esp + 0x10], esi
lea edi, [ebx + ebx*2]
mov dword [esp + 0x20], 0
lea eax, [edx + edi]
add edi, edi
lea esi, [eax + ecx*8]
mov dword [esp + 0x24], esi
lea eax, [ebx + ebx*4]
add eax, edx
mov dword [esp + 0x40], ecx
lea esi, [eax + ecx*8]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x94]
mov eax, esi
shl eax, 6
mov dword [esp], eax
sub eax, ebx
add eax, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0x2c], eax
mov eax, ecx
imul eax, ebx
neg ebx
lea ebx, [ebx + ecx*8]
add ebx, edx
add ebx, eax
add eax, edx
mov dword [esp + 0x14], ebx
mov ebx, esi
shl ebx, 4
shl esi, 5
mov dword [esp + 0xc], eax
lea ebx, [ebx + ecx*8]
add ebx, edx
mov dword [esp + 0x18], ebx
lea ebx, [esi + ecx*8]
add ebx, edx
lea esi, [edi + ecx*8]
mov edi, dword [esp]
add esi, edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 8], esi
lea ebx, [edi + ecx*8]
add edx, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 4], edx
mov edx, ebx
neg edx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], edx
lea ecx, [eax + edx - 1]
cmp ecx, 1
jle 0x479ed1
mov esi, dword [esp + 0x30]
lea edx, [ebx*8]
sub esi, edx
xor eax, eax
mov edi, dword [esp + 0x94]
pxor xmm3, xmm3
mov dword [esp + 0x74], esi
movsd xmm0, qword [esi - 8]
inc eax
andps xmm0, xmmword [0x5c22d0]
lea esi, [esi + edi*8]
cmp eax, ecx
addsd xmm3, xmm0
jb 0x4792df
pxor xmm0, xmm0
ucomisd xmm3, xmm0
jp 0x479307
je 0x479e9e
cmp dword [esp + 0x9c], 0
je 0x479e93
cmp ecx, 8
jl 0x479e93
mov esi, ecx
xor eax, eax
mov edi, dword [esp + 0x30]
and esi, 7
sub edi, edx
neg esi
mov dword [esp], edi
add esi, ecx
mov edi, dword [esp + 0x24]
movaps xmm0, xmm3
sub edi, edx
mov dword [esp + 0x90], edi
pxor xmm2, xmm2
mov edi, dword [esp + 0x28]
pxor xmm1, xmm1
sub edi, edx
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x2c]
sub edi, edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x70], ecx
unpcklpd xmm0, xmm0
mov dword [esp + 0x20], ebx
mov ecx, eax
mov edx, edi
mov esi, dword [esp]
mov ebx, dword [esp + 0x9c]
lea edi, [esi + ecx]
movsd xmm4, qword [edi - 8]
add eax, 8
movhpd xmm4, qword [edi + ebx*8 - 8]
divpd xmm4, xmm0
movlpd qword [edi - 8], xmm4
movhpd qword [edi + ebx*8 - 8], xmm4
movsd xmm5, qword [edi - 8]
movhpd xmm5, qword [edi + ebx*8 - 8]
mov edi, dword [esp + 0x90]
mulpd xmm5, xmm5
addpd xmm2, xmm5
add edi, ecx
movsd xmm6, qword [edi - 8]
movhpd xmm6, qword [edi + ebx*8 - 8]
divpd xmm6, xmm0
movlpd qword [edi - 8], xmm6
movhpd qword [edi + ebx*8 - 8], xmm6
movsd xmm7, qword [edi - 8]
movhpd xmm7, qword [edi + ebx*8 - 8]
mov edi, dword [esp + 0x8c]
mulpd xmm7, xmm7
addpd xmm1, xmm7
add edi, ecx
movsd xmm4, qword [edi - 8]
movhpd xmm4, qword [edi + ebx*8 - 8]
divpd xmm4, xmm0
movlpd qword [edi - 8], xmm4
movhpd qword [edi + ebx*8 - 8], xmm4
movsd xmm5, qword [edi - 8]
movhpd xmm5, qword [edi + ebx*8 - 8]
lea edi, [edx + ecx]
movsd xmm6, qword [edi - 8]
movhpd xmm6, qword [edi + ebx*8 - 8]
divpd xmm6, xmm0
movlpd qword [edi - 8], xmm6
movhpd qword [edi + ebx*8 - 8], xmm6
movsd xmm4, qword [edi - 8]
movhpd xmm4, qword [edi + ebx*8 - 8]
mulpd xmm5, xmm5
mulpd xmm4, xmm4
addpd xmm2, xmm5
addpd xmm1, xmm4
add ecx, dword [esp + 0xb4]
cmp eax, dword [esp + 0x78]
jb 0x479378
addpd xmm2, xmm1
movaps xmm0, xmm2
unpckhpd xmm0, xmm2
mov edx, dword [esp + 0x48]
addsd xmm2, xmm0
mov esi, dword [esp + 0x78]
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x98]
imul edi, esi
mov eax, dword [esp + 0x74]
cmp esi, ecx
lea eax, [eax + edi - 8]
jae 0x4794b7
mov edi, dword [esp + 0x94]
movsd xmm0, qword [eax]
inc esi
divsd xmm0, xmm3
movsd qword [eax], xmm0
lea eax, [eax + edi*8]
mulsd xmm0, xmm0
cmp esi, ecx
addsd xmm2, xmm0
jb 0x47949b
mov esi, dword [esp + 0x98]
imul esi, ebx
pxor xmm0, xmm0
pxor xmm4, xmm4
pxor xmm5, xmm5
sqrtsd xmm1, xmm2
mov eax, esi
neg esi
mov dword [esp + 0x70], ecx
neg eax
mov ecx, dword [esp + 0x14]
sub ecx, edx
andps xmm1, xmmword [0x5c22d0]
mov dword [esp + 0x20], ebx
neg ebx
mov edi, dword [esp + 0x10]
subsd xmm4, xmm1
movsd xmm6, qword [ecx + eax - 8]
comisd xmm0, xmm6
mov dword [esp + 0x80], 0
ja 0x479510
movaps xmm4, xmm1
add esi, dword [esp + 0xc]
subsd xmm5, xmm4
mulsd xmm3, xmm5
pxor xmm1, xmm1
movsd qword [edi + ebx*8 - 8], xmm3
movaps xmm3, xmm6
mulsd xmm3, xmm5
subsd xmm6, xmm5
movsd qword [ecx + eax - 8], xmm6
subsd xmm2, xmm3
mov eax, dword [esp + 0x18]
sub eax, edx
mov dword [esp + 0x68], eax
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 8]
sub edi, edx
sub eax, edx
neg edx
add edx, dword [esp + 4]
mov dword [esp + 0x3c], ebx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edi
mov dword [esp + 0x6c], esi
mov ebx, dword [esp + 0x98]
imul ebx, ecx
pxor xmm3, xmm3
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0xd8]
movsd xmm0, qword [eax + ebx - 8]
xor eax, eax
divsd xmm0, xmm2
movsd qword [edx + ecx*8], xmm0
lea edx, [ecx + 1]
mov dword [esp + 0x7c], ebx
lea edi, [esi + ecx*8]
mov dword [esp + 0x80], ecx
xor esi, esi
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x94]
movsd xmm0, qword [esi + edi]
inc eax
mulsd xmm0, qword [esi + ecx - 8]
lea esi, [esi + ebx*8]
cmp eax, edx
addsd xmm3, xmm0
jb 0x4795be
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
cmp edx, dword [esp + 0x70]
jge 0x479839
mov esi, dword [esp + 0x40]
mov edi, ecx
mov eax, dword [esp + 0x44]
neg edi
lea esi, [esi + eax - 2]
add esi, edi
cmp dword [esp + 0x9c], 0
je 0x479e3d
mov eax, dword [esp + 0xd8]
lea edi, [eax + ebx]
lea eax, [edi + ecx*8 + 8]
and eax, 0xf
je 0x47962a
test al, 7
jne 0x479e3d
mov eax, 1
lea edi, [eax + 8]
cmp esi, edi
jl 0x479e3d
mov edi, esi
sub edi, eax
and edi, 7
neg edi
add edi, esi
mov dword [esp + 0xa0], edi
lea edi, [ebx + ecx*8]
add edi, dword [esp + 0xd8]
mov dword [esp + 0x84], edi
test eax, eax
jbe 0x4796b3
mov edi, dword [esp + 0x68]
mov dword [esp + 0x60], 0
mov dword [esp + 0x4c], edx
mov dword [esp + 0x7c], ebx
add edi, ebx
mov dword [esp + 0x80], ecx
mov edx, edi
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
movsd xmm0, qword [ebx + ecx*8 + 8]
inc ecx
mulsd xmm0, qword [edx - 8]
lea edx, [edx + edi*8]
cmp ecx, eax
addsd xmm3, xmm0
jb 0x47968d
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x98]
imul edi, eax
pxor xmm0, xmm0
movsd xmm0, xmm3
pxor xmm3, xmm3
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x58], esi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ecx
lea edi, [ebx + edi - 8]
mov dword [esp + 0xac], edi
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x4c], edx
lea edi, [ebx + edi - 8]
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0x50]
lea edi, [ebx + edi - 8]
mov dword [esp + 0xa4], edi
mov edi, dword [esp + 0x48]
lea edi, [ebx + edi - 8]
mov ecx, edi
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0xac]
mov edx, dword [esp + 0x9c]
add edi, ebx
movsd xmm4, qword [edi]
movhpd xmm4, qword [edi + edx*8]
mov edi, dword [esp + 0xa8]
mulpd xmm4, xmmword [esi + eax*8 + 8]
addpd xmm0, xmm4
add edi, ebx
movsd xmm5, qword [edi]
movhpd xmm5, qword [edi + edx*8]
mov edi, dword [esp + 0xa4]
mulpd xmm5, xmmword [esi + eax*8 + 0x18]
addpd xmm3, xmm5
add edi, ebx
movsd xmm6, qword [edi]
movhpd xmm6, qword [edi + edx*8]
lea edi, [ecx + ebx]
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + edx*8]
mulpd xmm6, xmmword [esi + eax*8 + 0x28]
mulpd xmm7, xmmword [esi + eax*8 + 0x38]
addpd xmm0, xmm6
addpd xmm3, xmm7
add eax, 8
add ebx, dword [esp + 0xb4]
cmp eax, dword [esp + 0xa0]
jb 0x479722
addpd xmm0, xmm3
movaps xmm3, xmm0
unpckhpd xmm3, xmm0
mov esi, dword [esp + 0x58]
addsd xmm0, xmm3
mov edx, dword [esp + 0x4c]
movaps xmm3, xmm0
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0xa0]
imul eax, edi
cmp edi, esi
jae 0x479839
mov dword [esp + 0x7c], ebx
lea edi, [ebx + ecx*8]
add edi, dword [esp + 0xd8]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x5c]
add edi, ebx
mov ebx, dword [esp + 0xa0]
add eax, edi
mov edi, dword [esp + 0x94]
movsd xmm0, qword [ecx + ebx*8 + 8]
inc ebx
mulsd xmm0, qword [eax - 8]
lea eax, [eax + edi*8]
cmp ebx, esi
addsd xmm3, xmm0
jb 0x479817
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
divsd xmm3, xmm2
mov eax, dword [esp + 0xd0]
cmp edx, dword [esp + 0x70]
movsd qword [eax + ecx*8], xmm3
mov ecx, dword [esp + 0x74]
movsd xmm0, qword [ecx + ebx - 8]
mov ecx, edx
mulsd xmm0, xmm3
addsd xmm1, xmm0
jb 0x479572
movaps xmm0, xmm2
xor eax, eax
xor edx, edx
addsd xmm0, xmm2
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x94]
divsd xmm1, xmm0
movsd xmm3, qword [edx + esi - 8]
movaps xmm4, xmm1
mulsd xmm4, xmm3
lea edi, [eax + 1]
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0xd8]
movsd xmm0, qword [ebx + eax*8]
mov dword [esp + 0x88], edx
subsd xmm0, xmm4
movsd qword [ebx + eax*8], xmm0
xor ebx, ebx
lea eax, [edi + eax*8]
mov edx, ebx
mov edi, dword [esp + 0xd0]
movsd xmm4, qword [edi + ebx*8]
inc ebx
mulsd xmm4, xmm3
movsd xmm6, qword [eax]
movsd xmm5, qword [edx + esi - 8]
lea edx, [edx + ecx*8]
mulsd xmm5, xmm0
subsd xmm6, xmm4
cmp ebx, dword [esp + 0xb0]
subsd xmm6, xmm5
movsd qword [eax], xmm6
lea eax, [eax + ecx*8]
jb 0x4798c9
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x88]
cmp eax, dword [esp + 0x70]
lea edx, [edx + ecx*8]
jb 0x479881
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
inc ebx
mov edx, dword [esp + 0x3c]
cmp ebx, dword [esp + 0x38]
movsd qword [eax + edx*8 - 8], xmm2
jb 0x4792a8
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x98]
mov eax, dword [esp + 0xd4]
test ecx, ecx
mov edx, dword [esp + 0xd0]
pxor xmm0, xmm0
pxor xmm1, xmm1
movsd qword [eax], xmm0
movsd qword [edx], xmm1
jle 0x479e31
mov eax, dword [esp + 0xd8]
mov esi, ebx
sub eax, ebx
lea edi, [ebx + ebx*4]
sar esi, 2
add edi, eax
mov dword [esp + 0x10], edi
lea edx, [ebx + ebx*2]
mov edi, dword [esp + 0x94]
add edx, eax
shl edi, 6
shr esi, 0x1d
sub edi, ebx
add esi, ebx
add eax, edi
mov dword [esp + 0x20], 0
sar esi, 3
mov dword [esp + 8], eax
mov dword [esp + 0x98], ebx
movsd xmm2, qword [0x5c2378]
mov dword [esp + 0xc], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0xd8]
mov edx, dword [esp + 0xd4]
pxor xmm1, xmm1
movsd xmm0, qword [edx + eax*8]
ucomisd xmm0, xmm1
jp 0x4799e5
je 0x479e7d
mov edx, dword [esp + 0x98]
lea ecx, [eax*8]
imul edx, eax
test eax, eax
jle 0x479dd9
mov dword [esp + 0x38], 0
lea edi, [ebx + edx]
mov dword [esp + 0x2c], edi
lea esi, [ebx + eax*8]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0xc]
mov dword [esp], edx
lea edi, [edi + eax*8]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 8]
lea esi, [esi + eax*8]
mov dword [esp + 4], ecx
mov dword [esp + 0x3c], esi
lea edi, [edi + eax*8]
mov dword [esp + 0x44], edi
mov ebx, dword [esp + 0x98]
imul ebx, dword [esp + 0x38]
mov edx, dword [esp + 0xd8]
lea esi, [edx + ebx]
and esi, 0xf
cmp dword [esp + 0x30], 0
je 0x479e72
mov edx, esi
test esi, esi
je 0x479a77
test esi, 7
jne 0x479e4d
mov edx, 1
lea ecx, [edx + 8]
cmp eax, ecx
jl 0x479e72
mov ecx, eax
sub ecx, edx
mov edi, dword [esp + 0xd8]
and ecx, 7
neg ecx
add ecx, eax
test edx, edx
lea edi, [edi + ebx]
mov dword [esp + 0x34], edi
jbe 0x479e69
xor edi, edi
mov dword [esp + 0x24], edi
pxor xmm1, xmm1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
mov eax, edi
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x94]
movsd xmm0, qword [eax + esi]
lea eax, [eax + edi*8]
mulsd xmm0, qword [ebx + ecx*8]
inc ecx
cmp ecx, edx
addsd xmm1, xmm0
jb 0x479ad2
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x98]
imul edi, edx
pxor xmm0, xmm0
movsd xmm0, xmm1
pxor xmm1, xmm1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
mov esi, edi
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
lea esi, [esi]
lea edi, [edi]
mov edi, dword [esp + 0x4c]
add edi, esi
movsd xmm3, qword [edi]
movhpd xmm3, qword [edi + ebx*8]
mov edi, dword [esp + 0x3c]
mulpd xmm3, xmmword [eax + edx*8]
addpd xmm0, xmm3
add edi, esi
movsd xmm4, qword [edi]
movhpd xmm4, qword [edi + ebx*8]
mov edi, dword [esp + 0x48]
mulpd xmm4, xmmword [eax + edx*8 + 0x10]
addpd xmm1, xmm4
add edi, esi
movsd xmm5, qword [edi]
movhpd xmm5, qword [edi + ebx*8]
mov edi, dword [esp + 0x44]
mulpd xmm5, xmmword [eax + edx*8 + 0x20]
addpd xmm0, xmm5
add edi, esi
add esi, dword [esp + 0xb4]
movsd xmm6, qword [edi]
movhpd xmm6, qword [edi + ebx*8]
mulpd xmm6, xmmword [eax + edx*8 + 0x30]
add edx, 8
addpd xmm1, xmm6
cmp edx, ecx
jb 0x479b30
addpd xmm0, xmm1
movaps xmm1, xmm0
unpckhpd xmm1, xmm0
mov ebx, dword [esp + 0x14]
addsd xmm0, xmm1
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x98]
imul edx, ecx
cmp ecx, eax
jae 0x479c06
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x4c]
add edi, ebx
mov ebx, edi
mov edi, dword [esp + 0x94]
movsd xmm1, qword [edx + esi]
lea edx, [edx + edi*8]
mulsd xmm1, qword [ebx + ecx*8]
inc ecx
cmp ecx, eax
addsd xmm0, xmm1
jb 0x479be8
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x479c1b
test esi, 7
jne 0x479e62
mov esi, 1
lea edx, [esi + 8]
cmp eax, edx
jl 0x479e62
mov ecx, eax
sub ecx, esi
mov edx, dword [esp + 0xd8]
and ecx, 7
neg ecx
add ecx, eax
test esi, esi
lea edx, [edx + ebx]
jbe 0x479c72
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
movaps xmm1, xmm0
mulsd xmm1, qword [edi + eax*8]
movsd xmm3, qword [edx + eax*8]
subsd xmm3, xmm1
movsd qword [edx + eax*8], xmm3
inc eax
cmp eax, esi
jb 0x479c53
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], ebx
mov edi, dword [esp]
mov ebx, dword [esp + 0xd8]
add ebx, edi
lea edi, [ebx + esi*8]
mov ebx, dword [esp + 0x14]
test edi, 0xf
je 0x479d1e
movaps xmm1, xmm0
unpcklpd xmm1, xmm1
mov edi, dword [esp + 0x2c]
movsd xmm3, qword [edi + esi*8]
movhpd xmm3, qword [edi + esi*8 + 8]
mulpd xmm3, xmm1
movaps xmm4, xmmword [edx + esi*8]
subpd xmm4, xmm3
movaps xmmword [edx + esi*8], xmm4
movsd xmm5, qword [edi + esi*8 + 0x10]
movhpd xmm5, qword [edi + esi*8 + 0x18]
mulpd xmm5, xmm1
movaps xmm6, xmmword [edx + esi*8 + 0x10]
subpd xmm6, xmm5
movaps xmmword [edx + esi*8 + 0x10], xmm6
movsd xmm7, qword [edi + esi*8 + 0x20]
movhpd xmm7, qword [edi + esi*8 + 0x28]
mulpd xmm7, xmm1
movaps xmm3, xmmword [edx + esi*8 + 0x20]
subpd xmm3, xmm7
movaps xmmword [edx + esi*8 + 0x20], xmm3
movsd xmm4, qword [edi + esi*8 + 0x30]
movhpd xmm4, qword [edi + esi*8 + 0x38]
mulpd xmm4, xmm1
movaps xmm5, xmmword [edx + esi*8 + 0x30]
subpd xmm5, xmm4
movaps xmmword [edx + esi*8 + 0x30], xmm5
add esi, 8
cmp esi, ecx
jb 0x479ca0
jmp 0x479d90
movaps xmm1, xmm0
unpcklpd xmm1, xmm1
mov edi, dword [esp + 0x2c]
lea esi, [esi]
movaps xmm3, xmmword [edi + esi*8]
mulpd xmm3, xmm1
movaps xmm4, xmmword [edx + esi*8]
subpd xmm4, xmm3
movaps xmmword [edx + esi*8], xmm4
movaps xmm5, xmmword [edi + esi*8 + 0x10]
mulpd xmm5, xmm1
movaps xmm6, xmmword [edx + esi*8 + 0x10]
subpd xmm6, xmm5
movaps xmmword [edx + esi*8 + 0x10], xmm6
movaps xmm7, xmmword [edi + esi*8 + 0x20]
mulpd xmm7, xmm1
movaps xmm3, xmmword [edx + esi*8 + 0x20]
subpd xmm3, xmm7
movaps xmmword [edx + esi*8 + 0x20], xmm3
movaps xmm4, xmmword [edi + esi*8 + 0x30]
mulpd xmm4, xmm1
movaps xmm5, xmmword [edx + esi*8 + 0x30]
subpd xmm5, xmm4
movaps xmmword [edx + esi*8 + 0x30], xmm5
add esi, 8
cmp esi, ecx
jb 0x479d30
cmp ecx, eax
jae 0x479dba
add ebx, dword [esp + 0xd8]
mov edx, dword [esp + 0x2c]
movaps xmm1, xmm0
mulsd xmm1, qword [edx + ecx*8]
movsd xmm3, qword [ebx + ecx*8]
subsd xmm3, xmm1
movsd qword [ebx + ecx*8], xmm3
inc ecx
cmp ecx, eax
jb 0x479d9f
mov edx, dword [esp + 0x38]
inc edx
mov dword [esp + 0x38], edx
cmp edx, eax
jb 0x479a3c
mov edx, dword [esp]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0xd8]
mov esi, dword [esp + 0xd4]
lea edi, [ebx + ecx]
movsd xmm0, qword [edi + edx]
test eax, eax
movsd qword [edi + edx], xmm2
movsd qword [esi + eax*8], xmm0
jle 0x479e26
xor esi, esi
add ecx, ebx
add edx, ebx
xor edi, edi
mov ebx, dword [esp + 0x94]
pxor xmm0, xmm0
pxor xmm1, xmm1
movsd qword [edi + ecx], xmm0
lea edi, [edi + ebx*8]
movsd qword [edx + esi*8], xmm1
inc esi
cmp esi, eax
jb 0x479e05
mov ebx, dword [esp + 0xd8]
inc eax
cmp eax, dword [esp + 0x40]
jb 0x4799c9
add esp, 0xb8
pop ebx
pop edi
pop esi
ret 0x14
mov dword [esp + 0xa0], 0
jmp 0x4797cf
xor ecx, ecx
xor edx, edx
test eax, eax
pxor xmm0, xmm0
ja 0x479bca
jmp 0x479c06
xor ecx, ecx
jmp 0x479d90
pxor xmm1, xmm1
jmp 0x479af8
xor ecx, ecx
pxor xmm0, xmm0
jmp 0x479bbc
mov edx, dword [esp + 0x98]
lea ecx, [eax*8]
imul edx, eax
jmp 0x479dd9
xor esi, esi
pxor xmm2, xmm2
jmp 0x47947e
mov eax, dword [esp + 0x98]
neg edx
imul eax, ebx
mov ecx, ebx
pxor xmm2, xmm2
neg eax
neg ecx
add edx, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
movsd xmm0, qword [edx + eax - 8]
mov edx, dword [esp + 0x10]
movsd qword [edx + ecx*8 - 8], xmm0
jmp 0x47991b
mov edx, dword [esp + 0x98]
lea eax, [ebx*8]
imul edx, ebx
neg eax
pxor xmm2, xmm2
mov esi, ebx
neg edx
add eax, dword [esp + 0x14]
neg esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], esi
movsd xmm0, qword [eax + edx - 8]
movsd qword [ecx + esi*8 - 8], xmm0
jmp 0x47991b