Function at 0x1400c5f40
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 [0x1402a7d08]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rsi, r8
movzx r15d, dl
mov rdi, rcx
lea r13, [0x1402aa8a0]
mov rcx, qword [0x1402aa8a0]
cmp rcx, r13
je 0x1400b59f0
test byte [rcx + 0x44], 0x40
je 0x1400b59f0
cmp byte [rcx + 0x41], 4
jb 0x1400b59f0
mov r9d, r15d
mov edx, 0x29
mov qword [rsp + 0x20], r8
lea r8, [0x140232f50]
mov rcx, qword [rcx + 0x38]
call fcn.1400b7dd0
lea r12, [rdi + 0xf8]
mov rcx, r12
call qword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov qword [rbp - 0x59], rsi
test rsi, rsi
je 0x1400b5a1a
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140047660.0]
nop
mov rcx, qword [0x1402b0640]
mov rax, qword [rcx]
mov rax, qword [rax + 0x80]
call qword [case.0x140047660.0]
mov ecx, eax
call qword [sym.imp.KERNEL32.DLL_TlsGetValue]
test rax, rax
je 0x1400b5a48
mov ebx, 0x1392
jmp 0x1400b5e55
mov ecx, 8
call fcn.14013ffac
mov r14, rax
test rax, rax
je 0x1400b5e50
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 0x1400b5a8a
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
test eax, eax
jne 0x1400b5ab8
mov rcx, qword [0x1402b0640]
mov rax, qword [rcx]
mov rax, qword [rax + 0x80]
call qword [case.0x140047660.0]
mov ecx, eax
mov rdx, r14
call qword [sym.imp.KERNEL32.DLL_TlsSetValue]
test eax, eax
jne 0x1400b5ae3
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
mov rcx, qword [r14]
cmp rcx, 0xffffffffffffffff
je 0x1400b5ace
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
mov qword [r14], 0xffffffffffffffff
mov edx, 8
mov rcx, r14
call fcn.14013ff64
test ebx, ebx
jne 0x1400b5e55
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 [0x140233140]
call qword [case.0x140047660.0]
mov qword [rbp - 1], rax
mov rcx, qword [rbp - 0x61]
test rcx, rcx
je 0x1400b5b5a
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
cmp rcx, rdx
setne dl
mov rax, qword [rax + 0x20]
call qword [case.0x140047660.0]
mov qword [rbp - 0x61], r14
mov ecx, r14d
mov qword [rbp + 7], r12
test rcx, rcx
je 0x1400b5b7f
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
cmp rcx, rdx
setne dl
mov rax, qword [rax + 0x20]
call qword [case.0x140047660.0]
mov qword [rbp - 0x61], r14
test r15b, r15b
je 0x1400b5bc4
mov eax, dword [rdi + 0x144]
cmp eax, 2
jne 0x1400b5bc4
mov rcx, qword [0x1402aa8a0]
cmp rcx, r13
je 0x1400b5bba
test byte [rcx + 0x44], 0x40
je 0x1400b5bba
cmp byte [rcx + 0x41], 4
jb 0x1400b5bba
lea edx, [rax + 0x29]
lea r8, [0x140232f50]
mov rcx, qword [rcx + 0x38]
call fcn.140024300
mov ebx, 0x8007139f
jmp 0x1400b5dff
cmp qword [rdi + 0x130], 0
setne al
cmp r15b, al
jne 0x1400b5cb2
mov qword [rbp - 0x49], r14
mov rax, qword [rsi]
lea r8, [rbp - 0x49]
lea rdx, [0x140233120]
mov rcx, rsi
mov rax, qword [rax]
call qword [case.0x140047660.0]
test eax, eax
je 0x1400b5c31
mov rcx, qword [0x1402aa8a0]
cmp rcx, r13
je 0x1400b5c27
test byte [rcx + 0x44], 0x40
je 0x1400b5c27
cmp byte [rcx + 0x41], 2
jb 0x1400b5c27
mov edx, 0x2c
lea r8, [0x140232f50]
mov rcx, qword [rcx + 0x38]
call fcn.140024300
mov ebx, 0x80004002
jmp 0x1400b5d97
test r15b, r15b
je 0x1400b5d67
movzx eax, byte [rdi + 0x128]
test al, al
je 0x1400b5c98
mov rcx, qword [0x1402aa8a0]
cmp rcx, r13
je 0x1400b5c72
test byte [rcx + 0x44], 0x40
je 0x1400b5c72
cmp byte [rcx + 0x41], 4
jb 0x1400b5c72
mov edx, 0x2d
lea r8, [0x140232f50]
mov rcx, qword [rcx + 0x38]
call fcn.140024300
mov ebx, 0x8004131f
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x1400b5d9b
mov rax, qword [rcx]
mov edx, ebx
mov rax, qword [rax + 0x20]
call qword [case.0x140047660.0]
jmp 0x1400b5d97
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x1400b5cb2
mov qword [rbp - 0x49], r14
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140047660.0]
test r15b, r15b
je 0x1400b5dc6
mov rcx, qword [0x1402aa8a0]
cmp rcx, r13
je 0x1400b5ce8
test byte [rcx + 0x44], 0x40
je 0x1400b5ce8
cmp byte [rcx + 0x41], 4
jb 0x1400b5ce8
mov edx, 0x2f
lea r8, [0x140232f50]
mov rcx, qword [rcx + 0x38]
call fcn.140024300
mov rcx, qword [rdi + 0x1f8]
call fcn.140096e30
mov rcx, qword [rdi + 0x130]
test rcx, rcx
je 0x1400b5d14
mov qword [rdi + 0x130], r14
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140047660.0]
mov rax, qword [rsi]
lea r8, [rdi + 0x130]
lea rdx, [0x140233120]
mov rcx, rsi
mov rax, qword [rax]
call qword [case.0x140047660.0]
mov ebx, eax
test eax, eax
js 0x1400b5dff
lfence
lea rcx, [rdi + 0x60]
call fcn.1400d1b00
test al, al
je 0x1400b5dc6
lfence
xor edx, edx
lea rcx, [rdi + 0x60]
call fcn.1400b7240
test eax, eax
je 0x1400b5db3
mov ebx, 0x8007139f
jmp 0x1400b5dff
mov rcx, qword [0x1402aa8a0]
cmp rcx, r13
je 0x1400b5d94
test byte [rcx + 0x44], 0x40
je 0x1400b5d94
cmp byte [rcx + 0x41], 4
jb 0x1400b5d94
mov edx, 0x2e
lea r8, [0x140232f50]
mov rcx, qword [rcx + 0x38]
call fcn.140024300
mov ebx, r14d
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x1400b5dff
mov qword [rbp - 0x49], r14
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140047660.0]
jmp 0x1400b5dff
lfence
mov r8b, 1
mov edx, 1
mov rcx, rdi
call fcn.1400b7030
movzx edx, r15b
mov rcx, rdi
call fcn.1400b6040
mov ebx, eax
test eax, eax
jne 0x1400b5df5
test r15b, r15b
jne 0x1400b5df5
movzx edx, byte [rdi + 0x128]
test dl, dl
je 0x1400b5df5
mov edx, 0x80004004
mov rcx, rdi
call fcn.1400b4b10
neg ebx
sbb ebx, ebx
and ebx, 0x80004005
mov rax, qword [rbp + 7]
test rax, rax
je 0x1400b5e2a
mov qword [rbp - 0x51], rax
mov rcx, qword [rbp - 1]
test rcx, rcx
je 0x1400b5ec8
mov rax, qword [rcx]
lea rdx, [rbp - 0x51]
mov rax, qword [rax + 0x10]
call qword [case.0x140047660.0]
mov rcx, qword [rbp - 1]
test rcx, rcx
je 0x1400b5e4e
mov rax, qword [rcx]
lea rdx, [rbp - 0x39]
cmp rcx, rdx
setne dl
mov rax, qword [rax + 0x20]
call qword [case.0x140047660.0]
mov qword [rbp - 1], r14
jmp 0x1400b5e8a
mov ebx, 0xe
mov rcx, qword [0x1402aa8a0]
cmp rcx, r13
je 0x1400b5e85
test byte [rcx + 0x44], 0x40
je 0x1400b5e85
cmp byte [rcx + 0x41], 2
jb 0x1400b5e85
mov edx, 0x2a
mov r9d, ebx
lea r8, [0x140232f50]
mov rcx, qword [rcx + 0x38]
call fcn.140026630
mov ebx, 0x8007139f
test rsi, rsi
je 0x1400b5e9f
mov rdx, qword [rsi]
mov rcx, rsi
mov rax, qword [rdx + 0x10]
call qword [case.0x140047660.0]
mov eax, ebx
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.140140100
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.140141ff0
nop
int3
push rbx
sub rsp, 0x20
mov rbx, rdx
call fcn.1400cb510
test al, al
je 0x1400c5f78
mov rcx, qword [0x1402b0640]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140047660.0]
mov r8, rbx
mov dl, 1
mov rcx, rax
add rsp, 0x20
pop rbx
jmp 0x1400b5980
mov eax, 0x8007139f
add rsp, 0x20
pop rbx
ret