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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x445550
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x45b050]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
xor edi, edi
mov dword [ebp - 0x30], edi
xor eax, eax
mov dword [ebp - 4], edi
mov dword [ebp - 0x2c], eax
mov esi, dword [ebx + 0x64]
mov ecx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 1
test esi, esi
je 0x415581
push eax
call ecx
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov dword [ebp - 0x30], edi
test edi, edi
jne 0x415578
push 0x8007000e
call fcn.00403440
mov eax, dword [ebp - 0x2c]
mov ecx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [ebx + 0x68]
cmp esi, eax
je 0x4155ae
push eax
call ecx
test esi, esi
je 0x4155a7
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x4155ae
push 0x8007000e
call fcn.00403440
mov dword [ebp - 0x2c], 0
cmp byte [ebx + 0x6c], 0
mov esi, dword [sym.imp.OLEAUT32.dll_VariantInit]
jne 0x4155ce
push edi
call esi
test eax, eax
je 0x4155ce
push dword [ebp - 0x2c]
call esi
test eax, eax
jne 0x41565e
push str..nrg_.bin_.ccd_.cue_.iso_.isz_.vcd_.ape_.flac_.wv_.mds_.mdf_.img_
push 0x2793
lea eax, [ebp - 0x30]
mov ecx, ebx
push eax
call fcn.004173f0
test eax, eax
je 0x415817
push dword [ebp - 0x2c]
call esi
mov edi, dword [ebp - 0x30]
test eax, eax
jne 0x41565e
push edi
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov esi, eax
push str..zip
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x41563e
push str..mou
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x41563e
push str..wim
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x41563e
lea eax, [ebp - 0x2c]
push eax
call fcn.004116a0
add esp, 4
jmp 0x41565e
test edi, edi
jne 0x415646
xor eax, eax
jmp 0x415655
push edi
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
push eax
push edi
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004136b0
push 0x2819
push 0x2818
push 0x27dd
mov ecx, ebx
call fcn.004177f0
mov edx, dword [ebx + 0x58]
lea eax, [ebx + 0x28]
mov ecx, ebx
neg ecx
mov esi, dword [edx]
sbb ecx, ecx
and ecx, eax
push ecx
push dword [ebp - 0x2c]
push edi
push edx
call dword [esi + 0x14]
mov edx, eax
test edx, edx
js 0x415710
push edi
mov ecx, ebx
jne 0x4156fc
push 0x281d
push 0x27dd
call fcn.00417940
call fcn.00411860
test eax, eax
je 0x41581a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
push dword [ebp - 0x2c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4156e1
push 0x3e8
call ebx
inc esi
cmp esi, 0xa
jl 0x4156c2
jmp 0x41581a
push 5
push 0
push 0
push dword [ebp - 0x2c]
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x41581a
push 0x2800
push 0x27dd
call fcn.00417940
jmp 0x41581a
cmp edx, 0xeeee0001
jne 0x41578d
mov dword [ebp - 0x34], 0
push 0x27ff
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call fcn.00415020
mov edi, dword [ebp - 0x30]
lea ecx, [ebp - 0x28]
push edi
call fcn.00402b10
push 2
push 0x447f0c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.0040cca0
push 0
lea ecx, [ebp - 0x28]
call fcn.0040cc50
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, ebx
cmovae eax, dword [ebp - 0x28]
push eax
push 0x27fe
push 0x27dd
call fcn.00417940
lea ecx, [ebp - 0x28]
call fcn.00402a00
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push 0
call esi
jmp 0x415820
cmp edx, 0xeeee0002
jne 0x415803
mov dword [ebp - 0x34], 0
push 0x27fd
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 4
call fcn.00415020
push edi
lea ecx, [ebp - 0x28]
call fcn.00402b10
push 0x447f0c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.0040cc50
mov esi, dword [ebp - 0x34]
lea ecx, [ebp - 0x28]
push esi
call fcn.0040cc50
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov ecx, ebx
cmovae eax, dword [ebp - 0x28]
push eax
push 0x27fe
push 0x27dd
call fcn.00417940
lea ecx, [ebp - 0x28]
call fcn.00402a00
push esi
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call esi
jmp 0x415820
cmp edx, 0x80004004
je 0x41581a
mov ecx, dword [ebx + 0x28]
lea eax, [ebx + 0x28]
push edx
push eax
call dword [ecx]
jmp 0x41581a
mov edi, dword [ebp - 0x30]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [ebp - 0x2c]
call esi
push edi
call esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004204ef
mov esp, ebp
pop ebp
ret