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

Disassembly:
sub esp, 0x300
lea eax, [esp]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x4012e9
mov cl, byte [eax + str.c:windows_system32]
mov byte [esp + eax], cl
inc eax
test cl, cl
jne 0x4012da
push esi
lea ecx, [esp + 4]
push edi
push ecx
lea edx, [esp + 0x10c]
push str._sxvidvfw.dll
push edx
call fcn.00401671
push 0x407344
push str.vidc.XVID
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401060
mov esi, dword [sym.imp.KERNEL32.dll_WinExec]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
add esp, 0x18
test eax, eax
je 0x40133b
lea eax, [esp + 0x108]
push eax
call edi
test eax, eax
jne 0x4013f6
push 0x407344
push str.vidc.XVID
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401130
add esp, 0xc
test eax, eax
jne 0x401374
push eax
push str.ERROR
push str.Registry_XVID_codec_failed_
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
or eax, 0xffffffff
pop esi
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 0x4013bf
lea ecx, [esp + 8]
lea edx, [esp + 0x208]
push ecx
push str.regsvr32.exe__s__sxvid.ax
push edx
call fcn.00401671
add esp, 0xc
lea eax, [esp + 0x208]
push 0
push eax
call esi
push str.XviD.reg
call fcn.00401190
add esp, 4
test eax, eax
je 0x4013f6
lea ecx, [esp + 8]
lea edx, [esp + 0x208]
push ecx
push str.regedit.exe__s__sxvid.reg
push edx
call fcn.00401671
add esp, 0xc
lea eax, [esp + 0x208]
push 0
push eax
call esi
lea ecx, [esp + 8]
lea edx, [esp + 0x108]
push ecx
push str._swmv9vcm.dll
push edx
call fcn.00401671
push str.wmv9vcm.dll
push str.vidc.WMV3
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401060
add esp, 0x18
test eax, eax
je 0x401436
lea eax, [esp + 0x108]
push eax
call edi
test eax, eax
jne 0x40147c
push str.wmv9vcm.dll
push str.vidc.WMV3
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401130
add esp, 0xc
test eax, eax
jne 0x40146f
push eax
push str.ERROR
push str.Registry_Microsoft_WMV9_VCM_codec_failed_
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
or eax, 0xffffffff
pop esi
add esp, 0x300
ret
push str.wmv9vcm.dll
call fcn.00401190
add esp, 4
push 1
push 0x407208
push str.SoftwareMicrosoftScrunch
call fcn.00401000
lea ecx, [esp + 0x14]
lea edx, [esp + 0x114]
push ecx
push str._sNVH264vfw.dll
push edx
call fcn.00401671
push 0x4071c8
push str.vidc.N264
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401060
add esp, 0x24
test eax, eax
je 0x4014d1
lea eax, [esp + 0x108]
push eax
call edi
test eax, eax
jne 0x401598
push 0x4071c8
push str.vidc.N264
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401130
add esp, 0xc
test eax, eax
jne 0x40150a
push eax
push str.ERROR
push str.Registry_vidc.N264_codec_failed_
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
or eax, 0xffffffff
pop esi
add esp, 0x300
ret
push str.NV_H.264_Video_Codec
push 0x4071c8
push str.SOFTWAREMicrosoftWindows_NTCurrentVersiondrivers.desc
call fcn.00401130
add esp, 0xc
test eax, eax
jne 0x401543
push eax
push str.ERROR
push str.Registry_nvh264_codec_failed_
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
or eax, 0xffffffff
pop esi
add esp, 0x300
ret
push 0x4071c8
call fcn.00401190
push 0x407110
call fcn.00401190
push 0x407100
call fcn.00401190
push 0x4070f4
call fcn.00401190
add esp, 0x10
test eax, eax
je 0x401598
lea ecx, [esp + 8]
lea edx, [esp + 0x208]
push ecx
push str.regsvr32.exe__s__sNVH264.ax
push edx
call fcn.00401671
add esp, 0xc
lea eax, [esp + 0x208]
push 0
push eax
call esi
lea ecx, [esp + 8]
lea edx, [esp + 0x108]
push ecx
push str._sG723adpcm.acm
push edx
call fcn.00401671
push str.G723adpcm.acm
push str.msacm.g723adpcm
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401060
add esp, 0x18
test eax, eax
je 0x4015d8
lea eax, [esp + 0x108]
push eax
call edi
test eax, eax
jne 0x401628
push str.G723adpcm.acm
push str.msacm.g723adpcm
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionDrivers32
call fcn.00401130
add esp, 0xc
test eax, eax
jne 0x401611
push eax
push str.ERROR
push str.Registry_msacm.g723adpcm_failed_
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
or eax, 0xffffffff
pop esi
add esp, 0x300
ret
push str.G723adpcm.acm
call fcn.00401190
push 0x407110
call fcn.00401190
add esp, 8
pop edi
xor eax, eax
pop esi
add esp, 0x300
ret