Function at 0x140047100
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x238
movaps xmmword [rsp + 0x220], xmm6
mov qword [rsp + 0x40], rdx
mov rsi, rcx
mov rax, qword [0x140363040]
xor rax, rsp
mov qword [rsp + 0x218], rax
lea rax, [rsp + 0x208]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax - 8], rax
mov r15, qword [r8]
mov r12, qword [r8 + 8]
lea rcx, [rsp + 0x200]
mov qword [rsp + 0x1c8], rcx
mov qword [rsp + 0x1d0], rax
cmp r15, r12
je 0x1400471e8
lea rdi, [rsp + 0x48]
lea rbx, [rsp + 0x1e0]
lea r14, [rsp + 0x1c8]
movsx rcx, byte [r15 + 0x17]
mov rax, r15
test rcx, rcx
jns 0x140047194
mov rcx, qword [r15 + 8]
mov rax, qword [r15]
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], rcx
test rcx, rcx
js 0x140047dc9
je 0x1400471b8
test rax, rax
je 0x140047ddc
mov rcx, rdi
mov rdx, rbx
call fcn.1400f6b70
mov rcx, r14
mov rdx, rdi
call fcn.1401bb970
cmp byte [rsp + 0x5f], 0
jns 0x1400471df
mov rcx, qword [rsp + 0x48]
call fcn.14014fcd8
add r15, 0x18
cmp r15, r12
jne 0x140047180
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x1e0]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [0x1402dffe0]
movaps xmmword [rdi], xmm0
mov rcx, rdi
call fcn.1400599b0
mov rbx, qword [rsp + 0x40]
cmp byte [rbx + 0x17], 0
mov r8, rbx
jns 0x140047221
mov r8, qword [rbx]
mov rcx, rdi
mov rdx, rsi
mov r9d, ntohl
call fcn.140059b50
test eax, eax
je 0x1400472c5
mov esi, eax
mov ecx, 2
call fcn.140106140
cmp esi, 2
je 0x1400473e0
test al, al
je 0x1400473e0
lea rdx, str.....chromeinstaller_setup_setup_util.cc
lea rdi, [rsp + 0x48]
mov rcx, rdi
mov r8d, 0x194
mov r9d, 2
call fcn.14006f590
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_open
mov r8d, 0xf
call fcn.1400e59c0
mov rcx, rax
mov rdx, rbx
call fcn.1400684e0
lea rdx, str.__result_
mov r8d, ntohl
mov rcx, rax
call fcn.1400e59c0
mov rcx, rax
mov edx, esi
call fcn.14018a660
mov rcx, rdi
call fcn.14006fb80
jmp 0x1400473e0
movabs rsi, 0x7fffffffffffffff
lea rax, [rsp + 0x1d0]
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov qword [rax - 8], rax
mov ecx, 0x208
call fcn.14014fc9c
lea rdi, [rsp + 0x1b0]
mov qword [rdi], rax
lea rcx, [rsi + 0x105]
mov qword [rdi + 0x10], rcx
mov qword [rdi + 8], 0x100
xor r12d, r12d
mov r8d, 0x202
mov rcx, rax
xor edx, edx
call fcn.140189d00
lea r14, [rsp + 0x1ac]
mov r15, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
xor ebp, ebp
jmp 0x1400475fc
lea rdx, [0x1402ec44a]
lea rcx, [rsp + 0x1e0]
mov r8b, 1
call fcn.140059cf0
test eax, eax
je 0x1400473b8
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, 2
call fcn.140106140
test al, al
je 0x1400473b8
call sub.KERNEL32.dll_GetLastError
mov dword [rsp + 0x20], eax
lea rdx, str.....chromeinstaller_setup_setup_util.cc
lea rsi, [rsp + 0x48]
mov rcx, rsi
mov r8d, 0x1de
mov r9d, 2
call fcn.1401c3e40
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_key
mov r8d, 0x15
call fcn.1400e59c0
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.1400684e0
mov rcx, rsi
call fcn.1401c3ec0
cmp byte [rsp + 0x1c7], 0
jns 0x1400473cf
mov rcx, qword [rsp + 0x1b0]
call fcn.14014fcd8
lea rcx, [rsp + 0x1c8]
mov rdx, qword [rcx + 8]
call fcn.1400498b0
lea rcx, [rsp + 0x1e0]
call fcn.140059c70
lea rcx, [rsp + 0x200]
mov rdx, qword [rcx + 8]
call fcn.1400498b0
mov rcx, qword [rsp + 0x218]
xor rcx, rsp
call fcn.140151210
movaps xmm6, xmmword [rsp + 0x220]
add rsp, 0x238
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsp + 0x1d8], 0
je 0x140047332
lea r15, [rsp + 0x1c8]
mov rdx, qword [r15 + 8]
mov rcx, r15
call fcn.1400498b0
lea rax, [rsp + 0x1d0]
mov qword [r15], rax
xorps xmm6, xmm6
movups xmmword [r15 + 8], xmm6
xor edi, edi
lea rbx, [rsp + 0x1b0]
lea r14, [rsp + 0x1ac]
xor r12d, r12d
jmp 0x140047a73
mov r9, rax
and r9, rsi
dec r9
cmp r9, rdx
jae 0x1400475f6
mov rdx, qword [rsp + 0x1b8]
jmp 0x1400475af
je 0x14004767f
mov rcx, rdx
sub rcx, rbx
cmp rcx, r13
jae 0x1400474d7
mov r8, r13
sub r8, rdx
add r8, rbx
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbx
mov rcx, rdi
mov r9, rbx
call fcn.1400e5ce0
mov qword [rsp + 0x1b8], rbx
mov al, byte [rsp + 0x1c7]
mov r15, rdi
test al, al
jns 0x1400474e6
mov r15, qword [rsp + 0x1b0]
lea rcx, [r15 + rbx*2]
lea r8, [r13*2]
xor edx, edx
call fcn.140189d00
add rbx, r13
cmp byte [rsp + 0x1c7], 0
jns 0x140047d87
mov qword [rsp + 0x1b8], rbx
lea rax, [r15 + rbx*2]
mov r15, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
jmp 0x140047673
cmp eax, 0x103
jne 0x14004742a
xor ebp, ebp
test r12b, 1
mov r12d, 0
jne 0x1400475fc
jmp 0x14004742a
je 0x14004767f
mov edx, 0xa
mov eax, ebx
jmp 0x14004749f
mov r13, rcx
sub r13, rbx
ja 0x140047544
mov byte [rsp + 0x1c7], cl
mov rax, rdi
jmp 0x14004766f
cmp eax, 0xea
jne 0x140047522
movsx rcx, byte [rsp + 0x1c7]
test rcx, rcx
mov rax, qword [rsp + 0x1c0]
lea rdx, [rax + rax - 2]
mov r8d, 0x14
cmovs r8, rdx
lea r9, [rsi - 8]
cmp r8, r9
ja 0x140047e1f
test cl, cl
js 0x14004747a
mov rdx, rcx
cmp rdx, r8
cmova r8, rdx
mov r9d, 0xa
mov edx, 0xa
cmp r8, 0xb
jb 0x1400475e1
mov rdx, r8
and rdx, 0xfffffffffffffffc
add rdx, 4
or r8, 3
cmp r8, 0xb
cmove r8, rdx
mov rdx, r8
test cl, cl
js 0x140047e2c
cmp rdx, r9
je 0x1400475f6
mov rcx, rdi
call fcn.14003dde0
mov ebx, r12d
mov r12d, ebx
movsx rbx, byte [rsp + 0x1c7]
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, rsi
dec rdx
test rbx, rbx
mov r8d, 0xa
cmovs r8, rdx
mov rcx, r8
shr rcx, 0x20
neg rcx
mov ecx, 0
sbb ecx, ecx
or ecx, r8d
shr rax, 0x38
mov dword [rsp + 0x1ac], ecx
test rbx, rbx
jns 0x140047556
mov rbx, qword [rsp + 0x1b8]
mov r13, rcx
sub r13, rbx
ja 0x140047499
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rcx
lea rax, [rax + rcx*2]
mov word [rax], 0
mov al, byte [rsp + 0x1c7]
mov r8, rdi
test al, al
jns 0x14004768e
mov r8, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1e0]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, ebp
mov r9, r14
call r15
test eax, eax
jne 0x14004756d
mov eax, dword [rsp + 0x1ac]
movsx rbx, byte [rsp + 0x1c7]
test rbx, rbx
jns 0x14004784c
mov rbx, qword [rsp + 0x1b8]
mov r13, rax
sub r13, rbx
ja 0x140047872
mov rcx, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rax
lea rax, [rcx + rax*2]
mov word [rax], 0
lea rcx, [rsp + 0x1c8]
mov rdx, rdi
call fcn.140049900
test rax, rax
jne 0x140047845
movsx rcx, byte [rsp + 0x1c7]
test rcx, rcx
cmovs rcx, qword [rsp + 0x1b8]
mov rax, qword [rsp + 0x1b0]
cmovns rax, rdi
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1a0], rcx
test rcx, rcx
js 0x140047dc9
je 0x140047754
test rax, rax
je 0x140047ddc
lea rcx, [rsp + 0x198]
call fcn.14005b840
test al, al
je 0x1400477ec
movsx rcx, byte [rsp + 0x1c7]
test rcx, rcx
cmovs rcx, qword [rsp + 0x1b8]
mov rax, qword [rsp + 0x1b0]
cmovns rax, rdi
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x190], rcx
test rcx, rcx
js 0x140047dc9
je 0x1400477ae
test rax, rax
je 0x140047ddc
lea rbx, [rsp + 0x48]
mov rcx, rbx
lea rdx, [rsp + 0x188]
call fcn.1400f6b70
lea rcx, [rsp + 0x200]
mov rdx, rbx
call fcn.140049900
mov rbx, rax
cmp byte [rsp + 0x5f], 0
jns 0x1400477e7
mov rcx, qword [rsp + 0x48]
call fcn.14014fcd8
test rbx, rbx
jne 0x14004782d
cmp byte [rsp + 0x1c7], 0
mov rdx, rdi
jns 0x140047801
mov rdx, qword [rsp + 0x1b0]
mov bl, 1
lea rcx, [rsp + 0x1e0]
mov r8b, 1
call fcn.140059cf0
test eax, eax
je 0x1400475f9
mov ecx, 2
call fcn.140106140
test al, al
jne 0x140047d16
lea rcx, [rsp + 0x1c8]
lea rdx, [rsp + 0x48]
mov r8, rdi
mov r9, rdi
call fcn.1400f5640
inc ebp
jmp 0x1400475fc
mov r13, rax
sub r13, rbx
ja 0x140047863
mov byte [rsp + 0x1c7], al
mov rcx, rdi
jmp 0x1400476ed
je 0x1400476f6
mov edx, 0xa
mov eax, ebx
jmp 0x14004788d
je 0x1400476f6
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, rsi
dec rdx
shr rax, 0x38
mov rcx, rdx
sub rcx, rbx
cmp rcx, r13
jae 0x1400478c5
mov r8, r13
sub r8, rdx
add r8, rbx
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbx
mov rcx, rdi
mov r9, rbx
call fcn.1400e5ce0
mov qword [rsp + 0x1b8], rbx
mov al, byte [rsp + 0x1c7]
mov r15, rdi
test al, al
jns 0x1400478d4
mov r15, qword [rsp + 0x1b0]
lea rcx, [r15 + rbx*2]
lea r8, [r13*2]
xor edx, edx
call fcn.140189d00
add rbx, r13
cmp byte [rsp + 0x1c7], 0
jns 0x140047def
mov qword [rsp + 0x1b8], rbx
lea rax, [r15 + rbx*2]
mov r15, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
jmp 0x1400476f1
lea r13, [rsp + 0x48]
mov rcx, r13
lea rdx, str.....chromeinstaller_setup_setup_util.cc
mov r8d, 0x20c
mov r9d, 2
call fcn.14006f590
mov r8d, 0x17
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_value
call fcn.1400e59c0
mov rcx, rax
mov rdx, rbx
call fcn.1400684e0
mov r8d, 8
mov rcx, rax
lea rdx, str._in_key
call fcn.1400e59c0
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.1400684e0
mov rcx, r13
call fcn.14006fb80
mov rcx, r15
lea rdx, [rsp + 0x48]
mov r8, rbx
mov r9, rbx
call fcn.1400f5640
inc r12d
jmp 0x140047a73
mov r9, rax
and r9, rsi
dec r9
cmp r9, rdx
jae 0x140047a6f
mov rdx, qword [rsp + 0x1b8]
jmp 0x140047a28
cmp eax, 0x103
jne 0x1400473b8
xor r12d, r12d
test dil, 1
mov edi, 0
jne 0x140047a73
jmp 0x1400473b8
cmp eax, 0xea
jne 0x1400479b3
cmp dword [rsp + 0x1ac], 0x7ffe
ja 0x1400473b8
movsx rcx, byte [rsp + 0x1c7]
test rcx, rcx
mov rax, qword [rsp + 0x1c0]
lea rdx, [rax + rax - 2]
mov r8d, 0x14
cmovs r8, rdx
lea r9, [rsi - 8]
cmp r8, r9
ja 0x140047e1f
test cl, cl
js 0x140047997
mov rdx, rcx
cmp rdx, r8
cmova r8, rdx
mov r9d, 0xa
mov edx, 0xa
cmp r8, 0xb
jb 0x140047a5a
mov rdx, r8
and rdx, 0xfffffffffffffffc
add rdx, 4
or r8, 3
cmp r8, 0xb
cmove r8, rdx
mov rdx, r8
test cl, cl
js 0x140047e3a
cmp rdx, r9
je 0x140047a6f
mov rcx, rbx
call fcn.14003dde0
mov ecx, edi
mov edi, ecx
movsx rbp, byte [rsp + 0x1c7]
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, rsi
dec rdx
test rbp, rbp
mov ecx, 0xa
cmovs rcx, rdx
cmp rcx, 0x8000
movsx ecx, cx
mov r8d, 0x7fff
cmovae ecx, r8d
shr rax, 0x38
mov dword [rsp + 0x1ac], ecx
test rbp, rbp
jns 0x140047bc7
mov rbp, qword [rsp + 0x1b8]
mov r13, rcx
sub r13, rbp
ja 0x140047c16
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rcx
lea rax, [rax + rcx*2]
mov word [rax], 0
mov al, byte [rsp + 0x1c7]
mov r8, rbx
test al, al
jns 0x140047b04
mov r8, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1e0]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, r12d
mov r9, r14
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x1400479d5
mov eax, dword [rsp + 0x1ac]
movsx rbp, byte [rsp + 0x1c7]
test rbp, rbp
jns 0x140047bde
mov rbp, qword [rsp + 0x1b8]
mov r13, rax
sub r13, rbp
ja 0x140047ca0
mov rcx, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rax
lea rax, [rcx + rax*2]
mov word [rax], 0
mov rcx, r15
mov rdx, rbx
call fcn.140049900
test rax, rax
jne 0x14004798f
cmp byte [rsp + 0x1c7], 0
mov rdx, rbx
jns 0x140047b99
mov rdx, qword [rsp + 0x1b0]
lea rcx, [rsp + 0x1e0]
call fcn.14005a110
mov cl, 1
test eax, eax
je 0x140047a71
mov ecx, 2
call fcn.140106140
test al, al
je 0x14004797c
jmp 0x140047910
mov r13, rcx
sub r13, rbp
ja 0x140047bf5
mov byte [rsp + 0x1c7], cl
mov rax, rbx
jmp 0x140047ae5
mov r13, rax
sub r13, rbp
ja 0x140047c04
mov byte [rsp + 0x1c7], al
mov rcx, rbx
jmp 0x140047b67
je 0x140047af5
mov edx, 0xa
mov eax, ebp
jmp 0x140047c1c
je 0x140047b70
mov edx, 0xa
mov eax, ebp
jmp 0x140047cbb
je 0x140047af5
mov rcx, rdx
sub rcx, rbp
cmp rcx, r13
jae 0x140047c54
mov r8, r13
sub r8, rdx
add r8, rbp
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbp
mov rcx, rbx
mov r9, rbp
call fcn.1400e5ce0
mov qword [rsp + 0x1b8], rbp
mov al, byte [rsp + 0x1c7]
mov r15, rbx
test al, al
jns 0x140047c63
mov r15, qword [rsp + 0x1b0]
lea rcx, [r15 + rbp*2]
lea r8, [r13*2]
xor edx, edx
call fcn.140189d00
add rbp, r13
cmp byte [rsp + 0x1c7], 0
jns 0x140047dff
mov qword [rsp + 0x1b8], rbp
lea rax, [r15 + rbp*2]
lea r15, [rsp + 0x1c8]
jmp 0x140047ae9
je 0x140047b70
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, rsi
dec rdx
shr rax, 0x38
mov rcx, rdx
sub rcx, rbp
cmp rcx, r13
jb 0x140047d97
mov r15, rbx
test al, al
jns 0x140047cd9
mov r15, qword [rsp + 0x1b0]
lea rcx, [r15 + rbp*2]
lea r8, [r13*2]
xor edx, edx
call fcn.140189d00
add rbp, r13
cmp byte [rsp + 0x1c7], 0
jns 0x140047e0f
mov qword [rsp + 0x1b8], rbp
lea rax, [r15 + rbp*2]
lea r15, [rsp + 0x1c8]
jmp 0x140047b6b
lea rbx, [rsp + 0x48]
mov rcx, rbx
lea rdx, str.....chromeinstaller_setup_setup_util.cc
mov r8d, 0x1cf
mov r9d, 2
call fcn.14006f590
mov r8d, 0x18
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_subkey
call fcn.1400e59c0
mov rcx, rax
mov rdx, rdi
call fcn.1400684e0
mov r8d, ntohl
mov rcx, rax
lea rdx, str._under_path
call fcn.1400e59c0
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.1400684e0
mov rcx, rbx
call fcn.14006fb80
jmp 0x14004782d
mov eax, ebx
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x140047512
mov r8, r13
sub r8, rdx
add r8, rbp
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbp
mov rcx, rbx
mov r9, rbp
call fcn.1400e5ce0
mov qword [rsp + 0x1b8], rbp
mov al, byte [rsp + 0x1c7]
jmp 0x140047cca
lea rcx, [0x1402ea01c]
lea rdx, str....._third_partylibc_srcinclude_string_view:314:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
call fcn.14018e880
lea rcx, [0x1402ea01c]
lea rdx, str....._third_partylibc_srcinclude_string_view:316:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
call fcn.14018e880
mov eax, ebx
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x140047900
mov eax, ebp
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x140047c8f
mov eax, ebp
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x140047d05
lea rcx, [rsp + 0x1b0]
call fcn.14018b250
and rax, rsi
dec rax
mov r9, rax
jmp 0x1400475e9
and rax, rsi
dec rax
mov r9, rax
jmp 0x140047a62