Function at 0x44de00
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, 0xd8
movaps xmmword [rsp + 0xc0], xmm6
mov qword [rsp + 0xa8], r9
mov qword [rsp + 0xa0], r8
mov byte [rsp + 0x37], dl
mov rsi, rcx
mov r13, qword [rcx]
lea r14, [rsp + 0x3a]
lea rbp, [0x004cd0d8]
xorps xmm6, xmm6
xor r15d, r15d
lea r12, [0x009067fb]
jmp 0x44de53
mov r13, qword [rsi]
test r13, r13
je 0x44e03b
cmp r13, 1
je 0x44e030
cmp r13, 3
je 0x44e33a
mov eax, r13d
and eax, 3
cmp eax, 2
je 0x44de8b
jmp 0x44e40f
mov eax, r13d
and eax, 3
cmp eax, 2
jne 0x44de50
mov rcx, qword [0x004cd0d8]
test rcx, rcx
je 0x44deb0
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x44dec6
jmp 0x44ded3
mov rcx, rbp
call fcn.00450d00
mov rcx, rax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x44ded3
mov rbx, rax
cmp qword [rax], 0
jne 0x44dfa0
mov rcx, qword [0x004cd0d8]
test rcx, rcx
je 0x44df00
call sub.KERNEL32.dll_TlsGetValue
test rax, rax
je 0x44df15
mov rbx, rax
cmp rax, 1
jne 0x44df5a
jmp 0x44e35a
mov rcx, rbp
call fcn.00450d00
mov rcx, rax
call sub.KERNEL32.dll_TlsGetValue
test rax, rax
jne 0x44dee9
mov ecx, 0x20
mov edx, 8
call fcn.0040a2c0
test rax, rax
je 0x44e3ea
mov rbx, rax
mov qword [rax], 0
mov qword [rax + 0x18], rbp
mov rcx, qword [0x004cd0d8]
test rcx, rcx
jne 0x44df52
mov rcx, rbp
call fcn.00450d00
mov rcx, rax
mov rdx, rbx
call sub.KERNEL32.dll_TlsSetValue
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rbx], 1
movups xmmword [rbx + 8], xmm6
cmp qword [rsp + 0x50], 0
je 0x44dfa0
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x44dfa0
lock sub qword [rax], 1
jne 0x44dfa0
lea rcx, [rsp + 0x60]
call fcn.00423580
nop dword [rax]
add rbx, 8
cmp qword [rbx], 0
jne 0x44e374
mov qword [rbx], 0xffffffffffffffff
mov rax, qword [rbx + 8]
test rax, rax
jne 0x44dfc9
xor ecx, ecx
call fcn.00433ad0
mov qword [rbx + 8], rax
lock add qword [rax], 1
jle 0x44e356
add qword [rbx], 1
test rax, rax
je 0x44e35a
mov rcx, r13
and rcx, 0xfffffffffffffffc
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x48], 0
mov qword [rsp + 0x40], rcx
mov rax, r13
lock cmpxchg qword [rsi], r14
je 0x44e056
mov r13, rax
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x44de80
lock sub qword [rax], 1
jne 0x44de80
lea rcx, [rsp + 0x38]
call fcn.00423580
jmp 0x44de80
cmp byte [rsp + 0x37], 0
je 0x44e42a
mov rax, r13
mov ecx, 2
lock cmpxchg qword [rsi], rcx
je 0x44e2ee
mov r13, rax
jmp 0x44de53
mov al, byte [rsp + 0x48]
test al, al
lea r13, [rsp + 0x88]
je 0x44e0a8
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x44de50
lock sub qword [rax], 1
jne 0x44de50
lea rcx, [rsp + 0x38]
call fcn.00423580
mov r13, qword [rsi]
jmp 0x44de53
mov al, byte [rsp + 0x48]
test al, al
jne 0x44e066
mov rax, qword [0x004cd0d8]
test rax, rax
jne 0x44e0bc
mov rcx, rbp
call fcn.00450d00
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x44e0d6
mov rbx, rax
cmp qword [rax], 0
jne 0x44e1a0
mov rax, qword [0x004cd0d8]
test rax, rax
jne 0x44e0ea
mov rcx, rbp
call fcn.00450d00
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
test rax, rax
je 0x44e110
mov rbx, rax
cmp rax, 1
jne 0x44e154
jmp 0x44e39f
mov ecx, 0x20
mov edx, 8
call fcn.0040a2c0
test rax, rax
je 0x44e3fb
mov rbx, rax
mov qword [rax], 0
mov qword [rax + 0x18], rbp
mov rax, qword [0x004cd0d8]
test rax, rax
jne 0x44e14a
mov rcx, rbp
call fcn.00450d00
mov ecx, eax
mov rdx, rbx
call sub.KERNEL32.dll_TlsSetValue
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rbx], 1
movups xmmword [rbx + 8], xmm6
cmp qword [rsp + 0x50], 0
je 0x44e1a0
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x44e1a0
lock sub qword [rax], 1
jne 0x44e1a0
lea rcx, [rsp + 0x60]
call fcn.00423580
nop word cs:[rax + rax]
nop dword [rax]
add rbx, 8
cmp qword [rbx], 0
jne 0x44e3bc
mov qword [rbx], 0xffffffffffffffff
mov rdi, qword [rbx + 8]
test rdi, rdi
jne 0x44e1cc
xor ecx, ecx
call fcn.00433ad0
mov rdi, rax
mov qword [rbx + 8], rax
lock add qword [rdi], 1
jle 0x44e356
add qword [rbx], 1
test rdi, rdi
je 0x44e39f
mov qword [rsp + 0x88], rdi
lock sub byte [rdi + 0x28], 1
je 0x44e22d
mov rbx, qword [0x00943168]
test rbx, rbx
je 0x44e24d
add rdi, 0x28
test rbx, rbx
je 0x44e25e
nop dword [rax + rax]
mov r8d, 1
mov rcx, rdi
mov rdx, r12
mov r9d, 0xffffffff
call rbx
mov al, 1
lock cmpxchg byte [rdi], r15b
jne 0x44e210
mov rax, qword [rsp + 0x88]
lock sub qword [rax], 1
jne 0x44e0a0
mov rcx, r13
call fcn.00423580
jmp 0x44e0a0
call fcn.00455810
mov rbx, rax
add rdi, 0x28
test rbx, rbx
jne 0x44e210
mov rcx, qword [0x004cd068]
cmp rcx, 0xffffffffffffffff
jne 0x44e2c0
mov qword [rsp + 0x98], 0xffffffffffffffff
mov rax, qword [0x004cd0b0]
lea rcx, [rsp + 0x98]
mov edx, 0xc0000000
xor r8d, r8d
xor r9d, r9d
call rax
test eax, eax
jne 0x44e471
mov rcx, qword [rsp + 0x98]
mov rax, 0xffffffffffffffff
lock cmpxchg qword [0x004cd068], rcx
je 0x44e2c0
mov rbx, rax
call sub.KERNEL32.dll_CloseHandle
mov rcx, rbx
mov rax, qword [0x004cd0c0]
mov rdx, rdi
xor r8d, r8d
xor r9d, r9d
call rax
xor eax, eax
xchg byte [rdi], al
mov rax, qword [rsp + 0x88]
lock sub qword [rax], 1
jne 0x44e0a0
jmp 0x44e240
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], 1
cmp r13, 1
sete byte [rsp + 0x58]
mov qword [rsp + 0x50], 3
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xa8]
call qword [rax + 0x20]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x38]
call fcn.0044e570
movaps xmm6, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rcx, str.use_of_std::thread::current___is_not_possible_after_the_threads_local_data_has_been_destroyed
lea r8, str.library_std_src_threadmod.rsfailed_to_spawn_thread
mov edx, 0x5e
call fcn.004a3d80
ud2
lea rax, [0x0090a288]
mov qword [rsp + 0x20], rax
lea rcx, [0x00908313]
lea r9, [0x00906978]
lea r8, [rsp + 0x50]
mov edx, 0x10
call fcn.004a4520
ud2
lea rcx, str.use_of_std::thread::current___is_not_possible_after_the_threads_local_data_has_been_destroyed
lea r8, str.library_std_src_threadmod.rsfailed_to_spawn_thread
mov edx, 0x5e
call fcn.004a3d80
jmp 0x44e4dc
lea rax, [0x0090a288]
mov qword [rsp + 0x20], rax
lea rcx, [0x00908313]
lea r9, [0x00906978]
lea r8, [rsp + 0x50]
mov edx, 0x10
call fcn.004a4520
jmp 0x44e4dc
mov ecx, 0x20
mov edx, 8
call fcn.00498280
ud2
mov ecx, 0x20
mov edx, 8
call fcn.00498280
jmp 0x44e4dc
lea rcx, str.assertion_failed:_state_and_queue.addr____STATE_MASK__RUNNINGOnce_instance_has_previously_been_poisoned
mov edx, 0x40
mov r8, qword [rsp + 0x140]
call fcn.004a3ff0
ud2
lea rax, [0x00909f38]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], 0
lea rax, str._rustc_d394408fb38c4de61f765a3ed5189d2731a1da91librarycore_src_sliceiter.rs
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 0
lea rcx, [rsp + 0x50]
mov rdx, qword [rsp + 0x140]
call fcn.004a41c0
ud2
mov dword [rsp + 0x94], eax
lea rax, [rsp + 0x94]
mov qword [rsp + 0xb0], rax
lea rax, [0x004b8300]
mov qword [rsp + 0xb8], rax
lea rax, str.Unable_to_create_keyed_event_handle:_error
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], 0
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 1
lea rdx, str.library_std_src_syswindows_thread_parker.rs
lea rcx, [rsp + 0x50]
call fcn.004a41c0
ud2