// File: /workspace/github_c_makefile_star2_O0/canboat[P]canboat/analyzer/analyzer-explain.c
// Function: explainLookupFunction
static void explainLookupFunction(const LookupInfo *lookup)
{
  switch (lookup->type)
  {
    case LOOKUP_TYPE_BIT: {
      if (doV1)
      {
        printf("          <EnumBitValues>\n");
        (lookup->function.bitEnumerator)(explainBitXMLv1);
        printf("          </EnumBitValues>\n");
      }
      else
      {
        printXML(10, "LookupBitEnumeration", lookup->name);
      }
      break;
    }

    case LOOKUP_TYPE_PAIR: {
      if (doV1)
      {
        printf("          <EnumValues>\n");
        (lookup->function.pairEnumerator)(explainPairXMLv1);
        printf("          </EnumValues>\n");
      }
      else
      {
        printXML(10, "LookupEnumeration", lookup->name);
      }
      break;
    }

    case LOOKUP_TYPE_TRIPLET: {
      if (!doV1)
      {
        printXML(10, "LookupIndirectEnumeration", lookup->name);
        printXMLUnsigned(10, "LookupIndirectEnumerationFieldOrder", lookup->val1Order);
      }
      break;
    }

    case LOOKUP_TYPE_FIELDTYPE: {
      if (doV1)
      {
        printf("          <EnumFieldTypeValues>\n");
        (lookup->function.fieldtypeEnumerator)(explainFieldtypeXMLv1);
        printf("          </EnumFieldTypeValues>\n");
      }
      else
      {
        printXML(10, "LookupFieldTypeEnumeration", lookup->name);
      }
      break;
    }

    default:
      break;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x10(%rbp)
subl $0x3, %eax
ja 0x10a77
movq -0x10(%rbp), %rax
leaq 0x13ae5(%rip), %rcx     # 0x24424
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
testb $0x1, 0x80d2d(%rip)     # 0x9167c
je 0x1097d
leaq 0x18723(%rip), %rdi     # 0x2907b
movb $0x0, %al
callq 0xd0f0
movq -0x8(%rbp), %rax
leaq 0x116(%rip), %rdi       # 0x10a80
callq *0x10(%rax)
leaq 0x18722(%rip), %rdi     # 0x29096
movb $0x0, %al
callq 0xd0f0
jmp 0x10995
movq -0x8(%rbp), %rax
movq (%rax), %rdx
movl $0xa, %edi
leaq 0x18722(%rip), %rsi     # 0x290b2
callq 0x10780
jmp 0x10a79
testb $0x1, 0x80cdb(%rip)     # 0x9167c
je 0x109cf
leaq 0x1871d(%rip), %rdi     # 0x290c7
movb $0x0, %al
callq 0xd0f0
movq -0x8(%rbp), %rax
leaq 0x114(%rip), %rdi       # 0x10ad0
callq *0x10(%rax)
leaq 0x18719(%rip), %rdi     # 0x290df
movb $0x0, %al
callq 0xd0f0
jmp 0x109e7
movq -0x8(%rbp), %rax
movq (%rax), %rdx
movl $0xa, %edi
leaq 0x18716(%rip), %rsi     # 0x290f8
callq 0x10780
jmp 0x10a79
testb $0x1, 0x80c89(%rip)     # 0x9167c
jne 0x10a26
movq -0x8(%rbp), %rax
movq (%rax), %rdx
movl $0xa, %edi
leaq 0x18702(%rip), %rsi     # 0x2910a
callq 0x10780
movq -0x8(%rbp), %rax
movzbl 0x18(%rax), %edx
movl $0xa, %edi
leaq 0x18703(%rip), %rsi     # 0x29124
callq 0x10b20
jmp 0x10a79
testb $0x1, 0x80c4d(%rip)     # 0x9167c
je 0x10a5d
leaq 0x18710(%rip), %rdi     # 0x29148
movb $0x0, %al
callq 0xd0f0
movq -0x8(%rbp), %rax
leaq 0x146(%rip), %rdi       # 0x10b90
callq *0x10(%rax)
leaq 0x18715(%rip), %rdi     # 0x29169
movb $0x0, %al
callq 0xd0f0
jmp 0x10a75
movq -0x8(%rbp), %rax
movq (%rax), %rdx
movl $0xa, %edi
leaq 0x1871b(%rip), %rsi     # 0x2918b
callq 0x10780
jmp 0x10a79
jmp 0x10a79
addq $0x10, %rsp
popq %rbp
retq
nop