// File: /workspace/github_c_makefile_star2_O0/LenShustek[P]miditones/miditones_scroll.c
// Function: print_status
void print_status (void) {
   unsigned gen;
   bool any_instr_changed = false;
   for (gen = 0; gen < num_tonegens; ++gen)
      any_instr_changed |= gen_instrument_changed[gen];
   if (any_instr_changed) {
      if (codeoutput)
         fprintf (outfile, "//");
      fprintf (outfile, "%15s", "");
      for (gen = 0; gen < num_tonegens; ++gen) {
         if (gen_instrument_changed[gen]) {
            gen_instrument_changed[gen] = false;
            fprintf (outfile, "%6s", instrumentname[gen_instrument[gen]]); }
         else
            fprintf (outfile, "%6s", "");
         if (expect_volume && !ignore_volume)
            fprintf (outfile, "%5s", ""); }
      fprintf (outfile, "\n"); }

   if (codeoutput)
      fprintf (outfile, "/*");  // start comment
   // print the current timestamp
   fprintf (outfile, "%7d.%03d ", timenow / 1000, timenow % 1000);
   // print the current status of all tone generators
   for (gen = 0; gen < num_tonegens; ++gen) {
      if (showhex && gen_note[gen] != SILENT)
         fprintf(outfile, " 0x%02X ", gen_note[gen]);
      else fprintf (outfile, "%6s", gen_note[gen] == SILENT ? " " : notename[gen_note[gen]]);
      if (expect_volume && !ignore_volume)
         if (gen_note[gen] == SILENT)
            fprintf (outfile, "     ");
         else
            fprintf (outfile, " v%-3d", gen_volume[gen]); }
   // display the hex commands that created these changes
   fprintf (outfile, "%3u.%03u %c", delay/1000, delay%1000, warning ? '!' : ' ');
   if (showbytestream) fprintf (outfile, "%04X: ", (unsigned int) (lastbufptr - buffer));
   warning = false;
   if (codeoutput)
      fprintf (outfile, "*/ "); // end comment
   if (showbytestream) for (; lastbufptr <= bufptr; ++lastbufptr)
         fprintf (outfile, codeoutput ? "0x%02X," : "%02X ", *lastbufptr);
   fprintf (outfile, "\n");
   lastbufptr = bufptr + 1; }

