Function at 0x4239a0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4e4
push ebx
push esi
push edi
mov dword [ebp - 0x40c], 0
push 0x104
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x424568
mov byte [ebp - 0x105], 0
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.ddraw.dll
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x423b79
push 0x5f
push 0
push 2
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x4e4], eax
mov dword [ebp - 0x4e0], edx
mov eax, dword [ebp - 0x4e0]
push eax
mov ecx, dword [ebp - 0x4e4]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x423a92
cmp dword [ebp + 8], 0
je 0x423a6d
mov eax, dword [ebp + 8]
mov dword [eax], 1
cmp dword [ebp + 0xc], 0
je 0x423a7c
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x423a88
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
push 0x448
push 0
push 3
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x4dc], eax
mov dword [ebp - 0x4d8], edx
mov eax, dword [ebp - 0x4d8]
push eax
mov ecx, dword [ebp - 0x4dc]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x423b07
cmp dword [ebp + 8], 0
je 0x423ae2
mov eax, dword [ebp + 8]
mov dword [eax], 2
cmp dword [ebp + 0xc], 0
je 0x423af1
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x423afd
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
push 0x44
push 0
push 4
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x4d4], eax
mov dword [ebp - 0x4d0], edx
mov eax, dword [ebp - 0x4d0]
push eax
mov ecx, dword [ebp - 0x4d4]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x423b79
cmp dword [ebp + 8], 0
je 0x423b54
mov eax, dword [ebp + 8]
mov dword [eax], 3
cmp dword [ebp + 0xc], 0
je 0x423b63
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x423b6f
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.d3drg8x.dll
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x423c30
push 0x46
push 0
push 4
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x4cc], eax
mov dword [ebp - 0x4c8], edx
mov eax, dword [ebp - 0x4c8]
push eax
mov ecx, dword [ebp - 0x4cc]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x423c30
cmp dword [ebp + 8], 0
je 0x423c0b
mov eax, dword [ebp + 8]
mov dword [eax], 3
cmp dword [ebp + 0xc], 0
je 0x423c1a
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x423c26
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x61
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.ddraw.dll
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x423dd8
push 0x9b
push 0
push 5
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x4c4], eax
mov dword [ebp - 0x4c0], edx
mov eax, dword [ebp - 0x4c0]
push eax
mov ecx, dword [ebp - 0x4c4]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x423cee
cmp dword [ebp + 8], 0
je 0x423cc9
mov eax, dword [ebp + 8]
mov dword [eax], 5
cmp dword [ebp + 0xc], 0
je 0x423cd8
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x423ce4
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
push 0x13e
push 0
push 6
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x4bc], eax
mov dword [ebp - 0x4b8], edx
mov eax, dword [ebp - 0x4b8]
push eax
mov ecx, dword [ebp - 0x4bc]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x423d63
cmp dword [ebp + 8], 0
je 0x423d3e
mov eax, dword [ebp + 8]
mov dword [eax], 6
cmp dword [ebp + 0xc], 0
je 0x423d4d
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x423d59
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
push 0x1b4
push 0
push 6
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x4b4], eax
mov dword [ebp - 0x4b0], edx
mov eax, dword [ebp - 0x4b0]
push eax
mov ecx, dword [ebp - 0x4b4]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x423dd8
cmp dword [ebp + 8], 0
je 0x423db3
mov eax, dword [ebp + 8]
mov dword [eax], 6
cmp dword [ebp + 0xc], 0
je 0x423dc2
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x423dce
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.dplayx.dll
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x423e92
push 0x206
push 3
push 6
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x4a8], edx
mov eax, dword [ebp - 0x4a8]
push eax
mov ecx, dword [ebp - 0x4ac]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x423e92
cmp dword [ebp + 8], 0
je 0x423e6d
mov eax, dword [ebp + 8]
mov dword [eax], 6
cmp dword [ebp + 0xc], 0
je 0x423e7c
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x423e88
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x61
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.ddraw.dll
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x423f4c
push 0x2bc
push 0
push 7
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x4a4], eax
mov dword [ebp - 0x4a0], edx
mov eax, dword [ebp - 0x4a0]
push eax
mov ecx, dword [ebp - 0x4a4]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x423f4c
cmp dword [ebp + 8], 0
je 0x423f27
mov eax, dword [ebp + 8]
mov dword [eax], 7
cmp dword [ebp + 0xc], 0
je 0x423f36
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x423f42
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.dinput.dll
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x424006
push 0x2cc
push 0
push 7
push 4
call fcn.00424770
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 - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x424006
cmp dword [ebp + 8], 0
je 0x423fe1
mov eax, dword [ebp + 8]
mov dword [eax], 7
cmp dword [ebp + 0xc], 0
je 0x423ff0
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x423ffc
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x61
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.ddraw.dll
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x424124
mov eax, dword [ebp - 4]
shr eax, 0x10
movzx ecx, ax
cmp ecx, 4
jne 0x42409e
push 0x190
push 0
push 8
push 4
call fcn.00424770
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 - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jge 0x4240f0
mov eax, dword [ebp - 4]
shr eax, 0x10
movzx ecx, ax
cmp ecx, 5
jne 0x424124
push 0x190
push 0x8d2
push 1
push 5
call fcn.00424770
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 - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x424124
cmp dword [ebp + 8], 0
je 0x4240ff
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x42410e
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x42411a
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.d3d8.dll
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x424317
mov eax, dword [ebp - 4]
shr eax, 0x10
movzx ecx, ax
cmp ecx, 4
jne 0x4241bc
push 0x371
push 1
push 8
push 4
call fcn.00424770
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 - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jge 0x42420e
mov eax, dword [ebp - 4]
shr eax, 0x10
movzx ecx, ax
cmp ecx, 5
jne 0x424242
push 0x371
push 0xa28
push 1
push 5
call fcn.00424770
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 - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x424242
cmp dword [ebp + 8], 0
je 0x42421d
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x42422c
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x424238
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
mov eax, dword [ebp - 4]
shr eax, 0x10
movzx ecx, ax
cmp ecx, 4
jne 0x424291
push 0x385
push 1
push 8
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x470], edx
mov eax, dword [ebp - 0x470]
push eax
mov ecx, dword [ebp - 0x474]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jge 0x4242e3
mov eax, dword [ebp - 4]
shr eax, 0x10
movzx ecx, ax
cmp ecx, 5
jne 0x424317
push 0x385
push 0xa28
push 1
push 5
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x468], edx
mov eax, dword [ebp - 0x468]
push eax
mov ecx, dword [ebp - 0x46c]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x424317
cmp dword [ebp + 8], 0
je 0x4242f2
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x424301
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x42430d
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x61
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.mpg2splt.ax
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x4243d1
push 0x375
push 1
push 3
push 6
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x464], eax
mov dword [ebp - 0x460], edx
mov eax, dword [ebp - 0x460]
push eax
mov ecx, dword [ebp - 0x464]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x4243d1
cmp dword [ebp + 8], 0
je 0x4243ac
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x4243bb
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x4243c7
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x62
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.dpnet.dll
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x4244ef
mov eax, dword [ebp - 4]
shr eax, 0x10
movzx ecx, ax
cmp ecx, 4
jne 0x424469
push 0x86
push 0
push 9
push 4
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x458], edx
mov eax, dword [ebp - 0x458]
push eax
mov ecx, dword [ebp - 0x45c]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jge 0x4244bb
mov eax, dword [ebp - 4]
shr eax, 0x10
movzx ecx, ax
cmp ecx, 5
jne 0x4244ef
push 0x86
push 0xe5d
push 2
push 5
call fcn.00424770
add esp, 0x10
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], edx
mov eax, dword [ebp - 0x450]
push eax
mov ecx, dword [ebp - 0x454]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004247d0
add esp, 0x10
test eax, eax
jl 0x4244ef
cmp dword [ebp + 8], 0
je 0x4244ca
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x4244d9
mov eax, dword [ebp + 0xc]
mov dword [eax], 2
cmp dword [ebp + 0x10], 0
je 0x4244e5
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
lea eax, [ebp - 0x208]
push eax
push 0x200
lea ecx, [ebp - 0x408]
push ecx
call fcn.004245b0
push str.d3d9.dll
push 0x200
lea eax, [ebp - 0x408]
push eax
call fcn.004245f0
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004238b0
add esp, 8
test eax, eax
jl 0x424568
cmp dword [ebp + 8], 0
je 0x424543
mov eax, dword [ebp + 8]
mov dword [eax], 9
cmp dword [ebp + 0xc], 0
je 0x424552
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x42455e
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x40c], 1
cmp dword [ebp - 0x40c], 0
jne 0x42459b
cmp dword [ebp + 8], 0
je 0x424580
mov eax, dword [ebp + 8]
mov dword [eax], 0
cmp dword [ebp + 0xc], 0
je 0x42458f
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x42459b
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret