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

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
push rdi
push r12
push r13
push r14
sub rsp, 0x4b0
xor r14d, r14d
mov ebp, r9d
mov rdi, rcx
mov dword [rsp + 0x48], r14d
mov r13d, dword [rsp + 0x500]
mov r12d, r14d
test r13d, r13d
jne 0x140060962
cmp dword [rsp + 0x508], r14d
jne 0x140060962
xor al, al
add rsp, 0x4b0
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret
mov eax, dword [rcx + 0x200]
mov qword [rsp + 0x4e0], rbx
mov ebx, 1
mov qword [rsp + 0x4a8], rsi
mov qword [rsp + 0x4a0], r15
mov dword [rsp + 0x500], ebx
mov r15d, ebx
mov dword [rsp + 0x40], ebx
cmp eax, 0x100000
je 0x140060b07
cmp eax, 0x200000
je 0x1400609e7
cmp eax, 0x400000
jne 0x140060b36
xor r8d, r8d
xor edx, edx
call fcn.1400bc150
test bl, al
je 0x140060a91
test eax, 0x300
je 0x140060a91
bt eax, 8
cmovae ebx, r14d
bt eax, 9
jb 0x140060b36
mov r15d, r14d
jmp 0x140060b36
call fcn.1400f02e0
mov rcx, rax
mov r15, rax
call qword [sym.imp.USER32.dll_GetParent]
xor ecx, ecx
mov rsi, rax
call fcn.1400f1590
cmp eax, 0xb
jge 0x140060aa0
mov rcx, rdi
call fcn.140005b30
mov edx, 8
mov rcx, rax
call fcn.14002f4e0
test eax, eax
jne 0x140060aa0
test rsi, rsi
je 0x140060aa0
lea rdx, [rsp + 0x290]
mov r8d, 0x104
mov rcx, r15
call qword [sym.imp.USER32.dll_GetClassNameW]
lea rdx, [rsp + 0x80]
mov r8d, 0x104
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetClassNameW]
lea rdx, str.SHELLDLL_DefView
lea rcx, [rsp + 0x80]
mov r8d, 0x10
call fcn.1400fd324
test eax, eax
jne 0x140060aa0
lea r8d, [rax + 0xd]
lea rdx, str.SysListView32
lea rcx, [rsp + 0x290]
call fcn.1400fd324
test eax, eax
jne 0x140060aa0
mov rcx, rdi
call fcn.140061150
xor al, al
jmp 0x140061114
mov rcx, rdi
call fcn.1400615e0
mov rcx, rdi
test eax, eax
je 0x140060a94
xor r8d, r8d
xor edx, edx
call fcn.1400bc150
mov rcx, rdi
test al, 0x10
cmove ebx, r14d
xor r8d, r8d
xor edx, edx
call fcn.1400bc150
mov r15d, 1
mov rcx, rdi
test al, 0x20
cmove r15d, r14d
call fcn.140061650
mov ecx, dword [rsp + 0x500]
test eax, eax
cmove ecx, r14d
mov dword [rsp + 0x500], ecx
mov rcx, rdi
call fcn.1400616f0
test eax, eax
jne 0x140060b36
mov dword [rsp + 0x40], r14d
jmp 0x140060b36
call fcn.140061790
mov rcx, rdi
test eax, eax
je 0x140060a94
xor r8d, r8d
xor edx, edx
call fcn.1400bc150
mov rcx, rdi
test al, 2
cmove ebx, r14d
xor r8d, r8d
xor edx, edx
call fcn.1400bc150
test al, 4
cmove r15d, r14d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
xor sil, sil
call fcn.1400bbdd0
mov ecx, 3
bt eax, 0xb
jae 0x140060c41
cmp dword [rdi + 0x20c], r12d
je 0x140060c41
cmp dword [rdi + 0x200], 0x200000
jne 0x140060c41
cmp byte [rdi + 0x24c], cl
jne 0x140060c41
lea rcx, [0x140060130]
mov rdx, rdi
mov qword [rdi + 0x258], r14
call qword [sym.imp.USER32.dll_EnumWindows]
xor ecx, ecx
call fcn.1400f1590
cmp eax, 0xc
jg 0x140060bb0
lea rcx, [0x140060280]
mov rdx, rdi
call fcn.1400f0b20
mov eax, dword [rdi + 0x25c]
add eax, dword [rdi + 0x258]
je 0x140060be5
mov ecx, dword [rdi + 0x224]
xor edx, edx
add ecx, eax
imul eax, dword [rdi + 0x260], 0x64
imul ecx, dword [rdi + 0x21c]
div ecx
mov ebp, eax
mov eax, dword [rdi + 0x220]
cmp ebp, eax
cmovb ebp, eax
mov r10d, dword [rsp + 0x4e8]
mov r9d, dword [rsp + 0x4f0]
cmp r10d, ebp
jbe 0x140060c19
test r13d, r13d
mov r13d, 3
jle 0x140060c11
mov sil, 1
lea r12d, [r13 + 1]
jmp 0x140060c95
mov sil, 2
mov r12d, r13d
jmp 0x140060c95
mov r13d, 3
cmp r9d, dword [rdi + 0x218]
jbe 0x140060c95
mov eax, dword [rsp + 0x508]
test eax, eax
jle 0x140060c3c
mov sil, 8
lea r12d, [r13 - 2]
jmp 0x140060c95
mov sil, 4
jmp 0x140060c8f
mov r10d, dword [rsp + 0x4e8]
cmp r10d, ebp
jbe 0x140060c64
test r13d, r13d
jle 0x140060c5e
mov sil, 1
mov r12d, 4
jmp 0x140060c64
mov sil, 2
mov r12d, ecx
mov r9d, dword [rsp + 0x4f0]
mov r13d, ecx
cmp r9d, ebp
jbe 0x140060c95
mov eax, dword [rsp + 0x508]
test eax, eax
jle 0x140060c8b
or sil, 8
mov r12d, 1
jmp 0x140060c95
or sil, 4
mov r12d, 2
movzx r8d, byte [reloc.OLEAUT32.dll_VariantTimeToDosDateTime]
movzx edx, byte [0x140217bd1]
test sil, r8b
je 0x140060cbe
test sil, dl
je 0x140060cbe
cmp r9d, r10d
movzx ecx, dl
movzx eax, r8b
cmova ecx, eax
and sil, cl
test ebx, ebx
jne 0x140060cc7
not dl
and sil, dl
test r15d, r15d
jne 0x140060cd2
not r8b
and sil, r8b
cmp dword [rsp + 0x500], r14d
jne 0x140060ce0
and sil, 0xf7
cmp dword [rsp + 0x40], r14d
jne 0x140060ceb
and sil, 0xfb
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400bbdd0
bt eax, 0xb
jae 0x140060d22
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400bbdd0
bt eax, 0xb
jae 0x140060dc5
cmp dword [rdi + 0x20c], r14d
jne 0x140060dc5
mov ecx, dword [rdi + 0x2c]
lea eax, [rcx - 6]
cmp eax, 2
jbe 0x140060d35
mov ebx, r14d
cmp ecx, 4
jne 0x140060d3a
mov ebx, 1
cmp qword [rdi + 0x38], r14
jne 0x140060d59
lea rdx, str.f:checkpoints_tpdrv_buildersuperman1_syntpenhCZone.h
lea rcx, str.m_pManagedPointingDevice
mov r8d, 0x1a9
call fcn.1400eb260
mov rax, qword [rdi + 0x38]
mov ecx, dword [rax + 0x1000]
cmp dword [rsp + 0x518], r14d
je 0x140060d7c
test ebx, ebx
jne 0x140060d75
test ecx, ecx
je 0x140060d7c
mov edx, 1
jmp 0x140060d7f
mov edx, r14d
cmp dword [rsp + 0x520], r14d
je 0x140060d98
test ebx, ebx
jne 0x140060d91
test ecx, ecx
je 0x140060d98
mov ecx, 1
jmp 0x140060d9b
mov ecx, r14d
movzx eax, byte [0x140217bd1]
test sil, al
je 0x140060db0
test edx, edx
jne 0x140060db0
not al
and sil, al
movzx eax, byte [reloc.OLEAUT32.dll_VariantTimeToDosDateTime]
test sil, al
je 0x140060dc5
test ecx, ecx
jne 0x140060dc5
not al
and sil, al
cmp byte [rdi + 0x24c], 3
mov ebx, r14d
jne 0x140060dfd
test sil, 0xc
je 0x140060dfd
test dword [rdi + 0x200], 0x200000
je 0x140060dfd
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400bbdd0
bt eax, 0xb
jae 0x140060dfd
mov ebx, 1
jmp 0x140060e04
and sil, byte [rdi + 0x24c]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400bc0b0
test al, 0x10
je 0x140060e32
test ebx, ebx
jne 0x140060e32
movzx eax, byte [rdi + 0x24d]
test al, 8
je 0x140060e2a
and sil, 0xf7
jmp 0x140060e32
test al, 4
je 0x140060e32
and sil, 0xfb
test sil, sil
je 0x140061110
mov byte [rdi + 0x24d], sil
test ebx, ebx
je 0x140060e5b
movzx eax, sil
not al
movzx ebp, al
and ebp, 8
bts ebp, 7
shr ebp, 3
jmp 0x140060e70
movzx eax, sil
lea rcx, [0x140217b80]
cmp eax, 0x14
cmovae eax, r14d
mov ebp, dword [rcx + rax*4]
test dword [rdi + 0x200], 0x200000
mov qword [rdi + 0x250], r14
je 0x140060ea9
lea rdx, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call fcn.1400bbc50
mov ecx, 1
test dword [rax + 4], 0x800
je 0x140060eac
movzx ebx, cl
jmp 0x140060eae
mov ecx, r14d
xor bl, bl
test cl, 1
je 0x140060ed7
mov r8, qword [rsp + 0x60]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x60]
mov r9, r8
mov r8, qword [r8]
call fcn.1400f8ca0
mov rcx, qword [rsp + 0x60]
call fcn.1400fa318
test bl, bl
je 0x140060eee
cmp ebp, 3
jne 0x140060ee7
mov ebp, 7
jmp 0x140060eee
cmp ebp, 7
cmove ebp, r13d
mov eax, dword [rdi + 0x200]
bt eax, 0x15
jb 0x140060f00
bt eax, 0x16
jae 0x140060f7a
cmp qword [rdi + 0x38], r14
jne 0x140060f1f
lea rdx, str.f:checkpoints_tpdrv_buildersuperman1_syntpenhCZone.h
lea rcx, str.m_pManagedPointingDevice
mov r8d, 0x1a9
call fcn.1400eb260
mov r15, qword [rdi + 0x38]
test r15, r15
jne 0x140060f41
lea rdx, str.f:checkpoints_tpdrv_buildersuperman1_syntpenhCZone.h
lea rcx, str.m_pManagedPointingDevice
mov r8d, 0x1a9
call fcn.1400eb260
mov rbx, qword [rdi + 0x38]
mov edx, 8
mov rcx, r15
call fcn.14002f4e0
mov edx, dword [rdi + 0x200]
xor r9d, r9d
mov dword [rsp + 0x30], edx
mov rdx, qword [rdi + 0x40]
mov dword [rsp + 0x28], eax
mov r8d, 0x3eb
mov rcx, rbx
mov dword [rsp + 0x20], r12d
call fcn.14002f5c0
test dword [rdi + 0x200], 0x200000
je 0x140060f9f
mov rcx, rdi
call fcn.140005b30
mov edx, SafeArrayAllocDescriptor
mov rcx, rax
call fcn.14002fc70
test eax, eax
jne 0x140060fe9
test dword [rdi + 0x200], 0x400000
je 0x140060fc4
mov rcx, rdi
call fcn.140005b30
mov edx, 0x80
mov rcx, rax
call fcn.14002fc70
test eax, eax
jne 0x140060fe9
test dword [rdi + 0x200], 0x100000
je 0x140060fef
mov rcx, rdi
call fcn.140005b30
mov edx, 4
mov rcx, rax
call fcn.14002fc70
test eax, eax
je 0x140060fef
mov r14d, 1
cmp qword [rdi + 0x38], 0
jne 0x14006100f
lea rdx, str.f:checkpoints_tpdrv_buildersuperman1_syntpenhCZone.h
lea rcx, str.m_pManagedPointingDevice
mov r8d, 0x1a9
call fcn.1400eb260
mov rcx, qword [rdi + 0x38]
xor r8d, r8d
mov rdx, rdi
call fcn.140032800
test r14d, r14d
jne 0x1400610c0
shl ebp, 0xc
mov rcx, rdi
or ebp, dword [rdi + 0x200]
call fcn.140005b30
mov rcx, qword [rax + 0x58]
test rcx, rcx
jne 0x140061045
lea rcx, [rax + 0x70]
mov rax, qword [rcx]
lea r8, [rsp + 0x500]
mov edx, 0x10000101
call qword [rax + 0x18]
or ebx, 0xffffffff
lea rcx, [0x140295650]
mov edx, ebx
test eax, eax
lea r9d, [rbx + 2]
cmove edx, dword [rsp + 0x500]
mov r8d, ebp
call fcn.1400970a0
mov rcx, rdi
call fcn.140005b30
mov rcx, qword [rax + 0x58]
test rcx, rcx
jne 0x14006108f
lea rcx, [rax + 0x70]
mov rax, qword [rcx]
lea r8, [rsp + 0x500]
mov edx, 0x10000101
call qword [rax + 0x18]
lea rcx, [0x140295650]
mov r8d, ebp
test eax, eax
cmove ebx, dword [rsp + 0x500]
xor r9d, r9d
mov edx, ebx
call fcn.1400970a0
cmp dword [rdi + 0x20c], 0
jne 0x1400610df
test sil, 3
je 0x1400610d8
and byte [rdi + 0x24c], 3
jmp 0x1400610df
and byte [rdi + 0x24c], 0xc
test dword [rdi + 0x200], 0x200000
je 0x1400610fe
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400bbdd0
bt eax, 0xb
jb 0x140061106
mov rcx, rdi
call fcn.140061150
mov dword [rdi + 0x20c], 1
movzx eax, sil
mov rsi, qword [rsp + 0x4a8]
mov rbx, qword [rsp + 0x4e0]
mov r15, qword [rsp + 0x4a0]
add rsp, 0x4b0
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret