Function at 0x140027040
Capabilities:
Enumerate files on windows
Get common file path
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x9f0]
sub rsp, 0xaf0
mov rax, qword [0x1400dc040]
xor rax, rsp
mov qword [rbp + 0x9e0], rax
mov ecx, 4
mov rax, qword gs:[0x58]
mov rax, qword [rax]
xor r14d, r14d
mov eax, dword [rcx + rax]
cmp dword [0x1400eb984], eax
jg 0x14002776d
lea rcx, [0x1400e16b0]
call fcn.140027920
test al, al
jne 0x140027727
lea rcx, str.libvpl.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x1400e1750], rax
test rax, rax
jne 0x140027110
cmp byte [0x1400eb980], r14b
je 0x1400270e6
lea rcx, [0x1400e9b80]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x1400e1750], rax
test rax, rax
jne 0x140027110
mov r9d, SetErrorInfo
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.m_dll___nullptr
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
mov eax, 3
jmp 0x140027729
lea rdx, str.MFXLoad
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e16b0], rax
test rax, rax
jne 0x140027152
mov r9d, 0xcf
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.Load___decltype_::MFXLoad__::GetProcAddress_m_dll___MFX___Load__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXUnload
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e16b8], rax
test rax, rax
jne 0x140027198
mov r9d, 0xd0
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.Unload___decltype_::MFXUnload__::GetProcAddress_m_dll___MFX___Unload__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXCreateConfig
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e16c0], rax
test rax, rax
jne 0x1400271de
mov r9d, 0xd1
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.CreateConfig___decltype_::MFXCreateConfig__::GetProcAddress_m_dll___MFX___CreateConfig__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXSetConfigFilterProperty
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e16c8], rax
test rax, rax
jne 0x140027224
mov r9d, 0xd2
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.SetConfigFilterProperty___decltype_::MFXSetConfigFilterProperty__::GetProcAddress_m_dll___MFX___SetConfigFilterProperty__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXEnumImplementations
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e16d0], rax
test rax, rax
jne 0x14002726a
mov r9d, 0xd3
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.EnumImplementations___decltype_::MFXEnumImplementations__::GetProcAddress_m_dll___MFX___EnumImplementations__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXDispReleaseImplDescription
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e16d8], rax
test rax, rax
jne 0x1400272b0
mov r9d, 0xd4
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.DispReleaseImplDescription___decltype_::MFXDispReleaseImplDescription__::GetProcAddress_m_dll___MFX___DispReleaseImplDescription__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXCreateSession
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e16e0], rax
test rax, rax
jne 0x1400272f6
mov r9d, 0xd5
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.CreateSession___decltype_::MFXCreateSession__::GetProcAddress_m_dll___MFX___CreateSession__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXClose
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e16f0], rax
test rax, rax
jne 0x14002733c
mov r9d, 0xd6
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.Close___decltype_::MFXClose__::GetProcAddress_m_dll___MFX___Close__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoCORE_SetHandle
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e16e8], rax
test rax, rax
jne 0x140027382
mov r9d, 0xd7
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoCORE_SetHandle___decltype_::MFXVideoCORE_SetHandle__::GetProcAddress_m_dll___MFX___VideoCORE_SetHandle__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_Close
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e16f8], rax
test rax, rax
jne 0x1400273c8
mov r9d, 0xd8
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_Close___decltype_::MFXVideoDECODE_Close__::GetProcAddress_m_dll___MFX___VideoDECODE_Close__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_DecodeFrameAsync
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e1700], rax
test rax, rax
jne 0x14002740e
mov r9d, 0xd9
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_DecodeFrameAsync___decltype_::MFXVideoDECODE_DecodeFrameAsync__::GetProcAddress_m_dll___MFX___VideoDECODE_DecodeFrameAsync__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_DecodeHeader
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e1708], rax
test rax, rax
jne 0x140027454
mov r9d, 0xda
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_DecodeHeader___decltype_::MFXVideoDECODE_DecodeHeader__::GetProcAddress_m_dll___MFX___VideoDECODE_DecodeHeader__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_GetDecodeStat
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e1710], rax
test rax, rax
jne 0x14002749a
mov r9d, 0xdb
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_GetDecodeStat___decltype_::MFXVideoDECODE_GetDecodeStat__::GetProcAddress_m_dll___MFX___VideoDECODE_GetDecodeStat__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_GetPayload
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e1718], rax
test rax, rax
jne 0x1400274e0
mov r9d, 0xdc
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_GetPayload___decltype_::MFXVideoDECODE_GetPayload__::GetProcAddress_m_dll___MFX___VideoDECODE_GetPayload__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_GetVideoParam
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e1720], rax
test rax, rax
jne 0x140027526
mov r9d, 0xdd
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_GetVideoParam___decltype_::MFXVideoDECODE_GetVideoParam__::GetProcAddress_m_dll___MFX___VideoDECODE_GetVideoParam__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_Init
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e1728], rax
test rax, rax
jne 0x14002756c
mov r9d, 0xde
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_Init___decltype_::MFXVideoDECODE_Init__::GetProcAddress_m_dll___MFX___VideoDECODE_Init__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_Query
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e1730], rax
test rax, rax
jne 0x1400275b2
mov r9d, 0xdf
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_Query___decltype_::MFXVideoDECODE_Query__::GetProcAddress_m_dll___MFX___VideoDECODE_Query__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_QueryIOSurf
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e1738], rax
test rax, rax
jne 0x1400275f8
mov r9d, 0xe0
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_QueryIOSurf___decltype_::MFXVideoDECODE_QueryIOSurf__::GetProcAddress_m_dll___MFX___VideoDECODE_QueryIOSurf__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_Reset
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e1740], rax
test rax, rax
jne 0x14002763b
mov r9d, 0xe1
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_Reset___decltype_::MFXVideoDECODE_Reset__::GetProcAddress_m_dll___MFX___VideoDECODE_Reset__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
jmp 0x14002767c
lea rdx, str.MFXVideoDECODE_SetSkipMode
mov rcx, qword [0x1400e1750]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1400e1748], rax
test rax, rax
jne 0x1400276b8
mov r9d, 0xe2
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.VideoDECODE_SetSkipMode___decltype_::MFXVideoDECODE_SetSkipMode__::GetProcAddress_m_dll___MFX___VideoDECODE_SetSkipMode__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
mov rcx, qword [0x1400e1758]
test rcx, rcx
je 0x140027698
mov rax, qword [0x1400e16b8]
call rax
mov qword [0x1400e1758], r14
mov rcx, qword [0x1400e1750]
test rcx, rcx
je 0x1400276b1
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x1400e1750], r14
mov eax, 4
jmp 0x140027729
call qword [0x1400e16b0]
mov qword [0x1400e1758], rax
test rax, rax
jne 0x140027727
mov r9d, 0xe5
lea r8, str.dte::intel::VplInterface::load_
lea rdx, str.m_loader__Load__
lea rcx, str.__s__does_not_hold___s__d_
call fcn.140011520
nop
mov rcx, qword [0x1400e1758]
test rcx, rcx
je 0x140027707
mov rax, qword [0x1400e16b8]
call rax
mov qword [0x1400e1758], r14
mov rcx, qword [0x1400e1750]
test rcx, rcx
je 0x140027720
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x1400e1750], r14
mov eax, 5
jmp 0x140027729
xor eax, eax
mov rcx, qword [rbp + 0x9e0]
xor rcx, rsp
call fcn.140053bc0
lea r11, [rsp + 0xaf0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
mov byte [0x1400eb980], dil
lea rcx, [0x1400eb984]
call fcn.140053c1c
jmp 0x140027097
lea rcx, [0x1400eb984]
call fcn.140053c88
cmp dword [0x1400eb984], 0xffffffff
jne 0x140027097
mov edx, 0x105
lea rcx, [rbp + 0x5c0]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea r8, [rbp + 0x5c0]
lea rdx, str._sDriverStoreFileRepository_
lea rcx, [rbp + 0x1a0]
call fcn.140027c00
lea r9, [0x1400bd418]
lea r8, [rbp + 0x1a0]
lea rdx, str._s_s
lea rcx, [rbp + 0x7d0]
call fcn.140027c00
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x50]
call fcn.1400835b0
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x7d0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rsi, rax
xor dil, dil
cmp rax, 0xffffffffffffffff
je 0x140027755
mov qword [rsp + 0x48], r14
lea r15, str.vpl_dispatcher_64.dll
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0x7c]
lea r8, [rbp + 0x1a0]
lea rdx, str._s_s_s
lea rcx, [rbp + 0x3b0]
call fcn.140027c00
mov qword [rsp + 0x20], r14
xor edx, edx
lea r9d, [rdx + 3]
lea r8d, [rdx + 7]
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.KERNEL32.dll_CreateFile2]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400278f1
lea r9, [rsp + 0x30]
xor r8d, r8d
lea rdx, [rsp + 0x38]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
jne 0x140027885
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400278f1
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_CompareFileTime]
mov rcx, qword [rsp + 0x30]
test eax, eax
cmovg rcx, qword [rsp + 0x38]
mov qword [rsp + 0x40], rcx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jns 0x1400278f1
mov dil, 1
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
lea r8, [rbp + 0x3b0]
mov edx, 0x105
lea rcx, [0x1400e9b80]
call fcn.14006b104
mov word [0x1400e9d88], r14w
lea rdx, [rsp + 0x50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x140027813
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
jmp 0x140027755