Function at 0x4567e0
Capabilities:
Accept command line arguments
Create process on windows

Disassembly:
push 0xffffffffffffffff
push 0x4f6bcd
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push ebp
push esi
push edi
mov eax, dword [0x52e028]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x5c]
mov edi, ecx
mov esi, edx
mov eax, dword [esp + 0x58]
sub eax, 0x111
je 0x456915
sub eax, 6
jne 0x456b9f
mov eax, dword [esi + 0x18]
test eax, eax
je 0x45683b
mov ecx, dword [esi + 0x1c]
push ebp
push edi
push 0x117
push ecx
call eax
push edi
call fcn.004ef882
shr ebp, 0x10
mov ebx, eax
test bp, bp
jne 0x45690b
xor edi, edi
cmp ebx, edi
je 0x45690b
lea ecx, [esp + 0x20]
call fcn.004ef8be
mov edx, dword [ebx + 4]
push edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edi
call dword [sym.imp.USER32.dll_GetMenuItemCount]
mov ebp, eax
mov dword [esp + 0x40], ebp
test ebp, ebp
jbe 0x45690b
mov eax, dword [ebx + 4]
push edi
push eax
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov edx, eax
cmp edx, 0xffffffff
je 0x456902
test edx, edx
je 0x456902
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edi
cmp edx, 0xf0000000
jb 0x4568ed
cmp edx, 0xf1000000
jne 0x4568bf
xor ecx, ecx
cmp dword [esi + 0x28], ecx
sete cl
push ecx
jmp 0x4568e4
cmp edx, 0xf2000000
jne 0x4568cd
mov edx, dword [esi + 0x28]
push edx
jmp 0x4568e4
mov ecx, esi
call fcn.00456c80
add edx, 0x10000000
cmp edx, eax
jne 0x4568e2
push 1
jmp 0x4568e4
push 0
lea ecx, [esp + 0x24]
call fcn.004efada
mov eax, dword [esi + 0x1c]
push 0
push eax
call fcn.004ef360
push eax
lea ecx, [esp + 0x28]
call fcn.004ef8c4
inc edi
cmp edi, ebp
jb 0x456886
mov eax, 1
jmp 0x456ba1
cmp edi, 0xf0000000
jb 0x456b9f
cmp edi, 0xf1000000
jne 0x456959
push 4
lea eax, [esi + 0x28]
push eax
push 4
push str.AutoUpdateInstall
push 0x505714
push SysReAllocString
mov dword [eax], 0
call dword [0x4ff068]
add esp, 0x18
mov eax, 1
jmp 0x456ba1
cmp edi, 0xf2000000
jne 0x456991
push 4
lea eax, [esi + 0x28]
push eax
push 4
push str.AutoUpdateInstall
push 0x505714
push SysReAllocString
mov dword [eax], 1
call dword [0x4ff068]
add esp, 0x18
mov eax, 1
jmp 0x456ba1
mov eax, dword [esi + 0x20]
lea ecx, [edi + 0x10000000]
cmp eax, 0xffffffff
jne 0x4569a2
mov eax, dword [esi + 0x24]
cmp ecx, eax
je 0x456b98
mov dword [esi + 0x20], ecx
lea ecx, [esp + 0x1c]
call dword [0x4fff58]
mov dword [esp + 0x50], 0
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
sar ecx, 2
cmp dword [esi + 0x20], ecx
jae 0x456b86
mov edx, dword [esi + 0x1c]
push edx
call fcn.004ef360
mov ebp, eax
test ebp, ebp
je 0x456b86
cmp dword [esi + 0x44], 0
je 0x456a2f
lea eax, [esp + 0x5c]
push eax
mov edi, esi
call fcn.004565a0
mov byte [esp + 0x50], 1
mov ecx, dword [esp + 0x5c]
mov eax, dword [esi + 0x44]
mov edx, dword [ebp + 0x20]
push ecx
push 1
push eax
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, eax
mov byte [esp + 0x50], 0
lea ecx, [esp + 0x5c]
call dword [0x4fff34]
test edi, edi
je 0x456a2f
call fcn.00456560
jmp 0x456b86
lea ecx, [esp + 0x14]
call dword [0x4fff58]
mov byte [esp + 0x50], 2
lea eax, [esp + 0x14]
push eax
mov ecx, ebp
call fcn.004ef120
mov ecx, dword [esp + 0x14]
push 0x44
push ecx
push 0x500820
push 0x500820
push 0x500820
push 0x500820
push str.10060
call fcn.004ef0cc
mov edx, dword [esi + 0x1c]
push eax
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x456b77
call fcn.004564f0
lea ecx, [esp + 0x5c]
call dword [0x4fff58]
mov bl, 3
mov byte [esp + 0x50], bl
mov eax, dword [0x4ff37c]
cmp dword [eax], 0
jle 0x456ab9
mov ecx, dword [0x4ff378]
mov edx, dword [ecx]
mov eax, dword [edx]
push eax
lea ecx, [esp + 0x60]
call dword [0x4fff04]
jmp 0x456aec
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edi, eax
test edi, edi
je 0x456aec
cmp dword [esp + 0x18], 0
jle 0x456ae5
mov edx, dword [edi]
push edx
lea ecx, [esp + 0x60]
call dword [0x4fff04]
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [esp + 0x58]
call dword [0x4fff58]
mov byte [esp + 0x50], 4
call fcn.004ef55e
cmp dword [eax + 4], 0
je 0x456b1c
call fcn.004ef55e
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x48]
push eax
lea ecx, [esp + 0x5c]
call dword [0x4fff04]
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x456b2e
mov ecx, dword [esi + 0x40]
push ecx
call eax
add esp, 4
jmp 0x456b40
mov edx, dword [esi + 0x1c]
push edx
call fcn.004ef360
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x68]
call eax
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov eax, dword [esi + 0x1c]
push 1
push 0
push ecx
push edx
push 0
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov byte [esp + 0x50], bl
lea ecx, [esp + 0x58]
call dword [0x4fff34]
mov byte [esp + 0x50], 2
lea ecx, [esp + 0x5c]
call dword [0x4fff34]
mov byte [esp + 0x50], 0
lea ecx, [esp + 0x14]
call dword [0x4fff34]
mov dword [esp + 0x50], 0xffffffff
lea ecx, [esp + 0x1c]
call dword [0x4fff34]
mov eax, 1
jmp 0x456ba1
xor eax, eax
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 8