187 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Smali
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			187 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Smali
		
	
	
		
			Executable File
		
	
	
| .class public LnegLong;
 | |
| .super Ljava/lang/Object;
 | |
| .source "negLong.java"
 | |
| # static fields
 | |
| .field public static final N:I = 0x64
 | |
| .field public static i:I
 | |
| # direct methods
 | |
| .method static constructor <clinit>()V
 | |
|     .registers 1
 | |
|     .prologue
 | |
|     .line 5
 | |
|     const/16 v0, 0x44da
 | |
|     sput v0, LnegLong;->i:I
 | |
|     return-void
 | |
| .end method
 | |
| .method public constructor <init>()V
 | |
|     .registers 1
 | |
|     .prologue
 | |
|     .line 1
 | |
|     invoke-direct {p0}, Ljava/lang/Object;-><init>()V
 | |
|     return-void
 | |
| .end method
 | |
| .method public static checkSum1([S)J
 | |
|     .registers 7
 | |
|     .prologue
 | |
|     .line 14
 | |
|     array-length v3, p0
 | |
|     .line 15
 | |
|     const-wide/16 v0, 0x0
 | |
|     .line 16
 | |
|     const/4 v2, 0x0
 | |
|     :goto_4
 | |
|     if-ge v2, v3, :cond_d
 | |
|     .line 17
 | |
|     aget-short v4, p0, v2
 | |
|     int-to-long v4, v4
 | |
|     add-long/2addr v0, v4
 | |
|     .line 16
 | |
|     add-int/lit8 v2, v2, 0x1
 | |
|     goto :goto_4
 | |
|     .line 18
 | |
|     :cond_d
 | |
|     return-wide v0
 | |
| .end method
 | |
| .method public static init1([SS)V
 | |
|     .registers 4
 | |
|     .prologue
 | |
|     .line 8
 | |
|     array-length v1, p0
 | |
|     .line 9
 | |
|     const/4 v0, 0x0
 | |
|     :goto_2
 | |
|     if-ge v0, v1, :cond_9
 | |
|     .line 10
 | |
|     aput-short p1, p0, v0
 | |
|     .line 9
 | |
|     add-int/lit8 v0, v0, 0x1
 | |
|     goto :goto_2
 | |
|     .line 11
 | |
|     :cond_9
 | |
|     return-void
 | |
| .end method
 | |
| .method public static main([Ljava/lang/String;)V
 | |
|     .registers 6
 | |
|     .prologue
 | |
|     .line 50
 | |
|     invoke-static {}, LnegLong;->negLong()J
 | |
|     move-result-wide v0
 | |
|     .line 51
 | |
|     sget-object v2, Ljava/lang/System;->out:Ljava/io/PrintStream;
 | |
|     new-instance v3, Ljava/lang/StringBuilder;
 | |
|     invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
 | |
|     const-string v4, "nbp ztw p = "
 | |
|     invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
 | |
|     move-result-object v3
 | |
|     invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
 | |
|     move-result-object v0
 | |
|     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
 | |
|     move-result-object v0
 | |
|     invoke-virtual {v2, v0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
 | |
|     .line 52
 | |
|     return-void
 | |
| .end method
 | |
| .method public static negLong()J
 | |
|     .registers 17
 | |
|     .prologue
 | |
|     .line 23
 | |
|     const-wide v1, -0x4c4a1f4aa9b1db83L
 | |
|     .line 24
 | |
|     const v7, -0x3f727efa
 | |
|     .line 25
 | |
|     const/16 v4, -0x284b
 | |
|     const v3, 0xdc01
 | |
|     .line 26
 | |
|     const/16 v0, 0x64
 | |
|     new-array v8, v0, [S
 | |
|     .line 28
 | |
|     const/16 v0, 0x1c60
 | |
|     invoke-static {v8, v0}, LnegLong;->init1([SS)V
 | |
|     .line 29
 | |
|     const/4 v0, 0x2
 | |
|     move v6, v0
 | |
|     :goto_18
 | |
|     const/16 v0, 0x56
 | |
|     if-ge v6, v0, :cond_64
 | |
|     .line 30
 | |
|     const/4 v0, 0x1
 | |
|     move v5, v0
 | |
|     move v0, v3
 | |
|     move-wide v15, v1
 | |
|     move-wide v2, v15
 | |
|     :goto_21
 | |
|     if-ge v5, v6, :cond_5d
 | |
|     .line 31
 | |
|     int-to-float v0, v4
 | |
|     neg-float v1, v7
 | |
|     add-float/2addr v0, v1
 | |
|     float-to-int v1, v0
 | |
|     .line 32
 | |
|     const/4 v0, 0x1
 | |
|     move v4, v1
 | |
|     move-wide v15, v2
 | |
|     move-wide v1, v15
 | |
|     .line 33
 | |
|     :goto_2b
 | |
|     add-int/lit8 v3, v0, 0x1
 | |
|     const/16 v0, 0x1b
 | |
|     if-ge v3, v0, :cond_3a
 | |
|     .line 35
 | |
|     int-to-long v9, v5
 | |
|     mul-long v0, v9, v1
 | |
|     neg-long v1, v0
 | |
|     .line 38
 | |
|     sget v0, LnegLong;->i:I
 | |
|     move v4, v0
 | |
|     move v0, v3
 | |
|     goto :goto_2b
 | |
|     .line 40
 | |
|     :cond_3a
 | |
|     aget-short v0, v8, v6
 | |
|     int-to-double v9, v0
 | |
|     long-to-double v11, v1
 | |
|     const-wide v13, 0x403f9851eb851eb8L
 | |
|     sub-double/2addr v11, v13
 | |
|     add-double/2addr v9, v11
 | |
|     double-to-int v0, v9
 | |
|     int-to-short v0, v0
 | |
|     aput-short v0, v8, v6
 | |
|     .line 41
 | |
|     const/4 v0, 0x2
 | |
|     :goto_4a
 | |
|     const/16 v9, 0x43
 | |
|     if-ge v0, v9, :cond_56
 | |
|     .line 42
 | |
|     neg-long v9, v1
 | |
|     const-wide/16 v11, 0x1
 | |
|     or-long/2addr v9, v11
 | |
|     add-long/2addr v1, v9
 | |
|     .line 41
 | |
|     add-int/lit8 v0, v0, 0x1
 | |
|     goto :goto_4a
 | |
|     .line 30
 | |
|     :cond_56
 | |
|     add-int/lit8 v0, v5, 0x1
 | |
|     move v5, v0
 | |
|     move v0, v3
 | |
|     move-wide v15, v1
 | |
|     move-wide v2, v15
 | |
|     goto :goto_21
 | |
|     .line 29
 | |
|     :cond_5d
 | |
|     add-int/lit8 v1, v6, 0x1
 | |
|     move v6, v1
 | |
|     move-wide v15, v2
 | |
|     move-wide v1, v15
 | |
|     move v3, v0
 | |
|     goto :goto_18
 | |
|     .line 45
 | |
|     :cond_64
 | |
|     invoke-static {v8}, LnegLong;->checkSum1([S)J
 | |
|     move-result-wide v0
 | |
|     int-to-long v2, v3
 | |
|     add-long/2addr v0, v2
 | |
|     .line 46
 | |
|     return-wide v0
 | |
| .end method
 |