(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:mfs_size)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Simple
                        words: [{<stat>} {<-f>} {(SQ <'%z'>)} {($ Id.VSub_Number '$2')}]
                        redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                      )
                    ]
                  )
              )
            }
          spids: [100]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-z>} {(${ Id.VSub_Name mfs_size)} {<Id.Lit_RBracket ']'>})
        (C {<echo>} {(DQ <"Can't determine MFS image size">)})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sec_info)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (command.Simple
                            words: [{<elfdump>} {<-c>} {($ Id.VSub_Number '$1')}]
                            redirects: [
                              (redir.Redir
                                op: <Id.Redir_Great '2>'>
                                fd: 2
                                arg_word: {</dev/null>}
                              )
                            ]
                          )
                          (C {<grep>} {<-A>} {<5>} {<-E>} {(DQ <'sh_name: oldmfs'> <Id.Lit_Other '$'>)})
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [147]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name sec_info))} {<Id.Lit_RBracket ']'>})
        (C {<echo>} {(DQ <"Can't locate mfs section within kernel">)})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sec_size)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {<echo>} {(DQ (${ Id.VSub_Name sec_info))})
                          (command.Simple
                            words: [{<awk>} {(SQ <'/sh_size/ {print $2}'>)}]
                            redirects: [
                              (redir.Redir
                                op: <Id.Redir_Great '2>'>
                                fd: 2
                                arg_word: {</dev/null>}
                              )
                            ]
                          )
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [207]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sec_start)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {<echo>} {(DQ (${ Id.VSub_Name sec_info))})
                          (command.Simple
                            words: [{<awk>} {(SQ <'/sh_offset/ {print $2}'>)}]
                            redirects: [
                              (redir.Redir
                                op: <Id.Redir_Great '2>'>
                                fd: 2
                                arg_word: {</dev/null>}
                              )
                            ]
                          )
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [232]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {<Id.Lit_LBracket '['>} {(${ Id.VSub_Name sec_size)} {<-lt>} {(${ Id.VSub_Name mfs_size)} 
          {<Id.Lit_RBracket ']'>}
        )
        (C {<echo>} {(DQ <'MFS image too large'>)})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (command.Simple
          words: [
            {<dd>}
            {<Id.Lit_VarLike 'if='> ($ Id.VSub_Number '$2')}
            {<Id.Lit_VarLike 'ibs='> <8192>}
            {<Id.Lit_VarLike 'of='> ($ Id.VSub_Number '$1')}
            {<Id.Lit_VarLike 'obs='> (${ Id.VSub_Name sec_start)}
            {<Id.Lit_VarLike 'oseek='> <1>}
            {<Id.Lit_VarLike 'conv='> <notrunc>}
          ]
          redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
        )
        (C {<echo>} {(DQ <'MFS image embedded into kernel'>)})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
      ]
    )
  ]
)