ah$e.smali

.class final Lrx/c/a/ah$e;
.super Lrx/i;
.source "SourceFile"

# interfaces
.implements Lrx/j;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lrx/c/a/ah;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x18
    name = "e"
.end annotation

.annotation system Ldalvik/annotation/Signature;
    value = {
        "<T:",
        "Ljava/lang/Object;",
        ">",
        "Lrx/i<",
        "TT;>;",
        "Lrx/j;"
    }
.end annotation


# static fields
.field static final d:[Lrx/c/a/ah$b;

.field static final e:[Lrx/c/a/ah$b;


# instance fields
.field final a:Lrx/c/a/ah$d;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lrx/c/a/ah$d<",
            "TT;>;"
        }
    .end annotation
.end field

.field final b:Lrx/c/a/f;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lrx/c/a/f<",
            "TT;>;"
        }
    .end annotation
.end field

.field c:Z

.field volatile f:Z

.field final g:Lrx/c/e/g;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lrx/c/e/g<",
            "Lrx/c/a/ah$b<",
            "TT;>;>;"
        }
    .end annotation
.end field

.field h:[Lrx/c/a/ah$b;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "[",
            "Lrx/c/a/ah$b<",
            "TT;>;"
        }
    .end annotation
.end field

.field volatile i:J

.field j:J

.field final k:Ljava/util/concurrent/atomic/AtomicBoolean;

.field l:Z

.field m:Z

.field n:J

.field o:J

.field volatile p:Lrx/e;

.field q:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lrx/c/a/ah$b<",
            "TT;>;>;"
        }
    .end annotation
.end field

.field r:Z


