Function at 0x405aad
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xc4
mov eax, 0x41afa6
call fcn.00407a16
mov edi, ecx
mov dword [ebp - 0xc0], edi
xor ebx, ebx
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xcc], ebx
mov edx, 0x101
mov dword [ebp - 4], 2
lea ecx, [ebp + 8]
call fcn.00406cd3
cmp dword [ebp + 0x34], 7
lea ecx, [ebp - 0xbc]
push ecx
push ebx
mov esi, eax
lea ecx, [ebp - 0xc4]
push ecx
lea eax, [ebp + 0x20]
mov dword [ebp - 0xc0], esi
cmova eax, dword [ebp + 0x20]
push ebx
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, eax
test ebx, ebx
jne 0x405cb0
cmp dword [ebp - 0xc4], 3
je 0x405b85
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp + 8]
mov edx, str.Registry_value
push eax
lea ecx, [ebp - 0x88]
call fcn.00404b37
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x70]
mov edx, eax
mov dword [esp], 0x423bbc
call fcn.00401cbf
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0xa
push ecx
mov edx, eax
lea ecx, [ebp - 0x58]
call fcn.00401d59
push str._has_wrong_type
mov edx, eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x40]
call fcn.00401cbf
add esp, 0xc
mov byte [ebp - 4], 0xc
jmp 0x405d31
mov ebx, dword [ebp - 0xbc]
xor eax, eax
mov dword [edi], eax
mov ecx, eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
test ebx, ebx
je 0x405be3
cmp ebx, 0x7fffffff
ja 0x405d48
push ebx
call fcn.0040217b
mov esi, eax
push ebx
push 0
mov dword [edi], esi
lea eax, [ebx + esi]
push esi
mov dword [edi + 8], eax
call fcn.00408df0
and dword [ebp - 0xc8], 0
lea eax, [esi + ebx]
add esp, 0x10
mov dword [edi + 4], eax
lea ecx, [ebp - 0xc8]
call fcn.00406faa
mov ecx, dword [edi]
mov esi, dword [ebp - 0xc0]
cmp dword [ebp + 0x34], 7
lea edx, [ebp - 0xbc]
push edx
push ecx
push 0
lea eax, [ebp + 0x20]
mov dword [ebp - 0xcc], 1
cmova eax, dword [ebp + 0x20]
push 0
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push esi
mov ebx, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
je 0x405c98
mov edx, ebx
lea ecx, [ebp - 0x88]
call fcn.004071df
mov esi, eax
lea eax, [ebp + 8]
mov byte [ebp - 4], 0xd
push eax
mov edx, 0x423bc0
lea ecx, [ebp - 0x70]
call fcn.00404b37
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x58]
mov edx, eax
mov dword [esp], 0x423bbc
call fcn.00401cbf
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0xf
push ecx
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.00401d59
push 0x423bb4
mov edx, eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0xb8]
call fcn.00401cbf
push esi
mov edx, eax
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xa0]
call fcn.00406f8e
add esp, 0x10
mov byte [ebp - 4], 0x12
jmp 0x405d31
lea ecx, [ebp + 8]
call fcn.00401c2d
lea ecx, [ebp + 0x20]
call fcn.00401c2d
mov eax, edi
call fcn.004079c5
ret
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, ebx
lea ecx, [ebp - 0xa0]
call fcn.004071df
mov esi, eax
lea eax, [ebp + 8]
mov byte [ebp - 4], 3
push eax
mov edx, 0x423bc0
lea ecx, [ebp - 0xb8]
call fcn.00404b37
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
mov edx, eax
mov dword [esp], 0x423bbc
call fcn.00401cbf
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 5
push ecx
mov edx, eax
lea ecx, [ebp - 0x58]
call fcn.00401d59
push 0x423bb4
mov edx, eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x70]
call fcn.00401cbf
push esi
mov edx, eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x88]
call fcn.00406f8e
add esp, 0x10
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x28]
call fcn.00405223
push 0x4266b0
lea eax, [ebp - 0x28]
push eax
call fcn.004087f5
call fcn.00404c63
int3