Function at 0x1400488e0
Capabilities:
Check if file exists
Get common file path
Get file attributes
Get program files directory
Get system information on windows

Disassembly:
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x1fb0]
mov eax, 0x20b0
call fcn.140282780
sub rsp, rax
mov qword [rbp - 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x20e8], rbx
mov qword [rsp + 0x20f0], rsi
mov rax, qword [0x1403b88b0]
xor rax, rsp
mov qword [rbp + 0x1fa0], rax
mov rsi, rcx
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x14004893e
mov rax, qword [rcx]
call qword [rax + 0x28]
jmp 0x140048e80
mov rdx, qword [rsi + 0x10]
test rdx, rdx
jne 0x140048964
lea r8, str.c:userschunyung_source_repos_rtkngui_rtknguicustomized.cpp
mov edx, 0x639
lea rcx, str._VCpl__RETURN_ON_FALSE:_Line___d__File___s_n
call fcn.140052e90
jmp 0x140048e80
xor r15d, r15d
mov edi, r15d
mov ebx, r15d
mov r8, rdx
lea r12d, [r15 + 1]
cmp dword [rdx + 0x56c], ebx
jbe 0x1400489d6
mov r14d, 0x200
lea rcx, [rdx + 0x558]
mov edx, ebx
call fcn.140083780
test eax, eax
je 0x1400489c0
mov rdx, qword [rsi + 0x10]
mov r8, rdx
mov eax, ebx
imul rcx, rax, 0xac
movzx eax, word [rcx + rdx + 0x620]
test r14w, ax
jne 0x1400489c0
test al, 8
je 0x1400489c0
test byte [rcx + rdx + 0x618], r12b
je 0x1400489d3
inc ebx
mov rdx, qword [rsi + 0x10]
mov r8, rdx
cmp ebx, dword [rdx + 0x56c]
jae 0x1400489d6
jmp 0x140048982
mov edi, r12d
test edi, edi
jne 0x1400489e5
or dword [rdx + 0x2c], 0x40
mov rdx, qword [rsi + 0x10]
mov r8, rdx
test dword [rdx + 0xa8], 0x20000
je 0x140048a00
mov rcx, rsi
call fcn.140049550
mov rdx, qword [rsi + 0x10]
mov r8, rdx
test dword [rdx + 0x2c], 0x1000000
je 0x140048aa0
mov rbx, qword [rdx + 0x1bd8]
test rbx, rbx
je 0x140048aa0
nop dword [rax]
mov rdi, rbx
test rbx, rbx
je 0x140048f11
mov rbx, qword [rbx]
mov rdi, qword [rdi + 0x10]
test rdi, rdi
je 0x140048a97
cmp dword [rdi + 0x1d8], 9
je 0x140048a4d
test dword [rdi + 0x314], 0x401
je 0x140048a97
mov ecx, LoadRegTypeLib
call fcn.1400f48fc
mov qword [rsp + 0x40], rax
test rax, rax
je 0x140048a83
movups xmm0, xmmword [rdi + 0x1c8]
movaps xmmword [rsp + 0x50], xmm0
lea r8, [rsp + 0x50]
mov rdx, qword [rdi + 0x118]
mov rcx, rax
call fcn.1400c62b0
jmp 0x140048a86
mov rax, r15
test rax, rax
je 0x140048a97
lea rcx, [rsi + 0x30]
mov rdx, rax
call fcn.1401030b4
test rbx, rbx
jne 0x140048a20
mov r8, qword [rsi + 0x10]
mov r9d, r15d
mov rdx, qword [r8 + 0x1bd8]
mov rdi, 0xffffffffffffffff
test rdx, rdx
je 0x140048c2a
nop word [rax + rax]
mov rcx, rdx
test rdx, rdx
je 0x140048f2d
mov rdx, qword [rdx]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140048b44
mov eax, dword [rcx + 0x1d8]
sub eax, 8
cmp eax, 1
ja 0x140048b30
cmp dword [rcx + 0x168], 0
je 0x140048b30
mov eax, dword [rcx + 0x314]
bt eax, 0xc
jb 0x140048b1e
mov r8d, dword [rcx + 0x318]
bt r8d, 0x1d
jb 0x140048b1e
test byte [rcx + 0x31c], 1
je 0x140048b18
bt eax, 0xb
jb 0x140048b1e
test r8b, 0x40
je 0x140048b30
test eax, 0x401
je 0x140048b30
mov rax, qword [rsi + 0x10]
or dword [rax + 0x2c], 0x20000
mov eax, dword [rcx + 0x318]
and eax, 0x100001
cmp eax, 0x100001
cmove r9d, r12d
test rdx, rdx
jne 0x140048ac0
test r9d, r9d
je 0x140048c2a
lea rax, [rsp + 0x40]
mov qword [rbp - 0x68], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x50], rax
call fcn.1400f5f94
mov rcx, rax
test rax, rax
je 0x140048f06
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea rbx, [0x140328530]
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140014ab0
test al, al
jne 0x140048bbf
mov rax, rdi
inc rax
cmp word [rbx + rax*2], 0
jne 0x140048ba4
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140010390
nop
call fcn.1400f5f94
mov rcx, rax
test rax, rax
je 0x140048f17
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rbx, str.RAVBg64.exe
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.140014ab0
test al, al
jne 0x140048c1b
mov rax, rdi
nop word [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x140048c00
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.140010390
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x48]
call fcn.1400327b0
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x88]
mov rbx, qword [rsi + 0x10]
test dword [rbx + 0xd0], 0x4000000
je 0x140048c93
add rbx, 0x558
je 0x140048c93
movsxd rdx, dword [rbx + 0x28]
cmp edx, 0xffffffff
je 0x140048c71
lea rax, [rdx + 2]
imul rax, rax, 0xac
cmp dword [rax + rbx], 0
je 0x140048c71
mov rcx, rbx
call fcn.140083c60
movsxd rdx, dword [rbx + 0x30]
cmp edx, 0xffffffff
je 0x140048c93
lea rax, [rdx + 2]
imul rax, rax, 0xac
cmp dword [rax + rbx], 0
je 0x140048c93
mov rcx, rbx
call fcn.140083c60
xor edx, edx
xor ecx, ecx
call fcn.1400538b0
xor edx, edx
mov ecx, r12d
call fcn.1400538b0
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edx, 0x1000
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x140048e2e
lea rcx, [rbp - 0x60]
mov rax, rdi
nop dword [rax]
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x140048cf0
cmp word [rbp + rax*2 - 0x62], 0x5c
jne 0x140048d1d
lea rax, [rax*2 - 2]
cmp rax, 0x2000
jae 0x140048efa
mov word [rbp + rax - 0x60], r15w
mov edx, 0x1000
lea rcx, [rbp - 0x60]
cmp word [rsp + 0x60], 9
lea r8, str.RTKVAA64.EXE
je 0x140048d3c
lea r8, str.RTKVADDA.EXE
call fcn.14028b93c
lea rax, [rsp + 0x40]
mov qword [rsp + 0x50], rax
call fcn.1400f5f94
mov rcx, rax
test rax, rax
je 0x140048f22
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x40]
call fcn.140014ab0
test al, al
jne 0x140048d9d
lea rax, [rbp - 0x60]
inc rdi
cmp word [rax + rdi*2], 0
jne 0x140048d81
mov r8d, edi
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x40]
call fcn.140010390
nop
lea rcx, [rsp + 0x40]
call fcn.140031de0
test eax, eax
jne 0x140048e14
xor edx, edx
mov r8d, 0x2000
lea rcx, [rbp - 0x60]
call fcn.1402841a0
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x26]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x140048e14
lea r8, str.RealtekAudioAP
mov edx, 0x1000
lea rcx, [rbp - 0x60]
call fcn.14028b93c
mov edx, 0x1000
lea rcx, [rbp - 0x60]
cmp word [rsp + 0x60], 9
lea r8, str.RTKVAA64.EXE
je 0x140048e0f
lea r8, str.RTKVADDA.EXE
call fcn.14028b93c
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140048e2e
mov rax, qword [rsi + 0x10]
or dword [rax + 0x2c], 0x20000000
mov rax, qword [rsi + 0x10]
test dword [rax + 0xdc], 0x400
je 0x140048e6b
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x48], r15d
mov rax, qword [0x1403bee48]
test eax, eax
jg 0x140048eab
lea r8, str.c:userschunyung_source_repos_rtkngui_rtknguidriverpropertyclient.cpp
mov edx, 0x61
lea rcx, str._VCpl__RETURN_FALSE_ON_FALSE:_Line___d__File___s_n
call fcn.140052e90
mov rax, qword [rsi + 0x10]
test dword [rax + 0x30], 0x2000
je 0x140048e80
mov rcx, rsi
call fcn.14004be70
mov rcx, qword [rbp + 0x1fa0]
xor rcx, rsp
call fcn.140281bf0
lea r11, [rsp + 0x20b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
movups xmm0, xmmword [str._alsC]
movaps xmmword [rsp + 0x50], xmm0
test rax, rax
jle 0x140048f00
mov rcx, qword [0x1403bee40]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, r12d
mov r8d, 0x21
lea rdx, [rsp + 0x50]
mov rcx, qword [rcx]
call fcn.14005d300
jmp 0x140048e6b
call fcn.140281ffc
int3
call fcn.1400f5890
int3
mov ecx, 0x80004005
call fcn.14000dc70
int3
call fcn.1400f5890
nop
mov ecx, 0x80004005
call fcn.14000dc70
nop
mov ecx, 0x80004005
call fcn.14000dc70
int3
call fcn.1400f5890
int3