Function at 0x18000d370
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x400
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
mov rax, qword [0x1800331e0]
xor rax, rsp
mov qword [rsp + 0x350], rax
movsd xmm13, qword [0x18002dd10]
xorpd xmm9, xmm9
xor r11d, r11d
mov edi, 0x28
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x28], rcx
mov eax, r11d
mov qword [rsp + 0x80], r9
mov r10d, edi
lea r8, [0x18003eca0]
movabs rdx, 0x3ff0000000000000
movabs rcx, 0xbff0000000000000
nop dword [rax + rax]
movsd xmm0, qword [rax + r8]
comisd xmm0, xmm9
jb 0x18000d44f
mov qword [rsp + rax + 0xd0], rdx
mov qword [rsp + rax + 0x210], rcx
jmp 0x18000d46a
xorpd xmm0, xmm13
mov qword [rsp + rax + 0xd0], rcx
mov qword [rsp + rax + 0x210], rdx
movsd qword [rax + r8], xmm0
add rax, 8
dec r10
jne 0x18000d430
lea rbx, [0x18003dea0]
lea rcx, [0x18003daa0]
lea rdx, [0x18003dca0]
lea r9, [0x18003e0a0]
mov ebp, edi
mov qword [rsp + 0x38], rbx
mov r8, rbx
nop dword [rax]
comisd xmm9, xmmword [rsp + r11*8 + 0xd0]
lea rax, [rsp + 0xd0]
jbe 0x18000d4bc
lea rax, [rsp + 0x210]
add rax, 0x18
mov r10d, 8
nop word [rax + rax]
movsd xmm0, qword [rax - 0x10]
movsd xmm1, qword [rax - 8]
add r9, 8
add rcx, 8
add rdx, 8
add r8, 8
mulsd xmm0, qword [rcx - 8]
movsd qword [rcx - 8], xmm0
mulsd xmm1, qword [rdx - 8]
movsd xmm0, qword [rax]
movsd qword [rdx - 8], xmm1
mulsd xmm0, qword [r8 - 8]
movsd xmm1, qword [rax + 8]
add rax, rdi
dec r10
movsd qword [r8 - 8], xmm0
mulsd xmm1, qword [r9 - 8]
movsd qword [r9 - 8], xmm1
jne 0x18000d4d0
add r11, 5
cmp r11, rdi
jl 0x18000d4a0
lea rsi, [0x18003e4a0]
lea rcx, [0x18003e2a0]
lea r8, [0x18003e6a0]
mov qword [rsp + 0x60], rsi
mov rdx, rsi
mov r10d, 1
nop word [rax + rax]
comisd xmm9, xmmword [rsp + r10*8 + 0xd0]
lea rax, [rsp + 0xd0]
jbe 0x18000d57c
lea rax, [rsp + 0x210]
add rax, 0x20
mov r9d, 8
nop word [rax + rax]
movsd xmm0, qword [rax - 0x10]
movsd xmm1, qword [rax - 8]
add r8, 8
add rcx, 8
add rdx, 8
mulsd xmm0, qword [rcx - 8]
movsd qword [rcx - 8], xmm0
mulsd xmm1, qword [rdx - 8]
movsd xmm0, qword [rax]
add rax, rdi
dec r9
movsd qword [rdx - 8], xmm1
mulsd xmm0, qword [r8 - 8]
movsd qword [r8 - 8], xmm0
jne 0x18000d590
add r10, 5
cmp r10, rdi
jl 0x18000d560
lea r15, [0x18003e8a0]
mov esi, 2
mov edi, 3
mov qword [rsp + 0x78], r15
mov rcx, r15
lea rdx, [0x18003eaa0]
mov r9d, esi
mov qword [rsp + 0x50], rdi
comisd xmm9, xmmword [rsp + r9*8 + 0xd0]
lea r8, [rsp + 0xd0]
jbe 0x18000d61f
lea r8, [rsp + 0x210]
mov rax, rdi
movsd xmm0, qword [r8 + rax*8]
movsd xmm1, qword [r8 + rax*8 + 8]
add rax, 5
add rdx, 8
add rcx, 8
mulsd xmm0, qword [rcx - 8]
movsd qword [rcx - 8], xmm0
mulsd xmm1, qword [rdx - 8]
movsd qword [rdx - 8], xmm1
cmp rax, rbp
jl 0x18000d622
add r9, 5
cmp r9, rbp
jl 0x18000d603
movsd xmm12, qword [0x18002dd00]
movsd xmm0, qword [0x18002dcf8]
movsd xmm10, qword [0x18002dcf0]
mov r12d, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x38]
lea rax, [0x18003ecb8]
mov qword [rsp + 0x68], rax
lea r14, [0x18003da20]
mov qword [rsp + 0x58], rdi
movsd xmm11, qword [rsp + 0x80]
movapd xmm14, xmm12
movapd xmm15, xmm0
jmp 0x18000d6b5
mov esi, 2
mov rbx, qword [rsp + 0x68]
movapd xmm7, xmm12
movapd xmm8, xmm0
or r9d, 0xffffffff
movsxd r10, ebp
mov r11, rsi
nop
movapd xmm2, xmm12
mov ecx, esi
mov rax, rsi
lea edx, [r9 - 2]
lea r8, [0x18003eca0]
nop word [rax + rax]
movsd xmm1, qword [r8 + rax*8]
movapd xmm0, xmm1
subsd xmm0, xmm2
comisd xmm0, xmm9
jbe 0x18000d712
test edx, edx
je 0x18000d712
movapd xmm2, xmm1
mov ebp, ecx
mov r10, rax
add ecx, 5
sub edx, 5
add rax, 5
cmp ecx, 0x28
jl 0x18000d6f0
movsd xmm6, qword [r8 + r10*8]
mov eax, 0x66666667
lea rcx, [0x18003d960]
mov r9d, ebp
imul ebp
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsxd rax, edx
movsd xmm5, qword [rcx + rax*8 + 0x80]
lea eax, [rdx*8]
movsxd rcx, eax
mov eax, edi
lea rdx, [r15 + rcx*8]
mulsd xmm5, xmm10
cmp edi, 0x28
jge 0x18000d7d8
mov r8, r14
mov rcx, rbx
sub r8, rdx
movsd xmm2, qword [r8 + rdx]
movapd xmm3, xmm6
movapd xmm0, xmm5
add rdx, 8
mulsd xmm2, xmm10
addsd xmm0, qword [rdx - 8]
addsd xmm3, qword [rcx]
addsd xmm2, xmm0
movapd xmm4, xmm3
mulsd xmm4, xmm3
movapd xmm1, xmm4
movapd xmm0, xmm2
mulsd xmm1, xmm8
mulsd xmm0, xmm7
subsd xmm1, xmm0
comisd xmm1, xmm9
jbe 0x18000d7cc
movapd xmm7, xmm4
movapd xmm11, xmm3
movapd xmm8, xmm2
mov r12d, ebp
mov r13d, eax
add eax, 5
add rcx, 0x28
cmp eax, 0x28
jl 0x18000d770
dec r11
jne 0x18000d6d0
movsd xmm6, qword [0x18002dcf8]
mov rbx, qword [rsp + 0x38]
mov eax, 0x66666667
lea rdi, [0x18003d960]
xor r8d, r8d
movsxd rsi, r12d
imul r12d
movapd xmm5, xmm12
sar edx, 1
mov ebp, r13d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x66666667
movsxd r9, edx
imul r13d
lea rcx, [rdi + r9*8 + 0x940]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov rdx, qword [rsp + 0x60]
cdqe
lea r10, [rax*8]
mov rax, r10
sub rax, rcx
add rdx, rax
lea eax, [r11 + 8]
nop dword [rax]
movsd xmm1, qword [rdx + rcx]
movsd xmm0, qword [r8 + rdi + 0x40]
add r8, 8
add rcx, 0x40
dec rax
addsd xmm1, qword [rcx - 0x40]
mulsd xmm0, xmm10
addsd xmm1, xmm0
movsd qword [rsp + r8 + 0x88], xmm1
jne 0x18000d850
add rbx, r10
lea r11, [rdi + r9*8 + 0x340]
lea rdx, [0x18003daa0]
xor r8d, r8d
lea r10, [0x18003eca0]
nop dword [rax]
movsd xmm0, qword [rdi]
movapd xmm4, xmm8
lea r9, [rsp + 0x90]
add r11, 0x40
add rbx, 0x40
add rdi, 8
mov eax, 1
lea rcx, [0x18003eca8]
sub r9, rdx
addsd xmm4, qword [r11 - 0x40]
movapd xmm7, xmm11
mulsd xmm0, xmm10
addsd xmm4, qword [rbx - 0x40]
addsd xmm7, qword [r10]
addsd xmm4, xmm0
nop word [rax + rax]
movapd xmm3, xmm4
movapd xmm2, xmm7
add rdx, 8
addsd xmm3, qword [rdx - 8]
addsd xmm2, qword [rcx]
mulsd xmm2, xmm2
addsd xmm3, qword [r9 + rdx - 8]
movapd xmm1, xmm2
mulsd xmm1, xmm6
movapd xmm0, xmm3
mulsd xmm0, xmm5
subsd xmm1, xmm0
comisd xmm1, xmm9
jbe 0x18000d939
movapd xmm5, xmm2
movapd xmm6, xmm3
mov r12d, r8d
mov r13d, eax
add eax, 5
add rcx, 0x28
cmp eax, 0x28
jl 0x18000d8f0
add r8d, 5
add r10, 0x28
cmp r8d, 0x28
jl 0x18000d8a0
movapd xmm1, xmm5
movapd xmm0, xmm6
mulsd xmm1, xmm15
mulsd xmm0, xmm14
subsd xmm1, xmm0
comisd xmm1, xmm9
jbe 0x18000d990
movapd xmm14, xmm5
movapd xmm15, xmm6
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x44], ebp
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x40], r13d
movsd xmm8, qword [0x18002dcf8]
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
or r8d, 0xffffffff
movapd xmm7, xmm12
lea r11d, [r8 + 3]
mov r10, rsi
xor r15d, r15d
nop dword [rax + rax]
movapd xmm2, xmm12
mov ecx, edi
mov rax, rbp
cmp edi, 0x28
jge 0x18000da12
sub r8d, edi
lea rdx, [0x18003eca0]
nop dword [rax]
movsd xmm1, qword [rdx + rax*8]
movapd xmm0, xmm1
subsd xmm0, xmm2
comisd xmm0, xmm9
jbe 0x18000da02
test r8d, r8d
je 0x18000da02
movapd xmm2, xmm1
mov esi, ecx
mov r10, rax
add ecx, 5
sub r8d, 5
add rax, 5
cmp ecx, 0x28
jl 0x18000d9e0
mov eax, 0x66666667
lea rcx, [0x18003eca0]
mov r8d, esi
lea r9, [0x18003d960]
imul esi
sar edx, 1
movsd xmm6, qword [rcx + r10*8]
mov eax, edx
shr eax, 0x1f
add eax, edx
cdqe
movsd xmm5, qword [r14 + rax*8]
lea rdx, [rbx + rax*8]
mov eax, r15d
mulsd xmm5, xmm10
nop dword [rax]
movsd xmm0, qword [r9]
movapd xmm3, xmm6
movapd xmm2, xmm5
add rdx, 0x40
add r9, 8
mulsd xmm0, xmm10
addsd xmm3, qword [rcx]
addsd xmm2, qword [rdx - 0x40]
addsd xmm2, xmm0
movapd xmm4, xmm3
mulsd xmm4, xmm3
movapd xmm1, xmm4
movapd xmm0, xmm2
mulsd xmm1, xmm8
mulsd xmm0, xmm7
subsd xmm1, xmm0
comisd xmm1, xmm9
jbe 0x18000daaf
movapd xmm7, xmm4
movapd xmm11, xmm3
movapd xmm8, xmm2
mov r12d, esi
mov r13d, eax
add eax, 5
add rcx, 0x28
cmp eax, 0x28
jl 0x18000da50
dec r11
jne 0x18000d9c0
mov r15, qword [rsp + 0x78]
movsd xmm6, qword [0x18002dcf8]
mov eax, 0x66666667
lea rdi, [0x18003d960]
mov dword [rsp + 0x38], r12d
mov esi, r13d
imul r13d
movapd xmm5, xmm12
mov ecx, edx
lea r9, [0x18003d9e0]
sar ecx, 1
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov eax, 0x66666667
shl ecx, 3
imul r12d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsxd rax, ecx
lea rcx, [rsp + 0x90]
lea r11, [rax*8]
movsxd r10, edx
lea rdx, [rsp + 0x90]
mov rax, r11
lea r8, [r15 + r10*8]
sub rax, rcx
lea rcx, [rax + rdi + 0x340]
mov eax, 8
nop dword [rax + rax]
movsd xmm1, qword [rcx + rdx]
movsd xmm0, qword [r9]
add rdx, 8
add r8, 0x40
add r9, 8
dec rax
addsd xmm1, qword [r8 - 0x40]
mulsd xmm0, xmm10
addsd xmm1, xmm0
movsd qword [rdx - 8], xmm1
jne 0x18000db50
mov rax, qword [rsp + 0x60]
lea r11, [r11 + rdi + 0x140]
lea rdi, [0x18003d9a0]
mov r8d, 1
lea rbx, [rax + r10*8]
lea r9, [0x18003e2a0]
lea r10, [0x18003eca8]
sub rdi, r11
lea ebp, [r8 + 1]
nop word [rax + rax]
movsd xmm0, qword [rdi + r11]
movapd xmm4, xmm8
movapd xmm7, xmm11
add rbx, 0x40
lea rdx, [rsp + 0x90]
mov eax, ebp
add r11, 8
lea rcx, [0x18003ecb0]
mulsd xmm0, xmm10
addsd xmm4, qword [rbx - 0x40]
addsd xmm7, qword [r10]
addsd xmm4, qword [r11 - 8]
addsd xmm4, xmm0
nop word [rax + rax]
movapd xmm3, xmm4
movapd xmm2, xmm7
add rdx, 8
add r9, 8
addsd xmm3, qword [r9 - 8]
addsd xmm2, qword [rcx]
mulsd xmm2, xmm2
addsd xmm3, qword [rdx - 8]
movapd xmm1, xmm2
mulsd xmm1, xmm6
movapd xmm0, xmm3
mulsd xmm0, xmm5
subsd xmm1, xmm0
comisd xmm1, xmm9
jbe 0x18000dc5c
movapd xmm5, xmm2
movapd xmm6, xmm3
mov r12d, r8d
mov r13d, eax
add eax, 5
add rcx, 0x28
cmp eax, 0x28
jl 0x18000dc10
add r8d, 5
add r10, 0x28
cmp r8d, 0x28
jl 0x18000dbc0
mov ebp, dword [rsp + 0x38]
movapd xmm1, xmm5
movapd xmm0, xmm6
mulsd xmm1, xmm15
mulsd xmm0, xmm14
subsd xmm1, xmm0
comisd xmm1, xmm9
jbe 0x18000dcc3
mov ecx, ebp
mov edx, esi
movapd xmm14, xmm5
movapd xmm15, xmm6
mov r9d, r12d
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x44], ecx
mov dword [rsp + 0x30], edx
mov r8d, r13d
mov dword [rsp + 0x48], r13d
jmp 0x18000dcd5
mov ecx, dword [rsp + 0x44]
mov edx, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x48]
mov r9d, dword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
inc qword [rsp + 0x58]
movsd xmm0, qword [0x18002dcf8]
lea rax, [0x18003e6a0]
inc edi
lea rbx, [0x18003e0a0]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x68]
lea r15, [0x18003eaa0]
add rax, 8
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x78], r15
lea r14, [0x18003da60]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x68], rax
cmp edi, 5
jl 0x18000d6b0
mov rax, qword [rsp + 0x70]
movsxd rbp, edx
movsxd rdi, r9d
movsxd rsi, r8d
movsxd rbx, ecx
lea r12, [rbp*8]
lea r13, [rdi*8]
lea r14, [rsi*8]
lea r15, [rbx*8]
cvttsd2si r10d, qword [rsp + r12 + 0xd0]
mov ecx, 5
xor r11d, r11d
mov dword [rsp + 0x38], r10d
cvttsd2si r9d, qword [rsp + r13 + 0xd0]
cvttsd2si r8d, qword [rsp + r14 + 0xd0]
cvttsd2si edx, qword [rsp + r15 + 0xd0]
nop word [rax + rax]
mov qword [rax], r11
mov qword [rax + 8], r11
mov qword [rax + 0x10], r11
add rax, 0x40
dec rcx
mov qword [rax - 0x28], r11
mov qword [rax - 0x20], r11
mov qword [rax - 0x18], r11
mov qword [rax - 0x10], r11
mov qword [rax - 8], r11
jne 0x18000dda0
mov rax, qword [rsp + 0x70]
movd xmm0, r10d
movd xmm1, r9d
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
movsd qword [rax + r12], xmm0
movsd qword [rax + r13], xmm1
movd xmm0, r8d
movd xmm1, edx
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
movsd qword [rax + r14], xmm0
movsd qword [rax + r15], xmm1
mov eax, dword [rsp + 0x30]
test eax, eax
jle 0x18000de30
mov rcx, qword [rsp + 0x20]
mov r8d, eax
xor edx, edx
shl r8, 3
call fcn.180018270
xor r11d, r11d
cvttsd2si r10d, qword [rsp + r12 + 0xd0]
mov edx, 0x24
test r10d, r10d
jle 0x18000deff
cmp rbp, 0x28
jge 0x18000dfe3
mov eax, 0x28
sub rax, rbp
cmp rax, 4
jl 0x18000decd
mov r9, qword [rsp + 0x20]
mov r10, qword [rsp + 0x28]
mov eax, 2
lea rcx, [r9 + r12 + 8]
sub rax, rbp
mov r8, r10
sub r8, r9
shl rax, 3
sub rax, r9
mov r9d, edx
sub r8, r12
sub r9, rbp
add r10, rax
shr r9, 2
inc r9
lea r11, [r9*4]
add rbp, r11
nop dword [rax + rax]
mov rax, qword [r8 + rcx - 8]
add rcx, 0x20
dec r9
mov qword [rcx - 0x28], rax
mov rax, qword [r8 + rcx - 0x20]
mov qword [rcx - 0x20], rax
mov rax, qword [r8 + rcx - 0x18]
mov qword [rcx - 0x18], rax
mov rax, qword [r10 + rcx - 0x20]
mov qword [rcx - 0x10], rax
jne 0x18000dea0
mov r9, qword [rsp + 0x28]
cmp rbp, 0x28
jge 0x18000dfdc
lea rcx, [r9 + r11*8]
mov r11, qword [rsp + 0x20]
mov rax, qword [rcx]
inc rbp
add rcx, 8
mov qword [r11 + rbp*8 - 8], rax
cmp rbp, 0x28
jl 0x18000dee5
jmp 0x18000dfed
mov r10, r11
mov r11, qword [rsp + 0x20]
cmp rbp, 0x28
jge 0x18000dfe8
mov eax, 0x28
sub rax, rbp
cmp rax, 4
jl 0x18000dfae
mov r10, qword [rsp + 0x28]
mov r9d, 2
mov rax, rdx
sub r9, rbp
sub rax, rbp
mov r8, r10
shl r9, 3
shr rax, 2
sub r8, r11
sub r9, r11
inc rax
sub r8, r12
add r9, r10
lea r10, [rax*4]
lea rcx, [r11 + r12 + 8]
add rbp, r10
movsd xmm0, qword [rcx + r8 - 8]
add rcx, 0x20
dec rax
xorpd xmm0, xmm13
movsd qword [rcx - 0x28], xmm0
movsd xmm1, qword [rcx + r8 - 0x20]
xorpd xmm1, xmm13
movsd qword [rcx - 0x20], xmm1
movsd xmm0, qword [rcx + r8 - 0x18]
xorpd xmm0, xmm13
movsd qword [rcx - 0x18], xmm0
movsd xmm1, qword [rcx + r9 - 0x20]
xorpd xmm1, xmm13
movsd qword [rcx - 0x10], xmm1
jne 0x18000df61
mov r9, qword [rsp + 0x28]
cmp rbp, 0x28
jge 0x18000dfed
lea rax, [r9 + r10*8]
movsd xmm0, qword [rax]
inc rbp
add rax, 8
xorpd xmm0, xmm13
movsd qword [r11 + rbp*8 - 8], xmm0
cmp rbp, 0x28
jl 0x18000dfbd
jmp 0x18000dfed
mov r11, qword [rsp + 0x20]
jmp 0x18000dfed
mov r11, qword [rsp + 0x20]
mov r9, qword [rsp + 0x28]
cvttsd2si ebp, qword [rsp + r13 + 0xd0]
xor r12d, r12d
mov r10d, r12d
test ebp, ebp
jle 0x18000e0e5
cmp rdi, 0x28
jge 0x18000e1bd
mov eax, 0x28
sub rax, rdi
cmp rax, 4
jl 0x18000e0ad
mov r8, r9
mov eax, 2
lea rcx, [r11 + r13 + 8]
sub rax, rdi
sub r8, r11
shl rax, 3
sub r8, r13
sub rax, r11
add r9, rax
mov rax, rdx
sub rax, rdi
shr rax, 2
inc rax
lea r10, [rax*4]
add rdi, r10
nop dword [rax]
movsd xmm0, qword [r8 + rcx - 8]
add rcx, 0x20
dec rax
addsd xmm0, qword [rcx - 0x28]
movsd qword [rcx - 0x28], xmm0
movsd xmm1, qword [r8 + rcx - 0x20]
addsd xmm1, qword [rcx - 0x20]
movsd qword [rcx - 0x20], xmm1
movsd xmm0, qword [r8 + rcx - 0x18]
addsd xmm0, qword [rcx - 0x18]
movsd qword [rcx - 0x18], xmm0
movsd xmm1, qword [r9 + rcx - 0x20]
addsd xmm1, qword [rcx - 0x10]
movsd qword [rcx - 0x10], xmm1
jne 0x18000e060
mov r13, qword [rsp + 0x28]
cmp rdi, 0x28
jge 0x18000e1c2
lea rax, [r13 + r10*8]
movsd xmm0, qword [r11 + rdi*8]
inc rdi
add rax, 8
addsd xmm0, qword [rax - 8]
movsd qword [r11 + rdi*8 - 8], xmm0
cmp rdi, 0x28
jl 0x18000e0c1
jmp 0x18000e1c2
cmp rdi, 0x28
jge 0x18000e1bd
mov eax, 0x28
sub rax, rdi
cmp rax, 4
jl 0x18000e18c
mov r8, r9
mov eax, 2
lea rcx, [r11 + r13 + 8]
sub rax, rdi
sub r8, r11
shl rax, 3
sub r8, r13
sub rax, r11
add r9, rax
mov rax, rdx
sub rax, rdi
shr rax, 2
inc rax
lea r10, [rax*4]
add rdi, r10
nop dword [rax]
movsd xmm0, qword [rcx - 8]
movsd xmm1, qword [rcx]
add rcx, 0x20
dec rax
subsd xmm0, qword [rcx + r8 - 0x28]
movsd qword [rcx - 0x28], xmm0
subsd xmm1, qword [rcx + r8 - 0x20]
movsd xmm0, qword [rcx - 0x18]
movsd qword [rcx - 0x20], xmm1
subsd xmm0, qword [rcx + r8 - 0x18]
movsd xmm1, qword [rcx - 0x10]
movsd qword [rcx - 0x18], xmm0
subsd xmm1, qword [rcx + r9 - 0x20]
movsd qword [rcx - 0x10], xmm1
jne 0x18000e140
mov r13, qword [rsp + 0x28]
cmp rdi, 0x28
jge 0x18000e1c2
lea rax, [r13 + r10*8]
movsd xmm0, qword [r11 + rdi*8]
inc rdi
add rax, 8
subsd xmm0, qword [rax - 8]
movsd qword [r11 + rdi*8 - 8], xmm0
cmp rdi, 0x28
jl 0x18000e19c
jmp 0x18000e1c2
mov r13, qword [rsp + 0x28]
cvttsd2si r11d, qword [rsp + r14 + 0xd0]
mov r10, r12
mov edi, 0x28
test r11d, r11d
jle 0x18000e2c3
cmp rsi, rdi
jge 0x18000e39b
mov eax, edi
sub rax, rsi
cmp rax, 4
jl 0x18000e28d
mov r9, qword [rsp + 0x20]
mov eax, 2
mov r8, r13
sub rax, rsi
sub r8, r9
lea rcx, [r9 + r14 + 8]
shl rax, 3
sub r8, r14
sub rax, r9
lea r9, [rax + r13]
mov rax, rdx
sub rax, rsi
shr rax, 2
inc rax
lea r10, [rax*4]
add rsi, r10
nop word [rax + rax]
movsd xmm0, qword [r8 + rcx - 8]
add rcx, 0x20
dec rax
addsd xmm0, qword [rcx - 0x28]
movsd qword [rcx - 0x28], xmm0
movsd xmm1, qword [r8 + rcx - 0x20]
addsd xmm1, qword [rcx - 0x20]
movsd qword [rcx - 0x20], xmm1
movsd xmm0, qword [r8 + rcx - 0x18]
addsd xmm0, qword [rcx - 0x18]
movsd qword [rcx - 0x18], xmm0
movsd xmm1, qword [r9 + rcx - 0x20]
addsd xmm1, qword [rcx - 0x10]
movsd qword [rcx - 0x10], xmm1
jne 0x18000e240
mov r8, qword [rsp + 0x20]
cmp rsi, rdi
jge 0x18000e3a0
lea rax, [r13 + r10*8]
movsd xmm0, qword [r8 + rsi*8]
inc rsi
add rax, 8
addsd xmm0, qword [rax - 8]
movsd qword [r8 + rsi*8 - 8], xmm0
cmp rsi, rdi
jl 0x18000e2a0
jmp 0x18000e3a0
cmp rsi, 0x28
jge 0x18000e39b
mov rax, rdi
sub rax, rsi
cmp rax, 4
jl 0x18000e36c
mov r9, qword [rsp + 0x20]
mov eax, 2
mov r8, r13
sub rax, rsi
sub r8, r9
lea rcx, [r9 + r14 + 8]
shl rax, 3
sub r8, r14
sub rax, r9
lea r9, [rax + r13]
mov rax, rdx
sub rax, rsi
shr rax, 2
inc rax
lea r10, [rax*4]
add rsi, r10
nop dword [rax + rax]
movsd xmm0, qword [rcx - 8]
movsd xmm1, qword [rcx]
add rcx, 0x20
dec rax
subsd xmm0, qword [rcx + r8 - 0x28]
movsd qword [rcx - 0x28], xmm0
subsd xmm1, qword [rcx + r8 - 0x20]
movsd xmm0, qword [rcx - 0x18]
movsd qword [rcx - 0x20], xmm1
subsd xmm0, qword [rcx + r8 - 0x18]
movsd xmm1, qword [rcx - 0x10]
movsd qword [rcx - 0x18], xmm0
subsd xmm1, qword [rcx + r9 - 0x20]
movsd qword [rcx - 0x10], xmm1
jne 0x18000e320
mov r8, qword [rsp + 0x20]
cmp rsi, rdi
jge 0x18000e3a0
lea rax, [r13 + r10*8]
movsd xmm0, qword [r8 + rsi*8]
inc rsi
add rax, 8
subsd xmm0, qword [rax - 8]
movsd qword [r8 + rsi*8 - 8], xmm0
cmp rsi, rdi
jl 0x18000e37b
jmp 0x18000e3a0
mov r8, qword [rsp + 0x20]
cvttsd2si r10d, qword [rsp + r15 + 0xd0]
mov r9, r12
test r10d, r10d
jle 0x18000e490
cmp rbx, 0x28
jge 0x18000e556
sub rdi, rbx
cmp rdi, 4
jl 0x18000e45a
sub rdx, rbx
mov r9d, 2
mov rcx, r13
sub r9, rbx
sub rcx, r8
shr rdx, 2
shl r9, 3
inc rdx
lea rax, [r8 + r15 + 8]
sub r9, r8
sub rcx, r15
lea r8, [r9 + r13]
lea r9, [rdx*4]
add rbx, r9
nop word [rax + rax]
movsd xmm0, qword [rcx + rax - 8]
add rax, 0x20
dec rdx
addsd xmm0, qword [rax - 0x28]
movsd qword [rax - 0x28], xmm0
movsd xmm1, qword [rcx + rax - 0x20]
addsd xmm1, qword [rax - 0x20]
movsd qword [rax - 0x20], xmm1
movsd xmm0, qword [rcx + rax - 0x18]
addsd xmm0, qword [rax - 0x18]
movsd qword [rax - 0x18], xmm0
movsd xmm1, qword [r8 + rax - 0x20]
addsd xmm1, qword [rax - 0x10]
movsd qword [rax - 0x10], xmm1
jne 0x18000e410
cmp rbx, 0x28
jge 0x18000e556
mov rcx, qword [rsp + 0x20]
lea rax, [r13 + r9*8]
movsd xmm0, qword [rcx + rbx*8]
inc rbx
add rax, 8
addsd xmm0, qword [rax - 8]
movsd qword [rcx + rbx*8 - 8], xmm0
cmp rbx, 0x28
jl 0x18000e46e
jmp 0x18000e556
cmp rbx, 0x28
jge 0x18000e556
sub rdi, rbx
cmp rdi, 4
jl 0x18000e529
sub rdx, rbx
mov r9d, 2
mov rcx, r13
sub r9, rbx
sub rcx, r8
shr rdx, 2
shl r9, 3
inc rdx
lea rax, [r8 + r15 + 8]
sub r9, r8
sub rcx, r15
lea r8, [r9 + r13]
lea r9, [rdx*4]
add rbx, r9
nop
movsd xmm0, qword [rax - 8]
movsd xmm1, qword [rax]
add rax, 0x20
dec rdx
subsd xmm0, qword [rax + rcx - 0x28]
movsd qword [rax - 0x28], xmm0
subsd xmm1, qword [rax + rcx - 0x20]
movsd xmm0, qword [rax - 0x18]
movsd qword [rax - 0x20], xmm1
subsd xmm0, qword [rax + rcx - 0x18]
movsd xmm1, qword [rax - 0x10]
movsd qword [rax - 0x18], xmm0
subsd xmm1, qword [rax + r8 - 0x20]
movsd qword [rax - 0x10], xmm1
jne 0x18000e4e0
cmp rbx, 0x28
jge 0x18000e556
mov rcx, qword [rsp + 0x20]
lea rax, [r13 + r9*8]
movsd xmm0, qword [rcx + rbx*8]
inc rbx
add rax, 8
subsd xmm0, qword [rax - 8]
movsd qword [rcx + rbx*8 - 8], xmm0
cmp rbx, 0x28
jl 0x18000e539
cmp dword [rsp + 0x38], 0
mov eax, 1
cmovg r12d, eax
test ebp, ebp
jle 0x18000e56c
add r12d, 2
test r11d, r11d
jle 0x18000e575
add r12d, 4
test r10d, r10d
jle 0x18000e57e
add r12d, 8
mov rax, qword [rsp + 0x80]
mov ebp, dword [rsp + 0x44]
mov dword [rax], r12d
mov eax, 0x66666667
imul ebp
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ebp, eax
mov eax, 0x66666667
imul dword [rsp + 0x48]
mov eax, 0x66666667
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea r8d, [rdx + rbp*8 - 0x18]
imul dword [rsp + 0x40]
mov eax, 0x66666667
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + r8*8]
imul dword [rsp + 0x30]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rcx*8]
mov rcx, qword [rsp + 0x350]
xor rcx, rsp
call fcn.180016ca0
lea r11, [rsp + 0x400]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret