(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 '`'>
                child: 
                  (command.Simple
                    words: [{<stat>} {<-f>} {(SQ <'%z'>)} {($ Id.VSub_Number '$2')}]
                    redirects: [
                      (redir
                        op: <Id.Redir_Great '2>'>
                        loc: (redir_loc.Fd fd:2)
                        arg: {<'/dev/null'>}
                      )
                    ]
                    do_fork: T
                  )
              )
            }
          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 '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        words: [{<elfdump>} {<-c>} {($ Id.VSub_Number '$1')}]
                        redirects: [
                          (redir
                            op: <Id.Redir_Great '2>'>
                            loc: (redir_loc.Fd fd:2)
                            arg: {<'/dev/null'>}
                          )
                        ]
                        do_fork: T
                      )
                      (C {<grep>} {<-A>} {<5>} {<-E>} {(DQ <'sh_name: oldmfs'> <Id.Lit_Dollar '$'>)})
                    ]
                    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 '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<echo>} {(DQ (${ Id.VSub_Name sec_info))})
                      (command.Simple
                        words: [{<awk>} {(SQ <'/sh_size/ {print $2}'>)}]
                        redirects: [
                          (redir
                            op: <Id.Redir_Great '2>'>
                            loc: (redir_loc.Fd fd:2)
                            arg: {<'/dev/null'>}
                          )
                        ]
                        do_fork: T
                      )
                    ]
                    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 '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<echo>} {(DQ (${ Id.VSub_Name sec_info))})
                      (command.Simple
                        words: [{<awk>} {(SQ <'/sh_offset/ {print $2}'>)}]
                        redirects: [
                          (redir
                            op: <Id.Redir_Great '2>'>
                            loc: (redir_loc.Fd fd:2)
                            arg: {<'/dev/null'>}
                          )
                        ]
                        do_fork: T
                      )
                    ]
                    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 op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
          do_fork: T
        )
        (C {<echo>} {(DQ <'MFS image embedded into kernel'>)})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
      ]
    )
  ]
)