user: What would the C source look like for the assembly code provided here?

```asm
<print_mk_devcfg1>:
  endbr64
  push   %rbp
  mov    %rsi,%r8
  mov    %edi,%esi
  push   %rbx
  mov    %rdi,%rbx
  sub    $0x8,%rsp
  test   %r8,%r8
  jne    L566
  xor    %eax,%eax
  lea    D486(%rip),%rdi
  call   <printf@plt>
  test   $0x80000000,%ebx
  je     L861
L791:
  mov    $0x8,%esi
  lea    D322(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L504:
  mov    %rbx,%rdx
  mov    %rbx,%rbp
  sar    $0x1a,%rdx
  sar    $0x18,%rbp
  mov    %ebp,%esi
  and    $0x1f,%edx
  and    $0x7c,%esi
  cmp    $0x17,%rdx
  jle    L964
  lea    D30(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbx,%rax
  and    $0x3000000,%eax
  cmp    $0x2000000,%rax
  je     L224
L62:
  jg     L696
  test   %rax,%rax
  je     L961
  cmp    $0x1000000,%rax
  jne    L251
  mov    %ebp,%esi
  lea    D131(%rip),%rdi
  xor    %eax,%eax
  and    $0x3,%esi
  call   <printf@plt>
L251:
  test   $0x800000,%ebx
  je     L692
L456:
  xor    %eax,%eax
  mov    $0x8,%esi
  lea    D89(%rip),%rdi
  call   <printf@plt>
  test   $0x400000,%ebx
  je     L63
L472:
  xor    %eax,%eax
  mov    $0x4,%esi
  lea    D223(%rip),%rdi
  call   <printf@plt>
  test   $0x200000,%ebx
  je     L584
L144:
  mov    $0x2,%esi
  lea    D310(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L589:
  mov    %rbx,%rax
  and    $0x1f0000,%eax
  cmp    $0xa0000,%rax
  je     L677
  jg     L555
  cmp    $0x50000,%rax
  je     L888
  jle    L59
  cmp    $0x80000,%rax
  je     L726
  jle    L388
  cmp    $0x90000,%rax
  jne    L436
  mov    $0x9,%esi
  lea    D16(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xchg   %ax,%ax
L758:
  mov    %rbx,%rax
  and    $0xc000,%eax
  cmp    $0x8000,%rax
  je     L201
  jg     L520
  test   %rax,%rax
  je     L198
  cmp    $0x4000,%rax
  jne    L887
  mov    $0x4,%esi
  lea    D414(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L887:
  test   $0x4,%bh
  jne    L219
L155:
  xor    %esi,%esi
  lea    D280(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbx,%rax
  and    $0x300,%eax
  cmp    $0x200,%rax
  je     L741
L160:
  jg     L519
  test   %rax,%rax
  je     L365
  cmp    $0x100,%rax
  jne    L634
  mov    $0x1,%esi
  lea    D43(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L634:
  test   $0x80,%bl
  je     L146
L536:
  xor    %eax,%eax
  mov    $0x8,%esi
  lea    D421(%rip),%rdi
  call   <printf@plt>
  test   $0x40,%bl
  je     L921
L253:
  mov    $0x4,%esi
  lea    D545(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L77:
  mov    %rbx,%rax
  lea    D592(%rip),%rdx
  and    $0x38,%eax
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax)
L520:
  cmp    $0xc000,%rax
  jne    L887
  xor    %eax,%eax
  mov    $0xc,%esi
  lea    D149(%rip),%rdi
  call   <printf@plt>
  test   $0x4,%bh
  je     L155
L219:
  mov    $0x4,%esi
  lea    D57(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbx,%rax
  and    $0x300,%eax
  cmp    $0x200,%rax
  jne    L160
L741:
  xor    %eax,%eax
  mov    $0x2,%esi
  lea    D597(%rip),%rdi
  call   <printf@plt>
  test   $0x80,%bl
  jne    L536
L146:
  xor    %esi,%esi
  xor    %eax,%eax
  lea    D409(%rip),%rdi
  call   <printf@plt>
  test   $0x40,%bl
  jne    L253
L921:
  xor    %esi,%esi
  lea    D143(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L77
L388:
  cmp    $0x60000,%rax
  je     L330
  cmp    $0x70000,%rax
  jne    L436
  mov    $0x7,%esi
  lea    D401(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax)
L59:
  cmp    $0x20000,%rax
  je     L876
  jle    L252
  cmp    $0x30000,%rax
  je     L162
  cmp    $0x40000,%rax
  jne    L436
  mov    $0x4,%esi
  lea    D64(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopw   0x0(%rax,%rax,1)
L555:
  cmp    $0xf0000,%rax
  je     L310
  jle    L616
  cmp    $0x120000,%rax
  je     L140
  jle    L503
  cmp    $0x130000,%rax
  jne    L436
  mov    $0x14,%esi
  lea    D315(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L696:
  cmp    $0x3000000,%rax
  jne    L251
  mov    %ebp,%esi
  xor    %eax,%eax
  lea    D205(%rip),%rdi
  and    $0x3,%esi
  call   <printf@plt>
  test   $0x800000,%ebx
  jne    L456
L692:
  xor    %esi,%esi
  xor    %eax,%eax
  lea    D475(%rip),%rdi
  call   <printf@plt>
  test   $0x400000,%ebx
  jne    L472
L63:
  xor    %esi,%esi
  xor    %eax,%eax
  lea    D177(%rip),%rdi
  call   <printf@plt>
  test   $0x200000,%ebx
  jne    L144
L584:
  xor    %esi,%esi
  lea    D19(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L589
L252:
  test   %rax,%rax
  je     L141
  cmp    $0x10000,%rax
  jne    L436
  mov    $0x1,%esi
  lea    D674(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   (%rax)
L503:
  cmp    $0x100000,%rax
  je     L221
  cmp    $0x110000,%rax
  jne    L436
  mov    $0x11,%esi
  lea    D271(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L616:
  cmp    $0xd0000,%rax
  je     L586
  jle    L185
  cmp    $0xe0000,%rax
  jne    L436
  mov    $0xe,%esi
  lea    D249(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopw   0x0(%rax,%rax,1)
L185:
  cmp    $0xb0000,%rax
  je     L850
  cmp    $0xc0000,%rax
  jne    L436
  mov    $0xc,%esi
  lea    D521(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
  xor    %esi,%esi
  lea    D578(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L91:
  and    $0x7,%ebx
  cmp    $0x5,%rbx
  ja     L192
  lea    D285(%rip),%rdx
  movslq (%rdx,%rbx,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  xchg   %ax,%ax
L519:
  cmp    $0x300,%rax
  jne    L634
  mov    $0x3,%esi
  lea    D345(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L634
  nopl   0x0(%rax)
L964:
  lea    0x8(%rdx),%ecx
  mov    $0x1,%eax
  add    $0x8,%rdx
  shl    %cl,%eax
  lea    D155(%rip),%rdi
  mov    %eax,%ecx
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbx,%rax
  and    $0x3000000,%eax
  cmp    $0x2000000,%rax
  jne    L62
L224:
  mov    %ebp,%esi
  lea    D139(%rip),%rdi
  xor    %eax,%eax
  and    $0x3,%esi
  call   <printf@plt>
  jmp    L251
  nopw   0x0(%rax,%rax,1)
L566:
  xor    %eax,%eax
  lea    D161(%rip),%rdi
  call   <printf@plt>
  test   $0x80000000,%ebx
  jne    L791
L861:
  xor    %esi,%esi
  lea    D354(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L504
  nopw   0x0(%rax,%rax,1)
L961:
  mov    %ebp,%esi
  lea    D449(%rip),%rdi
  xor    %eax,%eax
  and    $0x3,%esi
  call   <printf@plt>
  jmp    L251
  nopl   0x0(%rax,%rax,1)
  add    $0x8,%rsp
  mov    $0x4,%esi
  lea    D70(%rip),%rdi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  jmp    1050 <printf@plt>
  nopl   0x0(%rax)
  add    $0x8,%rsp
  mov    $0x3,%esi
  lea    D653(%rip),%rdi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  jmp    1050 <printf@plt>
  nopl   0x0(%rax)
  add    $0x8,%rsp
  mov    $0x2,%esi
  lea    D617(%rip),%rdi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  jmp    1050 <printf@plt>
  nopl   0x0(%rax)
  add    $0x8,%rsp
  mov    $0x1,%esi
  lea    D0(%rip),%rdi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  jmp    1050 <printf@plt>
  nopl   0x0(%rax)
  add    $0x8,%rsp
  xor    %esi,%esi
  lea    D32(%rip),%rdi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  jmp    1050 <printf@plt>
  cs nopw 0x0(%rax,%rax,1)
  add    $0x8,%rsp
  mov    $0x5,%esi
  lea    D82(%rip),%rdi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  jmp    1050 <printf@plt>
  nopl   0x0(%rax)
  mov    $0x38,%esi
  lea    D210(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L91
  nopl   0x0(%rax,%rax,1)
  mov    $0x30,%esi
  lea    D609(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L91
  nopl   0x0(%rax,%rax,1)
  mov    $0x28,%esi
  lea    D670(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L91
  nopl   0x0(%rax,%rax,1)
  mov    $0x20,%esi
  lea    D405(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L91
  nopl   0x0(%rax,%rax,1)
  mov    $0x18,%esi
  lea    D608(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L91
  nopl   0x0(%rax,%rax,1)
  mov    $0x10,%esi
  lea    D253(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L91
  nopl   0x0(%rax,%rax,1)
  mov    $0x8,%esi
  lea    D228(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L91
  nopl   0x0(%rax,%rax,1)
L201:
  mov    $0x8,%esi
  lea    D320(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L887
  nopl   0x0(%rax,%rax,1)
L198:
  xor    %esi,%esi
  lea    D26(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L887
  nopl   (%rax)
L365:
  xor    %esi,%esi
  lea    D62(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L634
L192:
  add    $0x8,%rsp
  xor    %esi,%esi
  lea    D79(%rip),%rdi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  jmp    1050 <printf@plt>
  nopl   0x0(%rax,%rax,1)
L850:
  mov    $0xb,%esi
  lea    D605(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
L586:
  mov    $0xd,%esi
  lea    D351(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L221:
  mov    $0x10,%esi
  lea    D260(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L141:
  xor    %esi,%esi
  lea    D236(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   (%rax)
L140:
  mov    $0x12,%esi
  lea    D412(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
L310:
  mov    $0xf,%esi
  lea    D678(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L162:
  mov    $0x3,%esi
  lea    D400(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L876:
  mov    $0x2,%esi
  lea    D278(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L330:
  mov    $0x6,%esi
  lea    D438(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L436:
  mov    $0x14,%esi
  lea    D88(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L726:
  mov    $0x8,%esi
  lea    D220(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L888:
  mov    $0x5,%esi
  lea    D123(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
  nopl   0x0(%rax,%rax,1)
L677:
  mov    $0xa,%esi
  lea    D78(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L758
```

tool_calls: name: disassemble_data
arguments: data_label: D486
datatype: string
name: disassemble_data
arguments: data_label: D322
datatype: string
name: disassemble_data
arguments: data_label: D30
datatype: string
name: disassemble_data
arguments: data_label: D131
datatype: string
name: disassemble_data
arguments: data_label: D89
datatype: string
name: disassemble_data
arguments: data_label: D223
datatype: string
name: disassemble_data
arguments: data_label: D310
datatype: string
name: disassemble_data
arguments: data_label: D16
datatype: string
name: disassemble_data
arguments: data_label: D414
datatype: string
name: disassemble_data
arguments: data_label: D280
datatype: string
name: disassemble_data
arguments: data_label: D43
datatype: string
name: disassemble_data
arguments: data_label: D421
datatype: string
name: disassemble_data
arguments: data_label: D545
datatype: string
name: disassemble_data
arguments: data_label: D149
datatype: string
name: disassemble_data
arguments: data_label: D57
datatype: string
name: disassemble_data
arguments: data_label: D597
datatype: string
name: disassemble_data
arguments: data_label: D409
datatype: string
name: disassemble_data
arguments: data_label: D143
datatype: string
name: disassemble_data
arguments: data_label: D401
datatype: string
name: disassemble_data
arguments: data_label: D64
datatype: string
name: disassemble_data
arguments: data_label: D315
datatype: string
name: disassemble_data
arguments: data_label: D205
datatype: string
name: disassemble_data
arguments: data_label: D475
datatype: string
name: disassemble_data
arguments: data_label: D177
datatype: string
name: disassemble_data
arguments: data_label: D19
datatype: string
name: disassemble_data
arguments: data_label: D674
datatype: string
name: disassemble_data
arguments: data_label: D271
datatype: string
name: disassemble_data
arguments: data_label: D249
datatype: string
name: disassemble_data
arguments: data_label: D521
datatype: string
name: disassemble_data
arguments: data_label: D578
datatype: string
name: disassemble_data
arguments: data_label: D345
datatype: string
name: disassemble_data
arguments: data_label: D155
datatype: string
name: disassemble_data
arguments: data_label: D139
datatype: string
name: disassemble_data
arguments: data_label: D161
datatype: string
name: disassemble_data
arguments: data_label: D354
datatype: string
name: disassemble_data
arguments: data_label: D449
datatype: string
name: disassemble_data
arguments: data_label: D70
datatype: string
name: disassemble_data
arguments: data_label: D653
datatype: string
name: disassemble_data
arguments: data_label: D617
datatype: string
name: disassemble_data
arguments: data_label: D0
datatype: string
name: disassemble_data
arguments: data_label: D32
datatype: string
name: disassemble_data
arguments: data_label: D82
datatype: string
name: disassemble_data
arguments: data_label: D210
datatype: string
name: disassemble_data
arguments: data_label: D609
datatype: string
name: disassemble_data
arguments: data_label: D670
datatype: string
name: disassemble_data
arguments: data_label: D405
datatype: string
name: disassemble_data
arguments: data_label: D608
datatype: string
name: disassemble_data
arguments: data_label: D253
datatype: string
name: disassemble_data
arguments: data_label: D228
datatype: string
name: disassemble_data
arguments: data_label: D320
datatype: string
name: disassemble_data
arguments: data_label: D26
datatype: string
name: disassemble_data
arguments: data_label: D62
datatype: string
name: disassemble_data
arguments: data_label: D79
datatype: string
name: disassemble_data
arguments: data_label: D605
datatype: string
name: disassemble_data
arguments: data_label: D351
datatype: string
name: disassemble_data
arguments: data_label: D260
datatype: string
name: disassemble_data
arguments: data_label: D236
datatype: string
name: disassemble_data
arguments: data_label: D412
datatype: string
name: disassemble_data
arguments: data_label: D678
datatype: string
name: disassemble_data
arguments: data_label: D400
datatype: string
name: disassemble_data
arguments: data_label: D278
datatype: string
name: disassemble_data
arguments: data_label: D438
datatype: string
name: disassemble_data
arguments: data_label: D88
datatype: string
name: disassemble_data
arguments: data_label: D220
datatype: string
name: disassemble_data
arguments: data_label: D123
datatype: string
name: disassemble_data
arguments: data_label: D78
datatype: string

tool: D486:  BF1DEVCFG1 = 0x%08X


tool: D322:                 %01x        Deadman Timer enabled and CANNOT be disabled in SW


tool: D30:                 %02x       Deadman Timer Count Select: RESERVED


tool: D131:                  %01x       Watchdog Timer Window Size 50%%


tool: D89:                   %01x      Watchdog timer is enabled, CANNOT be disabled in SW


tool: D223:                   %01x      Watchdog timer is in non-window mode


tool: D310:                   %01x      Watchdog timer stops during Flash programming


tool: D16:                   %02x     Watchdog Timer Postscale 1:512


tool: D414:                     %01x    Clock switching enabled, clock monitoring disabled


tool: D280:                      %01x   CLKO output active on OSC2


tool: D43:                      %01x   POSC - RESERVED setting


tool: D421:                       %01x  Internal External Switchover enabled


tool: D545:                       %01x  SOSC enabled


tool: D149:                     %01x    Clock switching enabled, clock monitoring enabled


tool: D57:                      %01x   CLKO output disabled


tool: D597:                      %01x   POSC set to HS Oscillator mode


tool: D409:                       %01x  Internal External Switchover disabled


tool: D143:                       %01x  SOSC disabled


tool: D401:                   %02x     Watchdog Timer Postscale 1:128


tool: D64:                   %02x     Watchdog Timer Postscale 1:16


tool: D315:                   %02x     Watchdog Timer Postscale 1:524288


tool: D205:                  %01x       Watchdog Timer Window Size 25%%


tool: D475:                   %01x      Watchdog Timer disabled and can be enabled in SW


tool: D177:                   %01x      Watchdog Timer is in window mode


tool: D19:                   %01x      Watchdog Timer runs during Flash programming


tool: D674:                   %02x     Watchdog Timer Postscale 1:2


tool: D271:                   %02x     Watchdog Timer Postscale 1:131072


tool: D249:                   %02x     Watchdog Timer Postscale 1:16384


tool: D521:                   %02x     Watchdog Timer Postscale 1:4096


tool: D578:                       %02x Deadman Timer Window value is 0


tool: D345:                      %01x   POSC disabled


tool: D155:                 %02x       Deadman Timer Count Select: 2^%d (%d)


tool: D139:                  %01x       Watchdog Timer Window Size 37.5%%


tool: D161:  BF2DEVCFG1 = 0x%08X


tool: D354:                 %01x        Deadman Timer disabled and can be enabled in SW


tool: D449:                  %01x       Watchdog Timer Window Size 75%%


tool: D70:                        %01x SOSC selected as Oscillator


tool: D653:                        %01x USB PLL selected as Oscillator


tool: D617:                        %01x POSC selected as Oscillator


tool: D0:                        %01x System PLL selected as Oscillator


tool: D32:                        %01x FRC + divider selected as Oscillator


tool: D82:                        %01x LPRC selected as Oscillator


tool: D210:                       %02x Deadman Timer Window is 127/128 counter value


tool: D609:                       %02x Deadman Timer Window is 63/64 counter value


tool: D670:                       %02x Deadman Timer Window is 31/32 counter value


tool: D405:                       %02x Deadman Timer Window is 15/16 counter value


tool: D608:                       %02x Deadman Timer Window is 7/8 counter value


tool: D253:                       %02x Deadman Timer Window is 3/4 counter value


tool: D228:                       %02x Deadman Timer Window is 1/2 counter value


tool: D320:                     %01x    Clock switching disabled, clock monitoring enabled


tool: D26:                     %01x    Clock switching disabled, clock monitoring disabled


tool: D62:                      %01x   POSC set to EC mode


tool: D79:                        %01x RESERVED bit selected for Oscillator


tool: D605:                   %02x     Watchdog Timer Postscale 1:2048


tool: D351:                   %02x     Watchdog Timer Postscale 1:8192


tool: D260:                   %02x     Watchdog Timer Postscale 1:65536


tool: D236:                   %02x     Watchdog Timer Postscale 1:1


tool: D412:                   %02x     Watchdog Timer Postscale 1:262144


tool: D678:                   %02x     Watchdog Timer Postscale 1:32768


tool: D400:                   %02x     Watchdog Timer Postscale 1:8


tool: D278:                   %02x     Watchdog Timer Postscale 1:4


tool: D438:                   %02x     Watchdog Timer Postscale 1:64


tool: D88:                   %02x     Watchdog Timer Postscale 1:1048579


tool: D220:                   %02x     Watchdog Timer Postscale 1:256


tool: D123:                   %02x     Watchdog Timer Postscale 1:32


tool: D78:                   %02x     Watchdog Timer Postscale 1:1024


