// File: /workspace/github_c_makefile_star2_O0/ThomasMadappattu[P]Sandmacs/basic.c
// Function: gotobop
int gotobop (int f, int n)
{
  int suc;			/* success of last backchar */

  if (n < 0)			/* the other way.. */
    return (gotoeop (f, -n));

  while (n-- > 0)
    {				/* for each one asked for */
      /* first scan back until we are in a word */
      suc = backchar (FALSE, 1);
      while (!inword () && suc)
	suc = backchar (FALSE, 1);
      curwp->w_doto = 0;	/* and go to the B-O-Line */

      /* and scan back until we hit a <NL><NL> or <NL><TAB> or a <NL><SPACE> */
      while (lback (curwp->w_dotp) != curbp->b_linep)
	if (llength (curwp->w_dotp) != 0 &&
	    lgetc (curwp->w_dotp, curwp->w_doto) != TAB &&
	    lgetc (curwp->w_dotp, curwp->w_doto) != ' ')
	  curwp->w_dotp = lback (curwp->w_dotp);
	else
	  break;

      /* and then forward until we are in a word */
      suc = forwchar (FALSE, 1);
      while (suc && !inword ())
	suc = forwchar (FALSE, 1);
    }
  curwp->w_flag |= WFMOVE;	/* force screen update */
  return (TRUE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jge 0x2969
movl -0x8(%rbp), %edi
xorl %esi, %esi
subl -0xc(%rbp), %esi
callq 0x2b00
movl %eax, -0x4(%rbp)
jmp 0x2af6
jmp 0x296b
movl -0xc(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0xc(%rbp)
cmpl $0x0, %eax
jle 0x2adb
xorl %edi, %edi
movl $0x1, %esi
callq 0x2400
movl %eax, -0x10(%rbp)
movb $0x0, %al
callq 0xbe70
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x11(%rbp)
jne 0x29ab
cmpl $0x0, -0x10(%rbp)
setne %al
movb %al, -0x11(%rbp)
movb -0x11(%rbp), %al
testb $0x1, %al
jne 0x29b4
jmp 0x29c5
xorl %edi, %edi
movl $0x1, %esi
callq 0x2400
movl %eax, -0x10(%rbp)
jmp 0x298e
leaq 0xeeac(%rip), %rax      # 0x11878
movq (%rax), %rax
movq $0x0, 0x20(%rax)
leaq 0xee9a(%rip), %rax      # 0x11878
movq (%rax), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
leaq 0xee78(%rip), %rcx      # 0x11868
movq (%rcx), %rcx
cmpq 0x28(%rcx), %rax
je 0x2a90
leaq 0xee74(%rip), %rax      # 0x11878
movq (%rax), %rax
movq 0x18(%rax), %rax
cmpl $0x0, 0x14(%rax)
je 0x2a89
leaq 0xee60(%rip), %rax      # 0x11878
movq (%rax), %rax
movq 0x18(%rax), %rax
leaq 0xee52(%rip), %rcx      # 0x11878
movq (%rcx), %rcx
movq 0x20(%rcx), %rcx
movsbl 0x18(%rax,%rcx), %eax
andl $0xff, %eax
cmpl $0x9, %eax
je 0x2a89
leaq 0xee35(%rip), %rax      # 0x11878
movq (%rax), %rax
movq 0x18(%rax), %rax
leaq 0xee27(%rip), %rcx      # 0x11878
movq (%rcx), %rcx
movq 0x20(%rcx), %rcx
movsbl 0x18(%rax,%rcx), %eax
andl $0xff, %eax
cmpl $0x20, %eax
je 0x2a89
leaq 0xee0a(%rip), %rax      # 0x11878
movq (%rax), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rcx
leaq 0xedf8(%rip), %rax      # 0x11878
movq (%rax), %rax
movq %rcx, 0x18(%rax)
jmp 0x2a8b
jmp 0x2a90
jmp 0x29d7
xorl %edi, %edi
movl $0x1, %esi
callq 0x24f0
movl %eax, -0x10(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x10(%rbp)
movb %al, -0x12(%rbp)
je 0x2abc
movb $0x0, %al
callq 0xbe70
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0x12(%rbp)
movb -0x12(%rbp), %al
testb $0x1, %al
jne 0x2ac5
jmp 0x2ad6
xorl %edi, %edi
movl $0x1, %esi
callq 0x24f0
movl %eax, -0x10(%rbp)
jmp 0x2a9f
jmp 0x296b
leaq 0xed96(%rip), %rax      # 0x11878
movq (%rax), %rax
movsbl 0x3b(%rax), %ecx
orl $0x2, %ecx
movb %cl, 0x3b(%rax)
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nop