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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x918
mov r14, r9
mov r15, r8
mov rbx, rdx
mov rdi, rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x58f], xmm0
mov byte [rsp + 0x59f], 0
movzx eax, byte [0x1403f6a90]
mov rcx, qword [0x1403f6548]
test rcx, rcx
jne 0x1401bc51d
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1401bcf14
mov rcx, rax
mov qword [0x1403f6548], rax
mov r8d, 0x520
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x1401bcf14
mov r12, rax
xorps xmm0, xmm0
movups xmmword [rax + 0x510], xmm0
movups xmmword [rax + 0x500], xmm0
movups xmmword [rsp + 0x497], xmm0
movzx eax, byte [0x1403f6a90]
mov rcx, qword [0x1403f6548]
test rcx, rcx
jne 0x1401bc57a
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1401bcf25
mov rcx, rax
mov qword [0x1403f6548], rax
mov r8d, 0x280
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x1401bcf25
mov rsi, rax
and rsi, 0xffffffffffffff80
mov qword [rsi + 0x78], rax
mov qword [rsi + 0x80], 1
mov qword [rsi + 0x88], 1
mov qword [rsi + 0x100], r12
mov qword [rsi + 0x108], 0
xorps xmm0, xmm0
movaps xmmword [rsi + 0x180], xmm0
mov qword [rsi + 0x190], 0
movups xmm0, xmmword [rsp + 0x100]
movups xmm1, xmmword [rsp + 0x110]
movups xmm2, xmmword [rsp + 0x120]
movups xmm3, xmmword [rsp + 0x130]
movups xmmword [rsi + 0x198], xmm0
movups xmmword [rsi + 0x1a8], xmm1
movups xmmword [rsi + 0x1b8], xmm2
movups xmmword [rsi + 0x1c8], xmm3
movups xmm0, xmmword [rsp + 0x140]
movups xmmword [rsi + 0x1d8], xmm0
movups xmm0, xmmword [rsp + 0x150]
movups xmmword [rsi + 0x1e8], xmm0
mov rax, qword [rsp + 0x160]
mov qword [rsi + 0x1f8], rax
mov qword [rsi + 0x200], 0
mov byte [rsi + 0x208], 0
movups xmm0, xmmword [rsp + 0x490]
movups xmmword [rsi + 0x209], xmm0
mov rax, qword [rsp + 0x49f]
mov qword [rsi + 0x218], rax
mov qword [rsi + 0x220], r12
mov qword [rsi + 0x228], r12
mov qword [rsi + 0x230], 0
mov byte [rsi + 0x238], 0
mov byte [rsi + 0x240], 0
mov rax, qword [rsp + 0x598]
mov qword [rsi + 0x251], rax
movups xmm0, xmmword [rsp + 0x588]
movups xmmword [rsi + 0x241], xmm0
mov eax, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x7b]
mov dword [rsi + 0x259], eax
mov dword [rsi + 0x25c], ecx
mov qword [rsi + 0x260], 0x1000
mov qword [rsi + 0x268], 0x800
mov qword [rsi + 0x270], 1
lock inc qword [rsi + 0x80]
jle 0x1401bcf10
sub rsi, 0xffffffffffffff80
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x1f0], rax
movups xmm0, xmmword [rdi]
movups xmmword [rsp + 0x1e0], xmm0
lea rdi, [rsp + 0x78]
mov rcx, rdi
call fcn.1402de940
lea r12, [rsp + 0x490]
lea rdx, [rsp + 0x100]
mov r8d, 0xf8
mov rcx, r12
call sub.msvcrt.dll_memcpy
mov eax, 1
lock xadd qword [0x1403059d0], rax
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x588]
mov r8d, 0x88
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x610], r15
mov qword [rsp + 0x618], r14
lea rcx, [rsp + 0x620]
mov r8d, 0xf8
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x718], rbx
mov qword [rsp + 0x720], rsi
mov byte [rsp + 0x729], 0
lea r12, [rsp + 0x38]
mov qword [rsp + 0x910], r12
mov ecx, dword [0x1403059a8]
test ecx, ecx
je 0x1401bc80f
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x1401bc7d8
mov rdi, rax
cmp qword [rax + 8], 0
jne 0x1401bc985
mov ecx, dword [0x1403059a8]
test ecx, ecx
je 0x1401bc82a
dec ecx
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x1401bc842
mov rdi, rax
cmp rax, 1
jne 0x1401bc8b0
lea rcx, [rsp + 0x588]
call fcn.1401bd070
mov al, 1
jmp 0x1401bcf87
lea rcx, [0x140305990]
call fcn.14028f0b0
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x1401bc7ca
jmp 0x1401bc7d8
lea rcx, [0x140305990]
call fcn.14028f0b0
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
test rax, rax
jne 0x1401bc7ee
movzx eax, byte [0x1403f6a90]
mov rcx, qword [0x1403f6548]
test rcx, rcx
jne 0x1401bc86d
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1401bcfe6
mov rcx, rax
mov qword [0x1403f6548], rax
mov r8d, 0x60
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x1401bcfe6
mov rdi, rax
lea rax, [0x140305990]
mov qword [rdi], rax
mov qword [rdi + 8], 0
mov ecx, dword [0x1403059a8]
test ecx, ecx
je 0x1401bcea1
dec ecx
mov rdx, rdi
call sub.kernel32.dll_TlsSetValue
mov rax, qword [rdi + 0x58]
mov qword [rsp + 0x150], rax
movups xmm0, xmmword [rdi + 0x48]
movaps xmmword [rsp + 0x140], xmm0
movups xmm0, xmmword [rdi + 8]
movups xmm1, xmmword [rdi + 0x18]
movups xmm2, xmmword [rdi + 0x28]
movups xmm3, xmmword [rdi + 0x38]
movaps xmmword [rsp + 0x130], xmm3
movaps xmmword [rsp + 0x120], xmm2
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
mov qword [rdi + 8], 1
movups xmm0, xmmword [0x1403abc88]
movups xmmword [rdi + 0x50], xmm0
movups xmm0, xmmword [0x1403abc78]
movups xmmword [rdi + 0x40], xmm0
movups xmm0, xmmword [0x1403abc68]
movups xmmword [rdi + 0x30], xmm0
movups xmm0, xmmword [0x1403abc58]
movups xmmword [rdi + 0x20], xmm0
movups xmm0, xmmword [0x1403abc48]
movups xmmword [rdi + 0x10], xmm0
cmp qword [rsp + 0x100], 0
je 0x1401bc985
mov rax, qword [rsp + 0x110]
cmp rax, 2
je 0x1401bc985
lea rcx, [rsp + 0x118]
test rax, rax
je 0x1401bc972
mov rax, qword [rsp + 0x118]
lock dec qword [rax]
jne 0x1401bc985
call fcn.1401bdf60
jmp 0x1401bc985
mov rax, qword [rsp + 0x118]
lock dec qword [rax]
jne 0x1401bc985
call fcn.140023420
add rdi, 0x10
mov rax, qword [rdi]
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
jae 0x1401bcf47
inc rax
mov qword [rdi], rax
mov r13, qword [rdi + 8]
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x78]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x188], r15
mov qword [rsp + 0x190], r14
lea rcx, [rsp + 0x198]
lea rdx, [rsp + 0x490]
mov r8d, 0xf8
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x290], rbx
mov qword [rsp + 0x298], rsi
mov byte [rsp + 0x2a1], 0
mov qword [rsp + 0x488], r12
cmp r13, 2
je 0x1401bcf75
mov rbp, qword [rsp + 0x38]
test r13, r13
je 0x1401bcb93
mov r13, qword [rdi + 0x10]
lock inc qword [r13]
jle 0x1401bcf10
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 0
movzx eax, byte [0x1403f6a90]
mov rcx, qword [0x1403f6548]
test rcx, rcx
jne 0x1401bca6f
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1401bcf36
mov rcx, rax
mov qword [0x1403f6548], rax
mov r8d, 0x480
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x1401bcf36
mov r12, rax
and r12, 0xffffffffffffff80
mov qword [r12 + 0x78], rax
mov qword [r12 + 0x80], 0xcc
mov qword [r12 + 0x88], 0
lea rax, [0x14033f320]
mov qword [r12 + 0x90], rax
mov qword [r12 + 0x98], 0
mov qword [r12 + 0xa0], r13
mov qword [r12 + 0xa8], rbp
lea rcx, [r12 + 0xb0]
lea rdx, [rsp + 0x78]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov qword [r12 + 0x138], r15
mov qword [r12 + 0x140], r14
lea rcx, [r12 + 0x148]
lea rdx, [rsp + 0x490]
mov r8d, 0xf8
call sub.msvcrt.dll_memcpy
mov qword [r12 + 0x240], rbx
mov qword [r12 + 0x248], rsi
mov byte [r12 + 0x251], 0
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movups xmmword [r12 + 0x438], xmm0
movups xmmword [r12 + 0x448], xmm1
mov rax, qword [r13 + 0x70]
mov qword [r12 + 0x98], rax
mov cl, 1
xor eax, eax
lock cmpxchg byte [r13 + 0x78], cl
jne 0x1401bcd35
sub r12, 0xffffffffffffff80
cmp byte [r13 + 0x98], 0
je 0x1401bcd50
xor ecx, ecx
mov al, 1
lock cmpxchg byte [r13 + 0x78], cl
je 0x1401bccf9
add r13, 0x78
jmp 0x1401bceb8
mov r13, qword [rdi + 0x10]
lock inc qword [r13]
jle 0x1401bcf10
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 0
movzx eax, byte [0x1403f6a90]
mov rcx, qword [0x1403f6548]
test rcx, rcx
jne 0x1401bcbde
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1401bcf36
mov rcx, rax
mov qword [0x1403f6548], rax
mov r8d, 0x480
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x1401bcf36
mov r12, rax
and r12, 0xffffffffffffff80
mov qword [r12 + 0x78], rax
mov qword [r12 + 0x80], 0xcc
mov qword [r12 + 0x88], 0
lea rax, [0x14033f2d0]
mov qword [r12 + 0x90], rax
mov qword [r12 + 0x98], 0
mov qword [r12 + 0xa0], r13
mov qword [r12 + 0xa8], rbp
lea rcx, [r12 + 0xb0]
lea rdx, [rsp + 0x78]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov qword [r12 + 0x138], r15
mov qword [r12 + 0x140], r14
lea rcx, [r12 + 0x148]
lea rdx, [rsp + 0x490]
mov r8d, 0xf8
call sub.msvcrt.dll_memcpy
mov qword [r12 + 0x240], rbx
mov qword [r12 + 0x248], rsi
mov byte [r12 + 0x251], 0
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movups xmmword [r12 + 0x438], xmm0
movups xmmword [r12 + 0x448], xmm1
mov rax, qword [r13 + 0x60]
mov qword [r12 + 0x98], rax
mov cl, 1
xor eax, eax
lock cmpxchg byte [r13 + 0x68], cl
jne 0x1401bcddb
sub r12, 0xffffffffffffff80
cmp byte [r13 + 0x88], 0
je 0x1401bcdf6
xor ecx, ecx
mov al, 1
lock cmpxchg byte [r13 + 0x68], cl
jne 0x1401bceb4
mov rax, 0xffffffffffffffc0
lock xadd qword [r12], rax
cmp rax, 0x3f
jbe 0x1401bced7
and rax, 0xffffffffffffffc0
cmp rax, 0x40
jne 0x1401bcd25
mov rax, qword [r12 + 0x10]
mov rcx, r12
call qword [rax + 0x10]
mov rax, qword [r12 + 0x10]
mov rcx, r12
call qword [rax + 0x30]
jmp 0x1401bce6a
lea rcx, [r13 + 0x78]
call fcn.140172f80
sub r12, 0xffffffffffffff80
cmp byte [r13 + 0x98], 0
jne 0x1401bcb7a
mov qword [rsp + 0x30], r12
mov rax, qword [r13 + 0x80]
cmp rax, r12
je 0x1401bcff7
mov rcx, qword [r12 + 0x10]
mov rcx, qword [rcx + 0x38]
mov qword [r12 + rcx + 8], rax
mov rcx, qword [r12 + 0x10]
mov rcx, qword [rcx + 0x38]
mov qword [r12 + rcx], 0
test rax, rax
je 0x1401bcd95
mov rcx, qword [rax + 0x10]
mov rcx, qword [rcx + 0x38]
mov qword [rax + rcx], r12
mov qword [r13 + 0x80], r12
cmp qword [r13 + 0x88], 0
jne 0x1401bcdad
mov qword [r13 + 0x88], r12
inc qword [r13 + 0x90]
xor ecx, ecx
mov al, 1
lock cmpxchg byte [r13 + 0x78], cl
jne 0x1401bcef1
add r13, 0x10
mov rcx, r13
mov rdx, r12
xor r8d, r8d
call fcn.1402cd3a0
jmp 0x1401bce6a
lea rcx, [r13 + 0x68]
call fcn.140172f80
sub r12, 0xffffffffffffff80
cmp byte [r13 + 0x88], 0
jne 0x1401bcce9
mov qword [rsp + 0x30], r12
mov rax, qword [r13 + 0x70]
cmp rax, r12
je 0x1401bd006
mov rcx, qword [r12 + 0x10]
mov rcx, qword [rcx + 0x38]
mov qword [r12 + rcx + 8], rax
mov rcx, qword [r12 + 0x10]
mov rcx, qword [rcx + 0x38]
mov qword [r12 + rcx], 0
test rax, rax
je 0x1401bce38
mov rcx, qword [rax + 0x10]
mov rcx, qword [rcx + 0x38]
mov qword [rax + rcx], r12
mov qword [r13 + 0x70], r12
cmp qword [r13 + 0x78], 0
jne 0x1401bce47
mov qword [r13 + 0x78], r12
inc qword [r13 + 0x80]
xor ecx, ecx
mov al, 1
lock cmpxchg byte [r13 + 0x68], cl
jne 0x1401bceff
mov rcx, qword [rdi + 0x10]
mov rdx, r12
call fcn.1402cbb00
dec qword [rdi]
mov ecx, 0x84
mov eax, 0xcc
lock cmpxchg qword [r12], rcx
je 0x1401bce8a
mov rax, qword [r12 + 0x10]
mov rcx, r12
call qword [rax + 0x20]
mov rax, rsi
add rsp, 0x918
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x140305990]
call fcn.14028f0b0
mov ecx, eax
jmp 0x1401bc8a8
add r13, 0x68
mov rcx, r13
call fcn.140172bb0
mov rax, 0xffffffffffffffc0
lock xadd qword [r12], rax
cmp rax, 0x3f
ja 0x1401bcd10
lea rcx, str.assertion_failed:_prev.ref_count_____1
lea r8, [0x1403ad6a0]
mov edx, 0x27
call fcn.140137ef0
ud2
lea rcx, [r13 + 0x78]
call fcn.140172bb0
jmp 0x1401bcdc4
add r13, 0x68
mov rcx, r13
call fcn.140172bb0
jmp 0x1401bce5e
ud2
mov ecx, 8
mov edx, 0x520
call fcn.1400eb190
ud2
mov ecx, pe_nt_image_headers64
mov edx, 0x200
call fcn.1400eb190
ud2
mov ecx, pe_nt_image_headers64
mov edx, 0x400
call fcn.1400eb190
ud2
lea rax, str._Users_sh1n_.cargo_registry_src_rsproxy.cn_8f6827c7555bfaf8_tokio_1.32.0_src_runtime_context_current.rs
mov qword [rsp + 0x20], rax
lea rcx, str.already_mutably_borrowed_m__
lea r9, [0x14033ea58]
lea r8, [rsp + 0x100]
mov edx, 0x18
call fcn.14013bd80
ud2
lea rcx, [rsp + 0x100]
call fcn.1401bd070
dec qword [rdi]
xor eax, eax
mov byte [rsp + 0x40], al
lea rax, [rsp + 0x40]
mov qword [rsp + 0x588], rax
lea rax, [0x1402c6840]
mov qword [rsp + 0x590], rax
mov qword [rsp + 0x20], 1
lea rdx, [0x1403d7d80]
lea rsi, [rsp + 0x100]
lea r9, [rsp + 0x588]
mov r8d, 1
mov rcx, rsi
call fcn.14000ce70
lea rdx, [0x140342280]
mov rcx, rsi
call fcn.140136bd0
ud2
mov ecx, 8
mov edx, 0x60
call fcn.1400eb190
ud2
mov qword [rsp + 0x40], 0
sub r13, 0xffffffffffffff80
jmp 0x1401bd013
mov qword [rsp + 0x40], 0
add r13, 0x70
lea rdx, [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rcx, r13
call fcn.1401bd030
ud2