Function at 0x4e3400
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x524
xor eax, eax
mov dword [ebp - 0x84], ecx
push ebx
push esi
mov dword [ebp - 0x88], eax
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x94], eax
xorps xmm0, xmm0
mov dword [ebp - 0x50], eax
xor esi, esi
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x74]
push edi
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x90], esi
movlpd qword [ebp - 0x7c], xmm0
mov dword [ebp - 0x80], eax
call fcn.004e2ab0
mov ebx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x74]
cmp edi, ebx
je 0x4e34d1
add edi, 4
mov ecx, dword [edi - 4]
mov eax, dword [edi + 4]
mov edx, dword [edi]
add eax, ecx
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 8]
add eax, edx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x34], eax
cmp esi, dword [ebp - 0x50]
je 0x4e3496
movups xmm0, xmmword [ebp - 0x40]
movups xmmword [esi], xmm0
add esi, 0x10
mov dword [ebp - 0x90], esi
jmp 0x4e34b5
lea eax, [ebp - 0x40]
push eax
push esi
lea ecx, [ebp - 0x94]
call fcn.004e77b0
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x90]
mov dword [ebp - 0x50], eax
add edi, 0x68
lea eax, [edi - 4]
cmp eax, ebx
jne 0x4e3464
mov eax, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x74]
mov dword [ebp - 0x88], eax
test edi, edi
je 0x4e352a
cmp edi, ebx
je 0x4e34f1
nop dword [eax]
mov ecx, edi
call fcn.004e29d0
add edi, 0x68
cmp edi, ebx
jne 0x4e34e0
mov edi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x6c]
sub eax, edi
sar eax, 3
imul eax, eax, 0xc4ec4ec5
imul ecx, eax, 0x68
mov eax, edi
cmp ecx, 0x1000
jb 0x4e3520
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e454a
push ecx
push edi
call fcn.005ab85c
add esp, 8
mov eax, dword fs:[0x2c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
mov ecx, dword [eax]
mov eax, dword [0x74edd0]
cmp eax, dword [ecx + 0x98]
jg 0x4e454f
mov esi, dword [sym.imp.USER32.dll_GetDisplayConfigBufferSizes]
mov eax, 2
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
push 2
call esi
cmp eax, 0x57
jne 0x4e3584
mov eax, 4
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
push 4
call esi
test eax, eax
je 0x4e35a8
cmp dword [0x74b5e8], 2
jne 0x4e359f
push eax
push str.QDC_GetDisplayConfigBufferSizes_failed:__i_n
call fcn.00473c30
add esp, 8
mov eax, 0x10
mov ecx, eax
jmp 0x4e35ae
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
add eax, 0x10
mov esi, 1
cmp eax, esi
mov edx, esi
cmova edx, eax
add ecx, 0x10
cmp ecx, esi
mov dword [ebp - 0xc], edx
mov eax, edx
cmova esi, ecx
mov ecx, 0x48
mul ecx
mov dword [ebp - 8], esi
mov esi, 0xffffffff
cmovb eax, esi
push eax
call fcn.005ab960
mov ebx, eax
mov ecx, pe_nt_image_headers32
mov eax, dword [ebp - 8]
add esp, 4
mul ecx
mov dword [ebp - 0xb0], ebx
cmovb eax, esi
push eax
call fcn.005ab960
mov esi, eax
add esp, 4
mov eax, dword [ebp - 4]
mov dword [ebp - 0x28], esi
test al, 4
je 0x4e3618
lea ecx, [ebp - 0x204]
push ecx
jmp 0x4e361a
push 0
push esi
lea ecx, [ebp - 8]
push ecx
push ebx
lea ecx, [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.USER32.dll_QueryDisplayConfig]
test eax, eax
je 0x4e365f
cmp dword [0x74b5e8], 2
jne 0x4e3646
push eax
push str.QDC_failed:__i_n
call fcn.00473c30
add esp, 8
push ebx
call fcn.005ab969
add esp, 4
push esi
call fcn.005ab969
add esp, 4
xor bl, bl
jmp 0x4e450b
cmp dword [0x74b5e8], 2
jne 0x4e3685
push dword [0x748480]
mov eax, dword [ebp - 4]
push eax
push dword [ebp - 8]
push dword [ebp - 0xc]
push str.QDC_paths__i__modes__i__query__u__method__i_n
call fcn.00473c30
add esp, 0x14
push 0xc
mov dword [ebp - 0x130], 0
call fcn.005ab82c
add esp, 4
lea ecx, [ebp - 0x12c]
mov dword [eax], eax
mov dword [eax + 4], eax
push eax
push 0x10
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 7
mov dword [ebp - 0x11c], 8
mov dword [ebp - 0x138], 0x3f800000
call fcn.004299f0
xor esi, esi
xor edi, edi
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], esi
cmp dword [ebp - 0xc], esi
jbe 0x4e437c
lea esi, [edi + edi*8]
test byte [ebx + esi*8 + 0x44], 1
jne 0x4e372e
cmp dword [0x74b5e8], 2
jne 0x4e436a
push edi
push str.QDC_path__i_inactive_n
call fcn.00473c30
add esp, 8
jmp 0x4e436a
mov eax, dword [ebx + esi*8]
mov ecx, dword [ebx + esi*8 + 4]
mov dword [ebp - 0x258], eax
mov eax, dword [ebx + esi*8 + 8]
mov dword [ebp - 0x250], eax
xor eax, eax
mov word [ebp - 0x24c], ax
lea eax, [ebp - 0x260]
push eax
mov dword [ebp - 0x254], ecx
mov dword [ebp - 0x25c], 0x54
mov dword [ebp - 0x260], 1
call dword [sym.imp.USER32.dll_DisplayConfigGetDeviceInfo]
test eax, eax
jne 0x4e3782
or dword [0x74d708], 4
jmp 0x4e37b4
xor ecx, ecx
cmp dword [0x74b5e8], 2
mov word [ebp - 0x24c], cx
jne 0x4e37a3
push eax
push edi
push str.QDC_path__i_sourceDeviceName_failed_with__i_n
call fcn.00473c30
add esp, 0xc
mov eax, dword [0x74d708]
test al, 4
je 0x4e37b4
or eax, 8
mov dword [0x74d708], eax
mov eax, dword [ebx + esi*8 + 0x14]
mov ecx, dword [ebx + esi*8 + 0x18]
mov dword [ebp - 0x400], eax
mov eax, dword [ebx + esi*8 + 0x1c]
mov dword [ebp - 0x3f8], eax
xor eax, eax
mov word [ebp - 0x364], ax
mov word [ebp - 0x3e4], ax
lea eax, [ebp - 0x408]
push eax
mov dword [ebp - 0x3fc], ecx
mov dword [ebp - 0x404], 0x1a4
mov dword [ebp - 0x408], 2
call dword [sym.imp.USER32.dll_DisplayConfigGetDeviceInfo]
test eax, eax
jne 0x4e3810
or dword [0x74d708], 1
jmp 0x4e3849
xor ecx, ecx
cmp dword [0x74b5e8], 2
mov word [ebp - 0x364], cx
mov word [ebp - 0x3e4], cx
jne 0x4e3838
push eax
push edi
push str.QDC_path__i_deviceName_failed_with__i_n
call fcn.00473c30
add esp, 0xc
mov eax, dword [0x74d708]
test al, 1
je 0x4e3849
or eax, 2
mov dword [0x74d708], eax
mov eax, dword [ebx + esi*8]
mov ecx, dword [ebx + esi*8 + 4]
mov dword [ebp - 0x518], eax
lea eax, [ebp - 0x520]
push eax
mov dword [ebp - 0x514], ecx
mov dword [ebp - 0x51c], 0x114
mov dword [ebp - 0x520], 4
mov dword [ebp - 0x510], 0
call dword [sym.imp.USER32.dll_DisplayConfigGetDeviceInfo]
test eax, eax
je 0x4e38ac
xor ecx, ecx
cmp dword [0x74b5e8], 2
mov word [ebp - 0x50c], cx
jne 0x4e38e6
push eax
push edi
push str.QDC_path__i_adapterName_failed_with__i_n
call fcn.00473c30
add esp, 0xc
cmp dword [0x74b5e8], 2
jne 0x4e38e6
push dword [ebx + esi*8 + 0x20]
movzx eax, word [ebx + esi*8 + 0xe]
push eax
push dword [ebx + esi*8 + 0xc]
lea eax, [ebp - 0x50c]
push eax
lea eax, [ebp - 0x364]
push eax
lea eax, [ebp - 0x24c]
push eax
push edi
push str.QDC_Monitor_path__i._Source_name__S__target_name__S__adapter_name__S._Source_mode__u____u__target_mode__u_n
call fcn.00473c30
add esp, 0x20
cmp dword [ebx + esi*8 + 0x20], 0xffff
jne 0x4e3907
cmp dword [0x74b5e8], 2
jne 0x4e3907
push edi
push str.QDC_path__i_targetInfo.modeInfoIdx_invalid_n
call fcn.00473c30
add esp, 8
mov eax, dword [ebx + esi*8 + 0xc]
mov dword [ebp - 0x2c], eax
cmp eax, 0xffffffff
jne 0x4e3a60
cmp dword [0x74b5e8], 2
jne 0x4e3930
push 0
push edi
push str.QDC_path__i_modeInfoIdx__sourceModeInfoIdx_invalid__virtual_mode__i__n
call fcn.00473c30
add esp, 0xc
cmp word [ebp - 0x24c], 0
je 0x4e436a
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x10], 0
movups xmmword [ebp - 0x24], xmm0
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4e3960
sub ecx, edx
lea eax, [ebp - 0x24c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x24]
call fcn.004134e0
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x4e39fa
cmp dword [ebp - 0x10], 7
lea eax, [ebp - 0x24]
push 0
cmova eax, dword [ebp - 0x24]
push 0
push 0
push 0
push ecx
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
test esi, esi
jle 0x4e39fa
push 0
push esi
lea ecx, [ebp - 0x48]
call fcn.00413bf0
cmp dword [ebp - 0x34], 0xf
lea ecx, [ebp - 0x48]
push 0
cmova ecx, dword [ebp - 0x48]
lea eax, [ebp - 0x24]
cmp dword [ebp - 0x10], 7
push 0
cmova eax, dword [ebp - 0x24]
push esi
push ecx
push dword [ebp - 0x14]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movups xmm0, xmmword [ebp - 0x48]
movups xmmword [ebp - 0x68], xmm0
movq xmm0, qword [ebp - 0x38]
movq qword [ebp - 0x58], xmm0
jmp 0x4e3a13
xorps xmm0, xmm0
mov dword [ebp - 0x58], 0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x80]
call fcn.0042a120
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x4e3a53
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4e3a49
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e454a
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0x24]
call fcn.00413980
jmp 0x4e436a
cmp eax, dword [ebp - 8]
jb 0x4e3a88
cmp dword [0x74b5e8], 2
jne 0x4e436a
push 0
push eax
push edi
push str.QDC_path__i_sourceModeIndex__u_invalid__virtual_mode__i__n
call fcn.00473c30
add esp, 0x10
jmp 0x4e436a
mov ecx, dword [ebp - 0x28]
shl eax, 6
mov dword [ebp - 4], eax
movsx edx, word [eax + ecx + 0x1c]
movsx eax, word [eax + ecx + 0x20]
shl edx, 0x10
or edx, eax
mov eax, edx
mov dword [ebp - 0x34], edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebp - 0x138]
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.004301e0
mov ecx, dword [ebp - 0x134]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [ebp - 0x134]
je 0x4e3b3c
cmp dword [0x74b5e8], 2
jne 0x4e436a
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x28]
push 0
push dword [edx + eax + 0x20]
push dword [edx + eax + 0x1c]
push dword [ebp - 0x2c]
push edi
push str.QDC_path__i_is_a_cloned_source__source_index__i__x__i__y__i__virtual_mode__i__n
call fcn.00473c30
add esp, 0x18
jmp 0x4e436a
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x138]
call fcn.004e7120
mov eax, dword [ebx + esi*8 + 0x14]
xorps xmm0, xmm0
mov ecx, dword [ebx + esi*8 + 0x18]
mov dword [ebp - 0x148], eax
mov eax, dword [ebx + esi*8 + 0x1c]
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0x150]
movups xmmword [ebp - 0x100], xmm0
push eax
movups xmmword [ebp - 0xe8], xmm0
mov dword [ebp - 0xf0], 0
movups xmmword [ebp - 0xd0], xmm0
mov dword [ebp - 0xec], 0xf
mov byte [ebp - 0x100], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0xf
mov byte [ebp - 0xe8], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0xf
mov byte [ebp - 0xd0], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x150], 0xb
mov dword [ebp - 0x14c], 0x18
mov dword [ebp - 0x144], ecx
call dword [sym.imp.USER32.dll_DisplayConfigGetDeviceInfo]
test eax, eax
jne 0x4e3c45
mov eax, dword [ebp - 0x13c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x739f30]
mulsd xmm0, qword [0x739998]
divsd xmm0, qword [0x7399a8]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0xb4], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x58], 0
lea ecx, [ebp - 0x3e4]
mov dword [ebp - 0x54], 0
movups xmmword [ebp - 0x68], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4e3c63
sub ecx, edx
lea eax, [ebp - 0x3e4]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.004134e0
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0x24]
call fcn.00404f60
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x34], eax
cmp ecx, eax
je 0x4e3cca
call fcn.004143d0
mov eax, dword [ebp - 0x34]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xd0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xc0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0xf
jbe 0x4e3cfe
mov edx, dword [ebp - 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4e3cf4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e454a
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0xf
mov byte [ebp - 0x24], 0
call fcn.00413980
cmp dword [0x748480], 5
xorps xmm0, xmm0
jne 0x4e3e4a
cmp word [ebp - 0x24c], 0
lea eax, [ebp - 0x364]
lea edx, [ebp - 0x24c]
mov dword [ebp - 0x58], 0
cmove edx, eax
mov dword [ebp - 0x54], 0
mov ecx, edx
movups xmmword [ebp - 0x68], xmm0
lea eax, [ecx + 2]
mov dword [ebp - 0x34], eax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4e3d60
sub ecx, dword [ebp - 0x34]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x68]
call fcn.004134e0
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0x24]
call fcn.00404f60
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x34], eax
cmp ecx, eax
je 0x4e3df7
mov ecx, dword [ebp - 0xec]
cmp ecx, 0xf
jbe 0x4e3dcf
mov edx, dword [ebp - 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4e3dc2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e454a
push ecx
push edx
call fcn.005ab85c
mov eax, dword [ebp - 0x34]
add esp, 8
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x100], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xf0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0xf
jbe 0x4e3e2b
mov edx, dword [ebp - 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4e3e21
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e454a
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0xf
mov byte [ebp - 0x24], 0
call fcn.00413980
jmp 0x4e3fe8
cmp word [ebp - 0x364], 0
lea eax, [ebp - 0x24c]
lea edx, [ebp - 0x364]
mov dword [ebp - 0x14], 0
cmove edx, eax
mov dword [ebp - 0x10], 0
mov ecx, edx
movups xmmword [ebp - 0x24], xmm0
lea eax, [ecx + 2]
mov dword [ebp - 0x34], eax
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4e3e80
sub ecx, dword [ebp - 0x34]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x24]
call fcn.004134e0
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x4e3f1f
cmp dword [ebp - 0x10], 7
lea eax, [ebp - 0x24]
push 0
cmova eax, dword [ebp - 0x24]
push 0
push 0
push 0
push ecx
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x34], eax
test eax, eax
jle 0x4e3f1f
push 0
push eax
lea ecx, [ebp - 0xac]
call fcn.00413bf0
cmp dword [ebp - 0x98], 0xf
lea ecx, [ebp - 0xac]
push 0
cmova ecx, dword [ebp - 0xac]
lea eax, [ebp - 0x24]
cmp dword [ebp - 0x10], 7
push 0
push dword [ebp - 0x34]
cmova eax, dword [ebp - 0x24]
push ecx
push dword [ebp - 0x14]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movq xmm1, qword [ebp - 0x9c]
movq qword [ebp - 0x38], xmm1
jmp 0x4e3f51
xorps xmm0, xmm0
mov dword [ebp - 0x9c], 0
movups xmmword [ebp - 0xac], xmm0
mov dword [ebp - 0x98], 0xf
movq xmm0, qword [ebp - 0x9c]
mov byte [ebp - 0xac], 0
movq qword [ebp - 0x38], xmm0
movups xmm0, xmmword [ebp - 0xac]
mov ecx, dword [ebp - 0xec]
movups xmmword [ebp - 0x60], xmm0
cmp ecx, 0xf
jbe 0x4e3f96
mov edx, dword [ebp - 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4e3f8c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e454a
push ecx
push edx
call fcn.005ab85c
add esp, 8
movups xmm0, xmmword [ebp - 0x60]
mov ecx, dword [ebp - 0x10]
movups xmmword [ebp - 0x100], xmm0
movq xmm0, qword [ebp - 0x38]
movq qword [ebp - 0xf0], xmm0
cmp ecx, 7
jbe 0x4e3fe8
mov edx, dword [ebp - 0x24]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4e3fde
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e454a
push ecx
push edx
call fcn.005ab85c
add esp, 8
cmp dword [ebp - 0xf0], 0
jne 0x4e4119
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x200], 0x720528
mov dword [ebp - 0x1f0], 0x720520
call fcn.0040d540
or dword [ebp - 0x4c], 4
lea eax, [ebp - 0x1e8]
push ecx
push eax
lea ecx, [ebp - 0x200]
call fcn.0040d420
mov eax, dword [ebp - 0x200]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x200], 0x720530
mov eax, dword [ebp - 0x200]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x204], eax
lea ecx, [ebp - 0x1e8]
call fcn.0040de20
mov edx, str.UnknownDisplayTarget_
mov dword [ebp - 0x1e8], 0x720534
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 0
call fcn.0040e220
push edi
mov ecx, eax
call fcn.00428020
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x1e8]
call fcn.0040d4a0
mov ecx, dword [ebp - 0xec]
cmp ecx, 0xf
jbe 0x4e40dc
mov edx, dword [ebp - 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4e40d2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e454a
push ecx
push edx
call fcn.005ab85c
add esp, 8
movups xmm0, xmmword [ebp - 0x24]
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], 0
movups xmmword [ebp - 0x100], xmm0
movq xmm0, qword [ebp - 0x14]
movq qword [ebp - 0xf0], xmm0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0xf
call fcn.004143d0
lea ecx, [ebp - 0x200]
call fcn.00404ea0
cmp dword [ebp - 0xc0], 0
jne 0x4e424a
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x200], 0x720528
mov dword [ebp - 0x1f0], 0x720520
call fcn.0040d540
or dword [ebp - 0x4c], 2
lea eax, [ebp - 0x1e8]
push ecx
push eax
lea ecx, [ebp - 0x200]
call fcn.0040d420
mov eax, dword [ebp - 0x200]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x200], 0x720530
mov eax, dword [ebp - 0x200]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x204], eax
lea ecx, [ebp - 0x1e8]
call fcn.0040de20
mov edx, str.Unknown_Monitor
mov dword [ebp - 0x1e8], 0x720534
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 0
call fcn.0040e220
push edi
mov ecx, eax
call fcn.00428020
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x1e8]
call fcn.0040d4a0
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0xf
jbe 0x4e420d
mov edx, dword [ebp - 0xd0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4e4203
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e454a
push ecx
push edx
call fcn.005ab85c
add esp, 8
movups xmm0, xmmword [ebp - 0x24]
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], 0
movups xmmword [ebp - 0xd0], xmm0
movq xmm0, qword [ebp - 0x14]
movq qword [ebp - 0xc0], xmm0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0xf
call fcn.004143d0
lea ecx, [ebp - 0x200]
call fcn.00404ea0
cmp dword [0x74b5e8], 2
mov eax, dword [ebx + esi*8 + 0x28]
mov dword [ebp - 0x34], eax
jne 0x4e428b
mov ecx, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 4]
push dword [eax + ecx + 0x14]
push dword [eax + ecx + 0x10]
push dword [eax + ecx + 0x20]
push dword [eax + ecx + 0x1c]
push dword [ebp - 0x2c]
push 0
push dword [ebx + esi*8 + 0x44]
push edi
push str.QDC_path__i_DISPLAYCONFIG_SOURCE_MODE_flags__i__virtual_mode__i__source_index__i__position__i__i_width__i_height__i_rotation__i_n
call fcn.00473c30
mov eax, dword [ebp - 0x34]
add esp, 0x28
cmp eax, 1
je 0x4e42a5
cmp eax, 3
je 0x4e42a5
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0x28]
mov eax, dword [edx + esi + 0x14]
mov ecx, dword [edx + esi + 0x10]
jmp 0x4e42b3
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0x28]
mov eax, dword [edx + esi + 0x10]
mov ecx, dword [edx + esi + 0x14]
mov esi, dword [edx + esi + 0x1c]
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x110], eax
add eax, esi
mov dword [ebp - 0x34], eax
add eax, esi
mov dword [ebp - 0x10c], ecx
mov edx, dword [edx + ebx + 0x20]
add ecx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x114], edx
cdq
sub eax, edx
mov dword [ebp - 0x2c], ecx
mov ecx, eax
mov dword [ebp - 0x118], esi
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x2c]
cdq
sub eax, edx
sar ecx, 1
push 2
sar eax, 1
push eax
push ecx
call dword [sym.imp.USER32.dll_MonitorFromPoint]
mov ebx, dword [ebp - 0xb0]
mov dword [ebp - 0xb8], eax
test eax, eax
jne 0x4e4334
cmp dword [0x74b5e8], 2
jne 0x4e435f
push dword [ebp - 0x2c]
push dword [ebp - 0x34]
push dword [ebp - 4]
push esi
push edi
push str.QDC_path__i_failed_to_grab_HMONITOR_from_rect_ltrb__i___i___i___i_n
call fcn.00473c30
add esp, 0x18
jmp 0x4e435f
mov edx, dword [ebp - 0x84]
cmp dword [edx + 4], esi
mov eax, dword [edx + 8]
cmovle esi, dword [edx + 4]
cmp eax, dword [ebp - 4]
mov ecx, dword [edx]
cmovg eax, dword [ebp - 4]
mov dword [edx + 8], eax
lea eax, [ebp - 0x118]
push eax
mov dword [edx + 4], esi
call fcn.004e28d0
lea ecx, [ebp - 0x118]
call fcn.004e29d0
inc edi
cmp edi, dword [ebp - 0xc]
jb 0x4e3704
mov edi, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x80]
jmp 0x4e437e
xor edi, edi
push ebx
call fcn.005ab969
add esp, 4
push dword [ebp - 0x28]
call fcn.005ab969
add esp, 4
cmp esi, edi
je 0x4e44e1
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x200], 0x720528
mov dword [ebp - 0x1f0], 0x720520
call fcn.0040d540
push ecx
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0x200]
call fcn.0040d420
mov eax, dword [ebp - 0x200]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x200], 0x720530
mov eax, dword [ebp - 0x200]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x204], eax
lea ecx, [ebp - 0x1e8]
call fcn.0040de20
sub edi, esi
mov dword [ebp - 0x1e8], 0x720534
sar edi, 3
imul edi, edi, 0xaaaaaaab
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 0
test edi, edi
je 0x4e445f
nop dword [eax + eax]
mov edx, 0x71e884
lea ecx, [ebp - 0x1f0]
call fcn.0040e220
cmp dword [esi + 0x14], 0xf
mov edx, esi
jbe 0x4e444a
mov edx, dword [esi]
push dword [esi + 0x10]
mov ecx, eax
call fcn.0040fee0
add esp, 4
add esi, 0x18
sub edi, 1
jne 0x4e4430
cmp dword [0x74b5e8], 2
jne 0x4e44d6
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x1e8]
call fcn.0040d4a0
cmp dword [ebp - 0x98], 0xf
lea eax, [ebp - 0xac]
cmova eax, dword [ebp - 0xac]
push eax
push str.Found_missing_monitors__s_n
call fcn.00473c30
mov ecx, dword [ebp - 0x98]
add esp, 8
cmp ecx, 0xf
jbe 0x4e44d6
mov edx, dword [ebp - 0xac]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4e44cc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e458a
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0x200]
call fcn.00404ea0
mov esi, dword [ebp - 0x84]
mov ecx, esi
call fcn.004e31d0
mov ecx, dword [esi]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
lea ecx, [ebp - 0x80]
setne bl
call fcn.0040bf20
lea ecx, [ebp - 0x138]
call fcn.00435d60
mov edx, dword [ebp - 0x88]
test edx, edx
je 0x4e4541
mov ecx, dword [ebp - 0x50]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x4e4537
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4e458f
push ecx
push edx
call fcn.005ab85c
add esp, 8
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.005c695f
push 0x74edd0
call fcn.005ab9bf
add esp, 4
cmp dword [0x74edd0], 0xffffffff
jne 0x4e3551
xor edx, edx
push 0
lea ecx, [edx + 0xa]
call fcn.00412370
add esp, 4
push 0x74edd0
call fcn.005ab96e
add esp, 4
jmp 0x4e3551
call fcn.005c695f
call fcn.005c695f
int3