Function at 0x140002640
Capabilities:
Get graphical window text

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 [0x1401cb558]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov r12d, dword [rdx + 0x10]
mov r13, rdx
movups xmm0, xmmword [rdx + 0x28]
mov esi, dword [rdx + 0xc]
mov eax, r12d
and eax, 1
mov dword [rsp + 0x60], esi
mov ebx, eax
mov dword [rsp + 0x58], eax
shl ebx, 9
mov eax, r12d
and eax, 4
movaps xmmword [rbp - 0x80], xmm0
cmp dword [rcx + 0x60], 0
mov r14, rcx
mov dword [rsp + 0x70], ebx
mov rdi, 0xffffffffffffffff
mov dword [rsp + 0x50], eax
je 0x1400026c0
mov r8d, edi
lea rcx, [rbp - 0x80]
mov edx, edi
call qword [sym.imp.USER32.dll_InflateRect]
movaps xmm0, xmmword [rbp - 0x80]
mov r15d, 3
cmp esi, 4
je 0x14000295d
cmp dword [r14 + 0x60], 0
je 0x14000271f
lea ecx, [r15 + 4]
call qword [sym.imp.GDI32.dll_GetStockObject]
mov rcx, qword [r13 + 0x20]
mov rdx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [r13 + 0x34]
mov rbx, rax
mov r9d, dword [r13 + 0x30]
mov r8d, dword [r13 + 0x2c]
mov edx, dword [r13 + 0x28]
mov dword [rsp + 0x20], ecx
mov rcx, qword [r13 + 0x20]
call qword [sym.imp.GDI32.dll_Rectangle]
mov rcx, qword [r13 + 0x20]
mov rdx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov ebx, dword [rsp + 0x70]
mov rcx, qword [r14 + 8]
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov rcx, qword [r13 + 0x20]
lea rdx, [rbp - 0x80]
mov r9d, ebx
mov r8d, 4
bts r9d, 0xe
bt eax, 0xf
cmovae r9d, ebx
or r9d, 0x10
call qword [sym.imp.USER32.dll_DrawFrameControl]
mov rcx, qword [r14 + 8]
lea rdx, [rbp - 0x70]
mov r8d, 0x64
call qword [sym.imp.USER32.dll_GetWindowTextW]
cmp qword [r14 + 0x50], 0
je 0x140002819
cmp dword [r14 + 0x2c], 0
je 0x14000279e
cmp word [rbp - 0x70], 0
jne 0x14000278d
mov dword [rsp + 0x70], edi
mov dword [rsp + 0x74], edi
jmp 0x1400027a7
mov ecx, dword [r14 + 0x40]
add ecx, dword [rbp - 0x80]
mov dword [rsp + 0x70], ecx
mov dword [rsp + 0x74], edi
jmp 0x1400027a7
mov rax, qword [r14 + 0x30]
mov qword [rsp + 0x70], rax
mov r9d, dword [r14 + 0x5c]
lea rdx, [rsp + 0x70]
mov r8d, dword [r14 + 0x58]
mov rcx, r14
call fcn.1400021e0
mov ebx, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x70]
mov edx, dword [rsp + 0x74]
add ecx, ebx
mov r9, qword [r14 + 0x50]
add edx, ebx
test r9, r9
je 0x14000281d
cmp dword [rsp + 0x50], 0
mov eax, 0x23
cmove eax, r15d
xor r8d, r8d
mov dword [rsp + 0x48], eax
mov eax, dword [r14 + 0x5c]
mov dword [rsp + 0x40], eax
mov eax, dword [r14 + 0x58]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], edx
xor edx, edx
mov dword [rsp + 0x28], ecx
mov rcx, qword [r13 + 0x20]
mov qword [rsp + 0x20], 0
call qword [sym.imp.USER32.dll_DrawStateW]
jmp 0x14000281d
mov ebx, dword [rsp + 0x58]
cmp word [rbp - 0x70], 0
je 0x140002959
lea rax, [rbp - 0x70]
mov r8, rdi
nop
inc r8
cmp word [rax + r8*2], 0
jne 0x140002830
mov rcx, qword [r13 + 0x20]
lea r9, [rsp + 0x58]
lea rdx, [rbp - 0x70]
call qword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [r14 + 0x2c], 0
je 0x1400028bb
mov rcx, qword [r14 + 8]
lea rdx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_GetClientRect]
cmp qword [r14 + 0x50], 0
mov r8, qword [rsp + 0x58]
je 0x1400028b1
mov eax, dword [rsp + 0x78]
mov r9d, dword [r14 + 0x44]
sub eax, r9d
mov ecx, dword [r14 + 0x58]
sub eax, ecx
mov edx, dword [r14 + 0x40]
sub eax, edx
sub eax, r8d
sub eax, dword [rsp + 0x70]
test eax, eax
jle 0x1400028a2
lea eax, [r9 + rcx]
mov dword [rsp + 0x74], edi
add eax, edx
mov dword [rsp + 0x70], eax
jmp 0x1400028cf
lea eax, [rdx + 2]
mov dword [rsp + 0x74], edi
add eax, ecx
mov dword [rsp + 0x70], eax
jmp 0x1400028cf
mov dword [rsp + 0x70], edi
mov dword [rsp + 0x74], edi
jmp 0x1400028cf
mov rax, qword [r14 + 0x38]
mov r8, qword [rsp + 0x58]
mov qword [rsp + 0x70], rax
shr rax, 0x20
mov edi, eax
mov r9d, dword [rsp + 0x5c]
lea rdx, [rsp + 0x70]
mov rcx, r14
call fcn.1400021e0
mov esi, dword [rsp + 0x70]
xor eax, eax
mov edx, dword [r14 + 0x48]
add esi, ebx
mov rcx, qword [r13 + 0x20]
cmp edi, 0xffffffff
setne al
dec ebx
add eax, ebx
mov ebx, dword [rsp + 0x74]
add ebx, eax
call qword [sym.imp.GDI32.dll_SetTextColor]
cmp dword [rsp + 0x50], 0
lea r9, [rbp - 0x70]
mov edi, eax
mov ecx, 0x22
mov eax, 2
cmove ecx, eax
xor eax, eax
mov dword [rsp + 0x48], ecx
xor r8d, r8d
mov rcx, qword [r13 + 0x20]
xor edx, edx
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_DrawStateW]
mov rcx, qword [r13 + 0x20]
mov edx, edi
call qword [sym.imp.GDI32.dll_SetTextColor]
mov esi, dword [rsp + 0x60]
movaps xmm0, xmmword [rbp - 0x80]
cmp dword [rsp + 0x50], 0
jne 0x1400029d4
test r12b, 0x10
je 0x1400029d4
movq rcx, xmm0
movdqa xmmword [rsp + 0x70], xmm0
psrldq xmm0, 8
mov rax, rcx
shr rax, 0x20
movq r8, xmm0
mov rdx, r8
sub r8d, ecx
shr rdx, 0x20
sub edx, eax
mov eax, r8d
cmp r8d, edx
cmovge eax, edx
and eax, 0xfffffffc
cmp eax, 0xc
jg 0x1400029b1
cmp r8d, edx
mov r15d, r8d
cmovge r15d, edx
sar r15d, 2
neg r15d
lea rcx, [rsp + 0x70]
mov r8d, r15d
mov edx, r15d
call qword [sym.imp.USER32.dll_InflateRect]
mov rcx, qword [r13 + 0x20]
lea rdx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_DrawFocusRect]
mov dword [r14 + 0x64], esi
mov dword [r14 + 0x68], r12d
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.14002a970
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret