Function at 0x416e03
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8a4
mov dword [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x417a4c
mov word [ebp - 0x1fe], 0
lea ecx, [ebp - 0x404]
push ecx
lea edx, [ebp - 0x80c]
push edx
call fcn.004ba79a
add esp, 8
push 0x4f2bac
lea eax, [ebp - 0x80c]
push eax
call fcn.004ba770
add esp, 8
lea ecx, [ebp - 0x40c]
push ecx
lea edx, [ebp - 0x80c]
push edx
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x416fe6
push 0x5f
push 0
push 2
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x814], eax
mov dword [ebp - 0x810], edx
mov eax, dword [ebp - 0x810]
push eax
mov ecx, dword [ebp - 0x814]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x416ef5
cmp dword [ebp + 8], 0
je 0x416ed1
mov ecx, dword [ebp + 8]
mov dword [ecx], 1
cmp dword [ebp + 0xc], 0
je 0x416ee0
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x416eee
mov eax, dword [ebp + 0x10]
mov word [eax], 0x20
mov dword [ebp - 4], 1
push 0x448
push 0
push 3
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x81c], eax
mov dword [ebp - 0x818], edx
mov ecx, dword [ebp - 0x818]
push ecx
mov edx, dword [ebp - 0x81c]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x416f6f
cmp dword [ebp + 8], 0
je 0x416f4b
mov edx, dword [ebp + 8]
mov dword [edx], 2
cmp dword [ebp + 0xc], 0
je 0x416f5a
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x416f68
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x20
mov dword [ebp - 4], 1
push 0x44
push 0
push 4
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x824], eax
mov dword [ebp - 0x820], edx
mov edx, dword [ebp - 0x820]
push edx
mov eax, dword [ebp - 0x824]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x416fe6
cmp dword [ebp + 8], 0
je 0x416fc2
mov eax, dword [ebp + 8]
mov dword [eax], 3
cmp dword [ebp + 0xc], 0
je 0x416fd1
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x416fdf
mov edx, dword [ebp + 0x10]
mov word [edx], 0x20
mov dword [ebp - 4], 1
lea eax, [ebp - 0x404]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ba79a
add esp, 8
push str.d3drg8x.dll
lea edx, [ebp - 0x80c]
push edx
call fcn.004ba770
add esp, 8
lea eax, [ebp - 0x40c]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x4170a1
push 0x46
push 0
push 4
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x82c], eax
mov dword [ebp - 0x828], edx
mov edx, dword [ebp - 0x828]
push edx
mov eax, dword [ebp - 0x82c]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x4170a1
cmp dword [ebp + 8], 0
je 0x41707d
mov eax, dword [ebp + 8]
mov dword [eax], 3
cmp dword [ebp + 0xc], 0
je 0x41708c
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x41709a
mov edx, dword [ebp + 0x10]
mov word [edx], 0x61
mov dword [ebp - 4], 1
lea eax, [ebp - 0x404]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ba79a
add esp, 8
push 0x4f2be0
lea edx, [ebp - 0x80c]
push edx
call fcn.004ba770
add esp, 8
lea eax, [ebp - 0x40c]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x417257
push 0x9b
push 0
push 5
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x834], eax
mov dword [ebp - 0x830], edx
mov edx, dword [ebp - 0x830]
push edx
mov eax, dword [ebp - 0x834]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x417163
cmp dword [ebp + 8], 0
je 0x41713f
mov eax, dword [ebp + 8]
mov dword [eax], 5
cmp dword [ebp + 0xc], 0
je 0x41714e
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x41715c
mov edx, dword [ebp + 0x10]
mov word [edx], 0x20
mov dword [ebp - 4], 1
push 0x13e
push 0
push 6
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x83c], eax
mov dword [ebp - 0x838], edx
mov eax, dword [ebp - 0x838]
push eax
mov ecx, dword [ebp - 0x83c]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x4171dd
cmp dword [ebp + 8], 0
je 0x4171b9
mov ecx, dword [ebp + 8]
mov dword [ecx], 6
cmp dword [ebp + 0xc], 0
je 0x4171c8
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x4171d6
mov eax, dword [ebp + 0x10]
mov word [eax], 0x20
mov dword [ebp - 4], 1
push 0x1b4
push 0
push 6
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x844], eax
mov dword [ebp - 0x840], edx
mov ecx, dword [ebp - 0x840]
push ecx
mov edx, dword [ebp - 0x844]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x417257
cmp dword [ebp + 8], 0
je 0x417233
mov edx, dword [ebp + 8]
mov dword [edx], 6
cmp dword [ebp + 0xc], 0
je 0x417242
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x417250
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x20
mov dword [ebp - 4], 1
lea edx, [ebp - 0x404]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.004ba79a
add esp, 8
push str.dplayx.dll
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ba770
add esp, 8
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x417315
push 0x206
push 3
push 6
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x84c], eax
mov dword [ebp - 0x848], edx
mov ecx, dword [ebp - 0x848]
push ecx
mov edx, dword [ebp - 0x84c]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x417315
cmp dword [ebp + 8], 0
je 0x4172f1
mov edx, dword [ebp + 8]
mov dword [edx], 6
cmp dword [ebp + 0xc], 0
je 0x417300
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x41730e
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x61
mov dword [ebp - 4], 1
lea edx, [ebp - 0x404]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.004ba79a
add esp, 8
push 0x4f2c10
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ba770
add esp, 8
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x4173d3
push 0x2bc
push 0
push 7
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x854], eax
mov dword [ebp - 0x850], edx
mov ecx, dword [ebp - 0x850]
push ecx
mov edx, dword [ebp - 0x854]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x4173d3
cmp dword [ebp + 8], 0
je 0x4173af
mov edx, dword [ebp + 8]
mov dword [edx], 7
cmp dword [ebp + 0xc], 0
je 0x4173be
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x4173cc
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x20
mov dword [ebp - 4], 1
lea edx, [ebp - 0x404]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.004ba79a
add esp, 8
push str.dinput.dll
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ba770
add esp, 8
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x417491
push 0x2cc
push 0
push 7
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x85c], eax
mov dword [ebp - 0x858], edx
mov ecx, dword [ebp - 0x858]
push ecx
mov edx, dword [ebp - 0x85c]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x417491
cmp dword [ebp + 8], 0
je 0x41746d
mov edx, dword [ebp + 8]
mov dword [edx], 7
cmp dword [ebp + 0xc], 0
je 0x41747c
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x41748a
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x61
mov dword [ebp - 4], 1
lea edx, [ebp - 0x404]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.004ba79a
add esp, 8
push str.ddraw.dll
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ba770
add esp, 8
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x4175c4
mov ecx, dword [ebp - 0x408]
shr ecx, 0x10
and ecx, 0xffff
cmp ecx, 4
jne 0x417534
push 0x190
push 0
push 8
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x864], eax
mov dword [ebp - 0x860], edx
mov edx, dword [ebp - 0x860]
push edx
mov eax, dword [ebp - 0x864]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jge 0x417591
mov eax, dword [ebp - 0x408]
shr eax, 0x10
and eax, 0xffff
cmp eax, 5
jne 0x4175c4
push 0x190
push 0x8d2
push 1
push 5
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x86c], eax
mov dword [ebp - 0x868], edx
mov ecx, dword [ebp - 0x868]
push ecx
mov edx, dword [ebp - 0x86c]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x4175c4
cmp dword [ebp + 8], 0
je 0x4175a0
mov edx, dword [ebp + 8]
mov dword [edx], 8
cmp dword [ebp + 0xc], 0
je 0x4175af
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x4175bd
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x20
mov dword [ebp - 4], 1
lea edx, [ebp - 0x404]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.004ba79a
add esp, 8
push str.d3d8.dll
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ba770
add esp, 8
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x4177e3
mov ecx, dword [ebp - 0x408]
shr ecx, 0x10
and ecx, 0xffff
cmp ecx, 4
jne 0x417667
push 0x371
push 1
push 8
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x874], eax
mov dword [ebp - 0x870], edx
mov edx, dword [ebp - 0x870]
push edx
mov eax, dword [ebp - 0x874]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jge 0x4176c4
mov eax, dword [ebp - 0x408]
shr eax, 0x10
and eax, 0xffff
cmp eax, 5
jne 0x4176f7
push 0x371
push 0xa28
push 1
push 5
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x87c], eax
mov dword [ebp - 0x878], edx
mov ecx, dword [ebp - 0x878]
push ecx
mov edx, dword [ebp - 0x87c]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x4176f7
cmp dword [ebp + 8], 0
je 0x4176d3
mov edx, dword [ebp + 8]
mov dword [edx], 8
cmp dword [ebp + 0xc], 0
je 0x4176e2
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x4176f0
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x20
mov dword [ebp - 4], 1
mov edx, dword [ebp - 0x408]
shr edx, 0x10
and edx, 0xffff
cmp edx, 4
jne 0x417752
push 0x385
push 1
push 8
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x884], eax
mov dword [ebp - 0x880], edx
mov eax, dword [ebp - 0x880]
push eax
mov ecx, dword [ebp - 0x884]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00417bd3
add esp, 0x10
test eax, eax
jge 0x4177b0
mov ecx, dword [ebp - 0x408]
shr ecx, 0x10
and ecx, 0xffff
cmp ecx, 5
jne 0x4177e3
push 0x385
push 0xa28
push 1
push 5
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x88c], eax
mov dword [ebp - 0x888], edx
mov edx, dword [ebp - 0x888]
push edx
mov eax, dword [ebp - 0x88c]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x4177e3
cmp dword [ebp + 8], 0
je 0x4177bf
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x4177ce
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 1
cmp dword [ebp + 0x10], 0
je 0x4177dc
mov edx, dword [ebp + 0x10]
mov word [edx], 0x61
mov dword [ebp - 4], 1
lea eax, [ebp - 0x404]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ba79a
add esp, 8
push str.mpg2splt.ax
lea edx, [ebp - 0x80c]
push edx
call fcn.004ba770
add esp, 8
lea eax, [ebp - 0x40c]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x4178a1
push 0x375
push 1
push 3
push 6
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x894], eax
mov dword [ebp - 0x890], edx
mov edx, dword [ebp - 0x890]
push edx
mov eax, dword [ebp - 0x894]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x4178a1
cmp dword [ebp + 8], 0
je 0x41787d
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x41788c
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 1
cmp dword [ebp + 0x10], 0
je 0x41789a
mov edx, dword [ebp + 0x10]
mov word [edx], 0x62
mov dword [ebp - 4], 1
lea eax, [ebp - 0x404]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ba79a
add esp, 8
push str.dpnet.dll
lea edx, [ebp - 0x80c]
push edx
call fcn.004ba770
add esp, 8
lea eax, [ebp - 0x40c]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x4179d5
mov edx, dword [ebp - 0x408]
shr edx, 0x10
and edx, 0xffff
cmp edx, 4
jne 0x417944
push 0x86
push 0
push 9
push 4
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x89c], eax
mov dword [ebp - 0x898], edx
mov eax, dword [ebp - 0x898]
push eax
mov ecx, dword [ebp - 0x89c]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00417bd3
add esp, 0x10
test eax, eax
jge 0x4179a2
mov ecx, dword [ebp - 0x408]
shr ecx, 0x10
and ecx, 0xffff
cmp ecx, 5
jne 0x4179d5
push 0x86
push 0xe5d
push 2
push 5
call fcn.00417b65
add esp, 0x10
mov dword [ebp - 0x8a4], eax
mov dword [ebp - 0x8a0], edx
mov edx, dword [ebp - 0x8a0]
push edx
mov eax, dword [ebp - 0x8a4]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00417bd3
add esp, 0x10
test eax, eax
jl 0x4179d5
cmp dword [ebp + 8], 0
je 0x4179b1
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x4179c0
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 2
cmp dword [ebp + 0x10], 0
je 0x4179ce
mov edx, dword [ebp + 0x10]
mov word [edx], 0x20
mov dword [ebp - 4], 1
lea eax, [ebp - 0x404]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ba79a
add esp, 8
push str.d3d9.dll
lea edx, [ebp - 0x80c]
push edx
call fcn.004ba770
add esp, 8
lea eax, [ebp - 0x40c]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.00417a84
add esp, 8
test eax, eax
jl 0x417a4c
cmp dword [ebp + 8], 0
je 0x417a28
mov edx, dword [ebp + 8]
mov dword [edx], 9
cmp dword [ebp + 0xc], 0
je 0x417a37
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x417a45
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x20
mov dword [ebp - 4], 1
cmp dword [ebp - 4], 0
jne 0x417a7e
cmp dword [ebp + 8], 0
je 0x417a61
mov edx, dword [ebp + 8]
mov dword [edx], 0
cmp dword [ebp + 0xc], 0
je 0x417a70
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x417a7e
mov ecx, dword [ebp + 0x10]
mov word [ecx], 0x20
xor eax, eax
mov esp, ebp
pop ebp
ret