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

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbx
push rdi
push r12
push r14
push r15
sub rsp, 0x4a0
mov ebx, dword [rsp + 0x4f8]
xor r14d, r14d
mov r15d, r9d
mov dword [rsp + 0x50], r14d
mov rdi, rcx
mov r12d, r14d
cmp dword [rsp + 0x4f0], r14d
jne 0x140057a90
test ebx, ebx
jne 0x140057a90
xor al, al
add rsp, 0x4a0
pop r15
pop r14
pop r12
pop rdi
pop rbx
ret
mov eax, dword [rcx + 0x1f0]
mov qword [rsp + 0x4d0], rbp
mov ebp, 1
mov qword [rsp + 0x4e8], rsi
mov dword [rsp + 0x40], ebp
mov dword [rsp + 0x44], ebp
mov esi, ebp
mov dword [rsp + 0x48], ebp
cmp eax, 0x100000
je 0x140057d52
cmp eax, 0x200000
je 0x140057b10
cmp eax, 0x400000
jne 0x140057c7e
xor r8d, r8d
xor edx, edx
call fcn.1400a9c70
test sil, al
je 0x140058200
test eax, 0x300
je 0x140058200
bt eax, 8
cmovae ebp, r14d
bt eax, 9
jb 0x140057c7e
mov dword [rsp + 0x40], r14d
jmp 0x140057c7e
call fcn.1400db140
mov rcx, rax
mov rsi, rax
call qword [sym.imp.USER32.dll_GetParent]
xor ecx, ecx
mov rbx, rax
call fcn.1400dc0c0
cmp eax, 0xb
jge 0x140057bb7
mov rcx, qword [rdi + 0x48]
mov edx, 8
call fcn.1400276d0
test eax, eax
jne 0x140057bb7
test rbx, rbx
je 0x140057bb7
lea rdx, [rsp + 0x290]
mov r8d, 0x104
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetClassNameW]
lea rdx, [rsp + 0x80]
mov r8d, 0x104
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetClassNameW]
lea rdx, str.SHELLDLL_DefView
lea rcx, [rsp + 0x80]
mov r8d, 0x10
call fcn.1400e6080
test eax, eax
jne 0x140057bb7
lea r8d, [rax + 0xd]
lea rdx, str.SysListView32
lea rcx, [rsp + 0x290]
call fcn.1400e6080
test eax, eax
je 0x140058200
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400a9c70
test bpl, al
je 0x140058200
test al, 0x30
je 0x140058200
mov rax, qword [rdi + 0x48]
test dword [rax + 0xc00], 0x100
jne 0x140058200
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400a9c70
mov rcx, rdi
test al, 0x10
cmove ebp, r14d
xor r8d, r8d
xor edx, edx
call fcn.1400a9c70
mov rcx, rdi
test al, 0x20
mov eax, dword [rsp + 0x40]
cmove eax, r14d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x40], eax
call fcn.1400a9c70
test al, 1
je 0x140057c42
test al, 0x30
je 0x140057c42
mov rax, qword [rdi + 0x48]
mov ecx, dword [rax + 0xc00]
bt ecx, 8
jb 0x140057c42
bt ecx, 0xc
jae 0x140057c47
mov dword [rsp + 0x44], r14d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400a9c70
test al, 1
je 0x140057c72
test al, 0x30
je 0x140057c72
mov rax, qword [rdi + 0x48]
mov ecx, dword [rax + 0xc00]
bt ecx, 8
jb 0x140057c72
bt ecx, 0xd
jae 0x140057c77
mov dword [rsp + 0x48], r14d
mov ebx, dword [rsp + 0x4f8]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
xor sil, sil
call fcn.1400a99e0
mov ecx, 3
bt eax, 0xb
jae 0x140057dd2
cmp dword [rdi + 0x200], r12d
je 0x140057dd2
cmp dword [rdi + 0x1f0], 0x200000
jne 0x140057dd2
cmp byte [rdi + 0x2e8], cl
jne 0x140057dd2
lea rcx, [0x1400572d0]
mov rdx, rdi
mov qword [rdi + 0x2f4], r14
call qword [sym.imp.USER32.dll_EnumWindows]
xor ecx, ecx
call fcn.1400dc0c0
cmp eax, 0xc
jg 0x140057cf8
lea rcx, [0x140057400]
mov rdx, rdi
call fcn.1400db8f0
mov ecx, dword [rdi + 0x2f8]
add ecx, dword [rdi + 0x2f4]
je 0x140057d21
mov eax, dword [rdi + 0x2fc]
inc ecx
xor edx, edx
div ecx
mov r15d, eax
mov eax, 0xc8
cmp r15d, eax
cmovb r15d, eax
mov r10d, dword [rsp + 0x4d8]
mov r9d, dword [rsp + 0x4e0]
cmp r10d, r15d
mov r15d, 3
jbe 0x140057db5
cmp dword [rsp + 0x4f0], r12d
jle 0x140057dad
mov sil, 1
lea r12d, [r15 + 1]
jmp 0x140057e24
xor r8d, r8d
xor edx, edx
call fcn.1400a9c70
test sil, al
je 0x140058200
test al, 6
je 0x140058200
mov rax, qword [rdi + 0x48]
test byte [rax + 0xc00], 0x80
jne 0x140058200
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400a9c70
mov rcx, rdi
test al, 2
cmove ebp, r14d
xor r8d, r8d
xor edx, edx
call fcn.1400a9c70
test al, 4
cmove esi, r14d
mov dword [rsp + 0x40], esi
jmp 0x140057c7e
mov sil, 2
mov r12d, r15d
jmp 0x140057e24
cmp r9d, dword [rdi + 0x20c]
jbe 0x140057e24
test ebx, ebx
jle 0x140057dcd
mov sil, 8
mov r12d, 1
jmp 0x140057e24
mov sil, 4
jmp 0x140057e1e
mov r10d, dword [rsp + 0x4d8]
cmp r10d, r15d
jbe 0x140057dfa
cmp dword [rsp + 0x4f0], r12d
jle 0x140057df4
mov sil, 1
mov r12d, 4
jmp 0x140057dfa
mov sil, 2
mov r12d, ecx
mov r9d, dword [rsp + 0x4e0]
cmp r9d, r15d
mov r15d, ecx
jbe 0x140057e24
test ebx, ebx
jle 0x140057e1a
or sil, 8
mov r12d, 1
jmp 0x140057e24
or sil, 4
mov r12d, 2
movzx r8d, byte [0x1401eeb48]
movzx edx, byte [0x1401eeb49]
test sil, r8b
je 0x140057e4d
test sil, dl
je 0x140057e4d
cmp r9d, r10d
movzx ecx, dl
movzx eax, r8b
cmova ecx, eax
and sil, cl
test ebp, ebp
jne 0x140057e56
not dl
and sil, dl
cmp dword [rsp + 0x40], r14d
jne 0x140057e63
not r8b
and sil, r8b
cmp dword [rsp + 0x44], r14d
jne 0x140057e6e
and sil, 0xf7
cmp dword [rsp + 0x48], r14d
jne 0x140057e79
and sil, 0xfb
cmp dword [rsp + 0x500], 2
jl 0x140057f44
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400a99e0
bt eax, 0xb
jae 0x140057ebe
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400a99e0
bt eax, 0xb
jae 0x140057f44
cmp dword [rdi + 0x200], r14d
jne 0x140057f44
mov ecx, dword [rdi + 0x2c]
lea eax, [rcx - 7]
cmp eax, 2
jbe 0x140057ed1
cmp ecx, 5
mov ecx, r14d
jne 0x140057ed6
mov ecx, 1
mov rax, qword [rdi + 0x48]
mov edx, dword [rax + 0x1020]
cmp dword [rsp + 0x508], r14d
je 0x140057efa
test ecx, ecx
jne 0x140057ef2
test edx, edx
je 0x140057efa
mov r8d, 1
jmp 0x140057efd
mov r8d, r14d
cmp dword [rsp + 0x510], r14d
je 0x140057f16
test ecx, ecx
jne 0x140057f0f
test edx, edx
je 0x140057f16
mov ecx, 1
jmp 0x140057f19
mov ecx, r14d
movzx eax, byte [0x1401eeb49]
test sil, al
je 0x140057f2f
test r8d, r8d
jne 0x140057f2f
not al
and sil, al
movzx eax, byte [0x1401eeb48]
test sil, al
je 0x140057f44
test ecx, ecx
jne 0x140057f44
not al
and sil, al
cmp byte [rdi + 0x2e8], 3
jne 0x140057f72
test sil, 0xc
je 0x140057f72
test dword [rdi + 0x1f0], 0x200000
je 0x140057f72
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400a99e0
bt eax, 0xb
jb 0x140057f79
and sil, byte [rdi + 0x2e8]
test sil, sil
je 0x1400581fa
cmp byte [rdi + 0x2e8], 3
jne 0x140057fc5
test sil, 0xc
je 0x140057fc5
test dword [rdi + 0x1f0], 0x200000
je 0x140057fc5
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400a99e0
bt eax, 0xb
jae 0x140057fc5
movzx eax, sil
not al
movzx ebp, al
and ebp, 8
bts ebp, 7
shr ebp, 3
jmp 0x140057fda
movzx eax, sil
lea rcx, [0x1401eeaf0]
cmp eax, 0x14
cmovae eax, r14d
mov ebp, dword [rcx + rax*4]
test dword [rdi + 0x1f0], 0x200000
mov qword [rdi + 0x2ec], r14
je 0x140058013
lea rdx, [rsp + 0x58]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call fcn.1400a9880
mov ecx, 1
test dword [rax + 4], 0x800
je 0x140058016
movzx ebx, cl
jmp 0x140058018
mov ecx, r14d
xor bl, bl
test cl, 1
je 0x140058041
mov r8, qword [rsp + 0x68]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x68]
mov r9, r8
mov r8, qword [r8]
call fcn.140007900
mov rcx, qword [rsp + 0x68]
call fcn.1400e4058
test bl, bl
je 0x140058058
cmp ebp, 3
jne 0x140058051
mov ebp, 7
jmp 0x140058058
cmp ebp, 7
cmove ebp, r15d
mov r15d, dword [rdi + 0x1f0]
bt r15d, 0x15
jb 0x14005806d
bt r15d, 0x16
jae 0x1400580a1
mov rbx, qword [rdi + 0x48]
mov edx, 8
mov rcx, rbx
call fcn.1400276d0
mov rdx, qword [rdi + 0x50]
mov dword [rsp + 0x30], r15d
mov dword [rsp + 0x28], eax
xor r9d, r9d
mov r8d, 0x3eb
mov rcx, rbx
mov dword [rsp + 0x20], r12d
call fcn.1400277b0
test dword [rdi + 0x1f0], 0x200000
je 0x1400580bf
mov rcx, qword [rdi + 0x48]
mov edx, SafeArrayAllocDescriptor
call fcn.140027e60
test eax, eax
jne 0x1400580fb
test dword [rdi + 0x1f0], 0x400000
je 0x1400580dd
mov rcx, qword [rdi + 0x48]
mov edx, 0x80
call fcn.140027e60
test eax, eax
jne 0x1400580fb
test dword [rdi + 0x1f0], 0x100000
je 0x140058101
mov rcx, qword [rdi + 0x48]
mov edx, 4
call fcn.140027e60
test eax, eax
je 0x140058101
mov r14d, 1
mov rcx, qword [rdi + 0x48]
xor r8d, r8d
mov rdx, rdi
call fcn.14002a9f0
test r14d, r14d
jne 0x1400581aa
mov rax, qword [rdi + 0x48]
shl ebp, 0xc
mov rcx, qword [rax + 0x58]
or ebp, dword [rdi + 0x1f0]
test rcx, rcx
jne 0x140058133
lea rcx, [rax + 0x70]
mov rax, qword [rcx]
lea r8, [rsp + 0x4f0]
mov edx, 0x10000101
call qword [rax + 0x18]
or ebx, 0xffffffff
lea rcx, [0x14026d730]
mov edx, ebx
test eax, eax
lea r9d, [rbx + 2]
cmove edx, dword [rsp + 0x4f0]
mov r8d, ebp
call fcn.140083c40
mov rax, qword [rdi + 0x48]
mov rcx, qword [rax + 0x58]
test rcx, rcx
jne 0x140058179
lea rcx, [rax + 0x70]
mov rax, qword [rcx]
lea r8, [rsp + 0x4f0]
mov edx, 0x10000101
call qword [rax + 0x18]
lea rcx, [0x14026d730]
mov r8d, ebp
test eax, eax
cmove ebx, dword [rsp + 0x4f0]
xor r9d, r9d
mov edx, ebx
call fcn.140083c40
cmp dword [rdi + 0x200], 0
jne 0x1400581c9
test sil, 3
je 0x1400581c2
and byte [rdi + 0x2e8], 3
jmp 0x1400581c9
and byte [rdi + 0x2e8], 0xc
test dword [rdi + 0x1f0], 0x200000
je 0x1400581e8
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400a99e0
bt eax, 0xb
jb 0x1400581f0
mov rcx, rdi
call fcn.140058230
mov dword [rdi + 0x200], 1
movzx eax, sil
jmp 0x14005820a
mov rcx, rdi
call fcn.140058230
xor al, al
mov rbp, qword [rsp + 0x4d0]
mov rsi, qword [rsp + 0x4e8]
add rsp, 0x4a0
pop r15
pop r14
pop r12
pop rdi
pop rbx
ret