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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xf0
mov rax, qword [0x1402e7d18]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rsi, r8
movzx r15d, dl
mov rdi, rcx
lea r13, [0x1402eb3e0]
mov rcx, qword [0x1402eb3e0]
cmp rcx, r13
je 0x1400b8e70
test byte [rcx + 0x44], 0x40
je 0x1400b8e70
cmp byte [rcx + 0x41], 4
jb 0x1400b8e70
mov r9d, r15d
mov edx, 0x29
mov qword [rsp + 0x20], r8
lea r8, [0x140272160]
mov rcx, qword [rcx + 0x38]
call fcn.1400bb2a0
lea r12, [rdi + 0xf8]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov qword [rbp - 0x59], rsi
test rsi, rsi
je 0x1400b8e9a
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140047d56.0]
nop
mov rcx, qword [0x1402f1100]
mov rax, qword [rcx]
mov rax, qword [rax + 0x80]
call qword [case.0x140047d56.0]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400b8ec8
mov ebx, 0x1392
jmp 0x1400b92cc
mov ecx, 8
call fcn.1401544fc
mov r14, rax
test rax, rax
je 0x1400b92c7
mov qword [rax], 0xffffffffffffffff
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [r14], rax
cmp rax, 0xffffffffffffffff
je 0x1400b8f0a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test eax, eax
jne 0x1400b8f38
mov rcx, qword [0x1402f1100]
mov rax, qword [rcx]
mov rax, qword [rax + 0x80]
call qword [case.0x140047d56.0]
mov ecx, eax
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x1400b8f63
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, qword [r14]
cmp rcx, 0xffffffffffffffff
je 0x1400b8f4e
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [r14], 0xffffffffffffffff
mov edx, 8
mov rcx, r14
call fcn.1401544b8
test ebx, ebx
jne 0x1400b92cc
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x39], xmm0
movups xmmword [rbp - 0x29], xmm0
movups xmmword [rbp - 0x19], xmm0
movups xmmword [rbp - 9], xmm0
mov qword [rbp + 7], rax
lea rax, vtable.std::_Func_impl_no_alloc_class__lambda_62bda4175fd0484a68efc832a38a6a01___void__struct__RTL_CRITICAL_SECTION____ptr64_.0
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x61], rax
xor r14d, r14d
mov qword [rbp - 1], r14
lea rdx, [rbp - 0x39]
lea rcx, [rsp + 0x30]
mov rax, qword [0x140272350]
call qword [case.0x140047d56.0]
mov qword [rbp - 1], rax
mov rcx, qword [rbp - 0x61]
test rcx, rcx
je 0x1400b8fda
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
cmp rcx, rdx
setne dl
mov rax, qword [rax + 0x20]
call qword [case.0x140047d56.0]
mov ecx, r14d
mov qword [rbp - 0x61], rcx
mov qword [rbp + 7], r12
test rcx, rcx
je 0x1400b8fff
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
cmp rcx, rdx
setne dl
mov rax, qword [rax + 0x20]
call qword [case.0x140047d56.0]
mov qword [rbp - 0x61], r14
test r15b, r15b
je 0x1400b9044
mov eax, dword [rdi + 0x144]
cmp eax, 2
jne 0x1400b9044
mov rcx, qword [0x1402eb3e0]
cmp rcx, r13
je 0x1400b903a
test byte [rcx + 0x44], 0x40
je 0x1400b903a
cmp byte [rcx + 0x41], 4
jb 0x1400b903a
lea edx, [rax + 0x29]
lea r8, [0x140272160]
mov rcx, qword [rcx + 0x38]
call fcn.140024250
mov ebx, 0x8007139f
jmp 0x1400b9276
cmp qword [rdi + 0x130], 0
setne al
cmp r15b, al
jne 0x1400b917c
mov qword [rbp - 0x49], r14
mov rax, qword [rsi]
lea r8, [rbp - 0x49]
lea rdx, [0x140272330]
mov rcx, rsi
mov rax, qword [rax]
call qword [case.0x140047d56.0]
test eax, eax
je 0x1400b90b1
mov rcx, qword [0x1402eb3e0]
cmp rcx, r13
je 0x1400b90a7
test byte [rcx + 0x44], 0x40
je 0x1400b90a7
cmp byte [rcx + 0x41], 2
jb 0x1400b90a7
mov edx, 0x2c
lea r8, [0x140272160]
mov rcx, qword [rcx + 0x38]
call fcn.140024250
mov ebx, 0x80004002
jmp 0x1400b9159
test r15b, r15b
je 0x1400b9129
movzx eax, byte [rdi + 0x128]
test al, al
je 0x1400b910d
mov rcx, qword [0x1402eb3e0]
cmp rcx, r13
je 0x1400b90ee
test byte [rcx + 0x44], 0x40
je 0x1400b90ee
cmp byte [rcx + 0x41], 4
jb 0x1400b90ee
mov edx, 0x2d
lea r8, [0x140272160]
mov rcx, qword [rcx + 0x38]
call fcn.140024250
mov ebx, 0x8004131f
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x1400b915d
mov rax, qword [rcx]
mov edx, ebx
mov rax, qword [rax + 0x20]
call qword [case.0x140047d56.0]
jmp 0x1400b9159
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x1400b9185
mov qword [rbp - 0x49], r14
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140047d56.0]
jmp 0x1400b9185
mov rcx, qword [0x1402eb3e0]
cmp rcx, r13
je 0x1400b9156
test byte [rcx + 0x44], 0x40
je 0x1400b9156
cmp byte [rcx + 0x41], 4
jb 0x1400b9156
mov edx, 0x2e
lea r8, [0x140272160]
mov rcx, qword [rcx + 0x38]
call fcn.140024250
mov ebx, r14d
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x1400b9276
mov qword [rbp - 0x49], r14
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140047d56.0]
jmp 0x1400b9276
test r15b, r15b
je 0x1400b923d
mov rcx, qword [0x1402eb3e0]
cmp rcx, r13
je 0x1400b91b2
test byte [rcx + 0x44], 0x40
je 0x1400b91b2
cmp byte [rcx + 0x41], 4
jb 0x1400b91b2
mov edx, 0x2f
lea r8, [0x140272160]
mov rcx, qword [rcx + 0x38]
call fcn.140024250
mov rcx, qword [rdi + 0x1f8]
call fcn.140099870
mov rcx, qword [rdi + 0x130]
test rcx, rcx
je 0x1400b91de
mov qword [rdi + 0x130], r14
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140047d56.0]
mov rax, qword [rsi]
lea r8, [rdi + 0x130]
lea rdx, [0x140272330]
mov rcx, rsi
mov rax, qword [rax]
call qword [case.0x140047d56.0]
mov ebx, eax
test eax, eax
js 0x1400b9276
lfence
lea rcx, [rdi + 0x60]
call fcn.1400d4f10
test al, al
je 0x1400b923d
lfence
xor edx, edx
lea rcx, [rdi + 0x60]
call fcn.1400ba710
test eax, eax
je 0x1400b922a
mov ebx, 0x8007139f
jmp 0x1400b9276
lfence
mov r8b, 1
mov edx, 1
mov rcx, rdi
call fcn.1400ba500
movzx edx, r15b
mov rcx, rdi
call fcn.1400b94c0
mov ebx, eax
test eax, eax
jne 0x1400b926c
test r15b, r15b
jne 0x1400b926c
movzx edx, byte [rdi + 0x128]
test dl, dl
je 0x1400b926c
mov edx, 0x80004004
mov rcx, rdi
call fcn.1400b7f90
neg ebx
sbb ebx, ebx
and ebx, 0x80004005
mov rax, qword [rbp + 7]
test rax, rax
je 0x1400b92a1
mov qword [rbp - 0x51], rax
mov rcx, qword [rbp - 1]
test rcx, rcx
je 0x1400b933f
mov rax, qword [rcx]
lea rdx, [rbp - 0x51]
mov rax, qword [rax + 0x10]
call qword [case.0x140047d56.0]
mov rcx, qword [rbp - 1]
test rcx, rcx
je 0x1400b92c5
mov rax, qword [rcx]
lea rdx, [rbp - 0x39]
cmp rcx, rdx
setne dl
mov rax, qword [rax + 0x20]
call qword [case.0x140047d56.0]
mov qword [rbp - 1], r14
jmp 0x1400b9301
mov ebx, 0xe
mov rcx, qword [0x1402eb3e0]
cmp rcx, r13
je 0x1400b92fc
test byte [rcx + 0x44], 0x40
je 0x1400b92fc
cmp byte [rcx + 0x41], 2
jb 0x1400b92fc
mov edx, 0x2a
mov r9d, ebx
lea r8, [0x140272160]
mov rcx, qword [rcx + 0x38]
call fcn.140026620
mov ebx, 0x8007139f
test rsi, rsi
je 0x1400b9316
mov rdx, qword [rsi]
mov rcx, rsi
mov rax, qword [rdx + 0x10]
call qword [case.0x140047d56.0]
mov eax, ebx
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.140154650
mov rbx, qword [rsp + 0x148]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1401565b0
nop
int3
push rbx
sub rsp, 0x20
mov rbx, rdx
call fcn.1400ce900
test al, al
je 0x1400c9318
mov rcx, qword [0x1402f1100]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140047d56.0]
mov r8, rbx
mov dl, 1
mov rcx, rax
add rsp, 0x20
pop rbx
jmp 0x1400b8e00
mov eax, 0x8007139f
add rsp, 0x20
pop rbx
ret