Function at 0x140015a60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov rdi, qword [rsp + 0xa0]
mov eax, 1
mov rsi, r9
mov r12, qword [rdi]
cmp qword [r9], r12
cmova r12, qword [r9]
cmp r12, rax
cmovb r12, rax
mov rcx, r12
call fcn.140017260
mov rcx, r12
mov rbx, rax
call fcn.140017260
mov rdx, rsi
mov rcx, rbx
mov r14, rax
call fcn.140016000
mov rdx, rdi
mov rcx, r14
call fcn.140016000
lea rcx, [r12 + 1]
call fcn.140017260
lea rcx, [r12 + 1]
mov qword [rsp + 0x20], rax
mov r15, rax
call fcn.140017260
mov rcx, r12
mov qword [rsp + 0x28], rax
mov r13, rax
call fcn.140017260
shl r12, 7
mov rsi, rax
mov qword [rsp + 0x98], rax
lea rcx, [r12 + r12]
shr rcx, 6
call fcn.140017260
mov qword [rsp + 0xa0], rax
mov rbp, rax
test r12, r12
je 0x140015bd8
xor r13d, r13d
mov r15, rax
nop
mov rdx, rbx
mov rcx, r14
call fcn.140015e90
mov rcx, qword [rbx + 8]
mov edx, dword [rcx]
mov r8d, edx
mov rcx, qword [r14 + 8]
and r8d, 1
mov ebp, r8d
xor ebp, eax
mov esi, dword [rcx]
mov rcx, rbx
and esi, edx
mov rdx, r14
and esi, 1
and ebp, esi
xor ebp, r8d
mov r8d, ebp
call fcn.140015f90
mov r9d, esi
mov r8, r14
mov rdx, rbx
mov rcx, rbx
call fcn.140015f50
mov r8d, 1
mov rdx, rbx
mov rcx, rbx
call fcn.140017e00
lea rdi, [r13*2]
mov r8d, esi
mov rdx, rdi
mov rcx, r15
call fcn.140018240
lea rdx, [rdi + 1]
mov r8d, ebp
mov rcx, r15
call fcn.140018240
inc r13
cmp r13, r12
jb 0x140015b30
mov r15, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov rbp, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x98]
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x140015bf3
mov r8, r14
mov rdx, rbx
mov rcx, rax
call fcn.140015890
cmp qword [rsp + 0x80], 0
jne 0x140015c0d
cmp qword [rsp + 0x88], 0
je 0x140015da3
xor edx, edx
mov rcx, rbx
call fcn.140016940
mov ecx, eax
xor edx, edx
mov rax, qword [r15 + 8]
mov qword [rax], rcx
mov rcx, r14
call fcn.140016940
mov ecx, eax
mov rdx, r15
mov rax, qword [r13 + 8]
mov qword [rax], rcx
mov rcx, rbx
call fcn.140016000
mov rdx, r13
mov rcx, r14
call fcn.140016000
mov rax, qword [r14 + 8]
mov edi, dword [rax]
mov dword [rsp + 0x90], edi
test r12, r12
je 0x140015d35
nop
dec r12
mov rcx, rbp
lea rdi, [r12 + r12]
mov rdx, rdi
call fcn.140016940
lea rdx, [rdi + 1]
mov rcx, rbp
mov esi, eax
call fcn.140016940
mov rcx, qword [r15 + 8]
mov r8, r14
mov rdx, r15
mov ebp, eax
mov edi, dword [rcx]
mov rcx, r15
and edi, 1
mov r9d, edi
call fcn.140015ed0
mov r9d, edi
mov r8, rbx
mov rdx, r13
mov rcx, r13
call fcn.140015ed0
mov edi, 1
mov rdx, r15
mov r8d, edi
mov rcx, r15
call fcn.140017e00
mov r9d, esi
mov r8, r15
mov rdx, r13
mov rcx, r13
call fcn.140015ed0
mov r8d, edi
mov rdx, rbx
mov rcx, rbx
call fcn.140017130
mov r9d, esi
mov r8, r14
mov rdx, rbx
mov rcx, rbx
call fcn.140015ed0
mov r8d, ebp
mov rdx, r14
mov rcx, rbx
call fcn.140015f90
mov r8d, ebp
mov rdx, r13
mov rcx, r15
call fcn.140015f90
mov edi, dword [rsp + 0x90]
xor edi, ebp
mov rbp, qword [rsp + 0xa0]
mov dword [rsp + 0x90], edi
test r12, r12
jne 0x140015c60
mov rsi, qword [rsp + 0x98]
mov r8, r15
mov rdx, r14
mov rcx, rsi
call fcn.140018320
mov r9d, edi
mov r8, rsi
mov rdx, r15
mov rcx, r15
call fcn.1400181d0
mov r8, r13
mov rdx, rbx
mov rcx, rsi
call fcn.140018320
mov r9d, edi
mov r8, rsi
mov rdx, r13
mov rcx, r13
call fcn.1400181d0
mov rax, qword [rsp + 0x80]
test rax, rax
je 0x140015d8b
mov rdx, r15
mov rcx, rax
call fcn.140016000
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x140015da3
mov rdx, r13
mov rcx, rax
call fcn.140016000
mov rcx, rbx
call fcn.140016580
mov rcx, r14
call fcn.140016580
mov rcx, r15
call fcn.140016580
mov rcx, r13
call fcn.140016580
mov rcx, rsi
call fcn.140016580
mov rcx, qword [rsp + 0xa0]
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.140016580