Function at 0x140092d00
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, 0x68
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], r8
mov byte [rsp + 0x2f], dl
mov rsi, rcx
mov rax, qword [rcx]
lea r14, [rsp + 0x32]
lea r12, [0x1401aa098]
xor r13d, r13d
lea rdi, [0x1401cf650]
lea rbx, [rsp + 0x30]
mov r15, rax
test rax, rax
jne 0x140092d76
jmp 0x140092d5b
cmp byte [rsp + 0x2f], 0
je 0x1400931af
mov rax, r15
mov ecx, 2
lock cmpxchg qword [rsi], rcx
je 0x1400930f4
mov r15, rax
test rax, rax
je 0x140092d5b
cmp r15, 1
je 0x140092d50
cmp r15, 3
je 0x14009319e
mov eax, r15d
and eax, 3
cmp eax, 2
je 0x140092daf
jmp 0x1400931af
mov eax, r15d
and eax, 3
cmp eax, 2
jne 0x1400930e0
mov ecx, dword [0x1401aa0b0]
test ecx, ecx
je 0x140092df8
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x140092dd4
mov rbp, rax
cmp qword [rax + 8], 0
jne 0x140092eb0
mov ecx, dword [0x1401aa0b0]
test ecx, ecx
je 0x140092e0f
dec ecx
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x140092e30
mov rbp, rax
cmp rax, 1
jne 0x140092e72
jmp 0x1400931af
mov rcx, r12
call fcn.14008d860
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jae 0x140092dc6
jmp 0x140092dd4
mov rcx, r12
call fcn.14008d860
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
test rax, rax
jne 0x140092dea
nop word cs:[rax + rax]
movzx eax, byte [0x14024d119]
mov edx, 0x18
xor ecx, ecx
call fcn.140082900
test rax, rax
je 0x1400931af
invalid
add eax, dword [rax]
invalid
mov rbp, rax
mov qword [rax], r12
mov qword [rax + 8], 0
add byte [rax], al
mov ecx, dword [0x1401aa0b0]
test ecx, ecx
je 0x140092f13
dec ecx
mov rdx, rbp
call sub.kernel32.dll_TlsSetValue
mov rcx, qword [rbp + 8]
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov qword [rbp + 8], 1
mov qword [rbp + 0x10], 0
test rcx, rcx
je 0x140092eb0
test rax, rax
je 0x140092eb0
lock dec qword [rax]
jne 0x140092eb0
lea rcx, [rsp + 0x50]
call fcn.14008e260
nop
add rbp, 0x10
mov rcx, rbp
call fcn.1400907e0
mov rax, qword [rbp]
lock inc qword [rax]
jle 0x1400931af
lea rcx, [r15 - 2]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x40], 0
mov qword [rsp + 0x38], rcx
mov rax, r15
lock cmpxchg qword [rsi], r14
je 0x1400930b0
invalid
add dword [rax], eax
invalid
mov r15, rax
mov rax, qword [rsp + 0x30]
test rax, rax
ror byte [rdi], 0x84
movsb byte [rdi], byte [rsi]
invalid
invalid
invalid
lock dec qword [rax]
jne 0x140092da0
invalid
invalid
invalid
mov rcx, rbx
call fcn.14008e260
push rdx
mov bl, 0xff
invalid
jmp 0x140092da0
invalid
invalid
mov rcx, r12
call fcn.14008d860
test eax, 0xc189ffff
jmp 0x140092e6a
mov ecx, dword [0x1401aa0b0]
test ecx, ecx
je 0x140092f79
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x140092f55
mov r15, rax
cmp qword [rax + 8], 0
jne 0x140093030
test ebx, ebx
add byte [rax], al
invalid
mov ecx, dword [0x1401aa0b0]
test ecx, ecx
je 0x140092f90
invalid
dec ecx
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x140092fb0
mov r15, rax
cmp rax, 1
jne 0x140092ff2
invalid
jmp 0x1400931af
mov rcx, r12
call fcn.14008d860
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jae 0x140092f47
jmp 0x140092f55
mov rcx, r12
call fcn.14008d860
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
invalid
add byte [rax - 0x7b], cl
invalid
jne 0x140092f6b
nop word cs:[rax + rax]
movzx eax, byte [0x14024d119]
mov edx, 0x18
xor ecx, ecx
call fcn.140082900
stc
invalid
dec dword [rax - 0x7b]
ror byte [rdi], 0x84
jrcxz 0x140092fcb
add byte [rax], al
mov r15, rax
mov qword [rax], r12
mov qword [rax + 8], 0
mov ecx, dword [0x1401aa0b0]
test ecx, ecx
je 0x140093093
dec ecx
mov rdx, r15
call sub.kernel32.dll_TlsSetValue
mov rcx, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov qword [r15 + 8], 1
mov qword [r15 + 0x10], 0
test rcx, rcx
je 0x140093030
test rax, rax
je 0x140093030
lock dec qword [rax]
jne 0x140093030
lea rcx, [rsp + 0x50]
call fcn.14008e260
nop
add r15, 0x10
mov rcx, r15
call fcn.1400907e0
mov rbp, qword [r15]
lock inc qword [rbp]
jle 0x1400931af
mov qword [rsp + 0x48], rbp
lock dec byte [rbp + 0x28]
je 0x140093080
lea r15, [rbp + 0x28]
nop dword [rax]
mov r8d, 1
mov rcx, r15
mov rdx, rdi
mov r9d, 0xffffffff
call sub.api_ms_win_core_synch_l1_2_0.dll_WaitOnAddress
mov al, 1
lock cmpxchg byte [r15], r13b
jne 0x140093060
lock dec qword [rbp]
jne 0x1400930b0
lea rcx, [rsp + 0x48]
call fcn.14008e260
jmp 0x1400930b0
mov rcx, r12
call fcn.14008d860
mov ecx, eax
jmp 0x140092fea
movzx eax, byte [rsp + 0x40]
test al, al
je 0x140092f30
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x1400930e0
lock dec qword [rax]
jne 0x1400930e0
mov rcx, rbx
call fcn.14008e260
nop word cs:[rax + rax]
mov rax, qword [rsi]
mov r15, rax
test rax, rax
jne 0x140092d76
jmp 0x140092d5b
cmp r15, 1
mov qword [rsp + 0x30], 3
sete byte [rsp + 0x38]
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
call qword [rax + 0x20]
mov rax, qword [rsp + 0x30]
xchg qword [rsi], rax
mov ecx, eax
and ecx, 3
cmp ecx, 2
jne 0x1400931af
add rax, 0xfffffffffffffffe
je 0x14009319e
lea rsi, [rsp + 0x30]
jmp 0x140093148
mov rax, rdi
test rdi, rdi
je 0x14009319e
mov rdi, qword [rax + 8]
mov rcx, qword [rax]
mov qword [rax], 0
test rcx, rcx
je 0x1400931af
mov qword [rsp + 0x30], rcx
mov byte [rax + 0x10], 1
mov al, 1
xchg byte [rcx + 0x28], al
cmp al, 0xff
je 0x140093180
mov rax, qword [rsp + 0x30]
lock dec qword [rax]
jne 0x140093140
jmp 0x140093194
add rcx, 0x28
call sub.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle
mov rax, qword [rsp + 0x30]
lock dec qword [rax]
jne 0x140093140
mov rcx, rsi
call fcn.14008e260
jmp 0x140093140
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2