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

Disassembly:
sub esp, 0x300
lea eax, [esp]
push ebx
push esi
push edi
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x401331
mov edi, str.c:windows_system32
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xc]
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 + 0xc]
lea edx, [esp + 0x10c]
push ecx
push str._smpg4c32.dll
push edx
call fcn.00401721
push str.mpg4c32.dll
push str.vidc.mpg4
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401060
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
add esp, 0x18
test eax, eax
je 0x4013b7
push str.mpg4c32.dll
push str.vidc.mp42
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401060
add esp, 0xc
test eax, eax
je 0x4013b7
push str.mpg4c32.dll
push str.vidc.mp43
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401060
add esp, 0xc
test eax, eax
je 0x4013b7
lea eax, [esp + 0x10c]
push eax
call ebx
test eax, eax
jne 0x40143c
push str.MPG4C32.DLL
call fcn.00401190
push str.mpg4c32.dll
push str.vidc.mpg4
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401130
add esp, 0x10
test eax, eax
jne 0x4013ea
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.00401130
add esp, 0xc
test eax, eax
jne 0x401413
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.00401130
add esp, 0xc
test eax, eax
jne 0x40143c
push eax
push str.ERROR
push str.Registry_MPEG4_codec_v3_failed_
push eax
call esi
lea ecx, [esp + 0xc]
lea edx, [esp + 0x10c]
push ecx
push str._sxvidvfw.dll
push edx
call fcn.00401721
push str.xvidvfw.dll
push str.vidc.XVID
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401060
mov edi, dword [sym.imp.KERNEL32.dll_WinExec]
add esp, 0x18
test eax, eax
je 0x401486
lea eax, [esp + 0x10c]
push eax
call ebx
test eax, eax
jne 0x40153e
push str.xvidvfw.dll
push str.vidc.XVID
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401130
add esp, 0xc
test eax, eax
jne 0x4014bc
push eax
push str.ERROR
push str.Registry_XVID_codec_failed_
push eax
call esi
pop edi
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x300
ret
push str.XviDcore.dll
call fcn.00401190
push str.XviDvfw.dll
call fcn.00401190
push str.XviD.ax
call fcn.00401190
add esp, 0xc
test eax, eax
je 0x401507
lea ecx, [esp + 0xc]
lea edx, [esp + 0x20c]
push ecx
push str.regsvr32.exe__s__sxvid.ax
push edx
call fcn.00401721
add esp, 0xc
lea eax, [esp + 0x20c]
push 0
push eax
call edi
push str.XviD.reg
call fcn.00401190
add esp, 4
test eax, eax
je 0x40153e
lea ecx, [esp + 0xc]
lea edx, [esp + 0x20c]
push ecx
push str.regedit.exe__s__sxvid.reg
push edx
call fcn.00401721
add esp, 0xc
lea eax, [esp + 0x20c]
push 0
push eax
call edi
lea ecx, [esp + 0xc]
lea edx, [esp + 0x10c]
push ecx
push str._swmv9vcm.dll
push edx
call fcn.00401721
push str.wmv9vcm.dll
push str.vidc.WMV3
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401060
add esp, 0x18
test eax, eax
je 0x40157e
lea eax, [esp + 0x10c]
push eax
call ebx
test eax, eax
jne 0x4015c1
push str.wmv9vcm.dll
push str.vidc.WMV3
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401130
add esp, 0xc
test eax, eax
jne 0x4015b4
push eax
push str.ERROR
push str.Registry_Microsoft_WMV9_VCM_codec_failed_
push eax
call esi
pop edi
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x300
ret
push str.wmv9vcm.dll
call fcn.00401190
add esp, 4
push 1
push str.Force_Post_Process_Mode
push str.SoftwareMicrosoftScrunch
call fcn.00401000
lea ecx, [esp + 0x18]
lea edx, [esp + 0x118]
push ecx
push str._sNVH264vfw.dll
push edx
call fcn.00401721
push str.NVH264vfw.dll
push str.vidc.N264
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401060
add esp, 0x24
test eax, eax
je 0x401616
lea eax, [esp + 0x10c]
push eax
call ebx
test eax, eax
jne 0x4016e1
push str.NVH264vfw.dll
push str.vidc.N264
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401130
add esp, 0xc
test eax, eax
jne 0x40164c
push eax
push str.ERROR
push str.Registry_vidc.N264_codec_failed_
push eax
call esi
pop edi
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x300
ret
push str.NV_H.264_Video_Codec
push str.NVH264vfw.dll
push str.SOFTWAREMicrosoftWindows_NTCurrentVersiondrivers.desc
call fcn.00401130
add esp, 0xc
test eax, eax
jne 0x401682
push eax
push str.ERROR
push str.Registry_nvh264_codec_failed_
push eax
call esi
pop edi
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x300
ret
push str.NVH264vfw.dll
call fcn.00401190
push str.NVH264Decoder.dll
call fcn.00401190
push str.NVPostProc.dll
call fcn.00401190
push str.NVPlayM4.dll
call fcn.00401190
push str.NVH264.ax
call fcn.00401190
add esp, 0x14
test eax, eax
je 0x4016e1
lea ecx, [esp + 0xc]
lea edx, [esp + 0x20c]
push ecx
push str.regsvr32.exe__s__sNVH264.ax
push edx
call fcn.00401721
add esp, 0xc
lea eax, [esp + 0x20c]
push 0
push eax
call edi
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x300
ret