.class Lcom/ta/utdid2/android/utils/Base64$Encoder; .super Lcom/ta/utdid2/android/utils/Base64$Coder; .source "Base64.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/ta/utdid2/android/utils/Base64; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x8 name = "Encoder" .end annotation # static fields .field static final synthetic $assertionsDisabled:Z = false .field private static final ENCODE:[B .field private static final ENCODE_WEBSAFE:[B .field public static final LINE_GROUPS:I = 0x13 # instance fields .field private final alphabet:[B .field private count:I .field public final do_cr:Z .field public final do_newline:Z .field public final do_padding:Z .field private final tail:[B .field tailLen:I # direct methods .method static constructor ()V .registers 1 .line 562 const-class v0, Lcom/ta/utdid2/android/utils/Base64; const/16 v0, 0x40 .line 574 new-array v0, v0, [B fill-array-data v0, :array_16 sput-object v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->ENCODE:[B const/16 v0, 0x40 .line 585 new-array v0, v0, [B fill-array-data v0, :array_3a sput-object v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->ENCODE_WEBSAFE:[B return-void nop :array_16 .array-data 1 0x41t 0x42t 0x43t 0x44t 0x45t 0x46t 0x47t 0x48t 0x49t 0x4at 0x4bt 0x4ct 0x4dt 0x4et 0x4ft 0x50t 0x51t 0x52t 0x53t 0x54t 0x55t 0x56t 0x57t 0x58t 0x59t 0x5at 0x61t 0x62t 0x63t 0x64t 0x65t 0x66t 0x67t 0x68t 0x69t 0x6at 0x6bt 0x6ct 0x6dt 0x6et 0x6ft 0x70t 0x71t 0x72t 0x73t 0x74t 0x75t 0x76t 0x77t 0x78t 0x79t 0x7at 0x30t 0x31t 0x32t 0x33t 0x34t 0x35t 0x36t 0x37t 0x38t 0x39t 0x2bt 0x2ft .end array-data :array_3a .array-data 1 0x41t 0x42t 0x43t 0x44t 0x45t 0x46t 0x47t 0x48t 0x49t 0x4at 0x4bt 0x4ct 0x4dt 0x4et 0x4ft 0x50t 0x51t 0x52t 0x53t 0x54t 0x55t 0x56t 0x57t 0x58t 0x59t 0x5at 0x61t 0x62t 0x63t 0x64t 0x65t 0x66t 0x67t 0x68t 0x69t 0x6at 0x6bt 0x6ct 0x6dt 0x6et 0x6ft 0x70t 0x71t 0x72t 0x73t 0x74t 0x75t 0x76t 0x77t 0x78t 0x79t 0x7at 0x30t 0x31t 0x32t 0x33t 0x34t 0x35t 0x36t 0x37t 0x38t 0x39t 0x2dt 0x5ft .end array-data .end method .method public constructor (I[B)V .registers 6 .line 601 invoke-direct {p0}, Lcom/ta/utdid2/android/utils/Base64$Coder;->()V .line 602 iput-object p2, p0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->output:[B and-int/lit8 p2, p1, 0x1 const/4 v0, 0x0 const/4 v1, 0x1 if-nez p2, :cond_d move p2, v1 goto :goto_e :cond_d move p2, v0 .line 604 :goto_e iput-boolean p2, p0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_padding:Z and-int/lit8 p2, p1, 0x2 if-nez p2, :cond_16 move p2, v1 goto :goto_17 :cond_16 move p2, v0 .line 605 :goto_17 iput-boolean p2, p0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_newline:Z and-int/lit8 v2, p1, 0x4 if-eqz v2, :cond_1e goto :goto_1f :cond_1e move v1, v0 .line 606 :goto_1f iput-boolean v1, p0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_cr:Z and-int/lit8 p1, p1, 0x8 if-nez p1, :cond_28 .line 607 sget-object p1, Lcom/ta/utdid2/android/utils/Base64$Encoder;->ENCODE:[B goto :goto_2a :cond_28 sget-object p1, Lcom/ta/utdid2/android/utils/Base64$Encoder;->ENCODE_WEBSAFE:[B :goto_2a iput-object p1, p0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->alphabet:[B const/4 p1, 0x2 .line 609 new-array p1, p1, [B iput-object p1, p0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tail:[B .line 610 iput v0, p0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I if-eqz p2, :cond_38 const/16 p1, 0x13 goto :goto_39 :cond_38 const/4 p1, -0x1 .line 612 :goto_39 iput p1, p0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->count:I return-void .end method # virtual methods .method public maxOutputSize(I)I .registers 2 mul-int/lit8 p1, p1, 0x8 .line 620 div-int/lit8 p1, p1, 0x5 add-int/lit8 p1, p1, 0xa return p1 .end method .method public process([BIIZ)Z .registers 22 move-object/from16 v0, p0 .line 625 iget-object v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->alphabet:[B .line 626 iget-object v2, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->output:[B .line 628 iget v3, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->count:I add-int v4, p3, p2 .line 638 iget v5, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I const/4 v6, 0x2 const/4 v7, 0x1 const/4 v8, 0x0 const/4 v9, -0x1 if-eq v5, v7, :cond_31 if-eq v5, v6, :cond_15 goto :goto_50 :cond_15 add-int/lit8 v5, p2, 0x1 if-gt v5, v4, :cond_50 .line 657 iget-object v10, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tail:[B aget-byte v11, v10, v8 and-int/lit16 v11, v11, 0xff shl-int/lit8 v11, v11, 0x10 aget-byte v10, v10, v7 and-int/lit16 v10, v10, 0xff shl-int/lit8 v10, v10, 0x8 or-int/2addr v10, v11 aget-byte v11, p1, p2 and-int/lit16 v11, v11, 0xff or-int/2addr v10, v11 .line 659 iput v8, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I move v11, v5 goto :goto_53 :cond_31 add-int/lit8 v5, p2, 0x2 if-gt v5, v4, :cond_50 .line 647 iget-object v5, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tail:[B aget-byte v5, v5, v8 and-int/lit16 v5, v5, 0xff shl-int/lit8 v5, v5, 0x10 add-int/lit8 v10, p2, 0x1 aget-byte v11, p1, p2 and-int/lit16 v11, v11, 0xff shl-int/lit8 v11, v11, 0x8 or-int/2addr v5, v11 add-int/lit8 v11, p2, 0x2 aget-byte v10, p1, v10 and-int/lit16 v10, v10, 0xff or-int/2addr v10, v5 .line 649 iput v8, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I goto :goto_53 :cond_50 :goto_50 move/from16 v11, p2 move v10, v9 :goto_53 const/16 v12, 0xd const/4 v13, 0x4 const/16 v14, 0xa if-eq v10, v9, :cond_8f shr-int/lit8 v9, v10, 0x12 and-int/lit8 v9, v9, 0x3f .line 665 aget-byte v9, v1, v9 aput-byte v9, v2, v8 shr-int/lit8 v9, v10, 0xc and-int/lit8 v9, v9, 0x3f .line 666 aget-byte v9, v1, v9 aput-byte v9, v2, v7 shr-int/lit8 v9, v10, 0x6 and-int/lit8 v9, v9, 0x3f .line 667 aget-byte v9, v1, v9 aput-byte v9, v2, v6 and-int/lit8 v9, v10, 0x3f .line 668 aget-byte v9, v1, v9 const/4 v10, 0x3 aput-byte v9, v2, v10 add-int/lit8 v3, v3, -0x1 if-nez v3, :cond_8d .line 670 iget-boolean v3, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_cr:Z if-eqz v3, :cond_85 .line 671 aput-byte v12, v2, v13 const/4 v3, 0x5 goto :goto_86 :cond_85 move v3, v13 :goto_86 add-int/lit8 v9, v3, 0x1 .line 672 aput-byte v14, v2, v3 :goto_8a const/16 v3, 0x13 goto :goto_90 :cond_8d move v9, v13 goto :goto_90 :cond_8f move v9, v8 :goto_90 add-int/lit8 v10, v11, 0x3 if-gt v10, v4, :cond_e6 .line 683 aget-byte v15, p1, v11 and-int/lit16 v15, v15, 0xff shl-int/lit8 v15, v15, 0x10 add-int/lit8 v16, v11, 0x1 aget-byte v5, p1, v16 and-int/lit16 v5, v5, 0xff shl-int/lit8 v5, v5, 0x8 or-int/2addr v5, v15 add-int/lit8 v11, v11, 0x2 aget-byte v11, p1, v11 and-int/lit16 v11, v11, 0xff or-int/2addr v5, v11 shr-int/lit8 v11, v5, 0x12 and-int/lit8 v11, v11, 0x3f .line 685 aget-byte v11, v1, v11 aput-byte v11, v2, v9 add-int/lit8 v11, v9, 0x1 shr-int/lit8 v15, v5, 0xc and-int/lit8 v15, v15, 0x3f .line 686 aget-byte v15, v1, v15 aput-byte v15, v2, v11 add-int/lit8 v11, v9, 0x2 shr-int/lit8 v15, v5, 0x6 and-int/lit8 v15, v15, 0x3f .line 687 aget-byte v15, v1, v15 aput-byte v15, v2, v11 add-int/lit8 v11, v9, 0x3 and-int/lit8 v5, v5, 0x3f .line 688 aget-byte v5, v1, v5 aput-byte v5, v2, v11 add-int/lit8 v5, v9, 0x4 add-int/lit8 v3, v3, -0x1 if-nez v3, :cond_e3 .line 692 iget-boolean v3, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_cr:Z if-eqz v3, :cond_dd add-int/lit8 v9, v9, 0x5 .line 693 aput-byte v12, v2, v5 move v5, v9 :cond_dd add-int/lit8 v9, v5, 0x1 .line 694 aput-byte v14, v2, v5 move v11, v10 goto :goto_8a :cond_e3 move v9, v5 move v11, v10 goto :goto_90 :cond_e6 if-eqz p4, :cond_1b2 .line 705 iget v5, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I sub-int v10, v11, v5 add-int/lit8 v15, v4, -0x1 const/16 v16, 0x3d if-ne v10, v15, :cond_135 if-lez v5, :cond_fa .line 707 iget-object v4, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tail:[B aget-byte v4, v4, v8 move v8, v7 goto :goto_fc :cond_fa aget-byte v4, p1, v11 :goto_fc and-int/lit16 v4, v4, 0xff shl-int/2addr v4, v13 sub-int/2addr v5, v8 .line 708 iput v5, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I add-int/lit8 v5, v9, 0x1 shr-int/lit8 v6, v4, 0x6 and-int/lit8 v6, v6, 0x3f .line 709 aget-byte v6, v1, v6 aput-byte v6, v2, v9 add-int/lit8 v6, v9, 0x2 and-int/lit8 v4, v4, 0x3f .line 710 aget-byte v1, v1, v4 aput-byte v1, v2, v5 .line 711 iget-boolean v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_padding:Z if-eqz v1, :cond_120 add-int/lit8 v1, v9, 0x3 .line 712 aput-byte v16, v2, v6 add-int/lit8 v6, v9, 0x4 .line 713 aput-byte v16, v2, v1 .line 715 :cond_120 iget-boolean v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_newline:Z if-eqz v1, :cond_132 .line 716 iget-boolean v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_cr:Z if-eqz v1, :cond_12d add-int/lit8 v1, v6, 0x1 .line 717 aput-byte v12, v2, v6 move v6, v1 :cond_12d add-int/lit8 v1, v6, 0x1 .line 718 aput-byte v14, v2, v6 move v6, v1 :cond_132 move v9, v6 goto/16 :goto_1da :cond_135 sub-int v10, v11, v5 sub-int/2addr v4, v6 if-ne v10, v4, :cond_199 if-le v5, v7, :cond_142 .line 722 iget-object v4, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tail:[B aget-byte v4, v4, v8 move v8, v7 goto :goto_148 :cond_142 add-int/lit8 v4, v11, 0x1 aget-byte v10, p1, v11 move v11, v4 move v4, v10 :goto_148 and-int/lit16 v4, v4, 0xff shl-int/2addr v4, v14 if-lez v5, :cond_154 iget-object v10, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tail:[B add-int/lit8 v11, v8, 0x1 aget-byte v8, v10, v8 goto :goto_158 :cond_154 aget-byte v10, p1, v11 move v11, v8 move v8, v10 :goto_158 and-int/lit16 v8, v8, 0xff shl-int/lit8 v6, v8, 0x2 or-int/2addr v4, v6 sub-int/2addr v5, v11 .line 724 iput v5, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I add-int/lit8 v5, v9, 0x1 shr-int/lit8 v6, v4, 0xc and-int/lit8 v6, v6, 0x3f .line 725 aget-byte v6, v1, v6 aput-byte v6, v2, v9 add-int/lit8 v6, v9, 0x2 shr-int/lit8 v8, v4, 0x6 and-int/lit8 v8, v8, 0x3f .line 726 aget-byte v8, v1, v8 aput-byte v8, v2, v5 add-int/lit8 v5, v9, 0x3 and-int/lit8 v4, v4, 0x3f .line 727 aget-byte v1, v1, v4 aput-byte v1, v2, v6 .line 728 iget-boolean v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_padding:Z if-eqz v1, :cond_185 add-int/lit8 v9, v9, 0x4 .line 729 aput-byte v16, v2, v5 move v5, v9 .line 731 :cond_185 iget-boolean v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_newline:Z if-eqz v1, :cond_197 .line 732 iget-boolean v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_cr:Z if-eqz v1, :cond_192 add-int/lit8 v1, v5, 0x1 .line 733 aput-byte v12, v2, v5 move v5, v1 :cond_192 add-int/lit8 v1, v5, 0x1 .line 734 aput-byte v14, v2, v5 move v5, v1 :cond_197 move v9, v5 goto :goto_1da .line 736 :cond_199 iget-boolean v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_newline:Z if-eqz v1, :cond_1da if-lez v9, :cond_1da const/16 v1, 0x13 if-eq v3, v1, :cond_1da .line 737 iget-boolean v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->do_cr:Z if-eqz v1, :cond_1ac add-int/lit8 v1, v9, 0x1 .line 738 aput-byte v12, v2, v9 move v9, v1 :cond_1ac add-int/lit8 v1, v9, 0x1 .line 739 aput-byte v14, v2, v9 move v9, v1 goto :goto_1da :cond_1b2 add-int/lit8 v1, v4, -0x1 if-ne v11, v1, :cond_1c3 .line 749 iget-object v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tail:[B iget v2, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I add-int/lit8 v4, v2, 0x1 iput v4, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I aget-byte v4, p1, v11 aput-byte v4, v1, v2 goto :goto_1da :cond_1c3 sub-int/2addr v4, v6 if-ne v11, v4, :cond_1da .line 751 iget-object v1, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tail:[B iget v2, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I add-int/lit8 v4, v2, 0x1 iput v4, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I aget-byte v5, p1, v11 aput-byte v5, v1, v2 add-int/2addr v2, v6 .line 752 iput v2, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->tailLen:I add-int/2addr v11, v7 aget-byte v2, p1, v11 aput-byte v2, v1, v4 .line 756 :cond_1da :goto_1da iput v9, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->op:I .line 757 iput v3, v0, Lcom/ta/utdid2/android/utils/Base64$Encoder;->count:I return v7 .end method