Function at 0x1400163f0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xd0
movdqa xmmword [rsp + 0xc0], xmm7
movdqa xmmword [rsp + 0xb0], xmm6
mov ecx, dword [0x140065030]
test ecx, ecx
je 0x14001647e
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jb 0x140016430
mov rax, qword [rax + 8]
test rax, rax
jne 0x14001675c
mov ecx, dword [0x140065030]
test ecx, ecx
je 0x140016499
dec ecx
call sub.KERNEL32.dll_TlsGetValue
test rax, rax
je 0x1400164b1
mov rsi, rax
cmp rax, 1
jne 0x14001651f
lea rax, str._rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_threadlocal.rs
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructionlibrary_std_src_threadlocal.rs
lea r9, dbg.drop_in_place____
lea r8, [rsp + 0x30]
mov edx, 0x46
call dbg.unwrap_failed
ud2
lea rcx, sym.std::sys::common::thread_local::os_local::destroy_value::h0506998c96ebf630
call dbg.init
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jae 0x140016423
jmp 0x140016430
lea rcx, sym.std::sys::common::thread_local::os_local::destroy_value::h0506998c96ebf630
call dbg.init
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
test rax, rax
jne 0x140016446
movzx eax, byte [0x140186040]
mov rcx, qword [0x140186128]
test rcx, rcx
jne 0x1400164dc
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x140016810
mov rcx, rax
mov qword [0x140186128], rax
mov r8d, 0x10
xor edx, edx
call fcn.140047ee4
test rax, rax
je 0x140016810
mov rsi, rax
lea rax, sym.std::sys::common::thread_local::os_local::destroy_value::h0506998c96ebf630
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x140065030]
test ecx, ecx
je 0x14001677c
dec ecx
mov rdx, rsi
call fcn.140047e34
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xa0], xmm0
movdqa xmmword [rsp + 0x90], xmm0
lea rdi, [rsp + 0x90]
mov rcx, rdi
call sym.__rand_core::os::OsRng_as_rand_core::RngCore_::try_fill_bytes::h0403f11d80d5dc9d
test rax, rax
jne 0x1400167a4
movdqa xmm7, xmmword [rsp + 0x90]
movdqa xmm6, xmmword [rsp + 0xa0]
movdqa xmmword [rsp + 0x70], xmm6
movdqa xmmword [rsp + 0x60], xmm7
mov rax, qword [0x140186180]
test rax, rax
je 0x1400165bd
test eax, 0x4000
jne 0x1400165c9
pshufd xmm0, xmm7, 0xee
pshufd xmm1, xmm6, 0xee
movq rdi, xmm7
movq rax, xmm0
movq rcx, xmm6
movq rdx, xmm1
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rdx
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x50], xmm0
jmp 0x1400165e4
call dbg.detect_and_initialize
test eax, 0x4000
je 0x14001657f
lea r8, [0x14006a508]
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x60]
call sym.rand_chacha::guts::init_chacha::impl_avx::h892a1ea60372bd4d
mov rdi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x70], rdx
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rcx
movzx eax, byte [0x140186040]
mov rcx, qword [0x140186128]
test rcx, rcx
jne 0x140016644
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x140016793
mov rcx, rax
mov qword [0x140186128], rax
mov r8d, 0x170
xor edx, edx
call fcn.140047ee4
test rax, rax
je 0x140016793
mov qword [rax], 1
mov qword [rax + 8], 1
pxor xmm0, xmm0
movdqa xmmword [rax + 0x10], xmm0
movdqa xmmword [rax + 0x20], xmm0
movdqa xmmword [rax + 0x30], xmm0
movdqa xmmword [rax + 0x40], xmm0
movdqa xmmword [rax + 0x50], xmm0
movdqa xmmword [rax + 0x60], xmm0
movdqa xmmword [rax + 0x70], xmm0
movdqa xmmword [rax + 0x80], xmm0
movdqa xmmword [rax + 0x90], xmm0
movdqa xmmword [rax + 0xa0], xmm0
movdqa xmmword [rax + 0xb0], xmm0
movdqa xmmword [rax + 0xc0], xmm0
movdqa xmmword [rax + 0xd0], xmm0
movdqa xmmword [rax + 0xe0], xmm0
movdqa xmmword [rax + 0xf0], xmm0
movdqa xmmword [rax + 0x100], xmm0
mov qword [rax + 0x110], 0x40
mov qword [rax + 0x120], rdi
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movups xmmword [rax + 0x128], xmm0
movups xmmword [rax + 0x138], xmm1
mov rcx, qword [rsp + 0x80]
mov qword [rax + 0x148], rcx
mov qword [rax + 0x150], 0x10000
mov qword [rax + 0x158], 0x10000
mov qword [rax + 0x160], 0
mov r8, qword [rsi + 8]
mov qword [rsi + 8], rax
test r8, r8
je 0x140016758
dec qword [r8]
jne 0x140016758
dec qword [r8 + 8]
jne 0x140016758
mov rcx, qword [0x140186128]
xor edx, edx
call fcn.140047edc
mov rax, qword [rsi + 8]
inc qword [rax]
je 0x14001678f
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
add rsp, 0xd0
pop rbx
pop rdi
pop rsi
ret
lea rcx, sym.std::sys::common::thread_local::os_local::destroy_value::h0506998c96ebf630
call dbg.init
mov ecx, eax
jmp 0x140016517
ud2
mov ecx, 0x10
mov edx, 0x170
call dbg.handle_alloc_error
ud2
mov qword [rsp + 0x90], rax
lea rax, sym.core::ptr::drop_in_place_secp256k1::Error_::h8d572cb827ae6471
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x60], rdi
lea rax, [sym.__rand_core::error::Error_as_core::fmt::Display_::fmt::h4fc30c9ff8ebb374]
mov qword [rsp + 0x68], rax
lea rax, str.could_not_initialize_thread_rng:
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x50], 0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
lea rdx, str.C:UsersEvgen.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rand_0.8.5_src_rngs_thread.rs
lea rcx, [rsp + 0x30]
call dbg.panic_fmt
ud2
mov ecx, 8
mov edx, 0x10
call dbg.handle_alloc_error
ud2