Function at 0x40a070
Capabilities:
Query or enumerate registry key
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x40c48f
mov eax, dword fs:[0]
push eax
sub esp, 0x184
mov eax, dword [0x41105c]
xor eax, esp
mov dword [esp + 0x180], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x41105c]
xor eax, esp
push eax
lea eax, [esp + 0x198]
mov dword fs:[0], eax
lea eax, [esp + 0x18]
push eax
push 0x20019
xor ebp, ebp
push ebp
push str.SoftwareMicrosoftNET_Framework_SetupNDP
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x40a0d3
xor al, al
jmp 0x40a3d0
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x1c]
push ebp
push ebp
push ebp
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xa8]
push eax
push ebp
push ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x34], 0x80
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
je 0x40a3b0
jmp 0x40a110
xor edi, edi
cmp word [esp + 0x94], bp
mov ebx, vtable.String.0
mov dword [esp + 0x38], ebx
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], edi
je 0x40a145
lea edi, [esp + 0x94]
lea eax, [esp + 0x38]
call fcn.0040ac90
mov edi, dword [esp + 0x3c]
lea esi, [esp + 0x24]
lea eax, [esp + 0x38]
mov dword [esp + 0x1a0], ebp
call fcn.0040b130
cmp edi, ebp
mov byte [esp + 0x1a0], 2
mov dword [esp + 0x38], ebx
je 0x40a176
push edi
call fcn.00401621
add esp, 4
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x2c]
cmp eax, 2
ja 0x40a1a0
mov dword [esp + 0x1a0], 0xffffffff
mov eax, dword [esp + 0x28]
cmp eax, ebp
mov dword [esp + 0x24], ebx
je 0x40a371
push eax
jmp 0x40a365
mov edi, dword [esp + 0x28]
cmp edi, ebp
je 0x40a351
cmp eax, 3
jb 0x40a351
mov eax, 0x40ec30
mov ecx, edi
sub ecx, eax
mov edi, edi
mov dx, word [eax]
mov si, word [ecx + eax]
add eax, 2
cmp dx, si
jne 0x40a351
cmp word [eax], bp
jne 0x40a1c0
lea esi, [esp + 0x84]
mov eax, 0x4120a0
call fcn.0040b130
push eax
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x1a8], 3
call fcn.00409e00
add esp, 8
test eax, eax
mov byte [esp + 0x1a0], 2
mov eax, dword [esp + 0x88]
setge bl
cmp eax, ebp
mov dword [esp + 0x84], vtable.String.0
je 0x40a232
push eax
call fcn.00401621
add esp, 4
mov dword [esp + 0x88], ebp
test bl, bl
je 0x40a34c
xor edi, edi
cmp word [str.SoftwareMicrosoftNET_Framework_SetupNDP], bp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x48], vtable.String.0
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x4c], edi
je 0x40a26f
mov edi, str.SoftwareMicrosoftNET_Framework_SetupNDP
lea eax, [esp + 0x48]
call fcn.0040ac90
mov edi, dword [esp + 0x4c]
push 0x40ec48
lea esi, [esp + 0x78]
lea eax, [esp + 0x4c]
call fcn.0040af60
lea ecx, [esp + 0x94]
push ecx
lea esi, [esp + 0x68]
call fcn.0040af60
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x40a29e
mov eax, 0x40eb08
lea edx, [esp + 0x34]
push edx
push 0x20019
push ebp
push eax
push 0x80000002
mov dword [esp + 0x6c], 4
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x40a2c5
xor bl, bl
jmp 0x40a2f1
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x24]
push ecx
push ebp
push ebp
push str.Install
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
mov eax, dword [esp + 0x34]
push eax
sete bl
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x68]
cmp eax, ebp
mov esi, vtable.String.0
mov dword [esp + 0x64], esi
je 0x40a30f
push eax
call fcn.00401621
add esp, 4
mov dword [esp + 0x68], ebp
mov eax, dword [esp + 0x78]
cmp eax, ebp
mov dword [esp + 0x74], esi
je 0x40a328
push eax
call fcn.00401621
add esp, 4
mov dword [esp + 0x78], ebp
cmp edi, ebp
mov dword [esp + 0x48], esi
je 0x40a33d
push edi
call fcn.00401621
add esp, 4
mov dword [esp + 0x4c], ebp
test bl, bl
je 0x40a348
cmp dword [esp + 0x20], 1
je 0x40a3b4
mov edi, dword [esp + 0x28]
mov ebx, vtable.String.0
cmp edi, ebp
mov dword [esp + 0x1a0], 0xffffffff
mov dword [esp + 0x24], ebx
je 0x40a371
push edi
call fcn.00401621
mov dword [esp + 0x2c], ebp
add esp, 4
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x5c]
push ecx
push ebp
push ebp
push ebp
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xa8]
add eax, 1
push ecx
push eax
push edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], 0x80
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
jne 0x40a110
xor bl, bl
jmp 0x40a3c3
mov eax, dword [esp + 0x28]
push eax
mov bl, 1
call fcn.00401621
add esp, 4
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, bl
mov ecx, dword [esp + 0x198]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x180]
xor ecx, esp
call fcn.0040129b
add esp, 0x190
ret