// Assembly:
subq $0x28, %rsp
movb $0x0, 0x23(%rsp)
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
cmpl 0x48b5(%rip), %eax      # 0x80a0
jae 0x3826
movl 0x24(%rsp), %eax
movl %eax, %ecx
leaq 0x5766(%rip), %rax      # 0x8f60
movb (%rax,%rcx), %al
andb $0x1, %al
movzbl %al, %ecx
movb 0x23(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
orl %ecx, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movb %al, 0x23(%rsp)
movl 0x24(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
jmp 0x37e1
testb $0x1, 0x23(%rsp)
je 0x394b
testb $0x1, 0x54f8(%rip)      # 0x8d30
je 0x384f
movq 0x56ff(%rip), %rdi      # 0x8f40
leaq 0x19f0(%rip), %rsi      # 0x5238
movb $0x0, %al
callq 0x3090
movq 0x56ea(%rip), %rdi      # 0x8f40
leaq 0x19de(%rip), %rsi      # 0x523b
leaq 0x1d32(%rip), %rdx      # 0x5596
movb $0x0, %al
callq 0x3090
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
cmpl 0x4823(%rip), %eax      # 0x80a0
jae 0x3936
movl 0x24(%rsp), %eax
movl %eax, %ecx
leaq 0x56d0(%rip), %rax      # 0x8f60
testb $0x1, (%rax,%rcx)
je 0x38da
movl 0x24(%rsp), %eax
movl %eax, %ecx
leaq 0x56bd(%rip), %rax      # 0x8f60
movb $0x0, (%rax,%rcx)
movq 0x5692(%rip), %rdi      # 0x8f40
movl 0x24(%rsp), %eax
movl %eax, %ecx
leaq 0x56b5(%rip), %rax      # 0x8f70
movslq (%rax,%rcx,4), %rcx
leaq 0x483a(%rip), %rax      # 0x8100
movq (%rax,%rcx,8), %rdx
leaq 0x196f(%rip), %rsi      # 0x5240
movb $0x0, %al
callq 0x3090
jmp 0x38f6
movq 0x565f(%rip), %rdi      # 0x8f40
leaq 0x1958(%rip), %rsi      # 0x5240
leaq 0x1ca7(%rip), %rdx      # 0x5596
movb $0x0, %al
callq 0x3090
testb $0x1, 0x5434(%rip)      # 0x8d31
je 0x3924
testb $0x1, 0x542c(%rip)      # 0x8d32
jne 0x3924
movq 0x5631(%rip), %rdi      # 0x8f40
leaq 0x192e(%rip), %rsi      # 0x5244
leaq 0x1c79(%rip), %rdx      # 0x5596
movb $0x0, %al
callq 0x3090
jmp 0x3926
movl 0x24(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
jmp 0x3873
movq 0x5603(%rip), %rdi      # 0x8f40
leaq 0x1c51(%rip), %rsi      # 0x5595
movb $0x0, %al
callq 0x3090
testb $0x1, 0x53de(%rip)      # 0x8d30
je 0x3969
movq 0x55e5(%rip), %rdi      # 0x8f40
leaq 0x18e6(%rip), %rsi      # 0x5248
movb $0x0, %al
callq 0x3090
movq 0x55d0(%rip), %rdi      # 0x8f40
movq 0x53b1(%rip), %rax      # 0x8d28
movl $0x3e8, %ecx            # imm = 0x3E8
xorl %edx, %edx
divq %rcx
movq %rax, 0x18(%rsp)
movq 0x539b(%rip), %rax      # 0x8d28
movl $0x3e8, %ecx            # imm = 0x3E8
xorl %edx, %edx
divq %rcx
movq %rdx, %rcx
movq 0x18(%rsp), %rdx
leaq 0x18a5(%rip), %rsi      # 0x524b
movb $0x0, %al
callq 0x3090
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
cmpl 0x46e1(%rip), %eax      # 0x80a0
jae 0x3ae3
testb $0x1, 0x5367(%rip)      # 0x8d33
je 0x3a08
movl 0x24(%rsp), %eax
movl %eax, %ecx
leaq 0x55d5(%rip), %rax      # 0x8fb0
cmpl $-0x1, (%rax,%rcx,4)
je 0x3a08
movq 0x5558(%rip), %rdi      # 0x8f40
movl 0x24(%rsp), %eax
movl %eax, %ecx
leaq 0x55bb(%rip), %rax      # 0x8fb0
movl (%rax,%rcx,4), %edx
leaq 0x1856(%rip), %rsi      # 0x5255
movb $0x0, %al
callq 0x3090
jmp 0x3a6e
movq 0x5531(%rip), %rax      # 0x8f40
movq %rax, 0x10(%rsp)
movl 0x24(%rsp), %eax
movl %eax, %ecx
leaq 0x558f(%rip), %rax      # 0x8fb0
cmpl $-0x1, (%rax,%rcx,4)
jne 0x3a35
leaq 0x1834(%rip), %rax      # 0x5262
movq %rax, 0x8(%rsp)
jmp 0x3a56
movl 0x24(%rsp), %eax
movl %eax, %ecx
leaq 0x556e(%rip), %rax      # 0x8fb0
movslq (%rax,%rcx,4), %rcx
leaq 0x4ab3(%rip), %rax      # 0x8500
movq (%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rdx
leaq 0x17d9(%rip), %rsi      # 0x5240
movb $0x0, %al
callq 0x3090
testb $0x1, 0x52bc(%rip)      # 0x8d31
je 0x3ad1
testb $0x1, 0x52b4(%rip)      # 0x8d32
jne 0x3ad1
movl 0x24(%rsp), %eax
movl %eax, %ecx
leaq 0x5523(%rip), %rax      # 0x8fb0
cmpl $-0x1, (%rax,%rcx,4)
jne 0x3aaa
movq 0x54a6(%rip), %rdi      # 0x8f40
leaq 0x17bd(%rip), %rsi      # 0x525e
movb $0x0, %al
callq 0x3090
jmp 0x3acf
movq 0x548f(%rip), %rdi      # 0x8f40
movl 0x24(%rsp), %eax
movl %eax, %ecx
leaq 0x5532(%rip), %rax      # 0x8ff0
movl (%rax,%rcx,4), %edx
leaq 0x179c(%rip), %rsi      # 0x5264
movb $0x0, %al
callq 0x3090
jmp 0x3ad1
jmp 0x3ad3
movl 0x24(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
jmp 0x39b5
movq 0x5456(%rip), %rdi      # 0x8f40
movl 0x5540(%rip), %eax      # 0x9030
movl $0x3e8, %ecx            # imm = 0x3E8
xorl %edx, %edx
divl %ecx
movl %eax, 0x4(%rsp)
movl 0x552d(%rip), %eax      # 0x9030
movl $0x3e8, %ecx            # imm = 0x3E8
xorl %edx, %edx
divl %ecx
movl %edx, %ecx
movl 0x4(%rsp), %edx
movb 0x5207(%rip), %sil      # 0x8d20
movl $0x20, %r8d
movl $0x21, %eax
testb $0x1, %sil
cmovnel %eax, %r8d
leaq 0x1738(%rip), %rsi      # 0x526b
movb $0x0, %al
callq 0x3090
testb $0x1, 0x4563(%rip)      # 0x80a4
je 0x3b6b
movq 0x53f6(%rip), %rdi      # 0x8f40
movq 0x54e7(%rip), %rax      # 0x9038
movq 0x53f0(%rip), %rcx      # 0x8f48
subq %rcx, %rax
movl %eax, %edx
leaq 0x1713(%rip), %rsi      # 0x5277
movb $0x0, %al
callq 0x3090
movb $0x0, 0x51ae(%rip)      # 0x8d20
testb $0x1, 0x51b7(%rip)      # 0x8d30
je 0x3b90
movq 0x53be(%rip), %rdi      # 0x8f40
leaq 0x16f5(%rip), %rsi      # 0x527e
movb $0x0, %al
callq 0x3090
testb $0x1, 0x450d(%rip)      # 0x80a4
je 0x3bf4
jmp 0x3b9b
movq 0x5496(%rip), %rax      # 0x9038
cmpq 0x5497(%rip), %rax      # 0x9040
ja 0x3bf2
movq 0x538e(%rip), %rdi      # 0x8f40
movb 0x5178(%rip), %cl       # 0x8d30
leaq 0x1699(%rip), %rsi      # 0x5258
leaq 0x16bc(%rip), %rax      # 0x5282
testb $0x1, %cl
cmovneq %rax, %rsi
movq 0x5464(%rip), %rax      # 0x9038
movzbl (%rax), %edx
movb $0x0, %al
callq 0x3090
movq 0x5453(%rip), %rax      # 0x9038
addq $0x1, %rax
movq %rax, 0x5448(%rip)      # 0x9038
jmp 0x3b9b
jmp 0x3bf4
movq 0x5345(%rip), %rdi      # 0x8f40
leaq 0x1993(%rip), %rsi      # 0x5595
movb $0x0, %al
callq 0x3090
movq 0x5430(%rip), %rax      # 0x9040
addq $0x1, %rax
movq %rax, 0x541d(%rip)      # 0x9038
addq $0x28, %rsp
retq