Function at 0x42c4b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
push esi
mov esi, ecx
mov dword [esp + 0x78], edx
push edi
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov eax, edi
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [esp + 0x1c], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
add esp, 4
mov dword [esp + 0x64], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0
mov edx, edi
mov ecx, edi
push eax
call fcn.0042c2c0
add esp, 4
mov dword [esp + 8], 0
lea eax, [esp + 8]
mov edx, edi
mov ecx, edi
push eax
call fcn.0042c2c0
add esp, 4
mov edx, edi
mov ecx, esi
push dword [esp + 8]
push edi
call fcn.0042c0f0
movsd xmm5, qword [0x5bae60]
xor esi, esi
add esp, 8
mov dword [esp + 0x34], esi
xorps xmm7, xmm7
xorps xmm4, xmm4
movsd qword [esp + 0x80], xmm7
xorps xmm6, xmm6
test edi, edi
jle 0x42d197
lea eax, [esi + 2]
mulsd xmm4, xmm6
mov dword [esp + 0x10], eax
mov edx, esi
mov eax, dword [esp + 0x18]
movaps xmm2, xmm7
movaps xmm3, xmm7
movsd qword [eax + esi*8], xmm4
mov eax, edi
sub eax, esi
movaps xmm4, xmm7
mov dword [esp + 0x38], eax
cmp eax, 4
jl 0x42c620
mov ecx, dword [esp + 8]
mov eax, edi
sub eax, esi
add ecx, 8
sub eax, 4
shr eax, 2
inc eax
lea ecx, [ecx + esi*4]
mov dword [esp + 0x28], eax
mov edi, eax
lea edx, [esi + eax*4]
nop
mov eax, dword [ecx - 8]
movsd xmm1, qword [eax + esi*8]
mov eax, dword [ecx - 4]
andps xmm1, xmm5
addsd xmm2, xmm1
movsd xmm0, qword [eax + esi*8]
mov eax, dword [ecx]
andps xmm0, xmm5
addsd xmm2, xmm0
movsd xmm0, qword [eax + esi*8]
mov eax, dword [ecx + 4]
andps xmm0, xmm5
addsd xmm2, xmm0
add ecx, 0x10
movsd xmm0, qword [eax + esi*8]
andps xmm0, xmm5
addsd xmm2, xmm0
sub edi, 1
jne 0x42c5c0
mov edi, dword [ebp + 0xc]
movsd qword [esp + 0x90], xmm2
movsd qword [esp + 0x58], xmm2
cmp edx, edi
jge 0x42c641
nop dword [eax]
mov eax, dword [esp + 8]
mov eax, dword [eax + edx*4]
inc edx
movsd xmm0, qword [eax + esi*8]
andps xmm0, xmm5
addsd xmm0, xmm2
movaps xmm2, xmm0
cmp edx, edi
jl 0x42c620
movsd qword [esp + 0x58], xmm0
ucomisd xmm2, xmm7
lahf
test ah, 0x44
jnp 0x42c889
mov edx, dword [esp + 8]
mov ecx, esi
mov eax, dword [edx + ecx*4]
inc ecx
movsd xmm0, qword [eax + esi*8]
divsd xmm0, xmm2
movsd qword [eax + esi*8], xmm0
mulsd xmm0, xmm0
addsd xmm3, xmm0
cmp ecx, edi
jl 0x42c655
mov eax, dword [edx + esi*4]
xorps xmm1, xmm1
movsd qword [esp + 0x50], xmm3
movsd xmm0, qword [eax + esi*8]
movsd qword [esp + 0x70], xmm0
movaps xmm0, xmm3
ucomisd xmm1, xmm0
ja 0x42c699
sqrtsd xmm0, xmm0
jmp 0x42c69e
call fcn.00578320
movsd xmm1, qword [0x5bae70]
movaps xmm4, xmm0
movsd xmm0, qword [esp + 0x70]
xorps xmm7, xmm7
comisd xmm0, xmm7
jb 0x42c6c0
comisd xmm4, xmm7
jae 0x42c6c9
jmp 0x42c6c6
comisd xmm4, xmm7
jb 0x42c6c9
xorps xmm4, xmm1
mov ecx, dword [esp + 8]
xorps xmm4, xmm1
movaps xmm3, xmm0
subsd xmm0, xmm4
mulsd xmm3, xmm4
mov eax, dword [ecx + esi*4]
lea ecx, [esi + 1]
mov dword [esp + 0xc], ecx
subsd xmm3, qword [esp + 0x50]
movsd qword [eax + esi*8], xmm0
cmp ecx, edi
jge 0x42c7f1
nop dword [eax + eax]
cmp dword [esp + 0x38], 4
movaps xmm2, xmm7
mov edx, esi
jl 0x42c7a2
mov eax, dword [esp + 8]
add eax, 8
lea esi, [eax + esi*4]
mov eax, edi
mov edi, dword [esp + 0x34]
sub eax, edi
sub eax, 4
mov dword [esp + 0x1c], esi
shr eax, 2
inc eax
mov dword [esp + 0x30], eax
lea eax, [edi + eax*4]
mov dword [esp + 0x28], eax
mov ecx, dword [esi - 8]
mov eax, dword [esi - 4]
mov edx, dword [esi]
mov esi, dword [esi + 4]
movsd xmm1, qword [ecx + edi*8]
mov edi, dword [esp + 0xc]
mulsd xmm1, qword [ecx + edi*8]
mov ecx, edi
mov edi, dword [esp + 0x34]
movsd xmm0, qword [eax + ecx*8]
mulsd xmm0, qword [eax + edi*8]
addsd xmm2, xmm1
addsd xmm2, xmm0
movsd xmm0, qword [edx + ecx*8]
mulsd xmm0, qword [edx + edi*8]
addsd xmm2, xmm0
movsd xmm0, qword [esi + ecx*8]
mulsd xmm0, qword [esi + edi*8]
mov esi, dword [esp + 0x1c]
add esi, 0x10
sub dword [esp + 0x30], 1
mov dword [esp + 0x1c], esi
addsd xmm2, xmm0
jne 0x42c738
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
cmp edx, edi
jge 0x42c7c0
mov eax, dword [esp + 8]
mov eax, dword [eax + edx*4]
inc edx
movsd xmm0, qword [eax + ecx*8]
mulsd xmm0, qword [eax + esi*8]
addsd xmm2, xmm0
cmp edx, edi
jl 0x42c7a6
divsd xmm2, xmm3
mov edx, esi
mov eax, dword [esp + 8]
movaps xmm0, xmm2
mov eax, dword [eax + edx*4]
inc edx
mulsd xmm0, qword [eax + esi*8]
addsd xmm0, qword [eax + ecx*8]
movsd qword [eax + ecx*8], xmm0
cmp edx, edi
jl 0x42c7c6
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, edi
jl 0x42c700
cmp dword [esp + 0x38], 4
mov edx, esi
movsd xmm2, qword [esp + 0x58]
jl 0x42c870
mov ecx, dword [esp + 8]
mov eax, edi
sub eax, esi
add ecx, 8
sub eax, 4
shr eax, 2
inc eax
lea ecx, [ecx + esi*4]
mov dword [esp + 0x28], eax
mov edi, eax
lea edx, [esi + eax*4]
nop
mov eax, dword [ecx - 8]
movaps xmm0, xmm2
lea ecx, [ecx + 0x10]
mulsd xmm0, qword [eax + esi*8]
movsd qword [eax + esi*8], xmm0
movaps xmm0, xmm2
mov eax, dword [ecx - 0x14]
mulsd xmm0, qword [eax + esi*8]
movsd qword [eax + esi*8], xmm0
movaps xmm0, xmm2
mov eax, dword [ecx - 0x10]
mulsd xmm0, qword [eax + esi*8]
movsd qword [eax + esi*8], xmm0
movaps xmm0, xmm2
mov eax, dword [ecx - 0xc]
mulsd xmm0, qword [eax + esi*8]
movsd qword [eax + esi*8], xmm0
sub edi, 1
jne 0x42c820
mov edi, dword [ebp + 0xc]
cmp edx, edi
jge 0x42c889
nop
mov eax, dword [esp + 8]
movaps xmm0, xmm2
mov eax, dword [eax + edx*4]
inc edx
mulsd xmm0, qword [eax + esi*8]
movsd qword [eax + esi*8], xmm0
cmp edx, edi
jl 0x42c870
mov eax, dword [esp + 0x64]
movaps xmm5, xmm7
mulsd xmm2, xmm4
movaps xmm6, xmm7
movaps xmm4, xmm7
movsd qword [esp + 0x48], xmm5
movsd qword [esp + 0x58], xmm4
movsd qword [eax + esi*8], xmm2
lea eax, [esi + 1]
mov dword [esp + 0x50], eax
cmp eax, edi
jg 0x42d0e6
lea ecx, [esi + 1]
mov edx, ecx
mov dword [esp + 0x38], ecx
cmp edx, edi
jge 0x42c96c
movsd xmm2, qword [0x5bae60]
mov eax, edi
sub eax, edx
cmp eax, 4
mov eax, dword [esp + 8]
mov eax, dword [eax + esi*4]
jl 0x42c945
mov ecx, edi
mov dword [esp + 0x28], eax
sub ecx, edx
lea eax, [eax + edx*8]
sub ecx, 4
add eax, 0x10
shr ecx, 2
inc ecx
lea edx, [edx + ecx*4]
nop dword [eax + eax]
movsd xmm1, qword [eax - 0x10]
movsd xmm0, qword [eax - 8]
andps xmm1, xmm2
addsd xmm4, xmm1
andps xmm0, xmm2
addsd xmm4, xmm0
movsd xmm0, qword [eax]
andps xmm0, xmm2
addsd xmm4, xmm0
movsd xmm0, qword [eax + 8]
andps xmm0, xmm2
add eax, 0x20
addsd xmm4, xmm0
sub ecx, 1
jne 0x42c900
movsd qword [esp + 0x58], xmm4
cmp edx, edi
jge 0x42c969
mov eax, dword [esp + 0x28]
mov ecx, edi
lea eax, [eax + edx*8]
sub ecx, edx
nop dword [eax]
movsd xmm0, qword [eax]
add eax, 8
andps xmm0, xmm2
addsd xmm4, xmm0
sub ecx, 1
jne 0x42c950
movsd qword [esp + 0x58], xmm4
lea ecx, [esi + 1]
ucomisd xmm4, xmm7
movaps xmm0, xmm4
unpcklpd xmm0, xmm0
lahf
movaps xmmword [esp + 0x90], xmm0
test ah, 0x44
jnp 0x42d0e6
cmp ecx, edi
jge 0x42ca75
mov eax, edi
sub eax, ecx
cmp eax, 4
mov eax, dword [esp + 8]
mov eax, dword [eax + esi*4]
jl 0x42ca49
mov esi, edi
lea edx, [ecx*8 + 0x10]
sub esi, ecx
mov dword [esp + 0x28], edx
mov edi, edx
sub esi, 4
shr esi, 2
add edx, eax
inc esi
mov dword [esp + 0x1c], esi
lea ecx, [ecx + esi*4]
mov esi, dword [esp + 0x34]
nop word [eax + eax]
movsd xmm3, qword [edx - 0x10]
movsd xmm2, qword [edx - 8]
movsd xmm1, qword [edi + eax]
movsd xmm0, qword [edx + 8]
divsd xmm3, xmm4
divsd xmm2, xmm4
divsd xmm1, xmm4
divsd xmm0, xmm4
movsd qword [edx - 0x10], xmm3
mulsd xmm3, xmm3
movsd qword [edx - 8], xmm2
mulsd xmm2, xmm2
addsd xmm3, xmm5
movsd qword [edi + eax], xmm1
mulsd xmm1, qword [edx]
add edi, 0x20
movsd qword [edx + 8], xmm0
add edx, 0x20
sub dword [esp + 0x1c], 1
addsd xmm3, xmm2
mulsd xmm0, xmm0
addsd xmm3, xmm1
addsd xmm3, xmm0
movaps xmm5, xmm3
jne 0x42c9d0
mov edi, dword [ebp + 0xc]
mov edx, eax
movsd qword [esp + 0x48], xmm5
cmp ecx, edi
jl 0x42ca50
jmp 0x42ca75
mov edx, eax
nop dword [eax + eax]
movsd xmm0, qword [eax + ecx*8]
divsd xmm0, xmm4
movsd qword [eax + ecx*8], xmm0
mulsd xmm0, qword [edx + ecx*8]
inc ecx
addsd xmm0, xmm5
movaps xmm5, xmm0
cmp ecx, edi
jl 0x42ca50
movsd qword [esp + 0x48], xmm0
mov eax, dword [esp + 8]
xorps xmm1, xmm1
mov eax, dword [eax + esi*4]
mov dword [esp + 0x14], eax
movsd xmm0, qword [eax + esi*8 + 8]
movsd qword [esp + 0x70], xmm0
movaps xmm0, xmm5
ucomisd xmm1, xmm0
ja 0x42ca9e
sqrtsd xmm0, xmm0
jmp 0x42caa3
call fcn.00578320
movsd xmm1, qword [0x5bae70]
movaps xmm6, xmm0
movsd xmm0, qword [esp + 0x70]
xorps xmm7, xmm7
comisd xmm0, xmm7
jb 0x42cac5
comisd xmm6, xmm7
jae 0x42cace
jmp 0x42cacb
comisd xmm6, xmm7
jb 0x42cace
xorps xmm6, xmm1
mov edx, dword [esp + 0x14]
lea eax, [esi + 1]
xorps xmm6, xmm1
mov dword [esp + 0x20], edi
sub dword [esp + 0x20], eax
movaps xmm1, xmm0
mulsd xmm1, xmm6
subsd xmm0, xmm6
mov ecx, eax
movsd qword [edx + esi*8 + 8], xmm0
subsd xmm1, qword [esp + 0x48]
movaps xmm2, xmm1
unpcklpd xmm2, xmm2
cmp eax, edi
jge 0x42cbfc
cmp dword [esp + 0x20], 8
jb 0x42cc0a
lea ecx, [edx + eax*8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
lea ecx, [edx - 8]
mov edx, dword [esp + 0x18]
lea ecx, [ecx + edi*8]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x14]
cmp eax, ecx
ja 0x42cb47
mov eax, dword [esp + 0x18]
add eax, 0xfffffff8
lea eax, [eax + edi*8]
cmp eax, dword [esp + 0x28]
jae 0x42cc06
mov eax, dword [esp + 0x20]
and eax, 0x80000007
jns 0x42cb57
dec eax
or eax, 0xfffffff8
inc eax
mov edx, dword [esp + 0x18]
mov ecx, edi
mov esi, dword [esp + 0x18]
sub ecx, eax
mov eax, 0xfffffff0
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
sub eax, edx
mov dword [esp + 0x28], eax
mov eax, 0x10
sub eax, edx
mov dword [esp + 0x1c], eax
mov eax, 0xffffffe0
lea edi, [ecx*8 + 0x20]
add esi, edi
sub eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0xc], eax
nop dword [eax]
add eax, edx
lea edi, [edi + 0x40]
add ecx, 8
lea esi, [esi + 0x40]
movups xmm0, xmmword [eax + esi - 0x40]
mov eax, dword [esp + 0x28]
add eax, edx
divpd xmm0, xmm2
movups xmmword [esi - 0x60], xmm0
movups xmm0, xmmword [eax + esi - 0x40]
mov eax, dword [esp + 0x1c]
add eax, edx
divpd xmm0, xmm2
movups xmmword [esi - 0x50], xmm0
movups xmm0, xmmword [edx + edi - 0x40]
divpd xmm0, xmm2
movups xmmword [esi - 0x40], xmm0
movups xmm0, xmmword [eax + esi - 0x40]
mov eax, dword [esp + 0xc]
divpd xmm0, xmm2
movups xmmword [esi - 0x30], xmm0
cmp ecx, dword [esp + 0x30]
jl 0x42cba0
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x34]
cmp ecx, edi
jge 0x42cce3
jmp 0x42cc0a
mov ecx, dword [esp + 0x24]
mov eax, edi
sub eax, ecx
cmp eax, 4
jl 0x42ccc8
mov esi, dword [esp + 0x18]
lea eax, [ecx*8 + 0x10]
mov dword [esp + 0x1c], eax
add esi, eax
mov edx, dword [esp + 0x14]
mov eax, 8
sub eax, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov eax, 0xfffffff0
sub eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov eax, edi
sub eax, ecx
sub eax, 4
shr eax, 2
inc eax
mov dword [esp + 0x28], eax
mov edi, eax
lea ecx, [ecx + eax*4]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
lea eax, [edx + esi]
mov edx, dword [esp + 0x30]
lea ecx, [ecx + 0x20]
lea esi, [esi + 0x20]
movsd xmm0, qword [eax + edx]
divsd xmm0, xmm1
movsd qword [esi - 0x30], xmm0
movsd xmm0, qword [eax + edx + 8]
divsd xmm0, xmm1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
add eax, edx
movsd qword [esi - 0x28], xmm0
movsd xmm0, qword [edx + ecx - 0x20]
divsd xmm0, xmm1
movsd qword [esi - 0x20], xmm0
movsd xmm0, qword [eax + esi - 0x20]
divsd xmm0, xmm1
movsd qword [esi - 0x18], xmm0
sub edi, 1
jne 0x42cc62
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
cmp ecx, edi
jge 0x42cce3
mov eax, dword [esp + 0x18]
nop dword [eax]
movsd xmm0, qword [edx + ecx*8]
divsd xmm0, xmm1
movsd qword [eax + ecx*8], xmm0
inc ecx
cmp ecx, edi
jl 0x42ccd0
lea eax, [esi + 1]
mov ecx, eax
mov dword [esp + 0x24], eax
cmp ecx, edi
jge 0x42d0e0
mov esi, eax
movaps xmm2, xmm7
mov eax, edi
mov dword [esp + 0xc], esi
sub eax, dword [esp + 0x38]
cmp eax, 4
mov eax, dword [esp + 8]
jl 0x42cdad
mov eax, dword [eax + ecx*4]
lea ecx, [esi + 3]
mov dword [esp + 0x1c], eax
lea ecx, [edx + ecx*8]
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xc]
lea eax, [eax + esi*8]
mov esi, edi
add eax, 8
mov edi, dword [esp + 0x28]
sub esi, edx
sub esi, 4
shr esi, 2
inc esi
lea edx, [edx + esi*4]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x14]
nop dword [eax]
movsd xmm1, qword [eax - 8]
mulsd xmm1, qword [ecx - 0x18]
movsd xmm0, qword [edi + eax]
mulsd xmm0, qword [eax]
addsd xmm2, xmm1
addsd xmm2, xmm0
movsd xmm0, qword [eax + 8]
mulsd xmm0, qword [ecx - 8]
addsd xmm2, xmm0
movsd xmm0, qword [eax + 0x10]
mulsd xmm0, qword [ecx]
add eax, 0x20
add ecx, 0x20
addsd xmm2, xmm0
sub esi, 1
jne 0x42cd50
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0xc]
cmp esi, edi
jl 0x42cdb2
mov esi, dword [esp + 0x38]
mov eax, edi
movaps xmm3, xmm2
mov edx, esi
mov ecx, esi
sub eax, esi
jmp 0x42cde2
mov ecx, dword [eax + ecx*4]
jmp 0x42cdb6
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + esi*8]
sub edx, ecx
mov ecx, edi
sub ecx, esi
nop
movsd xmm0, qword [eax + edx]
mulsd xmm0, qword [eax]
add eax, 8
addsd xmm2, xmm0
movaps xmm3, xmm2
sub ecx, 1
jne 0x42cdc0
mov edx, dword [esp + 0x38]
mov eax, edi
mov ecx, edx
sub eax, edx
unpcklpd xmm3, xmm3
cmp eax, 8
jb 0x42cf2d
mov edi, dword [esp + 8]
mov ecx, edx
mov esi, dword [esp + 0x24]
mov esi, dword [edi + esi*4]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x18]
lea esi, [esi + edx*8]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x18]
lea esi, [esi + edi*8]
add esi, 0xfffffff8
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0xc]
lea edx, [esi + edx*8]
mov dword [esp + 0x68], edx
lea edx, [edi - 1]
lea edx, [esi + edx*8]
cmp dword [esp + 0x1c], edx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x68]
ja 0x42ce45
cmp dword [esp + 0x30], edx
jae 0x42cf2d
mov esi, dword [esp + 0x1c]
cmp esi, dword [esp + 0x28]
ja 0x42ce59
cmp dword [esp + 0x30], edx
jae 0x42cf2d
cmp edx, dword [esp + 0x28]
jbe 0x42cf2d
and eax, 0x80000007
jns 0x42ce6f
dec eax
or eax, 0xfffffff8
inc eax
mov esi, dword [esp + 0x18]
mov edx, edi
sub edx, eax
lea edi, [ecx*8 + 0x20]
mov eax, 0xfffffff0
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x18]
sub eax, esi
mov dword [esp + 0x28], eax
add edx, edi
mov eax, 0x10
sub eax, esi
mov dword [esp + 0x1c], eax
mov eax, 0xffffffe0
sub eax, esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x68], eax
jmp 0x42ceb4
mov eax, dword [esp + 0x68]
movups xmm1, xmmword [edx - 0x20]
add eax, esi
add ecx, 8
mulpd xmm1, xmm3
movups xmm0, xmmword [eax + edx]
addpd xmm1, xmm0
movups xmmword [eax + edx], xmm1
mov eax, dword [esp + 0x28]
movups xmm1, xmmword [edx - 0x10]
add eax, esi
mulpd xmm1, xmm3
movups xmm0, xmmword [eax + edx]
addpd xmm1, xmm0
movups xmm0, xmmword [esi + edi]
movups xmmword [eax + edx], xmm1
mov eax, dword [esp + 0x1c]
movups xmm1, xmmword [edx]
add eax, esi
mulpd xmm1, xmm3
addpd xmm1, xmm0
movups xmm0, xmmword [eax + edx]
movups xmmword [esi + edi], xmm1
add edi, 0x40
movups xmm1, xmmword [edx + 0x10]
mulpd xmm1, xmm3
addpd xmm1, xmm0
movups xmmword [eax + edx], xmm1
add edx, 0x40
mov eax, ecx
cmp ecx, dword [esp + 0x30]
jl 0x42ceb0
mov edi, dword [ebp + 0xc]
cmp eax, edi
jge 0x42d027
mov edx, dword [esp + 8]
mov eax, edi
sub eax, ecx
cmp eax, 4
mov eax, dword [esp + 0x24]
jl 0x42d132
mov esi, dword [edx + eax*4]
lea eax, [ecx*8 + 0x10]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x28], eax
add edx, eax
mov eax, 8
mov dword [esp + 0x48], esi
sub eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov eax, 0xfffffff0
sub eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
sub eax, ecx
sub eax, 4
shr eax, 2
inc eax
mov dword [esp + 0x68], eax
mov edi, eax
lea ecx, [ecx + eax*4]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
movaps xmm0, xmm2
mulsd xmm0, qword [edx - 0x10]
add eax, esi
addsd xmm0, qword [eax + edx]
movsd qword [eax + edx], xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [edx - 8]
addsd xmm0, qword [eax + edx + 8]
movsd qword [eax + edx + 8], xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [edx]
mov eax, dword [esp + 0x30]
add eax, esi
addsd xmm0, qword [esi + ecx]
movsd qword [esi + ecx], xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [edx + 8]
add ecx, 0x20
addsd xmm0, qword [eax + edx]
movsd qword [eax + edx], xmm0
add edx, 0x20
sub edi, 1
jne 0x42cf91
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, edi
jge 0x42d027
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
nop dword [eax]
nop dword [eax + eax]
movaps xmm0, xmm2
mulsd xmm0, qword [edx + ecx*8]
addsd xmm0, qword [eax + ecx*8]
movsd qword [eax + ecx*8], xmm0
inc ecx
cmp ecx, edi
jl 0x42d010
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
inc ecx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], ecx
cmp ecx, edi
jl 0x42ccf4
cmp dword [esp + 0x20], 8
mov edx, eax
mov esi, dword [esp + 0x34]
jb 0x42d13a
mov eax, dword [esp + 0x14]
lea ecx, [eax - 8]
lea eax, [eax + esi*8]
lea ecx, [ecx + edi*8]
add eax, 8
cmp eax, ecx
jbe 0x42d13a
mov ecx, dword [esp + 0x20]
and ecx, 0x80000007
jns 0x42d07a
dec ecx
or ecx, 0xfffffff8
inc ecx
movaps xmm2, xmmword [esp + 0x90]
mov eax, edi
sub eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x48], eax
lea eax, [edx*8 + 0x20]
movups xmm0, xmmword [eax + ecx - 0x20]
lea eax, [eax + 0x40]
add edx, 8
movaps xmm1, xmm2
mulpd xmm0, xmm2
movups xmmword [eax + ecx - 0x60], xmm0
movups xmm0, xmmword [eax + ecx - 0x50]
mulpd xmm0, xmm2
movups xmmword [eax + ecx - 0x50], xmm0
movups xmm0, xmmword [ecx + eax - 0x40]
mulpd xmm1, xmm0
movups xmm0, xmmword [eax + ecx - 0x30]
movups xmmword [ecx + eax - 0x40], xmm1
mulpd xmm0, xmm2
movups xmmword [eax + ecx - 0x30], xmm0
cmp edx, dword [esp + 0x48]
jl 0x42d095
cmp edx, edi
jl 0x42d13e
movsd xmm4, qword [esp + 0x58]
mov eax, dword [esp + 0x18]
movsd xmm5, qword [0x5bae60]
movsd xmm1, qword [eax + esi*8]
mov eax, dword [esp + 0x64]
andps xmm1, xmm5
movsd xmm0, qword [eax + esi*8]
mov esi, dword [esp + 0x50]
andps xmm0, xmm5
mov dword [esp + 0x34], esi
addsd xmm1, xmm0
maxsd xmm1, qword [esp + 0x80]
movsd qword [esp + 0x80], xmm1
cmp esi, edi
jl 0x42c570
mov eax, dword [esp + 0x10]
jmp 0x42d19f
mov eax, dword [edx + eax*4]
jmp 0x42d000
mov ecx, dword [esp + 0x14]
movsd xmm4, qword [esp + 0x58]
mov eax, edi
sub eax, edx
cmp eax, 4
jl 0x42d180
lea eax, [edi - 3]
unpcklpd xmm4, xmm4
movups xmm0, xmmword [ecx + edx*8]
mulpd xmm0, xmm4
movups xmmword [ecx + edx*8], xmm0
movups xmm0, xmmword [ecx + edx*8 + 0x10]
mulpd xmm0, xmm4
movups xmmword [ecx + edx*8 + 0x10], xmm0
add edx, 4
cmp edx, eax
jl 0x42d154
cmp edx, edi
jge 0x42d0e6
nop dword [eax]
movaps xmm0, xmm4
mulsd xmm0, qword [ecx + edx*8]
movsd qword [ecx + edx*8], xmm0
inc edx
cmp edx, edi
jl 0x42d180
jmp 0x42d0e6
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
movsd xmm3, qword [0x5ba2b0]
lea esi, [edi - 1]
mov edx, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edx
test edx, edx
js 0x42d4aa
mov ecx, dword [esp + 0x44]
neg eax
mov dword [esp + 0x20], eax
mov eax, edx
neg eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 8]
sub ecx, eax
mov dword [esp + 0x1c], ecx
lea esi, [eax + edx*4]
mov dword [esp + 0x24], esi
nop
lea eax, [edi - 1]
cmp edx, eax
jge 0x42d46d
ucomisd xmm6, xmm7
lahf
test ah, 0x44
mov eax, dword [esp + 0x10]
jnp 0x42d435
mov ecx, eax
cmp eax, edi
jge 0x42d435
mov eax, dword [esp + 0x20]
mov esi, dword [esi]
add eax, edi
cmp eax, 4
jl 0x42d2c0
mov edx, dword [esp + 0x38]
lea eax, [edi - 3]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x50], eax
add edi, 8
mov eax, ecx
lea edi, [edi + eax*4]
jmp 0x42d235
mov eax, dword [esp + 0x10]
movsd xmm0, qword [esi + ecx*8]
lea edi, [edi + 0x10]
divsd xmm0, qword [esi + eax*8]
mov eax, dword [edi - 0x18]
divsd xmm0, xmm6
movsd qword [eax + edx*8], xmm0
movsd xmm0, qword [esi + ecx*8 + 8]
mov eax, dword [esp + 0x10]
divsd xmm0, qword [esi + eax*8]
mov eax, dword [edi - 0x14]
divsd xmm0, xmm6
movsd qword [eax + edx*8], xmm0
movsd xmm0, qword [esi + ecx*8 + 0x10]
mov eax, dword [esp + 0x10]
divsd xmm0, qword [esi + eax*8]
mov eax, dword [edi - 0x10]
divsd xmm0, xmm6
movsd qword [eax + edx*8], xmm0
mov eax, dword [esp + 0x10]
movsd xmm0, qword [esi + ecx*8 + 0x18]
add ecx, 4
divsd xmm0, qword [esi + eax*8]
mov eax, dword [edi - 0xc]
divsd xmm0, xmm6
movsd qword [eax + edx*8], xmm0
cmp ecx, dword [esp + 0x50]
jl 0x42d231
mov edi, dword [ebp + 0xc]
cmp ecx, edi
jl 0x42d2c0
mov edx, dword [esp + 0x10]
mov eax, edx
mov dword [esp + 0xc], eax
jmp 0x42d2ed
mov eax, dword [esp + 0x10]
movsd xmm0, qword [esi + ecx*8]
divsd xmm0, qword [esi + eax*8]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + ecx*4]
inc ecx
divsd xmm0, xmm6
movsd qword [eax + edx*8], xmm0
cmp ecx, edi
jl 0x42d2c0
mov edx, dword [esp + 0x10]
mov eax, edx
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
add esi, edi
mov dword [esp + 0x20], esi
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
jmp 0x42d307
mov edx, dword [esp + 0x10]
movaps xmm2, xmm7
cmp esi, 4
jl 0x42d3b5
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
lea esi, [edx + 2]
lea eax, [eax + edx*4]
add eax, 8
lea esi, [ecx + esi*8]
mov dword [esp + 0x50], eax
mov eax, edi
mov edi, dword [esp + 0x50]
sub eax, edx
sub eax, 4
shr eax, 2
inc eax
mov dword [esp + 0x48], eax
lea edx, [edx + eax*4]
mov dword [esp + 0x68], edx
mov edx, eax
nop word [eax + eax]
mov eax, dword [esp + 0xc]
lea ecx, [eax*8]
mov eax, dword [edi - 8]
movsd xmm1, qword [eax + ecx]
mov eax, dword [edi - 4]
mulsd xmm1, qword [esi - 0x10]
movsd xmm0, qword [eax + ecx]
mulsd xmm0, qword [esi - 8]
mov eax, dword [edi]
addsd xmm2, xmm1
addsd xmm2, xmm0
movsd xmm0, qword [eax + ecx]
mulsd xmm0, qword [esi]
mov eax, dword [edi + 4]
add edi, 0x10
addsd xmm2, xmm0
movsd xmm0, qword [eax + ecx]
mulsd xmm0, qword [esi + 8]
add esi, 0x20
addsd xmm2, xmm0
sub edx, 1
jne 0x42d350
mov edi, dword [ebp + 0xc]
mov edx, dword [esp + 0x68]
cmp edx, edi
jl 0x42d3bc
jmp 0x42d3df
lea ecx, [eax*8]
mov eax, dword [esp + 0x28]
lea esi, [eax + edx*8]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + edx*4]
inc edx
movsd xmm0, qword [eax + ecx]
mulsd xmm0, qword [esi]
add esi, 8
addsd xmm2, xmm0
cmp edx, edi
jl 0x42d3c3
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
nop word [eax + eax]
mov eax, dword [esp + 0x44]
movaps xmm0, xmm2
mov eax, dword [eax + edx*4]
inc edx
mulsd xmm0, qword [eax + esi*8]
addsd xmm0, qword [eax + ecx]
movsd qword [eax + ecx], xmm0
cmp edx, edi
jl 0x42d3f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
inc eax
mov esi, dword [esp + 0x20]
mov dword [esp + 0xc], eax
cmp eax, edi
jl 0x42d303
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
jmp 0x42d43b
mov ecx, eax
cmp eax, edi
jge 0x42d46d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + esi]
mov esi, dword [esp + 0x10]
lea esi, [eax + esi*8]
nop dword [eax]
mov eax, dword [esp + 0x44]
lea esi, [esi + 8]
mov eax, dword [eax + ecx*4]
inc ecx
movsd qword [eax + edx*8], xmm7
movsd qword [esi - 8], xmm7
cmp ecx, edi
jl 0x42d450
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], edx
mov eax, dword [eax + esi]
sub esi, 4
mov dword [esp + 0x24], esi
movsd qword [eax + edx*8], xmm3
mov eax, dword [esp + 0x18]
movsd xmm6, qword [eax + edx*8]
dec edx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], eax
inc eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], eax
test edx, edx
jns 0x42d1e0
lea esi, [edi - 1]
mov ecx, esi
mov dword [esp + 0x14], ecx
test ecx, ecx
js 0x42d76e
mov esi, edi
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], esi
nop word [eax + eax]
mov edi, dword [esp + 0x64]
lea edx, [ecx*8]
lea eax, [edx + 8]
mov dword [esp + 0x38], edx
mov dword [esp + 0x50], eax
movsd xmm0, qword [eax + edi - 8]
lea eax, [ecx*4]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
cmp esi, edi
jge 0x42d528
mov edx, dword [esp + 8]
mov ecx, edi
mov edi, dword [esp + 0x20]
sub ecx, esi
shl ecx, 3
xor eax, eax
shr ecx, 2
mov edi, dword [edi + edx]
add edi, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
jmp 0x42d52c
mov dword [esp + 0x20], eax
ucomisd xmm0, xmm7
lahf
test ah, 0x44
jnp 0x42d77b
mov dword [esp + 0xc], esi
mov ecx, esi
divsd xmm3, xmm0
cmp esi, edi
jge 0x42d683
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x20]
mov edi, dword [eax + edx]
mov edx, dword [esp + 0x38]
add edi, edx
mov dword [esp + 0x48], edi
mov edi, dword [ebp + 0xc]
nop dword [eax]
nop dword [eax + eax]
cmp dword [esp + 0x24], 4
movaps xmm2, xmm7
jle 0x42d61a
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
add esi, 0xc
add esi, eax
mov eax, edi
mov edi, dword [esp + 0x38]
sub eax, ecx
sub eax, 4
mov dword [esp + 0x28], esi
shr eax, 2
inc eax
mov dword [esp + 0x1c], eax
lea eax, [ecx + eax*4]
mov dword [esp + 0x50], eax
nop dword [eax]
mov ecx, dword [esi - 8]
mov eax, dword [esi - 4]
mov edx, dword [esi]
mov esi, dword [esi + 4]
movsd xmm1, qword [edi + ecx]
mov edi, dword [esp + 0xc]
mulsd xmm1, qword [ecx + edi*8]
mov ecx, edi
mov edi, dword [esp + 0x38]
movsd xmm0, qword [eax + ecx*8]
mulsd xmm0, qword [edi + eax]
addsd xmm2, xmm1
addsd xmm2, xmm0
movsd xmm0, qword [edx + ecx*8]
mulsd xmm0, qword [edx + edi]
addsd xmm2, xmm0
movsd xmm0, qword [esi + ecx*8]
mulsd xmm0, qword [edi + esi]
mov esi, dword [esp + 0x28]
add esi, 0x10
sub dword [esp + 0x1c], 1
mov dword [esp + 0x28], esi
addsd xmm2, xmm0
jne 0x42d5b0
mov edi, dword [ebp + 0xc]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x50]
cmp esi, edi
jge 0x42d63a
nop
mov eax, dword [esp + 8]
mov eax, dword [eax + esi*4]
inc esi
movsd xmm0, qword [eax + ecx*8]
mulsd xmm0, qword [eax + edx]
addsd xmm2, xmm0
cmp esi, edi
jl 0x42d620
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x14]
divsd xmm2, qword [eax]
mulsd xmm2, xmm3
cmp esi, edi
jge 0x42d66e
nop
mov eax, dword [esp + 8]
movaps xmm0, xmm2
mov eax, dword [eax + esi*4]
inc esi
mulsd xmm0, qword [eax + edx]
addsd xmm0, qword [eax + ecx*8]
movsd qword [eax + ecx*8], xmm0
cmp esi, edi
jl 0x42d650
mov esi, dword [esp + 0x10]
inc ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], ecx
cmp ecx, edi
jl 0x42d570
mov ecx, dword [esp + 0x14]
cmp ecx, edi
jge 0x42d7f9
cmp dword [esp + 0x24], 4
jl 0x42d710
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 8]
add eax, 8
add esi, eax
mov eax, edi
mov edi, ecx
sub eax, edi
sub eax, 4
shr eax, 2
inc eax
mov dword [esp + 0x50], eax
lea ecx, [edi + eax*4]
mov edi, eax
nop dword [eax]
mov eax, dword [esi - 8]
movaps xmm0, xmm3
lea esi, [esi + 0x10]
mulsd xmm0, qword [eax + edx]
movsd qword [eax + edx], xmm0
movaps xmm0, xmm3
mov eax, dword [esi - 0x14]
mulsd xmm0, qword [eax + edx]
movsd qword [eax + edx], xmm0
movaps xmm0, xmm3
mov eax, dword [esi - 0x10]
mulsd xmm0, qword [eax + edx]
movsd qword [eax + edx], xmm0
movaps xmm0, xmm3
mov eax, dword [esi - 0xc]
mulsd xmm0, qword [eax + edx]
movsd qword [eax + edx], xmm0
sub edi, 1
jne 0x42d6c0
mov edi, dword [ebp + 0xc]
cmp ecx, edi
jge 0x42d729
nop
mov eax, dword [esp + 8]
movaps xmm0, xmm3
mov eax, dword [eax + ecx*4]
inc ecx
mulsd xmm0, qword [eax + edx]
movsd qword [eax + edx], xmm0
cmp ecx, edi
jl 0x42d710
movsd xmm3, qword [0x5ba2b0]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 8]
dec ecx
mov eax, dword [esp + 0x20]
dec esi
inc dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
mov eax, dword [eax + edi]
mov edi, dword [ebp + 0xc]
movsd xmm0, qword [eax + edx]
addsd xmm0, xmm3
movsd qword [eax + edx], xmm0
test ecx, ecx
jns 0x42d4d0
lea esi, [edi - 1]
test esi, esi
js 0x42e0c5
jmp 0x42d818
mov esi, ecx
cmp ecx, edi
jge 0x42d735
cmp dword [esp + 0x24], 4
jl 0x42d7e3
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 8]
add eax, 8
add ecx, eax
mov eax, edi
mov edi, dword [esp + 0x14]
sub eax, edi
sub eax, 4
shr eax, 2
inc eax
mov dword [esp + 0x50], eax
lea esi, [edi + eax*4]
mov edi, eax
nop dword [eax]
mov eax, dword [ecx - 8]
lea ecx, [ecx + 0x10]
movsd qword [edx + eax], xmm7
mov eax, dword [ecx - 0x14]
movsd qword [edx + eax], xmm7
mov eax, dword [ecx - 0x10]
movsd qword [edx + eax], xmm7
mov eax, dword [ecx - 0xc]
movsd qword [edx + eax], xmm7
sub edi, 1
jne 0x42d7b0
mov edi, dword [ebp + 0xc]
cmp esi, edi
jge 0x42d731
mov ecx, dword [esp + 8]
mov eax, dword [ecx + esi*4]
inc esi
movsd qword [edx + eax], xmm7
cmp esi, edi
jl 0x42d7e7
jmp 0x42d731
movsd xmm3, qword [0x5ba2b0]
mov ecx, dword [esp + 0x14]
jmp 0x42d739
movsd xmm5, qword [0x5bae60]
mov edx, dword [esp + 0x64]
lea eax, [esi*8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], 0
lea ecx, [eax + edx]
mov eax, dword [esp + 0x18]
sub eax, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], eax
jmp 0x42d84a
movsd xmm5, qword [0x5bae60]
movsd xmm6, qword [esp + 0x80]
add ecx, 0xfffffff8
mov dword [esp + 0x20], esi
nop word [eax + eax]
mov eax, dword [esp + 0x18]
lea edx, [esi - 1]
mov dword [esp + 0x28], edx
movsd xmm0, qword [eax + esi*8]
andps xmm0, xmm5
addsd xmm0, xmm6
ucomisd xmm0, xmm6
lahf
test ah, 0x44
jnp 0x42db8f
movsd xmm0, qword [ecx]
mov eax, dword [esp + 0x14]
andps xmm0, xmm5
addsd xmm0, xmm6
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], eax
ucomisd xmm0, xmm6
lahf
test ah, 0x44
jnp 0x42d8c9
mov esi, edx
sub ecx, 8
mov dword [esp + 0x20], esi
test esi, esi
jns 0x42d860
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], eax
jmp 0x42d8cd
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
dec esi
inc ecx
movaps xmm5, xmm7
movaps xmm4, xmm3
cmp esi, ecx
jge 0x42da74
mov ecx, dword [esp + 0x64]
lea ecx, [ecx + esi*8]
mov dword [esp + 0xc], ecx
jmp 0x42d8f8
movsd xmm3, qword [0x5ba2b0]
movsd xmm1, qword [ecx + eax]
movaps xmm0, xmm1
mulsd xmm1, xmm5
movsd xmm5, qword [0x5bae60]
mulsd xmm4, xmm0
movsd qword [ecx + eax], xmm1
movaps xmm2, xmm4
movsd qword [esp + 0x50], xmm4
andps xmm2, xmm5
movaps xmm0, xmm2
movsd qword [esp + 0x70], xmm2
addsd xmm0, xmm6
ucomisd xmm0, xmm6
lahf
test ah, 0x44
jnp 0x42da74
movsd xmm1, qword [ecx]
movaps xmm0, xmm1
movsd qword [esp + 0x58], xmm1
andps xmm0, xmm5
comisd xmm2, xmm0
movsd qword [esp + 0x48], xmm0
jbe 0x42d984
divsd xmm0, xmm2
xorps xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm3
ucomisd xmm1, xmm0
ja 0x42d977
sqrtsd xmm0, xmm0
mulsd xmm0, xmm2
jmp 0x42d9d6
call fcn.00578320
mulsd xmm0, qword [esp + 0x70]
jmp 0x42d9d6
ucomisd xmm0, xmm7
lahf
test ah, 0x44
jp 0x42d9ad
movaps xmm0, xmm3
xorps xmm4, xmmword [0x5bae70]
divsd xmm0, xmm7
movaps xmm5, xmm1
movsd qword [ecx], xmm7
mulsd xmm5, xmm0
mulsd xmm4, xmm0
jmp 0x42da14
divsd xmm2, xmm0
xorps xmm1, xmm1
mulsd xmm2, xmm2
addsd xmm2, xmm3
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x42d9cb
sqrtsd xmm0, xmm0
jmp 0x42d9d0
call fcn.00578320
mulsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [0x5ba2b0]
xorps xmm7, xmm7
divsd xmm1, xmm0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
movsd xmm4, qword [esp + 0x50]
xorps xmm4, xmmword [0x5bae70]
movaps xmm5, xmm1
movsd xmm6, qword [esp + 0x80]
mulsd xmm5, qword [esp + 0x58]
mulsd xmm4, xmm1
movsd qword [eax], xmm0
xor ecx, ecx
mov eax, dword [esp + 8]
mov eax, dword [eax + ecx*4]
inc ecx
movsd xmm3, qword [eax + edx*8]
movsd xmm2, qword [eax + esi*8]
movaps xmm1, xmm3
mulsd xmm1, xmm5
movaps xmm0, xmm2
mulsd xmm0, xmm4
mulsd xmm2, xmm5
mulsd xmm3, xmm4
addsd xmm1, xmm0
subsd xmm2, xmm3
movsd qword [eax + edx*8], xmm1
movsd qword [eax + esi*8], xmm2
cmp ecx, edi
jl 0x42da16
mov ecx, dword [esp + 0xc]
inc esi
mov eax, dword [esp + 0x34]
add ecx, 8
mov edi, dword [ebp + 0xc]
inc eax
cmp esi, eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x38]
jl 0x42d8f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
movsd xmm3, qword [eax]
mov edx, dword [esp + 0x20]
movsd qword [esp + 0x58], xmm3
cmp edx, dword [esp + 0x34]
je 0x42e006
cmp dword [esp + 0x30], 0x1d
jne 0x42dab4
mov edx, 2
mov ecx, str.Singular_Value_Decomposition_did_not_converge
call fcn.004c4d70
movsd xmm3, qword [esp + 0x58]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
lea esi, [edx*8]
mov eax, dword [esp + 0x64]
movaps xmm0, xmm3
mov dword [esp + 0x50], esi
lea ecx, [edi - 1]
movsd xmm6, qword [eax + edi*8 - 8]
movsd xmm7, qword [esi + eax]
addsd xmm0, xmm6
mov eax, dword [esp + 0x18]
movaps xmm4, xmm6
subsd xmm4, xmm3
movsd qword [esp + 0x68], xmm7
mov dword [esp + 0xc], ecx
movsd qword [esp + 0x48], xmm6
movsd xmm2, qword [eax + edi*8 - 8]
mov eax, dword [esp + 0x1c]
movaps xmm1, xmm2
mov edi, dword [esp + 0x18]
mulsd xmm4, xmm0
movsd xmm5, qword [eax + edi]
movaps xmm0, xmm5
movsd qword [esp + 0x38], xmm5
addsd xmm0, xmm2
subsd xmm1, xmm5
mulsd xmm1, xmm0
movaps xmm0, xmm5
addsd xmm0, xmm5
addsd xmm4, xmm1
movsd xmm1, qword [0x5ba2b0]
mulsd xmm0, xmm6
divsd xmm4, xmm0
movaps xmm0, xmm1
andps xmm0, xmmword [0x5bae60]
movaps xmm2, xmm4
andps xmm2, xmmword [0x5bae60]
comisd xmm2, xmm0
movsd qword [esp + 0x28], xmm4
movsd qword [esp + 0x70], xmm2
movsd qword [esp + 0x88], xmm0
jbe 0x42dbab
divsd xmm0, xmm2
mulsd xmm0, xmm0
addsd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x42db9e
sqrtsd xmm0, xmm0
mulsd xmm0, xmm2
jmp 0x42dbea
mov ecx, dword [esp + 0x14]
mov eax, ecx
mov dword [esp + 0x10], eax
jmp 0x42da7c
call fcn.00578320
mulsd xmm0, qword [esp + 0x70]
jmp 0x42dbea
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x42dbbd
xorps xmm0, xmm0
jmp 0x42dc13
divsd xmm2, xmm0
mulsd xmm2, xmm2
addsd xmm2, qword [0x5ba2b0]
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x42dbdc
sqrtsd xmm0, xmm0
jmp 0x42dbe1
call fcn.00578320
mulsd xmm0, qword [esp + 0x88]
mov ecx, dword [esp + 0xc]
xorps xmm1, xmm1
mov edx, dword [esp + 0x20]
movsd xmm5, qword [esp + 0x38]
movsd xmm4, qword [esp + 0x28]
movsd xmm3, qword [esp + 0x58]
movsd xmm7, qword [esp + 0x68]
movsd xmm6, qword [esp + 0x48]
comisd xmm4, xmm1
jb 0x42dc21
comisd xmm0, xmm1
jae 0x42dc2e
jmp 0x42dc27
comisd xmm0, xmm1
jb 0x42dc2e
xorps xmm0, xmmword [0x5bae70]
mov edi, dword [ebp + 0xc]
addsd xmm0, xmm4
movaps xmm1, xmm7
subsd xmm1, xmm3
divsd xmm6, xmm0
movaps xmm0, xmm7
subsd xmm6, xmm5
addsd xmm0, xmm3
movsd xmm3, qword [0x5ba2b0]
movaps xmm4, xmm3
mulsd xmm6, xmm5
movaps xmm5, xmm3
mulsd xmm1, xmm0
addsd xmm6, xmm1
divsd xmm6, xmm7
movsd qword [esp + 0x48], xmm6
cmp edx, ecx
jg 0x42dfc7
add esi, 8
nop word [eax + eax]
mov eax, dword [esp + 0x64]
xorps xmm1, xmm1
mov ecx, dword [esp + 0x24]
add eax, esi
mulsd xmm4, qword [ecx + eax]
movsd xmm2, qword [eax]
mulsd xmm5, qword [ecx + eax]
movsd qword [esp + 0x58], xmm2
movaps xmm2, xmm6
andps xmm2, xmmword [0x5bae60]
movaps xmm0, xmm4
andps xmm0, xmmword [0x5bae60]
comisd xmm2, xmm0
movsd qword [esp + 0x28], xmm4
movsd qword [esp + 0x38], xmm5
movsd qword [esp + 0x88], xmm2
movsd qword [esp + 0x70], xmm0
jbe 0x42dd02
divsd xmm0, xmm2
mulsd xmm0, xmm0
addsd xmm0, xmm3
ucomisd xmm1, xmm0
ja 0x42dcf2
sqrtsd xmm0, xmm0
mulsd xmm0, xmm2
jmp 0x42dd37
call fcn.00578320
mulsd xmm0, qword [esp + 0x88]
jmp 0x42dd37
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x42dd11
xorps xmm0, xmm0
jmp 0x42dd49
divsd xmm2, xmm0
mulsd xmm2, xmm2
addsd xmm2, xmm3
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x42dd2c
sqrtsd xmm0, xmm0
jmp 0x42dd31
call fcn.00578320
mulsd xmm0, qword [esp + 0x70]
movsd xmm7, qword [esp + 0x68]
movsd xmm6, qword [esp + 0x48]
movsd xmm4, qword [esp + 0x28]
movaps xmm5, xmm6
mov eax, dword [esp + 0x18]
divsd xmm5, xmm0
xor ecx, ecx
divsd xmm4, xmm0
movsd qword [eax + esi - 8], xmm0
movaps xmm2, xmm7
movaps xmm6, xmm5
mulsd xmm7, xmm4
mulsd xmm6, qword [esp + 0x38]
movaps xmm0, xmm4
mulsd xmm0, qword [esp + 0x38]
mulsd xmm2, xmm5
subsd xmm6, xmm7
movsd qword [esp + 0x70], xmm5
movsd xmm7, qword [esp + 0x58]
movsd qword [esp + 0x28], xmm4
addsd xmm2, xmm0
movaps xmm0, xmm7
mulsd xmm0, xmm4
mulsd xmm7, xmm5
movsd qword [esp + 0x48], xmm2
movsd qword [esp + 0x68], xmm6
movsd qword [esp + 0x38], xmm0
movsd qword [esp + 0x58], xmm7
nop word [eax + eax]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + ecx*4]
inc ecx
movsd xmm3, qword [eax + esi - 8]
movsd xmm2, qword [eax + esi]
movaps xmm1, xmm3
mulsd xmm1, xmm5
movaps xmm0, xmm2
mulsd xmm0, xmm4
mulsd xmm2, xmm5
mulsd xmm3, xmm4
addsd xmm1, xmm0
subsd xmm2, xmm3
movsd qword [eax + esi - 8], xmm1
movsd qword [eax + esi], xmm2
cmp ecx, edi
jl 0x42ddc0
movsd xmm1, qword [esp + 0x48]
movsd xmm3, qword [esp + 0x38]
movaps xmm2, xmm1
andps xmm2, xmmword [0x5bae60]
movaps xmm0, xmm3
andps xmm0, xmmword [0x5bae60]
comisd xmm2, xmm0
movsd qword [esp + 0x88], xmm2
movsd qword [esp + 0x90], xmm0
jbe 0x42de6b
divsd xmm0, xmm2
xorps xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, qword [0x5ba2b0]
ucomisd xmm1, xmm0
ja 0x42de5b
sqrtsd xmm0, xmm0
mulsd xmm0, xmm2
jmp 0x42deae
call fcn.00578320
mulsd xmm0, qword [esp + 0x88]
jmp 0x42deae
ucomisd xmm0, qword [0x5b9b00]
lahf
test ah, 0x44
jp 0x42de7e
xorps xmm0, xmm0
jmp 0x42ded2
divsd xmm2, xmm0
xorps xmm1, xmm1
mulsd xmm2, xmm2
addsd xmm2, qword [0x5ba2b0]
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x42dea0
sqrtsd xmm0, xmm0
jmp 0x42dea5
call fcn.00578320
mulsd xmm0, qword [esp + 0x90]
movsd xmm3, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x48]
movsd xmm7, qword [esp + 0x58]
movsd xmm6, qword [esp + 0x68]
movsd xmm5, qword [esp + 0x70]
movsd xmm4, qword [esp + 0x28]
ucomisd xmm0, qword [0x5b9b00]
mov eax, dword [esp + 0x64]
movsd qword [eax + esi - 8], xmm0
lahf
xor ecx, ecx
test ah, 0x44
jnp 0x42df2d
movsd xmm4, qword [0x5ba2b0]
divsd xmm4, xmm0
movaps xmm5, xmm4
mulsd xmm4, xmm3
mulsd xmm5, xmm1
movsd xmm1, qword [esp + 0x68]
movaps xmm0, xmm4
mulsd xmm1, xmm4
mulsd xmm0, qword [esp + 0x58]
movaps xmm7, xmm5
mulsd xmm6, xmm7
mulsd xmm7, qword [esp + 0x58]
addsd xmm6, xmm0
subsd xmm7, xmm1
jmp 0x42df57
movaps xmm0, xmm5
movaps xmm6, xmm4
mulsd xmm0, qword [esp + 0x68]
mulsd xmm6, xmm7
movaps xmm7, xmm5
mulsd xmm7, qword [esp + 0x58]
addsd xmm6, xmm0
movaps xmm0, xmm4
mulsd xmm0, qword [esp + 0x68]
subsd xmm7, xmm0
mov edx, dword [esp + 0x20]
movsd qword [esp + 0x68], xmm7
movsd qword [esp + 0x48], xmm6
mov eax, dword [esp + 8]
mov eax, dword [eax + ecx*4]
inc ecx
movsd xmm3, qword [eax + esi - 8]
movsd xmm2, qword [eax + edx*8 + 8]
movaps xmm1, xmm3
mulsd xmm1, xmm5
movaps xmm0, xmm2
mulsd xmm0, xmm4
mulsd xmm2, xmm5
mulsd xmm3, xmm4
addsd xmm1, xmm0
subsd xmm2, xmm3
movsd qword [eax + esi - 8], xmm1
movsd qword [eax + edx*8 + 8], xmm2
cmp ecx, edi
jl 0x42df67
movsd xmm3, qword [0x5ba2b0]
inc edx
add esi, 8
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0xc]
jle 0x42dc80
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
xorps xmm0, xmm0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
inc edx
movsd qword [esi + ecx], xmm0
mov esi, dword [esp + 0x34]
movsd qword [eax + ecx], xmm6
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], edx
movsd qword [eax], xmm7
xorps xmm7, xmm7
cmp edx, 0x1e
jl 0x42d842
jmp 0x42e0ac
comisd xmm7, xmm3
jbe 0x42e0ac
movsd xmm1, qword [0x5bae70]
xor edx, edx
xorps xmm3, xmm1
movsd qword [ecx], xmm3
cmp edi, 4
jl 0x42e08b
mov ecx, dword [esp + 0x44]
lea esi, [edi - 4]
mov edi, dword [esp + 0x34]
add ecx, 8
shr esi, 2
inc esi
lea edx, [esi*4]
nop
mov eax, dword [ecx - 8]
lea ecx, [ecx + 0x10]
movsd xmm0, qword [eax + edi*8]
xorps xmm0, xmm1
movsd qword [eax + edi*8], xmm0
mov eax, dword [ecx - 0x14]
movsd xmm0, qword [eax + edi*8]
xorps xmm0, xmm1
movsd qword [eax + edi*8], xmm0
mov eax, dword [ecx - 0x10]
movsd xmm0, qword [eax + edi*8]
xorps xmm0, xmm1
movsd qword [eax + edi*8], xmm0
mov eax, dword [ecx - 0xc]
movsd xmm0, qword [eax + edi*8]
xorps xmm0, xmm1
movsd qword [eax + edi*8], xmm0
sub esi, 1
jne 0x42e040
mov edi, dword [ebp + 0xc]
cmp edx, edi
jge 0x42e0ac
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov eax, dword [eax + edx*4]
inc edx
movsd xmm0, qword [eax + ecx]
xorps xmm0, xmm1
movsd qword [eax + ecx], xmm0
cmp edx, edi
jl 0x42e093
mov esi, dword [esp + 0x34]
movsd xmm3, qword [0x5ba2b0]
sub esi, 1
mov dword [esp + 0x34], esi
jns 0x42d810
movsd xmm1, qword [0x5bad68]
xor ecx, ecx
mov esi, dword [esp + 0x64]
cmp edi, 4
jl 0x42e11c
lea edx, [edi - 4]
shr edx, 2
lea eax, [esi + 0x10]
inc edx
lea ecx, [edx*4]
nop dword [eax]
movsd xmm0, qword [eax - 0x10]
lea eax, [eax + 0x20]
maxsd xmm0, xmm1
movsd xmm1, qword [eax - 0x28]
maxsd xmm1, xmm0
movsd xmm0, qword [eax - 0x20]
maxsd xmm0, xmm1
movsd xmm1, qword [eax - 0x18]
maxsd xmm1, xmm0
sub edx, 1
jne 0x42e0f0
cmp ecx, edi
jge 0x42e131
movsd xmm0, qword [esi + ecx*8]
inc ecx
maxsd xmm0, xmm1
movaps xmm1, xmm0
cmp ecx, edi
jl 0x42e120
xor eax, eax
test edi, edi
jle 0x42e160
movsd xmm2, qword [ebp + 0x10]
movsd xmm3, qword [0x5bae60]
movsd xmm0, qword [esi + eax*8]
divsd xmm0, xmm1
andps xmm0, xmm3
comisd xmm2, xmm0
jbe 0x42e15b
movsd qword [esi + eax*8], xmm7
inc eax
cmp eax, edi
jl 0x42e144
xor edx, edx
test edi, edi
jle 0x42e33e
mov eax, dword [esp + 0x18]
mov ecx, esi
sub ecx, eax
mov dword [esp + 0x28], ecx
nop word [eax + eax]
lea eax, [eax + edx*8]
movaps xmm2, xmm7
movsd xmm3, qword [ecx + eax]
ucomisd xmm3, xmm7
lahf
test ah, 0x44
jnp 0x42e256
xor ecx, ecx
cmp edi, 4
jl 0x42e230
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x7c]
add eax, 8
mov dword [esp + 0x50], eax
add esi, 0x10
lea eax, [edi - 4]
mov edi, dword [esp + 0x50]
shr eax, 2
inc eax
mov dword [esp + 0x48], eax
lea ecx, [eax*4]
mov dword [esp + 0x68], ecx
mov ecx, eax
mov eax, dword [edi - 8]
movsd xmm1, qword [eax + edx*8]
mov eax, dword [edi - 4]
mulsd xmm1, qword [esi - 0x10]
movsd xmm0, qword [eax + edx*8]
mulsd xmm0, qword [esi - 8]
mov eax, dword [edi]
addsd xmm2, xmm1
addsd xmm2, xmm0
movsd xmm0, qword [eax + edx*8]
mulsd xmm0, qword [esi]
mov eax, dword [edi + 4]
add edi, 0x10
addsd xmm2, xmm0
movsd xmm0, qword [eax + edx*8]
mulsd xmm0, qword [esi + 8]
add esi, 0x20
addsd xmm2, xmm0
sub ecx, 1
jne 0x42e1d2
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x68]
cmp ecx, edi
jge 0x42e24e
nop word [eax + eax]
mov eax, dword [esp + 8]
mov eax, dword [eax + ecx*4]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [esp + 0x7c]
mulsd xmm0, qword [eax + ecx*8]
inc ecx
addsd xmm2, xmm0
cmp ecx, edi
jl 0x42e230
mov ecx, dword [esp + 0x28]
divsd xmm2, xmm3
mov eax, dword [esp + 0x18]
movsd qword [eax + edx*8], xmm2
inc edx
cmp edx, edi
jl 0x42e180
xor eax, eax
mov dword [esp + 0x7c], eax
nop
mov ecx, dword [esp + 0x44]
xor edx, edx
movaps xmm2, xmm7
mov esi, dword [ecx + eax*4]
cmp edi, 4
jl 0x42e2fc
mov eax, dword [esp + 0x18]
lea ecx, [esi + 0x18]
mov edx, esi
add eax, 8
sub edx, dword [esp + 0x18]
mov dword [esp + 0x50], edx
lea edx, [edi - 4]
shr edx, 2
inc edx
lea edi, [edx*4]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x50]
nop
movsd xmm1, qword [eax - 8]
mulsd xmm1, qword [ecx - 0x18]
movsd xmm0, qword [edi + eax]
mulsd xmm0, qword [eax]
addsd xmm2, xmm1
addsd xmm2, xmm0
movsd xmm0, qword [eax + 8]
mulsd xmm0, qword [ecx - 8]
addsd xmm2, xmm0
movsd xmm0, qword [eax + 0x10]
mulsd xmm0, qword [ecx]
add eax, 0x20
add ecx, 0x20
addsd xmm2, xmm0
sub edx, 1
jne 0x42e2b0
mov edi, dword [ebp + 0xc]
mov edx, dword [esp + 0x48]
cmp edx, edi
jge 0x42e325
mov ecx, dword [esp + 0x18]
sub esi, ecx
lea eax, [ecx + edx*8]
mov ecx, edi
sub ecx, edx
nop dword [eax]
movsd xmm0, qword [esi + eax]
mulsd xmm0, qword [eax]
add eax, 8
addsd xmm2, xmm0
sub ecx, 1
jne 0x42e310
mov eax, dword [esp + 0x7c]
mov ecx, dword [ebp + 8]
movsd qword [ecx + eax*8], xmm2
inc eax
mov dword [esp + 0x7c], eax
cmp eax, edi
jl 0x42e270
push dword [esp + 0x18]
call fcn.0051fadf
add esp, 4
push dword [esp + 0x64]
call fcn.0051fadf
add esp, 4
mov ecx, edi
push dword [esp + 0x44]
call fcn.0042c380
add esp, 4
mov ecx, edi
push dword [esp + 8]
call fcn.0042c380
add esp, 4
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret