Function at 0x4033b3
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
xor ebx, ebx
cmp byte [ecx + 0x218], bl
push esi
push edi
je 0x403433
push ebx
mov edi, str.HARDWAREDESCRIPTIONSystem
push str.SystemBiosVersion
mov esi, 0x80000002
push edi
push esi
call fcn.0040deaf
push ebx
push str.SystemBiosDate
push edi
push esi
mov dword [ebp - 8], eax
call fcn.0040deaf
add esp, 0x20
cmp dword [ebp - 8], ebx
mov edi, eax
je 0x40358d
push dword [ebp - 8]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
mov esi, dword [sym.imp.KERNEL32.DLL_GlobalFree]
cmp edi, ebx
je 0x403429
push edi
push dword [ebp - 8]
push str._s___s_
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push edi
call esi
push dword [ebp - 8]
call esi
jmp 0x4035f3
lea eax, [ebp - 8]
push eax
push 0x20019
push ebx
push str.EnumRoot
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40358d
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x10]
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
je 0x403477
mov dword [ebp - 0x10], 0x104
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov ecx, dword [ebp - 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
inc ecx
mov dword [ebp - 0x1c], eax
push ecx
push eax
push ebx
mov dword [ebp - 0x24], ebx
push dword [ebp - 8]
call esi
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalFree]
test eax, eax
jne 0x40357f
lea eax, [ebp - 4]
inc dword [ebp - 0x24]
push eax
push 0x20019
push ebx
push dword [ebp - 0x1c]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x403567
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xc]
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
je 0x4034ec
mov dword [ebp - 0xc], 0x104
mov eax, dword [ebp - 0xc]
inc eax
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
inc ecx
mov dword [ebp - 0x20], ebx
push ecx
push eax
push ebx
push dword [ebp - 4]
call esi
test eax, eax
jne 0x403559
lea eax, [ebp - 0x14]
inc dword [ebp - 0x20]
push eax
push 0x20019
push ebx
push dword [ebp - 0x18]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40354c
push ebx
push str.BIOSVersion
push dword [ebp - 0x14]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x28], eax
jne 0x403596
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0xc]
inc eax
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x20]
jmp 0x403505
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x18]
call edi
mov eax, dword [ebp - 0x10]
inc eax
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x24]
push dword [ebp - 8]
call esi
test eax, eax
je 0x4034a9
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x1c]
call edi
xor al, al
pop edi
pop esi
pop ebx
leave
ret 4
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
push ebx
push str.BIOSDate
push dword [ebp - 0x14]
call fcn.0040de53
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x4035cf
push esi
push dword [ebp - 0x28]
push str._s___s_
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push esi
call edi
push dword [ebp - 0x28]
call edi
push dword [ebp - 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 4]
call esi
push dword [ebp - 8]
call esi
push dword [ebp - 0x18]
call edi
push dword [ebp - 0x1c]
call edi
mov al, 1
jmp 0x40358f