Function at 0x14032bf90
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
cmp dword [rcx + 0xe8], 0x23
mov rbx, rcx
je 0x14032c37f
lea rdi, [rcx + 0x118]
mov qword [rsp + 0x30], rbp
cmp qword [rdi + 0x18], 0
jne 0x14032bfcc
xor edx, edx
mov rcx, rdi
call fcn.14032af60
mov rbp, qword [rdi + 0x20]
mov rsi, qword [rdi + 0x18]
lea rax, [rbp + 7]
and rax, 0xfffffffffffffff8
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x18], rax
add rax, 0x18
cmp rax, qword [rdi + 0x10]
jb 0x14032bffb
mov edx, 0x18
mov rcx, rdi
call fcn.14032af60
mov rcx, qword [rdi + 0x18]
mov rax, qword [rdi + 0x28]
mov qword [rcx], rax
lea rax, [rcx + 0x18]
mov qword [rcx + 8], rsi
lea rsi, [0x140000000]
mov qword [rcx + 0x10], rbp
mov rbp, qword [rsp + 0x30]
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x28], rcx
mov ecx, dword [rbx + 0xe8]
mov eax, ecx
sar rax, 8
mov edx, ecx
movzx eax, al
and ecx, 7
sar rdx, 3
and edx, 0x1f
mov rax, qword [rsi + rax*8 + 0x660080]
movzx r8d, byte [rdx + rax]
mov eax, 1
shl eax, cl
test al, r8b
jne 0x14032c074
cmp dword [rbx + 0xc], 0
jne 0x14032c126
mov dword [rbx + 0xc], 0x2a7c0008
jmp 0x14032c126
mov edx, dword [rbx + 0xe8]
lea rcx, [rbx + 0x118]
call fcn.14032a800
mov rcx, rbx
call fcn.14032d720
mov ecx, dword [rbx + 0xe8]
mov eax, ecx
sar rax, 8
mov edx, ecx
movzx eax, al
and ecx, 7
sar rdx, 3
and edx, 0x1f
mov rax, qword [rsi + rax*8 + 0x660880]
movzx r8d, byte [rdx + rax]
mov eax, 1
shl eax, cl
test al, r8b
je 0x14032c110
mov edx, dword [rbx + 0xe8]
lea rcx, [rbx + 0x118]
call fcn.14032a800
mov rcx, rbx
call fcn.14032d720
mov ecx, dword [rbx + 0xe8]
mov eax, ecx
sar rax, 8
mov edx, ecx
movzx eax, al
and ecx, 7
sar rdx, 3
and edx, 0x1f
mov rax, qword [rsi + rax*8 + 0x660880]
movzx r8d, byte [rdx + rax]
mov eax, 1
shl eax, cl
test al, r8b
jne 0x14032c0c2
cmp dword [rbx + 0xe8], 0x3b
je 0x14032c144
cmp dword [rbx + 0xc], 0
jne 0x14032c126
mov dword [rbx + 0xc], 0x2a7c000d
lea rcx, [rbx + 0x118]
call fcn.14032cb90
xor al, al
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rcx, rbx
call fcn.14032d720
lea rdi, [rbx + 0x118]
mov rax, qword [rdi + 0x20]
inc rax
cmp rax, qword [rdi + 0x10]
jbe 0x14032c16d
mov edx, 1
mov rcx, rdi
call fcn.14032af60
mov rax, qword [rdi + 0x20]
mov byte [rax], 0
mov rsi, qword [rdi + 0x18]
mov rax, qword [rdi + 0x20]
inc rax
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x18], rax
lea rdx, [rsi + 1]
movzx ecx, byte [rsi]
mov eax, 0x811c9dc5
test ecx, ecx
je 0x14032c1b4
nop word [rax + rax]
imul eax, eax, 0x1000193
lea rdx, [rdx + 1]
xor eax, ecx
movzx ecx, byte [rdx - 1]
test ecx, ecx
jne 0x14032c1a0
mov ecx, dword [rbx + 0xa8]
xor edx, edx
div rcx
mov rax, qword [rbx + 0xa0]
mov ecx, edx
mov r8, qword [rax + rcx*8]
test r8, r8
je 0x14032c206
movzx r9d, byte [rsi]
mov rax, qword [r8]
mov rdx, rsi
test r9b, r9b
je 0x14032c1f6
movzx ecx, r9b
cmp cl, byte [rax]
jne 0x14032c1f6
movzx ecx, byte [rdx + 1]
inc rdx
inc rax
test cl, cl
jne 0x14032c1e4
movzx ecx, byte [rax]
cmp byte [rdx], cl
je 0x14032c218
mov r8, qword [r8 + 0x10]
test r8, r8
jne 0x14032c1d5
mov rcx, qword [rbx + 0xa8]
mov rax, qword [rbx + 0xa0]
mov r8, qword [rax + rcx*8]
mov rcx, qword [rbx + 0xa8]
mov rax, qword [rbx + 0xa0]
cmp r8, qword [rax + rcx*8]
je 0x14032c290
mov rsi, qword [r8 + 8]
lea rcx, [rbx + 0x118]
call fcn.14032cb90
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rsi + rdi], 0
jne 0x14032c243
add rbx, 0x118
mov rcx, qword [rbx + 0x20]
add rcx, rdi
cmp rcx, qword [rbx + 0x10]
jbe 0x14032c26b
mov rdx, rdi
mov rcx, rbx
call fcn.14032af60
mov rcx, qword [rbx + 0x20]
mov r8, rdi
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
add qword [rbx + 0x20], rdi
mov al, 1
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
cmp qword [rbx + 0xd8], 0
je 0x14032c2d2
mov rax, qword [rbx + 0xd8]
mov rdx, rsi
mov r8, qword [rbx + 0xe0]
mov rcx, rbx
call rax
test al, al
je 0x14032c2d2
lea rcx, [rbx + 0x118]
call fcn.14032cb90
mov al, 1
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx + 0xec], 1
je 0x14032c2e4
cmp dword [rbx + 0xec], 0
jne 0x14032c350
test byte [rbx + 8], 0x80
je 0x14032c350
cmp dword [rbx + 0xec], 0
jne 0x14032c316
mov qword [rbx + 0xf8], rsi
mov al, 1
mov dword [rbx + 0xf0], 9
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rcx, qword [rbx]
mov rdx, rsi
call fcn.14032e060
lea rcx, [rbx + 0x118]
mov qword [rbx + 0x110], rax
call fcn.14032cb90
mov al, 1
mov dword [rbx + 0xec], 4
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
lea rcx, [rbx + 0x118]
call fcn.14032cb90
cmp dword [rbx + 0xc], 0
jne 0x14032c132
mov dword [rbx + 0xc], 0x2a7c000b
xor al, al
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
call fcn.14032d720
mov rcx, rbx
call fcn.14032b480
test al, al
je 0x14032c132
cmp dword [rbx + 0xc], 0
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
sete al
add rsp, 0x20
pop rdi
ret