(command.CommandList
  children: [
    (command.ShFunction
      name: escape_eregexp
      body: 
        (command.BraceGroup
          children: [
            (C {(sed)} {(-r)} 
              {
                (SQ 
                  (Token
                    id: Id.Lit_Chars
                    val: 
's/(\\*|\\.|\\[|\\^|\\$|\\[|\\]|\\||\\{|\\}|\\?|\\+|\\(|\\)|\\\\)/\\\\\\1/g'
                    span_id: 32
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: escapefn_eregexp
      body: 
        (command.BraceGroup
          children: [
            (command.Pipeline
              children: [(C {(echo)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(escape_eregexp)})]
              negated: F
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:line_regexp)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'^[0-9a-f]* <([^>]*)>' span_id:70))}
          spids: [68]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:alloc_site_regexp)
          op: assign_op.Equal
          rhs: 
            {(DQ (${ Id.VSub_Name line_regexp) ('.*')) 
              (SQ (Token id:Id.Lit_Chars val:'call.*alloc' span_id:81))
            }
          spids: [73]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:allocation_sites)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:86)
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Pipeline
                          children: [
                            (C {(objdump)} {(--prefix-addresses)} {(-d)} {(DQ ($ Id.VSub_Number '$1'))})
                            (C {(egrep)} {(DQ ($ Id.VSub_DollarName '$alloc_site_regexp'))})
                            (C {(sed)} {(-r)} 
                              {
                                (DQ (s/) (${ Id.VSub_Name alloc_site_regexp) ('.*/') (Id.Lit_Other '\\') 
                                  (1/)
                                )
                              }
                            )
                          ]
                          negated: F
                        )
                      ]
                    )
                )
              )
            }
          spids: [84]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:objdump_output)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:136)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(objdump)} {(--prefix-addresses)} {(-dS)} {(DQ ($ Id.VSub_Number '$1'))})
                      ]
                    )
                )
              )
            }
          spids: [134]
        )
      ]
    )
    (command.WhileUntil
      keyword: (Token id:Id.KW_While val:while span_id:152)
      cond: [
        (command.Sentence
          child: (C {(read)} {(sym)} {(offset)})
          terminator: (Token id:Id.Op_Semi val:';' span_id:159)
        )
      ]
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:regexp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ('<') 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:175)
                          command_list: 
                            (command.CommandList
                              children: [(C {(escapefn_eregexp)} {(DQ ($ Id.VSub_DollarName '$sym'))})]
                            )
                        ) (Id.Lit_Other '\\') ('+') 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:186)
                          command_list: 
                            (command.CommandList
                              children: [
                                (C {(escapefn_eregexp)} {(DQ ($ Id.VSub_DollarName '$offset'))})
                              ]
                            )
                        ) ('>')
                      )
                    }
                  spids: [172]
                )
              ]
            )
            (command.Simple
              words: [{(echo)} {(DQ ('regexp: ') ($ Id.VSub_DollarName '$regexp'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:205)
                  fd: 1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:context)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:219)
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ Id.VSub_DollarName '$objdump_output'))})
                                    (C {(egrep)} {(-B200)} {(DQ ($ Id.VSub_DollarName '$regexp'))})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [217]
                )
              ]
            )
            (command.Simple
              words: [{(echo)} {(DQ ('context: ') ($ Id.VSub_DollarName '$context'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:251)
                  fd: 1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:source)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:261)
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ Id.VSub_DollarName '$context'))})
                                    (C {(egrep)} {(-v)} {(DQ ($ Id.VSub_DollarName '$line_regexp'))})
                                    (C {(tr)} {(SQ (Token id:Id.Lit_Chars val:'\\n' span_id:284))} 
                                      {(SQ (Token id:Id.Lit_Chars val:' ' span_id:288))}
                                    )
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [259]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:token)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:308)
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ Id.VSub_DollarName '$source'))})
                                    (C {(egrep)} 
                                      {
                                        (SQ 
                                          (Token
                                            id: Id.Lit_Chars
                                            val: '(new|sizeof)([^0-9a-z_]|$)'
                                            span_id: 321
                                          )
                                        )
                                      }
                                    )
                                    (C {(sed)} {(-r)} 
                                      {
                                        (SQ 
                                          (Token
                                            id: Id.Lit_Chars
                                            val: 's/.*(new|sizeof)([^0-9a-zA-Z_]|$)/\\2/'
                                            span_id: 331
                                          )
                                        )
                                      }
                                    )
                                    (C {(sed)} {(-r)} 
                                      {
                                        (SQ 
                                          (Token
                                            id: Id.Lit_Chars
                                            val: 's/[^0-9a-zA-Z_]*([a-zA-Z0-9_ \\*]+).*/\\1/'
                                            span_id: 341
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [306]
                )
              ]
            )
            (command.Simple
              words: [{(echo)} {(DQ ('token: ') ($ Id.VSub_DollarName '$token'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:358)
                  fd: 1
                  arg_word: {(2)}
                )
              ]
            )
            (C {(echo)} 
              {
                (DQ ('Guessed that site <') (${ Id.VSub_Name sym) ('+') (${ Id.VSub_Name offset) 
                  ('> allocated: ') (${ Id.VSub_Name token)
                )
              }
            )
          ]
        )
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_TLess val:'<<<' span_id:385)
          fd: -1
          arg_word: 
            {
              (DQ 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:387)
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ Id.VSub_DollarName '$allocation_sites'))})
                            (C {(sed)} {(-r)} 
                              {
                                (SQ 
                                  (Token
                                    id: Id.Lit_Chars
                                    val: 's/\\+(0x[0-9a-f]*)$/ \\1/'
                                    span_id: 402
                                  )
                                )
                              }
                            )
                          ]
                          negated: F
                        )
                      ]
                    )
                )
              )
            }
        )
      ]
    )
  ]
)