Function at 0x444f20
Capabilities:
Get installed programs
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49098c
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4c0
mov eax, dword [0x4cf500]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov al, byte [ebx + 8]
lea ecx, [ebp - 0x494]
mov byte [ebp - 0x495], al
movzx eax, al
inc eax
mov dword [ebp - 0x494], 0
push ecx
shl eax, 8
or eax, 0x20019
push eax
push 0
push str.SOFTWAREMICROSOFTWINDOWSCURRENTVERSIONUNINSTALL
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
test esi, esi
jne 0x445645
push 0x200
push eax
lea eax, [ebp - 0x418]
mov dword [ebp - 0x49c], esi
push eax
call fcn.00461ba0
add esp, 0xc
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x420]
mov dword [ebp - 0x420], 0x200
push eax
lea eax, [ebp - 0x418]
push eax
push esi
push dword [ebp - 0x494]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x445634
mov dword [ebp - 0x490], eax
lea eax, [ebp - 0x490]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x418]
push eax
push dword [ebp - 0x494]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
test esi, esi
jne 0x44555d
mov dword [ebp - 0x41c], eax
lea eax, [ebp - 0x48c]
push eax
lea eax, [ebp - 0x218]
mov dword [ebp - 0x48c], 0x200
push eax
lea eax, [ebp - 0x41c]
push eax
push 2
push str.DisplayName
push esi
push dword [ebp - 0x490]
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x44553f
lea eax, [ebp - 0x218]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x445071
sub eax, edx
sar eax, 1
cmp eax, 0xc
jb 0x44553f
mov esi, 0xc
xor edx, edx
movzx ecx, word [ebp + edx - 0x218]
movzx eax, word [edx + 0x4babfc]
cmp cx, ax
jne 0x44553f
add edx, 2
sub esi, 1
jne 0x445090
push esi
xorps xmm0, xmm0
mov dword [ebp - method.InstalledProducts::InstalledProduct.virtual_0], vtable.InstalledProducts::InstalledProduct.0
push 0x4ba99c
lea ecx, [ebp - 0x484]
mov dword [ebp - 0x474], esi
movups xmmword [ebp - 0x484], xmm0
mov dword [ebp - 0x470], esi
call fcn.0040c370
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x46c]
push esi
xorps xmm0, xmm0
mov dword [ebp - 0x45c], esi
push 0x4ba99c
movups xmmword [ebp - 0x46c], xmm0
mov dword [ebp - 0x458], esi
call fcn.0040c370
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x454]
push esi
xorps xmm0, xmm0
mov dword [ebp - 0x444], esi
push 0x4ba99c
movups xmmword [ebp - 0x454], xmm0
mov dword [ebp - 0x440], esi
call fcn.0040c370
xorps xmm0, xmm0
mov dword [ebp - 0x42c], esi
xor eax, eax
mov dword [ebp - 0x428], 7
movups xmmword [ebp - 0x43c], xmm0
mov word [ebp - 0x43c], ax
mov byte [ebp - 0x424], al
lea ecx, [ebp - 0x218]
mov dword [ebp - 4], 2
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x445170
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x46c]
call fcn.0040efc0
lea ecx, [ebp - 0x418]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4451a0
sub ecx, edx
lea eax, [ebp - 0x418]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x484]
call fcn.0040efc0
mov al, byte [ebp - 0x495]
lea ecx, [ebp - 0x4b4]
mov byte [ebp - 0x424], al
call fcn.00441d60
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 7
mov ecx, dword [eax + 0x10]
jbe 0x4451e8
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4d2c68
call fcn.0040aba0
add esp, 4
mov edx, str.D:JenkinsworkspaceN_SUCommon_VS2022_srcSUCommonInstalledProducts.cpp
mov ecx, eax
call fcn.004097e0
mov edx, 0x4ba164
mov ecx, eax
call fcn.004097e0
cmp byte [ebp - 0x495], 0
mov ecx, str.__64_
mov esi, str.__32_
cmove esi, ecx
mov ecx, eax
push 0x3a
call fcn.00407bb0
mov edx, str.:_Found
mov ecx, eax
call fcn.004097e0
lea edx, [ebp - 0x218]
mov ecx, eax
call fcn.0040ecd0
mov edx, str._installed_as
mov ecx, eax
call fcn.004097e0
lea edx, [ebp - 0x418]
mov ecx, eax
call fcn.0040ecd0
mov edx, esi
mov ecx, eax
call fcn.004097e0
push eax
call fcn.00409b60
mov byte [ebp - 4], 2
add esp, 4
mov ecx, dword [ebp - 0x4a0]
cmp ecx, 7
jbe 0x4452b5
mov edx, dword [ebp - 0x4b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4452ab
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x445718
push ecx
push edx
call fcn.0045f8a7
add esp, 8
mov esi, dword [sym.imp.ADVAPI32.dll_RegGetValueW]
lea eax, [ebp - 0x48c]
push eax
lea eax, [ebp - 0x218]
mov dword [ebp - 0x48c], 0x200
push eax
lea eax, [ebp - 0x41c]
push eax
push 2
push str.DisplayVersion
push 0
push dword [ebp - 0x490]
call esi
test eax, eax
jne 0x445322
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x445300
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x454]
call fcn.0040efc0
lea eax, [ebp - 0x48c]
push eax
push 0
lea eax, [ebp - 0x41c]
push eax
push 2
push str.InstallLocation
push 0
push dword [ebp - 0x490]
call esi
test eax, eax
jne 0x4453ba
mov eax, dword [ebp - 0x48c]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045faf0
add esp, 4
mov esi, eax
lea eax, [ebp - 0x48c]
push eax
push esi
lea eax, [ebp - 0x41c]
push eax
push 2
push str.InstallLocation
push 0
push dword [ebp - 0x490]
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x4453b1
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x445395
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x43c]
call fcn.0040efc0
push esi
call fcn.0045fae2
add esp, 4
lea ecx, [ebp - 0x4b4]
call fcn.00441d60
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 7
mov ecx, dword [eax + 0x10]
jbe 0x4453d4
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4d2c68
call fcn.0040aba0
add esp, 4
mov edx, str.D:JenkinsworkspaceN_SUCommon_VS2022_srcSUCommonInstalledProducts.cpp
mov ecx, eax
call fcn.004097e0
mov edx, 0x4ba164
mov ecx, eax
call fcn.004097e0
push 0x49
mov ecx, eax
call fcn.00407bb0
mov edx, str.:_DisplayVersion
mov ecx, eax
call fcn.004097e0
cmp dword [ebp - 0x440], 7
lea edx, [ebp - 0x454]
push dword [ebp - 0x444]
cmova edx, dword [ebp - 0x454]
mov ecx, eax
call fcn.0040aba0
add esp, 4
mov edx, str.__InstallLocation
mov ecx, eax
call fcn.004097e0
cmp dword [ebp - 0x428], 7
lea edx, [ebp - 0x43c]
push dword [ebp - 0x42c]
cmova edx, dword [ebp - 0x43c]
mov ecx, eax
call fcn.0040aba0
add esp, 4
push eax
call fcn.00409b60
mov byte [ebp - 4], 2
add esp, 4
mov ecx, dword [ebp - 0x4a0]
cmp ecx, 7
jbe 0x4454b2
mov edx, dword [ebp - 0x4b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4454a8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x445718
push ecx
push edx
call fcn.0045f8a7
add esp, 8
mov esi, dword [edi + 8]
lea ecx, [edi + 4]
cmp esi, dword [edi + 0xc]
je 0x445520
lea eax, [ebp - 0x484]
mov dword [ebp - 0x4b8], esi
lea ecx, [esi + 4]
mov dword [esi], vtable.InstalledProducts::InstalledProduct.0
push eax
call fcn.00429ee0
lea eax, [ebp - 0x46c]
mov byte [ebp - 4], 5
lea ecx, [esi + 0x1c]
push eax
call fcn.00429ee0
lea eax, [ebp - 0x454]
mov byte [ebp - 4], 6
lea ecx, [esi + 0x34]
push eax
call fcn.00429ee0
lea eax, [ebp - 0x43c]
mov byte [ebp - 4], 7
lea ecx, [esi + 0x4c]
push eax
call fcn.00429ee0
mov al, byte [ebp - 0x424]
mov byte [esi + 0x64], al
add dword [edi + 8], 0x68
jmp 0x44552d
lea eax, [ebp - 0x488]
push eax
push esi
call fcn.00447310
lea ecx, [ebp - 0x488]
mov dword [ebp - 4], 0xffffffff
call fcn.00444d70
push dword [ebp - 0x490]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [ebp - 0x49c]
inc esi
mov dword [ebp - 0x49c], esi
jmp 0x444fc1
lea ecx, [ebp - 0x4b4]
call fcn.00441d60
mov dword [ebp - 4], 8
cmp dword [eax + 0x14], 7
mov edi, dword [eax + 0x10]
jbe 0x44557a
mov eax, dword [eax]
push edi
mov edx, eax
mov ecx, 0x4d2c68
call fcn.0040aba0
add esp, 4
mov edx, str.D:JenkinsworkspaceN_SUCommon_VS2022_srcSUCommonInstalledProducts.cpp
mov ecx, eax
call fcn.004097e0
mov edx, 0x4ba164
mov ecx, eax
call fcn.004097e0
push 0x50
mov ecx, eax
call fcn.00407bb0
mov edx, str.:_Error_opening_uninstall_key__
mov ecx, eax
call fcn.004097e0
lea edx, [ebp - 0x418]
mov ecx, eax
call fcn.0040ecd0
mov edx, 0x4bfa88
mov ecx, eax
call fcn.004097e0
push esi
mov ecx, eax
call fcn.004079f0
mov edx, 0x4bfa84
mov ecx, eax
call fcn.004097e0
push eax
call fcn.00409b60
mov dword [ebp - 4], 0xffffffff
add esp, 4
mov ecx, dword [ebp - 0x4a0]
cmp ecx, 7
jbe 0x445634
mov edx, dword [ebp - 0x4b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x44562a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x445718
push ecx
push edx
call fcn.0045f8a7
add esp, 8
push dword [ebp - 0x494]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4456f8
lea ecx, [ebp - 0x4d0]
call fcn.00441d60
mov dword [ebp - 4], 9
cmp dword [eax + 0x14], 7
mov ecx, dword [eax + 0x10]
jbe 0x445662
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4d2c68
call fcn.0040aba0
add esp, 4
mov edx, str.D:JenkinsworkspaceN_SUCommon_VS2022_srcSUCommonInstalledProducts.cpp
mov ecx, eax
call fcn.004097e0
mov edx, 0x4ba164
mov ecx, eax
call fcn.004097e0
push 0x58
mov ecx, eax
call fcn.00407bb0
mov edx, str.:_Error_opening_root_uninstall_key__
mov ecx, eax
call fcn.004097e0
push esi
mov ecx, eax
call fcn.004079f0
mov edx, 0x4bfa84
mov ecx, eax
call fcn.004097e0
push eax
call fcn.00409b60
mov ecx, dword [ebp - 0x4bc]
add esp, 4
cmp ecx, 7
jbe 0x4456f8
mov edx, dword [ebp - 0x4d0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4456ee
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44571d
push ecx
push edx
call fcn.0045f8a7
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0045f545
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
call fcn.0046b711
call fcn.0046b711
int3