Function at 0x651557b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xec
push esi
push edi
mov edi, ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0xe8], edi
mov eax, dword [edi + 4]
mov dword [esp + 0xdc], eax
mov eax, dword [edi + 0x15c]
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 0x1c]
sub eax, dword [edx + 0x14]
inc eax
push eax
mov eax, dword [edx + 0x18]
sub eax, dword [edx + 0x10]
inc eax
push eax
push 0
push 0
call dword [0x652b21f8]
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x8c]
call dword [0x652b2330]
mov ecx, dword [esp + 0xdc]
mov esi, eax
lea eax, [esp + 0x48]
push eax
call sym.Qt5Widgets.dll_protected:_class_QPointF___thiscall_QPlainTextEdit::contentOffset_void_
mov ecx, esi
movups xmm0, xmmword [eax]
lea eax, [esp + 0xb8]
push eax
xorps xmm0, xmmword [0x652b8ca0]
lea eax, [esp + 0xc]
push eax
movups xmmword [esp + 0xc0], xmm0
call dword [0x652b184c]
mov ecx, dword [edi + 0x198]
call sym.Qt5Widgets.dll_public:_class_QUndoStack____thiscall_QUndoGroup::activeStack_void_const
push dword [esp + 0xf8]
lea ecx, [esp + 0xf0]
push ecx
mov ecx, eax
call dword [0x652b2c58]
mov edi, dword [0x652b2c04]
lea ecx, [esp + 0xec]
call edi
test al, al
je 0x65155c50
mov ecx, dword [esp + 0xe8]
lea edx, [esp + 0xec]
push edx
lea edx, [esp + 0x5c]
push edx
mov ecx, dword [ecx + 0x198]
mov eax, dword [ecx]
call dword [eax + 0x3c]
movsd xmm0, qword [esp + 0x68]
xorps xmm1, xmm1
comisd xmm0, xmm1
jbe 0x65155c50
movsd xmm0, qword [esp + 0x70]
comisd xmm0, xmm1
jbe 0x65155c50
lea ecx, [esp + 0xec]
call dword [0x652b2bf4]
lea ecx, [esp + 0xec]
mov esi, eax
call dword [0x652b2c00]
mov ecx, dword [esp + 0xf8]
sub ecx, eax
lea eax, [esp + 0xd0]
push ecx
push eax
mov ecx, esi
call dword [0x652b2c74]
mov esi, dword [0x652b2c68]
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0xd4]
call esi
movups xmm0, xmmword [esp + 0x58]
lea ecx, [esp + 0xb8]
push ecx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
movups xmmword [esp + 0xc0], xmm0
call dword [0x652b184c]
movsd xmm4, qword [esp + 0x10]
movsd xmm2, qword [esp + 0x20]
movaps xmm0, xmm4
movsd xmm1, qword [esp + 0x40]
addsd xmm0, xmm2
movsd xmm3, qword [esp + 0x30]
mov al, byte [esp + 0xfc]
addsd xmm1, xmm3
movsd qword [esp + 0xc8], xmm2
comisd xmm1, xmm0
jae 0x651559ae
test al, al
je 0x6515596b
comisd xmm4, xmm3
ja 0x651559ae
cmp byte [esp + 0x100], 0
jne 0x651559ae
comisd xmm4, xmm3
jbe 0x65155c50
mov esi, dword [esp + 0xd0]
lea ecx, [esp + 0xec]
call dword [0x652b2be0]
mov ecx, dword [esp + 0xe8]
push 0
push esi
push eax
call fcn.65159270
pop edi
pop esi
add esp, 0xec
ret 0xc
lea ecx, [esp + 0xd0]
test al, al
je 0x651559e3
mulsd xmm2, qword [0x652b8c10]
lea eax, [esp + 0x88]
push eax
movsd qword [esp + 0xcc], xmm2
call esi
movsd xmm0, qword [eax + 0x18]
mulsd xmm0, qword [0x652b8c10]
jmp 0x651559f2
lea eax, [esp + 0xa8]
push eax
call esi
movsd xmm0, qword [eax + 0x18]
addsd xmm0, qword [eax + 8]
mov eax, dword [esp + 0xec]
movsd xmm1, qword [esp + 0xc8]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xf0]
comisd xmm1, xmm0
mov dword [esp + 0x100], eax
movsd qword [esp + 0xe0], xmm0
jbe 0x65155b3c
mov esi, dword [0x652b2bcc]
nop word [eax + eax]
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0xf0]
call esi
mov ecx, eax
call edi
test al, al
je 0x65155b3c
mov eax, dword [esp + 0xec]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x100], eax
nop word [eax + eax]
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0xf0]
call esi
mov ecx, dword [eax]
mov dword [esp + 0xec], ecx
lea ecx, [esp + 0xec]
mov eax, dword [eax + 4]
mov dword [esp + 0xf0], eax
call dword [0x652b2be4]
test al, al
jne 0x65155ace
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0xf0]
call esi
mov ecx, eax
call edi
test al, al
jne 0x65155a80
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 0x198]
call sym.Qt5Widgets.dll_public:_class_QUndoStack____thiscall_QUndoGroup::activeStack_void_const
mov ecx, eax
call dword [0x652b3560]
push eax
mov ecx, sym.Qt5Widgets.dll_struct_QMetaObject_const_QPlainTextDocumentLayout::staticMetaObject
call dword [0x652b23e8]
lea ecx, [esp + 0xec]
push ecx
lea ecx, [esp + 0x8c]
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x40]
movsd xmm0, qword [esp + 0xa0]
addsd xmm0, qword [esp + 0xe0]
movsd xmm1, qword [esp + 0xc8]
comisd xmm1, xmm0
movsd qword [esp + 0xe0], xmm0
ja 0x65155a40
lea ecx, [esp + 0xec]
xor edi, edi
call dword [0x652b2bf4]
mov ecx, eax
call dword [0x652b3294]
lea ecx, [esp + 0xec]
mov dword [esp + 0xf8], eax
call dword [0x652b2be0]
mov esi, eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0x198]
call sym.Qt5Widgets.dll_public:_class_QUndoStack____thiscall_QUndoGroup::activeStack_void_const
test esi, esi
jne 0x65155b9d
mov ecx, eax
call dword [0x652b2c40]
fldz
fsubrp st(1)
fstp qword [esp + 0xd8]
movsd xmm1, qword [esp + 0xd8]
jmp 0x65155ba0
xorps xmm1, xmm1
mov esi, dword [esp + 0xf8]
test esi, esi
jle 0x65155c15
movsd xmm0, qword [esp + 0xe0]
subsd xmm0, xmm1
movsd qword [esp + 0xe0], xmm0
lea ecx, [esp + 0xec]
call dword [0x652b2bf4]
push edi
lea ecx, [esp + 0xc4]
push ecx
mov ecx, eax
call dword [0x652b3290]
lea ecx, [esp + 0x88]
push ecx
mov ecx, eax
call dword [0x652b2c68]
movsd xmm0, qword [esp + 0xe0]
subsd xmm0, qword [esp + 0x90]
movsd xmm1, qword [esp + 0xc8]
comisd xmm1, xmm0
jae 0x65155c33
inc edi
cmp edi, esi
jl 0x65155bc1
mov eax, dword [esp + 0xfc]
xor edi, edi
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0xf0], eax
push 0
push edi
lea ecx, [esp + 0xf4]
call dword [0x652b2be0]
mov ecx, dword [esp + 0xf0]
push eax
call fcn.65159270
pop edi
pop esi
add esp, 0xec
ret 0xc