DistinguishedNameParser.smali 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449
  1. .class final Lokhttp3/internal/tls/DistinguishedNameParser;
  2. .super Ljava/lang/Object;
  3. .source ""
  4. # instance fields
  5. .field private beg:I
  6. .field private chars:[C
  7. .field private cur:I
  8. .field private final dn:Ljava/lang/String;
  9. .field private end:I
  10. .field private final length:I
  11. .field private pos:I
  12. # direct methods
  13. .method constructor <init>(Ljavax/security/auth/x500/X500Principal;)V
  14. .locals 1
  15. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  16. const-string v0, "RFC2253"
  17. invoke-virtual {p1, v0}, Ljavax/security/auth/x500/X500Principal;->getName(Ljava/lang/String;)Ljava/lang/String;
  18. move-result-object p1
  19. iput-object p1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  20. iget-object p1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  21. invoke-virtual {p1}, Ljava/lang/String;->length()I
  22. move-result p1
  23. iput p1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  24. return-void
  25. .end method
  26. .method private escapedAV()Ljava/lang/String;
  27. .locals 8
  28. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  29. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  30. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  31. :cond_0
  32. :goto_0
  33. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  34. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  35. if-lt v0, v1, :cond_1
  36. new-instance v0, Ljava/lang/String;
  37. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  38. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  39. iget v3, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  40. sub-int/2addr v3, v2
  41. invoke-direct {v0, v1, v2, v3}, Ljava/lang/String;-><init>([CII)V
  42. return-object v0
  43. :cond_1
  44. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  45. aget-char v2, v1, v0
  46. const/16 v3, 0x2c
  47. const/16 v4, 0x2b
  48. const/16 v5, 0x3b
  49. const/16 v6, 0x20
  50. if-eq v2, v6, :cond_4
  51. if-eq v2, v5, :cond_3
  52. const/16 v5, 0x5c
  53. if-eq v2, v5, :cond_2
  54. if-eq v2, v4, :cond_3
  55. if-eq v2, v3, :cond_3
  56. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  57. add-int/lit8 v3, v2, 0x1
  58. iput v3, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  59. aget-char v3, v1, v0
  60. aput-char v3, v1, v2
  61. :goto_1
  62. add-int/lit8 v0, v0, 0x1
  63. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  64. goto :goto_0
  65. :cond_2
  66. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  67. add-int/lit8 v2, v0, 0x1
  68. iput v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  69. invoke-direct {p0}, Lokhttp3/internal/tls/DistinguishedNameParser;->getEscaped()C
  70. move-result v2
  71. aput-char v2, v1, v0
  72. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  73. goto :goto_1
  74. :cond_3
  75. new-instance v0, Ljava/lang/String;
  76. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  77. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  78. iget v3, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  79. sub-int/2addr v3, v2
  80. invoke-direct {v0, v1, v2, v3}, Ljava/lang/String;-><init>([CII)V
  81. return-object v0
  82. :cond_4
  83. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  84. iput v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->cur:I
  85. add-int/lit8 v0, v0, 0x1
  86. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  87. add-int/lit8 v0, v2, 0x1
  88. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  89. aput-char v6, v1, v2
  90. :goto_2
  91. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  92. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  93. if-ge v0, v1, :cond_5
  94. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  95. aget-char v2, v1, v0
  96. if-ne v2, v6, :cond_5
  97. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  98. add-int/lit8 v7, v2, 0x1
  99. iput v7, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  100. aput-char v6, v1, v2
  101. add-int/lit8 v0, v0, 0x1
  102. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  103. goto :goto_2
  104. :cond_5
  105. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  106. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  107. if-eq v0, v1, :cond_6
  108. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  109. aget-char v2, v1, v0
  110. if-eq v2, v3, :cond_6
  111. aget-char v2, v1, v0
  112. if-eq v2, v4, :cond_6
  113. aget-char v0, v1, v0
  114. if-ne v0, v5, :cond_0
  115. :cond_6
  116. new-instance v0, Ljava/lang/String;
  117. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  118. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  119. iget v3, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->cur:I
  120. sub-int/2addr v3, v2
  121. invoke-direct {v0, v1, v2, v3}, Ljava/lang/String;-><init>([CII)V
  122. return-object v0
  123. .end method
  124. .method private getByte(I)I
  125. .locals 9
  126. add-int/lit8 v0, p1, 0x1
  127. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  128. const-string v2, "Malformed DN: "
  129. if-ge v0, v1, :cond_6
  130. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  131. aget-char p1, v1, p1
  132. const/16 v1, 0x46
  133. const/16 v3, 0x66
  134. const/16 v4, 0x41
  135. const/16 v5, 0x39
  136. const/16 v6, 0x61
  137. const/16 v7, 0x30
  138. if-lt p1, v7, :cond_0
  139. if-gt p1, v5, :cond_0
  140. sub-int/2addr p1, v7
  141. goto :goto_0
  142. :cond_0
  143. if-lt p1, v6, :cond_1
  144. if-gt p1, v3, :cond_1
  145. add-int/lit8 p1, p1, -0x57
  146. goto :goto_0
  147. :cond_1
  148. if-lt p1, v4, :cond_5
  149. if-gt p1, v1, :cond_5
  150. add-int/lit8 p1, p1, -0x37
  151. :goto_0
  152. iget-object v8, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  153. aget-char v0, v8, v0
  154. if-lt v0, v7, :cond_2
  155. if-gt v0, v5, :cond_2
  156. sub-int/2addr v0, v7
  157. goto :goto_1
  158. :cond_2
  159. if-lt v0, v6, :cond_3
  160. if-gt v0, v3, :cond_3
  161. add-int/lit8 v0, v0, -0x57
  162. goto :goto_1
  163. :cond_3
  164. if-lt v0, v4, :cond_4
  165. if-gt v0, v1, :cond_4
  166. add-int/lit8 v0, v0, -0x37
  167. :goto_1
  168. shl-int/lit8 p1, p1, 0x4
  169. add-int/2addr p1, v0
  170. return p1
  171. :cond_4
  172. new-instance p1, Ljava/lang/IllegalStateException;
  173. new-instance v0, Ljava/lang/StringBuilder;
  174. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  175. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  176. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  177. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  178. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  179. move-result-object v0
  180. invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  181. throw p1
  182. :cond_5
  183. new-instance p1, Ljava/lang/IllegalStateException;
  184. new-instance v0, Ljava/lang/StringBuilder;
  185. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  186. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  187. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  188. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  189. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  190. move-result-object v0
  191. invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  192. throw p1
  193. :cond_6
  194. new-instance p1, Ljava/lang/IllegalStateException;
  195. new-instance v0, Ljava/lang/StringBuilder;
  196. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  197. invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  198. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  199. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  200. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  201. move-result-object v0
  202. invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  203. throw p1
  204. .end method
  205. .method private getEscaped()C
  206. .locals 3
  207. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  208. add-int/lit8 v0, v0, 0x1
  209. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  210. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  211. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  212. if-eq v0, v1, :cond_1
  213. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  214. aget-char v0, v1, v0
  215. const/16 v1, 0x20
  216. if-eq v0, v1, :cond_0
  217. const/16 v1, 0x25
  218. if-eq v0, v1, :cond_0
  219. const/16 v1, 0x5c
  220. if-eq v0, v1, :cond_0
  221. const/16 v1, 0x5f
  222. if-eq v0, v1, :cond_0
  223. const/16 v1, 0x22
  224. if-eq v0, v1, :cond_0
  225. const/16 v1, 0x23
  226. if-eq v0, v1, :cond_0
  227. packed-switch v0, :pswitch_data_0
  228. packed-switch v0, :pswitch_data_1
  229. invoke-direct {p0}, Lokhttp3/internal/tls/DistinguishedNameParser;->getUTF8()C
  230. move-result v0
  231. return v0
  232. :cond_0
  233. :pswitch_0
  234. iget-object v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  235. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  236. aget-char v0, v0, v1
  237. return v0
  238. :cond_1
  239. new-instance v0, Ljava/lang/IllegalStateException;
  240. new-instance v1, Ljava/lang/StringBuilder;
  241. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  242. const-string v2, "Unexpected end of DN: "
  243. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  244. iget-object v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  245. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  246. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  247. move-result-object v1
  248. invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  249. throw v0
  250. nop
  251. :pswitch_data_0
  252. .packed-switch 0x2a
  253. :pswitch_0
  254. :pswitch_0
  255. :pswitch_0
  256. .end packed-switch
  257. :pswitch_data_1
  258. .packed-switch 0x3b
  259. :pswitch_0
  260. :pswitch_0
  261. :pswitch_0
  262. :pswitch_0
  263. .end packed-switch
  264. .end method
  265. .method private getUTF8()C
  266. .locals 9
  267. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  268. invoke-direct {p0, v0}, Lokhttp3/internal/tls/DistinguishedNameParser;->getByte(I)I
  269. move-result v0
  270. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  271. const/4 v2, 0x1
  272. add-int/2addr v1, v2
  273. iput v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  274. const/16 v1, 0x80
  275. if-ge v0, v1, :cond_0
  276. int-to-char v0, v0
  277. return v0
  278. :cond_0
  279. const/16 v3, 0xc0
  280. const/16 v4, 0x3f
  281. if-lt v0, v3, :cond_7
  282. const/16 v3, 0xf7
  283. if-gt v0, v3, :cond_7
  284. const/16 v3, 0xdf
  285. if-gt v0, v3, :cond_1
  286. and-int/lit8 v0, v0, 0x1f
  287. const/4 v3, 0x1
  288. goto :goto_0
  289. :cond_1
  290. const/16 v3, 0xef
  291. if-gt v0, v3, :cond_2
  292. const/4 v3, 0x2
  293. and-int/lit8 v0, v0, 0xf
  294. goto :goto_0
  295. :cond_2
  296. const/4 v3, 0x3
  297. and-int/lit8 v0, v0, 0x7
  298. :goto_0
  299. const/4 v5, 0x0
  300. :goto_1
  301. if-ge v5, v3, :cond_6
  302. iget v6, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  303. add-int/2addr v6, v2
  304. iput v6, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  305. iget v6, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  306. iget v7, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  307. if-eq v6, v7, :cond_5
  308. iget-object v7, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  309. aget-char v7, v7, v6
  310. const/16 v8, 0x5c
  311. if-eq v7, v8, :cond_3
  312. goto :goto_2
  313. :cond_3
  314. add-int/lit8 v6, v6, 0x1
  315. iput v6, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  316. iget v6, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  317. invoke-direct {p0, v6}, Lokhttp3/internal/tls/DistinguishedNameParser;->getByte(I)I
  318. move-result v6
  319. iget v7, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  320. add-int/2addr v7, v2
  321. iput v7, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  322. and-int/lit16 v7, v6, 0xc0
  323. if-eq v7, v1, :cond_4
  324. return v4
  325. :cond_4
  326. shl-int/lit8 v0, v0, 0x6
  327. and-int/lit8 v6, v6, 0x3f
  328. add-int/2addr v0, v6
  329. add-int/lit8 v5, v5, 0x1
  330. goto :goto_1
  331. :cond_5
  332. :goto_2
  333. return v4
  334. :cond_6
  335. int-to-char v0, v0
  336. return v0
  337. :cond_7
  338. return v4
  339. .end method
  340. .method private hexAV()Ljava/lang/String;
  341. .locals 6
  342. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  343. add-int/lit8 v1, v0, 0x4
  344. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  345. const-string v3, "Unexpected end of DN: "
  346. if-ge v1, v2, :cond_7
  347. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  348. :goto_0
  349. add-int/lit8 v0, v0, 0x1
  350. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  351. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  352. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  353. if-eq v0, v1, :cond_3
  354. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  355. aget-char v2, v1, v0
  356. const/16 v4, 0x2b
  357. if-eq v2, v4, :cond_3
  358. aget-char v2, v1, v0
  359. const/16 v4, 0x2c
  360. if-eq v2, v4, :cond_3
  361. aget-char v2, v1, v0
  362. const/16 v4, 0x3b
  363. if-ne v2, v4, :cond_0
  364. goto :goto_2
  365. :cond_0
  366. aget-char v2, v1, v0
  367. const/16 v4, 0x20
  368. if-ne v2, v4, :cond_1
  369. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  370. :goto_1
  371. add-int/lit8 v0, v0, 0x1
  372. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  373. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  374. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  375. if-ge v0, v1, :cond_4
  376. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  377. aget-char v1, v1, v0
  378. if-ne v1, v4, :cond_4
  379. goto :goto_1
  380. :cond_1
  381. aget-char v2, v1, v0
  382. const/16 v5, 0x41
  383. if-lt v2, v5, :cond_2
  384. aget-char v2, v1, v0
  385. const/16 v5, 0x46
  386. if-gt v2, v5, :cond_2
  387. aget-char v2, v1, v0
  388. add-int/2addr v2, v4
  389. int-to-char v2, v2
  390. aput-char v2, v1, v0
  391. :cond_2
  392. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  393. goto :goto_0
  394. :cond_3
  395. :goto_2
  396. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  397. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  398. :cond_4
  399. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  400. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  401. sub-int/2addr v0, v1
  402. const/4 v2, 0x5
  403. if-lt v0, v2, :cond_6
  404. and-int/lit8 v2, v0, 0x1
  405. if-eqz v2, :cond_6
  406. div-int/lit8 v2, v0, 0x2
  407. new-array v2, v2, [B
  408. const/4 v3, 0x0
  409. add-int/lit8 v1, v1, 0x1
  410. :goto_3
  411. array-length v4, v2
  412. if-ge v3, v4, :cond_5
  413. invoke-direct {p0, v1}, Lokhttp3/internal/tls/DistinguishedNameParser;->getByte(I)I
  414. move-result v4
  415. int-to-byte v4, v4
  416. aput-byte v4, v2, v3
  417. add-int/lit8 v1, v1, 0x2
  418. add-int/lit8 v3, v3, 0x1
  419. goto :goto_3
  420. :cond_5
  421. new-instance v1, Ljava/lang/String;
  422. iget-object v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  423. iget v3, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  424. invoke-direct {v1, v2, v3, v0}, Ljava/lang/String;-><init>([CII)V
  425. return-object v1
  426. :cond_6
  427. new-instance v0, Ljava/lang/IllegalStateException;
  428. new-instance v1, Ljava/lang/StringBuilder;
  429. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  430. invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  431. iget-object v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  432. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  433. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  434. move-result-object v1
  435. invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  436. throw v0
  437. :cond_7
  438. new-instance v0, Ljava/lang/IllegalStateException;
  439. new-instance v1, Ljava/lang/StringBuilder;
  440. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  441. invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  442. iget-object v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  443. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  444. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  445. move-result-object v1
  446. invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  447. goto :goto_5
  448. :goto_4
  449. throw v0
  450. :goto_5
  451. goto :goto_4
  452. .end method
  453. .method private nextAT()Ljava/lang/String;
  454. .locals 6
  455. :goto_0
  456. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  457. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  458. const/16 v2, 0x20
  459. if-ge v0, v1, :cond_0
  460. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  461. aget-char v1, v1, v0
  462. if-ne v1, v2, :cond_0
  463. add-int/lit8 v0, v0, 0x1
  464. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  465. goto :goto_0
  466. :cond_0
  467. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  468. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  469. if-ne v0, v1, :cond_1
  470. const/4 v0, 0x0
  471. return-object v0
  472. :cond_1
  473. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  474. :goto_1
  475. add-int/lit8 v0, v0, 0x1
  476. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  477. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  478. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  479. const/16 v3, 0x3d
  480. if-ge v0, v1, :cond_2
  481. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  482. aget-char v4, v1, v0
  483. if-eq v4, v3, :cond_2
  484. aget-char v1, v1, v0
  485. if-eq v1, v2, :cond_2
  486. goto :goto_1
  487. :cond_2
  488. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  489. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  490. const-string v4, "Unexpected end of DN: "
  491. if-ge v0, v1, :cond_b
  492. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  493. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  494. aget-char v0, v1, v0
  495. if-ne v0, v2, :cond_5
  496. :goto_2
  497. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  498. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  499. if-ge v0, v1, :cond_3
  500. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  501. aget-char v5, v1, v0
  502. if-eq v5, v3, :cond_3
  503. aget-char v1, v1, v0
  504. if-ne v1, v2, :cond_3
  505. add-int/lit8 v0, v0, 0x1
  506. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  507. goto :goto_2
  508. :cond_3
  509. iget-object v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  510. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  511. aget-char v0, v0, v1
  512. if-ne v0, v3, :cond_4
  513. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  514. if-eq v1, v0, :cond_4
  515. goto :goto_3
  516. :cond_4
  517. new-instance v0, Ljava/lang/IllegalStateException;
  518. new-instance v1, Ljava/lang/StringBuilder;
  519. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  520. invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  521. iget-object v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  522. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  523. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  524. move-result-object v1
  525. invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  526. throw v0
  527. :cond_5
  528. :goto_3
  529. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  530. :goto_4
  531. add-int/lit8 v0, v0, 0x1
  532. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  533. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  534. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  535. if-ge v0, v1, :cond_6
  536. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  537. aget-char v1, v1, v0
  538. if-ne v1, v2, :cond_6
  539. goto :goto_4
  540. :cond_6
  541. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  542. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  543. sub-int/2addr v0, v1
  544. const/4 v2, 0x4
  545. if-le v0, v2, :cond_a
  546. iget-object v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  547. add-int/lit8 v3, v1, 0x3
  548. aget-char v3, v0, v3
  549. const/16 v4, 0x2e
  550. if-ne v3, v4, :cond_a
  551. aget-char v3, v0, v1
  552. const/16 v4, 0x4f
  553. if-eq v3, v4, :cond_7
  554. aget-char v0, v0, v1
  555. const/16 v1, 0x6f
  556. if-ne v0, v1, :cond_a
  557. :cond_7
  558. iget-object v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  559. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  560. add-int/lit8 v3, v1, 0x1
  561. aget-char v3, v0, v3
  562. const/16 v4, 0x49
  563. if-eq v3, v4, :cond_8
  564. add-int/lit8 v1, v1, 0x1
  565. aget-char v0, v0, v1
  566. const/16 v1, 0x69
  567. if-ne v0, v1, :cond_a
  568. :cond_8
  569. iget-object v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  570. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  571. add-int/lit8 v3, v1, 0x2
  572. aget-char v3, v0, v3
  573. const/16 v4, 0x44
  574. if-eq v3, v4, :cond_9
  575. add-int/lit8 v1, v1, 0x2
  576. aget-char v0, v0, v1
  577. const/16 v1, 0x64
  578. if-ne v0, v1, :cond_a
  579. :cond_9
  580. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  581. add-int/2addr v0, v2
  582. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  583. :cond_a
  584. new-instance v0, Ljava/lang/String;
  585. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  586. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  587. iget v3, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  588. sub-int/2addr v3, v2
  589. invoke-direct {v0, v1, v2, v3}, Ljava/lang/String;-><init>([CII)V
  590. return-object v0
  591. :cond_b
  592. new-instance v0, Ljava/lang/IllegalStateException;
  593. new-instance v1, Ljava/lang/StringBuilder;
  594. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  595. invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  596. iget-object v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  597. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  598. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  599. move-result-object v1
  600. invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  601. goto :goto_6
  602. :goto_5
  603. throw v0
  604. :goto_6
  605. goto :goto_5
  606. .end method
  607. .method private quotedAV()Ljava/lang/String;
  608. .locals 4
  609. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  610. add-int/lit8 v0, v0, 0x1
  611. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  612. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  613. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  614. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  615. :goto_0
  616. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  617. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  618. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  619. if-eq v0, v1, :cond_3
  620. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  621. aget-char v2, v1, v0
  622. const/16 v3, 0x22
  623. if-ne v2, v3, :cond_1
  624. :goto_1
  625. add-int/lit8 v0, v0, 0x1
  626. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  627. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  628. iget v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  629. if-ge v0, v1, :cond_0
  630. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  631. aget-char v1, v1, v0
  632. const/16 v2, 0x20
  633. if-ne v1, v2, :cond_0
  634. goto :goto_1
  635. :cond_0
  636. new-instance v0, Ljava/lang/String;
  637. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  638. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  639. iget v3, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  640. sub-int/2addr v3, v2
  641. invoke-direct {v0, v1, v2, v3}, Ljava/lang/String;-><init>([CII)V
  642. return-object v0
  643. :cond_1
  644. aget-char v2, v1, v0
  645. const/16 v3, 0x5c
  646. if-ne v2, v3, :cond_2
  647. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  648. invoke-direct {p0}, Lokhttp3/internal/tls/DistinguishedNameParser;->getEscaped()C
  649. move-result v2
  650. aput-char v2, v1, v0
  651. goto :goto_2
  652. :cond_2
  653. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  654. aget-char v0, v1, v0
  655. aput-char v0, v1, v2
  656. :goto_2
  657. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  658. add-int/lit8 v0, v0, 0x1
  659. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  660. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  661. add-int/lit8 v0, v0, 0x1
  662. goto :goto_0
  663. :cond_3
  664. new-instance v0, Ljava/lang/IllegalStateException;
  665. new-instance v1, Ljava/lang/StringBuilder;
  666. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  667. const-string v2, "Unexpected end of DN: "
  668. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  669. iget-object v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  670. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  671. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  672. move-result-object v1
  673. invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  674. goto :goto_4
  675. :goto_3
  676. throw v0
  677. :goto_4
  678. goto :goto_3
  679. .end method
  680. # virtual methods
  681. .method public findMostSpecific(Ljava/lang/String;)Ljava/lang/String;
  682. .locals 8
  683. const/4 v0, 0x0
  684. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  685. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->beg:I
  686. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->end:I
  687. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->cur:I
  688. iget-object v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  689. invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C
  690. move-result-object v0
  691. iput-object v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  692. invoke-direct {p0}, Lokhttp3/internal/tls/DistinguishedNameParser;->nextAT()Ljava/lang/String;
  693. move-result-object v0
  694. const/4 v1, 0x0
  695. if-nez v0, :cond_0
  696. return-object v1
  697. :cond_0
  698. :goto_0
  699. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  700. iget v3, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  701. if-ne v2, v3, :cond_1
  702. return-object v1
  703. :cond_1
  704. iget-object v3, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  705. aget-char v2, v3, v2
  706. const/16 v3, 0x22
  707. const/16 v4, 0x3b
  708. const/16 v5, 0x2c
  709. const/16 v6, 0x2b
  710. if-eq v2, v3, :cond_4
  711. const/16 v3, 0x23
  712. if-eq v2, v3, :cond_3
  713. if-eq v2, v6, :cond_2
  714. if-eq v2, v5, :cond_2
  715. if-eq v2, v4, :cond_2
  716. invoke-direct {p0}, Lokhttp3/internal/tls/DistinguishedNameParser;->escapedAV()Ljava/lang/String;
  717. move-result-object v2
  718. goto :goto_1
  719. :cond_2
  720. const-string v2, ""
  721. goto :goto_1
  722. :cond_3
  723. invoke-direct {p0}, Lokhttp3/internal/tls/DistinguishedNameParser;->hexAV()Ljava/lang/String;
  724. move-result-object v2
  725. goto :goto_1
  726. :cond_4
  727. invoke-direct {p0}, Lokhttp3/internal/tls/DistinguishedNameParser;->quotedAV()Ljava/lang/String;
  728. move-result-object v2
  729. :goto_1
  730. invoke-virtual {p1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
  731. move-result v0
  732. if-eqz v0, :cond_5
  733. return-object v2
  734. :cond_5
  735. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  736. iget v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->length:I
  737. if-lt v0, v2, :cond_6
  738. return-object v1
  739. :cond_6
  740. iget-object v2, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->chars:[C
  741. aget-char v3, v2, v0
  742. const-string v7, "Malformed DN: "
  743. if-eq v3, v5, :cond_9
  744. aget-char v3, v2, v0
  745. if-ne v3, v4, :cond_7
  746. goto :goto_2
  747. :cond_7
  748. aget-char v0, v2, v0
  749. if-ne v0, v6, :cond_8
  750. goto :goto_2
  751. :cond_8
  752. new-instance p1, Ljava/lang/IllegalStateException;
  753. new-instance v0, Ljava/lang/StringBuilder;
  754. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  755. invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  756. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  757. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  758. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  759. move-result-object v0
  760. invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  761. throw p1
  762. :cond_9
  763. :goto_2
  764. iget v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  765. add-int/lit8 v0, v0, 0x1
  766. iput v0, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->pos:I
  767. invoke-direct {p0}, Lokhttp3/internal/tls/DistinguishedNameParser;->nextAT()Ljava/lang/String;
  768. move-result-object v0
  769. if-eqz v0, :cond_a
  770. goto :goto_0
  771. :cond_a
  772. new-instance p1, Ljava/lang/IllegalStateException;
  773. new-instance v0, Ljava/lang/StringBuilder;
  774. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  775. invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  776. iget-object v1, p0, Lokhttp3/internal/tls/DistinguishedNameParser;->dn:Ljava/lang/String;
  777. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  778. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  779. move-result-object v0
  780. invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  781. goto :goto_4
  782. :goto_3
  783. throw p1
  784. :goto_4
  785. goto :goto_3
  786. .end method