Function at 0x1400f0f10
Capabilities:
Encode data using xor
Get thread local storage value
Set thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movaps xmmword [rsp + 0x80], xmm6
mov ecx, dword [0x140283878]
test ecx, ecx
je 0x1400f11fa
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 2
jb 0x1400f0f5d
cmp qword [rax + 8], 0
je 0x1400f0f5d
mov rcx, rax
add rcx, 0x10
mov r8, qword [rax + 0x10]
jmp 0x1400f11af
mov ecx, dword [0x140283878]
test ecx, ecx
je 0x1400f120d
dec ecx
call sub.kernel32.dll_TlsGetValue
test rax, rax
je 0x1400f0f85
mov rsi, rax
cmp rax, 1
jne 0x1400f0ff3
jmp 0x1400f1233
movzx eax, byte [0x14036c240]
mov rcx, qword [0x14036c198]
test rcx, rcx
jne 0x1400f0fb0
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1400f125e
mov rcx, rax
mov qword [0x14036c198], rax
mov r8d, 0x18
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x1400f125e
mov rsi, rax
lea rax, [0x140283860]
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x140283878]
test ecx, ecx
je 0x1400f1220
dec ecx
mov rdx, rsi
call sub.kernel32.dll_TlsSetValue
mov qword [rsp + 0x28], rsi
call fcn.14022d4d0
test rax, rax
je 0x1400f1233
mov r14, qword [rax]
mov r15, qword [rax + 8]
lea rcx, [r14 + 1]
mov qword [rax], rcx
movabs r12, 0x736f6d6570736575
xor r12, r14
movabs r13, 0x646f72616e646f6d
xor r13, r15
movabs rbp, 0x6c7967656e657261
xor rbp, r14
movabs rsi, 0x7465646279746573
xor rsi, r15
mov edi, 1
lea rbx, [rsp + 0x68]
xorps xmm6, xmm6
nop word cs:[rax + rax]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], r15
movups xmmword [rbx], xmm6
mov qword [rbx + 0x10], 0
mov qword [rsp + 0x30], rdi
mov r8d, 8
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x30]
call fcn.1401d40d0
mov rax, qword [rsp + 0x48]
mov r9, qword [rsp + 0x68]
shl r9, 0x38
or r9, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x38]
add r8, rax
rol rax, 0xd
xor rcx, r9
xor rax, r8
rol r8, 0x20
mov rdx, qword [rsp + 0x40]
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add r8, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rcx, r8
xor rax, rdx
rol rdx, 0x20
xor r8, r9
add r8, rax
rol rax, 0xd
xor rax, r8
rol r8, 0x20
xor rdx, 0xff
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add r8, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rax, rdx
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
xor rax, r8
rol r8, 0x20
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add r8, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rax, rdx
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
rol rcx, 0x15
xor rax, r8
add rdx, rax
rol rax, 0x11
mov r8, rdx
rol r8, 0x20
xor r8, rax
xor r8, rcx
inc rdi
xor r8, rdx
je 0x1400f1060
mov rax, qword [rsp + 0x28]
lea rcx, [rax + 0x10]
mov qword [rax + 8], 1
mov qword [rax + 0x10], r8
mov rax, r8
shr rax, 0xc
xor rax, r8
mov rdx, rax
shl rdx, 0x19
xor rdx, rax
mov r8, rdx
shr r8, 0x1b
xor r8, rdx
mov qword [rcx], r8
movabs rax, 0x2545f4914f6cdd1d
imul rax, r8
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x140283860]
call fcn.140202220
mov ecx, eax
jmp 0x1400f0f3b
lea rcx, [0x140283860]
call fcn.140202220
mov ecx, eax
jmp 0x1400f0f6d
lea rcx, [0x140283860]
call fcn.140202220
mov ecx, eax
jmp 0x1400f0feb
lea rax, [0x140331648]
mov qword [rsp + 0x20], rax
lea rcx, [0x1403315b2]
lea r9, [0x1402eacb8]
lea r8, [rsp + 0x38]
mov edx, 0x46
call fcn.1400427e0
ud2
mov ecx, 8
mov edx, 0x18
call fcn.140004360
ud2