Function at 0x14000c320
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1c8
mov rbx, r8
mov r14, rdx
mov rdi, rcx
mov rax, qword [0x14016c028]
xor rax, rsp
mov qword [rsp + 0x1c0], 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 0x14000c5ba
cmp byte [rdi], 0
je 0x14000c584
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 0x14000c5fa
cmp byte [0x140173b2c], 0
je 0x14000c5a5
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov qword [rsp + 0x50], 0
lea rdx, [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_QueryThreadCycleTime]
call fcn.140001940
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jne 0x14000c3dc
jnp 0x14000c5b3
movsd xmm1, qword [rsp + 0x50]
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 + 0x48], rax
movabs rsi, 0x7fffffffffffffff
lea rcx, [rsp + 0x50]
call fcn.14000c860
mov rcx, qword [0x140173d10]
mov rax, qword [rsp + 0x50]
lea rdx, [rcx + rsi]
add rdx, 2
cmp rdx, 2
jae 0x14000c457
cmp rax, rcx
je 0x14000c7da
lea rax, [rsi + 1]
test rcx, rcx
cmovs rax, rsi
jmp 0x14000c469
xor edx, edx
cmp rax, rcx
setns dl
add rdx, rsi
sub rax, rcx
cmovo rax, rdx
mov qword [rsp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
movzx esi, byte [rdi]
test esi, esi
je 0x14000c584
mov ebp, eax
mov ecx, dword [0x14016f428]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14000c4b5
movsxd rcx, dword [0x140173e78]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x140173e7c]
jne 0x14000c4b5
cmp qword [rax + rcx], 0
jne 0x14000c584
mov ecx, dword [0x14016f428]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14000c5f0
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
test sil, 8
jne 0x14000c65d
test sil, 1
je 0x14000c66d
mov rax, qword [0x140173ef8]
test rax, rax
je 0x14000c6b0
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x38], 0xffffffffffffffff
mov byte [rsp + 0x20], 0
mov rcx, rdi
mov rdx, r14
mov r8, rbx
mov r9d, ebp
call rax
mov ecx, dword [0x14016f428]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14000c584
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 rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.14010e4a0
nop
add rsp, 0x1c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov qword [rsp + 0x48], 0
jmp 0x14000c413
xor eax, eax
jmp 0x14000c40e
lea rcx, [0x140173f08]
call fcn.14010bdd8
cmp dword [0x140173f08], 0xffffffff
jne 0x14000c36f
lea rcx, [0x140173b70]
call fcn.140040d60
lea rcx, [0x140173f08]
call fcn.14010ba50
jmp 0x14000c36f
call fcn.14000bf20
jmp 0x14000c4cb
lea rcx, [0x140173b30]
call fcn.14010bdd8
cmp dword [0x140173b30], 0xffffffff
jne 0x14000c39d
lea rbp, [rsp + 0x50]
mov rcx, rbp
call fcn.140001440
mov sil, byte [rbp + 0x2e]
cmp byte [rbp + 0x5f], 0
jns 0x14000c637
mov rcx, qword [rsp + 0x98]
call fcn.14010b880
cmp byte [rsp + 0x97], 0
js 0x14000c841
mov byte [0x140173b2c], sil
lea rcx, [0x140173b30]
call fcn.14010ba50
jmp 0x14000c39d
mov rcx, rdi
mov rdx, r14
call fcn.1400a2df0
jmp 0x14000c500
xorpd xmm0, xmm0
movapd xmmword [rsp + 0x1a0], xmm0
mov qword [rsp + 0x1b0], 0
test sil, 0x10
jne 0x14000c814
cmp byte [rsp + 0x1b7], 0
jns 0x14000c54a
mov rcx, qword [rsp + 0x1a0]
call fcn.14010b880
jmp 0x14000c54a
xorpd xmm0, xmm0
movapd xmmword [rsp + 0x1a0], xmm0
mov qword [rsp + 0x1b0], 0
movapd xmm0, xmmword [0x140146a10]
lea rdx, [rsp + 0x190]
movapd xmmword [rdx], xmm0
lea rax, [0x140173b78]
mov qword [rdx], rax
mov byte [rdx + 8], 0
mov rcx, rbx
call fcn.1400a2ad0
mov rbx, rax
test rax, rax
je 0x14000c714
lea rdx, [rsp + 0x40]
lea r8, [rsp + 0x48]
mov rcx, rbx
mov r9, 0xffffffffffffffff
call fcn.1400a2ea0
mov rax, qword [0x140173d18]
test al, 8
je 0x14000c75d
lea rcx, [rsp + 0x50]
lea r8, [rsp + 0x40]
mov dl, 0x45
mov r9, rbx
call fcn.14000e7f0
cmp byte [rsp + 0x1b7], 0
js 0x14000c7dd
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x1b0], rax
movupd xmm0, xmmword [rsp + 0x50]
movapd xmmword [rsp + 0x1a0], xmm0
cmp byte [rsp + 0x198], 0
je 0x14000c775
mov rcx, qword [rsp + 0x190]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movzx ebx, byte [rsp + 0x1b7]
mov rbp, rbx
test bl, bl
jns 0x14000c78c
mov rbp, qword [rsp + 0x1a8]
test rbp, rbp
je 0x14000c686
mov ecx, 2
call fcn.14000d460
test al, al
je 0x14000c686
lea rdx, str..._.._base_trace_event_trace_log.cc
lea r15, [rsp + 0x50]
mov rcx, r15
mov r8d, 0x5f2
mov r9d, 2
call fcn.14000fbb0
lea rcx, [rsp + 0x60]
test bl, bl
jns 0x14000c824
mov rdx, qword [rsp + 0x1a0]
jmp 0x14000c82c
int3
mov rax, qword [rsp + 0x1a0]
mov byte [rax], 0
mov qword [rsp + 0x1a8], 0
cmp byte [rsp + 0x1b7], 0
jns 0x14000c741
mov rcx, qword [rsp + 0x1a0]
call fcn.14010b880
jmp 0x14000c741
mov rcx, rdi
mov rdx, r14
call fcn.1400a2a70
jmp 0x14000c690
lea rdx, [rsp + 0x1a0]
mov r8, rbp
call fcn.14000ee2e
mov rcx, r15
call fcn.140010050
jmp 0x14000c686
mov rcx, qword [rsp + 0x80]
call fcn.14010b880
jmp 0x14000c645