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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rdi
sub rsp, 0x280
xor ebx, ebx
mov rdi, rcx
mov ecx, dword [0x140196214]
mov dword [rsp + 0x40], ebx
mov qword [rax - 0x40], rbx
mov qword [rax - 0x38], rbx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [0x140196214]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x258], rax
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x1400c1a65
mov ecx, 0xc0000001
call qword [sym.imp.ntdll.dll_RtlRaiseStatus]
int3
movaps xmmword [rsp + 0x270], xmm6
xorps xmm1, xmm1
movaps xmmword [rsp + 0x260], xmm7
cvtsi2sd xmm1, rdi
test rdi, rdi
jns 0x1400c1a8a
addsd xmm1, qword [0x14016e710]
movsd xmm0, qword [0x14016e6a0]
movaps xmm4, xmm1
divsd xmm4, qword [0x14016e6f8]
movaps xmm2, xmm4
movaps xmm3, xmm4
divsd xmm2, qword [0x14016e6c8]
divsd xmm3, qword [0x14016e6a8]
movaps xmm7, xmm2
movaps xmm6, xmm2
divsd xmm7, qword [0x14016e6c0]
mulsd xmm6, qword [0x14016e6b8]
movaps xmm5, xmm3
comisd xmm7, xmm0
mulsd xmm5, qword [0x14016e690]
jb 0x1400c1b07
cvttsd2si rax, xmm7
lea rcx, str.century
lea r8, str.centuries
cmp eax, 1
mov edx, eax
cmove r8, rcx
lea rcx, str._u__s
call fcn.1400013e0
jmp 0x1400c1dbf
comisd xmm2, xmm0
jb 0x1400c1b22
cvttsd2si rax, xmm2
lea rcx, str.year
lea r8, str.years
jmp 0x1400c1aed
comisd xmm6, xmm0
jb 0x1400c1b3d
cvttsd2si rax, xmm6
lea rcx, str.month
lea r8, str.months
jmp 0x1400c1aed
comisd xmm5, xmm0
jb 0x1400c1b58
cvttsd2si rax, xmm5
lea rcx, str.fortnight
lea r8, str.fortnights
jmp 0x1400c1aed
comisd xmm3, xmm0
jb 0x1400c1b76
cvttsd2si rax, xmm3
lea rcx, str.week
lea r8, str.weeks
jmp 0x1400c1aed
comisd xmm4, xmm0
movaps xmm2, xmm1
movaps xmm3, xmm1
divsd xmm2, qword [0x14016e6d8]
divsd xmm3, qword [0x14016e6e0]
movaps xmm5, xmm1
divsd xmm5, qword [0x14016e6e8]
divsd xmm1, qword [0x14016e6f0]
jb 0x1400c1c39
cvttsd2si rax, xmm4
lea rcx, [0x140168b90]
lea r8, str.days
cmp eax, 1
mov edx, eax
cmove r8, rcx
lea rcx, str._u__s
call fcn.1400013e0
mov rbx, rax
xor edx, edx
movabs rcx, 0x861c46800
mov rax, rdi
div rcx
mov r10, rax
movabs rax, 0xaaaaaaaaaaaaaaab
mul r10
shr rdx, 4
lea rcx, [rdx + rdx*2]
shl rcx, 3
sub r10, rcx
cmp r10d, 1
jb 0x1400c1dc2
lea rcx, str.hour
lea r9, str.hours
cmove r9, rcx
mov r8d, r10d
mov rdx, qword [rbx + 8]
lea rcx, str._s_and__u__s
call fcn.1400013e0
jmp 0x1400c1dbf
comisd xmm1, xmm0
jb 0x1400c1cb9
cvttsd2si rax, xmm1
lea rcx, str.hour
lea r8, str.hours
cmp eax, 1
mov edx, eax
cmove r8, rcx
lea rcx, str._u__s
call fcn.1400013e0
mov rbx, rax
movabs rax, 0xe5109ec205d7bea7
mul rdi
movabs rax, 0x8888888888888889
mov rcx, rdx
shr rcx, 0x1d
mul rcx
shr rdx, 5
imul rax, rdx, 0x3c
sub rcx, rax
cmp ecx, 1
jb 0x1400c1dc2
lea rdx, str.minute
mov r8d, ecx
lea r9, str.minutes
cmove r9, rdx
jmp 0x1400c1c24
comisd xmm5, xmm0
jb 0x1400c1d33
cvttsd2si rax, xmm5
lea rdx, str.minute
lea r8, str.minutes
lea rcx, str._u__s
cmp eax, 1
cmove r8, rdx
mov edx, eax
call fcn.1400013e0
mov rbx, rax
movabs rax, 0xd6bf94d5e57a42bd
mul rdi
movabs rax, 0x8888888888888889
mov r10, rdx
shr r10, 0x17
mul r10
shr rdx, 5
imul rax, rdx, 0x3c
sub r10, rax
cmp r10d, 1
jb 0x1400c1dc2
lea rcx, str.second
lea r9, str.seconds
jmp 0x1400c1c1d
comisd xmm3, xmm0
jb 0x1400c1d51
cvttsd2si rax, xmm3
lea rcx, str.second
lea r8, str.seconds
jmp 0x1400c1aed
comisd xmm2, xmm0
jb 0x1400c1d6f
cvttsd2si rax, xmm2
lea rcx, str.millisecond
lea r8, str.milliseconds
jmp 0x1400c1aed
mov rdx, qword [0x140196800]
mov ecx, 0x34
call sym.ProcessHacker.exe_PhCreateObject
mov qword [rax], 0x22
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
mov word [rcx + 0x22], bx
mov rdx, qword [rax + 8]
movups xmm0, xmmword [str.a_very_short_time]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [0x140168c70]
movups xmmword [rdx + 0x10], xmm1
movzx ecx, word [0x140168c80]
mov word [rdx + 0x20], cx
mov rcx, rax
call sym.ProcessHacker.exe_PhAutoDereferenceObject
mov rbx, rax
cmp qword [rbx], 4
lea rax, [0x140168c84]
movaps xmm7, xmmword [rsp + 0x260]
movaps xmm6, xmmword [rsp + 0x270]
mov qword [rsp + 0x28], rax
mov rax, qword [rbx + 8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], 4
mov qword [rsp + 0x30], 4
jb 0x1400c1e41
xor r8d, r8d
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call sym.ProcessHacker.exe_PhEqualStringRef
test al, al
je 0x1400c1e41
mov rdx, qword [rbx + 8]
lea rcx, [0x140168c8c]
add rdx, 4
cmp word [rdx], 0x68
jne 0x1400c1e31
lea rcx, [0x140168c98]
call sym.ProcessHacker.exe_PhConcatStrings2
mov rcx, rax
call sym.ProcessHacker.exe_PhAutoDereferenceObject
mov rbx, rax
lock inc dword [rbx - 8]
lea rcx, [rsp + 0x40]
call sym.ProcessHacker.exe_PhDrainAutoPool
mov ecx, dword [0x140196214]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
lea rcx, [rsp + 0x40]
cmp rax, rcx
je 0x1400c1e71
mov ecx, 0xc0000001
call qword [sym.imp.ntdll.dll_RtlRaiseStatus]
int3
mov rdx, qword [rsp + 0x258]
mov ecx, dword [0x140196214]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x1400c1e95
mov ecx, 0xc0000001
call qword [sym.imp.ntdll.dll_RtlRaiseStatus]
int3
mov r8, qword [rsp + 0x250]
test r8, r8
je 0x1400c1eb1
mov rcx, qword [0x140196670]
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov rax, rbx
mov rbx, qword [rsp + 0x290]
add rsp, 0x280
pop rdi
ret