Function at 0x1401e5340
Capabilities:
Get graphical window text

Disassembly:
push rbx
sub rsp, 0x40
mov eax, dword [rcx + 0x2c]
mov r10d, edx
mov r8d, dword [rcx + 0x68]
mov rbx, rcx
mov edx, dword [rcx + 0x70]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r9d
mov r9d, dword [rcx + 0x6c]
mov ecx, r10d
call fcn.1401e5d80
movsxd r9, eax
mov edx, 0x610
mov r8d, 1
mov rcx, rbx
add rsp, 0x40
pop rbx
jmp 0x1401e5340
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x60
mov rax, qword [0x1406836b8]
xor rax, rsp
mov qword [rsp + 0x50], rax
add edx, 0xfffff9f6
mov rsi, r9
mov rbp, r8
mov rdi, rcx
cmp edx, 0x1b
ja case.0x1401e5385.1554
mov eax, edx
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x1e56f8]
add rcx, rdx
jmp rcx
mov rcx, qword [rdi + 0x50]
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
movzx ecx, bp
mov edx, 0xfffffff0
mov rbx, rax
and ebx, 0xffff0000
or ebx, ecx
mov rcx, qword [rdi + 0x50]
mov r8d, ebx
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov edx, ebx
mov rcx, rdi
call fcn.1401e4d70
test si, si
je case.0x1401e5385.1554
mov rcx, qword [rdi + 0x50]
xor edx, edx
lea r8d, [rdx + 1]
call qword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x1401e5385.1554
movsxd rax, dword [rdi + 0x70]
jmp 0x1401e56df
movsxd rax, dword [rdi + 0x68]
jmp 0x1401e56df
movsxd rax, dword [rdi + 0x6c]
jmp 0x1401e56df
mov ecx, dword [rdi + 0x68]
cmp esi, ecx
jl 0x1401e5409
cmp esi, dword [rdi + 0x6c]
mov ecx, esi
cmovg ecx, dword [rdi + 0x6c]
mov dword [rdi + 0x70], ecx
movsxd rax, ecx
jmp 0x1401e56df
movsxd rax, dword [rdi + 0xd8]
jmp 0x1401e56df
mov dword [rdi + 0xd8], esi
jmp 0x1401e562f
mov rcx, qword [rdi + 0x50]
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov ecx, eax
and ecx, 0x2000
cmp ebp, ecx
je case.0x1401e5385.1554
mov ecx, eax
bts eax, 0xd
btr ecx, 0xd
test ebp, ebp
cmove eax, ecx
mov rcx, rdi
mov edx, eax
call fcn.1401e4d70
jmp 0x1401e53c9
mov rax, qword [rdi + 8]
jmp 0x1401e56df
mov qword [rdi + 8], rbp
mov rax, rbp
jmp 0x1401e56df
mov rax, qword [rdi + 0x10]
jmp 0x1401e56df
mov rcx, qword [rdi + 0x10]
xor r14d, r14d
test rcx, rcx
je 0x1401e54c6
lea rdx, str.SpinMeRound
call qword [sym.imp.USER32.dll_RemovePropW]
mov rcx, qword [rdi + 0x10]
lea rdx, str.SpinMeLo
call qword [sym.imp.USER32.dll_RemovePropW]
mov r8, qword [rdi + 0x18]
lea edx, [r14 - 4]
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov qword [rdi + 0x18], r14
mov qword [rdi + 0x10], rbp
test rbp, rbp
je 0x1401e55eb
lea r8, [0x1401e5180]
mov edx, 0xfffffffc
mov rcx, rbp
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov qword [rdi + 0x18], rax
test rax, rax
jne 0x1401e5500
mov qword [rdi + 0x10], r14
mov rbp, r14
mov rax, r14
jmp 0x1401e56df
mov rcx, qword [rdi + 0x10]
lea rdx, str.SpinMeRound
mov r8, rdi
call qword [sym.imp.USER32.dll_SetPropW]
mov r8, qword [rdi + 0x18]
lea rdx, str.SpinMeLo
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_SetPropW]
mov rcx, qword [rdi + 0x10]
xor r9d, r9d
movzx r8d, si
mov edx, SetErrorInfo
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rdi + 0x50]
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rcx, qword [rdi + 0x50]
mov edx, 0xfffffff0
mov rbx, rax
btr ebx, 0x10
bts ebx, 0xe
mov r8d, ebx
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov edx, ebx
mov rcx, rdi
call fcn.1401e4d70
mov rcx, qword [rdi + 0x10]
lea rdx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [rsp + 0x48]
mov rcx, qword [rdi + 0x50]
mov dword [rsp + 0x40], eax
add eax, 0xd
mov dword [rsp + 0x48], eax
call qword [sym.imp.USER32.dll_GetParent]
mov r9d, 2
lea r8, [rsp + 0x40]
mov rdx, rax
xor ecx, ecx
call qword [sym.imp.USER32.dll_MapWindowPoints]
mov ecx, dword [rsp + 0x4c]
xor edx, edx
mov r9d, dword [rsp + 0x44]
sub ecx, r9d
mov eax, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x40]
sub eax, r8d
mov dword [rsp + 0x30], ILFindChild
mov dword [rsp + 0x28], ecx
mov rcx, qword [rdi + 0x50]
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_SetWindowPos]
mov rbp, qword [rdi + 0x10]
mov rax, rbp
jmp 0x1401e56df
movsxd rcx, dword [rdi + 0x68]
cmp rsi, rcx
jl 0x1401e560a
movsxd rax, dword [rdi + 0x6c]
mov rcx, rsi
cmp rsi, rax
cmovg rcx, rax
mov dword [rdi + 0x74], ecx
movsxd rax, ecx
jmp 0x1401e56df
movsx eax, si
shr rsi, 0x10
mov dword [rdi + 0x68], eax
movsx eax, si
mov dword [rdi + 0x6c], eax
jmp 0x1401e562f
mov dword [rdi + 0x68], esi
jmp 0x1401e562f
mov dword [rdi + 0x6c], esi
mov esi, dword [rdi + 0x68]
xor r14d, r14d
mov qword [rsp + 0x98], r15
test esi, esi
jns 0x1401e5650
mov ebp, dword [rdi + 0x6c]
test ebp, ebp
js 0x1401e5650
mov eax, esi
cmovne eax, r14d
jmp 0x1401e5661
mov ebp, dword [rdi + 0x6c]
mov eax, ebp
sub eax, esi
cdq
sub eax, edx
sar eax, 1
mov dword [rdi + 0x74], eax
add eax, esi
mov r15d, ebp
mov dword [rdi + 0x74], eax
sub r15d, esi
test byte [rdi], 0x80
je 0x1401e56b2
mov ecx, ebp
call fcn.1401e1f10
mov ecx, esi
mov ebx, eax
call fcn.1401e1f10
mov edx, ebx
movd xmm2, r15d
sub edx, eax
movd xmm0, ebx
cvtdq2pd xmm2, xmm2
mov ecx, ebp
mov dword [rdi + 0x7c], edx
cvtdq2pd xmm0, xmm0
movd xmm1, edx
cvtdq2pd xmm1, xmm1
mulsd xmm2, xmm0
divsd xmm2, xmm1
cvttsd2si eax, xmm2
sub ecx, eax
mov dword [rdi + 0x78], ecx
cmp dword [rdi + 0xd8], r15d
mov eax, dword [rdi + 0x70]
mov r15, qword [rsp + 0x98]
setge r14b
mov dword [rdi + 0x9c], r14d
cmp eax, esi
jl 0x1401e56da
cmp eax, ebp
mov esi, eax
cmovg esi, ebp
mov dword [rdi + 0x70], esi
xor eax, eax
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14039bbb0
add rsp, 0x60
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret