Function at 0x457cf0
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x484996
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x194
push ebx
push ebp
push esi
xor eax, eax
push edi
mov ebp, ecx
push eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], eax
call dword [sym.imp.USER32.dll_GetDC]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov esi, eax
push 8
push esi
call edi
push 0xa
push esi
mov ebx, eax
call edi
push 0xc
push esi
mov edi, eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
push 0
mov dword [esp + 0x3c], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
xor eax, eax
lea edx, [esp + 0x3c]
mov dword [esp + 0x40], eax
push edx
mov dword [esp + 0x48], eax
lea edx, [esp + 0x2c]
mov dword [esp + 0x4c], eax
push edx
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x48]
mov dword [esp + 0x48], 0x10004000
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x5c]
test eax, eax
mov dword [esp + 0x38], eax
jge 0x457d99
push eax
push 0x53
mov ecx, ebp
call fcn.00457c70
xor al, al
jmp 0x45818d
mov eax, dword [esp + 0x34]
mov ecx, 0x4a04d0
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x28]
mov esi, eax
sar esi, 3
imul esi, edi
imul esi, ebx
and edi, 0xffff
add esi, edx
shl edi, 0x10
and ebx, 0xffff
shr esi, 0x14
or edi, ebx
call fcn.004303b0
mov ecx, dword [0x4a04b8]
push eax
push ecx
call fcn.00424a95
add esp, 8
test eax, eax
jne 0x457e0c
mov eax, dword [0x4a04b4]
mov ecx, dword [0x4a04fc]
cmp eax, ecx
jne 0x457e0c
cmp dword [0x4a04b0], edi
jne 0x457e0c
mov ecx, 0x4a04a8
call fcn.004303a0
jmp 0x45818d
push 0x4a04d0
mov ecx, 0x4a04b8
call fcn.0042eef0
mov ecx, dword [0x4a04fc]
mov dword [0x4a04b0], edi
mov dword [0x4a04b4], ecx
mov ecx, 0x4a04a8
call fcn.0042ed20
mov ecx, 0x4a04e0
call fcn.0042ed20
mov eax, dword [0x4a04c8]
mov dword [0x4a04a0], esi
cmp esi, eax
jae 0x457e63
push 0x4c
mov ecx, 0x4a04a8
call fcn.00430060
xor al, al
jmp 0x45818d
cmp esi, dword [0x4a04c4]
jae 0x457e74
push 0x4c
mov ecx, ebp
call fcn.00457be0
mov edx, dword [0x4a04c0]
lea eax, [esp + 0x24]
push eax
cmp esi, edx
push 0x20019
push 0
setb dl
push str.SoftwareMicrosoftDirectX
push 0x80000002
mov byte [0x49644c], dl
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x457efa
lea ecx, [esp + 0x30]
lea edx, [esp + 0xdc]
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x30]
push edx
push eax
push 0
push str.Version
push ecx
mov dword [esp + 0x44], 1
mov dword [esp + 0x48], 0xc8
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x457eef
lea edx, [esp + 0xdc]
mov ecx, 0x4a0498
push edx
call fcn.0042ef50
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x10]
call fcn.0042ec10
lea ecx, [esp + 0x18]
mov dword [esp + 0x1ac], 0
call fcn.0042ec10
lea ecx, [esp + 0x18]
lea edx, [esp + 0x10]
push ecx
lea eax, [esp + 0xd0]
push edx
push eax
mov byte [esp + 0x1b8], 1
call fcn.0045e720
add esp, 0xc
test al, al
je 0x457fa7
lea ecx, [esp + 0x10]
call fcn.004303b0
push eax
push str.Driver
push str.3DSettings
call fcn.0043cbd0
add esp, 0xc
lea ecx, [esp + 0x18]
call fcn.004303b0
push eax
push str.DriverDescription
push str.3DSettings
call fcn.0043cbd0
add esp, 0xc
lea ecx, [esp + 0x18]
call fcn.004303b0
push eax
lea ecx, [esp + 0x14]
call fcn.004303b0
push eax
mov ecx, ebp
call fcn.00459090
test al, al
jne 0x457fa7
mov ecx, dword [esp + 0x38]
push ecx
push 0x65
mov ecx, ebp
call fcn.00457c70
jmp 0x45811a
mov eax, dword [ebp + 0xc]
lea ebx, [ebp + 0x1c]
push ebx
push 0x48aaf8
mov edx, dword [eax]
push eax
call dword [edx]
test eax, eax
jge 0x457fcb
push eax
push 0x54
mov ecx, ebp
call fcn.00457c70
jmp 0x45811a
push 8
mov ecx, ebp
call fcn.00457740
test eax, eax
jge 0x457fe0
push eax
push 0x55
jmp 0x45810c
mov ecx, 0x1f
xor eax, eax
lea edi, [esp + 0x50]
lea esi, [ebp + 0x10]
rep stosd dword es:[edi], eax
mov eax, 0x64
push 0
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x54]
mov dword [esp + 0x54], 0x7c
mov dword [esp + 0x58], 7
mov dword [esp + 0xbc], 0x2040
mov ecx, dword [eax]
push esi
push edx
push eax
call dword [ecx + 0x18]
test eax, eax
jge 0x458035
push eax
push 0x56
jmp 0x45810c
mov eax, dword [ebx]
mov edx, dword [esi]
lea edi, [ebp + 0x20]
mov ecx, dword [eax]
push edi
push edx
push 0x48aad8
push eax
call dword [ecx + 0x10]
test eax, eax
jge 0x45806a
mov eax, dword [ebx]
mov edx, dword [esi]
push edi
push edx
mov ecx, dword [eax]
push 0x48aae8
push eax
call dword [ecx + 0x10]
test eax, eax
jge 0x45806a
push eax
push 0x57
jmp 0x45810c
mov edi, dword [edi]
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0
push ecx
mov eax, dword [edi]
push 0x455580
push edi
call dword [eax + 0x10]
mov al, byte [esp + 0x20]
test al, 2
jne 0x4580a1
test al, 1
je 0x4580a1
test al, 4
jne 0x4580a1
push 0x4d
mov ecx, ebp
call fcn.00457be0
mov al, byte [esp + 0x20]
test al, 3
jne 0x4580b3
push 0x4e
mov ecx, 0x4a04a8
call fcn.00430060
jmp 0x458113
mov eax, 0x40
mov ecx, 8
mov esi, 0x4a0a60
lea edi, [esp + 0x98]
mov dword [esp + 0x54], 0x1007
mov dword [esp + 0xb8], 0x1000
mov dword [esp + 0xbc], 0x10
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [eax]
lea ecx, [ebp + 0x14]
push 0
push ecx
lea ecx, [esp + 0x58]
push ecx
push eax
call dword [edx + 0x18]
test eax, eax
jge 0x458143
push eax
push 0x58
mov ecx, ebp
call fcn.00457c70
mov ecx, ebp
call fcn.00458b60
lea ecx, [esp + 0x18]
mov byte [esp + 0x1ac], 0
call fcn.0042edb0
lea ecx, [esp + 0x10]
mov dword [esp + 0x1ac], 0xffffffff
call fcn.0042edb0
xor al, al
jmp 0x45818d
mov ecx, ebp
call fcn.004581b0
mov ecx, ebp
mov bl, al
call fcn.00458b60
mov ecx, 0x4a04e0
call fcn.004303a0
test al, al
jne 0x458166
mov byte [0x49644a], al
lea ecx, [esp + 0x18]
mov byte [esp + 0x1ac], 0
call fcn.0042edb0
lea ecx, [esp + 0x10]
mov dword [esp + 0x1ac], 0xffffffff
call fcn.0042edb0
mov al, bl
mov ecx, dword [esp + 0x1a4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1a0
ret