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

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x78], rcx
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x78]
add rax, 0x60
mov qword [rsp + 0x80], rax
cmp qword [rcx], 0
jle 0x1400422ba
mov eax, dword [0x140274088]
xor edx, edx
div dword [0x14027408c]
mov ecx, 0x4540fd02
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0xffffffff
xor edx, 0xc80e44d2
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0x6c2d52a5
xor ecx, 0xfceefd77
xor edx, edx
div ecx
cmp eax, 0x466fb746
ja 0x1400422f8
mov rdx, qword [rsp + 0x78]
mov eax, dword [0x140274090]
mov ecx, dword [0x140274094]
xor ecx, 0x77a10ad9
sub eax, 0x223f0903
sub eax, ecx
add eax, 0x223f0903
and eax, 0xe2bff46e
xor eax, 0xc6f6d446
mov ecx, eax
xor ecx, 0x1762c08f
xor ecx, 0xffffffff
or eax, 0x1762c08f
and eax, ecx
mov ecx, 0x3c3198c6
xor ecx, 0x696bba50
add rdx, 8
mov qword [rsp + 0x70], rdx
cmp eax, ecx
ja 0x1400422f8
xor eax, eax
mov qword [rsp + 0x68], rax
jmp 0x14004204e
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x58], rcx
mov rax, qword [rax]
mov rax, qword [rax + rcx*8 + 8]
mov qword [rsp + 0x60], rax
cmp rax, 0
je 0x140042284
mov rax, qword [rsp + 0x60]
movabs rcx, 0x2c8b38d0e5e7c612
movabs rdx, 0xd374c72f1a1839e2
xor rcx, rdx
movabs rdx, 0x53cafdad791f65ac
movabs r8, 0xac35025286e09a53
xor rdx, r8
xor rcx, rdx
movabs rdx, 0x74184c774cd70e2d
movabs r8, 0x74184c774cd70e2d
xor rdx, r8
movabs r8, 0xc6feedd55deccccb
movabs r9, 0xc6feedd55decccca
xor r8, r9
sub rdx, r8
sub rcx, rdx
sub rax, rcx
mov qword [rsp + 0x48], rax
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
cmp rax, 0x10
jb 0x14004220d
mov eax, dword [0x140274098]
xor eax, 0xd746ef28
sub eax, dword [0x14027409c]
add eax, 0xbd047af5
sub eax, 0x893d7757
sub eax, 0xbd047af5
mov edx, eax
xor edx, 0xffffffff
and edx, 0xd90b246a
mov r8d, 0xffffffff
xor r8d, 0xd90b246a
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0xbb5bd93b
xor r8d, 0x6250fd51
mov edx, eax
and edx, r8d
or eax, 0xd90b246a
imul eax, edx
add eax, ecx
sub eax, 0x3718499f
cmp eax, 0xf2c504d8
jae 0x140042301
mov rdx, qword [rsp + 0x50]
mov ecx, dword [0x1402740a0]
mov eax, dword [0x1402740a4]
xor ecx, eax
xor ecx, 0x9137b78d
add ecx, 0x872b07c1
mov eax, ecx
not eax
or eax, 0x481280
and eax, 0x92cf1295
mov r8d, ecx
and r8d, 0xc20290a
or eax, r8d
xor eax, 0x8d7b65d3
and ecx, 0x1ea42106
or eax, ecx
mov r8, rdx
and r8, 0xfffffffffffffff0
mov rcx, rdx
or rcx, 0xfffffffffffffff0
add r8, rcx
mov qword [rsp + 0x38], r8
test r8, r8
setns cl
or rdx, r8
sets dl
add cl, dl
inc cl
mov byte [rsp + 0x47], cl
cmp eax, 0x3f313273
ja 0x140042164
mov al, byte [rsp + 0x47]
test al, 1
jne 0x1400421f1
jmp 0x1400421fb
call fcn.14000f24b
jmp 0x140042284
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
mov qword [rax], rcx
jmp 0x140042284
mov rcx, qword [rsp + 0x60]
call fcn.1401eb9d0
mov rax, qword [rsp + 0x80]
cmp byte [rax], 0
jne 0x1400422ef
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
mov rax, qword [rax + rcx*8 + 8]
mov rcx, rax
and rcx, 0xfffffffffffffff0
shl rcx, 1
movabs rdx, 0xe3adb99d38bb9d8e
movabs r8, 0x1c524662c744627e
xor rdx, r8
xor rax, rdx
add rax, rcx
mov qword [rsp + 0x30], rax
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x30]
mov rcx, rax
add rcx, 0x68
call fcn.1400190f0
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x58]
movabs rdx, 0xcf1d330d154563e9
sub rax, rdx
add rax, 1
movabs rdx, 0xcf1d330d154563e9
add rax, rdx
cmp rax, qword [rcx]
mov qword [rsp + 0x68], rax
jl 0x14004204e
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 8]
mov qword [rsp + 0x28], rax
cmp rax, 0
je 0x1400422ef
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x28]
mov rcx, rax
add rcx, 0x68
call fcn.1400190f0
nop
add rsp, 0x88
ret
sub bh, byte [rdi - 0x19165877]
cld
invalid
out dx, al
stc
imul ebp, ecx, 0xfffffe5a
nop word [rax + rax]