ECPoint$AbstractF2m.smali
.class public abstract Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;
.super Lorg/spongycastle/math/ec/ECPoint;
.source "ECPoint.java"
# direct methods
.method protected constructor <init>(Lorg/spongycastle/math/ec/ECCurve;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;)V
.registers 4
.prologue
.line 1350
invoke-direct {p0, p1, p2, p3}, Lorg/spongycastle/math/ec/ECPoint;-><init>(Lorg/spongycastle/math/ec/ECCurve;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;)V
.line 1351
return-void
.end method
.method protected constructor <init>(Lorg/spongycastle/math/ec/ECCurve;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;[Lorg/spongycastle/math/ec/ECFieldElement;)V
.registers 5
.prologue
.line 1355
invoke-direct {p0, p1, p2, p3, p4}, Lorg/spongycastle/math/ec/ECPoint;-><init>(Lorg/spongycastle/math/ec/ECCurve;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;[Lorg/spongycastle/math/ec/ECFieldElement;)V
.line 1356
return-void
.end method
# virtual methods
.method protected satisfiesCurveEquation()Z
.registers 9
.prologue
const/4 v6, 0x0
.line 1360
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getCurve()Lorg/spongycastle/math/ec/ECCurve;
move-result-object v1
.line 1361
iget-object v3, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->x:Lorg/spongycastle/math/ec/ECFieldElement;
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECCurve;->getA()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECCurve;->getB()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
.line 1363
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECCurve;->getCoordinateSystem()I
move-result v4
.line 1364
const/4 v1, 0x6
if-ne v4, v1, :cond_79
.line 1366
iget-object v1, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->zs:[Lorg/spongycastle/math/ec/ECFieldElement;
aget-object v1, v1, v6
.line 1367
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECFieldElement;->isOne()Z
move-result v4
.line 1369
invoke-virtual {v3}, Lorg/spongycastle/math/ec/ECFieldElement;->isZero()Z
move-result v5
if-eqz v5, :cond_39
.line 1372
iget-object v2, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->y:Lorg/spongycastle/math/ec/ECFieldElement;
.line 1373
invoke-virtual {v2}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
.line 1374
if-nez v4, :cond_34
.line 1376
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
invoke-virtual {v0, v1}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
.line 1378
:cond_34
invoke-virtual {v2, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
.line 1423
:goto_38
return v0
.line 1381
:cond_39
iget-object v5, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->y:Lorg/spongycastle/math/ec/ECFieldElement;
invoke-virtual {v3}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v3
.line 1383
if-eqz v4, :cond_61
.line 1385
invoke-virtual {v5}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
invoke-virtual {v1, v5}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
invoke-virtual {v1, v2}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
.line 1386
invoke-virtual {v3}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
invoke-virtual {v2, v0}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
move-object v7, v1
move-object v1, v0
move-object v0, v7
.line 1395
:goto_58
invoke-virtual {v0, v3}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
.line 1396
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
goto :goto_38
.line 1390
:cond_61
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v4
invoke-virtual {v4}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v6
.line 1391
invoke-virtual {v5, v1}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
invoke-virtual {v1, v5, v2, v4}, Lorg/spongycastle/math/ec/ECFieldElement;->multiplyPlusProduct(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
.line 1393
invoke-virtual {v3, v0, v6}, Lorg/spongycastle/math/ec/ECFieldElement;->squarePlusProduct(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
move-object v7, v1
move-object v1, v0
move-object v0, v7
goto :goto_58
.line 1399
:cond_79
iget-object v1, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->y:Lorg/spongycastle/math/ec/ECFieldElement;
.line 1400
invoke-virtual {v1, v3}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v5
invoke-virtual {v5, v1}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
.line 1402
packed-switch v4, :pswitch_data_cc
.line 1419
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "unsupported coordinate system"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:pswitch_8e
move-object v7, v1
move-object v1, v0
move-object v0, v7
.line 1422
:goto_91
invoke-virtual {v3, v2}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
invoke-virtual {v3}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v3
invoke-virtual {v2, v3}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
invoke-virtual {v2, v1}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
.line 1423
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
goto :goto_38
.line 1408
:pswitch_a6
iget-object v4, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->zs:[Lorg/spongycastle/math/ec/ECFieldElement;
aget-object v4, v4, v6
.line 1409
invoke-virtual {v4}, Lorg/spongycastle/math/ec/ECFieldElement;->isOne()Z
move-result v5
if-nez v5, :cond_c8
.line 1411
invoke-virtual {v4}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v5
invoke-virtual {v4, v5}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v5
.line 1412
invoke-virtual {v1, v4}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
.line 1413
invoke-virtual {v2, v4}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
.line 1414
invoke-virtual {v0, v5}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
move-object v7, v1
move-object v1, v0
move-object v0, v7
.line 1415
goto :goto_91
:cond_c8
move-object v7, v1
move-object v1, v0
move-object v0, v7
goto :goto_91
.line 1402
:pswitch_data_cc
.packed-switch 0x0
:pswitch_8e
:pswitch_a6
.end packed-switch
.end method
.method public scaleX(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECPoint;
.registers 8
.prologue
const/4 v5, 0x0
.line 1428
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->isInfinity()Z
move-result v0
if-eqz v0, :cond_8
.line 1461
:goto_7
return-object p0
.line 1433
:cond_8
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getCurveCoordinateSystem()I
move-result v0
.line 1435
packed-switch v0, :pswitch_data_6e
.line 1461
invoke-super {p0, p1}, Lorg/spongycastle/math/ec/ECPoint;->scaleX(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECPoint;
move-result-object p0
goto :goto_7
.line 1440
:pswitch_14
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getRawXCoord()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getRawYCoord()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
.line 1442
invoke-virtual {v0, p1}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
.line 1443
invoke-virtual {v1, v0}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
invoke-virtual {v1, p1}, Lorg/spongycastle/math/ec/ECFieldElement;->divide(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
invoke-virtual {v1, v2}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
.line 1445
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getCurve()Lorg/spongycastle/math/ec/ECCurve;
move-result-object v2
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getRawZCoords()[Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v3
iget-boolean v4, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->withCompression:Z
invoke-virtual {v2, v0, v1, v3, v4}, Lorg/spongycastle/math/ec/ECCurve;->createRawPoint(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;[Lorg/spongycastle/math/ec/ECFieldElement;Z)Lorg/spongycastle/math/ec/ECPoint;
move-result-object p0
goto :goto_7
.line 1450
:pswitch_3b
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getRawXCoord()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getRawYCoord()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getRawZCoords()[Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
aget-object v2, v2, v5
.line 1453
invoke-virtual {p1}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v3
invoke-virtual {v0, v3}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v3
.line 1454
invoke-virtual {v1, v0}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
invoke-virtual {v0, v3}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
.line 1455
invoke-virtual {v2, p1}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
.line 1457
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getCurve()Lorg/spongycastle/math/ec/ECCurve;
move-result-object v2
const/4 v4, 0x1
new-array v4, v4, [Lorg/spongycastle/math/ec/ECFieldElement;
aput-object v1, v4, v5
iget-boolean v1, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->withCompression:Z
invoke-virtual {v2, v3, v0, v4, v1}, Lorg/spongycastle/math/ec/ECCurve;->createRawPoint(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;[Lorg/spongycastle/math/ec/ECFieldElement;Z)Lorg/spongycastle/math/ec/ECPoint;
move-result-object p0
goto :goto_7
.line 1435
nop
:pswitch_data_6e
.packed-switch 0x5
:pswitch_14
:pswitch_3b
.end packed-switch
.end method
.method public scaleY(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECPoint;
.registers 7
.prologue
.line 1468
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->isInfinity()Z
move-result v0
if-eqz v0, :cond_7
.line 1489
:goto_6
return-object p0
.line 1473
:cond_7
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getCurveCoordinateSystem()I
move-result v0
.line 1475
packed-switch v0, :pswitch_data_36
.line 1489
invoke-super {p0, p1}, Lorg/spongycastle/math/ec/ECPoint;->scaleY(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECPoint;
move-result-object p0
goto :goto_6
.line 1480
:pswitch_13
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getRawXCoord()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getRawYCoord()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
.line 1483
invoke-virtual {v1, v0}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
invoke-virtual {v1, p1}, Lorg/spongycastle/math/ec/ECFieldElement;->multiply(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
invoke-virtual {v1, v0}, Lorg/spongycastle/math/ec/ECFieldElement;->add(Lorg/spongycastle/math/ec/ECFieldElement;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
.line 1485
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getCurve()Lorg/spongycastle/math/ec/ECCurve;
move-result-object v2
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getRawZCoords()[Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v3
iget-boolean v4, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->withCompression:Z
invoke-virtual {v2, v0, v1, v3, v4}, Lorg/spongycastle/math/ec/ECCurve;->createRawPoint(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;[Lorg/spongycastle/math/ec/ECFieldElement;Z)Lorg/spongycastle/math/ec/ECPoint;
move-result-object p0
goto :goto_6
.line 1475
:pswitch_data_36
.packed-switch 0x5
:pswitch_13
:pswitch_13
.end packed-switch
.end method
.method public subtract(Lorg/spongycastle/math/ec/ECPoint;)Lorg/spongycastle/math/ec/ECPoint;
.registers 3
.prologue
.line 1496
invoke-virtual {p1}, Lorg/spongycastle/math/ec/ECPoint;->isInfinity()Z
move-result v0
if-eqz v0, :cond_7
.line 1502
:goto_6
return-object p0
:cond_7
invoke-virtual {p1}, Lorg/spongycastle/math/ec/ECPoint;->negate()Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
invoke-virtual {p0, v0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->add(Lorg/spongycastle/math/ec/ECPoint;)Lorg/spongycastle/math/ec/ECPoint;
move-result-object p0
goto :goto_6
.end method
.method public tau()Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;
.registers 7
.prologue
const/4 v5, 0x0
.line 1507
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->isInfinity()Z
move-result v0
if-eqz v0, :cond_9
move-object v0, p0
.line 1529
:goto_8
return-object v0
.line 1512
:cond_9
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getCurve()Lorg/spongycastle/math/ec/ECCurve;
move-result-object v0
.line 1513
invoke-virtual {v0}, Lorg/spongycastle/math/ec/ECCurve;->getCoordinateSystem()I
move-result v1
.line 1515
iget-object v2, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->x:Lorg/spongycastle/math/ec/ECFieldElement;
.line 1517
packed-switch v1, :pswitch_data_52
.line 1534
:pswitch_16
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "unsupported coordinate system"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 1522
:pswitch_1e
iget-object v1, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->y:Lorg/spongycastle/math/ec/ECFieldElement;
.line 1523
invoke-virtual {v2}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
iget-boolean v3, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->withCompression:Z
invoke-virtual {v0, v2, v1, v3}, Lorg/spongycastle/math/ec/ECCurve;->createRawPoint(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;Z)Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
check-cast v0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;
goto :goto_8
.line 1528
:pswitch_31
iget-object v1, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->y:Lorg/spongycastle/math/ec/ECFieldElement;
iget-object v3, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->zs:[Lorg/spongycastle/math/ec/ECFieldElement;
aget-object v3, v3, v5
.line 1529
invoke-virtual {v2}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
const/4 v4, 0x1
new-array v4, v4, [Lorg/spongycastle/math/ec/ECFieldElement;
.line 1530
invoke-virtual {v3}, Lorg/spongycastle/math/ec/ECFieldElement;->square()Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v3
aput-object v3, v4, v5
iget-boolean v3, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->withCompression:Z
.line 1529
invoke-virtual {v0, v2, v1, v4, v3}, Lorg/spongycastle/math/ec/ECCurve;->createRawPoint(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;[Lorg/spongycastle/math/ec/ECFieldElement;Z)Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
check-cast v0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;
goto :goto_8
.line 1517
nop
:pswitch_data_52
.packed-switch 0x0
:pswitch_1e
:pswitch_31
:pswitch_16
:pswitch_16
:pswitch_16
:pswitch_1e
:pswitch_31
.end packed-switch
.end method
.method public tauPow(I)Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;
.registers 8
.prologue
const/4 v5, 0x0
.line 1541
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->isInfinity()Z
move-result v0
if-eqz v0, :cond_9
move-object v0, p0
.line 1563
:goto_8
return-object v0
.line 1546
:cond_9
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->getCurve()Lorg/spongycastle/math/ec/ECCurve;
move-result-object v0
.line 1547
invoke-virtual {v0}, Lorg/spongycastle/math/ec/ECCurve;->getCoordinateSystem()I
move-result v1
.line 1549
iget-object v2, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->x:Lorg/spongycastle/math/ec/ECFieldElement;
.line 1551
packed-switch v1, :pswitch_data_52
.line 1568
:pswitch_16
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "unsupported coordinate system"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 1556
:pswitch_1e
iget-object v1, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->y:Lorg/spongycastle/math/ec/ECFieldElement;
.line 1557
invoke-virtual {v2, p1}, Lorg/spongycastle/math/ec/ECFieldElement;->squarePow(I)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
invoke-virtual {v1, p1}, Lorg/spongycastle/math/ec/ECFieldElement;->squarePow(I)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
iget-boolean v3, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->withCompression:Z
invoke-virtual {v0, v2, v1, v3}, Lorg/spongycastle/math/ec/ECCurve;->createRawPoint(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;Z)Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
check-cast v0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;
goto :goto_8
.line 1562
:pswitch_31
iget-object v1, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->y:Lorg/spongycastle/math/ec/ECFieldElement;
iget-object v3, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->zs:[Lorg/spongycastle/math/ec/ECFieldElement;
aget-object v3, v3, v5
.line 1563
invoke-virtual {v2, p1}, Lorg/spongycastle/math/ec/ECFieldElement;->squarePow(I)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
invoke-virtual {v1, p1}, Lorg/spongycastle/math/ec/ECFieldElement;->squarePow(I)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
const/4 v4, 0x1
new-array v4, v4, [Lorg/spongycastle/math/ec/ECFieldElement;
.line 1564
invoke-virtual {v3, p1}, Lorg/spongycastle/math/ec/ECFieldElement;->squarePow(I)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v3
aput-object v3, v4, v5
iget-boolean v3, p0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;->withCompression:Z
.line 1563
invoke-virtual {v0, v2, v1, v4, v3}, Lorg/spongycastle/math/ec/ECCurve;->createRawPoint(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;[Lorg/spongycastle/math/ec/ECFieldElement;Z)Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
check-cast v0, Lorg/spongycastle/math/ec/ECPoint$AbstractF2m;
goto :goto_8
.line 1551
nop
:pswitch_data_52
.packed-switch 0x0
:pswitch_1e
:pswitch_31
:pswitch_16
:pswitch_16
:pswitch_16
:pswitch_1e
:pswitch_31
.end packed-switch
.end method