Function at 0x14000297f
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, 0x98
mov rbx, rdx
mov rbp, rcx
lea r14, [rsp + 0x30]
mov rcx, r14
mov rdx, r8
mov r8, r9
call sym.winreg::common::to_utf16::h74b9b5802da5db76
lea rsi, [rsp + 0x50]
mov dword [rsi], 0x800
lea r12, [rsp + 0x54]
and dword [r12], 0
mov ecx, 0x800
call sym.alloc::raw_vec::RawVec_T_A_::allocate_in::h55ef381d2ac2222a
mov rdi, rax
lea r13, [rsp + 0x58]
mov qword [r13], rax
mov qword [r13 + 8], rdx
and qword [r13 + 0x10], 0
mov r14, qword [r14]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rdi
mov rcx, rbx
mov rdx, r14
xor r8d, r8d
mov r9, r12
call sub.advapi32.dll_RegQueryValueExW
cmp eax, 0xea
jne 0x140002a17
mov edx, dword [rsp + 0x50]
mov rcx, r13
call sym.alloc::vec::Vec_T_A_::reserve::h074322f591760c9f
mov rdi, qword [rsp + 0x58]
jmp 0x1400029e2
mov r15d, eax
test eax, eax
jne 0x140002c53
movabs r15, 0xde00000002
mov esi, dword [rsp + 0x50]
mov qword [rsp + 0x68], rsi
mov ebx, dword [rsp + 0x54]
mov rdx, qword [rsp + 0x60]
cmp ebx, 0xb
ja 0x140002c60
mov qword [rsp + 0x90], rdx
mov rdx, qword [rsp + 0x38]
mov rcx, r14
call sym.__alloc::raw_vec::RawVec_T_A__as_core::ops::drop::Drop_::drop::h2c77e87801965552
cmp bl, 7
ja 0x140002e07
movzx eax, bl
mov ecx, 0x86
bt ecx, eax
jae 0x140002e07
mov dword [rsp + 0x4c], ebx
mov qword [rsp + 0x88], rbp
mov edx, esi
shr edx, 1
lea r15, [rdi + rdx*2]
lea r14, [rsp + 0x58]
mov qword [r14], 1
xorps xmm0, xmm0
movups xmmword [r14 + 8], xmm0
shr esi, 2
and edx, 1
add rdx, rsi
mov rcx, r14
call sym.alloc::vec::Vec_T_A_::reserve::h297e63bd08e3fcfc
xor ebx, ebx
movabs r13, 0x100000000
mov r12, rdi
test bx, bx
je 0x140002ac7
mov ecx, ebp
jmp 0x140002ad9
cmp r12, r15
je 0x140002c92
movzx ecx, word [r12]
add r12, 2
mov eax, ecx
and eax, 0xf800
cmp ax, 0xd800
jne 0x140002b34
cmp cx, 0xdbff
ja 0x140002ba8
cmp r12, r15
je 0x140002bac
movzx eax, word [r12]
add r12, 2
mov edx, eax
add edx, 0x2000
cmp dx, 0xfc00
jb 0x140002bbf
movzx eax, ax
and ecx, 0x3ff
and eax, 0x3ff
shl rcx, 0x1a
shl rax, 0x10
or rax, rcx
add rax, r13
jmp 0x140002b3b
movzx eax, cx
shl rax, 0x10
mov rsi, rax
shr rsi, 0x10
cmp esi, 0x80
jae 0x140002b7b
mov rdx, qword [rsp + 0x68]
cmp rdx, qword [rsp + 0x60]
jne 0x140002b63
mov rcx, r14
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h1fe52dfd9e45a559
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x58]
mov byte [rax + rdx], sil
inc rdx
mov qword [rsp + 0x68], rdx
xor ebx, ebx
jmp 0x140002abe
and dword [rsp + 0x30], 0
cmp esi, 0x800
jae 0x140002bb3
shr eax, 0x16
or al, 0xc0
mov byte [rsp + 0x30], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x31], sil
mov eax, 2
jmp 0x140002c37
xor ebx, ebx
jmp 0x140002bc5
xor ebx, ebx
mov r12, r15
jmp 0x140002bc5
cmp esi, 0x10000
jae 0x140002bfb
xor ebx, ebx
jmp 0x140002bcf
mov bx, 1
mov ebp, eax
and dword [rsp + 0x30], 0
mov esi, 0xfffd
mov eax, esi
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x30], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x31], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x32], sil
mov eax, 3
jmp 0x140002c39
mov rcx, rax
shr rcx, 0x22
or cl, 0xf0
mov byte [rsp + 0x30], cl
mov rcx, rax
shr rcx, 0x1c
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x31], cl
shr eax, 0x16
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x32], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x33], sil
mov eax, 4
xor ebx, ebx
lea r8, [rsp + rax]
add r8, 0x30
mov rcx, r14
lea rdx, [rsp + 0x30]
call fcn.1400bc2d8
jmp 0x140002abe
shl r15, 0x20
or r15, 2
mov rdx, qword [rsp + 0x60]
mov rcx, rdi
call sym.__alloc::raw_vec::RawVec_T_A__as_core::ops::drop::Drop_::drop::h201efe391f01b88a
mov rdx, qword [rsp + 0x38]
mov rcx, r14
call sym.__alloc::raw_vec::RawVec_T_A__as_core::ops::drop::Drop_::drop::h2c77e87801965552
mov qword [rbp + 8], r15
and qword [rbp], 0
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r14, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
inc rax
mov esi, dword [rsp + 0x4c]
cmp rax, 1
je 0x140002cbf
lea r15, [rax - 1]
cmp byte [r14 + rax - 2], 0
mov rax, r15
je 0x140002ca8
jmp 0x140002cc2
xor r15d, r15d
cmp sil, 7
jne 0x140002d9e
mov eax, 1
lea r12, [rsp + 0x30]
mov qword [r12], rax
xorps xmm0, xmm0
movups xmmword [r12 + 8], xmm0
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], rax
and dword [rsp + 0x80], 0
xor r13d, r13d
xor ebx, ebx
lea rdx, [r14 + rbx]
mov r8, r15
mov eax, 0
sub r8, rbx
cmovae rax, rdx
cmovae rsi, r8
jb 0x140002db3
cmp r8, 0xf
ja 0x140002d3b
xor r8d, r8d
cmp rsi, r8
je 0x140002d47
cmp byte [rax + r8], 0
je 0x140002d4e
inc r8
jmp 0x140002d2a
xor ecx, ecx
call sym.core::slice::memchr::memchr_aligned::he1f2d4bfbe74eb29
mov r8, rdx
jmp 0x140002d53
mov r8, rsi
xor eax, eax
jmp 0x140002d53
mov eax, 1
cmp rax, 1
jne 0x140002db3
add r8, rbx
mov rbx, r8
inc rbx
je 0x140002d04
cmp rbx, r15
ja 0x140002d04
add r8, r14
cmp byte [r8], 0
jne 0x140002d04
add r13, r14
mov rcx, r12
mov rdx, r13
call fcn.1400bc2d8
mov rcx, r12
lea rdx, [0x140124138]
lea r8, [0x140124139]
call fcn.1400bc2d8
mov r13, rbx
jmp 0x140002d04
mov rax, qword [rsp + 0x88]
mov qword [rax], r14
mov qword [rax + 8], rbp
mov qword [rax + 0x10], r15
jmp 0x140002dfb
add r13, r14
add r15, r14
lea r12, [rsp + 0x30]
mov rcx, r12
mov rdx, r13
mov r8, r15
call fcn.1400bc2d8
mov rax, qword [r12 + 0x10]
mov rcx, qword [rsp + 0x88]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [r12]
movups xmmword [rcx], xmm0
test rbp, rbp
mov esi, dword [rsp + 0x4c]
je 0x140002dfb
mov edx, 1
mov rcx, r14
call sym.__rust_dealloc
cmp sil, 0xc
je 0x140002c7e
jmp 0x140002e10
mov qword [rbp + 8], r15
and qword [rbp], 0
mov rcx, rdi
mov rdx, qword [rsp + 0x90]
call sym.__alloc::raw_vec::RawVec_T_A__as_core::ops::drop::Drop_::drop::h201efe391f01b88a
jmp 0x140002c7e