// File: /workspace/github_c_makefile_star2_O0/tabemann[P]attoforth/src/runtime/inner.c
// Function: af_parse_name
af_byte_t* af_parse_name(af_global_t* global, af_task_t* task,
			 af_cell_t* length) {
  af_cell_t current_index;
  af_cell_t count;
  af_byte_t* buffer;
  af_byte_t current_char;
  af_cell_t start_index;
  size_t bytes_copied;
  if(!task->current_input) {
    *length = 0;
    return NULL;
  }
  current_index = task->current_input->index;
  count = task->current_input->count;
  buffer = task->current_input->buffer;
  current_char = *(buffer + current_index);
  while(current_index < count &&
	(current_char == ' ' || current_char == '\t' || current_char == '\n')) {
    current_char = *(buffer + ++current_index);
  }
  if(current_index == count) {
    *length = 0;
    return NULL;
  }
  start_index = current_index;
  while(current_index < count &&
	(current_char != ' ' && current_char != '\t' && current_char != '\n')) {
    current_char = *(buffer + ++current_index);
  }
  if(!task->current_input->is_closed && current_index == count) {
    *length = 0;
    return NULL;
  }
  task->current_input->index = current_index;
  *length = current_index - start_index;
  return buffer + start_index;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0xe8(%rax)
jne 0x57e6
movq -0x20(%rbp), %rax
movq $0x0, (%rax)
movq $0x0, -0x8(%rbp)
jmp 0x597c
movq -0x18(%rbp), %rax
movq 0xe8(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq 0xe8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movq 0xe8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x28(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x39(%rbp)
movq -0x28(%rbp), %rcx
xorl %eax, %eax
cmpq -0x30(%rbp), %rcx
movb %al, -0x51(%rbp)
jae 0x586b
movzbl -0x39(%rbp), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x52(%rbp)
je 0x5865
movzbl -0x39(%rbp), %ecx
movb $0x1, %al
cmpl $0x9, %ecx
movb %al, -0x52(%rbp)
je 0x5865
movzbl -0x39(%rbp), %eax
cmpl $0xa, %eax
sete %al
movb %al, -0x52(%rbp)
movb -0x52(%rbp), %al
movb %al, -0x51(%rbp)
movb -0x51(%rbp), %al
testb $0x1, %al
jne 0x5874
jmp 0x5890
movq -0x38(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x28(%rbp)
movb 0x1(%rax,%rcx), %al
movb %al, -0x39(%rbp)
jmp 0x582d
movq -0x28(%rbp), %rax
cmpq -0x30(%rbp), %rax
jne 0x58b2
movq -0x20(%rbp), %rax
movq $0x0, (%rax)
movq $0x0, -0x8(%rbp)
jmp 0x597c
movq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rcx
xorl %eax, %eax
cmpq -0x30(%rbp), %rcx
movb %al, -0x53(%rbp)
jae 0x58f8
movzbl -0x39(%rbp), %ecx
xorl %eax, %eax
cmpl $0x20, %ecx
movb %al, -0x54(%rbp)
je 0x58f2
movzbl -0x39(%rbp), %ecx
xorl %eax, %eax
cmpl $0x9, %ecx
movb %al, -0x54(%rbp)
je 0x58f2
movzbl -0x39(%rbp), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x54(%rbp)
movb -0x54(%rbp), %al
movb %al, -0x53(%rbp)
movb -0x53(%rbp), %al
testb $0x1, %al
jne 0x5901
jmp 0x591d
movq -0x38(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x28(%rbp)
movb 0x1(%rax,%rcx), %al
movb %al, -0x39(%rbp)
jmp 0x58ba
movq -0x18(%rbp), %rax
movq 0xe8(%rax), %rax
cmpq $0x0, 0x20(%rax)
jne 0x594e
movq -0x28(%rbp), %rax
cmpq -0x30(%rbp), %rax
jne 0x594e
movq -0x20(%rbp), %rax
movq $0x0, (%rax)
movq $0x0, -0x8(%rbp)
jmp 0x597c
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq 0xe8(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x28(%rbp), %rcx
subq -0x48(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq -0x48(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)