// File: /workspace/github_c_makefile_star2_O0/ThomasMadappattu[P]Sandmacs/window.c
// Function: shrinkwind
int shrinkwind (int f, int n)
{
  WINDOW *adjwp;
  LINE *lp;
  int i;

  if (n < 0)
    return (enlargewind (f, -n));
  if (wheadp->w_wndp == NULL)
    {
      mlwrite ("Only one window");
      return (FALSE);
    }
  if ((adjwp = curwp->w_wndp) == NULL)
    {
      adjwp = wheadp;
      while (adjwp->w_wndp != curwp)
	adjwp = adjwp->w_wndp;
    }
  if (curwp->w_ntrows <= n)
    {
      mlwrite ("Impossible change");
      return (FALSE);
    }
  if (curwp->w_wndp == adjwp)
    {				/* Grow below */
      lp = adjwp->w_linep;
      for (i = 0; i < n && lback (lp) != adjwp->w_bufp->b_linep; ++i)
	lp = lback (lp);
      adjwp->w_linep = lp;
      adjwp->w_toprow -= n;
    }
  else
    {				/* Grow above */
      lp = curwp->w_linep;
      for (i = 0; i < n && lp != curbp->b_linep; ++i)
	lp = lforw (lp);
      curwp->w_linep = lp;
      curwp->w_toprow += n;
    }
  curwp->w_ntrows -= n;
  adjwp->w_ntrows += n;
  curwp->w_flag |= WFMODE | WFHARD;
  adjwp->w_flag |= WFMODE | WFHARD;
  return (TRUE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jge 0xb409
movl -0x8(%rbp), %edi
xorl %esi, %esi
subl -0xc(%rbp), %esi
callq 0xb1b0
movl %eax, -0x4(%rbp)
jmp 0xb609
leaq 0x6480(%rip), %rax      # 0x11890
movq (%rax), %rax
cmpq $0x0, (%rax)
jne 0xb433
leaq 0x239f(%rip), %rdi      # 0xd7bf
movb $0x0, %al
callq 0x5970
movl $0x0, -0x4(%rbp)
jmp 0xb609
leaq 0x643e(%rip), %rax      # 0x11878
movq (%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0xb47a
leaq 0x643f(%rip), %rax      # 0x11890
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
leaq 0x6412(%rip), %rcx      # 0x11878
cmpq (%rcx), %rax
je 0xb478
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0xb458
jmp 0xb47a
leaq 0x63f7(%rip), %rax      # 0x11878
movq (%rax), %rax
movsbl 0x39(%rax), %eax
cmpl -0xc(%rbp), %eax
jg 0xb4a7
leaq 0x233b(%rip), %rdi      # 0xd7cf
movb $0x0, %al
callq 0x5970
movl $0x0, -0x4(%rbp)
jmp 0xb609
leaq 0x63ca(%rip), %rax      # 0x11878
movq (%rax), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
jne 0xb535
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %ecx
xorl %eax, %eax
cmpl -0xc(%rbp), %ecx
movb %al, -0x25(%rbp)
jge 0xb4f4
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x28(%rcx), %rax
setne %al
movb %al, -0x25(%rbp)
movb -0x25(%rbp), %al
testb $0x1, %al
jne 0xb4fd
jmp 0xb514
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xb4cd
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
movl -0xc(%rbp), %edx
movq -0x18(%rbp), %rax
movsbl 0x38(%rax), %ecx
subl %edx, %ecx
movb %cl, 0x38(%rax)
jmp 0xb5ba
leaq 0x633c(%rip), %rax      # 0x11878
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %ecx
xorl %eax, %eax
cmpl -0xc(%rbp), %ecx
movb %al, -0x26(%rbp)
jge 0xb573
movq -0x20(%rbp), %rax
leaq 0x6302(%rip), %rcx      # 0x11868
movq (%rcx), %rcx
cmpq 0x28(%rcx), %rax
setne %al
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
testb $0x1, %al
jne 0xb57c
jmp 0xb592
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xb54e
movq -0x20(%rbp), %rcx
leaq 0x62db(%rip), %rax      # 0x11878
movq (%rax), %rax
movq %rcx, 0x10(%rax)
movl -0xc(%rbp), %edx
leaq 0x62ca(%rip), %rax      # 0x11878
movq (%rax), %rax
movsbl 0x38(%rax), %ecx
addl %edx, %ecx
movb %cl, 0x38(%rax)
movl -0xc(%rbp), %edx
leaq 0x62b4(%rip), %rax      # 0x11878
movq (%rax), %rax
movsbl 0x39(%rax), %ecx
subl %edx, %ecx
movb %cl, 0x39(%rax)
movl -0xc(%rbp), %edx
movq -0x18(%rbp), %rax
movsbl 0x39(%rax), %ecx
addl %edx, %ecx
movb %cl, 0x39(%rax)
leaq 0x6291(%rip), %rax      # 0x11878
movq (%rax), %rax
movsbl 0x3b(%rax), %ecx
orl $0x18, %ecx
movb %cl, 0x3b(%rax)
movq -0x18(%rbp), %rax
movsbl 0x3b(%rax), %ecx
orl $0x18, %ecx
movb %cl, 0x3b(%rax)
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)