// File: /workspace/github_c_makefile_star2_O1/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 0xc418
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq 0x30070(%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 0x1a830(%rip), %rdi     # 0x26a9c
movq %rax, %rdx
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x30030(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x18, %rdx
movzwl (%rbx), %ecx
shrl %ecx
andl $0x1, %ecx
leaq 0x1a83b(%rip), %rdi     # 0x26ad2
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x30008(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x1e, %rdx
movzwl (%rbx), %ecx
shrl $0x2, %ecx
andl $0x1, %ecx
leaq 0x1a84a(%rip), %rdi     # 0x26b0a
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2ffdf(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x1d, %rdx
movzwl (%rbx), %ecx
shrl $0x3, %ecx
andl $0x1, %ecx
leaq 0x1a85f(%rip), %rdi     # 0x26b48
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2ffb6(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x1d, %rdx
movzwl (%rbx), %ecx
shrl $0x4, %ecx
andl $0x1, %ecx
leaq 0x1a873(%rip), %rdi     # 0x26b85
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2ff8d(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x15, %rdx
movzwl (%rbx), %ecx
shrl $0x5, %ecx
andl $0x1, %ecx
leaq 0x1a887(%rip), %rdi     # 0x26bc2
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2ff64(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x13, %rdx
movzwl (%rbx), %ecx
shrl $0x6, %ecx
andl $0x1, %ecx
leaq 0x1a893(%rip), %rdi     # 0x26bf7
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2ff3b(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x17, %rdx
movzwl (%rbx), %ecx
shrl $0x7, %ecx
andl $0x1, %ecx
leaq 0x1a89d(%rip), %rdi     # 0x26c2a
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2ff12(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x1b, %rdx
movzwl (%rbx), %ecx
shrl $0x8, %ecx
andl $0x1, %ecx
leaq 0x1a8ab(%rip), %rdi     # 0x26c61
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2fee9(%rip), %rdx     # 0x3c2b0
leaq (%rdx,%r14), %rsi
addq $0x18, %rdx
movzwl (%rbx), %ecx
shrl $0x9, %ecx
andl $0xf, %ecx
leaq 0x1a8bd(%rip), %rdi     # 0x26c9c
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
movq 0x2fec0(%rip), %rdx     # 0x3c2b0
addq %rdx, %r14
addq $0x10, %rdx
movzwl (%rbx), %ecx
shrl $0xd, %ecx
leaq 0x1a8d0(%rip), %rdi     # 0x26cd4
movq %r14, %rsi
movl %ecx, %r8d
xorl %eax, %eax
callq 0x40b0
addq $0x8, %rsp
popq %rbx
popq %r14
movl $0x2, %eax
retq