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

Disassembly:
mov r11, rsp
push rdi
sub rsp, 0x280
xor eax, eax
mov rdi, rcx
mov ecx, dword [0x14015ec30]
mov dword [rsp + 0x40], eax
mov qword [r11 - 0x40], rax
mov qword [r11 - 0x38], rax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [0x14015ec30]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x258], rax
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x1400a8df1
mov ecx, 0xc0000001
call qword [sym.imp.ntdll.dll_RtlRaiseStatus]
int3
mov qword [rsp + 0x290], rbx
xorps xmm1, xmm1
movaps xmmword [rsp + 0x270], xmm6
movaps xmmword [rsp + 0x260], xmm7
cvtsi2sd xmm1, rdi
test rdi, rdi
jns 0x1400a8e1e
addsd xmm1, qword [0x1401391d0]
movsd xmm0, qword [0x140139160]
movaps xmm4, xmm1
divsd xmm4, qword [0x1401391b8]
movaps xmm2, xmm4
movaps xmm3, xmm4
divsd xmm2, qword [0x140139188]
divsd xmm3, qword [0x140139168]
movaps xmm7, xmm2
movaps xmm6, xmm2
divsd xmm7, qword [0x140139180]
mulsd xmm6, qword [0x140139178]
movaps xmm5, xmm3
comisd xmm7, xmm0
mulsd xmm5, qword [0x140139158]
jb 0x1400a8e9b
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.1400015b0
jmp 0x1400a9118
comisd xmm2, xmm0
jb 0x1400a8eb6
cvttsd2si rax, xmm2
lea rcx, str.year
lea r8, str.years
jmp 0x1400a8e81
comisd xmm6, xmm0
jb 0x1400a8ed1
cvttsd2si rax, xmm6
lea rcx, str.month
lea r8, str.months
jmp 0x1400a8e81
comisd xmm5, xmm0
jb 0x1400a8eec
cvttsd2si rax, xmm5
lea rcx, str.fortnight
lea r8, str.fortnights
jmp 0x1400a8e81
comisd xmm3, xmm0
jb 0x1400a8f0a
cvttsd2si rax, xmm3
lea rcx, str.week
lea r8, str.weeks
jmp 0x1400a8e81
comisd xmm4, xmm0
movaps xmm2, xmm1
movaps xmm3, xmm1
divsd xmm2, qword [0x140139198]
divsd xmm3, qword [0x1401391a0]
movaps xmm5, xmm1
divsd xmm5, qword [0x1401391a8]
divsd xmm1, qword [0x1401391b0]
jb 0x1400a8fcd
cvttsd2si rax, xmm4
lea rcx, [0x1401347c0]
lea r8, str.days
cmp eax, 1
mov edx, eax
cmove r8, rcx
lea rcx, str._u__s
call fcn.1400015b0
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 0x1400a911b
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.1400015b0
jmp 0x1400a9118
comisd xmm1, xmm0
jb 0x1400a904d
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.1400015b0
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 0x1400a911b
lea rdx, str.minute
mov r8d, ecx
lea r9, str.minutes
cmove r9, rdx
jmp 0x1400a8fb8
comisd xmm5, xmm0
jb 0x1400a90c3
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.1400015b0
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 0x1400a911b
lea rcx, str.second
lea r9, str.seconds
jmp 0x1400a8fb1
comisd xmm3, xmm0
jb 0x1400a90e1
cvttsd2si rax, xmm3
lea rcx, str.second
lea r8, str.seconds
jmp 0x1400a8e81
comisd xmm2, xmm0
jb 0x1400a90ff
cvttsd2si rax, xmm2
lea rcx, str.millisecond
lea r8, str.milliseconds
jmp 0x1400a8e81
mov edx, 0x22
lea rcx, str.a_very_short_time
call sym.ProcessHacker.exe_PhCreateStringEx
mov rcx, rax
call sym.ProcessHacker.exe_PhAutoDereferenceObject
mov rbx, rax
cmp qword [rbx], 4
lea rax, [0x1401348b4]
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 0x1400a919a
xor r8d, r8d
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call sym.ProcessHacker.exe_PhEqualStringRef
test al, al
je 0x1400a919a
mov rdx, qword [rbx + 8]
lea rcx, [0x1401348bc]
add rdx, 4
cmp word [rdx], 0x68
jne 0x1400a918a
lea rcx, [0x1401348c8]
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 [0x14015ec30]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
lea rcx, [rsp + 0x40]
cmp rax, rcx
je 0x1400a91ca
mov ecx, 0xc0000001
call qword [sym.imp.ntdll.dll_RtlRaiseStatus]
int3
mov rdx, qword [rsp + 0x258]
mov ecx, dword [0x14015ec30]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x1400a91ee
mov ecx, 0xc0000001
call qword [sym.imp.ntdll.dll_RtlRaiseStatus]
int3
mov r8, qword [rsp + 0x250]
test r8, r8
je 0x1400a920a
mov rcx, qword [sym.ProcessHacker.exe_PhHeapHandle]
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov rax, rbx
mov rbx, qword [rsp + 0x290]
add rsp, 0x280
pop rdi
ret