# direct methods
.method static constructor <clinit>()V
    .registers 2

    const/4 v0, 0x0

    new-array v1, v0, [Lrx/c/a/ah$b;

    .line 313
    sput-object v1, Lrx/c/a/ah$e;->d:[Lrx/c/a/ah$b;

    new-array v0, v0, [Lrx/c/a/ah$b;

    .line 315
    sput-object v0, Lrx/c/a/ah$e;->e:[Lrx/c/a/ah$b;

    return-void
.end method

.method public constructor <init>(Lrx/c/a/ah$d;)V
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lrx/c/a/ah$d<",
            "TT;>;)V"
        }
    .end annotation

    .line 352
    invoke-direct {p0}, Lrx/i;-><init>()V

    .line 353
    iput-object p1, p0, Lrx/c/a/ah$e;->a:Lrx/c/a/ah$d;

    .line 355
    invoke-static {}, Lrx/c/a/f;->a()Lrx/c/a/f;

    move-result-object p1

    iput-object p1, p0, Lrx/c/a/ah$e;->b:Lrx/c/a/f;

    .line 356
    new-instance p1, Lrx/c/e/g;

    invoke-direct {p1}, Lrx/c/e/g;-><init>()V

    iput-object p1, p0, Lrx/c/a/ah$e;->g:Lrx/c/e/g;

    .line 357
    sget-object p1, Lrx/c/a/ah$e;->d:[Lrx/c/a/ah$b;

    iput-object p1, p0, Lrx/c/a/ah$e;->h:[Lrx/c/a/ah$b;

    .line 358
    new-instance p1, Ljava/util/concurrent/atomic/AtomicBoolean;

    invoke-direct {p1}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>()V

    iput-object p1, p0, Lrx/c/a/ah$e;->k:Ljava/util/concurrent/atomic/AtomicBoolean;

    const-wide/16 v0, 0x0

    .line 361
    invoke-virtual {p0, v0, v1}, Lrx/c/a/ah$e;->a(J)V

    return-void
.end method

.method private a(JJ)V
    .registers 11

    .line 575
    iget-wide v0, p0, Lrx/c/a/ah$e;->o:J

    .line 576
    iget-object v2, p0, Lrx/c/a/ah$e;->p:Lrx/e;

    sub-long p3, p1, p3

    const-wide/16 v3, 0x0

    cmp-long v5, p3, v3

    if-eqz v5, :cond_2c

    .line 580
    iput-wide p1, p0, Lrx/c/a/ah$e;->n:J

    if-eqz v2, :cond_1f

    cmp-long p1, v0, v3

    if-eqz p1, :cond_1b

    .line 583
    iput-wide v3, p0, Lrx/c/a/ah$e;->o:J

    add-long/2addr v0, p3

    .line 584
    invoke-interface {v2, v0, v1}, Lrx/e;->a(J)V

    return-void

    .line 586
    :cond_1b
    invoke-interface {v2, p3, p4}, Lrx/e;->a(J)V

    return-void

    :cond_1f
    add-long/2addr v0, p3

    cmp-long p1, v0, v3

    if-gez p1, :cond_29

    const-wide v0, 0x7fffffffffffffffL

    .line 594
    :cond_29
    iput-wide v0, p0, Lrx/c/a/ah$e;->o:J

    return-void

    :cond_2c
    cmp-long p1, v0, v3

    if-eqz p1, :cond_37

    if-eqz v2, :cond_37

    .line 599
    iput-wide v3, p0, Lrx/c/a/ah$e;->o:J

    .line 601
    invoke-interface {v2, v0, v1}, Lrx/e;->a(J)V

    :cond_37
    return-void
.end method

.method private c()[Lrx/c/a/ah$b;
    .registers 6
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()[",
            "Lrx/c/a/ah$b<",
            "TT;>;"
        }
    .end annotation

    .line 564
    iget-object v0, p0, Lrx/c/a/ah$e;->g:Lrx/c/e/g;

    monitor-enter v0

    .line 565
    :try_start_3
    iget-object v1, p0, Lrx/c/a/ah$e;->g:Lrx/c/e/g;

    .line 1208
    iget-object v1, v1, Lrx/c/e/g;->e:[Ljava/lang/Object;

    .line 566
    array-length v2, v1

    .line 568
    new-array v3, v2, [Lrx/c/a/ah$b;

    const/4 v4, 0x0

    .line 569
    invoke-static {v1, v4, v3, v4, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 570
    monitor-exit v0

    return-object v3

    :catchall_10
    move-exception v1

    .line 571
    monitor-exit v0
    :try_end_12
    .catchall {:try_start_3 .. :try_end_12} :catchall_10

    throw v1
.end method

.method private d()V
    .registers 8

    .line 610
    iget-object v0, p0, Lrx/c/a/ah$e;->h:[Lrx/c/a/ah$b;

    .line 611
    iget-wide v1, p0, Lrx/c/a/ah$e;->j:J

    iget-wide v3, p0, Lrx/c/a/ah$e;->i:J

    const/4 v5, 0x0

    cmp-long v6, v1, v3

    if-eqz v6, :cond_28

    .line 612
    iget-object v1, p0, Lrx/c/a/ah$e;->g:Lrx/c/e/g;

    monitor-enter v1

    .line 613
    :try_start_e
    iget-object v0, p0, Lrx/c/a/ah$e;->h:[Lrx/c/a/ah$b;

    .line 616
    iget-object v2, p0, Lrx/c/a/ah$e;->g:Lrx/c/e/g;

    .line 2208
    iget-object v2, v2, Lrx/c/e/g;->e:[Ljava/lang/Object;

    .line 617
    array-length v3, v2

    .line 618
    array-length v4, v0

    if-eq v4, v3, :cond_1c

    .line 619
    new-array v0, v3, [Lrx/c/a/ah$b;

    .line 620
    iput-object v0, p0, Lrx/c/a/ah$e;->h:[Lrx/c/a/ah$b;

    .line 622
    :cond_1c
    invoke-static {v2, v5, v0, v5, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 623
    iget-wide v2, p0, Lrx/c/a/ah$e;->i:J

    iput-wide v2, p0, Lrx/c/a/ah$e;->j:J

    .line 624
    monitor-exit v1

    goto :goto_28

    :catchall_25
    move-exception v0

    monitor-exit v1
    :try_end_27
    .catchall {:try_start_e .. :try_end_27} :catchall_25

    throw v0

    .line 626
    :cond_28
    :goto_28
    iget-object v1, p0, Lrx/c/a/ah$e;->a:Lrx/c/a/ah$d;

    .line 627
    array-length v2, v0

    :goto_2b
    if-ge v5, v2, :cond_37

    aget-object v3, v0, v5

    if-eqz v3, :cond_34

    .line 629
    invoke-interface {v1, v3}, Lrx/c/a/ah$d;->a(Lrx/c/a/ah$b;)V

    :cond_34
    add-int/lit8 v5, v5, 0x1

    goto :goto_2b

    :cond_37
    return-void
.end method


# virtual methods
.method public final a()V
    .registers 2

    .line 466
    iget-boolean v0, p0, Lrx/c/a/ah$e;->c:Z

    if-nez v0, :cond_18

    const/4 v0, 0x1

    .line 467
    iput-boolean v0, p0, Lrx/c/a/ah$e;->c:Z

    .line 469
    :try_start_7
    iget-object v0, p0, Lrx/c/a/ah$e;->a:Lrx/c/a/ah$d;

    invoke-interface {v0}, Lrx/c/a/ah$d;->b()V

    .line 470
    invoke-direct {p0}, Lrx/c/a/ah$e;->d()V
    :try_end_f
    .catchall {:try_start_7 .. :try_end_f} :catchall_13

    .line 472
    invoke-virtual {p0}, Lrx/c/a/ah$e;->unsubscribe()V

    return-void

    :catchall_13
    move-exception v0

    invoke-virtual {p0}, Lrx/c/a/ah$e;->unsubscribe()V

    throw v0

    :cond_18
    return-void
.end method

.method public final a(Ljava/lang/Object;)V
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(TT;)V"
        }
    .end annotation

    .line 443
    iget-boolean v0, p0, Lrx/c/a/ah$e;->c:Z

    if-nez v0, :cond_c

    .line 444
    iget-object v0, p0, Lrx/c/a/ah$e;->a:Lrx/c/a/ah$d;

    invoke-interface {v0, p1}, Lrx/c/a/ah$d;->a(Ljava/lang/Object;)V

    .line 445
    invoke-direct {p0}, Lrx/c/a/ah$e;->d()V

    :cond_c
    return-void
.end method

.method public final a(Ljava/lang/Throwable;)V
    .registers 3

    .line 452
    iget-boolean v0, p0, Lrx/c/a/ah$e;->c:Z

    if-nez v0, :cond_18

    const/4 v0, 0x1

    .line 453
    iput-boolean v0, p0, Lrx/c/a/ah$e;->c:Z

    .line 455
    :try_start_7
    iget-object v0, p0, Lrx/c/a/ah$e;->a:Lrx/c/a/ah$d;

    invoke-interface {v0, p1}, Lrx/c/a/ah$d;->a(Ljava/lang/Throwable;)V

    .line 456
    invoke-direct {p0}, Lrx/c/a/ah$e;->d()V
    :try_end_f
    .catchall {:try_start_7 .. :try_end_f} :catchall_13

    .line 458
    invoke-virtual {p0}, Lrx/c/a/ah$e;->unsubscribe()V

    return-void

    :catchall_13
    move-exception p1

    invoke-virtual {p0}, Lrx/c/a/ah$e;->unsubscribe()V

    throw p1

    :cond_18
    return-void
.end method

.method public final a(Lrx/e;)V
    .registers 3

    .line 432
    iget-object v0, p0, Lrx/c/a/ah$e;->p:Lrx/e;

    if-nez v0, :cond_e

    .line 436
    iput-object p1, p0, Lrx/c/a/ah$e;->p:Lrx/e;

    const/4 p1, 0x0

    .line 437
    invoke-virtual {p0, p1}, Lrx/c/a/ah$e;->b(Lrx/c/a/ah$b;)V

    .line 438
    invoke-direct {p0}, Lrx/c/a/ah$e;->d()V

    return-void

    .line 434
    :cond_e
    new-instance p1, Ljava/lang/IllegalStateException;

    const-string v0, "Only a single producer can be set on a Subscriber."

    invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw p1
.end method

.method final a(Lrx/c/a/ah$b;)Z
    .registers 12
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lrx/c/a/ah$b<",
            "TT;>;)Z"
        }
    .end annotation

    .line 395
    iget-boolean v0, p0, Lrx/c/a/ah$e;->f:Z

    const/4 v1, 0x0

    if-eqz v0, :cond_6

    return v1

    .line 398
    :cond_6
    iget-object v0, p0, Lrx/c/a/ah$e;->g:Lrx/c/e/g;

    monitor-enter v0

    .line 399
    :try_start_9
    iget-boolean v2, p0, Lrx/c/a/ah$e;->f:Z

    if-eqz v2, :cond_f

    .line 400
    monitor-exit v0

    return v1

    .line 403
    :cond_f
    iget-object v1, p0, Lrx/c/a/ah$e;->g:Lrx/c/e/g;

    .line 1067
    iget-object v2, v1, Lrx/c/e/g;->e:[Ljava/lang/Object;

    .line 1068
    iget v3, v1, Lrx/c/e/g;->b:I

    .line 1070
    invoke-virtual {p1}, Ljava/lang/Object;->hashCode()I

    move-result v4

    invoke-static {v4}, Lrx/c/e/g;->a(I)I

    move-result v4

    and-int/2addr v4, v3

    .line 1071
    aget-object v5, v2, v4

    const/4 v6, 0x1

    if-eqz v5, :cond_36

    .line 1073
    invoke-virtual {v5, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-nez v5, :cond_7f

    :cond_29
    add-int/2addr v4, v6

    and-int/2addr v4, v3

    .line 1078
    aget-object v5, v2, v4

    if-eqz v5, :cond_36

    .line 1082
    invoke-virtual {v5, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_29

    goto :goto_7f

    .line 1087
    :cond_36
    aput-object p1, v2, v4

    .line 1088
    iget p1, v1, Lrx/c/e/g;->c:I

    add-int/2addr p1, v6

    iput p1, v1, Lrx/c/e/g;->c:I

    iget v2, v1, Lrx/c/e/g;->d:I

    if-lt p1, v2, :cond_7f

    .line 1167
    iget-object p1, v1, Lrx/c/e/g;->e:[Ljava/lang/Object;

    .line 1168
    array-length v2, p1

    shl-int/lit8 v3, v2, 0x1

    add-int/lit8 v4, v3, -0x1

    .line 1172
    new-array v5, v3, [Ljava/lang/Object;

    check-cast v5, [Ljava/lang/Object;

    .line 1175
    iget v7, v1, Lrx/c/e/g;->c:I

    :goto_4e
    add-int/lit8 v8, v7, -0x1

    if-eqz v7, :cond_73

    :cond_52
    add-int/lit8 v2, v2, -0x1

    .line 1176
    aget-object v7, p1, v2

    if-eqz v7, :cond_52

    .line 1177
    aget-object v7, p1, v2

    invoke-virtual {v7}, Ljava/lang/Object;->hashCode()I

    move-result v7

    invoke-static {v7}, Lrx/c/e/g;->a(I)I

    move-result v7

    and-int/2addr v7, v4

    .line 1178
    aget-object v9, v5, v7

    if-eqz v9, :cond_6d

    :cond_67
    add-int/2addr v7, v6

    and-int/2addr v7, v4

    .line 1181
    aget-object v9, v5, v7

    if-nez v9, :cond_67

    .line 1186
    :cond_6d
    aget-object v9, p1, v2

    aput-object v9, v5, v7

    move v7, v8

    goto :goto_4e

    .line 1189
    :cond_73
    iput v4, v1, Lrx/c/e/g;->b:I

    int-to-float p1, v3

    .line 1190
    iget v2, v1, Lrx/c/e/g;->a:F

    mul-float p1, p1, v2

    float-to-int p1, p1

    iput p1, v1, Lrx/c/e/g;->d:I

    .line 1191
    iput-object v5, v1, Lrx/c/e/g;->e:[Ljava/lang/Object;

    .line 404
    :cond_7f
    :goto_7f
    iget-wide v1, p0, Lrx/c/a/ah$e;->i:J

    const-wide/16 v3, 0x1

    add-long/2addr v1, v3

    iput-wide v1, p0, Lrx/c/a/ah$e;->i:J

    .line 405
    monitor-exit v0

    return v6

    :catchall_88
    move-exception p1

    monitor-exit v0
    :try_end_8a
    .catchall {:try_start_9 .. :try_end_8a} :catchall_88

    goto :goto_8c

    :goto_8b
    throw p1

    :goto_8c
    goto :goto_8b
.end method

.method final b(Lrx/c/a/ah$b;)V
    .registers 11
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lrx/c/a/ah$b<",
            "TT;>;)V"
        }
    .end annotation

    .line 482
    invoke-virtual {p0}, Lrx/c/a/ah$e;->isUnsubscribed()Z

    move-result v0

    if-eqz v0, :cond_7

    return-void

    .line 485
    :cond_7
    monitor-enter p0

    .line 486
    :try_start_8
    iget-boolean v0, p0, Lrx/c/a/ah$e;->l:Z

    const/4 v1, 0x1

    if-eqz v0, :cond_24

    if-eqz p1, :cond_1e

    .line 488
    iget-object v0, p0, Lrx/c/a/ah$e;->q:Ljava/util/List;

    if-nez v0, :cond_1a

    .line 490
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    .line 491
    iput-object v0, p0, Lrx/c/a/ah$e;->q:Ljava/util/List;

    .line 493
    :cond_1a
    invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    goto :goto_20

    .line 495
    :cond_1e
    iput-boolean v1, p0, Lrx/c/a/ah$e;->r:Z

    .line 497
    :goto_20
    iput-boolean v1, p0, Lrx/c/a/ah$e;->m:Z

    .line 498
    monitor-exit p0

    return-void

    .line 500
    :cond_24
    iput-boolean v1, p0, Lrx/c/a/ah$e;->l:Z

    .line 501
    monitor-exit p0
    :try_end_27
    .catchall {:try_start_8 .. :try_end_27} :catchall_b4

    .line 503
    iget-wide v0, p0, Lrx/c/a/ah$e;->n:J

    const/4 v2, 0x0

    if-eqz p1, :cond_37

    .line 507
    iget-object p1, p1, Lrx/c/a/ah$b;->d:Ljava/util/concurrent/atomic/AtomicLong;

    invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicLong;->get()J

    move-result-wide v3

    invoke-static {v0, v1, v3, v4}, Ljava/lang/Math;->max(JJ)J

    move-result-wide v3

    goto :goto_52

    .line 511
    :cond_37
    invoke-direct {p0}, Lrx/c/a/ah$e;->c()[Lrx/c/a/ah$b;

    move-result-object p1

    .line 512
    array-length v3, p1

    move-wide v4, v0

    const/4 v6, 0x0

    :goto_3e
    if-ge v6, v3, :cond_51

    aget-object v7, p1, v6

    if-eqz v7, :cond_4e

    .line 514
    iget-object v7, v7, Lrx/c/a/ah$b;->d:Ljava/util/concurrent/atomic/AtomicLong;

    invoke-virtual {v7}, Ljava/util/concurrent/atomic/AtomicLong;->get()J

    move-result-wide v7

    invoke-static {v4, v5, v7, v8}, Ljava/lang/Math;->max(JJ)J

    move-result-wide v4

    :cond_4e
    add-int/lit8 v6, v6, 0x1

    goto :goto_3e

    :cond_51
    move-wide v3, v4

    .line 519
    :goto_52
    invoke-direct {p0, v3, v4, v0, v1}, Lrx/c/a/ah$e;->a(JJ)V

    .line 523
    :goto_55
    invoke-virtual {p0}, Lrx/c/a/ah$e;->isUnsubscribed()Z

    move-result p1

    if-eqz p1, :cond_5c

    return-void

    .line 529
    :cond_5c
    monitor-enter p0

    .line 530
    :try_start_5d
    iget-boolean p1, p0, Lrx/c/a/ah$e;->m:Z

    if-nez p1, :cond_65

    .line 531
    iput-boolean v2, p0, Lrx/c/a/ah$e;->l:Z

    .line 532
    monitor-exit p0

    return-void

    .line 534
    :cond_65
    iput-boolean v2, p0, Lrx/c/a/ah$e;->m:Z

    .line 535
    iget-object p1, p0, Lrx/c/a/ah$e;->q:Ljava/util/List;

    const/4 v0, 0x0

    .line 536
    iput-object v0, p0, Lrx/c/a/ah$e;->q:Ljava/util/List;

    .line 537
    iget-boolean v0, p0, Lrx/c/a/ah$e;->r:Z

    .line 538
    iput-boolean v2, p0, Lrx/c/a/ah$e;->r:Z

    .line 539
    monitor-exit p0
    :try_end_71
    .catchall {:try_start_5d .. :try_end_71} :catchall_b1

    .line 541
    iget-wide v3, p0, Lrx/c/a/ah$e;->n:J

    if-eqz p1, :cond_91

    .line 545
    invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object p1

    move-wide v5, v3

    :goto_7a
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_92

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lrx/c/a/ah$b;

    .line 546
    iget-object v1, v1, Lrx/c/a/ah$b;->d:Ljava/util/concurrent/atomic/AtomicLong;

    invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicLong;->get()J

    move-result-wide v7

    invoke-static {v5, v6, v7, v8}, Ljava/lang/Math;->max(JJ)J

    move-result-wide v5

    goto :goto_7a

    :cond_91
    move-wide v5, v3

    :cond_92
    if-eqz v0, :cond_ad

    .line 551
    invoke-direct {p0}, Lrx/c/a/ah$e;->c()[Lrx/c/a/ah$b;

    move-result-object p1

    .line 552
    array-length v0, p1

    const/4 v1, 0x0

    :goto_9a
    if-ge v1, v0, :cond_ad

    aget-object v7, p1, v1

    if-eqz v7, :cond_aa

    .line 554
    iget-object v7, v7, Lrx/c/a/ah$b;->d:Ljava/util/concurrent/atomic/AtomicLong;

    invoke-virtual {v7}, Ljava/util/concurrent/atomic/AtomicLong;->get()J

    move-result-wide v7

    invoke-static {v5, v6, v7, v8}, Ljava/lang/Math;->max(JJ)J

    move-result-wide v5

    :cond_aa
    add-int/lit8 v1, v1, 0x1

    goto :goto_9a

    .line 559
    :cond_ad
    invoke-direct {p0, v5, v6, v3, v4}, Lrx/c/a/ah$e;->a(JJ)V

    goto :goto_55

    :catchall_b1
    move-exception p1

    .line 539
    :try_start_b2
    monitor-exit p0
    :try_end_b3
    .catchall {:try_start_b2 .. :try_end_b3} :catchall_b1

    throw p1

    :catchall_b4
    move-exception p1

    .line 501
    :try_start_b5
    monitor-exit p0
    :try_end_b6
    .catchall {:try_start_b5 .. :try_end_b6} :catchall_b4

    goto :goto_b8

    :goto_b7
    throw p1

    :goto_b8
    goto :goto_b7
.end method