Function at 0x140049dc0
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 [0x1400c50b0]
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.140023eb0
mov r14, rax
lea ecx, [rbx + 0x30]
call fcn.140068fd8
mov rsi, rax
mov qword [rsp + 0x60], 0x28
mov qword [rsp + 0x68], 0x2f
movups xmm0, xmmword [0x1400b2f70]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x1400b2f80]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x1400b2f90]
movsd qword [rax + 0x20], xmm0
mov byte [rax + 0x28], bl
mov qword [rsp + 0x50], rax
call fcn.140045b80
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
movzx eax, byte [rcx + rsi]
xor r9, rax
imul r9, rdx
inc rcx
cmp rcx, 0x28
jb 0x140049e90
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.1400252e0
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140049ed3
cmp rcx, qword [r14 + 8]
je 0x140049ed3
mov r14, qword [rcx + 0x30]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x140049edf
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r14, rbx
mov edx, 0x30
mov rcx, rsi
call fcn.140068fd0
test r14, r14
jne 0x140049efb
mov eax, 0xc0000138
jmp 0x14004a23d
call fcn.140023eb0
mov r14, rax
mov r15, r13
cmp qword [r13 + 0x18], 8
jb 0x140049f11
mov r15, qword [r13]
mov ecx, 0x20
call fcn.140068fd8
mov rsi, rax
mov qword [rsp + 0x60], 0x14
mov qword [rsp + 0x68], 0x1f
movups xmm0, xmmword [str.RtlInitUnicodeString]
movups xmmword [rax], xmm0
mov ecx, dword [0x1400b2d80]
mov dword [rax + 0x10], ecx
mov byte [rax + 0x14], 0
mov qword [rsp + 0x50], rax
call fcn.140045b80
lea r12, [r14 + 0x40]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r9, rdi
mov rcx, rbx
movabs rdx, 0x100000001b3
nop
movzx eax, byte [rcx + rsi]
xor r9, rax
imul r9, rdx
inc rcx
cmp rcx, 0x14
jb 0x140049f70
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.1400252e0
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140049fc2
cmp rcx, qword [r14 + 8]
je 0x140049fc2
mov r14, qword [rcx + 0x30]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test r14, r14
je 0x140049fcc
mov rdx, r15
lea rcx, [rbp - 0x40]
call r14
jmp 0x140049fcc
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov edx, 0x20
mov rcx, rsi
call fcn.140068fd0
lea rax, [rbp - 0x30]
mov qword [rbp - 0x60], rax
mov dword [rbp - 0x68], 0x1fe0000
mov r12, qword [rsp + 0x70]
cmp r12, 0xffffffffffffffff
je 0x14004a000
lea rdx, [rbp - 0x48]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ActivateActCtx]
call fcn.140023eb0
mov r14, rax
mov ecx, 0x30
call fcn.140068fd8
mov rsi, rax
mov qword [rsp + 0x60], 0x28
mov qword [rsp + 0x68], 0x2f
movups xmm0, xmmword [0x1400b2f70]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x1400b2f80]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x1400b2f90]
movsd qword [rax + 0x20], xmm0
mov byte [rax + 0x28], 0
mov qword [rsp + 0x50], rax
call fcn.140045b80
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]
nop dword [rax + rax]
movzx eax, byte [rcx + rsi]
xor r9, rax
imul r9, r12
inc rcx
cmp rcx, 0x28
jb 0x14004a080
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.1400252e0
mov rcx, qword [rax + 8]
test rcx, rcx
mov r12, qword [rsp + 0x70]
je 0x14004a103
cmp rcx, qword [r14 + 8]
je 0x14004a103
mov r14, qword [rcx + 0x30]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test r14, r14
je 0x14004a10c
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 0x14004a112
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r14d, 0xc0000138
mov edx, 0x30
mov rcx, rsi
call fcn.140068fd0
mov rdx, qword [rbp - 0x48]
test rdx, rdx
je 0x14004a136
cmp r12, 0xffffffffffffffff
je 0x14004a136
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_DeactivateActCtx]
test r14d, r14d
jne 0x14004a169
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x10]
cmp byte [rax + 0x17], r14b
je 0x14004a154
mov eax, 0xc015001d
jmp 0x14004a23d
mov rdx, qword [rbp - 0x70]
mov rdx, qword [rdx + 8]
mov rcx, r13
call fcn.1400066f4
jmp 0x14004a23a
cmp qword [rbp - 0x50], 0
je 0x14004a23a
call fcn.140023eb0
mov r13, rax
mov ecx, 0x20
call fcn.140068fd8
mov rsi, rax
mov qword [rsp + 0x60], 0x14
mov qword [rsp + 0x68], 0x1f
movups xmm0, xmmword [str.RtlFreeUnicodeString]
movups xmmword [rax], xmm0
mov ecx, dword [0x1400b2cf0]
mov dword [rax + 0x10], ecx
mov byte [rax + 0x14], 0
mov qword [rsp + 0x50], rax
call fcn.140045b80
lea rcx, [r13 + 0x40]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movabs r15, 0x100000001b3
movzx eax, byte [rbx + rsi]
xor rdi, rax
imul rdi, r15
inc rbx
cmp rbx, 0x14
jb 0x14004a1d0
mov r9, rdi
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
mov rcx, r13
call fcn.1400252e0
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x14004a222
cmp rdx, qword [r13 + 8]
je 0x14004a222
mov rbx, qword [rdx + 0x30]
lea rcx, [r13 + 0x40]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test rbx, rbx
je 0x14004a22d
lea rcx, [rbp - 0x58]
call rbx
jmp 0x14004a22d
lea rcx, [r13 + 0x40]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov edx, 0x20
mov rcx, rsi
call fcn.140068fd0
mov eax, r14d
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.140068fb0
mov rbx, qword [rsp + 0x320]
add rsp, 0x2e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret