Function at 0x4176f0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x418
mov eax, dword [0x489e34]
xor eax, esp
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x420]
mov ecx, dword [esp + 0x424]
push ebx
mov ebx, dword [esp + 0x420]
push ebp
push esi
push edi
push 0x104
lea edx, [esp + 0x228]
push edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
xor ebp, ebp
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x41815f
lea eax, [esp + 0x224]
push eax
push 0x200
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x333], 0
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
mov edi, edi
cmp byte [eax], 0
je 0x41777f
add eax, 1
sub ecx, 1
jne 0x417770
jmp 0x4177a1
test ecx, ecx
je 0x4177a1
mov eax, 0x200
sub eax, ecx
push str.ddraw.dll
mov edx, 0x200
sub edx, eax
push edx
lea eax, [esp + eax + 0x2c]
push eax
call fcn.00417270
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x28]
push edx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x417891
push 0x5f
push 0
push 2
push 4
call fcn.00417670
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417804
test ebx, ebx
je 0x4177ea
mov dword [ebx], 1
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4177f4
mov dword [eax], ebp
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4177ff
mov byte [eax], 0x20
mov ebp, 1
push 0x448
push 0
push 3
push 4
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x41784c
test ebx, ebx
je 0x41782e
mov dword [ebx], 2
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41783c
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x417847
mov byte [eax], 0x20
mov ebp, 1
push 0x44
push 0
push 4
push 4
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417891
test ebx, ebx
je 0x417873
mov dword [ebx], 3
mov eax, dword [esp + 0x14]
test eax, eax
je 0x417881
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x41788c
mov byte [eax], 0x20
mov ebp, 1
lea eax, [esp + 0x224]
push eax
push 0x200
lea ecx, [esp + 0x2c]
push ecx
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x4178c0
add eax, 1
sub ecx, 1
jne 0x4178b1
jmp 0x4178e2
test ecx, ecx
je 0x4178e2
mov eax, 0x200
sub eax, ecx
push str.d3drg8x.dll
mov edx, 0x200
sub edx, eax
push edx
lea eax, [esp + eax + 0x2c]
push eax
call fcn.00417270
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x28]
push edx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x417947
push 0x46
push 0
push 4
push 4
call fcn.00417670
mov ecx, dword [esp + 0x28]
push edx
push eax
mov eax, dword [esp + 0x34]
push eax
push ecx
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417947
test ebx, ebx
je 0x417927
mov dword [ebx], 3
mov esi, dword [esp + 0x14]
test esi, esi
je 0x417935
mov dword [esi], 0
mov edi, dword [esp + 0x10]
test edi, edi
je 0x417940
mov byte [edi], 0x61
mov ebp, 1
jmp 0x41794f
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
lea edx, [esp + 0x224]
push edx
push 0x200
lea eax, [esp + 0x2c]
push eax
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
nop
cmp byte [eax], 0
je 0x41797f
add eax, 1
sub ecx, 1
jne 0x417970
jmp 0x4179a1
test ecx, ecx
je 0x4179a1
mov eax, 0x200
sub eax, ecx
push str.ddraw.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x2c]
push edx
call fcn.00417270
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x417aa7
push 0x9b
push 0
push 5
push 4
call fcn.00417670
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417a0b
test ebx, ebx
je 0x4179ed
mov dword [ebx], 5
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4179fb
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x417a06
mov byte [eax], 0x20
mov ebp, 1
push 0x13e
push 0
push 6
push 4
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417a53
test ebx, ebx
je 0x417a35
mov dword [ebx], 6
mov eax, dword [esp + 0x14]
test eax, eax
je 0x417a43
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x417a4e
mov byte [eax], 0x20
mov ebp, 1
push 0x1b4
push 0
push 6
push 4
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417a9f
test ebx, ebx
je 0x417a7d
mov dword [ebx], 6
mov eax, dword [esp + 0x14]
test eax, eax
je 0x417a8b
mov dword [eax], 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x417a96
mov byte [eax], 0x20
mov ebp, 1
mov edi, eax
jmp 0x417aa3
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
lea edx, [esp + 0x224]
push edx
push 0x200
lea eax, [esp + 0x2c]
push eax
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x417ad6
add eax, 1
sub ecx, 1
jne 0x417ac7
jmp 0x417af8
test ecx, ecx
je 0x417af8
mov eax, 0x200
sub eax, ecx
push str.dplayx.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x2c]
push edx
call fcn.00417270
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x417b56
push 0x206
push 3
push 6
push 4
call fcn.00417670
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417b56
test ebx, ebx
je 0x417b40
mov dword [ebx], 6
test esi, esi
je 0x417b4a
mov dword [esi], 1
test edi, edi
je 0x417b51
mov byte [edi], 0x61
mov ebp, 1
lea ecx, [esp + 0x224]
push ecx
push 0x200
lea edx, [esp + 0x2c]
push edx
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x417b85
add eax, 1
sub ecx, 1
jne 0x417b76
jmp 0x417ba7
test ecx, ecx
je 0x417ba7
mov eax, 0x200
sub eax, ecx
push str.ddraw.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x2c]
push edx
call fcn.00417270
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x417c05
push 0x2bc
push 0
push 7
push 4
call fcn.00417670
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417c05
test ebx, ebx
je 0x417bef
mov dword [ebx], 7
test esi, esi
je 0x417bf9
mov dword [esi], 0
test edi, edi
je 0x417c00
mov byte [edi], 0x20
mov ebp, 1
lea ecx, [esp + 0x224]
push ecx
push 0x200
lea edx, [esp + 0x2c]
push edx
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x417c34
add eax, 1
sub ecx, 1
jne 0x417c25
jmp 0x417c56
test ecx, ecx
je 0x417c56
mov eax, 0x200
sub eax, ecx
push str.dinput.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x2c]
push edx
call fcn.00417270
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x417cb4
push 0x2cc
push 0
push 7
push 4
call fcn.00417670
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417cb4
test ebx, ebx
je 0x417c9e
mov dword [ebx], 7
test esi, esi
je 0x417ca8
mov dword [esi], 0
test edi, edi
je 0x417caf
mov byte [edi], 0x61
mov ebp, 1
lea ecx, [esp + 0x224]
push ecx
push 0x200
lea edx, [esp + 0x2c]
push edx
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x417ce3
add eax, 1
sub ecx, 1
jne 0x417cd4
jmp 0x417d05
test ecx, ecx
je 0x417d05
mov eax, 0x200
sub eax, ecx
push str.ddraw.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x2c]
push edx
call fcn.00417270
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x417da7
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, esi
shr ebx, 0x10
cmp bx, 4
jne 0x417d52
push 0x190
push 0
push 8
push 4
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jge 0x417d7b
cmp bx, 5
jne 0x417da7
push 0x190
push 0x8d2
push 1
push 5
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417da7
mov eax, dword [esp + 0x20]
test eax, eax
je 0x417d89
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x417d97
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x417da2
mov byte [eax], 0x20
mov ebp, 1
lea edx, [esp + 0x224]
push edx
push 0x200
lea eax, [esp + 0x2c]
push eax
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x417dd6
add eax, 1
sub ecx, 1
jne 0x417dc7
jmp 0x417df8
test ecx, ecx
je 0x417df8
mov eax, 0x200
sub eax, ecx
push str.d3d8.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x2c]
push edx
call fcn.00417270
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x417f15
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, esi
shr ebx, 0x10
cmp bx, 4
jne 0x417e45
push 0x371
push 1
push 8
push 4
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jge 0x417e6e
cmp bx, 5
jne 0x417e9a
push 0x371
push 0xa28
push 1
push 5
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417e9a
mov eax, dword [esp + 0x20]
test eax, eax
je 0x417e7c
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x417e8a
mov dword [eax], 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x417e95
mov byte [eax], 0x20
mov ebp, 1
cmp bx, 4
jne 0x417ec0
push 0x385
push 1
push 8
push 4
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jge 0x417ee9
cmp bx, 5
jne 0x417f15
push 0x385
push 0xa28
push 1
push 5
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417f15
mov eax, dword [esp + 0x20]
test eax, eax
je 0x417ef7
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x417f05
mov dword [eax], 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x417f10
mov byte [eax], 0x61
mov ebp, 1
lea edx, [esp + 0x224]
push edx
push 0x200
lea eax, [esp + 0x2c]
push eax
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x417f44
add eax, 1
sub ecx, 1
jne 0x417f35
jmp 0x417f66
test ecx, ecx
je 0x417f66
mov eax, 0x200
sub eax, ecx
push str.mpg2splt.ax
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x2c]
push edx
call fcn.00417270
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x417fd0
push 0x375
push 1
push 3
push 6
call fcn.00417670
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x417fd0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x417fb2
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x417fc0
mov dword [eax], 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x417fcb
mov byte [eax], 0x62
mov ebp, 1
lea ecx, [esp + 0x224]
push ecx
push 0x200
lea edx, [esp + 0x2c]
push edx
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x417fff
add eax, 1
sub ecx, 1
jne 0x417ff0
jmp 0x418021
test ecx, ecx
je 0x418021
mov eax, 0x200
sub eax, ecx
push str.dpnet.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x2c]
push edx
call fcn.00417270
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x4180c5
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, esi
shr ebx, 0x10
cmp bx, 4
jne 0x41806e
push 0x86
push 0
push 9
push 4
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jge 0x418097
cmp bx, 5
jne 0x4180c5
push 0x86
push 0xe5d
push 2
push 5
call fcn.00417670
push edx
push eax
push esi
push edi
call fcn.00417690
add esp, 0x20
test eax, eax
jl 0x4180c5
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4180a5
mov dword [edi], 8
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4180b3
mov dword [esi], 2
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x4180be
mov byte [ebx], 0x20
mov ebp, 1
jmp 0x4180d1
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x224]
push edx
push 0x200
lea eax, [esp + 0x2c]
push eax
call fcn.00417270
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x418100
add eax, 1
sub ecx, 1
jne 0x4180f1
jmp 0x418122
test ecx, ecx
je 0x418122
mov eax, 0x200
sub eax, ecx
push str.d3d9.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x2c]
push edx
call fcn.00417270
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004175a0
add esp, 8
test eax, eax
jl 0x418157
test edi, edi
je 0x418142
mov dword [edi], 9
test esi, esi
je 0x41814c
mov dword [esi], 0
xor eax, eax
test ebx, ebx
je 0x418184
mov byte [ebx], 0x20
jmp 0x418184
test ebp, ebp
jne 0x418182
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x418169
mov dword [ebx], 0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x418177
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x418182
mov byte [eax], 0x20
xor eax, eax
mov ecx, dword [esp + 0x424]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004563cf
add esp, 0x418
ret