Function at 0x4053e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [0x65816c], 0
lea eax, [ebp - 4]
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push esi
push edi
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftNET_Framework_SetupNDP_v4Full
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x40553b
lea eax, [ebp - 8]
mov dword [ebp - 8], 4
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push str.Install
push dword [ebp - 4]
call esi
test eax, eax
jne 0x405536
cmp dword [ebp - 0xc], 1
jne 0x405536
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x14]
push eax
push 0
push 0
push str.Release
push dword [ebp - 4]
call esi
test eax, eax
jne 0x4054d6
cmp dword [ebp - 0x14], 0x5c615
jne 0x4054d6
mov ecx, 0x658068
mov esi, str..net_Framework_4.5_Full
mov edx, 0x80
sub esi, ecx
nop word [eax + eax]
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x4054ae
movzx eax, word [esi + ecx]
test ax, ax
je 0x4054ae
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405490
test edx, edx
lea eax, [ecx - 2]
pop edi
cmovne eax, ecx
xor ecx, ecx
pop esi
pop ebx
mov word [eax], cx
mov dword [0x658168], 0x2d
mov dword [0x65816c], 1
mov esp, ebp
pop ebp
ret
mov ecx, 0x658068
mov esi, str..net_Framework_4.0_Full
mov edx, 0x80
sub esi, ecx
nop word [eax + eax]
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x40550e
movzx eax, word [esi + ecx]
test ax, ax
je 0x40550e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4054f0
test edx, edx
lea eax, [ecx - 2]
pop edi
cmovne eax, ecx
xor ecx, ecx
pop esi
pop ebx
mov word [eax], cx
mov dword [0x658168], 0x28
mov dword [0x65816c], 1
mov esp, ebp
pop ebp
ret
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftNET_Framework_SetupNDP_v4Client
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
test eax, eax
jne 0x405651
lea eax, [ebp - 8]
mov dword [ebp - 8], 4
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push str.Install
push dword [ebp - 4]
call esi
test eax, eax
jne 0x40564c
cmp dword [ebp - 0xc], 1
jne 0x40564c
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x14]
push eax
push 0
push 0
push str.Release
push dword [ebp - 4]
call esi
test eax, eax
jne 0x4055fc
cmp dword [ebp - 0x14], 0x5c615
jne 0x4055fc
mov ecx, 0x658068
mov esi, str..net_Framework_4.5_Client_Profile
mov edx, 0x80
sub esi, ecx
nop dword [eax]
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x4055de
movzx eax, word [esi + ecx]
test ax, ax
je 0x4055de
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4055c0
test edx, edx
lea eax, [ecx - 2]
pop edi
cmovne eax, ecx
xor ecx, ecx
pop esi
pop ebx
mov word [eax], cx
mov dword [0x658168], 0x2d
mov esp, ebp
pop ebp
ret
mov ecx, 0x658068
mov esi, str..net_Framework_4.0_Client_Profile
mov edx, 0x80
sub esi, ecx
nop dword [eax]
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x40562e
movzx eax, word [esi + ecx]
test ax, ax
je 0x40562e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405610
test edx, edx
lea eax, [ecx - 2]
pop edi
cmovne eax, ecx
xor ecx, ecx
pop esi
pop ebx
mov word [eax], cx
mov dword [0x658168], 0x28
mov esp, ebp
pop ebp
ret
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftNET_Framework_SetupNDP_v3.5
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
test eax, eax
jne 0x405742
lea eax, [ebp - 8]
mov dword [ebp - 8], 4
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push str.Install
push dword [ebp - 4]
call esi
test eax, eax
jne 0x40573d
cmp dword [ebp - 0xc], 1
jne 0x40573d
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push 0
push 0x424128
push dword [ebp - 4]
call esi
test eax, eax
jne 0x4056f0
cmp dword [ebp - 0x10], 1
jne 0x4056f0
mov ecx, 0x658068
mov esi, str..net_Framework_3.5_Service_Pack_1
mov edx, 0x80
sub esi, ecx
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x40571f
movzx eax, word [esi + ecx]
test ax, ax
je 0x40571f
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4056d0
jmp 0x40571f
mov ecx, 0x658068
mov esi, str..net_Framework_3.5
mov edx, 0x80
sub esi, ecx
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x40571f
movzx eax, word [esi + ecx]
test ax, ax
je 0x40571f
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405701
test edx, edx
lea eax, [ecx - 2]
pop edi
cmovne eax, ecx
xor ecx, ecx
pop esi
pop ebx
mov word [eax], cx
mov dword [0x658168], 0x23
mov esp, ebp
pop ebp
ret
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftNET_Framework_SetupNDP_v3.0
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
test eax, eax
jne 0x405873
lea eax, [ebp - 8]
mov dword [ebp - 8], 4
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push str.Install
push dword [ebp - 4]
call esi
test eax, eax
jne 0x40586e
cmp dword [ebp - 0xc], 1
jne 0x40586e
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push 0
push 0x424128
push dword [ebp - 4]
call esi
test eax, eax
jne 0x405821
mov eax, dword [ebp - 0x10]
cmp eax, 2
je 0x4057f0
cmp eax, 1
jne 0x405821
mov ecx, 0x658068
mov esi, str..net_Framework_3.0_Service_Pack_1
mov edx, 0x80
sub esi, ecx
nop dword [eax + eax]
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x405850
movzx eax, word [esi + ecx]
test ax, ax
je 0x405850
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4057d0
jmp 0x405850
mov ecx, 0x658068
mov esi, str..net_Framework_3.0_Service_Pack_2
mov edx, 0x80
sub esi, ecx
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x405850
movzx eax, word [esi + ecx]
test ax, ax
je 0x405850
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405801
jmp 0x405850
mov ecx, 0x658068
mov esi, str..net_Framework_3.0
mov edx, 0x80
sub esi, ecx
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x405850
movzx eax, word [ecx + esi]
test ax, ax
je 0x405850
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405832
test edx, edx
lea eax, [ecx - 2]
pop edi
cmovne eax, ecx
xor ecx, ecx
pop esi
pop ebx
mov word [eax], cx
mov dword [0x658168], 0x1e
mov esp, ebp
pop ebp
ret
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftNET_Framework_SetupNDP_v2.0.50727
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
test eax, eax
jne 0x4059a3
lea eax, [ebp - 8]
mov dword [ebp - 8], 4
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push str.Install
push dword [ebp - 4]
call esi
test eax, eax
jne 0x40599e
cmp dword [ebp - 0xc], 1
jne 0x40599e
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push 0
push 0x424128
push dword [ebp - 4]
call esi
test eax, eax
jne 0x405951
mov eax, dword [ebp - 0x10]
cmp eax, 2
je 0x405920
cmp eax, 1
jne 0x405951
mov ecx, 0x658068
mov esi, str..net_Framework_2.0_Service_Pack_1
mov edx, 0x80
sub esi, ecx
nop dword [eax]
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x405980
movzx eax, word [ecx + esi]
test ax, ax
je 0x405980
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405900
jmp 0x405980
mov ecx, 0x658068
mov esi, str..net_Framework_2.0_Service_Pack_2
mov edx, 0x80
sub esi, ecx
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x405980
movzx eax, word [ecx + esi]
test ax, ax
je 0x405980
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405931
jmp 0x405980
mov ecx, 0x658068
mov esi, str..net_Framework_2.0
mov edx, 0x80
sub esi, ecx
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x405980
movzx eax, word [ecx + esi]
test ax, ax
je 0x405980
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405962
test edx, edx
lea eax, [ecx - 2]
pop edi
cmovne eax, ecx
xor ecx, ecx
pop esi
pop ebx
mov word [eax], cx
mov dword [0x658168], 0x14
mov esp, ebp
pop ebp
ret
push dword [ebp - 4]
call edi
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftNET_Framework_SetupNDP_v1.1.4322
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
test eax, eax
jne 0x405a94
lea eax, [ebp - 8]
mov dword [ebp - 8], 4
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push str.Install
push dword [ebp - 4]
call esi
test eax, eax
jne 0x405a8f
cmp dword [ebp - 0xc], 1
jne 0x405a8f
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push 0
push 0x424128
push dword [ebp - 4]
call esi
test eax, eax
jne 0x405a42
cmp dword [ebp - 0x10], 1
jne 0x405a42
mov ecx, 0x658068
mov esi, str..net_Framework_1.1_Service_Pack_1
mov edx, 0x80
sub esi, ecx
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x405a71
movzx eax, word [esi + ecx]
test ax, ax
je 0x405a71
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405a22
jmp 0x405a71
mov ecx, 0x658068
mov esi, str..net_Framework_1.1
mov edx, 0x80
sub esi, ecx
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x405a71
movzx eax, word [ecx + esi]
test ax, ax
je 0x405a71
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405a53
test edx, edx
lea eax, [ecx - 2]
pop edi
cmovne eax, ecx
xor ecx, ecx
pop esi
pop ebx
mov word [eax], cx
mov dword [0x658168], 0xb
mov esp, ebp
pop ebp
ret
push dword [ebp - 4]
call edi
mov ecx, 0x658068
mov esi, str.No_.net_Framework_detected.
mov edx, 0x80
sub esi, ecx
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x405ac3
movzx eax, word [esi + ecx]
test ax, ax
je 0x405ac3
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x405aa5
test edx, edx
lea eax, [ecx - 2]
pop edi
cmovne eax, ecx
xor ecx, ecx
pop esi
pop ebx
mov word [eax], cx
mov dword [0x658168], ecx
mov esp, ebp
pop ebp
ret