Function at 0x4447b0
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 0x48367c
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4c0
mov eax, dword [0x4a1500]
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 0x444ed5
push 0x200
push eax
lea eax, [ebp - 0x418]
mov dword [ebp - 0x49c], esi
push eax
call fcn.00454a10
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 0x444ec4
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 0x444ded
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 0x444dcf
lea eax, [ebp - 0x218]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x444901
sub eax, edx
sar eax, 1
cmp eax, 0xc
jb 0x444dcf
mov esi, 0xc
xor edx, edx
movzx ecx, word [ebp + edx - 0x218]
movzx eax, word [edx + 0x48fb6c]
cmp cx, ax
jne 0x444dcf
add edx, 2
sub esi, 1
jne 0x444920
push esi
xorps xmm0, xmm0
mov dword [ebp - method.InstalledProducts::InstalledProduct.virtual_0], vtable.InstalledProducts::InstalledProduct.0
push 0x48f90c
lea ecx, [ebp - 0x484]
mov dword [ebp - 0x474], esi
movups xmmword [ebp - 0x484], xmm0
mov dword [ebp - 0x470], esi
call fcn.0040c310
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x46c]
push esi
xorps xmm0, xmm0
mov dword [ebp - 0x45c], esi
push 0x48f90c
movups xmmword [ebp - 0x46c], xmm0
mov dword [ebp - 0x458], esi
call fcn.0040c310
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x454]
push esi
xorps xmm0, xmm0
mov dword [ebp - 0x444], esi
push 0x48f90c
movups xmmword [ebp - 0x454], xmm0
mov dword [ebp - 0x440], esi
call fcn.0040c310
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 0x444a00
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x46c]
call fcn.0040ef00
lea ecx, [ebp - 0x418]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x444a30
sub ecx, edx
lea eax, [ebp - 0x418]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x484]
call fcn.0040ef00
mov al, byte [ebp - 0x495]
lea ecx, [ebp - 0x4b4]
mov byte [ebp - 0x424], al
call fcn.00441c80
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 7
mov ecx, dword [eax + 0x10]
jbe 0x444a78
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4a4ad0
call fcn.0040ab60
add esp, 4
mov edx, str.D:JenkinsworkspaceN_SUCommon_VS2022_srcSUCommonInstalledProducts.cpp
mov ecx, eax
call fcn.004097d0
mov edx, 0x48f0d4
mov ecx, eax
call fcn.004097d0
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.004097d0
lea edx, [ebp - 0x218]
mov ecx, eax
call fcn.0040ec10
mov edx, str._installed_as
mov ecx, eax
call fcn.004097d0
lea edx, [ebp - 0x418]
mov ecx, eax
call fcn.0040ec10
mov edx, esi
mov ecx, eax
call fcn.004097d0
push eax
call fcn.00409b50
mov byte [ebp - 4], 2
add esp, 4
mov ecx, dword [ebp - 0x4a0]
cmp ecx, 7
jbe 0x444b45
mov edx, dword [ebp - 0x4b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x444b3b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x444fa8
push ecx
push edx
call fcn.00452718
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 0x444bb2
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x444b90
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x454]
call fcn.0040ef00
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 0x444c4a
mov eax, dword [ebp - 0x48c]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00452961
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 0x444c41
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x444c25
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x43c]
call fcn.0040ef00
push esi
call fcn.00452953
add esp, 4
lea ecx, [ebp - 0x4b4]
call fcn.00441c80
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 7
mov ecx, dword [eax + 0x10]
jbe 0x444c64
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4a4ad0
call fcn.0040ab60
add esp, 4
mov edx, str.D:JenkinsworkspaceN_SUCommon_VS2022_srcSUCommonInstalledProducts.cpp
mov ecx, eax
call fcn.004097d0
mov edx, 0x48f0d4
mov ecx, eax
call fcn.004097d0
push 0x49
mov ecx, eax
call fcn.00407bb0
mov edx, str.:_DisplayVersion
mov ecx, eax
call fcn.004097d0
cmp dword [ebp - 0x440], 7
lea edx, [ebp - 0x454]
push dword [ebp - 0x444]
cmova edx, dword [ebp - 0x454]
mov ecx, eax
call fcn.0040ab60
add esp, 4
mov edx, str.__InstallLocation
mov ecx, eax
call fcn.004097d0
cmp dword [ebp - 0x428], 7
lea edx, [ebp - 0x43c]
push dword [ebp - 0x42c]
cmova edx, dword [ebp - 0x43c]
mov ecx, eax
call fcn.0040ab60
add esp, 4
push eax
call fcn.00409b50
mov byte [ebp - 4], 2
add esp, 4
mov ecx, dword [ebp - 0x4a0]
cmp ecx, 7
jbe 0x444d42
mov edx, dword [ebp - 0x4b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x444d38
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x444fa8
push ecx
push edx
call fcn.00452718
add esp, 8
mov esi, dword [edi + 8]
lea ecx, [edi + 4]
cmp esi, dword [edi + 0xc]
je 0x444db0
lea eax, [ebp - 0x484]
mov dword [ebp - 0x4b8], esi
lea ecx, [esi + 4]
mov dword [esi], vtable.InstalledProducts::InstalledProduct.0
push eax
call fcn.00429e20
lea eax, [ebp - 0x46c]
mov byte [ebp - 4], 5
lea ecx, [esi + 0x1c]
push eax
call fcn.00429e20
lea eax, [ebp - 0x454]
mov byte [ebp - 4], 6
lea ecx, [esi + 0x34]
push eax
call fcn.00429e20
lea eax, [ebp - 0x43c]
mov byte [ebp - 4], 7
lea ecx, [esi + 0x4c]
push eax
call fcn.00429e20
mov al, byte [ebp - 0x424]
mov byte [esi + 0x64], al
add dword [edi + 8], 0x68
jmp 0x444dbd
lea eax, [ebp - 0x488]
push eax
push esi
call fcn.00446ba0
lea ecx, [ebp - 0x488]
mov dword [ebp - 4], 0xffffffff
call fcn.00444600
push dword [ebp - 0x490]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [ebp - 0x49c]
inc esi
mov dword [ebp - 0x49c], esi
jmp 0x444851
lea ecx, [ebp - 0x4b4]
call fcn.00441c80
mov dword [ebp - 4], 8
cmp dword [eax + 0x14], 7
mov edi, dword [eax + 0x10]
jbe 0x444e0a
mov eax, dword [eax]
push edi
mov edx, eax
mov ecx, 0x4a4ad0
call fcn.0040ab60
add esp, 4
mov edx, str.D:JenkinsworkspaceN_SUCommon_VS2022_srcSUCommonInstalledProducts.cpp
mov ecx, eax
call fcn.004097d0
mov edx, 0x48f0d4
mov ecx, eax
call fcn.004097d0
push 0x50
mov ecx, eax
call fcn.00407bb0
mov edx, str.:_Error_opening_uninstall_key__
mov ecx, eax
call fcn.004097d0
lea edx, [ebp - 0x418]
mov ecx, eax
call fcn.0040ec10
mov edx, 0x4949e8
mov ecx, eax
call fcn.004097d0
push esi
mov ecx, eax
call fcn.004079f0
mov edx, 0x4949e4
mov ecx, eax
call fcn.004097d0
push eax
call fcn.00409b50
mov dword [ebp - 4], 0xffffffff
add esp, 4
mov ecx, dword [ebp - 0x4a0]
cmp ecx, 7
jbe 0x444ec4
mov edx, dword [ebp - 0x4b4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x444eba
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x444fa8
push ecx
push edx
call fcn.00452718
add esp, 8
push dword [ebp - 0x494]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x444f88
lea ecx, [ebp - 0x4d0]
call fcn.00441c80
mov dword [ebp - 4], 9
cmp dword [eax + 0x14], 7
mov ecx, dword [eax + 0x10]
jbe 0x444ef2
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4a4ad0
call fcn.0040ab60
add esp, 4
mov edx, str.D:JenkinsworkspaceN_SUCommon_VS2022_srcSUCommonInstalledProducts.cpp
mov ecx, eax
call fcn.004097d0
mov edx, 0x48f0d4
mov ecx, eax
call fcn.004097d0
push 0x58
mov ecx, eax
call fcn.00407bb0
mov edx, str.:_Error_opening_root_uninstall_key__
mov ecx, eax
call fcn.004097d0
push esi
mov ecx, eax
call fcn.004079f0
mov edx, 0x4949e4
mov ecx, eax
call fcn.004097d0
push eax
call fcn.00409b50
mov ecx, dword [ebp - 0x4bc]
add esp, 4
cmp ecx, 7
jbe 0x444f88
mov edx, dword [ebp - 0x4d0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x444f7e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x444fad
push ecx
push edx
call fcn.00452718
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.004523b6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
call fcn.0045e581
call fcn.0045e581
int3