Function at 0x612e50
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x3d8
mov eax, 0x6e8f0b
call fcn.00648b50
mov eax, dword [ebp + 0x10]
xor ebx, ebx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x3d4], eax
lea eax, [ecx + 0xc]
push str.NewTreeVideo::Device::FindDeviceDisplay
push eax
lea ecx, [ebp - 0x3dc]
mov dword [ebp - 0x3b4], esi
mov dword [ebp - 0x368], ebx
call fcn.005a14e8
and dword [ebp - 4], ebx
lea eax, [ebp - 0x358]
push 0x344
push ebx
push eax
mov dword [ebp - 0x35c], 0x348
call fcn.0066f220
add esp, 0xc
lea eax, [ebp - 0x35c]
xor ecx, ecx
mov edi, ecx
push ecx
push eax
push ecx
push ecx
call dword [sym.imp.USER32.dll_EnumDisplayDevicesW]
test eax, eax
je 0x6134e1
mov eax, dword [ebp - 0x398]
mov dword [ebp - 0x3a8], eax
mov eax, dword [ebp - 0x3a0]
mov dword [ebp - 0x3ac], eax
push 0xb
lea eax, [ebp - 0x358]
inc edi
push str..DISPLAY
push eax
mov dword [ebp - 0x3d0], edi
call fcn.0068d823
add esp, 0xc
test eax, eax
jne 0x6134c1
push str.SYSTEMCurrentControlSetEnum_
lea ecx, [ebp - 0x36c]
call fcn.00515719
lea ecx, [ebp - 0x214]
mov byte [ebp - 4], 1
call fcn.0051545a
push eax
lea eax, [ebp - 0x214]
push eax
lea ecx, [ebp - 0x36c]
call fcn.00517d9c
xor eax, eax
mov dword [ebp - 0x394], eax
mov dword [ebp - 0x390], eax
mov dword [ebp - 0x38c], eax
push 0x20019
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x394]
push dword [ebp - 0x36c]
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0051e4ac
test eax, eax
jne 0x612f99
xor ecx, ecx
lea eax, [ebp - 0x3a4]
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push eax
push ecx
push ecx
push ecx
push dword [ebp - 0x394]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
cmp dword [ebp - 0x3a4], 0
jne 0x612fbb
lea ecx, [ebp - 0x394]
call fcn.0051e50a
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x36c]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
jmp 0x6134c1
call fcn.00515e26
push eax
lea ecx, [ebp - 0x364]
call fcn.00515c3a
xor esi, esi
mov byte [ebp - 4], 3
mov dword [ebp - 0x3b0], esi
mov dword [ebp - 0x374], 0xff
cmp esi, dword [ebp - 0x3a4]
jae 0x61304a
push dword [ebp - 0x374]
lea eax, [ebp - 0x364]
or edi, 0xffffffff
mov ecx, eax
mov dword [ebp - 0x3ac], eax
mov dword [ebp - 0x3a8], edi
call fcn.005159ef
lea ecx, [ebp - 0x3e4]
or ebx, 1
push ecx
xor ecx, ecx
mov dword [ebp - 0x368], ebx
push ecx
push ecx
push ecx
lea ecx, [ebp - 0x374]
push ecx
push eax
push esi
push dword [ebp - 0x394]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
inc esi
mov dword [ebp - 0x3b0], esi
test eax, eax
jne 0x613050
mov byte [ebp - 0x35d], 1
jmp 0x613057
mov edi, dword [ebp - 0x3a8]
mov byte [ebp - 0x35d], 0
test bl, 1
je 0x613075
and ebx, 0xfffffffe
mov dword [ebp - 0x368], ebx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x3ac]
push edi
call fcn.0051d5f9
cmp byte [ebp - 0x35d], 0
je 0x613490
xor eax, eax
mov dword [ebp - 0x3a0], eax
mov dword [ebp - 0x39c], eax
mov dword [ebp - 0x398], eax
push 0x741508
lea edx, [ebp - 0x36c]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x3bc]
call fcn.005347ac
pop ecx
lea ecx, [ebp - 0x364]
mov byte [ebp - 4], 6
push ecx
mov edx, eax
lea ecx, [ebp - 0x3b8]
call fcn.0053eda7
mov dword [esp], 0x20019
lea ecx, [ebp - 0x3a0]
push dword [eax]
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0051e4ac
mov ecx, dword [ebp - 0x3b8]
test eax, eax
setne bl
lea ecx, [ecx - 0x10]
call fcn.00515ed6
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x3bc]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
test bl, bl
je 0x613125
lea ecx, [ebp - 0x3a0]
mov byte [ebp - 4], 3
call fcn.0051e50a
mov ebx, dword [ebp - 0x368]
jmp 0x612fe2
mov eax, 0xff
lea ecx, [ebp - 0x364]
push eax
mov dword [ebp - 0x374], eax
call fcn.005159ef
lea ecx, [ebp - 0x374]
push ecx
push eax
push str.LocationInformation
lea ecx, [ebp - 0x3a0]
call fcn.0051e3d6
or ebx, 0xffffffff
mov byte [ebp - 4], 7
push ebx
lea ecx, [ebp - 0x364]
call fcn.0051d5f9
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x364]
push 0
push 0x764fe8
mov dword [ebp - 0x37c], ebx
mov dword [ebp - 0x380], ebx
mov dword [ebp - 0x384], ebx
call fcn.00514fc9
test eax, eax
js 0x6131cc
push 4
push 4
push 4
lea eax, [ebp - 0x384]
push eax
lea eax, [ebp - 0x380]
push eax
lea eax, [ebp - 0x37c]
push eax
push str.__d__d__d_
push dword [ebp - 0x364]
call fcn.00617fa9
mov ebx, dword [ebp - 0x368]
add esp, 0x20
jmp 0x613455
push str.0123456789
lea ecx, [ebp - 0x370]
call fcn.00515719
mov byte [ebp - 4], 8
push dword [ebp - 0x370]
push dword [ebp - 0x364]
call fcn.0068fb7b
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x613276
mov esi, ebx
mov ebx, dword [ebp - 0x368]
mov byte [ebp - 0x35d], 0
test bl, 2
je 0x613224
mov ecx, dword [ebp - 0x3c0]
and ebx, 0xfffffffd
mov dword [ebp - 0x368], ebx
lea ecx, [ecx - 0x10]
call fcn.00515ed6
cmp byte [ebp - 0x35d], 0
je 0x613357
mov eax, dword [ebp - 0x364]
lea ecx, [ebp - 0x364]
mov eax, dword [eax - 0xc]
sub eax, esi
push eax
lea eax, [ebp - 0x3c4]
push eax
call fcn.0058efe6
push dword [ebp - 0x370]
mov dword [ebp - 0x388], eax
push dword [eax]
call fcn.0068fb7b
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x61330d
or edi, 0xffffffff
jmp 0x613317
mov eax, dword [ebp - 0x364]
sub esi, eax
sar esi, 1
js 0x6131fb
push 0xa
lea ecx, [ebp - 0x378]
push ecx
lea eax, [eax + esi*2]
push eax
call fcn.0068c0f9
mov esi, dword [ebp - 0x378]
add esp, 0xc
mov dword [ebp - 0x37c], eax
mov eax, dword [ebp - 0x364]
sub esi, eax
sar esi, 1
js 0x6131fb
mov eax, dword [eax - 0xc]
lea ecx, [ebp - 0x364]
sub eax, esi
push eax
lea eax, [ebp - 0x3c0]
push eax
call fcn.0058efe6
push dword [ebp - 0x370]
mov ebx, dword [ebp - 0x368]
mov edi, eax
or ebx, 2
mov dword [ebp - 0x368], ebx
push dword [edi]
call fcn.0068fb7b
pop ecx
pop ecx
test eax, eax
je 0x613201
sub eax, dword [edi]
sar eax, 1
js 0x613201
mov byte [ebp - 0x35d], 1
jmp 0x613208
mov eax, dword [ebp - 0x388]
sub edi, dword [eax]
sar edi, 1
mov ecx, dword [ebp - 0x3c4]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
push 0xa
lea eax, [ebp - 0x378]
push eax
mov eax, dword [ebp - 0x364]
lea ecx, [edi + esi]
lea eax, [eax + ecx*2]
push eax
call fcn.0068c0f9
mov esi, dword [ebp - 0x378]
add esp, 0xc
sub esi, dword [ebp - 0x364]
mov dword [ebp - 0x380], eax
sar esi, 1
test esi, esi
jle 0x6133a4
mov eax, dword [ebp - 0x364]
lea ecx, [ebp - 0x364]
mov eax, dword [eax - 0xc]
sub eax, esi
push eax
lea eax, [ebp - 0x3c8]
push eax
call fcn.0058efe6
push dword [ebp - 0x370]
mov edi, eax
or ebx, 4
mov dword [ebp - 0x368], ebx
push dword [edi]
call fcn.0068fb7b
pop ecx
pop ecx
test eax, eax
je 0x6133a4
sub eax, dword [edi]
sar eax, 1
mov byte [ebp - 0x35d], 1
jns 0x6133ab
mov byte [ebp - 0x35d], 0
test bl, 4
je 0x6133c7
mov ecx, dword [ebp - 0x3c8]
and ebx, 0xfffffffb
mov dword [ebp - 0x368], ebx
lea ecx, [ecx - 0x10]
call fcn.00515ed6
cmp byte [ebp - 0x35d], 0
je 0x61343d
mov eax, dword [ebp - 0x364]
lea ecx, [ebp - 0x364]
mov eax, dword [eax - 0xc]
sub eax, esi
push eax
lea eax, [ebp - 0x3cc]
push eax
call fcn.0058efe6
push dword [ebp - 0x370]
mov edi, eax
push dword [edi]
call fcn.0068fb7b
pop ecx
pop ecx
test eax, eax
jne 0x613408
or eax, 0xffffffff
jmp 0x61340c
sub eax, dword [edi]
sar eax, 1
mov ecx, dword [ebp - 0x3cc]
add esi, eax
lea ecx, [ecx - 0x10]
call fcn.00515ed6
push 0xa
lea eax, [ebp - 0x378]
push eax
mov eax, dword [ebp - 0x364]
lea eax, [eax + esi*2]
push eax
call fcn.0068c0f9
add esp, 0xc
mov dword [ebp - 0x384], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x370]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
mov esi, dword [ebp - 0x3b0]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
cmp dword [ebp - 0x37c], eax
jne 0x61347c
mov eax, dword [ecx + 4]
cmp dword [ebp - 0x380], eax
jne 0x61347c
mov eax, dword [ecx + 8]
cmp dword [ebp - 0x384], eax
je 0x613503
lea ecx, [ebp - 0x3a0]
mov byte [ebp - 4], 3
call fcn.0051e50a
jmp 0x612fe2
mov ecx, dword [ebp - 0x364]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
lea ecx, [ebp - 0x394]
call fcn.0051e50a
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x36c]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
mov edi, dword [ebp - 0x3d0]
push 0
lea eax, [ebp - 0x35c]
push eax
push edi
push 0
call dword [sym.imp.USER32.dll_EnumDisplayDevicesW]
test eax, eax
jne 0x612ee3
mov esi, dword [ebp - 0x3b4]
call fcn.00515e26
push eax
mov ecx, esi
call fcn.00515c3a
lea ecx, [ebp - 0x3dc]
call fcn.005a1446
mov eax, esi
call fcn.00648afa
ret 0xc
mov ecx, dword [ebp - 0x3d4]
lea eax, [esi - 1]
mov dword [ecx], eax
lea eax, [ebp - 0x358]
mov ecx, dword [ebp - 0x3b4]
push eax
call fcn.00515719
lea ecx, [ebp - 0x3a0]
call fcn.0051e50a
mov ecx, dword [ebp - 0x364]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
lea ecx, [ebp - 0x394]
call fcn.0051e50a
mov ecx, dword [ebp - 0x36c]
add ecx, 0xfffffff0
call fcn.00515ed6
lea ecx, [ebp - 0x3dc]
call fcn.005a1446
mov eax, dword [ebp - 0x3b4]
jmp 0x6134fb