Function at 0x1401ace80
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1240]
mov eax, 0x1340
call fcn.14021fa30
sub rsp, rax
mov rax, qword [0x1404779b8]
xor rax, rsp
mov qword [rbp + 0x1230], rax
mov r14, rdx
mov qword [rsp + 0x68], rdx
mov r12, rcx
mov qword [rsp + 0x70], rcx
mov qword [rbp - 0x80], rcx
xor esi, esi
mov ebx, esi
mov qword [rbp - 0x80], rbx
mov dword [rsp + 0x50], esi
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
lea r8, str.NO_HWID
lea edx, [rsi + 0x20]
lea rcx, [rbp - 0x10]
call fcn.1402839c8
lea r9d, [rsi + 6]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov r13, rax
cmp rax, 0xffffffffffffffff
jne 0x1401acf54
mov qword [r12], rsi
mov qword [r12 + 0x10], rsi
mov qword [r12 + 0x18], 7
mov word [r12], si
lea rax, [rbp - 0x10]
mov r15, r13
inc r15
cmp word [rax + r15*2], 0
jne 0x1401acf34
mov r8, r15
lea rdx, [rbp - 0x10]
mov rcx, r12
call fcn.140101ff0
nop
jmp 0x1401ad48b
mov dword [rbp - 0x38], 0x20
mov dword [rsp + 0x54], esi
lea r8, [rbp - 0x38]
xor edx, edx
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
mov r15, 0xffffffffffffffff
test eax, eax
je 0x1401ad166
xor r12d, r12d
mov dword [rsp + 0x58], r12d
mov rcx, rbx
mov rbx, r12
mov qword [rbp - 0x80], rbx
test rcx, rcx
je 0x1401acf99
call fcn.14021f46c
mov dword [rsp + 0x50], r12d
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x58]
mov r8d, 1
lea rdx, [rbp - 0x38]
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
test eax, eax
jne 0x1401ad13e
mov rsi, r12
mov rdi, rsi
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1401ad065
mov esi, dword [rsp + 0x50]
mov ecx, esi
call fcn.14021f4ec
mov rbx, rax
test rax, rax
je 0x1401ad009
mov r8d, esi
xor edx, edx
mov rcx, rax
call fcn.1402539e0
jmp 0x1401ad00c
mov rbx, r12
mov rsi, rbx
mov qword [rbp - 0x80], rbx
test rdi, rdi
je 0x1401ad020
mov rcx, rdi
call fcn.14021f46c
mov eax, dword [rsp + 0x50]
test rbx, rbx
cmove eax, r12d
mov dword [rsp + 0x50], eax
mov rdi, rbx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x58]
mov r8d, 1
lea rdx, [rbp - 0x38]
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
test eax, eax
je 0x1401acfd5
test rdi, rdi
je 0x1401ad13e
mov rsi, r15
inc rsi
cmp word [rdi + rsi*2], 0
jne 0x1401ad071
mov rdi, r15
nop
inc rdi
cmp word [r14 + rdi*2], 0
jne 0x1401ad080
test rsi, rsi
je 0x1401ad13e
test rdi, rdi
je 0x1401ad13e
mov r14d, 1
mov qword [rsp + 0x60], r12
mov rcx, rbx
call fcn.140291998
mov r12, rax
lea rdx, [rsi + 1]
mov rcx, rax
call fcn.140291c9c
mov rcx, qword [rsp + 0x68]
call fcn.140291998
mov rsi, rax
lea rdx, [rdi + 1]
mov rcx, rax
call fcn.140291c9c
lea r8, [rsp + 0x60]
lea rdx, [0x14035b538]
mov rcx, rsi
call fcn.140291960
test rax, rax
je 0x1401ad11d
xor edi, edi
mov rdx, rax
mov rcx, r12
call fcn.140253b80
test rax, rax
cmove r14d, edi
lea r8, [rsp + 0x60]
lea rdx, [0x14035b538]
xor ecx, ecx
call fcn.140291960
test rax, rax
jne 0x1401ad0f3
mov rcx, r12
call fcn.14027bb78
mov rcx, rsi
call fcn.14027bb78
test r14d, r14d
jne 0x1401ad20e
mov r14, qword [rsp + 0x68]
xor r12d, r12d
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
lea r8, [rbp - 0x38]
mov edx, eax
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x1401acf80
xor esi, esi
mov r12, qword [rsp + 0x70]
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov qword [rbp - 0x58], rsi
mov qword [rbp - 0x48], rsi
mov qword [rbp - 0x40], 7
mov word [rbp - 0x58], si
lea rax, [rbp - 0x10]
mov r8, r15
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x1401ad190
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x58]
call fcn.140101ff0
nop
mov rcx, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x40]
mov rax, rdx
sub rax, rcx
lea r14, str._AsusUtility__GetDriverVersionByHwid__DriverVersion_is:
cmp rax, 0x38
jb 0x1401ad3b8
lea rax, [rcx + 0x38]
mov qword [rbp - 0x48], rax
lea rsi, [rbp - 0x58]
cmp rdx, 8
cmovae rsi, qword [rbp - 0x58]
lea r8, [rcx + rcx]
lea rax, [0x14035b650]
cmp rax, rsi
jbe 0x1401ad371
lea rax, [r8 + rsi]
cmp r14, rax
ja 0x1401ad371
cmp rsi, r14
ja 0x1401ad366
xor edi, edi
jmp 0x1401ad376
xor esi, esi
mov qword [rsp + 0x60], rsi
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0xa30]
call fcn.1402539e0
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x230]
call fcn.1402539e0
mov dword [rsp + 0x54], 0x800
mov dword [rsp + 0x78], esi
lea r8, [0x14035b540]
lea edx, [rsi + 0x20]
lea rcx, [rbp - 0x10]
call fcn.1402839c8
lea rax, [rsp + 0x54]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0x230]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8d, [rsi + 9]
lea rdx, [rbp - 0x38]
mov rcx, r13
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
lea r9, [rbp + 0x230]
lea r8, str.SYSTEMCurrentControlSetControlClass
lea rdx, str._s_s
lea rcx, [rbp + 0xa30]
call fcn.1401ace10
lea rax, [rsp + 0x78]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], esi
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0xa30]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x1401ad161
mov dword [rsp + 0x68], esi
mov dword [rsp + 0x7c], 0x200
xor edx, edx
mov r8d, 0x200
lea rcx, [rbp + 0x30]
call fcn.1402539e0
lea rax, [rsp + 0x7c]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x68]
xor r8d, r8d
lea rdx, str.DriverVersion
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1401ad356
lea r8, [rbp + 0x30]
lea edx, [rsi + 0x20]
lea rcx, [rbp - 0x10]
call fcn.1402839c8
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1401ad161
mov rdi, rsi
sub rdi, r14
sar rdi, 1
jmp 0x1401ad376
mov edi, 0x38
lea rcx, [rsi + 0x70]
add r8, 2
mov rdx, rsi
call fcn.140253310
add rdi, rdi
mov r8, rdi
mov rdx, r14
mov rcx, rsi
call fcn.140253310
lea rcx, [rsi + rdi]
mov r8d, 0x70
sub r8, rdi
lea rdx, [r14 + 0x70]
add rdx, rdi
call fcn.140253310
lea rax, [rbp - 0x58]
xor esi, esi
jmp 0x1401ad3d8
mov edi, 0x38
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
mov edx, edi
lea rcx, [rbp - 0x58]
call fcn.14013df00
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], rsi
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x78], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x68], xmm1
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], 7
mov word [rax], si
lea rcx, [rbp - 0x78]
call fcn.1401a82f0
nop
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x1401ad448
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401ad443
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401ad4b8
call fcn.14021ecec
mov qword [r12], rsi
mov qword [r12 + 0x10], rsi
mov qword [r12 + 0x18], 7
mov word [r12], si
lea rax, [rbp - 0x10]
inc r15
cmp word [rax + r15*2], 0
jne 0x1401ad463
mov r8, r15
lea rdx, [rbp - 0x10]
mov rcx, r12
call fcn.140101ff0
nop
test rbx, rbx
je 0x1401ad48b
mov rcx, rbx
call fcn.14021f46c
mov rax, r12
mov rcx, qword [rbp + 0x1230]
xor rcx, rsp
call fcn.14021f250
mov rbx, qword [rsp + 0x1390]
add rsp, 0x1340
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140260f54
nop
int3