Function at 0x14001945c
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x14004b7c0]
mov rbp, rcx
mov ebx, dword [0x14004b79c]
mov r14, rax
movsxd r10, dword [0x14004b818]
mov esi, r8d
mov r15, qword [rsp + 0xb0]
mov r13b, r10b
movzx r11d, dx
sub sil, 0x60
movzx r12d, r9w
mov edi, r11d
mov r9d, 1
mov word [rsp + 0x98], r12w
add word [0x14004b868], r9w
add rax, r9
mov qword [0x14004b7c0], rax
add ebx, r9d
mov rax, qword [rsp + 0xb8]
sub rbp, r9
mov dword [0x14004b79c], ebx
or bx, r11w
movsxd rdx, dword [rax + r12*8]
mov eax, 0xca0
mov qword [rsp + 0x30], rdx
add r12w, r9w
cdq
idiv dword [0x14004b7f0]
movsxd rax, edx
mov rdx, qword [0x14004b7d8]
mov qword [rsp + 0xb8], rax
mov rax, qword [0x14004b838]
movzx eax, word [rax + 0x1f3a]
mov qword [rsp + 0x90], rax
mov rax, qword [rdx + r10*8]
add r10d, r9d
xor rax, r11
mov dword [0x14004b818], r10d
mov qword [rsp + 0x38], rax
mov rax, qword [rdx + rcx*8 + 0x60]
add qword [0x14004b870], r9
xor rax, 0x1fb
movsxd r9, dword [0x14004b7ec]
mov qword [rsp + 0x40], rax
xor r9, rbp
mov eax, ebp
imul eax, dword [0x14004b7d0]
mov dword [rsp + 0xa8], eax
movzx eax, word [0x14004b7a8]
mov eax, dword [r14 + rax*4]
cdq
idiv dword [0x14004b7f0]
mov r8d, eax
mov eax, 0xf2b9d649
imul r8d
add edx, r8d
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x10e
sub r8d, ecx
movzx ecx, bx
add word [r15 + r11*2], r8w
mov rax, qword [0x14004b870]
cmp dword [r14 + rax*8], ecx
jl 0x1400195e0
inc dword [r14]
mov edx, edi
movsxd rax, dword [r14]
shl edx, 2
movzx ecx, byte [rax + 0x17e1]
cmp ecx, dword [r9 + rdx*4]
jl 0x1400195e0
movzx eax, word [r15 + rbp*4 + 0x4c]
dec rbp
movzx r12d, word [rsp + 0x98]
cmp ax, r12w
jae 0x1400195fa
movzx eax, r13b
cmp edi, eax
jbe 0x1400195fa
movsxd rax, dword [r14]
mov ecx, dword [r14 + rax*4]
or dword [0x14004b810], ecx
jmp 0x140019728
mov rax, qword [rsp + 0xb8]
xor edx, edx
movsxd rcx, dword [0x14004b86c]
mov r10d, 0x16df
movsxd r9, dword [0x14004b7a0]
mov rax, qword [rax + rbp*8]
xor rax, rbp
div rcx
mov rdx, r9
and byte [0x14004b79b], al
cmp r9, r10
jge 0x1400196a1
mov ebx, dword [rsp + 0xa8]
mov r8, rdx
movzx eax, r12w
shl r8, 4
add r8, qword [rsp + 0x90]
lea r11d, [rax + rax*2]
movzx eax, r13b
sub r9d, eax
sub r10, rdx
xor dword [r8], 0xfef
lea r8, [r8 + 0x10]
mov rax, qword [rsp + 0x30]
or word [rax + r11*2], bx
mov eax, r9d
mov ecx, dword [0x14004b7ec]
cdq
idiv ecx
dec ecx
inc r9d
sub al, sil
mov dword [0x14004b7ec], ecx
mov sil, al
mov rax, qword [0x14004b860]
movzx ecx, byte [rdi + rax]
or word [r15 + rdi*2 + 0xc], cx
sub r10, 1
jne 0x140019658
mov rax, qword [rsp + 0x38]
mov r8d, 0x19a1
movzx r9d, byte [rdi + 0x17e1]
movzx edx, sil
movzx ecx, word [rax + rdi*2]
dec edi
mov ax, word [0x285a]
xor rcx, 0x273
add ax, word [0x14004b7e0]
mov word [rsp + 0x20], ax
call fcn.14001d358
movsxd rdx, eax
lea eax, [rdi + rdi*2]
movsxd rcx, eax
mov rax, qword [rsp + 0x40]
movsxd r8, edi
mov qword [rax + rcx*8], rdx
mov eax, dword [0x14004b7f0]
mov rcx, qword [0x14004b840]
add eax, eax
movsxd rdx, eax
movabs rax, 0x1a0edc79bd6e08c1
mul qword [rcx + rdx*8]
mov eax, 0x10dd
shr rdx, 8
xor word [r15 + r8*2], dx
add word [0x14004b868], ax
mov rbx, qword [rsp + 0xa0]
inc sil
movzx eax, sil
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret