Function at 0x401000
Capabilities:
Accept command line arguments

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
push edi
call fcn.00405a23
xor ebp, ebp
push ebp
call dword [sym.imp.ole32.dll_CoInitialize]
call fcn.00404b05
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ecx, eax
call fcn.0040173c
mov esi, eax
mov edi, 0x40a44c
mov ax, word [esi]
cmp ax, bp
je 0x4010b4
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp ax, 0x20
jne 0x401046
inc esi
inc esi
jmp 0x4010ac
mov ecx, esi
call fcn.0040173c
cmp word [0x40a020], 0x2f
push 1
mov esi, eax
pop eax
jne 0x401093
mov cx, word [0x40a022]
cmp cx, 0x53
jne 0x401079
cmp word [0x40a024], bp
jne 0x401093
mov dword [0x40a8b8], eax
jmp 0x401091
cmp cx, 0x44
jne 0x401093
cmp word [0x40a024], 0x3d
jne 0x401093
push 0x40a026
push edi
call ebx
xor eax, eax
cmp eax, ebp
je 0x4010ac
cmp word [0x40a234], bp
jne 0x4010ac
push 0x40a020
push 0x40a234
call ebx
mov ax, word [esi]
cmp ax, bp
jne 0x40103c
cmp word [0x40a234], bp
je 0x4010dc
cmp dword [0x40a8b8], ebp
jne 0x4010d4
mov edx, 0x40a234
mov ecx, str.Unsupported_command:
call fcn.004012df
push 1
pop eax
jmp 0x4012c2
cmp word [0x40a44c], bp
jne 0x401155
lea eax, [esp + 0x10]
mov dword [esp + 0x10], ebp
push eax
push 0x20019
push ebp
push dword [0x408154]
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x401129
mov edx, dword [str.Path32]
mov ecx, dword [esp + 0x10]
push edi
call fcn.00401382
mov esi, eax
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, ebp
jne 0x401155
push edi
push str.ProgramFilesDir
mov edx, 0x408454
mov ecx, 0x80000002
call fcn.004013be
test eax, eax
jne 0x40114e
mov edx, 0x408450
mov ecx, edi
call fcn.004012cc
mov ecx, edi
call fcn.0040143e
mov ecx, edi
call fcn.00401402
cmp dword [0x40a8b8], ebp
je 0x40116e
call fcn.00401798
jmp 0x4012c2
push 1
pop esi
push ebp
push 0x4014cc
push ebp
push 0x64
push dword [esp + 0x44]
mov dword [esp + 0x24], esi
call dword [sym.imp.USER32.dll_CreateDialogParamW]
cmp eax, ebp
mov dword [0x40a8bc], eax
jne 0x401198
mov eax, esi
jmp 0x4012c2
push esi
push dword [esp + 0x38]
call dword [sym.imp.USER32.dll_LoadIconW]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push eax
push esi
push 0x80
push dword [0x40a8bc]
call ebx
push ebp
push ebp
lea eax, [esp + 0x1c]
push ebp
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
cmp eax, ebp
je 0x4012a8
mov edi, dword [sym.imp.USER32.dll_EnableWindow]
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, 0xffffffff
je 0x4012be
mov eax, dword [0x40a8bc]
cmp eax, ebp
je 0x4012be
lea ecx, [esp + 0x14]
push ecx
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x401216
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [0x40a8bc], ebp
je 0x4012be
cmp dword [0x40a444], ebp
je 0x401292
cmp dword [0x40a8b4], ebp
jne 0x401292
call fcn.00401798
push 1
cmp eax, ebp
pop ecx
mov dword [esp + 0x10], eax
mov dword [0x40a8b4], ecx
jne 0x4012a8
mov eax, dword [0x40a8bc]
cmp eax, ebp
je 0x4012be
push str.Close
push ecx
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 1
push 1
push dword [0x40a8bc]
call esi
push eax
call edi
push ebp
push 2
push dword [0x40a8bc]
call esi
push eax
call edi
push 1
push 1
push dword [0x40a8bc]
call esi
push eax
push 0x28
push dword [0x40a8bc]
call ebx
push ebp
push ebp
lea eax, [esp + 0x1c]
push ebp
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
cmp eax, ebp
jne 0x4011da
mov eax, dword [0x40a8bc]
cmp eax, ebp
je 0x4012be
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [0x40a8bc], ebp
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x10