Function at 0x407a28
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x6220
call fcn.0040ba90
mov dword [ebp - 8], edi
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], ebx
mov esi, 0x43bc00
mov ecx, 0x1000
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x6220]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x5120]
mov esi, 0x43cd00
mov ecx, 0x1000
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x4020]
mov esi, 0x43de00
mov ecx, 0x1000
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x2f20]
mov esi, 0x43ef00
mov ecx, 0x1000
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x1e20]
mov esi, 0x440000
mov ecx, 0x1000
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xd20]
mov esi, 0x441100
mov ecx, 0x100
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0xc20], 0x80
lea edi, [ebp - 0xc1c]
mov esi, 0x441200
mov ecx, 0xc00
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x1c], 0xc00
lea eax, [ebp - 0x14]
xor edx, edx
xor esi, esi
mov dword [ebp - 0x18], edx
push eax
mov dword [ebp - 0x14], edx
xor ebx, ebx
push 0x20019
push edx
push dword [ebp + 8]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x408255
lea edi, [ebp - 0xc20]
lea ecx, [ebp - 0x18]
lea edx, [ebp - 0xc1c]
lea eax, [ebp - 0x1c]
push eax
push edx
push ecx
push 0
push edi
lea eax, [ebp - 0xd20]
push eax
push esi
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x407f20
mov eax, dword [ebp - 0x1c]
cmp eax, 2
jbe 0x407f07
mov eax, dword [ebp - 0x18]
cmp eax, 1
jne 0x407f07
lea eax, [ebp - 0xc1c]
push eax
call fcn.00401950
pop ecx
lea eax, [ebp - 0xc1c]
push eax
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
test eax, eax
je 0x407f07
push 0x4440dc
lea eax, [ebp - 0xc1c]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
je 0x407f07
push str.DisplayName
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407c24
lea edx, [ebp - 0x6220]
lea eax, [ebp - 0xc1c]
push 0x800
mov ebx, 1
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0xc
xor eax, eax
mov word [ebp - 0x5222], ax
jmp 0x407f07
push str.QuietDisplayName
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407c6c
lea edx, [ebp - 0x6220]
lea eax, [ebp - 0xc1c]
push 0x800
mov ebx, 1
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0xc
xor eax, eax
mov word [ebp - 0x5222], ax
jmp 0x407f07
push str.DisplayVersion
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407caf
lea edx, [ebp - 0x4020]
lea eax, [ebp - 0xc1c]
push 0x800
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0xc
xor eax, eax
mov word [ebp - 0x3022], ax
jmp 0x407f07
push str.Publisher
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407cf2
lea edx, [ebp - 0x2f20]
lea eax, [ebp - 0xc1c]
push 0x800
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0xc
xor eax, eax
mov word [ebp - 0x1f22], ax
jmp 0x407f07
push str.InstallDate
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407d35
lea edx, [ebp - 0x1e20]
lea eax, [ebp - 0xc1c]
push 0x800
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0xc
xor eax, eax
mov word [ebp - 0xe22], ax
jmp 0x407f07
push str.InstallLocation
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
je 0x407ee2
lea eax, [ebp - 0x5120]
push eax
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
test eax, eax
je 0x407d81
push 0x4440dc
lea eax, [ebp - 0x5120]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407f07
push str.InstallPath
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407dc4
lea edx, [ebp - 0x5120]
lea eax, [ebp - 0xc1c]
push 0x800
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0xc
xor eax, eax
mov word [ebp - 0x4122], ax
jmp 0x407f07
push str.UninstallString
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407e0d
lea eax, [ebp - 0xc1c]
push eax
call fcn.00401484
lea edx, [ebp - 0x5120]
push 0x800
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0x10
xor eax, eax
mov word [ebp - 0x4122], ax
jmp 0x407f07
push str.QuietUninstallString
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407e56
lea eax, [ebp - 0xc1c]
push eax
call fcn.00401484
lea edx, [ebp - 0x5120]
push 0x800
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0x10
xor eax, eax
mov word [ebp - 0x4122], ax
jmp 0x407f07
push str.DisplayIcon
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407e9c
lea eax, [ebp - 0xc1c]
push eax
call fcn.00401484
lea edx, [ebp - 0x5120]
push 0x800
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0x10
xor eax, eax
mov word [ebp - 0x4122], ax
jmp 0x407f07
push str.Readme
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407f07
lea eax, [ebp - 0xc1c]
push eax
call fcn.00401484
lea edx, [ebp - 0x5120]
push 0x800
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0x10
xor eax, eax
mov word [ebp - 0x4122], ax
jmp 0x407f07
lea edx, [ebp - 0x5120]
lea eax, [ebp - 0xc1c]
push 0x800
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0xc
xor eax, eax
mov word [ebp - 0x4122], ax
mov dword [ebp - 0xc20], 0x80
add esi, 1
mov dword [ebp - 0x1c], 0xc00
jmp 0x407b53
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
je 0x408255
lea eax, [ebp - 0x6220]
push eax
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
test eax, eax
je 0x408255
push 0x4440dc
lea eax, [ebp - 0x6220]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
je 0x408255
lea eax, [ebp - 0x1e20]
push eax
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
test eax, eax
je 0x407f8f
push 0x4440dc
lea eax, [ebp - 0x1e20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x407fd9
lea eax, [ebp - 0x5120]
push eax
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
test eax, eax
je 0x407fd9
push 0x4440dc
lea eax, [ebp - 0x5120]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
test eax, eax
je 0x407fd9
lea eax, [ebp - 0x5120]
push 1
push eax
call fcn.00402764
lea edx, [ebp - 0x1e20]
push eax
push edx
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 0x10
lea eax, [ebp - 0x2f20]
push eax
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
test eax, eax
je 0x408000
push 0x4440dc
lea eax, [ebp - 0x2f20]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
lea eax, [ebp - 0x4020]
push eax
call dword [sym.imp.MSVCR71.dll_wcslen]
pop ecx
test eax, eax
je 0x408027
push 0x4440dc
lea eax, [ebp - 0x4020]
push eax
call dword [sym.imp.MSVCR71.dll_wcscmp]
add esp, 8
mov eax, dword [0x44c3a8]
test eax, eax
je 0x40803b
push str.Vendor_Software
call fcn.00402db0
pop ecx
mov edx, dword [0x44e880]
test edx, edx
je 0x40804c
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x408069
test edx, edx
je 0x408057
mov eax, str.ROWSET_TABLE_MGMT_ECM_OS_REGISTERED_SW__DATECOLUMNS_INSTALLATION_DATE__CONFIG_TRUE_
jmp 0x40805c
mov eax, str.VENDOR_SOFTWARE
push eax
call fcn.00402e10
pop ecx
mov edx, dword [0x44e880]
test edx, edx
je 0x408074
mov eax, 0x4434c0
jmp 0x408079
mov eax, str.SUBCOMPONENT
push eax
call fcn.00402e10
pop ecx
mov eax, dword [0x44c3a8]
test eax, eax
je 0x408094
push str.Vendor_Software_Summary
call fcn.00402db0
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x4080a4
mov eax, 0x4434c0
jmp 0x4080a9
mov eax, str.VENDOR_SOFTWARE_SUMMARY
push eax
call fcn.00402e10
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x4080c0
mov eax, 0x444940
jmp 0x4080c5
mov eax, 0x4434c0
push eax
call fcn.00402e10
lea eax, [ebp - 0x6220]
push eax
call fcn.00401a9c
add esp, 8
mov edx, dword [0x44e880]
test edx, edx
je 0x4080eb
mov edx, str.NAME
jmp 0x4080f0
mov edx, str.VENDOR_SOFTWARE_NAME
push 0x80
push eax
push edx
call fcn.00402e68
lea eax, [ebp - 0x2f20]
push 0x80
push eax
push str.VENDOR_NAME
call fcn.00402e68
add esp, 0x18
mov eax, dword [0x44e880]
test eax, eax
je 0x408125
mov edx, str.VERSION
jmp 0x40812a
mov edx, str.VENDOR_SOFTWARE_VERSION
lea eax, [ebp - 0x4020]
push 0x64
push eax
push edx
call fcn.00402e68
lea eax, [ebp - 0x1e20]
push eax
call fcn.00402308
add esp, 0x10
mov edx, dword [0x44e880]
test edx, edx
je 0x408159
mov edx, str.INSTALLATION_DATE
jmp 0x40815e
mov edx, str.VENDOR_SOFTWARE_INSTALLATION_DATE
push 0x30
push eax
push edx
call fcn.00402e68
add esp, 0xc
mov eax, dword [0x44e880]
test eax, eax
je 0x40817a
mov edx, str.INSTALLED_LOCATION
jmp 0x40817f
mov edx, str.VENDOR_SOFTWARE_LOCATION
lea eax, [ebp - 0x5120]
push 0x400
push eax
push edx
call fcn.00402e68
add esp, 0xc
mov eax, dword [0x44e880]
test eax, eax
je 0x4081a4
mov eax, str.DESCRIPTION
jmp 0x4081a9
mov eax, str.VENDOR_SOFTWARE_DESCRIPTION
push 0x7d0
push 0
push eax
call fcn.00402e68
add esp, 0xc
mov eax, dword [0x44e880]
test eax, eax
je 0x4081c9
mov eax, str.VENDOR_SW_SPECIFIC_INFO
jmp 0x4081ce
mov eax, str.VENDOR_SOFTWARE_SPECIFIC_INFORMATION
push 0xfa0
push 0
push eax
call fcn.00402e68
add esp, 0xc
mov eax, dword [0x44e880]
test eax, eax
je 0x4081ee
mov eax, 0x444940
jmp 0x4081f3
mov eax, 0x4434c0
push eax
call fcn.0040322c
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x40820a
mov eax, 0x4434c0
jmp 0x40820f
mov eax, str.VENDOR_SOFTWARE_SUMMARY
push eax
call fcn.0040322c
pop ecx
mov eax, dword [0x44e880]
test eax, eax
je 0x408226
mov eax, 0x4434c0
jmp 0x40822b
mov eax, str.SUBCOMPONENT
push eax
call fcn.0040322c
pop ecx
mov eax, dword [0x44e880]
test eax, eax
jne 0x408250
je 0x408244
mov eax, str.ROWSET_TABLE_MGMT_ECM_OS_REGISTERED_SW__DATECOLUMNS_INSTALLATION_DATE__CONFIG_TRUE_
jmp 0x408249
mov eax, str.VENDOR_SOFTWARE
push eax
call fcn.0040322c
pop ecx
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret