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

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbx
push rsi
push r13
push r15
sub rsp, 0x2c8
mov r15, qword [0x14018eb28]
xor esi, esi
mov r13, qword [0x14018eb20]
mov ebx, edx
mov ecx, dword [0x140190208]
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x50], r13
mov dword [rax - 0x258], esi
mov qword [rax - 0x50], rsi
mov qword [rax - 0x48], rsi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [0x140190208]
lea rdx, [rsp + 0x90]
mov qword [rsp + 0x2a8], rax
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x140096713
mov qword [rsp + 0x2f8], rbp
lea eax, [rbx + 1]
mov qword [rsp + 0x2c0], rdi
xor r9d, r9d
mov qword [rsp + 0x2b8], r12
xor r8d, r8d
mov edx, 0x421
mov qword [rsp + 0x2b0], r14
mov rcx, r13
mov dword [rsp + 0x300], eax
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x429
mov rcx, r13
mov rbx, rax
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
mov edx, 4
mov r12d, eax
mov rbp, rax
mov qword [rsp + 0x2f0], rax
lea r8, [r12*4]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov qword [rsp + 0x40], rax
mov edx, 0x409
mov rdi, rax
mov rcx, r13
test rbx, rbx
je 0x14009647d
lea r9, [rax + 4]
lea r8d, [rbp - 1]
call qword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [rbx + 4]
mov dword [rdi], ecx
jmp 0x140096489
mov r9, rdi
mov r8, r12
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
lea r14, [r12*8]
mov r8, r14
mov edx, 4
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov qword [rsp + 0x48], rax
test ebp, ebp
je 0x1400964f1
mov rbx, rax
mov rbp, r12
nop word [rax + rax]
mov r8d, dword [rdi]
lea r9, [rsp + 0x60]
mov edx, 0x407
mov rcx, r13
call qword [sym.imp.USER32.dll_SendMessageW]
test rax, rax
je 0x1400964e3
mov rax, qword [rsp + 0x70]
mov qword [rbx], rax
add rdi, 4
add rbx, 8
sub rbp, 1
jne 0x1400964c0
mov ebx, dword [rsp + 0x300]
mov rdx, qword [0x14018d8d0]
mov edi, ebx
lea rcx, [rbx*8]
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhCreateObject
mov rcx, rax
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhAutoDereferenceObject
mov rbp, rax
test ebx, ebx
je 0x140096551
mov rbx, rax
mov rdx, qword [0x14018d8d0]
mov rcx, r14
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhCreateObject
mov rcx, rax
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhAutoDereferenceObject
mov r8, r14
mov qword [rbx], rax
xor edx, edx
mov rcx, rax
call fcn.140131400
lea rbx, [rbx + 8]
sub rdi, 1
jne 0x140096520
mov rdi, qword [rsp + 0x2f0]
test edi, edi
je 0x1400965ee
mov r13, qword [rsp + 0x48]
mov r15, rsi
nop dword [rax]
mov rdi, qword [r15 + r13]
mov rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp word [rdi + rbx*2], si
jne 0x140096580
mov rdx, qword [0x140191180]
add rbx, rbx
lea rcx, [rbx + 0x12]
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhCreateObject
mov r14, rax
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
mov word [rcx + rbx], si
test rdi, rdi
je 0x1400965c2
mov rcx, qword [rax + 8]
mov r8, rbx
mov rdx, rdi
call fcn.1401317c0
mov rcx, r14
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhAutoDereferenceObject
mov rcx, qword [rbp]
mov qword [r15 + rcx], rax
add r15, 8
sub r12, 1
jne 0x140096570
mov r13, qword [rsp + 0x50]
mov r15, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x2f0]
mov r14, qword [rsp + 0x2b0]
mov r12, qword [rsp + 0x2b8]
mov rbx, qword [rsp + 0x40]
mov dword [rsp + 0x2f0], 1
cmp dword [r15], esi
jbe 0x140096655
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [r15 + 8]
lea rcx, [rsp + 0x2f0]
mov eax, esi
mov r9, rbp
mov dword [rsp + 0x30], edi
xor r8d, r8d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rcx
mov rcx, r13
mov rdx, qword [rdx + rax*8]
call fcn.140096140
inc esi
cmp esi, dword [r15]
jb 0x140096620
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
mov r8, rbx
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov r8, qword [rsp + 0x48]
xor edx, edx
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov r9d, dword [rsp + 0x308]
mov r8d, edi
mov edx, dword [rsp + 0x300]
mov rcx, rbp
call fcn.1400f5ec0
lea rcx, [rsp + 0x90]
mov rbx, rax
call sym.4yUlCM3HuVsHzW5CaCX.exe_PhDrainAutoPool
mov ecx, dword [0x140190208]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, qword [rsp + 0x2c0]
lea rcx, [rsp + 0x90]
mov rbp, qword [rsp + 0x2f8]
cmp rax, rcx
jne 0x140096713
mov rdx, qword [rsp + 0x2a8]
mov ecx, dword [0x140190208]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x140096713
mov r8, qword [rsp + 0x2a0]
test r8, r8
je 0x140096702
mov rcx, qword [sym.4yUlCM3HuVsHzW5CaCX.exe_PhHeapHandle]
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov rax, rbx
add rsp, 0x2c8
pop r15
pop r13
pop rsi
pop rbx
ret
mov ecx, 0xc0000001
call qword [sym.imp.ntdll.dll_RtlRaiseStatus]
int3