(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_LBracket '[')} {(DQ ($ VSub_Pound '$#'))} {(-ne)} {(1)} {(Lit_RBracket ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Usage: bootgen.sh *build dir*'))})
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:BUILD) op:Equal rhs:{($ VSub_Number '$1')})]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:RELOCATOR) op:Equal rhs:{(bootmgr/relocator)})]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:BOOTMGR) op:Equal rhs:{(${ VSub_Name BUILD)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_LBracket '[')} {(KW_Bang '!')} {(-f)} 
                  {($ VSub_DollarName '$RELOCATOR') (/relocator.bin)} {(Lit_RBracket ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Error : Relocator Not found!'))})
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
        )
      ]
      else_action: [(C {(echo)} {(DQ ('Relocator found...'))})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_LBracket '[')} {(KW_Bang '!')} {(-f)} 
                  {($ VSub_DollarName '$BOOTMGR') (/bootmgr.bin)} {(Lit_RBracket ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Error : Boot Manager Not found!'))})
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
        )
      ]
      else_action: [(C {(echo)} {(DQ ('Boot Manager found...'))})]
    )
    (C {(echo)} {(DQ ('Generating bootloader...'))})
    (command.Simple
      words: [
        {(dd)}
        {(Lit_VarLike 'if=') (/dev/zero)}
        {(Lit_VarLike 'of=') (__tmp.bin)}
        {(Lit_VarLike 'ibs=') (1)}
        {(Lit_VarLike 'count=') (256)}
        {(Lit_VarLike 'conv=') (notrunc)}
      ]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
        (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
      ]
    )
    (command.Simple
      words: [
        {(dd)}
        {(Lit_VarLike 'if=') ($ VSub_DollarName '$RELOCATOR') (/relocator.bin)}
        {(Lit_VarLike 'of=') (__tmp.bin)}
        {(Lit_VarLike 'ibs=') (1)}
        {(Lit_VarLike 'conv=') (notrunc)}
      ]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
        (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
      ]
    )
    (command.Simple
      words: [{(cat)} {(__tmp.bin)} {($ VSub_DollarName '$BOOTMGR') (/bootmgr.bin)}]
      redirects: [
        (redir.Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {($ VSub_DollarName '$BOOTMGR') (/bootloader.bin)}
        )
      ]
    )
    (C {(rm)} {(-f)} {(__tmp.bin)})
    (C {(rm)} {(-f)} {($ VSub_DollarName '$BOOTMGR') (/bootmgr.bin)})
  ]
)