Function at 0x1800012e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xc0
xor eax, eax
movsxd r14, edx
mov qword [rsp + 0x118], rbx
xor esi, esi
mov rbx, r14
mov dword [rbp + 0x77], esi
shl rbx, 4
mov rdx, r9
add rbx, rcx
mov word [rbp - 0x79], si
lea rcx, [rbp - 0x79]
mov qword [rbp - 0x77], rax
mov rdi, r8
mov dword [rbp - 0x6f], eax
mov word [rbp - 0x6b], ax
call fcn.180001ee0
movzx eax, word [rbx]
mov r15d, 1
xor word [rbp - 0x79], ax
movzx eax, word [rbx + 2]
xor word [rbp - 0x77], ax
movzx eax, word [rbx + 4]
xor word [rbp - 0x75], ax
movzx eax, word [rbx + 6]
xor word [rbp - 0x73], ax
movzx eax, word [rbx + 8]
xor word [rbp - 0x71], ax
movzx eax, word [rbx + 0xa]
xor word [rbp - 0x6f], ax
movzx eax, word [rbx + 0xc]
xor word [rbp - 0x6d], ax
movzx eax, word [rbx + 0xe]
sub rbx, 0x10
xor word [rbp - 0x6b], ax
cmp r14d, r15d
jle 0x18000151a
movaps xmmword [rsp + 0xb0], xmm6
dec r14d
movaps xmmword [rsp + 0xa0], xmm7
movdqa xmm7, xmmword [str.________pppppppp]
movaps xmmword [rsp + 0x90], xmm8
movdqa xmm8, xmmword [0x180004090]
movaps xmmword [rsp + 0x80], xmm9
movdqa xmm9, xmmword [0x1800040a0]
movaps xmmword [rsp + 0x70], xmm10
movdqa xmm10, xmmword [0x1800040b0]
movaps xmmword [rsp + 0x60], xmm11
movdqa xmm11, xmmword [0x180004080]
movaps xmmword [rsp + 0x50], xmm12
movdqa xmm12, xmmword [0x180004070]
movaps xmmword [rsp + 0x40], xmm13
movdqa xmm13, xmmword [0x180004050]
movd xmm6, r15d
movdqu xmm2, xmmword [rbp - 0x79]
lea rcx, [rbp - 0x79]
mov edx, r15d
movdqa xmm3, xmm10
movdqa xmm0, xmm11
pand xmm0, xmm2
pand xmm3, xmm2
psllw xmm3, xmm6
movdqa xmm1, xmm2
por xmm3, xmm0
movdqa xmm0, xmm12
pand xmm0, xmm2
psrlw xmm1, xmm6
psllw xmm3, xmm6
pand xmm1, xmm7
por xmm3, xmm0
movdqa xmm0, xmm8
pand xmm0, xmm2
por xmm1, xmm0
movdqa xmm0, xmm9
pand xmm0, xmm2
psrlw xmm1, xmm6
psllw xmm3, xmm6
por xmm1, xmm0
movdqa xmm0, xmm13
psrlw xmm1, xmm6
pand xmm0, xmm2
por xmm3, xmm1
por xmm3, xmm0
movdqu xmmword [rbp - 0x79], xmm3
call fcn.180002300
movzx eax, word [rbx]
lea rcx, [rbp - 0x79]
xor word [rbp - 0x79], ax
mov edx, r15d
movzx eax, word [rbx + 2]
xor word [rbp - 0x77], ax
movzx eax, word [rbx + 4]
xor word [rbp - 0x75], ax
movzx eax, word [rbx + 6]
xor word [rbp - 0x73], ax
movzx eax, word [rbx + 8]
xor word [rbp - 0x71], ax
movzx eax, word [rbx + 0xa]
xor word [rbp - 0x6f], ax
movzx eax, word [rbx + 0xc]
xor word [rbp - 0x6d], ax
movzx eax, word [rbx + 0xe]
sub rbx, 0x10
xor word [rbp - 0x6b], ax
call fcn.180002060
sub r14, r15
jne 0x180001404
movaps xmm13, xmmword [rsp + 0x40]
movaps xmm12, xmmword [rsp + 0x50]
movaps xmm11, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
movaps xmm9, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0xb0]
movdqu xmm3, xmmword [rbp - 0x79]
lea rcx, [rbp - 0x79]
mov edx, r15d
movdqa xmm4, xmmword [0x1800040b0]
movdqa xmm0, xmmword [0x180004080]
pand xmm4, xmm3
pand xmm0, xmm3
movd xmm2, r15d
psllw xmm4, xmm2
movdqa xmm1, xmm3
por xmm4, xmm0
movdqa xmm0, xmmword [0x180004070]
pand xmm0, xmm3
psrlw xmm1, xmm2
psllw xmm4, xmm2
pand xmm1, xmmword [str.________pppppppp]
por xmm4, xmm0
movdqa xmm0, xmmword [0x180004090]
pand xmm0, xmm3
por xmm1, xmm0
movdqa xmm0, xmmword [0x1800040a0]
pand xmm0, xmm3
psrlw xmm1, xmm2
psllw xmm4, xmm2
por xmm1, xmm0
movdqa xmm0, xmmword [0x180004050]
psrlw xmm1, xmm2
pand xmm0, xmm3
por xmm4, xmm1
por xmm4, xmm0
movdqu xmmword [rbp - 0x79], xmm4
call fcn.180002300
movzx r10d, word [rbp - 0x79]
xor r10w, word [rbx]
movzx r11d, word [rbp - 0x77]
xor r11w, word [rbx + 2]
movzx eax, word [rbp - 0x6d]
xor ax, word [rbx + 0xc]
movzx r14d, word [rbp - 0x75]
xor r14w, word [rbx + 4]
movzx r15d, word [rbp - 0x73]
xor r15w, word [rbx + 6]
movzx r12d, word [rbp - 0x71]
xor r12w, word [rbx + 8]
movzx r13d, word [rbp - 0x6f]
xor r13w, word [rbx + 0xa]
movzx ecx, word [rbp - 0x6b]
xor cx, word [rbx + 0xe]
mov rbx, qword [rsp + 0x118]
mov word [rbp + 0x6f], cx
mov word [rbp + 0x67], ax
nop dword [rax]
nop dword [rax + rax]
mov eax, esi
mov r9d, 4
movzx esi, word [rbp + 0x67]
nop dword [rax]
movzx r8d, cx
movzx edx, si
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, r11w
shr dx, cl
add r8b, r8b
and dl, 1
or r8b, dl
movzx edx, r10w
shr dx, cl
add r8b, r8b
movzx ecx, word [rbp + 0x6f]
and dl, 1
or r8b, dl
mov byte [rdi], r8b
inc rdi
sub r9, 1
jne 0x180001630
mov esi, dword [rbp + 0x77]
inc esi
mov dword [rbp + 0x77], esi
cmp esi, 4
jl 0x180001620
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret