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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x83c
mov eax, dword [0x427014]
xor eax, esp
mov dword [esp + 0x838], eax
push ebx
push esi
mov dword [esp + 0x1c], edx
lea edx, [esp + 0x62c]
push edi
call fcn.00404178
test eax, eax
jne 0x404548
xor eax, eax
jmp 0x40477d
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [esp + 0x14]
push eax
push 0x20119
xor esi, esi
lea eax, [esp + 0x638]
push esi
push eax
push 0x80000002
call ebx
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x4045d8
push eax
push str.Could_not_open_key.____d_
call fcn.00401034
push eax
call fcn.004049ba
add esp, 0xc
lea eax, [esp + 0x14]
push eax
push 0x20119
push esi
push str.SOFTWAREMozillaMaintenanceService3932ecacee736d366d6436db0f55bce4
push 0x80000002
call ebx
test eax, eax
je 0x4045b9
push eax
push str.Could_not_open_fallback_key.____d_
call fcn.00401034
push eax
call fcn.004049ba
add esp, 0xc
jmp 0x404541
cmp dword [ebp + 8], esi
je 0x4045d8
push str.Fallback_key_present__skipping_VerifyCertificateTrustForFile_check_and_the_certificate_attribute_registry_matching_check.
call fcn.00401034
push eax
call fcn.004049ba
pop ecx
pop ecx
xor esi, esi
inc esi
jmp 0x404775
push esi
push esi
push esi
push esi
push esi
push esi
push esi
lea eax, [esp + 0x38]
mov dword [esp + 0x38], esi
push eax
push esi
push esi
push esi
push dword [esp + 0x40]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
je 0x404604
push eax
push str.Could_not_query_info_key.____d_
jmp 0x404767
mov ebx, esi
cmp dword [esp + 0x1c], ebx
jbe 0x404775
push esi
push esi
push esi
push esi
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0xff
push eax
lea eax, [esp + 0x444]
push eax
push ebx
push dword [esp + 0x30]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x404761
lea eax, [esp + 0x10]
push eax
push 0x20119
push esi
lea eax, [esp + 0x43c]
push eax
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x404676
push eax
push str.Could_not_open_subkey.____d_
call fcn.00401034
push eax
call fcn.004049ba
add esp, 0xc
jmp 0x404754
mov eax, 0x200
push eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x34]
push esi
push eax
call fcn.00406850
add esp, 0xc
lea eax, [esp + 0x230]
push 0x200
push esi
push eax
call fcn.00406850
add esp, 0xc
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x34]
push eax
push esi
push esi
push str.name
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x4046cb
push eax
push str.Could_not_obtain_name_from_registry.____d_
jmp 0x404740
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x200
push eax
lea eax, [esp + 0x234]
push eax
push esi
push esi
push str.issuer
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x4046fd
push eax
push str.Could_not_obtain_issuer_from_registry.____d_
jmp 0x404740
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x30]
mov dword [esp + 0x28], eax
lea edx, [esp + 0x28]
lea eax, [esp + 0x230]
mov dword [esp + 0x2c], eax
call fcn.00403c7d
test eax, eax
je 0x404729
push eax
push str.Error_on_certificate_check.____d_
jmp 0x404740
mov ecx, dword [esp + 0x20]
call fcn.00403fa1
test eax, eax
je 0x4045d0
push eax
push str.Error_on_certificate_trust_check.____d_
call fcn.00401034
push eax
call fcn.004049ba
add esp, 0xc
push dword [esp + 0x10]
call edi
inc ebx
cmp ebx, dword [esp + 0x1c]
jb 0x404610
jmp 0x404775
push eax
push str.Could_not_enum_certs.____d_
call fcn.00401034
push eax
call fcn.004049ba
add esp, 0xc
push dword [esp + 0x14]
call edi
mov eax, esi
mov ecx, dword [esp + 0x844]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004053c9
mov esp, ebp
pop ebp
ret