Function at 0x14003fa20
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, 0x258
movaps xmmword [rsp + 0x240], xmm6
mov qword [rsp + 0x48], rdx
mov rsi, rcx
mov rax, qword [0x14021b038]
xor rax, rsp
mov qword [rsp + 0x238], rax
lea rax, [rsp + 0x228]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax - 8], rax
lea rcx, [rsp + 0x220]
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x218], rax
mov rbx, qword [r8]
mov rbp, qword [r8 + 8]
cmp rbx, rbp
je 0x14003faf2
lea rdi, [rsp + 0x58]
lea r14, [rsp + 0x1f0]
lea r15, [rsp + 0x210]
movzx eax, byte [rbx + 0x17]
test al, al
mov rcx, qword [rbx]
cmovns rcx, rbx
mov qword [rsp + 0x1f0], rcx
cmovs rax, qword [rbx + 8]
mov qword [rsp + 0x1f8], rax
mov rcx, rdi
mov rdx, r14
call fcn.1400f04e0
mov rcx, r15
mov rdx, rdi
call fcn.14015cfd0
cmp byte [rsp + 0x6f], 0
jns 0x14003fae9
mov rcx, qword [rsp + 0x58]
call fcn.1401109f8
add rbx, 0x18
cmp rbp, rbx
jne 0x14003faa0
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x1f0]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [0x1401e90c0]
movaps xmmword [rdi], xmm0
mov rcx, rdi
call fcn.1400547c0
mov r8, qword [rsp + 0x48]
cmp byte [r8 + 0x17], 0
jns 0x14003fb2e
mov rax, qword [rsp + 0x48]
mov r8, qword [rax]
mov rcx, rdi
mov rdx, rsi
mov r9d, ntohl
call fcn.140054960
test eax, eax
je 0x14003fbd4
mov esi, eax
mov ecx, 2
call fcn.1400e83a0
test al, al
je 0x1400404c1
cmp esi, 2
je 0x1400404c1
lea rdx, str..._.._chrome_installer_setup_setup_util.cc
lea rdi, [rsp + 0x58]
mov rcx, rdi
mov r8d, 0x1d3
mov r9d, 2
call fcn.14004a130
lea rcx, [rsp + 0x68]
lea rdx, str.Failed_to_open
mov r8d, 0xf
call fcn.1400dd7e0
mov rcx, rax
mov rdx, qword [rsp + 0x48]
call fcn.14004ab40
lea rdx, str.__result_
mov r8d, ntohl
mov rcx, rax
call fcn.1400dd7e0
mov rcx, rax
mov edx, esi
call fcn.14001a230
mov rcx, rdi
call fcn.14004a5c0
jmp 0x1400404c1
movabs rdi, 0x7fffffffffffffff
lea rax, [rsp + 0x1e0]
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov qword [rax - 8], rax
mov ecx, 0x210
call fcn.1401109bc
lea rbx, [rsp + 0x1c0]
mov qword [rbx], rax
lea rsi, [rdi + 0x109]
mov qword [rbx + 0x10], rsi
mov qword [rbx + 8], 0x100
mov r8d, 0x202
mov rcx, rax
xor edx, edx
call fcn.140114200
mov al, 0x80
mov ebp, 0xa
lea r14, [rsp + 0x1bc]
mov r15, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
xor r13d, r13d
mov dword [rsp + 0x44], 0
and rsi, rdi
dec rsi
test al, al
cmovns rsi, rbp
mov rax, rsi
shr rax, 0x20
cmp rax, 1
mov edx, 0
sbb edx, edx
not edx
or edx, esi
mov dword [rsp + 0x1bc], edx
mov rcx, rbx
xor r8d, r8d
call fcn.1400e5310
cmp byte [rsp + 0x1d7], 0
mov r8, rbx
jns 0x14003fc92
mov r8, qword [rsp + 0x1c0]
mov rcx, qword [rsp + 0x1f0]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, r13d
mov r9, r14
call r15
test eax, eax
je 0x14003fce2
cmp eax, 0xea
je 0x14003fdd3
cmp eax, 0x103
jne 0x1400400e3
xor r13d, r13d
cmp byte [rsp + 0x44], 0
mov dword [rsp + 0x44], 0
jne 0x1400400a1
jmp 0x1400400e3
mov edx, dword [rsp + 0x1bc]
mov rcx, rbx
xor r8d, r8d
call fcn.1400e5310
movzx r15d, byte [rsp + 0x1d7]
mov r9, qword [rsp + 0x1c8]
mov r8, r15
mov rdi, rbx
test r15b, r15b
jns 0x14003fd1b
mov rdi, qword [rsp + 0x1c0]
mov r8, r9
mov rbp, qword [rsp + 0x1e0]
test rbp, rbp
je 0x14003fdfe
movzx r12d, byte [rbp + 0x37]
mov rbx, r12
test r12b, r12b
jns 0x14003fd3d
mov rbx, qword [rbp + 0x28]
lea r10, [rbp + 0x20]
cmp rbx, r9
mov rcx, r9
cmovb rcx, rbx
cmp rbx, r15
mov rax, r15
cmovb rax, rbx
test r15b, r15b
mov r11, qword [rbp + 0x20]
cmovs rax, rcx
test rax, rax
je 0x14003fd85
test r12b, r12b
mov rdx, r10
cmovs rdx, r11
xor ecx, ecx
movzx esi, word [rdx + rcx*2]
cmp word [rdi + rcx*2], si
ja 0x14003fd94
jb 0x14003fdca
inc rcx
cmp rax, rcx
jne 0x14003fd71
cmp r8, rbx
jb 0x14003fdca
test r12b, r12b
cmovs r10, r11
mov rdx, r10
cmp r8, rbx
mov rax, rbx
cmovb rax, r8
test rax, rax
je 0x14003fdbd
xor esi, esi
movzx ecx, word [rdi + rsi*2]
cmp word [rdx + rsi*2], cx
ja 0x140040078
jb 0x14003fdc6
inc rsi
cmp rax, rsi
jne 0x14003fda5
cmp rbx, r8
jae 0x140040078
add rbp, 8
mov rbp, qword [rbp]
jmp 0x14003fd23
cmp byte [rsp + 0x1d7], 0
mov rax, qword [rsp + 0x1d0]
lea rdx, [rax + rax - 2]
mov eax, 0x14
cmovns rdx, rax
mov rcx, rbx
call fcn.1400322f0
jmp 0x1400400a1
mov qword [rsp + 0x1a8], rdi
mov qword [rsp + 0x1b0], r8
lea rcx, [rsp + 0x1a8]
call fcn.140053b50
test al, al
movabs rdi, 0x7fffffffffffffff
lea rbx, [rsp + 0x1c0]
mov ebp, 0xa
lea r14, [rsp + 0x1bc]
mov r15, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
je 0x14003ffaf
movzx eax, byte [rsp + 0x1d7]
test al, al
mov rcx, qword [rsp + 0x1c0]
cmovns rcx, rbx
mov qword [rsp + 0x198], rcx
cmovs rax, qword [rsp + 0x1c8]
mov qword [rsp + 0x1a0], rax
lea rbp, [rsp + 0x58]
mov rcx, rbp
lea rdx, [rsp + 0x198]
call fcn.1400f04e0
movzx r8d, byte [rsp + 0x6f]
test r8b, r8b
mov rax, qword [rsp + 0x58]
mov r9, qword [rsp + 0x60]
mov rcx, r8
cmovs rcx, r9
cmovs rbp, rax
mov rbx, qword [rsp + 0x228]
test rbx, rbx
mov qword [rsp + 0x50], rax
je 0x14003ff7e
movzx edi, byte [rbx + 0x37]
mov r15, rdi
test dil, dil
jns 0x14003fed1
mov r15, qword [rbx + 0x28]
lea r10, [rbx + 0x20]
cmp r15, r9
mov rdx, r9
cmovb rdx, r15
cmp r15, r8
mov rax, r8
cmovb rax, r15
test r8b, r8b
mov r11, qword [rbx + 0x20]
cmovs rax, rdx
test rax, rax
je 0x14003ff1d
test dil, dil
mov rdx, r10
cmovs rdx, r11
xor r12d, r12d
movzx r14d, word [rdx + r12*2]
cmp word [rbp + r12*2], r14w
ja 0x14003ff2c
jb 0x14003ff63
inc r12
cmp rax, r12
jne 0x14003ff06
cmp rcx, r15
jb 0x14003ff63
test dil, dil
cmovs r10, r11
mov rdx, r10
cmp rcx, r15
mov rax, r15
cmovb rax, rcx
test rax, rax
je 0x14003ff56
xor edi, edi
movzx esi, word [rbp + rdi*2]
cmp word [rdx + rdi*2], si
ja 0x1400400b5
jb 0x14003ff5f
inc rdi
cmp rax, rdi
jne 0x14003ff3d
cmp r15, rcx
jae 0x1400400b5
add rbx, 8
lea r14, [rsp + 0x1bc]
mov r15, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x14003fec1
xor esi, esi
movabs rdi, 0x7fffffffffffffff
lea rbx, [rsp + 0x1c0]
mov ebp, 0xa
test r8b, r8b
jns 0x14003ffa6
mov rcx, qword [rsp + 0x50]
call fcn.1401109f8
test sil, sil
jne 0x140040053
cmp byte [rsp + 0x1d7], 0
mov rdx, rbx
jns 0x14003ffc4
mov rdx, qword [rsp + 0x1c0]
lea rcx, [rsp + 0x1f0]
call fcn.140054b00
test eax, eax
je 0x140040070
mov ecx, 2
call fcn.1400e83a0
test al, al
je 0x140040053
lea rsi, [rsp + 0x58]
mov rcx, rsi
lea rdx, str..._.._chrome_installer_setup_setup_util.cc
mov r8d, 0x20e
mov r9d, 2
call fcn.14004a130
mov r8d, 0x18
lea rcx, [rsp + 0x68]
lea rdx, str.Failed_to_delete_subkey
call fcn.1400dd7e0
mov rcx, rax
mov rdx, rbx
call fcn.14004ab40
mov r8d, ntohl
mov rcx, rax
lea rdx, str._under_path
call fcn.1400dd7e0
mov rcx, rax
mov rdx, qword [rsp + 0x48]
call fcn.14004ab40
mov rcx, rsi
call fcn.14004a5c0
lea rcx, [rsp + 0x1d8]
lea rdx, [rsp + 0x58]
mov r8, rbx
mov r9, rbx
call fcn.140042570
inc r13d
jmp 0x1400400a1
mov al, 1
mov dword [rsp + 0x44], eax
jmp 0x1400400a1
inc r13d
movabs rdi, 0x7fffffffffffffff
lea rbx, [rsp + 0x1c0]
mov ebp, 0xa
lea r14, [rsp + 0x1bc]
mov r15, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov al, byte [rsp + 0x1d7]
mov rsi, qword [rsp + 0x1d0]
jmp 0x14003fc49
mov sil, 1
movabs rdi, 0x7fffffffffffffff
lea rbx, [rsp + 0x1c0]
mov ebp, 0xa
lea r14, [rsp + 0x1bc]
mov r15, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
jmp 0x14003ff97
cmp qword [rsp + 0x1e8], 0
je 0x140040416
lea rsi, [rsp + 0x1d8]
mov rdx, qword [rsi + 8]
mov rcx, rsi
call fcn.1400423f0
lea rax, [rsp + 0x1e0]
mov qword [rsi], rax
xorps xmm6, xmm6
movups xmmword [rsi + 8], xmm6
mov r15d, 0xa
mov r12d, 0x7fff
lea rbp, [rsp + 0x1c0]
lea rsi, [rsp + 0x1bc]
mov rbx, qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
xor r14d, r14d
mov dword [rsp + 0x44], 0
mov rax, qword [rsp + 0x1d0]
and rax, rdi
dec rax
cmp byte [rsp + 0x1d7], 0
cmovns rax, r15
cmp rax, 0x8000
cmovae eax, r12d
movsx edx, ax
mov dword [rsp + 0x1bc], edx
mov rcx, rbp
xor r8d, r8d
call fcn.1400e5310
cmp byte [rsp + 0x1d7], 0
mov r8, rbp
jns 0x140040194
mov r8, qword [rsp + 0x1c0]
mov rcx, qword [rsp + 0x1f0]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, r14d
mov r9, rsi
call rbx
test eax, eax
je 0x140040204
cmp eax, 0x103
je 0x1400402f4
cmp eax, 0xea
jne 0x140040499
cmp dword [rsp + 0x1bc], 0x7ffe
ja 0x140040499
cmp byte [rsp + 0x1d7], 0
mov rax, qword [rsp + 0x1d0]
lea rdx, [rax + rax - 2]
mov eax, 0x14
cmovns rdx, rax
mov rcx, rbp
call fcn.1400322f0
jmp 0x140040146
mov edx, dword [rsp + 0x1bc]
mov rcx, rbp
xor r8d, r8d
call fcn.1400e5310
movzx r8d, byte [rsp + 0x1d7]
mov r9, qword [rsp + 0x1c8]
mov r12, r8
mov rdx, rbp
test r8b, r8b
jns 0x14004023d
mov rdx, qword [rsp + 0x1c0]
mov r12, r9
mov rbp, qword [rsp + 0x1e0]
test rbp, rbp
je 0x14004030f
movzx ebx, byte [rbp + 0x37]
mov rsi, rbx
test bl, bl
jns 0x14004025d
mov rsi, qword [rbp + 0x28]
lea r10, [rbp + 0x20]
cmp rsi, r9
mov rdi, r9
cmovb rdi, rsi
cmp rsi, r8
mov rax, r8
cmovb rax, rsi
test r8b, r8b
mov r11, qword [rbp + 0x20]
cmovs rax, rdi
test rax, rax
je 0x1400402a7
test bl, bl
mov rdi, r10
cmovs rdi, r11
xor r15d, r15d
movzx r13d, word [rdi + r15*2]
cmp word [rdx + r15*2], r13w
ja 0x1400402b5
jb 0x1400402eb
inc r15
cmp rax, r15
jne 0x140040291
cmp r12, rsi
jb 0x1400402eb
test bl, bl
cmovs r10, r11
mov rdi, r10
cmp r12, rsi
mov rax, rsi
cmovb rax, r12
test rax, rax
je 0x1400402de
xor ebx, ebx
movzx ecx, word [rdx + rbx*2]
cmp word [rdi + rbx*2], cx
ja 0x140040411
jb 0x1400402e7
inc rbx
cmp rax, rbx
jne 0x1400402c6
cmp rsi, r12
jae 0x140040411
add rbp, 8
mov rbp, qword [rbp]
jmp 0x140040245
xor r14d, r14d
cmp byte [rsp + 0x44], 0
mov dword [rsp + 0x44], 0
jne 0x140040146
jmp 0x140040499
lea rcx, [rsp + 0x1f0]
call fcn.140054e40
test eax, eax
je 0x1400403d9
mov ecx, 2
call fcn.1400e83a0
test al, al
lea rbp, [rsp + 0x1c0]
je 0x1400403a6
lea rsi, [rsp + 0x58]
mov rcx, rsi
lea rdx, str..._.._chrome_installer_setup_setup_util.cc
mov r8d, 0x24b
mov r9d, 2
call fcn.14004a130
mov r8d, 0x17
lea rcx, [rsp + 0x68]
lea rdx, str.Failed_to_delete_value
call fcn.1400dd7e0
mov rcx, rax
mov rdx, rbp
call fcn.14004ab40
mov r8d, 8
mov rcx, rax
lea rdx, str._in_key
call fcn.1400dd7e0
mov rcx, rax
mov rdx, qword [rsp + 0x48]
call fcn.14004ab40
mov rcx, rsi
call fcn.14004a5c0
lea rcx, [rsp + 0x1d8]
lea rdx, [rsp + 0x58]
mov r8, rbp
mov r9, rbp
call fcn.140042570
inc r14d
movabs rdi, 0x7fffffffffffffff
mov r15d, 0xa
mov r12d, 0x7fff
jmp 0x1400403fd
mov al, 1
mov dword [rsp + 0x44], eax
movabs rdi, 0x7fffffffffffffff
mov r15d, 0xa
mov r12d, 0x7fff
lea rbp, [rsp + 0x1c0]
lea rsi, [rsp + 0x1bc]
mov rbx, qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
jmp 0x140040146
inc r14d
jmp 0x1400403df
lea rdx, [0x1401ea6da]
lea rcx, [rsp + 0x1f0]
call fcn.140054b00
test eax, eax
je 0x140040499
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, 2
call fcn.1400e83a0
test al, al
je 0x140040499
call sub.KERNEL32.dll_GetLastError
mov dword [rsp + 0x20], eax
lea rdx, str..._.._chrome_installer_setup_setup_util.cc
lea rsi, [rsp + 0x58]
mov rcx, rsi
mov r8d, 0x21d
mov r9d, 2
call fcn.14015f200
lea rcx, [rsp + 0x68]
lea rdx, str.Failed_to_delete_key
mov r8d, 0x15
call fcn.1400dd7e0
mov rcx, rax
mov rdx, qword [rsp + 0x48]
call fcn.14004ab40
mov rcx, rsi
call fcn.14015f280
cmp byte [rsp + 0x1d7], 0
jns 0x1400404b0
mov rcx, qword [rsp + 0x1c0]
call fcn.1401109f8
lea rcx, [rsp + 0x1d8]
mov rdx, qword [rcx + 8]
call fcn.1400423f0
lea rcx, [rsp + 0x1f0]
call fcn.140054a80
lea rcx, [rsp + 0x220]
mov rdx, qword [rcx + 8]
call fcn.1400423f0
mov rcx, qword [rsp + 0x238]
xor rcx, rsp
call fcn.140111870
movaps xmm6, xmmword [rsp + 0x240]
add rsp, 0x258
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret