Function at 0x140023d10
Capabilities:
Enumerate gui resources

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x14012a210]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov r12, rdx
mov qword [rsp + 0x68], rdx
mov rsi, rcx
xor r15d, r15d
mov dword [rsp + 0x50], r15d
mov rdx, qword [rcx]
mov rax, qword [rdx + 8]
mov qword [rax], r15
mov rdi, qword [rdx]
test rdi, rdi
je 0x140023d81
nop
mov rbx, qword [rdi]
lea rcx, [rdi + 0x10]
call fcn.1400246e0
mov edx, 0x50
mov rcx, rdi
call fcn.1400a59a4
mov rdi, rbx
test rbx, rbx
jne 0x140023d60
mov rax, qword [rsi]
mov qword [rax], rax
mov rax, qword [rsi]
mov qword [rax + 8], rax
mov qword [rsi + 8], r15
mov rdx, rsi
lea rcx, [0x140024790]
call qword [sym.imp.USER32.dll_EnumWindows]
test eax, eax
je 0x140024637
mov r8d, 1
lea rdx, [0x140101bb0]
mov rcx, r12
call fcn.140006590
mov rsi, qword [rsi]
mov rdi, qword [rsi]
cmp rdi, rsi
je 0x1400245e0
movzx r14d, byte [rsp + 0x40]
nop dword [rax]
nop dword [rax + rax]
lea rdx, [rdi + 0x10]
lea rcx, [rbp + 0x20]
call fcn.1400061c0
nop
lea rdx, [rdi + 0x30]
lea rcx, [rbp + 0x40]
call fcn.1400061c0
nop
lea rbx, [rbp + 0x40]
cmp qword [rbp + 0x58], 0x10
cmovae rbx, qword [rbp + 0x40]
call fcn.140004080
test rax, rax
je 0x140024661
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbp + 0x10], rax
mov rdx, rbx
lea rcx, [rbp + 0x10]
call fcn.1400233d0
test al, al
jne 0x140023e69
test rbx, rbx
jne 0x140023e43
mov eax, r15d
jmp 0x140023e59
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp byte [rbx + rax], 0
jne 0x140023e50
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x10]
call fcn.140022db0
nop
mov r12d, r15d
mov rbx, qword [rbp + 0x10]
mov r15, rbx
lea rax, [rbx - 0x10]
mov qword [rsp + 0x58], rax
movsxd r13, dword [rax]
add r13, rbx
mov rcx, rax
mov qword [rsp + 0x48], rax
cmp rbx, r13
jae 0x14002405c
xor r14d, r14d
nop word [rax + rax]
lea rdx, [0x140101bb8]
mov rcx, r15
call fcn.1400bd454
test rax, rax
je 0x140023edb
nop dword [rax]
nop dword [rax + rax]
inc r12d
lea r15, [rax + 1]
lea rdx, [0x140101bb8]
mov rcx, r15
call fcn.1400bd454
test rax, rax
jne 0x140023ec0
test r15, r15
je 0x140023ef2
mov rax, 0xffffffffffffffff
inc rax
cmp byte [r15 + rax], r14b
jne 0x140023ee7
jmp 0x140023ef5
mov eax, r14d
inc eax
movsxd rcx, eax
add r15, rcx
cmp r15, r13
jb 0x140023ea0
movzx r14d, byte [rsp + 0x40]
mov rax, qword [rsp + 0x58]
mov rcx, rax
mov qword [rsp + 0x48], rax
test r12d, r12d
jle 0x14002405c
movsxd r13, dword [rax]
lea r15d, [r12 + r13]
mov dword [rsp + 0x48], r15d
mov edx, r13d
cmp r15d, r13d
cmovg edx, r15d
test edx, edx
js 0x14002469d
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edx
or eax, ecx
jge 0x140023f5a
lea rcx, [rbp + 0x10]
call fcn.140022fd0
mov rbx, qword [rbp + 0x10]
mov r12, rbx
lea rax, [rbx + r13]
mov qword [rsp + 0x60], rax
cmp rbx, rax
jae 0x140024036
nop
lea rdx, [0x140101bb8]
mov rcx, r12
call fcn.1400bd454
mov r15, rax
test rax, rax
je 0x140024000
nop word [rax + rax]
lea eax, [r13 - 1]
mov dword [rsp + 0x58], eax
mov ecx, ebx
sub ecx, r15d
add ecx, eax
movsxd r13, ecx
lea rdx, [r15 + 1]
lea r12, [r15 + 2]
je 0x140023fcd
test r12, r12
je 0x140024672
test rdx, rdx
je 0x140024672
mov r8, r13
mov rcx, r12
call fcn.1400a7d40
mov eax, dword [rsp + 0x58]
test r15, r15
je 0x14002468d
mov ecx, 0x5c5c
mov word [r15], cx
mov byte [r15 + r13 + 2], 0
lea r13d, [rax + 2]
lea rdx, [0x140101bb8]
mov rcx, r12
call fcn.1400bd454
mov r15, rax
test rax, rax
jne 0x140023f90
test r12, r12
je 0x14002401c
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [r12 + rax], 0
jne 0x140024010
jmp 0x14002401e
xor eax, eax
inc eax
movsxd rcx, eax
add r12, rcx
cmp r12, qword [rsp + 0x60]
jb 0x140023f70
mov r15d, dword [rsp + 0x48]
test r15d, r15d
js 0x14002469d
cmp r15d, dword [rbx - 0xc]
jg 0x14002469d
lea rcx, [rbx - 0x10]
mov qword [rsp + 0x48], rcx
mov dword [rcx], r15d
movsxd rax, r15d
mov byte [rax + rbx], 0
xor r12d, r12d
mov r15, rbx
movsxd r13, dword [rcx]
add r13, rbx
cmp rbx, r13
jae 0x140024234
xor r14d, r14d
nop dword [rax]
nop dword [rax + rax]
lea rdx, [0x140101bc0]
mov rcx, r15
call fcn.1400bd454
test rax, rax
je 0x1400240bb
nop dword [rax]
nop dword [rax + rax]
inc r12d
lea r15, [rax + 1]
lea rdx, [0x140101bc0]
mov rcx, r15
call fcn.1400bd454
test rax, rax
jne 0x1400240a0
test r15, r15
je 0x1400240d2
mov rax, 0xffffffffffffffff
inc rax
cmp byte [r15 + rax], r14b
jne 0x1400240c7
jmp 0x1400240d5
mov eax, r14d
inc eax
movsxd rcx, eax
add r15, rcx
cmp r15, r13
jb 0x140024080
movzx r14d, byte [rsp + 0x40]
test r12d, r12d
jle 0x140024234
mov rax, qword [rsp + 0x48]
movsxd r13, dword [rax]
lea r15d, [r12 + r13]
mov dword [rsp + 0x58], r15d
mov edx, r13d
cmp r15d, r13d
cmovg edx, r15d
test edx, edx
js 0x14002469d
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edx
or eax, ecx
jge 0x140024132
lea rcx, [rbp + 0x10]
call fcn.140022fd0
mov rbx, qword [rbp + 0x10]
mov r12, rbx
lea rax, [rbx + r13]
mov qword [rsp + 0x60], rax
cmp rbx, rax
jae 0x140024216
nop word [rax + rax]
lea rdx, [0x140101bc0]
mov rcx, r12
call fcn.1400bd454
mov r15, rax
test rax, rax
je 0x1400241e0
nop word [rax + rax]
lea ecx, [r13 - 1]
mov dword [rsp + 0x48], ecx
mov eax, ecx
sub eax, r15d
add eax, ebx
movsxd r13, eax
lea rdx, [r15 + 1]
lea r12, [r15 + 2]
je 0x1400241ad
test r12, r12
je 0x140024672
test rdx, rdx
je 0x140024672
mov r8, r13
mov rcx, r12
call fcn.1400a7d40
mov ecx, dword [rsp + 0x48]
test r15, r15
je 0x14002468d
mov eax, 0x225c
mov word [r15], ax
mov byte [r15 + r13 + 2], 0
lea r13d, [rcx + 2]
lea rdx, [0x140101bc0]
mov rcx, r12
call fcn.1400bd454
mov r15, rax
test rax, rax
jne 0x140024170
test r12, r12
je 0x1400241fc
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [r12 + rax], 0
jne 0x1400241f0
jmp 0x1400241fe
xor eax, eax
inc eax
movsxd rcx, eax
add r12, rcx
cmp r12, qword [rsp + 0x60]
jb 0x140024150
mov r15d, dword [rsp + 0x58]
test r15d, r15d
js 0x14002469d
cmp r15d, dword [rbx - 0xc]
jg 0x14002469d
mov dword [rbx - 0x10], r15d
movsxd rax, r15d
mov byte [rax + rbx], 0
lea rcx, [rbp + 0x20]
cmp qword [rbp + 0x38], 0x10
cmovae rcx, qword [rbp + 0x20]
lea rdx, str.FIStudentUI.exe
call fcn.1400bd384
mov r12, qword [rsp + 0x68]
test eax, eax
je 0x14002452e
mov rcx, qword [r12 + 0x10]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 0xd
jb 0x1400246c6
mov r9, r12
cmp qword [r12 + 0x18], 0x10
jb 0x140024286
mov r9, qword [r12]
mov qword [rsp + 0x30], FreeADsMem
lea rax, str._exeName_:__
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov r8, r12
movzx edx, r14b
lea rcx, [rbp - 0x10]
call fcn.140008d30
mov r13d, dword [rsp + 0x50]
or r13d, 1
lea rdx, [rbp + 0x20]
cmp qword [rbp + 0x38], 0x10
cmovae rdx, qword [rbp + 0x20]
mov r8, qword [rbp + 0x30]
lea rcx, [rbp - 0x10]
call fcn.1400066f0
xor r15d, r15d
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x38], r15
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x40], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], reloc.ACTIVEDS.dll_FreeADsMem
mov byte [rax], r15b
lea r8d, [r15 + 0x13]
lea rdx, str.____windowTitle_:__
lea rcx, [rbp - 0x50]
call fcn.1400066f0
mov qword [rbp - 0x70], r15
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], r15
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x60], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], reloc.ACTIVEDS.dll_FreeADsMem
mov byte [rax], r15b
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rbx + r8], 0
jne 0x140024346
mov rdx, rbx
lea rcx, [rbp - 0x70]
call fcn.1400066f0
mov qword [rsp + 0x70], r15
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x78], r15
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x70], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x80], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], reloc.ACTIVEDS.dll_FreeADsMem
mov byte [rax], 0
mov r8d, 3
lea rdx, [0x140101bd8]
lea rcx, [rsp + 0x70]
call fcn.1400066f0
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x30], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x20], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], reloc.ACTIVEDS.dll_FreeADsMem
mov byte [rax], 0
or r13d, 0x1e
mov dword [rsp + 0x50], r13d
lea rdx, [rbp - 0x30]
mov rcx, r12
call fcn.1400060d0
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x14002440e
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024408
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400246a8
call fcn.1400a59a4
nop
mov rdx, qword [rbp - 0x78]
cmp rdx, 0x10
jb 0x14002444a
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024445
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400246ae
call fcn.1400a59a4
mov qword [rbp - 0x80], r15
mov qword [rbp - 0x78], reloc.ACTIVEDS.dll_FreeADsMem
mov byte [rsp + 0x70], 0
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x140024496
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024491
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400246b4
call fcn.1400a59a4
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], reloc.ACTIVEDS.dll_FreeADsMem
mov byte [rbp - 0x70], 0
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x1400244e1
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400244dc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400246ba
call fcn.1400a59a4
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x38], reloc.ACTIVEDS.dll_FreeADsMem
mov byte [rbp - 0x50], 0
mov rdx, qword [rbp + 8]
cmp rdx, 0x10
jb 0x140024531
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024527
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400246c0
call fcn.1400a59a4
jmp 0x140024531
xor r15d, r15d
lea rdx, [rbx - 0x18]
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002454e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x140024589
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024584
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400246cc
call fcn.1400a59a4
mov qword [rbp + 0x50], r15
mov qword [rbp + 0x58], reloc.ACTIVEDS.dll_FreeADsMem
mov byte [rbp + 0x40], 0
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x1400245d4
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400245cf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400246cc
call fcn.1400a59a4
mov rdi, qword [rdi]
cmp rdi, rsi
jne 0x140023de0
mov rax, qword [r12 + 0x10]
lea rcx, [rax - 1]
cmp rax, rcx
jbe 0x14002466c
mov rax, r12
mov rdx, qword [r12 + 0x18]
cmp rdx, 0x10
jb 0x140024600
mov rax, qword [r12]
cmp byte [rax + rcx], 0
je 0x14002461c
mov qword [r12 + 0x10], rcx
mov rax, r12
cmp rdx, 0x10
jb 0x140024618
mov rax, qword [r12]
mov byte [rax + rcx], 0
mov r8d, 1
lea rdx, [0x140101c08]
mov rcx, r12
call fcn.1400066f0
mov r15d, 1
mov eax, r15d
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.1400a5460
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.140003f50
nop
call fcn.1400068e0
nop
call fcn.1400b4834
mov dword [rax], 0x16
call fcn.1400b46e4
mov ecx, 0x80070057
call fcn.140003f50
int3
call fcn.1400b4834
mov dword [rax], 0x16
call fcn.1400b46e4
mov ecx, 0x80070057
call fcn.140003f50
nop
call fcn.1400b4704
nop
call fcn.1400b4704
nop
call fcn.1400b4704
nop
call fcn.1400b4704
nop
call fcn.1400b4704
int3
call fcn.140003f10
nop
call fcn.1400b4704
int3