Function at 0x18006ef10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x108b8]
mov eax, 0x109b8
call fcn.1800c9710
sub rsp, rax
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov rax, qword [0x18017a408]
xor rax, rsp
mov qword [rbp + 0x108a8], rax
mov r13, r9
mov rsi, r8
mov qword [rsp + 0x50], r8
mov rdi, rdx
mov rbx, rcx
mov rcx, r8
call fcn.180014650
xor edx, edx
mov r8d, 0x2b8
lea rcx, [rbp + 0x80]
call fcn.1800cae70
lea rcx, [rbp + 0x80]
call fcn.180079500
nop
xor edx, edx
mov r8d, 0xf0
lea rcx, [rbp - 0x70]
call fcn.1800cae70
lea r12, vtable._ckSymSettings.0
mov qword [rbp - 0x70], r12
xor r14d, r14d
mov qword [rbp - 0x68], r14
mov dword [rbp - 0x60], 0x100
lea rcx, [rbp - 0x58]
call fcn.180013170
nop
mov dword [rbp - 0x28], r14d
lea rcx, [rbp - 0x20]
call fcn.180013170
nop
lea rcx, [rbp + 0x10]
call fcn.180013170
nop
lea rcx, [rbp + 0x40]
call fcn.180013170
mov dword [rbp + 0x70], r14d
mov dword [rbp + 0x74], 0x80
mov byte [rbp + 0x78], r14b
mov byte [rbp - 0x30], 1
mov byte [rbp + 8], 1
xor edx, edx
mov r8d, 0x10560
lea rcx, [rbp + 0x340]
call fcn.1800cae70
lea rax, vtable._ckCryptContext.0
mov qword [rbp + 0x340], rax
mov qword [rbp + 0x358], r14
lea rcx, [rbp + 0x360]
call fcn.180013170
nop
lea rcx, [rbp + 0x390]
call fcn.1800b7600
nop
lea rcx, [rbp + 0x7e0]
call fcn.1800b75c0
mov qword [rbp + 0x348], r14
mov qword [rbp + 0x350], r14
mov dword [rbp - 0x68], 1
mov rdx, rbx
lea rcx, [rbp - 0x58]
call fcn.180013570
lea rcx, [rbp - 0x58]
call fcn.180015e00
shl eax, 3
mov dword [rbp - 0x60], eax
mov dword [rbp - 0x64], 3
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0x340]
lea r8, [rbp - 0x70]
xor edx, edx
lea rcx, [rbp + 0x80]
call fcn.18006e860
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
lea rcx, [rsp + 0x60]
call fcn.180013170
nop
mov rdx, rdi
lea rcx, [rsp + 0x60]
call fcn.180013570
lea rcx, [rsp + 0x60]
call fcn.180015e00
mov r15d, eax
cmp eax, 0x10
jb 0x18006f252
test r15b, 7
jne 0x18006f252
shr r15d, 3
dec r15d
lea r14d, [r15*8]
mov dword [rsp + 0x30], r14d
mov r8d, r14d
xor edx, edx
mov rcx, rsi
call fcn.180013770
lea rcx, [rsp + 0x60]
call fcn.180015b30
mov rdi, rax
mov rcx, rsi
call fcn.180015b30
mov rsi, rax
mov rbx, qword [rdi]
mov qword [rbp + 0x108a0], rbx
movsxd r8, r14d
lea rdx, [rdi + 8]
mov rcx, rax
call fcn.1800caa00
mov r12d, 5
lea eax, [r14 - 8]
cdqe
add rax, rsi
mov qword [rsp + 0x48], rax
mov rsi, rax
mov edi, r15d
cmp r15d, 1
jl 0x18006f1c5
movzx eax, r12b
movzx r14d, r15b
imul r14d, eax
nop word [rax + rax]
mov qword [rsp + 0x38], rbx
lea eax, [rdi + r14]
shr rbx, 0x38
xor al, bl
mov byte [rsp + 0x3f], al
mov rax, qword [rsi]
mov qword [rsp + 0x40], rax
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x38]
lea rcx, [rbp + 0x80]
call fcn.180070250
mov rbx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
mov qword [rsi], rax
lea rsi, [rsi - 8]
dec edi
cmp edi, 1
jge 0x18006f170
mov qword [rbp + 0x108a0], rbx
mov rax, qword [rsp + 0x48]
sub r12d, 1
jns 0x18006f152
mov bl, 1
mov rdi, qword [rsp + 0x50]
mov rcx, rdi
call fcn.180015e00
cmp eax, dword [rsp + 0x30]
je 0x18006f212
mov rax, qword [r13]
lea rdx, str.Output_is_not_the_expected_size.
mov rcx, r13
call qword [rax + 0x28]
mov rcx, rdi
call fcn.180015e00
mov r8d, eax
lea rdx, str.outNumBytes
mov rcx, r13
call fcn.1800397c0
xor bl, bl
xor r14d, r14d
jmp 0x18006f249
xor r14d, r14d
mov ecx, r14d
nop dword [rax + rax]
movsxd rax, ecx
cmp byte [rbp + rax + 0x108a0], 0xa6
jne 0x18006f236
inc ecx
cmp ecx, 8
jl 0x18006f220
jmp 0x18006f249
mov rax, qword [r13]
lea rdx, str.KEK_is_not_the_correct_key.
mov rcx, r13
call qword [rax + 0x28]
xor bl, bl
lea r12, vtable._ckSymSettings.0
jmp 0x18006f277
mov rax, qword [r13]
lea rdx, str.Key_data_must_be_a_multiple_of_8_bytes_in_length.
mov rcx, r13
call qword [rax + 0x28]
mov r8d, r15d
lea rdx, str.keyDataLen
mov rcx, r13
call fcn.1800397c0
xor bl, bl
lea rcx, [rsp + 0x60]
call fcn.180013280
nop
lea rax, vtable._ckCryptContext.0
mov qword [rbp + 0x340], rax
mov rcx, qword [rbp + 0x358]
test rcx, rcx
je 0x18006f2a8
call fcn.180035430
mov qword [rbp + 0x358], r14
lea rcx, [rbp + 0x7e0]
call fcn.1800b7640
lea rcx, [rbp + 0x390]
call fcn.1800b7650
lea rcx, [rbp + 0x360]
call fcn.180013280
nop
mov qword [rbp - 0x70], r12
lea rcx, [rbp + 0x40]
call fcn.180013280
lea rcx, [rbp + 0x10]
call fcn.180013280
lea rcx, [rbp - 0x20]
call fcn.180013280
lea rcx, [rbp - 0x58]
call fcn.180013280
nop
lea rcx, [rbp + 0x80]
call fcn.180079570
movzx eax, bl
mov rcx, qword [rbp + 0x108a8]
xor rcx, rsp
call fcn.1800c9b90
add rsp, 0x109b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret