Function at 0x140195690
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x740]
sub rsp, 0x840
mov rax, qword [0x1402be5c8]
xor rax, rsp
mov qword [rbp + 0x730], rax
mov rsi, rdx
mov r15, rcx
xor r12d, r12d
lea rcx, [rbp + 0x330]
mov edx, 0x104
mov r14d, r12d
mov rdi, r9
mov rbx, r8
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea r13d, [r12 + 0x20]
test eax, eax
je 0x140195e63
lea r8, [rbp + 0x330]
mov word [rbp + 0x536], r12w
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.ddraw.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
test eax, eax
js 0x1401957e8
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40002
ja 0x140195762
jb 0x1401957e8
cmp eax, 0x5f
jb 0x1401957e8
test rsi, rsi
je 0x14019576d
mov dword [rsi], 1
test rbx, rbx
je 0x140195775
mov dword [rbx], r12d
test rdi, rdi
je 0x14019577e
mov word [rdi], r13w
cmp ecx, 0x40003
ja 0x140195795
mov r14d, 1
jb 0x1401957e8
cmp eax, 0x447
jbe 0x1401957e8
test rsi, rsi
je 0x1401957a0
mov dword [rsi], 2
test rbx, rbx
je 0x1401957a8
mov dword [rbx], r12d
test rdi, rdi
je 0x1401957b1
mov word [rdi], r13w
cmp ecx, 0x40004
ja 0x1401957c6
mov r14d, 1
jb 0x1401957e8
cmp eax, 0x43
jbe 0x1401957e8
test rsi, rsi
je 0x1401957d1
mov dword [rsi], 3
test rbx, rbx
je 0x1401957d9
mov dword [rbx], r12d
test rdi, rdi
je 0x1401957e2
mov word [rdi], r13w
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.d3drg8x.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
mov edx, 0x61
test eax, eax
js 0x14019586b
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40004
ja 0x14019584a
jb 0x14019586b
cmp eax, 0x46
jb 0x14019586b
test rsi, rsi
je 0x140195855
mov dword [rsi], 3
test rbx, rbx
je 0x14019585d
mov dword [rbx], r12d
test rdi, rdi
je 0x140195865
mov word [rdi], dx
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.ddraw.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
test eax, eax
js 0x140195961
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40005
ja 0x1401958d6
jb 0x140195961
cmp eax, 0x9b
jb 0x140195961
test rsi, rsi
je 0x1401958e1
mov dword [rsi], 5
test rbx, rbx
je 0x1401958e9
mov dword [rbx], r12d
test rdi, rdi
je 0x1401958f2
mov word [rdi], r13w
cmp ecx, 0x40006
ja 0x140195909
mov r14d, 1
jb 0x140195961
cmp eax, 0x13e
jb 0x140195935
test rsi, rsi
je 0x140195914
mov dword [rsi], 6
test rbx, rbx
je 0x14019591c
mov dword [rbx], r12d
test rdi, rdi
je 0x140195925
mov word [rdi], r13w
cmp ecx, 0x40006
ja 0x14019593c
mov r14d, 1
jb 0x140195961
cmp eax, 0x1b3
jbe 0x14019595b
test rsi, rsi
je 0x140195947
mov dword [rsi], 6
test rbx, rbx
je 0x140195952
mov dword [rbx], 1
test rdi, rdi
je 0x14019595b
mov word [rdi], r13w
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.dplayx.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
test eax, eax
js 0x1401959e9
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40006
ja 0x1401959c0
jb 0x1401959e9
cmp eax, 0x30206
jb 0x1401959e9
test rsi, rsi
je 0x1401959cb
mov dword [rsi], 6
test rbx, rbx
je 0x1401959d6
mov dword [rbx], 1
test rdi, rdi
je 0x1401959e3
mov eax, 0x61
mov word [rdi], ax
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.ddraw.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
test eax, eax
js 0x140195a6a
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40007
ja 0x140195a48
jb 0x140195a6a
cmp eax, 0x2bc
jb 0x140195a6a
test rsi, rsi
je 0x140195a53
mov dword [rsi], 7
test rbx, rbx
je 0x140195a5b
mov dword [rbx], r12d
test rdi, rdi
je 0x140195a64
mov word [rdi], r13w
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.dinput.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
test eax, eax
js 0x140195aef
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40007
ja 0x140195ac9
jb 0x140195aef
cmp eax, 0x2cc
jb 0x140195aef
test rsi, rsi
je 0x140195ad4
mov dword [rsi], 7
test rbx, rbx
je 0x140195adc
mov dword [rbx], r12d
test rdi, rdi
je 0x140195ae9
mov eax, 0x61
mov word [rdi], ax
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.ddraw.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
test eax, eax
js 0x140195ba2
mov eax, dword [rsp + 0x24]
shr eax, 0x10
cmp ax, 4
jne 0x140195b5d
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40008
ja 0x140195b80
jb 0x140195ba2
cmp eax, 0x190
jae 0x140195b80
jmp 0x140195ba2
cmp ax, 5
jne 0x140195ba2
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x50001
ja 0x140195b80
jb 0x140195ba2
cmp eax, 0x8d20190
jb 0x140195ba2
test rsi, rsi
je 0x140195b8b
mov dword [rsi], 8
test rbx, rbx
je 0x140195b93
mov dword [rbx], r12d
test rdi, rdi
je 0x140195b9c
mov word [rdi], r13w
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.d3d8.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
test eax, eax
js 0x140195cbe
mov ecx, dword [rsp + 0x24]
mov rax, qword [rsp + 0x20]
shr ecx, 0x10
cmp cx, 4
jne 0x140195c14
mov rdx, rax
shr rdx, 0x20
cmp edx, 0x40008
ja 0x140195c32
jb 0x140195c5d
cmp eax, 0x10371
jae 0x140195c32
jmp 0x140195c5d
cmp cx, 5
jne 0x140195c57
mov rdx, rax
shr rdx, 0x20
cmp edx, 0x50001
ja 0x140195c32
jb 0x140195c7d
cmp eax, 0xa280371
jb 0x140195c7d
test rsi, rsi
je 0x140195c3d
mov dword [rsi], 8
test rbx, rbx
je 0x140195c48
mov dword [rbx], 1
test rdi, rdi
je 0x140195c51
mov word [rdi], r13w
mov r14d, 1
cmp cx, 4
jne 0x140195c77
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40008
ja 0x140195c95
jb 0x140195cbe
cmp eax, 0x10385
jae 0x140195c95
jmp 0x140195cbe
cmp cx, 5
jne 0x140195cbe
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x50001
ja 0x140195c95
jb 0x140195cbe
cmp eax, 0xa280385
jb 0x140195cbe
test rsi, rsi
je 0x140195ca0
mov dword [rsi], 8
test rbx, rbx
je 0x140195cab
mov dword [rbx], 1
test rdi, rdi
je 0x140195cb8
mov eax, 0x61
mov word [rdi], ax
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.mpg2splt.ax
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
test eax, eax
js 0x140195d46
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x60003
ja 0x140195d1d
jb 0x140195d46
cmp eax, 0x10375
jb 0x140195d46
test rsi, rsi
je 0x140195d28
mov dword [rsi], 8
test rbx, rbx
je 0x140195d33
mov dword [rbx], 1
test rdi, rdi
je 0x140195d40
mov eax, 0x62
mov word [rdi], ax
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.dpnet.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
test eax, eax
js 0x140195dfc
mov eax, dword [rsp + 0x24]
shr eax, 0x10
cmp ax, 4
jne 0x140195db4
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40009
ja 0x140195dd7
jb 0x140195dfc
cmp eax, 0x86
jae 0x140195dd7
jmp 0x140195dfc
cmp ax, 5
jne 0x140195dfc
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x50002
ja 0x140195dd7
jb 0x140195dfc
cmp eax, 0xe5d0086
jb 0x140195dfc
test rsi, rsi
je 0x140195de2
mov dword [rsi], 8
test rbx, rbx
je 0x140195ded
mov dword [rbx], 2
test rdi, rdi
je 0x140195df6
mov word [rdi], r13w
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401dfdd8
lea r8, str.d3d9.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eab68
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401961d0
test eax, eax
js 0x140195e5e
test rsi, rsi
je 0x140195e49
mov dword [rsi], 9
test rbx, rbx
je 0x140195e51
mov dword [rbx], r12d
xor eax, eax
test rdi, rdi
je 0x140195e7e
mov word [rdi], r13w
jmp 0x140195e7e
test r14d, r14d
jne 0x140195e7c
test rsi, rsi
je 0x140195e6b
mov dword [rsi], r12d
test rbx, rbx
je 0x140195e73
mov dword [rbx], r12d
test rdi, rdi
je 0x140195e7c
mov word [rdi], r13w
xor eax, eax
mov rcx, qword [rbp + 0x730]
xor rcx, rsp
call fcn.1401a9440
mov rbx, qword [rsp + 0x880]
add rsp, 0x840
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret