Function at 0x40a67c
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2820
call fcn.0041183e
mov eax, dword [0x42e068]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x2820], eax
mov eax, dword [ebp + 0x14]
push edi
xor edi, edi
mov dword [ebp - 0x281c], eax
push 0x25f8
mov dword [eax], edi
lea eax, [ebp - 0x2810]
push edi
push eax
mov dword [ebp - 0x2818], edi
call fcn.004122e7
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x2808]
mov dword [ebp - 0x2810], 0x25f8
push 0x80
push eax
mov dword [ebp - 0x280c], 0x2f
call fcn.0041657c
add esp, 0x1c
mov dword [ebp - 0x2814], 0x208
lea eax, [ebp - 0x2814]
push eax
lea eax, [ebp - 0x2708]
push eax
push edi
push edi
push str.RelativeCachePath
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
cmp esi, 0x80070002
jne 0x40a749
push 0x208
lea eax, [ebp - 0x2708]
push edi
push eax
call fcn.004122e7
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40aa24
lea eax, [ebp - 0x2814]
mov dword [ebp - 0x2814], 0x1048
push eax
lea eax, [ebp - 0x2500]
push eax
push edi
push edi
push str.RelativeSourcePath
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
cmp esi, 0x80070002
jne 0x40a7a5
push 0x1048
lea eax, [ebp - 0x2500]
push edi
push eax
call fcn.004122e7
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40aa24
lea eax, [ebp - 0x2814]
mov dword [ebp - 0x2814], 4
push eax
lea eax, [ebp - 0x14a8]
push eax
push edi
push edi
push str.Priority
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
cmp esi, 0x80070002
jne 0x40a7f4
xor eax, eax
inc eax
mov dword [ebp - 0x14a8], eax
mov esi, eax
test esi, esi
js 0x40aa24
lea eax, [ebp - 0x2814]
mov dword [ebp - 0x2814], 4
push eax
lea eax, [ebp - 0x14b8]
push eax
push edi
push edi
push str.Signed
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
cmp esi, 0x80070002
jne 0x40a841
xor esi, esi
mov dword [ebp - 0x14b8], edi
inc esi
test esi, esi
js 0x40aa24
lea eax, [ebp - 0x2814]
mov dword [ebp - 0x2814], 4
push eax
lea eax, [ebp - 0x14b4]
push eax
push edi
push edi
push str.HashType
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
cmp esi, 0x80070002
jne 0x40a892
mov eax, edi
xor esi, esi
mov dword [ebp - 0x14b4], eax
inc esi
jmp 0x40a898
mov eax, dword [ebp - 0x14b4]
test esi, esi
js 0x40aa24
cmp eax, 0x8003
je 0x40a8ae
cmp eax, 0x8004
jne 0x40a91a
lea eax, [ebp - 0x2814]
mov dword [ebp - 0x2814], 0x14
push eax
lea eax, [ebp - 0x18]
push eax
push edi
push edi
push str.Hash
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
test esi, esi
jne 0x40a901
or dword [ebp - 0x280c], 0x10
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14ac], eax
mov eax, dword [ebp - 0x2814]
mov dword [ebp - 0x14b0], eax
jmp 0x40a91a
cmp esi, 0x80070002
jne 0x40a912
xor esi, esi
mov dword [ebp - 0x14ac], edi
inc esi
test esi, esi
js 0x40aa24
lea eax, [ebp - 0x2814]
mov dword [ebp - 0x2814], 0x100
push eax
lea eax, [ebp - 0x118]
push eax
push edi
push edi
push str.PreferredSource
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
cmp esi, 0x80070002
jne 0x40a96e
push 0x100
lea eax, [ebp - 0x118]
push edi
push eax
call fcn.004122e7
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40aa24
lea eax, [ebp - 0x2814]
mov dword [ebp - 0x2814], 0x100
push eax
lea eax, [ebp - 0x218]
push eax
push edi
push edi
push str.ContainerResource
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
cmp esi, 0x80070002
jne 0x40a9ca
push 0x100
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.004122e7
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40aa24
lea eax, [ebp - 0x2818]
push eax
push edi
lea eax, [ebp - 0x2810]
push eax
push dword [ebp - 0x2820]
call fcn.0040a605
mov esi, eax
test esi, esi
js 0x40aa24
mov eax, dword [ebp - 0x2818]
lea edx, [ebp - 0x218]
push edx
lea edx, [ebp - 0x118]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x78]
mov esi, eax
test esi, esi
js 0x40aa24
mov ecx, dword [ebp - 0x281c]
mov eax, dword [ebp - 0x2818]
mov dword [ebp - 0x2818], edi
mov dword [ecx], eax
jmp 0x40aa2a
mov edi, dword [ebp - 0x2818]
test edi, edi
je 0x40aa3f
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
add eax, 4
add eax, edi
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00411738
mov esp, ebp
pop ebp
ret 0x10