Function at 0x401000
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x158
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [ebp - 0x10c]
call fcn.00401770
push 0x64
push 0x436540
push 0x67
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x64
push 0x436478
push 0x6d
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_LoadStringW]
mov edx, dword [ebp + 8]
push edx
call fcn.004013c0
add esp, 4
mov byte [ebp - 9], 1
mov byte [ebp - 0x105], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
je 0x4012b1
mov dword [ebp - 0x110], 0
jmp 0x40109f
mov ecx, dword [ebp - 0x110]
add ecx, 1
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp - 0x110]
cmp edx, dword [ebp - 4]
jge 0x4012b1
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x104]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x120], edx
mov dword [ebp - 0x124], 0x42fe68
mov eax, dword [ebp - 0x124]
mov cx, word [eax]
mov word [ebp - 0x126], cx
mov edx, dword [ebp - 0x120]
cmp cx, word [edx]
jne 0x401133
cmp word [ebp - 0x126], 0
je 0x401127
mov eax, dword [ebp - 0x124]
mov cx, word [eax + 2]
mov word [ebp - 0x128], cx
mov edx, dword [ebp - 0x120]
cmp cx, word [edx + 2]
jne 0x401133
add dword [ebp - 0x124], 4
add dword [ebp - 0x120], 4
cmp word [ebp - 0x128], 0
jne 0x4010cd
mov dword [ebp - 0x12c], 0
jmp 0x40113e
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov dword [ebp - 0x130], ecx
cmp dword [ebp - 0x130], 0
je 0x4011fc
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x104]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x138], 0x42fe70
mov edx, dword [ebp - 0x138]
mov ax, word [edx]
mov word [ebp - 0x13a], ax
mov ecx, dword [ebp - 0x134]
cmp ax, word [ecx]
jne 0x4011dc
cmp word [ebp - 0x13a], 0
je 0x4011d0
mov edx, dword [ebp - 0x138]
mov ax, word [edx + 2]
mov word [ebp - 0x13c], ax
mov ecx, dword [ebp - 0x134]
cmp ax, word [ecx + 2]
jne 0x4011dc
add dword [ebp - 0x138], 4
add dword [ebp - 0x134], 4
cmp word [ebp - 0x13c], 0
jne 0x401176
mov dword [ebp - 0x140], 0
jmp 0x4011e7
sbb edx, edx
sbb edx, 0xffffffff
mov dword [ebp - 0x140], edx
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0
jne 0x401200
mov byte [ebp - 9], 0
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x104]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x14c], str._test_install_failed
mov ecx, dword [ebp - 0x14c]
mov dx, word [ecx]
mov word [ebp - 0x14e], dx
mov eax, dword [ebp - 0x148]
cmp dx, word [eax]
jne 0x401285
cmp word [ebp - 0x14e], 0
je 0x401279
mov ecx, dword [ebp - 0x14c]
mov dx, word [ecx + 2]
mov word [ebp - 0x150], dx
mov eax, dword [ebp - 0x148]
cmp dx, word [eax + 2]
jne 0x401285
add dword [ebp - 0x14c], 4
add dword [ebp - 0x148], 4
cmp word [ebp - 0x150], 0
jne 0x40121f
mov dword [ebp - 0x154], 0
jmp 0x401290
sbb ecx, ecx
sbb ecx, 0xffffffff
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x158], edx
cmp dword [ebp - 0x158], 0
jne 0x4012ac
mov byte [ebp - 0x105], 1
jmp 0x401090
movzx eax, byte [ebp - 9]
neg eax
sbb eax, eax
and eax, 5
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401660
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x4012f2
mov dword [ebp - 0x114], 0
lea ecx, [ebp - 0x10c]
call fcn.00401710
mov eax, dword [ebp - 0x114]
jmp 0x4013b0
movzx edx, byte [ebp - 9]
push edx
lea ecx, [ebp - 0x100]
call fcn.00403290
mov al, byte [ebp - 0x105]
mov byte [ebp - 0x32], al
push 1
sub esp, 8
mov ecx, esp
mov dword [ebp - 0x118], esp
push 0x12c
push 0x21c
call fcn.004016e0
mov ecx, dword [ebp - 8]
push ecx
lea ecx, [ebp - 0x100]
call fcn.004033a0
push 0x6d
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov dword [ebp - 0x10], eax
push 0
push 0
push 0
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x401385
lea ecx, [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x401383
lea ecx, [ebp - 0x2c]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [ebp - 0x2c]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x401345
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0x100]
call fcn.00403380
lea ecx, [ebp - 0x10c]
call fcn.00401710
mov eax, dword [ebp - 0x11c]
mov esp, ebp
pop ebp
ret 0x10