Function at 0x140009c26
Capabilities:
Get graphical window text

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rsi, rdx
cmp r8d, 5
je 0x140009dce
mov rdi, rcx
cmp r8d, 0x85
je 0x140009cfa
cmp r8d, 0x83
jne 0x140009df0
test r9, r9
je 0x140009df0
mov rcx, rsi
mov edx, 0x31
xor r8d, r8d
xor r9d, r9d
call sub.USER32.dll_SendMessageW
mov r14, rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov rcx, rsi
call sub.USER32.dll_GetDC
mov rbx, rax
mov rcx, rax
mov rdx, r14
call sub.GDI32.dll_SelectObject
mov r15, rax
mov r12, qword [rdi]
mov rcx, r12
call sub.USER32.dll_GetWindowTextLengthW
test eax, eax
je 0x140009e06
mov ebp, eax
movsxd r14, eax
mov r13, r14
inc r13
mov qword [rsp + 0x58], r15
jne 0x140009e36
mov r15d, 2
mov edx, 2
mov rcx, r12
mov r8d, ebp
call sub.USER32.dll_GetWindowTextW
test eax, eax
je 0x140009ec0
mov ebp, 1
mov r15d, 2
jmp 0x140009ea0
xorps xmm0, xmm0
lea r14, [rsp + 0xa0]
movaps xmmword [r14], xmm0
lea rbx, [rsp + 0x40]
movaps xmmword [rbx], xmm0
mov rcx, rsi
mov rdx, r14
call sub.USER32.dll_GetWindowRect
mov rcx, rsi
mov rdx, rbx
call sub.USER32.dll_GetClientRect
mov rax, qword [r14]
lea r15, [rsp + 0x90]
mov qword [r15], rax
mov rcx, rsi
mov rdx, r15
call sub.USER32.dll_ScreenToClient
mov rax, qword [r14 + 8]
lea r14, [rsp + 0x98]
mov qword [r14], rax
mov rcx, rsi
mov rdx, r14
call sub.USER32.dll_ScreenToClient
mov eax, dword [r15 + 4]
mov ecx, dword [rbx + 4]
mov edx, dword [rbx + 8]
xor r8d, r8d
lea r15, [rsp + 0x80]
mov dword [r15], r8d
mov dword [r15 + 4], eax
mov dword [r15 + 8], edx
mov dword [r15 + 0xc], ecx
mov eax, dword [rbx + 0xc]
mov ecx, dword [r14 + 4]
lea rbx, [rsp + 0x60]
mov dword [rbx], r8d
mov dword [rbx + 4], eax
mov dword [rbx + 8], edx
mov dword [rbx + 0xc], ecx
mov rcx, rsi
call sub.USER32.dll_GetDC
mov r14, rax
mov rdi, qword [rdi + 8]
mov rcx, rax
mov rdx, r15
mov r8, rdi
call sub.USER32.dll_FillRect
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.USER32.dll_FillRect
mov rcx, rsi
mov rdx, r14
call sub.USER32.dll_ReleaseDC
jmp 0x140009df0
xor eax, eax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x30], 0x223
mov rcx, rsi
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.USER32.dll_SetWindowPos
xor eax, eax
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, [rsp + 0x60]
mov dword [rdx], 0x79004b
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x40]
mov rcx, rbx
mov r8d, 2
call sub.USER32.dll_DrawTextW
mov ebp, 1
jmp 0x140009f07
mov rax, r13
shr rax, 0x3e
lea rdx, [r13*2]
test rax, rax
jne 0x140009f94
mov ecx, 8
mov qword [rsp + 0x78], rdx
call fcn.140019220
test rax, rax
je 0x140009f9b
mov r15, rax
mov rcx, r12
mov rdx, rax
mov r8d, ebp
call sub.USER32.dll_GetWindowTextW
test eax, eax
je 0x140009ec0
lea rax, [r14*2 + 2]
mov ebp, 1
xor ecx, ecx
xor edx, edx
cmp word [r15 + rcx], 0xa
sete dl
add ebp, edx
add rcx, 2
cmp rax, rcx
jne 0x140009e8a
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x40]
mov rcx, rbx
mov rdx, r15
mov r8d, 2
call sub.USER32.dll_DrawTextW
jmp 0x140009eeb
lea rdx, [rsp + 0x60]
mov dword [rdx], 0x79004b
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x40]
mov rcx, rbx
mov r8d, 2
call sub.USER32.dll_DrawTextW
mov ebp, 1
test r13, r13
je 0x140009f02
mov rcx, qword [0x14003fbb8]
xor edx, edx
mov r8, r15
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r15, qword [rsp + 0x58]
mov r14, qword [rsp + 0x120]
imul ebp, dword [rsp + 0x4c]
mov rcx, rbx
mov rdx, r15
call sub.GDI32.dll_SelectObject
mov rcx, rsi
mov rdx, rbx
call sub.USER32.dll_ReleaseDC
xorps xmm0, xmm0
lea rdx, [rsp + 0x80]
movaps xmmword [rdx], xmm0
lea rbx, [rsp + 0x60]
movaps xmmword [rbx], xmm0
mov rcx, rsi
call sub.USER32.dll_GetClientRect
mov rcx, rsi
mov rdx, rbx
call sub.USER32.dll_GetWindowRect
mov eax, dword [rbx + 0xc]
sub eax, dword [rbx + 4]
movzx ecx, byte [rdi + 0x10]
test ecx, ecx
je 0x140009f80
sub eax, ebp
cmp ecx, 1
jne 0x140009f8b
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
dec ecx
add dword [r14 + 4], ecx
sub dword [r14 + 0xc], ecx
jmp 0x140009df0
sub ebp, eax
add dword [r14 + 0xc], ebp
jmp 0x140009df0
add dword [r14 + 4], eax
jmp 0x140009df0
xor ecx, ecx
call fcn.14002b050
mov rdx, qword [rsp + 0x78]
mov ecx, 2
call fcn.14002b050
int3