   0  -live- %i0, %i1, %r0, %r1
   0  goto_if_not_int_lt %i0, $0, L1
   5  int_copy $0 -> %i0
   8  L2:
   8  strlen %r0 -> %i2
  11  -live- %i0, %i1, %i2, %r0, %r1
  11  goto_if_not_int_gt %i1, %i2, L3
  16  strlen %r0 -> %i1
  19  L4:
  19  int_sub %i1, %i0 -> %i2
  23  -live- %i0, %i1, %i2, %r0, %r1
  23  goto_if_not_int_lt %i2, $0, L5
  28  int_return $0
  30  ---
  30  L5:
  30  strlen %r1 -> %i2
  33  -live- %i0, %i1, %i2, %r0, %r1
  33  goto_if_not_int_eq %i2, $1, L6
  38  strgetitem %r1, $0 -> %i2
  42  residual_call_ir_i $<* fn ll_count_char__rpy_stringPtr_Char_Signed_Signed>, I[%i2, %i0, %i1], R[%r0], <CallDescr(riii) EF=0> -> %i2
  53  int_return %i2
  55  ---
  55  L6:
  55  residual_call_ir_i $<* fn ll_search__rpy_stringPtr_rpy_stringPtr_Signed_Signed_Signed>, I[%i0, %i1, $0], R[%r0, %r1], <CallDescr(rriii) EF=4> -> %i2
  67  -live- %i2
  67  -live- %i2
  67  goto_if_not_int_lt %i2, $0, L7
  72  int_return $0
  74  ---
  74  L7:
  74  int_return %i2
  76  ---
  76  L3:
  76  goto L4
  79  ---
  79  L1:
  79  goto L2
