Function at 0x401070
Capabilities:
Accept command line arguments
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
push edi
push 0xf
call dword [sym.imp.USER32.dll_GetSysColorBrush]
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
lea eax, [ebp - 0xc]
xor ebx, ebx
push eax
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [ebp - 0xc], 1
mov ecx, eax
mov dword [ebp - 4], ecx
jle 0x401289
mov edi, 1
mov dword [ebp - 8], edi
nop word [eax + eax]
push str.__silent
push dword [ecx + edi*4]
call fcn.00402402
test eax, eax
mov eax, 1
push str.__path
cmovne esi, eax
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 4]
push dword [esi + edi*4]
call fcn.00402402
add esp, 0x10
test eax, eax
je 0x40111e
mov edx, dword [esi + edi*4]
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401100
sub ecx, esi
mov esi, dword [ebp - 4]
sar ecx, 1
cmp ecx, 7
jbe 0x40111e
test ebx, ebx
jne 0x40111e
lea ebx, [edx + 0xe]
push str.__system_level
push dword [esi + edi*4]
call fcn.00402402
add esp, 8
test eax, eax
je 0x4011dc
test ebx, ebx
jne 0x4011dc
push 0x208
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
test ebx, ebx
je 0x401234
push ebx
push 0
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov ecx, 0x82
mov eax, ebx
cmp word [eax], 0
je 0x401180
add eax, 2
sub ecx, 1
jne 0x401172
mov eax, 0x82
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x4011d9
mov edx, 0x82
lea eax, [ebx + esi*2]
sub edx, esi
je 0x4011cc
mov edi, str.Supermium
mov ecx, 0x7ffffffe
sub edi, eax
nop dword [eax + eax]
test ecx, ecx
je 0x4011c9
movzx esi, word [edi + eax]
test si, si
je 0x4011c9
mov word [eax], si
dec ecx
add eax, 2
sub edx, 1
jne 0x4011b0
mov edi, dword [ebp - 8]
test edx, edx
lea ecx, [eax - 2]
cmovne ecx, eax
xor eax, eax
mov word [ecx], ax
mov esi, dword [ebp - 4]
push str.__install_emoji
push dword [esi + edi*4]
call fcn.00402402
push str.__shortcuts
push dword [esi + edi*4]
call fcn.00402402
push str.__no_registry_writes
push dword [esi + edi*4]
call fcn.00402402
push str.__ungoogled
push dword [esi + edi*4]
call fcn.00402402
push str.__classic_theme
push dword [esi + edi*4]
call fcn.00402402
inc edi
add esp, 0x28
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0xc]
jge 0x401253
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
jmp 0x4010c0
push 0x10
push str.Supermium_Setup
push str.Failed_to_allocate_memory.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebp - 0x10], 0
je 0x401289
test ebx, ebx
jne 0x40127b
push 0x10
push str.Supermium_Setup
push str.Failed_to_specify_a_valid_path_for_unattended_mode._Please_provide_a_valid_path_and_try_again.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [ebp - 0x2c]
push 0
push 0
push 0
push eax
call esi
test eax, eax
je 0x4012cc
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
nop dword [eax + eax]
lea eax, [ebp - 0x2c]
push eax
call edi
lea eax, [ebp - 0x2c]
push eax
call ebx
push 0
push 0
push 0
lea eax, [ebp - 0x2c]
push eax
call esi
test eax, eax
jne 0x4012b0
mov eax, dword [ebp - 0x24]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10