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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x168]
sub rsp, 0x230
movaps xmmword [rax - 0x48], xmm6
mov rax, qword [0x1404e1800]
xor rax, rsp
mov qword [rbp + 0x110], rax
mov r13, r8
mov r12, rcx
xor r14d, r14d
mov dword [rsp + 0x24], r14d
mov rax, qword [rdx + 0x40]
cmp dword [rax], 1
sete byte [rsp + 0x21]
mov rsi, qword [rcx + 0x48]
mov rax, qword [rcx + 0x50]
sub rax, rsi
sar rax, 5
test rax, rax
je 0x14009aab7
cmp qword [0x1404e32a8], r14
je 0x14009abb7
mov rax, qword [0x1404e32b0]
test rax, rax
je 0x14009a700
lock inc dword [rax + 8]
movups xmm0, xmmword [0x1404e32a8]
movdqu xmmword [rbp - 0x30], xmm0
mov dword [rsp + 0x24], 1
mov r14, qword [0x1404e32a8]
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x60], xmm0
lea rdi, [r14 + 0x40]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockShared]
nop dword [rax + rax]
mov qword [rsp + 0x50], rdi
mov r8, rsi
lea rdx, [rbp - 0x50]
mov rcx, r14
call fcn.14007e0f0
mov r15, qword [rax]
mov qword [rsp + 0x40], r15
mov rbx, qword [rax + 8]
mov qword [rsp + 0x48], rbx
and qword [rax], 0
and qword [rax + 8], 0
movaps xmm6, xmmword [rsp + 0x40]
movdqa xmmword [rbp - 0x60], xmm6
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x14009a77d
call fcn.14007e3e0
nop
test rdi, rdi
je 0x14009a791
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockShared]
nop dword [rax + rax]
test r15, r15
je 0x14009aa73
test rbx, rbx
je 0x14009a7ad
lock inc dword [rbx + 8]
mov rbx, qword [rsp + 0x48]
movaps xmm6, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x70], xmm6
lea rax, [rsp + 0x70]
mov edi, 3
mov rsi, qword [rax]
mov r14, qword [rax + 8]
and qword [rax], 0
and qword [rax + 8], 0
or edi, 8
test dil, 4
jne 0x14009ab9d
mov r15d, 2
test r15b, dil
je 0x14009a7f8
and edi, 0xfffffffd
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14009a7f8
call fcn.14007e3e0
nop
test rbx, rbx
je 0x14009a805
mov rcx, rbx
call fcn.14007e3e0
test rsi, rsi
jne 0x14009aa1b
mov rbx, qword [r13 + 8]
jmp 0x14009a84f
cmp r10, rcx
je 0x14009aaa6
mov rax, qword [r9 + rdx*8 + 8]
mov rax, qword [rax]
cmp rbx, rax
sete al
test al, al
jne 0x14009aa9e
cmp qword [rbx + 0x10], r8
sete al
test al, al
je 0x14009aa8c
cmp r8, qword [rbx + 0x10]
sete al
test al, al
cmove rbx, rcx
test r14, r14
je 0x14009a85d
mov rcx, r14
call fcn.14007e3e0
nop
mov rcx, qword [rbp - 0x28]
test rcx, rcx
jne 0x14009aa94
cmp rbx, qword [r13 + 8]
jne 0x14009ab81
mov r14, qword [r12 + 0x48]
lea rax, [0x1403aae38]
mov qword [rbp - 0x20], rax
lea rcx, [rbp + 0x70]
call qword [sym.imp.msvcp_win.dll_protected:_void___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::constructor_void____ptr64]
nop dword [rax + rax]
nop
or edi, 0x40
mov dword [rsp + 0x24], edi
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x20]
call qword [sym.imp.msvcp_win.dll_public:_void___cdecl_std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__::constructor_class_std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t______ptr64__bool____ptr64]
nop dword [rax + rax]
nop
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rbp + rcx - 0x20], rax
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x90]
mov dword [rbp + rcx - 0x24], edx
lea rax, [rbp - 0x10]
mov qword [rsp + 0x50], rax
lea rcx, [rbp - 0x10]
call qword [sym.imp.msvcp_win.dll_protected:_void___cdecl_std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t__::constructor_void____ptr64]
nop dword [rax + rax]
nop
lea rax, vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rbp - 0x10], rax
mov rdi, qword [r14 + 0x10]
mov rsi, r14
cmp qword [r14 + 0x18], 8
jb 0x14009a913
mov rsi, qword [r14]
cmp rdi, 0x7fffffff
ja 0x14009ab90
xor r12d, r12d
test rdi, rdi
je 0x14009aaae
add rdi, rdi
cmp rdi, 0x1000
jae 0x14009ac56
test rdi, rdi
je 0x14009ac8d
mov rcx, rdi
call fcn.140112a2c
mov rbx, rax
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
lea r9, [rdi + rbx]
mov qword [rbp + 0x58], r9
mov r8, rbx
mov rdx, rbx
lea rcx, [rbp - 0x10]
call qword [sym.imp.msvcp_win.dll_protected:_void___cdecl_std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t__::setg_wchar_t____ptr64__wchar_t____ptr64__wchar_t____ptr64____ptr64]
nop dword [rax + rax]
mov r15d, 3
mov dword [rbp + 0x60], r15d
lea rdx, [0x1400e0e70]
lea rcx, [rbp - 0x20]
call qword [sym.imp.msvcp_win.dll_public:_class_std::basic_istream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
nop dword [rax + rax]
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x20]
call qword [sym.imp.msvcp_win.dll_public:_class_std::basic_istream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__::operator___bool____ptr64____ptr64]
nop dword [rax + rax]
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x20]
add rcx, rax
call qword [sym.imp.msvcp_win.dll_public:_bool___cdecl_std::ios_base::operator__void_const___ptr64]
nop dword [rax + rax]
mov bl, al
lea rcx, [rbp - 0x20]
call fcn.14009aca0
test bl, bl
jne 0x14009aac6
mov al, byte [rsp + 0x20]
cmp byte [rsp + 0x21], al
sete al
mov rcx, qword [rbp + 0x110]
xor rcx, rsp
call fcn.140112420
lea r11, [rsp + 0x230]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r8, qword [rsi + 0x40]
mov qword [rsp + 0x28], r8
movabs rcx, 0xcbf29ce484222325
xor edx, edx
movzx eax, byte [rsp + rdx + 0x28]
xor rcx, rax
movabs r9, 0x100000001b3
imul rcx, r9
inc rdx
cmp rdx, 8
jb 0x14009aa30
mov rdx, qword [r13 + 0x30]
and rdx, rcx
mov r9, qword [r13 + 0x18]
mov rbx, rdx
add rbx, rbx
mov rbx, qword [r9 + rbx*8]
mov r10, rbx
add rdx, rdx
mov rcx, qword [r13 + 8]
jmp 0x14009a814
mov r8, rsi
lea rdx, [rbp - 0x40]
mov rcx, r14
call fcn.14007e4a0
mov edi, 5
jmp 0x14009a7bd
mov rbx, qword [rbx]
jmp 0x14009a814
call fcn.14007e3e0
jmp 0x14009a86a
mov rbx, rcx
jmp 0x14009a84f
mov rax, rcx
jmp 0x14009a825
mov qword [rbp + 0x58], r12
jmp 0x14009a982
call fcn.14007e73c
mov rsi, qword [r12 + 0x48]
jmp 0x14009a6e3
mov rdx, r14
lea rcx, [rbp + 0xf0]
call fcn.14009e99c
nop
mov r9d, reloc.OLEAUT32.dll_SafeArrayLock
lea r8, str.Failed_mapping_type
mov rcx, rax
call fcn.140081884
mov qword [rbp + 0xe0], r12
mov qword [rbp + 0xe8], r12
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xd0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xe0], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], SafeArrayLock
mov byte [rax], r12b
lea rcx, [rbp + 0xd0]
cmp qword [rbp + 0xe8], 0x10
setae al
test al, al
cmovne rcx, qword [rbp + 0xd0]
lea rax, vtable.std::exception.0
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rbp - 0x80], rcx
mov byte [rbp - 0x78], 1
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x80]
call sub.api_ms_win_crt_private_l1_1_0.dll__o___std_exception_copy
lea rax, vtable.std::runtime_error.0
mov qword [rsp + 0x58], rax
lea rdx, [0x1404ae470]
lea rcx, [rsp + 0x58]
call sub.api_ms_win_crt_private_l1_1_0.dll__CxxThrowException
nop
mov rax, qword [rbx + 0x58]
cmp dword [rax], 1
sete al
jmp 0x14009a9e4
call qword [sym.imp.msvcp_win.dll_void___cdecl_std::_Xbad_alloc_void_]
nop dword [rax + rax]
nop
and edi, 0xfffffffb
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14009a7da
call fcn.14007e3e0
jmp 0x14009a7da
lea r15, [0x1404e32c0]
mov qword [rbp - 0x70], r15
mov rcx, r15
call fcn.1400f2094
nop
cmp qword [0x1404e32a8], r14
jne 0x14009ac41
mov edi, 0x48
mov ecx, edi
call fcn.140112a2c
mov rbx, rax
mov qword [rsp + 0x28], rax
mov r8d, edi
xor edx, edx
mov rcx, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov rcx, rbx
call fcn.140081a90
nop
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140081a34
mov rax, qword [rsp + 0x30]
mov qword [0x1404e32a8], rax
mov rax, qword [rsp + 0x38]
mov qword [rbp - 0x68], rax
mov rcx, qword [0x1404e32b0]
mov qword [rsp + 0x38], rcx
mov qword [0x1404e32b0], rax
test rcx, rcx
jne 0x14009ac4f
mov rcx, r15
call fcn.1400f3608
nop
jmp 0x14009a6f0
call fcn.14007e3e0
jmp 0x14009ac41
lea rcx, [rdi + 0x27]
or rax, 0xffffffffffffffff
cmp rcx, rdi
cmovbe rcx, rax
call fcn.140112a2c
test rax, rax
je 0x14009ac80
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x14009a950
call qword [sym.imp.api_ms_win_crt_private_l1_1_0.dll__o__invalid_parameter_noinfo_noreturn]
nop dword [rax + rax]
int3
mov rbx, r12
jmp 0x14009a950