Function at 0x414a00
Capabilities:
Get common file path

Disassembly:
sub esp, 0x828
mov eax, dword [0x4bd750]
xor eax, esp
mov dword [esp + 0x824], eax
push ebx
mov ebx, dword [esp + 0x830]
push ebp
push esi
push edi
push 0x104
lea eax, [esp + 0x434]
mov esi, ecx
mov edi, edx
push eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebx
xor ebp, ebp
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x4152e3
lea eax, [esp + 0x30]
lea esi, [esp + 0x430]
mov ecx, eax
sub esi, ecx
mov word [esp + 0x636], bp
mov edx, 0x200
mov dword [esp + 0x2c], esi
lea esp, [esp]
movzx ecx, word [esi + eax]
test cx, cx
je 0x414a86
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x414a70
jmp 0x414a8a
test edx, edx
jne 0x414a8d
sub eax, 2
push str.ddraw.dll
lea esi, [esp + 0x34]
mov word [eax], bp
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x414b68
mov eax, dword [esp + 0x24]
cmp eax, 0x40002
mov ecx, dword [esp + 0x20]
ja 0x414ac9
jb 0x414af5
cmp ecx, 0x5f
ja 0x414ac9
jb 0x414af5
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x414ad7
mov dword [edi], 1
mov edx, dword [esp + 0x14]
test edx, edx
je 0x414ae1
mov dword [edx], ebp
mov esi, dword [esp + 0x18]
test esi, esi
je 0x414aee
mov word [esi], 0x20
mov ebp, 1
jmp 0x414b01
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
cmp eax, 0x40003
ja 0x414b14
jb 0x414b36
cmp ecx, 0x448
ja 0x414b14
jb 0x414b36
test edi, edi
je 0x414b1e
mov dword [edi], 2
test edx, edx
je 0x414b28
mov dword [edx], 0
test esi, esi
je 0x414b31
mov word [esi], 0x20
mov ebp, 1
cmp eax, 0x40004
ja 0x414b46
jb 0x414b68
cmp ecx, 0x44
ja 0x414b46
jb 0x414b68
test edi, edi
je 0x414b50
mov dword [edi], 3
test edx, edx
je 0x414b5a
mov dword [edx], 0
test esi, esi
je 0x414b63
mov word [esi], 0x20
mov ebp, 1
lea edx, [esp + 0x430]
mov esi, 0x200
lea eax, [esp + 0x30]
movzx ecx, word [edx]
test cx, cx
je 0x414b90
mov word [eax], cx
add eax, 2
add edx, 2
sub esi, 1
jne 0x414b78
jmp 0x414b94
test esi, esi
jne 0x414b97
sub eax, 2
push str.d3drg8x.dll
lea esi, [esp + 0x34]
mov word [eax], 0
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x414bff
mov eax, dword [esp + 0x24]
cmp eax, 0x40004
ja 0x414bd1
jb 0x414bff
mov eax, dword [esp + 0x20]
cmp eax, 0x46
ja 0x414bd1
jb 0x414bff
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x414bdf
mov dword [eax], 3
mov eax, dword [esp + 0x14]
test eax, eax
je 0x414bed
mov dword [eax], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x414bfa
mov word [eax], 0x61
mov ebp, 1
lea edx, [esp + 0x430]
mov esi, 0x200
lea eax, [esp + 0x30]
nop
movzx ecx, word [edx]
test cx, cx
je 0x414c28
mov word [eax], cx
add eax, 2
add edx, 2
sub esi, 1
jne 0x414c10
jmp 0x414c2c
test esi, esi
jne 0x414c2f
sub eax, 2
push str.ddraw.dll
lea esi, [esp + 0x34]
mov word [eax], 0
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x414d16
mov eax, dword [esp + 0x24]
cmp eax, 0x40005
mov ecx, dword [esp + 0x20]
ja 0x414c70
jb 0x414ca0
cmp ecx, 0x9b
ja 0x414c70
jb 0x414ca0
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x414c7e
mov dword [edi], 5
mov edx, dword [esp + 0x14]
test edx, edx
je 0x414c8c
mov dword [edx], 0
mov esi, dword [esp + 0x18]
test esi, esi
je 0x414c99
mov word [esi], 0x20
mov ebp, 1
jmp 0x414cac
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
cmp eax, 0x40006
ja 0x414cbf
jb 0x414ce1
cmp ecx, 0x13e
ja 0x414cbf
jb 0x414ce1
test edi, edi
je 0x414cc9
mov dword [edi], 6
test edx, edx
je 0x414cd3
mov dword [edx], 0
test esi, esi
je 0x414cdc
mov word [esi], 0x20
mov ebp, 1
cmp eax, 0x40006
ja 0x414cf4
jb 0x414d16
cmp ecx, 0x1b4
ja 0x414cf4
jb 0x414d16
test edi, edi
je 0x414cfe
mov dword [edi], 6
test edx, edx
je 0x414d08
mov dword [edx], 1
test esi, esi
je 0x414d11
mov word [esi], 0x20
mov ebp, 1
lea edx, [esp + 0x430]
mov esi, 0x200
lea eax, [esp + 0x30]
movzx ecx, word [edx]
test cx, cx
je 0x414d3e
mov word [eax], cx
add eax, 2
add edx, 2
sub esi, 1
jne 0x414d26
jmp 0x414d42
test esi, esi
jne 0x414d45
sub eax, 2
push str.dplayx.dll
lea esi, [esp + 0x34]
mov word [eax], 0
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x414daf
mov eax, dword [esp + 0x24]
cmp eax, 0x40006
ja 0x414d81
jb 0x414daf
mov eax, dword [esp + 0x20]
cmp eax, 0x30206
ja 0x414d81
jb 0x414daf
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x414d8f
mov dword [eax], 6
mov eax, dword [esp + 0x14]
test eax, eax
je 0x414d9d
mov dword [eax], 1
mov eax, dword [esp + 0x18]
test eax, eax
je 0x414daa
mov word [eax], 0x61
mov ebp, 1
lea edx, [esp + 0x430]
mov esi, 0x200
lea eax, [esp + 0x30]
nop
movzx ecx, word [edx]
test cx, cx
je 0x414dd8
mov word [eax], cx
add eax, 2
add edx, 2
sub esi, 1
jne 0x414dc0
jmp 0x414ddc
test esi, esi
jne 0x414ddf
sub eax, 2
push str.ddraw.dll
lea esi, [esp + 0x34]
mov word [eax], 0
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x414e49
mov eax, dword [esp + 0x24]
cmp eax, 0x40007
ja 0x414e1b
jb 0x414e49
mov eax, dword [esp + 0x20]
cmp eax, 0x2bc
ja 0x414e1b
jb 0x414e49
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x414e29
mov dword [eax], 7
mov eax, dword [esp + 0x14]
test eax, eax
je 0x414e37
mov dword [eax], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x414e44
mov word [eax], 0x20
mov ebp, 1
lea edx, [esp + 0x430]
mov esi, 0x200
lea eax, [esp + 0x30]
lea esp, [esp]
movzx ecx, word [edx]
test cx, cx
je 0x414e78
mov word [eax], cx
add eax, 2
add edx, 2
sub esi, 1
jne 0x414e60
jmp 0x414e7c
test esi, esi
jne 0x414e7f
sub eax, 2
push str.dinput.dll
lea esi, [esp + 0x34]
mov word [eax], 0
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x414ee9
mov eax, dword [esp + 0x24]
cmp eax, 0x40007
ja 0x414ebb
jb 0x414ee9
mov eax, dword [esp + 0x20]
cmp eax, 0x2cc
ja 0x414ebb
jb 0x414ee9
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x414ec9
mov dword [eax], 7
mov eax, dword [esp + 0x14]
test eax, eax
je 0x414ed7
mov dword [eax], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x414ee4
mov word [eax], 0x61
mov ebp, 1
lea edx, [esp + 0x430]
mov esi, 0x200
lea eax, [esp + 0x30]
lea esp, [esp]
movzx ecx, word [edx]
test cx, cx
je 0x414f18
mov word [eax], cx
add eax, 2
add edx, 2
sub esi, 1
jne 0x414f00
jmp 0x414f1c
test esi, esi
jne 0x414f1f
sub eax, 2
push str.ddraw.dll
lea esi, [esp + 0x34]
mov word [eax], 0
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x414fb4
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov eax, edx
shr eax, 0x10
cmp ax, 4
jne 0x414f66
cmp edx, 0x40008
ja 0x414f86
jb 0x414f66
cmp esi, 0x190
jae 0x414f86
cmp ax, 5
jne 0x414fb4
mov eax, 0x50001
push eax
mov ecx, 0x8d20190
push ecx
push edx
push esi
call fcn.00415310
add esp, 0x10
test eax, eax
jl 0x414fb4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x414f94
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x414fa2
mov dword [eax], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x414faf
mov word [eax], 0x20
mov ebp, 1
mov esi, dword [esp + 0x2c]
mov edx, 0x200
lea eax, [esp + 0x30]
movzx ecx, word [esi + eax]
test cx, cx
je 0x414fd7
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x414fc1
jmp 0x414fdb
test edx, edx
jne 0x414fde
sub eax, 2
push str.d3d8.dll
lea esi, [esp + 0x34]
mov word [eax], 0
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x4150df
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov edi, edx
shr edi, 0x10
cmp di, 4
jne 0x415029
cmp edx, 0x40008
ja 0x415049
jb 0x415029
cmp esi, 0x10371
jae 0x415049
cmp di, 5
jne 0x415079
mov eax, 0x50001
push eax
mov ecx, 0xa280371
push ecx
push edx
push esi
call fcn.00415310
add esp, 0x10
test eax, eax
jl 0x415079
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x415057
mov dword [eax], 8
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x415065
mov dword [ebx], 1
mov eax, dword [esp + 0x18]
test eax, eax
je 0x415072
mov word [eax], 0x20
mov ebp, 1
jmp 0x41507d
mov ebx, dword [esp + 0x14]
cmp di, 4
jne 0x415095
cmp edx, 0x40008
ja 0x4150b5
jb 0x415095
cmp esi, 0x10385
jae 0x4150b5
cmp di, 5
jne 0x4150df
mov eax, 0x50001
push eax
mov ecx, 0xa280385
push ecx
push edx
push esi
call fcn.00415310
add esp, 0x10
test eax, eax
jl 0x4150df
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4150c3
mov dword [eax], 8
test ebx, ebx
je 0x4150cd
mov dword [ebx], 1
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4150da
mov word [eax], 0x61
mov ebp, 1
mov esi, dword [esp + 0x2c]
mov edx, 0x200
lea eax, [esp + 0x30]
lea esp, [esp]
movzx ecx, word [esi + eax]
test cx, cx
je 0x415106
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x4150f0
jmp 0x41510a
test edx, edx
jne 0x41510d
sub eax, 2
push str.mpg2splt.ax
lea esi, [esp + 0x34]
mov word [eax], 0
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x415177
mov eax, dword [esp + 0x24]
cmp eax, 0x60003
ja 0x415149
jb 0x415177
mov eax, dword [esp + 0x20]
cmp eax, 0x10375
ja 0x415149
jb 0x415177
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x415157
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415165
mov dword [eax], 1
mov eax, dword [esp + 0x18]
test eax, eax
je 0x415172
mov word [eax], 0x62
mov ebp, 1
lea edx, [esp + 0x430]
mov esi, 0x200
lea eax, [esp + 0x30]
movzx ecx, word [edx]
test cx, cx
je 0x41519f
mov word [eax], cx
add eax, 2
add edx, 2
sub esi, 1
jne 0x415187
jmp 0x4151a3
test esi, esi
jne 0x4151a6
sub eax, 2
push str.dpnet.dll
lea esi, [esp + 0x34]
mov word [eax], 0
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x41523f
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov eax, ecx
shr eax, 0x10
cmp ax, 4
jne 0x4151f1
cmp ecx, 0x40009
ja 0x415211
jb 0x4151f1
cmp esi, 0x86
jae 0x415211
cmp ax, 5
jne 0x41523f
mov eax, 0x50002
push eax
mov edx, 0xe5d0086
push edx
push ecx
push esi
call fcn.00415310
add esp, 0x10
test eax, eax
jl 0x41523f
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41521f
mov dword [eax], 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41522d
mov dword [eax], 2
mov eax, dword [esp + 0x18]
test eax, eax
je 0x41523a
mov word [eax], 0x20
mov ebp, 1
mov esi, dword [esp + 0x2c]
mov edx, 0x200
lea eax, [esp + 0x30]
lea esp, [esp]
movzx ecx, word [esi + eax]
test cx, cx
je 0x415266
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x415250
jmp 0x41526a
test edx, edx
jne 0x41526d
sub eax, 2
push 0x4ad154
lea esi, [esp + 0x34]
mov word [eax], 0
call fcn.00413d20
lea ebx, [esp + 0x20]
mov edi, esi
call fcn.00415340
test eax, eax
jl 0x4152d3
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41529d
mov dword [eax], 9
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4152ab
mov dword [eax], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4152b8
mov word [eax], 0x20
xor eax, eax
mov ecx, dword [esp + 0x834]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004716ba
add esp, 0x828
ret
test ebp, ebp
jne 0x4152b8
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4152ed
mov dword [esi], 0
test edi, edi
je 0x4152f7
mov dword [edi], 0
xor eax, eax
test ebx, ebx
je 0x4152ba
mov word [ebx], 0x20
jmp 0x4152ba