Function at 0x140039768
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x858]
sub rsp, 0x930
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x140126108]
xor rax, rsp
mov qword [rbp + 0x820], rax
mov r13, rdx
xor edi, edi
mov r15d, edi
mov r12b, dil
mov r14b, 1
mov edx, 0x400
lea rcx, [rbp + 0x420]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x1400397f2
call fcn.140062444
mov rcx, qword [rax]
mov rax, qword [rcx]
lea r8, str.updtDispDevEnumClass::GetDriverFileInfocannot_get_the_system_dir
lea edx, [rdi + 1]
mov rax, qword [rax + 0x38]
call qword [str._K_f_]
xor al, al
jmp 0x140039b26
call fcn.14006543c
mov edx, eax
mov ecx, 0xa
cmp eax, 9
jg 0x14003982f
je 0x140039850
sub edx, 3
je 0x140039826
sub edx, 2
je 0x14003981d
sub edx, 1
jne 0x14003983d
lea rbx, str.nvd3dum.dll
jmp 0x140039860
lea rbx, str.nvd3dum.dll
jmp 0x140039860
lea rbx, str.nv4_disp.dll
jmp 0x140039860
sub edx, ecx
je 0x140039859
sub edx, 1
je 0x140039850
sub edx, 1
je 0x140039859
sub edx, 1
je 0x140039850
cmp edx, 1
je 0x140039859
lea rbx, str.nv4_disp.dll
jmp 0x140039860
lea rbx, str.nvd3dum.dll
jmp 0x140039860
lea rbx, str.nvd3dum.dll
mov esi, edi
mov rax, qword [rbx]
test rax, rax
je 0x140039b20
mov rdi, rbx
lea rdx, str._impure_
mov rcx, rax
call fcn.14009ccf0
test eax, eax
jne 0x14003988c
mov r12b, 1
jmp 0x140039b0e
mov r9, qword [rdi]
lea r8, [rbp + 0x420]
lea rdx, str._s_s
lea rcx, [rbp + 0x20]
call fcn.14003bd10
xor edi, edi
mov qword [rbp - 0x50], rdi
lea rdx, [rbp - 0x70]
lea rcx, [rbp + 0x20]
call fcn.14009d478
test eax, eax
jne 0x140039b0e
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], rdi
lea eax, [rdi + 7]
mov qword [rsp + 0x48], rax
mov word [rsp + 0x30], di
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rax
mov word [rsp + 0x50], di
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x78], rdi
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x78], rax
mov word [rsp + 0x70], di
lea rcx, [rbp - 0x50]
call fcn.14009d578
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.140067754
mov rdi, rax
lea rax, [rsp + 0x70]
cmp rax, rdi
je 0x14003995b
lea rcx, [rsp + 0x70]
call fcn.140001a14
mov r8d, 0x20
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.140089700
xor eax, eax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 7
mov word [rdi], ax
lea rcx, [rbp - 0x40]
call fcn.140001a14
lea rax, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae rax, qword [rsp + 0x70]
movsxd rcx, dword [rbp - 0x80]
mov edx, 0xa
cmp dx, word [rax + rcx*2 - 2]
jne 0x14003999d
lea rax, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae rax, qword [rsp + 0x70]
xor edi, edi
mov word [rax + rcx*2 - 2], di
jmp 0x14003999f
xor edi, edi
test r12b, r12b
jne 0x1400399cd
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x1400399cd
test r15, r15
jne 0x1400399b7
mov r15, rcx
jmp 0x1400399cd
sub rcx, r15
call fcn.14009ccc8
movzx r14d, r14b
cmp rax, 0xb4
cmovg r14d, edi
mov r8d, 7
lea rdx, [0x1400e85c8]
lea rcx, [rsp + 0x50]
call fcn.140001a78
lea r8, [rsp + 0x50]
lea rdx, [rbp + 0x20]
call fcn.14003964c
test al, al
jne 0x140039a17
call fcn.140062444
mov rcx, qword [rax]
mov rax, qword [rcx]
lea r8, str.GetBasicFileVersion_failed
mov edx, 2
mov rax, qword [rax + 0x38]
call qword [str._K_f_]
mov edx, 0x5c
lea rcx, [rbp + 0x20]
call fcn.14008a778
test rax, rax
jne 0x140039a78
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x20]
call fcn.140067754
mov rdi, rax
lea rax, [rsp + 0x30]
cmp rax, rdi
je 0x140039a72
lea rcx, [rsp + 0x30]
call fcn.140001a14
mov r8d, 0x20
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140089700
xor eax, eax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 7
mov word [rdi], ax
lea rcx, [rbp - 0x20]
jmp 0x140039ac4
lea rdx, [rax + 1]
lea rcx, [rbp]
call fcn.140067754
mov rdi, rax
lea rax, [rsp + 0x30]
cmp rax, rdi
je 0x140039ac0
lea rcx, [rsp + 0x30]
call fcn.140001a14
mov r8d, 0x20
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140089700
xor eax, eax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 7
mov word [rdi], ax
lea rcx, [rbp]
call fcn.140001a14
mov rdx, qword [r13 + 0x60]
lea r8, [rsp + 0x30]
cmp qword [r13 + 0x68], rdx
je 0x140039ae4
call fcn.14003c330
add qword [r13 + 0x60], 0x60
jmp 0x140039aee
lea rcx, [r13 + 0x58]
call fcn.14003c3f0
nop
lea rcx, [rsp + 0x70]
call fcn.140001a14
nop
lea rcx, [rsp + 0x50]
call fcn.140001a14
nop
lea rcx, [rsp + 0x30]
call fcn.140001a14
inc esi
lea rdi, [rbx + rsi*8]
mov rax, qword [rdi]
test rax, rax
jne 0x140039871
mov byte [r13 + 0x41], r14b
mov al, 1
mov rcx, qword [rbp + 0x820]
xor rcx, rsp
call fcn.14006b320
lea r11, [rsp + 0x930]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret