// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/interval_tree.c
// Function: interval_tree_right_rotate
static void interval_tree_right_rotate(GtIntervalTree *it,
                                       GtIntervalTreeNode **root,
                                       GtIntervalTreeNode *y)
{
  GtIntervalTreeNode *x;
  x = y->left;
  y->left = x->right;
  if (x->right != it->nil)
    x->right->parent = y;
  x->parent = y->parent;
  if (y->parent == it->nil)
    *root = x;
  else {
    if (y == y->parent->left)
      y->parent->left = x;
    else
      y->parent->right = x;
  }
  x->right = y;
  y->parent = x;
  /* interval tree augmentation */
  x->max = x->high;
  if (x->left != it->nil && x->left->max > x->max)
    x->max = x->left->max;
  if (x->right != it->nil && x->right->max > x->max)
    x->max = x->right->max;
  y->max = y->high;
  if (y->left != it->nil && y->left->max > y->max)
    y->max = y->left->max;
  if (y->right != it->nil && y->right->max > y->max)
    y->max = y->right->max;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq %rdx, -0x18(%rsp)
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rcx
movq -0x18(%rsp), %rax
movq %rcx, 0x8(%rax)
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rsp), %rcx
cmpq 0x48(%rcx), %rax
je 0x8bf04
movq -0x18(%rsp), %rcx
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, (%rax)
movq -0x18(%rsp), %rax
movq (%rax), %rcx
movq -0x20(%rsp), %rax
movq %rcx, (%rax)
movq -0x18(%rsp), %rax
movq (%rax), %rax
movq -0x8(%rsp), %rcx
cmpq 0x48(%rcx), %rax
jne 0x8bf36
movq -0x20(%rsp), %rcx
movq -0x10(%rsp), %rax
movq %rcx, (%rax)
jmp 0x8bf6f
movq -0x18(%rsp), %rax
movq -0x18(%rsp), %rcx
movq (%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x8bf5c
movq -0x20(%rsp), %rcx
movq -0x18(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x8bf6d
movq -0x20(%rsp), %rcx
movq -0x18(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x10(%rax)
jmp 0x8bf6f
movq -0x18(%rsp), %rcx
movq -0x20(%rsp), %rax
movq %rcx, 0x10(%rax)
movq -0x20(%rsp), %rcx
movq -0x18(%rsp), %rax
movq %rcx, (%rax)
movq -0x20(%rsp), %rax
movq 0x30(%rax), %rcx
movq -0x20(%rsp), %rax
movq %rcx, 0x38(%rax)
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rsp), %rcx
cmpq 0x48(%rcx), %rax
je 0x8bfde
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x38(%rax), %rax
movq -0x20(%rsp), %rcx
cmpq 0x38(%rcx), %rax
jbe 0x8bfde
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x38(%rax), %rcx
movq -0x20(%rsp), %rax
movq %rcx, 0x38(%rax)
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rsp), %rcx
cmpq 0x48(%rcx), %rax
je 0x8c020
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x38(%rax), %rax
movq -0x20(%rsp), %rcx
cmpq 0x38(%rcx), %rax
jbe 0x8c020
movq -0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x38(%rax), %rcx
movq -0x20(%rsp), %rax
movq %rcx, 0x38(%rax)
movq -0x18(%rsp), %rax
movq 0x30(%rax), %rcx
movq -0x18(%rsp), %rax
movq %rcx, 0x38(%rax)
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rsp), %rcx
cmpq 0x48(%rcx), %rax
je 0x8c074
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x38(%rax), %rax
movq -0x18(%rsp), %rcx
cmpq 0x38(%rcx), %rax
jbe 0x8c074
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x38(%rax), %rcx
movq -0x18(%rsp), %rax
movq %rcx, 0x38(%rax)
movq -0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rsp), %rcx
cmpq 0x48(%rcx), %rax
je 0x8c0b6
movq -0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x38(%rax), %rax
movq -0x18(%rsp), %rcx
cmpq 0x38(%rcx), %rax
jbe 0x8c0b6
movq -0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x38(%rax), %rcx
movq -0x18(%rsp), %rax
movq %rcx, 0x38(%rax)
retq
nopw (%rax,%rax)