Function at 0x180028010
Capabilities:
Get graphical window text

Disassembly:
mov r11, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x8e0
mov qword [rsp + 0x90], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
mov rax, qword [0x18013e1e0]
xor rax, rsp
mov qword [rsp + 0x8d0], rax
mov r12, rcx
mov rcx, qword [rcx + 8]
xor r13d, r13d
mov qword [r11 - 0x868], r13
mov qword [r11 - 0x860], rcx
lea rdx, [r11 - 0x858]
call qword [sym.imp.USER32.dll_BeginPaint]
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0x50], r13d
mov dword [rsp + 0x54], r13d
mov dword [rsp + 0x58], r13d
mov dword [rsp + 0x5c], r13d
lea rdx, [rsp + 0x50]
mov rcx, qword [r12 + 8]
call qword [sym.imp.USER32.dll_GetClientRect]
mov r8d, 0x7d0
lea rdx, [rsp + 0x100]
mov rcx, qword [r12 + 8]
call qword [sym.imp.USER32.dll_GetWindowTextW]
lea r11, [rsp + 0x100]
mov rbx, qword [0x180140118]
mov qword [rsp + 0x60], rbx
lea rax, [rsp + 0x100]
shr rax, 0x10
test ax, ax
jne 0x1800280f1
movzx edx, r11w
lea rcx, [rsp + 0x60]
call fcn.180014450
mov rbx, qword [rsp + 0x60]
jmp 0x180028146
lea rcx, [rsp + 0x100]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rdi, eax
test eax, eax
je 0x180028146
mov edx, edi
lea rcx, [rsp + 0x60]
call fcn.1800145b0
test eax, eax
je 0x180028141
mov r8, rdi
add r8, r8
lea eax, [rdi + 1]
movsxd rcx, eax
add rcx, rcx
cmp rcx, r8
jb 0x180028141
lea rdx, [rsp + 0x100]
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.1800c2cf0
jmp 0x180028146
mov rbx, qword [rsp + 0x60]
mov rdi, r13
mov qword [rsp + 0x78], r13
cmp dword [r12 + 0xdc], 0
jne 0x1800281bc
mov ecx, 8
call fcn.1800c0db0
mov rbp, rax
test rax, rax
je 0x180028170
mov qword [rax], r13
jmp 0x180028173
mov rbp, r13
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov qword [rbp], rax
mov r8d, dword [rsp + 0x5c]
sub r8d, dword [rsp + 0x54]
mov edx, dword [rsp + 0x58]
sub edx, dword [rsp + 0x50]
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rdi, rax
mov qword [rsp + 0x78], rax
mov rdx, rax
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SelectObject]
jmp 0x1800281c4
lea rbp, [rsp + 0xa0]
mov edx, 1
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SetBkMode]
mov r15d, eax
mov edx, dword [r12 + 0x48]
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SetTextColor]
mov dword [rsp + 0x70], eax
mov rdx, qword [r12 + 0xc0]
test rdx, rdx
je 0x180028205
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SelectObject]
mov r14, rax
jmp 0x18002820a
mov r14, qword [rsp + 0x78]
cmp dword [r12 + 0xdc], 0
jne 0x18002826c
cmp dword [r12 + 0x104], 0
jne 0x180028240
mov r8, qword [r12 + 0x58]
test r8, r8
jne 0x18002822f
mov r8, qword [r12 + 0x50]
lea rdx, [rsp + 0x50]
mov rcx, qword [rbp]
call qword [sym.imp.USER32.dll_FillRect]
jmp 0x18002826c
mov dword [rsp + 0x28], 0x64
mov eax, dword [r12 + 0x108]
mov dword [rsp + 0x20], eax
mov r9d, dword [r12 + 0x10c]
lea r8, [rsp + 0x50]
mov rdx, rbp
mov rcx, r12
call fcn.180027e20
xor eax, eax
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rax
mov rcx, qword [r12 + 0x58]
lea esi, [rax + 0x10]
test rcx, rcx
je 0x18002829b
lea r8, [rsp + 0x80]
mov edx, esi
call qword [sym.imp.GDI32.dll_GetObjectW]
cmp dword [r12 + 0xd0], 0
jne 0x1800282c2
cmp dword [r12 + 0xf4], 1
jne 0x1800282c2
mov edx, dword [rsp + 0x84]
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SetTextColor]
mov edx, 0xfffffff0
mov rcx, qword [r12 + 8]
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, eax
and ecx, 0x1f
sub ecx, 1
je 0x1800282f2
sub ecx, 1
je 0x1800282eb
cmp ecx, 0xa
jne 0x1800282f7
mov esi, r13d
jmp 0x1800282f7
mov esi, SafeArrayAccessData
jmp 0x1800282f7
mov esi, SafeArrayLock
bt eax, 9
jae 0x18002832c
mov esi, 1
cmp dword [rbx - 8], 0
jl 0x180028327
lea rdx, [0x1801086b0]
mov rcx, rbx
call fcn.1800c1814
test rax, rax
je 0x180028327
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
jne 0x18002832c
mov esi, SafeArrayAllocDescriptorEx
or r13d, 0xffffffff
cmp dword [r12 + 0xec], 0
je 0x1800283e8
lea edx, [r13 + 0x19]
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SetTextAlign]
mov esi, eax
xor eax, eax
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x6c], eax
lea rdx, [rsp + 0x68]
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_GetViewportOrgEx]
mov eax, dword [rsp + 0x5c]
sub eax, dword [rsp + 0x54]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [rsp + 0x58]
sub eax, dword [rsp + 0x50]
cdq
sub eax, edx
sar eax, 1
mov edx, eax
xor r9d, r9d
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SetViewportOrgEx]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [rsp + 0x20], eax
mov r9, rbx
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_TextOutW]
mov eax, dword [rsp + 0x6c]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [rsp + 0x68]
cdq
sub eax, edx
sar eax, 1
mov edx, eax
xor r9d, r9d
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SetViewportOrgEx]
mov edx, esi
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SetTextAlign]
jmp 0x18002846f
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x50]
mov r8d, r13d
lea rdx, [rsp + 0x100]
mov rcx, qword [rbp]
call qword [sym.imp.USER32.dll_DrawTextW]
cmp dword [r12 + 0xe0], 0
je 0x18002846f
mov edx, dword [r12 + 0x4c]
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SetTextColor]
cmp dword [r12 + 0x100], 0
jne 0x18002843e
mov r8d, r13d
mov edx, r13d
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_OffsetRect]
jmp 0x180028451
mov edx, 1
mov r8d, edx
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_OffsetRect]
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x50]
mov r8d, r13d
lea rdx, [rsp + 0x100]
mov rcx, qword [rbp]
call qword [sym.imp.USER32.dll_DrawTextW]
mov edx, r15d
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SetBkMode]
mov rdx, r14
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [rsp + 0x70]
mov rcx, qword [rbp]
call qword [sym.imp.GDI32.dll_SetTextColor]
cmp dword [r12 + 0xdc], 0
jne 0x180028502
mov rax, qword [rbp]
mov ecx, dword [rsp + 0x5c]
sub ecx, dword [rsp + 0x54]
mov r9d, dword [rsp + 0x58]
sub r9d, dword [rsp + 0x50]
mov dword [rsp + 0x40], 0xcc0020
xor esi, esi
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.GDI32.dll_BitBlt]
mov rcx, qword [rbp]
test rcx, rcx
je 0x1800284f9
mov qword [rbp], rsi
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rcx, rbp
call fcn.1800bf8b4
nop
test rdi, rdi
je 0x180028511
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteObject]
nop
lea rcx, [rbx - 0xc]
lea rax, [0x180140108]
cmp rcx, rax
je 0x180028534
lock xadd dword [rcx], r13d
dec r13d
test r13d, r13d
jg 0x180028534
call fcn.1800bf8f0
nop
lea rdx, [rsp + 0xb0]
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.USER32.dll_EndPaint]
xor eax, eax
mov rcx, qword [rsp + 0x8d0]
xor rcx, rsp
call fcn.1800bf8d0
lea r11, [rsp + 0x8e0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret