Function at 0x100a7c1c
Capabilities:
Get common file path

Disassembly:
push ebp
xor ebp, ebp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x3c
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebp
mov ebp, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 8
mov dword [esp], 0xfde9
call ebp
sub esp, 0x18
test eax, eax
jg 0x100a7c5d
xor esi, esi
jmp 0x100a7ca9
mov dword [esp + 4], 2
mov edi, eax
mov dword [esp], eax
call sym.avutil_lav_57.dll_mv_calloc
test eax, eax
mov esi, eax
jne 0x100a7c83
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], 0xc
jmp 0x100a7c59
mov dword [esp + 0x14], edi
xor edi, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], 0xfde9
call ebp
sub esp, 0x18
mov dword [esp], 0x100b6458
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push edx
mov dword [esp + 4], 0x100b6472
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push ecx
test eax, eax
push ecx
jne 0x100a7e9d
test esi, esi
je 0x100a7d76
mov dword [esp], esi
xor ebp, ebp
mov ebx, 0x104
call sub.msvcrt.dll_wcslen
mov dword [esp + 0x24], eax
mov dword [esp + 8], 2
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sym.avutil_lav_57.dll_mv_realloc_array
test eax, eax
mov edi, eax
jne 0x100a7d11
mov dword [esp], ebp
call sym.avutil_lav_57.dll_mv_free
jmp 0x100a7d76
mov dword [esp + 8], ebx
xor ebp, ebp
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
sub esp, 0xc
test eax, eax
setne cl
cmp eax, ebx
setae dl
mov ebp, eax
test cl, dl
je 0x100a7d4f
cmp ebx, 0x7fff
ja 0x100a7d4f
add ebx, ebx
mov eax, 0x8000
cmp ebx, eax
mov ebp, edi
cmova ebx, eax
jmp 0x100a7ced
test ebp, ebp
je 0x100a7d6e
mov dword [esp + 4], 0x5c
mov dword [esp], edi
call sub.msvcrt.dll_wcsrchr
test eax, eax
mov ebx, eax
jne 0x100a7d7f
jmp 0x100a7e8b
mov dword [esp], edi
call sym.avutil_lav_57.dll_mv_free
xor edi, edi
xor ebx, ebx
jmp 0x100a7e8b
mov dword [esp + 8], 2
mov ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp], edi
sub ecx, edi
xor ebx, ebx
mov dword [esp + 0x2c], ecx
mov ebp, ecx
sar ebp, 1
add eax, 2
mov dword [esp + 0x28], eax
add eax, ebp
mov dword [esp + 4], eax
mov dword [esp + 0x24], eax
call sym.avutil_lav_57.dll_mv_realloc_array
test eax, eax
mov ebp, eax
je 0x100a7e8b
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x2c]
mov edi, ebp
lea eax, [eax + ecx + 2]
mov dword [esp], eax
call sub.msvcrt.dll_wcscpy
xor ecx, ecx
mov dword [esp + 8], 8
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
sub esp, 0xc
test eax, eax
mov ebx, eax
jne 0x100a7e8b
mov dword [esp], ebp
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [esp + 0x2c], eax
call eax
push edx
test eax, eax
push edx
je 0x100a7e40
mov ecx, dword [esp + 0x28]
add ecx, eax
cmp dword [esp + 0x24], ecx
jae 0x100a7e57
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
mov dword [esp], ebp
mov dword [esp + 0x24], ecx
call sym.avutil_lav_57.dll_mv_realloc_array
mov ecx, dword [esp + 0x24]
test eax, eax
mov edi, eax
jne 0x100a7e44
mov edi, ebp
jmp 0x100a7e8b
mov dword [esp + 4], ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call eax
push ecx
test eax, eax
push ecx
je 0x100a7e8b
add eax, eax
mov word [edi + eax], 0x5c
lea eax, [edi + eax + 2]
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_wcscpy
xor edx, edx
mov dword [esp + 8], 8
mov dword [esp + 4], edx
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
sub esp, 0xc
mov ebx, eax
mov dword [esp], edi
call sym.avutil_lav_57.dll_mv_free
mov dword [esp], esi
call sym.avutil_lav_57.dll_mv_free
jmp 0x100a7ed5
mov dword [esp + 8], 0xa00
xor eax, eax
test esi, esi
mov dword [esp + 4], eax
jne 0x100a7ebf
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
sub esp, 0xc
mov ebx, eax
jmp 0x100a7ed5
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
sub esp, 0xc
mov ebx, eax
mov dword [esp], esi
call sym.avutil_lav_57.dll_mv_free
add esp, 0x3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret