Function at 0x40179e
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x438
lea eax, [ebp - 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], str.HARDWAREDESCRIPTIONSystem
mov dword [esp], 0x80000002
mov eax, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
call eax
sub esp, 0xc
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x4017ed
call sym.lastError__
mov dword [esp + 4], eax
mov dword [esp], str.ERROR:_Reading_from_registry_failed:__s_n
call sym._printf
mov eax, 1
jmp 0x4019f5
mov dword [ebp - 0x10], 0x400
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 0x10]
mov dword [esp + 0x14], edx
lea edx, [ebp - 0x414]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.Identifier
mov dword [esp], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
call eax
sub esp, 0x18
test eax, eax
setne al
test al, al
je 0x401855
call sym.lastError__
mov dword [esp + 4], eax
mov dword [esp], str.ERROR:_Reading_from_registry_failed:__s_n
call sym._printf
mov eax, 1
jmp 0x4019f5
mov eax, dword [0x41b020]
test eax, eax
je 0x401874
lea eax, [ebp - 0x414]
mov dword [esp + 4], eax
mov dword [esp], str.DEBUG:_System_Identifyer:__s_n
call sym._printf
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call eax
sub esp, 4
mov eax, dword [0x41b020]
test eax, eax
je 0x4018a3
lea eax, [ebp - 0x414]
mov dword [esp + 4], eax
mov dword [esp], str.DEBUG:_Hardware_identifier_is__s_n
call sym._printf
mov dword [esp + 4], str.AT_AT_COMPATIBLE
lea eax, [ebp - 0x414]
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x4018d3
mov dword [esp], str.WARNING:_This_is_a_VM
call sym._puts
mov eax, 1
jmp 0x4019f5
lea eax, [ebp - 0x14]
mov dword [esp + 8], eax
mov dword [esp + 4], str.SYSTEMControlSet001EnumIDECdRomQEMU_QEMU_DVD_ROM_______________________1.0_____53a2a585401.0.0
mov dword [esp], 0x80000002
mov eax, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
call eax
sub esp, 0xc
mov dword [ebp - 0x10], 0x400
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x10]
mov dword [esp + 0x14], edx
lea edx, [ebp - 0x414]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.FriendlyName
mov dword [esp], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
call eax
sub esp, 0x18
test eax, eax
sete al
test al, al
je 0x401988
mov eax, dword [0x41b020]
test eax, eax
je 0x40195b
lea eax, [ebp - 0x414]
mov dword [esp + 4], eax
mov dword [esp], str.DEBUG:_Hardware_name_is__s_n
call sym._printf
mov dword [esp + 4], str.AT_AT_COMPATIBLE
lea eax, [ebp - 0x414]
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x401988
mov dword [esp], str.WARNING:_This_is_a_VM
call sym._puts
mov eax, 1
jmp 0x4019f5
mov dword [ebp - 0x10], 0x400
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x10]
mov dword [esp + 0x14], edx
lea edx, [ebp - 0x414]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.DeviceDesc
mov dword [esp], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
call eax
sub esp, 0x18
test eax, eax
sete al
test al, al
je 0x4019f0
mov eax, dword [0x41b020]
test eax, eax
je 0x4019f0
lea eax, [ebp - 0x414]
mov dword [esp + 4], eax
mov dword [esp], str.DEBUG:_Hardware_device_description_is__s_n
call sym._printf
mov eax, 0
leave
ret