Function at 0x100026838
Capabilities:
Get graphical window text

Disassembly:
push rbp
sub rsp, 0xf0
lea rbp, [rsp + 0x60]
mov qword [rbp + 8], 0xfffffffffffffffe
mov qword [rbp + 0xa8], rbx
mov qword [rbp + 0xb0], rdi
mov qword [rbp + 0xb8], r12
mov rax, qword [0x1000a1108]
xor rax, rbp
mov qword [rbp + 0x80], rax
mov rbx, rcx
mov r8d, 8
lea rdx, [rbp + 0x70]
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_GetClassNameW]
mov rdi, 0xfffffffffffffff0
lea r12d, [rdi + 0x11]
test eax, eax
je 0x10002692c
mov dword [rsp + 0x20], r12d
or edx, 0xffffffff
mov r9d, edx
lea r8, [0x100003ff8]
lea rcx, [rbp + 0x70]
call qword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
cmp eax, 2
jne 0x10002692c
mov edx, edi
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov r8d, eax
bts r8d, 8
cmp eax, r8d
je 0x1000268e4
mov edx, edi
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_SetWindowLongW]
mov edx, edi
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_GetWindowLongW]
movzx ecx, al
cmp ecx, 3
je 0x100026925
cmp ecx, 4
je 0x100026925
cmp ecx, 5
je 0x100026925
cmp ecx, 6
je 0x100026925
cmp ecx, 7
je 0x100026925
cmp ecx, 8
je 0x100026925
cmp ecx, 9
je 0x100026925
cmp ecx, 0xd
je 0x100026925
cmp ecx, 0xe
je 0x100026925
cmp ecx, 0xf
jne 0x10002692c
and byte [rbx + 0x94], 0xfe
mov edx, 0x7f89
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov qword [rbx + 0x58], rax
test byte [rbx + 0x94], r12b
je 0x1000269e6
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_GetParent]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x31]
mov rcx, rax
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rbx + 0x98], rax
test rax, rax
jne 0x100026983
lea ecx, [rax + 0xd]
call qword [sym.imp.GDI32.dll_GetStockObject]
mov qword [rbx + 0x98], rax
mov rcx, qword [rbx + 0x98]
test rcx, rcx
je 0x1000269e6
cmp qword [rbx + 0x60], 0
jne 0x1000269e6
mov qword [rbp], rcx
lea r8, [rbp + 0x10]
mov edx, 0x5c
call qword [sym.imp.GDI32.dll_GetObjectW]
mov eax, dword [rbx + 0xa4]
and eax, 0x30
cmp al, 0x30
jne 0x1000269bf
mov dword [rbp + 0x20], 0x2bc
jmp 0x1000269d1
test byte [rbx + 0xa4], r12b
movzx eax, byte [rbp + 0x25]
cmove eax, r12d
mov byte [rbp + 0x25], al
lea rcx, [rbp + 0x10]
call qword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov qword [rbx + 0x60], rax
mov byte [rbx + 0xa1], r12b
cmp qword [rbx + 0x48], 0
jne 0x100026a68
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
test eax, eax
jle 0x100026a68
lea r8d, [rax + 1]
movsxd rax, r8d
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x100026a18
movabs rcx, 0xffffffffffffff0
and rcx, rdi
mov rax, rcx
call fcn.10007b790
sub rsp, rcx
lea rdi, [rsp + 0x60]
mov rdx, rdi
mov rcx, qword [rbx + 8]
call qword [sym.imp.USER32.dll_GetWindowTextW]
test eax, eax
je 0x100026a68
mov rdx, rdi
mov rcx, rbx
call fcn.100027b34
test al, al
je 0x100026a68
mov rdx, rdi
mov rcx, rbx
call fcn.100026bb0
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x100026a68
mov rdx, rdi
call qword [sym.imp.USER32.dll_SetWindowTextW]
cmp qword [rbx + 0x50], 0
jne 0x100026a80
mov rdx, qword [rbx + 0x48]
test rdx, rdx
je 0x100026a80
mov rcx, rbx
call fcn.100026bb0
mov rcx, rbx
call fcn.10002769c
and qword [rbx + 0x80], 0
mov r9, qword [rbx + 8]
mov r8d, dword [0x1000a116c]
mov r10d, dword [0x1000a1164]
sub r8d, r10d
mov ecx, dword [0x1000a1168]
mov edx, dword [0x1000a1160]
sub ecx, edx
and qword [rsp + 0x58], 0
mov rax, qword [0x1000a1d68]
mov qword [rsp + 0x50], rax
and qword [rsp + 0x48], 0
mov qword [rsp + 0x40], r9
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], edx
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x100004020]
xor ecx, ecx
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov qword [rbx + 0x80], rax
mov ecx, dword [rbx + 0xa4]
mov eax, ecx
shr eax, 2
test r12b, al
jne 0x100026b1b
shr ecx, 4
test r12b, cl
jne 0x100026b1b
mov eax, r12d
jmp 0x100026b1d
xor eax, eax
movsxd r8, eax
xor r9d, r9d
mov edx, 0x401
mov rcx, qword [rbx + 0x80]
call qword [sym.imp.USER32.dll_SendMessageW]
and dword [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rbx + 0x50]
mov rdx, qword [rbx + 8]
lea rcx, [rbx + 0x80]
call fcn.10002dc84
test byte [rbx + 0x94], r12b
je 0x100026b7b
mov edi, 0x1a
mov ecx, edi
call qword [sym.imp.USER32.dll_GetSysColor]
mov dword [rbx + 0x88], eax
mov ecx, edi
call qword [sym.imp.USER32.dll_GetSysColor]
mov dword [rbx + 0x8c], eax
mov rcx, qword [rbp + 0x80]
xor rcx, rbp
call fcn.10007a3b0
mov rbx, qword [rbp + 0xa8]
mov rdi, qword [rbp + 0xb0]
mov r12, qword [rbp + 0xb8]
lea rsp, [rbp + 0x90]
pop rbp
ret