Function at 0x478a50
Capabilities:
Get graphical window text

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x88], rbx
mov r14, rcx
cmp qword [rcx + 0xf8], 0
jne 0x478a85
xor eax, eax
jmp 0x478d6c
call fcn.0049d8dc
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x478aa4
mov ecx, 0x80004005
call fcn.004034c0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x78], rbx
lea rsi, [0x004f7838]
or r12, 0xffffffffffffffff
test rsi, 0xffffffffffff0000
jne 0x478af0
movzx edi, si
mov ecx, edi
call fcn.0049f018
test rax, rax
je 0x478b14
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.0040a480
mov rbx, qword [rsp + 0x78]
jmp 0x478b14
xor eax, eax
mov rcx, r12
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rsi
lea rcx, [rsp + 0x78]
call fcn.00409ff0
mov rbx, qword [rsp + 0x78]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x14b
mov rcx, qword [r14 + 0xb20]
call qword [sym.imp.USER32.dll_SendMessageW]
mov dword [rsp + 0x70], 0
lea rbp, [0x00537fb4]
mov qword [rsp + 0x80], rbp
nop
nop
nop
nop
mov r15d, dword [rbp]
mov r13, qword [r14 + 0xf8]
xor eax, eax
mov rcx, r12
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x478bcc
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x478c63
cmp dword [rdx + 0x10], eax
jge 0x478b9d
cmp dword [rbx - 0xc], eax
jl 0x478d33
mov dword [rbx - 0x10], eax
mov word [rbx], ax
jmp 0x478c63
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x478bb5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x78], rax
jmp 0x478c63
mov esi, dword [rbx - 0x10]
lea rbp, [0x004f7838]
sub rbp, rbx
sar rbp, 1
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x478bfe
mov edx, edi
lea rcx, [rsp + 0x78]
call fcn.004034e0
mov rbx, qword [rsp + 0x78]
cmp rbp, rsi
ja 0x478c1e
movsxd rax, edi
lea rsi, [rax + rax]
lea r8, [rbx + rbp*2]
mov r9, rsi
mov rdx, rsi
mov rcx, rbx
call fcn.004c8350
jmp 0x478c3a
movsxd rax, edi
lea rsi, [rax + rax]
mov r9, rsi
lea r8, [0x004f7838]
mov rdx, rsi
mov rcx, rbx
call fcn.004c80e0
test edi, edi
js 0x478d61
cmp edi, dword [rbx - 0xc]
jg 0x478d61
mov dword [rbx - 0x10], edi
mov word [rsi + rbx], 0
mov rbp, qword [rsp + 0x80]
lea rsi, [0x004f7838]
call fcn.00491aa0
movzx r9d, word [r13 + 0x27c]
mov r8d, r15d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0x78]
call fcn.00447dc0
xor r11d, r11d
mov rdi, rsi
mov rbx, qword [rsp + 0x78]
mov rsi, rbx
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x478ca0
sbb r11d, r11d
sbb r11d, 0xffffffff
test r11d, r11d
sete al
test al, al
je 0x478cca
call fcn.00491aa0
mov r9w, 0x409
mov r8d, r15d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0x78]
call fcn.00447dc0
mov rbx, qword [rsp + 0x78]
mov esi, dword [rsp + 0x70]
movsxd rdi, esi
mov r9, rbx
mov r8, rdi
mov edx, 0x14a
mov rcx, qword [r14 + 0xb20]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9, rsi
shl r9, 4
lea rax, [0x00537fb0]
add r9, rax
mov r8, rdi
mov edx, 0x151
mov rcx, qword [r14 + 0xb20]
call qword [sym.imp.USER32.dll_SendMessageW]
add esi, 1
mov dword [rsp + 0x70], esi
add rbp, 0x10
mov qword [rsp + 0x80], rbp
cmp esi, 0xd
jae 0x478d3e
lea rsi, [0x004f7838]
jmp 0x478b50
mov ecx, 0x80070057
call fcn.004034c0
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
add r12d, 0xffffffff
test r12d, r12d
jg 0x478d5a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 1
jmp 0x478d6c
mov ecx, 0x80070057
call fcn.004034c0
nop
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret