// File: sundale[P]gcode/rs274ngc/rs274ngc_pre.cc
// Function: Interp::init_tool_parameters()
int Interp::init_tool_parameters()
{
  if (_setup.random_toolchanger) {
     // random_toolchanger: tool at startup expected
    _setup.parameters[5400] = _setup.tool_table[0].toolno;
    _setup.parameters[5401] = _setup.tool_table[0].offset.tran.x;
    _setup.parameters[5402] = _setup.tool_table[0].offset.tran.y;
    _setup.parameters[5403] = _setup.tool_table[0].offset.tran.z;
    _setup.parameters[5404] = _setup.tool_table[0].offset.a;
    _setup.parameters[5405] = _setup.tool_table[0].offset.b;
    _setup.parameters[5406] = _setup.tool_table[0].offset.c;
    _setup.parameters[5407] = _setup.tool_table[0].offset.u;
    _setup.parameters[5408] = _setup.tool_table[0].offset.v;
    _setup.parameters[5409] = _setup.tool_table[0].offset.w;
    _setup.parameters[5410] = _setup.tool_table[0].diameter;
    _setup.parameters[5411] = _setup.tool_table[0].frontangle;
    _setup.parameters[5412] = _setup.tool_table[0].backangle;
    _setup.parameters[5413] = _setup.tool_table[0].orientation;
  } else {
    // non random_toolchanger: no tool at startup, one-time init
    if (_setup.tool_table[0].toolno == -1) {
      default_tool_parameters();
    }
  }
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq 0x11865(%rip), %rax     # 0x86f60
cmpl $0x0, 0xc6ac(%rax)
je 0x758ae
movq 0x11851(%rip), %rax     # 0x86f60
cvtsi2sdl 0xd6c8(%rax), %xmm0
movq 0x11842(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc080(%rax)
movq 0x11833(%rip), %rax     # 0x86f60
movsd 0xd6d0(%rax), %xmm0
movq 0x11824(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc088(%rax)
movq 0x11815(%rip), %rax     # 0x86f60
movsd 0xd6d8(%rax), %xmm0
movq 0x11806(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc090(%rax)
movq 0x117f7(%rip), %rax     # 0x86f60
movsd 0xd6e0(%rax), %xmm0
movq 0x117e8(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc098(%rax)
movq 0x117d9(%rip), %rax     # 0x86f60
movsd 0xd6e8(%rax), %xmm0
movq 0x117ca(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0a0(%rax)
movq 0x117bb(%rip), %rax     # 0x86f60
movsd 0xd6f0(%rax), %xmm0
movq 0x117ac(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0a8(%rax)
movq 0x1179d(%rip), %rax     # 0x86f60
movsd 0xd6f8(%rax), %xmm0
movq 0x1178e(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0b0(%rax)
movq 0x1177f(%rip), %rax     # 0x86f60
movsd 0xd700(%rax), %xmm0
movq 0x11770(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0b8(%rax)
movq 0x11761(%rip), %rax     # 0x86f60
movsd 0xd708(%rax), %xmm0
movq 0x11752(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0c0(%rax)
movq 0x11743(%rip), %rax     # 0x86f60
movsd 0xd710(%rax), %xmm0
movq 0x11734(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0c8(%rax)
movq 0x11725(%rip), %rax     # 0x86f60
movsd 0xd718(%rax), %xmm0
movq 0x11716(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0d0(%rax)
movq 0x11707(%rip), %rax     # 0x86f60
movsd 0xd720(%rax), %xmm0
movq 0x116f8(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0d8(%rax)
movq 0x116e9(%rip), %rax     # 0x86f60
movsd 0xd728(%rax), %xmm0
movq 0x116da(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0e0(%rax)
movq 0x116cb(%rip), %rax     # 0x86f60
cvtsi2sdl 0xd730(%rax), %xmm0
movq 0x116bc(%rip), %rax     # 0x86f60
movsd %xmm0, 0xc0e8(%rax)
jmp 0x758c9
movq 0x116ab(%rip), %rax     # 0x86f60
cmpl $-0x1, 0xd6c8(%rax)
jne 0x758c7
movq -0x10(%rbp), %rdi
callq 0x10130
jmp 0x758c9
xorl %eax, %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)