// File: /workspace/github_c_makefile_star2_O0/canboat[P]canboat/analyzer/fieldtype.c
// Function: fixupUnit
void fixupUnit(Field *f)
{
  if (showSI)
  {
    if (strcmp(f->unit, "rad") == 0)
    {
      if (f->hasSign)
      {
        f->rangeMin = max(f->rangeMin, -3.1415926);
        f->rangeMax = min(f->rangeMax, 3.1415926);
      }
      else
      {
        f->rangeMax = min(f->rangeMax, 2 * 3.1415926);
      }
    }

    // Many more to follow, but pgn.h is not yet complete enough...
  }
  else // NOT SI
  {
    if (strcmp(f->unit, "C") == 0)
    {
      f->resolution /= 3600.0; // 3600 C = 1 Ah
      f->rangeMin /= 3600.0;
      f->rangeMax /= 3600.0;
      f->unit = "Ah";
      logDebug("fixup <%s> to '%s'\n", f->name, f->unit);
    }
    else if (strcmp(f->unit, "Pa") == 0)
    {
      f->resolution /= 100000.0;
      f->rangeMin /= 100000.0;
      f->rangeMax /= 100000.0;
      f->precision = 3;
      f->unit      = "bar";
      logDebug("fixup <%s> to '%s'\n", f->name, f->unit);
    }
    else if (strcmp(f->unit, "K") == 0)
    {
      f->unitOffset = -273.15;
      f->rangeMin += -273.15;
      f->rangeMax += -275.15;
      f->precision = 2;
      f->unit      = "C";
      logDebug("fixup <%s> to '%s'\n", f->name, f->unit);
    }
    else if (strcmp(f->unit, "rad") == 0)
    {
      f->resolution *= RadianToDegree;
      f->rangeMin *= RadianToDegree;
      f->rangeMax *= RadianToDegree;
      f->rangeMax  = max(f->rangeMax, 360);
      f->unit      = "deg";
      f->precision = 1;
      logDebug("fixup <%s> to '%s'\n", f->name, f->unit);
    }
    else if (strcmp(f->unit, "rad/s") == 0)
    {
      f->resolution *= RadianToDegree;
      f->rangeMin *= RadianToDegree;
      f->rangeMax *= RadianToDegree;
      f->unit = "deg/s";
      logDebug("fixup <%s> to '%s'\n", f->name, f->unit);
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
leaq 0x6b3ad(%rip), %rax     # 0x89140
testb $0x1, (%rax)
je 0x1deaf
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0xcc68(%rip), %rsi      # 0x2aa13
callq 0xd190
cmpl $0x0, %eax
jne 0x1deaa
movq -0x8(%rbp), %rax
testb $0x1, 0x49(%rax)
je 0x1de5f
movq -0x8(%rbp), %rax
movsd 0x98(%rax), %xmm0
movsd 0x134ad(%rip), %xmm1    # 0x31288
ucomisd %xmm1, %xmm0
jb 0x1ddf4
movq -0x8(%rbp), %rax
movsd 0x98(%rax), %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x1de03
movsd 0x1348c(%rip), %xmm0    # 0x31288
movsd %xmm0, -0x10(%rbp)
jmp 0x1de03
movsd -0x10(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x98(%rax)
movq -0x8(%rbp), %rax
movsd 0x13470(%rip), %xmm0    # 0x31290
ucomisd 0xa0(%rax), %xmm0
jb 0x1de3d
movq -0x8(%rbp), %rax
movsd 0xa0(%rax), %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0x1de4c
movsd 0x1344b(%rip), %xmm0    # 0x31290
movsd %xmm0, -0x18(%rbp)
jmp 0x1de4c
movsd -0x18(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0xa0(%rax)
jmp 0x1dea8
movq -0x8(%rbp), %rax
movsd 0x13415(%rip), %xmm0    # 0x31280
ucomisd 0xa0(%rax), %xmm0
jb 0x1de88
movq -0x8(%rbp), %rax
movsd 0xa0(%rax), %xmm0
movsd %xmm0, -0x20(%rbp)
jmp 0x1de97
movsd 0x133f0(%rip), %xmm0    # 0x31280
movsd %xmm0, -0x20(%rbp)
jmp 0x1de97
movsd -0x20(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0xa0(%rax)
jmp 0x1deaa
jmp 0x1e23d
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0xe232(%rip), %rsi      # 0x2c0f0
callq 0xd190
cmpl $0x0, %eax
jne 0x1df57
movq -0x8(%rbp), %rax
movsd 0x30(%rax), %xmm0
movsd 0x12c43(%rip), %xmm1    # 0x30b20
divsd %xmm1, %xmm0
movsd %xmm0, 0x30(%rax)
movq -0x8(%rbp), %rax
movsd 0x98(%rax), %xmm0
movsd 0x12c26(%rip), %xmm1    # 0x30b20
divsd %xmm1, %xmm0
movsd %xmm0, 0x98(%rax)
movq -0x8(%rbp), %rax
movsd 0xa0(%rax), %xmm0
movsd 0x12c06(%rip), %xmm1    # 0x30b20
divsd %xmm1, %xmm0
movsd %xmm0, 0xa0(%rax)
movq -0x8(%rbp), %rax
leaq 0x152a7(%rip), %rcx     # 0x331d8
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0x16916(%rip), %rdi     # 0x34861
movb $0x0, %al
callq 0x1f670
jmp 0x1e23b
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0x7dcc(%rip), %rsi      # 0x25d32
callq 0xd190
cmpl $0x0, %eax
jne 0x1e00a
movq -0x8(%rbp), %rax
movsd 0x30(%rax), %xmm0
movsd 0x132f3(%rip), %xmm1    # 0x31278
divsd %xmm1, %xmm0
movsd %xmm0, 0x30(%rax)
movq -0x8(%rbp), %rax
movsd 0x98(%rax), %xmm0
movsd 0x132d6(%rip), %xmm1    # 0x31278
divsd %xmm1, %xmm0
movsd %xmm0, 0x98(%rax)
movq -0x8(%rbp), %rax
movsd 0xa0(%rax), %xmm0
movsd 0x132b6(%rip), %xmm1    # 0x31278
divsd %xmm1, %xmm0
movsd %xmm0, 0xa0(%rax)
movq -0x8(%rbp), %rax
movl $0x3, 0x38(%rax)
movq -0x8(%rbp), %rax
leaq 0x16891(%rip), %rcx     # 0x34875
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0x16863(%rip), %rdi     # 0x34861
movb $0x0, %al
callq 0x1f670
jmp 0x1e239
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0x11238(%rip), %rsi     # 0x2f251
callq 0xd190
cmpl $0x0, %eax
jne 0x1e0ac
movq -0x8(%rbp), %rax
movsd 0x1323d(%rip), %xmm0    # 0x31270
movsd %xmm0, 0x40(%rax)
movq -0x8(%rbp), %rax
movsd 0x1322c(%rip), %xmm0    # 0x31270
addsd 0x98(%rax), %xmm0
movsd %xmm0, 0x98(%rax)
movq -0x8(%rbp), %rax
movsd 0x13208(%rip), %xmm0    # 0x31268
addsd 0xa0(%rax), %xmm0
movsd %xmm0, 0xa0(%rax)
movq -0x8(%rbp), %rax
movl $0x2, 0x38(%rax)
movq -0x8(%rbp), %rax
leaq 0xe06a(%rip), %rcx      # 0x2c0f0
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0x167c1(%rip), %rdi     # 0x34861
movb $0x0, %al
callq 0x1f670
jmp 0x1e237
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0xc958(%rip), %rsi      # 0x2aa13
callq 0xd190
cmpl $0x0, %eax
jne 0x1e1a0
movq -0x8(%rbp), %rax
movsd 0x13183(%rip), %xmm0    # 0x31258
mulsd 0x30(%rax), %xmm0
movsd %xmm0, 0x30(%rax)
movq -0x8(%rbp), %rax
movsd 0x1316d(%rip), %xmm0    # 0x31258
mulsd 0x98(%rax), %xmm0
movsd %xmm0, 0x98(%rax)
movq -0x8(%rbp), %rax
movsd 0x13151(%rip), %xmm0    # 0x31258
mulsd 0xa0(%rax), %xmm0
movsd %xmm0, 0xa0(%rax)
movq -0x8(%rbp), %rax
movsd 0xa0(%rax), %xmm0
movsd 0x13135(%rip), %xmm1    # 0x31260
ucomisd %xmm1, %xmm0
jb 0x1e144
movq -0x8(%rbp), %rax
movsd 0xa0(%rax), %xmm0
movsd %xmm0, -0x28(%rbp)
jmp 0x1e153
movsd 0x13114(%rip), %xmm0    # 0x31260
movsd %xmm0, -0x28(%rbp)
jmp 0x1e153
movsd -0x28(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0xa0(%rax)
movq -0x8(%rbp), %rax
leaq 0x14583(%rip), %rcx     # 0x326f2
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x38(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0x166cd(%rip), %rdi     # 0x34861
movb $0x0, %al
callq 0x1f670
jmp 0x1e235
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0x166ca(%rip), %rsi     # 0x34879
callq 0xd190
cmpl $0x0, %eax
jne 0x1e233
movq -0x8(%rbp), %rax
movsd 0x13093(%rip), %xmm0    # 0x31258
mulsd 0x30(%rax), %xmm0
movsd %xmm0, 0x30(%rax)
movq -0x8(%rbp), %rax
movsd 0x1307d(%rip), %xmm0    # 0x31258
mulsd 0x98(%rax), %xmm0
movsd %xmm0, 0x98(%rax)
movq -0x8(%rbp), %rax
movsd 0x13061(%rip), %xmm0    # 0x31258
mulsd 0xa0(%rax), %xmm0
movsd %xmm0, 0xa0(%rax)
movq -0x8(%rbp), %rax
leaq 0x1666d(%rip), %rcx     # 0x3487f
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0x16635(%rip), %rdi     # 0x34861
movb $0x0, %al
callq 0x1f670
jmp 0x1e235
jmp 0x1e237
jmp 0x1e239
jmp 0x1e23b
jmp 0x1e23d
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)