Function at 0x4040f0
Capabilities:
Accept command line arguments

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x41b928
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push ebp
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
push esi
call fcn.00408c0d
add esp, 4
dec eax
lea eax, [esi + eax*2]
mov cx, word [eax]
cmp cx, 9
je 0x404130
cmp cx, 0x20
jne 0x40413a
mov word [eax], 0
sub eax, 2
jmp 0x404121
push esi
mov ebp, 1
xor edi, edi
call fcn.00408c0d
add esp, 4
test eax, eax
jbe 0x40416f
mov edi, edi
mov ax, word [esi + edi*2]
cmp ax, 0x20
je 0x404160
cmp ax, 9
jne 0x404161
inc ebp
push esi
inc edi
call fcn.00408c0d
add esp, 4
cmp edi, eax
jb 0x404150
lea eax, [ebp*4]
push eax
call fcn.00415643
mov edi, 1
push esi
mov dword [esp + 0x24], eax
mov dword [eax], esi
mov dword [esp + 0x20], edi
xor bl, bl
call fcn.00408c0d
add esp, 8
xor ecx, ecx
test eax, eax
jle 0x404204
lea esp, [esp]
mov dx, word [esi + ecx*2]
cmp dx, 0x22
jne 0x4041b2
cmp bl, 1
setne bl
jmp 0x4041fa
test bl, bl
jne 0x4041fa
cmp dx, 0x20
je 0x4041c2
cmp dx, 9
jne 0x4041fa
mov word [esi + ecx*2], 0
lea edi, [esi + ecx*2 + 2]
lea esp, [esp]
mov dx, word [edi]
cmp dx, 0x20
je 0x4041df
cmp dx, 9
jne 0x4041e5
inc ecx
add edi, 2
jmp 0x4041d0
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edi, [esi + ecx*2 + 2]
mov dword [ebp + edx*4], edi
inc edx
mov dword [esp + 0x18], edx
inc ecx
cmp ecx, eax
jl 0x4041a0
mov edi, 1
cmp dword [esp + 0x18], edi
mov dword [esp + 0x10], edi
jle 0x40464a
mov dword [esp + 0x14], 2
xor ebp, ebp
lea esp, [esp]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov edi, dword [ecx + edx*4]
cmp word [edi], 0x2f
jne 0x404490
movzx eax, word [edi + 2]
add eax, 0xffffff9f
cmp eax, 0x10
ja case.0x40424c.98
movzx eax, byte [eax + 0x404680]
jmp dword [eax*4 + 0x40466c]
push str.ACTIONADMIN
call fcn.00408c0d
add esp, 4
push eax
push str.ACTIONADMIN
jmp 0x404622
push str.ACTIONADVERTISE
call fcn.00408c0d
add esp, 4
push eax
push str.ACTIONADVERTISE
mov ecx, 0x424784
call fcn.00401ee0
movzx eax, word [edi + 4]
cmp eax, 0x6d
je 0x4042b2
cmp eax, 0x75
jne case.0x40424c.98
push str.ALLUSERS
call fcn.00408c0d
add esp, 4
push eax
push str.ALLUSERS
jmp 0x404622
push str.ALLUSERS1
call fcn.00408c0d
add esp, 4
push eax
push str.ALLUSERS1
jmp 0x404622
movzx eax, word [edi + 4]
cmp eax, 0x72
ja case.0x40424c.98
movzx ecx, byte [eax + 0x4046a8]
jmp dword [ecx*4 + 0x404694]
mov dword [0x4230b4], 2
jmp case.0x40424c.98
mov dword [0x4230b4], 3
jmp case.0x40424c.98
mov dword [0x4230b4], 4
jmp case.0x40424c.98
mov dword [0x4230b4], 5
jmp case.0x40424c.98
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x14], edx
jge case.0x40424c.98
lea ecx, [edi + 4]
xor eax, eax
mov ax, word [ecx]
xor esi, esi
xor ebx, ebx
cmp ax, bp
je 0x4043c2
movzx eax, ax
add eax, 0xffffffdf
cmp eax, 0x56
ja case.0x404356.34
movzx eax, byte [eax + 0x404758]
jmp dword [eax*4 + 0x40471c]
or esi, 0x10
jmp case.0x404356.34
or esi, 4
jmp case.0x404356.34
or esi, 2
jmp case.0x404356.34
or esi, 0x100
jmp case.0x404356.34
or esi, 0x200
jmp case.0x404356.34
or esi, 8
jmp case.0x404356.34
or esi, 0x800
jmp case.0x404356.34
or esi, 1
jmp case.0x404356.34
or esi, 0x80
jmp case.0x404356.34
or esi, 0x400
jmp case.0x404356.34
or esi, 0x1000
jmp case.0x404356.34
or ebx, 1
jmp case.0x404356.34
or ebx, 2
jmp case.0x404356.34
or esi, 0xfdf
mov ax, word [ecx + 2]
add ecx, 2
cmp ax, bp
jne 0x404344
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + edi*4]
push edx
lea ecx, [esp + 0x24]
mov dword [esp + 0x14], edi
call fcn.004024c0
push str.dependencies
mov dword [esp + 0x30], ebp
call fcn.00408c0d
add esp, 4
push eax
push str.dependencies
lea ecx, [esp + 0x28]
call fcn.00401ee0
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + edi*4]
cmp edi, ebp
jne 0x404414
xor eax, eax
jmp 0x40441d
push edi
call fcn.00408c0d
add esp, 4
push eax
push edi
mov ecx, 0x424760
call fcn.00401300
mov eax, dword [esp + 0x20]
cmp eax, ebp
mov edi, eax
jne 0x404437
xor eax, eax
jmp 0x404440
push eax
call fcn.00408c0d
add esp, 4
push eax
push edi
mov ecx, 0x424764
call fcn.00401300
mov ecx, dword [0x424760]
push ebx
push ecx
push esi
mov byte [0x424782], 0
call sub.msi.dll_MsiGetComponentPathW
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov dword [esp + 0x2c], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg case.0x40424c.98
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp case.0x40424c.98
push str.CLIENTLANGUAGE
push edi
call fcn.0040949a
add esp, 8
test eax, eax
je 0x4045fa
mov eax, dword [esp + 0x34]
lea esi, [edi + 0x1e]
push 0x41c9ac
push esi
mov byte [eax], 1
call fcn.0040993e
add esp, 8
test eax, eax
je 0x4045eb
push 0x41c9a4
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x4044e2
push 0x40c
jmp 0x4045f0
push 0x41c99c
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x4044fe
push 0x407
jmp 0x4045f0
push 0x41c994
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x40451a
push 0x410
jmp 0x4045f0
push 0x41c98c
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x404536
push 0xc0a
jmp 0x4045f0
push 0x41c984
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x404552
push 0x411
jmp 0x4045f0
push 0x41c97c
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x40456e
push 0x804
jmp 0x4045f0
push 0x41c974
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x404587
push 0x404
jmp 0x4045f0
push 0x41c96c
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x4045a0
push 0x412
jmp 0x4045f0
push 0x41c964
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x4045b9
push 0x413
jmp 0x4045f0
push 0x41c95c
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x4045d2
push 0x416
jmp 0x4045f0
push 0x41c954
push esi
call fcn.0040993e
add esp, 8
test eax, eax
jne 0x4045eb
push 0x41d
jmp 0x4045f0
push 0x409
mov ecx, 0x424728
call fcn.00401c60
push edi
call fcn.00408c0d
add esp, 4
push eax
push edi
mov ecx, 0x424784
call fcn.00401ee0
push 0x41c950
call fcn.00408c0d
add esp, 4
push eax
push 0x41c950
mov ecx, 0x424784
call fcn.00401ee0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
inc eax
inc edx
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jl 0x404220
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00415648
mov ecx, dword [esp + 0x28]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret