Function at 0x1400ad780
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 0x1400ada02
mov byte [rsp + 0x37], 0
mov rax, qword [0x1401950a0]
cmp rax, 3
jne 0x1400ad99a
cmp byte [rsp + 0x37], 0
jne 0x1400ad9af
mov ecx, dword [0x14012a0f0]
test ecx, ecx
je 0x1400ad9c9
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 2
jb 0x1400ad7dd
mov rsi, rax
cmp byte [rax + 8], 0
jne 0x1400ad874
mov ecx, dword [0x14012a0f0]
test ecx, ecx
je 0x1400ad9dc
dec ecx
call sub.KERNEL32.dll_TlsGetValue
test rax, rax
je 0x1400ad829
mov rsi, rax
cmp rax, 1
jne 0x1400ad86e
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_7cf61ebde7b22796c69757901dd346d0fe70bd97library_std_src_threadlocal.rs
lea r9, [0x140174e40]
lea r8, [rsp + 0x38]
mov edx, 0x46
call fcn.140007880
movzx eax, byte [0x140195158]
mov edx, 0x10
xor ecx, ecx
call fcn.1400dd0f0
test rax, rax
je 0x1400ada1c
mov rsi, rax
lea rax, [0x14012a0d8]
mov qword [rsi], rax
mov byte [rsi + 8], 0
mov ecx, dword [0x14012a0f0]
test ecx, ecx
je 0x1400ad9ef
dec ecx
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
mov word [rsi + 8], 1
add rsi, 9
mov rax, qword [0x140195068]
cmp rax, rsi
jne 0x1400ad8a6
mov eax, dword [0x140195098]
inc eax
jne 0x1400ad8c6
lea rcx, str.lock_count_overflow_in_reentrant_mutexlibrary_std_src_sync_remutex.rs
lea r8, [0x140176698]
mov edx, 0x26
call fcn.140008f10
lea rcx, [0x140195060]
call sub.KERNEL32.dll_TryAcquireSRWLockExclusive
test al, al
je 0x1400ad9af
mov qword [0x140195068], rsi
mov eax, 1
mov dword [0x140195098], eax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], 0
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x55], 0
mov dword [rsp + 0x51], 0
cmp qword [0x140195070], 0
jne 0x1400ada0e
mov qword [0x140195070], 0xffffffffffffffff
cmp byte [0x140195090], 0
jne 0x1400ad93b
lea rcx, [0x140195078]
call fcn.1400adb70
mov qword [rsp + 0x58], rax
test rax, rax
je 0x1400ad93b
lea rcx, [rsp + 0x58]
call fcn.1400ac5c0
cmp qword [0x140195078], 0
je 0x1400ad95a
mov r8, qword [0x140195080]
mov rcx, qword [0x1401950f0]
xor edx, edx
call fcn.1400f4d54
movups xmm0, xmmword [rsp + 0x38]
movups xmm1, xmmword [rsp + 0x48]
movups xmmword [0x140195088], xmm1
movups xmmword [0x140195078], xmm0
inc qword [0x140195070]
dec dword [0x140195098]
jne 0x1400ad9af
mov qword [0x140195068], 0
lea rcx, [0x140195060]
call fcn.1400f4ce4
jmp 0x1400ad9af
lea rcx, [rsp + 0x37]
call fcn.1400adb00
cmp byte [rsp + 0x37], 0
je 0x1400ad7b5
mov rax, qword [0x1401950f8]
cmp rax, 3
jne 0x1400ad9c2
call qword [0x140195100]
nop
add rsp, 0x60
pop rsi
ret
lea rcx, [0x14012a0d8]
call fcn.1400acdc0
mov ecx, eax
jmp 0x1400ad7c5
lea rcx, [0x14012a0d8]
call fcn.1400acdc0
mov ecx, eax
jmp 0x1400ad7ed
lea rcx, [0x14012a0d8]
call fcn.1400acdc0
mov ecx, eax
jmp 0x1400ad866
lea rcx, str.library_std_src_synconce.rs
call fcn.140008ef0
lea rcx, str.library_std_srcio_stdio.rs
call fcn.140006440
ud2
mov ecx, 8
mov edx, 0x10
call fcn.1400024c0
mov rsi, rax
cmp qword [0x140195078], 0
je 0x1400ada4d
mov r8, qword [0x140195080]
mov rcx, qword [0x1401950f0]
xor edx, edx
call fcn.1400f4d54
movups xmm0, xmmword [rsp + 0x38]
movups xmm1, xmmword [rsp + 0x48]
movups xmmword [0x140195088], xmm1
movups xmmword [0x140195078], xmm0
inc qword [0x140195070]
jmp 0x1400adaaa
dec dword [0x140195098]
jne 0x1400adac9
mov qword [0x140195068], 0
lea rcx, [0x140195060]
call fcn.1400f4ce4
mov rcx, rsi
call fcn.1400f5430
cmp qword [rsp + 0x38], 0
je 0x1400adaec
mov r8, qword [rsp + 0x40]
mov rcx, qword [0x1401950f0]
xor edx, edx
call fcn.1400f4d54
call fcn.140009300
int3