Function at 0x450d40
Capabilities:
Check for minimum number of windows on screen
Enumerate gui resources

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x444
cmp dword [ebp + 0x14], 0
push edi
mov edi, ecx
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0
jne 0x450d6f
cmp dword [ebp + 0x18], 0
jne 0x450d6f
xor al, al
pop edi
mov esp, ebp
pop ebp
ret 0x20
mov eax, dword [edi + 0x1b8]
push ebx
push esi
mov esi, 1
mov dword [ebp - 8], esi
mov ebx, esi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
cmp eax, 0x100000
je 0x450f4f
cmp eax, 0x200000
je 0x450deb
cmp eax, 0x400000
jne 0x450f86
push 0
push 0
call fcn.0049f9e0
test al, 1
je 0x450ed9
test eax, 0x300
je 0x450ed9
mov ecx, eax
and ecx, 0x100
neg ecx
sbb ecx, ecx
and ecx, esi
mov dword [ebp - 8], ecx
test eax, 0x200
jne 0x450f86
mov dword [ebp - 0xc], 0
jmp 0x450f86
call fcn.004c66e0
test byte [0x652fc0], 4
mov esi, eax
je 0x450e10
push esi
push str.hFocus__x_n
push 3
push str.CPluginZone::SetGestureAndSendAction
call fcn.004cb3a0
add esp, 0x10
push esi
call dword [sym.imp.USER32.dll_GetParent]
push 0
mov ebx, eax
call fcn.004c7a40
add esp, 4
cmp eax, 0xb
jge 0x450eeb
cmp dword [edi + 0x24], 0
jne 0x450e49
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov ecx, dword [edi + 0x24]
push 8
call fcn.00427740
test eax, eax
jne 0x450eeb
test ebx, ebx
je 0x450eeb
test byte [0x652fc0], 4
je 0x450e81
push ebx
push str.hParent__x_n
push 3
push str.CPluginZone::SetGestureAndSendAction
call fcn.004cb3a0
add esp, 0x10
push 0x104
lea eax, [ebp - 0x444]
push eax
push esi
mov esi, dword [sym.imp.USER32.dll_GetClassNameW]
call esi
push 0x104
lea eax, [ebp - 0x23c]
push eax
push ebx
call esi
push 0x10
lea eax, [ebp - 0x23c]
push str.SHELLDLL_DefView
push eax
call fcn.004d277f
add esp, 0xc
test eax, eax
jne 0x450eeb
push 0xd
lea eax, [ebp - 0x444]
push str.SysListView32
push eax
call fcn.004d277f
add esp, 0xc
test eax, eax
jne 0x450eeb
mov ecx, edi
call fcn.0044f0c0
pop esi
pop ebx
xor al, al
pop edi
mov esp, ebp
pop ebp
ret 0x20
mov ecx, edi
call fcn.0044f770
mov ecx, edi
test eax, eax
je 0x450edb
push 0
push 0
call fcn.0049f9e0
test al, 0x10
mov esi, 1
mov eax, 0
mov ecx, edi
push eax
cmove esi, eax
push eax
mov dword [ebp - 8], esi
call fcn.0049f9e0
test al, 0x20
mov esi, 1
mov eax, 0
mov ecx, edi
cmove esi, eax
mov dword [ebp - 0xc], esi
call fcn.0044f810
neg eax
mov ecx, edi
sbb eax, eax
and eax, 1
mov dword [ebp - 0x14], eax
call fcn.0044f7c0
test eax, eax
jne 0x450f86
mov dword [ebp - 0x10], eax
jmp 0x450f86
call fcn.0044f8b0
mov ecx, edi
test eax, eax
je 0x450edb
push 0
push 0
call fcn.0049f9e0
test al, 2
mov ecx, edi
mov eax, 0
push eax
cmove esi, eax
push eax
mov dword [ebp - 8], esi
call fcn.0049f9e0
test al, 4
mov eax, 0
cmove ebx, eax
mov dword [ebp - 0xc], ebx
push 0
push 0
mov ecx, edi
xor bl, bl
call fcn.0049ece0
test eax, 0x800
je 0x4510bc
cmp dword [edi + 0x1c4], 0
je 0x4510bc
cmp dword [edi + 0x1b8], 0x200000
jne 0x4510bc
cmp byte [edi + 0x204], 3
jne 0x4510bc
push edi
push 0x44e1c0
mov dword [edi + 0x210], 0
mov dword [edi + 0x214], 0
call dword [sym.imp.USER32.dll_EnumWindows]
push 0
call fcn.004c7a40
add esp, 4
cmp eax, 0xc
jg 0x451005
push edi
push 0x44e2e0
call fcn.004c6f00
add esp, 8
mov eax, dword [edi + 0x214]
mov ecx, dword [edi + 0x210]
lea edx, [ecx + eax]
test edx, edx
je 0x45104d
mov ecx, dword [edi + 0x1dc]
imul eax, dword [edi + 0x218], 0x64
add ecx, edx
imul ecx, dword [edi + 0x1d4]
xor edx, edx
div ecx
mov ecx, dword [edi + 0x1d8]
mov esi, eax
mov eax, dword [edi + 0x214]
cmp esi, ecx
cmovb esi, ecx
mov ecx, dword [edi + 0x210]
jmp 0x451050
mov esi, dword [ebp + 0x10]
test byte [0x652fc0], 4
mov dword [ebp + 0x10], esi
je 0x451079
push esi
push dword [edi + 0x218]
push eax
push ecx
push str.DesktopAppCont:_d__MetroAppCount:__dTouchPadWidth:__d__Threshold:__d_n
push 3
push str.CPluginZone::SetGestureAndSendAction
call fcn.004cb3a0
add esp, 0x1c
cmp dword [ebp + 8], esi
mov esi, dword [ebp + 0xc]
jbe 0x45109e
mov eax, dword [ebp + 0x14]
test eax, eax
jle 0x451093
mov bl, 1
mov dword [ebp - 4], 4
jmp 0x451107
mov bl, 2
mov dword [ebp - 4], 3
jmp 0x451107
cmp esi, dword [edi + 0x1d0]
jbe 0x451107
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x4510b8
mov bl, 8
mov dword [ebp - 4], 1
jmp 0x451107
mov bl, 4
jmp 0x451100
mov esi, dword [ebp + 0x10]
mov dword [ebp + 0x10], esi
cmp dword [ebp + 8], esi
jbe 0x4510e2
mov eax, dword [ebp + 0x14]
test eax, eax
jle 0x4510d9
mov bl, 1
mov dword [ebp - 4], 4
jmp 0x4510e2
mov bl, 2
mov dword [ebp - 4], 3
cmp dword [ebp + 0xc], esi
mov esi, dword [ebp + 0xc]
jbe 0x451107
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x4510fd
or bl, 8
mov dword [ebp - 4], 1
jmp 0x451107
or bl, 4
mov dword [ebp - 4], 2
mov dl, byte [0x5daa60]
mov dh, byte [0x5daa61]
test bl, dl
je 0x451129
test bl, dh
je 0x451129
cmp esi, dword [ebp + 8]
movzx ecx, dh
movzx eax, dl
cmova ecx, eax
and bl, cl
cmp dword [ebp - 8], 0
jne 0x451133
not dh
and bl, dh
cmp dword [ebp - 0xc], 0
jne 0x45113d
not dl
and bl, dl
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jne 0x451147
and bl, 0xf7
cmp dword [ebp - 0x10], 0
jne 0x451150
and bl, 0xfb
push 0
push 0
mov ecx, edi
call fcn.0049ece0
test eax, 0x800
je 0x45118e
push 0
push 0
mov ecx, edi
call fcn.0049ece0
test eax, 0x800
je 0x45117d
cmp dword [edi + 0x1c4], 0
je 0x45118e
mov cl, byte [0x5daa60]
mov dl, byte [0x5daa61]
jmp 0x45122a
mov eax, dword [edi + 0x1c]
cmp eax, 6
je 0x4511a9
cmp eax, 4
je 0x4511a9
cmp eax, 8
je 0x4511a9
cmp eax, 7
je 0x4511a9
xor esi, esi
jmp 0x4511ae
mov esi, 1
cmp dword [edi + 0x24], 0
jne 0x4511cb
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
cmp dword [ebp + 0x20], 0
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0xd94]
je 0x4511e9
test esi, esi
jne 0x4511e2
test eax, eax
je 0x4511e9
mov ecx, 1
jmp 0x4511eb
xor ecx, ecx
cmp dword [ebp + 0x24], 0
je 0x451200
test esi, esi
jne 0x4511f9
test eax, eax
je 0x451200
mov esi, 1
jmp 0x451202
xor esi, esi
mov dl, byte [0x5daa61]
test bl, dl
je 0x451216
test ecx, ecx
jne 0x451216
mov al, dl
not al
and bl, al
mov cl, byte [0x5daa60]
test bl, cl
je 0x45122a
test esi, esi
jne 0x45122a
mov al, cl
not al
and bl, al
test byte [0x652fc0], 4
je 0x45125c
movzx eax, bl
push eax
movzx eax, cl
push eax
movzx eax, dl
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push str.DistH_d__DistV_d__thed_d__bgmHMask_x__bgmVMask_x__bgm_x_n
push 3
push str.CPluginZone::SetGestureAndSendAction
call fcn.004cb3a0
add esp, 0x24
xor esi, esi
cmp byte [edi + 0x204], 3
jne 0x45128f
test bl, 0xc
je 0x45128f
test dword [edi + 0x1b8], 0x200000
je 0x45128f
push esi
push esi
mov ecx, edi
call fcn.0049ece0
test eax, 0x800
je 0x45128f
mov esi, 1
jmp 0x451295
and bl, byte [edi + 0x204]
push 0
push 0
mov ecx, edi
call fcn.0049f0a0
test al, 0x10
je 0x4512be
test esi, esi
jne 0x4512be
mov al, byte [edi + 0x205]
test al, 8
je 0x4512b7
and bl, 0xf7
jmp 0x4512be
test al, 4
je 0x4512be
and bl, 0xfb
test bl, bl
je 0x4515ed
mov byte [edi + 0x205], bl
test esi, esi
je 0x4512e8
mov al, bl
not al
movzx esi, al
and esi, 8
or esi, 0x80
shr esi, 3
mov dword [ebp + 0xc], esi
jmp 0x4512f9
movzx eax, bl
push eax
call fcn.0044f930
add esp, 4
mov dword [ebp + 0xc], eax
mov esi, eax
test dword [edi + 0x1b8], 0x200000
mov dword [edi + 0x208], 0
mov dword [edi + 0x20c], 0
je 0x45133a
push 0
push 0
lea eax, [ebp - 0x34]
mov ecx, edi
push eax
call fcn.004a0020
mov ecx, 1
test dword [eax + 4], 0x800
je 0x45133d
mov bh, cl
jmp 0x45133f
mov ecx, dword [ebp - 0x18]
xor bh, bh
test cl, 1
je 0x451361
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x24]
push eax
push dword [eax]
lea eax, [ebp + 8]
push eax
call fcn.00408b10
push dword [ebp - 0x24]
call fcn.004cf489
add esp, 4
test bh, bh
je 0x45137f
cmp esi, 3
jne 0x451371
mov esi, 7
jmp 0x45137c
cmp esi, 7
mov eax, 3
cmove esi, eax
mov dword [ebp + 0xc], esi
test byte [0x652fc0], 4
je 0x4513a4
push esi
call fcn.004516d0
push eax
push esi
push str.Gesture_motion_eg0x_08X__detected:__s_n
push 3
push str.CPluginZone::SetGestureAndSendAction
call fcn.004cb3a0
add esp, 0x18
test dword [edi + 0x1b8], 0x600000
je 0x45141b
cmp dword [edi + 0x24], 0
jne 0x4513cd
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov eax, dword [edi + 0x24]
mov dword [ebp + 8], eax
test eax, eax
jne 0x4513f1
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
mov eax, dword [ebp + 8]
add esp, 0xc
push dword [edi + 0x1b8]
mov esi, dword [edi + 0x24]
mov ecx, eax
push 8
call fcn.00427740
push eax
push dword [ebp - 4]
mov ecx, esi
push 0
push 0x3eb
push dword [edi + 0x28]
call fcn.0042ba50
mov esi, dword [ebp + 0xc]
test dword [edi + 0x1b8], 0x200000
je 0x451452
cmp dword [edi + 0x24], 0
jne 0x451444
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov ecx, dword [edi + 0x24]
push 0x20
call fcn.0042fb80
test eax, eax
jne 0x451495
test dword [edi + 0x1b8], 0x400000
je 0x451475
push 0x80
mov ecx, edi
call fcn.00403e00
mov ecx, eax
call fcn.0042fb80
test eax, eax
jne 0x451495
test dword [edi + 0x1b8], 0x100000
je 0x45149e
push 4
mov ecx, edi
call fcn.00403e00
mov ecx, eax
call fcn.0042fb80
test eax, eax
je 0x45149e
mov dword [ebp + 0xc], 1
jmp 0x4514a5
mov dword [ebp + 0xc], 0
cmp dword [edi + 0x24], 0
jne 0x4514c2
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov ecx, dword [edi + 0x24]
push 0
push edi
call fcn.0042b0a0
cmp dword [ebp + 0xc], 0
jne 0x4515a0
shl esi, 0xc
or esi, dword [edi + 0x1b8]
test byte [0x652fc0], 4
je 0x4514fe
push esi
push str.Calling_DLL_to_send_gesture_plugin_message:_0x_08X_n
push 3
push str.CPluginZone::SetGestureAndSendAction
call fcn.004cb3a0
add esp, 0x10
cmp dword [edi + 0x24], 0
jne 0x45151b
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov eax, dword [edi + 0x24]
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x451528
lea ecx, [eax + 0x40]
mov eax, dword [ecx]
lea edx, [ebp + 0xc]
push edx
push 0x10000101
push ecx
call dword [eax + 0xc]
or ecx, 0xffffffff
test eax, eax
push 1
cmove ecx, dword [ebp + 0xc]
push esi
push ecx
mov ecx, 0x6570a8
call fcn.004867d0
cmp dword [edi + 0x24], 0
jne 0x45156b
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov eax, dword [edi + 0x24]
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x451578
lea ecx, [eax + 0x40]
mov eax, dword [ecx]
lea edx, [ebp + 0xc]
push edx
push 0x10000101
push ecx
call dword [eax + 0xc]
test eax, eax
mov ecx, 0x6570a8
push 0
mov eax, 0xffffffff
cmove eax, dword [ebp + 0xc]
push esi
push eax
call fcn.004867d0
cmp dword [edi + 0x1c4], 0
jne 0x4515be
test bl, 3
je 0x4515b7
and byte [edi + 0x204], 3
jmp 0x4515be
and byte [edi + 0x204], 0xc
test dword [edi + 0x1b8], 0x200000
je 0x4515dc
push 0
push 0
mov ecx, edi
call fcn.0049ece0
test eax, 0x800
jne 0x4515e3
mov ecx, edi
call fcn.0044f0c0
mov dword [edi + 0x1c4], 1
pop esi
mov al, bl
pop ebx
pop edi
mov esp, ebp
pop ebp
ret 0x20