Function at 0x14009ac78
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
mov qword [rbp - 0x39], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x1400d1090]
xor rax, rsp
mov qword [rbp + 0x27], rax
lea rcx, [rbp - 0x69]
call fcn.14007e1d8
nop
call fcn.14007f104
mov r14, rax
lea rdx, [rax + 0x28]
lea rcx, [rsp + 0x20]
call fcn.14008005c
nop
xor edi, edi
mov r12d, edi
mov esi, edi
lea r15d, [rdi + 2]
mov r13d, r15d
mov ebx, 0x400
mov rcx, rbx
call fcn.14009f2a8
mov rbx, rax
mov qword [rsp + 0x28], rax
mov rdx, qword [r14 + 0x20]
mov rcx, rax
lea rdx, [rsi + rdx + 0x2bc]
mov r8d, 0x400
call fcn.14009e430
mov r11, rbx
mov eax, 0x400
xor byte [r11], 0x9b
inc r11
dec rax
jne 0x14009ad17
mov byte [rbx + 0x3ff], dil
cmp byte [rbx], dil
je 0x14009ad9b
mov rdx, r12
lea rcx, [rbp - 0x31]
call fcn.14007f074
nop
lea r8, [rsp + 0x28]
mov rdx, rax
lea rcx, [rbp - 9]
call fcn.1400800b8
nop
mov rdx, rax
lea rcx, [rbp - 0x69]
call fcn.140080594
mov r8, rax
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x69]
call fcn.140080134
nop
cmp qword [rbp + 0xf], 0x10
jb 0x14009ad7b
mov rcx, qword [rbp - 9]
call fcn.14009f17c
mov qword [rbp + 0xf], 0xf
mov qword [rbp + 7], rdi
mov byte [rbp - 9], dil
cmp qword [rbp - 0x19], 0x10
jb 0x14009ad9b
mov rcx, qword [rbp - 0x31]
call fcn.14009f17c
xor edx, edx
mov r8d, 0x400
mov rcx, rbx
call fcn.1400a2620
mov rcx, rbx
call fcn.14009f2b0
inc r12
mov ebx, 0x400
add rsi, rbx
dec r13
jne 0x14009ace5
lea rcx, [rsp + 0x20]
call fcn.140080094
lea rcx, [rbp - 0x69]
call fcn.14008140c
mov r11d, dword [rbp - 0x59]
mov dword [0x1400d7fbc], r11d
lea rcx, [rsp + 0x30]
call fcn.14007e1d8
nop
call fcn.14007f104
mov r13, rax
lea rdx, [rax + 0x28]
lea rcx, [rsp + 0x28]
call fcn.14008005c
nop
mov r12, rdi
mov rsi, rdi
mov r14d, 1
mov rcx, rbx
call fcn.14009f2a8
mov rbx, rax
mov qword [rsp + 0x20], rax
mov rdx, qword [r13 + 0x20]
mov rcx, rax
lea rdx, [rsi + rdx + 0xabc]
mov r8d, 0x400
call fcn.14009e430
mov r11, rbx
mov eax, 0x400
xor byte [r11], 0x9b
add r11, r14
sub rax, r14
jne 0x14009ae45
mov byte [rbx + 0x3ff], dil
cmp byte [rbx], dil
je 0x14009aecb
mov rdx, r12
lea rcx, [rbp - 0x31]
call fcn.14007f074
nop
lea r8, [rsp + 0x20]
mov rdx, rax
lea rcx, [rbp - 9]
call fcn.1400800b8
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140080594
mov r8, rax
lea rdx, [rbp - 0x49]
lea rcx, [rsp + 0x30]
call fcn.140080134
nop
cmp qword [rbp + 0xf], 0x10
jb 0x14009aeab
mov rcx, qword [rbp - 9]
call fcn.14009f17c
mov qword [rbp + 0xf], 0xf
mov qword [rbp + 7], rdi
mov byte [rbp - 9], dil
cmp qword [rbp - 0x19], 0x10
jb 0x14009aecb
mov rcx, qword [rbp - 0x31]
call fcn.14009f17c
xor edx, edx
mov r8d, 0x400
mov rcx, rbx
call fcn.1400a2620
mov rcx, rbx
call fcn.14009f2b0
add r12, r14
mov ebx, 0x400
add rsi, rbx
sub r15, r14
jne 0x14009ae13
lea rcx, [rsp + 0x28]
call fcn.140080094
call fcn.14008feec
mov rsi, rax
lea rdx, [0x1400d80e8]
lea rcx, [rsp + 0x20]
call fcn.14008005c
nop
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.14009097c
mov ebx, eax
lea rcx, [rsp + 0x20]
call fcn.140080094
mov r8, qword [rsp + 0x38]
test ebx, ebx
jne 0x14009b00d
mov rbx, qword [r8]
jmp 0x14009afb6
mov qword [rbp - 0x19], 0xf
mov qword [rbp - 0x21], rdi
mov byte [rbp - 0x31], dil
lea rdx, [rbx + 0x18]
lea r8, [rbp - 0x31]
mov rcx, rsi
call fcn.140090068
nop
cmp qword [rbp - 0x19], 0x10
jb 0x14009af77
mov rcx, qword [rbp - 0x31]
call fcn.14009f17c
cmp byte [rbx + 0x69], dil
jne 0x14009afb1
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x69], dil
jne 0x14009af95
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x69], dil
je 0x14009af87
jmp 0x14009afb1
mov rax, qword [rbx + 8]
jmp 0x14009afa8
cmp rbx, qword [rax + 0x10]
jne 0x14009afae
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x69], dil
je 0x14009af9b
mov rbx, rax
mov r8, qword [rsp + 0x38]
cmp rbx, r8
jne 0x14009af46
mov rax, qword [rbp - 0x79]
test rax, rax
je 0x14009b013
mov dword [0x1400d7fc0], eax
call fcn.14007f104
mov rbx, rax
lea rdx, [rax + 0x28]
lea rcx, [rsp + 0x20]
call fcn.14008005c
mov r11, qword [rbx + 0x20]
mov ebx, dword [r11 + 0x30]
lea rcx, [rsp + 0x20]
call fcn.140080094
mov r11d, dword [0x1400d7f9c]
test ebx, ebx
cmovne r11d, r14d
mov dword [0x1400d7f9c], r11d
mov r8, qword [rsp + 0x38]
jmp 0x14009b013
mov dword [0x1400d7f9c], edi
cmp dword [0x1400d7fc0], edi
jne 0x14009b05f
cmp dword [0x1400d7fbc], edi
jne 0x14009b05f
mov r9, r8
mov r8, qword [r8]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.14007e120
nop
mov rcx, qword [rsp + 0x38]
call fcn.14009f17c
nop
mov r8, qword [rbp - 0x61]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x69]
call fcn.14007e120
nop
jmp 0x14009b09c
mov r9, r8
mov r8, qword [r8]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.14007e120
nop
mov rcx, qword [rsp + 0x38]
call fcn.14009f17c
nop
mov r8, qword [rbp - 0x61]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x69]
call fcn.14007e120
nop
mov edi, r14d
mov rcx, qword [rbp - 0x61]
call fcn.14009f17c
mov eax, edi
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14009e400
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret