// File: jkingan[P]ladyheather/heathmsc.cpp
// Function: write_log_tsip_vers()
void write_log_tsip_vers()
{
   sprintf(log_text, "#   Serial number: %u.%lu", sn_prefix, (unsigned long) serial_num);
   write_log_comment(1);
   sprintf(log_text, "#   Case s/n:      %u.%lu", case_prefix, (unsigned long) case_sn);
   write_log_comment(1);
   sprintf(log_text, "#   Prodn number:  %lu.%u", (unsigned long) prodn_num, prodn_extn);
   write_log_comment(1);
   sprintf(log_text, "#   Prodn options: %u", prodn_options);        // from prodn_params message
   write_log_comment(1);
   sprintf(log_text, "#   Machine id:    %u", machine_id);
   write_log_comment(1);
   if(ebolt) {
      sprintf(log_text, "#   Hardware code: %u", hw_code);
      write_log_comment(1);
   }

   sprintf(log_text, "#   App firmware:  %2d.%-2d  %02d %s %02d", 
      ap_major, ap_minor,  ap_day, months[ap_month], ap_year);   //!!! docs say 1900
   write_log_comment(1);
   sprintf(log_text, "#   GPS firmware:  %2d.%-2d  %02d %s %02d", 
      core_major, core_minor,  core_day, months[core_month], core_year);  //!!! docs say 1900
   write_log_comment(1);
   sprintf(log_text, "#   Mfg time:      %02d:00  %02d %s %04d", 
      build_hour, build_day, months[build_month], build_year);
   write_log_comment(1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x25ea41(%rip), %rax    # 0x36cb60
movzwl (%rax), %edx
leaq 0x25ea3b(%rip), %rax    # 0x36cb64
movl (%rax), %eax
movl %eax, %ecx
leaq 0x18ea0c(%rip), %rdi    # 0x29cb40
leaq 0x82620(%rip), %rsi     # 0x19075b
movb $0x0, %al
callq 0x9060
movl $0x1, %edi
callq 0x10cbe0
leaq 0x25ea23(%rip), %rax    # 0x36cb76
movzwl (%rax), %edx
leaq 0x25ea1b(%rip), %rax    # 0x36cb78
movl (%rax), %eax
movl %eax, %ecx
leaq 0x18e9d8(%rip), %rdi    # 0x29cb40
leaq 0x82606(%rip), %rsi     # 0x190775
movb $0x0, %al
callq 0x9060
movl $0x1, %edi
callq 0x10cbe0
leaq 0x25e9f5(%rip), %rax    # 0x36cb7c
movl (%rax), %eax
movl %eax, %edx
leaq 0x25e9e3(%rip), %rax    # 0x36cb75
movzbl (%rax), %ecx
leaq 0x18e9a4(%rip), %rdi    # 0x29cb40
leaq 0x825ec(%rip), %rsi     # 0x19078f
movb $0x0, %al
callq 0x9060
movl $0x1, %edi
callq 0x10cbe0
leaq 0x25e9b9(%rip), %rax    # 0x36cb74
movzbl (%rax), %edx
leaq 0x18e97b(%rip), %rdi    # 0x29cb40
leaq 0x825dd(%rip), %rsi     # 0x1907a9
movb $0x0, %al
callq 0x9060
movl $0x1, %edi
callq 0x10cbe0
leaq 0x25e99c(%rip), %rax    # 0x36cb80
movzwl (%rax), %edx
leaq 0x18e952(%rip), %rdi    # 0x29cb40
leaq 0x825ca(%rip), %rsi     # 0x1907bf
movb $0x0, %al
callq 0x9060
movl $0x1, %edi
callq 0x10cbe0
leaq 0x18fef7(%rip), %rax    # 0x29e104
cmpl $0x0, (%rax)
je 0x10e23b
leaq 0x25e969(%rip), %rax    # 0x36cb82
movzwl (%rax), %edx
leaq 0x18e91d(%rip), %rdi    # 0x29cb40
leaq 0x825ab(%rip), %rsi     # 0x1907d5
movb $0x0, %al
callq 0x9060
movl $0x1, %edi
callq 0x10cbe0
leaq 0x25e942(%rip), %rax    # 0x36cb84
movzbl (%rax), %edx
leaq 0x25e939(%rip), %rax    # 0x36cb85
movzbl (%rax), %ecx
leaq 0x25e931(%rip), %rax    # 0x36cb87
movzbl (%rax), %r8d
leaq 0x25e925(%rip), %rax    # 0x36cb86
movzbl (%rax), %eax
movl %eax, %esi
leaq 0xbb4d3(%rip), %rax     # 0x1c9740
movq (%rax,%rsi,8), %r9
leaq 0x25e910(%rip), %rax    # 0x36cb88
movzwl (%rax), %eax
leaq 0x18e8be(%rip), %rdi    # 0x29cb40
leaq 0x82562(%rip), %rsi     # 0x1907eb
movl %eax, (%rsp)
movb $0x0, %al
callq 0x9060
movl $0x1, %edi
callq 0x10cbe0
leaq 0x25e8e6(%rip), %rax    # 0x36cb8a
movzbl (%rax), %edx
leaq 0x25e8dd(%rip), %rax    # 0x36cb8b
movzbl (%rax), %ecx
leaq 0x25e8d5(%rip), %rax    # 0x36cb8d
movzbl (%rax), %r8d
leaq 0x25e8c9(%rip), %rax    # 0x36cb8c
movzbl (%rax), %eax
movl %eax, %esi
leaq 0xbb471(%rip), %rax     # 0x1c9740
movq (%rax,%rsi,8), %r9
leaq 0x25e8b4(%rip), %rax    # 0x36cb8e
movzwl (%rax), %eax
leaq 0x18e85c(%rip), %rdi    # 0x29cb40
leaq 0x8252a(%rip), %rsi     # 0x190815
movl %eax, (%rsp)
movb $0x0, %al
callq 0x9060
movl $0x1, %edi
callq 0x10cbe0
leaq 0x25e866(%rip), %rax    # 0x36cb6c
movzbl (%rax), %edx
leaq 0x25e85b(%rip), %rax    # 0x36cb6b
movzbl (%rax), %ecx
leaq 0x25e850(%rip), %rax    # 0x36cb6a
movzbl (%rax), %eax
movl %eax, %esi
leaq 0xbb41a(%rip), %rax     # 0x1c9740
movq (%rax,%rsi,8), %r8
leaq 0x25e837(%rip), %rax    # 0x36cb68
movzwl (%rax), %r9d
leaq 0x18e804(%rip), %rdi    # 0x29cb40
leaq 0x824fc(%rip), %rsi     # 0x19083f
movb $0x0, %al
callq 0x9060
movl $0x1, %edi
callq 0x10cbe0
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)