Function at 0x4052c0
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
sub rsp, 0x348
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax - 8], rbx
mov qword [rax - 0x10], rbp
mov qword [rax - 0x18], rsi
mov qword [rax - 0x20], rdi
mov qword [rax - 0x28], r12
mov qword [rax - 0x30], r13
mov qword [rax - 0x38], r14
mov rax, qword [0x00460ad8]
mov qword [rsp + 0x300], rax
mov r13, rcx
call fcn.0043a268
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x40], rdi
lea rdx, str.FUNC_01VEN_10EC
mov rbx, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x405355
movzx esi, dx
mov ecx, esi
call fcn.0043a254
test rax, rax
je 0x405375
mov r8d, esi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.00401b10
mov rdi, qword [rsp + 0x40]
jmp 0x405375
xor eax, eax
mov rcx, rbx
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x40]
call fcn.00401c90
mov rdi, qword [rsp + 0x40]
mov byte [rsp + 0x70], 0
xor edx, edx
lea r8d, [rdx + 0x7f]
lea rcx, [rsp + 0x71]
call fcn.00418b40
mov r9d, 6
xor r8d, r8d
lea rdx, str.HDAUDIO
xor ecx, ecx
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x4053ca
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x4053c3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
xor eax, eax
jmp 0x405608
xor r12d, r12d
mov eax, r12d
mov r14d, 3
mov ecx, dword [0x00462504]
cmp ecx, 0x5a
cmovl eax, r14d
add ecx, eax
mov dword [0x00462504], ecx
movsxd r8, ecx
xor r9d, r9d
mov edx, 0x402
mov rcx, qword [r13 + 0x2d8]
call qword [sym.imp.USER32.dll_SendMessageA]
xor edx, edx
mov rcx, r13
call fcn.00435838
mov dword [rsp + 0x50], 0x20
mov ebp, r12d
lea r8, [rsp + 0x50]
xor edx, edx
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x4055e4
mov qword [rsp + 0x20], r12
mov r9d, 0x100
lea r8, [rsp + 0x200]
lea rdx, [rsp + 0x50]
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdA]
mov r11d, r12d
mov eax, dword [0x00462504]
cmp eax, 0x5a
cmovl r11d, r14d
add eax, r11d
mov dword [0x00462504], eax
movsxd r8, eax
xor r9d, r9d
mov edx, 0x402
mov rcx, qword [r13 + 0x2d8]
call qword [sym.imp.USER32.dll_SendMessageA]
xor edx, edx
mov rcx, r13
call fcn.00435838
mov rdx, rdi
lea rcx, [rsp + 0x200]
call fcn.00417f00
test rax, rax
je 0x4054d1
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x80
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8d, [r9 + 9]
lea rdx, [rsp + 0x50]
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
test eax, eax
jne 0x4054f0
inc ebp
lea r8, [rsp + 0x50]
mov edx, ebp
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x405430
jmp 0x4055e4
lea rdx, [rsp + 0x50]
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiRemoveDevice]
test eax, eax
jne 0x405544
xor r9d, r9d
lea r8, str.Error
lea rdx, str.Cannt_Remove_Realtek_HDAudio_Driver__
mov rcx, r13
call fcn.004347c4
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x40553d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
xor eax, eax
jmp 0x405608
mov eax, dword [0x00462504]
cmp eax, 0x5a
cmovl r12d, r14d
add eax, r12d
mov dword [0x00462504], eax
movsxd r8, eax
xor r9d, r9d
mov edx, 0x402
mov rcx, qword [r13 + 0x2d8]
call qword [sym.imp.USER32.dll_SendMessageA]
xor edx, edx
mov rcx, r13
call fcn.00435838
mov edx, 0x104
lea rcx, [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea rdx, str.INF_
lea rcx, [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
lea r8, [r13 + 0x298]
lea rdx, [rsp + 0xf0]
mov rcx, r13
call fcn.00403880
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x4055dd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
mov eax, 1
jmp 0x405608
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x405606
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
xor eax, eax
mov rcx, qword [rsp + 0x300]
call fcn.004306c0
mov rbx, qword [rsp + 0x340]
mov rbp, qword [rsp + 0x338]
mov rsi, qword [rsp + 0x330]
mov rdi, qword [rsp + 0x328]
mov r12, qword [rsp + 0x320]
mov r13, qword [rsp + 0x318]
mov r14, qword [rsp + 0x310]
add rsp, 0x348
ret