Function at 0x14006b158
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
lea rbp, [rsp + 0x30]
mov rax, qword [0x1402b9f00]
xor rax, rbp
mov qword [rbp + 0x40], rax
mov eax, dword [rcx + 8]
xor ebx, ebx
mov dword [rbp + 0x10], eax
mov r13, r8
neg eax
movsxd r14, r9d
mov dword [rbp], edx
mov rdi, rcx
sbb r15w, r15w
mov qword [rbp + 0x28], rcx
not r15w
mov qword [rbp + 8], rbx
and r15w, 0x80
mov qword [rbp + 0x20], rbx
lea esi, [rbx + 1]
mov r12d, ebx
cmp dword [rcx + 0x10], ebx
jne 0x14006b334
cmp dword [rcx + 0x48], ebx
je 0x14006b313
cmp dword [rcx + 0x4c], r14d
jge 0x14006b313
cmp dword [rcx + 0x58], ebx
jne 0x14006b2ac
lea r9, [rbp + 8]
xor r8d, r8d
mov rdx, r14
mov rcx, r13
call fcn.14004db94
test eax, eax
jne 0x14006b313
mov rbx, qword [rbp + 8]
cmp rbx, r14
jae 0x14006b292
mov eax, 0xffffffff
cmp rbx, rax
jae 0x14006b225
cmp rax, rbx
je 0x14006b225
mov eax, 0xffffffe7
cmp rbx, rax
jae 0x14006b225
lea rcx, [rbx + 0x18]
call fcn.1401c9318
jmp 0x14006b227
xor eax, eax
movsxd rdx, ebx
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
call fcn.14008eba4
lea r9, [rbp + 8]
mov qword [rbp + 0x20], rax
mov r8, rax
mov rdx, r14
mov rcx, r13
mov r12, rax
call fcn.14004db94
mov ebx, dword [rbp]
test eax, eax
jne 0x14006b316
add qword [rdi + 0x68], r14
lea rcx, [rbp + 0x30]
and dword [rdi + 0x5c], eax
movzx edx, r15w
and dword [rdi + 0x58], eax
movzx r8d, bx
mov r14, qword [rbp + 8]
mov eax, 0xc000
or dx, ax
mov r9d, r14d
mov r13, r12
call fcn.1400a963c
movsxd r12, eax
add qword [rdi + 0x68], r12
jmp 0x14006b2c1
add dword [rdi + 0x5c], esi
mov eax, dword [rdi + 0x5c]
mov ebx, dword [rbp]
cmp eax, dword [rdi + 0x54]
jle 0x14006b316
mov eax, dword [rdi + 0x50]
and dword [rdi + 0x5c], r12d
mov dword [rdi + 0x58], eax
jmp 0x14006b2c1
cmp dword [rcx + 0x4c], r14d
jge 0x14006b313
mov eax, dword [rcx + 0x58]
mov ebx, dword [rbp]
test eax, eax
jle 0x14006b316
dec eax
mov dword [rcx + 0x58], eax
test r12d, r12d
je 0x14006b316
xor ebx, ebx
cmp dword [rbp + 0x10], ebx
jne 0x14006b46f
lea eax, [r12 + 4]
add eax, r14d
movsxd r15, eax
mov eax, 0xffffffc7
cmp r15, rax
jae 0x14006b357
lea rax, [r15 + 0x38]
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x14006b2fd
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401c1690
sub rsp, rcx
lea rcx, [rsp + 0x30]
jmp 0x14006b35a
mov ebx, dword [rbp]
mov edx, 0x8000
lea rcx, [rbp + 0x30]
or dx, r15w
mov r9d, r14d
movzx r8d, bx
call fcn.1400a963c
mov r12d, eax
jmp 0x14006b2c6
mov edx, 0x8000
mov dword [rcx + 0x10], ebx
or dx, r15w
lea rcx, [rbp + 0x30]
xor r8d, r8d
mov r9d, r14d
call fcn.1400a963c
mov r12d, eax
jmp 0x14006b2c8
mov rcx, rbx
mov r9d, esi
mov r8d, 8
mov rdx, r15
call fcn.14008eba4
mov rbx, rax
lea r8, [rbp + 0x30]
lea rcx, [rax + 8]
mov qword [rax], rcx
movsxd rax, r12d
mov r9, rax
mov rdx, rax
lea rcx, [rax + rbx]
mov qword [rbp + 0x18], rcx
mov rcx, rbx
call section..text
mov rcx, qword [rbp + 0x18]
mov edx, 4
call fcn.1400cd280
mov r11, qword [rbp + 0x18]
mov eax, dword [r11]
test r14d, r14d
jle 0x14006b436
movsxd r8, r14d
xor edx, edx
mov rcx, r8
movsxd r10, r12d
sar rcx, 2
test rcx, rcx
jle 0x14006b3ef
mov r11, r10
mov r9, r13
sub r11, r13
mov edx, ecx
add r11, rbx
mov edi, eax
mov eax, edi
xor eax, dword [r9]
mov dword [r11 + r9 + 4], eax
lea r9, [r9 + 4]
sub rcx, rsi
jne 0x14006b3d4
mov rdi, qword [rbp + 0x28]
lea r11, [r10 + rbx]
shl edx, 2
movsxd rcx, edx
cmp rcx, r8
jge 0x14006b436
sub r13, r10
lea rax, [rcx + r10]
lea r9, [rbx + 4]
sub r13, rbx
add r9, rax
sub r8, rcx
mov eax, edx
and eax, 0x80000003
jge 0x14006b41e
sub eax, esi
or eax, 0xfffffffc
add eax, esi
cdqe
add edx, esi
mov cl, byte [rax + r11]
xor cl, byte [r9 + r13 - 4]
mov byte [r9], cl
add r9, rsi
sub r8, rsi
jne 0x14006b40e
mov rcx, qword [rdi + 0x88]
call fcn.14008edd4
test eax, eax
je 0x14006b468
mov rax, qword [rdi + 0x88]
test rax, rax
je 0x14006b457
mov rcx, qword [rax]
jmp 0x14006b459
xor ecx, ecx
mov r9, r15
mov r8, rbx
xor edx, edx
call fcn.14007da3c
mov esi, eax
xor ebx, ebx
jmp 0x14006b50a
mov rcx, qword [rdi]
call fcn.14009778c
test eax, eax
je 0x14006b514
mov rcx, qword [rdi + 0x88]
call fcn.14008edd4
test r14d, r14d
jle 0x14006b4e2
test eax, eax
je 0x14006b4b6
mov rax, qword [rdi + 0x88]
test rax, rax
je 0x14006b4a5
mov rcx, qword [rax]
jmp 0x14006b4a8
mov rcx, rbx
movsxd r9, r12d
lea r8, [rbp + 0x30]
xor edx, edx
call fcn.14007da3c
mov rcx, qword [rdi + 0x88]
call fcn.14008edd4
test eax, eax
je 0x14006b50a
mov rax, qword [rdi + 0x88]
test rax, rax
je 0x14006b4d7
mov rcx, qword [rax]
jmp 0x14006b4da
mov rcx, rbx
movsxd r9, r14d
mov r8, r13
jmp 0x14006b501
test eax, eax
je 0x14006b50a
mov rax, qword [rdi + 0x88]
test rax, rax
je 0x14006b4f7
mov rcx, qword [rax]
jmp 0x14006b4fa
mov rcx, rbx
movsxd r9, r12d
lea r8, [rbp + 0x30]
xor edx, edx
call fcn.14007da3c
mov esi, eax
test esi, esi
sete bl
jmp 0x14006b5c4
lea eax, [r14 + r12]
movsxd r15, eax
mov eax, 0xffffffff
cmp r15, rax
jae 0x14006b53f
cmp rax, r15
je 0x14006b53f
mov eax, 0xffffffe7
cmp r15, rax
jae 0x14006b53f
lea rcx, [r15 + 0x18]
call fcn.1401c9318
jmp 0x14006b542
mov rax, rbx
xor r9d, r9d
xor r8d, r8d
mov rdx, r15
mov rcx, rax
call fcn.14008eba4
movsxd rbx, r12d
lea r8, [rbp + 0x30]
mov r9, rbx
mov qword [rbp + 8], rax
mov rdx, rbx
mov rcx, rax
call section..text
mov rcx, qword [rbp + 8]
mov r8, r13
movsxd rdx, r14d
add rcx, rbx
mov r9, rdx
call section..text
mov rcx, qword [rdi + 0x88]
call fcn.14008edd4
test eax, eax
je 0x14006b5b4
mov rax, qword [rdi + 0x88]
test rax, rax
je 0x14006b5a2
mov rcx, qword [rax]
jmp 0x14006b5a4
xor ecx, ecx
mov r8, qword [rbp + 8]
mov r9, r15
xor edx, edx
call fcn.14007da3c
mov esi, eax
mov rcx, qword [rbp + 8]
xor ebx, ebx
test esi, esi
sete bl
call fcn.14008ec8c
movsxd rcx, r14d
movsxd rdx, r12d
lea rax, [rdx + rcx]
add qword [rdi + 0x78], rax
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x14006b5e5
mov rcx, rax
call fcn.14008ec8c
jmp 0x14006b5ec
add rcx, rdx
add qword [rdi + 0x68], rcx
mov eax, ebx
mov rcx, qword [rbp + 0x40]
xor rcx, rbp
call fcn.1401c1120
lea rsp, [rbp + 0x58]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret