Function at 0x4022a8
Capabilities:
Create process on windows
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x15e8]
mov eax, 0x1668
call fcn.00405820
mov eax, dword [0x40806c]
xor eax, ebp
mov dword [ebp + 0x15e4], eax
push ebx
push esi
push dword [0x408088]
call dword [sym.imp.USER32.dll_GetMenuItemCount]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ebx
jle 0x4023af
push edi
mov edi, 0x406604
mov esi, 0x104
push 0x400
push 0x208
lea eax, [ebp + 0x1d4]
push eax
push dword [ebp - 0x28]
push dword [0x408088]
call dword [sym.imp.USER32.dll_GetMenuStringA]
lea eax, [ebp + 0x14e0]
push eax
push ebx
lea eax, [ebp + 0x1d4]
push edi
push eax
call fcn.0040112c
lea eax, [ebp + 0x13dc]
push eax
push 1
lea eax, [ebp + 0x1d4]
push edi
push eax
call fcn.0040112c
lea eax, [ebp + 0x14e0]
push esi
push eax
call fcn.004012bb
lea eax, [ebp + 0x13dc]
push esi
push eax
call fcn.004012bb
lea eax, [ebp + 0x14e0]
push eax
call fcn.00401712
lea eax, [ebp + 0x13dc]
push eax
call fcn.00401712
lea eax, [ebp + 0x14e0]
push eax
call fcn.00401588
lea eax, [ebp + 0x13dc]
push eax
call fcn.00401588
add esp, 0x40
lea eax, [ebp + 0x13dc]
push eax
lea eax, [ebp + 0x14e0]
push ebx
push eax
call fcn.00405733
add esp, 0xc
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x2c]
jl 0x4022f0
pop edi
cmp byte [0x4085b8], bl
je 0x40264a
mov esi, 0x40bc60
push esi
call fcn.00401712
lea eax, [ebp + 0x3dc]
mov dword [esp], 0x4085b8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0x3dc]
push 0x1000
push eax
call fcn.004012bb
lea eax, [ebp + 0x3dc]
push eax
call fcn.00401712
lea eax, [ebp + 0x3dc]
push 0x406600
push eax
call fcn.004011a4
add esp, 0x14
test eax, eax
jne 0x40257f
lea eax, [ebp + 0x3dc]
push 0x4065fc
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40257f
lea eax, [ebp + 0x3dc]
push 0x4065f8
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40257f
lea eax, [ebp + 0x3dc]
push 0x4065f4
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40255e
lea eax, [ebp + 0x3dc]
push 0x4065f0
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40255e
lea eax, [ebp + 0x3dc]
push 0x4065ec
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40255e
lea eax, [ebp + 0x3dc]
push 0x4065e8
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40255e
lea eax, [ebp + 0x3dc]
push 0x4065e4
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40255e
lea eax, [ebp + 0x3dc]
push 0x4065e0
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40255e
lea eax, [ebp + 0x3dc]
push 0x4065dc
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40255e
lea eax, [ebp + 0x3dc]
push 0x4065d8
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40255e
lea eax, [ebp + 0x3dc]
push 0x4065d4
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40255e
lea eax, [ebp + 0x3dc]
push 0x4065d0
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
jne 0x40255e
lea eax, [ebp + 0x3dc]
push 0x4065cc
push eax
call fcn.004011a4
pop ecx
pop ecx
test eax, eax
je 0x40264a
push 0xa
push esi
push ebx
lea eax, [ebp + 0x3dc]
push eax
push str.open
push dword [0x408080]
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
jmp 0x40264a
cmp byte [ebp + 0x3dc], 0x22
je 0x4025ba
lea eax, [ebp + 0x3dc]
push eax
call fcn.00401742
pop ecx
test eax, eax
jne 0x4025ba
push esi
mov dword [0x40b3d8], ebx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 5
lea eax, [ebp + 0x3dc]
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
jmp 0x40264a
push 0x40
lea eax, [ebp - 0x7c]
push ebx
push eax
mov dword [ebp - 0x80], 0x44
call fcn.00401690
add esp, 0xc
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x80]
push eax
push esi
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp + 0x3dc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x40261a
push ebx
push dword [0x408080]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [ebp - 0x38]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push 0xffffffffffffffff
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x3c]
call esi
jmp 0x40264a
lea eax, [ebp + 0x3dc]
push eax
lea eax, [ebp - 0x24]
push str._s_could_not_be_executed.
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x10
push str.Error
lea eax, [ebp - 0x24]
push eax
push dword [0x408080]
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [ebp + 0x15e4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0040580c
add ebp, 0x15e8
leave
ret