Function at 0x56f810
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, 0x1030
call fcn.0063fe40
mov eax, dword [0x6a9fa4]
xor eax, esp
mov dword [esp + 0x1028], eax
mov eax, dword [edi + 0x1c]
push ebx
push ebp
xor ebp, ebp
cmp eax, ebp
push esi
mov byte [edi + 0xba], 1
jne 0x56f855
xor al, al
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1028]
xor ecx, esp
call fcn.00626d59
add esp, 0x1030
ret
mov ebx, dword [sym.imp.advapi32.dll_RegQueryValueExA]
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x18]
push ecx
push ebp
push str.Version
mov esi, 4
push eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x56f83b
cmp dword [esp + 0x1c], 2
jne 0x56f83b
lea edx, [esp + 0xc]
push edx
mov edx, dword [edi + 0x1c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x18]
push ecx
push ebp
push str.MinVidMemory
push edx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x56f83b
mov eax, dword [esp + 0x14]
cmp eax, dword [edi + 0xb0]
jne 0x56f83b
lea ecx, [esp + 0xc]
push ecx
mov ecx, dword [edi + 0x1c]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
push ebp
push str.RecVidMemory
push ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x56f83b
mov edx, dword [esp + 0x18]
cmp edx, dword [edi + 0xb4]
jne 0x56f83b
lea eax, [esp + 0xc]
push eax
mov eax, dword [edi + 0x1c]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x18]
push edx
push 0
push str.DisplayGUID
mov ebp, 0x10
push eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], 3
call ebx
test eax, eax
jne 0x56f83b
cmp dword [esp + 0xc], ebp
jne 0x56f83b
mov eax, ebp
lea ecx, [edi + 0x20]
lea edx, [esp + 0x20]
mov ebp, dword [edx]
cmp ebp, dword [ecx]
jne 0x56f965
sub eax, esi
add ecx, esi
add edx, esi
cmp eax, esi
jae 0x56f951
test eax, eax
je 0x56f9c2
movzx ebp, byte [ecx]
movzx esi, byte [edx]
sub esi, ebp
jne 0x56f9b4
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x56f9c2
movzx ebp, byte [ecx]
movzx esi, byte [edx]
sub esi, ebp
jne 0x56f9b4
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x56f9c2
movzx ebp, byte [ecx]
movzx esi, byte [edx]
sub esi, ebp
jne 0x56f9b4
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x56f9c2
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x56f9c2
test esi, esi
mov eax, 1
jg 0x56f9c4
or eax, 0xffffffff
jmp 0x56f9c4
xor eax, eax
test eax, eax
jne 0x56f83b
lea edx, [esp + 0xc]
push edx
mov edx, dword [edi + 0x1c]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x18]
push ecx
push 0
push str.FailureReason
mov ebp, 1
mov esi, 0x1000
push edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], esi
call ebx
test eax, eax
jne 0x56f83b
lea eax, [esp + 0x30]
push eax
lea ecx, [edi + 0x78]
call fcn.00405560
lea ecx, [esp + 0xc]
push ecx
mov ecx, dword [edi + 0x1c]
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x18]
push eax
push 0
push str.Warning
push ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], esi
call ebx
test eax, eax
jne 0x56f83b
lea edx, [esp + 0x30]
push edx
lea ecx, [edi + 0x94]
call fcn.00405560
cmp dword [edi + 0x8c], 0
mov ecx, dword [esp + 0x1034]
pop esi
pop ebp
sete al
pop ebx
xor ecx, esp
mov byte [edi + 0xba], 0
call fcn.00626d59
add esp, 0x1030
ret