// File: sundale[P]gcode/rs274ngc/interp_internal.cc
// Function: Interp::parse_line(char*, block_struct*, setup_struct*)
int Interp::parse_line(char *line,       //!< array holding a line of RS274 code  
                      block_pointer block,      //!< pointer to a block to be filled     
                      setup_pointer settings)   //!< pointer to machine settings         
{
  CHP(init_block(block));
  CHP(read_items(block, line, settings->parameters));

  if(settings->skipping_o == 0)
  {
    CHP(enhance_block(block, settings));
    CHP(check_items(block, settings));
  }
  return INTERP_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x111a0
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
je 0x5b7b7
jmp 0x5b6fc
movq 0x2b85d(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x5b7ac
movq 0x2b849(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x2b83b(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x218df(%rip), %rsi     # 0x7d019
movl $0x50, %edx
callq 0x10840
movq 0x2b815(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2b807(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x2b7ef(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x2b7df(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x2b7d2(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2b7c4(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x2c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x5ba79
jmp 0x5b7b9
jmp 0x5b7bb
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x28(%rbp), %rcx
addq $0x17c0, %rcx           # imm = 0x17C0
callq 0x10610
movl %eax, -0x30(%rbp)
cmpl $0x0, -0x30(%rbp)
je 0x5b8a1
jmp 0x5b7e6
movq 0x2b773(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x5b896
movq 0x2b75f(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x2b751(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x217f5(%rip), %rsi     # 0x7d019
movl $0x50, %edx
callq 0x10840
movq 0x2b72b(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2b71d(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x2b705(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x2b6f5(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x2b6e8(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2b6da(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x30(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x5ba79
jmp 0x5b8a3
movq -0x28(%rbp), %rax
cmpq $0x0, 0xef70(%rax)
jne 0x5ba72
jmp 0x5b8b7
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x11670
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0x5b992
jmp 0x5b8d7
movq 0x2b682(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x5b987
movq 0x2b66e(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x2b660(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x21704(%rip), %rsi     # 0x7d019
movl $0x50, %edx
callq 0x10840
movq 0x2b63a(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2b62c(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x2b614(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x2b604(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x2b5f7(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2b5e9(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x34(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x5ba79
jmp 0x5b994
jmp 0x5b996
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x116a0
movl %eax, -0x38(%rbp)
cmpl $0x0, -0x38(%rbp)
je 0x5ba6e
jmp 0x5b9b6
movq 0x2b5a3(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x5ba66
movq 0x2b58f(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x2b581(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x21625(%rip), %rsi     # 0x7d019
movl $0x50, %edx
callq 0x10840
movq 0x2b55b(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2b54d(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x2b535(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x2b525(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x2b518(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2b50a(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x5ba79
jmp 0x5ba70
jmp 0x5ba72
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)