Function at 0x49d2c0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x418
mov eax, dword [0x4da22c]
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 0x49dd2f
lea eax, [esp + 0x224]
push eax
push 0x200
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x333], 0
call fcn.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
mov edi, edi
cmp byte [eax], 0
je 0x49d34f
add eax, 1
sub ecx, 1
jne 0x49d340
jmp 0x49d371
test ecx, ecx
je 0x49d371
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.0049ce60
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x28]
push edx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49d461
push 0x5f
push 0
push 2
push 4
call fcn.0049d240
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d3d4
test ebx, ebx
je 0x49d3ba
mov dword [ebx], 1
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49d3c4
mov dword [eax], ebp
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49d3cf
mov byte [eax], 0x20
mov ebp, 1
push 0x448
push 0
push 3
push 4
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d41c
test ebx, ebx
je 0x49d3fe
mov dword [ebx], 2
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49d40c
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49d417
mov byte [eax], 0x20
mov ebp, 1
push 0x44
push 0
push 4
push 4
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d461
test ebx, ebx
je 0x49d443
mov dword [ebx], 3
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49d451
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49d45c
mov byte [eax], 0x20
mov ebp, 1
lea eax, [esp + 0x224]
push eax
push 0x200
lea ecx, [esp + 0x2c]
push ecx
call fcn.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x49d490
add eax, 1
sub ecx, 1
jne 0x49d481
jmp 0x49d4b2
test ecx, ecx
je 0x49d4b2
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.0049ce60
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x28]
push edx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49d517
push 0x46
push 0
push 4
push 4
call fcn.0049d240
mov ecx, dword [esp + 0x28]
push edx
push eax
mov eax, dword [esp + 0x34]
push eax
push ecx
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d517
test ebx, ebx
je 0x49d4f7
mov dword [ebx], 3
mov esi, dword [esp + 0x14]
test esi, esi
je 0x49d505
mov dword [esi], 0
mov edi, dword [esp + 0x10]
test edi, edi
je 0x49d510
mov byte [edi], 0x61
mov ebp, 1
jmp 0x49d51f
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
lea edx, [esp + 0x224]
push edx
push 0x200
lea eax, [esp + 0x2c]
push eax
call fcn.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
nop
cmp byte [eax], 0
je 0x49d54f
add eax, 1
sub ecx, 1
jne 0x49d540
jmp 0x49d571
test ecx, ecx
je 0x49d571
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.0049ce60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49d677
push 0x9b
push 0
push 5
push 4
call fcn.0049d240
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d5db
test ebx, ebx
je 0x49d5bd
mov dword [ebx], 5
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49d5cb
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49d5d6
mov byte [eax], 0x20
mov ebp, 1
push 0x13e
push 0
push 6
push 4
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d623
test ebx, ebx
je 0x49d605
mov dword [ebx], 6
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49d613
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49d61e
mov byte [eax], 0x20
mov ebp, 1
push 0x1b4
push 0
push 6
push 4
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d66f
test ebx, ebx
je 0x49d64d
mov dword [ebx], 6
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49d65b
mov dword [eax], 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49d666
mov byte [eax], 0x20
mov ebp, 1
mov edi, eax
jmp 0x49d673
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.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x49d6a6
add eax, 1
sub ecx, 1
jne 0x49d697
jmp 0x49d6c8
test ecx, ecx
je 0x49d6c8
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.0049ce60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49d726
push 0x206
push 3
push 6
push 4
call fcn.0049d240
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d726
test ebx, ebx
je 0x49d710
mov dword [ebx], 6
test esi, esi
je 0x49d71a
mov dword [esi], 1
test edi, edi
je 0x49d721
mov byte [edi], 0x61
mov ebp, 1
lea ecx, [esp + 0x224]
push ecx
push 0x200
lea edx, [esp + 0x2c]
push edx
call fcn.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x49d755
add eax, 1
sub ecx, 1
jne 0x49d746
jmp 0x49d777
test ecx, ecx
je 0x49d777
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.0049ce60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49d7d5
push 0x2bc
push 0
push 7
push 4
call fcn.0049d240
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d7d5
test ebx, ebx
je 0x49d7bf
mov dword [ebx], 7
test esi, esi
je 0x49d7c9
mov dword [esi], 0
test edi, edi
je 0x49d7d0
mov byte [edi], 0x20
mov ebp, 1
lea ecx, [esp + 0x224]
push ecx
push 0x200
lea edx, [esp + 0x2c]
push edx
call fcn.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x49d804
add eax, 1
sub ecx, 1
jne 0x49d7f5
jmp 0x49d826
test ecx, ecx
je 0x49d826
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.0049ce60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49d884
push 0x2cc
push 0
push 7
push 4
call fcn.0049d240
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d884
test ebx, ebx
je 0x49d86e
mov dword [ebx], 7
test esi, esi
je 0x49d878
mov dword [esi], 0
test edi, edi
je 0x49d87f
mov byte [edi], 0x61
mov ebp, 1
lea ecx, [esp + 0x224]
push ecx
push 0x200
lea edx, [esp + 0x2c]
push edx
call fcn.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x49d8b3
add eax, 1
sub ecx, 1
jne 0x49d8a4
jmp 0x49d8d5
test ecx, ecx
je 0x49d8d5
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.0049ce60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49d977
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, esi
shr ebx, 0x10
cmp bx, 4
jne 0x49d922
push 0x190
push 0
push 8
push 4
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jge 0x49d94b
cmp bx, 5
jne 0x49d977
push 0x190
push 0x8d2
push 1
push 5
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49d977
mov eax, dword [esp + 0x20]
test eax, eax
je 0x49d959
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49d967
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49d972
mov byte [eax], 0x20
mov ebp, 1
lea edx, [esp + 0x224]
push edx
push 0x200
lea eax, [esp + 0x2c]
push eax
call fcn.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x49d9a6
add eax, 1
sub ecx, 1
jne 0x49d997
jmp 0x49d9c8
test ecx, ecx
je 0x49d9c8
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.0049ce60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49dae5
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, esi
shr ebx, 0x10
cmp bx, 4
jne 0x49da15
push 0x371
push 1
push 8
push 4
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jge 0x49da3e
cmp bx, 5
jne 0x49da6a
push 0x371
push 0xa28
push 1
push 5
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49da6a
mov eax, dword [esp + 0x20]
test eax, eax
je 0x49da4c
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49da5a
mov dword [eax], 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49da65
mov byte [eax], 0x20
mov ebp, 1
cmp bx, 4
jne 0x49da90
push 0x385
push 1
push 8
push 4
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jge 0x49dab9
cmp bx, 5
jne 0x49dae5
push 0x385
push 0xa28
push 1
push 5
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49dae5
mov eax, dword [esp + 0x20]
test eax, eax
je 0x49dac7
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49dad5
mov dword [eax], 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49dae0
mov byte [eax], 0x61
mov ebp, 1
lea edx, [esp + 0x224]
push edx
push 0x200
lea eax, [esp + 0x2c]
push eax
call fcn.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x49db14
add eax, 1
sub ecx, 1
jne 0x49db05
jmp 0x49db36
test ecx, ecx
je 0x49db36
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.0049ce60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49dba0
push 0x375
push 1
push 3
push 6
call fcn.0049d240
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49dba0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x49db82
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49db90
mov dword [eax], 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49db9b
mov byte [eax], 0x62
mov ebp, 1
lea ecx, [esp + 0x224]
push ecx
push 0x200
lea edx, [esp + 0x2c]
push edx
call fcn.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x49dbcf
add eax, 1
sub ecx, 1
jne 0x49dbc0
jmp 0x49dbf1
test ecx, ecx
je 0x49dbf1
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.0049ce60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49dc95
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, esi
shr ebx, 0x10
cmp bx, 4
jne 0x49dc3e
push 0x86
push 0
push 9
push 4
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jge 0x49dc67
cmp bx, 5
jne 0x49dc95
push 0x86
push 0xe5d
push 2
push 5
call fcn.0049d240
push edx
push eax
push esi
push edi
call fcn.0049d260
add esp, 0x20
test eax, eax
jl 0x49dc95
mov edi, dword [esp + 0x20]
test edi, edi
je 0x49dc75
mov dword [edi], 8
mov esi, dword [esp + 0x14]
test esi, esi
je 0x49dc83
mov dword [esi], 2
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x49dc8e
mov byte [ebx], 0x20
mov ebp, 1
jmp 0x49dca1
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x224]
push edx
push 0x200
lea eax, [esp + 0x2c]
push eax
call fcn.0049ce60
mov ecx, 0x200
lea eax, [esp + 0x24]
cmp byte [eax], 0
je 0x49dcd0
add eax, 1
sub ecx, 1
jne 0x49dcc1
jmp 0x49dcf2
test ecx, ecx
je 0x49dcf2
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.0049ce60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.0049d170
add esp, 8
test eax, eax
jl 0x49dd27
test edi, edi
je 0x49dd12
mov dword [edi], 9
test esi, esi
je 0x49dd1c
mov dword [esi], 0
xor eax, eax
test ebx, ebx
je 0x49dd54
mov byte [ebx], 0x20
jmp 0x49dd54
test ebp, ebp
jne 0x49dd52
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x49dd39
mov dword [ebx], 0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49dd47
mov dword [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49dd52
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.00488320
add esp, 0x418
ret