Function at 0x1401086c0
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 [0x1401ea238]
test ecx, ecx
je 0x14010870f
dec ecx
call fcn.140173a38
mov r14, rax
test rax, rax
je 0x14010872a
mov rax, qword [rsi]
cmp r14, rax
jne 0x14010873a
mov eax, dword [rsi + 8]
cmp eax, 0xffffffff
je 0x1401088ab
inc eax
mov dword [rsi + 8], eax
jmp 0x140108753
lea rcx, [0x1401ea220]
call sym.std::sys::thread_local::key::windows::LazyKey::init::h3b25bd09068d2560
mov ecx, eax
call fcn.140173a38
mov r14, rax
test rax, rax
jne 0x1401086f4
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 0x1401086fc
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi + 0xc], cl
jne 0x14010888f
mov qword [rsi], r14
mov dword [rsi + 8], 1
cmp qword [rsi + 0x10], 0
jne 0x14010889d
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 0x140108799
mov r8d, dword [rdi + rcx]
add rcx, 0x10
test r8, r8
je 0x140108780
mov rdx, qword [rdi + rcx - 8]
jmp 0x1401087a1
mov edx, 1
xor r8d, r8d
mov ecx, 0xfffffff4
call sym.std::sys::pal::windows::stdio::write::h56dc1c44324702c0
test al, 1
je 0x140108850
movabs rcx, 0xffffffff00000003
mov r8, rdx
and r8, rcx
movabs rcx, 0x600000002
cmp r8, rcx
jne 0x140108852
test rbx, rbx
je 0x1401087ec
mov eax, ebx
and eax, 3
cmp rbx, 4
jae 0x1401087f0
xor edx, edx
xor ecx, ecx
jmp 0x140108828
xor edx, edx
jmp 0x140108850
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 0x140108800
test rax, rax
je 0x140108850
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 0x140108840
xor eax, eax
inc qword [rsi + 0x10]
dec dword [rsi + 8]
jne 0x140108884
mov qword [rsi], 0
xor ecx, ecx
xchg byte [rsi + 0xc], cl
cmp cl, 2
jne 0x140108884
add rsi, 0xc
mov rcx, rsi
mov rsi, rdx
mov rdi, rax
call fcn.140131cbc
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 0x140108749
lea rcx, [0x140196b88]
call sym.core::cell::panic_already_borrowed::h439a15d5ce72f317
ud2
lea rcx, [0x140197850]
lea r8, [0x140197898]
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