Function at 0x100dba60
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x818
push esi
push edi
push 0x104
lea eax, [esp + 0x424]
mov dword [esp + 0x1c], ecx
push eax
mov dword [esp + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov esi, dword [ebp + 0xc]
mov ecx, 0x20
mov edi, dword [ebp + 8]
test eax, eax
je 0x100dc2ba
xor eax, eax
mov word [esp + 0x626], ax
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.ddraw.dll
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
test eax, eax
js 0x100dbbbc
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
cmp edx, 0x40002
ja 0x100dbb11
jb 0x100dbb41
cmp ecx, 0x5f
ja 0x100dbb11
jb 0x100dbb41
test edi, edi
je 0x100dbb1b
mov dword [edi], 1
test esi, esi
je 0x100dbb25
mov dword [esi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dbb37
mov esi, 0x20
mov word [eax], si
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x14], 1
jmp 0x100dbb44
mov eax, dword [ebp + 0x10]
cmp edx, 0x40003
ja 0x100dbb58
jb 0x100dbb83
cmp ecx, 0x448
ja 0x100dbb58
jb 0x100dbb83
test edi, edi
je 0x100dbb62
mov dword [edi], 2
test esi, esi
je 0x100dbb6c
mov dword [esi], 0
test eax, eax
je 0x100dbb7b
mov esi, 0x20
mov word [eax], si
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x14], 1
cmp edx, 0x40004
ja 0x100dbb94
jb 0x100dbbbc
cmp ecx, 0x44
ja 0x100dbb94
jb 0x100dbbbc
test edi, edi
je 0x100dbb9e
mov dword [edi], 3
test esi, esi
je 0x100dbba8
mov dword [esi], 0
test eax, eax
je 0x100dbbb4
mov ecx, 0x20
mov word [eax], cx
mov dword [esp + 0x14], 1
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.d3drg8x.dll
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
mov ecx, 0x61
test eax, eax
js 0x100dbc46
cmp dword [esp + 0xc], 0x40004
ja 0x100dbc20
jb 0x100dbc46
cmp dword [esp + 8], 0x46
ja 0x100dbc20
jb 0x100dbc46
test edi, edi
je 0x100dbc2a
mov dword [edi], 3
test esi, esi
je 0x100dbc34
mov dword [esi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dbc3e
mov word [eax], cx
mov dword [esp + 0x14], 1
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.ddraw.dll
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
test eax, eax
js 0x100dbd5e
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
cmp edx, 0x40005
ja 0x100dbcb0
jb 0x100dbce0
cmp ecx, 0x9b
ja 0x100dbcb0
jb 0x100dbce0
test edi, edi
je 0x100dbcba
mov dword [edi], 5
test esi, esi
je 0x100dbcc4
mov dword [esi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dbcd6
mov esi, 0x20
mov word [eax], si
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x14], 1
jmp 0x100dbce3
mov eax, dword [ebp + 0x10]
cmp edx, 0x40006
ja 0x100dbcf7
jb 0x100dbd5e
cmp ecx, 0x13e
ja 0x100dbcf7
jb 0x100dbd22
test edi, edi
je 0x100dbd01
mov dword [edi], 6
test esi, esi
je 0x100dbd0b
mov dword [esi], 0
test eax, eax
je 0x100dbd1a
mov esi, 0x20
mov word [eax], si
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x14], 1
cmp edx, 0x40006
ja 0x100dbd36
jb 0x100dbd5e
cmp ecx, 0x1b4
ja 0x100dbd36
jb 0x100dbd5e
test edi, edi
je 0x100dbd40
mov dword [edi], 6
test esi, esi
je 0x100dbd4a
mov dword [esi], 1
test eax, eax
je 0x100dbd56
mov ecx, 0x20
mov word [eax], cx
mov dword [esp + 0x14], 1
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.dplayx.dll
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
test eax, eax
js 0x100dbdeb
cmp dword [esp + 0xc], 0x40006
ja 0x100dbdc0
jb 0x100dbdeb
cmp dword [esp + 8], 0x30206
ja 0x100dbdc0
jb 0x100dbdeb
test edi, edi
je 0x100dbdca
mov dword [edi], 6
test esi, esi
je 0x100dbdd4
mov dword [esi], 1
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dbde3
mov ecx, 0x61
mov word [eax], cx
mov dword [esp + 0x14], 1
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.ddraw.dll
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
test eax, eax
js 0x100dbe78
cmp dword [esp + 0xc], 0x40007
ja 0x100dbe4d
jb 0x100dbe78
cmp dword [esp + 8], 0x2bc
ja 0x100dbe4d
jb 0x100dbe78
test edi, edi
je 0x100dbe57
mov dword [edi], 7
test esi, esi
je 0x100dbe61
mov dword [esi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dbe70
mov ecx, 0x20
mov word [eax], cx
mov dword [esp + 0x14], 1
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.dinput.dll
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
test eax, eax
js 0x100dbf05
cmp dword [esp + 0xc], 0x40007
ja 0x100dbeda
jb 0x100dbf05
cmp dword [esp + 8], 0x2cc
ja 0x100dbeda
jb 0x100dbf05
test edi, edi
je 0x100dbee4
mov dword [edi], 7
test esi, esi
je 0x100dbeee
mov dword [esi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dbefd
mov ecx, 0x61
mov word [eax], cx
mov dword [esp + 0x14], 1
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.ddraw.dll
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
test eax, eax
js 0x100dbfbe
mov ecx, dword [esp + 0xc]
mov eax, ecx
mov edx, dword [esp + 8]
shr eax, 0x10
cmp ax, 4
jne 0x100dbf74
cmp ecx, 0x40008
ja 0x100dbf93
jb 0x100dbf74
cmp edx, 0x190
jae 0x100dbf93
cmp ax, 5
jne 0x100dbfbe
push 0x50001
push 0x8d20190
push ecx
mov ecx, dword [esp + 0x24]
push edx
call sym.WMCommon.dll_private:_int___thiscall_WM::GMDirectXDetect::CompareLargeInts_union__ULARGE_INTEGER__union__ULARGE_INTEGER_
test eax, eax
js 0x100dbfbe
test edi, edi
je 0x100dbf9d
mov dword [edi], 8
test esi, esi
je 0x100dbfa7
mov dword [esi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dbfb6
mov ecx, 0x20
mov word [eax], cx
mov dword [esp + 0x14], 1
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.d3d8.dll
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
test eax, eax
js 0x100dc0f1
mov eax, dword [esp + 0xc]
mov ecx, eax
mov edx, dword [esp + 8]
shr ecx, 0x10
mov dword [esp + 0x1c], ecx
cmp cx, 4
jne 0x100dc034
cmp eax, 0x40008
ja 0x100dc053
jb 0x100dc034
cmp edx, 0x10371
jae 0x100dc053
cmp cx, 5
jne 0x100dc082
mov ecx, dword [esp + 0x18]
push 0x50001
push 0xa280371
push eax
push edx
call sym.WMCommon.dll_private:_int___thiscall_WM::GMDirectXDetect::CompareLargeInts_union__ULARGE_INTEGER__union__ULARGE_INTEGER_
test eax, eax
js 0x100dc07e
test edi, edi
je 0x100dc05d
mov dword [edi], 8
test esi, esi
je 0x100dc067
mov dword [esi], 1
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dc076
mov ecx, 0x20
mov word [eax], cx
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
cmp cx, 4
jne 0x100dc0a3
cmp eax, 0x40008
ja 0x100dc0c6
mov edx, dword [esp + 8]
jb 0x100dc0a7
cmp edx, 0x10385
jae 0x100dc0c6
jmp 0x100dc0a7
mov edx, dword [esp + 8]
cmp cx, 5
jne 0x100dc0f1
mov ecx, dword [esp + 0x18]
push 0x50001
push 0xa280385
push eax
push edx
call sym.WMCommon.dll_private:_int___thiscall_WM::GMDirectXDetect::CompareLargeInts_union__ULARGE_INTEGER__union__ULARGE_INTEGER_
test eax, eax
js 0x100dc0f1
test edi, edi
je 0x100dc0d0
mov dword [edi], 8
test esi, esi
je 0x100dc0da
mov dword [esi], 1
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dc0e9
mov ecx, 0x61
mov word [eax], cx
mov dword [esp + 0x14], 1
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.mpg2splt.ax
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
test eax, eax
js 0x100dc17e
cmp dword [esp + 0xc], 0x60003
ja 0x100dc153
jb 0x100dc17e
cmp dword [esp + 8], 0x10375
ja 0x100dc153
jb 0x100dc17e
test edi, edi
je 0x100dc15d
mov dword [edi], 8
test esi, esi
je 0x100dc167
mov dword [esi], 1
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dc176
mov ecx, 0x62
mov word [eax], cx
mov dword [esp + 0x14], 1
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.dpnet.dll
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
test eax, eax
js 0x100dc237
mov ecx, dword [esp + 0xc]
mov eax, ecx
mov edx, dword [esp + 8]
shr eax, 0x10
cmp ax, 4
jne 0x100dc1ed
cmp ecx, 0x40009
ja 0x100dc20c
jb 0x100dc1ed
cmp edx, 0x86
jae 0x100dc20c
cmp ax, 5
jne 0x100dc237
push 0x50002
push 0xe5d0086
push ecx
mov ecx, dword [esp + 0x24]
push edx
call sym.WMCommon.dll_private:_int___thiscall_WM::GMDirectXDetect::CompareLargeInts_union__ULARGE_INTEGER__union__ULARGE_INTEGER_
test eax, eax
js 0x100dc237
test edi, edi
je 0x100dc216
mov dword [edi], 8
test esi, esi
je 0x100dc220
mov dword [esi], 2
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dc22f
mov ecx, 0x20
mov word [eax], cx
mov dword [esp + 0x14], 1
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x24]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [esp + 0x20]
push str.d3d9.dll
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
add esp, 0xc
push eax
lea eax, [esp + 0x24]
push eax
call sym.WMCommon.dll_private:_long_int___thiscall_WM::GMDirectXDetect::GetFileVersion_wchar_t___union__ULARGE_INTEGER__
test eax, eax
js 0x100dc2ae
test edi, edi
je 0x100dc28b
mov dword [edi], 9
test esi, esi
je 0x100dc295
mov dword [esi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dc2d8
mov ecx, 0x20
mov word [eax], cx
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
cmp dword [esp + 0x14], 0
jne 0x100dc2d8
mov ecx, 0x20
test edi, edi
je 0x100dc2c4
mov dword [edi], 0
test esi, esi
je 0x100dc2ce
mov dword [esi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100dc2d8
mov word [eax], cx
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc