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

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1e0]
sub rsp, 0x2e0
mov rax, qword [0x1400c7100]
xor rax, rsp
mov qword [rbp + 0x1d0], rax
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x78], r8
mov r13, rdx
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
xor ebx, ebx
mov dword [rbp - 0x64], ebx
movups xmmword [rbp - 0x58], xmm0
mov qword [rbp - 0x70], rbx
mov qword [rbp - 0x48], rbx
call fcn.140027440
mov r14, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
lea ecx, [rbx + 0x30]
call fcn.14006c698
mov rsi, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], 0x28
mov qword [rsp + 0x68], 0x2f
movups xmm0, xmmword [0x1400b50a0]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x1400b50b0]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x1400b50c0]
movsd qword [rax + 0x20], xmm0
mov byte [rax + 0x28], bl
call fcn.140048a20
lea r15, [r14 + 0x40]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movabs rdi, 0xcbf29ce484222325
mov r9, rdi
mov ecx, ebx
movabs rdx, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rcx + rsi]
xor r9, rax
imul r9, rdx
inc rcx
cmp rcx, 0x28
jb 0x14004d260
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.1400288c0
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14004d2a3
cmp rcx, qword [r14 + 8]
je 0x14004d2a3
mov r14, qword [rcx + 0x30]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x14004d2af
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r14, rbx
mov edx, 0x30
mov rcx, rsi
call fcn.14006c690
test r14, r14
jne 0x14004d2cb
mov eax, 0xc0000138
jmp 0x14004d62d
call fcn.140027440
mov r14, rax
mov r15, r13
cmp qword [r13 + 0x18], 7
jbe 0x14004d2e1
mov r15, qword [r13]
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov ecx, 0x20
call fcn.14006c698
mov rsi, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], 0x14
mov qword [rsp + 0x68], 0x1f
movups xmm0, xmmword [str.RtlInitUnicodeString]
movups xmmword [rax], xmm0
mov ecx, dword [0x1400b4eb0]
mov dword [rax + 0x10], ecx
mov byte [rax + 0x14], 0
call fcn.140048a20
lea r12, [r14 + 0x40]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r9, rdi
mov rcx, rbx
movabs rdx, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rcx + rsi]
xor r9, rax
imul r9, rdx
inc rcx
cmp rcx, 0x14
jb 0x14004d350
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.1400288c0
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14004d3a2
cmp rcx, qword [r14 + 8]
je 0x14004d3a2
mov r14, qword [rcx + 0x30]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test r14, r14
je 0x14004d3ac
mov rdx, r15
lea rcx, [rbp - 0x40]
call r14
jmp 0x14004d3ac
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov edx, 0x20
mov rcx, rsi
call fcn.14006c690
lea rax, [rbp - 0x30]
mov qword [rbp - 0x60], rax
mov dword [rbp - 0x68], 0x1fe0000
mov r12, qword [rsp + 0x70]
cmp r12, 0xffffffffffffffff
je 0x14004d3e0
lea rdx, [rbp - 0x48]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ActivateActCtx]
call fcn.140027440
mov r14, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov ecx, 0x30
call fcn.14006c698
mov rsi, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], 0x28
mov qword [rsp + 0x68], 0x2f
movups xmm0, xmmword [0x1400b50a0]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x1400b50b0]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x1400b50c0]
movsd qword [rax + 0x20], xmm0
mov byte [rax + 0x28], 0
call fcn.140048a20
lea r15, [r14 + 0x40]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r9, rdi
mov rcx, rbx
movabs r12, 0x100000001b3
nop dword [rax]
movzx eax, byte [rcx + rsi]
xor r9, rax
imul r9, r12
inc rcx
cmp rcx, 0x28
jb 0x14004d460
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.1400288c0
mov rcx, qword [rax + 8]
test rcx, rcx
mov r12, qword [rsp + 0x70]
je 0x14004d4e3
cmp rcx, qword [r14 + 8]
je 0x14004d4e3
mov r14, qword [rcx + 0x30]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test r14, r14
je 0x14004d4ec
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
lea rax, [rbp - 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x68]
xor r8d, r8d
lea rdx, [rbp - 0x40]
lea ecx, [r8 + 1]
call r14
mov r14d, eax
jmp 0x14004d4f2
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r14d, 0xc0000138
mov edx, 0x30
mov rcx, rsi
call fcn.14006c690
mov rdx, qword [rbp - 0x48]
test rdx, rdx
je 0x14004d516
cmp r12, 0xffffffffffffffff
je 0x14004d516
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_DeactivateActCtx]
test r14d, r14d
jne 0x14004d549
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x10]
cmp byte [rax + 0x17], r14b
je 0x14004d534
mov eax, 0xc015001d
jmp 0x14004d62d
mov rdx, qword [rbp - 0x70]
mov rdx, qword [rdx + 8]
mov rcx, r13
call fcn.1400185d4
jmp 0x14004d62a
cmp qword [rbp - 0x50], 0
je 0x14004d62a
call fcn.140027440
mov r13, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov ecx, 0x20
call fcn.14006c698
mov rsi, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], 0x14
mov qword [rsp + 0x68], 0x1f
movups xmm0, xmmword [str.RtlFreeUnicodeString]
movups xmmword [rax], xmm0
mov ecx, dword [0x1400b4e20]
mov dword [rax + 0x10], ecx
mov byte [rax + 0x14], 0
call fcn.140048a20
lea rcx, [r13 + 0x40]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movabs r15, 0x100000001b3
nop dword [rax + rax]
movzx eax, byte [rbx + rsi]
xor rdi, rax
imul rdi, r15
inc rbx
cmp rbx, 0x14
jb 0x14004d5c0
mov r9, rdi
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
mov rcx, r13
call fcn.1400288c0
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x14004d612
cmp rdx, qword [r13 + 8]
je 0x14004d612
mov rbx, qword [rdx + 0x30]
lea rcx, [r13 + 0x40]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test rbx, rbx
je 0x14004d61d
lea rcx, [rbp - 0x58]
call rbx
jmp 0x14004d61d
lea rcx, [r13 + 0x40]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov edx, 0x20
mov rcx, rsi
call fcn.14006c690
mov eax, r14d
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.14006c670
mov rbx, qword [rsp + 0x320]
add rsp, 0x2e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret