Function at 0x180021930
Capabilities:
Enumerate gui resources

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1c0]
sub rsp, 0x2c0
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x310], rbx
mov rax, qword [0x1800cb660]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
mov r14, rdx
mov rsi, rcx
mov qword [rsp + 0x78], rcx
xor edi, edi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x3c], rdi
mov dword [rsp + 0x38], edi
call fcn.18004b8e0
test eax, eax
je 0x1800219b2
mov rcx, qword [rsi + 0x10]
test rcx, rcx
jne 0x18002199e
jmp 0x180021f67
lea r8, [rsp + 0x30]
lea rdx, [0x180021820]
call qword [sym.imp.USER32.dll_EnumDesktopsW]
jmp 0x180021a17
mov word [rbp - 0x60], di
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp - 0x5e]
call fcn.180037550
xor r11d, r11d
mov qword [rbp + 0x1a8], r11
mov r8d, 0x103
lea rdx, str.Default
lea rcx, [rbp - 0x60]
call fcn.180035de4
movsxd rbx, dword [rsp + 0x38]
lea edx, [rbx + 1]
lea rcx, [rsp + 0x30]
call fcn.1800227d0
mov rcx, rbx
imul rcx, rcx, 0x210
add rcx, qword [rsp + 0x30]
lea rdx, [rbp - 0x60]
mov r8d, 0x210
call fcn.180036e50
mov edx, dword [rsp + 0x38]
cmp edx, dword [rsi + 0x28]
jne 0x180021ac9
mov r13d, edi
test edx, edx
jle 0x180021a8d
nop dword [rax + rax]
mov ebx, edi
cmp dword [rsi + 0x28], ebx
jle 0x180021ac9
movsxd r12, r13d
imul r12, r12, 0x210
nop word [rax + rax]
movsxd rdx, ebx
imul rdx, rdx, 0x210
add rdx, qword [rsi + 0x20]
mov rax, qword [rsp + 0x30]
lea rcx, [r12 + rax]
call fcn.180035b98
test eax, eax
je 0x180021a79
inc ebx
cmp ebx, dword [rsi + 0x28]
jge 0x180021a87
jmp 0x180021a50
inc r13d
mov edx, dword [rsp + 0x38]
cmp r13d, edx
jge 0x180021a8d
jmp 0x180021a30
mov edx, dword [rsp + 0x38]
jmp 0x180021ac9
cmp dword [rsi + 0x38], 0
je 0x180021ac4
mov dword [rsi + 0x38], edi
cmp dword [rsi + 0x28], 0
jle 0x180021ac4
mov rbx, rdi
nop
mov rax, qword [rsi + 0x20]
mov rcx, qword [rbx + rax + 0x208]
test rcx, rcx
je 0x180021ab6
call fcn.1800221b0
inc edi
add rbx, 0x210
cmp edi, dword [rsi + 0x28]
jl 0x180021aa0
jmp 0x180021f67
test r14, r14
je 0x180021ad5
mov dword [r14], 1
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x6c], rdi
mov dword [rsp + 0x68], edi
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x74], rdi
mov r15d, edi
mov dword [rbp - 0x78], edi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x54], rdi
mov dword [rsp + 0x50], edi
lea rcx, [rsp + 0x60]
call fcn.1800227d0
mov ebx, dword [rsp + 0x38]
mov r12, qword [rsp + 0x30]
mov r13, qword [rsp + 0x60]
test ebx, ebx
je 0x180021b43
nop dword [rax + rax]
mov rcx, r13
mov rdx, r12
mov r8d, 0x210
call fcn.180036e50
add r13, 0x210
add r12, 0x210
dec ebx
jne 0x180021b20
mov edx, dword [rsi + 0x28]
lea rcx, [rsp + 0x48]
call fcn.1800227d0
mov ebx, dword [rsi + 0x28]
mov r12, qword [rsi + 0x20]
mov r8, qword [rsp + 0x48]
mov r13, r8
test ebx, ebx
je 0x180021b8b
mov rcx, r13
mov rdx, r12
mov r8d, 0x210
call fcn.180036e50
add r13, 0x210
add r12, 0x210
dec ebx
jne 0x180021b63
mov r8, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x68]
lea eax, [r14 - 1]
mov dword [rsp + 0x20], eax
mov r13d, dword [rsp + 0x50]
test eax, eax
js 0x180021d06
movsxd r14, eax
imul r14, r14, 0x210
mov rcx, qword [rsp + 0x60]
add r14, rcx
inc eax
cdqe
imul rax, rax, 0x210
add rax, rcx
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov esi, dword [rsp + 0x68]
jmp 0x180021be5
mov r8, qword [rsp + 0x48]
mov ebx, edi
mov r12, rdi
test r13d, r13d
jle 0x180021cdb
nop word [rax + rax]
movsxd rdx, ebx
imul rdx, rdx, 0x210
add rdx, r8
mov rcx, r14
call fcn.180035b98
test eax, eax
je 0x180021c2d
inc ebx
inc r12
cmp ebx, r13d
mov r8, qword [rsp + 0x48]
jl 0x180021c00
jmp 0x180021cd2
imul r12, r12, 0x210
add r12, qword [rsp + 0x48]
lea edx, [r15 + 1]
lea rcx, [rbp - 0x80]
call fcn.1800227d0
movsxd rcx, r15d
imul rcx, rcx, 0x210
add rcx, qword [rbp - 0x80]
mov rdx, r12
mov r8d, 0x210
call fcn.180036e50
mov r11d, esi
sub r11d, dword [rsp + 0x20]
dec r11d
je 0x180021c86
movsxd r8, r11d
imul r8, r8, 0x210
mov rdx, qword [rsp + 0x28]
mov rcx, r14
call fcn.180036e50
dec esi
mov dword [rsp + 0x68], esi
mov eax, r13d
sub eax, ebx
dec eax
je 0x180021cc6
movsxd r8, eax
imul r8, r8, 0x210
lea eax, [rbx + 1]
movsxd rdx, eax
imul rdx, rdx, 0x210
mov rax, qword [rsp + 0x48]
add rdx, rax
movsxd rcx, ebx
imul rcx, rcx, 0x210
add rcx, rax
call fcn.180036e50
dec r13d
mov dword [rsp + 0x50], r13d
mov r15d, dword [rbp - 0x78]
mov rcx, qword [rsp + 0x28]
mov eax, dword [rsp + 0x20]
dec eax
mov dword [rsp + 0x20], eax
sub rcx, 0x210
mov qword [rsp + 0x28], rcx
sub r14, 0x210
test eax, eax
jns 0x180021be0
mov rsi, qword [rsp + 0x78]
mov r14d, dword [rsp + 0x68]
test r14d, r14d
jne 0x180021d14
test r13d, r13d
je 0x180021eff
lea eax, [r13 - 1]
movsxd r12, eax
test eax, eax
js 0x180021d6d
mov rax, r12
imul rax, rax, 0x210
mov rcx, qword [rsp + 0x48]
lea r13, [rax + rcx + 0x208]
mov rbx, qword [r13]
test rbx, rbx
je 0x180021d61
mov rcx, rbx
call fcn.18002abe0
mov rcx, rbx
call fcn.18002ac70
test rbx, rbx
je 0x180021d61
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
sub r13, 0x210
dec r12
jns 0x180021d36
lea r13, [rsi + 0x20]
mov rcx, qword [r13]
test rcx, rcx
je 0x180021d83
call fcn.1800356c0
mov qword [r13], rdi
mov qword [r13 + 8], rdi
movsxd rbx, edi
lea edx, [rbx + r15]
mov rcx, r13
call fcn.1800227d0
mov r12, qword [rbp - 0x80]
imul rbx, rbx, 0x210
add rbx, qword [r13]
test r15d, r15d
je 0x180021dd4
nop word [rax + rax]
mov rcx, rbx
mov rdx, r12
mov r8d, 0x210
call fcn.180036e50
add rbx, 0x210
add r12, 0x210
dec r15d
jne 0x180021db0
mov word [rbp - 0x60], di
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp - 0x5e]
call fcn.180037550
xor r11d, r11d
mov qword [rbp + 0x1a8], r11
mov r15, qword [rsp + 0x60]
test r14d, r14d
jle 0x180021f04
mov r12, r15
mov ecx, 0x280
call fcn.180035738
mov rbx, rax
mov qword [rsp + 0x78], rax
test rax, rax
je 0x180021e87
mov rcx, rax
call fcn.18002ab50
lea rax, vtable.CDesktopMgr::CDesktopThread.0
mov qword [rbx], rax
mov qword [rbx + 0x250], rdi
mov qword [rbx + 0x25c], rdi
mov dword [rbx + 0x258], edi
mov qword [rbx + 0x268], rdi
mov qword [rbx + 0x274], rdi
mov dword [rbx + 0x270], edi
mov qword [rbx + 0x40], rsi
xor edx, edx
mov r8d, 0x208
lea rcx, [rbx + 0x48]
call fcn.180037550
test r12, r12
je 0x180021e81
mov r8d, 0x103
mov rdx, r12
lea rcx, [rbx + 0x48]
call fcn.180035de4
lea r13, [rsi + 0x20]
jmp 0x180021e8a
mov rbx, rdi
test rbx, rbx
je 0x180021eed
xor edx, edx
mov r8d, 0x210
lea rcx, [rbp - 0x60]
call fcn.180037550
mov rcx, rbx
call fcn.18002ae10
mov qword [rbp + 0x1a8], rbx
mov r8d, 0x103
mov rdx, r12
lea rcx, [rbp - 0x60]
call fcn.180035de4
movsxd rbx, dword [r13 + 8]
lea edx, [rbx + 1]
mov rcx, r13
call fcn.1800227d0
mov rcx, rbx
imul rcx, rcx, 0x210
add rcx, qword [r13]
lea rdx, [rbp - 0x60]
mov r8d, 0x210
call fcn.180036e50
add r12, 0x210
dec r14
jne 0x180021e04
jmp 0x180021f04
mov r15, qword [rsp + 0x60]
mov dword [rsi + 0x38], edi
cmp dword [rsi + 0x28], 0
jle 0x180021f34
mov rbx, rdi
mov rax, qword [rsi + 0x20]
mov rcx, qword [rbx + rax + 0x208]
test rcx, rcx
je 0x180021f26
call fcn.1800221b0
inc edi
add rbx, 0x210
cmp edi, dword [rsi + 0x28]
jl 0x180021f10
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x180021f47
mov rcx, rax
call fcn.1800356c0
nop
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x180021f59
mov rcx, rax
call fcn.1800356c0
nop
test r15, r15
je 0x180021f67
mov rcx, r15
call fcn.1800356c0
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x180021f76
call fcn.1800356c0
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.1800356a0
mov rbx, qword [rsp + 0x310]
add rsp, 0x2c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret