Function at 0x401290
Capabilities:
Check if file exists
Create process on windows
Get common file path

Disassembly:
sub esp, 0x300
lea eax, [esp]
push esi
push edi
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x4012d0
mov edi, str.c:windows_system32
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 8]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 8]
lea edx, [esp + 0x108]
push ecx
push str._smpg4c32.dll
push edx
call fcn.00401521
push str.mpg4c32.dll
push str.vidc.mpg4
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call section..text
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
add esp, 0x18
test eax, eax
je 0x401356
push str.mpg4c32.dll
push str.vidc.mp42
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call section..text
add esp, 0xc
test eax, eax
je 0x401356
push str.mpg4c32.dll
push str.vidc.mp43
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call section..text
add esp, 0xc
test eax, eax
je 0x401356
lea eax, [esp + 0x108]
push eax
call edi
test eax, eax
jne 0x4013db
push str.MPG4C32.DLL
call fcn.00401130
push str.mpg4c32.dll
push str.vidc.mpg4
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.004010d0
add esp, 0x10
test eax, eax
jne 0x401389
push eax
push str.ERROR
push str.Registry_MPEG4_codec_v1_failed_
push eax
call esi
push str.mpg4c32.dll
push str.vidc.mp42
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.004010d0
add esp, 0xc
test eax, eax
jne 0x4013b2
push eax
push str.ERROR
push str.Registry_MPEG4_codec_v2_failed_
push eax
call esi
push str.mpg4c32.dll
push str.vidc.mp43
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.004010d0
add esp, 0xc
test eax, eax
jne 0x4013db
push eax
push str.ERROR
push str.Registry_MPEG4_codec_v3_failed_
push eax
call esi
lea ecx, [esp + 8]
lea edx, [esp + 0x108]
push ecx
push str._sxvidvfw.dll
push edx
call fcn.00401521
push str.xvidvfw.dll
push str.vidc.XVID
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call section..text
add esp, 0x18
test eax, eax
je 0x40141f
lea eax, [esp + 0x108]
push eax
call edi
test eax, eax
jne 0x4014dc
push str.xvidvfw.dll
push str.vidc.XVID
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.004010d0
add esp, 0xc
test eax, eax
jne 0x401454
push eax
push str.ERROR
push str.Registry_XVID_codec_failed_
push eax
call esi
pop edi
or eax, 0xffffffff
pop esi
add esp, 0x300
ret
push str.XviDcore.dll
call fcn.00401130
push str.XviDvfw.dll
call fcn.00401130
push str.XviD.ax
call fcn.00401130
mov esi, dword [sym.imp.KERNEL32.dll_WinExec]
add esp, 0xc
test eax, eax
je 0x4014a5
lea ecx, [esp + 8]
lea edx, [esp + 0x208]
push ecx
push str.regsvr32.exe__s__sxvid.ax
push edx
call fcn.00401521
add esp, 0xc
lea eax, [esp + 0x208]
push 0
push eax
call esi
push str.XviD.reg
call fcn.00401130
add esp, 4
test eax, eax
je 0x4014dc
lea ecx, [esp + 8]
lea edx, [esp + 0x208]
push ecx
push str.regedit.exe__s__sxvid.reg
push edx
call fcn.00401521
add esp, 0xc
lea eax, [esp + 0x208]
push 0
push eax
call esi
pop edi
xor eax, eax
pop esi
add esp, 0x300
ret