Function at 0x405c50
Capabilities:
Access peb ldr_data
Get process heap flags
Get process heap force flags

Disassembly:
push 0xffffffffffffffff
push 0x42d8c0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18
push ebp
push esi
push edi
mov edi, ecx
or ebp, 0xffffffff
push ebp
lea esi, [edi + 0x9c]
push 0
mov ecx, esi
call fcn.004238e6
mov eax, dword [esi + 8]
push str.DISPLAYOUTPUT_LCD
push eax
mov ecx, esi
call fcn.00423a5f
mov eax, dword [esi + 8]
push str.DISPLAYOUTPUT_CRT
push eax
mov ecx, esi
call fcn.00423a5f
mov eax, dword [esi + 8]
push str.DISPLAYOUTPUT_TV
push eax
mov ecx, esi
call fcn.00423a5f
mov eax, dword [esi + 8]
push str.DISPLAYOUTPUT_DVI
push eax
mov ecx, esi
call fcn.00423a5f
mov eax, dword [esi + 8]
push str.DISPLAYOUTPUT_HDMI
push eax
mov ecx, esi
call fcn.00423a5f
mov eax, dword [esi + 8]
push str.DISPLAYOUTPUT_DP
push eax
mov ecx, esi
call fcn.00423a5f
mov eax, dword [esi + 8]
push str.DISPLAYOUTPUT_WIRELESSDISPLAY
push eax
mov ecx, esi
call fcn.00423a5f
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x430d08
call fcn.00405bb0
mov eax, dword [edi + 0x1b4]
push ecx
sub eax, 0x10
mov dword [esp + 0x20], esp
mov esi, esp
push eax
mov dword [esp + 0x38], 0
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
mov ecx, esp
mov dword [esp + 0x28], esp
push str.IDS_LCD
mov byte [esp + 0x3c], 1
call fcn.00405bb0
mov eax, dword [edi + 0x1b0]
push ecx
sub eax, 0x10
mov dword [esp + 0x30], esp
mov esi, esp
push eax
mov byte [esp + 0x40], 2
call fcn.00403f70
add esp, 4
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x40], ebp
call fcn.0040a220
add esp, 0x14
lea ecx, [edi + 0x148]
push eax
mov dword [esp + 0x30], 3
call fcn.004056e0
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov dword [esp + 0x2c], ebp
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405da2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x430cf0
call fcn.00405bb0
mov eax, dword [edi + 0x1b4]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov dword [esp + 0x38], 4
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
mov ecx, esp
mov dword [esp + 0x24], esp
push str.IDS_CRT
mov byte [esp + 0x3c], 5
call fcn.00405bb0
mov eax, dword [edi + 0x1b0]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov byte [esp + 0x40], 6
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x20]
add esp, 4
push eax
mov dword [esp + 0x40], ebp
call fcn.0040a220
add esp, 0x14
lea ecx, [edi + 0x14c]
push eax
mov dword [esp + 0x30], 7
call fcn.004056e0
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov dword [esp + 0x2c], ebp
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405e54
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x430cd8
call fcn.00405bb0
mov eax, dword [edi + 0x1b4]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov dword [esp + 0x38], 8
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
mov ecx, esp
mov dword [esp + 0x24], esp
push str.IDS_TV
mov byte [esp + 0x3c], 9
call fcn.00405bb0
mov eax, dword [edi + 0x1b0]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov byte [esp + 0x40], 0xa
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x20]
add esp, 4
push eax
mov dword [esp + 0x40], ebp
call fcn.0040a220
add esp, 0x14
lea ecx, [edi + 0x150]
push eax
mov dword [esp + 0x30], 0xb
call fcn.004056e0
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov dword [esp + 0x2c], ebp
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405f06
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x430cc0
call fcn.00405bb0
mov eax, dword [edi + 0x1b4]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov dword [esp + 0x38], 0xc
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
mov ecx, esp
mov dword [esp + 0x24], esp
push str.IDS_DVI
mov byte [esp + 0x3c], 0xd
call fcn.00405bb0
mov eax, dword [edi + 0x1b0]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov byte [esp + 0x40], 0xe
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x20]
add esp, 4
push eax
mov dword [esp + 0x40], ebp
call fcn.0040a220
add esp, 0x14
lea ecx, [edi + 0x154]
push eax
mov dword [esp + 0x30], 0xf
call fcn.004056e0
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov dword [esp + 0x2c], ebp
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405fb8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.HDMI
call fcn.00405bb0
mov eax, dword [edi + 0x1b4]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov dword [esp + 0x38], 0x10
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
mov ecx, esp
mov dword [esp + 0x24], esp
push str.IDS_HDMI
mov byte [esp + 0x3c], 0x11
call fcn.00405bb0
mov eax, dword [edi + 0x1b0]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov byte [esp + 0x40], 0x12
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x20]
add esp, 4
push eax
mov dword [esp + 0x40], ebp
call fcn.0040a220
add esp, 0x14
lea ecx, [edi + 0x158]
push eax
mov dword [esp + 0x30], 0x13
call fcn.004056e0
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov dword [esp + 0x2c], ebp
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40606a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.DisplayPort
call fcn.00405bb0
mov eax, dword [edi + 0x1b4]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov dword [esp + 0x38], 0x14
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
mov ecx, esp
mov dword [esp + 0x24], esp
push str.IDS_DISPLAYPORT
mov byte [esp + 0x3c], 0x15
call fcn.00405bb0
mov eax, dword [edi + 0x1b0]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov byte [esp + 0x40], 0x16
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x20]
add esp, 4
push eax
mov dword [esp + 0x40], ebp
call fcn.0040a220
add esp, 0x14
lea ecx, [edi + 0x15c]
push eax
mov dword [esp + 0x30], 0x17
call fcn.004056e0
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov dword [esp + 0x2c], ebp
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40611c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.Wireless_Display
call fcn.00405bb0
mov eax, dword [edi + 0x1b4]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov dword [esp + 0x38], 0x18
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
mov ecx, esp
mov dword [esp + 0x24], esp
push str.IDS_WIRELESS_DISPLAY
mov byte [esp + 0x3c], 0x19
call fcn.00405bb0
mov eax, dword [edi + 0x1b0]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
push eax
mov byte [esp + 0x40], 0x1a
call fcn.00403f70
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x24]
add esp, 4
push eax
mov dword [esp + 0x40], ebp
call fcn.0040a220
add esp, 0x14
lea ecx, [edi + 0x160]
push eax
mov dword [esp + 0x30], 0x1b
call fcn.004056e0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x2c], ebp
lea ecx, [eax + 0xc]
lock xadd dword [ecx], ebp
dec ebp
test ebp, ebp
jg 0x4061cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setg cl
mov dword [edi + 0x90], eax
mov dword [edi + 0x1a8], 1
pop edi
pop esi
pop ebp
mov eax, ecx
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
add esp, 0x24
ret 4