// File: /workspace/github_c_makefile_star2_O3/mikebdp2[P]AtomDis/./datastructs_gen.c
// Function: ATOM_FIRMWARE_CAPABILITY_dumper
int ATOM_FIRMWARE_CAPABILITY_dumper (uint8_t *start, uint8_t *data, int indent) {
  ATOM_FIRMWARE_CAPABILITY *d = (ATOM_FIRMWARE_CAPABILITY *) data;
  int i;
  if (d) {
    printf ("%s       USHORT FirmwarePosted:1%s = 0x%04x     (%d)\n", IND(indent), FILL(22), d->FirmwarePosted, d->FirmwarePosted);
    printf ("%s       USHORT DualCRTC_Support:1%s = 0x%04x     (%d)\n", IND(indent), FILL(24), d->DualCRTC_Support, d->DualCRTC_Support);
    printf ("%s       USHORT ExtendedDesktopSupport:1%s = 0x%04x     (%d)\n", IND(indent), FILL(30), d->ExtendedDesktopSupport, d->ExtendedDesktopSupport);
    printf ("%s       USHORT MemoryClockSS_Support:1%s = 0x%04x     (%d)\n", IND(indent), FILL(29), d->MemoryClockSS_Support, d->MemoryClockSS_Support);
    printf ("%s       USHORT EngineClockSS_Support:1%s = 0x%04x     (%d)\n", IND(indent), FILL(29), d->EngineClockSS_Support, d->EngineClockSS_Support);
    printf ("%s       USHORT GPUControlsBL:1%s = 0x%04x     (%d)\n", IND(indent), FILL(21), d->GPUControlsBL, d->GPUControlsBL);
    printf ("%s       USHORT WMI_SUPPORT:1%s = 0x%04x     (%d)\n", IND(indent), FILL(19), d->WMI_SUPPORT, d->WMI_SUPPORT);
    printf ("%s       USHORT PPMode_Assigned:1%s = 0x%04x     (%d)\n", IND(indent), FILL(23), d->PPMode_Assigned, d->PPMode_Assigned);
    printf ("%s       USHORT HyperMemory_Support:1%s = 0x%04x     (%d)\n", IND(indent), FILL(27), d->HyperMemory_Support, d->HyperMemory_Support);
    printf ("%s       USHORT HyperMemory_Size:4%s = 0x%04x     (%d)\n", IND(indent), FILL(24), d->HyperMemory_Size, d->HyperMemory_Size);
    printf ("%s       USHORT Reserved:3%s = 0x%04x     (%d)\n", IND(indent), FILL(16), d->Reserved, d->Reserved);
  }
  return sizeof (ATOM_FIRMWARE_CAPABILITY);
}

// Assembly:
testq %rsi, %rsi
je 0xc521
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq 0x2ff67(%rip), %rax     # 0x3c2b0
cmpl $0x19, %edx
movl $0x19, %ecx
cmovll %edx, %ecx
addl %ecx, %ecx
movl $0x32, %edx
subl %ecx, %edx
movslq %edx, %r14
leaq (%rax,%r14), %rsi
addq $0x16, %rax
movzwl (%rbx), %ecx
andl $0x1, %ecx
leaq 0x1a704(%rip), %rdi     # 0x26a79
movq %rax, %rdx
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2ff27(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x18, %rdx
movzwl (%rbx), %ecx
shrl %ecx
andl $0x1, %ecx
leaq 0x1a70f(%rip), %rdi     # 0x26aaf
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2feff(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x1e, %rdx
movzwl (%rbx), %ecx
shrl $0x2, %ecx
andl $0x1, %ecx
leaq 0x1a71e(%rip), %rdi     # 0x26ae7
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2fed6(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x1d, %rdx
movzwl (%rbx), %ecx
shrl $0x3, %ecx
andl $0x1, %ecx
leaq 0x1a733(%rip), %rdi     # 0x26b25
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2fead(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x1d, %rdx
movzwl (%rbx), %ecx
shrl $0x4, %ecx
andl $0x1, %ecx
leaq 0x1a747(%rip), %rdi     # 0x26b62
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2fe84(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x15, %rdx
movzwl (%rbx), %ecx
shrl $0x5, %ecx
andl $0x1, %ecx
leaq 0x1a75b(%rip), %rdi     # 0x26b9f
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2fe5b(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x13, %rdx
movzwl (%rbx), %ecx
shrl $0x6, %ecx
andl $0x1, %ecx
leaq 0x1a767(%rip), %rdi     # 0x26bd4
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2fe32(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x17, %rdx
movzwl (%rbx), %ecx
shrl $0x7, %ecx
andl $0x1, %ecx
leaq 0x1a771(%rip), %rdi     # 0x26c07
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2fe09(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x1b, %rdx
movzwl (%rbx), %ecx
shrl $0x8, %ecx
andl $0x1, %ecx
leaq 0x1a77f(%rip), %rdi     # 0x26c3e
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2fde0(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x18, %rdx
movzwl (%rbx), %ecx
shrl $0x9, %ecx
andl $0xf, %ecx
leaq 0x1a791(%rip), %rdi     # 0x26c79
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2fdb7(%rip), %rdx     # 0x3c2b0
addq %rdx, %r14
addq $0x10, %rdx
movzwl (%rbx), %ecx
shrl $0xd, %ecx
leaq 0x1a7a4(%rip), %rdi     # 0x26cb1
movq %r14, %rsi
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
addq $0x8, %rsp
popq %rbx
popq %r14
movl $0x2, %eax
retq