Function at 0x140195c80
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 [0x1402bf5c8]
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 0x140196453
lea r8, [rbp + 0x330]
mov word [rbp + 0x536], r12w
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.ddraw.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
test eax, eax
js 0x140195dd8
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40002
ja 0x140195d52
jb 0x140195dd8
cmp eax, 0x5f
jb 0x140195dd8
test rsi, rsi
je 0x140195d5d
mov dword [rsi], 1
test rbx, rbx
je 0x140195d65
mov dword [rbx], r12d
test rdi, rdi
je 0x140195d6e
mov word [rdi], r13w
cmp ecx, 0x40003
ja 0x140195d85
mov r14d, 1
jb 0x140195dd8
cmp eax, 0x447
jbe 0x140195dd8
test rsi, rsi
je 0x140195d90
mov dword [rsi], 2
test rbx, rbx
je 0x140195d98
mov dword [rbx], r12d
test rdi, rdi
je 0x140195da1
mov word [rdi], r13w
cmp ecx, 0x40004
ja 0x140195db6
mov r14d, 1
jb 0x140195dd8
cmp eax, 0x43
jbe 0x140195dd8
test rsi, rsi
je 0x140195dc1
mov dword [rsi], 3
test rbx, rbx
je 0x140195dc9
mov dword [rbx], r12d
test rdi, rdi
je 0x140195dd2
mov word [rdi], r13w
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.d3drg8x.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
mov edx, 0x61
test eax, eax
js 0x140195e5b
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40004
ja 0x140195e3a
jb 0x140195e5b
cmp eax, 0x46
jb 0x140195e5b
test rsi, rsi
je 0x140195e45
mov dword [rsi], 3
test rbx, rbx
je 0x140195e4d
mov dword [rbx], r12d
test rdi, rdi
je 0x140195e55
mov word [rdi], dx
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.ddraw.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
test eax, eax
js 0x140195f51
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40005
ja 0x140195ec6
jb 0x140195f51
cmp eax, 0x9b
jb 0x140195f51
test rsi, rsi
je 0x140195ed1
mov dword [rsi], 5
test rbx, rbx
je 0x140195ed9
mov dword [rbx], r12d
test rdi, rdi
je 0x140195ee2
mov word [rdi], r13w
cmp ecx, 0x40006
ja 0x140195ef9
mov r14d, 1
jb 0x140195f51
cmp eax, 0x13e
jb 0x140195f25
test rsi, rsi
je 0x140195f04
mov dword [rsi], 6
test rbx, rbx
je 0x140195f0c
mov dword [rbx], r12d
test rdi, rdi
je 0x140195f15
mov word [rdi], r13w
cmp ecx, 0x40006
ja 0x140195f2c
mov r14d, 1
jb 0x140195f51
cmp eax, 0x1b3
jbe 0x140195f4b
test rsi, rsi
je 0x140195f37
mov dword [rsi], 6
test rbx, rbx
je 0x140195f42
mov dword [rbx], 1
test rdi, rdi
je 0x140195f4b
mov word [rdi], r13w
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.dplayx.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
test eax, eax
js 0x140195fd9
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40006
ja 0x140195fb0
jb 0x140195fd9
cmp eax, 0x30206
jb 0x140195fd9
test rsi, rsi
je 0x140195fbb
mov dword [rsi], 6
test rbx, rbx
je 0x140195fc6
mov dword [rbx], 1
test rdi, rdi
je 0x140195fd3
mov eax, 0x61
mov word [rdi], ax
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.ddraw.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
test eax, eax
js 0x14019605a
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40007
ja 0x140196038
jb 0x14019605a
cmp eax, 0x2bc
jb 0x14019605a
test rsi, rsi
je 0x140196043
mov dword [rsi], 7
test rbx, rbx
je 0x14019604b
mov dword [rbx], r12d
test rdi, rdi
je 0x140196054
mov word [rdi], r13w
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.dinput.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
test eax, eax
js 0x1401960df
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40007
ja 0x1401960b9
jb 0x1401960df
cmp eax, 0x2cc
jb 0x1401960df
test rsi, rsi
je 0x1401960c4
mov dword [rsi], 7
test rbx, rbx
je 0x1401960cc
mov dword [rbx], r12d
test rdi, rdi
je 0x1401960d9
mov eax, 0x61
mov word [rdi], ax
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.ddraw.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
test eax, eax
js 0x140196192
mov eax, dword [rsp + 0x24]
shr eax, 0x10
cmp ax, 4
jne 0x14019614d
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40008
ja 0x140196170
jb 0x140196192
cmp eax, 0x190
jae 0x140196170
jmp 0x140196192
cmp ax, 5
jne 0x140196192
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x50001
ja 0x140196170
jb 0x140196192
cmp eax, 0x8d20190
jb 0x140196192
test rsi, rsi
je 0x14019617b
mov dword [rsi], 8
test rbx, rbx
je 0x140196183
mov dword [rbx], r12d
test rdi, rdi
je 0x14019618c
mov word [rdi], r13w
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.d3d8.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
test eax, eax
js 0x1401962ae
mov ecx, dword [rsp + 0x24]
mov rax, qword [rsp + 0x20]
shr ecx, 0x10
cmp cx, 4
jne 0x140196204
mov rdx, rax
shr rdx, 0x20
cmp edx, 0x40008
ja 0x140196222
jb 0x14019624d
cmp eax, 0x10371
jae 0x140196222
jmp 0x14019624d
cmp cx, 5
jne 0x140196247
mov rdx, rax
shr rdx, 0x20
cmp edx, 0x50001
ja 0x140196222
jb 0x14019626d
cmp eax, 0xa280371
jb 0x14019626d
test rsi, rsi
je 0x14019622d
mov dword [rsi], 8
test rbx, rbx
je 0x140196238
mov dword [rbx], 1
test rdi, rdi
je 0x140196241
mov word [rdi], r13w
mov r14d, 1
cmp cx, 4
jne 0x140196267
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40008
ja 0x140196285
jb 0x1401962ae
cmp eax, 0x10385
jae 0x140196285
jmp 0x1401962ae
cmp cx, 5
jne 0x1401962ae
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x50001
ja 0x140196285
jb 0x1401962ae
cmp eax, 0xa280385
jb 0x1401962ae
test rsi, rsi
je 0x140196290
mov dword [rsi], 8
test rbx, rbx
je 0x14019629b
mov dword [rbx], 1
test rdi, rdi
je 0x1401962a8
mov eax, 0x61
mov word [rdi], ax
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.mpg2splt.ax
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
test eax, eax
js 0x140196336
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x60003
ja 0x14019630d
jb 0x140196336
cmp eax, 0x10375
jb 0x140196336
test rsi, rsi
je 0x140196318
mov dword [rsi], 8
test rbx, rbx
je 0x140196323
mov dword [rbx], 1
test rdi, rdi
je 0x140196330
mov eax, 0x62
mov word [rdi], ax
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.dpnet.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
test eax, eax
js 0x1401963ec
mov eax, dword [rsp + 0x24]
shr eax, 0x10
cmp ax, 4
jne 0x1401963a4
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x40009
ja 0x1401963c7
jb 0x1401963ec
cmp eax, 0x86
jae 0x1401963c7
jmp 0x1401963ec
cmp ax, 5
jne 0x1401963ec
mov rax, qword [rsp + 0x20]
mov rcx, rax
shr rcx, 0x20
cmp ecx, 0x50002
ja 0x1401963c7
jb 0x1401963ec
cmp eax, 0xe5d0086
jb 0x1401963ec
test rsi, rsi
je 0x1401963d2
mov dword [rsi], 8
test rbx, rbx
je 0x1401963dd
mov dword [rbx], 2
test rdi, rdi
je 0x1401963e6
mov word [rdi], r13w
mov r14d, 1
lea r8, [rbp + 0x330]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401e03c8
lea r8, str.d3d9.dll
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.1401eb158
lea r8, [rsp + 0x20]
mov rcx, r15
lea rdx, [rsp + 0x30]
call fcn.1401967c0
test eax, eax
js 0x14019644e
test rsi, rsi
je 0x140196439
mov dword [rsi], 9
test rbx, rbx
je 0x140196441
mov dword [rbx], r12d
xor eax, eax
test rdi, rdi
je 0x14019646e
mov word [rdi], r13w
jmp 0x14019646e
test r14d, r14d
jne 0x14019646c
test rsi, rsi
je 0x14019645b
mov dword [rsi], r12d
test rbx, rbx
je 0x140196463
mov dword [rbx], r12d
test rdi, rdi
je 0x14019646c
mov word [rdi], r13w
xor eax, eax
mov rcx, qword [rbp + 0x730]
xor rcx, rsp
call fcn.1401a9a30
mov rbx, qword [rsp + 0x880]
add rsp, 0x840
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret