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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x662fd8
mov eax, dword fs:[0]
push eax
mov eax, 0x4064
call fcn.005bdf80
mov eax, dword [0x6fc0c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3fdc], ecx
mov eax, dword [ebp + 0x14]
mov dword [eax], 1
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x3fd4], ecx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x3fd8], edx
lea ecx, [ebp - 0x3fd0]
call fcn.00479760
lea eax, [ebp - 0x3fd0]
push eax
mov ecx, dword [ebp - 0x3fd8]
push ecx
mov edx, dword [ebp - 0x3fd4]
push edx
call fcn.00469af0
mov ecx, eax
call fcn.0046fe60
movzx eax, al
test eax, eax
jne 0x55071b
xor eax, eax
jmp 0x550cda
cmp dword [ebp - 0x3fc8], 0
jg 0x55072b
xor eax, eax
jmp 0x550cda
cmp dword [ebp - 0x3fc8], 1
jne 0x550795
lea ecx, [ebp - 0x3dc4]
push ecx
lea ecx, [ebp - 0x88]
call fcn.00446a20
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x88]
call fcn.0044d720
movzx edx, al
test edx, edx
jne 0x55076e
lea eax, [ebp - 0x88]
push eax
call fcn.0045cb90
add esp, 4
mov dword [ebp - 0x3fe8], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x88]
call fcn.0043c550
mov eax, dword [ebp - 0x3fe8]
jmp 0x550cda
cmp dword [ebp - 0x3fc8], 2
jne 0x5507a8
mov eax, 1
jmp 0x550cda
cmp dword [ebp - 0x3fc8], 3
jne 0x550803
xor ecx, ecx
mov byte [ebp - 0x3fdd], cl
lea edx, [ebp - 0x3fd8]
push edx
lea eax, [ebp - 0x3fd4]
push eax
mov ecx, dword [ebp - 0x3fdc]
add ecx, 0x248
push ecx
lea edx, [ebp - 0x3fde]
push edx
lea eax, [ebp - 0x4068]
push eax
call fcn.00521b00
mov ecx, eax
call fcn.0056e8d0
lea ecx, [ebp - 0x4068]
call fcn.00520cc0
mov eax, 1
jmp 0x550cda
cmp dword [ebp - 0x3fc8], 4
jne 0x5509a8
mov ecx, dword [ebp - 0x35c2]
push ecx
mov edx, dword [ebp - 0x3fd8]
push edx
mov eax, dword [ebp - 0x3fd4]
push eax
lea ecx, [ebp - 0x45c]
call fcn.00525e80
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x3fdc]
mov edx, dword [ecx + 0x248]
push edx
lea ecx, [ebp - 0x45c]
call fcn.0050f220
cmp eax, 1
je 0x55087b
mov dword [ebp - 0x3fec], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x45c]
call fcn.00525fe0
mov eax, dword [ebp - 0x3fec]
jmp 0x550cda
push ecx
mov ecx, esp
mov dword [ebp - 0x406c], esp
push 0x68896c
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::constructor_wchar_t_const__]
mov dword [ebp - 0x3ff0], eax
mov eax, dword [ebp - 0x3ff0]
mov dword [ebp - 0x4060], eax
mov byte [ebp - 4], 2
push ecx
mov ecx, esp
mov dword [ebp - 0x4070], esp
push 0x68899c
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::constructor_wchar_t_const__]
mov dword [ebp - 0x3ff4], eax
mov ecx, dword [ebp - 0x3ff4]
mov dword [ebp - 0x4034], ecx
mov byte [ebp - 4], 3
push ecx
mov ecx, esp
mov dword [ebp - 0x4038], esp
push 0x6889ac
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::constructor_wchar_t_const__]
mov dword [ebp - 0x3ff8], eax
mov edx, dword [ebp - 0x3ff8]
mov dword [ebp - 0x403c], edx
mov byte [ebp - 4], 4
push 0
push 3
push ecx
mov ecx, esp
mov dword [ebp - 0x4040], esp
push 0x6889b0
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::constructor_wchar_t_const__]
mov dword [ebp - 0x3ffc], eax
mov eax, dword [ebp - 0x3ffc]
mov dword [ebp - 0x4044], eax
mov byte [ebp - 4], 5
push ecx
mov ecx, esp
mov dword [ebp - 0x4048], esp
push 0x6889d0
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::constructor_wchar_t_const__]
mov dword [ebp - 0x404c], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x810]
call fcn.005100d0
mov dword [ebp - 0x4050], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x3fdc]
mov edx, dword [ecx + 0x248]
push edx
lea ecx, [ebp - 0x810]
call fcn.0050f220
mov dword [ebp - 0x4000], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x810]
call fcn.00510230
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x45c]
call fcn.00525fe0
mov eax, dword [ebp - 0x4000]
jmp 0x550cda
cmp dword [ebp - 0x3fc8], 5
jne 0x550a08
lea eax, [ebp - 0x3dc4]
push eax
lea ecx, [ebp - 0x58]
call fcn.00446a20
lea ecx, [ebp - 0x58]
call fcn.0044d720
movzx ecx, al
test ecx, ecx
jne 0x5509eb
push 1
push 0
push 0
lea ecx, [ebp - 0x58]
call fcn.0043d1b0
push eax
push 0x6889ec
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 0x4004], 1
lea ecx, [ebp - 0x58]
call fcn.0043c550
mov eax, dword [ebp - 0x4004]
jmp 0x550cda
cmp dword [ebp - 0x3fc8], 6
jne 0x550a69
mov edx, dword [ebp - 0x3fd4]
push edx
lea ecx, [ebp - 0xbb4]
call fcn.0050e630
mov dword [ebp - 4], 7
mov eax, dword [ebp - 0x3fdc]
mov ecx, dword [eax + 0x248]
push ecx
lea ecx, [ebp - 0xbb4]
call fcn.0050f220
mov dword [ebp - 0x4008], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xbb4]
call fcn.0050e6c0
mov eax, dword [ebp - 0x4008]
jmp 0x550cda
cmp dword [ebp - 0x3fc8], 7
jne 0x550a8a
push 5
call fcn.0051a7a0
mov ecx, eax
call fcn.0050f630
mov eax, 1
jmp 0x550cda
cmp dword [ebp - 0x13ba], 1
jne 0x550ae8
lea edx, [ebp - 0x13b6]
push edx
lea ecx, [ebp - 0x70]
call fcn.00446a20
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x70]
call fcn.0044d720
movzx eax, al
test eax, eax
jne 0x550ac4
lea ecx, [ebp - 0x70]
push ecx
call fcn.0045cb90
add esp, 4
mov dword [ebp - 0x4028], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.0043c550
mov eax, dword [ebp - 0x4028]
jmp 0x550cda
cmp dword [ebp - 0x13ba], 2
je 0x550afe
cmp dword [ebp - 0x13ba], 3
jne 0x550cd5
lea edx, [ebp - 0x13b6]
push edx
lea ecx, [ebp - 0x28]
call fcn.00446a20
mov dword [ebp - 4], 9
lea ecx, [ebp - 0x28]
call fcn.0044d720
movzx eax, al
test eax, eax
je 0x550b47
mov dword [ebp - 0x4024], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0043c550
mov eax, dword [ebp - 0x4024]
jmp 0x550cda
lea ecx, [ebp - 0x40]
call fcn.00446a90
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x3fe4]
call fcn.00545730
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x40]
push ecx
mov edx, dword [ebp - 0x3fd8]
push edx
mov eax, dword [ebp - 0x3fd4]
push eax
lea ecx, [ebp - 0x3fe4]
call fcn.00546040
lea ecx, [ebp - 0x40]
call fcn.0043d1b0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x550c80
mov ecx, dword [ebp - 0x3fdc]
mov dword [ebp - 0x4020], ecx
mov dword [ebp - 0x4010], fcn.005593e0
mov dword [ebp - 0x400c], 0
mov edx, dword [ebp - 0x4010]
mov dword [ebp - 0x4030], edx
mov eax, dword [ebp - 0x400c]
mov dword [ebp - 0x402c], eax
sub esp, 0x28
mov esi, esp
mov dword [ebp - 0x4054], esp
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x4058], esp
push 0x688006
push 0x687ff7
lea edx, [ebp - 0x4020]
push edx
lea eax, [ebp - 0x4030]
push eax
push ecx
call fcn.005679d0
add esp, 0x14
mov ecx, esi
call fcn.0055ede0
mov dword [ebp - 0x401c], eax
mov ecx, dword [ebp - 0x401c]
mov dword [ebp - 0x405c], ecx
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x3fd8]
push edx
mov eax, dword [ebp - 0x3fd4]
push eax
lea ecx, [ebp - 0x28]
push ecx
call fcn.00528350
mov byte [ebp - 4], 0xb
mov ecx, eax
call fcn.00528e20
mov dword [ebp - 0x4018], 1
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x3fe4]
call fcn.00545750
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x40]
call fcn.0043c550
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0043c550
mov eax, dword [ebp - 0x4018]
jmp 0x550cda
mov edx, dword [ebp - 0x3fd8]
push edx
mov eax, dword [ebp - 0x3fd4]
push eax
mov ecx, dword [ebp - 0x3fdc]
call fcn.005593e0
mov dword [ebp - 0x4014], 1
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x3fe4]
call fcn.00545750
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x40]
call fcn.0043c550
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0043c550
mov eax, dword [ebp - 0x4014]
jmp 0x550cda
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005bcdb6
mov esp, ebp
pop ebp
ret 0x10