Function at 0x17003d9c0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x358
movapd xmmword [rsp + 0x340], xmm15
movapd xmmword [rsp + 0x330], xmm14
movapd xmmword [rsp + 0x320], xmm13
movapd xmmword [rsp + 0x310], xmm12
movapd xmmword [rsp + 0x300], xmm11
movapd xmmword [rsp + 0x2f0], xmm10
movapd xmmword [rsp + 0x2e0], xmm9
movapd xmmword [rsp + 0x2d0], xmm8
movapd xmmword [rsp + 0x2c0], xmm7
movapd xmmword [rsp + 0x2b0], xmm6
movq rsi, xmm0
mov rax, rsi
shr rax, 0x20
mov r15d, eax
and r15d, 0x7fffffff
cmp r15d, 0x400f6a7a
ja 0x17003daad
and eax, 0xfffff
cmp eax, 0x921fb
je 0x17003db7f
cmp r15d, 0x4002d97c
ja 0x17003db36
test rsi, rsi
js 0x17003df42
addsd xmm0, qword [0x170074330]
movsd xmm1, qword [0x170074338]
movapd xmm2, xmm0
addsd xmm2, xmm1
movsd qword [rdx], xmm2
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rdx + 8], xmm0
mov eax, 1
jmp 0x17003dd54
cmp r15d, 0x401c463b
ja 0x17003db0c
cmp r15d, 0x4015fdbc
ja 0x17003db72
cmp r15d, 0x4012d97c
je 0x17003db7f
test rsi, rsi
js 0x17003e030
addsd xmm0, qword [0x1700742f0]
movsd xmm1, qword [0x1700742f8]
movapd xmm2, xmm0
addsd xmm2, xmm1
movsd qword [rdx], xmm2
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rdx + 8], xmm0
mov eax, 3
jmp 0x17003dd54
cmp r15d, 0x413921fa
jbe 0x17003db7f
cmp r15d, 0x7ff00000
jb 0x17003ddc0
subsd xmm0, xmm0
movsd qword [rdx + 8], xmm0
movsd qword [rdx], xmm0
xor eax, eax
jmp 0x17003dd54
test rsi, rsi
js 0x17003df75
addsd xmm0, qword [0x170074310]
movsd xmm1, qword [0x170074318]
movapd xmm2, xmm0
addsd xmm2, xmm1
movsd qword [rdx], xmm2
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rdx + 8], xmm0
mov eax, 2
jmp 0x17003dd54
cmp r15d, 0x401921fb
jne 0x17003de44
movsd xmm1, qword [0x170074340]
mulsd xmm1, xmm0
movq rax, xmm1
movabs rbx, 0x7ff0000000000000
and rbx, rax
movabs rbp, 0x4320000000000000
cmp rbx, rbp
ja 0x17003dc14
test rax, rax
js 0x17003dbd5
addsd xmm1, qword [0x170074350]
movsd qword [rsp + 0xd0], xmm1
movsd xmm1, qword [rsp + 0xd0]
addsd xmm1, qword [0x170074348]
jmp 0x17003dbf7
addsd xmm1, qword [0x170074348]
movsd qword [rsp + 0xd0], xmm1
movsd xmm1, qword [rsp + 0xd0]
addsd xmm1, qword [0x170074350]
xorpd xmm2, xmm2
ucomisd xmm1, xmm2
jne 0x17003dc14
jp 0x17003dc14
test rax, rax
jns 0x17003dc10
movsd xmm2, qword [0x170074280]
movapd xmm1, xmm2
cvttsd2si eax, xmm1
movsd xmm2, qword [0x170074330]
mulsd xmm2, xmm1
addsd xmm2, xmm0
movsd xmm3, qword [0x170074328]
mulsd xmm3, xmm1
movapd xmm4, xmm2
subsd xmm4, xmm3
movsd xmm5, qword [0x170074358]
ucomisd xmm5, xmm4
jbe 0x17003dc57
add eax, 0xffffffff
addsd xmm1, qword [0x170074368]
jmp 0x17003dc6c
ucomisd xmm4, qword [0x170074360]
jbe 0x17003dc8c
add eax, 1
addsd xmm1, qword [0x170074240]
movsd xmm2, qword [0x170074330]
mulsd xmm2, xmm1
addsd xmm0, xmm2
movsd xmm3, qword [0x170074328]
mulsd xmm3, xmm1
movapd xmm2, xmm0
movapd xmm0, xmm2
subsd xmm0, xmm3
movsd qword [rdx], xmm0
movq rbx, xmm0
shr rbx, 0x34
and ebx, 0x7ff
shr r15d, 0x14
mov ebp, r15d
sub ebp, ebx
cmp ebp, 0x11
jl 0x17003dd47
movsd xmm0, qword [0x170074370]
mulsd xmm0, xmm1
movapd xmm4, xmm2
subsd xmm4, xmm0
movsd xmm3, qword [0x170074378]
mulsd xmm3, xmm1
subsd xmm2, xmm4
subsd xmm2, xmm0
subsd xmm3, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm3
movsd qword [rdx], xmm0
movq rbp, xmm0
shr rbp, 0x34
and ebp, 0x7ff
sub r15d, ebp
cmp r15d, 0x32
jl 0x17003dd43
movsd xmm0, qword [0x170074380]
mulsd xmm0, xmm1
movapd xmm2, xmm4
subsd xmm2, xmm0
mulsd xmm1, qword [0x170074388]
subsd xmm4, xmm2
subsd xmm4, xmm0
subsd xmm1, xmm4
movapd xmm0, xmm2
subsd xmm0, xmm1
movsd qword [rdx], xmm0
movapd xmm3, xmm1
jmp 0x17003dd47
movapd xmm2, xmm4
subsd xmm2, xmm0
subsd xmm2, xmm3
movsd qword [rdx + 8], xmm2
movaps xmm6, xmmword [rsp + 0x2b0]
movaps xmm7, xmmword [rsp + 0x2c0]
movaps xmm8, xmmword [rsp + 0x2d0]
movaps xmm9, xmmword [rsp + 0x2e0]
movaps xmm10, xmmword [rsp + 0x2f0]
movaps xmm11, xmmword [rsp + 0x300]
movaps xmm12, xmmword [rsp + 0x310]
movaps xmm13, xmmword [rsp + 0x320]
movaps xmm14, xmmword [rsp + 0x330]
movaps xmm15, xmmword [rsp + 0x340]
add rsp, 0x358
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs rax, 0xfffffffffffff
and rax, rsi
movabs rbp, 0x4160000000000000
or rbp, rax
movq xmm2, rbp
cvttpd2dq xmm0, xmm2
cvtdq2pd xmm0, xmm0
subsd xmm2, xmm0
movsd xmm6, qword [0x170074230]
mulsd xmm2, xmm6
cvttpd2dq xmm1, xmm2
cvtdq2pd xmm1, xmm1
movapd xmm3, xmm0
unpcklpd xmm3, xmm1
movapd xmmword [rsp + 0x30], xmm3
subsd xmm2, xmm1
mulsd xmm2, xmm6
movsd qword [rsp + 0x40], xmm2
xorpd xmm1, xmm1
mov ecx, 2
nop word cs:[rax + rax]
nop
ucomisd xmm2, xmm1
jne 0x17003de80
jp 0x17003de80
movsd xmm2, qword [rsp + rcx*8 + 0x28]
add rcx, 0xffffffffffffffff
jmp 0x17003de30
test rsi, rsi
js 0x17003e063
addsd xmm0, qword [0x1700742d0]
movsd xmm1, qword [0x1700742d8]
movapd xmm2, xmm0
addsd xmm2, xmm1
movsd qword [rdx], xmm2
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rdx + 8], xmm0
mov eax, 4
jmp 0x17003dd54
shr r15d, 0x14
imul eax, r15d, 0x2aab
add eax, 0xff51294d
mov ebp, eax
shr ebp, 0x1f
sar eax, 0x12
add eax, ebp
movsx r9d, ax
lea eax, [r9*8]
lea r11d, [rax + rax*2]
mov eax, r15d
sub eax, r11d
lea ebp, [rcx + 1]
xorpd xmm1, xmm1
movapd xmmword [rsp + 0x200], xmm1
movapd xmmword [rsp + 0x1f0], xmm1
movapd xmmword [rsp + 0x1e0], xmm1
movapd xmmword [rsp + 0x1d0], xmm1
movapd xmmword [rsp + 0x1c0], xmm1
movapd xmmword [rsp + 0x1b0], xmm1
movapd xmmword [rsp + 0x1a0], xmm1
movapd xmmword [rsp + 0x190], xmm1
movapd xmmword [rsp + 0x180], xmm1
movapd xmmword [rsp + 0x170], xmm1
add eax, 0xfffffbea
mov qword [rsp + 0x68], rax
neg r11d
cmp ecx, 0xfffffffb
mov dword [rsp + 0x20], ebp
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], rsi
jg 0x17003dfa8
mov qword [rsp + 0x210], 0
jmp 0x17003e120
addsd xmm0, qword [0x170074320]
movsd xmm1, qword [0x170074328]
movapd xmm2, xmm0
addsd xmm2, xmm1
movsd qword [rdx], xmm2
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rdx + 8], xmm0
mov eax, 0xffffffff
jmp 0x17003dd54
addsd xmm0, qword [0x170074300]
movsd xmm1, qword [0x170074308]
movapd xmm2, xmm0
addsd xmm2, xmm1
movsd qword [rdx], xmm2
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rdx + 8], xmm0
mov eax, 0xfffffffe
jmp 0x17003dd54
lea r8d, [rcx + 4]
xor ebx, ebx
test r8d, r8d
mov r10d, 0
cmovg r10d, r8d
add r10d, 1
test r8d, r8d
jle 0x17003e09a
mov edi, r10d
and edi, 0xfffffffe
mov eax, r9d
sub eax, ecx
xor ebx, ebx
lea r14, [0x170075750]
jmp 0x17003dff6
movsd qword [rsp + rbx*8 + 0xd8], xmm1
add rbx, 2
cmp rdi, rbx
je 0x17003e096
lea rsi, [rax + rbx]
xorpd xmm1, xmm1
xorpd xmm2, xmm2
test esi, esi
js 0x17003e011
mov ebp, esi
xorps xmm2, xmm2
cvtsi2sd xmm2, dword [r14 + rbp*4]
movsd qword [rsp + rbx*8 + 0xd0], xmm2
cmp esi, 0xffffffff
jl 0x17003dfe0
lea esi, [rax + rbx]
add esi, 1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [r14 + rsi*4]
jmp 0x17003dfe0
addsd xmm0, qword [0x1700742e0]
movsd xmm1, qword [0x1700742e8]
movapd xmm2, xmm0
addsd xmm2, xmm1
movsd qword [rdx], xmm2
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rdx + 8], xmm0
mov eax, 0xfffffffd
jmp 0x17003dd54
addsd xmm0, qword [0x1700742c0]
movsd xmm1, qword [0x1700742c8]
movapd xmm2, xmm0
addsd xmm2, xmm1
movsd qword [rdx], xmm2
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rdx + 8], xmm0
mov eax, 0xfffffffc
jmp 0x17003dd54
add eax, ebx
jmp 0x17003e09f
mov eax, r9d
sub eax, ecx
test r10b, 1
je 0x17003e0ca
test eax, eax
js 0x17003e0bd
mov eax, eax
lea rbp, [0x170075750]
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [rbp + rax*4]
jmp 0x17003e0c1
xorpd xmm1, xmm1
movsd qword [rsp + rbx*8 + 0xd0], xmm1
test ecx, ecx
js 0x17003e110
mov esi, dword [rsp + 0x20]
mov ebp, esi
movsxd rax, ecx
movsd xmm2, qword [rsp + rax*8 + 0xd0]
mulsd xmm2, xmm0
xorpd xmm1, xmm1
addsd xmm2, xmm1
test ecx, ecx
mov qword [rsp + 0x28], rbp
je 0x17003ecfc
lea r10, [rbp - 1]
cmp esi, 2
jne 0x17003ec58
mov ebx, 1
jmp 0x17003ecdd
mov qword [rsp + 0x210], 0
mov ebp, dword [rsp + 0x20]
mov eax, ebp
mov qword [rsp + 0x28], rax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x218], xmm0
mov qword [rsp + 0x228], 0
xorpd xmm1, xmm1
xor r14d, r14d
lea edx, [r15 + r11]
add edx, 0xfffffbd2
movsd qword [rsp + 0x230], xmm1
mov r11, qword [rsp + 0x68]
lea eax, [r11 + 0x3b1]
lea ebp, [r11 + 0x77a]
xorpd xmm0, xmm0
cmp r11d, 0xfffff851
cmovge ebp, eax
jl 0x17003e185
movsd xmm0, qword [0x170074238]
lea ebx, [r11 - 0x417]
mov eax, edx
cmp r11d, 0xfffffc1a
cmovl eax, ebp
jl 0x17003e1a2
movsd xmm0, qword [0x170074240]
mov dword [rsp + 0x58], ebp
mov dword [rsp + 0x24], edx
mov qword [rsp + 0xc8], rcx
mov ecx, 0x30
mov edx, 0x2f
movsd xmm10, qword [0x170074248]
movapd xmm2, xmm10
cmp r11d, 0x418
mov dword [rsp + 0x64], ebx
cmovge eax, ebx
jge 0x17003e1de
movapd xmm2, xmm0
sub ecx, r11d
mov dword [rsp + 0x60], ecx
sub edx, r11d
mov dword [rsp + 0x5c], edx
movsxd r15, r9d
add eax, 0x3ff
shl rax, 0x34
movq xmm11, rax
mulsd xmm11, xmm2
mov rdi, qword [rsp + 0x28]
and edi, 0xfffffffe
mov r12d, 4
movsd xmm12, qword [0x170074260]
movsd xmm13, qword [0x170074268]
xorpd xmm14, xmm14
movsd xmm8, qword [0x170074238]
movsd xmm7, qword [0x170074250]
movsd xmm9, qword [0x170074258]
jmp 0x17003e25d
movsd xmm1, qword [rsp + r8*8 + 0x210]
mov r12d, eax
mov r13d, r12d
mov rsi, r13
add rsi, 0xffffffffffffffff
je 0x17003e370
mov ecx, r13d
and ecx, 0xfffffffe
lea rax, [rsp + 0x208]
lea rdx, [rax + r13*8]
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax + rax]
movapd xmm0, xmm1
mulsd xmm0, xmm7
cvttpd2dq xmm0, xmm0
cvtdq2pd xmm0, xmm0
movsd xmm2, qword [rdx]
addsd xmm2, xmm0
mulsd xmm0, xmm6
subsd xmm1, xmm0
cvttsd2si ebp, xmm1
mov dword [rsp + rax*4 + 0x70], ebp
movapd xmm0, xmm2
mulsd xmm0, xmm7
cvttpd2dq xmm0, xmm0
cvtdq2pd xmm0, xmm0
movsd xmm1, qword [rdx - 8]
addsd xmm1, xmm0
mulsd xmm0, xmm6
subsd xmm2, xmm0
cvttsd2si ebp, xmm2
mov dword [rsp + rax*4 + 0x74], ebp
add rax, 2
add rdx, 0xfffffffffffffff0
cmp rcx, rax
jne 0x17003e290
mov rcx, r13
sub rcx, rax
test r13b, 1
je 0x17003e32c
movapd xmm0, xmm1
mulsd xmm0, xmm7
cvttpd2dq xmm0, xmm0
cvtdq2pd xmm0, xmm0
movapd xmm2, xmm0
mulsd xmm2, xmm9
addsd xmm2, xmm1
cvttsd2si edx, xmm2
mov dword [rsp + rax*4 + 0x70], edx
addsd xmm0, qword [rsp + rcx*8 + 0x208]
movapd xmm1, xmm0
cmp r11d, 0x418
jl 0x17003e340
mulsd xmm1, xmm10
mov eax, dword [rsp + 0x64]
jmp 0x17003e394
cmp r11d, 0xfffffc19
jg 0x17003e390
cmp r11d, 0xfffff851
jge 0x17003e357
mulsd xmm1, xmm8
mulsd xmm1, xmm8
mov eax, dword [rsp + 0x58]
jmp 0x17003e394
xor eax, eax
mov rcx, r13
test r13b, 1
jne 0x17003e2fa
jmp 0x17003e32c
mov eax, dword [rsp + 0x24]
add eax, 0x3ff
shl rax, 0x34
movq xmm15, rax
mulsd xmm15, xmm1
movapd xmm0, xmm15
mulsd xmm0, xmm12
call sym.ntdll.dll_floor
mulsd xmm0, xmm13
addsd xmm0, xmm15
cvttsd2si eax, xmm0
cvttpd2dq xmm1, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
mov r11, qword [rsp + 0x68]
cmp r11d, 0x19
jl 0x17003e410
movsxd rdx, r12d
mov r8d, dword [rsp + rdx*4 + 0x6c]
mov ebp, r8d
mov ecx, dword [rsp + 0x60]
sar ebp, cl
add eax, ebp
shl ebp, cl
sub r8d, ebp
mov dword [rsp + rdx*4 + 0x6c], r8d
mov ecx, dword [rsp + 0x5c]
sar r8d, cl
jmp 0x17003e447
cmp dword [rsp + 0x24], 0
je 0x17003e43b
mov r8d, 2
ucomisd xmm0, qword [0x170074270]
mov r9, qword [rsp + 0x28]
lea r10, [0x170075750]
jae 0x17003e45c
xor r8d, r8d
jmp 0x17003e546
movsxd rcx, r12d
mov r8d, dword [rsp + rcx*4 + 0x6c]
sar r8d, 0x17
mov r9, qword [rsp + 0x28]
lea r10, [0x170075750]
test r8d, r8d
jle 0x17003e546
test rsi, rsi
je 0x17003e4d0
mov edx, r13d
and edx, 0xfffffffe
xor ecx, ecx
xor esi, esi
jmp 0x17003e486
sub ebp, ebx
mov dword [rsp + rcx*4 + 0x74], ebp
mov esi, 1
xor ebx, ebx
add rcx, 2
cmp rdx, rcx
je 0x17003e4d4
mov ebx, dword [rsp + rcx*4 + 0x70]
mov ebp, 0xffffff
test esi, esi
jne 0x17003e49c
mov ebp, 0x1000000
test ebx, ebx
je 0x17003e4c1
sub ebp, ebx
mov dword [rsp + rcx*4 + 0x70], ebp
xor esi, esi
mov ebx, dword [rsp + rcx*4 + 0x74]
mov ebp, 0xffffff
test sil, sil
je 0x17003e470
mov ebp, 0x1000000
test ebx, ebx
jne 0x17003e470
xor esi, esi
mov bl, 1
jmp 0x17003e47d
mov sil, 1
jmp 0x17003e4a4
xor ecx, ecx
xor esi, esi
test r13b, 1
je 0x17003e4fc
mov edx, dword [rsp + rcx*4 + 0x70]
mov ebp, 0xffffff
test esi, esi
jne 0x17003e4f4
mov ebp, 0x1000000
test edx, edx
je 0x17003e79e
sub ebp, edx
mov dword [rsp + rcx*4 + 0x70], ebp
xor ebx, ebx
cmp r11d, 0x19
jl 0x17003e51d
je 0x17003e511
cmp r11d, 0x1a
jne 0x17003e51d
mov ecx, 0x3fffff
jmp 0x17003e516
mov ecx, 0x7fffff
movsxd rdx, r12d
and dword [rsp + rdx*4 + 0x6c], ecx
add eax, 1
cmp r8d, 2
jne 0x17003e546
movsd xmm1, qword [0x170074240]
subsd xmm1, xmm0
test bl, 1
jne 0x17003e53c
subsd xmm1, xmm11
mov r8d, 2
movapd xmm0, xmm1
ucomisd xmm0, xmm14
jne 0x17003e7af
jp 0x17003e7af
cmp r12d, 4
jbe 0x17003e67d
lea r10, [r13 - 4]
xor ecx, ecx
mov rdx, r13
cmp r10, 8
jb 0x17003e652
mov r9, r10
and r9, 0xfffffffffffffff8
lea rdx, [r9 - 8]
mov rcx, rdx
shr rcx, 3
add rcx, 1
test rdx, rdx
je 0x17003e786
lea rdx, [rsp + 0x60]
lea rsi, [rdx + r13*4]
mov rdx, rcx
and rdx, 0xfffffffffffffffe
neg rdx
xorpd xmm0, xmm0
xor ebx, ebx
xorpd xmm1, xmm1
movdqu xmm2, xmmword [rsi + rbx*4 - 0x30]
movdqu xmm3, xmmword [rsi + rbx*4 - 0x20]
movdqu xmm4, xmmword [rsi + rbx*4 - 0x10]
movdqu xmm5, xmmword [rsi + rbx*4]
pshufd xmm5, xmm5, 0x1b
por xmm5, xmm0
pshufd xmm4, xmm4, 0x1b
por xmm4, xmm1
pshufd xmm0, xmm3, 0x1b
por xmm0, xmm5
pshufd xmm1, xmm2, 0x1b
por xmm1, xmm4
add rbx, 0xfffffffffffffff0
add rdx, 2
jne 0x17003e5b0
neg rbx
test cl, 1
je 0x17003e621
not rbx
add rbx, r13
movdqu xmm2, xmmword [rsp + rbx*4 + 0x54]
movdqu xmm3, xmmword [rsp + rbx*4 + 0x64]
pshufd xmm2, xmm2, 0x1b
orpd xmm1, xmm2
pshufd xmm2, xmm3, 0x1b
orpd xmm0, xmm2
orpd xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
cmp r10, r9
jne 0x17003e647
mov r9, qword [rsp + 0x28]
jmp 0x17003e66e
mov rdx, r13
sub rdx, r9
mov r9, qword [rsp + 0x28]
add rdx, 1
nop word cs:[rax + rax]
or ecx, dword [rsp + rdx*4 + 0x68]
add rdx, 0xffffffffffffffff
cmp rdx, 5
jg 0x17003e660
test ecx, ecx
lea r10, [0x170075750]
jne 0x17003e892
lea rcx, [rsp + 0x7c]
mov eax, r12d
nop word cs:[rax + rax]
nop
add eax, 1
cmp dword [rcx], 0
lea rcx, [rcx - 4]
je 0x17003e690
mov r8d, eax
add r12d, dword [rsp + 0xc8]
mov ecx, dword [rsp + 0x20]
jmp 0x17003e6c9
mov edx, r13d
movsd qword [rsp + rdx*8 + 0x210], xmm0
add r12d, 1
cmp r13, r8
jae 0x17003e250
mov rdx, r13
add r13, 1
lea rbp, [rdx + r15]
add rbp, 1
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [r10 + rbp*4]
add edx, ecx
movsxd rbp, edx
movsd qword [rsp + rbp*8 + 0xd0], xmm0
xorpd xmm0, xmm0
test r14b, r14b
je 0x17003e6b0
cmp r9d, 1
jne 0x17003e710
xorpd xmm0, xmm0
xor ebx, ebx
jmp 0x17003e75f
xorpd xmm1, xmm1
mov esi, r12d
xor ebx, ebx
nop dword [rax]
lea ebp, [rsi + 1]
movsxd rbp, ebp
movsd xmm2, qword [rsp + rbx*8 + 0x30]
movsd xmm0, qword [rsp + rbx*8 + 0x38]
mulsd xmm2, qword [rsp + rbp*8 + 0xd0]
addsd xmm2, xmm1
movsxd rsi, esi
mulsd xmm0, qword [rsp + rsi*8 + 0xd0]
addsd xmm0, xmm2
add rbx, 2
add esi, 0xfffffffe
movapd xmm1, xmm0
cmp rdi, rbx
jne 0x17003e720
test r9b, 1
je 0x17003e6b0
movsd xmm1, qword [rsp + rbx*8 + 0x30]
sub edx, ebx
movsxd rdx, edx
mulsd xmm1, qword [rsp + rdx*8 + 0xd0]
addsd xmm0, xmm1
jmp 0x17003e6b0
xorpd xmm0, xmm0
xor ebx, ebx
xorpd xmm1, xmm1
test cl, 1
jne 0x17003e5fd
jmp 0x17003e621
mov bl, 1
cmp r11d, 0x19
jge 0x17003e502
jmp 0x17003e51d
cmp r11d, 0xfffffc18
jg 0x17003e7e0
movsd xmm1, qword [0x170074248]
mulsd xmm0, xmm1
mov edx, 0xfffff81a
mov ecx, 0xfffffc19
cmp r11d, 0xfffff81a
cmovl ecx, edx
jge 0x17003e81e
mulsd xmm0, xmm1
jmp 0x17003e81e
mov ecx, 0x18
cmp r11d, 0x417
jl 0x17003e81e
mulsd xmm0, xmm8
mov edx, 0x7aa
mov ecx, 0x3e1
cmp r11d, 0x7e0
cmovge ecx, edx
mov rsi, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
mov edx, dword [rsp + 0x24]
jl 0x17003e82c
mulsd xmm0, xmm8
jmp 0x17003e82c
mov rsi, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
mov edx, dword [rsp + 0x24]
sub ecx, r11d
add ecx, 0x3ff
shl rcx, 0x34
movq xmm1, rcx
mulsd xmm1, xmm0
ucomisd xmm1, qword [0x170074230]
jae 0x17003e85a
cvttsd2si ecx, xmm1
mov dword [rsp + r13*4 + 0x70], ecx
mov r11d, edx
jmp 0x17003e8bf
movsd xmm0, qword [0x170074250]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
cvttpd2dq xmm0, xmm0
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x170074258]
addsd xmm0, xmm1
cvttsd2si edx, xmm0
mov dword [rsp + r13*4 + 0x70], edx
add r12d, 1
mov dword [rsp + r13*4 + 0x74], ecx
jmp 0x17003e8bf
mov ecx, dword [rsp + 0x24]
nop word cs:[rax + rax]
add ecx, 0xffffffe8
cmp dword [rsp + r13*4 + 0x6c], 0
lea r13, [r13 - 1]
je 0x17003e8a0
mov r12d, r13d
mov r11d, ecx
mov rsi, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
mov edi, r12d
cmp r11d, 0x400
jl 0x17003e8f5
cmp r11d, 0x7ff
jl 0x17003e927
cmp r11d, 0xbfd
mov ecx, 0xbfd
cmovl ecx, r11d
add ecx, 0xfffff802
movsd xmm8, qword [0x170074278]
jmp 0x17003e922
cmp r11d, 0xfffffc01
jg 0x17003e939
cmp r11d, 0xfffff838
jg 0x17003e944
cmp r11d, 0xfffff471
mov ecx, 0xfffff470
cmovge ecx, r11d
add ecx, 0x792
xorpd xmm8, xmm8
mov r11d, ecx
jmp 0x17003e94b
add r11d, 0xfffffc01
movsd xmm8, qword [0x170074248]
jmp 0x17003e94b
movsd xmm8, qword [0x170074240]
jmp 0x17003e94b
add r11d, 0x3c9
test edi, edi
js 0x17003e973
add r11d, 0x3ff
shl r11, 0x34
movq xmm0, r11
mulsd xmm8, xmm0
lea rbp, [rdi + 1]
test bpl, 1
jne 0x17003e994
mov rcx, rdi
jmp 0x17003e9b8
xorpd xmm0, xmm0
xorpd xmm1, xmm1
test r8d, r8d
sete dl
je 0x17003ec1f
movsd xmm1, qword [0x170074280]
jmp 0x17003ec1f
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rsp + rdi*4 + 0x70]
mulsd xmm0, xmm8
movsd qword [rsp + rdi*8 + 0x210], xmm0
mulsd xmm8, qword [0x170074250]
lea rcx, [rdi - 1]
test rdi, rdi
je 0x17003ea12
add rcx, 2
nop word cs:[rax + rax]
nop dword [rax + rax]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rsp + rcx*4 + 0x68]
mulsd xmm0, xmm8
movsd qword [rsp + rcx*8 + 0x200], xmm0
mulsd xmm8, xmm7
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rsp + rcx*4 + 0x64]
mulsd xmm0, xmm8
movsd qword [rsp + rcx*8 + 0x1f8], xmm0
mulsd xmm8, xmm7
add rcx, 0xfffffffffffffffe
cmp rcx, 1
jg 0x17003e9d0
lea rdx, [rsp + rdi*8]
add rdx, 0x230
xor ebx, ebx
movsd xmm0, qword [0x170074288]
xorpd xmm1, xmm1
movsd xmm2, qword [0x170074290]
movsd xmm3, qword [0x170074298]
movsd xmm4, qword [0x1700742a0]
movsd xmm5, qword [0x1700742a8]
jmp 0x17003ea65
movsd qword [rsp + rbx*8 + 0x170], xmm6
add rdx, 0xfffffffffffffff8
add rbx, 1
cmp ebp, ebx
je 0x17003eac8
cmp ebx, 4
mov ecx, 4
cmovb ecx, ebx
movsd xmm6, qword [rdx - 0x20]
mulsd xmm6, xmm0
addsd xmm6, xmm1
test ecx, ecx
je 0x17003ea50
add ecx, 1
movsd xmm7, qword [rdx - 0x18]
mulsd xmm7, xmm2
addsd xmm6, xmm7
cmp ecx, 2
je 0x17003ea50
movsd xmm7, qword [rdx - 0x10]
mulsd xmm7, xmm3
addsd xmm6, xmm7
cmp ecx, 3
je 0x17003ea50
movsd xmm7, qword [rdx - 8]
mulsd xmm7, xmm4
addsd xmm6, xmm7
cmp ecx, 4
je 0x17003ea50
movsd xmm7, qword [rdx]
mulsd xmm7, xmm5
addsd xmm6, xmm7
jmp 0x17003ea50
xorpd xmm2, xmm2
mov rcx, rdi
and rbp, 7
je 0x17003eaf3
nop word cs:[rax + rax]
nop
addsd xmm2, qword [rsp + rcx*8 + 0x170]
add rcx, 0xffffffffffffffff
add rbp, 0xffffffffffffffff
jne 0x17003eae0
cmp edi, 7
jb 0x17003eb52
add rcx, 8
nop dword [rax]
addsd xmm2, qword [rsp + rcx*8 + 0x130]
addsd xmm2, qword [rsp + rcx*8 + 0x128]
addsd xmm2, qword [rsp + rcx*8 + 0x120]
addsd xmm2, qword [rsp + rcx*8 + 0x118]
addsd xmm2, qword [rsp + rcx*8 + 0x110]
addsd xmm2, qword [rsp + rcx*8 + 0x108]
addsd xmm2, qword [rsp + rcx*8 + 0x100]
addsd xmm2, qword [rsp + rcx*8 + 0xf8]
add rcx, 0xfffffffffffffff8
cmp rcx, 7
jg 0x17003eb00
movsd xmm0, qword [rsp + 0x170]
movapd xmm1, xmm2
test r8d, r8d
sete dl
je 0x17003eb73
movapd xmm1, xmmword [0x1700742b0]
xorpd xmm1, xmm2
subsd xmm0, xmm2
test edi, edi
jle 0x17003ec1f
lea rbp, [rdi - 1]
mov ecx, edi
and ecx, 7
cmp rbp, 7
jae 0x17003eb95
mov ebp, 1
jmp 0x17003ebf5
and edi, 0xfffffff8
xor ebp, ebp
nop word [rax + rax]
addsd xmm0, qword [rsp + rbp*8 + 0x178]
addsd xmm0, qword [rsp + rbp*8 + 0x180]
addsd xmm0, qword [rsp + rbp*8 + 0x188]
addsd xmm0, qword [rsp + rbp*8 + 0x190]
addsd xmm0, qword [rsp + rbp*8 + 0x198]
addsd xmm0, qword [rsp + rbp*8 + 0x1a0]
addsd xmm0, qword [rsp + rbp*8 + 0x1a8]
addsd xmm0, qword [rsp + rbp*8 + 0x1b0]
add rbp, 8
cmp rdi, rbp
jne 0x17003eba0
add rbp, 1
test rcx, rcx
je 0x17003ec1f
lea rbp, [rsp + rbp*8]
add rbp, 0x170
xor ebx, ebx
nop word [rax + rax]
addsd xmm0, qword [rbp + rbx*8]
add rbx, 1
cmp rcx, rbx
jne 0x17003ec10
test dl, dl
jne 0x17003ec2b
xorpd xmm0, xmmword [0x1700742b0]
and eax, 7
test r9, r9
js 0x17003ec41
movsd qword [rsi], xmm1
movsd qword [rsi + 8], xmm0
jmp 0x17003dd54
unpcklpd xmm1, xmm0
xorpd xmm1, xmmword [0x1700742b0]
movupd xmmword [rsi], xmm1
neg eax
jmp 0x17003dd54
movabs r14, 0xfffffffe00000000
mov rsi, rcx
shl rsi, 0x20
lea rdi, [rsi + r14]
movabs rax, 0xffffffff00000000
add rax, rsi
mov rbp, r10
and rbp, 0xfffffffffffffffe
neg rbp
mov ebx, 1
movapd xmm3, xmm2
mov rsi, rax
sar rsi, 0x1d
movsd xmm4, qword [rsp + rbx*8 + 0x30]
movsd xmm2, qword [rsp + rbx*8 + 0x38]
mulsd xmm4, qword [rsp + rsi + 0xd0]
addsd xmm4, xmm3
mov rsi, rdi
sar rsi, 0x1d
mulsd xmm2, qword [rsp + rsi + 0xd0]
addsd xmm2, xmm4
add rdi, r14
add rax, r14
lea rsi, [rbx + rbp]
add rsi, 2
add rbx, 2
movapd xmm3, xmm2
cmp rsi, 1
jne 0x17003ec8d
test r10b, 1
je 0x17003ecfc
movsd xmm3, qword [rsp + rbx*8 + 0x30]
mov eax, ecx
sub eax, ebx
cdqe
mulsd xmm3, qword [rsp + rax*8 + 0xd0]
addsd xmm2, xmm3
movsd qword [rsp + 0x210], xmm2
mov ebp, dword [rsp + 0x20]
movsxd rax, ebp
movsd xmm2, qword [rsp + rax*8 + 0xd0]
mulsd xmm2, xmm0
addsd xmm2, xmm1
test ecx, ecx
je 0x17003edb6
mov rax, qword [rsp + 0x28]
add rax, 0xffffffffffffffff
cmp ebp, 2
jne 0x17003ed3a
mov ebx, 1
jmp 0x17003ed97
mov rdx, rax
and rdx, 0xfffffffffffffffe
neg rdx
mov ebx, 1
mov ebp, ecx
movapd xmm1, xmm2
movsxd rbp, ebp
movsd xmm3, qword [rsp + rbx*8 + 0x30]
movsd xmm2, qword [rsp + rbx*8 + 0x38]
mulsd xmm3, qword [rsp + rbp*8 + 0xd0]
addsd xmm3, xmm1
lea edi, [rbp - 1]
movsxd rdi, edi
mulsd xmm2, qword [rsp + rdi*8 + 0xd0]
addsd xmm2, xmm3
add ebp, 0xfffffffe
lea rdi, [rdx + rbx]
add rdi, 2
add rbx, 2
movapd xmm1, xmm2
cmp rdi, 1
jne 0x17003ed4f
test al, 1
je 0x17003edb6
movsd xmm1, qword [rsp + rbx*8 + 0x30]
mov eax, dword [rsp + 0x20]
sub eax, ebx
cdqe
mulsd xmm1, qword [rsp + rax*8 + 0xd0]
addsd xmm2, xmm1
movsd qword [rsp + 0x218], xmm2
lea r14, [rcx + 2]
movsxd rax, r14d
movsd xmm2, qword [rsp + rax*8 + 0xd0]
mulsd xmm2, xmm0
xorpd xmm1, xmm1
addsd xmm2, xmm1
test ecx, ecx
je 0x17003ee95
mov rax, qword [rsp + 0x28]
lea r10, [rax - 1]
cmp dword [rsp + 0x20], 2
jne 0x17003edfa
mov edi, 1
jmp 0x17003ee76
movabs rdx, 0xfffffffe00000000
movabs rbp, 0x100000000
mov rax, rcx
shl rax, 0x20
mov rsi, r10
and rsi, 0xfffffffffffffffe
neg rsi
mov edi, 1
movapd xmm3, xmm2
lea rbx, [rax + rbp]
sar rbx, 0x1d
movsd xmm4, qword [rsp + rdi*8 + 0x30]
movsd xmm2, qword [rsp + rdi*8 + 0x38]
mulsd xmm4, qword [rsp + rbx + 0xd0]
addsd xmm4, xmm3
mov rbx, rax
sar rbx, 0x1d
mulsd xmm2, qword [rsp + rbx + 0xd0]
addsd xmm2, xmm4
add rax, rdx
lea rbx, [rsi + rdi]
add rbx, 2
add rdi, 2
movapd xmm3, xmm2
cmp rbx, 1
jne 0x17003ee28
test r10b, 1
je 0x17003ee95
movsd xmm3, qword [rsp + rdi*8 + 0x30]
sub r14d, edi
movsxd rax, r14d
mulsd xmm3, qword [rsp + rax*8 + 0xd0]
addsd xmm2, xmm3
movsd qword [rsp + 0x220], xmm2
lea r14, [rcx + 3]
movsxd rax, r14d
movsd xmm2, qword [rsp + rax*8 + 0xd0]
mulsd xmm2, xmm0
addsd xmm2, xmm1
test ecx, ecx
je 0x17003ef85
mov rax, qword [rsp + 0x28]
lea r10, [rax - 1]
cmp dword [rsp + 0x20], 2
jne 0x17003eed8
mov edi, 1
jmp 0x17003ef66
movabs rbp, 0xfffffffe00000000
mov rsi, rcx
shl rsi, 0x20
movabs rax, 0x100000000
add rax, rsi
movabs rdx, 0x200000000
add rdx, rsi
mov rbx, r10
and rbx, 0xfffffffffffffffe
neg rbx
mov edi, 1
movapd xmm1, xmm2
mov rsi, rdx
sar rsi, 0x1d
movsd xmm3, qword [rsp + rdi*8 + 0x30]
movsd xmm2, qword [rsp + rdi*8 + 0x38]
mulsd xmm3, qword [rsp + rsi + 0xd0]
addsd xmm3, xmm1
mov rsi, rax
sar rsi, 0x1d
mulsd xmm2, qword [rsp + rsi + 0xd0]
addsd xmm2, xmm3
add rax, rbp
add rdx, rbp
lea rsi, [rbx + rdi]
add rsi, 2
add rdi, 2
movapd xmm1, xmm2
cmp rsi, 1
jne 0x17003ef16
test r10b, 1
je 0x17003ef85
movsd xmm1, qword [rsp + rdi*8 + 0x30]
sub r14d, edi
movsxd rax, r14d
mulsd xmm1, qword [rsp + rax*8 + 0xd0]
addsd xmm2, xmm1
movsd qword [rsp + 0x228], xmm2
movsxd rax, r8d
mulsd xmm0, qword [rsp + rax*8 + 0xd0]
xorpd xmm1, xmm1
addsd xmm1, xmm0
mov r14b, 1
test ecx, ecx
je 0x17003e147
mov rax, qword [rsp + 0x28]
lea rbx, [rax - 1]
cmp dword [rsp + 0x20], 2
jne 0x17003efc4
mov ebp, 1
jmp 0x17003f022
lea edx, [rcx + 3]
mov rax, rbx
and rax, 0xfffffffffffffffe
neg rax
mov ebp, 1
movapd xmm0, xmm1
movsxd rdx, edx
movsd xmm2, qword [rsp + rbp*8 + 0x30]
movsd xmm1, qword [rsp + rbp*8 + 0x38]
mulsd xmm2, qword [rsp + rdx*8 + 0xd0]
addsd xmm2, xmm0
lea edi, [rdx - 1]
movsxd rdi, edi
mulsd xmm1, qword [rsp + rdi*8 + 0xd0]
addsd xmm1, xmm2
add edx, 0xfffffffe
lea rdi, [rax + rbp]
add rdi, 2
add rbp, 2
movapd xmm0, xmm1
cmp rdi, 1
jne 0x17003efda
test bl, 1
je 0x17003e147
movsd xmm0, qword [rsp + rbp*8 + 0x30]
sub r8d, ebp
movsxd rax, r8d
mulsd xmm0, qword [rsp + rax*8 + 0xd0]
addsd xmm1, xmm0
jmp 0x17003e147