Function at 0x469ad0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x818
mov eax, dword [0x58f080]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x80c]
push esi
push edi
push 0x104
push eax
mov esi, edx
mov dword [ebp - 0x818], 0
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, 0x20
test eax, eax
je 0x46a384
xor eax, eax
mov word [ebp - 0x606], ax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.ddraw.dll
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
test eax, eax
js 0x469c2d
mov ecx, dword [ebp - 0x810]
mov eax, dword [ebp - 0x814]
cmp ecx, 0x40002
ja 0x469b89
jb 0x469bb5
cmp eax, 0x5f
ja 0x469b89
jb 0x469bb5
test edi, edi
je 0x469b93
mov dword [edi], 1
test esi, esi
je 0x469b9d
mov dword [esi], 0
mov edx, 0x20
test ebx, ebx
je 0x469ba9
mov word [ebx], dx
mov dword [ebp - 0x818], 1
jmp 0x469bba
mov edx, 0x20
cmp ecx, 0x40003
ja 0x469bcd
jb 0x469bf2
cmp eax, 0x448
ja 0x469bcd
jb 0x469bf2
test edi, edi
je 0x469bd7
mov dword [edi], 2
test esi, esi
je 0x469be1
mov dword [esi], 0
test ebx, ebx
je 0x469be8
mov word [ebx], dx
mov dword [ebp - 0x818], 1
cmp ecx, 0x40004
ja 0x469c03
jb 0x469c2d
cmp eax, 0x44
ja 0x469c03
jb 0x469c2d
test edi, edi
je 0x469c0d
mov dword [edi], 3
test esi, esi
je 0x469c17
mov dword [esi], 0
test ebx, ebx
je 0x469c23
mov eax, 0x20
mov word [ebx], ax
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.d3drg8x.dll
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
mov ecx, 0x61
test eax, eax
js 0x469cbc
mov eax, dword [ebp - 0x810]
cmp eax, 0x40004
ja 0x469c97
jb 0x469cbc
mov eax, dword [ebp - 0x814]
cmp eax, 0x46
ja 0x469c97
jb 0x469cbc
test edi, edi
je 0x469ca1
mov dword [edi], 3
test esi, esi
je 0x469cab
mov dword [esi], 0
test ebx, ebx
je 0x469cb2
mov word [ebx], cx
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.ddraw.dll
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
test eax, eax
js 0x469dcc
mov ecx, dword [ebp - 0x810]
mov eax, dword [ebp - 0x814]
cmp ecx, 0x40005
ja 0x469d28
jb 0x469d52
cmp eax, 0x9b
ja 0x469d28
jb 0x469d52
test edi, edi
je 0x469d32
mov dword [edi], 5
test esi, esi
je 0x469d3c
mov dword [esi], 0
test ebx, ebx
je 0x469d48
mov edx, 0x20
mov word [ebx], dx
mov dword [ebp - 0x818], 1
cmp ecx, 0x40006
ja 0x469d65
jb 0x469dcc
cmp eax, 0x13e
ja 0x469d65
jb 0x469d8f
test edi, edi
je 0x469d6f
mov dword [edi], 6
test esi, esi
je 0x469d79
mov dword [esi], 0
test ebx, ebx
je 0x469d85
mov edx, 0x20
mov word [ebx], dx
mov dword [ebp - 0x818], 1
cmp ecx, 0x40006
ja 0x469da2
jb 0x469dcc
cmp eax, 0x1b4
ja 0x469da2
jb 0x469dcc
test edi, edi
je 0x469dac
mov dword [edi], 6
test esi, esi
je 0x469db6
mov dword [esi], 1
test ebx, ebx
je 0x469dc2
mov eax, 0x20
mov word [ebx], ax
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.dplayx.dll
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
test eax, eax
js 0x469e5d
mov eax, dword [ebp - 0x810]
cmp eax, 0x40006
ja 0x469e33
jb 0x469e5d
mov eax, dword [ebp - 0x814]
cmp eax, 0x30206
ja 0x469e33
jb 0x469e5d
test edi, edi
je 0x469e3d
mov dword [edi], 6
test esi, esi
je 0x469e47
mov dword [esi], 1
test ebx, ebx
je 0x469e53
mov eax, 0x61
mov word [ebx], ax
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.ddraw.dll
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
test eax, eax
js 0x469eee
mov eax, dword [ebp - 0x810]
cmp eax, 0x40007
ja 0x469ec4
jb 0x469eee
mov eax, dword [ebp - 0x814]
cmp eax, 0x2bc
ja 0x469ec4
jb 0x469eee
test edi, edi
je 0x469ece
mov dword [edi], 7
test esi, esi
je 0x469ed8
mov dword [esi], 0
test ebx, ebx
je 0x469ee4
mov eax, 0x20
mov word [ebx], ax
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.dinput.dll
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
test eax, eax
js 0x469f7f
mov eax, dword [ebp - 0x810]
cmp eax, 0x40007
ja 0x469f55
jb 0x469f7f
mov eax, dword [ebp - 0x814]
cmp eax, 0x2cc
ja 0x469f55
jb 0x469f7f
test edi, edi
je 0x469f5f
mov dword [edi], 7
test esi, esi
je 0x469f69
mov dword [esi], 0
test ebx, ebx
je 0x469f75
mov eax, 0x61
mov word [ebx], ax
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.ddraw.dll
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
test eax, eax
js 0x46a04f
mov eax, dword [ebp - 0x810]
mov edx, eax
mov ecx, dword [ebp - 0x814]
shr edx, 0x10
cmp dx, 4
jne 0x46a007
push 0x40008
push 0x190
push eax
push ecx
call fcn.0046a480
add esp, 0x10
test eax, eax
jns 0x46a025
mov eax, dword [ebp - 0x810]
mov ecx, dword [ebp - 0x814]
cmp dx, 5
jne 0x46a04f
push 0x50001
push 0x8d20190
push eax
push ecx
call fcn.0046a480
add esp, 0x10
test eax, eax
js 0x46a04f
test edi, edi
je 0x46a02f
mov dword [edi], 8
test esi, esi
je 0x46a039
mov dword [esi], 0
test ebx, ebx
je 0x46a045
mov eax, 0x20
mov word [ebx], ax
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.d3d8.dll
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
test eax, eax
js 0x46a199
mov eax, dword [ebp - 0x810]
mov edx, eax
mov ecx, dword [ebp - 0x814]
shr edx, 0x10
cmp dx, 4
jne 0x46a0d7
push 0x40008
push 0x10371
push eax
push ecx
call fcn.0046a480
add esp, 0x10
test eax, eax
jns 0x46a0f5
mov eax, dword [ebp - 0x810]
mov ecx, dword [ebp - 0x814]
cmp dx, 5
jne 0x46a11f
push 0x50001
push 0xa280371
push eax
push ecx
call fcn.0046a480
add esp, 0x10
test eax, eax
js 0x46a11f
test edi, edi
je 0x46a0ff
mov dword [edi], 8
test esi, esi
je 0x46a109
mov dword [esi], 1
test ebx, ebx
je 0x46a115
mov eax, 0x20
mov word [ebx], ax
mov dword [ebp - 0x818], 1
cmp dx, 4
jne 0x46a147
push 0x40008
push 0x10385
push dword [ebp - 0x810]
push dword [ebp - 0x814]
call fcn.0046a480
add esp, 0x10
test eax, eax
jns 0x46a16f
cmp dx, 5
jne 0x46a199
push 0x50001
push 0xa280385
push dword [ebp - 0x810]
push dword [ebp - 0x814]
call fcn.0046a480
add esp, 0x10
test eax, eax
js 0x46a199
test edi, edi
je 0x46a179
mov dword [edi], 8
test esi, esi
je 0x46a183
mov dword [esi], 1
test ebx, ebx
je 0x46a18f
mov eax, 0x61
mov word [ebx], ax
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.mpg2splt.ax
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
test eax, eax
js 0x46a22a
mov eax, dword [ebp - 0x810]
cmp eax, 0x60003
ja 0x46a200
jb 0x46a22a
mov eax, dword [ebp - 0x814]
cmp eax, 0x10375
ja 0x46a200
jb 0x46a22a
test edi, edi
je 0x46a20a
mov dword [edi], 8
test esi, esi
je 0x46a214
mov dword [esi], 1
test ebx, ebx
je 0x46a220
mov eax, 0x62
mov word [ebx], ax
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.dpnet.dll
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
test eax, eax
js 0x46a2fa
mov eax, dword [ebp - 0x810]
mov edx, eax
mov ecx, dword [ebp - 0x814]
shr edx, 0x10
cmp dx, 4
jne 0x46a2b2
push 0x40009
push 0x86
push eax
push ecx
call fcn.0046a480
add esp, 0x10
test eax, eax
jns 0x46a2d0
mov eax, dword [ebp - 0x810]
mov ecx, dword [ebp - 0x814]
cmp dx, 5
jne 0x46a2fa
push 0x50002
push 0xe5d0086
push eax
push ecx
call fcn.0046a480
add esp, 0x10
test eax, eax
js 0x46a2fa
test edi, edi
je 0x46a2da
mov dword [edi], 8
test esi, esi
je 0x46a2e4
mov dword [esi], 2
test ebx, ebx
je 0x46a2f0
mov eax, 0x20
mov word [ebx], ax
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004a2978
add esp, 0xc
lea eax, [ebp - 0x40c]
push str.d3d9.dll
push 0x200
push eax
call fcn.004a290c
add esp, 0xc
lea edx, [ebp - 0x814]
lea ecx, [ebp - 0x40c]
call fcn.0046a3c0
test eax, eax
js 0x46a376
test edi, edi
je 0x46a34d
mov dword [edi], 9
test esi, esi
je 0x46a357
mov dword [esi], 0
test ebx, ebx
je 0x46a39f
mov eax, 0x20
mov word [ebx], ax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0049493f
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x818], 0
jne 0x46a39f
mov ecx, 0x20
test edi, edi
je 0x46a38e
mov dword [edi], 0
test esi, esi
je 0x46a398
mov dword [esi], 0
test ebx, ebx
je 0x46a39f
mov word [ebx], cx
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049493f
mov esp, ebp
pop ebp
ret