Function at 0x180013810
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r8, qword [rcx]
lea r12, [rcx + 0x18]
mov rbx, rdx
mov r15, rcx
xor edx, edx
cmp qword [rcx + 8], r8
je 0x18001385e
nop
movzx eax, byte [r8 + rdx]
mov rcx, qword [r12]
mov byte [rdx + rcx], al
inc rdx
mov r8, qword [r15]
mov rax, qword [r15 + 8]
sub rax, r8
cmp rdx, rax
jb 0x180013840
mov r8b, 0x10
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r12]
add r8b, 0xff
movzx ecx, r8b
lea rdx, [rcx + rbx]
movzx ecx, byte [rcx + rax]
xor byte [rdx], cl
test r8b, r8b
jne 0x180013870
mov byte [rsp + 0x68], 1
lea r9, [rbx + 3]
mov byte [rsp + 0x70], 1
lea r13, [rbx + 0x10]
nop dword [rax]
mov r8b, 0x10
mov rdx, r13
nop word [rax + rax]
movzx eax, byte [rdx - 1]
lea rdx, [rdx - 1]
movzx ecx, byte [rax + r15 + 0x71]
mov byte [rdx], cl
add r8b, 0xff
jne 0x1800138b0
movzx eax, byte [rbx + 5]
xor r15b, r15b
movzx ecx, byte [rbx + 1]
mov r13, r9
mov byte [rbx + 1], al
movzx eax, byte [rbx + 9]
mov byte [rbx + 5], al
movzx eax, byte [rbx + 0xd]
mov byte [rbx + 9], al
movzx eax, byte [rbx + 2]
mov byte [rbx + 0xd], cl
movzx ecx, byte [rbx + 0xa]
mov byte [rbx + 0xa], al
movzx eax, byte [rbx + 0xf]
mov byte [rbx + 2], cl
movzx ecx, byte [r9]
mov byte [r9], al
movzx eax, byte [rbx + 0xb]
mov byte [rbx + 0xf], al
movzx eax, byte [rbx + 7]
mov byte [rbx + 0xb], al
movzx eax, byte [rbx + 6]
mov byte [rbx + 7], cl
movzx ecx, byte [rbx + 0xe]
mov byte [rbx + 0xe], al
mov byte [rbx + 6], cl
movzx esi, byte [r13 - 3]
movzx r14d, byte [r13]
movzx edi, byte [r13 - 1]
lea r13, [r13 + 4]
movzx r10d, r15b
movzx r11d, r14b
xor r11b, dil
movzx ebp, r11b
movzx r9d, byte [r10 + rbx + 1]
xor bpl, r9b
movzx r8d, r9b
xor r8b, sil
xor bpl, sil
movzx eax, r8b
add al, al
movzx ecx, al
movzx eax, cl
xor al, 0x1b
movzx edx, al
test r8b, r8b
movzx r8d, dil
cmovns edx, ecx
xor r8b, r9b
xor dl, bpl
movzx eax, r8b
xor dl, sil
add al, al
mov byte [r13 - 7], dl
movzx ecx, al
movzx eax, cl
xor al, 0x1b
movzx edx, al
test r8b, r8b
movzx eax, r11b
movzx r8d, r14b
cmovns edx, ecx
add al, al
xor dl, r9b
movzx ecx, al
xor dl, bpl
movzx eax, cl
xor al, 0x1b
mov byte [r10 + rbx + 1], dl
movzx edx, al
test r11b, r11b
cmovns edx, ecx
xor r8b, sil
xor dl, bpl
movzx eax, r8b
xor dl, dil
add al, al
mov byte [r13 - 5], dl
movzx ecx, al
movzx eax, cl
xor al, 0x1b
test r8b, r8b
movzx edx, al
cmovns edx, ecx
add r15b, 4
xor dl, bpl
xor dl, r14b
mov byte [r13 - 4], dl
cmp r15b, 0x10
jb 0x180013920
movzx esi, byte [rsp + 0x68]
lea r13, [rbx + 0x10]
mov r15, qword [rsp + 0x60]
movzx edi, sil
and dil, 1
jne 0x180013a1b
lea rdx, [rsp + 0x70]
mov rcx, r15
call fcn.180013b20
mov dl, 0x10
mov r8, r13
add dl, 0xff
lea r8, [r8 - 1]
movzx ecx, dl
test dil, dil
lea eax, [rcx + 0x10]
cmove eax, ecx
mov ecx, eax
mov rax, qword [r12]
movzx ecx, byte [rcx + rax]
xor byte [r8], cl
test dl, dl
jne 0x180013a20
inc sil
lea r9, [rbx + 3]
mov byte [rsp + 0x68], sil
cmp sil, 0xe
jb 0x1800138a0
mov r8b, 0x10
mov rdx, r13
movzx eax, byte [rdx - 1]
lea rdx, [rdx - 1]
movzx ecx, byte [rax + r15 + 0x71]
mov byte [rdx], cl
add r8b, 0xff
jne 0x180013a60
movzx ecx, byte [rbx + 1]
lea rdx, [rsp + 0x70]
movzx eax, byte [rbx + 5]
mov byte [rbx + 1], al
movzx eax, byte [rbx + 9]
mov byte [rbx + 5], al
movzx eax, byte [rbx + 0xd]
mov byte [rbx + 9], al
movzx eax, byte [rbx + 2]
mov byte [rbx + 0xd], cl
movzx ecx, byte [rbx + 0xa]
mov byte [rbx + 0xa], al
movzx eax, byte [rbx + 0xf]
mov byte [rbx + 2], cl
movzx ecx, byte [rbx + 3]
mov byte [rbx + 3], al
movzx eax, byte [rbx + 0xb]
mov byte [rbx + 0xf], al
movzx eax, byte [rbx + 7]
mov byte [rbx + 7], cl
movzx ecx, byte [rbx + 0xe]
mov byte [rbx + 0xb], al
movzx eax, byte [rbx + 6]
mov byte [rbx + 6], cl
mov rcx, r15
mov byte [rbx + 0xe], al
call fcn.180013b20
mov dl, 0x10
and sil, 1
nop dword [rax]
add dl, 0xff
lea r13, [r13 - 1]
movzx ecx, dl
test sil, sil
lea eax, [rcx + 0x10]
cmove eax, ecx
mov ecx, eax
mov rax, qword [r12]
movzx ecx, byte [rcx + rax]
xor byte [r13], cl
test dl, dl
jne 0x180013ae0
mov rbx, qword [rsp + 0x78]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret