Function at 0x443cc0
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x169c
call fcn.0045f430
mov eax, dword [0x4900e8]
push ebx
xor ebx, ebx
test eax, 0x10000
push esi
push edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebx
je 0x443d06
push str.PowerXpressChangeDisplaySettings:_Start_n
call fcn.0040aab0
add esp, 4
xor eax, eax
mov ecx, 0x6a
lea edi, [esp + 0x618]
rep stosd dword es:[edi], eax
mov ecx, 0x6a
lea edi, [esp + 0x228]
rep stosd dword es:[edi], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
lea edx, [esp + 0x968]
mov dword [esp + 0x4c], eax
mov esi, 8
xor eax, eax
mov edi, edx
mov ecx, 0x6a
rep stosd dword es:[edi], eax
mov dword [edx], 0x1a8
add edx, 0x1a8
dec esi
jne 0x443d50
mov dword [esp + 0x18], ebx
jmp 0x443d72
xor ebx, ebx
push ebx
lea ecx, [esp + 0x96c]
push ecx
push ebx
push ebx
call dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
test eax, eax
je 0x443e13
lea edi, [esp + 0xa0c]
lea esi, [esp + 0x968]
mov dword [esp + 0x24], edi
lea ecx, [ecx]
mov eax, dword [edi]
test al, 4
je 0x443dc8
test al, 1
je 0x443dc8
mov ecx, 0x6a
lea edi, [esp + 0x618]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], 1
test al, 8
jne 0x443de6
lea edx, [edi + 4]
push edx
call fcn.004421e0
xor ecx, ecx
add esp, 4
test al, al
setne cl
inc ecx
mov eax, ecx
mov dword [esp + ebx*4 + 0x30], eax
add edi, 0x1a8
push 0
lea esi, [edi - 0xa4]
push esi
inc ebx
push ebx
push 0
mov dword [esp + 0x34], edi
call dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
test eax, eax
jne 0x443da0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x443e9d
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
lea edx, [esp + 0x968]
mov dword [esp + 0x4c], eax
mov esi, 8
xor eax, eax
mov edi, edx
mov ecx, 0x6a
rep stosd dword es:[edi], eax
mov dword [edx], 0x1a8
add edx, 0x1a8
dec esi
jne 0x443e41
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 0xc8
mov dword [esp + 0x14], eax
jne 0x443d70
test dword [0x4900e8], 0x10000
je 0x444711
push str.PowerXpressChangeDisplaySettings:_No_primary_desktop__timeout_for_20_secs_n
call fcn.0040aab0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x443ebf
test dword [0x4900e8], 0x10000
je 0x443ebf
push eax
push str.PowerXpressChangeDisplaySettings:_Before_ChangeDisplaySettingsEx__wait_for_100_d_millisec_n
call fcn.0040aab0
add esp, 8
xor ebx, ebx
lea esi, [esp + 0xa0c]
mov eax, dword [esi]
test al, 1
je 0x443edc
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + ebx*4 + 0x30]
or edx, ecx
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x10]
mov edx, dword [esp + ebx*4 + 0x30]
or edi, edx
test al, 8
mov dword [esp + 0x10], edi
jne 0x443f25
push 0xb
lea edi, [esi - 0xa0]
push str..DISPLAY
push edi
call fcn.0045fc11
add esp, 0xc
test eax, eax
jne 0x443f25
test dword [0x4900e8], 0x10000
je 0x443f25
mov eax, dword [esi]
push eax
push edi
push str.DeviceName:__s__StateFlag:__.8X
call fcn.0040aab0
add esp, 0xc
inc ebx
add esi, 0x1a8
cmp ebx, 8
jb 0x443ec8
mov al, byte [esp + 0x10]
test al, 1
jne 0x443f5f
test dword [0x4900e8], 0x10000
je 0x444711
push str.PowerXpressChangeDisplaySettings:_fail_due_to_integrated_display_device_is_not_enabled_loaded__n
call fcn.0040aab0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, 2
test bl, al
jne 0x443f8e
test dword [0x4900e8], 0x10000
je 0x444711
push str.PowerXpressChangeDisplaySettings:_fail_due_to_discrete_display_device_is_not_enabled_loaded__n
call fcn.0040aab0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esp + 0x1c]
test al, 1
je 0x443fbe
test al, 2
je 0x443fbe
test dword [0x4900e8], 0x10000
je 0x443fb3
push str.PowerXpressChangeDisplaySettings:_already_has_an_extended_desktop_n
call fcn.0040aab0
add esp, 4
mov ecx, 1
mov dword [esp + 0x2c], ecx
jmp 0x443ffb
mov ecx, dword [esp + 0x20]
cmp dword [esp + ecx*4 + 0x30], ebx
jne 0x443ff6
cmp dword [ebp + 8], ebx
jne 0x443ff6
test dword [0x4900e8], 0x10000
je 0x444449
push str.PowerXpressChangeDisplaySettings:_Os_automatically_setup_primary_to_discrete_already_n
call fcn.0040aab0
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 1
mov edx, dword [esp + 0x20]
mov eax, dword [esp + edx*4 + 0x30]
cmp eax, ecx
mov dword [esp + 0x24], eax
jne 0x44401e
xor eax, eax
lea ecx, [ecx]
cmp dword [esp + eax*4 + 0x30], ebx
je 0x44402e
inc eax
cmp eax, 8
jb 0x444010
jmp 0x444049
xor eax, eax
cmp dword [esp + eax*4 + 0x30], ecx
je 0x44402e
inc eax
cmp eax, 8
jb 0x444020
jmp 0x444049
imul eax, eax, 0x1a8
lea esi, [esp + eax + 0x968]
lea edi, [esp + 0x228]
mov ecx, 0x6a
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 8]
mov esi, 1
cmp eax, esi
jne 0x4440bf
lea eax, [esp + 0x190]
push eax
mov dword [esp + 0x194], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x4440bf
mov eax, dword [esp + 0x194]
mov edi, dword [esp + 0x1a0]
xor ecx, ecx
cmp eax, 6
sete cl
xor edx, edx
cmp edi, ebx
sete dl
cmp edx, ecx
jne 0x4440bf
call fcn.0044f440
test eax, eax
je 0x4440bf
push 0xc
lea eax, [esp + 0x1a8]
push str.Service_Pack
push eax
mov dword [esp + 0x34], esi
call fcn.0045fc11
add esp, 0xc
test eax, eax
jne 0x4440bf
mov dword [esp + 0x28], eax
mov esi, dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
xor eax, eax
mov ecx, 0x27
lea edi, [esp + 0x50]
rep stosd dword es:[edi], eax
mov ecx, 0x27
lea edi, [esp + 0x578]
rep stosd dword es:[edi], eax
mov ecx, 0x27
lea edi, [esp + 0xf0]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x50]
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0x624]
push edx
call esi
lea eax, [esp + 0x578]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x234]
push ecx
call esi
mov eax, dword [0x4900e8]
mov edi, 0x10000
test edi, eax
je 0x444153
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xc4]
push ecx
push edx
push eax
push str.PowerXpressChangeDisplaySettings:_current_mode__.4dx_.4dx_2d__2dHz:_.8x_n
call fcn.0040aab0
add esp, 0x18
lea ecx, [esp + 0xf0]
push ecx
lea edx, [esp + 0x54]
push edx
push 0xffffffffffffffff
lea eax, [esp + 0x238]
push eax
call fcn.00451a40
test eax, eax
je 0x4441c9
test dword [0x4900e8], edi
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x15c]
mov esi, dword [esp + 0x168]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc8], esi
je 0x4441c9
mov edi, dword [esp + 0x78]
push edi
push esi
push eax
push ecx
push edx
push str.PowerXpressChangeDisplaySettings:_Candidate_mode_to_set__.4dx_.4dx_2d__2dHz:_.8x_n
call fcn.0040aab0
add esp, 0x18
mov eax, dword [esp + 0x2c]
test eax, eax
mov esi, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc0]
mov edi, dword [sym.imp.USER32.dll_ChangeDisplaySettingsExA]
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ebx
je 0x4442af
xor eax, eax
push eax
push 0x10000001
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x23c]
push edx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
call edi
test eax, eax
je 0x44424f
test dword [0x4900e8], 0x10000
je 0x444711
push str.PowerXpressChangeDisplaySettings:_fail_due_to_cannot_remove_extended_dekstop_ChangeDisplaySettingsEx_1__fail_n
call fcn.0040aab0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0
push 0
push 0
call edi
test eax, eax
mov eax, dword [0x4900e8]
je 0x444285
test eax, 0x10000
je 0x444711
push str.PowerXpressChangeDisplaySettings:_fail_due_to_cannot_remove_extended_dekstop_ChangeDisplaySettingsEx_2__fail_n
call fcn.0040aab0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, 0x10000
je 0x444299
push str.PowerXpressChangeDisplaySettings:_successfully_remove_extended_desktop_before_perform_change_desktop_n
call fcn.0040aab0
add esp, 4
mov ecx, dword [esp + 0x24]
mov eax, 2
cmp ecx, eax
jne 0x4442af
cmp dword [ebp + 8], eax
je 0x444449
test dword [0x4900e8], 0x10000
je 0x4442c8
push str.PowerXpressChangeDisplaySettings:_Ready_to_ChangeDisplaySettingsEx_n
call fcn.0040aab0
add esp, 4
test dword [esp + 0x2cc], 0x8000000
je 0x4442eb
cmp dword [ebp + 8], 1
jne 0x4442eb
lea eax, [esp + 0x2d0]
push eax
call fcn.004429c0
add esp, 4
call fcn.0044e780
cmp eax, 9
jne 0x444455
xor eax, eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], eax
mov word [esp + 0x7c], ax
mov word [esp + 0x7e], ax
mov eax, dword [esp + 0x78]
test eax, 0x20000000
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], ebx
je 0x444332
and eax, 0xdfffffff
mov dword [esp + 0x78], eax
xor esi, esi
push esi
push 0x10000011
push esi
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x23c]
push edx
call edi
test eax, eax
mov ebx, 0x10000
je 0x444368
test dword [0x4900e8], ebx
je 0x444368
push str._1_win7:_CDS_fail_n
call fcn.0040aab0
add esp, 4
push esi
push esi
push esi
push esi
push esi
call edi
test eax, eax
je 0x444388
test dword [0x4900e8], ebx
je 0x444388
push str._2_win7:_CDS_fail_n
call fcn.0040aab0
add esp, 4
push esi
push 0x10000001
push esi
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x62c]
push ecx
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], esi
call edi
test eax, eax
je 0x4443e0
test dword [0x4900e8], ebx
je 0x444711
push str._3_win7:_CDS_fail_n
call fcn.0040aab0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push esi
push esi
push esi
push esi
call edi
test eax, eax
je 0x444400
test dword [0x4900e8], ebx
je 0x444400
push str._4_win7:_CDS_fail_n
call fcn.0040aab0
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
je 0x444430
test dword [0x4900e8], 0x10000
je 0x444421
push str.PowerXpressChangeDisplaySettings:_apply_workaround_to_disable_enable_DWM_n
call fcn.0040aab0
add esp, 4
call fcn.0044f420
cmp eax, 1
jne 0x444430
call fcn.0044f430
test dword [0x4900e8], 0x10000
je 0x444449
push str.PowerXpressChangeDisplaySettings:_End_n
call fcn.0040aab0
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
lea ecx, [ecx]
mov edi, dword [sym.imp.USER32.dll_ChangeDisplaySettingsExA]
xor esi, esi
push esi
push 0x10000001
push esi
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x62c]
push eax
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], esi
call edi
test eax, eax
jne 0x4446b6
mov eax, dword [esp + 0x78]
test eax, 0x20000000
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], edx
mov word [esp + 0x7c], si
mov word [esp + 0x7e], si
je 0x4444e1
and eax, 0xdfffffff
mov dword [esp + 0x78], eax
push esi
push 0x10000011
push esi
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x23c]
push ecx
call edi
test eax, eax
je 0x444514
test dword [0x4900e8], 0x10000
je 0x444514
push str.PowerXpressChangeDisplaySettings:_fail_due_to_ChangeDisplaySettingsEx_2__fail_n
call fcn.0040aab0
add esp, 4
push esi
push esi
push esi
push esi
push esi
call edi
test eax, eax
je 0x444538
test dword [0x4900e8], 0x10000
je 0x444538
push str.PowerXpressChangeDisplaySettings:_fail_due_to_ChangeDisplaySettingsEx_3__fail_n
call fcn.0040aab0
add esp, 4
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], esi
mov esi, dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
mov edi, edi
xor ebx, ebx
push ebx
lea edx, [esp + 0x3d4]
push edx
xor eax, eax
push ebx
mov ecx, 0x6a
lea edi, [esp + 0x3dc]
rep stosd dword es:[edi], eax
push ebx
mov dword [esp + 0x3e0], 0x1a8
call esi
test eax, eax
je 0x444613
mov eax, dword [esp + 0x474]
test al, 4
je 0x4445b4
test al, 1
je 0x4445b4
mov ecx, 0x6a
lea esi, [esp + 0x3d0]
lea edi, [esp + 0x7c0]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
mov dword [esp + 0x18], 1
test al, 8
jne 0x4445da
test dword [0x4900e8], 0x10000
je 0x4445da
push eax
lea eax, [esp + 0x3d8]
push eax
push str.DeviceName:__s__StateFlag:__.8X
call fcn.0040aab0
add esp, 0xc
xor eax, eax
mov ecx, 0x6a
lea edi, [esp + 0x3d0]
rep stosd dword es:[edi], eax
push eax
lea ecx, [esp + 0x3d4]
push ecx
inc ebx
push ebx
push eax
mov dword [esp + 0x3e0], 0x1a8
call esi
test eax, eax
jne 0x444582
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x44461f
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0xc8
je 0x44463a
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x444550
test eax, eax
jbe 0x444659
mov ecx, dword [0x4900e8]
mov esi, 0x10000
test esi, ecx
je 0x44465e
push eax
push str.PowerXpressChangeDisplaySettings:_After_ChangeDisplaySettingEx__wait_for_100_d_millisec
call fcn.0040aab0
add esp, 8
jmp 0x44465e
mov esi, 0x10000
lea edx, [esp + 0x868]
push edx
call fcn.004421e0
add esp, 4
test al, al
mov eax, dword [ebp + 8]
je 0x44467a
cmp eax, 2
jmp 0x44467d
cmp eax, 1
je 0x4446d8
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
test dword [0x4900e8], esi
je 0x4446a2
mov eax, dword [esp + 0x10]
inc eax
push eax
push str.PowerXpressChangeDisplaySettings:_fail_and_retry__d
call fcn.0040aab0
add esp, 8
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 0x32
mov dword [esp + 0x10], eax
jb 0x444460
jmp 0x4446ed
test dword [0x4900e8], 0x10000
je 0x444711
push str.PowerXpressChangeDisplaySettings:_fail_due_to_ChangeDisplaySettingsEx_1__fail_n
call fcn.0040aab0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [0x4900e8], esi
je 0x4446ed
push str.PowerXpressChangeDisplaySettings:_desktop_correctly_set_on_target_adapter
call fcn.0040aab0
add esp, 4
cmp dword [esp + 0x10], 0x32
jne 0x444400
test dword [0x4900e8], 0x10000
je 0x444711
push str.PowerXpressChangeDisplaySettings:_End_n
call fcn.0040aab0
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret