Function at 0x4c3442
Capabilities:
Get common file path

Disassembly:
push 0x304
mov eax, 0x5a55db
call fcn.0056beab
mov esi, ecx
push 0xe
xor ebx, ebx
push 1
mov edi, str.srcShadowPlaySupport.cpp
mov dword [ebp - 0x278], esi
mov dword [ebp - 0x264], ebx
call fcn.0047f667
pop ecx
pop ecx
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 0x26c], eax
mov dword [ebp - 4], 1
cmp eax, ebx
jge 0x4c34d5
lea eax, [ebp - 0x310]
push eax
call fcn.00403aba
mov esi, eax
push str.Cannot_initialize_COM:
push esi
mov byte [ebp - 4], 2
call fcn.0040635f
pop ecx
pop ecx
push dword [ebp - 0x26c]
push esi
call fcn.004108f3
lea eax, [ebp - 0x234]
push eax
mov eax, esi
call fcn.00403b24
mov byte [ebp - 4], 3
push 0x15
mov ecx, edi
lea eax, [ebp - 0x234]
call fcn.0040277f
xor eax, eax
push 0x206
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push ebx
push eax
call fcn.0055fda0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x4c3521
push str.GetSystemDirectory_failed
lea esi, [ebp - 0x234]
call fcn.004037ae
mov byte [ebp - 4], 4
push 0x1b
jmp 0x4c34c8
push str.nvspcap.dll
lea eax, [ebp - 0x218]
push eax
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
test eax, eax
jne 0x4c3553
push str.PathCombineW_failed
lea esi, [ebp - 0x234]
call fcn.004037ae
mov byte [ebp - 4], 5
push 0x1f
jmp 0x4c34c8
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x270], eax
cmp eax, ebx
jne 0x4c35b1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea eax, [ebp - 0x310]
push eax
call fcn.00403aba
mov esi, eax
push str.Cannot_load_ShadowPlay_DLL:
push esi
mov byte [ebp - 4], 6
call fcn.00406513
pop ecx
pop ecx
push ebx
push esi
call fcn.004109e7
lea eax, [ebp - 0x234]
push eax
mov eax, esi
call fcn.00403b24
mov byte [ebp - 4], 7
push 0x26
jmp 0x4c34c8
mov dword [ebp - 0x274], eax
push str.QueryShadowPlayInterface
push eax
mov byte [ebp - 4], 8
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
jne 0x4c3612
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea eax, [ebp - 0x310]
push eax
call fcn.00403aba
mov esi, eax
push str.GetProcAddress_failed_with
push esi
mov byte [ebp - 4], 9
call fcn.00406513
pop ecx
pop ecx
push ebx
push esi
call fcn.004109e7
lea eax, [ebp - 0x234]
push eax
mov eax, esi
call fcn.00403b24
mov byte [ebp - 4], 0xa
push 0x30
jmp 0x4c34c8
lea ecx, [ebp - 0x260]
push ecx
push 8
mov dword [ebp - 0x260], ebx
call eax
mov dword [ebp - 0x254], eax
cmp eax, ebx
jge 0x4c3671
lea eax, [ebp - 0x310]
push eax
call fcn.00403aba
mov esi, eax
push str.QueryShadowPlayInterface_failed_with
push esi
mov byte [ebp - 4], 0xb
call fcn.00406513
pop ecx
pop ecx
push dword [ebp - 0x254]
push esi
call fcn.004108f3
lea eax, [ebp - 0x234]
push eax
mov eax, esi
call fcn.00403b24
mov byte [ebp - 4], 0xc
push 0x38
jmp 0x4c34c8
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x25c], eax
mov byte [ebp - 4], 0xd
mov eax, 0x1f4
lea ecx, [ebp - 0x228]
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x220], ebx
call fcn.004c37fe
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x224]
sub eax, dword [ebp - 0x228]
mov ecx, 0x23c
cdq
idiv ecx
mov dword [ebp - 0x268], eax
imul eax, eax, 0x23c
push eax
push ebx
push dword [ebp - 0x228]
call fcn.0055fda0
add esp, 0xc
lea eax, [ebp - 0x258]
push eax
push dword [ebp - 0x228]
mov eax, dword [ebp - 0x25c]
push 1
push 3
call dword [eax + 0x44]
mov dword [ebp - 0x254], eax
cmp eax, ebx
jge 0x4c374d
lea eax, [ebp - 0x310]
push eax
call fcn.00403aba
mov esi, eax
push str.GetStatInfo_failed_with
push esi
mov byte [ebp - 4], 0xf
call fcn.00406513
pop ecx
pop ecx
push dword [ebp - 0x254]
push esi
call fcn.004108f3
lea eax, [ebp - 0x250]
push eax
mov eax, esi
call fcn.00403b24
mov byte [ebp - 4], 0x10
push 0x58
mov ecx, edi
lea eax, [ebp - 0x250]
jmp 0x4c34d0
mov eax, dword [ebp - 0x258]
cmp eax, ebx
je 0x4c3763
cmp dword [ebp - 0x268], eax
jae 0x4c3763
xor al, al
jmp 0x4c3766
xor eax, eax
inc eax
push 0x5a
push eax
call fcn.0047f69c
mov eax, dword [ebp - 0x258]
pop ecx
pop ecx
lea ecx, [ebp - 0x228]
call fcn.004c37fe
lea eax, [ebp - 0x228]
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
cmp esi, eax
je 0x4c37b3
mov eax, dword [ebp - 0x228]
mov dword [esi], eax
mov eax, dword [ebp - 0x224]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x220]
mov dword [esi + 8], eax
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x264], 1
cmp dword [ebp - 0x228], ebx
je 0x4c37d1
push dword [ebp - 0x228]
call fcn.0055da69
pop ecx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x25c]
push 0xffffffffffffffff
call dword [eax + 0x4c]
push dword [ebp - 0x270]
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
call fcn.0056bf2e
ret