Function at 0x14004c670
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x7d8]
sub rsp, 0x8b0
mov qword [rbp - 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1401bbe90]
xor rax, rsp
mov qword [rbp + 0x7a0], rax
mov r13, rcx
mov qword [rbp - 0x68], rcx
xor r15d, r15d
mov dword [rsp + 0x30], r15d
mov ecx, dword [0x1401c3d80]
lea eax, [rcx + 1]
imul eax, ecx
and eax, 0x80000003
jge 0x14004c6d8
dec eax
or eax, 0xfffffffc
inc eax
cmp eax, 1
jne 0x14004c747
test ecx, ecx
je 0x14004c747
mov eax, ecx
and eax, 0x80000001
jge 0x14004c6f1
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x14004c706
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [0x1401c3d80], eax
jmp 0x14004c713
lea ecx, [rcx*2 + 1]
mov dword [0x1401c3d80], ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
mov edx, ecx
sub edx, eax
je 0x14004c735
sub edx, 2
je 0x14004c738
dec edx
je 0x14004c73a
jmp 0x14004c743
add ecx, 2
inc ecx
add ecx, 2
mov dword [0x1401c3d80], ecx
test ecx, ecx
jne 0x14004c6e1
lea rcx, [0x1401bb9a8]
mov rax, qword [0x1401bb9a8]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
mov word [rbp - 0x60], r15w
xor edx, edx
mov r8d, 0x7fe
lea rcx, [rbp - 0x5e]
call fcn.1400d2f00
mov rdi, r15
mov qword [rsp + 0x70], r15
mov dword [rsp + 0x78], r15d
mov qword [rbp - 0x80], r15
mov qword [rsp + 0x60], r15
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r12d, 1
mov r9d, r12d
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftInternet_Explorer
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
or rsi, 0xffffffffffffffff
test eax, eax
jne 0x14004cf17
mov dword [rsp + 0x78], r15d
mov rdi, qword [rsp + 0x60]
mov qword [rsp + 0x70], rdi
lea rcx, [0x1401bb9a8]
mov rax, qword [0x1401bb9a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea rdx, str.svcVe
test rdx, 0xffffffffffff0000
jne 0x14004c81d
movzx ebx, dx
mov ecx, ebx
call fcn.1400019e0
test rax, rax
je 0x14004c82e
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400025b0
jmp 0x14004c82e
mov r8d, 5
lea rcx, [rsp + 0x58]
call fcn.1400022c0
nop
lea r8, str.rsion
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x78]
call fcn.14001a660
nop
mov dword [rsp + 0x50], 0x800
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
lea rcx, [rbp - 0x60]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x68]
xor r8d, r8d
mov rdx, qword [rax]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, eax
test eax, eax
jne 0x14004c8b1
mov eax, dword [rsp + 0x68]
dec eax
cmp eax, 1
jbe 0x14004c88b
mov ebx, 0xd
jmp 0x14004c8b1
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x14004c8a9
test al, 1
jne 0x14004c8a2
shr rax, 1
cmp word [rbp + rax*2 - 0x62], 0
je 0x14004c8ae
mov ebx, 0xd
jmp 0x14004c8b1
mov word [rbp - 0x60], r15w
mov ebx, r15d
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004c8ca
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004c8e3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test ebx, ebx
jne 0x14004ca4e
lea rcx, [0x1401bb9a8]
mov rax, qword [0x1401bb9a8]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
lea rcx, [rbp - 0x60]
lea rax, [rbp - 0x60]
test rax, 0xffffffffffff0000
jne 0x14004c942
movzx edi, cx
mov ecx, edi
call fcn.1400019e0
test rax, rax
je 0x14004ca33
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.1400025b0
mov rbx, qword [rsp + 0x48]
jmp 0x14004ca33
lea rax, [rbp - 0x60]
mov rdi, rsi
nop dword [rax]
inc rdi
cmp word [rax + rdi*2], 0
jne 0x14004c950
test edi, edi
jne 0x14004c9b7
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14004ca33
cmp dword [rdx + 0x10], 0
jge 0x14004c993
cmp dword [rbx - 0xc], 0
jge 0x14004c986
mov ecx, 0x80070057
call fcn.140001920
int3
mov dword [rbx - 0x10], r15d
mov word [rbx], r15w
jmp 0x14004ca33
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004c9a3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
jmp 0x14004ca33
mov r15d, dword [rbx - 0x10]
lea r14, [rbp - 0x60]
sub r14, rbx
sar r14, 1
test edi, edi
jns 0x14004c9d4
mov ecx, 0x80070057
call fcn.140001920
int3
mov ecx, r12d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14004c9f4
mov edx, edi
lea rcx, [rsp + 0x48]
call fcn.1400023b0
mov rbx, qword [rsp + 0x48]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp r14, r15
lea r15, [rax + rax]
mov r9, r15
ja 0x14004ca18
lea r8, [rbx + r14*2]
call fcn.1400ce2e4
jmp 0x14004ca21
lea r8, [rbp - 0x60]
call fcn.1400ce4a4
cmp edi, dword [rbx - 0xc]
jg 0x14004ca43
mov dword [rbx - 0x10], edi
xor eax, eax
mov word [r15 + rbx], ax
xor r15d, r15d
mov dword [rsp + 0x30], r12d
cmp dword [rbx - 0x10], 0
je 0x14004ca53
mov dil, 1
jmp 0x14004ca56
mov ecx, 0x80070057
call fcn.140001920
nop
mov rbx, qword [rsp + 0x48]
xor dil, dil
mov eax, dword [rsp + 0x30]
test al, 1
je 0x14004ca77
and dword [rsp + 0x30], 0xfffffffe
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004ca77
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test dil, dil
je 0x14004cb7e
lea rax, [rbp - 0x60]
mov rdi, rsi
nop word [rax + rax]
inc rdi
cmp word [rax + rdi*2], 0
jne 0x14004ca90
mov rbx, qword [rsp + 0x38]
test edi, edi
jne 0x14004caf6
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14004cef3
cmp dword [rdx + 0x10], 0
jge 0x14004cacf
cmp dword [rbx - 0xc], 0
jge 0x14004ce32
mov ecx, 0x80070057
call fcn.140001920
int3
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004cadf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
jmp 0x14004cef3
mov r15d, dword [rbx - 0x10]
lea r14, [rbp - 0x60]
sub r14, rbx
sar r14, 1
test edi, edi
jns 0x14004cb13
mov ecx, 0x80070057
call fcn.140001920
int3
sub r12d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, r12d
jge 0x14004cb32
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.1400023b0
mov rbx, qword [rsp + 0x38]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp r14, r15
lea r15, [rax + rax]
mov r9, r15
ja 0x14004cb56
lea r8, [rbx + r14*2]
call fcn.1400ce2e4
jmp 0x14004cb5f
lea r8, [rbp - 0x60]
call fcn.1400ce4a4
cmp edi, dword [rbx - 0xc]
jg 0x14004cb73
mov dword [rbx - 0x10], edi
xor eax, eax
mov word [r15 + rbx], ax
jmp 0x14004cef0
mov ecx, 0x80070057
call fcn.140001920
int3
mov dword [rsp + 0x54], 0x800
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x6c]
xor r8d, r8d
lea rdx, [0x14014f150]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov r14d, eax
test eax, eax
jne 0x14004cbf4
mov eax, dword [rsp + 0x6c]
dec eax
cmp eax, 1
jbe 0x14004cbcd
mov r14d, 0xd
jmp 0x14004cbf4
mov eax, dword [rsp + 0x54]
test eax, eax
je 0x14004cbec
test al, 1
jne 0x14004cbe4
shr rax, 1
cmp word [rbp + rax*2 - 0x62], 0
je 0x14004cbf1
mov r14d, 0xd
jmp 0x14004cbf4
mov word [rbp - 0x60], r15w
mov r14d, r15d
mov ecx, dword [0x1401c3d80]
imul ecx, ecx
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x17
sub ecx, edx
cmp ecx, 7
jne 0x14004cc58
mov ecx, 0x28
call fcn.1400cd108
mov rdi, rax
mov rbx, r15
nop word [rax + rax]
call fcn.1400ce478
add eax, dword [0x1401c3d80]
mov dword [rdi + rbx*4], eax
inc rbx
cmp rbx, 0xa
jl 0x14004cc30
mov eax, dword [rdi + 0x24]
mov dword [0x1401c3d80], eax
mov rcx, rdi
call fcn.1400cebfc
test r14d, r14d
jne 0x14004cdbb
lea rcx, [0x1401bb9a8]
mov rax, qword [0x1401bb9a8]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
lea rcx, [rbp - 0x60]
lea rax, [rbp - 0x60]
test rax, 0xffffffffffff0000
jne 0x14004ccb8
movzx edi, cx
mov ecx, edi
call fcn.1400019e0
test rax, rax
je 0x14004cda0
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400025b0
mov rbx, qword [rsp + 0x40]
jmp 0x14004cda0
lea rax, [rbp - 0x60]
mov rdi, rsi
nop
inc rdi
cmp word [rax + rdi*2], 0
jne 0x14004ccc0
test edi, edi
jne 0x14004cd27
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14004cda0
cmp dword [rdx + 0x10], 0
jge 0x14004cd03
cmp dword [rbx - 0xc], 0
jge 0x14004ccf6
mov ecx, 0x80070057
call fcn.140001920
int3
mov dword [rbx - 0x10], r15d
mov word [rbx], r15w
jmp 0x14004cda0
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004cd13
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
jmp 0x14004cda0
mov r15d, dword [rbx - 0x10]
lea r14, [rbp - 0x60]
sub r14, rbx
sar r14, 1
test edi, edi
jns 0x14004cd44
mov ecx, 0x80070057
call fcn.140001920
int3
mov ecx, r12d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14004cd64
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.1400023b0
mov rbx, qword [rsp + 0x40]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp r14, r15
lea r15, [rax + rax]
mov r9, r15
ja 0x14004cd88
lea r8, [rbx + r14*2]
call fcn.1400ce2e4
jmp 0x14004cd91
lea r8, [rbp - 0x60]
call fcn.1400ce4a4
cmp edi, dword [rbx - 0xc]
jg 0x14004cdb0
mov dword [rbx - 0x10], edi
xor eax, eax
mov word [r15 + rbx], ax
or dword [rsp + 0x30], 2
cmp dword [rbx - 0x10], 0
je 0x14004cdc0
mov dil, 1
jmp 0x14004cdc3
mov ecx, 0x80070057
call fcn.140001920
nop
mov rbx, qword [rsp + 0x40]
xor dil, dil
mov eax, dword [rsp + 0x30]
test al, 2
je 0x14004cde4
and dword [rsp + 0x30], 0xfffffffd
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004cde4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test dil, dil
je 0x14004ceeb
lea rax, [rbp - 0x60]
mov rdi, rsi
inc rdi
cmp word [rax + rdi*2], 0
jne 0x14004cdf4
mov rbx, qword [rsp + 0x38]
test edi, edi
jne 0x14004ce66
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14004cef0
cmp dword [rdx + 0x10], 0
jge 0x14004ce3f
cmp dword [rbx - 0xc], 0
jge 0x14004ce2f
mov ecx, 0x80070057
call fcn.140001920
int3
xor r15d, r15d
mov dword [rbx - 0x10], r15d
mov word [rbx], r15w
jmp 0x14004cef3
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004ce4f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
jmp 0x14004cef0
mov r15d, dword [rbx - 0x10]
lea r14, [rbp - 0x60]
sub r14, rbx
sar r14, 1
test edi, edi
jns 0x14004ce83
mov ecx, 0x80070057
call fcn.140001920
int3
sub r12d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, r12d
jge 0x14004cea2
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.1400023b0
mov rbx, qword [rsp + 0x38]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp r14, r15
lea r15, [rax + rax]
mov r9, r15
ja 0x14004cec6
lea r8, [rbx + r14*2]
call fcn.1400ce2e4
jmp 0x14004cecf
lea r8, [rbp - 0x60]
call fcn.1400ce4a4
cmp edi, dword [rbx - 0xc]
jg 0x14004cee0
mov dword [rbx - 0x10], edi
xor eax, eax
mov word [r15 + rbx], ax
jmp 0x14004cef0
mov ecx, 0x80070057
call fcn.140001920
int3
mov rbx, qword [rsp + 0x38]
xor r15d, r15d
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14004cf0d
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, r15
mov qword [rsp + 0x70], r15
jmp 0x14004cf12
mov rdi, qword [rsp + 0x70]
mov dword [rsp + 0x78], r15d
lea rcx, [rbx - 0x18]
call fcn.140002410
add rax, 0x18
mov qword [r13], rax
or dword [rsp + 0x30], 4
test rdi, rdi
je 0x14004cf40
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x70], r15
mov dword [rsp + 0x78], r15d
lock add dword [rbx - 8], 0xffffffff
jg 0x14004cf5b
mov rcx, qword [rbx - 0x18]
mov r8, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rax, r13
mov rcx, qword [rbp + 0x7a0]
xor rcx, rsp
call fcn.1400cdac0
lea r11, [rsp + 0x8b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret