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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rdi
push r12
push r13
lea rbp, [rsp - 0x37]
sub rsp, 0xb0
xor edi, edi
mov r13, rcx
mov dword [rbp + 0x6f], edi
mov r12d, edi
mov rbx, qword [rcx]
mov rcx, rbx
mov qword [rbp - 0x51], rbx
call fcn.14016e898
test eax, eax
jne 0x140032919
cmp dword [rbx + 0x4c], 0x7fffffff
je 0x140032924
mov rax, qword [r13 + 0x20]
lea rdx, [rbp + 0x7f]
mov qword [rbp + 0x7f], rdi
mov rcx, qword [rax]
mov rax, qword [rcx]
call qword [rax + 0x30]
test eax, eax
js 0x140032936
mov qword [rsp + 0xa8], rsi
mov rsi, qword [rbp + 0x7f]
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0x98], r15
mov qword [rbp + 0xf], rsi
test rsi, rsi
jne 0x1400323df
mov rcx, qword [r13 + 0x28]
lea rdx, [rbp + 0x67]
mov qword [rbp + 0x67], rdi
call fcn.14002f080
jmp 0x140032891
mov r14, qword [r13 + 0x10]
lea rdx, [rbp - 0x49]
mov qword [rbp - 0x49], rdi
mov rcx, rsi
mov rax, qword [rsi]
call qword [rax + 0x30]
test eax, eax
js 0x14003293e
mov rbx, qword [rbp - 0x49]
test rbx, rbx
je 0x14003240b
mov rdx, qword [rbx + 0x10]
jmp 0x140032412
lea rdx, [0x140218274]
xorps xmm0, xmm0
mov qword [rbp - 9], rdi
movups xmmword [rbp - 0x19], xmm0
mov qword [rbp - 1], rdi
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [rdx + r8*2], di
jne 0x140032430
lea rcx, [rbp - 0x19]
call fcn.14003b630
mov r10, qword [rbp - 9]
lea r8, [rbp - 0x19]
mov r15, qword [rbp - 1]
mov rcx, rdi
mov r11, qword [rbp - 0x19]
cmp r15, 8
movabs rdx, 0xcbf29ce484222325
movabs rdi, 0x100000001b3
lea r9, [r10 + r10]
cmovae r8, r11
test r9, r9
je 0x140032494
nop dword [rax + rax]
movzx eax, byte [rcx + r8]
inc rcx
xor rdx, rax
imul rdx, rdi
cmp rcx, r9
jb 0x140032480
mov rcx, qword [r14 + 0x30]
mov rax, qword [r14 + 0x18]
and rcx, rdx
mov r14, qword [r14 + 8]
add rcx, rcx
mov rdi, qword [rax + rcx*8 + 8]
cmp rdi, r14
je 0x140032511
mov r9, qword [rax + rcx*8]
nop dword [rax]
nop dword [rax + rax]
cmp qword [rdi + 0x28], 8
lea rcx, [rdi + 0x10]
mov rax, qword [rcx + 0x10]
jb 0x1400324d2
mov rcx, qword [rcx]
cmp r15, 8
lea r8, [rbp - 0x19]
cmovae r8, r11
cmp r10, rax
jne 0x140032506
mov rdx, r10
test r10, r10
je 0x140032513
sub r8, rcx
nop
movzx eax, word [r8 + rcx]
cmp ax, word [rcx]
jne 0x140032506
add rcx, 2
sub rdx, 1
jne 0x1400324f0
jmp 0x140032513
cmp rdi, r9
je 0x140032511
mov rdi, qword [rdi + 8]
jmp 0x1400324c0
xor edi, edi
mov rax, qword [r13 + 0x10]
test rdi, rdi
cmove rdi, r14
mov r14, qword [rax + 8]
cmp r15, 8
jb 0x14003255d
lea rdx, [r15*2 + 2]
mov rax, r11
cmp rdx, 0x1000
jb 0x140032555
mov r11, qword [r11 - 8]
add rdx, 0x27
sub rax, r11
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140032946
mov rcx, r11
call fcn.14005ca98
test rbx, rbx
je 0x140032588
mov eax, 0xffffffff
lock xadd dword [rbx + 0x18], eax
sub eax, 1
jne 0x1400325af
nop
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
mov r8, rbx
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rbp + 0x7f]
cmp rdi, r14
jne 0x1400325b9
mov rax, qword [rsi]
mov rcx, rsi
mov rbx, qword [r13 + 0x28]
mov qword [rbp + 0x67], rsi
call qword [rax + 8]
lea rdx, [rbp + 0x67]
mov rcx, rbx
call fcn.14002f080
jmp 0x14003288d
test eax, eax
js 0x14003290b
jmp 0x140032584
mov rax, qword [r13 + 0x20]
lea rdx, [rbp - 0x59]
xor r14d, r14d
mov qword [rbp - 0x59], r14
mov rcx, qword [rax]
mov rax, qword [rcx]
call qword [rax + 0x38]
test eax, eax
js 0x14003294c
mov r15, qword [rbp - 0x59]
mov qword [rbp + 7], r15
test r15, r15
je 0x14003286e
mov dword [rbp + 0x6f], r14d
lea rdx, [rbp + 0x6f]
mov rax, qword [r15]
mov rcx, r15
mov r13d, r14d
call qword [rax + 0x38]
test eax, eax
js 0x140032954
cmp dword [rbp + 0x6f], r12d
je 0x14003286a
mov rbx, qword [rbp + 0x67]
nop dword [rax]
nop dword [rax + rax]
mov qword [rbp + 0x77], r14
lea r8, [rbp + 0x77]
mov rax, qword [r15]
mov edx, r13d
mov rcx, r15
call qword [rax + 0x30]
test eax, eax
js 0x140032911
mov rcx, qword [rbp + 0x77]
test rcx, rcx
je 0x1400327a2
mov rdi, qword [rbp + 0x67]
lea rdx, [rbp - 0x41]
mov qword [rbp - 0x41], r14
or r12d, 1
mov rax, qword [rcx]
mov rdi, qword [rdi + 0x10]
call qword [rax + 0x30]
test eax, eax
js 0x14003295c
mov rbx, qword [rbp - 0x41]
test rbx, rbx
je 0x14003267a
mov rdx, qword [rbx + 0x10]
jmp 0x140032681
lea rdx, [0x140218274]
xorps xmm0, xmm0
mov qword [rbp - 0x29], r14
movups xmmword [rbp - 0x39], xmm0
mov qword [rbp - 0x21], r14
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1400326a0
lea rcx, [rbp - 0x39]
call fcn.14003b630
mov r10, qword [rbp - 0x29]
lea r8, [rbp - 0x39]
mov rsi, qword [rbp - 0x21]
or r12d, 2
mov r11, qword [rbp - 0x39]
cmp rsi, 8
movabs rdx, 0xcbf29ce484222325
mov rcx, r14
lea r9, [r10 + r10]
cmovae r8, r11
test r9, r9
je 0x140032708
movabs r15, 0x100000001b3
movzx eax, byte [rcx + r8]
inc rcx
xor rdx, rax
imul rdx, r15
cmp rcx, r9
jb 0x1400326f0
mov r15, qword [rbp - 0x59]
mov rcx, qword [rdi + 0x30]
mov rax, qword [rdi + 0x18]
and rcx, rdx
mov r14, qword [rdi + 8]
add rcx, rcx
mov r9, qword [rax + rcx*8 + 8]
cmp r9, r14
je 0x140032781
mov rdi, qword [rax + rcx*8]
nop dword [rax + rax]
cmp qword [r9 + 0x28], 8
lea rax, [r9 + 0x10]
mov rcx, qword [rax + 0x10]
jb 0x140032742
mov rax, qword [rax]
cmp rsi, 8
lea r8, [rbp - 0x39]
cmovae r8, r11
cmp r10, rcx
jne 0x140032776
mov rdx, r10
test r10, r10
je 0x140032784
sub r8, rax
nop
movzx ecx, word [r8 + rax]
cmp cx, word [rax]
jne 0x140032776
add rax, 2
sub rdx, 1
jne 0x140032760
jmp 0x140032784
cmp r9, rdi
je 0x140032781
mov r9, qword [r9 + 8]
jmp 0x140032730
xor r9d, r9d
mov rcx, qword [rbp + 0x77]
test r9, r9
cmove r9, r14
mov r14, qword [rbp + 0x67]
mov rax, qword [r14 + 0x10]
cmp r9, qword [rax + 8]
jne 0x1400327ae
mov dil, 1
jmp 0x1400327b1
mov rsi, qword [rbp - 0x21]
mov r11, qword [rbp - 0x39]
mov r14, qword [rbp + 0x67]
xor dil, dil
test r12b, 2
je 0x1400327fa
and r12d, 0xfffffffd
cmp rsi, 8
jb 0x1400327fa
lea rdx, [rsi*2 + 2]
mov rax, r11
cmp rdx, 0x1000
jb 0x1400327ee
mov r11, qword [r11 - 8]
add rdx, 0x27
sub rax, r11
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140032964
mov rcx, r11
call fcn.14005ca98
mov rcx, qword [rbp + 0x77]
test r12b, 1
je 0x14003283f
and r12d, 0xfffffffe
test rbx, rbx
je 0x14003283f
mov eax, 0xffffffff
lock xadd dword [rbx + 0x18], eax
sub eax, 1
jne 0x14003282d
nop
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
mov r8, rbx
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140032835
test eax, eax
js 0x140032905
mov rcx, qword [rbp + 0x77]
xor ebx, ebx
mov r15, qword [rbp - 0x59]
test dil, dil
jne 0x1400328cd
test rcx, rcx
je 0x140032856
lea rcx, [rbp + 0x77]
call fcn.140007d20
inc r13d
xor r14d, r14d
cmp r13d, dword [rbp + 0x6f]
jne 0x140032620
mov rsi, qword [rbp + 0x7f]
mov r13, qword [rbp + 0x67]
mov rcx, qword [r13 + 0x28]
lea rdx, [rbp + 0x67]
mov qword [rbp + 0x67], r14
call fcn.14002f080
test r15, r15
je 0x14003288d
lea rcx, [rbp + 7]
call fcn.140007d20
mov rbx, qword [rbp - 0x51]
test rsi, rsi
je 0x14003289f
lea rcx, [rbp + 0xf]
call fcn.140007d20
mov rcx, rbx
mov r14, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x98]
add rsp, 0xb0
pop r13
pop r12
pop rdi
pop rbx
pop rbp
jmp fcn.14016e8bc
mov rbx, qword [r14 + 0x28]
mov qword [rbp + 0x67], rcx
test rcx, rcx
je 0x1400328e0
mov rax, qword [rcx]
call qword [rax + 8]
lea rdx, [rbp + 0x67]
mov rcx, rbx
call fcn.14002f080
cmp qword [rbp + 0x77], 0
je 0x1400328fc
lea rcx, [rbp + 0x77]
call fcn.140007d20
mov rsi, qword [rbp + 0x7f]
jmp 0x14003287f
call fcn.140175d78
int3
call fcn.140175d78
int3
mov ecx, eax
call fcn.140008a00
int3
mov ecx, 5
call fcn.14016dc90
int3
mov ecx, 6
mov dword [rbx + 0x4c], 0x7ffffffe
call fcn.14016dc90
int3
mov ecx, eax
call fcn.140008a00
int3
mov ecx, eax
call fcn.140008a00
int3
call fcn.140176448
int3
mov ecx, eax
call fcn.140008a00
int3
mov ecx, eax
call fcn.140008a00
int3
mov ecx, eax
call fcn.140008a00
int3
call fcn.140176448
int3