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

Disassembly:
push rbp
sub rsp, 0x140
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xb0], xmm8
movaps xmmword [rbp + 0xa0], xmm7
movaps xmmword [rbp + 0x90], xmm6
mov qword [rbp + 0x60], rdx
mov qword [rbp + 0x68], rcx
mov eax, 0x20
mov qword [rbp + 0x70], rax
call fcn.140271bb0
sub rsp, rax
mov rax, qword [rbp + 0x70]
mov r8, rsp
mov qword [rbp + 0x78], r8
call fcn.140271bb0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x80], rax
mov rax, qword [rcx]
mov qword [rbp + 0x88], rax
cmp rax, rdx
jle 0x14002f3e9
mov rdx, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x68]
sub rsp, 0x20
call fcn.14002f010
add rsp, 0x20
jmp 0x14002fb7e
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp + 0x60]
cmp rax, rcx
jge 0x14002fb7e
mov rax, qword [rbp + 0x68]
mov rcx, rax
add rcx, 8
mov qword [rbp + 0x50], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x58], rax
cmp rax, 0
je 0x14002f43c
mov rcx, qword [rbp + 0x60]
mov rdx, qword [rbp + 0x58]
movabs rax, 0xbfffffffffffffff
and rax, qword [rdx]
cmp rax, rcx
jge 0x14002f4e8
mov rdx, qword [rbp + 0x88]
mov r8, qword [rbp + 0x60]
mov rcx, r8
sub rcx, rdx
mov qword [rbp + 0x48], rcx
mov rax, rcx
xor rax, r8
xor rdx, rcx
mov rcx, rax
and rcx, rdx
test rax, rax
sets al
test rcx, rcx
setns cl
add al, cl
inc al
test al, 1
jne 0x14002f4d6
mov r8, qword [rbp + 0x48]
mov rdx, qword [rbp + 0x58]
mov rcx, qword [rbp + 0x88]
movabs r9, 0xb0488a415b08c56e
movabs rax, 0xb0488a415b08c576
xor r9, rax
movabs rax, 0x6fb8f0ad4df59e14
movabs r10, 0x6fb8f0ad4df59e1c
xor rax, r10
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.1400265f0
add rsp, 0x30
mov rcx, rax
mov rax, qword [rbp + 0x50]
mov qword [rax], rcx
jmp 0x14002f4e8
sub rsp, 0x20
call fcn.14000f24b
add rsp, 0x20
jmp 0x14002fb7e
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp + 0x68]
mov rdx, qword [rbp + 0x60]
mov qword [rcx], rdx
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x40]
mov qword [rbp - 0x10], rax
mov ecx, dword [0x1402980b0]
sub rsp, 0x20
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
add rsp, 0x20
movaps xmm0, xmmword [0x140281aa0]
movaps xmm1, xmmword [0x140281ab0]
movaps xmm2, xmmword [0x140281ac0]
movaps xmm3, xmmword [0x140281ad0]
xor eax, eax
mov qword [rbp - 8], rax
movaps xmmword [rbp], xmm3
movaps xmmword [rbp + 0x10], xmm2
movaps xmmword [rbp + 0x20], xmm1
movaps xmmword [rbp + 0x30], xmm0
jmp 0x14002f554
mov rax, qword [rbp - 8]
movaps xmm2, xmmword [rbp]
movaps xmm7, xmmword [rbp + 0x10]
movaps xmm8, xmmword [rbp + 0x20]
movaps xmm5, xmmword [rbp + 0x30]
movaps xmmword [rbp - 0x70], xmm5
movaps xmmword [rbp - 0x60], xmm8
movaps xmmword [rbp - 0x50], xmm7
movaps xmmword [rbp - 0x40], xmm2
mov qword [rbp - 0x28], rax
movaps xmm6, xmmword [0x140281ae0]
pxor xmm2, xmm6
pshufd xmm1, xmm2, 0xf5
movaps xmm3, xmmword [0x140281ae0]
movaps xmm0, xmm3
pcmpeqd xmm0, xmm1
movaps xmm4, xmmword [0x140281af0]
movaps xmm1, xmm4
pcmpgtd xmm1, xmm2
pshufd xmm2, xmm1, 0xa0
pand xmm0, xmm2
pshufd xmm1, xmm1, 0xf5
por xmm0, xmm1
pxor xmm7, xmm6
pshufd xmm1, xmm7, 0xf5
movaps xmm2, xmm3
pcmpeqd xmm2, xmm1
movaps xmm1, xmm4
pcmpgtd xmm1, xmm7
pshufd xmm7, xmm1, 0xa0
pand xmm2, xmm7
pshufd xmm1, xmm1, 0xf5
por xmm2, xmm1
movaps xmm1, xmm0
packssdw xmm1, xmm2
pxor xmm8, xmm6
pshufd xmm7, xmm8, 0xf5
movaps xmm2, xmm3
pcmpeqd xmm2, xmm7
movaps xmm7, xmm4
pcmpgtd xmm7, xmm8
pshufd xmm8, xmm7, 0xa0
pand xmm2, xmm8
pshufd xmm7, xmm7, 0xf5
por xmm2, xmm7
pxor xmm5, xmm6
pshufd xmm6, xmm5, 0xf5
pcmpeqd xmm3, xmm6
pcmpgtd xmm4, xmm5
pshufd xmm5, xmm4, 0xa0
pand xmm3, xmm5
pshufd xmm4, xmm4, 0xf5
por xmm3, xmm4
packssdw xmm2, xmm3
packssdw xmm1, xmm2
movaps xmmword [rbp - 0x20], xmm1
movd eax, xmm0
test al, 1
jne 0x14002f65a
jmp 0x14002f666
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp - 0x28]
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rbp - 0x20]
movd eax, xmm0
shr eax, 0x10
test al, 1
jne 0x14002f67e
jmp 0x14002f68e
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp - 0x28]
or rcx, 1
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rbp - 0x20]
pextrw eax, xmm0, 2
test al, 1
jne 0x14002f6a4
jmp 0x14002f714
mov rax, qword [rbp + 0x78]
mov rdx, qword [rbp - 0x28]
movabs r8, 0xe8ca70e66908760b
movabs rcx, 0x17358f1996f789f4
xor r8, rcx
mov rcx, rdx
xor rcx, r8
xor rdx, 0xffffffffffffffff
or rcx, rdx
movabs rdx, 0xbee8d8702526c240
movabs r8, 0xbee8d8702526c242
xor rdx, r8
movabs r8, 0x3f1015a6fee2efe6
movabs r9, 0x3f1015a6fee2efe4
xor r8, r9
and rdx, r8
xor rdx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
mov byte [rax + rcx], 0
mov eax, dword [0x1402736c8]
imul eax, dword [0x1402736cc]
mov ecx, 0x75d07358
xor ecx, 0x78fdd4c8
sub eax, ecx
add eax, 0x6216ba92
add eax, 0xd2da790
mov ecx, 0x9bf1d075
xor ecx, 0x640e2f8a
mov edx, eax
xor edx, ecx
and edx, 0xb5fcd317
mov r8d, 0xffffffff
xor r8d, 0xb5fcd317
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xb5fcd317
or eax, 0xb5fcd317
imul eax, edx
add eax, ecx
mov edx, 0xefc5fafd
xor edx, 0xe8643ae4
mov ecx, eax
and ecx, edx
shl ecx, 1
xor eax, 0x7a1c019
add eax, ecx
mov ecx, 0x3473a9a7
xor ecx, 0x79dc6b40
cmp eax, ecx
jbe 0x14002fb9d
movaps xmm0, xmmword [rbp - 0x20]
mov ecx, dword [0x1402736d0]
mov edx, dword [0x1402736d4]
xor edx, 0xccd48d7f
mov eax, ecx
mov ecx, edx
lea eax, [rax + rcx + 0x6c95e0]
xor eax, 0x1719727b
add eax, 0x409fd5ac
mov ecx, 0x2e5dfe24
pextrw edx, xmm0, 3
mov byte [rbp - 0x71], dl
cmp eax, ecx
jb 0x14002f7a0
mov al, byte [rbp - 0x71]
test al, 1
jne 0x14002f7f0
jmp 0x14002f828
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp - 0x28]
mov rdx, rcx
and rdx, 3
movabs r8, 0xe547bcd32c7e71f1
movabs r9, 0x1ab8432cd3818e0e
xor r8, r9
xor rdx, r8
add rcx, 3
add rcx, 1
add rcx, rdx
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rbp - 0x20]
pextrw eax, xmm0, 4
test al, 1
jne 0x14002f83e
jmp 0x14002f84e
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp - 0x28]
or rcx, 4
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rbp - 0x20]
pextrw eax, xmm0, 5
test al, 1
jne 0x14002f864
jmp 0x14002f8e8
mov eax, dword [0x1402736d8]
mov ecx, dword [0x1402736dc]
xor ecx, 0xb8c61b8d
imul eax, ecx
mov ecx, 0x4c344f3c
xor edx, edx
div ecx
or eax, 0x32f1214b
mov ecx, 0x5d13e6fc
xor ecx, 0x77d7d6d8
and eax, ecx
cmp eax, 0xd5a46bcb
ja 0x14002fba6
mov rdx, qword [rbp + 0x78]
mov r8, qword [rbp - 0x28]
mov eax, dword [0x1402736e0]
and eax, dword [0x1402736e4]
xor ecx, ecx
sub ecx, 0x36bddae7
add eax, ecx
sub eax, 0x4f339162
or eax, 0xfe0e9d16
mov ecx, 0x60357e0a
xor ecx, 0x34e8d4da
or r8, 5
mov byte [rdx + r8], 0
cmp eax, ecx
je 0x14002fba6
jmp 0x14002f8e8
movaps xmm0, xmmword [rbp - 0x20]
pextrw eax, xmm0, 6
test al, 1
jne 0x14002f8fe
jmp 0x14002f92e
mov rax, qword [rbp + 0x78]
mov rdx, qword [rbp - 0x28]
mov rcx, rdx
and rcx, 6
movabs r8, 0xd76c5c060722d04d
movabs r9, 0xd76c5c060722d04b
xor r8, r9
xor rdx, r8
or rcx, rdx
mov byte [rax + rcx], 0
mov eax, dword [0x1402736e8]
mov ecx, 0xd07205f1
xor ecx, 0x6a3cf738
xor eax, ecx
mov ecx, dword [0x1402736ec]
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
mov ecx, 0xdb33cf2
xor edx, edx
div ecx
mov r11d, eax
mov ecx, 0x45d20bd7
xor ecx, 0xba2df428
mov eax, r11d
xor eax, ecx
mov edx, 0xffffffff
xor edx, 0xb4e716ab
mov r8d, 0xffffffff
xor r8d, 0xa52b07c1
mov ecx, eax
and ecx, 0xa52b07c1
and r11d, r8d
mov r9d, edx
and r9d, 0xa52b07c1
mov r10d, r8d
and r10d, 0xb4e716ab
or ecx, r11d
or r9d, r10d
xor ecx, r9d
or eax, edx
xor eax, 0xffffffff
mov edx, 0x8738d708
xor edx, 0x2213d0c9
or edx, r8d
and eax, edx
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x7288a5cf
or eax, edx
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x7288a5cf
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
cmp eax, 0x5e1b0687
ja 0x14002fbaf
movaps xmm0, xmmword [rbp - 0x20]
xor eax, eax
pextrw ecx, xmm0, 7
mov byte [rbp - 0x72], cl
cmp eax, 0x56c87724
jae 0x14002f9f7
mov al, byte [rbp - 0x72]
test al, 1
jne 0x14002fa20
jmp 0x14002fa42
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp - 0x28]
mov rdx, rcx
and rdx, 7
xor rdx, 0xffffffffffffffff
add rcx, 7
add rcx, 1
add rcx, rdx
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rbp - 0x70]
movaps xmm1, xmmword [rbp - 0x60]
movaps xmm2, xmmword [rbp - 0x50]
movaps xmm3, xmmword [rbp - 0x40]
mov rax, qword [rbp - 0x28]
mov ecx, eax
and ecx, 8
xor rax, 8
lea rax, [rax + rcx*2]
movaps xmm4, xmmword [0x140281b00]
psubq xmm3, xmm4
psubq xmm2, xmm4
psubq xmm1, xmm4
psubq xmm0, xmm4
mov rcx, rax
sub rcx, 0x18
mov qword [rbp - 8], rax
movaps xmmword [rbp], xmm3
movaps xmmword [rbp + 0x10], xmm2
movaps xmmword [rbp + 0x20], xmm1
movaps xmmword [rbp + 0x30], xmm0
jne 0x14002f554
jmp 0x14002faa0
mov r8, qword [rbp - 0x10]
mov rdx, qword [rbp + 0x80]
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp + 0x50]
mov rcx, qword [rcx]
add rcx, 8
imul r8, r8, 0x18
add rcx, r8
mov r8, qword [rax]
mov qword [rdx], r8
mov r8, qword [rax + 8]
mov qword [rdx + 8], r8
mov rax, qword [rax + 0x10]
mov qword [rdx + 0x10], rax
sub rsp, 0x20
call fcn.14006fd51
mov rcx, qword [rbp - 0x10]
add rsp, 0x20
xor eax, eax
mov edx, eax
sub rdx, rcx
movabs rax, 0xb6e384d8982d280
movabs r8, 0xb6e384d8982d280
xor rax, r8
movabs r8, 0xcb74ffa06fd25cd3
movabs r9, 0xcb74ffa06fd25cd2
xor r8, r9
sub rax, r8
add rdx, rax
movabs rax, 0xf1999c3f4125e946
movabs r8, 0xf1999c3f4125e946
xor rax, r8
sub rax, rdx
mov qword [rbp - 0x80], rax
xor rcx, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x14002fb64
sub rsp, 0x20
call fcn.14000f24b
add rsp, 0x20
jmp 0x14002fb7e
mov rax, qword [rbp - 0x80]
mov rcx, qword [rbp + 0x60]
cmp rax, rcx
mov qword [rbp + 0x40], rax
je 0x14002fb5f
jmp 0x14002f4fe
movaps xmm6, xmmword [rbp + 0x90]
movaps xmm7, xmmword [rbp + 0xa0]
movaps xmm8, xmmword [rbp + 0xb0]
lea rsp, [rbp + 0xc0]
pop rbp
ret
xchg ebx, eax
xor eax, 0xfae9af19
sti
invalid
jb 0x14002fc14
ja 0x14002fb94
invalid
xor dword [rax + rdx - 0x1c01680], esi
invalid
add dword [rcx - 0x48], 0xffffffff
invalid