Function at 0x140038ee0
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
lea rbp, [rsp + 0x20]
mov rbx, r8
mov rdi, rdx
mov rax, qword [rcx]
mov rsi, qword [rax]
mov ecx, dword [0x1400e1180]
test ecx, ecx
je 0x140038f2f
dec ecx
call fcn.1400a4524
mov r14, rax
test rax, rax
je 0x140038f4a
mov rax, qword [rsi]
cmp r14, rax
jne 0x140038f5a
mov eax, dword [rsi + 8]
cmp eax, 0xffffffff
je 0x1400390cb
inc eax
mov dword [rsi + 8], eax
jmp 0x140038f73
lea rcx, [0x1400e1168]
call sym.std::sys::thread_local::key::windows::LazyKey::init::h3b25bd09068d2560
mov ecx, eax
call fcn.1400a4524
mov r14, rax
test rax, rax
jne 0x140038f14
call sym.std::thread::current::id::get_or_init::__u7b__u7b_closure_u7d__u7d_::hedc11dbc19db473f
mov r14, rax
mov rax, qword [rsi]
cmp r14, rax
je 0x140038f1c
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi + 0xc], cl
jne 0x1400390af
mov qword [rsi], r14
mov dword [rsi + 8], 1
cmp qword [rsi + 0x10], 0
jne 0x1400390bd
mov qword [rsi + 0x10], 0xffffffffffffffff
lea r9, [rsi + 0x18]
mov rax, rbx
shl rax, 4
xor ecx, ecx
nop word cs:[rax + rax]
cmp rax, rcx
je 0x140038fb9
mov r8d, dword [rdi + rcx]
add rcx, 0x10
test r8, r8
je 0x140038fa0
mov rdx, qword [rdi + rcx - 8]
jmp 0x140038fc1
mov edx, 1
xor r8d, r8d
mov ecx, 0xfffffff4
call sym.std::sys::pal::windows::stdio::write::h56dc1c44324702c0
test al, 1
je 0x140039070
movabs rcx, 0xffffffff00000003
mov r8, rdx
and r8, rcx
movabs rcx, 0x600000002
cmp r8, rcx
jne 0x140039072
test rbx, rbx
je 0x14003900c
mov eax, ebx
and eax, 3
cmp rbx, 4
jae 0x140039010
xor edx, edx
xor ecx, ecx
jmp 0x140039048
xor edx, edx
jmp 0x140039070
and rbx, 0xfffffffffffffffc
lea r8, [rdi + 0x30]
xor edx, edx
xor ecx, ecx
nop dword [rax]
mov r9d, dword [r8 - 0x30]
mov r10d, dword [r8 - 0x20]
add r9, rdx
mov r11d, dword [r8 - 0x10]
add r11, r10
add r11, r9
mov edx, dword [r8]
add rdx, r11
add rcx, 4
add r8, 0x40
cmp rbx, rcx
jne 0x140039020
test rax, rax
je 0x140039070
shl rcx, 4
add rdi, rcx
shl eax, 4
xor ecx, ecx
nop dword [rax]
mov r8d, dword [rdi + rcx]
add rdx, r8
add rcx, 0x10
cmp rax, rcx
jne 0x140039060
xor eax, eax
inc qword [rsi + 0x10]
dec dword [rsi + 8]
jne 0x1400390a4
mov qword [rsi], 0
xor ecx, ecx
xchg byte [rsi + 0xc], cl
cmp cl, 2
jne 0x1400390a4
add rsi, 0xc
mov rcx, rsi
mov rsi, rdx
mov rdi, rax
call fcn.1400624dc
mov rax, rdi
mov rdx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
lea rcx, [rsi + 0xc]
call sym.std::sys::sync::mutex::futex::Mutex::lock_contended::hbe5cde1fd81d392d
jmp 0x140038f69
lea rcx, [0x1400ae6d8]
call sym.core::cell::panic_already_borrowed::h439a15d5ce72f317
ud2
lea rcx, [0x1400af3a0]
lea r8, [0x1400af3e8]
mov edx, 0x26
call sym.core::option::expect_failed::h0dca3ca7a19f43d9
mov rdi, rax
inc qword [rsi + 0x10]
mov rcx, rsi
call sym._ZN4core3ptr175drop_in_place_LT_std..sync..reentrant_lock..ReentrantLockGuard_LT_core..cell..RefCell_LT_std..io..buffered..lin
mov rcx, rdi
call sym._Unwind_Resume
mov rdi, rax
mov rcx, rsi
call sym._ZN4core3ptr175drop_in_place_LT_std..sync..reentrant_lock..ReentrantLockGuard_LT_core..cell..RefCell_LT_std..io..buffered..lin
mov rcx, rdi
call sym._Unwind_Resume
int3