Function at 0x4039f5
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0xa8
lea eax, [esp + 0x20]
push ebx
push esi
push eax
push 0x20019
xor ebx, ebx
mov esi, str.HARDWAREDESCRIPTIONSystemBIOS
push ebx
push esi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x403a47
push esi
push str.Failed_to_open_registry_key:
push 0x42bf50
call fcn.004010d0
pop ecx
pop ecx
push eax
call fcn.004010d0
push eax
call fcn.00401578
add esp, 0xc
xor al, al
jmp 0x403ce9
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0x80
push eax
lea eax, [esp + 0x34]
push eax
push ebx
push ebx
push str.SystemManufacturer
push dword [esp + 0x3c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x403a92
push str.Failed_to_query_value:_SystemManufacturer
push 0x42bf50
call fcn.004010d0
push eax
call fcn.00401578
add esp, 0xc
push dword [esp + 0x28]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x403a40
push dword [esp + 0x28]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x30]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ebx
lea edx, [ecx + 1]
mov dword [esp + 0x24], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403ab3
push ebp
push edi
sub ecx, edx
lea eax, [esp + 0x38]
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.004029af
cmp dword [esp + 0x2c], 0x10
lea ecx, [esp + 0x18]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
cmovae ecx, edi
mov dword [esp + 0x14], ecx
cmp ebp, 6
jb 0x403b37
lea eax, [ebp - 5]
add eax, ecx
mov dword [esp + 0x10], eax
sub eax, ecx
push eax
push 0x56
push ecx
jmp 0x403b1a
push 6
push str.VMware
push esi
call fcn.004060ed
add esp, 0xc
test eax, eax
je 0x403b2a
mov eax, dword [esp + 0x10]
inc esi
sub eax, esi
push eax
push 0x56
push esi
call fcn.00406040
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x403afb
jmp 0x403b37
sub esi, dword [esp + 0x14]
cmp esi, 0xffffffff
jne 0x403ca4
cmp dword [esp + 0x2c], 0x10
lea ecx, [esp + 0x18]
cmovae ecx, edi
mov dword [esp + 0x10], ecx
cmp ebp, 7
jb 0x403b95
lea edi, [ecx + ebp]
lea eax, [edi - 6]
sub eax, ecx
push eax
push 0x56
push ecx
jmp 0x403b78
push 7
push str.Virtual
push esi
call fcn.004060ed
add esp, 0xc
test eax, eax
je 0x403b88
inc esi
lea eax, [edi - 6]
sub eax, esi
push eax
push 0x56
push esi
call fcn.00406040
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x403b5a
jmp 0x403b95
sub esi, dword [esp + 0x10]
cmp esi, 0xffffffff
jne 0x403ca4
mov ecx, dword [esp + 0x2c]
lea edi, [esp + 0x18]
cmp ecx, 0x10
cmovae edi, dword [esp + 0x18]
cmp ebp, 0x15
jb 0x403bf6
lea eax, [ebp - 0x14]
add eax, edi
sub eax, edi
push eax
push 0x4d
push edi
jmp 0x403bd7
push 0x15
push str.Microsoft_Corporation
push esi
call fcn.004060ed
add esp, 0xc
test eax, eax
je 0x403be7
lea eax, [ebp - 0x14]
inc esi
add eax, edi
sub eax, esi
push eax
push 0x4d
push esi
call fcn.00406040
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x403bb7
jmp 0x403bf2
sub esi, edi
cmp esi, 0xffffffff
jne 0x403ca4
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x10
lea edi, [esp + 0x18]
cmovae edi, dword [esp + 0x18]
cmp ebp, 0xc
jb 0x403c4f
lea eax, [ebp - 0xb]
add eax, edi
sub eax, edi
push eax
push 0x69
push edi
jmp 0x403c34
push 0xc
push str.innotek_GmbH
push esi
call fcn.004060ed
add esp, 0xc
test eax, eax
je 0x403c44
lea eax, [ebp - 0xb]
inc esi
add eax, edi
sub eax, esi
push eax
push 0x69
push esi
call fcn.00406040
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x403c14
jmp 0x403c4b
sub esi, edi
cmp esi, 0xffffffff
jne 0x403ca4
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x10
lea edi, [esp + 0x18]
cmovae edi, dword [esp + 0x18]
cmp ebp, 0x25
jb 0x403ca6
lea eax, [ebp - 0x24]
add eax, edi
sub eax, edi
push eax
push 0x50
push edi
jmp 0x403c8d
push 0x25
push str.Parallels_Software_International_Inc.
push esi
call fcn.004060ed
add esp, 0xc
test eax, eax
je 0x403c9d
lea eax, [ebp - 0x24]
inc esi
add eax, edi
sub eax, esi
push eax
push 0x50
push esi
call fcn.00406040
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x403c6d
jmp 0x403ca6
sub esi, edi
cmp esi, 0xffffffff
je 0x403ca6
mov bl, 1
mov eax, dword [esp + 0x2c]
pop edi
pop ebp
cmp eax, 0x10
jb 0x403ce7
mov ecx, dword [esp + 0x10]
inc eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
cmp eax, 0x1000
jb 0x403cde
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0xc]
push eax
call fcn.004022cf
mov eax, dword [esp + 0x14]
pop ecx
pop ecx
mov ecx, dword [esp + 8]
push eax
push ecx
call fcn.00404be4
pop ecx
pop ecx
mov al, bl
pop esi
pop ebx
add esp, 0xa8
ret