Function at 0x140046580
Capabilities:
Query or enumerate registry value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov rbx, rdx
mov rdi, rcx
mov rsi, qword [rsp + 0x130]
add r9, r8
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x50], r9
mov word [rsp + 0x58], 0
mov dword [rsp + 0x60], 1
lea rcx, [rsp + 0x98]
lea rdx, [rsp + 0x48]
call sym._ZN98__LT_alloc..vec..Vec_LT_T_GT__u20_as_u20_alloc..vec..spec_from_iter..SpecFromIter_LT_T_C_I_GT__GT_9from_iter17he211f7c00e
mov rax, qword [rsp + 0x138]
add rax, rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], rax
mov word [rsp + 0x58], 0
mov dword [rsp + 0x60], 1
lea rcx, [rsp + 0x80]
lea r14, [rsp + 0x48]
mov rdx, r14
call sym._ZN98__LT_alloc..vec..Vec_LT_T_GT__u20_as_u20_alloc..vec..spec_from_iter..SpecFromIter_LT_T_C_I_GT__GT_9from_iter17he211f7c00e
mov rsi, qword [rsp + 0x98]
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x20], r14
mov rcx, rbx
mov rdx, rsi
xor r8d, r8d
mov r9d, 0x20019
call sub.advapi32.dll_RegOpenKeyExW
test eax, eax
je 0x140046642
mov qword [rdi], 0
jmp 0x1400467dc
mov rbx, qword [rsp + 0x48]
mov dword [rsp + 0x3c], 0x800
mov rax, qword [str.Qp__]
movzx eax, byte [rax]
mov ecx, 0x800
mov edx, 1
call sym.__rust_alloc
test rax, rax
mov qword [rsp + 0x40], rsi
je 0x140046834
mov r14, rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], 0x800
mov qword [rsp + 0x78], 0
mov r15, qword [rsp + 0x80]
lea r13, [rsp + 0x3c]
lea r12, [rsp + 0x48]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
sub rsi, rbp
nop
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r14
mov rcx, rbx
mov rdx, r15
xor r8d, r8d
mov r9, r12
call sub.advapi32.dll_RegQueryValueExW
cmp eax, 0xea
jne 0x1400466f8
mov r8d, dword [rsp + 0x3c]
cmp rsi, r8
jae 0x1400466b0
lea rcx, [rsp + 0x68]
mov rdx, rbp
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::hcfdbfb9f3a7b9ef4
mov r14, qword [rsp + 0x68]
jmp 0x1400466a2
test eax, eax
jne 0x1400467b0
mov eax, dword [rsp + 0x3c]
mov qword [rsp + 0x78], rax
and eax, 0xfffffffe
add rax, r14
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], rax
mov word [rsp + 0x58], 0
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
call sym._ZN95__LT_alloc..string..String_u20_as_u20_core..iter..traits..collect..FromIterator_LT_char_GT__GT_9from_iter17hc93ff91b33eef
mov rax, qword [rsp + 0xc0]
test rax, rax
je 0x14004675c
mov rcx, qword [rsp + 0xb0]
nop dword [rax]
cmp byte [rcx + rax - 1], 0
jne 0x14004675e
dec rax
jne 0x140046750
xor eax, eax
mov qword [rsp + 0xc0], rax
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rdi], xmm0
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x14004678d
mov r8d, 1
mov rcx, r14
call sym.__rust_dealloc
mov rcx, rbx
call fcn.1402686ec
mov rdx, qword [rsp + 0x88]
test rdx, rdx
je 0x1400467ff
add rdx, rdx
mov r8d, 2
mov rcx, r15
jmp 0x1400467fa
mov qword [rdi], 0
mov rdx, qword [rsp + 0x70]
test rdx, rdx
mov rsi, qword [rsp + 0x40]
je 0x1400467d4
mov r8d, 1
mov rcx, r14
call sym.__rust_dealloc
mov rcx, rbx
call fcn.1402686ec
mov rdx, qword [rsp + 0x88]
test rdx, rdx
je 0x1400467ff
mov rcx, qword [rsp + 0x80]
add rdx, rdx
mov r8d, 2
call sym.__rust_dealloc
mov rdx, qword [rsp + 0xa0]
test rdx, rdx
je 0x14004681d
add rdx, rdx
mov r8d, 2
mov rcx, rsi
call sym.__rust_dealloc
mov rax, rdi
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 1
mov edx, 0x800
call dbg.handle_alloc_error
ud2