// File: /workspace/github_cpp_makefile_star2_O3/jkingan[P]ladyheather/heather.cpp
// Function: plusminus_char(int, int, unsigned char)
int plusminus_char(COORD row, COORD col, u08 color)
{
   // erase the old character cell
   erase_rectangle(col,row, TEXT_WIDTH,TEXT_HEIGHT);

   // draw the +/- symbol (which is not in the normal font)
   dot(col+3, row+0, color);  // plus
   dot(col+3, row+1, color);
   dot(col+3, row+2, color);
   dot(col+3, row+3, color);
   dot(col+3, row+4, color);
   dot(col+3, row+5, color);
   dot(col+4, row+0, color);
   dot(col+4, row+1, color);
   dot(col+4, row+2, color);
   dot(col+4, row+3, color);
   dot(col+4, row+4, color);
   dot(col+4, row+5, color);

   dot(col+1, row+2, color);
   dot(col+2, row+2, color);
   dot(col+5, row+2, color);
   dot(col+6, row+2, color);
   dot(col+1, row+3, color);
   dot(col+2, row+3, color);
   dot(col+5, row+3, color);
   dot(col+6, row+3, color);

   dot(col+1, row+7, color);    // minus
   dot(col+2, row+7, color);
   dot(col+3, row+7, color);
   dot(col+4, row+7, color);
   dot(col+5, row+7, color);
   dot(col+6, row+7, color);
   dot(col+1, row+8, color);
   dot(col+2, row+8, color);
   dot(col+3, row+8, color);
   dot(col+4, row+8, color);
   dot(col+5, row+8, color);
   dot(col+6, row+8, color);

   return 8;  // width
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %edx, %ebx
movl %esi, %r14d
movl %edi, %r15d
movl 0x20a3d5(%rip), %edx    # 0x218810
movl 0x20a3d3(%rip), %ecx    # 0x218814
movl %esi, %edi
movl %r15d, %esi
xorl %r8d, %r8d
callq 0xf298
leal 0x3(%r14), %r13d
movl %r13d, -0x3c(%rbp)
movl %r13d, %edi
movl %r15d, %esi
movl %ebx, %edx
callq 0xe657
leal 0x1(%r15), %esi
movl %esi, -0x30(%rbp)
movl %r13d, %edi
movl %ebx, %edx
callq 0xe657
leal 0x2(%r15), %r12d
movl %r13d, %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
leal 0x3(%r15), %esi
movl %esi, -0x34(%rbp)
movl %r13d, %edi
movl %ebx, %edx
callq 0xe657
leal 0x4(%r15), %esi
movl %esi, -0x48(%rbp)
movl %r13d, %edi
movl %ebx, %edx
callq 0xe657
leal 0x5(%r15), %esi
movl %esi, -0x2c(%rbp)
movl %r13d, %edi
movl %ebx, %edx
callq 0xe657
leal 0x4(%r14), %r13d
movl %r13d, -0x38(%rbp)
movl %r13d, %edi
movl %r15d, %esi
movl %ebx, %edx
callq 0xe657
movl %r13d, %edi
movl -0x30(%rbp), %esi
movl %ebx, %edx
callq 0xe657
movl %r13d, %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
movl %r13d, %edi
movl -0x34(%rbp), %esi
movl %ebx, %edx
callq 0xe657
movl %r13d, %edi
movl -0x48(%rbp), %esi
movl %ebx, %edx
callq 0xe657
movl %r13d, %edi
movl -0x2c(%rbp), %esi
movl %ebx, %edx
callq 0xe657
leal 0x1(%r14), %edi
movl %edi, -0x2c(%rbp)
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
leal 0x2(%r14), %r13d
movl %r13d, %edi
movl %r13d, -0x30(%rbp)
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
leal 0x5(%r14), %edi
movl %edi, -0x4c(%rbp)
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
addl $0x6, %r14d
movq %r14, -0x48(%rbp)
movl %r14d, %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
movl -0x2c(%rbp), %r14d
movl %r14d, %edi
movl -0x34(%rbp), %r12d
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
movl %r13d, %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
movl -0x4c(%rbp), %r13d
movl %r13d, %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
movq -0x48(%rbp), %rdi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
leal 0x7(%r15), %r12d
movl %r14d, %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
movl -0x30(%rbp), %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
movl -0x3c(%rbp), %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
movl -0x38(%rbp), %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
movl %r13d, %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
movq -0x48(%rbp), %r14
movl %r14d, %edi
movl %r12d, %esi
movl %ebx, %edx
callq 0xe657
addl $0x8, %r15d
movl -0x2c(%rbp), %edi
movl %r15d, %esi
movl %ebx, %edx
callq 0xe657
movl -0x30(%rbp), %edi
movl %r15d, %esi
movl %ebx, %edx
callq 0xe657
movl -0x3c(%rbp), %edi
movl %r15d, %esi
movl %ebx, %edx
callq 0xe657
movl -0x38(%rbp), %edi
movl %r15d, %esi
movl %ebx, %edx
callq 0xe657
movl %r13d, %edi
movl %r15d, %esi
movl %ebx, %edx
callq 0xe657
movl %r14d, %edi
movl %r15d, %esi
movl %ebx, %edx
callq 0xe657
movl $0x8, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq