   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 $-1
  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_rfind_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, $2], R[%r0, %r1], <CallDescr(rriii) EF=4> -> %i2
  67  -live- %i2
  67  int_return %i2
  69  ---
  69  L3:
  69  goto L4
  72  ---
  72  L1:
  72  goto L2
