Function at 0x14003c2a0
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 [0x14016e028]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
mov eax, dword [0x140175fb0]
mov ecx, dword [0x1401719a0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003c53a
cmp byte [rdi], 0
je 0x14003c504
mov eax, dword [0x140175be0]
mov ecx, dword [0x1401719a0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003c57a
cmp byte [0x140175bdc], 0
je 0x14003c525
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.1400324e0
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jne 0x14003c35c
jnp 0x14003c533
movsd xmm1, qword [rsp + 0x50]
unpcklps xmm1, xmmword [0x140147b70]
subpd xmm1, xmmword [0x140147b80]
movapd xmm2, xmm1
unpckhpd xmm2, xmm1
addsd xmm2, xmm1
divsd xmm2, xmm0
mulsd xmm2, qword [0x140152348]
cvttsd2si rax, xmm2
mov qword [rsp + 0x48], rax
movabs rsi, 0x7fffffffffffffff
lea rcx, [rsp + 0x50]
call fcn.14003c7a0
mov rcx, qword [0x140175db8]
mov rax, qword [rsp + 0x50]
lea rdx, [rcx + rsi]
add rdx, 2
cmp rdx, 2
jae 0x14003c3d7
cmp rax, rcx
je 0x14003c788
lea rax, [rsi + 1]
test rcx, rcx
cmovs rax, rsi
jmp 0x14003c3e9
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 0x14003c504
mov ebp, eax
mov ecx, dword [0x140171588]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003c435
movsxd rcx, dword [0x140175f20]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x140175f24]
jne 0x14003c435
cmp qword [rax + rcx], 0
jne 0x14003c504
mov ecx, dword [0x140171588]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003c570
lea rcx, [0x140175f20]
movsxd rdx, dword [0x140175f20]
shl rdx, 4
mov qword [rax + rdx], rcx
mov ecx, dword [0x140175f24]
movsxd rdx, dword [0x140175f20]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
test sil, 8
jne 0x14003c75d
test sil, 1
je 0x14003c76d
mov rax, qword [0x140175fa0]
test rax, rax
je 0x14003c5dd
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 [0x140171588]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003c504
movsxd rcx, dword [0x140175f20]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x140175f24]
movsxd rdx, dword [0x140175f20]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.14007d5a0
nop
add rsp, 0x1c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov qword [rsp + 0x48], 0
jmp 0x14003c393
xor eax, eax
jmp 0x14003c38e
lea rcx, [0x140175fb0]
call fcn.14007b4e8
cmp dword [0x140175fb0], 0xffffffff
jne 0x14003c2ef
lea rcx, [0x140175c20]
call fcn.1400b0820
lea rcx, [0x140175fb0]
call fcn.14007ac34
jmp 0x14003c2ef
call fcn.140008040
jmp 0x14003c44b
lea rcx, [0x140175be0]
call fcn.14007b4e8
cmp dword [0x140175be0], 0xffffffff
jne 0x14003c31d
lea rbp, [rsp + 0x50]
mov rcx, rbp
call fcn.1400a63b0
mov sil, byte [rbp + 0x2e]
cmp byte [rbp + 0x5f], 0
jns 0x14003c5b7
mov rcx, qword [rsp + 0x98]
call fcn.14007a98c
cmp byte [rsp + 0x97], 0
js 0x14003c78b
mov byte [0x140175bdc], sil
lea rcx, [0x140175be0]
call fcn.14007ac34
jmp 0x14003c31d
xorpd xmm0, xmm0
movapd xmmword [rsp + 0x1a0], xmm0
mov qword [rsp + 0x1b0], 0
movapd xmm0, xmmword [0x140147b90]
lea rdx, [rsp + 0x190]
movapd xmmword [rdx], xmm0
lea rax, [0x140175c28]
mov qword [rdx], rax
mov byte [rdx + 8], 0
mov rcx, rbx
call fcn.1400a9580
mov rbx, rax
test rax, rax
je 0x14003c641
lea rdx, [rsp + 0x40]
lea r8, [rsp + 0x48]
mov rcx, rbx
mov r9, 0xffffffffffffffff
call fcn.1400a9550
mov rax, qword [0x140175dc0]
test al, 8
je 0x14003c69d
mov qword [rsp + 0x20], rbx
lea rcx, [0x140175c20]
lea rdx, [rsp + 0x50]
lea r9, [rsp + 0x40]
mov r8b, 0x45
call fcn.140003710
cmp byte [rsp + 0x1b7], 0
jns 0x14003c681
mov rcx, qword [rsp + 0x1a0]
call fcn.14007a98c
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 0x14003c6b5
mov rcx, qword [rsp + 0x190]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movzx ebx, byte [rsp + 0x1b7]
mov rbp, rbx
test bl, bl
jns 0x14003c6cc
mov rbp, qword [rsp + 0x1a8]
test rbp, rbp
je 0x14003c72a
mov ecx, 2
call fcn.14003c850
test al, al
je 0x14003c72a
lea rdx, str..._.._base_trace_event_trace_log.cc
lea r15, [rsp + 0x50]
mov rcx, r15
mov r8d, 0x5e9
mov r9d, 2
call fcn.1400a96d0
lea rcx, [rsp + 0x60]
test bl, bl
jns 0x14003c712
mov rdx, qword [rsp + 0x1a0]
jmp 0x14003c71a
lea rdx, [rsp + 0x1a0]
mov r8, rbp
call fcn.14007076f
mov rcx, r15
call fcn.14000bec0
test sil, 0x10
jne 0x14003c750
cmp byte [rsp + 0x1b7], 0
jns 0x14003c4ca
mov rcx, qword [rsp + 0x1a0]
call fcn.14007a98c
jmp 0x14003c4ca
mov rcx, rdi
mov rdx, r14
call fcn.1400a97a0
jmp 0x14003c730
mov rcx, rdi
mov rdx, r14
call fcn.1400fef00
jmp 0x14003c480
xorpd xmm0, xmm0
movapd xmmword [rsp + 0x1a0], xmm0
mov qword [rsp + 0x1b0], 0
jmp 0x14003c72a
int3
mov rcx, qword [rsp + 0x80]
call fcn.14007a98c
jmp 0x14003c5c5