Function at 0x40a639
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2820
call fcn.0041188c
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.004122f1
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x2808]
mov dword [ebp - 0x2810], 0x25f8
push 0x80
push eax
mov dword [ebp - 0x280c], 0x2f
call fcn.004165bf
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 0x40a706
push 0x208
lea eax, [ebp - 0x2708]
push edi
push eax
call fcn.004122f1
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40a9e1
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 0x40a762
push 0x1048
lea eax, [ebp - 0x2500]
push edi
push eax
call fcn.004122f1
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40a9e1
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 0x40a7b1
xor eax, eax
inc eax
mov dword [ebp - 0x14a8], eax
mov esi, eax
test esi, esi
js 0x40a9e1
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 0x40a7fe
xor esi, esi
mov dword [ebp - 0x14b8], edi
inc esi
test esi, esi
js 0x40a9e1
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 0x40a84f
mov eax, edi
xor esi, esi
mov dword [ebp - 0x14b4], eax
inc esi
jmp 0x40a855
mov eax, dword [ebp - 0x14b4]
test esi, esi
js 0x40a9e1
cmp eax, 0x8003
je 0x40a86b
cmp eax, 0x8004
jne 0x40a8d7
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 0x40a8be
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 0x40a8d7
cmp esi, 0x80070002
jne 0x40a8cf
xor esi, esi
mov dword [ebp - 0x14ac], edi
inc esi
test esi, esi
js 0x40a9e1
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 0x40a92b
push 0x100
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.004122f1
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40a9e1
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 0x40a987
push 0x100
lea eax, [ebp - 0x118]
push edi
push eax
call fcn.004122f1
xor esi, esi
add esp, 0xc
inc esi
test esi, esi
js 0x40a9e1
lea eax, [ebp - 0x2818]
push eax
push edi
lea eax, [ebp - 0x2810]
push eax
push dword [ebp - 0x281c]
call fcn.0040a5c2
mov esi, eax
test esi, esi
js 0x40a9e1
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 0x40a9e1
mov ecx, dword [ebp - 0x2820]
mov eax, dword [ebp - 0x2818]
mov dword [ebp - 0x2818], edi
mov dword [ecx], eax
jmp 0x40a9e7
mov edi, dword [ebp - 0x2818]
test edi, edi
je 0x40a9fc
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.00411786
mov esp, ebp
pop ebp
ret 0x10