(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'WHITELIST='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'WHITELIST='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHITELIST='> name:WHITELIST)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'add_reloc_offset __bss_start __bss_stop copy_and_flush\n'> 
                <'_end enter_prom memcpy memset reloc_offset __secondary_hold\n'> <'__secondary_hold_acknowledge __secondary_hold_spinloop __start\n'> 
                <'strcmp strcpy strlcpy strlen strncmp strstr logo_linux_clut224\n'> <'reloc_got2 kernstart_addr memstart_addr linux_banner _stext\n'> 
                <'__prom_init_toc_start __prom_init_toc_end btext_setup_display TOC.'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'NM='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'NM='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NM='> name:NM)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number 1))}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OBJ='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OBJ='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OBJ='> name:OBJ)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number 2))}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ERROR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ERROR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [UNDEF]
      iterable: 
        (for_iter.Words
          words: [
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        blame_tok: <Id.VSub_DollarName '$NM'>
                        more_env: []
                        words: [{($ Id.VSub_DollarName NM)} {<-u>} {($ Id.VSub_DollarName OBJ)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <awk>
                        more_env: []
                        words: [{<awk>} {(SQ <'{print $2}'>)}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_Pipe _>]
                  )
                right: <Id.Eof_RParen _>
              )
            }
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'UNDEF='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'UNDEF='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UNDEF='> name:UNDEF)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name UNDEF>
                          var_name: UNDEF
                          suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<.>})
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_DollarName KBUILD_VERBOSE)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_DollarName KBUILD_VERBOSE)}
                                        {<-ne>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'Checking prom_init.o symbol \''> ($ Id.VSub_DollarName UNDEF) 
                                    <'\''>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [130 143]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [118 127]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'OK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'OK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OK='> name:OK)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [WHITE]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName WHITELIST)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ ($ Id.VSub_DollarName UNDEF))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName WHITE))}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'OK='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'OK='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OK='> name:OK)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [178 195]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName UNDEF)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <_restgpr_>
                  pattern: 
                    (pat.Words
                      words: [
                        {<_restgpr_> <Id.Lit_Star '*'>}
                        {<_restgpr0_> <Id.Lit_Star '*'>}
                        {<_rest32gpr_> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'OK='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'OK='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OK='> name:OK)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <_savegpr_>
                  pattern: 
                    (pat.Words
                      words: [
                        {<_savegpr_> <Id.Lit_Star '*'>}
                        {<_savegpr0_> <Id.Lit_Star '*'>}
                        {<_save32gpr_> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'OK='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'OK='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OK='> name:OK)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_DollarName OK)}
                                {<-eq>}
                                {<0>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ERROR='> name:ERROR)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'Error: External symbol \''> ($ Id.VSub_DollarName UNDEF) 
                            <'\' referenced'>
                          )
                        }
                        {(DQ <'from prom_init.c'>)}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                  ]
                  spids: [263 276]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.ControlFlow
      keyword: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName ERROR)}
    )
  ]
)