Function at 0x40a689
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2820
call fcn.00411ac9
mov eax, dword [0x42e070]
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 - 0x281c], eax
mov eax, dword [ebp + 0x14]
push edi
xor edi, edi
mov dword [ebp - 0x2820], eax
push 0x25f8
mov dword [eax], edi
lea eax, [ebp - 0x2810]
push edi
push eax
mov dword [ebp - 0x2818], edi
call fcn.0041259b
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x2808]
mov dword [ebp - 0x2810], 0x25f8
push 0x80
push eax
mov dword [ebp - 0x280c], 0x2f
call fcn.00416833
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 0x40a756
push 0x208
lea eax, [ebp - 0x2708]
push edi
push eax
call fcn.0041259b
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40aa31
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 0x40a7b2
push 0x1048
lea eax, [ebp - 0x2500]
push edi
push eax
call fcn.0041259b
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40aa31
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 0x40a801
xor eax, eax
inc eax
mov dword [ebp - 0x14a8], eax
mov esi, eax
test esi, esi
js 0x40aa31
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 0x40a84e
xor esi, esi
mov dword [ebp - 0x14b8], edi
inc esi
test esi, esi
js 0x40aa31
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 0x40a89f
mov eax, edi
xor esi, esi
mov dword [ebp - 0x14b4], eax
inc esi
jmp 0x40a8a5
mov eax, dword [ebp - 0x14b4]
test esi, esi
js 0x40aa31
cmp eax, 0x8003
je 0x40a8bb
cmp eax, 0x8004
jne 0x40a927
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 0x40a90e
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 0x40a927
cmp esi, 0x80070002
jne 0x40a91f
xor esi, esi
mov dword [ebp - 0x14ac], edi
inc esi
test esi, esi
js 0x40aa31
lea eax, [ebp - 0x2814]
mov dword [ebp - 0x2814], 0x100
push eax
lea eax, [ebp - 0x218]
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 0x40a97b
push 0x100
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.0041259b
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40aa31
lea eax, [ebp - 0x2814]
mov dword [ebp - 0x2814], 0x100
push eax
lea eax, [ebp - 0x118]
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 0x40a9d7
push 0x100
lea eax, [ebp - 0x118]
push edi
push eax
call fcn.0041259b
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40aa31
lea eax, [ebp - 0x2818]
push eax
push edi
lea eax, [ebp - 0x2810]
push eax
push dword [ebp - 0x281c]
call fcn.0040a612
mov esi, eax
test esi, esi
js 0x40aa31
mov eax, dword [ebp - 0x2818]
lea edx, [ebp - 0x118]
push edx
lea edx, [ebp - 0x218]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x78]
mov esi, eax
test esi, esi
js 0x40aa31
mov ecx, dword [ebp - 0x2820]
mov eax, dword [ebp - 0x2818]
mov dword [ebp - 0x2818], edi
mov dword [ecx], eax
jmp 0x40aa37
mov edi, dword [ebp - 0x2818]
test edi, edi
je 0x40aa4c
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.004119c3
mov esp, ebp
pop ebp
ret 0x10