Function at 0x401000
Capabilities:
Encode data using xor
Terminate process

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xb8
movq xmm0, qword [str.Sample_Data__W]
mov al, byte [0x413e7a]
push esi
mov esi, dword [0x413e74]
push edi
mov di, word [0x413e78]
push 0xe
push 0
movq qword [ebp - 0x18], xmm0
mov byte [ebp - 0x22], al
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
movq xmm0, qword [ebp - 0x18]
lea ecx, [ebp - 8]
mov dword [ebp - 8], eax
movq qword [eax], xmm0
mov dword [eax + 8], esi
mov word [eax + 0xc], di
call fcn.00401300
mov edi, eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], edi
lea esi, [ebp - 0xb0]
nop
xor ecx, ecx
mov edx, ecx
mov al, cl
add al, byte [ebp - 4]
and edx, 7
inc ecx
xor al, byte [edx + 0x413e7c]
mov byte [esi], al
inc esi
cmp ecx, 0x10
jl 0x401082
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, 8
jl 0x401080
test edi, edi
mov edi, dword [ebp - 8]
je 0x4010ef
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 4], edi
shr eax, 4
inc eax
mov dword [ebp - 0xc], eax
nop dword [eax]
movups xmm0, xmmword [edi]
lea edx, [ebp - 0xb0]
mov esi, 8
movaps xmmword [ebp - 0x30], xmm0
lea edx, [edx + 0x10]
sub esi, 1
jne 0x4010d2
mov edi, dword [ebp - 4]
movups xmmword [edi], xmm0
add edi, 0x10
sub dword [ebp - 0xc], 1
mov dword [ebp - 4], edi
jne 0x4010c0
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0xc]
push eax
sub esp, 8
mov ecx, edi
call fcn.00401220
add esp, 0xc
mov esi, eax
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 0x14]
push eax
sub esp, 8
mov ecx, esi
call fcn.00401290
add esp, 0xc
mov edi, eax
mov dword [ebp - 4], edi
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [ebp - 8], 0
lea esi, [ebp - 0xb0]
nop dword [eax + eax]
xor edx, edx
inc edx
inc esi
cmp edx, 0x10
jl 0x401152
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp eax, 8
jl 0x401150
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4011b0
dec eax
mov dword [ebp - 0x10], edi
shr eax, 4
inc eax
mov dword [ebp - 0xc], eax
nop word [eax + eax]
movups xmm0, xmmword [edi]
mov edx, 7
lea esi, [ebp - 0x40]
movaps xmmword [ebp - 0x30], xmm0
nop
sub edx, 1
lea esi, [esi - 0x10]
jns 0x401190
mov edi, dword [ebp - 0x10]
movups xmmword [edi], xmm0
add edi, 0x10
sub dword [ebp - 0xc], 1
mov dword [ebp - 0x10], edi
jne 0x401180
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 4]
mov edx, eax
mov ecx, edi
call fcn.00401330
push 0xfffffffffffffff5
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edi, dword [sym.imp.KERNEL32.dll_WriteConsoleA]
push 0
push 0
push 0xc
push str.Final_data:
push eax
mov dword [ebp - 0x14], eax
call edi
push 0
push 0
push esi
push dword [ebp - 4]
mov esi, dword [ebp - 0x14]
push esi
call edi
push 0
push 0
push 1
push 0x413e68
push esi
call edi
push dword [ebp - 4]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]