// File: /workspace/github_c_makefile_star2_O0/canboat[P]canboat/analyzer/analyzer-explain.c
// Function: explainFieldTypesXML
static void explainFieldTypesXML(void)
{
  printf("  <FieldTypes>\n");
  for (size_t i = 0; i < fieldTypeCount; i++)
  {
    FieldType *ft = &fieldTypeList[i];

    if (ft->baseFieldType != NULL)
    {
      continue;
    }

    printf("    <FieldType Name=\"%s\">\n", ft->name);
    if (ft->description != NULL)
    {
      printf("      <Description>%s</Description>\n", ft->description);
    }
    if (ft->encodingDescription != NULL)
    {
      printf("      <EncodingDescription>%s</EncodingDescription>\n", ft->encodingDescription);
    }
    if (ft->comment != NULL)
    {
      printf("      <Comment>%s</Comment>\n", ft->comment);
    }
    if (ft->url != NULL)
    {
      printf("      <URL>%s</URL>\n", ft->url);
    }
    if (ft->baseFieldType != NULL)
    {
      printf("      <BaseFieldType>%s</BaseFieldType>\n", ft->baseFieldType);
    }
    if (ft->size != 0)
    {
      printf("      <Bits>%u</Bits>\n", ft->size);
    }
    if (ft->offset != 0)
    {
      if (ft->resolution == 1.0 || ft->resolution == 0.0)
      {
        printf("      <Offset>%d</Offset>\n", ft->offset);
      }
      else
      {
        printf("      <Offset>%" PRId64 "</Offset>\n", (int64_t) (ft->offset * ft->resolution));
      }
    }
    if (ft->variableSize != Null)
    {
      printf("      <VariableSize>true</VariableSize>\n");
    }
    if (ft->unit != NULL)
    {
      printf("      <Unit>%s</Unit>\n", ft->unit);
    }
    if (ft->hasSign != Null)
    {
      printf("      <Signed>%s</Signed>\n", ft->hasSign == True ? "true" : "false");
    }
    if (ft->resolution != 1.0 && ft->resolution != 0.0)
    {
      printf("      <Resolution>%.15g</Resolution>\n", ft->resolution);
    }

    if (!isnan(ft->rangeMin))
    {
      printf("      <RangeMin>%.15g</RangeMin>\n", ft->rangeMin);
    }
    if (!isnan(ft->rangeMax))
    {
      printf("      <RangeMax>%.15g</RangeMax>\n", ft->rangeMax);
    }

    printf("    </FieldType>\n");
  }
  printf("  </FieldTypes>\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x196e0(%rip), %rdi     # 0x28bcf
movb $0x0, %al
callq 0xd0f0
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
leaq 0x266d7(%rip), %rcx     # 0x35be0
cmpq (%rcx), %rax
jae 0xf7b2
leaq 0x7c057(%rip), %rax     # 0x8b570
imulq $0x90, -0x8(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0xf538
jmp 0xf7a1
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x19699(%rip), %rdi     # 0x28bdf
movb $0x0, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xf56e
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x1959b(%rip), %rdi     # 0x28b02
movb $0x0, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xf58f
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x19672(%rip), %rdi     # 0x28bfa
movb $0x0, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0xf5b0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
leaq 0x1957e(%rip), %rdi     # 0x28b27
movb $0x0, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0xf5d1
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rsi
leaq 0x1957a(%rip), %rdi     # 0x28b44
movb $0x0, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0xf5f2
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rsi
leaq 0x19644(%rip), %rdi     # 0x28c2f
movb $0x0, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
cmpl $0x0, 0x28(%rax)
je 0xf611
movq -0x10(%rbp), %rax
movl 0x28(%rax), %esi
leaq 0x1964e(%rip), %rdi     # 0x28c58
movb $0x0, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
cmpl $0x0, 0x50(%rax)
je 0xf688
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
movsd 0x14d6c(%rip), %xmm1    # 0x24398
ucomisd %xmm1, %xmm0
jne 0xf636
jp 0xf636
jmp 0xf64a
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xf661
jp 0xf661
movq -0x10(%rbp), %rax
movl 0x50(%rax), %esi
leaq 0x19e94(%rip), %rdi     # 0x294ec
movb $0x0, %al
callq 0xd0f0
jmp 0xf686
movq -0x10(%rbp), %rax
cvtsi2sdl 0x50(%rax), %xmm0
movq -0x10(%rbp), %rax
mulsd 0x58(%rax), %xmm0
cvttsd2si %xmm0, %rsi
leaq 0x19e8c(%rip), %rdi     # 0x2950b
movb $0x0, %al
callq 0xd0f0
jmp 0xf688
movq -0x10(%rbp), %rax
cmpl $0x0, 0x2c(%rax)
je 0xf6a0
leaq 0x195d6(%rip), %rdi     # 0x28c6f
movb $0x0, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0xf6c1
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rsi
leaq 0x194cc(%rip), %rdi     # 0x28b86
movb $0x0, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
cmpl $0x0, 0x60(%rax)
je 0xf6f5
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
leaq 0x1854d(%rip), %rsi     # 0x27c26
leaq 0x18541(%rip), %rax     # 0x27c21
cmpl $0x2, %ecx
cmoveq %rax, %rsi
leaq 0x19ddf(%rip), %rdi     # 0x294cd
movb $0x0, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
movsd 0x14c92(%rip), %xmm1    # 0x24398
ucomisd %xmm1, %xmm0
jne 0xf710
jp 0xf710
jmp 0xf73d
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xf726
jp 0xf726
jmp 0xf73d
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
leaq 0x19562(%rip), %rdi     # 0x28c98
movb $0x1, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
movsd 0x68(%rax), %xmm0
ucomisd %xmm0, %xmm0
setp %al
testb $0x1, %al
jne 0xf768
movq -0x10(%rbp), %rax
movsd 0x68(%rax), %xmm0
leaq 0x19dca(%rip), %rdi     # 0x2952b
movb $0x1, %al
callq 0xd0f0
movq -0x10(%rbp), %rax
movsd 0x70(%rax), %xmm0
ucomisd %xmm0, %xmm0
setp %al
testb $0x1, %al
jne 0xf793
movq -0x10(%rbp), %rax
movsd 0x70(%rax), %xmm0
leaq 0x19de9(%rip), %rdi     # 0x29575
movb $0x1, %al
callq 0xd0f0
leaq 0x19524(%rip), %rdi     # 0x28cbe
movb $0x0, %al
callq 0xd0f0
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0xf4fe
leaq 0x19517(%rip), %rdi     # 0x28cd0
movb $0x0, %al
callq 0xd0f0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)