Function at 0x180017bb0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x378
movaps xmmword [rsp + 0x360], xmm15
movapd xmmword [rsp + 0x350], xmm14
movaps xmmword [rsp + 0x340], xmm13
movaps xmmword [rsp + 0x330], xmm12
movaps xmmword [rsp + 0x320], xmm11
movaps xmmword [rsp + 0x310], xmm10
movapd xmmword [rsp + 0x300], xmm9
movaps xmmword [rsp + 0x2f0], xmm8
movaps xmmword [rsp + 0x2e0], xmm7
movaps xmmword [rsp + 0x2d0], xmm6
mov qword [rsp + 0x128], rdx
mov rbx, rcx
movsxd rcx, dword [rsp + 0x3e0]
lea rax, [0x18004c860]
mov qword [rsp + 0x180], rcx
mov ecx, dword [rax + rcx*4]
lea r15d, [r9 - 1]
lea eax, [r8 - 3]
cdqe
imul rdx, rax, 0x2aaaaaab
mov rax, rdx
shr rax, 0x3f
sar rdx, 0x22
xor r12d, r12d
add edx, eax
cmovs edx, r12d
mov qword [rsp + 0x68], rdx
lea eax, [rdx*8]
lea eax, [rax + rax*2]
mov dword [rsp + 0x48], eax
mov edi, eax
neg edi
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x40], rcx
mov eax, ecx
add eax, r15d
mov qword [rsp + 0x28], r9
js 0x180017cf3
mov rax, qword [rsp + 0x40]
lea ebp, [rax + r9]
mov r14, qword [rsp + 0x68]
sub r14d, r9d
add r14d, 1
xor r13d, r13d
lea rsi, [0x18004c870]
jmp 0x180017cdd
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rsi + rax*4]
movsd qword [rsp + r13*8 + 0x230], xmm0
add r13, 1
cmp rbp, r13
je 0x180017cf3
lea rax, [r14 + r13]
test eax, eax
jns 0x180017cc0
xor ecx, ecx
call fcn.18001a9e0
mov r9, qword [rsp + 0x28]
jmp 0x180017cca
mov rax, qword [rsp + 0x40]
movsxd rdx, eax
mov rsi, qword [rsp + 0x30]
sub esi, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
add ecx, edi
add ecx, 0xffffffe8
mov qword [rsp + 0x38], rcx
mov rcx, rdx
mov qword [rsp + 0x70], rdx
test edx, edx
mov r13d, 0
cmovns r13d, eax
add r13d, 1
mov ebp, r9d
mov qword [rsp + 0x48], rbp
and ebp, 0xfffffffe
lea edi, [r9 - 2]
jmp 0x180017d5a
movsd qword [rsp + r12*8 + 0x190], xmm0
add r12, 1
add edi, 1
cmp r12, r13
je 0x180017df9
xor ecx, ecx
call fcn.18001a9e0
mov rax, qword [rsp + 0x28]
test eax, eax
jle 0x180017d40
cmp eax, 1
jne 0x180017d80
xor eax, eax
jmp 0x180017dce
mov ecx, edi
xor eax, eax
movapd xmm1, xmm0
nop dword [rax + rax]
lea edx, [rcx + 1]
movsxd rdx, edx
movsd xmm2, qword [rbx + rax*8]
movsd xmm0, qword [rbx + rax*8 + 8]
mulsd xmm2, qword [rsp + rdx*8 + 0x230]
addsd xmm2, xmm1
movsxd rcx, ecx
mulsd xmm0, qword [rsp + rcx*8 + 0x230]
addsd xmm0, xmm2
add rax, 2
add ecx, 0xfffffffe
movapd xmm1, xmm0
cmp rbp, rax
jne 0x180017d90
test byte [rsp + 0x48], 1
je 0x180017d40
lea ecx, [r15 + r12]
movsd xmm1, qword [rbx + rax*8]
sub ecx, eax
movsxd rax, ecx
mulsd xmm1, qword [rsp + rax*8 + 0x230]
addsd xmm0, xmm1
jmp 0x180017d40
lea ecx, [rsi + 0x3e6]
mov r8, qword [rsp + 0x38]
cmp r8d, 0xfffff406
mov edi, 0xfffff406
cmovg edi, r8d
add edi, 0x7fc
lea ebp, [rsi - 0x417]
cmp r8d, 0xbfd
mov edx, 0xbfd
cmovl edx, r8d
add edx, 0xfffff802
xor eax, eax
cmp r8d, 0x7fe
setg r9b
cmovle edx, ebp
mov dword [rsp + 0x5c], edx
xorpd xmm0, xmm0
cmp r8d, 0xfffff804
cmovge edi, ecx
jl 0x180017e62
movsd xmm0, qword [0x18004c7b0]
mov ecx, r8d
cmp r8d, 0xfffffc02
cmovl ecx, edi
jl 0x180017e79
movsd xmm0, qword [0x18004c6f0]
mov dword [rsp + 0x64], 0x30
mov dword [rsp + 0x60], 0x2f
mov edx, dword [rsp + 0x68]
mov qword [rsp + 0x68], rdx
cmp r8d, 0x3ff
cmovg ecx, dword [rsp + 0x5c]
mov dword [rsp + 0x7c], edi
jle 0x180017eb3
mov al, r9b
lea rdx, [0x18004c7d0]
movsd xmm0, qword [rdx + rax*8]
sub dword [rsp + 0x64], esi
mov qword [rsp + 0x30], rsi
sub dword [rsp + 0x60], esi
add ecx, 0x3ff
shl rcx, 0x34
movq xmm10, rcx
mulsd xmm10, xmm0
mov r15, qword [rsp + 0x48]
and r15d, 0xfffffffe
mov rax, qword [rsp + 0x70]
lea rax, [rsp + rax*4]
add rax, 0x12c
mov qword [rsp + 0x188], rax
movsd xmm6, qword [0x18004c7e0]
movsd xmm7, qword [0x18004c7e8]
movsd xmm12, qword [0x18004c7b8]
movsd xmm13, qword [0x18004c7f8]
xorpd xmm14, xmm14
movsd xmm15, qword [0x18004c800]
movsd xmm8, qword [0x18004c7c0]
movsd xmm11, qword [0x18004c7c8]
mov rbp, qword [rsp + 0x40]
jmp 0x180017f48
mov ebp, r13d
mov r8, qword [rsp + 0x38]
movsxd r14, ebp
movsd xmm0, qword [rsp + r14*8 + 0x190]
test r14d, r14d
jle 0x18001804d
mov edi, ebp
cmp ebp, 1
jne 0x180017f80
xor ecx, ecx
mov eax, ebp
test dil, 1
jne 0x180018012
jmp 0x18001804d
mov edx, edi
and edx, 0xfffffffe
neg rdx
mov ecx, 1
mov eax, ebp
nop
movapd xmm1, xmm0
mulsd xmm1, xmm6
cvttpd2dq xmm1, xmm1
cvtdq2pd xmm1, xmm1
lea esi, [rax - 1]
movsd xmm2, qword [rsp + rsi*8 + 0x190]
addsd xmm2, xmm1
mulsd xmm1, xmm7
subsd xmm0, xmm1
cvttsd2si esi, xmm0
movapd xmm0, xmm2
mulsd xmm0, xmm6
cvttpd2dq xmm0, xmm0
cvtdq2pd xmm1, xmm0
mov dword [rsp + rcx*4 + 0x12c], esi
add eax, 0xfffffffe
movsd xmm0, qword [rsp + rax*8 + 0x190]
addsd xmm0, xmm1
mulsd xmm1, xmm7
subsd xmm2, xmm1
cvttsd2si esi, xmm2
mov dword [rsp + rcx*4 + 0x130], esi
lea rsi, [rdx + rcx]
add rsi, 2
add rcx, 2
cmp rsi, 1
jne 0x180017f90
add rcx, 0xffffffffffffffff
test dil, 1
je 0x18001804d
movapd xmm1, xmm0
mulsd xmm1, xmm6
cvttpd2dq xmm1, xmm1
cvtdq2pd xmm1, xmm1
movapd xmm2, xmm1
mulsd xmm2, qword [0x18004c7f0]
addsd xmm2, xmm0
cvttsd2si edx, xmm2
mov dword [rsp + rcx*4 + 0x130], edx
add eax, 0xffffffff
addsd xmm1, qword [rsp + rax*8 + 0x190]
movapd xmm0, xmm1
cmp r8d, 0x400
jl 0x180018070
mulsd xmm0, xmm12
cmp r8d, 0x7fe
jle 0x180018069
mulsd xmm0, xmm12
mov eax, dword [rsp + 0x5c]
jmp 0x180018096
cmp r8d, 0xfffffc01
jg 0x1800180a0
movsd xmm1, qword [0x18004c7b0]
mulsd xmm0, xmm1
cmp r8d, 0xfffff804
jge 0x180018092
mulsd xmm0, xmm1
mov eax, dword [rsp + 0x7c]
jmp 0x1800180a3
mov eax, r8d
add eax, 0x3ff
shl rax, 0x34
movq xmm9, rax
mulsd xmm9, xmm0
movapd xmm0, xmm9
mulsd xmm0, xmm13
ucomisd xmm0, xmm14
jne 0x1800180cd
jnp 0x180018160
movq rax, xmm0
mov rcx, rax
shr rcx, 0x34
and ecx, 0x7ff
cmp ecx, 0x432
ja 0x180018160
movapd xmm1, xmm0
test rax, rax
jns 0x180018100
addsd xmm1, xmm8
addsd xmm1, xmm11
jmp 0x18001810a
addsd xmm1, xmm11
addsd xmm1, xmm8
subsd xmm1, xmm0
cmp ecx, 0x3fe
ja 0x180018140
movsd qword [rsp + 0x80], xmm1
movsd xmm0, qword [0x18004c778]
test rax, rax
js 0x180018160
xorpd xmm0, xmm0
jmp 0x180018160
ucomisd xmm1, xmm14
addsd xmm0, xmm1
jbe 0x180018160
addsd xmm0, qword [0x18004c778]
nop word cs:[rax + rax]
nop dword [rax]
mulsd xmm0, xmm15
addsd xmm9, xmm0
cvttsd2si r12d, xmm9
cvttpd2dq xmm0, xmm9
cvtdq2pd xmm0, xmm0
subsd xmm9, xmm0
test r8d, r8d
jle 0x1800181c0
movsxd rax, ebp
mov r13d, dword [rsp + rax*4 + 0x12c]
mov edx, r13d
mov ecx, dword [rsp + 0x64]
sar edx, cl
add r12d, edx
shl edx, cl
sub r13d, edx
mov dword [rsp + rax*4 + 0x12c], r13d
mov ecx, dword [rsp + 0x60]
sar r13d, cl
test r13d, r13d
jg 0x180018200
jmp 0x18001833b
test r8d, r8d
je 0x1800181de
mov r13d, 2
ucomisd xmm9, qword [0x18004c6c0]
jae 0x180018200
xor r13d, r13d
jmp 0x18001833b
movsxd rax, ebp
mov r13d, dword [rsp + rax*4 + 0x12c]
sar r13d, 0x17
test r13d, r13d
jle 0x18001833b
nop word cs:[rax + rax]
test ebp, ebp
jle 0x180018250
mov r8d, ebp
cmp ebp, 1
jne 0x180018287
xor eax, eax
xor edx, edx
test r8b, 1
je 0x180018252
mov ecx, dword [rsp + rax*4 + 0x130]
mov edi, 0xffffff
test edx, edx
jne 0x180018233
mov edi, 0x1000000
test ecx, ecx
je 0x1800185bd
sub edi, ecx
mov dword [rsp + rax*4 + 0x130], edi
mov edx, 1
cmp dword [rsp + 0x38], 0
jg 0x18001825d
jmp 0x180018310
xor edx, edx
cmp dword [rsp + 0x38], 0
jle 0x180018310
mov rax, qword [rsp + 0x30]
cmp eax, 0x1a
je 0x180018302
cmp eax, 0x19
jne 0x180018310
movsxd rax, ebp
and dword [rsp + rax*4 + 0x12c], 0x7fffff
jmp 0x180018310
mov ecx, r8d
and ecx, 0xfffffffe
xor eax, eax
xor edx, edx
jmp 0x1800182bb
sub edi, edx
mov dword [rsp + rax*4 + 0x134], edi
mov edx, 1
add rax, 2
cmp rcx, rax
je 0x180018210
mov esi, dword [rsp + rax*4 + 0x130]
mov edi, 0xffffff
test edx, edx
jne 0x1800182d4
mov edi, 0x1000000
test esi, esi
je 0x1800182fd
sub edi, esi
mov dword [rsp + rax*4 + 0x130], edi
xor esi, esi
mov edx, dword [rsp + rax*4 + 0x134]
mov edi, 0xffffff
test sil, sil
je 0x1800182a0
mov edi, 0x1000000
test edx, edx
jne 0x1800182a0
xor edx, edx
jmp 0x1800182ae
mov sil, 1
jmp 0x1800182df
movsxd rax, ebp
and dword [rsp + rax*4 + 0x12c], 0x3fffff
add r12d, 1
cmp r13d, 2
jne 0x18001833b
movsd xmm0, qword [0x18004c6f0]
subsd xmm0, xmm9
test edx, edx
je 0x180018330
subsd xmm0, xmm10
mov r13d, 2
movapd xmm9, xmm0
xor ecx, ecx
call fcn.18001a9e0
ucomisd xmm9, xmm0
mov r10, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x70]
jne 0x1800185cf
jp 0x1800185cf
cmp ebp, dword [rsp + 0x40]
jle 0x180018488
mov rax, r14
sub rax, rdi
xor ecx, ecx
mov rdx, r14
cmp rax, 8
jb 0x180018470
mov r8, rax
and r8, 0xfffffffffffffff8
lea rdx, [r8 - 8]
mov rcx, rdx
shr rcx, 3
add rcx, 1
test rdx, rdx
je 0x1800185a5
mov r9, r14
lea rdx, [rsp + 0x120]
lea rsi, [rdx + r14*4]
mov rdx, rcx
and rdx, 0xfffffffffffffffe
neg rdx
xorpd xmm0, xmm0
xor edi, edi
xorpd xmm1, xmm1
nop
movdqu xmm2, xmmword [rsi + rdi*4 - 0x30]
movdqu xmm3, xmmword [rsi + rdi*4 - 0x20]
movdqu xmm4, xmmword [rsi + rdi*4 - 0x10]
movdqu xmm5, xmmword [rsi + rdi*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 rdi, 0xfffffffffffffff0
add rdx, 2
jne 0x1800183c0
neg rdi
mov r14, r9
test cl, 1
je 0x18001843a
not rdi
add rdi, r14
movdqu xmm2, xmmword [rsp + rdi*4 + 0x114]
movdqu xmm3, xmmword [rsp + rdi*4 + 0x124]
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 rax, r8
je 0x180018480
mov rdx, r14
sub rdx, r8
mov rdi, qword [rsp + 0x70]
nop word cs:[rax + rax]
nop
or ecx, dword [rsp + rdx*4 + 0x12c]
add rdx, 0xffffffffffffffff
cmp rdx, rdi
jg 0x180018470
test ecx, ecx
jne 0x1800185cf
mov rax, qword [rsp + 0x188]
mov r13d, ebp
nop word cs:[rax + rax]
nop dword [rax]
add r13d, 1
cmp dword [rax], 0
lea rax, [rax - 4]
je 0x1800184a0
movsxd r12, r13d
add ebp, r10d
jmp 0x1800184d5
movsd qword [rsp + rdi*8 + 0x198], xmm0
add ebp, 1
cmp r14, r12
jge 0x180017f40
mov rdi, r14
mov rax, qword [rsp + 0x68]
add rax, r14
add rax, 1
lea rcx, [0x18004c870]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rcx + rax*4]
add r14, 1
lea esi, [rdi + r10]
movsxd rax, esi
movsd qword [rsp + rax*8 + 0x230], xmm0
xor ecx, ecx
call fcn.18001a9e0
mov r10, qword [rsp + 0x28]
test r10d, r10d
jle 0x1800184c0
cmp r10d, 1
jne 0x180018530
xor eax, eax
jmp 0x18001857e
mov ecx, ebp
xor eax, eax
movapd xmm1, xmm0
nop dword [rax + rax]
movsxd rcx, ecx
movsd xmm2, qword [rbx + rax*8]
movsd xmm0, qword [rbx + rax*8 + 8]
mulsd xmm2, qword [rsp + rcx*8 + 0x230]
addsd xmm2, xmm1
lea edx, [rcx - 1]
movsxd rdx, edx
mulsd xmm0, qword [rsp + rdx*8 + 0x230]
addsd xmm0, xmm2
add rax, 2
add ecx, 0xfffffffe
movapd xmm1, xmm0
cmp r15, rax
jne 0x180018540
test byte [rsp + 0x48], 1
je 0x1800184c0
movsd xmm1, qword [rbx + rax*8]
sub esi, eax
movsxd rax, esi
mulsd xmm1, qword [rsp + rax*8 + 0x230]
addsd xmm0, xmm1
jmp 0x1800184c0
xorpd xmm0, xmm0
xor edi, edi
xorpd xmm1, xmm1
test cl, 1
jne 0x180018410
jmp 0x18001843a
xor edx, edx
cmp dword [rsp + 0x38], 0
jg 0x18001825d
jmp 0x180018310
xor ecx, ecx
call fcn.18001a9e0
ucomisd xmm9, xmm0
jne 0x180018614
jp 0x180018614
movsxd rax, ebp
lea rax, [rsp + rax*4]
add rax, 0x12c
mov rcx, qword [rsp + 0x38]
movsd xmm2, qword [0x18004c7b0]
nop dword [rax]
add ecx, 0xffffffe8
add ebp, 0xffffffff
cmp dword [rax], 0
lea rax, [rax - 4]
je 0x180018600
jmp 0x18001871a
mov rax, qword [rsp + 0x38]
cmp eax, 0xfffffc00
jg 0x180018651
mulsd xmm9, qword [0x18004c7b8]
cmp eax, 0xfffff801
jg 0x180018689
mulsd xmm9, qword [0x18004c7b8]
mov ecx, 0xfffff81a
sub ecx, dword [rsp + 0x30]
cmp eax, 0xfffff403
mov eax, 0x3ff
cmovg eax, ecx
jmp 0x1800186a0
cmp eax, 0x3ff
jl 0x180018690
mulsd xmm9, qword [0x18004c7b0]
cmp eax, 0x7fd
jl 0x180018697
mulsd xmm9, qword [0x18004c7b0]
mov ecx, 0x814
sub ecx, dword [rsp + 0x30]
cmp eax, 0xbfa
mov eax, 0xfffffc02
cmovl eax, ecx
jmp 0x1800186a0
mov eax, 0xfffffc19
jmp 0x18001869c
mov eax, 0x18
jmp 0x18001869c
mov eax, 0x416
sub eax, dword [rsp + 0x30]
movsd xmm2, qword [0x18004c7b0]
add eax, 0x3ff
shl rax, 0x34
movq xmm0, rax
mulsd xmm0, xmm9
ucomisd xmm0, qword [0x18004c7e8]
jae 0x1800186d8
cvttsd2si eax, xmm0
mov dword [rsp + r14*4 + 0x130], eax
mov rcx, qword [rsp + 0x38]
jmp 0x18001871a
movsd xmm1, qword [0x18004c7e0]
mulsd xmm1, xmm0
cvttsd2si eax, xmm1
cvttpd2dq xmm1, xmm1
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [0x18004c7f0]
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
mov dword [rsp + r14*4 + 0x130], ecx
add ebp, 1
mov dword [rsp + r14*4 + 0x134], eax
mov rax, qword [rsp + 0x30]
mov ecx, eax
cmp ecx, 0x400
mov dword [rsp + 0x58], r12d
mov dword [rsp + 0x54], r13d
jl 0x180018752
cmp ecx, 0x7ff
jl 0x18001877e
cmp ecx, 0xbfd
mov eax, 0xbfd
cmovl eax, ecx
add eax, 0xfffff802
movsd xmm12, qword [0x18004c808]
jmp 0x18001877a
cmp ecx, 0xfffffc01
jg 0x180018786
cmp ecx, 0xfffff803
jg 0x180018791
cmp ecx, 0xfffff406
mov eax, 0xfffff406
cmovg eax, ecx
add eax, 0x7fc
xorpd xmm12, xmm12
mov ecx, eax
jmp 0x18001879c
add ecx, 0xfffffc01
jmp 0x18001879c
movsd xmm12, qword [0x18004c6f0]
jmp 0x18001879c
add ecx, 0x3fe
movapd xmm12, xmm2
test ebp, ebp
mov qword [rsp + 0x28], rbp
js 0x180018935
add ecx, 0x3ff
shl rcx, 0x34
movq xmm0, rcx
mulsd xmm12, xmm0
mov r14d, ebp
test bpl, 1
jne 0x1800187f5
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rsp + r14*4 + 0x130]
mulsd xmm0, xmm12
movsd qword [rsp + r14*8 + 0x190], xmm0
mulsd xmm12, qword [0x18004c7e0]
lea rax, [r14 - 1]
test ebp, ebp
jne 0x1800187fc
jmp 0x180018848
mov rax, r14
test ebp, ebp
je 0x180018848
add rax, 2
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rsp + rax*4 + 0x128]
mulsd xmm0, xmm12
movsd qword [rsp + rax*8 + 0x180], xmm0
mulsd xmm12, xmm6
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rsp + rax*4 + 0x124]
mulsd xmm0, xmm12
movsd qword [rsp + rax*8 + 0x178], xmm0
mulsd xmm12, xmm6
add rax, 0xfffffffffffffffe
cmp rax, 1
jg 0x180018800
test ebp, ebp
js 0x180018935
xor r15d, r15d
mov rax, qword [rsp + 0x40]
test eax, eax
cmovs eax, r15d
mov qword [rsp + 0x40], rax
lea rbx, [rsp + r14*8]
add rbx, 0x198
lea rsi, [0x180055360]
mov r13, r14
jmp 0x1800188a1
movsd qword [rsp + rcx*8 + 0x80], xmm1
add r13, 0xffffffffffffffff
lea eax, [r15 + 1]
add rbx, 0xfffffffffffffff8
cmp r15d, ebp
mov r15d, eax
je 0x180018935
mov rax, qword [rsp + 0x40]
cmp eax, r15d
mov edi, r15d
cmovb edi, eax
lea r12d, [rdi + 1]
xor ecx, ecx
call fcn.18001a9e0
test edi, edi
je 0x180018900
add rdi, 1
and rdi, 0xfffffffffffffffe
xor eax, eax
mov rbp, qword [rsp + 0x28]
nop dword [rax]
movsd xmm2, qword [rsi + rax*8]
movsd xmm1, qword [rsi + rax*8 + 8]
mulsd xmm2, qword [rbx + rax*8 - 8]
mulsd xmm1, qword [rbx + rax*8]
addsd xmm2, xmm0
addsd xmm1, xmm2
add rax, 2
movapd xmm0, xmm1
cmp rdi, rax
jne 0x1800188d0
jmp 0x18001890b
xor eax, eax
movapd xmm1, xmm0
mov rbp, qword [rsp + 0x28]
mov rcx, r14
sub rcx, r13
test r12b, 1
je 0x180018880
movsd xmm0, qword [rsi + rax*8]
add rax, r13
mulsd xmm0, qword [rsp + rax*8 + 0x190]
addsd xmm1, xmm0
jmp 0x180018880
mov rcx, qword [rsp + 0x180]
lea eax, [rcx - 1]
cmp eax, 2
jb 0x180018abf
test ecx, ecx
mov r14, qword [rsp + 0x128]
mov r15d, dword [rsp + 0x58]
mov r12d, dword [rsp + 0x54]
je 0x180018b9f
cmp ecx, 3
jne 0x180018d0f
test ebp, ebp
jle 0x180018c31
mov esi, ebp
mov rdx, rsi
mov edi, ebp
cmp ebp, 1
jne 0x180018da1
add rdx, 1
add edi, 0xffffffff
nop dword [rax + rax]
mov eax, edi
movsd xmm0, qword [rsp + rax*8 + 0x80]
movsd xmm1, qword [rsp + rdx*8 + 0x78]
movapd xmm2, xmm0
addsd xmm2, xmm1
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rsp + rdx*8 + 0x78], xmm0
movsd qword [rsp + rax*8 + 0x80], xmm2
add rdx, 0xffffffffffffffff
add edi, 0xffffffff
cmp rdx, 1
jg 0x180018990
cmp ebp, 1
jle 0x180018c31
lea r9, [rsi - 1]
cmp r9, 2
jae 0x180018ee5
mov rax, rsi
mov ecx, ebp
add rax, 1
add ecx, 0xffffffff
mov edx, ecx
movsd xmm0, qword [rsp + rdx*8 + 0x80]
movsd xmm1, qword [rsp + rax*8 + 0x78]
movapd xmm2, xmm0
addsd xmm2, xmm1
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rsp + rax*8 + 0x78], xmm0
movsd qword [rsp + rdx*8 + 0x80], xmm2
add rax, 0xffffffffffffffff
add ecx, 0xffffffff
cmp rax, 2
jg 0x1800189f0
xor ecx, ecx
call fcn.18001a9e0
mov rcx, qword [rsp + 0x28]
cmp ecx, 2
jl 0x180018c38
add ecx, 0xffffffff
lea rax, [rsi - 2]
and rcx, 7
je 0x180018a63
nop
addsd xmm0, qword [rsp + rsi*8 + 0x80]
add rsi, 0xffffffffffffffff
add rcx, 0xffffffffffffffff
jne 0x180018a50
cmp rax, 7
jb 0x180018c38
add rsi, 8
nop word cs:[rax + rax]
nop dword [rax + rax]
addsd xmm0, qword [rsp + rsi*8 + 0x40]
addsd xmm0, qword [rsp + rsi*8 + 0x38]
addsd xmm0, qword [rsp + rsi*8 + 0x30]
addsd xmm0, qword [rsp + rsi*8 + 0x28]
addsd xmm0, qword [rsp + rsi*8 + 0x20]
addsd xmm0, qword [rsp + rsi*8 + 0x18]
addsd xmm0, qword [rsp + rsi*8 + 0x10]
addsd xmm0, qword [rsp + rsi*8 + 8]
add rsi, 0xfffffffffffffff8
cmp rsi, 9
jg 0x180018a80
jmp 0x180018c38
xor ecx, ecx
call fcn.18001a9e0
mov rdx, qword [rsp + 0x28]
test edx, edx
mov rbx, qword [rsp + 0x128]
mov r15d, dword [rsp + 0x58]
mov edi, dword [rsp + 0x54]
js 0x180018b4a
mov eax, edx
lea ecx, [rdx + 1]
and rcx, 7
je 0x180018b03
nop dword [rax + rax]
addsd xmm0, qword [rsp + rax*8 + 0x80]
add rax, 0xffffffffffffffff
add rcx, 0xffffffffffffffff
jne 0x180018af0
cmp edx, 7
jb 0x180018b4a
add rax, 8
nop dword [rax]
addsd xmm0, qword [rsp + rax*8 + 0x40]
addsd xmm0, qword [rsp + rax*8 + 0x38]
addsd xmm0, qword [rsp + rax*8 + 0x30]
addsd xmm0, qword [rsp + rax*8 + 0x28]
addsd xmm0, qword [rsp + rax*8 + 0x20]
addsd xmm0, qword [rsp + rax*8 + 0x18]
addsd xmm0, qword [rsp + rax*8 + 0x10]
addsd xmm0, qword [rsp + rax*8 + 8]
add rax, 0xfffffffffffffff8
cmp rax, 7
jg 0x180018b10
movapd xmm1, xmm0
test edi, edi
je 0x180018b5e
movapd xmm1, xmmword [0x18004c6d0]
xorpd xmm1, xmm0
movsd qword [rbx], xmm1
movsd xmm1, qword [rsp + 0x80]
subsd xmm1, xmm0
test edx, edx
jle 0x180018cfe
mov edx, edx
lea rcx, [rdx - 1]
mov eax, edx
and eax, 7
cmp rcx, 7
jae 0x180018c73
mov ecx, 1
test rax, rax
jne 0x180018cda
jmp 0x180018cfe
xor ecx, ecx
call fcn.18001a9e0
mov rdx, qword [rsp + 0x28]
test edx, edx
js 0x180018c1a
mov eax, edx
lea ecx, [rdx + 1]
and rcx, 7
je 0x180018bd3
nop word [rax + rax]
addsd xmm0, qword [rsp + rax*8 + 0x80]
add rax, 0xffffffffffffffff
add rcx, 0xffffffffffffffff
jne 0x180018bc0
cmp edx, 7
jb 0x180018c1a
add rax, 8
nop dword [rax]
addsd xmm0, qword [rsp + rax*8 + 0x40]
addsd xmm0, qword [rsp + rax*8 + 0x38]
addsd xmm0, qword [rsp + rax*8 + 0x30]
addsd xmm0, qword [rsp + rax*8 + 0x28]
addsd xmm0, qword [rsp + rax*8 + 0x20]
addsd xmm0, qword [rsp + rax*8 + 0x18]
addsd xmm0, qword [rsp + rax*8 + 0x10]
addsd xmm0, qword [rsp + rax*8 + 8]
add rax, 0xfffffffffffffff8
cmp rax, 7
jg 0x180018be0
test r12d, r12d
je 0x180018c27
xorpd xmm0, xmmword [0x18004c6d0]
movsd qword [r14], xmm0
jmp 0x180018d0f
xor ecx, ecx
call fcn.18001a9e0
movsd xmm1, qword [rsp + 0x80]
test r12d, r12d
je 0x180018d82
movhpd xmm1, qword [rsp + 0x88]
movapd xmm2, xmmword [0x18004c6d0]
xorpd xmm1, xmm2
movupd xmmword [r14], xmm1
xorpd xmm0, xmm2
movlpd qword [r14 + 0x10], xmm0
jmp 0x180018d0f
and edx, 0xfffffff8
xor ecx, ecx
nop dword [rax + rax]
addsd xmm1, qword [rsp + rcx*8 + 0x88]
addsd xmm1, qword [rsp + rcx*8 + 0x90]
addsd xmm1, qword [rsp + rcx*8 + 0x98]
addsd xmm1, qword [rsp + rcx*8 + 0xa0]
addsd xmm1, qword [rsp + rcx*8 + 0xa8]
addsd xmm1, qword [rsp + rcx*8 + 0xb0]
addsd xmm1, qword [rsp + rcx*8 + 0xb8]
addsd xmm1, qword [rsp + rcx*8 + 0xc0]
add rcx, 8
cmp rdx, rcx
jne 0x180018c80
add rcx, 1
test rax, rax
je 0x180018cfe
lea rcx, [rsp + rcx*8]
add rcx, 0x80
xor edx, edx
nop word [rax + rax]
addsd xmm1, qword [rcx + rdx*8]
add rdx, 1
cmp rax, rdx
jne 0x180018cf0
test edi, edi
je 0x180018d0a
xorpd xmm1, xmmword [0x18004c6d0]
movsd qword [rbx + 8], xmm1
and r15d, 7
mov eax, r15d
movaps xmm6, xmmword [rsp + 0x2d0]
movaps xmm7, xmmword [rsp + 0x2e0]
movaps xmm8, xmmword [rsp + 0x2f0]
movaps xmm9, xmmword [rsp + 0x300]
movaps xmm10, xmmword [rsp + 0x310]
movaps xmm11, xmmword [rsp + 0x320]
movaps xmm12, xmmword [rsp + 0x330]
movaps xmm13, xmmword [rsp + 0x340]
movaps xmm14, xmmword [rsp + 0x350]
movaps xmm15, xmmword [rsp + 0x360]
add rsp, 0x378
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movsd qword [r14], xmm1
movsd xmm1, qword [rsp + 0x88]
movsd qword [r14 + 8], xmm1
movsd qword [r14 + 0x10], xmm0
jmp 0x180018d0f
lea rcx, [rsi - 1]
lea r9d, [rbp - 1]
mov edx, 8
mov rax, rcx
mul rdx
seto r8b
mov rdx, rsi
mov edi, ebp
cmp r9d, ecx
jb 0x180018984
mov rdx, rcx
shr rdx, 0x20
mov rdx, rsi
mov edi, ebp
jne 0x180018984
lea rbx, [rsp + rsi*8]
add rbx, 0x80
mov rdx, rsi
mov edi, ebp
cmp rax, rbx
ja 0x180018984
mov rdx, rsi
mov edi, ebp
test r8b, r8b
jne 0x180018984
lea rbx, [rsp + r9*8]
add rbx, 0x80
mov rdx, rsi
mov edi, ebp
cmp rax, rbx
ja 0x180018984
mov rdx, rsi
mov edi, ebp
test r8b, r8b
jne 0x180018984
lea rax, [rsp + 0x88]
lea rdx, [rsp + r9*8]
add rdx, 0x88
cmp rax, rdx
jae 0x180018e6b
lea rax, [rsp + rsi*8]
add rax, 0x88
mov rdx, r9
add rdx, 1
sub rdx, rsi
lea rbx, [rsp + rdx*8]
add rbx, 0x80
mov rdx, rsi
mov edi, ebp
cmp rbx, rax
jb 0x180018984
mov r8d, esi
and r8d, 0xfffffffe
mov edx, esi
and edx, 1
mov edi, ebp
sub edi, r8d
lea rcx, [rsp + rcx*8]
add rcx, 0x80
mov r10, r8
neg r10
xor ebx, ebx
nop
lea eax, [r9 + rbx]
movupd xmm0, xmmword [rsp + rax*8 + 0x78]
shufpd xmm0, xmm0, 1
movupd xmm1, xmmword [rcx + rbx*8]
shufpd xmm1, xmm1, 1
movapd xmm2, xmm0
addpd xmm2, xmm1
subpd xmm0, xmm2
addpd xmm0, xmm1
shufpd xmm0, xmm0, 1
movupd xmmword [rcx + rbx*8], xmm0
shufpd xmm2, xmm2, 1
movupd xmmword [rsp + rax*8 + 0x78], xmm2
add rbx, 0xfffffffffffffffe
cmp r10, rbx
jne 0x180018e90
cmp r8, rsi
jne 0x180018984
jmp 0x1800189cd
lea rcx, [rsi - 2]
lea r10d, [rbp - 1]
mov edx, 8
mov rax, rcx
mul rdx
seto dl
cmp r10d, ecx
jb 0x1800189e4
shr rcx, 0x20
jne 0x1800189e4
lea rcx, [rsp + rsi*8]
add rcx, 0x80
cmp rax, rcx
ja 0x1800189e4
test dl, dl
jne 0x1800189e4
lea rcx, [rsp + r10*8]
add rcx, 0x80
cmp rax, rcx
ja 0x1800189e4
test dl, dl
jne 0x1800189e4
lea rax, [rsp + 0x90]
lea rcx, [rsp + r10*8]
add rcx, 0x88
cmp rax, rcx
jae 0x180018f82
lea rax, [rsp + rsi*8]
add rax, 0x88
mov rcx, r10
sub rcx, rsi
lea rcx, [rsp + rcx*8]
add rcx, 0x90
cmp rcx, rax
jb 0x1800189e4
mov r8, r9
and r8, 0xfffffffffffffffe
mov rax, rsi
sub rax, r8
mov ecx, ebp
sub ecx, r8d
lea rdx, [rsp + r9*8]
add rdx, 0x80
mov r11, r8
neg r11
xor edi, edi
nop word [rax + rax]
lea ebx, [r10 + rdi]
movupd xmm0, xmmword [rsp + rbx*8 + 0x78]
shufpd xmm0, xmm0, 1
movupd xmm1, xmmword [rdx + rdi*8]
shufpd xmm1, xmm1, 1
movapd xmm2, xmm0
addpd xmm2, xmm1
subpd xmm0, xmm2
addpd xmm0, xmm1
shufpd xmm0, xmm0, 1
movupd xmmword [rdx + rdi*8], xmm0
shufpd xmm2, xmm2, 1
movupd xmmword [rsp + rbx*8 + 0x78], xmm2
add rdi, 0xfffffffffffffffe
cmp r11, rdi
jne 0x180018fb0
cmp r9, r8
jne 0x1800189e9
jmp 0x180018a2d