Function at 0x14018a9e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x30
movsxd rdi, r9d
lea rax, [rsp + 0x60]
mov r9d, dword [rsp + 0x70]
mov rbx, rdx
movsxd rsi, r8d
mov rbp, rcx
mov r8d, edi
mov qword [rsp + 0x20], rax
mov edx, esi
call fcn.1401dbca0
movsx eax, word [rsp + 0x60]
lea rcx, [rsi + rsi*4]
xor r10d, r10d
lea rcx, [rcx*8]
mov r15d, 0x100
lea r14, [0x140000000]
movzx r8d, byte [rdi + r14 + 0x326670]
lea rdx, [r8 + rcx]
add r8, rcx
movzx r9d, byte [rbp + rdx*2 + 0xb6ee]
movsx edi, word [rbp + rdx*4 + 0xb5b0]
movsx esi, word [rbp + rdx*4 + 0xb5b2]
sub edi, eax
movzx edx, byte [rbp + rdx*2 + 0xb6ef]
movsx eax, word [rsp + 0x62]
sub esi, eax
movzx eax, byte [rbp + r8*2 + 0xb6e0]
add r9d, eax
movzx eax, byte [rbp + r8*2 + 0xb6e1]
add edx, eax
mov ebp, r10d
cmp edx, 0x20
mov eax, r10d
cmova ebp, r15d
cmp edx, 2
cmova eax, r15d
add ebp, eax
mov eax, r10d
cmp r9d, 0x20
seta al
add ebp, eax
mov eax, r10d
cmp r9d, 2
seta al
add ebp, eax
movzx r11d, bpl
movzx r9d, byte [r11 + rbx + 0x6c]
test edi, edi
jne 0x14018aaed
movzx eax, byte [r14 + r9*2 + 0x2fee30]
mov byte [r11 + rbx + 0x6c], al
mov r11d, r10d
movzx eax, word [r14 + r9*2 + 0x2fef70]
add dword [rbx + 0x40], eax
jmp 0x14018ac7c
movzx ecx, byte [r14 + r9*2 + 0x2fee31]
mov eax, edi
cdq
mov byte [r11 + rbx + 0x6c], cl
xor r9, 1
mov r8d, eax
xor r8d, edx
sub r8d, edx
movzx ecx, word [r14 + r9*2 + 0x2fef70]
add dword [rbx + 0x40], ecx
cmp r8d, 3
jg 0x14018ab7e
movsxd r11, r8d
cmp r11, 1
jle 0x14018ab59
lea rdx, [rbx + 0x6f]
lea r9, [r11 - 1]
nop
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
movzx eax, byte [r14 + rcx*2 + 0x2fee31]
xor rcx, 1
mov byte [rdx - 1], al
movzx eax, word [r14 + rcx*2 + 0x2fef70]
add dword [rbx + 0x40], eax
sub r9, 1
jne 0x14018ab30
movzx ecx, byte [rbx + r11 + 0x6e]
movzx eax, byte [r14 + rcx*2 + 0x2fee30]
mov byte [rbx + r11 + 0x6e], al
movzx eax, word [r14 + rcx*2 + 0x2fef70]
add eax, r15d
jmp 0x14018ac6c
movzx ecx, byte [rbx + 0x6f]
movzx eax, byte [r14 + rcx*2 + 0x2fee31]
xor rcx, 1
mov byte [rbx + 0x6f], al
movzx eax, word [r14 + rcx*2 + 0x2fef70]
add dword [rbx + 0x40], eax
movzx ecx, byte [rbx + 0x70]
movzx eax, byte [r14 + rcx*2 + 0x2fee31]
xor rcx, 1
mov byte [rbx + 0x70], al
movzx eax, word [r14 + rcx*2 + 0x2fef70]
add dword [rbx + 0x40], eax
movzx ecx, byte [rbx + 0x71]
movzx eax, byte [r14 + rcx*2 + 0x2fee31]
xor rcx, 1
mov byte [rbx + 0x71], al
movzx edx, word [r14 + rcx*2 + 0x2fef70]
add edx, dword [rbx + 0x40]
mov dword [rbx + 0x40], edx
movzx eax, byte [rbx + 0x72]
cmp r8d, 9
jge 0x14018ac1c
movsxd rcx, r8d
sub rcx, 3
shl rcx, 7
add rax, rcx
movzx eax, word [r14 + rax*2 + 0x414c80]
add eax, edx
mov dword [rbx + 0x40], eax
movzx eax, byte [rbx + 0x72]
add rax, rcx
movzx eax, byte [rax + r14 + 0x415b80]
mov byte [rbx + 0x72], al
jmp 0x14018ac6f
movzx eax, word [r14 + rax*2 + 0x4108d0]
lea ecx, [r8 - 2]
add eax, edx
mov dword [rbx + 0x40], eax
movzx eax, byte [rbx + 0x72]
movzx eax, byte [rax + r14 + 0x410850]
mov byte [rbx + 0x72], al
lea eax, [rcx + 1]
mov edx, eax
cmp ecx, 0xff
jae 0x14018ac56
movzx eax, byte [rax + r14 + 0x3266c0]
jmp 0x14018ac66
shr rdx, 8
movzx eax, byte [rdx + r14 + 0x3266c0]
add eax, 0x10
add eax, 0xfffffffd
shl eax, 8
add dword [rbx + 0x40], eax
mov r11d, 0x42
cmp r8d, r11d
cmovl r11d, r8d
mov edi, ebp
shr rdi, 8
movzx r9d, byte [rdi + rbx + 0x73]
test esi, esi
jne 0x14018acaa
movzx eax, byte [r14 + r9*2 + 0x2fee30]
mov byte [rdi + rbx + 0x73], al
movzx eax, word [r14 + r9*2 + 0x2fef70]
add dword [rbx + 0x40], eax
jmp 0x14018ae3c
movzx ecx, byte [r14 + r9*2 + 0x2fee31]
mov eax, esi
cdq
mov byte [rdi + rbx + 0x73], cl
xor r9, 1
mov r8d, eax
xor r8d, edx
sub r8d, edx
movzx ecx, word [r14 + r9*2 + 0x2fef70]
add dword [rbx + 0x40], ecx
cmp r8d, 3
jg 0x14018ad3e
movsxd r10, r8d
cmp r10, 1
jle 0x14018ad19
lea rdx, [rbx + 0x76]
lea r9, [r10 - 1]
nop word [rax + rax]
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
movzx eax, byte [r14 + rcx*2 + 0x2fee31]
xor rcx, 1
mov byte [rdx - 1], al
movzx eax, word [r14 + rcx*2 + 0x2fef70]
add dword [rbx + 0x40], eax
sub r9, 1
jne 0x14018acf0
movzx ecx, byte [r10 + rbx + 0x75]
movzx eax, byte [r14 + rcx*2 + 0x2fee30]
mov byte [r10 + rbx + 0x75], al
movzx eax, word [r14 + rcx*2 + 0x2fef70]
add eax, r15d
jmp 0x14018ae2c
movzx ecx, byte [rbx + 0x76]
movzx eax, byte [r14 + rcx*2 + 0x2fee31]
xor rcx, 1
mov byte [rbx + 0x76], al
movzx eax, word [r14 + rcx*2 + 0x2fef70]
add dword [rbx + 0x40], eax
movzx ecx, byte [rbx + 0x77]
movzx eax, byte [r14 + rcx*2 + 0x2fee31]
xor rcx, 1
mov byte [rbx + 0x77], al
movzx eax, word [r14 + rcx*2 + 0x2fef70]
add dword [rbx + 0x40], eax
movzx ecx, byte [rbx + 0x78]
movzx eax, byte [r14 + rcx*2 + 0x2fee31]
xor rcx, 1
mov byte [rbx + 0x78], al
movzx edx, word [r14 + rcx*2 + 0x2fef70]
add edx, dword [rbx + 0x40]
mov dword [rbx + 0x40], edx
movzx eax, byte [rbx + 0x79]
cmp r8d, 9
jge 0x14018addc
movsxd rcx, r8d
sub rcx, 3
shl rcx, 7
add rax, rcx
movzx eax, word [r14 + rax*2 + 0x414c80]
add eax, edx
mov dword [rbx + 0x40], eax
movzx eax, byte [rbx + 0x79]
add rax, rcx
movzx eax, byte [rax + r14 + 0x415b80]
mov byte [rbx + 0x79], al
jmp 0x14018ae2f
movzx eax, word [r14 + rax*2 + 0x4108d0]
lea ecx, [r8 - 2]
add eax, edx
mov dword [rbx + 0x40], eax
movzx eax, byte [rbx + 0x79]
movzx eax, byte [rax + r14 + 0x410850]
mov byte [rbx + 0x79], al
lea eax, [rcx + 1]
mov edx, eax
cmp ecx, 0xff
jae 0x14018ae16
movzx eax, byte [rax + r14 + 0x3266c0]
jmp 0x14018ae26
shr rdx, 8
movzx eax, byte [rdx + r14 + 0x3266c0]
add eax, 0x10
add eax, 0xfffffffd
shl eax, 8
add dword [rbx + 0x40], eax
mov r10d, 0x42
cmp r8d, r10d
cmovl r10d, r8d
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x68]
movzx ecx, r15w
movzx eax, r10w
imul eax, ecx
add ax, r11w
add rsp, 0x30
pop r15
pop r14
pop rdi
ret