// File: manschga[P]M5GB/./poly.h
// Function: polynomial::operator<(polynomial const&) const
bool operator < (const polynomial &rhs) const
  {
    if (this->Get_monomials().size() > 0 && rhs.Get_monomials().size()>0)
      {
	if (this->Get_LM() == rhs.Get_LM())
	  {
	    polynomial lhs_tail = *this - polynomial({this->Get_LM()});
	    polynomial rhs_tail = rhs - polynomial({rhs.Get_LM()});
	    return (lhs_tail < rhs_tail);
	  }
	else
	  {
	    return this->Get_LM() < rhs.Get_LM();
	  }
      }
    return false;
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0x31f0
movq %rax, %rdi
callq 0xc4b0
cmpq $0x0, %rax
jbe 0x23034
movq -0x18(%rbp), %rdi
callq 0x31f0
movq %rax, %rdi
callq 0xc4b0
cmpq $0x0, %rax
jbe 0x23034
movq -0x130(%rbp), %rdi
callq 0x23060
movq %rax, -0x138(%rbp)
movq -0x18(%rbp), %rdi
callq 0x23060
movq -0x138(%rbp), %rdi
movq %rax, %rsi
callq 0x230c0
testb $0x1, %al
jne 0x22d64
jmp 0x23002
movq -0x130(%rbp), %rdi
callq 0x23060
movups (%rax), %xmm0
movaps %xmm0, -0x90(%rbp)
leaq -0x90(%rbp), %rax
movq %rax, -0x80(%rbp)
movq $0x1, -0x78(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0xe930
movq -0x140(%rbp), %rcx
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
leaq -0x70(%rbp), %rdi
callq 0xeaa0
jmp 0x22dba
leaq -0x58(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x25f60
jmp 0x22dc9
movq -0x130(%rbp), %rsi
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rdx
callq 0xd790
jmp 0x22ddf
leaq -0x58(%rbp), %rdi
callq 0x44a0
leaq -0x70(%rbp), %rdi
callq 0x44c0
leaq -0x91(%rbp), %rdi
callq 0x46a0
movq -0x18(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x23060
movq %rax, -0x148(%rbp)
jmp 0x22e16
movq -0x148(%rbp), %rax
movups (%rax), %xmm0
movaps %xmm0, -0x120(%rbp)
leaq -0x120(%rbp), %rax
movq %rax, -0x110(%rbp)
movq $0x1, -0x108(%rbp)
leaq -0x121(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0xe930
movq -0x158(%rbp), %rcx
movq -0x110(%rbp), %rsi
movq -0x108(%rbp), %rdx
leaq -0x100(%rbp), %rdi
callq 0xeaa0
jmp 0x22e76
leaq -0xe8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x25f60
jmp 0x22e8b
movq -0x150(%rbp), %rsi
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rdx
callq 0xd790
jmp 0x22ea7
leaq -0xe8(%rbp), %rdi
callq 0x44a0
leaq -0x100(%rbp), %rdi
callq 0x44c0
leaq -0x121(%rbp), %rdi
callq 0x46a0
leaq -0x38(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x22ce0
movb %al, -0x159(%rbp)
jmp 0x22ee3
movb -0x159(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x44a0
leaq -0x38(%rbp), %rdi
callq 0x44a0
jmp 0x23038
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x22f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x22f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x44a0
leaq -0x70(%rbp), %rdi
callq 0x44c0
leaq -0x91(%rbp), %rdi
callq 0x46a0
jmp 0x23046
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x22ff7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x22fcb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x22fbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x44a0
leaq -0x100(%rbp), %rdi
callq 0x44c0
leaq -0x121(%rbp), %rdi
callq 0x46a0
jmp 0x22ff7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x44a0
leaq -0x38(%rbp), %rdi
callq 0x44a0
jmp 0x23046
movq -0x130(%rbp), %rdi
callq 0x23060
movq %rax, -0x168(%rbp)
movq -0x18(%rbp), %rdi
callq 0x23060
movq -0x168(%rbp), %rdi
movq %rax, %rsi
callq 0xf140
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x23038
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq -0xa0(%rbp), %rdi
callq 0x2300
nopw %cs:(%rax,%rax)
nopl (%rax)