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

Disassembly:
sub rsp, 0x78
mov qword [rsp + 0x58], rcx
mov rax, rcx
add rax, 8
mov qword [rsp + 0x60], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x68], rax
mov rdx, qword [rcx]
mov qword [rsp + 0x70], rdx
mov rax, rdx
add rax, 1
movabs rcx, 0x8fee339682e96b2b
movabs r8, 0x7011cc697d1694d4
xor rcx, r8
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
movabs r8, 0x633f1b5d15fc9a4d
movabs r9, 0x9cc0e4a2ea0365b2
xor r8, r9
xor rcx, r8
or rax, rdx
and rax, rcx
cmp rax, 0
jge 0x14001b25c
call fcn.14000a590
jmp 0x14001b4f2
mov rax, qword [rsp + 0x70]
mov rcx, rax
and rcx, 9
movabs r8, 0x95f8734537038364
movabs rdx, 0x95f873453703836d
xor r8, rdx
mov rdx, rax
or rdx, r8
add rcx, rdx
mov qword [rsp + 0x50], rcx
mov rdx, 0xfffffffffffffffe
sub rdx, rax
mov rax, rcx
xor rax, 0xffffffffffffffff
movabs r9, 0x3097d792f5cff37
movabs r8, 0xfcf68286d0a300c8
xor r9, r8
mov r8, rdx
xor r8, r9
or rax, r8
and rcx, rdx
movabs rdx, 0x1ffb5fa783c813fa
movabs r8, 0xe004a0587c37ec05
xor rdx, r8
xor rcx, rdx
and rax, rcx
movabs rcx, 0x3e501f96dae4f606
movabs rdx, 0xc1afe069251b09f9
xor rcx, rdx
xor rax, rcx
movabs rcx, 0x389c8dbe49cf6bb8
movabs rdx, 0x389c8dbe49cf6bb8
xor rcx, rdx
cmp rax, rcx
jge 0x14001b322
call fcn.14000a590
jmp 0x14001b4f2
mov rax, qword [rsp + 0x50]
movabs rcx, 0xba4a7f7455aaccc5
movabs rdx, 0xba4a7f7455aaccc5
xor rcx, rdx
cmp rax, rcx
jge 0x14001b357
mov rcx, r8
mov rdx, r8
call fcn.140010917
jmp 0x14001b4f2
mov ecx, dword [0x1401ab0a0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x50]
mov rcx, rax
add rcx, 0x68
call fcn.14000d5e6
mov rdx, qword [rsp + 0x60]
mov rcx, rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x38], rcx
mov qword [rdx], rcx
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rdx, qword [rax]
mov qword [rsp + 0x40], rdx
mov rcx, rdx
add rcx, 1
mov qword [rsp + 0x48], rcx
movabs rax, 0x3b95bc028e5210f6
movabs r8, 0xc46a43fd71adef09
xor rax, r8
xor rdx, rax
movabs r8, 0x6b15548207281cd9
movabs rax, 0x94eaab7df8d7e326
xor r8, rax
mov rax, rcx
xor rax, r8
xor rcx, 0xffffffffffffffff
and rax, rcx
mov rcx, rdx
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0x7ffd5e97ead4e940
movabs r8, 0x8002a168152b16bf
xor rdx, r8
xor rax, rdx
xor rcx, 0xffffffffffffffff
and rax, rcx
movabs rcx, 0x259c31b42d79d42c
movabs rdx, 0x259c31b42d79d42c
xor rcx, rdx
cmp rax, rcx
jge 0x14001b43a
call fcn.14000a590
jmp 0x14001b4f2
mov rax, qword [rsp + 0x48]
cmp rax, 0
jge 0x14001b459
mov rcx, r8
mov rdx, r8
call fcn.140010917
jmp 0x14001b4f2
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x38]
add rdx, 8
mov qword [rsp + 0x20], rdx
add rax, 8
mov qword [rsp + 0x28], rax
movabs rdx, 0x632cfab2c51f2b94
movabs rax, 0x632cfab2c51f2b94
xor rdx, rax
xor eax, eax
cmp rcx, rdx
mov qword [rsp + 0x30], rax
je 0x14001b4f2
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x20]
mov r8, qword [rsp + 0x28]
mov r8b, byte [r8 + rcx]
mov byte [rax + rcx], r8b
mov rax, rcx
and rax, 1
movabs r9, 0x6bac2292faa5c76d
movabs r8, 0x6bac2292faa5c76c
xor r9, r8
mov r8, rcx
or r8, r9
add rax, r8
cmp rcx, rdx
mov qword [rsp + 0x30], rax
jne 0x14001b4a1
add rsp, 0x78
ret