Function at 0x401e60
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4ac
mov eax, dword [0x4f6fc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x410], 0
push 0x104
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x402b33
mov ecx, 1
imul ecx, ecx, 0x103
mov dword [ebp - 0x414], ecx
cmp dword [ebp - 0x414], 0x200
jae 0x401eb6
jmp 0x401ebb
call fcn.004b64ae
mov edx, dword [ebp - 0x414]
mov byte [ebp + edx - 0x404], 0
lea eax, [ebp - 0x404]
push eax
push 0x200
lea ecx, [ebp - 0x204]
push ecx
call fcn.00402dd0
push 0x4cb65c
push 0x200
lea edx, [ebp - 0x204]
push edx
call fcn.00402d80
lea eax, [ebp - 0x40c]
push eax
lea ecx, [ebp - 0x204]
push ecx
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x402080
push 0x5f
push 0
push 2
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], edx
mov edx, dword [ebp - 0x450]
push edx
mov eax, dword [ebp - 0x454]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x401f8d
cmp dword [ebp + 8], 0
je 0x401f68
mov eax, dword [ebp + 8]
mov dword [eax], 1
cmp dword [ebp + 0xc], 0
je 0x401f77
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x401f83
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x20
mov dword [ebp - 0x410], 1
push 0x448
push 0
push 3
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x49c], eax
mov dword [ebp - 0x498], edx
mov eax, dword [ebp - 0x498]
push eax
mov ecx, dword [ebp - 0x49c]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x402008
cmp dword [ebp + 8], 0
je 0x401fe3
mov ecx, dword [ebp + 8]
mov dword [ecx], 2
cmp dword [ebp + 0xc], 0
je 0x401ff2
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x401ffe
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x410], 1
push 0x44
push 0
push 4
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x4a8], edx
mov ecx, dword [ebp - 0x4a8]
push ecx
mov edx, dword [ebp - 0x4ac]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x402080
cmp dword [ebp + 8], 0
je 0x40205b
mov edx, dword [ebp + 8]
mov dword [edx], 3
cmp dword [ebp + 0xc], 0
je 0x40206a
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x402076
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x20
mov dword [ebp - 0x410], 1
lea edx, [ebp - 0x404]
push edx
push 0x200
lea eax, [ebp - 0x204]
push eax
call fcn.00402dd0
push str.d3drg8x.dll
push 0x200
lea ecx, [ebp - 0x204]
push ecx
call fcn.00402d80
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x204]
push eax
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x402140
push 0x46
push 0
push 4
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x4a4], eax
mov dword [ebp - 0x4a0], edx
mov ecx, dword [ebp - 0x4a0]
push ecx
mov edx, dword [ebp - 0x4a4]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x402140
cmp dword [ebp + 8], 0
je 0x40211b
mov edx, dword [ebp + 8]
mov dword [edx], 3
cmp dword [ebp + 0xc], 0
je 0x40212a
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x402136
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x61
mov dword [ebp - 0x410], 1
lea edx, [ebp - 0x404]
push edx
push 0x200
lea eax, [ebp - 0x204]
push eax
call fcn.00402dd0
push 0x4cb678
push 0x200
lea ecx, [ebp - 0x204]
push ecx
call fcn.00402d80
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x204]
push eax
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x4022fd
push 0x9b
push 0
push 5
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x430], edx
mov ecx, dword [ebp - 0x430]
push ecx
mov edx, dword [ebp - 0x434]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x402207
cmp dword [ebp + 8], 0
je 0x4021e2
mov edx, dword [ebp + 8]
mov dword [edx], 5
cmp dword [ebp + 0xc], 0
je 0x4021f1
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x4021fd
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x20
mov dword [ebp - 0x410], 1
push 0x13e
push 0
push 6
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x470], edx
mov edx, dword [ebp - 0x470]
push edx
mov eax, dword [ebp - 0x474]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x402282
cmp dword [ebp + 8], 0
je 0x40225d
mov eax, dword [ebp + 8]
mov dword [eax], 6
cmp dword [ebp + 0xc], 0
je 0x40226c
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x402278
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x20
mov dword [ebp - 0x410], 1
push 0x1b4
push 0
push 6
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x440], edx
mov eax, dword [ebp - 0x440]
push eax
mov ecx, dword [ebp - 0x444]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x4022fd
cmp dword [ebp + 8], 0
je 0x4022d8
mov ecx, dword [ebp + 8]
mov dword [ecx], 6
cmp dword [ebp + 0xc], 0
je 0x4022e7
mov edx, dword [ebp + 0xc]
mov dword [edx], 1
cmp dword [ebp + 0x10], 0
je 0x4022f3
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x410], 1
lea ecx, [ebp - 0x404]
push ecx
push 0x200
lea edx, [ebp - 0x204]
push edx
call fcn.00402dd0
push str.dplayx.dll
push 0x200
lea eax, [ebp - 0x204]
push eax
call fcn.00402d80
lea ecx, [ebp - 0x40c]
push ecx
lea edx, [ebp - 0x204]
push edx
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x4023c0
push 0x206
push 3
push 6
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x490], edx
mov eax, dword [ebp - 0x490]
push eax
mov ecx, dword [ebp - 0x494]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x4023c0
cmp dword [ebp + 8], 0
je 0x40239b
mov ecx, dword [ebp + 8]
mov dword [ecx], 6
cmp dword [ebp + 0xc], 0
je 0x4023aa
mov edx, dword [ebp + 0xc]
mov dword [edx], 1
cmp dword [ebp + 0x10], 0
je 0x4023b6
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x61
mov dword [ebp - 0x410], 1
lea ecx, [ebp - 0x404]
push ecx
push 0x200
lea edx, [ebp - 0x204]
push edx
call fcn.00402dd0
push 0x4cb690
push 0x200
lea eax, [ebp - 0x204]
push eax
call fcn.00402d80
lea ecx, [ebp - 0x40c]
push ecx
lea edx, [ebp - 0x204]
push edx
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x402483
push 0x2bc
push 0
push 7
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x418], edx
mov eax, dword [ebp - 0x418]
push eax
mov ecx, dword [ebp - 0x41c]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x402483
cmp dword [ebp + 8], 0
je 0x40245e
mov ecx, dword [ebp + 8]
mov dword [ecx], 7
cmp dword [ebp + 0xc], 0
je 0x40246d
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x402479
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x410], 1
lea ecx, [ebp - 0x404]
push ecx
push 0x200
lea edx, [ebp - 0x204]
push edx
call fcn.00402dd0
push str.dinput.dll
push 0x200
lea eax, [ebp - 0x204]
push eax
call fcn.00402d80
lea ecx, [ebp - 0x40c]
push ecx
lea edx, [ebp - 0x204]
push edx
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x402546
push 0x2cc
push 0
push 7
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x480], edx
mov eax, dword [ebp - 0x480]
push eax
mov ecx, dword [ebp - 0x484]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x402546
cmp dword [ebp + 8], 0
je 0x402521
mov ecx, dword [ebp + 8]
mov dword [ecx], 7
cmp dword [ebp + 0xc], 0
je 0x402530
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x40253c
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x61
mov dword [ebp - 0x410], 1
lea ecx, [ebp - 0x404]
push ecx
push 0x200
lea edx, [ebp - 0x204]
push edx
call fcn.00402dd0
push str.ddraw.dll
push 0x200
lea eax, [ebp - 0x204]
push eax
call fcn.00402d80
lea ecx, [ebp - 0x40c]
push ecx
lea edx, [ebp - 0x204]
push edx
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x402683
mov eax, dword [ebp - 0x408]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
cmp ecx, 4
jne 0x4025ef
push 0x190
push 0
push 8
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x464], eax
mov dword [ebp - 0x460], edx
mov edx, dword [ebp - 0x460]
push edx
mov eax, dword [ebp - 0x464]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00402be0
add esp, 0x10
test eax, eax
jge 0x40264f
mov eax, dword [ebp - 0x408]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
cmp ecx, 5
jne 0x402683
push 0x190
push 0x8d2
push 1
push 5
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x420], edx
mov edx, dword [ebp - 0x420]
push edx
mov eax, dword [ebp - 0x424]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x402683
cmp dword [ebp + 8], 0
je 0x40265e
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x40266d
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x402679
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x20
mov dword [ebp - 0x410], 1
lea eax, [ebp - 0x404]
push eax
push 0x200
lea ecx, [ebp - 0x204]
push ecx
call fcn.00402dd0
push str.d3d8.dll
push 0x200
lea edx, [ebp - 0x204]
push edx
call fcn.00402d80
lea eax, [ebp - 0x40c]
push eax
lea ecx, [ebp - 0x204]
push ecx
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x4028b5
mov edx, dword [ebp - 0x408]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
cmp eax, 4
jne 0x40272d
push 0x371
push 1
push 8
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x428], edx
mov ecx, dword [ebp - 0x428]
push ecx
mov edx, dword [ebp - 0x42c]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00402be0
add esp, 0x10
test eax, eax
jge 0x40278e
mov edx, dword [ebp - 0x408]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
cmp eax, 5
jne 0x4027c2
push 0x371
push 0xa28
push 1
push 5
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x438], edx
mov ecx, dword [ebp - 0x438]
push ecx
mov edx, dword [ebp - 0x43c]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x4027c2
cmp dword [ebp + 8], 0
je 0x40279d
mov edx, dword [ebp + 8]
mov dword [edx], 8
cmp dword [ebp + 0xc], 0
je 0x4027ac
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x4027b8
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x20
mov dword [ebp - 0x410], 1
mov edx, dword [ebp - 0x408]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
cmp eax, 4
jne 0x402820
push 0x385
push 1
push 8
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x448], edx
mov ecx, dword [ebp - 0x448]
push ecx
mov edx, dword [ebp - 0x44c]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00402be0
add esp, 0x10
test eax, eax
jge 0x402881
mov edx, dword [ebp - 0x408]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
cmp eax, 5
jne 0x4028b5
push 0x385
push 0xa28
push 1
push 5
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x458], edx
mov ecx, dword [ebp - 0x458]
push ecx
mov edx, dword [ebp - 0x45c]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x4028b5
cmp dword [ebp + 8], 0
je 0x402890
mov edx, dword [ebp + 8]
mov dword [edx], 8
cmp dword [ebp + 0xc], 0
je 0x40289f
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x4028ab
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x61
mov dword [ebp - 0x410], 1
lea edx, [ebp - 0x404]
push edx
push 0x200
lea eax, [ebp - 0x204]
push eax
call fcn.00402dd0
push str.mpg2splt.ax
push 0x200
lea ecx, [ebp - 0x204]
push ecx
call fcn.00402d80
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x204]
push eax
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x402978
push 0x375
push 1
push 3
push 6
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x468], edx
mov ecx, dword [ebp - 0x468]
push ecx
mov edx, dword [ebp - 0x46c]
push edx
mov eax, dword [ebp - 0x408]
push eax
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x402978
cmp dword [ebp + 8], 0
je 0x402953
mov edx, dword [ebp + 8]
mov dword [edx], 8
cmp dword [ebp + 0xc], 0
je 0x402962
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x40296e
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x62
mov dword [ebp - 0x410], 1
lea edx, [ebp - 0x404]
push edx
push 0x200
lea eax, [ebp - 0x204]
push eax
call fcn.00402dd0
push str.dpnet.dll
push 0x200
lea ecx, [ebp - 0x204]
push ecx
call fcn.00402d80
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x204]
push eax
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x402ab7
mov ecx, dword [ebp - 0x408]
shr ecx, 0x10
and ecx, 0xffff
movzx edx, cx
cmp edx, 4
jne 0x402a22
push 0x86
push 0
push 9
push 4
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x478], edx
mov eax, dword [ebp - 0x478]
push eax
mov ecx, dword [ebp - 0x47c]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00402be0
add esp, 0x10
test eax, eax
jge 0x402a83
mov ecx, dword [ebp - 0x408]
shr ecx, 0x10
and ecx, 0xffff
movzx edx, cx
cmp edx, 5
jne 0x402ab7
push 0x86
push 0xe5d
push 2
push 5
call fcn.00402b80
add esp, 0x10
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x488], edx
mov eax, dword [ebp - 0x488]
push eax
mov ecx, dword [ebp - 0x48c]
push ecx
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00402be0
add esp, 0x10
test eax, eax
jl 0x402ab7
cmp dword [ebp + 8], 0
je 0x402a92
mov ecx, dword [ebp + 8]
mov dword [ecx], 8
cmp dword [ebp + 0xc], 0
je 0x402aa1
mov edx, dword [ebp + 0xc]
mov dword [edx], 2
cmp dword [ebp + 0x10], 0
je 0x402aad
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x410], 1
lea ecx, [ebp - 0x404]
push ecx
push 0x200
lea edx, [ebp - 0x204]
push edx
call fcn.00402dd0
push str.d3d9.dll
push 0x200
lea eax, [ebp - 0x204]
push eax
call fcn.00402d80
lea ecx, [ebp - 0x40c]
push ecx
lea edx, [ebp - 0x204]
push edx
call fcn.00401ad0
add esp, 8
test eax, eax
jl 0x402b33
cmp dword [ebp + 8], 0
je 0x402b0e
mov eax, dword [ebp + 8]
mov dword [eax], 9
cmp dword [ebp + 0xc], 0
je 0x402b1d
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x402b29
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x20
mov dword [ebp - 0x410], 1
cmp dword [ebp - 0x410], 0
jne 0x402b66
cmp dword [ebp + 8], 0
je 0x402b4b
mov eax, dword [ebp + 8]
mov dword [eax], 0
cmp dword [ebp + 0xc], 0
je 0x402b5a
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x402b66
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x20
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b6253
mov esp, ebp
pop ebp
ret