Function at 0x180002860
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
lea rbp, [rax - 0x5f]
sub rsp, 0xd0
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 [rsp + 0x70], xmm11
movaps xmmword [rsp + 0x60], xmm12
movaps xmmword [rsp + 0x50], xmm13
mov rax, qword [0x18001f018]
xor rax, rsp
mov qword [rbp - 0x69], rax
xorps xmm0, xmm0
lea rdi, [rcx + 0xe0]
lea rcx, [rsp + 0x28]
mov rdx, r9
movups xmmword [rsp + 0x28], xmm0
mov rbx, r8
call fcn.180001900
movzx eax, word [rdi]
mov r14d, 1
xor word [rsp + 0x28], ax
movzx eax, word [rdi + 2]
xor word [rbp - 0x7f], ax
movzx eax, word [rdi + 4]
lea esi, [r14 + 0xc]
xor word [rbp - 0x7d], ax
movzx eax, word [rdi + 6]
xor word [rbp - 0x7b], ax
movzx eax, word [rdi + 8]
xor word [rbp - 0x79], ax
movzx eax, word [rdi + 0xa]
xor word [rbp - 0x77], ax
movzx eax, word [rdi + 0xc]
xor word [rbp - 0x75], ax
movzx eax, word [rdi + 0xe]
xor word [rbp - 0x73], ax
movdqa xmm7, xmmword [str.________pppppppp]
sub rdi, 0x10
movdqa xmm8, xmmword [0x18001c5e0]
movdqa xmm9, xmmword [0x18001c5f0]
movdqa xmm10, xmmword [0x18001c600]
movdqa xmm11, xmmword [0x18001c5d0]
movdqa xmm12, xmmword [0x18001c5c0]
movdqa xmm13, xmmword [0x18001c5a0]
movd xmm6, r14d
nop word [rax + rax]
movdqu xmm2, xmmword [rsp + 0x28]
mov edx, r14d
lea rcx, [rsp + 0x28]
movdqa xmm3, xmm2
movdqa xmm0, xmm2
pand xmm3, xmm10
pand xmm0, xmm11
psllw xmm3, xmm6
movdqa xmm1, xmm2
por xmm3, xmm0
movdqa xmm0, xmm2
pand xmm0, xmm12
psrlw xmm1, xmm6
psllw xmm3, xmm6
pand xmm1, xmm7
por xmm3, xmm0
movdqa xmm0, xmm2
pand xmm0, xmm8
por xmm1, xmm0
movdqa xmm0, xmm2
psrlw xmm1, xmm6
psllw xmm3, xmm6
pand xmm0, xmm9
pand xmm2, xmm13
por xmm1, xmm0
psrlw xmm1, xmm6
por xmm3, xmm1
por xmm3, xmm2
movdqu xmmword [rsp + 0x28], xmm3
call fcn.180001a80
movzx eax, word [rdi]
lea rcx, [rsp + 0x28]
xor word [rsp + 0x28], ax
movzx eax, word [rdi + 2]
lea rdi, [rdi - 0x10]
xor word [rbp - 0x7f], ax
movzx eax, word [rdi + 0x14]
xor word [rbp - 0x7d], ax
movzx eax, word [rdi + 0x16]
xor word [rbp - 0x7b], ax
movzx eax, word [rdi + 0x18]
xor word [rbp - 0x79], ax
movzx eax, word [rdi + 0x1a]
xor word [rbp - 0x77], ax
movzx eax, word [rdi + 0x1c]
xor word [rbp - 0x75], ax
movzx eax, word [rdi + 0x1e]
xor word [rbp - 0x73], ax
call fcn.180002140
sub rsi, r14
jne 0x180002970
movdqu xmm2, xmmword [rsp + 0x28]
mov edx, r14d
lea rcx, [rsp + 0x28]
movdqa xmm3, xmm2
movdqa xmm0, xmm2
pand xmm3, xmm10
pand xmm0, xmm11
psllw xmm3, xmm6
movdqa xmm1, xmm2
por xmm3, xmm0
movdqa xmm0, xmm2
pand xmm0, xmm12
psrlw xmm1, xmm6
psllw xmm3, xmm6
pand xmm1, xmm7
por xmm3, xmm0
movdqa xmm0, xmm2
pand xmm0, xmm8
por xmm1, xmm0
movdqa xmm0, xmm2
psrlw xmm1, xmm6
psllw xmm3, xmm6
pand xmm0, xmm9
pand xmm2, xmm13
por xmm1, xmm0
psrlw xmm1, xmm6
por xmm3, xmm1
por xmm3, xmm2
movdqu xmmword [rsp + 0x28], xmm3
call fcn.180001a80
movzx r11d, word [rsp + 0x28]
movzx eax, word [rbp - 0x75]
xor ax, word [rdi + 0xc]
movzx ecx, word [rbp - 0x73]
xor cx, word [rdi + 0xe]
movzx esi, word [rbp - 0x7f]
movzx r14d, word [rbp - 0x7d]
movzx r15d, word [rbp - 0x7b]
movzx r12d, word [rbp - 0x79]
movzx r13d, word [rbp - 0x77]
xor r11w, word [rdi]
xor si, word [rdi + 2]
xor r14w, word [rdi + 4]
xor r15w, word [rdi + 6]
xor r12w, word [rdi + 8]
xor r13w, word [rdi + 0xa]
xor r9d, r9d
mov word [rsp + 0x22], ax
mov dword [rsp + 0x24], r9d
mov word [rsp + 0x20], cx
nop dword [rax]
mov eax, r9d
mov r10d, 4
movzx r9d, word [rsp + 0x22]
nop
movzx r8d, cx
movzx edx, r9w
movzx ecx, ax
add eax, 4
shr dx, cl
and dl, 1
shr r8w, cl
add r8b, r8b
or r8b, dl
movzx edx, r13w
shr dx, cl
add r8b, r8b
and dl, 1
or r8b, dl
movzx edx, r12w
shr dx, cl
add r8b, r8b
and dl, 1
or r8b, dl
movzx edx, r15w
shr dx, cl
add r8b, r8b
and dl, 1
or r8b, dl
movzx edx, r14w
shr dx, cl
add r8b, r8b
and dl, 1
or r8b, dl
movzx edx, si
shr dx, cl
add r8b, r8b
and dl, 1
or r8b, dl
movzx edx, r11w
shr dx, cl
add r8b, r8b
movzx ecx, word [rsp + 0x20]
and dl, 1
or r8b, dl
mov byte [rbx], r8b
inc rbx
sub r10, 1
jne 0x180002b40
mov r9d, dword [rsp + 0x24]
inc r9d
mov dword [rsp + 0x24], r9d
cmp r9d, 4
jl 0x180002b30
mov rcx, qword [rbp - 0x69]
xor rcx, rsp
call fcn.180004360
lea r11, [rsp + 0xd0]
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]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret