Function at 0x140002d40
Capabilities:
Get thread local storage value
Hash data using fnv
Set thread local storage value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x30
lea rsi, [0x14008af80]
mov qword [rsp + 0x48], rsi
mov rcx, rsi
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x140002d74
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov eax, dword [0x14008afcc]
cmp eax, 0x7fffffff
jne 0x140002d95
dec eax
mov dword [0x14008afcc], eax
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov ecx, dword [0x14008af68]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
xor ebx, ebx
test rax, rax
jne 0x140002e28
lea ecx, [rax + 0x70]
call fcn.14006bbf8
mov qword [rax + 0x58], rbx
mov qword [rax + 0x60], rbx
mov qword [rax + 0x68], rbx
mov rdx, rax
mov ecx, dword [0x14008af68]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
lea rdx, str.Created_More_Data
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140004780
lea rdx, [0x140004a30]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov ecx, dword [0x14008af68]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
jne 0x140002e28
lea rdx, str.Failed_to_get_thread_data...
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140004780
lea rdx, [0x140004a30]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
call qword [sym.imp.MSVCP140.dll__Thrd_id]
mov edx, eax
shr eax, 8
movzx r8d, al
movzx eax, dl
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
movabs r9, 0x100000001b3
imul rax, r9
xor r8, rax
imul r8, r9
mov eax, edx
shr eax, 0x10
movzx ecx, al
xor r8, rcx
imul r8, r9
mov eax, edx
shr rax, 0x18
xor r8, rax
imul r8, r9
and r8, qword [0x14008b080]
mov rax, r8
add rax, rax
mov rcx, qword [0x14008b068]
mov rax, qword [rcx + rax*8 + 8]
mov r9, qword [0x14008b058]
cmp rax, r9
je 0x140002ec1
add r8, r8
mov rcx, qword [rcx + r8*8]
cmp edx, dword [rax + 0x10]
je 0x140002ebe
nop dword [rax]
cmp rax, rcx
je 0x140002ec1
mov rax, qword [rax + 8]
cmp edx, dword [rax + 0x10]
jne 0x140002eb0
mov rbx, rax
mov rax, r9
test rbx, rbx
cmovne rax, rbx
cmp rax, r9
jne 0x140002f02
mov ebx, dword [0x14008b090]
lea eax, [rbx + 1]
mov dword [0x14008b090], eax
mov dword [rdi], ebx
call qword [sym.imp.MSVCP140.dll__Thrd_id]
mov dword [rsp + 0x40], eax
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x20]
call fcn.140004b20
mov rcx, qword [rax]
mov dword [rcx + 0x14], ebx
jmp 0x140002f07
mov eax, dword [rax + 0x14]
mov dword [rdi], eax
mov rdx, rdi
mov ecx, dword [0x14008af68]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ebx, dword [rdi]
mov rcx, rsi
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
lea eax, [rbx + 4]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret