code: def _pp_str(self):
          
          sa = []
          sa.append("IRSB {")
          if self.statements is not None:
              sa.append("   %s" % self.tyenv)
          sa.append("")
          if self.statements is not None:
              for i, s in enumerate(self.statements):
                  if isinstance(s, stmt.Put):
                      stmt_str = s.__str__(reg_name=self.arch.translate_register_name(s.offset, s.data.result_size(self.tyenv) // 8))
                  elif isinstance(s, stmt.WrTmp) and isinstance(s.data, expr.Get):
                      stmt_str = s.__str__(reg_name=self.arch.translate_register_name(s.data.offset, s.data.result_size(self.tyenv) // 8))
                  elif isinstance(s, stmt.Exit):
                      stmt_str = s.__str__(reg_name=self.arch.translate_register_name(s.offsIP, self.arch.bits // 8))
                  else:
                      stmt_str = s.__str__()
                  sa.append("   %02d | %s" % (i, stmt_str))
          else:
              sa.append("   Statements are omitted.")
          sa.append(
              "   NEXT: PUT(%s) = %s; %s" % (self.arch.translate_register_name(self.offsIP), self.next, self.jumpkind))
          sa.append("}")
          return '\n'.join(sa)
docs: Return the pretty-printed IRSB.
  
          :rtype: str