Function at 0x14001bab0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
cmp dword [rcx + 0x8b60], 0
mov r14, r9
mov rsi, rdx
mov r15, rcx
jne 0x14001bd15
mov r11, qword [rcx + 0x8b58]
test r11, r11
je 0x14001bd15
mov r10, qword [r15 + 0x8630]
mov rcx, rdx
mov r9, qword [r15 + 0x86d0]
mov edi, 1
shl edi, cl
mov r8, r9
movzx r12d, byte [r11 + 0x80d0]
mov ecx, 0x10
mov rax, qword [r10 + 0x38]
mov rbp, qword [r10 + 0x28]
shl r8, 4
lea rbx, [rdi - 1]
add r8, 0xfffffffffffffff0
mov byte [rsp + 0xb0], r12b
sub rax, r8
inc rax
cmp rax, rcx
cmovb rcx, rax
xor eax, eax
mov qword [rsp + 0x40], rcx
inc rbp
mov rcx, qword [r10 + 0x30]
and ecx, 0xf
cmp r8, qword [r10 + 0x30]
mov r8, qword [r11 + 0x8830]
cmovbe eax, ecx
mov qword [rsp + 0x60], r8
mov rcx, qword [r10 + 0x20]
add rbx, rax
xor edx, edx
mov rax, rbx
div rdi
dec rcx
xor r13d, r13d
sub rbx, rdx
add rcx, rdi
xor edx, edx
mov qword [rsp + 0x38], rbx
mov rax, rcx
div rdi
movzx eax, byte [r11 + 0x80d1]
mov r11, qword [r10 + 0x40]
sub rcx, rdx
cmp dword [r15 + 0x18], 4
mov byte [rsp + 0x30], al
lea rax, [r9 - 1]
sete r13b
mov qword [rsp + 0x28], rcx
mov rcx, qword [r10 + 0x48]
xor edx, edx
shl rax, 4
add r13, 3
add r13, qword [r15 + 0x28]
div rdi
mov qword [rsp + 0x50], r11
lea r10, [rcx + rax*8]
mov eax, dword [r15 + 0x18]
mov qword [rsp + 0x68], r10
cmp eax, 7
je 0x14001bbeb
cmp eax, 4
jne 0x14001c2bb
mov eax, dword [r15 + 0x1c]
cmp eax, 1
jne 0x14001bd2f
mov r9d, dword [rsp + 0xc0]
mov rcx, r14
mov eax, 0x80
shl eax, cl
cdq
idiv r9d
mov dword [rsp + 0xb0], eax
cmp rbx, qword [rsp + 0x40]
jae 0x14001bd15
mov rdx, rbx
lea r12, [0x14006cd80]
shl rdx, 4
mov rax, rdi
shl rax, 4
mov r10, r8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x58], rdx
nop word [rax + rax]
mov r8, rax
mov rcx, rsi
mov rax, rbx
shr rax, cl
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x28]
cmp rax, rbp
jae 0x14001bcf8
mov rbx, qword [rsp + 0x58]
nop dword [rax]
mov rax, r8
and eax, 0xf
add rax, rbx
movzx ecx, byte [rax + r12]
mov rax, r8
and rax, 0xfffffffffffffff0
shl rax, 4
add rcx, rax
mov edx, dword [r10 + rcx*4]
mov rcx, r14
add edx, dword [rsp + 0xb0]
imul edx, r9d
sar edx, cl
test edx, edx
jns 0x14001bcb8
xor edx, edx
jmp 0x14001bcc2
mov eax, 0xff
cmp edx, eax
cmovg edx, eax
mov rax, r8
mov rcx, rsi
shr rax, cl
add r8, rdi
mov rcx, qword [r11 + rax*8]
add rcx, qword [rsp + 0x20]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
mov byte [rcx + rax], dl
cmp r8, rbp
jb 0x14001bc80
mov rbx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x28]
add rdx, qword [rsp + 0x48]
add rbx, rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x58], rdx
cmp rbx, qword [rsp + 0x40]
jb 0x14001bc50
xor eax, eax
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp eax, 2
jne 0x14001be5c
mov r9d, dword [rsp + 0xc0]
mov rcx, r14
mov eax, 0x8000
shl eax, cl
cdq
idiv r9d
mov dword [rsp + 0xb0], eax
cmp rbx, qword [rsp + 0x40]
jae 0x14001bd15
mov rdx, qword [rsp + 0x28]
mov rax, rbx
shl rax, 4
mov r10, r8
mov qword [rsp + 0x20], rax
mov rax, rdi
shl rax, 4
mov dword [rsp + 0x58], r12d
lea r12, [0x14006cd80]
mov qword [rsp + 0x50], rax
nop dword [rax + rax]
mov rcx, rsi
mov rax, rbx
shr rax, cl
mov r8, rdx
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x48], rax
cmp rdx, rbp
jae 0x14001be3a
mov rbx, qword [rsp + 0x20]
nop dword [rax + rax]
mov rax, r8
and eax, 0xf
add rax, rbx
movzx ecx, byte [rax + r12]
mov rax, r8
and rax, 0xfffffffffffffff0
shl rax, 4
add rcx, rax
mov edx, dword [r10 + rcx*4]
mov rcx, r14
add edx, dword [rsp + 0xb0]
imul edx, r9d
sar edx, cl
mov ecx, dword [rsp + 0x58]
shl edx, cl
test edx, edx
jns 0x14001bdfe
xor edx, edx
jmp 0x14001be08
mov eax, 0xffff
cmp edx, eax
cmovg edx, eax
mov rax, r8
mov rcx, rsi
shr rax, cl
add r8, rdi
mov rcx, qword [r11 + rax*8]
add rcx, qword [rsp + 0x48]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
mov word [rax + rcx*2], dx
cmp r8, rbp
jb 0x14001bdc0
mov rbx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x50]
add rbx, rdi
add qword [rsp + 0x20], rax
mov qword [rsp + 0x38], rbx
cmp rbx, qword [rsp + 0x40]
jb 0x14001bd90
jmp 0x14001bd15
cmp eax, 3
jne 0x14001bf7f
cmp rbx, qword [rsp + 0x40]
jae 0x14001bd15
mov r9d, dword [rsp + 0xc0]
mov rdx, rbx
shl rdx, 4
mov rax, rdi
shl rax, 4
mov r10, r8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x28]
mov dword [rsp + 0xb0], r12d
lea r12, [0x14006cd80]
mov qword [rsp + 0x20], rdx
nop word [rax + rax]
mov r8, rax
mov rcx, rsi
mov rax, rbx
shr rax, cl
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x28]
cmp rax, rbp
jae 0x14001bf5d
mov ebx, 0x7fff
nop dword [rax]
mov rax, r8
and eax, 0xf
add rax, rdx
mov edx, r9d
movzx ecx, byte [rax + r12]
mov rax, r8
and rax, 0xfffffffffffffff0
shl rax, 4
add rcx, rax
imul edx, dword [r10 + rcx*4]
mov rcx, r14
sar edx, cl
mov ecx, dword [rsp + 0xb0]
shl edx, cl
cmp edx, 0xffff8000
jge 0x14001bf21
mov edx, 0xffff8000
jmp 0x14001bf26
cmp edx, ebx
cmovg edx, ebx
mov rax, r8
mov rcx, rsi
shr rax, cl
add r8, rdi
mov rcx, qword [r11 + rax*8]
add rcx, qword [rsp + 0x50]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
mov word [rax + rcx*2], dx
mov rdx, qword [rsp + 0x20]
cmp r8, rbp
jb 0x14001bee0
mov rbx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x28]
add rdx, qword [rsp + 0x48]
add rbx, rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x20], rdx
cmp rbx, qword [rsp + 0x40]
jb 0x14001beb0
jmp 0x14001bd15
cmp eax, 4
jne 0x14001c096
cmp rbx, qword [rsp + 0x40]
jae 0x14001bd15
mov r9d, dword [rsp + 0xc0]
lea r12, [0x14006cd80]
mov rdx, rbx
mov rax, rdi
shl rdx, 4
mov r10, r8
shl rax, 4
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xb0], rdx
nop word [rax + rax]
mov r8, rax
mov rcx, rsi
mov rax, rbx
shr rax, cl
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x28]
cmp rax, rbp
jae 0x14001c071
mov ebx, 0x7fff
nop dword [rax]
mov rax, r8
and eax, 0xf
add rax, rdx
mov edx, r9d
movzx ecx, byte [rax + r12]
mov rax, r8
and rax, 0xfffffffffffffff0
shl rax, 4
add rcx, rax
imul edx, dword [r10 + rcx*4]
mov rcx, r14
sar edx, cl
mov rcx, rsi
mov eax, edx
and dx, bx
sar eax, 0x1f
xor dx, ax
sub dx, ax
mov rax, r8
shr rax, cl
add r8, rdi
mov rcx, qword [r11 + rax*8]
add rcx, qword [rsp + 0x50]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
mov word [rax + rcx*2], dx
mov rdx, qword [rsp + 0xb0]
cmp r8, rbp
jb 0x14001c000
mov rbx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x28]
add rdx, qword [rsp + 0x48]
add rbx, rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0xb0], rdx
cmp rbx, qword [rsp + 0x40]
jb 0x14001bfd0
jmp 0x14001bd15
cmp eax, 6
jne 0x14001c19b
cmp rbx, qword [rsp + 0x40]
jae 0x14001bd15
mov r9d, dword [rsp + 0xc0]
lea r12, [0x14006cd80]
mov rdx, rbx
mov rax, rdi
shl rdx, 4
mov r10, r8
shl rax, 4
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x20], rdx
nop dword [rax]
mov r8, rax
mov rcx, rsi
mov rax, rbx
shr rax, cl
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x28]
cmp rax, rbp
jae 0x14001c179
mov rbx, qword [rsp + 0x20]
nop dword [rax]
mov rax, r8
mov edx, r9d
and eax, 0xf
add rax, rbx
movzx ecx, byte [rax + r12]
mov rax, r8
and rax, 0xfffffffffffffff0
shl rax, 4
add rcx, rax
mov rax, r8
add r8, rdi
imul edx, dword [r10 + rcx*4]
mov rcx, r14
sar edx, cl
movzx ecx, byte [rsp + 0xb0]
shl edx, cl
mov rcx, rsi
shr rax, cl
mov rcx, qword [r11 + rax*8]
add rcx, qword [rsp + 0x50]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
mov dword [rax + rcx*4], edx
cmp r8, rbp
jb 0x14001c110
mov rbx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x28]
add rdx, qword [rsp + 0x48]
add rbx, rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x20], rdx
cmp rbx, qword [rsp + 0x40]
jb 0x14001c0e0
jmp 0x14001bd15
cmp eax, 7
jne 0x14001c2bb
cmp rbx, qword [rsp + 0x40]
jae 0x14001bd15
mov r9, qword [rsp + 0x28]
lea r12, [0x14006cd80]
mov rdx, rbx
mov rax, rdi
shl rdx, 4
shl rax, 4
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x20], rdx
nop dword [rax]
nop word [rax + rax]
mov rax, rbx
mov rcx, rsi
shr rax, cl
mov r14, r9
mov rax, qword [r10 + rax*8]
mov qword [rsp + 0x48], rax
cmp r9, rbp
jae 0x14001c299
mov rbx, qword [rsp + 0x50]
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rsp + 0xc8]
mov rax, r14
and eax, 0xf
add rax, rdx
movzx edx, byte [rax + r12]
mov rax, r14
and rax, 0xfffffffffffffff0
shl rax, 4
add rdx, rax
mov eax, dword [rsp + 0xc0]
imul eax, dword [r8 + rdx*4]
movzx r8d, byte [rsp + 0xb0]
movzx edx, byte [rsp + 0x30]
sar eax, cl
mov ecx, eax
call fcn.140016830
mov r8, qword [rsp + 0x60]
mov rax, r14
mov rdx, qword [rsp + 0x20]
mov rcx, rsi
shr rax, cl
add r14, rdi
mov rcx, qword [rbx + rax*8]
add rcx, qword [rsp + 0x48]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
movss dword [rax + rcx*4], xmm0
cmp r14, rbp
jb 0x14001c210
mov rbx, qword [rsp + 0x38]
mov r9, qword [rsp + 0x28]
mov r10, qword [rsp + 0x68]
add rdx, qword [rsp + 0x58]
add rbx, rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x20], rdx
cmp rbx, qword [rsp + 0x40]
jb 0x14001c1e0
jmp 0x14001bd15
mov eax, 0xffffffff
jmp 0x14001bd17