Function at 0x140016e6c
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
xor r12d, r12d
mov byte [rbp + 0x30], 1
mov r15, rcx
mov r14d, r12d
cmp qword [rcx + 0x50], r12
jbe 0x1400171be
or r13, 0xffffffffffffffff
cmp r14, qword [r15 + 0x50]
jae 0x1400171e9
mov rax, qword [r15 + 0x48]
mov rcx, qword [rax + r14*8]
mov qword [rbp - 0x18], rcx
cmp r14, qword [r15 + 0x70]
jae 0x1400171e9
mov rax, qword [r15 + 0x68]
mov rdi, r12
mov rsi, qword [rax + r14*8]
cmp qword [rsi + 8], r12
jbe 0x1400171b1
cmp rdi, qword [rsi + 0x48]
jae 0x1400171de
mov rax, qword [rsi + 0x40]
movzx ebx, word [rax + rdi*2]
test bx, bx
je 0x1400171a4
cmp bx, 0xd
je 0x1400171a4
mov eax, 0x1011
cmp bx, ax
je 0x1400171a4
mov rax, qword [rcx]
lea r9, [rbp - 0x20]
lea r8, [rbp - 0x28]
mov qword [rbp - 0x28], r12
mov edx, edi
mov qword [rbp - 0x20], r12
mov rax, qword [rax + 0x28]
call qword [0x14001b6d8]
test eax, eax
jne 0x140017182
cmp rdi, qword [rsi + 8]
jae 0x1400171de
mov rax, qword [rsi]
mov rcx, qword [rax + rdi*8]
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea r12d, [rax + 1]
mov eax, 2
movsxd rcx, r12d
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.1400191a8
mov r13, rax
test rax, rax
je 0x14001717b
cmp rdi, qword [rsi + 8]
jae 0x1400171de
mov rcx, qword [rsi]
mov r8d, r12d
mov rdx, rax
mov rcx, qword [rcx + rdi*8]
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_GetWindowTextW]
cmp rdi, qword [rsi + 0x28]
jae 0x1400171de
mov rax, qword [rsi + 0x20]
mov rcx, qword [rax + rdi*8]
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
inc eax
movsxd rcx, eax
mov dword [rbp - 0x30], eax
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1400191a8
mov r12, rax
test rax, rax
je 0x140017166
cmp rdi, qword [rsi + 0x28]
jae 0x1400171de
mov rcx, qword [rsi + 0x20]
mov rdx, rax
mov r8d, dword [rbp - 0x30]
mov rcx, qword [rcx + rdi*8]
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_GetWindowTextW]
mov rcx, qword [rbp - 0x28]
mov r8, r13
sub r8, rcx
movzx edx, word [rcx]
movzx eax, word [rcx + r8]
sub edx, eax
jne 0x140017024
add rcx, 2
test eax, eax
jne 0x140017010
test edx, edx
jne 0x140017166
mov rax, qword [rbp - 0x20]
mov r8, r12
sub r8, rax
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x14001704a
add rax, 2
test ecx, ecx
jne 0x140017036
test edx, edx
je 0x140017166
mov rcx, qword [rbp - 0x18]
movzx r9d, bx
mov r8, r13
mov qword [rsp + 0x20], r12
mov edx, edi
mov rax, qword [rcx]
mov rax, qword [rax + 0x40]
call qword [0x14001b6d8]
mov ebx, eax
test eax, eax
jns 0x140017166
cmp byte [rbp + 0x30], 0
je 0x140017166
mov rcx, qword [0x140022218]
mov rax, qword [rcx + 0x18]
lea rcx, [0x140022218]
call qword [0x14001b6d8]
mov r9, r13
mov dword [rsp + 0x20], ebx
add rax, 0x18
lea rcx, [rbp - 0x30]
mov r8, r12
mov qword [rbp - 0x30], rax
mov edx, 0x23b
call fcn.140004a90
mov rax, qword [0x140022218]
lea rcx, [0x140022218]
mov rax, qword [rax + 0x18]
call qword [0x14001b6d8]
xor edx, edx
mov ecx, 0x226
lea rbx, [rax + 0x18]
mov qword [rbp - 0x10], rbx
call fcn.140002ed0
test rax, rax
je 0x140017104
mov r8d, 0x226
lea rcx, [rbp - 0x10]
mov rdx, rax
call fcn.140007898
mov rbx, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x30]
xor r9d, r9d
mov rcx, qword [r15 + 8]
mov r8, rbx
call qword [sym.imp.USER32.dll_MessageBoxW]
lea rdx, [rbx - 0x18]
or rbx, 0xffffffffffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x14001713d
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x14001b6d8]
mov rdx, qword [rbp - 0x30]
mov eax, ebx
add rdx, 0xffffffffffffffe8
mov byte [rbp + 0x30], 0
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x140017166
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x14001b6d8]
mov rcx, r13
call fcn.14001915c
test r12, r12
je 0x14001717b
mov rcx, r12
call fcn.14001915c
xor r12d, r12d
or r13, 0xffffffffffffffff
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x140017191
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemFree]
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x1400171a0
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemFree]
mov rcx, qword [rbp - 0x18]
inc rdi
cmp rdi, qword [rsi + 8]
jb 0x140016edb
inc r14
cmp r14, qword [r15 + 0x50]
jb 0x140016ea6
lea r11, [rsp + 0x60]
xor eax, eax
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80070057
call fcn.140001164
int3
mov ecx, 0x80070057
call fcn.140001164
int3