assistant: ```c
void print_mk_devcfg1(uint32_t devcfg1, uint32_t alternate) {
  if (0 == alternate) {
    printf(" BF1DEVCFG1 = 0x%08X\n", devcfg1);
  } else {
    printf(" BF2DEVCFG1 = 0x%08X\n", devcfg1);
  }
  if (devcfg1 & 0x80000000) {
    printf("                %01x        Deadman Timer enabled and CANNOT be disabled in SW\n", 0x80000000 >> 28);
  } else {
    printf("                %01x        Deadman Timer disabled and can be enabled in SW\n", 0);
  }
  if (((devcfg1 & 0x7C000000) >> 26) > (31 - 8)) {
    printf("                %02x       Deadman Timer Count Select: RESERVED\n", (devcfg1 & 0x7C000000) >> 24);
  } else {
    printf("                %02x       Deadman Timer Count Select: 2^%d (%d)\n", (devcfg1 & 0x7C000000) >> 24, 8 + ((devcfg1 & 0x7C000000) >> 26), 1 << (8 + ((devcfg1 & 0x7C000000) >> 26)));
  }
  switch (devcfg1 & 0x03000000) {
  case 0x03000000:
    printf("                 %01x       Watchdog Timer Window Size 25%%\n", (devcfg1 & 0x03000000) >> 24);
    break;
  case 0x02000000:
    printf("                 %01x       Watchdog Timer Window Size 37.5%%\n", (devcfg1 & 0x03000000) >> 24);
    break;
  case 0x01000000:
    printf("                 %01x       Watchdog Timer Window Size 50%%\n", (devcfg1 & 0x03000000) >> 24);
    break;
  case 0x00000000:
    printf("                 %01x       Watchdog Timer Window Size 75%%\n", (devcfg1 & 0x03000000) >> 24);
    break;
  }
  if (devcfg1 & 0x00800000) {
    printf("                  %01x      Watchdog timer is enabled, CANNOT be disabled in SW\n", 0x00800000 >> 20);
  } else {
    printf("                  %01x      Watchdog Timer disabled and can be enabled in SW\n", 0);
  }
  if (devcfg1 & 0x00400000) {
    printf("                  %01x      Watchdog timer is in non-window mode\n", 0x00400000 >> 20);
  } else {
    printf("                  %01x      Watchdog Timer is in window mode\n", 0);
  }
  if (devcfg1 & 0x00200000) {
    printf("                  %01x      Watchdog timer stops during Flash programming\n", 0x00200000 >> 20);
  } else {
    printf("                  %01x      Watchdog Timer runs during Flash programming\n", 0);
  }
  switch (devcfg1 & 0x001F0000) {
  case 0x00130000:
    printf("                  %02x     Watchdog Timer Postscale 1:524288\n", 0x00140000 >> 16);
    break;
  case 0x00120000:
    printf("                  %02x     Watchdog Timer Postscale 1:262144\n", 0x00120000 >> 16);
    break;
  case 0x00110000:
    printf("                  %02x     Watchdog Timer Postscale 1:131072\n", 0x00110000 >> 16);
    break;
  case 0x00100000:
    printf("                  %02x     Watchdog Timer Postscale 1:65536\n", 0x00100000 >> 16);
    break;
  case 0x000F0000:
    printf("                  %02x     Watchdog Timer Postscale 1:32768\n", 0x000F0000 >> 16);
    break;
  case 0x000E0000:
    printf("                  %02x     Watchdog Timer Postscale 1:16384\n", 0x000E0000 >> 16);
    break;
  case 0x000D0000:
    printf("                  %02x     Watchdog Timer Postscale 1:8192\n", 0x000D0000 >> 16);
    break;
  case 0x000C0000:
    printf("                  %02x     Watchdog Timer Postscale 1:4096\n", 0x000C0000 >> 16);
    break;
  case 0x000B0000:
    printf("                  %02x     Watchdog Timer Postscale 1:2048\n", 0x000B0000 >> 16);
    break;
  case 0x000A0000:
    printf("                  %02x     Watchdog Timer Postscale 1:1024\n", 0x000A0000 >> 16);
    break;
  case 0x00090000:
    printf("                  %02x     Watchdog Timer Postscale 1:512\n", 0x00090000 >> 16);
    break;
  case 0x00080000:
    printf("                  %02x     Watchdog Timer Postscale 1:256\n", 0x00080000 >> 16);
    break;
  case 0x00070000:
    printf("                  %02x     Watchdog Timer Postscale 1:128\n", 0x00070000 >> 16);
    break;
  case 0x00060000:
    printf("                  %02x     Watchdog Timer Postscale 1:64\n", 0x00060000 >> 16);
    break;
  case 0x00050000:
    printf("                  %02x     Watchdog Timer Postscale 1:32\n", 0x00050000 >> 16);
    break;
  case 0x00040000:
    printf("                  %02x     Watchdog Timer Postscale 1:16\n", 0x00040000 >> 16);
    break;
  case 0x00030000:
    printf("                  %02x     Watchdog Timer Postscale 1:8\n", 0x00030000 >> 16);
    break;
  case 0x00020000:
    printf("                  %02x     Watchdog Timer Postscale 1:4\n", 0x00020000 >> 16);
    break;
  case 0x00010000:
    printf("                  %02x     Watchdog Timer Postscale 1:2\n", 0x00010000 >> 16);
    break;
  case 0x00000000:
    printf("                  %02x     Watchdog Timer Postscale 1:1\n", 0x00000000 >> 16);
    break;
  case 0x00140000:
  default:
    printf("                  %02x     Watchdog Timer Postscale 1:1048579\n", 0x00140000 >> 16);
    break;
  }
  switch (devcfg1 & 0x0000C000) {
  case 0x0000C000:
    printf("                    %01x    Clock switching enabled, clock monitoring enabled\n", 0x0000C000 >> 12);
    break;
  case 0x00008000:
    printf("                    %01x    Clock switching disabled, clock monitoring enabled\n", 0x00008000 >> 12);
    break;
  case 0x00004000:
    printf("                    %01x    Clock switching enabled, clock monitoring disabled\n", 0x00004000 >> 12);
    break;
  case 0x00000000:
    printf("                    %01x    Clock switching disabled, clock monitoring disabled\n", 0x00000000 >> 12);
    break;
  }
  if (devcfg1 & 0x00000400) {
    printf("                     %01x   CLKO output disabled\n", 0x00000400 >> 8);
  } else {
    printf("                     %01x   CLKO output active on OSC2\n", 0);
  }
  switch (devcfg1 & 0x00000300) {
  case 0x00000300:
    printf("                     %01x   POSC disabled\n", 0x00000300 >> 8);
    break;
  case 0x00000200:
    printf("                     %01x   POSC set to HS Oscillator mode\n", 0x00000200 >> 8);
    break;
  case 0x00000100:
    printf("                     %01x   POSC - RESERVED setting\n", 0x00000100 >> 8);
    break;
  case 0x00000000:
    printf("                     %01x   POSC set to EC mode\n", 0x00000000 >> 8);
    break;
  }
  if (devcfg1 & 0x00000080) {
    printf("                      %01x  Internal External Switchover enabled\n", 0x00000080 >> 4);
  } else {
    printf("                      %01x  Internal External Switchover disabled\n", 0);
  }
  if (devcfg1 & 0x00000040) {
    printf("                      %01x  SOSC enabled\n", 0x00000040 >> 4);
  } else {
    printf("                      %01x  SOSC disabled\n", 0);
  }
  switch (devcfg1 & 0x00000038) {
  case 0x00000038:
    printf("                      %02x Deadman Timer Window is 127/128 counter value\n", 0x00000038);
    break;
  case 0x00000030:
    printf("                      %02x Deadman Timer Window is 63/64 counter value\n", 0x00000030);
    break;
  case 0x00000028:
    printf("                      %02x Deadman Timer Window is 31/32 counter value\n", 0x00000028);
    break;
  case 0x00000020:
    printf("                      %02x Deadman Timer Window is 15/16 counter value\n", 0x00000020);
    break;
  case 0x00000018:
    printf("                      %02x Deadman Timer Window is 7/8 counter value\n", 0x00000018);
    break;
  case 0x00000010:
    printf("                      %02x Deadman Timer Window is 3/4 counter value\n", 0x00000010);
    break;
  case 0x00000008:
    printf("                      %02x Deadman Timer Window is 1/2 counter value\n", 0x00000008);
    break;
  case 0x00000000:
    printf("                      %02x Deadman Timer Window value is 0\n", 0x00000000);
    break;
  }
  switch (devcfg1 & 0x00000007) {
  case 0x00000005:
    printf("                       %01x LPRC selected as Oscillator\n", 0x00000005);
    break;
  case 0x00000004:
    printf("                       %01x SOSC selected as Oscillator\n", 0x00000004);
    break;
  case 0x00000003:
    printf("                       %01x USB PLL selected as Oscillator\n", 0x00000003);
    break;
  case 0x00000002:
    printf("                       %01x POSC selected as Oscillator\n", 0x00000002);
    break;
  case 0x00000001:
    printf("                       %01x System PLL selected as Oscillator\n", 0x00000001);
    break;
  case 0x00000000:
    printf("                       %01x FRC + divider selected as Oscillator\n", 0x00000000);
    break;
  default:
    printf("                       %01x RESERVED bit selected for Oscillator\n", 0x00000000);
    break;
  }
}
```