Function at 0x1401f8150
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x50
lea rbp, [rsp + 0x50]
mov qword [rbp - 8], 0xfffffffffffffffe
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov r14, qword [rcx]
mov r15, qword [r14]
cmp r15, r14
je 0x1401f81a3
nop
cmp rbx, rdi
je 0x1401f8278
mov eax, dword [rbx + 0x18]
mov dword [r15 + 0x18], eax
mov rax, qword [rbx + 0x10]
mov qword [r15 + 0x10], rax
mov rbx, qword [rbx]
mov r15, qword [r15]
cmp r15, r14
jne 0x1401f8180
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x20], 0
cmp rbx, rdi
je 0x1401f8339
mov ecx, 0x20
call fcn.1404e9d4c
mov ecx, dword [rbx + 0x18]
mov dword [rax + 0x18], ecx
mov rcx, qword [rbx + 0x10]
mov qword [rax + 0x10], rcx
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x20]
mov rcx, rax
xor rcx, 1
and eax, 1
lea rax, [rcx + rax*2]
mov qword [rbp - 0x20], rax
mov rbx, qword [rbx]
cmp rbx, rdi
je 0x1401f826b
movabs r14, 0xb8d957ad8b086203
movabs r15, 0x38d957ad8b086203
movabs r12, 0x4726a85274f79dfe
nop word cs:[rax + rax]
mov ecx, 0x20
call fcn.1404e9d4c
mov ecx, dword [rbx + 0x18]
mov dword [rax + 0x18], ecx
mov rcx, qword [rbx + 0x10]
mov qword [rax + 0x10], rcx
mov rcx, qword [rbp - 0x18]
mov qword [rcx], rax
mov rcx, qword [rbp - 0x18]
mov qword [rax + 8], rcx
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x20]
mov rcx, rax
xor rcx, r14
and rax, r15
lea rax, [rcx + rax*2]
add rax, r12
mov qword [rbp - 0x20], rax
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x1401f8220
mov ecx, dword [0x1406941ec]
cmp ecx, 0x13
jle 0x1401f82b3
jmp 0x1401f82c4
mov rax, qword [r15 + 8]
mov qword [rax], r14
mov qword [r14 + 8], rax
mov rdi, 0xffffffffffffffff
nop word [rax + rax]
mov rcx, r15
mov r15, qword [r15]
mov edx, 0x20
call fcn.1400a75d0
cmp r15, r14
je 0x1401f82aa
dec rdi
jmp 0x1401f8290
add qword [rsi + 8], rdi
jmp 0x1401f842d
mov ecx, dword [0x1406941e8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x1401f82e7
mov ecx, 0xbe6f1751
nop dword [rax]
mov edx, dword [0x1406941ec]
mov r8d, dword [0x14061eef0]
add r8d, ecx
cmp edx, r8d
jge 0x1401f82d0
jmp 0x1401f82b3
test rax, rax
je 0x1401f834d
mov rcx, qword [rsi]
mov rdx, qword [rbp - 0x18]
mov r8, qword [rbp - 0x10]
mov r9, qword [rcx + 8]
mov qword [r8 + 8], r9
mov qword [r9], r8
mov qword [rdx], rcx
mov qword [rcx + 8], rdx
mov rcx, qword [rsi + 8]
mov rdx, rax
not rdx
mov r8, rcx
and r8, rdx
or rdx, rcx
not rdx
or rdx, r8
and rcx, rax
add rcx, rcx
mov rax, rdx
xor rax, rcx
and rcx, rdx
lea rax, [rax + rcx*2]
mov qword [rsi + 8], rax
mov eax, dword [0x1406941ec]
cmp eax, 0x59
jg 0x1401f8420
jmp 0x1401f83ea
mov eax, 0xbe6f1719
add eax, dword [0x14061eef0]
lea rcx, [fcn.1401f8150]
add ecx, ecx
add ecx, 0x3a20
xor ecx, eax
not ecx
test ecx, eax
jne 0x1401f8384
mov rax, qword [rbp - 0x20]
mov ecx, dword [0x1406941e8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x1401f83a4
mov eax, 0xbe6f174b
nop dword [rax]
mov ecx, dword [0x1406941ec]
mov edx, dword [0x14061eef0]
add edx, eax
cmp ecx, edx
jge 0x1401f8390
jmp 0x1401f836f
test rax, rax
je 0x1401f8339
mov rax, qword [rbp - 0x10]
mov qword [rax + 8], 0
mov rax, qword [rbp - 0x18]
mov qword [rax], 0
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x1401f8339
nop dword [rax]
mov rsi, qword [rcx]
mov edx, 0x20
call fcn.1400a75d0
mov rcx, rsi
test rsi, rsi
jne 0x1401f83d0
jmp 0x1401f8339
mov eax, dword [0x14061eef0]
mov ecx, eax
xor ecx, 0xbe6f1719
and eax, 0x3e6f1719
lea eax, [rcx + rax*2]
lea rcx, [fcn.1401f8150]
add ecx, ecx
add ecx, 0x2580
test ecx, eax
je 0x1401f842d
nop word cs:[rax + rax]
mov eax, dword [0x1406941ec]
cmp eax, 0x61
jge 0x1401f8420
jmp 0x1401f83ea
add rsp, 0x50
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret