Function at 0x4042e4
Capabilities:
Create thread
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [ebp + 8]
and eax, 1
test eax, eax
je 0x4044ca
push 0x4131a0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x416f60], eax
cmp dword [0x416f60], 0
jne 0x40431b
xor eax, eax
jmp 0x40462e
push 0x4131b0
mov ecx, dword [0x416f60]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176e0], eax
push 0x4131c8
mov edx, dword [0x416f60]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176cc], eax
push str.GetDisplayDeviceSwitchCapability
mov eax, dword [0x416f60]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176c4], eax
push str.GetDisplayDeviceMode
mov ecx, dword [0x416f60]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176d4], eax
push str.SetDisplayDeviceMode
mov edx, dword [0x416f60]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176d0], eax
push str.GetScreenExpansionStatus
mov eax, dword [0x416f60]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176b4], eax
push str.SetScreenExpansionStatus
mov ecx, dword [0x416f60]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176a8], eax
push str.GetLCDRefreshRateCapability
mov edx, dword [0x416f60]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176d8], eax
push str.GetLCDRefreshRate
mov eax, dword [0x416f60]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176dc], eax
push str.SetLCDRefreshRate
mov ecx, dword [0x416f60]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x41769c], eax
push str.IsExternalDisplayConnected
mov edx, dword [0x416f60]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176b8], eax
push str.GetPowerState
mov eax, dword [0x416f60]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176a0], eax
push str.SetPowerState
mov ecx, dword [0x416f60]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176bc], eax
push str.GetTVStandard
mov edx, dword [0x416f60]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176ac], eax
push str.SetTVStandard
mov eax, dword [0x416f60]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176c0], eax
push str.GetStaticPowerState
mov ecx, dword [0x416f60]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176b0], eax
push str.SetStaticPowerState
mov edx, dword [0x416f60]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176a4], eax
push str.GetCRTCCapabilities
mov eax, dword [0x416f60]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176c8], eax
push str.GetCRTCConfiguration
mov ecx, dword [0x416f60]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4176e4], eax
mov edx, dword [ebp + 8]
and edx, 1
test edx, edx
je 0x404629
mov eax, dword [ebp + 8]
and eax, 2
test eax, eax
je 0x404629
mov ecx, dword [ebp + 8]
and ecx, 4
test ecx, ecx
je 0x404629
push 0x104
lea edx, [ebp - 0x108]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x413364
push 0x5c
lea eax, [ebp - 0x108]
push eax
call fcn.004090a0
add esp, 8
push eax
call fcn.00408e50
add esp, 8
lea ecx, [ebp - 0x108]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x416f5c], eax
cmp dword [0x416f5c], 0
jne 0x404549
xor eax, eax
jmp 0x40462e
call fcn.00402560
push 0x10
call fcn.00408cdb
add esp, 4
mov edx, dword [ebp + 0xc]
mov dword [edx + 8], eax
mov eax, dword [ebp + 0xc]
cmp dword [eax + 8], 0
jne 0x40456e
xor eax, eax
jmp 0x40462e
push str.Press_NPDirect_Hotkey
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov dword [edx + 4], eax
push str.Enable_NPDirect_Hotkey
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov dword [edx], eax
push str.NPDirect_is_uninstalled
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov dword [edx + 8], eax
push str.Exit_Presentation_Hotkey_Thread
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov dword [edx + 0xc], eax
lea eax, [ebp - 4]
push eax
push 6
push 0
push 0x403e7c
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], eax
mov edx, dword [ebp + 0xc]
cmp dword [edx + 4], 0
jne 0x4045ff
xor eax, eax
jmp 0x40462e
lea eax, [ebp - 4]
push eax
push 2
mov ecx, dword [ebp + 0xc]
push ecx
push 0x404027
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [ebp + 0xc]
mov dword [edx], eax
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
jne 0x404629
xor eax, eax
jmp 0x40462e
mov eax, 1
mov esp, ebp
pop ebp
ret