(command.CommandList
  children: [
    (C {<Id.KW_Set set>} {<-e>})
    (command.Case
      to_match: {(DQ ($ Id.VSub_Number '$1'))}
      arms: [
        (case_arm
          pat_list: [{(DQ )}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:BIN)
                  op: assign_op.Equal
                  rhs: {<.>}
                  spids: [82]
                )
              ]
            )
          ]
          spids: [78 80 85 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:BIN)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [90]
                )
              ]
            )
          ]
          spids: [87 88 95 -1]
        )
      ]
    )
    (command.ForEach
      iter_name: i
      iter_words: [{<size>} {<objdump>} {<nm>} {<ar>} {<strip>} {<ranlib>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.Simple
              words: [
                {(${ Id.VSub_Name BIN) <'/size'>}
                {(${ Id.VSub_Name BIN) <'/'> ($ Id.VSub_DollarName '$i')}
              ]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
              do_fork: T
            )
          ]
        )
    )
    (command.ForEach
      iter_name: i
      iter_words: [{<size>} {<objdump>} {<nm>} {<ar>} {<strip>} {<ranlib>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.Simple
              words: [
                {(${ Id.VSub_Name BIN) <'/objdump'>}
                {<-ahifdrtxsl>}
                {(${ Id.VSub_Name BIN) <'/'> ($ Id.VSub_DollarName '$i')}
              ]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
              do_fork: T
            )
          ]
        )
    )
    (command.ForEach
      iter_name: i
      iter_words: [{<size>} {<objdump>} {<nm>} {<ar>} {<strip>} {<ranlib>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.Simple
              words: [
                {(${ Id.VSub_Name BIN) <'/nm'>}
                {(${ Id.VSub_Name BIN) <'/'> ($ Id.VSub_DollarName '$i')}
              ]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
              do_fork: T
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMPDIR)
          op: assign_op.Equal
          rhs: {<'./binutils-'> ($ Id.VSub_Dollar '$$')}
          spids: [237]
        )
      ]
    )
    (C {<mkdir>} {(${ Id.VSub_Name TMPDIR)})
    (C {<cp>} {(${ Id.VSub_Name BIN) <'/strip'>} {(${ Id.VSub_Name TMPDIR) <'/strip'>})
    (command.ForEach
      iter_name: i
      iter_words: [{<size>} {<objdump>} {<nm>} {<ar>} {<ranlib>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {<cp>} {(${ Id.VSub_Name BIN) <'/'> ($ Id.VSub_DollarName '$i')} 
              {(${ Id.VSub_Name TMPDIR) <'/'> ($ Id.VSub_DollarName '$i')}
            )
            (C {(${ Id.VSub_Name BIN) <'/strip'>} 
              {(${ Id.VSub_Name TMPDIR) <'/'> ($ Id.VSub_DollarName '$i')}
            )
            (C {<cp>} {(${ Id.VSub_Name BIN) <'/'> ($ Id.VSub_DollarName '$i')} 
              {(${ Id.VSub_Name TMPDIR) <'/'> ($ Id.VSub_DollarName '$i')}
            )
            (C {(${ Id.VSub_Name TMPDIR) <'/strip'>} 
              {(${ Id.VSub_Name TMPDIR) <'/'> ($ Id.VSub_DollarName '$i')}
            )
          ]
        )
    )
    (C {<rm>} {<-rf>} {(${ Id.VSub_Name TMPDIR)})
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)