Function at 0x401000
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
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
mov esi, dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
jle 0x4010a1
mov edi, 1
nop dword [eax]
push str._path
push dword [ebx + edi*4]
call esi
test eax, eax
je 0x401046
inc edi
cmp edi, dword [ebp - 4]
jl 0x401030
jmp 0x4010a1
mov eax, dword [ebx + edi*4 + 4]
mov dword [ebp - 8], eax
test eax, eax
je 0x4010a1
push eax
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea ebx, [eax*2 + 2]
push ebx
push 8
push dword [0x42e394]
call dword [sym.imp.KERNEL32.DLL_HeapAlloc]
test eax, eax
jne 0x401092
mov edi, dword [sym.imp.KERNEL32.DLL_Sleep]
push 0x80
call edi
push ebx
push 8
push dword [0x42e394]
call dword [sym.imp.KERNEL32.DLL_HeapAlloc]
test eax, eax
je 0x401078
push dword [ebp - 8]
mov dword [0x42c31c], eax
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpyW]
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 0x401147
mov edi, 1
push str._mode
push dword [ebx + edi*4]
call esi
test eax, eax
je 0x4010d9
inc edi
cmp edi, dword [ebp - 4]
jl 0x4010c3
jmp 0x401147
mov edi, dword [ebx + edi*4 + 4]
test edi, edi
je 0x401147
push str.full
push edi
call esi
test eax, eax
jne 0x4010f9
mov dword [0x42c308], 1
jmp 0x401147
push str.fast
push edi
call esi
test eax, eax
jne 0x401111
mov dword [0x42c308], 2
jmp 0x401147
push str.split
push edi
call esi
test eax, eax
jne 0x401129
mov dword [0x42c308], 3
jmp 0x401147
push str.custom
push edi
call esi
mov ecx, dword [0x42c308]
test eax, eax
mov edx, 4
cmove ecx, edx
mov dword [0x42c308], 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 0x4011a1
mov edi, 1
push str._priority
push dword [ebx + edi*4]
call esi
test eax, eax
je 0x40117b
inc edi
cmp edi, dword [ebp - 4]
jl 0x401165
jmp 0x4011a1
mov eax, dword [ebx + edi*4 + 4]
test eax, eax
je 0x4011a1
push 0x421bcc
push eax
call esi
mov ecx, dword [0x42c318]
test eax, eax
mov edx, 1
cmove ecx, edx
mov dword [0x42c318], 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 0x4011ef
mov edi, 1
nop
push str._skip
push dword [ebx + edi*4]
call esi
test eax, eax
je 0x4011d6
inc edi
cmp edi, dword [ebp - 4]
jl 0x4011c0
jmp 0x4011ef
mov eax, dword [ebx + edi*4 + 4]
test eax, eax
je 0x4011ef
push eax
call fcn.0040b238
movzx eax, al
add esp, 4
mov dword [0x42b880], 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 0x401264
mov edi, 1
nop dword [eax]
push str._power
push dword [ebx + edi*4]
call esi
test eax, eax
je 0x401226
inc edi
cmp edi, dword [ebp - 4]
jl 0x401210
jmp 0x401264
mov edi, dword [ebx + edi*4 + 4]
test edi, edi
je 0x401264
push str.restart
push edi
call esi
test eax, eax
jne 0x401246
mov dword [0x42c300], 1
jmp 0x401264
push str.shutdown
push edi
call esi
mov ecx, dword [0x42c300]
test eax, eax
mov edx, 2
cmove ecx, edx
mov dword [0x42c300], 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 0x40129a
mov edi, 1
push str._console
push dword [ebx + edi*4]
call esi
test eax, eax
je 0x401365
inc edi
cmp edi, dword [ebp - 4]
jl 0x401282
xor eax, eax
mov dword [0x42c304], 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 0x4012d8
mov edi, 1
nop
push str._nomutex
push dword [ebx + edi*4]
call esi
test eax, eax
je 0x40136f
inc edi
cmp edi, dword [ebp - 4]
jl 0x4012c0
xor eax, eax
mov dword [0x42c30c], 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 0x401314
mov edi, 1
nop dword [eax]
push str._nonetdrive
push dword [ebx + edi*4]
call esi
test eax, eax
je 0x401379
inc edi
cmp edi, dword [ebp - 4]
jl 0x401300
xor eax, eax
mov dword [0x42c310], 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 0x401354
mov edi, 1
nop dword [eax]
push str._nodel
push dword [ebx + edi*4]
call esi
test eax, eax
je 0x401380
inc edi
cmp edi, dword [ebp - 4]
jl 0x401340
pop edi
pop esi
mov dword [0x42c314], 0
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 1
jmp 0x40129c
mov eax, 1
jmp 0x4012da
mov eax, 1
jmp 0x401316
pop edi
pop esi
mov dword [0x42c314], 1
pop ebx
mov esp, ebp
pop ebp
ret