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

Disassembly:
mov qword [rsp + 0x10], rdx
push rdi
push r13
push r15
sub rsp, 0x50
lea rdi, [rcx + 0xa8]
mov r13, rcx
mov rcx, rdi
mov r15, rdx
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x18003aeb4
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov eax, dword [rdi + 0x4c]
cmp eax, 0x7fffffff
jne 0x18003aecf
dec eax
mov ecx, 6
mov dword [rdi + 0x4c], eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
test r15, r15
je 0x18003b20c
mov qword [rsp + 0x70], rbx
mov rbx, qword [r15 + 0x58]
mov qword [rsp + 0x48], r12
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
jne 0x18003b16f
mov qword [rsp + 0x88], rsi
movabs rdi, 0xcbf29ce484222325
mov qword [rsp + 0x80], rbp
movabs r9, 0x100000001b3
mov qword [rsp + 0x40], r14
nop dword [rax]
mov r8, qword [rbx + 0x20]
cmp qword [r8 + 0x10], 1
jne 0x18003b001
cmp qword [r8 + 0x58], 0xf
lea rdx, [r8 + 0x40]
jbe 0x18003af3e
mov rdx, qword [r8 + 0x40]
mov r8, qword [r8 + 0x50]
xor ecx, ecx
mov qword [rsp + 0x20], rdx
mov rsi, rdi
mov qword [rsp + 0x28], r8
test r8, r8
je 0x18003af73
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
inc rcx
xor rsi, rax
imul rsi, r9
cmp rcx, r8
jb 0x18003af60
mov r9, rsi
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x30]
lea rcx, [r13 + 0x48]
call fcn.180041610
mov r14, qword [rax + 8]
test r14, r14
je 0x18003b0e8
mov rdx, qword [r13 + 0x78]
and rdx, rsi
shl rdx, 4
add rdx, qword [r13 + 0x60]
mov rax, qword [rdx]
cmp qword [rdx + 8], r14
jne 0x18003afca
cmp rax, r14
jne 0x18003afc0
mov rax, qword [r13 + 0x50]
mov qword [rdx], rax
mov qword [rdx + 8], rax
jmp 0x18003afd5
mov rax, qword [r14 + 8]
mov qword [rdx + 8], rax
jmp 0x18003afd5
cmp rax, r14
jne 0x18003afd5
mov rax, qword [r14]
mov qword [rdx], rax
mov rdx, qword [r14]
lea rcx, [r14 + 0x20]
dec qword [r13 + 0x58]
mov rax, qword [r14 + 8]
mov qword [rax], rdx
mov rax, qword [r14 + 8]
mov qword [rdx + 8], rax
call fcn.180027950
mov edx, 0x28
mov rcx, r14
jmp 0x18003b0e3
movzx eax, byte [rsp + 0x79]
movzx edx, r15b
xor rdx, rdi
imul rdx, r9
xor rdx, rax
movzx eax, byte [rsp + 0x7a]
imul rdx, r9
xor rdx, rax
movzx eax, byte [rsp + 0x7b]
imul rdx, r9
xor rdx, rax
movzx eax, byte [rsp + 0x7c]
imul rdx, r9
xor rdx, rax
movzx eax, byte [rsp + 0x7d]
imul rdx, r9
xor rdx, rax
movzx eax, byte [rsp + 0x7e]
imul rdx, r9
xor rdx, rax
movzx eax, byte [rsp + 0x7f]
imul rdx, r9
xor rdx, rax
imul rdx, r9
mov r9, qword [r8 + 8]
and rdx, qword [r8 + 0x30]
shl rdx, 4
add rdx, qword [r8 + 0x18]
mov r10, qword [rdx + 8]
mov rcx, r10
cmp r10, r9
je 0x18003b096
mov rax, qword [rdx]
cmp r15, qword [r10 + 0x10]
je 0x18003b098
cmp rcx, rax
je 0x18003b096
mov rcx, qword [rcx + 8]
cmp r15, qword [rcx + 0x10]
jne 0x18003b085
jmp 0x18003b098
xor ecx, ecx
test rcx, rcx
je 0x18003b0e8
mov rax, qword [rdx]
cmp r10, rcx
jne 0x18003b0bd
cmp rax, rcx
jne 0x18003b0b3
mov qword [rdx], r9
mov qword [rdx + 8], r9
jmp 0x18003b0c8
mov r9, qword [rcx + 8]
mov qword [rdx + 8], r9
jmp 0x18003b0c8
cmp rax, rcx
jne 0x18003b0c8
mov rax, qword [rcx]
mov qword [rdx], rax
mov rdx, qword [rcx]
dec qword [r8 + 0x10]
mov rax, qword [rcx + 8]
mov qword [rax], rdx
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov edx, 0x18
call fcn.180062350
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x18003b118
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x18003b113
nop dword [rax]
cmp rbx, qword [rax + 0x10]
jne 0x18003b113
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x18003b100
mov rbx, rax
jmp 0x18003b13f
mov rcx, qword [rax]
mov rbx, rax
cmp byte [rcx + 0x19], 0
jne 0x18003b13f
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rcx]
mov rbx, rcx
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x18003b130
cmp byte [rbx + 0x19], 0
movabs r9, 0x100000001b3
je 0x18003af20
mov r14, qword [rsp + 0x40]
lea rdi, [r13 + 0xa8]
mov rsi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x80]
cmp byte [r15 + 0x50], 0
je 0x18003b1a9
mov rcx, qword [r15]
test rcx, rcx
je 0x18003b186
mov rax, qword [r15 + 8]
mov qword [rcx + 8], rax
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x18003b195
mov rax, qword [r15]
mov qword [rcx], rax
cmp qword [r13 + 0x88], r15
jne 0x18003b1a9
mov rax, qword [r15 + 8]
mov qword [r13 + 0x88], rax
mov rax, qword [r15 + 0x58]
mov rbx, qword [rax + 8]
cmp byte [rbx + 0x19], 0
jne 0x18003b1e7
nop word [rax + rax]
mov r8, qword [rbx + 0x10]
lea rdx, [r15 + 0x58]
lea rcx, [r15 + 0x58]
call fcn.180040980
mov rcx, rbx
mov edx, 0x28
mov rbx, qword [rbx]
call fcn.180062350
cmp byte [rbx + 0x19], 0
je 0x18003b1c0
mov rcx, qword [r15 + 0x58]
mov edx, 0x28
call fcn.180062350
mov edx, reloc.WS2_32.dll_WSASetLastError
mov rcx, r15
call fcn.180062350
mov r12, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x70]
mov rcx, rdi
add rsp, 0x50
pop r15
pop r13
pop rdi
jmp qword [sym.imp.MSVCP140.dll__Mtx_unlock]