// File: /workspace/github_c_makefile_star2_O0/mabdi[P]bunney/bunny-gcc.c
// Function: get_item
static _u8* get_item(FILE* f) {
  _s32 c;
  static _u8 obuf[MAXTOKEN];
  _u32 olen = 0;
  _u8  qopen;
  
  if ((c = getc(f)) == EOF) return 0;

  /* Cluster whitespaces together */
  if (isspace(c)) {
    obuf[olen++] = c;
    while ((c=getc(f)) != EOF && isspace(c) && olen < MAXTOKEN - 1) obuf[olen++] = c;
    obuf[olen] = 0;
    if (olen != MAXTOKEN - 1 && c != EOF) ungetc(c,f);
    return obuf;
  }  

  /* Dump all text between "..." or '...' as a single token; watch for \, though */
  if (c == '"' || c == '\'') {
    _u8 escnext = 0;
    qopen = obuf[olen++] = c;
    while ((c=getc(f)) != EOF && (escnext || c != qopen) && olen < MAXTOKEN - 2) {
      if (!escnext) escnext = (c == '\\'); else escnext = 0;
      obuf[olen++] = c;
    }
    if (olen == MAXTOKEN - 2) fatal("string too long: '%.32s...'",obuf);
    if (c == EOF) fatal("unterminated string: '%.32s...'",obuf);
    obuf[olen++] = qopen;
    obuf[olen] = 0;

    return obuf;
  }
  
  /* Special handling for compiler directives (#) - copy whole line */
  if (c == '#') {
    obuf[olen++] = c;
    while ((c=getc(f)) != EOF && c != '\n' && olen < MAXTOKEN - 2) obuf[olen++] = c;
    if (olen == MAXTOKEN - 2) fatal("compiler directive too long: '%.32s...'",obuf);
    obuf[olen++] = '\n';
    obuf[olen] = 0;
    return obuf;
  }
  
  /* If found a run of [A-Za-z0-9_], consume it all. Everything else, return char-by-char. */
     
  while (olen < MAXTOKEN - 1) {
  
    if (!isalnum(c) && c != '_') {
      if (olen) ungetc(c,f); else obuf[olen++] = c;
      obuf[olen] = 0;
      return obuf;
    }
    
    obuf[olen++] = c;
    
    if ((c = getc(f)) == EOF) {
      obuf[olen] = 0;
      return obuf;
    }
    
  }
  
  fatal("line too long: '%.30s...'",obuf);

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1060
movl %eax, -0x14(%rbp)
cmpl $-0x1, %eax
jne 0x5d31
movq $0x0, -0x8(%rbp)
jmp 0x6209
callq 0x1140
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x5e16
movl -0x14(%rbp), %eax
movb %al, %dl
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %ecx
leaq 0x5426(%rip), %rax      # 0xb190
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rdi
callq 0x1060
movl %eax, %ecx
movl %ecx, -0x14(%rbp)
xorl %eax, %eax
cmpl $-0x1, %ecx
movb %al, -0x1b(%rbp)
je 0x5db2
callq 0x1140
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movzwl (%rax,%rcx,2), %ecx
andl $0x2000, %ecx           # imm = 0x2000
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x1b(%rbp)
je 0x5db2
cmpl $0xfff, -0x18(%rbp)     # imm = 0xFFF
setb %al
movb %al, -0x1b(%rbp)
movb -0x1b(%rbp), %al
testb $0x1, %al
jne 0x5dbb
jmp 0x5ddb
movl -0x14(%rbp), %eax
movb %al, %dl
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %ecx
leaq 0x53ba(%rip), %rax      # 0xb190
movb %dl, (%rax,%rcx)
jmp 0x5d6d
movl -0x18(%rbp), %eax
movl %eax, %ecx
leaq 0x53a9(%rip), %rax      # 0xb190
movb $0x0, (%rax,%rcx)
cmpl $0xfff, -0x18(%rbp)     # imm = 0xFFF
je 0x5e06
cmpl $-0x1, -0x14(%rbp)
je 0x5e06
movl -0x14(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x1030
leaq 0x5383(%rip), %rax      # 0xb190
movq %rax, -0x8(%rbp)
jmp 0x6209
cmpl $0x22, -0x14(%rbp)
je 0x5e26
cmpl $0x27, -0x14(%rbp)
jne 0x5fc7
movb $0x0, -0x1a(%rbp)
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x18(%rbp)
movl %ecx, %ecx
movl %ecx, %edx
leaq 0x534d(%rip), %rcx      # 0xb190
movb %al, (%rcx,%rdx)
movb %al, -0x19(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1060
movl %eax, %ecx
movl %ecx, -0x14(%rbp)
xorl %eax, %eax
cmpl $-0x1, %ecx
movb %al, -0x1c(%rbp)
je 0x5e87
movzbl -0x1a(%rbp), %eax
cmpl $0x0, %eax
jne 0x5e7a
movl -0x14(%rbp), %ecx
movzbl -0x19(%rbp), %edx
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x1c(%rbp)
je 0x5e87
cmpl $0xffe, -0x18(%rbp)     # imm = 0xFFE
setb %al
movb %al, -0x1c(%rbp)
movb -0x1c(%rbp), %al
testb $0x1, %al
jne 0x5e90
jmp 0x5ece
cmpb $0x0, -0x1a(%rbp)
jne 0x5ea7
cmpl $0x5c, -0x14(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
movb %al, -0x1a(%rbp)
jmp 0x5eab
movb $0x0, -0x1a(%rbp)
movl -0x14(%rbp), %eax
movb %al, %dl
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %ecx
leaq 0x52ca(%rip), %rax      # 0xb190
movb %dl, (%rax,%rcx)
jmp 0x5e49
cmpl $0xffe, -0x18(%rbp)     # imm = 0xFFE
jne 0x5f2e
jmp 0x5ed9
movq 0x5100(%rip), %rax      # 0xafe0
movq (%rax), %rdi
leaq 0x2c34(%rip), %rsi      # 0x8b1e
leaq 0x529f(%rip), %rdx      # 0xb190
movb $0x0, %al
callq 0x11c0
movq 0x50e1(%rip), %rax      # 0xafe0
movq (%rax), %rdi
leaq 0x12d4(%rip), %rsi      # 0x71dd
leaq 0x2c41(%rip), %rdx      # 0x8b51
leaq 0x12e3(%rip), %rcx      # 0x71fa
movl $0x148, %r8d            # imm = 0x148
movb $0x0, %al
callq 0x11c0
movl $0x1, %edi
callq 0x1190
cmpl $-0x1, -0x14(%rbp)
jne 0x5f8b
jmp 0x5f36
movq 0x50a3(%rip), %rax      # 0xafe0
movq (%rax), %rdi
leaq 0x2c13(%rip), %rsi      # 0x8b5a
leaq 0x5242(%rip), %rdx      # 0xb190
movb $0x0, %al
callq 0x11c0
movq 0x5084(%rip), %rax      # 0xafe0
movq (%rax), %rdi
leaq 0x1277(%rip), %rsi      # 0x71dd
leaq 0x2be4(%rip), %rdx      # 0x8b51
leaq 0x1286(%rip), %rcx      # 0x71fa
movl $0x149, %r8d            # imm = 0x149
movb $0x0, %al
callq 0x11c0
movl $0x1, %edi
callq 0x1190
movb -0x19(%rbp), %dl
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %ecx
leaq 0x51ec(%rip), %rax      # 0xb190
movb %dl, (%rax,%rcx)
movl -0x18(%rbp), %eax
movl %eax, %ecx
leaq 0x51dd(%rip), %rax      # 0xb190
movb $0x0, (%rax,%rcx)
leaq 0x51d2(%rip), %rax      # 0xb190
movq %rax, -0x8(%rbp)
jmp 0x6209
cmpl $0x23, -0x14(%rbp)
jne 0x60e2
movl -0x14(%rbp), %eax
movb %al, %dl
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %ecx
leaq 0x51a4(%rip), %rax      # 0xb190
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rdi
callq 0x1060
movl %eax, %ecx
movl %ecx, -0x14(%rbp)
xorl %eax, %eax
cmpl $-0x1, %ecx
movb %al, -0x1d(%rbp)
je 0x601f
xorl %eax, %eax
cmpl $0xa, -0x14(%rbp)
movb %al, -0x1d(%rbp)
je 0x601f
cmpl $0xffe, -0x18(%rbp)     # imm = 0xFFE
setb %al
movb %al, -0x1d(%rbp)
movb -0x1d(%rbp), %al
testb $0x1, %al
jne 0x6028
jmp 0x6048
movl -0x14(%rbp), %eax
movb %al, %dl
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %ecx
leaq 0x514d(%rip), %rax      # 0xb190
movb %dl, (%rax,%rcx)
jmp 0x5fef
cmpl $0xffe, -0x18(%rbp)     # imm = 0xFFE
jne 0x60a8
jmp 0x6053
movq 0x4f86(%rip), %rax      # 0xafe0
movq (%rax), %rdi
leaq 0x2b2d(%rip), %rsi      # 0x8b91
leaq 0x5125(%rip), %rdx      # 0xb190
movb $0x0, %al
callq 0x11c0
movq 0x4f67(%rip), %rax      # 0xafe0
movq (%rax), %rdi
leaq 0x115a(%rip), %rsi      # 0x71dd
leaq 0x2ac7(%rip), %rdx      # 0x8b51
leaq 0x1169(%rip), %rcx      # 0x71fa
movl $0x154, %r8d            # imm = 0x154
movb $0x0, %al
callq 0x11c0
movl $0x1, %edi
callq 0x1190
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %ecx
leaq 0x50d2(%rip), %rax      # 0xb190
movb $0xa, (%rax,%rcx)
movl -0x18(%rbp), %eax
movl %eax, %ecx
leaq 0x50c2(%rip), %rax      # 0xb190
movb $0x0, (%rax,%rcx)
leaq 0x50b7(%rip), %rax      # 0xb190
movq %rax, -0x8(%rbp)
jmp 0x6209
jmp 0x60e4
cmpl $0xfff, -0x18(%rbp)     # imm = 0xFFF
jae 0x61b2
callq 0x1140
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0x6161
cmpl $0x5f, -0x14(%rbp)
je 0x6161
cmpl $0x0, -0x18(%rbp)
je 0x6123
movl -0x14(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x1030
jmp 0x6141
movl -0x14(%rbp), %eax
movb %al, %dl
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %ecx
leaq 0x5052(%rip), %rax      # 0xb190
movb %dl, (%rax,%rcx)
movl -0x18(%rbp), %eax
movl %eax, %ecx
leaq 0x5043(%rip), %rax      # 0xb190
movb $0x0, (%rax,%rcx)
leaq 0x5038(%rip), %rax      # 0xb190
movq %rax, -0x8(%rbp)
jmp 0x6209
movl -0x14(%rbp), %eax
movb %al, %dl
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %ecx
leaq 0x5014(%rip), %rax      # 0xb190
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rdi
callq 0x1060
movl %eax, -0x14(%rbp)
cmpl $-0x1, %eax
jne 0x61ad
movl -0x18(%rbp), %eax
movl %eax, %ecx
leaq 0x4ff4(%rip), %rax      # 0xb190
movb $0x0, (%rax,%rcx)
leaq 0x4fe9(%rip), %rax      # 0xb190
movq %rax, -0x8(%rbp)
jmp 0x6209
jmp 0x60e4
jmp 0x61b4
movq 0x4e25(%rip), %rax      # 0xafe0
movq (%rax), %rdi
leaq 0x2a0b(%rip), %rsi      # 0x8bd0
leaq 0x4fc4(%rip), %rdx      # 0xb190
movb $0x0, %al
callq 0x11c0
movq 0x4e06(%rip), %rax      # 0xafe0
movq (%rax), %rdi
leaq 0xff9(%rip), %rsi       # 0x71dd
leaq 0x2966(%rip), %rdx      # 0x8b51
leaq 0x1008(%rip), %rcx      # 0x71fa
movl $0x16d, %r8d            # imm = 0x16D
movb $0x0, %al
callq 0x11c0
movl $0x1, %edi
callq 0x1190
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq