Function at 0x40a840
Capabilities:
Accept command line arguments
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x448ca0
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x45e5e0]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
push edi
mov eax, dword [0x45e5e0]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
lea eax, [esp + 0x24]
push eax
mov esi, ecx
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, esi
call fcn.00419d81
xor ebx, ebx
push ebx
call fcn.0041b50b
add esp, 4
call fcn.00443480
push ebx
mov edi, 7
push 0x450da0
lea ecx, [esp + 0x50]
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], ebx
mov word [esp + 0x54], bx
call fcn.004044c0
mov dword [esp + 0x90], ebx
push ebx
push 0x450da0
lea ecx, [esp + 0x34]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], ebx
mov word [esp + 0x38], bx
call fcn.004044c0
lea ecx, [esp + 0x20]
mov byte [esp + 0x90], 1
push ecx
mov dword [esp + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
cmp esi, ebx
je 0x40ad87
cmp dword [esp + 0x20], 2
jg 0x40ad87
mov edx, dword [esi + 4]
push edx
lea eax, [esp + 0x68]
push 0x4512f0
push eax
call fcn.00443fd0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x9c], 2
call fcn.004043d0
mov byte [esp + 0x90], 1
cmp dword [esp + 0x7c], 8
jb 0x40a96c
mov ecx, dword [esp + 0x68]
push ecx
call fcn.00411d3b
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [esp + 0x30]
mov esi, 8
cmp dword [esp + 0x44], esi
jae 0x40a986
lea eax, [esp + 0x30]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call fcn.00403b70
sub esp, 0x1c
mov byte [esp + 0xc8], 3
mov ecx, esp
mov dword [esp + 0x50], esp
push 0xa
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.SetupStart
mov word [ecx + 4], bx
call fcn.004044c0
mov byte [esp + 0xc8], 1
call fcn.00443d60
add esp, 0x38
cmp al, bl
je 0x40a9d7
call fcn.0040a500
jmp 0x40aa28
cmp dword [esp + 0x44], esi
mov eax, dword [esp + 0x30]
jae 0x40a9e5
lea eax, [esp + 0x30]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00403b70
sub esp, 0x1c
mov byte [esp + 0xc8], 4
mov ecx, esp
mov dword [esp + 0x54], esp
push str.SetupErr
call fcn.00403b70
mov byte [esp + 0xc8], 1
call fcn.00443d60
add esp, 0x38
cmp al, bl
je 0x40aa4f
call fcn.00409680
cmp dword [esp + 0x44], esi
jb 0x40aa3b
mov edx, dword [esp + 0x30]
push edx
call fcn.00411d3b
add esp, 4
cmp dword [esp + 0x60], esi
jb 0x40add6
mov eax, dword [esp + 0x4c]
push eax
jmp 0x40adce
cmp dword [esp + 0x44], esi
mov eax, dword [esp + 0x30]
jae 0x40aa5d
lea eax, [esp + 0x30]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00403b70
sub esp, 0x1c
mov byte [esp + 0xc8], 5
mov ecx, esp
mov dword [esp + 0x54], esp
push str.RegSync
call fcn.00403b70
mov byte [esp + 0xc8], 1
call fcn.00443d60
add esp, 0x38
cmp al, bl
je 0x40aab7
call fcn.0040a670
lea ecx, [esp + 0x2c]
call fcn.00403bb0
lea ecx, [esp + 0x48]
call fcn.00403bb0
jmp 0x40add6
cmp dword [esp + 0x44], esi
mov eax, dword [esp + 0x30]
jae 0x40aac5
lea eax, [esp + 0x30]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00403b70
sub esp, 0x1c
mov byte [esp + 0xc8], 6
mov ecx, esp
mov dword [esp + 0x54], esp
push str.LanCheck
call fcn.00403b70
mov byte [esp + 0xc8], 1
call fcn.00443d60
add esp, 0x38
cmp al, bl
je 0x40ab52
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [0x4628bc], eax
call fcn.0040a770
mov ecx, dword [0x4628bc]
push ecx
mov byte [esp + 0x1b], al
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [0x4628bc]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esp + 0x17], bl
jne 0x40aaa0
push 1
call fcn.0042ec8a
cmp dword [esp + 0x44], esi
mov eax, dword [esp + 0x30]
jae 0x40ab60
lea eax, [esp + 0x30]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00403b70
sub esp, 0x1c
mov byte [esp + 0xc8], 7
mov ecx, esp
mov dword [esp + 0x54], esp
push str.VMware_Check
call fcn.00403b70
mov byte [esp + 0xc8], 1
call fcn.00443d60
add esp, 0x38
cmp al, bl
je 0x40abef
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [0x4628bc], eax
call fcn.00407970
test eax, eax
mov eax, dword [0x4628bc]
push eax
setne byte [esp + 0x1b]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [0x4628bc]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esp + 0x17], bl
jne 0x40aaa0
push 1
call fcn.0042ec8a
cmp dword [esp + 0x44], esi
mov eax, dword [esp + 0x30]
jae 0x40abfd
lea eax, [esp + 0x30]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00403b70
sub esp, 0x1c
mov byte [esp + 0xc8], 8
mov ecx, esp
mov dword [esp + 0x54], esp
push str.HDDSerial_Check
call fcn.00403b70
mov byte [esp + 0xc8], 1
call fcn.00443d60
add esp, 0x38
cmp al, bl
je 0x40acb4
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push 0x450da0
lea ecx, [esp + 0x68]
mov dword [0x4628bc], eax
call fcn.00403b70
lea edx, [esp + 0x64]
push edx
mov byte [esp + 0x94], 9
call fcn.004074f0
add esp, 4
test eax, eax
mov eax, dword [0x4628bc]
push eax
setne byte [esp + 0x1b]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [0x4628bc]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esp + 0x17], bl
jne 0x40aca6
push 1
call fcn.0042ec8a
lea ecx, [esp + 0x64]
call fcn.00403bb0
jmp 0x40aaa0
cmp dword [esp + 0x44], esi
mov eax, dword [esp + 0x30]
jae 0x40acc2
lea eax, [esp + 0x30]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00403b70
sub esp, 0x1c
mov byte [esp + 0xc8], 0xa
mov ecx, esp
mov dword [esp + 0x54], esp
push str.SetupVerCheck
call fcn.00403b70
mov byte [esp + 0xc8], 1
call fcn.00443d60
add esp, 0x38
cmp al, bl
je 0x40ad6b
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push 0x450da0
lea ecx, [esp + 0x68]
mov dword [0x4628bc], eax
call fcn.00403b70
lea ecx, [esp + 0x64]
mov byte [esp + 0x90], 0xb
call fcn.00409200
mov edx, dword [0x4628bc]
test eax, eax
push edx
setne byte [esp + 0x1b]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x4628bc]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esp + 0x17], bl
jne 0x40aca6
push 1
call fcn.0042ec8a
push 0x926
push str.xxxx
push str.__s__d__Cant_CommandLine.
call fcn.00443b10
add esp, 0xc
jmp 0x40aaa0
push 0x87d
push str.xxxx
push str.__s__d__Argument_does_not_exist
call fcn.00443b10
mov esi, 8
add esp, 0xc
cmp dword [esp + 0x44], esi
jb 0x40adb6
mov ecx, dword [esp + 0x30]
push ecx
call fcn.00411d3b
add esp, 4
cmp dword [esp + 0x60], esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ebx
mov word [esp + 0x30], bx
jb 0x40add6
mov edx, dword [esp + 0x4c]
push edx
call fcn.00411d3b
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.0042e014
mov esp, ebp
pop ebp
ret