// File: /workspace/github_cpp_makefile_star2_O1/manschga[P]M5GB/poly.cpp
// Function: lcm(std::pair<int, std::vector<int, std::allocator<int>>>&, monomial const&, std::pair<int, std::vector<int, std::allocator<int>>>&, monomial const&)
void lcm(pair<int,vector<int>>& u, const monomial& LM_f, pair<int,vector<int>>& v, const monomial& LM_g)
{
  vector<int> term_f = table[LM_f.Get_term()].first;
  vector<int> term_g = table[LM_g.Get_term()].first;
  vector<int> term_u,term_v; //terms for u,v
  lcm(term_u,term_f,term_v,term_g);//get lcm on term level
  int c_u = Inverse(LM_f.Get_coeff(),LM_f.Get_p());//construct coeff of u,v
  int c_v = Inverse(LM_g.Get_coeff(),LM_g.Get_p());
  u = make_pair(c_u,term_u); //monomials in vector form
  v = make_pair(c_v,term_v);
  return;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rcx, %r15
movq %rdx, %rbx
movq %rsi, %r12
movq %rdi, %r14
movq (%rsi), %rax
leaq 0x9c56(%rip), %r13      # 0x1a168
leaq (%rax,%rax,2), %rsi
shlq $0x4, %rsi
addq (%r13), %rsi
leaq 0x90(%rsp), %rdi
callq 0x405e
movq (%r15), %rax
leaq (%rax,%rax,2), %rsi
shlq $0x4, %rsi
addq (%r13), %rsi
leaq 0x78(%rsp), %rdi
callq 0x405e
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
xorl %eax, %eax
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movaps %xmm0, (%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x405e
leaq 0x20(%rsp), %rdi
leaq 0x90(%rsp), %rsi
movq %rsp, %rdx
leaq 0x60(%rsp), %rcx
callq 0x3b33
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x1059c
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
movl 0x8(%r12), %edi
movl 0xc(%r12), %esi
callq 0x3519
movl %eax, %r12d
movl 0x8(%r15), %edi
movl 0xc(%r15), %esi
callq 0x3519
movl %eax, %ebp
leaq 0x48(%rsp), %r15
movl %r12d, -0x8(%r15)
leaq 0x20(%rsp), %rsi
movq %r15, %rdi
callq 0x405e
movl 0x40(%rsp), %eax
movl %eax, (%r14)
addq $0x8, %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0xd7e4
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x10600
movq 0x58(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
leaq 0x48(%rsp), %r14
movl %ebp, -0x8(%r14)
movq %rsp, %rsi
movq %r14, %rdi
callq 0x405e
movl 0x40(%rsp), %eax
movl %eax, (%rbx)
addq $0x8, %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xd7e4
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x10640
movq 0x58(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x10656
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x1066d
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
movq 0x78(%rsp), %rdi
testq %rdi, %rdi
je 0x10687
movq 0x88(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x106a4
movq 0xa0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x106da
jmp 0x106da
jmp 0x106da
jmp 0x106da
movq %rax, %rbx
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x106dd
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
jmp 0x106dd
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x106f3
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x1070a
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
movq 0x78(%rsp), %rdi
testq %rdi, %rdi
je 0x10729
movq 0x88(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
jmp 0x10729
movq %rax, %rbx
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x10746
movq 0xa0(%rsp), %rsi
subq %rdi, %rsi
callq 0x2180
movq %rbx, %rdi
callq 0x2240