Function at 0x14006c5ec
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
mov rbx, rcx
mov ecx, 0x2000000
neg r8d
sbb eax, eax
movzx r13d, r9w
movzx edx, r9w
and eax, ecx
mov r15d, r9d
xor r13w, 0xa
add eax, ecx
mov rcx, rbx
mov dword [rsp + 0x30], eax
call fcn.1400199f4
and qword [rsp + 0x60], 0
movsxd r14, eax
xor edx, edx
lea rcx, [rsp + 0x68]
lea r8d, [rdx + 0x20]
lea rsi, [rbx + r14*2]
mov edi, r14d
mov r12, rbx
call fcn.1400e16a0
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x48]
mov r9d, 0x28
call fcn.14005cd38
mov ebp, 0x400
test r15d, r15d
jne 0x14006c682
mov rbx, rsi
jmp 0x14006c6a5
cmp rbx, rsi
jae 0x14006c6e4
mov r12, rbx
movzx eax, word [rbx]
add rbx, 2
cmp r13w, ax
je 0x14006c69c
cmp rbx, rsi
jb 0x14006c68a
mov rdi, rbx
sub rdi, r12
sar rdi, 1
movsxd rax, edi
lea r9, [rsp + 0x60]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x28], 0x400
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x20], 0x28
call fcn.14005ccbc
cmp ebp, edi
jge 0x14006c682
mov ebp, edi
jmp 0x14006c682
lea eax, [rbp + r14 + 0x1a]
lea rcx, [rsp + 0x40]
movsxd rdx, eax
call fcn.14005c9e0
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
movsxd r11, ebp
xor r9d, r9d
lea rsi, [rbx + r11*2 + 0x14]
xor r15d, r15d
movsxd rbp, eax
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0xf0], r9d
test eax, eax
jle 0x14006c878
call fcn.14005771c
xor edx, edx
div rbp
movsxd rcx, edx
cmp rcx, rbp
jge 0x14006c86d
lea rax, [rcx + rcx*4]
lea r8, [r13 + rax*8]
cmp qword [r8], 0
je 0x14006c763
inc rcx
inc edx
add r8, 0x28
cmp rcx, rbp
jl 0x14006c74a
jmp 0x14006c86d
inc dword [rsp + 0xf0]
movsxd rax, edx
mov rcx, rbx
lea r14, [rax + rax*4]
movsxd r12, dword [r13 + r14*8 + 0x10]
mov rdx, qword [r13 + r14*8 + 8]
mov qword [r13 + r14*8], 1
lea rdi, [r12 + r12]
mov r8, rdi
call fcn.14001bd80
movsxd r11, r15d
lea rdx, [rdi + rbx]
lea rsi, [rsi + r11*2]
mov r8, rbx
mov dword [rsp + 0xe0], r12d
mov rax, rbx
mov rcx, rsi
cmp rbx, rdx
jae 0x14006c7e3
mov r9d, dword [rsp + 0xf8]
xor word [rax], r9w
add rax, 2
cmp rax, rdx
jb 0x14006c7bc
cmp byte [r8], 0x7f
ja 0x14006c7e3
movzx eax, word [r8]
add r8, 2
mov word [rcx], ax
add rcx, 2
cmp r8, rdx
jb 0x14006c7c9
mov rdi, rcx
sub rdi, rsi
sar rdi, 1
sub r12d, edi
test r12d, r12d
jle 0x14006c81f
mov eax, dword [rsp + 0xe0]
mov edx, dword [rsp + 0x30]
mov r9d, r12d
add eax, r12d
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov ecx, 0x20804
call qword [sym.imp.KERNEL32.dll_LCMapStringW]
test eax, eax
jle 0x14006c81f
add edi, eax
movsxd r8, dword [rsp + 0xe0]
xor edx, edx
mov rcx, rbx
add r8, r8
call fcn.1400e16a0
movsxd rax, edi
add r15d, edi
mov qword [r13 + r14*8 + 0x18], rsi
mov qword [r13 + r14*8 + 0x20], rax
test edi, edi
jle 0x14006c860
sub edi, 1
js 0x14006c860
mov eax, dword [rsp + 0xf8]
xor word [rsi], ax
add rsi, 2
sub edi, 1
jns 0x14006c854
mov r9d, dword [rsp + 0xf0]
mov rsi, qword [rsp + 0x38]
cmp r9d, dword [rsp + 0x58]
jl 0x14006c72b
mov r12, qword [rsp + 0xe8]
lea eax, [r15 + 0x11]
mov rcx, qword [r12]
movsxd rdx, eax
lea rdx, [rdx + rdx + 2]
call fcn.14005c570
mov rsi, rax
mov qword [r12], rax
test rbp, rbp
jle 0x14006c8c8
lea rdi, [r13 + 0x20]
mov r8, qword [rdi]
mov rdx, qword [rdi - 8]
mov rcx, rsi
add r8, r8
call fcn.14001bd80
mov r11, qword [rdi]
add rdi, 0x28
sub rbp, 1
lea rsi, [rsi + r11*2]
jne 0x14006c8a5
mov eax, dword [rsp + 0xf8]
mov rcx, rbx
mov word [rsi], ax
call fcn.140054bf8
mov rbx, qword [r12]
lea rcx, [rsp + 0x40]
call fcn.140054c44
lea rcx, [rsp + 0x48]
call fcn.140054c44
mov rax, rbx
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret