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

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x70
lea rbp, [rsp + 0x70]
cmp edx, 3
je 0x14012b4fc
test edx, edx
jne 0x14012b734
mov rdi, qword [0x1401ea218]
xor ebx, ebx
nop word cs:[rax + rax]
test rdi, rdi
je 0x14012b550
mov esi, dword [rdi + 0x18]
mov r14, qword [rdi]
test r14, r14
je 0x14012b740
mov rdi, qword [rdi + 8]
test esi, esi
je 0x14012b510
dec esi
mov ecx, esi
call fcn.140173a38
test rax, rax
je 0x14012b510
mov ecx, esi
xor edx, edx
mov rsi, rax
call sub.KERNEL32.dll_TlsSetValue
mov rcx, rsi
call r14
mov bl, 1
jmp 0x14012b510
test bl, 1
je 0x14012b6be
mov rdi, qword [0x1401ea218]
xor ebx, ebx
nop word cs:[rax + rax]
test rdi, rdi
je 0x14012b5b0
mov esi, dword [rdi + 0x18]
mov r14, qword [rdi]
test r14, r14
je 0x14012b740
mov rdi, qword [rdi + 8]
test esi, esi
je 0x14012b570
dec esi
mov ecx, esi
call fcn.140173a38
test rax, rax
je 0x14012b570
mov ecx, esi
xor edx, edx
mov rsi, rax
call sub.KERNEL32.dll_TlsSetValue
mov rcx, rsi
call r14
mov bl, 1
jmp 0x14012b570
test bl, 1
je 0x14012b6be
mov rdi, qword [0x1401ea218]
xor ebx, ebx
nop word cs:[rax + rax]
test rdi, rdi
je 0x14012b610
mov esi, dword [rdi + 0x18]
mov r14, qword [rdi]
test r14, r14
je 0x14012b740
mov rdi, qword [rdi + 8]
test esi, esi
je 0x14012b5d0
dec esi
mov ecx, esi
call fcn.140173a38
test rax, rax
je 0x14012b5d0
mov ecx, esi
xor edx, edx
mov rsi, rax
call sub.KERNEL32.dll_TlsSetValue
mov rcx, rsi
call r14
mov bl, 1
jmp 0x14012b5d0
test bl, 1
je 0x14012b6be
mov rdi, qword [0x1401ea218]
xor ebx, ebx
nop word cs:[rax + rax]
test rdi, rdi
je 0x14012b670
mov esi, dword [rdi + 0x18]
mov r14, qword [rdi]
test r14, r14
je 0x14012b740
mov rdi, qword [rdi + 8]
test esi, esi
je 0x14012b630
dec esi
mov ecx, esi
call fcn.140173a38
test rax, rax
je 0x14012b630
mov ecx, esi
xor edx, edx
mov rsi, rax
call sub.KERNEL32.dll_TlsSetValue
mov rcx, rsi
call r14
mov bl, 1
jmp 0x14012b630
test bl, 1
je 0x14012b6be
mov rbx, qword [0x1401ea218]
nop dword [rax]
test rbx, rbx
je 0x14012b6be
mov esi, dword [rbx + 0x18]
mov r14, qword [rbx]
test r14, r14
je 0x14012b740
mov rbx, qword [rbx + 8]
test esi, esi
je 0x14012b680
dec esi
mov ecx, esi
call fcn.140173a38
test rax, rax
je 0x14012b680
mov rdi, rax
mov ecx, esi
xor edx, edx
call sub.KERNEL32.dll_TlsSetValue
mov rcx, rdi
call r14
jmp 0x14012b680
mov ecx, dword [0x1401ea258]
test ecx, ecx
je 0x14012b6d7
dec ecx
call fcn.140173a38
cmp rax, 3
jae 0x14012b6f0
jmp 0x14012b734
lea rcx, [0x1401ea240]
call sym.std::sys::thread_local::key::windows::LazyKey::init::h3b25bd09068d2560
mov ecx, eax
call fcn.140173a38
cmp rax, 3
jb 0x14012b734
mov rsi, rax
mov ecx, dword [0x1401ea258]
test ecx, ecx
je 0x14012b701
dec ecx
jmp 0x14012b70f
lea rcx, [0x1401ea240]
call sym.std::sys::thread_local::key::windows::LazyKey::init::h3b25bd09068d2560
mov ecx, eax
mov edx, 2
call sub.KERNEL32.dll_TlsSetValue
mov rax, rsi
add rax, 0xfffffffffffffff0
mov qword [rbp - 0x48], rax
lock dec qword [rsi - 0x10]
jne 0x14012b734
lea rcx, [rbp - 0x48]
call sym.alloc::sync::Arc_T_A_::drop_slow::hfbd468a8117a8eec
nop
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
lea rcx, str.std_src_sys_thread_localkeywindows.rs
call sym.core::option::unwrap_failed::h9508d322d744588d
ud2