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

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x78], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x78]
add rax, 0x60
mov qword [rsp + 0x80], rax
mov rax, qword [rcx]
movabs rcx, 0x1e467f82aed690f6
movabs rdx, 0x1e467f82aed690f6
xor rcx, rdx
cmp rax, rcx
jle 0x140047daa
mov rax, qword [rsp + 0x78]
add rax, 8
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x60], rax
mov eax, dword [0x1402a9ee8]
or eax, dword [0x1402a9eec]
mov ecx, 0x665b5835
xor ecx, 0xffe07245
xor eax, ecx
xor ecx, ecx
sub ecx, 0x29176f2d
sub eax, ecx
sub eax, 0xb8a23981
cmp eax, 0x9f65776f
jbe 0x140047e7c
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov eax, dword [0x1402a9ef0]
xor eax, 0xf41b6b8f
imul eax, dword [0x1402a9ef4]
mov ecx, 0x33c0d4cf
xor ecx, 0x33c0d4cf
mov r9d, 0x30b0e884
xor r9d, 0xa7afc072
sub ecx, r9d
sub eax, ecx
add eax, 0x24afc44b
mov ecx, 0x4a646aa5
xor ecx, 0xb396d57b
imul eax, ecx
mov ecx, 0x7749d954
xor ecx, 0x7e4a06a0
mov rdx, qword [rdx]
mov rdx, qword [rdx + r8*8 + 8]
mov qword [rsp + 0x50], rdx
cmp rdx, 0
sete dl
mov byte [rsp + 0x5f], dl
cmp eax, ecx
jb 0x140047e7c
mov al, byte [rsp + 0x5f]
test al, 1
jne 0x140047d53
jmp 0x140047c16
mov rcx, qword [rsp + 0x50]
mov rax, rcx
and rax, 0xfffffffffffffff0
or rcx, 0xfffffffffffffff0
add rax, rcx
mov qword [rsp + 0x40], rax
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
cmp rax, 0x10
jb 0x140047cd0
mov r8, qword [rsp + 0x48]
mov rax, r8
add rax, 0xfffffffffffffff0
mov qword [rsp + 0x38], rax
movabs rcx, 0x2e488e8e47ff6fb2
movabs rdx, 0xd1b77171b800904d
xor rcx, rdx
mov rdx, rax
xor rdx, rcx
mov rcx, r8
and rcx, rdx
xor r8, 0xffffffffffffffff
mov rdx, rax
and rdx, r8
or rcx, rdx
movabs rdx, 0xc0a633ab1ed5a602
movabs r8, 0xc0a633ab1ed5a602
xor rdx, r8
cmp rcx, rdx
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x140047cb4
jmp 0x140047cbe
call fcn.14000ee80
jmp 0x140047d53
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
mov qword [rax], rcx
jmp 0x140047d53
mov rcx, qword [rsp + 0x50]
call fcn.1401f0f60
mov rax, qword [rsp + 0x80]
cmp byte [rax], 0
jne 0x140047e74
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
mov rax, qword [rax]
mov rax, qword [rax + rcx*8 + 8]
movabs rcx, 0x44c71cffe53230b
movabs rdx, 0x44c71cffe53230b
xor rcx, rdx
movabs rdx, 0xabf0fff471dae64e
movabs r8, 0x540f000b8e2519be
xor rdx, r8
sub rcx, rdx
sub rax, rcx
mov qword [rsp + 0x30], rax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x30]
mov rcx, rax
add rcx, 0x68
call fcn.140017ba0
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x60]
movabs r8, 0xcc84fb19b318db3c
movabs rdx, 0xcc84fb19b318db3d
xor r8, rdx
mov rdx, rax
and rdx, r8
movabs r8, 0x58127ab7c8543590
movabs r9, 0x58127ab7c8543592
xor r8, r9
imul rdx, r8
xor rax, 1
add rax, rdx
cmp rax, qword [rcx]
mov qword [rsp + 0x70], rax
jl 0x140047b51
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 8]
mov qword [rsp + 0x28], rax
cmp rax, 0
je 0x140047e74
mov eax, dword [0x1402a9ef8]
mov ecx, 0x3fac69b8
xor ecx, 0xa1a01458
xor eax, ecx
add eax, dword [0x1402a9efc]
and eax, 0x486ff529
sub eax, 0x2ccb1b1
sub eax, 0xbcabe887
cmp eax, 0xa7b3eb05
ja 0x140047e85
mov eax, dword [0x1402a9f00]
or eax, dword [0x1402a9f04]
mov ecx, 0xe8f588aa
xor ecx, 0x5ba5ecff
mov edx, 0x69097f52
xor edx, 0x96f680ad
xor ecx, edx
add eax, ecx
add eax, 1
add eax, 0x1e08ac5f
mov ecx, 0x528b3d37
xor ecx, 0xed8d75aa
or eax, ecx
mov dword [rsp + 0x24], eax
mov eax, 0x597fd22b
xor eax, 0x77bb6780
mov dword [rsp + 0x20], eax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x28]
mov rcx, rax
add rcx, 0x68
call fcn.140017ba0
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x24]
cmp eax, ecx
jb 0x140047df5
jmp 0x140047e74
add rsp, 0x88
ret
test eax, 0xe92b92fc
or ebp, edi
invalid
jl 0x140047e81
sal byte [rdx - 0x9817], cl
dec dword [rax - 0x7d]
sub rsp, 0x68
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rcx
mov r8, qword [rcx]
mov qword [rsp + 0x40], r8
mov rax, rcx
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x50], rax
movabs rdx, 0x29cffd4b32989f96
movabs rcx, 0xa1ffcec4abf91276
xor rdx, rcx
mov rcx, r8
sub rcx, rdx
movabs rdx, 0xfbcdc220faf5ae30
movabs r9, 0xfbcdc220faf5ae31
xor rdx, r9
add rcx, rdx
movabs rdx, 0x8830338f99618de0
add rcx, rdx
mov qword [rsp + 0x58], rcx
xor r8, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs r9, 0x4c30b764d7013d68
xor rdx, r9
or rcx, r8
movabs r8, 0x4c30b764d7013d68
or rdx, r8
movabs r8, 0x1ae1d29f8786a6ef
movabs r9, 0xe51e2d6078795910
xor r8, r9
xor rcx, r8
and rcx, rdx
mov qword [rsp + 0x60], rcx
cmp rax, 0
je 0x140047fe5
mov rax, qword [rsp + 0x60]
cmp rax, 0
jl 0x140047fdb
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov r8, qword [rax]
mov r9, 0xffffffffffffffff
movabs rcx, 0xbfffffffffffffff
xor r9, rcx
mov rcx, r8
xor rcx, r9
and rcx, r8
cmp rcx, rdx
mov qword [rsp + 0x28], rax
jge 0x140048045
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
mov r8d, 1
mov r9d, 8
mov qword [rsp + 0x20], 8
call fcn.140023a90
mov rcx, qword [rsp + 0x48]
mov qword [rcx], rax
mov qword [rsp + 0x28], rax
jmp 0x140048045
call fcn.14000ee80
jmp 0x140048066
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
mov r8d, 1
mov r9d, 8
mov qword [rsp + 0x20], 8
call fcn.140023a90
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
mov qword [rdx], rax
movabs rdx, 0xefe47b03bd59cb45
movabs r8, 0xefe47b03bd59cb45
xor rdx, r8
cmp rcx, rdx
mov qword [rsp + 0x28], rax
jge 0x140048045
call fcn.14000ee80
jmp 0x140048066
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x58]
mov rax, qword [rsp + 0x28]
mov qword [r8], r9
mov qword [rax + rcx*8 + 8], rdx
add rsp, 0x68
ret