Function at 0x412740
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x184c
call fcn.004187f0
mov ax, word [0x437430]
push esi
push edi
mov word [esp + 0x3c], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x3e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
call fcn.00407c00
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
lea ecx, [esp + 0x40]
push 0x104
push ecx
push 0x437430
push str.HardwareAccelerate
push str.Display
call esi
lea edx, [esp + 0x3c]
push edx
call fcn.00418527
add esp, 4
test eax, eax
jbe 0x4127a9
pop edi
xor eax, eax
pop esi
add esp, 0x184c
ret
call fcn.00407bd0
push eax
lea eax, [esp + 0x40]
push 0x104
push eax
push 0x437430
push str.HardwareAccelerate
push str.Display
call esi
lea ecx, [esp + 0x3c]
push ecx
call fcn.00418527
add esp, 4
test eax, eax
jbe 0x41281a
call fcn.00407c00
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea edx, [esp + 0x3c]
push eax
push edx
push str.HardwareAccelerate
push str.Display
call esi
call fcn.00407c00
push eax
lea eax, [esp + 0x40]
push eax
push str.HardwareAccelerate_Default
push str.Display
call esi
pop edi
xor eax, eax
pop esi
add esp, 0x184c
ret
mov dx, word [0x437430]
mov ecx, 0x1ff
xor eax, eax
lea edi, [esp + 0x1056]
mov word [esp + 0x1054], dx
mov word [esp + 0x854], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x1ff
xor eax, eax
lea edi, [esp + 0x856]
push ebx
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
push ebp
push ecx
xor ebx, ebx
push 0x4256d0
push 1
push ebx
push 0x4256c0
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x54], ebx
stosw word es:[edi], ax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x4128b5
mov esi, 0x80004003
pop ebp
pop ebx
mov eax, esi
pop edi
pop esi
add esp, 0x184c
ret
xor edx, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x28], 0x10
mov dword [esp + 0x2c], edx
mov dword [esp + 0x2c], 0x6f
mov dword [esp + 0x30], edx
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], edx
lea edx, [esp + 0x28]
mov dword [esp + 0x34], ebx
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x1c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x14]
push edx
push str.DxDiag_DisplayDevices
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x24]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], ebx
cmp eax, ebx
jbe 0x412be1
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x65c]
push 0x100
push edx
mov edx, dword [esp + 0x28]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x10]
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x10]
push edx
lea edx, [esp + 0x660]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
mov esi, eax
mov eax, dword [esp + 0x10]
cmp esi, ebx
jl 0x412c20
cmp eax, ebx
je 0x412c24
lea ecx, [esp + 0x105c]
push 0x400
push ecx
push str.szChipType
push eax
call fcn.00412c40
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x85c]
push 0x400
push edx
push str.szDisplayMemoryLocalized
push eax
call fcn.00412c40
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push ecx
push str.bDDAccelerationEnabled
push edx
call fcn.00412cc0
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x38]
push eax
push str.b3DAccelerationExists
push ecx
call fcn.00412cc0
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x3c]
push edx
push str.b3DAccelerationEnabled
push eax
call fcn.00412cc0
mov esi, eax
cmp esi, ebx
jl 0x412c13
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x412a5f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x10], ebx
lea edx, [esp + 0x85c]
push edx
call fcn.00418721
add esp, 4
xor ebp, ebp
cmp eax, 0x40
jl 0x412b84
cmp eax, 0x80
jl 0x412a8b
mov ebp, 1
jmp 0x412b84
mov dx, word [0x437430]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x24e]
mov word [esp + 0x24c], dx
mov word [esp + 0x454], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x456]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
call fcn.00407bd0
push eax
lea eax, [esp + 0x250]
push 0x104
push eax
push 0x42cbcc
push 0x42d330
push str.DisplayName
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [esp + 0x24c]
push ecx
call fcn.00418721
mov ebx, eax
add esp, 4
xor eax, eax
test ebx, ebx
jle 0x412b82
lea edi, [eax + 1]
lea edx, [esp + 0x454]
push edi
push str.DisplayName_d
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
call fcn.00407bd0
push eax
lea eax, [esp + 0x250]
push 0x104
push eax
lea ecx, [esp + 0x460]
push 0x437430
push ecx
push str.DisplayName
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [esp + 0x24c]
push edx
call fcn.00418527
push eax
lea eax, [esp + 0x254]
lea ecx, [esp + 0x1064]
push eax
push ecx
call fcn.00418b03
add esp, 0x10
test eax, eax
je 0x412b7d
mov eax, edi
cmp eax, ebx
jl 0x412b06
jmp 0x412b82
mov ebp, 1
xor ebx, ebx
push ebp
lea edx, [esp + 0x48]
push 0x429c88
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
call fcn.00407c00
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push eax
lea eax, [esp + 0x48]
push eax
push str.HardwareAccelerate
push str.Display
call edi
call fcn.00407c00
lea ecx, [esp + 0x44]
push eax
push ecx
push str.HardwareAccelerate_Default
push str.Display
call edi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jb 0x412958
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x412bf3
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x412c05
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x412c13
mov edx, dword [eax]
push eax
call dword [edx + 8]
pop ebp
pop ebx
mov eax, esi
pop edi
pop esi
add esp, 0x184c
ret
cmp eax, ebx
jne 0x412c13
mov esi, 0x80004005
pop ebp
pop ebx
mov eax, esi
pop edi
pop esi
add esp, 0x184c
ret