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

Disassembly:
push rsi
sub rsp, 0x60
mov rax, qword [rcx]
cmp byte [rax], 0
mov byte [rax], 0
je 0x1400ef686
mov byte [rsp + 0x37], 0
mov rax, qword [0x1401be098]
cmp rax, 3
jne 0x1400ef44d
cmp byte [rsp + 0x37], 0
jne 0x1400ef62f
mov ecx, dword [0x1401450a8]
test ecx, ecx
je 0x1400ef464
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x1400ef47d
mov rsi, rax
cmp byte [rax + 8], 0
je 0x1400ef47d
add rsi, 9
mov rax, qword [0x1401be060]
cmp rax, rsi
jne 0x1400ef567
mov eax, dword [0x1401be090]
inc eax
jne 0x1400ef587
lea rcx, str.lock_count_overflow_in_reentrant_mutexlibrary_std_src_sync_remutex.rs
lea r8, [0x140184b58]
mov edx, 0x26
call fcn.140012210
ud2
lea rcx, [rsp + 0x37]
call fcn.1400ef790
cmp byte [rsp + 0x37], 0
jne 0x1400ef62f
jmp 0x1400ef3f1
lea rcx, [0x140145090]
call fcn.1400ee340
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jae 0x1400ef408
mov ecx, dword [0x1401450a8]
test ecx, ecx
je 0x1400ef4cb
dec ecx
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x1400ef4e3
mov rsi, rax
cmp rax, 1
jne 0x1400ef54d
lea rax, str.library_std_src_threadlocal.rs
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_a2f5f9691b6ce64c1703feaf9363710dfd7a56cflibrary_std_src_threadlocal.rs
lea r9, [0x140183668]
lea r8, [rsp + 0x40]
mov edx, 0x46
call fcn.140010e60
ud2
lea rcx, [0x140145090]
call fcn.1400ee340
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
test rax, rax
jne 0x1400ef493
movzx eax, byte [0x1401be180]
mov rcx, qword [0x1401be0e8]
test rcx, rcx
jne 0x1400ef50e
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1400ef6ae
mov rcx, rax
mov qword [0x1401be0e8], rax
mov r8d, 0x10
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x1400ef6ae
mov rsi, rax
lea rax, [0x140145090]
mov qword [rsi], rax
mov byte [rsi + 8], 0
mov ecx, dword [0x1401450a8]
test ecx, ecx
je 0x1400ef673
dec ecx
mov rdx, rsi
call sub.kernel32.dll_TlsSetValue
mov word [rsi + 8], 1
add rsi, 9
mov rax, qword [0x1401be060]
cmp rax, rsi
je 0x1400ef425
lea rcx, [0x1401be058]
call sub.kernel32.dll_TryAcquireSRWLockExclusive
test al, al
je 0x1400ef62f
mov qword [0x1401be060], rsi
mov eax, 1
mov dword [0x1401be090], eax
mov qword [rsp + 0x40], 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x56], 0
cmp qword [0x1401be068], 0
jne 0x1400ef6a0
mov qword [0x1401be068], 0xffffffffffffffff
cmp byte [0x1401be088], 0
jne 0x1400ef5e9
lea rcx, [0x1401be070]
call fcn.1400ef800
mov qword [rsp + 0x38], rax
test rax, rax
je 0x1400ef5e9
lea rcx, [rsp + 0x38]
call fcn.1400eda90
cmp qword [0x1401be078], 0
je 0x1400ef608
mov r8, qword [0x1401be070]
mov rcx, qword [0x1401be0e8]
xor edx, edx
call sub.kernel32.dll_HeapFree
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [0x1401be080], xmm1
movups xmmword [0x1401be070], xmm0
inc qword [0x1401be068]
dec dword [0x1401be090]
je 0x1400ef642
mov rax, qword [0x1401be0f0]
cmp rax, 3
je 0x1400ef666
add rsp, 0x60
pop rsi
ret
mov qword [0x1401be060], 0
lea rcx, [0x1401be058]
call fcn.1401433c4
mov rax, qword [0x1401be0f0]
cmp rax, 3
jne 0x1400ef63c
call qword [0x1401be0f8]
nop
add rsp, 0x60
pop rsi
ret
lea rcx, [0x140145090]
call fcn.1400ee340
mov ecx, eax
jmp 0x1400ef545
lea rcx, [0x1401aec10]
lea r8, str.library_std_src_synconce.rs
mov edx, 0x2b
call fcn.14000c150
ud2
lea rcx, str.library_std_srcio_stdio.rs
call fcn.14000ff70
ud2
mov ecx, 8
mov edx, 0x10
call fcn.140007810
ud2