Function at 0x140172098
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x440
mov rax, qword [0x14028b7c8]
xor rax, rsp
mov qword [rsp + 0x430], rax
mov rsi, rcx
mov rdi, rdx
lea rcx, [rsp + 0x230]
xor r14d, r14d
mov edx, 0x104
mov rbx, r8
mov ebp, r14d
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp eax, r14d
je 0x140172b43
lea r13, [rsp + 0x230]
lea rax, [rsp + 0x30]
mov r12d, 0x200
mov byte [rsp + 0x333], r14b
lea rcx, [rsp + 0x30]
lea r15d, [r14 + 1]
sub r13, rax
mov rdx, r12
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x140172136
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x140172136
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x140172116
cmp rdx, r14
jne 0x14017213e
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.ddraw.dll
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
mov ecx, 4
cmp eax, r14d
jl 0x140172238
lea r9d, [rcx + 0x5b]
lea edx, [rcx - 2]
xor r8d, r8d
call fcn.140171f40
mov r11, qword [rsp + 0x20]
mov rcx, r11
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x1401721b1
cmp rsi, r14
je 0x14017219e
mov dword [rsi], r15d
cmp rdi, r14
je 0x1401721a6
mov dword [rdi], r14d
cmp rbx, r14
je 0x1401721ae
mov byte [rbx], 0x20
mov ebp, r15d
xor r8d, r8d
mov r9d, 0x448
lea edx, [r8 + 3]
lea ecx, [rdx + 1]
call fcn.140171f40
mov rcx, r11
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x1401721f4
cmp rsi, r14
je 0x1401721e1
mov dword [rsi], 2
cmp rdi, r14
je 0x1401721e9
mov dword [rdi], r14d
cmp rbx, r14
je 0x1401721f1
mov byte [rbx], 0x20
mov ebp, r15d
mov r9d, 0x44
xor r8d, r8d
lea eax, [r9 - 0x40]
mov edx, eax
mov ecx, eax
call fcn.140171f40
mov rcx, r11
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x140172238
cmp rsi, r14
je 0x140172225
mov dword [rsi], 3
cmp rdi, r14
je 0x14017222d
mov dword [rdi], r14d
cmp rbx, r14
je 0x140172235
mov byte [rbx], 0x20
mov ebp, r15d
mov rdx, r12
lea rcx, [rsp + 0x30]
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x140172260
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x140172260
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x140172240
cmp rdx, r14
jne 0x140172268
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.d3drg8x.dll
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
cmp eax, r14d
jl 0x1401722d9
mov r9d, 0x46
xor r8d, r8d
lea eax, [r9 - 0x42]
mov edx, eax
mov ecx, eax
call fcn.140171f40
mov rcx, qword [rsp + 0x20]
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x1401722d9
cmp rsi, r14
je 0x1401722c6
mov dword [rsi], 3
cmp rdi, r14
je 0x1401722ce
mov dword [rdi], r14d
cmp rbx, r14
je 0x1401722d6
mov byte [rbx], 0x61
mov ebp, r15d
mov rdx, r12
lea rcx, [rsp + 0x30]
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x140172301
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x140172301
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x1401722e1
cmp rdx, r14
jne 0x140172309
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.ddraw.dll
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
mov ecx, 5
cmp eax, r14d
jl 0x140172409
mov edx, ecx
mov r9d, 0x9b
xor r8d, r8d
lea ecx, [rdx - 1]
call fcn.140171f40
mov r11, qword [rsp + 0x20]
mov rcx, r11
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x140172383
cmp rsi, r14
je 0x140172370
mov dword [rsi], 5
cmp rdi, r14
je 0x140172378
mov dword [rdi], r14d
cmp rbx, r14
je 0x140172380
mov byte [rbx], 0x20
mov ebp, r15d
xor r8d, r8d
mov r9d, 0x13e
lea edx, [r8 + 6]
lea ecx, [rdx - 2]
call fcn.140171f40
mov rcx, r11
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x1401723c6
cmp rsi, r14
je 0x1401723b3
mov dword [rsi], 6
cmp rdi, r14
je 0x1401723bb
mov dword [rdi], r14d
cmp rbx, r14
je 0x1401723c3
mov byte [rbx], 0x20
mov ebp, r15d
xor r8d, r8d
mov r9d, 0x1b4
lea edx, [r8 + 6]
lea ecx, [rdx - 2]
call fcn.140171f40
mov rcx, r11
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x140172409
cmp rsi, r14
je 0x1401723f6
mov dword [rsi], 6
cmp rdi, r14
je 0x1401723fe
mov dword [rdi], r15d
cmp rbx, r14
je 0x140172406
mov byte [rbx], 0x20
mov ebp, r15d
mov rdx, r12
lea rcx, [rsp + 0x30]
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x140172431
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x140172431
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x140172411
cmp rdx, r14
jne 0x140172439
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.dplayx.dll
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
cmp eax, r14d
jl 0x1401724ad
mov r8d, 3
mov r9d, 0x206
lea r11d, [r8 + 3]
lea ecx, [r8 + 1]
mov edx, r11d
call fcn.140171f40
mov rcx, qword [rsp + 0x20]
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x1401724ad
cmp rsi, r14
je 0x14017249a
mov dword [rsi], r11d
cmp rdi, r14
je 0x1401724a2
mov dword [rdi], r15d
cmp rbx, r14
je 0x1401724aa
mov byte [rbx], 0x61
mov ebp, r15d
mov rdx, r12
lea rcx, [rsp + 0x30]
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x1401724d5
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x1401724d5
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x1401724b5
cmp rdx, r14
jne 0x1401724dd
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.ddraw.dll
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
mov r12d, 7
cmp eax, r14d
jl 0x140172551
lea ecx, [r12 - 3]
mov r9d, 0x2bc
xor r8d, r8d
mov edx, r12d
call fcn.140171f40
mov rcx, qword [rsp + 0x20]
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x140172551
cmp rsi, r14
je 0x14017253e
mov dword [rsi], r12d
cmp rdi, r14
je 0x140172546
mov dword [rdi], r14d
cmp rbx, r14
je 0x14017254e
mov byte [rbx], 0x20
mov ebp, r15d
mov r9d, 0x200
lea rcx, [rsp + 0x30]
mov rdx, r9
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x14017257f
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x14017257f
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x14017255f
cmp rdx, r14
jne 0x140172587
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.dinput.dll
lea rcx, [rsp + 0x30]
mov rdx, r9
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
cmp eax, r14d
jl 0x1401725f4
xor r8d, r8d
mov r9d, 0x2cc
mov edx, r12d
lea ecx, [r8 + 4]
call fcn.140171f40
mov rcx, qword [rsp + 0x20]
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x1401725f4
cmp rsi, r14
je 0x1401725e1
mov dword [rsi], r12d
cmp rdi, r14
je 0x1401725e9
mov dword [rdi], r14d
cmp rbx, r14
je 0x1401725f1
mov byte [rbx], 0x61
mov ebp, r15d
mov r12d, 0x200
lea rcx, [rsp + 0x30]
mov rdx, r12
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x140172622
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x140172622
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x140172602
cmp rdx, r14
jne 0x14017262a
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.ddraw.dll
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
cmp eax, r14d
jl 0x1401726dd
mov r11d, dword [rsp + 0x24]
mov eax, 4
mov r9d, 0x190
shr r11d, 0x10
cmp r11w, ax
jne 0x140172692
lea edx, [rax + 4]
xor r8d, r8d
mov ecx, eax
call fcn.140171f40
mov rcx, qword [rsp + 0x20]
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jge 0x1401726bf
mov eax, 5
cmp r11w, ax
jne 0x1401726dd
mov r8d, 0x8d2
mov edx, r15d
mov ecx, eax
call fcn.140171f40
mov rcx, qword [rsp + 0x20]
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x1401726dd
cmp rsi, r14
je 0x1401726ca
mov dword [rsi], 8
cmp rdi, r14
je 0x1401726d2
mov dword [rdi], r14d
cmp rbx, r14
je 0x1401726da
mov byte [rbx], 0x20
mov ebp, r15d
mov rdx, r12
lea rcx, [rsp + 0x30]
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x140172705
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x140172705
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x1401726e5
cmp rdx, r14
jne 0x14017270d
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.d3d8.dll
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
cmp eax, r14d
jl 0x14017283e
mov r12d, dword [rsp + 0x24]
mov r11, qword [rsp + 0x20]
mov eax, 4
shr r12d, 0x10
mov r9d, 0x371
cmp r12w, ax
jne 0x140172778
lea edx, [rax + 4]
mov r8d, r15d
mov ecx, eax
call fcn.140171f40
mov rcx, r11
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jge 0x1401727a3
mov eax, 5
cmp r12w, ax
jne 0x1401727c1
mov r8d, 0xa28
mov edx, r15d
mov ecx, eax
call fcn.140171f40
mov rcx, r11
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x1401727c1
cmp rsi, r14
je 0x1401727ae
mov dword [rsi], 8
cmp rdi, r14
je 0x1401727b6
mov dword [rdi], r15d
cmp rbx, r14
je 0x1401727be
mov byte [rbx], 0x20
mov ebp, r15d
mov eax, 4
mov r9d, 0x385
cmp r12w, ax
jne 0x1401727ef
lea edx, [rax + 4]
mov r8d, r15d
mov ecx, eax
call fcn.140171f40
mov rcx, r11
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jge 0x14017281a
mov eax, 5
cmp r12w, ax
jne 0x140172838
mov r8d, 0xa28
mov edx, r15d
mov ecx, eax
call fcn.140171f40
mov rcx, r11
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x140172838
cmp rsi, r14
je 0x140172825
mov dword [rsi], 8
cmp rdi, r14
je 0x14017282d
mov dword [rdi], r15d
cmp rbx, r14
je 0x140172835
mov byte [rbx], 0x61
mov ebp, r15d
mov r12d, 0x200
mov rdx, r12
lea rcx, [rsp + 0x30]
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x140172866
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x140172866
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x140172846
cmp rdx, r14
jne 0x14017286e
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.mpg2splt.ax
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
cmp eax, r14d
jl 0x1401728df
mov edx, 3
mov r9d, 0x375
mov r8d, r15d
lea ecx, [rdx + 3]
call fcn.140171f40
mov rcx, qword [rsp + 0x20]
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x1401728df
cmp rsi, r14
je 0x1401728cc
mov dword [rsi], 8
cmp rdi, r14
je 0x1401728d4
mov dword [rdi], r15d
cmp rbx, r14
je 0x1401728dc
mov byte [rbx], 0x62
mov ebp, r15d
mov rdx, r12
lea rcx, [rsp + 0x30]
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x140172907
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x140172907
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x1401728e7
cmp rdx, r14
jne 0x14017290f
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.dpnet.dll
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
mov r12d, 9
cmp eax, r14d
jl 0x1401729ca
mov r11d, dword [rsp + 0x24]
lea eax, [r12 - 5]
lea r9d, [r12 + 0x7d]
shr r11d, 0x10
cmp r11w, ax
jne 0x14017297c
xor r8d, r8d
mov edx, r12d
mov ecx, eax
call fcn.140171f40
mov rcx, qword [rsp + 0x20]
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jge 0x1401729a9
mov eax, 5
cmp r11w, ax
jne 0x1401729ca
lea edx, [rax - 3]
mov r8d, 0xe5d
mov ecx, eax
call fcn.140171f40
mov rcx, qword [rsp + 0x20]
mov rdx, rax
call fcn.140171f70
cmp eax, r14d
jl 0x1401729ca
cmp rsi, r14
je 0x1401729b4
mov dword [rsi], 8
cmp rdi, r14
je 0x1401729bf
mov dword [rdi], 2
cmp rbx, r14
je 0x1401729c7
mov byte [rbx], 0x20
mov ebp, r15d
mov r9d, 0x200
lea rcx, [rsp + 0x30]
mov rdx, r9
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x1401729f8
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x1401729f8
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x1401729d8
cmp rdx, r14
jne 0x140172a00
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.d3d9.dll
lea rcx, [rsp + 0x30]
mov rdx, r9
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
cmp eax, r14d
jl 0x140172a46
cmp rsi, r14
je 0x140172a33
mov dword [rsi], r12d
cmp rdi, r14
je 0x140172a3b
mov dword [rdi], r14d
cmp rbx, r14
je 0x140172a43
mov byte [rbx], 0x20
mov ebp, r15d
mov r12d, 0x200
lea rcx, [rsp + 0x30]
mov rdx, r12
lea rax, [rdx + 0x7ffffdfe]
cmp rax, r14
je 0x140172a74
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x140172a74
mov byte [rcx], al
add rcx, r15
sub rdx, r15
jne 0x140172a54
cmp rdx, r14
jne 0x140172a7c
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.d3d10.dll
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
cmp eax, r14d
jl 0x140172ac5
cmp rsi, r14
je 0x140172ab2
mov dword [rsi], 0xa
cmp rdi, r14
je 0x140172aba
mov dword [rdi], r14d
cmp rbx, r14
je 0x140172ac2
mov byte [rbx], 0x20
mov ebp, r15d
mov r8, r12
lea rcx, [rsp + 0x30]
lea rax, [r8 + 0x7ffffdfe]
cmp rax, r14
je 0x140172aed
mov al, byte [r13 + rcx]
cmp al, r14b
je 0x140172aed
mov byte [rcx], al
add rcx, r15
sub r8, r15
jne 0x140172acd
cmp r8, r14
jne 0x140172af5
sub rcx, r15
mov byte [rcx], r14b
lea r8, str.d3d11.dll
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140171f98
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.140171e80
cmp eax, r14d
jl 0x140172b3e
cmp rsi, r14
je 0x140172b2b
mov dword [rsi], VariantTimeToDosDateTime
cmp rdi, r14
je 0x140172b33
mov dword [rdi], r14d
cmp rbx, r14
je 0x140172b3b
mov byte [rbx], 0x20
mov ebp, r15d
cmp ebp, r14d
jne 0x140172b5b
cmp rsi, r14
je 0x140172b4b
mov dword [rsi], r14d
cmp rdi, r14
je 0x140172b53
mov dword [rdi], r14d
cmp rbx, r14
je 0x140172b5b
mov byte [rbx], 0x20
xor eax, eax
mov rcx, qword [rsp + 0x430]
xor rcx, rsp
call fcn.140156fd0
mov rbx, qword [rsp + 0x498]
add rsp, 0x440
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret