Function at 0x586e40
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8b0
mov eax, dword [0x89b044]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x40c], 0
push 0x104
lea eax, [ebp - 0x408]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x587b58
xor ecx, ecx
mov word [ebp - 0x202], cx
lea edx, [ebp - 0x408]
push edx
push 0x200
lea eax, [ebp - 0x810]
push eax
call fcn.0056c3b0
push 0x7fa734
push 0x200
lea ecx, [ebp - 0x810]
push ecx
call fcn.00589b20
lea edx, [ebp - 0x818]
push edx
lea eax, [ebp - 0x810]
push eax
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x587046
push 0x5f
push 0
push 2
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x820], eax
mov dword [ebp - 0x81c], edx
mov ecx, dword [ebp - 0x81c]
push ecx
mov edx, dword [ebp - 0x820]
push edx
mov eax, dword [ebp - 0x814]
push eax
mov ecx, dword [ebp - 0x818]
push ecx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x586f49
cmp dword [ebp + 8], 0
je 0x586f1f
mov edx, dword [ebp + 8]
mov dword [edx], 1
cmp dword [ebp + 0xc], 0
je 0x586f2e
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x586f3f
mov ecx, 0x20
mov edx, dword [ebp + 0x10]
mov word [edx], cx
mov dword [ebp - 0x40c], 1
push 0x448
push 0
push 3
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x828], eax
mov dword [ebp - 0x824], edx
mov eax, dword [ebp - 0x824]
push eax
mov ecx, dword [ebp - 0x828]
push ecx
mov edx, dword [ebp - 0x814]
push edx
mov eax, dword [ebp - 0x818]
push eax
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x586fc9
cmp dword [ebp + 8], 0
je 0x586f9f
mov ecx, dword [ebp + 8]
mov dword [ecx], 2
cmp dword [ebp + 0xc], 0
je 0x586fae
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x586fbf
mov eax, 0x20
mov ecx, dword [ebp + 0x10]
mov word [ecx], ax
mov dword [ebp - 0x40c], 1
push 0x44
push 0
push 4
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x830], eax
mov dword [ebp - 0x82c], edx
mov edx, dword [ebp - 0x82c]
push edx
mov eax, dword [ebp - 0x830]
push eax
mov ecx, dword [ebp - 0x814]
push ecx
mov edx, dword [ebp - 0x818]
push edx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x587046
cmp dword [ebp + 8], 0
je 0x58701c
mov eax, dword [ebp + 8]
mov dword [eax], 3
cmp dword [ebp + 0xc], 0
je 0x58702b
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x58703c
mov edx, 0x20
mov eax, dword [ebp + 0x10]
mov word [eax], dx
mov dword [ebp - 0x40c], 1
lea ecx, [ebp - 0x408]
push ecx
push 0x200
lea edx, [ebp - 0x810]
push edx
call fcn.0056c3b0
push str.d3drg8x.dll
push 0x200
lea eax, [ebp - 0x810]
push eax
call fcn.00589b20
lea ecx, [ebp - 0x818]
push ecx
lea edx, [ebp - 0x810]
push edx
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x58710b
push 0x46
push 0
push 4
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x838], eax
mov dword [ebp - 0x834], edx
mov eax, dword [ebp - 0x834]
push eax
mov ecx, dword [ebp - 0x838]
push ecx
mov edx, dword [ebp - 0x814]
push edx
mov eax, dword [ebp - 0x818]
push eax
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x58710b
cmp dword [ebp + 8], 0
je 0x5870e1
mov ecx, dword [ebp + 8]
mov dword [ecx], 3
cmp dword [ebp + 0xc], 0
je 0x5870f0
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x587101
mov eax, 0x61
mov ecx, dword [ebp + 0x10]
mov word [ecx], ax
mov dword [ebp - 0x40c], 1
lea edx, [ebp - 0x408]
push edx
push 0x200
lea eax, [ebp - 0x810]
push eax
call fcn.0056c3b0
push 0x7fa768
push 0x200
lea ecx, [ebp - 0x810]
push ecx
call fcn.00589b20
lea edx, [ebp - 0x818]
push edx
lea eax, [ebp - 0x810]
push eax
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x5872d7
push 0x9b
push 0
push 5
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x840], eax
mov dword [ebp - 0x83c], edx
mov ecx, dword [ebp - 0x83c]
push ecx
mov edx, dword [ebp - 0x840]
push edx
mov eax, dword [ebp - 0x814]
push eax
mov ecx, dword [ebp - 0x818]
push ecx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x5871d7
cmp dword [ebp + 8], 0
je 0x5871ad
mov edx, dword [ebp + 8]
mov dword [edx], 5
cmp dword [ebp + 0xc], 0
je 0x5871bc
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x5871cd
mov ecx, 0x20
mov edx, dword [ebp + 0x10]
mov word [edx], cx
mov dword [ebp - 0x40c], 1
push 0x13e
push 0
push 6
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x844], edx
mov eax, dword [ebp - 0x844]
push eax
mov ecx, dword [ebp - 0x848]
push ecx
mov edx, dword [ebp - 0x814]
push edx
mov eax, dword [ebp - 0x818]
push eax
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x587257
cmp dword [ebp + 8], 0
je 0x58722d
mov ecx, dword [ebp + 8]
mov dword [ecx], 6
cmp dword [ebp + 0xc], 0
je 0x58723c
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x58724d
mov eax, 0x20
mov ecx, dword [ebp + 0x10]
mov word [ecx], ax
mov dword [ebp - 0x40c], 1
push 0x1b4
push 0
push 6
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x850], eax
mov dword [ebp - 0x84c], edx
mov edx, dword [ebp - 0x84c]
push edx
mov eax, dword [ebp - 0x850]
push eax
mov ecx, dword [ebp - 0x814]
push ecx
mov edx, dword [ebp - 0x818]
push edx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x5872d7
cmp dword [ebp + 8], 0
je 0x5872ad
mov eax, dword [ebp + 8]
mov dword [eax], 6
cmp dword [ebp + 0xc], 0
je 0x5872bc
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 1
cmp dword [ebp + 0x10], 0
je 0x5872cd
mov edx, 0x20
mov eax, dword [ebp + 0x10]
mov word [eax], dx
mov dword [ebp - 0x40c], 1
lea ecx, [ebp - 0x408]
push ecx
push 0x200
lea edx, [ebp - 0x810]
push edx
call fcn.0056c3b0
push str.dplayx.dll
push 0x200
lea eax, [ebp - 0x810]
push eax
call fcn.00589b20
lea ecx, [ebp - 0x818]
push ecx
lea edx, [ebp - 0x810]
push edx
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x5873a3
push 0x206
push 3
push 6
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x858], eax
mov dword [ebp - 0x854], edx
mov eax, dword [ebp - 0x854]
push eax
mov ecx, dword [ebp - 0x858]
push ecx
mov edx, dword [ebp - 0x814]
push edx
mov eax, dword [ebp - 0x818]
push eax
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x5873a3
cmp dword [ebp + 8], 0
je 0x587379
mov ecx, dword [ebp + 8]
mov dword [ecx], 6
cmp dword [ebp + 0xc], 0
je 0x587388
mov edx, dword [ebp + 0xc]
mov dword [edx], 1
cmp dword [ebp + 0x10], 0
je 0x587399
mov eax, 0x61
mov ecx, dword [ebp + 0x10]
mov word [ecx], ax
mov dword [ebp - 0x40c], 1
lea edx, [ebp - 0x408]
push edx
push 0x200
lea eax, [ebp - 0x810]
push eax
call fcn.0056c3b0
push 0x7fa798
push 0x200
lea ecx, [ebp - 0x810]
push ecx
call fcn.00589b20
lea edx, [ebp - 0x818]
push edx
lea eax, [ebp - 0x810]
push eax
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x58746f
push 0x2bc
push 0
push 7
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x860], eax
mov dword [ebp - 0x85c], edx
mov ecx, dword [ebp - 0x85c]
push ecx
mov edx, dword [ebp - 0x860]
push edx
mov eax, dword [ebp - 0x814]
push eax
mov ecx, dword [ebp - 0x818]
push ecx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x58746f
cmp dword [ebp + 8], 0
je 0x587445
mov edx, dword [ebp + 8]
mov dword [edx], 7
cmp dword [ebp + 0xc], 0
je 0x587454
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x587465
mov ecx, 0x20
mov edx, dword [ebp + 0x10]
mov word [edx], cx
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x408]
push eax
push 0x200
lea ecx, [ebp - 0x810]
push ecx
call fcn.0056c3b0
push str.dinput.dll
push 0x200
lea edx, [ebp - 0x810]
push edx
call fcn.00589b20
lea eax, [ebp - 0x818]
push eax
lea ecx, [ebp - 0x810]
push ecx
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x58753b
push 0x2cc
push 0
push 7
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x868], eax
mov dword [ebp - 0x864], edx
mov edx, dword [ebp - 0x864]
push edx
mov eax, dword [ebp - 0x868]
push eax
mov ecx, dword [ebp - 0x814]
push ecx
mov edx, dword [ebp - 0x818]
push edx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x58753b
cmp dword [ebp + 8], 0
je 0x587511
mov eax, dword [ebp + 8]
mov dword [eax], 7
cmp dword [ebp + 0xc], 0
je 0x587520
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x587531
mov edx, 0x61
mov eax, dword [ebp + 0x10]
mov word [eax], dx
mov dword [ebp - 0x40c], 1
lea ecx, [ebp - 0x408]
push ecx
push 0x200
lea edx, [ebp - 0x810]
push edx
call fcn.0056c3b0
push str.ddraw.dll
push 0x200
lea eax, [ebp - 0x810]
push eax
call fcn.00589b20
lea ecx, [ebp - 0x818]
push ecx
lea edx, [ebp - 0x810]
push edx
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x587681
mov eax, dword [ebp - 0x814]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
cmp ecx, 4
jne 0x5875e4
push 0x190
push 0
push 8
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x870], eax
mov dword [ebp - 0x86c], edx
mov edx, dword [ebp - 0x86c]
push edx
mov eax, dword [ebp - 0x870]
push eax
mov ecx, dword [ebp - 0x814]
push ecx
mov edx, dword [ebp - 0x818]
push edx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jge 0x587648
mov eax, dword [ebp - 0x814]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
cmp ecx, 5
jne 0x587681
push 0x190
push 0x8d2
push 1
push 5
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x878], eax
mov dword [ebp - 0x874], edx
mov edx, dword [ebp - 0x874]
push edx
mov eax, dword [ebp - 0x878]
push eax
mov ecx, dword [ebp - 0x814]
push ecx
mov edx, dword [ebp - 0x818]
push edx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x587681
cmp dword [ebp + 8], 0
je 0x587657
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x587666
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x587677
mov edx, 0x20
mov eax, dword [ebp + 0x10]
mov word [eax], dx
mov dword [ebp - 0x40c], 1
lea ecx, [ebp - 0x408]
push ecx
push 0x200
lea edx, [ebp - 0x810]
push edx
call fcn.0056c3b0
push str.d3d8.dll
push 0x200
lea eax, [ebp - 0x810]
push eax
call fcn.00589b20
lea ecx, [ebp - 0x818]
push ecx
lea edx, [ebp - 0x810]
push edx
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x5878c3
mov eax, dword [ebp - 0x814]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
cmp ecx, 4
jne 0x58772a
push 0x371
push 1
push 8
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x880], eax
mov dword [ebp - 0x87c], edx
mov edx, dword [ebp - 0x87c]
push edx
mov eax, dword [ebp - 0x880]
push eax
mov ecx, dword [ebp - 0x814]
push ecx
mov edx, dword [ebp - 0x818]
push edx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jge 0x58778e
mov eax, dword [ebp - 0x814]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
cmp ecx, 5
jne 0x5877c7
push 0x371
push 0xa28
push 1
push 5
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x888], eax
mov dword [ebp - 0x884], edx
mov edx, dword [ebp - 0x884]
push edx
mov eax, dword [ebp - 0x888]
push eax
mov ecx, dword [ebp - 0x814]
push ecx
mov edx, dword [ebp - 0x818]
push edx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x5877c7
cmp dword [ebp + 8], 0
je 0x58779d
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x5877ac
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 1
cmp dword [ebp + 0x10], 0
je 0x5877bd
mov edx, 0x20
mov eax, dword [ebp + 0x10]
mov word [eax], dx
mov dword [ebp - 0x40c], 1
mov ecx, dword [ebp - 0x814]
shr ecx, 0x10
and ecx, 0xffff
movzx edx, cx
cmp edx, 4
jne 0x587825
push 0x385
push 1
push 8
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x890], eax
mov dword [ebp - 0x88c], edx
mov eax, dword [ebp - 0x88c]
push eax
mov ecx, dword [ebp - 0x890]
push ecx
mov edx, dword [ebp - 0x814]
push edx
mov eax, dword [ebp - 0x818]
push eax
call fcn.00587cf0
add esp, 0x10
test eax, eax
jge 0x58788a
mov ecx, dword [ebp - 0x814]
shr ecx, 0x10
and ecx, 0xffff
movzx edx, cx
cmp edx, 5
jne 0x5878c3
push 0x385
push 0xa28
push 1
push 5
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x898], eax
mov dword [ebp - 0x894], edx
mov eax, dword [ebp - 0x894]
push eax
mov ecx, dword [ebp - 0x898]
push ecx
mov edx, dword [ebp - 0x814]
push edx
mov eax, dword [ebp - 0x818]
push eax
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x5878c3
cmp dword [ebp + 8], 0
je 0x587899
mov ecx, dword [ebp + 8]
mov dword [ecx], 8
cmp dword [ebp + 0xc], 0
je 0x5878a8
mov edx, dword [ebp + 0xc]
mov dword [edx], 1
cmp dword [ebp + 0x10], 0
je 0x5878b9
mov eax, 0x61
mov ecx, dword [ebp + 0x10]
mov word [ecx], ax
mov dword [ebp - 0x40c], 1
lea edx, [ebp - 0x408]
push edx
push 0x200
lea eax, [ebp - 0x810]
push eax
call fcn.0056c3b0
push str.mpg2splt.ax
push 0x200
lea ecx, [ebp - 0x810]
push ecx
call fcn.00589b20
lea edx, [ebp - 0x818]
push edx
lea eax, [ebp - 0x810]
push eax
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x58798f
push 0x375
push 1
push 3
push 6
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x8a0], eax
mov dword [ebp - 0x89c], edx
mov ecx, dword [ebp - 0x89c]
push ecx
mov edx, dword [ebp - 0x8a0]
push edx
mov eax, dword [ebp - 0x814]
push eax
mov ecx, dword [ebp - 0x818]
push ecx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x58798f
cmp dword [ebp + 8], 0
je 0x587965
mov edx, dword [ebp + 8]
mov dword [edx], 8
cmp dword [ebp + 0xc], 0
je 0x587974
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x587985
mov ecx, 0x62
mov edx, dword [ebp + 0x10]
mov word [edx], cx
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x408]
push eax
push 0x200
lea ecx, [ebp - 0x810]
push ecx
call fcn.0056c3b0
push str.dpnet.dll
push 0x200
lea edx, [ebp - 0x810]
push edx
call fcn.00589b20
lea eax, [ebp - 0x818]
push eax
lea ecx, [ebp - 0x810]
push ecx
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x587ad7
mov edx, dword [ebp - 0x814]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
cmp eax, 4
jne 0x587a39
push 0x86
push 0
push 9
push 4
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x8a8], eax
mov dword [ebp - 0x8a4], edx
mov ecx, dword [ebp - 0x8a4]
push ecx
mov edx, dword [ebp - 0x8a8]
push edx
mov eax, dword [ebp - 0x814]
push eax
mov ecx, dword [ebp - 0x818]
push ecx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jge 0x587a9e
mov edx, dword [ebp - 0x814]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
cmp eax, 5
jne 0x587ad7
push 0x86
push 0xe5d
push 2
push 5
call fcn.00587c90
add esp, 0x10
mov dword [ebp - 0x8b0], eax
mov dword [ebp - 0x8ac], edx
mov ecx, dword [ebp - 0x8ac]
push ecx
mov edx, dword [ebp - 0x8b0]
push edx
mov eax, dword [ebp - 0x814]
push eax
mov ecx, dword [ebp - 0x818]
push ecx
call fcn.00587cf0
add esp, 0x10
test eax, eax
jl 0x587ad7
cmp dword [ebp + 8], 0
je 0x587aad
mov edx, dword [ebp + 8]
mov dword [edx], 8
cmp dword [ebp + 0xc], 0
je 0x587abc
mov eax, dword [ebp + 0xc]
mov dword [eax], 2
cmp dword [ebp + 0x10], 0
je 0x587acd
mov ecx, 0x20
mov edx, dword [ebp + 0x10]
mov word [edx], cx
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x408]
push eax
push 0x200
lea ecx, [ebp - 0x810]
push ecx
call fcn.0056c3b0
push str.d3d9.dll
push 0x200
lea edx, [ebp - 0x810]
push edx
call fcn.00589b20
lea eax, [ebp - 0x818]
push eax
lea ecx, [ebp - 0x810]
push ecx
call fcn.00587ba0
add esp, 8
test eax, eax
jl 0x587b58
cmp dword [ebp + 8], 0
je 0x587b2e
mov edx, dword [ebp + 8]
mov dword [edx], 9
cmp dword [ebp + 0xc], 0
je 0x587b3d
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x587b4e
mov ecx, 0x20
mov edx, dword [ebp + 0x10]
mov word [edx], cx
mov dword [ebp - 0x40c], 1
cmp dword [ebp - 0x40c], 0
jne 0x587b90
cmp dword [ebp + 8], 0
je 0x587b70
mov eax, dword [ebp + 8]
mov dword [eax], 0
cmp dword [ebp + 0xc], 0
je 0x587b7f
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x587b90
mov edx, 0x20
mov eax, dword [ebp + 0x10]
mov word [eax], dx
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0071fe0b
mov esp, ebp
pop ebp
ret