Function at 0x41e3f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4b0
mov eax, dword [0x45d520]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x20c], 0
push 0x104
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x41f06a
mov byte [ebp - 0x105], 0
lea ecx, [ebp - 0x208]
push ecx
lea edx, [ebp - 0x410]
push edx
call fcn.00435ff0
add esp, 8
push 0x45173c
lea eax, [ebp - 0x410]
push eax
call fcn.00436000
add esp, 8
lea ecx, [ebp - 0x418]
push ecx
lea edx, [ebp - 0x410]
push edx
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41e5e1
push 0x5f
push 0
push 2
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x41c], edx
mov eax, dword [ebp - 0x41c]
push eax
mov ecx, dword [ebp - 0x420]
push ecx
mov edx, dword [ebp - 0x414]
push edx
mov eax, dword [ebp - 0x418]
push eax
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41e4ee
cmp dword [ebp + 8], 0
je 0x41e4c9
mov ecx, dword [ebp + 8]
mov dword [ecx], 1
cmp dword [ebp + 0xc], 0
je 0x41e4d8
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x41e4e4
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x20c], 1
push 0x448
push 0
push 3
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x424], edx
mov ecx, dword [ebp - 0x424]
push ecx
mov edx, dword [ebp - 0x428]
push edx
mov eax, dword [ebp - 0x414]
push eax
mov ecx, dword [ebp - 0x418]
push ecx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41e569
cmp dword [ebp + 8], 0
je 0x41e544
mov edx, dword [ebp + 8]
mov dword [edx], 2
cmp dword [ebp + 0xc], 0
je 0x41e553
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x41e55f
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x20
mov dword [ebp - 0x20c], 1
push 0x44
push 0
push 4
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x42c], edx
mov edx, dword [ebp - 0x42c]
push edx
mov eax, dword [ebp - 0x430]
push eax
mov ecx, dword [ebp - 0x414]
push ecx
mov edx, dword [ebp - 0x418]
push edx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41e5e1
cmp dword [ebp + 8], 0
je 0x41e5bc
mov eax, dword [ebp + 8]
mov dword [eax], 3
cmp dword [ebp + 0xc], 0
je 0x41e5cb
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x41e5d7
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x20
mov dword [ebp - 0x20c], 1
lea eax, [ebp - 0x208]
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.00435ff0
add esp, 8
push str.d3drg8x.dll
lea edx, [ebp - 0x410]
push edx
call fcn.00436000
add esp, 8
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41e69d
push 0x46
push 0
push 4
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x434], edx
mov edx, dword [ebp - 0x434]
push edx
mov eax, dword [ebp - 0x438]
push eax
mov ecx, dword [ebp - 0x414]
push ecx
mov edx, dword [ebp - 0x418]
push edx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41e69d
cmp dword [ebp + 8], 0
je 0x41e678
mov eax, dword [ebp + 8]
mov dword [eax], 3
cmp dword [ebp + 0xc], 0
je 0x41e687
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x41e693
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x61
mov dword [ebp - 0x20c], 1
lea eax, [ebp - 0x208]
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.00435ff0
add esp, 8
push 0x451758
lea edx, [ebp - 0x410]
push edx
call fcn.00436000
add esp, 8
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41e856
push 0x9b
push 0
push 5
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x440], eax
mov dword [ebp - 0x43c], edx
mov edx, dword [ebp - 0x43c]
push edx
mov eax, dword [ebp - 0x440]
push eax
mov ecx, dword [ebp - 0x414]
push ecx
mov edx, dword [ebp - 0x418]
push edx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41e760
cmp dword [ebp + 8], 0
je 0x41e73b
mov eax, dword [ebp + 8]
mov dword [eax], 5
cmp dword [ebp + 0xc], 0
je 0x41e74a
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [ebp + 0x10], 0
je 0x41e756
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x20
mov dword [ebp - 0x20c], 1
push 0x13e
push 0
push 6
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x448], eax
mov dword [ebp - 0x444], edx
mov eax, dword [ebp - 0x444]
push eax
mov ecx, dword [ebp - 0x448]
push ecx
mov edx, dword [ebp - 0x414]
push edx
mov eax, dword [ebp - 0x418]
push eax
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41e7db
cmp dword [ebp + 8], 0
je 0x41e7b6
mov ecx, dword [ebp + 8]
mov dword [ecx], 6
cmp dword [ebp + 0xc], 0
je 0x41e7c5
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x41e7d1
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x20c], 1
push 0x1b4
push 0
push 6
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x44c], edx
mov ecx, dword [ebp - 0x44c]
push ecx
mov edx, dword [ebp - 0x450]
push edx
mov eax, dword [ebp - 0x414]
push eax
mov ecx, dword [ebp - 0x418]
push ecx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41e856
cmp dword [ebp + 8], 0
je 0x41e831
mov edx, dword [ebp + 8]
mov dword [edx], 6
cmp dword [ebp + 0xc], 0
je 0x41e840
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x41e84c
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x20
mov dword [ebp - 0x20c], 1
lea edx, [ebp - 0x208]
push edx
lea eax, [ebp - 0x410]
push eax
call fcn.00435ff0
add esp, 8
push str.dplayx.dll
lea ecx, [ebp - 0x410]
push ecx
call fcn.00436000
add esp, 8
lea edx, [ebp - 0x418]
push edx
lea eax, [ebp - 0x410]
push eax
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41e915
push 0x206
push 3
push 6
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x458], eax
mov dword [ebp - 0x454], edx
mov ecx, dword [ebp - 0x454]
push ecx
mov edx, dword [ebp - 0x458]
push edx
mov eax, dword [ebp - 0x414]
push eax
mov ecx, dword [ebp - 0x418]
push ecx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41e915
cmp dword [ebp + 8], 0
je 0x41e8f0
mov edx, dword [ebp + 8]
mov dword [edx], 6
cmp dword [ebp + 0xc], 0
je 0x41e8ff
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x41e90b
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x61
mov dword [ebp - 0x20c], 1
lea edx, [ebp - 0x208]
push edx
lea eax, [ebp - 0x410]
push eax
call fcn.00435ff0
add esp, 8
push 0x451770
lea ecx, [ebp - 0x410]
push ecx
call fcn.00436000
add esp, 8
lea edx, [ebp - 0x418]
push edx
lea eax, [ebp - 0x410]
push eax
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41e9d4
push 0x2bc
push 0
push 7
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x460], eax
mov dword [ebp - 0x45c], edx
mov ecx, dword [ebp - 0x45c]
push ecx
mov edx, dword [ebp - 0x460]
push edx
mov eax, dword [ebp - 0x414]
push eax
mov ecx, dword [ebp - 0x418]
push ecx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41e9d4
cmp dword [ebp + 8], 0
je 0x41e9af
mov edx, dword [ebp + 8]
mov dword [edx], 7
cmp dword [ebp + 0xc], 0
je 0x41e9be
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x41e9ca
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x20
mov dword [ebp - 0x20c], 1
lea edx, [ebp - 0x208]
push edx
lea eax, [ebp - 0x410]
push eax
call fcn.00435ff0
add esp, 8
push str.dinput.dll
lea ecx, [ebp - 0x410]
push ecx
call fcn.00436000
add esp, 8
lea edx, [ebp - 0x418]
push edx
lea eax, [ebp - 0x410]
push eax
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41ea93
push 0x2cc
push 0
push 7
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x464], edx
mov ecx, dword [ebp - 0x464]
push ecx
mov edx, dword [ebp - 0x468]
push edx
mov eax, dword [ebp - 0x414]
push eax
mov ecx, dword [ebp - 0x418]
push ecx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41ea93
cmp dword [ebp + 8], 0
je 0x41ea6e
mov edx, dword [ebp + 8]
mov dword [edx], 7
cmp dword [ebp + 0xc], 0
je 0x41ea7d
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp dword [ebp + 0x10], 0
je 0x41ea89
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x61
mov dword [ebp - 0x20c], 1
lea edx, [ebp - 0x208]
push edx
lea eax, [ebp - 0x410]
push eax
call fcn.00435ff0
add esp, 8
push str.ddraw.dll
lea ecx, [ebp - 0x410]
push ecx
call fcn.00436000
add esp, 8
lea edx, [ebp - 0x418]
push edx
lea eax, [ebp - 0x410]
push eax
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41ebce
mov ecx, dword [ebp - 0x414]
shr ecx, 0x10
and ecx, 0xffff
movzx edx, cx
cmp edx, 4
jne 0x41eb39
push 0x190
push 0
push 8
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x470], eax
mov dword [ebp - 0x46c], edx
mov eax, dword [ebp - 0x46c]
push eax
mov ecx, dword [ebp - 0x470]
push ecx
mov edx, dword [ebp - 0x414]
push edx
mov eax, dword [ebp - 0x418]
push eax
call fcn.0041f200
add esp, 0x10
test eax, eax
jge 0x41eb9a
mov ecx, dword [ebp - 0x414]
shr ecx, 0x10
and ecx, 0xffff
movzx edx, cx
cmp edx, 5
jne 0x41ebce
push 0x190
push 0x8d2
push 1
push 5
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x478], eax
mov dword [ebp - 0x474], edx
mov eax, dword [ebp - 0x474]
push eax
mov ecx, dword [ebp - 0x478]
push ecx
mov edx, dword [ebp - 0x414]
push edx
mov eax, dword [ebp - 0x418]
push eax
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41ebce
cmp dword [ebp + 8], 0
je 0x41eba9
mov ecx, dword [ebp + 8]
mov dword [ecx], 8
cmp dword [ebp + 0xc], 0
je 0x41ebb8
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x41ebc4
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x20c], 1
lea ecx, [ebp - 0x208]
push ecx
lea edx, [ebp - 0x410]
push edx
call fcn.00435ff0
add esp, 8
push str.d3d8.dll
lea eax, [ebp - 0x410]
push eax
call fcn.00436000
add esp, 8
lea ecx, [ebp - 0x418]
push ecx
lea edx, [ebp - 0x410]
push edx
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41edf8
mov eax, dword [ebp - 0x414]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
cmp ecx, 4
jne 0x41ec73
push 0x371
push 1
push 8
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x47c], edx
mov edx, dword [ebp - 0x47c]
push edx
mov eax, dword [ebp - 0x480]
push eax
mov ecx, dword [ebp - 0x414]
push ecx
mov edx, dword [ebp - 0x418]
push edx
call fcn.0041f200
add esp, 0x10
test eax, eax
jge 0x41ecd3
mov eax, dword [ebp - 0x414]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
cmp ecx, 5
jne 0x41ed07
push 0x371
push 0xa28
push 1
push 5
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x488], eax
mov dword [ebp - 0x484], edx
mov edx, dword [ebp - 0x484]
push edx
mov eax, dword [ebp - 0x488]
push eax
mov ecx, dword [ebp - 0x414]
push ecx
mov edx, dword [ebp - 0x418]
push edx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41ed07
cmp dword [ebp + 8], 0
je 0x41ece2
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x41ecf1
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 1
cmp dword [ebp + 0x10], 0
je 0x41ecfd
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x20
mov dword [ebp - 0x20c], 1
mov eax, dword [ebp - 0x414]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
cmp ecx, 4
jne 0x41ed64
push 0x385
push 1
push 8
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x490], eax
mov dword [ebp - 0x48c], edx
mov edx, dword [ebp - 0x48c]
push edx
mov eax, dword [ebp - 0x490]
push eax
mov ecx, dword [ebp - 0x414]
push ecx
mov edx, dword [ebp - 0x418]
push edx
call fcn.0041f200
add esp, 0x10
test eax, eax
jge 0x41edc4
mov eax, dword [ebp - 0x414]
shr eax, 0x10
and eax, 0xffff
movzx ecx, ax
cmp ecx, 5
jne 0x41edf8
push 0x385
push 0xa28
push 1
push 5
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x498], eax
mov dword [ebp - 0x494], edx
mov edx, dword [ebp - 0x494]
push edx
mov eax, dword [ebp - 0x498]
push eax
mov ecx, dword [ebp - 0x414]
push ecx
mov edx, dword [ebp - 0x418]
push edx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41edf8
cmp dword [ebp + 8], 0
je 0x41edd3
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x41ede2
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 1
cmp dword [ebp + 0x10], 0
je 0x41edee
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x61
mov dword [ebp - 0x20c], 1
lea eax, [ebp - 0x208]
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.00435ff0
add esp, 8
push str.mpg2splt.ax
lea edx, [ebp - 0x410]
push edx
call fcn.00436000
add esp, 8
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41eeb7
push 0x375
push 1
push 3
push 6
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x49c], edx
mov edx, dword [ebp - 0x49c]
push edx
mov eax, dword [ebp - 0x4a0]
push eax
mov ecx, dword [ebp - 0x414]
push ecx
mov edx, dword [ebp - 0x418]
push edx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41eeb7
cmp dword [ebp + 8], 0
je 0x41ee92
mov eax, dword [ebp + 8]
mov dword [eax], 8
cmp dword [ebp + 0xc], 0
je 0x41eea1
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 1
cmp dword [ebp + 0x10], 0
je 0x41eead
mov edx, dword [ebp + 0x10]
mov byte [edx], 0x62
mov dword [ebp - 0x20c], 1
lea eax, [ebp - 0x208]
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.00435ff0
add esp, 8
push str.dpnet.dll
lea edx, [ebp - 0x410]
push edx
call fcn.00436000
add esp, 8
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41eff2
mov edx, dword [ebp - 0x414]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
cmp eax, 4
jne 0x41ef5d
push 0x86
push 0
push 9
push 4
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x4a8], eax
mov dword [ebp - 0x4a4], edx
mov ecx, dword [ebp - 0x4a4]
push ecx
mov edx, dword [ebp - 0x4a8]
push edx
mov eax, dword [ebp - 0x414]
push eax
mov ecx, dword [ebp - 0x418]
push ecx
call fcn.0041f200
add esp, 0x10
test eax, eax
jge 0x41efbe
mov edx, dword [ebp - 0x414]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
cmp eax, 5
jne 0x41eff2
push 0x86
push 0xe5d
push 2
push 5
call fcn.0041f1a0
add esp, 0x10
mov dword [ebp - 0x4b0], eax
mov dword [ebp - 0x4ac], edx
mov ecx, dword [ebp - 0x4ac]
push ecx
mov edx, dword [ebp - 0x4b0]
push edx
mov eax, dword [ebp - 0x414]
push eax
mov ecx, dword [ebp - 0x418]
push ecx
call fcn.0041f200
add esp, 0x10
test eax, eax
jl 0x41eff2
cmp dword [ebp + 8], 0
je 0x41efcd
mov edx, dword [ebp + 8]
mov dword [edx], 8
cmp dword [ebp + 0xc], 0
je 0x41efdc
mov eax, dword [ebp + 0xc]
mov dword [eax], 2
cmp dword [ebp + 0x10], 0
je 0x41efe8
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0x20
mov dword [ebp - 0x20c], 1
lea edx, [ebp - 0x208]
push edx
lea eax, [ebp - 0x410]
push eax
call fcn.00435ff0
add esp, 8
push str.d3d9.dll
lea ecx, [ebp - 0x410]
push ecx
call fcn.00436000
add esp, 8
lea edx, [ebp - 0x418]
push edx
lea eax, [ebp - 0x410]
push eax
call fcn.0041f0b0
add esp, 8
test eax, eax
jl 0x41f06a
cmp dword [ebp + 8], 0
je 0x41f045
mov ecx, dword [ebp + 8]
mov dword [ecx], 9
cmp dword [ebp + 0xc], 0
je 0x41f054
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x41f060
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
mov dword [ebp - 0x20c], 1
cmp dword [ebp - 0x20c], 0
jne 0x41f09d
cmp dword [ebp + 8], 0
je 0x41f082
mov ecx, dword [ebp + 8]
mov dword [ecx], 0
cmp dword [ebp + 0xc], 0
je 0x41f091
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x41f09d
mov eax, dword [ebp + 0x10]
mov byte [eax], 0x20
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00433b5e
mov esp, ebp
pop ebp
ret