Function at 0x10058150
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100a8c7c
mov eax, dword fs:[0]
push eax
sub esp, 0x1f8
mov eax, dword [0x100cba70]
xor eax, esp
mov dword [esp + 0x1f0], eax
push ebx
push esi
push edi
mov eax, dword [0x100cba70]
xor eax, esp
push eax
lea eax, [esp + 0x208]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor ebx, ebx
mov edi, 0xf
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x1ac], ebx
mov byte [esp + 0x19c], bl
mov dword [esp + 0x210], ebx
mov eax, dword [0x100ad8f4]
push eax
mov esi, 0x100ccdf8
call fcn.100663e0
add esp, 4
test al, al
je 0x10058255
push str.CmdUtil::LaunchApp__:
lea ecx, [esp + 0x3c]
call fcn.1008d3d0
lea ecx, [esp + 0x1c]
push ecx
mov ecx, eax
mov byte [esp + 0x214], 1
call fcn.1008d7b0
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x21c], 2
call fcn.100023e0
mov esi, 0x10
cmp dword [esp + 0x34], esi
jb 0x1005822f
mov eax, dword [esp + 0x20]
push eax
call fcn.10080518
add esp, 4
mov byte [esp + 0x210], bl
cmp dword [esp + 0x50], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x10058255
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.10080518
add esp, 4
mov edx, dword [0x100ad8f4]
push 1
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x1c4]
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.100023e0
push 0x100ccdf8
mov byte [esp + 0x238], 3
call fcn.10002800
push eax
lea ecx, [esp + 0x1e0]
mov byte [esp + 0x23c], bl
call fcn.1008d030
push 0x20
mov esi, 0x100ccdf8
mov byte [esp + 0x214], 4
call fcn.100663e0
add esp, 4
test al, al
je 0x10058350
push 0x100af36c
lea ecx, [esp + 0x3c]
call fcn.1008d3d0
lea ecx, [esp + 0x1c]
push ecx
push str.CmdUtil::LaunchApp:
mov ecx, eax
mov byte [esp + 0x218], 5
call fcn.1008d680
mov ecx, eax
call fcn.1008d7b0
mov byte [esp + 0x210], 6
call fcn.10002800
mov edx, dword [eax]
mov edx, dword [edx + 4]
lea ecx, [esp + 0x1c]
push ecx
push 0x20
push esi
mov ecx, eax
call edx
mov esi, 0x10
cmp dword [esp + 0x34], esi
jb 0x10058329
mov eax, dword [esp + 0x20]
push eax
call fcn.10080518
add esp, 4
mov byte [esp + 0x210], 4
cmp dword [esp + 0x50], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x10058350
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.10080518
add esp, 4
cmp byte [esp + 0x1f0], bl
je 0x100584e3
push 0x100b52e0
lea ecx, [esp + 0x58]
call fcn.1008d3d0
mov esi, eax
push str.__directory__
lea ecx, [esp + 0x3c]
mov byte [esp + 0x214], 0xd
call fcn.1008d3d0
mov edi, eax
push str.__cmdLine__
lea ecx, [esp + 0x90]
mov byte [esp + 0x214], 0xe
call fcn.1008d3d0
mov dword [esp + 0x14], eax
push str.appName__
lea ecx, [esp + 0xac]
mov byte [esp + 0x214], 0xf
call fcn.1008d3d0
mov ecx, dword [esp + 0x70]
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x78]
push esi
push ecx
push edi
push edx
mov edx, dword [esp + 0x8c]
mov byte [esp + 0x224], 0x10
mov ecx, dword [esp + 0x28]
push ecx
push edx
mov ecx, eax
call fcn.1008d660
mov ecx, eax
call fcn.1008d660
mov ecx, eax
call fcn.1008d660
mov ecx, eax
call fcn.1008d660
mov ecx, eax
call fcn.1008d660
mov ecx, eax
call fcn.1008d660
mov ecx, eax
call fcn.1008d7b0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x214], 0x11
call fcn.1008d180
cmp dword [esp + 0x34], 0x10
jb 0x1005843f
mov ecx, dword [esp + 0x20]
push ecx
call fcn.10080518
add esp, 4
mov esi, 0x10
cmp dword [esp + 0xc0], esi
mov edi, 0xf
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x1005846e
mov edx, dword [esp + 0xac]
push edx
call fcn.10080518
add esp, 4
cmp dword [esp + 0xa4], esi
mov dword [esp + 0xc0], edi
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
jb 0x1005849c
mov eax, dword [esp + 0x90]
push eax
call fcn.10080518
add esp, 4
cmp dword [esp + 0x50], esi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
jb 0x100584c4
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.10080518
add esp, 4
cmp dword [esp + 0x6c], esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
jb 0x100584e3
mov edx, dword [esp + 0x58]
push edx
call fcn.10080518
add esp, 4
mov dword [esp + 0x18], vtable.MacroResolver.0
mov eax, dword [esp + 0x78]
push eax
lea ecx, [esp + 0x180]
push ecx
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x21c], 0x12
call fcn.10051650
mov dword [esp + 0x15c], 7
mov dword [esp + 0x158], ebx
mov word [esp + 0x148], bx
lea eax, [esp + 0x17c]
push eax
lea ecx, [esp + 0x148]
push ecx
mov byte [esp + 0x218], 0x14
call fcn.10067170
add esp, 8
lea edx, [esp + 0x144]
push edx
lea edi, [esp + 0x58]
call fcn.10053b00
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x150]
mov byte [esp + 0x21c], 0x15
call fcn.10001ea0
mov esi, 8
mov byte [esp + 0x210], 0x14
cmp dword [esp + 0x6c], esi
jb 0x1005858d
mov eax, dword [esp + 0x58]
push eax
call fcn.10080518
add esp, 4
mov ecx, dword [esp + 0x74]
push ecx
lea edx, [esp + 0x164]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.10051650
mov dword [esp + 0x124], 7
mov dword [esp + 0x120], ebx
mov word [esp + 0x110], bx
lea ecx, [esp + 0x160]
push ecx
lea edx, [esp + 0x110]
push edx
mov byte [esp + 0x218], 0x17
call fcn.10067170
add esp, 8
lea eax, [esp + 0x10c]
push eax
lea edi, [esp + 0x58]
call fcn.10053b00
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x118]
mov byte [esp + 0x21c], 0x18
call fcn.10001ea0
mov byte [esp + 0x210], 0x17
cmp dword [esp + 0x6c], esi
jb 0x10058622
mov ecx, dword [esp + 0x58]
push ecx
call fcn.10080518
add esp, 4
mov edx, dword [esp + 0x158]
mov eax, dword [esp + 0x120]
lea esi, [eax + edx + 2]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1007f852
mov edi, eax
mov eax, dword [esp + 0x14c]
add esp, 4
cmp dword [esp + 0x15c], 8
mov dword [esp + 0x14], edi
jae 0x1005866d
lea eax, [esp + 0x148]
push eax
push esi
push edi
call fcn.10080903
add esp, 0xc
cmp dword [esp + 0x120], ebx
je 0x100586b3
push 0x100b52e4
push esi
push edi
call fcn.1008096f
mov eax, dword [esp + 0x11c]
add esp, 0xc
cmp dword [esp + 0x124], 8
jae 0x100586a8
lea eax, [esp + 0x110]
push eax
push esi
push edi
call fcn.1008096f
add esp, 0xc
push 0x44
lea eax, [esp + 0xc8]
push ebx
push eax
call fcn.1007a340
add esp, 0xc
mov dword [esp + 0xc4], 0x44
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
xor esi, esi
mov dword [esp + 0x140], 7
mov dword [esp + 0x13c], ebx
mov word [esp + 0x12c], bx
mov eax, dword [esp + 0x70]
mov byte [esp + 0x210], 0x19
cmp dword [eax + 0x14], ebx
je 0x1005879d
push eax
lea ecx, [esp + 0x12c]
push ecx
call fcn.10067170
mov eax, dword [esp + 0x134]
add esp, 8
cmp dword [esp + 0x140], 8
jae 0x10058744
lea eax, [esp + 0x12c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x10058747
sub eax, edx
sar eax, 1
lea edi, [eax + 1]
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1007f852
add esp, 4
cmp dword [esp + 0x140], 8
mov esi, eax
mov eax, dword [esp + 0x12c]
jae 0x1005878e
lea eax, [esp + 0x12c]
push eax
push edi
push esi
call fcn.10080903
mov edi, dword [esp + 0x20]
add esp, 0xc
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc8]
push ecx
push esi
push ebx
push 0x28
push ebx
push ebx
push ebx
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
push edi
mov dword [esp + 0x18], eax
call fcn.10080518
add esp, 4
cmp esi, ebx
je 0x100587d3
push esi
call fcn.10080518
add esp, 4
cmp dword [esp + 0x14], ebx
je 0x10058a16
cmp byte [esp + 0x1f0], bl
je 0x10058865
push 1
lea ecx, [esp + 0x58]
call fcn.1008d450
lea edx, [esp + 0x1c]
push edx
mov ecx, eax
mov byte [esp + 0x214], 0x1a
call fcn.1008d7b0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x214], 0x1b
call fcn.1008ab90
mov esi, 0x10
cmp dword [esp + 0x34], esi
jb 0x1005883a
mov ecx, dword [esp + 0x20]
push ecx
call fcn.10080518
add esp, 4
mov byte [esp + 0x210], 0x19
cmp dword [esp + 0x6c], esi
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x10058865
mov edx, dword [esp + 0x58]
push edx
call fcn.10080518
add esp, 4
push 0x20
mov esi, 0x100ccdf8
call fcn.100663e0
add esp, 4
test al, al
je 0x100588da
push 0x100af374
lea ecx, [esp + 0x3c]
call fcn.1008d3d0
lea ecx, [esp + 0x54]
push ecx
push str.CmdUtil::LaunchApp:
mov ecx, eax
mov byte [esp + 0x218], 0x1e
call fcn.1008d680
mov ecx, eax
call fcn.1008d7b0
mov byte [esp + 0x210], 0x1f
call fcn.10002800
mov edx, dword [eax]
mov edx, dword [edx + 4]
lea ecx, [esp + 0x54]
push ecx
push 0x20
push 0x100ccdf8
mov ecx, eax
call edx
lea ecx, [esp + 0x54]
call fcn.10002a70
lea ecx, [esp + 0x38]
call fcn.10002a70
mov edi, 8
cmp dword [esp + 0x140], edi
jb 0x100588f8
mov eax, dword [esp + 0x12c]
push eax
call fcn.10080518
add esp, 4
cmp dword [esp + 0x124], edi
mov esi, 7
mov word [esp + 0x12c], bx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x140], esi
jb 0x1005892c
mov ecx, dword [esp + 0x110]
push ecx
call fcn.10080518
add esp, 4
mov edi, 0x10
cmp dword [esp + 0x178], edi
mov word [esp + 0x110], bx
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], esi
jb 0x10058960
mov edx, dword [esp + 0x164]
push edx
call fcn.10080518
add esp, 4
cmp dword [esp + 0x15c], 8
mov byte [esp + 0x164], bl
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], 0xf
jb 0x10058993
mov eax, dword [esp + 0x148]
push eax
call fcn.10080518
add esp, 4
cmp dword [esp + 0x194], edi
mov word [esp + 0x148], bx
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], esi
jb 0x100589c2
mov ecx, dword [esp + 0x180]
push ecx
call fcn.10080518
add esp, 4
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x194], 0xf
mov dword [esp + 0x190], ebx
mov byte [esp + 0x180], bl
mov dword [esp + 0x18], vtable.MacroResolver.0
mov byte [esp + 0x210], bl
call fcn.1008bb30
cmp dword [esp + 0x1b0], edi
jb 0x10058a0f
mov edx, dword [esp + 0x19c]
push edx
call fcn.10080518
add esp, 4
mov al, 1
jmp 0x10058f16
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 2
je 0x10058a28
cmp esi, 3
jne 0x10058a90
cmp byte [esp + 0x1f0], bl
je 0x10058b65
push 0x14
push str.File_does_not_exist.
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.10002b10
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x214], 0x24
call fcn.1008d180
mov edi, 0x10
mov byte [esp + 0x210], 0x19
cmp dword [esp + 0x34], edi
jb 0x10058a95
mov ecx, dword [esp + 0x20]
push ecx
call fcn.10080518
add esp, 4
jmp 0x10058a95
mov edi, 0x10
cmp byte [esp + 0x1f0], bl
je 0x10058b6a
push 0xa
push esi
lea ecx, [esp + 0x5c]
call fcn.1008d590
push eax
lea edx, [esp + 0x3c]
push str.false_errorCode
push edx
mov byte [esp + 0x21c], 0x25
call fcn.1008d890
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
push 0x100aec44
mov ecx, eax
mov byte [esp + 0x218], 0x26
call fcn.1008d680
mov ecx, eax
call fcn.1008d7b0
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x214], 0x27
call fcn.1008ab90
cmp dword [esp + 0x34], edi
jb 0x10058b15
mov eax, dword [esp + 0x20]
push eax
call fcn.10080518
add esp, 4
cmp dword [esp + 0x50], edi
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x10058b38
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.10080518
add esp, 4
mov byte [esp + 0x210], 0x19
cmp dword [esp + 0x6c], edi
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
jb 0x10058b6a
mov edx, dword [esp + 0x58]
push edx
call fcn.10080518
add esp, 4
jmp 0x10058b6a
mov edi, 0x10
cmp esi, 0x2e4
jne 0x10058d6e
cmp byte [esp + 0x1f0], bl
je 0x10058bc1
push str.Require_elevation..executing_ShellExecute_API...
lea ecx, [esp + 0x3c]
call fcn.10002aa0
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x214], 0x28
call fcn.1008d180
mov byte [esp + 0x210], 0x19
cmp dword [esp + 0x50], edi
jb 0x10058bc1
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.10080518
add esp, 4
mov edx, dword [esp + 0x12c]
mov eax, 8
cmp dword [esp + 0x140], eax
jae 0x10058bdd
lea edx, [esp + 0x12c]
cmp dword [esp + 0x124], eax
mov ecx, dword [esp + 0x110]
jae 0x10058bf4
lea ecx, [esp + 0x110]
cmp dword [esp + 0x15c], eax
mov eax, dword [esp + 0x148]
jae 0x10058c0b
lea eax, [esp + 0x148]
push 1
push edx
push ecx
push eax
push str.runas
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jle 0x10058cd2
cmp byte [esp + 0x1f0], bl
je 0x10058c80
push 1
lea ecx, [esp + 0x3c]
call fcn.1008d450
lea edx, [esp + 0x54]
push edx
mov ecx, eax
mov byte [esp + 0x214], 0x29
call fcn.1008d7b0
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x214], 0x2a
call fcn.1008ab90
lea ecx, [esp + 0x54]
call fcn.10002a70
lea ecx, [esp + 0x38]
mov byte [esp + 0x210], 0x19
call fcn.10002a70
push 0x20
mov esi, 0x100ccdf8
call fcn.100663e0
add esp, 4
test al, al
je 0x100588da
push 0x100af374
lea ecx, [esp + 0x3c]
call fcn.1008d3d0
lea ecx, [esp + 0x54]
push ecx
push str.CmdUtil::LaunchApp:
mov ecx, eax
mov byte [esp + 0x218], 0x2d
call fcn.1008d680
mov ecx, eax
call fcn.1008d7b0
mov byte [esp + 0x210], 0x2e
jmp 0x100588ae
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [esp + 0x1f0], bl
je 0x10058d6e
push 0xa
push eax
lea ecx, [esp + 0x94]
call fcn.1008d590
push eax
lea eax, [esp + 0x3c]
push str.false_errorCode
push eax
mov byte [esp + 0x21c], 0x33
call fcn.1008d890
add esp, 0xc
lea ecx, [esp + 0x54]
push ecx
push 0x100aec44
mov ecx, eax
mov byte [esp + 0x218], 0x34
call fcn.1008d680
mov ecx, eax
call fcn.1008d7b0
lea edx, [esp + 0x54]
push edx
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x214], 0x35
call fcn.1008ab90
lea ecx, [esp + 0x54]
call fcn.10002a70
lea ecx, [esp + 0x38]
call fcn.10002a70
lea ecx, [esp + 0x8c]
mov byte [esp + 0x210], 0x19
call fcn.10002a70
push 0x20
mov esi, 0x100ccdf8
call fcn.100663e0
add esp, 4
test al, al
je 0x10058ddf
push 0x100af374
lea ecx, [esp + 0x3c]
call fcn.1008d3d0
lea ecx, [esp + 0x54]
push ecx
push str.CmdUtil::LaunchApp:
mov ecx, eax
mov byte [esp + 0x218], 0x38
call fcn.1008d680
mov ecx, eax
call fcn.1008d7b0
mov byte [esp + 0x210], 0x39
call fcn.10002800
mov edx, dword [eax]
mov edx, dword [edx + 4]
lea ecx, [esp + 0x54]
push ecx
push 0x20
push esi
mov ecx, eax
call edx
lea ecx, [esp + 0x54]
call fcn.10002a70
lea ecx, [esp + 0x38]
call fcn.10002a70
mov edi, 8
cmp dword [esp + 0x140], edi
jb 0x10058dfd
mov eax, dword [esp + 0x12c]
push eax
call fcn.10080518
add esp, 4
cmp dword [esp + 0x124], edi
mov esi, 7
mov dword [esp + 0x140], esi
mov dword [esp + 0x13c], ebx
mov word [esp + 0x12c], bx
jb 0x10058e31
mov ecx, dword [esp + 0x110]
push ecx
call fcn.10080518
add esp, 4
mov edi, 0x10
cmp dword [esp + 0x178], edi
mov dword [esp + 0x124], esi
mov dword [esp + 0x120], ebx
mov word [esp + 0x110], bx
jb 0x10058e65
mov edx, dword [esp + 0x164]
push edx
call fcn.10080518
add esp, 4
cmp dword [esp + 0x15c], 8
mov dword [esp + 0x178], 0xf
mov dword [esp + 0x174], ebx
mov byte [esp + 0x164], bl
jb 0x10058e98
mov eax, dword [esp + 0x148]
push eax
call fcn.10080518
add esp, 4
cmp dword [esp + 0x194], edi
mov dword [esp + 0x15c], esi
mov dword [esp + 0x158], ebx
mov word [esp + 0x148], bx
jb 0x10058ec7
mov ecx, dword [esp + 0x180]
push ecx
call fcn.10080518
add esp, 4
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x194], 0xf
mov dword [esp + 0x190], ebx
mov byte [esp + 0x180], bl
mov dword [esp + 0x18], vtable.MacroResolver.0
mov byte [esp + 0x210], bl
call fcn.1008bb30
cmp dword [esp + 0x1b0], edi
jb 0x10058f14
mov edx, dword [esp + 0x19c]
push edx
call fcn.10080518
add esp, 4
xor al, al
mov ecx, dword [esp + 0x208]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1f0]
xor ecx, esp
call fcn.10079ea5
mov esp, ebp
pop ebp
ret