(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(KW_Bang "!")} {(-d)} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "]")})
          action: 
            (CommandList
              children: [
                (SimpleCommand
                  words: [{(echo)} {(DQ ("usage: gen_initramfs_list.sh dirname"))}]
                  redirects: [(Redirect op_id:Redir_GreatAnd arg_word:{(2)} fd:-1 spids:[27])]
                )
                (C {(exit)} {(1)})
              ]
            )
          spids: [-1 18]
        )
      ]
      spids: [-1 35]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LeftVar name:LEN)
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (Pipeline
                    children: [(C {(echo)} {($ VSub_Number "$1")}) (C {(wc)} {(-c)})]
                    negated: False
                  )
                spids: [39 49]
              )
            }
          spids: [38]
        )
      ]
      spids: [38]
    )
    (Pipeline
      children: [
        (C {(find)} {(DQ ($ VSub_Number "$1"))})
        (While
          cond: (C {(read)} {(i)})
          body: 
            (DoGroup
              child: 
                (CommandList
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LeftVar name:PERM)
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (C {(stat)} {(-c)} {(Lit_Other "%") (a)} {(DQ ($ VSub_Name "$i"))})
                                spids: [70 81]
                              )
                            }
                          spids: [69]
                        )
                      ]
                      spids: [69]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LeftVar name:NAME)
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {($ VSub_Name "$i")})
                                        (C {(cut)} {(-b)} {(${ VSub_Name LEN) (-)})
                                      ]
                                      negated: False
                                    )
                                  spids: [86 101]
                                )
                              )
                            }
                          spids: [84]
                        )
                      ]
                      spids: [84]
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$NAME"))} {(Lit_Other "]")})
                        (C {(continue)})
                      ]
                      op_id: Op_DAmp
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: 
                            (C {(Lit_Other "[")} {(-L)} {(DQ ($ VSub_Name "$i"))} {(Lit_Other "]")})
                          action: 
                            (C {(echo)} 
                              {
                                (DQ ("slink ") ($ VSub_Name "$NAME") (" ") 
                                  (CommandSubPart
                                    command_list: (C {(readlink)} {(DQ ($ VSub_Name "$i"))})
                                    spids: [144 150]
                                  ) (" ") ($ VSub_Name "$PERM") (" 0 0")
                                )
                              }
                            )
                          spids: [-1 135]
                        )
                        (if_arm
                          cond: 
                            (C {(Lit_Other "[")} {(-f)} {(DQ ($ VSub_Name "$i"))} {(Lit_Other "]")})
                          action: 
                            (C {(echo)} 
                              {
                                (DQ ("file ") ($ VSub_Name "$NAME") (" ") ($ VSub_Name "$i") (" ") 
                                  ($ VSub_Name "$PERM") (" 0 0")
                                )
                              }
                            )
                          spids: [157 170]
                        )
                        (if_arm
                          cond: 
                            (C {(Lit_Other "[")} {(-d)} {(DQ ($ VSub_Name "$i"))} {(Lit_Other "]")})
                          action: 
                            (C {(echo)} 
                              {
                                (DQ ("dir ") ($ VSub_Name "$NAME") (" ") ($ VSub_Name "$PERM") (" 0 0"))
                              }
                            )
                          spids: [186 199]
                        )
                      ]
                      spids: [-1 213]
                    )
                  ]
                )
              spids: [66 215]
            )
        )
      ]
      negated: False
    )
  ]
)