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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3000]
mov eax, 0x3100
call fcn.140216080
sub rsp, rax
mov rax, qword [0x14033e810]
xor rax, rsp
mov qword [rbp + 0x2ff0], rax
mov r12, r8
mov r14, rdx
mov r15, rcx
mov qword [rbp - 0x58], rcx
xor ebx, ebx
mov eax, ebx
mov dword [rbp - 0x78], ebx
lea rsi, [rbx - 1]
mov edx, 0x20219
mov r13d, 0x20119
test eax, eax
cmovne r13d, edx
mov rcx, qword [r15 + 8]
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x14008905e
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0xde0]
call fcn.140241ba0
mov dword [rbp - 0x7c], 0x104
mov dword [rsp + 0x60], ebx
mov dword [rbp - 0x80], ebx
lea rdi, [r15 + 0x3c0]
mov qword [rbp - 0x48], rdi
mov rcx, qword [rdi]
lea rdx, [rcx - 0x18]
mov rbx, qword [rdx]
cmp dword [rdx + 8], 0
je 0x140087d2a
mov eax, dword [rdx + 0x10]
shr eax, 0x1f
test al, al
je 0x140087d05
cmp dword [rcx - 0xc], 0
jl 0x140089095
xor ebx, ebx
mov dword [rcx - 0x10], ebx
mov rax, qword [rdi]
mov word [rax], bx
jmp 0x140087d2c
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140087d1a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rdi], rax
xor ebx, ebx
movaps xmm0, xmmword [str.SOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS_1_5_18Products]
movaps xmmword [rbp + 0x5e0], xmm0
movaps xmm1, xmmword [0x1402f0690]
movaps xmmword [rbp + 0x5f0], xmm1
movaps xmm0, xmmword [0x1402f06a0]
movaps xmmword [rbp + 0x600], xmm0
movaps xmm1, xmmword [0x1402f06b0]
movaps xmmword [rbp + 0x610], xmm1
movaps xmm0, xmmword [0x1402f06c0]
movaps xmmword [rbp + 0x620], xmm0
movaps xmm1, xmmword [0x1402f06d0]
movaps xmmword [rbp + 0x630], xmm1
movaps xmm0, xmmword [0x1402f06e0]
movaps xmmword [rbp + 0x640], xmm0
movaps xmm1, xmmword [0x1402f06f0]
movaps xmmword [rbp + 0x650], xmm1
movaps xmm0, xmmword [0x1402f0700]
movaps xmmword [rbp + 0x660], xmm0
movsd xmm1, qword [0x1402f0710]
movsd qword [rbp + 0x670], xmm1
mov eax, dword [0x1402f0718]
mov dword [rbp + 0x678], eax
movzx eax, word [0x1402f071c]
mov word [rbp + 0x67c], ax
xor edx, edx
mov r8d, 0x762
lea rcx, [rbp + 0x67e]
call fcn.140241ba0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, r13d
xor r8d, r8d
lea rdx, [rbp + 0x5e0]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400881c6
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
lea rax, [rbp - 0x4c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rbp - 0x7c]
lea rdx, [rbp + 0xde0]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov eax, dword [rsp + 0x60]
test eax, eax
je 0x1400881ba
mov esi, ebx
nop dword [rax]
mov dword [rsp + 0x64], 0x104
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x64]
lea r8, [rbp - 0x30]
mov edx, esi
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x1400881a7
mov ecx, 0x400
lea rax, [rbp + 0x5e0]
cmp word [rax], 0
je 0x140087ec6
add rax, 2
sub rcx, 1
jne 0x140087eb6
mov eax, 0x400
sub rax, rcx
test rcx, rcx
cmove rax, rbx
je 0x140087f2f
mov edx, 0x400
sub rdx, rax
lea rcx, [rbp + 0x5e0]
lea rcx, [rcx + rax*2]
je 0x140087f21
mov eax, 0x7ffffffe
lea r9, [0x1402ed690]
sub r9, rcx
nop dword [rax + rax]
test rax, rax
je 0x140087f21
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140087f21
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140087f00
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], bx
mov ecx, 0x400
lea rax, [rbp + 0x5e0]
nop dword [rax + rax]
cmp word [rax], 0
je 0x140087f50
add rax, 2
sub rcx, 1
jne 0x140087f40
mov eax, 0x400
sub rax, rcx
test rcx, rcx
cmove rax, rbx
je 0x140087fb1
mov edx, 0x400
sub rdx, rax
lea rcx, [rbp + 0x5e0]
lea rcx, [rcx + rax*2]
je 0x140087fa3
mov eax, 0x7ffffffe
lea r9, [rbp - 0x30]
sub r9, rcx
test rax, rax
je 0x140087fa3
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140087fa3
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140087f82
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], bx
mov ecx, 0x400
lea rax, [rbp + 0x5e0]
nop dword [rax]
cmp word [rax], 0
je 0x140087fd0
add rax, 2
sub rcx, 1
jne 0x140087fc0
mov eax, 0x400
sub rax, rcx
test rcx, rcx
cmove rax, rbx
je 0x140088034
mov edx, 0x400
sub rdx, rax
lea rcx, [rbp + 0x5e0]
lea rcx, [rcx + rax*2]
je 0x140088026
mov eax, 0x7ffffffe
lea r9, str.InstallProperties
sub r9, rcx
test rax, rax
je 0x140088026
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140088026
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140088005
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], bx
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
mov r9d, r13d
xor r8d, r8d
lea rdx, [rbp + 0x5e0]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14008818f
mov rax, qword [r15 + 0x370]
cmp dword [rax - 0x10], 0
je 0x1400880d4
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x17f0]
call fcn.140241ba0
mov dword [rbp - 0x50], 0x800
lea rax, [rbp - 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x17f0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.DisplayName
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400880d4
test r12, r12
je 0x1400880d4
mov rdx, r12
lea rcx, [rbp + 0x17f0]
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
je 0x140088233
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0xff0]
call fcn.140241ba0
mov dword [rbp - 0x80], 0x800
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xff0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.InstallLocation
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140088185
lea rdx, [rbp + 0xff0]
mov rcx, r15
call fcn.14008b5a0
test eax, eax
je 0x140088185
test r14, r14
je 0x140088185
mov edi, ebx
mov rcx, qword [r14 + 0x10]
test rcx, rcx
jle 0x140088183
test rbx, rbx
js 0x1400890a0
cmp rbx, rcx
jge 0x1400890a0
mov rax, qword [r14 + 8]
mov rdx, qword [rax + rbx*8]
lea rcx, [rbp + 0xff0]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x14008841f
inc edi
inc rbx
mov rcx, qword [r14 + 0x10]
movsxd rax, edi
cmp rax, rcx
jl 0x140088142
xor ebx, ebx
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rdx, [rbp + 0x5e0]
call fcn.14005a250
lea rdx, [rbp + 0x5e0]
call fcn.14005a250
inc esi
cmp esi, dword [rsp + 0x60]
jb 0x140087e70
mov rsi, 0xffffffffffffffff
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
call fcn.1400a2364
nop
test rax, rax
je 0x14008908a
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x78], rax
call fcn.1400a2364
nop
test rax, rax
je 0x1400890ac
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbp - 0x68], rax
lea rcx, [rsp + 0x78]
call fcn.14000e0b0
lea rcx, [rbp - 0x68]
call fcn.1400320a0
test eax, eax
jne 0x1400885f6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, 0xaee
jmp 0x140088618
xor edx, edx
mov r8d, 0xb2
lea rcx, [rbp + 0x22e]
call fcn.140241ba0
mov eax, 0x7b
mov word [rbp + 0x1e0], ax
movzx eax, word [rbp - 0x22]
mov word [rbp + 0x1e2], ax
movzx eax, word [rbp - 0x24]
mov word [rbp + 0x1e4], ax
movzx eax, word [rbp - 0x26]
mov word [rbp + 0x1e6], ax
movzx eax, word [rbp - 0x28]
mov word [rbp + 0x1e8], ax
movzx eax, word [rbp - 0x2a]
mov word [rbp + 0x1ea], ax
movzx eax, word [rbp - 0x2c]
mov word [rbp + 0x1ec], ax
movzx eax, word [rbp - 0x2e]
mov word [rbp + 0x1ee], ax
movzx eax, word [rbp - 0x30]
mov word [rbp + 0x1f0], ax
mov edi, 0x2d
mov word [rbp + 0x1f2], di
movzx eax, word [rbp - 0x1a]
mov word [rbp + 0x1f4], ax
movzx eax, word [rbp - 0x1c]
mov word [rbp + 0x1f6], ax
movzx eax, word [rbp - 0x1e]
mov word [rbp + 0x1f8], ax
movzx eax, word [rbp - 0x20]
mov word [rbp + 0x1fa], ax
mov word [rbp + 0x1fc], di
movzx eax, word [rbp - 0x12]
mov word [rbp + 0x1fe], ax
movzx eax, word [rbp - 0x14]
mov word [rbp + 0x200], ax
movzx eax, word [rbp - 0x16]
mov word [rbp + 0x202], ax
movzx eax, word [rbp - 0x18]
mov word [rbp + 0x204], ax
mov word [rbp + 0x206], di
movzx eax, word [rbp - 0xe]
mov word [rbp + 0x208], ax
movzx eax, word [rbp - 0x10]
mov word [rbp + 0x20a], ax
movzx eax, word [rbp - 0xa]
mov word [rbp + 0x20c], ax
movzx eax, word [rbp - 0xc]
mov word [rbp + 0x20e], ax
mov word [rbp + 0x210], di
movzx eax, word [rbp - 6]
mov word [rbp + 0x212], ax
movzx eax, word [rbp - 8]
mov word [rbp + 0x214], ax
movzx eax, word [rbp - 2]
mov word [rbp + 0x216], ax
movzx eax, word [rbp - 4]
mov word [rbp + 0x218], ax
movzx eax, word [rbp + 2]
mov word [rbp + 0x21a], ax
movzx eax, word [rbp]
mov word [rbp + 0x21c], ax
movzx eax, word [rbp + 6]
mov word [rbp + 0x21e], ax
movzx eax, word [rbp + 4]
mov word [rbp + 0x220], ax
movzx eax, word [rbp + 0xa]
mov word [rbp + 0x222], ax
movzx eax, word [rbp + 8]
mov word [rbp + 0x224], ax
movzx eax, word [rbp + 0xe]
mov word [rbp + 0x226], ax
movzx eax, word [rbp + 0xc]
mov word [rbp + 0x228], ax
mov dword [rbp + 0x22a], 0x7d
lea rcx, [rbp + 0x1e0]
mov rsi, 0xffffffffffffffff
mov rax, rsi
nop
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400883f0
lea rdx, [rbp + 0x1e0]
mov r8d, eax
lea rcx, [r15 + 0x3c0]
call fcn.14000df90
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1400881ba
xor edx, edx
mov r8d, 0xb2
lea rcx, [rbp + 0x32e]
call fcn.140241ba0
mov eax, 0x7b
mov word [rbp + 0x2e0], ax
movzx eax, word [rbp - 0x22]
mov word [rbp + 0x2e2], ax
movzx eax, word [rbp - 0x24]
mov word [rbp + 0x2e4], ax
movzx eax, word [rbp - 0x26]
mov word [rbp + 0x2e6], ax
movzx eax, word [rbp - 0x28]
mov word [rbp + 0x2e8], ax
movzx eax, word [rbp - 0x2a]
mov word [rbp + 0x2ea], ax
movzx eax, word [rbp - 0x2c]
mov word [rbp + 0x2ec], ax
movzx eax, word [rbp - 0x2e]
mov word [rbp + 0x2ee], ax
movzx eax, word [rbp - 0x30]
mov word [rbp + 0x2f0], ax
mov ecx, 0x2d
mov word [rbp + 0x2f2], cx
movzx eax, word [rbp - 0x1a]
mov word [rbp + 0x2f4], ax
movzx eax, word [rbp - 0x1c]
mov word [rbp + 0x2f6], ax
movzx eax, word [rbp - 0x1e]
mov word [rbp + 0x2f8], ax
movzx eax, word [rbp - 0x20]
mov word [rbp + 0x2fa], ax
mov word [rbp + 0x2fc], cx
movzx eax, word [rbp - 0x12]
mov word [rbp + 0x2fe], ax
movzx eax, word [rbp - 0x14]
mov word [rbp + 0x300], ax
movzx eax, word [rbp - 0x16]
mov word [rbp + 0x302], ax
movzx eax, word [rbp - 0x18]
mov word [rbp + 0x304], ax
mov word [rbp + 0x306], cx
movzx eax, word [rbp - 0xe]
mov word [rbp + 0x308], ax
movzx eax, word [rbp - 0x10]
mov word [rbp + 0x30a], ax
movzx eax, word [rbp - 0xa]
mov word [rbp + 0x30c], ax
movzx eax, word [rbp - 0xc]
mov word [rbp + 0x30e], ax
mov word [rbp + 0x310], cx
movzx eax, word [rbp - 6]
mov word [rbp + 0x312], ax
movzx eax, word [rbp - 8]
mov word [rbp + 0x314], ax
movzx eax, word [rbp - 2]
mov word [rbp + 0x316], ax
movzx eax, word [rbp - 4]
mov word [rbp + 0x318], ax
movzx eax, word [rbp + 2]
mov word [rbp + 0x31a], ax
movzx eax, word [rbp]
mov word [rbp + 0x31c], ax
movzx eax, word [rbp + 6]
mov word [rbp + 0x31e], ax
movzx eax, word [rbp + 4]
mov word [rbp + 0x320], ax
movzx eax, word [rbp + 0xa]
mov word [rbp + 0x322], ax
movzx eax, word [rbp + 8]
mov word [rbp + 0x324], ax
movzx eax, word [rbp + 0xe]
mov word [rbp + 0x326], ax
movzx eax, word [rbp + 0xc]
mov word [rbp + 0x328], ax
mov dword [rbp + 0x32a], 0x7d
lea rcx, [rbp + 0x2e0]
mov rsi, 0xffffffffffffffff
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400885e0
lea rdx, [rbp + 0x2e0]
jmp 0x140088401
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x68]
call fcn.140032150
test eax, eax
jne 0x1400886c4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, 0xaf4
mov dword [rsp + 0x20], eax
lea r9, str.Last_Error__d
lea rdx, str.C:WorkVSRevoWindowsProjectsRevo_HelperRevo_HelperSourcesUtils.cpp
mov ecx, 1
call fcn.1400473d0
nop
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140088652
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp - 0x40]
call fcn.14005fc00
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x78]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x1400886be
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x1400886af
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400886af
call fcn.14000de80
mov rdi, rax
mov ecx, esi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x1400886a4
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x78], rax
jmp 0x1400886be
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x78]
call fcn.14000df90
nop
mov rdx, qword [rbp - 0x40]
jmp 0x1400886c8
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400886e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdi, [r15 + 0x3c0]
mov rax, qword [rdi]
mov rbx, qword [rsp + 0x78]
cmp dword [rax - 0x10], 0
jne 0x140088c33
mov edx, 0x400
lea rcx, [rbp + 0x5e0]
lea r8, str.SOFTWAREMicrosoftWindowsCurrentVersionInstallerUserData_
lea rax, [rbp + 0x5e0]
sub r8, rax
nop word [rax + rax]
lea rax, [rdx + 0x7ffffbfe]
test rax, rax
je 0x140088743
movzx eax, word [rcx + r8]
test ax, ax
je 0x140088743
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140088720
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
xor r8d, r8d
mov word [rax], r8w
mov ecx, 0x400
lea rax, [rbp + 0x5e0]
cmp word [rax], r8w
je 0x140088771
add rax, 2
sub rcx, 1
jne 0x140088761
mov eax, 0x400
sub rax, rcx
test rcx, rcx
cmove rax, r8
je 0x1400887d5
mov edx, 0x400
sub rdx, rax
lea rcx, [rbp + 0x5e0]
lea rcx, [rcx + rax*2]
je 0x1400887c6
mov eax, 0x7ffffffe
mov r9, rbx
sub r9, rcx
test rax, rax
je 0x1400887c3
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x1400887c3
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400887a2
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
mov ecx, 0x400
lea rax, [rbp + 0x5e0]
cmp word [rax], 0
je 0x1400887f1
add rax, 2
sub rcx, 1
jne 0x1400887e1
mov eax, 0x400
sub rax, rcx
test rcx, rcx
cmove rax, r8
je 0x140088859
mov edx, 0x400
sub rdx, rax
lea rcx, [rbp + 0x5e0]
lea rcx, [rcx + rax*2]
je 0x14008884a
mov eax, 0x7ffffffe
lea r9, str.Products
sub r9, rcx
test rax, rax
je 0x140088847
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140088847
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140088826
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, r13d
xor r8d, r8d
lea rdx, [rbp + 0x5e0]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140088c33
xor eax, eax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x4c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rbp - 0x7c]
lea rdx, [rbp + 0xde0]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov eax, dword [rsp + 0x60]
test eax, eax
je 0x140088c28
xor ecx, ecx
mov r15d, ecx
test eax, eax
je 0x140088c24
xor edi, edi
nop dword [rax]
mov dword [rsp + 0x64], 0x104
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x64]
lea r8, [rbp - 0x30]
mov edx, r15d
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x140088c0b
mov ecx, 0x400
lea rax, [rbp + 0x5e0]
cmp word [rax], 0
je 0x140088947
add rax, 2
sub rcx, 1
jne 0x140088937
mov eax, 0x400
sub rax, rcx
test rcx, rcx
cmove rax, rdi
je 0x1400889af
mov edx, 0x400
sub rdx, rax
lea rcx, [rbp + 0x5e0]
lea rcx, [rcx + rax*2]
je 0x1400889a1
mov eax, 0x7ffffffe
lea r9, [0x1402ed690]
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x1400889a1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x1400889a1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140088980
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov ecx, 0x400
lea rax, [rbp + 0x5e0]
nop dword [rax + rax]
cmp word [rax], 0
je 0x1400889d0
add rax, 2
sub rcx, 1
jne 0x1400889c0
mov eax, 0x400
sub rax, rcx
test rcx, rcx
cmove rax, rdi
je 0x140088a31
mov edx, 0x400
sub rdx, rax
lea rcx, [rbp + 0x5e0]
lea rcx, [rcx + rax*2]
je 0x140088a23
mov eax, 0x7ffffffe
lea r9, [rbp - 0x30]
sub r9, rcx
test rax, rax
je 0x140088a23
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140088a23
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140088a02
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
mov ecx, 0x400
lea rax, [rbp + 0x5e0]
nop dword [rax]
cmp word [rax], 0
je 0x140088a50
add rax, 2
sub rcx, 1
jne 0x140088a40
mov eax, 0x400
sub rax, rcx
test rcx, rcx
cmove rax, rdi
je 0x140088ab4
mov edx, 0x400
sub rdx, rax
lea rcx, [rbp + 0x5e0]
lea rcx, [rcx + rax*2]
je 0x140088aa6
mov eax, 0x7ffffffe
lea r9, str.InstallProperties
sub r9, rcx
test rax, rax
je 0x140088aa6
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140088aa6
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140088a85
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], di
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
mov r9d, r13d
xor r8d, r8d
lea rdx, [rbp + 0x5e0]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140088bf3
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x1ff0]
call fcn.140241ba0
mov dword [rsp + 0x68], 0x800
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x1ff0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.DisplayName
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140088b49
test r12, r12
je 0x140088b49
mov rdx, r12
lea rcx, [rbp + 0x1ff0]
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
je 0x140088c71
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x27f0]
call fcn.140241ba0
mov dword [rsp + 0x68], 0x800
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x27f0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.InstallLocation
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140088be9
test r14, r14
je 0x140088be9
mov esi, edi
mov rcx, qword [r14 + 0x10]
test rcx, rcx
jle 0x140088be7
test rdi, rdi
js 0x1400890a6
cmp rdi, rcx
jge 0x1400890a6
mov rax, qword [r14 + 8]
mov rdx, qword [rax + rdi*8]
lea rcx, [rbp + 0x27f0]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x140088e61
inc esi
inc rdi
mov rcx, qword [r14 + 0x10]
movsxd rax, esi
cmp rax, rcx
jl 0x140088ba6
xor edi, edi
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rdx, [rbp + 0x5e0]
call fcn.14005a250
lea rdx, [rbp + 0x5e0]
call fcn.14005a250
inc r15d
cmp r15d, dword [rsp + 0x60]
jb 0x1400888f0
mov rsi, 0xffffffffffffffff
mov rdi, qword [rbp - 0x48]
mov r15, qword [rbp - 0x58]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rax, qword [rdi]
lea rdx, [rbx - 0x18]
cmp dword [rax - 0x10], 0
jne 0x140089036
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140088c59
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, dword [rbp - 0x78]
inc eax
mov dword [rbp - 0x78], eax
cmp eax, 2
jge 0x14008904a
xor ebx, ebx
jmp 0x140087c7e
xor edx, edx
mov r8d, 0xb2
lea rcx, [rbp + 0x42e]
call fcn.140241ba0
mov eax, 0x7b
mov word [rbp + 0x3e0], ax
movzx eax, word [rbp - 0x22]
mov word [rbp + 0x3e2], ax
movzx eax, word [rbp - 0x24]
mov word [rbp + 0x3e4], ax
movzx eax, word [rbp - 0x26]
mov word [rbp + 0x3e6], ax
movzx eax, word [rbp - 0x28]
mov word [rbp + 0x3e8], ax
movzx eax, word [rbp - 0x2a]
mov word [rbp + 0x3ea], ax
movzx eax, word [rbp - 0x2c]
mov word [rbp + 0x3ec], ax
movzx eax, word [rbp - 0x2e]
mov word [rbp + 0x3ee], ax
movzx eax, word [rbp - 0x30]
mov word [rbp + 0x3f0], ax
mov r13d, 0x2d
mov word [rbp + 0x3f2], r13w
movzx eax, word [rbp - 0x1a]
mov word [rbp + 0x3f4], ax
movzx eax, word [rbp - 0x1c]
mov word [rbp + 0x3f6], ax
movzx eax, word [rbp - 0x1e]
mov word [rbp + 0x3f8], ax
movzx eax, word [rbp - 0x20]
mov word [rbp + 0x3fa], ax
mov word [rbp + 0x3fc], r13w
movzx eax, word [rbp - 0x12]
mov word [rbp + 0x3fe], ax
movzx eax, word [rbp - 0x14]
mov word [rbp + 0x400], ax
movzx eax, word [rbp - 0x16]
mov word [rbp + 0x402], ax
movzx eax, word [rbp - 0x18]
mov word [rbp + 0x404], ax
mov word [rbp + 0x406], r13w
movzx eax, word [rbp - 0xe]
mov word [rbp + 0x408], ax
movzx eax, word [rbp - 0x10]
mov word [rbp + 0x40a], ax
movzx eax, word [rbp - 0xa]
mov word [rbp + 0x40c], ax
movzx eax, word [rbp - 0xc]
mov word [rbp + 0x40e], ax
mov word [rbp + 0x410], r13w
movzx eax, word [rbp - 6]
mov word [rbp + 0x412], ax
movzx eax, word [rbp - 8]
mov word [rbp + 0x414], ax
movzx eax, word [rbp - 2]
mov word [rbp + 0x416], ax
movzx eax, word [rbp - 4]
mov word [rbp + 0x418], ax
movzx eax, word [rbp + 2]
mov word [rbp + 0x41a], ax
movzx eax, word [rbp]
mov word [rbp + 0x41c], ax
movzx eax, word [rbp + 6]
mov word [rbp + 0x41e], ax
movzx eax, word [rbp + 4]
mov word [rbp + 0x420], ax
movzx eax, word [rbp + 0xa]
mov word [rbp + 0x422], ax
movzx eax, word [rbp + 8]
mov word [rbp + 0x424], ax
movzx eax, word [rbp + 0xe]
mov word [rbp + 0x426], ax
movzx eax, word [rbp + 0xc]
mov word [rbp + 0x428], ax
mov dword [rbp + 0x42a], 0x7d
lea rcx, [rbp + 0x3e0]
mov rsi, 0xffffffffffffffff
mov rax, rsi
inc rax
cmp word [rcx + rax*2], 0
jne 0x140088e32
lea rdx, [rbp + 0x3e0]
mov r8d, eax
mov rdi, qword [rbp - 0x48]
mov rcx, rdi
call fcn.14000df90
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140088c24
xor edx, edx
mov r8d, 0xb2
lea rcx, [rbp + 0x52e]
call fcn.140241ba0
mov eax, 0x7b
mov word [rbp + 0x4e0], ax
movzx eax, word [rbp - 0x22]
mov word [rbp + 0x4e2], ax
movzx eax, word [rbp - 0x24]
mov word [rbp + 0x4e4], ax
movzx eax, word [rbp - 0x26]
mov word [rbp + 0x4e6], ax
movzx eax, word [rbp - 0x28]
mov word [rbp + 0x4e8], ax
movzx eax, word [rbp - 0x2a]
mov word [rbp + 0x4ea], ax
movzx eax, word [rbp - 0x2c]
mov word [rbp + 0x4ec], ax
movzx eax, word [rbp - 0x2e]
mov word [rbp + 0x4ee], ax
movzx eax, word [rbp - 0x30]
mov word [rbp + 0x4f0], ax
mov ecx, 0x2d
mov word [rbp + 0x4f2], cx
movzx eax, word [rbp - 0x1a]
mov word [rbp + 0x4f4], ax
movzx eax, word [rbp - 0x1c]
mov word [rbp + 0x4f6], ax
movzx eax, word [rbp - 0x1e]
mov word [rbp + 0x4f8], ax
movzx eax, word [rbp - 0x20]
mov word [rbp + 0x4fa], ax
mov word [rbp + 0x4fc], cx
movzx eax, word [rbp - 0x12]
mov word [rbp + 0x4fe], ax
movzx eax, word [rbp - 0x14]
mov word [rbp + 0x500], ax
movzx eax, word [rbp - 0x16]
mov word [rbp + 0x502], ax
movzx eax, word [rbp - 0x18]
mov word [rbp + 0x504], ax
mov word [rbp + 0x506], cx
movzx eax, word [rbp - 0xe]
mov word [rbp + 0x508], ax
movzx eax, word [rbp - 0x10]
mov word [rbp + 0x50a], ax
movzx eax, word [rbp - 0xa]
mov word [rbp + 0x50c], ax
movzx eax, word [rbp - 0xc]
mov word [rbp + 0x50e], ax
mov word [rbp + 0x510], cx
movzx eax, word [rbp - 6]
mov word [rbp + 0x512], ax
movzx eax, word [rbp - 8]
mov word [rbp + 0x514], ax
movzx eax, word [rbp - 2]
mov word [rbp + 0x516], ax
movzx eax, word [rbp - 4]
mov word [rbp + 0x518], ax
movzx eax, word [rbp + 2]
mov word [rbp + 0x51a], ax
movzx eax, word [rbp]
mov word [rbp + 0x51c], ax
movzx eax, word [rbp + 6]
mov word [rbp + 0x51e], ax
movzx eax, word [rbp + 4]
mov word [rbp + 0x520], ax
movzx eax, word [rbp + 0xa]
mov word [rbp + 0x522], ax
movzx eax, word [rbp + 8]
mov word [rbp + 0x524], ax
movzx eax, word [rbp + 0xe]
mov word [rbp + 0x526], ax
movzx eax, word [rbp + 0xc]
mov word [rbp + 0x528], ax
mov dword [rbp + 0x52a], 0x7d
lea rcx, [rbp + 0x4e0]
mov rsi, 0xffffffffffffffff
mov rax, rsi
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140089020
lea rdx, [rbp + 0x4e0]
jmp 0x140088e43
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x14008904a
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rcx, qword [r15 + 0x3c0]
cmp dword [rcx - 0x10], 0
je 0x14008905e
mov eax, 1
jmp 0x140089060
xor eax, eax
mov rcx, qword [rbp + 0x2ff0]
xor rcx, rsp
call fcn.1402155d0
mov rbx, qword [rsp + 0x3158]
add rsp, 0x3100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.1400080b0
nop
mov ecx, 0x80070057
call fcn.1400080b0
nop
call fcn.1400a2cd8
nop
call fcn.1400a2cd8
nop
mov ecx, 0x80004005
call fcn.1400080b0
int3