Function at 0x14006a310
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 rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x4a8
mov r12d, dword [rsp + 0x508]
xor esi, esi
mov ebp, r9d
mov dword [rsp + 0x48], esi
mov r15d, dword [rsp + 0x500]
mov r14d, r8d
mov rdi, rcx
mov dword [rsp + 0x40], esi
test r15d, r15d
jne 0x14006a369
test r12d, r12d
jne 0x14006a369
xor al, al
add rsp, 0x4a8
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, dword [rcx + 0x210]
mov qword [rsp + 0x4e0], rbx
mov ebx, 1
mov qword [rsp + 0x4a0], r13
mov dword [rsp + 0x500], ebx
mov dword [rsp + 0x44], ebx
mov r13d, ebx
cmp eax, 0x100000
je 0x14006a509
cmp eax, 0x200000
je 0x14006a3e5
cmp eax, 0x400000
jne 0x14006a53b
xor r8d, r8d
xor edx, edx
call fcn.1400ca870
test bl, al
je 0x14006a48f
test eax, 0x300
je 0x14006a48f
bt eax, 8
cmovae ebx, esi
bt eax, 9
jb 0x14006a53b
mov r13d, esi
jmp 0x14006a53b
call fcn.1401009c0
mov rcx, rax
mov r14, rax
call qword [sym.imp.USER32.dll_GetParent]
xor ecx, ecx
mov rsi, rax
call fcn.1401023d0
cmp eax, 0xb
jge 0x14006a49e
mov rcx, rdi
call fcn.14000f3f0
mov edx, 8
mov rcx, rax
call fcn.140037670
test eax, eax
jne 0x14006a49e
test rsi, rsi
je 0x14006a49e
lea rdx, [rsp + 0x290]
mov r8d, 0x104
mov rcx, r14
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.14010e2f0
test eax, eax
jne 0x14006a49e
lea r8d, [rax + 0xd]
lea rdx, str.SysListView32
lea rcx, [rsp + 0x290]
call fcn.14010e2f0
test eax, eax
jne 0x14006a49e
mov rcx, rdi
call fcn.14006abe0
xor al, al
jmp 0x14006abaa
mov rcx, rdi
call fcn.14006b070
mov rcx, rdi
test eax, eax
je 0x14006a492
xor r8d, r8d
xor edx, edx
call fcn.1400ca870
mov esi, 0
mov rcx, rdi
test al, 0x10
cmove ebx, esi
xor r8d, r8d
xor edx, edx
call fcn.1400ca870
mov rcx, rdi
test al, 0x20
cmove r13d, esi
call fcn.14006b0e0
mov ecx, dword [rsp + 0x500]
test eax, eax
cmove ecx, esi
mov dword [rsp + 0x500], ecx
mov rcx, rdi
call fcn.14006b180
mov r14d, dword [rsp + 0x4f0]
test eax, eax
jne 0x14006a53b
mov dword [rsp + 0x44], esi
jmp 0x14006a53b
call fcn.14006b220
mov rcx, rdi
test eax, eax
je 0x14006a492
xor r8d, r8d
xor edx, edx
call fcn.1400ca870
mov rcx, rdi
test al, 2
cmove ebx, esi
xor r8d, r8d
xor edx, edx
call fcn.1400ca870
test al, 4
cmove r13d, esi
xor r8d, r8d
xor edx, edx
mov rcx, rdi
xor sil, sil
call fcn.1400ca4f0
mov ecx, 2
bt eax, 0xb
jae 0x14006a71b
cmp dword [rdi + 0x21c], 0
je 0x14006a71b
cmp dword [rdi + 0x210], 0x200000
jne 0x14006a71b
cmp byte [rdi + 0x25c], 3
jne 0x14006a71b
xor eax, eax
lea rcx, [0x140069b30]
mov rdx, rdi
mov qword [rdi + 0x268], rax
call qword [sym.imp.USER32.dll_EnumWindows]
xor ecx, ecx
call fcn.1401023d0
cmp eax, 0xc
jg 0x14006a5b8
lea rcx, [0x140069c80]
mov rdx, rdi
call fcn.140101200
mov eax, dword [rdi + 0x26c]
add eax, dword [rdi + 0x268]
je 0x14006a5ed
mov ecx, dword [rdi + 0x234]
xor edx, edx
add ecx, eax
imul eax, dword [rdi + 0x270], 0x64
imul ecx, dword [rdi + 0x22c]
div ecx
mov ebp, eax
mov eax, dword [rdi + 0x230]
cmp ebp, eax
cmovb ebp, eax
mov eax, dword [rsp + 0x510]
mov r10d, 3
cmp eax, 2
jne 0x14006a608
cmp dword [0x1402ad77c], r10d
jmp 0x14006a614
cmp eax, r10d
jne 0x14006a616
cmp dword [0x1402ad77c], 2
je 0x14006a667
mov r9d, dword [rsp + 0x4e8]
cmp r9d, ebp
jbe 0x14006a63f
test r15d, r15d
jle 0x14006a635
mov sil, 1
mov dword [rsp + 0x40], 4
jmp 0x14006a66f
mov sil, 2
mov dword [rsp + 0x40], r10d
jmp 0x14006a66f
cmp r14d, dword [rdi + 0x228]
jbe 0x14006a66f
test r12d, r12d
jle 0x14006a65a
mov sil, 8
mov dword [rsp + 0x40], 1
jmp 0x14006a66f
mov sil, 4
mov dword [rsp + 0x40], 2
jmp 0x14006a66f
mov r9d, dword [rsp + 0x4e8]
mov dword [0x1402ad77c], eax
mov r15d, dword [rsp + 0x40]
movzx r8d, byte [reloc.OLEAUT32.dll_VariantTimeToDosDateTime]
movzx edx, byte [0x14022fc11]
test sil, r8b
je 0x14006a6a3
test sil, dl
je 0x14006a6a3
cmp r14d, r9d
movzx ecx, dl
movzx eax, r8b
cmova ecx, eax
and sil, cl
test ebx, ebx
jne 0x14006a6ac
not dl
and sil, dl
test r13d, r13d
jne 0x14006a6b7
not r8b
and sil, r8b
cmp dword [rsp + 0x500], 0
jne 0x14006a6c5
and sil, 0xf7
cmp dword [rsp + 0x44], 0
jne 0x14006a6d0
and sil, 0xfb
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400ca4f0
bt eax, 0xb
jae 0x14006a707
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400ca4f0
bt eax, 0xb
jae 0x14006a800
cmp dword [rdi + 0x21c], 0
jne 0x14006a800
mov ecx, dword [rdi + 0x2c]
lea eax, [rcx - 6]
cmp eax, 2
jbe 0x14006a771
cmp ecx, 4
je 0x14006a771
xor ebx, ebx
jmp 0x14006a776
mov r9d, dword [rsp + 0x4e8]
mov r10d, 3
cmp r9d, ebp
jbe 0x14006a748
test r15d, r15d
jle 0x14006a740
mov sil, 1
mov dword [rsp + 0x40], 4
jmp 0x14006a748
movzx esi, cl
mov dword [rsp + 0x40], r10d
cmp r14d, ebp
jbe 0x14006a675
test r12d, r12d
jle 0x14006a765
or sil, 8
mov r15d, 1
jmp 0x14006a67a
or sil, 4
mov r15d, ecx
jmp 0x14006a67a
mov ebx, 1
cmp qword [rdi + 0x38], 0
jne 0x14006a796
lea rdx, str.f:checkpoints_tpdrv_buildersuperman1_syntpenhCZone.h
lea rcx, str.m_pManagedPointingDevice
mov r8d, 0x1c1
call fcn.1400be660
cmp dword [rsp + 0x518], 0
mov rax, qword [rdi + 0x38]
mov ecx, dword [rax + 0xfe8]
je 0x14006a7b9
test ebx, ebx
jne 0x14006a7b2
test ecx, ecx
je 0x14006a7b9
mov edx, 1
jmp 0x14006a7bb
xor edx, edx
cmp dword [rsp + 0x520], 0
je 0x14006a7d4
test ebx, ebx
jne 0x14006a7cd
test ecx, ecx
je 0x14006a7d4
mov ecx, 1
jmp 0x14006a7d6
xor ecx, ecx
movzx eax, byte [0x14022fc11]
test sil, al
je 0x14006a7eb
test edx, edx
jne 0x14006a7eb
not al
and sil, al
movzx eax, byte [reloc.OLEAUT32.dll_VariantTimeToDosDateTime]
test sil, al
je 0x14006a800
test ecx, ecx
jne 0x14006a800
not al
and sil, al
xor r14d, r14d
cmp byte [rdi + 0x25c], 3
mov ebx, r14d
jne 0x14006a83a
test sil, 0xc
je 0x14006a83a
test dword [rdi + 0x210], 0x200000
je 0x14006a83a
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400ca4f0
bt eax, 0xb
jae 0x14006a83a
lea ebx, [r14 + 1]
jmp 0x14006a841
and sil, byte [rdi + 0x25c]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400ca590
bt eax, 8
jae 0x14006a871
test ebx, ebx
jne 0x14006a871
movzx eax, byte [rdi + 0x25d]
test al, 8
je 0x14006a869
and sil, 0xf7
jmp 0x14006a871
test al, 4
je 0x14006a871
and sil, 0xfb
test sil, sil
je 0x14006aba6
mov byte [rdi + 0x25d], sil
test ebx, ebx
je 0x14006a89a
movzx eax, sil
not al
movzx ebp, al
and ebp, 8
bts ebp, 7
shr ebp, 3
jmp 0x14006a8af
movzx eax, sil
lea rcx, [0x14022fbc0]
cmp eax, 0x14
cmovae eax, r14d
mov ebp, dword [rcx + rax*4]
test dword [rdi + 0x210], 0x200000
mov qword [rdi + 0x260], r14
je 0x14006a8e8
lea rdx, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call fcn.1400ca370
mov ecx, 1
test dword [rax + 4], 0x800
je 0x14006a8eb
movzx ebx, cl
jmp 0x14006a8ed
mov ecx, r14d
xor bl, bl
test cl, 1
je 0x14006a916
mov r8, qword [rsp + 0x60]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x60]
mov r9, r8
mov r8, qword [r8]
call fcn.140045b50
mov rcx, qword [rsp + 0x60]
call fcn.14010a7dc
test bl, bl
je 0x14006a931
cmp ebp, 3
jne 0x14006a926
mov ebp, 7
jmp 0x14006a931
cmp ebp, 7
mov eax, 3
cmove ebp, eax
mov eax, dword [rdi + 0x210]
bt eax, 0x15
jb 0x14006a947
bt eax, 0x16
jae 0x14006a9ca
cmp qword [rdi + 0x38], r14
jne 0x14006a966
lea rdx, str.f:checkpoints_tpdrv_buildersuperman1_syntpenhCZone.h
lea rcx, str.m_pManagedPointingDevice
mov r8d, 0x1c1
call fcn.1400be660
mov r14, qword [rdi + 0x38]
test r14, r14
jne 0x14006a988
lea rdx, str.f:checkpoints_tpdrv_buildersuperman1_syntpenhCZone.h
lea rcx, str.m_pManagedPointingDevice
mov r8d, 0x1c1
call fcn.1400be660
mov rbx, qword [rdi + 0x38]
mov r12d, 8
mov rcx, r14
mov edx, r12d
call fcn.140037670
mov edx, dword [rdi + 0x210]
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], r15d
call fcn.140037750
xor r14d, r14d
jmp 0x14006a9d0
mov r12d, 8
test dword [rdi + 0x210], 0x200000
je 0x14006a9f5
mov rcx, rdi
call fcn.14000f3f0
mov edx, SafeArrayAllocDescriptor
mov rcx, rax
call fcn.140037e20
test eax, eax
jne 0x14006aa3f
test dword [rdi + 0x210], 0x400000
je 0x14006aa1a
mov rcx, rdi
call fcn.14000f3f0
mov edx, 0x80
mov rcx, rax
call fcn.140037e20
test eax, eax
jne 0x14006aa3f
test dword [rdi + 0x210], 0x100000
je 0x14006aa46
mov rcx, rdi
call fcn.14000f3f0
mov edx, 4
mov rcx, rax
call fcn.140037e20
test eax, eax
je 0x14006aa46
mov ebx, 1
jmp 0x14006aa49
mov ebx, r14d
cmp qword [rdi + 0x38], 0
jne 0x14006aa69
lea rdx, str.f:checkpoints_tpdrv_buildersuperman1_syntpenhCZone.h
lea rcx, str.m_pManagedPointingDevice
mov r8d, 0x1c1
call fcn.1400be660
mov rcx, qword [rdi + 0x38]
xor r8d, r8d
mov rdx, rdi
call fcn.14003a990
mov eax, dword [rdi + 0x210]
bt eax, 0x14
jae 0x14006aa8b
mov eax, 2
jmp 0x14006aaa3
bt eax, 0x15
jae 0x14006aa98
mov eax, 4
jmp 0x14006aaa3
bt eax, 0x16
mov eax, r14d
cmovb eax, r12d
mov dword [rdi + 0x94], eax
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x178]
test ebx, ebx
jne 0x14006ab56
shl ebp, 0xc
mov rcx, rdi
or ebp, dword [rdi + 0x210]
call fcn.14000f3f0
mov rcx, qword [rax + 0x58]
test rcx, rcx
jne 0x14006aadb
lea rcx, [rax + 0x70]
mov rax, qword [rcx]
lea r8, [rsp + 0x500]
mov edx, 0x10000101
call qword [rax + 0x18]
or ebx, 0xffffffff
lea rcx, [0x1402ad8a0]
mov edx, ebx
test eax, eax
lea r9d, [rbx + 2]
cmove edx, dword [rsp + 0x500]
mov r8d, ebp
call fcn.140099a90
mov rcx, rdi
call fcn.14000f3f0
mov rcx, qword [rax + 0x58]
test rcx, rcx
jne 0x14006ab25
lea rcx, [rax + 0x70]
mov rax, qword [rcx]
lea r8, [rsp + 0x500]
mov edx, 0x10000101
call qword [rax + 0x18]
lea rcx, [0x1402ad8a0]
mov r8d, ebp
test eax, eax
cmove ebx, dword [rsp + 0x500]
xor r9d, r9d
mov edx, ebx
call fcn.140099a90
cmp dword [rdi + 0x21c], 0
jne 0x14006ab75
test sil, 3
je 0x14006ab6e
and byte [rdi + 0x25c], 3
jmp 0x14006ab75
and byte [rdi + 0x25c], 0xc
test dword [rdi + 0x210], 0x200000
je 0x14006ab94
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400ca4f0
bt eax, 0xb
jb 0x14006ab9c
mov rcx, rdi
call fcn.14006abe0
mov dword [rdi + 0x21c], 1
movzx eax, sil
mov rbx, qword [rsp + 0x4e0]
mov r13, qword [rsp + 0x4a0]
add rsp, 0x4a8
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret