// File: /workspace/github_c_makefile_star2_O1/mikebdp2[P]AtomDis/./datastructs_gen.c
// Function: ATOM_FIRMWARE_INFO_dumper
int ATOM_FIRMWARE_INFO_dumper (uint8_t *start, uint8_t *data, int indent) {
  ATOM_FIRMWARE_INFO *d = (ATOM_FIRMWARE_INFO *) data;
  int i;
  if (d) {
    printf ("%s%04x:  ATOM_COMMON_TABLE_HEADER sHeader%s :\n", IND(indent), (int)(((uint8_t*)&d->sHeader)-start), FILL(31)); ATOM_COMMON_TABLE_HEADER_dumper (start, (uint8_t*) &d->sHeader, indent+1);
    printf ("%s%04x:  ULONG ulFirmwareRevision%s = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->ulFirmwareRevision)-start), FILL(23), d->ulFirmwareRevision, d->ulFirmwareRevision);
    printf ("%s%04x:  ULONG ulDefaultEngineClock%s = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->ulDefaultEngineClock)-start), FILL(25), d->ulDefaultEngineClock, d->ulDefaultEngineClock);
    printf ("%s%04x:  ULONG ulDefaultMemoryClock%s = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->ulDefaultMemoryClock)-start), FILL(25), d->ulDefaultMemoryClock, d->ulDefaultMemoryClock);
    printf ("%s%04x:  ULONG ulDriverTargetEngineClock%s = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->ulDriverTargetEngineClock)-start), FILL(30), d->ulDriverTargetEngineClock, d->ulDriverTargetEngineClock);
    printf ("%s%04x:  ULONG ulDriverTargetMemoryClock%s = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->ulDriverTargetMemoryClock)-start), FILL(30), d->ulDriverTargetMemoryClock, d->ulDriverTargetMemoryClock);
    printf ("%s%04x:  ULONG ulMaxEngineClockPLL_Output%s = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->ulMaxEngineClockPLL_Output)-start), FILL(31), d->ulMaxEngineClockPLL_Output, d->ulMaxEngineClockPLL_Output);
    printf ("%s%04x:  ULONG ulMaxMemoryClockPLL_Output%s = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->ulMaxMemoryClockPLL_Output)-start), FILL(31), d->ulMaxMemoryClockPLL_Output, d->ulMaxMemoryClockPLL_Output);
    printf ("%s%04x:  ULONG ulMaxPixelClockPLL_Output%s = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->ulMaxPixelClockPLL_Output)-start), FILL(30), d->ulMaxPixelClockPLL_Output, d->ulMaxPixelClockPLL_Output);
    printf ("%s%04x:  ULONG ulASICMaxEngineClock%s = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->ulASICMaxEngineClock)-start), FILL(25), d->ulASICMaxEngineClock, d->ulASICMaxEngineClock);
    printf ("%s%04x:  ULONG ulASICMaxMemoryClock%s = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->ulASICMaxMemoryClock)-start), FILL(25), d->ulASICMaxMemoryClock, d->ulASICMaxMemoryClock);
    printf ("%s%04x:  UCHAR ucASICMaxTemperature%s = 0x%02x       (%d)\n", IND(indent), (int)(((uint8_t*)&d->ucASICMaxTemperature)-start), FILL(25), d->ucASICMaxTemperature, d->ucASICMaxTemperature);
    for (i = 0; i < 3; i++) {
      printf ("%s%04x:  UCHAR ucPadding%s [%d] = 0x%02x       (%d)\n", IND(indent), (int)(((uint8_t*)&d->ucPadding[i])-start), FILL(18+(i>9)), i, d->ucPadding[i], d->ucPadding[i]); }
    for (i = 0; i < 3; i++) {
      printf ("%s%04x:  ULONG aulReservedForBIOS%s [%d] = 0x%08x (%d)\n", IND(indent), (int)(((uint8_t*)&d->aulReservedForBIOS[i])-start), FILL(27+(i>9)), i, d->aulReservedForBIOS[i], d->aulReservedForBIOS[i]); }
    printf ("%s%04x:  USHORT usMinEngineClockPLL_Input%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usMinEngineClockPLL_Input)-start), FILL(31), d->usMinEngineClockPLL_Input, d->usMinEngineClockPLL_Input);
    printf ("%s%04x:  USHORT usMaxEngineClockPLL_Input%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usMaxEngineClockPLL_Input)-start), FILL(31), d->usMaxEngineClockPLL_Input, d->usMaxEngineClockPLL_Input);
    printf ("%s%04x:  USHORT usMinEngineClockPLL_Output%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usMinEngineClockPLL_Output)-start), FILL(32), d->usMinEngineClockPLL_Output, d->usMinEngineClockPLL_Output);
    printf ("%s%04x:  USHORT usMinMemoryClockPLL_Input%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usMinMemoryClockPLL_Input)-start), FILL(31), d->usMinMemoryClockPLL_Input, d->usMinMemoryClockPLL_Input);
    printf ("%s%04x:  USHORT usMaxMemoryClockPLL_Input%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usMaxMemoryClockPLL_Input)-start), FILL(31), d->usMaxMemoryClockPLL_Input, d->usMaxMemoryClockPLL_Input);
    printf ("%s%04x:  USHORT usMinMemoryClockPLL_Output%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usMinMemoryClockPLL_Output)-start), FILL(32), d->usMinMemoryClockPLL_Output, d->usMinMemoryClockPLL_Output);
    printf ("%s%04x:  USHORT usMaxPixelClock%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usMaxPixelClock)-start), FILL(21), d->usMaxPixelClock, d->usMaxPixelClock);
    printf ("%s%04x:  USHORT usMinPixelClockPLL_Input%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usMinPixelClockPLL_Input)-start), FILL(30), d->usMinPixelClockPLL_Input, d->usMinPixelClockPLL_Input);
    printf ("%s%04x:  USHORT usMaxPixelClockPLL_Input%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usMaxPixelClockPLL_Input)-start), FILL(30), d->usMaxPixelClockPLL_Input, d->usMaxPixelClockPLL_Input);
    printf ("%s%04x:  USHORT usMinPixelClockPLL_Output%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usMinPixelClockPLL_Output)-start), FILL(31), d->usMinPixelClockPLL_Output, d->usMinPixelClockPLL_Output);
    printf ("%s%04x:  ATOM_FIRMWARE_CAPABILITY_ACCESS usFirmwareCapability%s :\n", IND(indent), (int)(((uint8_t*)&d->usFirmwareCapability)-start), FILL(51)); ATOM_FIRMWARE_CAPABILITY_ACCESS_dumper (start, (uint8_t*) &d->usFirmwareCapability, indent+1);
    printf ("%s%04x:  USHORT usReferenceClock%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usReferenceClock)-start), FILL(22), d->usReferenceClock, d->usReferenceClock);
    printf ("%s%04x:  USHORT usPM_RTS_Location%s = 0x%04x     (%d)\n", IND(indent), (int)(((uint8_t*)&d->usPM_RTS_Location)-start), FILL(23), d->usPM_RTS_Location, d->usPM_RTS_Location);
    printf ("%s%04x:  UCHAR ucPM_RTS_StreamSize%s = 0x%02x       (%d)\n", IND(indent), (int)(((uint8_t*)&d->ucPM_RTS_StreamSize)-start), FILL(24), d->ucPM_RTS_StreamSize, d->ucPM_RTS_StreamSize);
    printf ("%s%04x:  UCHAR ucDesign_ID%s = 0x%02x       (%d)\n", IND(indent), (int)(((uint8_t*)&d->ucDesign_ID)-start), FILL(16), d->ucDesign_ID, d->ucDesign_ID);
    printf ("%s%04x:  UCHAR ucMemoryModule_ID%s = 0x%02x       (%d)\n", IND(indent), (int)(((uint8_t*)&d->ucMemoryModule_ID)-start), FILL(22), d->ucMemoryModule_ID, d->ucMemoryModule_ID);
  }
  return sizeof (ATOM_FIRMWARE_INFO);
}

// Assembly:
testq %rsi, %rsi
je 0xca60
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, %r14
movq 0x2fdd5(%rip), %rcx     # 0x3c2b0
cmpl $0x19, %edx
movl $0x19, %eax
cmovll %edx, %eax
addl %eax, %eax
movl $0x32, %edx
subl %eax, %edx
movslq %edx, %r15
leaq (%rcx,%r15), %rsi
addq $0x1f, %rcx
leaq 0x166d0(%rip), %rdi     # 0x22bd1
movl %ebx, %r12d
subl %r14d, %r12d
movl %r12d, %edx
xorl %eax, %eax
callq 0x40b0
incl %ebp
movq %r14, %rdi
movq %rbx, %rsi
movl %ebp, 0x14(%rsp)
movl %ebp, %edx
callq 0x5f74
movq 0x2fd85(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x4(%rbx), %rdx
subl %r14d, %edx
addq $0x17, %rcx
movl 0x4(%rbx), %r8d
leaq 0x1a7f8(%rip), %rdi     # 0x26d3d
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fd5a(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x8(%rbx), %rdx
subl %r14d, %edx
addq $0x19, %rcx
movl 0x8(%rbx), %r8d
leaq 0x18170(%rip), %rdi     # 0x246e0
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fd2f(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0xc(%rbx), %rdx
subl %r14d, %edx
addq $0x19, %rcx
movl 0xc(%rbx), %r8d
leaq 0x1817a(%rip), %rdi     # 0x24715
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fd04(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x10(%rbx), %rdx
subl %r14d, %edx
addq $0x1e, %rcx
movl 0x10(%rbx), %r8d
leaq 0x1a7aa(%rip), %rdi     # 0x26d70
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fcd9(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x14(%rbx), %rdx
subl %r14d, %edx
addq $0x1e, %rcx
movl 0x14(%rbx), %r8d
leaq 0x1a7b9(%rip), %rdi     # 0x26daa
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fcae(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x18(%rbx), %rdx
subl %r14d, %edx
addq $0x1f, %rcx
movl 0x18(%rbx), %r8d
leaq 0x1a7c8(%rip), %rdi     # 0x26de4
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fc83(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x1c(%rbx), %rdx
subl %r14d, %edx
addq $0x1f, %rcx
movl 0x1c(%rbx), %r8d
leaq 0x1a7d8(%rip), %rdi     # 0x26e1f
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fc58(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x20(%rbx), %rdx
subl %r14d, %edx
addq $0x1e, %rcx
movl 0x20(%rbx), %r8d
leaq 0x1a7e8(%rip), %rdi     # 0x26e5a
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fc2d(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x24(%rbx), %rdx
subl %r14d, %edx
addq $0x19, %rcx
movl 0x24(%rbx), %r8d
leaq 0x1a7f7(%rip), %rdi     # 0x26e94
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fc02(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x28(%rbx), %rdx
subl %r14d, %edx
addq $0x19, %rcx
movl 0x28(%rbx), %r8d
leaq 0x1a801(%rip), %rdi     # 0x26ec9
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fbd7(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x2c(%rbx), %rdx
subl %r14d, %edx
addq $0x19, %rcx
movzbl 0x2c(%rbx), %r8d
leaq 0x1a80a(%rip), %rdi     # 0x26efe
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
addl $0x2d, %r12d
leaq 0x180da(%rip), %r13     # 0x247e3
xorl %ebp, %ebp
movq 0x2fb9e(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leal (%r12,%rbp), %edx
addq $0x12, %rcx
movzbl 0x2d(%rbx,%rbp), %r9d
movl %r9d, (%rsp)
movq %r13, %rdi
movl %ebp, %r8d
xorl %eax, %eax
callq 0x40b0
incq %rbp
cmpq $0x3, %rbp
jne 0xc70b
movl %ebx, %r12d
subl %r14d, %r12d
addl $0x30, %r12d
leaq 0x1a7ea(%rip), %r13     # 0x26f39
xorl %ebp, %ebp
movq 0x2fb58(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
addq $0x1b, %rcx
movl 0x30(%rbx,%rbp,4), %r9d
movl %r9d, (%rsp)
movq %r13, %rdi
movl %r12d, %edx
movl %ebp, %r8d
xorl %eax, %eax
callq 0x40b0
incq %rbp
addl $0x4, %r12d
cmpq $0x3, %rbp
jne 0xc751
movq 0x2fb23(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x3c(%rbx), %rdx
subl %r14d, %edx
addq $0x1f, %rcx
movzwl 0x3c(%rbx), %r8d
leaq 0x1a7c9(%rip), %rdi     # 0x26f71
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2faf7(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x3e(%rbx), %rdx
subl %r14d, %edx
addq $0x1f, %rcx
movzwl 0x3e(%rbx), %r8d
leaq 0x1a7dc(%rip), %rdi     # 0x26fb0
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2facb(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x40(%rbx), %rdx
subl %r14d, %edx
addq $0x20, %rcx
movzwl 0x40(%rbx), %r8d
leaq 0x1a7ef(%rip), %rdi     # 0x26fef
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fa9f(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x42(%rbx), %rdx
subl %r14d, %edx
addq $0x1f, %rcx
movzwl 0x42(%rbx), %r8d
leaq 0x1a803(%rip), %rdi     # 0x2702f
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fa73(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x44(%rbx), %rdx
subl %r14d, %edx
addq $0x1f, %rcx
movzwl 0x44(%rbx), %r8d
leaq 0x1a816(%rip), %rdi     # 0x2706e
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fa47(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x46(%rbx), %rdx
subl %r14d, %edx
addq $0x20, %rcx
movzwl 0x46(%rbx), %r8d
leaq 0x1a829(%rip), %rdi     # 0x270ad
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2fa1b(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x48(%rbx), %rdx
subl %r14d, %edx
addq $0x15, %rcx
movzwl 0x48(%rbx), %r8d
leaq 0x1a83d(%rip), %rdi     # 0x270ed
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2f9ef(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x4a(%rbx), %rdx
subl %r14d, %edx
addq $0x1e, %rcx
movzwl 0x4a(%rbx), %r8d
leaq 0x1a846(%rip), %rdi     # 0x27122
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2f9c3(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x4c(%rbx), %rdx
subl %r14d, %edx
addq $0x1e, %rcx
movzwl 0x4c(%rbx), %r8d
leaq 0x1a858(%rip), %rdi     # 0x27160
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2f997(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x4e(%rbx), %rdx
subl %r14d, %edx
addq $0x1f, %rcx
movzwl 0x4e(%rbx), %r8d
leaq 0x1a86a(%rip), %rdi     # 0x2719e
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2f96b(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x50(%rbx), %r12
movl %r12d, %edx
subl %r14d, %edx
addq $0x32, %rcx
leaq 0x1a87f(%rip), %rdi     # 0x271dd
xorl %eax, %eax
callq 0x40b0
movq %r14, %rdi
movq %r12, %rsi
movl 0x14(%rsp), %edx
callq 0xc41e
movq 0x2f935(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x52(%rbx), %rdx
subl %r14d, %edx
addq $0x16, %rcx
movzwl 0x52(%rbx), %r8d
leaq 0x1a88a(%rip), %rdi     # 0x27220
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2f909(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x54(%rbx), %rdx
subl %r14d, %edx
addq $0x17, %rcx
movzwl 0x54(%rbx), %r8d
leaq 0x1a894(%rip), %rdi     # 0x27256
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2f8dd(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x56(%rbx), %rdx
subl %r14d, %edx
addq $0x18, %rcx
movzbl 0x56(%rbx), %r8d
leaq 0x1a89f(%rip), %rdi     # 0x2728d
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2f8b1(%rip), %rcx     # 0x3c2b0
leaq (%rcx,%r15), %rsi
leaq 0x57(%rbx), %rdx
subl %r14d, %edx
addq $0x10, %rcx
movzbl 0x57(%rbx), %r8d
leaq 0x1a8ad(%rip), %rdi     # 0x272c7
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
movq 0x2f885(%rip), %rcx     # 0x3c2b0
addq %rcx, %r15
leaq 0x58(%rbx), %rdx
subl %r14d, %edx
addq $0x16, %rcx
movzbl 0x58(%rbx), %r8d
leaq 0x1a8b4(%rip), %rdi     # 0x272f9
movq %r15, %rsi
movl %r8d, %r9d
xorl %eax, %eax
callq 0x40b0
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
movl $0x59, %eax
retq