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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x98
mov r12, rdx
mov rbx, rcx
xor edi, edi
mov dword [rbp + 0x6f], edi
lea rcx, [rbp + 7]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
nop
lea rsi, str.secc::CUIPluginManager::DestroyUIPlugin
mov qword [rbp - 1], rsi
mov r8d, dword [0x1401993f8]
mov eax, dword [0x1401993fc]
add r8d, eax
je 0x14004cd39
mov dword [rbp - 0x29], edi
call fcn.1400057e0
mov qword [rbp - 0x31], rax
lock inc dword [rbp - 0x29]
mov dword [rbp + 0x6f], 2
mov rax, qword [rbp - 0x31]
test rax, rax
jne 0x14004ccfd
call fcn.1400057e0
mov qword [rbp - 0x31], rax
lock inc dword [rbp - 0x29]
mov rcx, qword [rbp - 0x31]
mov dword [rbp + 0x77], 0x20
mov qword [rsp + 0x30], rsi
lea rax, str._s_start:
mov qword [rsp + 0x28], rax
lea rax, str._CScopeTrace::operator___
mov qword [rsp + 0x20], rax
lea r9, [0x140000000]
lea r8, [rbp + 0x77]
movsx edx, di
call fcn.140004bd0
nop
mov eax, dword [rbp + 0x6f]
test al, 2
je 0x14004cd78
and eax, 0xfffffffd
mov dword [rbp + 0x6f], eax
mov qword [rbp - 0x31], rdi
mov eax, 0xffffffff
lock xadd dword [rbp - 0x29], eax
cmp eax, 1
js 0x14004cd74
nop dword [rax]
call fcn.140005b50
mov eax, 0xffffffff
lock xadd dword [rbp - 0x29], eax
cmp eax, 1
jns 0x14004cd60
lock inc dword [rbp - 0x29]
mov rax, qword [0x140198db8]
cmp eax, 0xffffffff
je 0x14004cd98
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, rax
mov rax, qword [0x140198db8]
jmp 0x14004cd9e
mov ecx, dword [0x140198dbc]
lea edx, [rcx + 1]
cmp eax, 0xffffffff
je 0x14004cdb1
movsxd rdx, edx
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov esi, edi
mov dword [rbp - 9], edi
lea r14, [rbx + 0x18]
mov qword [rbp - 0x11], r14
test r14, r14
je 0x14004cdd4
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, 1
mov dword [rbp - 9], esi
lea r13, [rbx + 8]
mov qword [rbp - 0x39], rdi
test r12, r12
jne 0x14004ce1f
lea edx, [r12 + 0x40]
lea rcx, [rbp - 0x39]
call fcn.1400219d0
test al, al
je 0x14004d1c5
mov rbx, qword [rbp - 0x39]
test rbx, rbx
je 0x14004ce10
mov rax, qword [rbx - 0xc]
mov qword [rax + 8], rdi
mov word [rbx], di
jmp 0x14004cead
mov rax, rdi
mov qword [rax + 8], rdi
mov word [rbx], di
jmp 0x14004cead
mov rdi, 0xffffffffffffffff
nop word [rax + rax]
inc rdi
cmp word [r12 + rdi*2], 0
jne 0x14004ce30
mov rdx, rdi
mov eax, 0x40
cmp rdi, rax
cmovb rdx, rax
lea rcx, [rbp - 0x39]
call fcn.1400219d0
test al, al
je 0x14004d1c5
lea r15, [rdi + rdi]
mov r8, r15
mov rdx, r12
mov rbx, qword [rbp - 0x39]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
test rbx, rbx
je 0x14004ce85
mov rax, qword [rbx - 0xc]
test rax, rax
je 0x14004ce85
mov rcx, qword [rax + 0x10]
jmp 0x14004ce87
xor ecx, ecx
cmp rdi, rcx
ja 0x14004d1c5
test rbx, rbx
je 0x14004ce9b
mov rax, qword [rbx - 0xc]
jmp 0x14004ce9d
xor eax, eax
mov qword [rax + 8], rdi
xor edi, edi
mov word [r15 + rbx], di
test rbx, rbx
je 0x14004cee2
mov rax, qword [rbx - 0xc]
test rax, rax
je 0x14004cee2
cmp dword [rbx - 0x10], 0xabcd
jne 0x14004d1c5
cmp dword [rbx - 4], 0xabcd
jne 0x14004d1c5
mov rax, qword [rax + 0x10]
cmp dword [rbx + rax*2 + 2], 0xabcd
jne 0x14004d1c5
mov r10, qword [r13]
mov rdx, qword [r10 + 8]
mov r15, r10
lea r9, [0x140162244]
cmp byte [rdx + 0x19], 0
jne 0x14004cf52
nop word [rax + rax]
mov r8, r9
test rbx, rbx
cmovne r8, rbx
mov rax, qword [rdx + 0x20]
mov rcx, r9
test rax, rax
cmovne rcx, rax
sub r8, rcx
nop dword [rax + rax]
movzx eax, word [rcx]
cmp ax, word [rcx + r8]
jne 0x14004cf37
add rcx, 2
test ax, ax
jne 0x14004cf20
mov eax, edi
jmp 0x14004cf3c
sbb eax, eax
or eax, 1
test eax, eax
jns 0x14004cf46
mov rdx, qword [rdx + 0x10]
jmp 0x14004cf4c
mov r15, rdx
mov rdx, qword [rdx]
cmp byte [rdx + 0x19], 0
je 0x14004cf00
cmp byte [r15 + 0x19], 0
jne 0x14004cf92
mov rax, qword [r15 + 0x20]
mov rcx, r9
test rax, rax
cmovne rcx, rax
test rbx, rbx
cmovne r9, rbx
sub rcx, r9
movzx eax, word [r9]
cmp ax, word [r9 + rcx]
jne 0x14004cf89
add r9, 2
test ax, ax
jne 0x14004cf71
mov eax, edi
jmp 0x14004cf8e
sbb eax, eax
or eax, 1
test eax, eax
jns 0x14004cf95
mov r15, r10
test rbx, rbx
je 0x14004d01e
mov rdi, qword [rbx - 0xc]
test rdi, rdi
je 0x14004d01e
cmp dword [rbx - 0x10], 0xabcd
jne 0x14004d1cf
cmp dword [rbx - 4], 0xabcd
jne 0x14004d1cf
mov rax, qword [rdi + 0x10]
cmp dword [rbx + rax*2 + 2], 0xabcd
jne 0x14004d1cf
test rdi, rdi
je 0x14004d01e
cmp byte [rdi + 0x20], 0
je 0x14004cff2
mov rcx, qword [rdi]
mov rax, qword [rcx]
lea rdx, [rbx - 0x10]
mov rax, qword [rax + 0x10]
call qword [case.0x14006aed5.0]
mov rbx, qword [rdi]
cmp byte [rdi + 0x21], 0
je 0x14004d00e
mov rax, qword [rbx]
mov rdx, rdi
mov rcx, rbx
mov rax, qword [rax + 0x10]
call qword [case.0x14006aed5.0]
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 0x18]
call qword [case.0x14006aed5.0]
xor ebx, ebx
mov qword [rbp - 0x39], rbx
cmp r15, qword [r13]
je 0x14004d0bb
mov rcx, qword [r15 + 0x28]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x14006aed5.0]
mov rcx, qword [rbp + 0x67]
add rcx, 0x48
lea rdx, [r15 + 0x28]
call fcn.14005dbd0
mov rdx, r15
mov rcx, r13
call fcn.14001f5e0
mov rbx, rax
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x14004d09c
mov rax, qword [rcx - 0xc]
test rax, rax
je 0x14004d09c
cmp dword [rcx - 0x10], 0xabcd
jne 0x14004d1bb
cmp dword [rcx - 4], 0xabcd
jne 0x14004d1bb
mov rax, qword [rax + 0x10]
cmp dword [rcx + rax*2 + 2], 0xabcd
jne 0x14004d1bb
lea rcx, [rbx + 0x20]
call fcn.14001ead0
nop
mov edx, 0x30
mov rcx, rbx
call fcn.140071e50
mov dil, 1
jmp 0x14004d173
mov ecx, dword [0x1401993f8]
mov eax, dword [0x1401993fc]
add ecx, eax
je 0x14004d131
mov dword [rbp - 0x19], ebx
call fcn.1400057e0
mov qword [rbp - 0x21], rax
lock inc dword [rbp - 0x19]
or dword [rbp + 0x6f], 1
mov rax, qword [rbp - 0x21]
test rax, rax
jne 0x14004d0f5
call fcn.1400057e0
mov qword [rbp - 0x21], rax
lock inc dword [rbp - 0x19]
mov rcx, qword [rbp - 0x21]
mov dword [rbp + 0x7f], 4
mov qword [rsp + 0x30], r12
lea rax, str.__s__cannot_be_found
mov qword [rsp + 0x28], rax
lea rax, str.secc::CUIPluginManager::DestroyUIPlugin
mov qword [rsp + 0x20], rax
lea r9, [0x140000000]
lea r8, [rbp + 0x7f]
movsx edx, bx
call fcn.140004bd0
nop
mov eax, dword [rbp + 0x6f]
test al, 1
je 0x14004d169
and eax, 0xfffffffe
mov dword [rbp + 0x6f], eax
mov qword [rbp - 0x21], rbx
mov eax, 0xffffffff
lock xadd dword [rbp - 0x19], eax
cmp eax, 1
js 0x14004d165
call fcn.140005b50
mov eax, 0xffffffff
lock xadd dword [rbp - 0x19], eax
cmp eax, 1
jns 0x14004d151
lock inc dword [rbp - 0x19]
xor dil, dil
mov esi, dword [rbp - 9]
mov r14, qword [rbp - 0x11]
mov ebx, esi
test esi, esi
jle 0x14004d19a
nop dword [rax]
test r14, r14
je 0x14004d194
test esi, esi
jle 0x14004d194
dec esi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
dec ebx
test ebx, ebx
jg 0x14004d180
lea rcx, [rbp - 1]
call fcn.14002f940
movzx eax, dil
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor edx, edx
xor ecx, ecx
call sub.VCRUNTIME140.dll__CxxThrowException
nop
xor edx, edx
xor ecx, ecx
call sub.VCRUNTIME140.dll__CxxThrowException
nop
xor edx, edx
xor ecx, ecx
call sub.VCRUNTIME140.dll__CxxThrowException
int3