Function at 0x14000c950
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x218
mov r15, r9
mov r14, r8
mov rbx, rdx
mov r12d, ecx
mov r13d, dword [rsp + 0x2a8]
mov rax, qword [0x14016c028]
xor rax, rsp
mov qword [rsp + 0x210], rax
mov eax, dword [0x140173f08]
mov ecx, dword [0x14016f824]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14000d189
mov rbp, qword [rsp + 0x2a0]
mov edi, dword [rsp + 0x290]
mov rsi, qword [rsp + 0x280]
test r13d, 0x410
jne 0x14000cfa1
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, edi
jne 0x14000cfa1
mov eax, dword [0x140173b30]
mov ecx, dword [0x14016f824]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14000d1bf
cmp byte [0x140173b2c], 0
je 0x14000cfa1
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov qword [rsp + 0xd0], 0
lea rdx, [rsp + 0xd0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_QueryThreadCycleTime]
call fcn.140001940
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jne 0x14000ca4a
jnp 0x14000cfa1
movsd xmm1, qword [rsp + 0xd0]
unpcklps xmm1, xmmword [0x1401469f0]
subpd xmm1, xmmword [0x140146a00]
movapd xmm2, xmm1
unpckhpd xmm2, xmm1
addsd xmm2, xmm1
divsd xmm2, xmm0
mulsd xmm2, qword [0x140151298]
cvttsd2si rax, xmm2
mov qword [rsp + 0x80], rax
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rsi
lea rcx, [0x140173b70]
mov edx, r12d
mov r8, rbx
mov r9, r14
call fcn.14000dae0
test al, al
je 0x14000d381
mov qword [rsp + 0x78], rbx
mov byte [rsp + 0x77], r12b
mov ecx, dword [0x14016f428]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14000d238
mov qword [rsp + 0x98], r15
mov rbp, qword [rsp + 0x298]
movabs rsi, 0x7fffffffffffffff
lea rcx, [0x140173e78]
movsxd rdx, dword [0x140173e78]
shl rdx, 4
mov qword [rax + rdx], rcx
mov ecx, dword [0x140173e7c]
movsxd rdx, dword [0x140173e78]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
xor eax, eax
mov r12d, 0
test r13d, 0x800
je 0x14000cb3b
mov r12, qword [0x140173d00]
test r13d, 0x180
cmove r12, rax
mov rax, qword [0x140173d10]
mov r15, qword [rbp]
lea rcx, [rax + rsi]
add rcx, 2
cmp rcx, 2
jae 0x14000cb75
cmp r15, rax
je 0x14000d26d
lea r15, [rsi + 1]
test rax, rax
cmovs r15, rsi
jmp 0x14000cb87
xor ecx, ecx
cmp r15, rax
setns cl
add rcx, rsi
sub r15, rax
cmovo r15, rcx
mov rdi, qword [rsp + 0x288]
test r13d, 0x410
jne 0x14000cb9e
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor r12, rdi
mov rax, qword [rsp + 0x78]
mov al, byte [rax]
test al, 1
jne 0x14000ccff
xor ebp, ebp
xor ecx, ecx
xorpd xmm0, xmm0
movapd xmmword [rsp + 0xb0], xmm0
mov qword [rsp + 0xc0], 0
test al, 0x10
mov qword [rsp + 0x90], rbp
jne 0x14000ce5d
xor eax, eax
mov qword [rsp + 0x88], rax
test cl, cl
je 0x14000d3ec
test rbp, rbp
je 0x14000cfa8
mov rax, qword [rbp + 0x18]
test rax, rax
je 0x14000d047
cmp qword [rax], 0x40
je 0x14000cfe4
mov rsi, qword [rsp + 0x98]
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
imul rdx, rcx, 0x98
lea rbx, [rax + rdx]
add rbx, 0x10
movzx eax, word [rbp + 0x20]
mov rdx, qword [rbp + 0x18]
mov edx, dword [rdx + 0x2610]
mov dword [rsp + 0xa8], edx
shl ecx, 0x1a
or ecx, eax
mov dword [rsp + 0xac], ecx
mov rdi, qword [rsp + 0x88]
test rbx, rbx
je 0x14000cef2
test rdi, rdi
je 0x14000cf00
mov rcx, rbx
mov rdx, rdi
call fcn.14000e110
mov sil, byte [rsp + 0x77]
mov rax, qword [0x140173d18]
test al, 8
mov r8, qword [rsp + 0x298]
je 0x14000ccde
cmp sil, 0x58
movzx eax, sil
mov edx, 0x42
cmovne edx, eax
lea rcx, [rsp + 0xd0]
mov r9, rbx
call fcn.14000e7f0
cmp byte [rsp + 0xc7], 0
js 0x14000cf6a
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0xc0], rax
movupd xmm0, xmmword [rsp + 0xd0]
movapd xmmword [rsp + 0xb0], xmm0
cmp qword [rsp + 0x90], 0
jne 0x14000d2ed
lea rcx, [0x140173b78]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x14000d2ed
lea rcx, [0x140173b70]
call fcn.14000de70
mov ecx, dword [0x14016f428]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14000d182
movsxd rcx, dword [0x140173e68]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x140173e6c]
jne 0x14000d182
mov rbp, qword [rax + rcx]
mov rax, qword [rsp + 0x78]
mov al, byte [rax]
test al, 1
je 0x14000cbb2
mov rdi, qword [0x140173ee8]
test rdi, rdi
je 0x14000cef9
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x160], rax
movapd xmm0, xmmword [0x140146a10]
movapd xmmword [rsp + 0x150], xmm0
movapd xmmword [rsp + 0x140], xmm0
movapd xmmword [rsp + 0x130], xmm0
movapd xmmword [rsp + 0x120], xmm0
movapd xmmword [rsp + 0x110], xmm0
movapd xmmword [rsp + 0x100], xmm0
movapd xmmword [rsp + 0xf0], xmm0
movapd xmmword [rsp + 0xe0], xmm0
movapd xmmword [rsp + 0xd0], xmm0
mov dword [rsp + 0x60], r13d
mov rax, qword [rsp + 0x2a0]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r12
mov rax, qword [rsp + 0x280]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r14
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x30], rax
mov al, byte [rsp + 0x77]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], 0xffffffffffffffff
lea rsi, [rsp + 0xd0]
mov rcx, rsi
mov edx, dword [rsp + 0x290]
mov r8, r15
mov r9, qword [rsp + 0x80]
call fcn.14000d5f0
test rbp, rbp
setne dl
lea r8, [rsp + 0xa8]
mov rcx, rsi
call rdi
mov rcx, rsi
call fcn.14000d500
jmp 0x14000d347
mov ecx, 0x98
call fcn.14010b888
mov rbp, rax
mov dword [rsp + 0x60], r13d
mov rax, qword [rsp + 0x2a0]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r12
mov rax, qword [rsp + 0x280]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0x38], r14
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0x30], rdi
mov al, byte [rsp + 0x77]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rcx, rbp
mov edx, dword [rsp + 0x290]
mov r8, r15
mov r9, qword [rsp + 0x80]
call fcn.14000d5f0
mov edi, dword [rdi + 4]
test edi, edi
je 0x14000d2db
mov sil, 1
xor ebx, ebx
jmp 0x14000d29a
xor ebx, ebx
jmp 0x14000cc76
mov cl, 1
jmp 0x14000cbb4
mov dword [rsp + 0x60], r13d
mov rax, qword [rsp + 0x2a0]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r12
mov rax, qword [rsp + 0x280]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r14
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x30], rax
mov sil, byte [rsp + 0x77]
mov byte [rsp + 0x28], sil
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rcx, rbx
mov edx, dword [rsp + 0x290]
mov r8, r15
mov r9, qword [rsp + 0x80]
call fcn.14000e5a0
jmp 0x14000cc7b
mov rax, qword [rsp + 0xb0]
mov byte [rax], 0
mov qword [rsp + 0xb8], 0
cmp byte [rsp + 0xc7], 0
jns 0x14000ccbc
mov rcx, qword [rsp + 0xb0]
call fcn.14010b880
jmp 0x14000ccbc
xor eax, eax
jmp 0x14000ca7f
mov rsi, qword [rsp + 0x98]
lea rcx, [0x140173b78]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14000d24f
lea rcx, [0x140173b70]
lea rdx, [rsp + 0xa8]
mov r8b, 1
call fcn.14000f0f0
mov rbx, rax
jmp 0x14000cc51
mov rbx, qword [rbp + 0x10]
add rbx, 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14000d260
mov rcx, rbp
call fcn.14000e780
mov rax, rbp
mov rbp, qword [rbp + 0x18]
mov qword [rax + 0x18], 0
test rbp, rbp
je 0x14000d029
mov rcx, rbp
call fcn.14000e260
mov rcx, rbp
call fcn.14010b880
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbp, qword [rsp + 0x90]
mov rax, qword [rbp + 0x18]
test rax, rax
jne 0x14000cc0f
mov rbx, qword [rbp + 0x10]
add rbx, 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14000d242
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax + 0x20]
lea r8, [rbp + 0x20]
mov rax, qword [rcx]
lea rdi, [rsp + 0xd0]
mov rdx, rdi
call qword [rax + 8]
mov rax, qword [rdi]
mov qword [rdi], 0
mov rdi, qword [rbp + 0x18]
mov qword [rbp + 0x18], rax
test rdi, rdi
je 0x14000d0cd
mov rcx, rdi
call fcn.14000e260
mov rcx, rdi
call fcn.14010b880
mov rdi, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], 0
test rdi, rdi
je 0x14000d0cd
mov rcx, rdi
call fcn.14000e260
mov rcx, rdi
call fcn.14010b880
mov rbp, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x20]
mov rax, qword [rcx]
call qword [rax + 0x18]
test al, al
je 0x14000d134
cmp qword [rbp + 0x188], 0
jne 0x14000d12c
lea rdi, [rsp + 0xd0]
mov rcx, rdi
call fcn.14000c860
mov rcx, qword [rbp + 0x1a0]
mov rax, qword [rdi]
lea rdx, [rsi + rcx]
add rdx, 2
cmp rdx, 2
jae 0x14000d16e
cmp rax, rcx
je 0x14000d270
lea rax, [rsi + 1]
test rcx, rcx
cmovs rax, rsi
mov qword [rbp + 0x188], rax
mov rcx, rbp
call fcn.14000f2c0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbp, qword [rsp + 0x90]
mov rax, qword [rbp + 0x18]
test rax, rax
mov r13d, dword [rsp + 0x2a8]
jne 0x14000cc0f
xor ebx, ebx
mov sil, byte [rsp + 0x77]
mov rdi, qword [rsp + 0x88]
jmp 0x14000cc7b
xor edx, edx
cmp rax, rcx
setns dl
add rdx, rsi
sub rax, rcx
cmovo rax, rdx
jmp 0x14000d125
xor ebp, ebp
jmp 0x14000cd40
lea rcx, [0x140173f08]
call fcn.14010bdd8
cmp dword [0x140173f08], 0xffffffff
jne 0x14000c9ae
lea rcx, [0x140173b70]
call fcn.140040d60
lea rcx, [0x140173f08]
call fcn.14010ba50
jmp 0x14000c9ae
lea rcx, [0x140173b30]
call fcn.14010bdd8
cmp dword [0x140173b30], 0xffffffff
jne 0x14000ca05
mov qword [rsp + 0x78], rbx
lea rdi, [rsp + 0xd0]
mov rcx, rdi
call fcn.140001440
mov bl, byte [rdi + 0x2e]
cmp byte [rdi + 0x5f], 0
jns 0x14000d203
mov rcx, qword [rsp + 0x118]
call fcn.14010b880
cmp byte [rsp + 0x117], 0
js 0x14000d273
mov byte [0x140173b2c], bl
lea rcx, [0x140173b30]
call fcn.14010ba50
mov edi, dword [rsp + 0x290]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x78]
jmp 0x14000ca05
call fcn.14000bf20
jmp 0x14000cade
mov rcx, rbx
call fcn.1400067c0
jmp 0x14000d060
lea rcx, [0x140173b78]
call fcn.1400067c0
jmp 0x14000cfc5
mov rcx, rbx
call fcn.1400067c0
jmp 0x14000cffd
int3
int3
mov rcx, qword [rsp + 0x100]
call fcn.14010b880
jmp 0x14000d20d
shr edi, 1
add rbx, 8
test edi, edi
je 0x14000d2d2
test dil, 1
je 0x14000d290
call fcn.14000d480
mov rax, qword [rax]
cmp qword [rax + rbx], 0
je 0x14000d290
call fcn.14000d480
mov rax, qword [rax]
mov rcx, qword [rax + rbx]
mov rax, qword [rcx]
mov rdx, rbp
call qword [rax + 8]
xor ecx, ecx
test al, al
jne 0x14000d2ce
movzx ecx, sil
mov esi, ecx
jmp 0x14000d290
test sil, sil
je 0x14000d3b0
mov rcx, rbp
call fcn.14000d500
mov rcx, rbp
call fcn.14010b880
xor edi, edi
movzx ebx, byte [rsp + 0xc7]
mov rsi, rbx
test bl, bl
jns 0x14000d304
mov rsi, qword [rsp + 0xb8]
test rsi, rsi
je 0x14000d31b
mov ecx, 2
call fcn.14000d460
test al, al
jne 0x14000d3f9
test rdi, rdi
je 0x14000d330
mov rcx, rdi
call fcn.14000d500
mov rcx, rdi
call fcn.14010b880
cmp byte [rsp + 0xc7], 0
jns 0x14000d347
mov rcx, qword [rsp + 0xb0]
call fcn.14010b880
mov ecx, dword [0x14016f428]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14000d381
movsxd rcx, dword [0x140173e78]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x140173e7c]
movsxd rdx, dword [0x140173e78]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rsi, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x210]
xor rcx, rsp
call fcn.14010e4a0
mov rax, rsi
add rsp, 0x218
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x88], rbp
mov rax, qword [rsp + 0x78]
mov cl, byte [rax]
and cl, 1
mov r14, qword [rsp + 0xa0]
mov r13d, dword [rsp + 0x2a8]
mov rbp, qword [rsp + 0x90]
movabs rsi, 0x7fffffffffffffff
test cl, cl
jne 0x14000cbef
mov rdi, qword [rsp + 0x88]
jmp 0x14000d2ed
lea rdx, str..._.._base_trace_event_trace_log.cc
lea rbp, [rsp + 0xd0]
mov rcx, rbp
mov r8d, 0x552
mov r9d, 2
call fcn.14000fbb0
lea rcx, [rsp + 0xe0]
test bl, bl
jns 0x14000d432
mov rdx, qword [rsp + 0xb0]
jmp 0x14000d43a
lea rdx, [rsp + 0xb0]
mov r8, rsi
call fcn.14000ee2e
mov rcx, rbp
call fcn.140010050
test rdi, rdi
jne 0x14000d320
jmp 0x14000d330