Function at 0x402720
Capabilities:
Accept command line arguments
Delete service
Query or enumerate registry value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xa0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
call dword [sym.imp.comctl32.dll_InitCommonControls]
call dword [sym.imp.kernel32.dll_GetCommandLineW]
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x2c]
call fcn.004011e0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], eax
dec eax
jg 0x402788
mov dword [esp + 4], 0
mov dword [esp], 5
call sub.msi.dll_MsiSetInternalUI
push eax
push eax
mov eax, 1
call fcn.00401830
lea esi, [esi]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x38], esi
mov edx, dword [esi + 4]
mov ax, word [edx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x402855
lea eax, [edx + 2]
mov edx, 0x408243
call fcn.00401350
test eax, eax
je 0x403075
lea eax, [ebp - 0x24]
mov esi, dword [esi + 8]
mov dword [ebp - 0x1c], 0
mov dword [esp + 8], eax
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerRunOnceEntries
mov dword [esp], 0x80000002
mov dword [ebp - 0x20], 0
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
sub esp, 0xc
test eax, eax
jne 0x402fc0
lea eax, [ebp - 0x20]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov dword [esp + 8], 0
mov eax, dword [sym.imp.advapi32.dll_RegQueryValueExW]
mov dword [esp + 4], esi
mov dword [ebp - 0x3c], eax
call eax
sub esp, 0x18
test eax, eax
jne 0x403464
cmp dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x24]
je 0x4033c5
mov dword [esp], edx
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov dword [ebp - 0x4c], 1
push esi
jmp 0x402eb7
mov dword [ebp - 0x3c], 3
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x58], 5
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x5c], 0
mov word [ebp - 0x86], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x54], 0
mov edi, 1
lea esi, [esi]
nop
lea esi, [edi*4]
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi]
jne 0x4029a8
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
je 0x402970
mov edx, str.umtgl
call fcn.00401350
test eax, eax
je 0x403c02
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
jne 0x403cb6
mov eax, dword [ebx]
mov dword [ebp - 0x78], 1
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x6c], 1
jmp 0x40298c
add eax, 2
mov edx, str.regserver
call fcn.00401350
test eax, eax
je 0x402a18
mov dword [ebp - 0x40], 1
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402a50
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
jmp 0x402900
mov edx, dword [ebx]
test edx, edx
je 0x402c98
mov eax, edx
shr eax, 0x10
je 0x402c68
mov dword [esp + 4], 0xffffffff
mov dword [esp], edx
mov dword [ebp - 0x44], edx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push ecx
push ecx
jne 0x402c88
mov eax, dword [ebp - 0x44]
call fcn.004015c0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x40291a
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402928
add eax, 2
mov edx, str.unregserver
call fcn.00401350
test eax, eax
je 0x402ca8
inc edi
mov dword [ebp - 0x48], 1
cmp edi, dword [ebp - 0x3c]
jl 0x402996
mov al, byte [ebp - 0x60]
mov edi, dword [ebp - 0x4c]
and eax, edi
mov edx, dword [ebp - 0x54]
xor eax, 1
mov esi, dword [ebp - 0x34]
and eax, edx
mov dword [esp + 4], 0
mov byte [ebp - 0x54], al
mov eax, dword [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0x5c], esi
call sub.msi.dll_MsiSetInternalUI
test esi, esi
push ecx
push ecx
je 0x4032a5
mov edx, esi
mov ebx, 1
lea esi, [esi]
cmp word [edx + 4], 0
lea ecx, [edx + 4]
je 0x402d88
mov eax, ecx
add eax, 2
cmp word [eax], 0
jne 0x402aa0
sub eax, ecx
sar eax, 1
add eax, 3
mov edx, dword [edx]
add ebx, eax
test edx, edx
jne 0x402a90
add ebx, ebx
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_malloc]
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x58], eax
mov edi, eax
jmp 0x402ada
mov ebx, dword [ebx]
test ebx, ebx
je 0x402ba8
lea edx, [ebx + 4]
mov dword [esp + 4], 0x3d
mov dword [esp], edx
mov dword [ebp - 0x38], edx
call dword [sym.imp.ucrtbase.dll_wcschr]
mov esi, eax
test eax, eax
je 0x402ad0
lea ecx, [edi + 2]
mov word [edi], 0x20
mov edx, dword [ebp - 0x38]
mov edi, eax
sub edi, edx
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp], ecx
mov dword [ebp - 0x38], ecx
call sub.ucrtbase.dll_memcpy
mov ecx, dword [ebp - 0x38]
add ecx, edi
lea edi, [esi + 2]
mov dword [ebp - 0x38], ecx
mov word [ecx], 0x3d
mov dword [esp + 4], 0x20
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_wcschr]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x402d70
mov word [ecx + 2], 0x22
lea edx, [ecx + 4]
cmp word [esi + 2], 0
je 0x402b96
mov eax, edi
lea esi, [esi]
mov ecx, eax
add eax, 2
cmp word [eax], 0
jne 0x402b60
sub ecx, esi
mov dword [esp], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x38], edx
call sub.ucrtbase.dll_memcpy
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x3c]
add edx, ecx
test esi, esi
je 0x402d80
mov word [edx], 0x22
lea edi, [edx + 2]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x402ada
test byte [section..data], 8
mov word [edi], 0
jne 0x402d92
cmp byte [ebp - 0x54], 0
jne 0x402dfd
mov ebx, dword [ebp - 0x68]
test ebx, ebx
jne 0x402e70
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
jne 0x40308a
mov ebx, dword [ebp - 0x4c]
test ebx, ebx
jne 0x40324c
mov ecx, dword [ebp - 0x70]
test ecx, ecx
jne 0x402fd4
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
jne 0x4032b1
mov ebx, dword [ebp - 0x40]
test ebx, ebx
jne 0x403644
mov ecx, dword [ebp - 0x48]
test ecx, ecx
jne 0x403476
mov ecx, dword [ebp - 0x90]
test ecx, ecx
jne 0x403948
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x402777
test byte [section..data], 1
je 0x402fc0
mov dword [esp + 0xc], str.Unknown_function__ignoring_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 0
call fcn.004017e0
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x4c], eax
jmp 0x402eb7
and edx, 0xffff
mov dword [esp], str._04x
mov dword [esp + 4], edx
call fcn.00401c20
jmp 0x4029e3
mov eax, str._invalid_
jmp 0x4029e3
mov eax, str._null_
jmp 0x4029e3
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402928
add eax, 2
mov edx, str.unregister
call fcn.00401350
test eax, eax
jne 0x402a3f
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402928
add eax, 2
mov edx, str.unreg
call fcn.00401350
test eax, eax
jne 0x402a3f
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402928
add eax, 2
mov edx, 0x40830f
call fcn.00401470
test eax, eax
je 0x402eee
mov ecx, dword [ebx]
mov ax, word [ecx]
mov edx, eax
and edx, 0xfffffffd
cmp dx, 0x2d
je 0x402ec4
mov edx, ecx
mov ebx, 8
test ax, ax
je 0x403198
mov eax, edx
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x402d48
sub eax, edx
sar eax, 1
cmp ebx, eax
jge 0x403198
lea eax, [ecx + ebx*2]
mov dword [ebp - 0x54], 1
mov dword [ebp - 0x50], eax
jmp 0x40298c
cmp word [esi + 2], 0
lea edx, [ecx + 2]
jne 0x402b58
nop
mov edi, edx
jmp 0x402ad0
mov eax, 3
jmp 0x402ab0
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x4033a9
shr eax, 0x10
je 0x403058
mov esi, dword [ebp - 0x58]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push ecx
push ecx
jne 0x403337
mov eax, esi
call fcn.004015c0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.properties_____s_n
mov dword [esp + 8], str.build_properties
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
cmp byte [ebp - 0x54], 0
je 0x402bc4
mov eax, dword [ebp - 0x50]
cmp word [eax], 0
je 0x402e1f
nop
add eax, 2
cmp word [eax], 0
jne 0x402e08
mov edx, dword [ebp - 0x50]
sub eax, edx
cmp eax, 0x4c
je 0x40355b
mov eax, dword [ebp - 0x58]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call sub.msi.dll_MsiInstallProductW
mov dword [ebp - 0x4c], eax
cmp eax, 2
push esi
push esi
jne 0x402eb7
mov eax, dword [ebp - 0x50]
call fcn.00401a70
mov ebx, eax
test eax, eax
je 0x40393c
mov eax, dword [ebp - 0x58]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msi.dll_MsiInstallProductW
push esi
push esi
mov esi, eax
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x4c], esi
jmp 0x402eb7
mov eax, dword [ebp - 0x50]
cmp word [eax], 0
je 0x402e97
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x402e80
mov ecx, dword [ebp - 0x50]
sub eax, ecx
cmp eax, 0x4c
je 0x402f96
mov eax, dword [ebp - 0x74]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call sub.msi.dll_MsiReinstallProductW
cmp eax, 2
push edi
push edi
je 0x403879
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
lea eax, [ecx + 2]
mov edx, 0x40830f
mov dword [ebp - 0x44], ecx
call fcn.00401470
mov edx, dword [ebx]
test eax, eax
mov ecx, dword [ebp - 0x44]
mov ax, word [edx]
je 0x402d33
mov ebx, 2
jmp 0x402d38
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402928
add eax, 2
mov edx, str.package
call fcn.00401470
test eax, eax
jne 0x402d1d
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402928
add eax, 2
mov edx, 0x408319
call fcn.00401350
test eax, eax
je 0x403651
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
jne 0x4035dc
mov eax, dword [ebx]
mov edx, str.ACTIONADMIN
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x34]
call fcn.00401b80
test byte [section..data], 1
jne 0x40359b
mov dword [ebp - 0x8c], 1
mov dword [ebp - 0x60], 1
mov dword [ebp - 0x54], 1
jmp 0x40298c
lea eax, [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
push edx
push edx
jne 0x402e97
test byte [section..data], 1
jne 0x403276
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x4c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
lea ecx, [ebp - 0x1c]
mov edx, str.DllRegisterServer
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x1c], 0
call fcn.00402670
call eax
test eax, eax
mov eax, dword [ebp - 0x64]
js 0x4038bc
test eax, eax
je 0x403547
shr eax, 0x10
je 0x40389f
mov esi, dword [ebp - 0x64]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push edi
push edi
jne 0x403932
mov eax, esi
call fcn.004015c0
mov dword [esp + 4], eax
mov dword [esp], str.Successfully_registered_dll__s_n
call fcn.004017c0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x402eb7
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FreeLibrary]
push ebx
jmp 0x402eb7
mov eax, dword [ebp - 0x58]
mov dword [esp], str._04x
and eax, 0xffff
mov dword [esp + 4], eax
call fcn.00401c20
jmp 0x402dcb
cmp dword [ebp - 0x3c], 3
je 0x40320b
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
jmp 0x402855
mov edx, dword [ebp - 0x5c]
test edx, edx
je 0x403862
mov ebx, 1
lea esi, [esi]
cmp word [edx + 4], 0
lea ecx, [edx + 4]
je 0x4031c7
mov eax, ecx
add eax, 2
cmp word [eax], 0
jne 0x4030b0
sub eax, ecx
sar eax, 1
inc eax
mov edx, dword [edx]
add ebx, eax
test edx, edx
jne 0x4030a0
add ebx, ebx
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_malloc]
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
lea esi, [esi]
mov bx, word [edi + 4]
lea edx, [edi + 4]
test bx, bx
je 0x4031d1
mov eax, edx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x4030f8
sub eax, edx
mov ecx, eax
sar ecx, 1
cmp eax, 2
mov esi, ecx
jbe 0x403184
mov ecx, dword [ebp - 0x38]
lea esi, [esi]
dec esi
add ecx, 2
add edx, 2
mov word [ecx - 2], bx
cmp esi, 1
je 0x403130
mov bx, word [edx]
test bx, bx
jne 0x403118
mov esi, dword [ebp - 0x38]
add eax, esi
mov word [ecx], 0
mov edx, eax
mov esi, dword [edi]
test esi, esi
je 0x403155
mov word [edx], 0x3b
lea eax, [edx + 2]
mov edi, dword [edi]
mov dword [ebp - 0x38], eax
test edi, edi
jne 0x4030e0
mov edx, eax
xor eax, eax
mov word [edx], 0
mov ax, word [ebp - 0x86]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp + 8], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp 0x4048c0
mov edx, dword [ebp - 0x38]
add eax, edx
test ecx, ecx
mov edx, eax
je 0x40313c
mov ecx, dword [ebp - 0x38]
jmp 0x403135
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
jne 0x403341
mov eax, dword [ebx]
mov dword [ebp - 0x54], 1
mov dword [ebp - 0x50], eax
jmp 0x40298c
mov eax, 1
jmp 0x4030be
mov edx, dword [ebp - 0x38]
jmp 0x40313c
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x2c]
mov eax, edi
call fcn.004011e0
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], eax
cmp eax, 3
push ebx
jne 0x403e2a
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
mov edx, dword [eax + 4]
mov ax, word [edx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x40284e
lea eax, [edx + 2]
mov edx, str.Embedding
call fcn.00401350
test eax, eax
je 0x4033b3
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 8]
call fcn.00401cf0
mov dword [ebp - 0x4c], eax
jmp 0x402eb7
mov eax, dword [ebp - 0x58]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp + 8], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp 0x4048e8
mov dword [esp + 0xc], str.Product_code_treatment_not_implemented_yet_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 0
call fcn.004017e0
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x4c], eax
jmp 0x402eb7
mov dword [ebp - 0x58], 0
jmp 0x402bba
lea ecx, [ebp - 0x1c]
mov edx, str.DllUnregisterServer
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x1c], 0
call fcn.00402670
call eax
test eax, eax
mov eax, dword [ebp - 0x64]
js 0x4034f6
test eax, eax
je 0x403b74
shr eax, 0x10
je 0x403a3e
mov esi, dword [ebp - 0x64]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push edi
push edi
jne 0x403b60
mov eax, esi
call fcn.004015c0
mov dword [esp + 4], eax
mov dword [esp], str.Successfully_unregistered_dll__s_n
call fcn.004017c0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x40332c
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FreeLibrary]
push esi
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x4c], eax
jmp 0x402eb7
mov eax, str._invalid_
jmp 0x402dcb
mov esi, dword [ebx]
test esi, esi
je 0x403551
mov eax, esi
shr eax, 0x10
je 0x403917
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push edx
push edx
jne 0x40390d
mov eax, esi
call fcn.004015c0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x4031b6
mov eax, str._null_
jmp 0x402dcb
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3c], 3
mov dword [ebp - 0x38], eax
jmp 0x402855
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
cmp word [ecx], 0
je 0x403e1c
mov ebx, ecx
add ebx, 2
cmp word [ebx], 0
jne 0x4033d6
sub ebx, ecx
lea eax, [ebx + 2]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], edx
mov dword [esp], eax
mov dword [ebp - 0x40], ecx
call dword [sym.imp.ucrtbase.dll_malloc]
mov ecx, dword [ebp - 0x40]
mov edi, eax
test eax, eax
mov edx, dword [ebp - 0x44]
je 0x402838
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [ebp - 0x40], edx
call sub.ucrtbase.dll_memcpy
lea eax, [ebp - 0x20]
mov word [edi + ebx], 0x20
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x40]
add eax, edi
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + 4], esi
mov dword [esp], edx
mov eax, dword [ebp - 0x3c]
call eax
sub esp, 0x18
test eax, eax
je 0x4031d9
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
push edi
jmp 0x402fc0
mov dword [esp + 8], 1
mov dword [esp + 4], str.ServicesActive
mov dword [esp], 0
call dword [sym.imp.advapi32.dll_OpenSCManagerW]
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x403bb4
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0x4081d2
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_OpenServiceW]
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x403b88
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_DeleteService]
mov dword [ebp - 0x4c], 0
test eax, eax
push edx
je 0x403ade
mov dword [esp], esi
mov esi, dword [sym.imp.advapi32.dll_CloseServiceHandle]
call esi
push edi
mov dword [esp], ebx
call esi
push ebx
jmp 0x402eb7
test eax, eax
je 0x403e40
shr eax, 0x10
je 0x403b1c
mov esi, dword [ebp - 0x64]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push edx
push edx
jne 0x4043fa
mov eax, esi
call fcn.004015c0
mov dword [esp + 4], eax
mov dword [esp], str.Failed_to_unregister_dll__s_n
call fcn.00402460
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x70], eax
jmp 0x40332c
mov eax, str._null_
jmp 0x40302e
mov eax, str._null_
jmp 0x403378
lea eax, [ebp - 0x1c]
mov esi, dword [ebp - 0x50]
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
push edi
push edi
jne 0x402e1f
mov eax, dword [ebp - 0x58]
mov dword [ebp + 8], esi
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x10], 5
mov dword [ebp + 0xc], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp 0x4048f0
mov dword [esp + 0xc], str.Administrative_installs_are_not_currently_supported_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 0
call fcn.004017e0
mov dword [ebp - 0x8c], 1
mov dword [ebp - 0x60], 1
mov dword [ebp - 0x54], 1
jmp 0x40298c
mov esi, dword [ebx]
test esi, esi
je 0x403b6a
mov eax, esi
shr eax, 0x10
je 0x403a5b
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push ecx
push ecx
jne 0x403b7e
mov eax, esi
call fcn.004015c0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x402f5a
call fcn.00402510
mov dword [ebp - 0x4c], eax
jmp 0x402eb7
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402928
add eax, 2
mov edx, 0x40836d
call fcn.00401470
test eax, eax
je 0x40375f
mov edx, dword [ebx]
cmp word [edx], 0
je 0x403730
mov eax, edx
add eax, 2
cmp word [eax], 0
jne 0x403686
sub eax, edx
mov ecx, eax
sar ecx, 1
cmp eax, 4
mov dword [ebp - 0x44], ecx
jle 0x403a2c
mov dword [ebp - 0x50], edi
mov eax, 2
mov edi, dword [ebp - 0x74]
mov cx, word [edx + eax*2]
lea edx, [ecx - 0x41]
cmp dx, 0x35
ja case.0x4036bf.1
and edx, 0xffff
jmp dword [edx*4 + 0x40864c]
and ecx, 0xffff
mov dword [esp], str.Unknown_option___c__in_Repair_mode_n
mov dword [esp + 4], ecx
mov dword [ebp - 0x68], eax
call fcn.00402460
mov eax, dword [ebp - 0x68]
inc eax
cmp eax, dword [ebp - 0x44]
jge 0x40372a
mov edx, dword [ebx]
jmp 0x4036ac
or edi, 0x400
jmp 0x4036e2
or edi, 0x100
jmp 0x4036e2
or edi, 0x200
jmp 0x4036e2
or edi, 2
jmp 0x4036e2
or edi, 4
jmp 0x4036e2
or edi, 0x80
jmp 0x4036e2
or edi, 8
jmp 0x4036e2
or edi, 0x10
jmp 0x4036e2
or edi, 0x20
jmp 0x4036e2
or edi, 0x40
jmp 0x4036e2
mov dword [ebp - 0x74], edi
mov edi, dword [ebp - 0x50]
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
jne 0x403a76
mov eax, dword [ebx]
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x50], eax
jmp 0x40298c
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402928
add eax, 2
mov edx, 0x408394
call fcn.00401470
test eax, eax
je 0x403952
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x4037d8
add eax, 2
mov edx, 0x408394
call fcn.00401470
test eax, eax
je 0x4037d8
mov eax, dword [ebx]
add eax, 4
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
cmp word [eax], 0
je 0x4037df
test byte [section..data], 8
jne 0x403804
mov edx, str.REMOVEALL
lea eax, [ebp - 0x34]
call fcn.00401b80
mov dword [ebp - 0x54], 1
jmp 0x40298c
mov eax, dword [ebp - 0x50]
test eax, eax
jne 0x4037ad
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
mov eax, dword [eax + esi + 4]
mov dword [ebp - 0x50], eax
je 0x4037bf
test eax, eax
je 0x404404
mov eax, dword [ebp - 0x50]
shr eax, 0x10
je 0x403b43
mov esi, dword [ebp - 0x50]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push ebx
push ebx
jne 0x40440e
mov eax, esi
call fcn.004015c0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.PackageName___s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x4037bf
mov dword [esp], 2
call dword [sym.imp.ucrtbase.dll_malloc]
mov edx, eax
mov dword [ebp - 0x3c], eax
jmp 0x403155
mov eax, dword [ebp - 0x50]
call fcn.00401a70
mov ebx, eax
test eax, eax
je 0x40393c
mov eax, dword [ebp - 0x74]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msi.dll_MsiReinstallProductW
jmp 0x402e5c
mov eax, dword [ebp - 0x64]
mov dword [esp], str._04x
and eax, 0xffff
mov dword [esp + 4], eax
call fcn.00401c20
jmp 0x40302e
test eax, eax
je 0x403b12
shr eax, 0x10
je 0x403af5
mov esi, dword [ebp - 0x64]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push edx
push edx
jne 0x403b39
mov eax, esi
call fcn.004015c0
mov dword [esp + 4], eax
mov dword [esp], str.Failed_to_register_dll__s_n
call fcn.00402460
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x4c], eax
jmp 0x402eb7
mov eax, str._invalid_
jmp 0x403378
and esi, 0xffff
mov dword [esp], str._04x
mov dword [esp + 4], esi
call fcn.00401c20
jmp 0x403378
mov eax, str._invalid_
jmp 0x40302e
mov dword [ebp - 0x4c], 2
jmp 0x402eb7
call fcn.00404820
jmp 0x402eb4
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402928
add eax, 2
mov edx, str.uninstall
call fcn.00401350
test eax, eax
jne 0x403786
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402928
add eax, 2
mov edx, 0x4083c8
call fcn.00401470
test eax, eax
je 0x403de0
mov edx, dword [ebx]
cmp word [edx], 0
je 0x403db5
mov eax, edx
add eax, 2
cmp word [eax], 0
jne 0x4039ae
sub eax, edx
mov ecx, eax
sar ecx, 1
cmp eax, 4
mov dword [ebp - 0x44], ecx
jle 0x403db5
mov dword [ebp - 0x50], esi
mov ecx, 2
mov esi, ebx
mov ebx, dword [ebp - 0x78]
jmp 0x4039f9
cmp ax, 0x4d
je 0x403da8
cmp ax, 0x55
jne 0x403a0f
mov ebx, 1
inc ecx
cmp ecx, dword [ebp - 0x44]
jge 0x403daf
mov edx, dword [esi]
mov ax, word [edx + ecx*2]
cmp ax, 0x6d
je 0x403da8
jbe 0x4039d8
cmp ax, 0x75
je 0x4039e8
and eax, 0xffff
mov dword [esp], str.Unknown_option___c__in_Advertise_mode_n
mov dword [esp + 4], eax
mov dword [ebp - 0x6c], ecx
call fcn.00402460
mov ecx, dword [ebp - 0x6c]
jmp 0x4039ed
jne 0x403730
mov dword [ebp - 0x74], 0x2aa
jmp 0x403730
mov eax, dword [ebp - 0x64]
mov dword [esp], str._04x
and eax, 0xffff
mov dword [esp + 4], eax
call fcn.00401c20
jmp 0x40330b
and esi, 0xffff
mov dword [esp], str._04x
mov dword [esp + 4], esi
call fcn.00401c20
jmp 0x403613
mov esi, dword [ebx]
test esi, esi
je 0x403bf8
mov eax, esi
shr eax, 0x10
je 0x403bdd
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push edx
push edx
jne 0x4043f0
mov eax, esi
call fcn.004015c0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x40374e
mov dword [esp], str.Failed_to_delete_MSI_service_n
call fcn.00402460
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
jmp 0x4034df
mov eax, dword [ebp - 0x64]
mov dword [esp], str._04x
and eax, 0xffff
mov dword [esp + 4], eax
call fcn.00401c20
jmp 0x4038f2
mov eax, str._null_
jmp 0x4038f2
mov eax, dword [ebp - 0x64]
mov dword [esp], str._04x
and eax, 0xffff
mov dword [esp + 4], eax
call fcn.00401c20
jmp 0x40352c
mov eax, str._invalid_
jmp 0x4038f2
mov eax, dword [ebp - 0x50]
mov dword [esp], str._04x
and eax, 0xffff
mov dword [esp + 4], eax
call fcn.00401c20
jmp 0x403835
mov eax, str._invalid_
jmp 0x40330b
mov eax, str._null_
jmp 0x403613
mov eax, str._null_
jmp 0x40330b
mov eax, str._invalid_
jmp 0x403613
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 0x424
je 0x403bcb
mov dword [esp], str.Failed_to_open_MSI_service_n
call fcn.00402460
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov esi, dword [sym.imp.advapi32.dll_CloseServiceHandle]
jmp 0x4034eb
mov dword [esp], str.Failed_to_open_service_control_manager_n
call fcn.00402460
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
jmp 0x402eb7
mov dword [ebp - 0x4c], 0
mov esi, dword [sym.imp.advapi32.dll_CloseServiceHandle]
jmp 0x4034eb
and esi, 0xffff
mov dword [esp], str._04x
mov dword [esp + 4], esi
call fcn.00401c20
jmp 0x403aad
mov eax, str._null_
jmp 0x403aad
mov edx, 0x4083f5
mov eax, dword [ebx]
call fcn.00401350
test eax, eax
je 0x403c79
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
jne 0x403c44
mov eax, dword [ebx]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x6c], 1
jmp 0x40298c
mov eax, dword [ebx]
call fcn.00401c80
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x403c2c
mov edx, 0x4083f7
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
je 0x403d23
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
jne 0x403cee
mov edx, dword [ebx]
lea eax, [ebp - 0x30]
call fcn.00401b80
jmp 0x40298c
mov eax, dword [ebx]
call fcn.00401c80
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x402958
mov eax, dword [ebx]
call fcn.00401c80
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x403ca7
mov edx, 0x4083f9
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
jne 0x403e8c
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x403e4a
add eax, 2
mov edx, 0x4083fb
call fcn.00401470
test eax, eax
je 0x403e4a
mov ecx, dword [ebx]
mov eax, ecx
jmp 0x403d67
add eax, 2
cmp word [eax], 0
jne 0x403d64
sub eax, ecx
mov edx, 2
sar eax, 1
mov dword [ebp - 0x44], edi
mov ebx, eax
mov eax, dword [ebp - 0x5c]
cmp edx, ebx
jge 0x40436d
mov di, word [ecx + edx*2]
sub edi, 0x21
cmp di, 0x56
ja case.0x403d9d.1
and edi, 0xffff
jmp dword [edi*4 + 0x408724]
xor ebx, ebx
jmp 0x4039ed
mov dword [ebp - 0x78], ebx
mov esi, dword [ebp - 0x50]
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
jne 0x403de7
mov eax, dword [ebx]
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x50], eax
jmp 0x40298c
mov eax, dword [ebx]
jmp 0x402928
mov eax, dword [ebx]
call fcn.00401c80
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x403dcf
mov dword [ebp - 0x38], 2
xor ebx, ebx
jmp 0x4033e7
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x3c], 1
mov dword [ebp - 0x38], eax
jg 0x402855
jmp 0x402761
mov eax, str._null_
jmp 0x40352c
mov edx, 0x408425
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
je 0x403f10
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
jne 0x403ed8
mov eax, dword [ebx]
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x94], eax
jmp 0x40298c
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
jne 0x403f84
mov ebx, dword [ebx]
xor eax, eax
jmp 0x403ec0
imul eax, eax, 0xa
and edx, 0xffff
add ebx, 2
lea eax, [eax + edx - 0x30]
mov dx, word [ebx]
lea ecx, [edx - 0x30]
cmp cx, 9
jbe 0x403eb0
mov word [ebp - 0x86], ax
jmp 0x40298c
mov eax, dword [ebx]
call fcn.00401c80
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x403e78
mov edx, str.update
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
jne 0x403e5e
mov eax, dword [ebx]
mov dx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x403fbc
add eax, 2
mov edx, 0x40842e
call fcn.00401470
test eax, eax
je 0x403fbc
mov edx, dword [ebx]
mov eax, edx
jmp 0x403f50
add eax, 2
cmp word [eax], 0
jne 0x403f4d
sub eax, edx
cmp eax, 4
je 0x403f6e
lea eax, [edx + 4]
mov edx, 0x408430
call fcn.00401350
test eax, eax
je 0x403fe5
mov dword [0x40a004], 1
mov dword [ebp - 0x58], 2
jmp 0x40298c
mov eax, dword [ebx]
call fcn.00401c80
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x403eaa
mov edx, str.passive
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
je 0x40401f
mov edx, str.REBOOTPROMPT_S_
lea eax, [ebp - 0x34]
call fcn.00401b80
mov dword [ebp - 0x58], 0x63
jmp 0x40298c
mov eax, dword [ebx]
mov edx, str.uiet
add eax, 4
call fcn.00401350
test eax, eax
jne 0x403f6e
mov eax, dword [ebx]
mov edx, 0x408437
add eax, 4
call fcn.00401350
test eax, eax
je 0x404170
mov dword [ebp - 0x58], 4
jmp 0x40298c
mov edx, 0x4084aa
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
je 0x40408d
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
je 0x40407c
mov eax, dword [ebx]
call fcn.00401c80
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
mov eax, dword [ebx]
mov dword [ebp - 0x70], 1
mov dword [ebp - 0x64], eax
jmp 0x40298c
mov edx, 0x4084ac
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
je 0x4040fb
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
je 0x4040ea
mov eax, dword [ebx]
call fcn.00401c80
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
mov eax, dword [ebx]
mov dword [ebp - 0x7c], 1
mov dword [ebp - 0x64], eax
jmp 0x40298c
mov edx, str.help
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
jne 0x4041dc
mov edx, 0x4084b3
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
jne 0x4041dc
mov edx, 0x4083f5
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
je 0x40418f
test byte [section..data], 1
mov dword [ebp - 0x80], 1
je 0x40298c
mov dword [esp + 0xc], str.Unknown_parameter__m_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 0
call fcn.004017e0
jmp 0x40298c
mov eax, dword [ebx]
mov edx, 0x40836d
add eax, 4
call fcn.00401350
test eax, eax
je 0x4041e3
mov dword [ebp - 0x58], 0x85
jmp 0x40298c
mov edx, 0x4084cb
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
je 0x404202
test byte [section..data], 1
mov dword [ebp - 0x80], 1
je 0x40298c
mov dword [esp + 0xc], str.Unknown_parameter__D_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 0
call fcn.004017e0
jmp 0x40298c
xor eax, eax
call fcn.00401830
mov eax, dword [ebx]
mov edx, 0x408439
add eax, 4
call fcn.00401350
test eax, eax
je 0x404221
mov dword [ebp - 0x58], 0x82
jmp 0x40298c
mov edx, 0x4084e3
mov eax, dword [ebx]
call fcn.004015a0
test eax, eax
je 0x404253
mov dword [ebp - 0x90], 1
jmp 0x40298c
mov eax, dword [ebx]
mov edx, 0x40843c
add eax, 4
call fcn.00401470
test eax, eax
mov eax, dword [ebx]
jne 0x404262
add eax, 4
call fcn.00401c80
mov dword [esp], str.Unknown_option___s__for_UI_level_n
mov dword [esp + 4], eax
call fcn.00402460
jmp 0x40298c
mov edx, dword [ebx]
lea eax, [ebp - 0x34]
call fcn.00401b80
jmp 0x40298c
lea ebx, [eax + 6]
mov esi, 3
cmp word [ebx], 0
je 0x4042de
mov edx, 0x40843e
mov eax, ebx
call fcn.00401470
test eax, eax
je 0x404286
or esi, 0x80
mov edx, 0x408440
mov eax, ebx
call fcn.00401470
test eax, eax
je 0x404299
or esi, 0x40
mov edx, 0x408442
mov eax, ebx
call fcn.00401470
test eax, eax
je 0x4042d9
test byte [section..data], 1
je 0x4042d6
mov dword [esp + 0xc], 0x408444
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 0
call fcn.004017e0
or esi, 0x20
add ebx, 2
jmp 0x40426a
mov dword [ebp - 0x58], esi
jmp 0x40298c
or eax, 4
inc edx
jmp 0x403d7e
or ah, 0x10
inc edx
jmp 0x403d7e
or eax, 8
inc edx
jmp 0x403d7e
or ah, 2
inc edx
jmp 0x403d7e
or ah, 4
inc edx
jmp 0x403d7e
or al, 0x80
inc edx
jmp 0x403d7e
or eax, 1
inc edx
jmp 0x403d7e
or eax, 0x10
inc edx
jmp 0x403d7e
or eax, 2
inc edx
jmp 0x403d7e
or ah, 8
inc edx
jmp 0x403d7e
or ah, 1
inc edx
jmp 0x403d7e
or dword [ebp - 0x84], 1
inc edx
jmp 0x403d7e
mov eax, 0x7fdf
inc edx
jmp 0x403d7e
or dword [ebp - 0x84], 2
inc edx
jmp 0x403d7e
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x5c], eax
inc edi
cmp edi, dword [ebp - 0x3c]
jge 0x402777
mov eax, dword [ebp - 0x38]
test byte [section..data], 8
lea ebx, [eax + esi + 4]
jne 0x404418
mov eax, dword [ebp - 0x84]
mov ebx, dword [ebx]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msi.dll_MsiEnableLogW
sub esp, 0xc
test eax, eax
je 0x40298c
mov eax, ebx
call fcn.00401c80
mov esi, dword [ebp - 0x84]
mov dword [esp + 0xc], esi
mov esi, dword [ebp - 0x5c]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], str.Logging_in__s__0x_08lx___lu__failed_n
call fcn.00402460
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov eax, str._invalid_
jmp 0x403aad
mov eax, str._invalid_
jmp 0x40352c
mov eax, str._null_
jmp 0x403835
mov eax, str._invalid_
jmp 0x403835
mov eax, dword [ebx]
call fcn.00401c80
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x406000
mov dword [esp], 3
call fcn.004017e0
jmp 0x404391
jmp dword [sym.imp.msi.dll_MsiAdvertiseProductW]
jmp dword [sym.imp.msi.dll_MsiApplyPatchW]
jmp dword [sym.imp.msi.dll_MsiConfigureProductExW]