Function at 0x401060
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ecx, str._path
call section..text
mov dword [ebp - 4], eax
test eax, eax
je 0x4010c6
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, dword [sym.imp.KERNEL32.dll_HeapAlloc]
lea esi, [eax*2 + 2]
push esi
push 8
push dword [0x42a8e0]
call edi
test eax, eax
jne 0x4010b7
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x80
call ebx
push esi
push 8
push dword [0x42a8e0]
call edi
test eax, eax
je 0x4010a1
push dword [ebp - 4]
mov dword [0x4297fc], eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov ecx, str._mode
call section..text
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov esi, eax
test esi, esi
je 0x40112a
push str.full
push esi
call edi
test eax, eax
jne 0x4010f4
mov dword [0x4297ec], 1
jmp 0x40112a
push str.fast
push esi
call edi
test eax, eax
jne 0x40110c
mov dword [0x4297ec], 2
jmp 0x40112a
push str.split
push esi
call edi
mov ecx, dword [0x4297ec]
test eax, eax
mov edx, 3
cmove ecx, edx
mov dword [0x4297ec], ecx
mov ecx, str._skip
call section..text
test eax, eax
je 0x401149
push eax
call fcn.0040b7f8
movzx eax, al
add esp, 4
mov dword [0x429800], eax
mov ecx, str._power
call section..text
mov esi, eax
test esi, esi
je 0x40118f
push str.restart
push esi
call edi
test eax, eax
jne 0x401171
mov dword [0x4297e8], 1
jmp 0x40118f
push str.shutdown
push esi
call edi
mov ecx, dword [0x4297e8]
test eax, eax
mov edx, 2
cmove ecx, edx
mov dword [0x4297e8], ecx
lea eax, [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [ebp - 4], 1
mov ebx, eax
jle 0x4011c8
mov esi, 1
nop dword [eax]
push str._nomutex
push dword [ebx + esi*4]
call edi
test eax, eax
je 0x401295
inc esi
cmp esi, dword [ebp - 4]
jl 0x4011b0
xor eax, eax
mov dword [0x4297f0], eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [ebp - 4], 1
mov ebx, eax
jle 0x401208
mov esi, 1
nop dword [eax]
push str._nonetdrive
push dword [ebx + esi*4]
call edi
test eax, eax
je 0x40129f
inc esi
cmp esi, dword [ebp - 4]
jl 0x4011f0
xor eax, eax
mov dword [0x4297f8], eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [ebp - 4], 1
mov ebx, eax
jle 0x401244
mov esi, 1
nop dword [eax]
push str._nolocaldrive
push dword [ebx + esi*4]
call edi
test eax, eax
je 0x4012a9
inc esi
cmp esi, dword [ebp - 4]
jl 0x401230
xor eax, eax
mov dword [0x429804], eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [ebp - 4], 1
mov ebx, eax
jle 0x401284
mov esi, 1
nop dword [eax]
push str._selfdel
push dword [ebx + esi*4]
call edi
test eax, eax
je 0x4012b0
inc esi
cmp esi, dword [ebp - 4]
jl 0x401270
pop edi
pop esi
mov dword [0x4297f4], 0
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 1
jmp 0x4011ca
mov eax, 1
jmp 0x40120a
mov eax, 1
jmp 0x401246
pop edi
pop esi
mov dword [0x4297f4], 1
pop ebx
mov esp, ebp
pop ebp
ret