Function at 0x140016c70
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x520
mov rax, qword [0x1401900d0]
xor rax, rsp
mov qword [rsp + 0x510], rax
xor esi, esi
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, str.SOFTWAREASUSARMOURY_CRATE_Service
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140017023
mov dword [rsp + 0x68], 0x400
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.WebSocketTarget
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140017023
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xd0], xmm0
movups xmmword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0xf0], xmm0
mov qword [rsp + 0x100], rax
lea rcx, [rsp + 0x90]
call fcn.140019330
nop
lea r9, [rsp + 0x110]
cmp word [rsp + 0x110], si
je 0x140016d7b
nop dword [rax]
add r9, 2
cmp word [r9], 0
jne 0x140016d70
lea r8, [rsp + 0x110]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x90]
call fcn.14001aea0
nop
lea rdx, [rsp + 0x70]
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x88]
cmp r11, 0x10
cmovae rdx, r10
mov r9, qword [rsp + 0x80]
mov r8, 0xffffffffffffffff
cmp r9, 1
jb 0x140016df0
lea rax, [r9 - 1]
mov rcx, r8
cmp rax, rcx
cmovb rcx, rax
add rcx, rdx
cmp byte [rcx], 0x3a
jne 0x140016de1
mov eax, esi
test eax, eax
je 0x140016deb
cmp rcx, rdx
je 0x140016df0
dec rcx
jmp 0x140016dd6
sub rcx, rdx
jmp 0x140016df3
mov rcx, r8
inc rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
cmp r9, rcx
jb 0x14001704a
sub r9, rcx
cmp r9, 0xffffffffffffffff
cmovb r8, r9
lea rdx, [rsp + 0x70]
cmp r11, 0x10
cmovae rdx, r10
add rdx, rcx
lea rcx, [rsp + 0x30]
call fcn.14000d470
mov rdx, qword [rsp + 0x88]
cmp rdx, 0x10
jb 0x140016e75
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016e70
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001704f
call fcn.140105840
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x70], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rsp + 0x80], xmm1
movdqa xmm0, xmmword [0x140168ca0]
movdqu xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x30], 0
lea rcx, [rsp + 0x30]
call fcn.14000d2f0
mov r8, qword [rsp + 0x80]
test r8, r8
je 0x140016fad
lea rdi, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rdi, qword [rsp + 0x70]
add rdi, r8
lea rbx, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rbx, qword [rsp + 0x70]
cmp rbx, rdi
je 0x140016f08
nop word [rax + rax]
movsx ecx, byte [rbx]
call fcn.14011d450
test eax, eax
je 0x140016fad
inc rbx
cmp rbx, rdi
jne 0x140016ef0
call fcn.14011deac
mov rdi, rax
lea rbx, [rsp + 0x70]
cmp qword [rsp + 0x88], 0x10
cmovae rbx, qword [rsp + 0x70]
mov dword [rax], esi
mov r8d, 0xa
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.14011d7d4
mov esi, eax
cmp rbx, qword [rsp + 0x60]
je 0x140017055
cmp dword [rdi], 0x22
je 0x140017061
lea rcx, [rsp + 0x70]
call fcn.14000d2f0
nop
lea rax, vtable.std::wstring_convert_class_std::codecvt_utf8_utf16_wchar_t__1114111__0___wchar_t__class_std::allocator_wchar_t___class_std::allocator_char__.0
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0xd0]
call fcn.14000d260
lea rcx, [rsp + 0xb0]
call fcn.14000d2f0
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x140016fa9
mov rax, qword [rcx]
call qword [rax + select]
test rax, rax
je 0x140016fa9
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
mov eax, esi
jmp 0x140017025
call fcn.140061ec0
mov r8b, 1
lea rdx, str.GetWebSocketTarget_error
mov rcx, rax
call fcn.1400616d0
nop
lea rcx, [rsp + 0x70]
call fcn.14000d2f0
nop
lea rax, vtable.std::wstring_convert_class_std::codecvt_utf8_utf16_wchar_t__1114111__0___wchar_t__class_std::allocator_wchar_t___class_std::allocator_char__.0
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0xd0]
call fcn.14000d260
lea rcx, [rsp + 0xb0]
call fcn.14000d2f0
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x14001701f
mov rax, qword [rcx]
call qword [rax + select]
test rax, rax
je 0x14001701f
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
xor eax, eax
jmp 0x140017025
xor eax, eax
mov rcx, qword [rsp + 0x510]
xor rcx, rsp
call fcn.140105820
lea r11, [rsp + 0x520]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
call fcn.14001bbb0
call fcn.14010e2dc
int3
lea rcx, str.invalid_stoi_argument
call fcn.1400e29ac
lea rcx, str.stoi_argument_out_of_range
call fcn.1400e29f4
int3