Function at 0x406000
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x624
mov eax, dword [0x4431cc]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x14]
push ecx
push 0xf003f
xor eax, ebp
push 0
mov dword [esp + 0x638], eax
mov eax, dword [ebp + 8]
push edi
push eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x20], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
test esi, esi
mov ecx, 0x44d2d0
jne 0x4062c1
push str.Opening_the_Registry_Key:
call fcn.00402680
push edi
mov ecx, 0x44d2d0
call fcn.00402680
push 0x433110
mov ecx, 0x44d2d0
call fcn.00402680
mov ebx, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
xor eax, eax
push eax
push eax
push eax
push eax
mov ecx, 0x80
lea edi, [esp + 0x438]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x43c]
push eax
push ecx
push edx
mov dword [esp + 0x38], 0x200
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov esi, eax
cmp esi, 0x103
je 0x40629f
test esi, esi
jne 0x40629f
push str.Enumerated_sub_Registry_Key:
mov ecx, 0x44d2d0
call fcn.00402680
xor eax, eax
mov ecx, 0x80
lea edi, [esp + 0x20]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004145fa
lea edx, [esp + 0x430]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.004145d0
add esp, 0x10
lea ecx, [esp + 0x20]
push ecx
mov ecx, 0x44d2d0
call fcn.00402680
push 0x433110
mov ecx, 0x44d2d0
call fcn.00402680
lea edx, [esp + 0x20]
push str.SOFTWAREHewlett_Packard_
push edx
call fcn.00414f7d
add esp, 8
test eax, eax
je 0x406183
lea eax, [esp + 0x20]
push 0x4330e4
push eax
call fcn.004145d0
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.00404400
mov esi, eax
add esp, 0x10
lea eax, [esp + 0x20]
push eax
mov ecx, 0x44d2d0
call fcn.00402680
test esi, esi
jne 0x4061d2
push str._:_Security_Properties_for_the_registry_key_are_set_r_n
jmp 0x40620b
cmp dword [0x44d2c8], 6
je 0x4061be
mov eax, dword [0x44d2a8]
test eax, eax
jne 0x4061be
push str.Operating_System_found_is_not_Vista
mov ecx, 0x44d2d0
call fcn.00402680
lea edx, [esp + 0x20]
push edx
call fcn.00403f90
add esp, 4
test eax, eax
jne 0x406143
inc dword [esp + 0xc]
jmp 0x406080
push str.Operating_System_found_is_Vista._r_n
mov ecx, 0x44d2d0
call fcn.00402680
jmp 0x406143
push 0xa
lea ecx, [esp + 0x224]
push ecx
push esi
call fcn.00414ddb
add esp, 0xc
push str._:_failed_to_set_the_Security_options_for_the_registry_key__error_:
mov ecx, 0x44d2d0
call fcn.00402680
lea edx, [esp + 0x220]
push edx
mov ecx, 0x44d2d0
call fcn.00402680
push 0x433110
mov ecx, 0x44d2d0
call fcn.00402680
lea eax, [esp + 0x20]
push eax
call fcn.00405840
add esp, 4
lea ecx, [esp + 0x20]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
lea edx, [esp + 0x20]
push edx
mov ecx, 0x44d2d0
mov esi, eax
call fcn.00402680
test esi, esi
jne 0x406257
push str._:_registry_key_deleted_r_n
mov ecx, 0x44d2d0
call fcn.00402680
jmp 0x406080
push 0xa
lea eax, [esp + 0x224]
push eax
push esi
call fcn.00414ddb
add esp, 0xc
push str._:_failed_to_delete_registry_key__error_:
mov ecx, 0x44d2d0
call fcn.00402680
lea ecx, [esp + 0x220]
push ecx
mov ecx, 0x44d2d0
call fcn.00402680
push 0x433110
mov ecx, 0x44d2d0
call fcn.00402680
jmp 0x406080
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x620]
xor ecx, ebp
call fcn.00414a22
mov esp, ebp
pop ebp
ret
push str.UnSuccessful_in_opening_the_Reg_key:
call fcn.00402680
push edi
mov ecx, 0x44d2d0
call fcn.00402680
push str.Error:
mov ecx, 0x44d2d0
call fcn.00402680
push 0xa
lea eax, [esp + 0x224]
push eax
push esi
call fcn.00414ddb
add esp, 0xc
lea ecx, [esp + 0x220]
push ecx
mov ecx, 0x44d2d0
call fcn.00402680
push 0x433110
mov ecx, 0x44d2d0
call fcn.00402680
mov ecx, dword [esp + 0x62c]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.00414a22
mov esp, ebp
pop ebp
ret