Function at 0x18001d790
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x188]
sub rsp, 0x248
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
movaps xmmword [rax - 0xd8], xmm14
movaps xmmword [rax - 0xe8], xmm15
mov rax, qword [0x1800a5010]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov r15, r9
mov rsi, r8
mov qword [rbp - 0x20], rdx
mov r14, rcx
mov rbx, qword [rbp + 0x1b0]
mov r12, qword [rbp + 0x1b8]
movsd xmm6, qword [rcx + 0x158]
movaps xmm0, xmm6
addsd xmm0, qword [0x18009d710]
cvtpd2ps xmm1, xmm0
movss dword [rbp - 0x70], xmm1
movsd xmm7, qword [rcx + 0x118]
addsd xmm7, qword [rcx + 0x160]
addsd xmm6, qword [rcx + 0x110]
xor r13d, r13d
mov qword [rbp + 0x68], r13
mov qword [rbp + 0x70], r13
mov qword [rbp + 0x80], r13
mov qword [rbp + 0x88], r13
movaps xmm9, xmm7
subsd xmm9, qword [0x18009d6d8]
movaps xmm10, xmm6
xorps xmm2, xmm2
addsd xmm10, xmm2
movups xmm0, xmmword [rcx + 0x10]
movaps xmmword [rbp - 0x50], xmm0
movaps xmm1, xmmword [0x18009dbf0]
movaps xmmword [rbp - 0x40], xmm1
movsd qword [rsp + 0x70], xmm10
movsd qword [rsp + 0x78], xmm9
movaps xmm12, xmm9
movsd xmm15, qword [0x18009d668]
addsd xmm12, xmm15
movaps xmm11, xmm10
addsd xmm11, xmm15
mov eax, 0xe0
mov ecx, 0x80
cmp byte [r12], r13b
cmove eax, ecx
movups xmm0, xmmword [rax + r14]
movaps xmmword [rbp - 0x60], xmm0
mov edi, r13d
movaps xmm13, xmm11
movsd xmm14, qword [0x18009d6a8]
addsd xmm13, xmm14
xorps xmm1, xmm1
movss xmm8, dword [0x18009d650]
nop dword [rax + rax]
movaps xmm0, xmm12
addsd xmm0, xmm1
movsd qword [rbp - 0x80], xmm13
movsd qword [rbp - 0x78], xmm0
movsd qword [rbp - 0x30], xmm11
movsd qword [rbp - 0x28], xmm0
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm8
lea r8, [rbp - 0x80]
lea rdx, [rbp - 0x30]
mov rcx, qword [r14 + 0x1b0]
call fcn.18006a3f0
inc edi
movd xmm1, edi
cvtdq2pd xmm1, xmm1
comisd xmm14, xmm1
ja 0x18001d900
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm8
lea r8, [rbp - 0x40]
lea rdx, [rsp + 0x70]
mov rcx, qword [r14 + 0x1b0]
call fcn.18006a690
movaps xmm2, xmm7
subsd xmm2, qword [0x18009d6e0]
addsd xmm6, qword [0x18009d6f8]
movups xmm0, xmmword [r14 + 0xb0]
movaps xmmword [rbp - 0x80], xmm0
movaps xmm1, xmm6
unpcklpd xmm1, xmm2
movdqa xmmword [rbp - 0x30], xmm1
mov rax, qword [rbp - 0x20]
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x20], xmm0
xorps xmm1, xmm1
movups xmmword [rbp - 0x40], xmm1
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x60], xmm1
movss xmm12, dword [0x18009d640]
movss xmm11, dword [0x18009d63c]
movzx eax, byte [0x1800a5a71]
test al, al
je 0x18001d9dd
movaps xmm0, xmm11
jmp 0x18001d9e1
movaps xmm0, xmm12
cvtps2pd xmm1, xmm0
test al, al
je 0x18001d9ee
movaps xmm0, xmm11
jmp 0x18001d9f2
movaps xmm0, xmm12
cvtps2pd xmm0, xmm0
movsd qword [rsp + 0x70], xmm0
movsd qword [rsp + 0x78], xmm1
lea rax, [rbp - 0x40]
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x50], r13b
mov byte [rsp + 0x48], r13b
lea rax, [rbp - 0x50]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x38], rax
xorps xmm13, xmm13
movss dword [rsp + 0x30], xmm13
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x30]
lea r8, [rbp - 0x20]
mov rdx, qword [0x1800a7650]
mov rcx, qword [r14 + 0x1b0]
call fcn.18006abb0
movss xmm1, dword [r14 + 0x130]
cvtps2pd xmm1, xmm1
comisd xmm1, xmm10
jb 0x18001dad0
movss xmm0, dword [r14 + 0x134]
cvtps2pd xmm0, xmm0
comisd xmm0, xmm9
jb 0x18001dad0
addsd xmm10, qword [0x18009d780]
comisd xmm10, xmm1
jb 0x18001dad0
addsd xmm9, qword [0x18009d6d8]
comisd xmm9, xmm0
jb 0x18001dad0
lea rdx, [0x1800a7b80]
mov rcx, qword [r14 + 0x1c0]
call fcn.18006f890
test al, al
je 0x18001dad0
cmp byte [r14 + 0x19b], r13b
jne 0x18001dad0
cmp byte [r12], r13b
sete al
mov byte [r12], al
xorps xmm14, xmm14
addsd xmm7, xmm14
movss xmm2, dword [r14 + 0x130]
cvtps2pd xmm2, xmm2
comisd xmm2, xmm6
jb 0x18001db43
movss xmm1, dword [r14 + 0x134]
cvtps2pd xmm1, xmm1
comisd xmm1, xmm7
jb 0x18001db43
movaps xmm0, xmm6
addsd xmm0, qword [0x18009d7a8]
comisd xmm0, xmm2
jb 0x18001db43
movaps xmm0, xmm7
addsd xmm0, qword [0x18009d6f8]
comisd xmm0, xmm1
jb 0x18001db43
lea rdx, [0x1800a7b80]
mov rcx, qword [r14 + 0x1c0]
call fcn.18006f890
test al, al
je 0x18001db43
cmp byte [r14 + 0x19b], r13b
jne 0x18001db43
mov byte [r15], 1
cmp byte [r12], r13b
je 0x18001e2a6
cmp byte [r15], r13b
lea rax, [r14 + 0x60]
jne 0x18001db5a
lea rax, [r14 + 0x70]
movups xmm0, xmmword [r14 + 0x10]
movaps xmmword [rbp - 0x50], xmm0
movaps xmm1, xmmword [0x18009dc20]
movaps xmmword [rbp - 0x60], xmm1
movsd qword [rbp - 0x30], xmm6
movsd qword [rbp - 0x28], xmm7
addsd xmm7, xmm15
addsd xmm6, xmm15
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x40], xmm0
mov edi, r13d
movaps xmm9, xmm6
addsd xmm9, qword [0x18009d7a0]
xorps xmm1, xmm1
movsd xmm10, qword [0x18009d6f0]
nop word [rax + rax]
movaps xmm0, xmm7
addsd xmm0, xmm1
movsd qword [rsp + 0x70], xmm9
movsd qword [rsp + 0x78], xmm0
movsd qword [rbp - 0x80], xmm6
movsd qword [rbp - 0x78], xmm0
lea rax, [rbp - 0x40]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm8
lea r8, [rsp + 0x70]
lea rdx, [rbp - 0x80]
mov rcx, qword [r14 + 0x1b0]
call fcn.18006a3f0
inc edi
movd xmm1, edi
cvtdq2pd xmm1, xmm1
comisd xmm10, xmm1
ja 0x18001dbb0
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
movaps xmm3, xmm8
lea r8, [rbp - 0x60]
lea rdx, [rbp - 0x30]
mov rcx, qword [r14 + 0x1b0]
call fcn.18006a690
cmp byte [r15], r13b
je 0x18001dc3c
cmp dword [rbx + 8], r13d
jle 0x18001dc3c
mov rcx, qword [rbx]
call fcn.180079a50
mov qword [rbx], r13
mov qword [rbx + 8], r13
lea rdi, [0x1800a8270]
lea r12, [0x1800a8410]
nop word [rax + rax]
mov rdx, rdi
lea rcx, [rbp - 0x20]
call fcn.18005df10
mov rcx, qword [rax]
mov qword [rbp + 0x40], rcx
mov qword [rbp + 0x48], r13
mov qword [rbp + 0x50], r13
cmp byte [r15], r13b
je 0x18001dca1
lea rdx, [rbp + 0x40]
mov rcx, qword [r14 + 0x1c0]
call fcn.18006f890
test al, al
je 0x18001dca1
movups xmm0, xmmword [rbp + 0x40]
movups xmmword [rsi], xmm0
movsd xmm1, qword [rbp + 0x50]
movsd qword [rsi + 0x10], xmm1
lea rcx, [r15 + 8]
mov rdx, rsi
call fcn.180031c00
add rdi, 0x10
cmp rdi, r12
jne 0x18001dc50
mov edi, r13d
mov dword [rbp - 0x68], r13d
mov esi, 4
movsd xmm7, qword [0x18009d6b0]
cmp dword [r15 + 0x10], r13d
jle 0x18001df05
mov rsi, r13
mov qword [rbp - 0x20], r13
mov r12, 0xffffffffffffffff
movsd xmm9, qword [0x18009d670]
movss xmm8, dword [0x18009d810]
nop dword [rax + rax]
mov rax, qword [r15 + 8]
movups xmm0, xmmword [rsi + rax]
movups xmmword [rbp - 0x10], xmm0
movsd xmm1, qword [rsi + rax + 0x10]
movsd qword [rbp], xmm1
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x30]
call fcn.18005d620
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x58], xmm0
movsd xmm2, qword [r14 + 0x160]
subsd xmm2, xmm9
movss xmm6, dword [rbp - 0x70]
cvtps2pd xmm1, xmm6
addsd xmm2, qword [r14 + 0x118]
addsd xmm1, qword [r14 + 0x110]
addsd xmm2, xmm7
addsd xmm1, xmm14
movups xmm0, xmmword [r14 + 0xb0]
movaps xmmword [rbp - 0x30], xmm0
unpcklpd xmm1, xmm2
movdqa xmmword [rbp + 0x10], xmm1
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0x20], xmm0
xorps xmm1, xmm1
movups xmmword [rbp - 0x40], xmm1
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x60], xmm1
movzx eax, byte [0x1800a5a71]
test al, al
je 0x18001dd8b
movaps xmm0, xmm11
jmp 0x18001dd8f
movaps xmm0, xmm12
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
test al, al
je 0x18001dda0
movaps xmm0, xmm11
jmp 0x18001dda4
movaps xmm0, xmm12
cvtss2sd xmm0, xmm0
movsd qword [rsp + 0x70], xmm0
movsd qword [rsp + 0x78], xmm1
lea rax, [rbp - 0x40]
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x48], 1
lea rax, [rbp - 0x50]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x38], rax
movss dword [rsp + 0x30], xmm13
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x10]
lea r8, [rbp + 0x20]
mov rdx, qword [0x1800a7650]
mov rcx, qword [r14 + 0x1b0]
call fcn.18006abb0
addss xmm6, xmm8
movss dword [rbp - 0x70], xmm6
lea r8, [rbp + 0x58]
lea rdx, [rbp + 0x68]
lea rcx, [rbp + 0x40]
call fcn.180062030
movups xmm6, xmmword [rax]
movups xmmword [rbp + 0x68], xmm6
cmp byte [r15], 0
je 0x18001dee9
mov eax, dword [rbx + 0xc]
mov ecx, dword [rbx + 8]
cmp ecx, eax
jne 0x18001ded9
test eax, eax
jle 0x18001de50
add eax, eax
jmp 0x18001de55
mov eax, 4
mov dword [rbp - 0x6c], eax
movsxd rdi, eax
mov qword [rbp - 0x30], rdi
mov eax, 0x10
mul rdi
cmovo rax, r12
mov rcx, rax
call fcn.180079ac0
mov r12, rax
mov qword [rbp - 0x80], rax
mov rsi, rax
test rdi, rdi
je 0x18001de94
mov rcx, rsi
call fcn.180004e00
add rsi, 0x10
sub rdi, 1
jne 0x18001de82
mov edx, r13d
cmp dword [rbx + 8], r13d
jle 0x18001deb7
mov rcx, r13
mov rax, qword [rbx]
movups xmm0, xmmword [rax + rcx]
movups xmmword [rcx + r12], xmm0
inc edx
lea rcx, [rcx + 0x10]
cmp edx, dword [rbx + 8]
jl 0x18001dea0
mov rcx, qword [rbx]
call fcn.180079a50
mov qword [rbx], r12
mov eax, dword [rbp - 0x6c]
mov dword [rbx + 0xc], eax
mov ecx, dword [rbx + 8]
mov edi, dword [rbp - 0x68]
mov rsi, qword [rbp - 0x20]
mov r12, 0xffffffffffffffff
movsxd rcx, ecx
add rcx, rcx
mov rax, qword [rbx]
movups xmmword [rax + rcx*8], xmm6
inc dword [rbx + 8]
inc edi
mov dword [rbp - 0x68], edi
add rsi, 0x18
mov qword [rbp - 0x20], rsi
cmp edi, dword [r15 + 0x10]
jl 0x18001dcf0
mov esi, 4
cmp byte [r15], 0
je 0x18001df7d
lea rdx, [0x1800a8410]
mov rcx, qword [r14 + 0x1c0]
call fcn.18006f890
test al, al
je 0x18001df7d
movsxd rdx, dword [r15 + 0x10]
test edx, edx
je 0x18001df7d
lea ecx, [rdx - 1]
test ecx, ecx
js 0x18001df7d
mov eax, dword [r15 + 0x10]
cmp ecx, eax
jge 0x18001df7d
cmp edx, eax
jge 0x18001df77
lea rcx, [rdx + rdx*2]
shl rcx, 3
nop word [rax + rax]
mov rax, qword [r15 + 8]
movups xmm1, xmmword [rcx + rax]
movsd xmm0, qword [rcx + rax + 0x10]
movups xmmword [rcx + rax - 0x18], xmm1
movsd qword [rcx + rax - 8], xmm0
inc edx
lea rcx, [rcx + 0x18]
mov eax, dword [r15 + 0x10]
cmp edx, eax
jl 0x18001df50
dec eax
mov dword [r15 + 0x10], eax
movsd xmm1, qword [r14 + 0x158]
addsd xmm1, qword [0x18009d6f8]
movsd xmm2, qword [r14 + 0x160]
addsd xmm1, qword [r14 + 0x110]
addsd xmm2, qword [r14 + 0x118]
addsd xmm1, qword [0x18009d750]
addsd xmm2, xmm7
cmp dword [r15 + 0x10], 0
jne 0x18001e195
movsd qword [rsp + 0x70], xmm1
movsd qword [rsp + 0x78], xmm2
movups xmm0, xmmword [0x1800972c8]
movups xmmword [rbp - 0x10], xmm0
movsd xmm1, qword [0x1800972d8]
movsd qword [rbp], xmm1
movzx eax, word [0x1800972e0]
mov word [rbp + 8], ax
mov r8d, r13d
cmp dword [0x1800a5018], 2
jl 0x18001e0ed
movdqa xmm4, xmmword [0x18009dd00]
movd xmm6, esi
mov eax, 0x1f
movd xmm5, eax
movdqa xmm2, xmmword [0x18009d8f0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x18009d930]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm2, xmmword [0x18009d9d0]
movq xmm0, qword [0x1800972c8]
pxor xmm2, xmm0
movq qword [rbp - 0x10], xmm2
movdqa xmm3, xmmword [0x18009d910]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x18009d930]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm2, xmmword [0x18009d9d0]
movq xmm0, qword [rbp - 8]
pxor xmm2, xmm0
movq qword [rbp - 8], xmm2
mov r8d, 8
mov eax, r8d
lea r9, [rbp - 0x10]
lea r9, [r9 + rax*2]
nop dword [rax + rax]
mov eax, 0x51eb851f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x32
movzx eax, r8w
sub ax, cx
add ax, 0x30
xor word [r9], ax
inc r8d
lea r9, [r9 + 2]
cmp r8d, 0xd
jl 0x18001e100
mov qword [rbp - 0x80], r13
cmp word [rbp - 0x10], 0
je 0x18001e176
lea rax, [rbp - 0x10]
nop dword [rax]
nop word [rax + rax]
lea r13d, [r13 + 1]
lea rax, [rax + 2]
cmp word [rax], 0
jne 0x18001e150
lea eax, [r13 + 1]
mov dword [rbp - 0x78], eax
mov dword [rbp - 0x74], eax
test eax, eax
je 0x18001e17a
lea rax, [rbp - 0x10]
mov qword [rbp - 0x80], rax
jmp 0x18001e17a
mov qword [rbp - 0x78], r13
movups xmm0, xmmword [r14 + 0xb0]
movaps xmmword [rbp - 0x40], xmm0
movups xmm1, xmmword [rsp + 0x70]
movaps xmmword [rbp - 0x50], xmm1
movaps xmm0, xmmword [rbp - 0x80]
jmp 0x18001e1b1
movups xmm0, xmmword [r14 + 0xb0]
movaps xmmword [rbp - 0x40], xmm0
unpcklpd xmm1, xmm2
movdqa xmmword [rbp - 0x50], xmm1
movaps xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp - 0x60], xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0x58], xmm1
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x10], xmm1
movzx eax, byte [0x1800a5a71]
test al, al
je 0x18001e1d9
movaps xmm0, xmm11
jmp 0x18001e1dd
movaps xmm0, xmm12
xorps xmm1, xmm1
test al, al
cvtss2sd xmm1, xmm0
jne 0x18001e1ec
movaps xmm11, xmm12
lea rax, [rbp + 0x58]
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x48], 1
lea rax, [rbp + 0x20]
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x38], rax
movss dword [rsp + 0x30], xmm13
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], rax
xorps xmm0, xmm0
lea rax, [rsp + 0x70]
cvtss2sd xmm0, xmm11
mov qword [rsp + 0x20], rax
movsd qword [rsp + 0x70], xmm0
movsd qword [rsp + 0x78], xmm1
lea r9, [rbp - 0x50]
lea r8, [rbp - 0x60]
mov rdx, qword [0x1800a7650]
mov rcx, qword [r14 + 0x1b0]
call fcn.18006abb0
lea rdx, [0x1800a8428]
mov rcx, qword [r14 + 0x1c0]
call fcn.18006f890
test al, al
je 0x18001e275
mov byte [r15], 0
movsd xmm0, qword [r14 + 0x110]
addsd xmm0, xmm14
movsd qword [r14 + 0x110], xmm0
movsd xmm0, qword [r14 + 0x118]
addsd xmm0, qword [0x18009d708]
movsd qword [r14 + 0x118], xmm0
xor al, al
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.180079a30
lea r11, [rsp + 0x248]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
movaps xmm14, xmmword [r11 - 0x98]
movaps xmm15, xmmword [r11 - 0xa8]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret