Function at 0x453e20
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1014
call fcn.0043b1e0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x1010], edi
test ebx, ebx
je 0x4541ec
test edi, edi
je 0x4541ec
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x453e99
test esi, esi
je 0x45421b
push ebx
push str.ERROR:_File_not_found_for:__s
lea eax, [ebp - 0x1004]
push 0x800
push eax
call fcn.00402670
lea eax, [ebp - 0x1004]
push eax
push esi
call fcn.00438440
add esp, 0x18
jmp 0x45421b
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4541dd
test al, 0x10
je 0x4541dd
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov edi, eax
test edi, edi
js 0x4541c8
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0
push eax
push ebx
call fcn.004533d0
mov edi, eax
add esp, 8
test edi, edi
js 0x4541c2
call fcn.00452790
cmp dword [ebp - 0x100c], 0
mov byte [ebp - 0x1005], al
je 0x4540ac
lea eax, [ebp - 0x1014]
mov dword [ebp - 0x1014], 0
push eax
push 0x4700c8
push 1
push 0
push 0x4700b8
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, eax
test edi, edi
js 0x453fe7
mov ecx, dword [ebp - 0x1014]
test ecx, ecx
je 0x453fe7
cmp byte [ebp - 0x1005], 0
je 0x453fa3
test esi, esi
je 0x453f66
push str.IGameExplorer2_for_windows_7
push esi
call fcn.00438440
add esp, 8
mov ecx, esi
call fcn.00437480
mov ecx, dword [ebp - 0x1014]
push esi
push dword [ebp + 0x10]
push dword [ebp - 0x1010]
push ebx
push ecx
call fcn.00452b40
mov ecx, dword [ebp - 0x1014]
add esp, 0x14
mov edi, eax
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00438f17
mov esp, ebp
pop ebp
ret 0x14
test esi, esi
je 0x454170
push str.Obtained_IGameExplorer2__but_OS_version_does_not_support_GDF.__Skipping_GDF_install_
push esi
call fcn.00438440
add esp, 8
mov ecx, esi
call fcn.00437480
mov ecx, dword [ebp - 0x1014]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00438f17
mov esp, ebp
pop ebp
ret 0x14
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0
push eax
push 0x4701c4
push 1
push 0
push 0x4700b8
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, eax
test edi, edi
js 0x45409a
mov ecx, dword [ebp - 0x100c]
test ecx, ecx
je 0x45409a
cmp byte [ebp - 0x1005], 0
je 0x454088
test esi, esi
je 0x454048
push str.IGameExplorer_for_Vista
push esi
call fcn.00438440
add esp, 8
mov ecx, esi
call fcn.00437480
mov ecx, dword [ebp - 0x100c]
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x1010]
push ebx
push ecx
call fcn.00452c80
mov ecx, dword [ebp - 0x100c]
add esp, 0x18
mov edi, eax
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00438f17
mov esp, ebp
pop ebp
ret 0x14
test esi, esi
je 0x454170
push str.Obtained_IGameExplorer__but_OS_version_does_not_support_GDF.__Skipping_GDF_install_
jmp 0x45415a
test esi, esi
je 0x4541aa
push str.Installing_IGameExplorer_registry_for_XP
jmp 0x45419a
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0
push eax
push 0x4701c4
push 1
push 0
push 0x4700b8
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, eax
test edi, edi
js 0x454191
mov ecx, dword [ebp - 0x100c]
test ecx, ecx
je 0x454191
cmp byte [ebp - 0x1005], 0
je 0x454151
test esi, esi
je 0x454111
push str.IGameExplorer_for_vista_or_windows_7
push esi
call fcn.00438440
add esp, 8
mov ecx, esi
call fcn.00437480
mov ecx, dword [ebp - 0x100c]
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x1010]
push ebx
push ecx
call fcn.00452c80
mov ecx, dword [ebp - 0x100c]
add esp, 0x18
mov edi, eax
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00438f17
mov esp, ebp
pop ebp
ret 0x14
test esi, esi
je 0x454170
push str.Obtained_IGameExplorer_interface__but_OS_version_does_not_support_GDF.__Skipping_GDF_install_
push esi
call fcn.00438440
add esp, 8
mov ecx, esi
call fcn.00437480
mov ecx, dword [ebp - 0x100c]
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00438f17
mov esp, ebp
pop ebp
ret 0x14
test esi, esi
je 0x4541aa
push str.IGameExplorer_for_XP
push esi
call fcn.00438440
add esp, 8
mov ecx, esi
call fcn.00437480
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x1010]
push ebx
call fcn.00452820
add esp, 0x14
xor edi, edi
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00438f17
mov esp, ebp
pop ebp
ret 0x14
test esi, esi
je 0x45421b
push edi
push str.ERROR:_Directory_not_found_for:__s
jmp 0x453e73
test esi, esi
je 0x45421b
test ebx, ebx
jne 0x454202
push str.Error:_GDF_DLL_path_information_is_missing.
push esi
call fcn.00438440
add esp, 8
test edi, edi
jne 0x454214
push str.Error:_Game_installation_path_information_is_missing.
push esi
call fcn.00438440
add esp, 8
mov ecx, esi
call fcn.00437480
mov ecx, dword [ebp - 4]
mov eax, 0x80070057
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00438f17
mov esp, ebp
pop ebp
ret 0x14