Source/sources/gnu/bytecode/CodeAttr.java
public void processFixups() {
        /*
            r32 = this;
            r0 = r32
            int r0 = r0.fixup_count
            r29 = r0
            if (r29 > 0) goto L_0x0009
        L_0x0008:
            return
        L_0x0009:
            r5 = 0
            r0 = r32
            int r8 = r0.fixup_count
            r29 = 9
            r30 = 0
            r31 = 0
            r0 = r32
            r1 = r29
            r2 = r30
            r3 = r31
            r0.fixupAdd(r1, r2, r3)
            r7 = 0
        L_0x0020:
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            r19 = r29[r7]
            r9 = r19 & 15
            int r19 = r19 >> 4
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r10 = r29[r7]
            switch(r9) {
                case 0: goto L_0x0041;
                case 1: goto L_0x0047;
                case 2: goto L_0x0052;
                case 3: goto L_0x0041;
                case 4: goto L_0x0055;
                case 5: goto L_0x008c;
                case 6: goto L_0x009e;
                case 7: goto L_0x0037;
                case 8: goto L_0x0041;
                case 9: goto L_0x00c4;
                case 10: goto L_0x00b0;
                case 11: goto L_0x003f;
                case 12: goto L_0x0037;
                case 13: goto L_0x0037;
                case 14: goto L_0x0044;
                default: goto L_0x0037;
            }
        L_0x0037:
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "unexpected fixup"
            r29.<init>(r30)
            throw r29
        L_0x003f:
            int r7 = r7 + 2
        L_0x0041:
            int r7 = r7 + 1
            goto L_0x0020
        L_0x0044:
            int r7 = r7 + 1
            goto L_0x0041
        L_0x0047:
            int r0 = r10.position
            r29 = r0
            int r29 = r29 + r5
            r0 = r29
            r10.position = r0
            goto L_0x0041
        L_0x0052:
            int r5 = r5 + 3
            goto L_0x0041
        L_0x0055:
            int r0 = r10.first_fixup
            r29 = r0
            int r30 = r7 + 1
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x008c
            int r29 = r7 + 1
            r0 = r32
            r1 = r29
            int r29 = r0.fixupOffset(r1)
            int r30 = r19 + 3
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x008c
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r30 = r19 << 4
            r30 = r30 | 8
            r29[r7] = r30
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r30 = 0
            r29[r7] = r30
            int r5 = r5 + -3
            goto L_0x0041
        L_0x008c:
            r0 = r32
            int r0 = r0.f48PC
            r29 = r0
            r30 = 32768(0x8000, float:4.5918E-41)
            r0 = r29
            r1 = r30
            if (r0 < r1) goto L_0x0041
            int r5 = r5 + 2
            goto L_0x0041
        L_0x009e:
            r0 = r32
            int r0 = r0.f48PC
            r29 = r0
            r30 = 32768(0x8000, float:4.5918E-41)
            r0 = r29
            r1 = r30
            if (r0 < r1) goto L_0x0041
            int r5 = r5 + 5
            goto L_0x0041
        L_0x00b0:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r30 = r0
            int r31 = r7 + 1
            r30 = r30[r31]
            r29[r8] = r30
            r8 = r19
        L_0x00c4:
            int r29 = r7 + 1
            r0 = r32
            int r0 = r0.fixup_count
            r30 = r0
            r0 = r29
            r1 = r30
            if (r0 < r1) goto L_0x0129
            r0 = r32
            int r4 = r0.f48PC
        L_0x00d6:
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r30 = r4 << 4
            r30 = r30 | 9
            r29[r7] = r30
            if (r10 != 0) goto L_0x0142
            r0 = r32
            int r15 = r0.f48PC
            r5 = 0
            r7 = 0
        L_0x00ea:
            r0 = r32
            int r0 = r0.fixup_count
            r29 = r0
            r0 = r29
            if (r7 >= r0) goto L_0x0225
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            r19 = r29[r7]
            r9 = r19 & 15
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r10 = r29[r7]
            if (r10 == 0) goto L_0x0150
            int r0 = r10.position
            r29 = r0
            if (r29 >= 0) goto L_0x0150
            java.lang.Error r29 = new java.lang.Error
            java.lang.StringBuilder r30 = new java.lang.StringBuilder
            r30.<init>()
            java.lang.String r31 = "undefined label "
            java.lang.StringBuilder r30 = r30.append(r31)
            r0 = r30
            java.lang.StringBuilder r30 = r0.append(r10)
            java.lang.String r30 = r30.toString()
            r29.<init>(r30)
            throw r29
        L_0x0129:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            int r30 = r7 + 1
            r29 = r29[r30]
            r0 = r29
            int r0 = r0.first_fixup
            r29 = r0
            r0 = r32
            r1 = r29
            int r4 = r0.fixupOffset(r1)
            goto L_0x00d6
        L_0x0142:
            int r7 = r10.first_fixup
            r0 = r32
            int r18 = r0.fixupOffset(r7)
            int r29 = r4 + r5
            int r5 = r29 - r18
            goto L_0x0020
        L_0x0150:
            if (r10 == 0) goto L_0x01ab
            r29 = 4
            r0 = r29
            if (r9 < r0) goto L_0x01ab
            r29 = 7
            r0 = r29
            if (r9 > r0) goto L_0x01ab
            int r0 = r10.first_fixup
            r29 = r0
            int r29 = r29 + 1
            r0 = r32
            int r0 = r0.fixup_count
            r30 = r0
            r0 = r29
            r1 = r30
            if (r0 >= r1) goto L_0x01ab
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r0 = r10.first_fixup
            r30 = r0
            int r30 = r30 + 1
            r29 = r29[r30]
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r30 = r0
            int r0 = r10.first_fixup
            r31 = r0
            r30 = r30[r31]
            r30 = r30 & 15
            r30 = r30 | 4
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x01ab
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            int r0 = r10.first_fixup
            r30 = r0
            int r30 = r30 + 1
            r10 = r29[r30]
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29[r7] = r10
            goto L_0x0150
        L_0x01ab:
            int r19 = r19 >> 4
            switch(r9) {
                case 0: goto L_0x01ca;
                case 1: goto L_0x01d6;
                case 2: goto L_0x01dd;
                case 3: goto L_0x01ca;
                case 4: goto L_0x01e8;
                case 5: goto L_0x01e8;
                case 6: goto L_0x01e8;
                case 7: goto L_0x01b0;
                case 8: goto L_0x01d1;
                case 9: goto L_0x0223;
                case 10: goto L_0x01b0;
                case 11: goto L_0x01b8;
                case 12: goto L_0x01b0;
                case 13: goto L_0x01b0;
                case 14: goto L_0x01ce;
                default: goto L_0x01b0;
            }
        L_0x01b0:
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "unexpected fixup"
            r29.<init>(r30)
            throw r29
        L_0x01b8:
            int r7 = r7 + 2
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29 = r29[r7]
            int r30 = r19 + r5
            r0 = r30
            r1 = r29
            r1.position = r0
        L_0x01ca:
            int r7 = r7 + 1
            goto L_0x00ea
        L_0x01ce:
            int r7 = r7 + 1
            goto L_0x01ca
        L_0x01d1:
            int r5 = r5 + -3
            int r15 = r15 + -3
            goto L_0x01ca
        L_0x01d6:
            int r29 = r19 + r5
            r0 = r29
            r10.position = r0
            goto L_0x01ca
        L_0x01dd:
            int r29 = r19 + r5
            int r29 = 3 - r29
            r24 = r29 & 3
            int r5 = r5 + r24
            int r15 = r15 + r24
            goto L_0x01ca
        L_0x01e8:
            int r0 = r10.position
            r29 = r0
            int r30 = r19 + r5
            int r27 = r29 - r30
            r0 = r27
            short r0 = (short) r0
            r29 = r0
            r0 = r29
            r1 = r27
            if (r0 != r1) goto L_0x0208
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r30 = r19 << 4
            r30 = r30 | 7
            r29[r7] = r30
            goto L_0x01ca
        L_0x0208:
            r29 = 6
            r0 = r29
            if (r9 != r0) goto L_0x021d
            r29 = 5
        L_0x0210:
            int r5 = r5 + r29
            r29 = 6
            r0 = r29
            if (r9 != r0) goto L_0x0220
            r29 = 5
        L_0x021a:
            int r15 = r15 + r29
            goto L_0x01ca
        L_0x021d:
            r29 = 2
            goto L_0x0210
        L_0x0220:
            r29 = 2
            goto L_0x021a
        L_0x0223:
            if (r10 != 0) goto L_0x0257
        L_0x0225:
            byte[] r12 = new byte[r15]
            r26 = -1
            r13 = 0
            r16 = 0
            r29 = 0
            r0 = r32
            r1 = r29
            int r17 = r0.fixupOffset(r1)
            r20 = -1
            r25 = 0
            r21 = 0
            r22 = r21
            r14 = r13
        L_0x023f:
            r0 = r22
            r1 = r17
            if (r0 >= r1) goto L_0x0265
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            int r21 = r22 + 1
            byte r29 = r29[r22]
            r12[r14] = r29
            r22 = r21
            r14 = r13
            goto L_0x023f
        L_0x0257:
            int r7 = r10.first_fixup
            r0 = r32
            int r18 = r0.fixupOffset(r7)
            int r29 = r19 + r5
            int r5 = r29 - r18
            goto L_0x00ea
        L_0x0265:
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            r29 = r29[r16]
            r9 = r29 & 15
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r10 = r29[r16]
            if (r25 == 0) goto L_0x0294
            r0 = r25
            int r0 = r0.position
            r29 = r0
            r0 = r29
            if (r0 >= r14) goto L_0x0294
            r0 = r32
            gnu.bytecode.StackMapTableAttr r0 = r0.stackMap
            r29 = r0
            r0 = r29
            r1 = r25
            r2 = r32
            r0.emitStackMapEntry(r1, r2)
            r25 = 0
        L_0x0294:
            if (r25 == 0) goto L_0x02a8
            r0 = r25
            int r0 = r0.position
            r29 = r0
            r0 = r29
            if (r0 <= r14) goto L_0x02a8
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "labels out of order"
            r29.<init>(r30)
            throw r29
        L_0x02a8:
            switch(r9) {
                case 0: goto L_0x02b3;
                case 1: goto L_0x02c5;
                case 2: goto L_0x0386;
                case 3: goto L_0x02ab;
                case 4: goto L_0x0318;
                case 5: goto L_0x0318;
                case 6: goto L_0x0318;
                case 7: goto L_0x02eb;
                case 8: goto L_0x02e7;
                case 9: goto L_0x04b4;
                case 10: goto L_0x02ab;
                case 11: goto L_0x042b;
                case 12: goto L_0x02ab;
                case 13: goto L_0x02ab;
                case 14: goto L_0x047d;
                default: goto L_0x02ab;
            }
        L_0x02ab:
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "unexpected fixup"
            r29.<init>(r30)
            throw r29
        L_0x02b3:
            r21 = r22
            r13 = r14
        L_0x02b6:
            int r16 = r16 + 1
            r0 = r32
            r1 = r16
            int r17 = r0.fixupOffset(r1)
            r22 = r21
            r14 = r13
            goto L_0x023f
        L_0x02c5:
            r0 = r32
            gnu.bytecode.StackMapTableAttr r0 = r0.stackMap
            r29 = r0
            if (r29 == 0) goto L_0x0526
            if (r10 == 0) goto L_0x0526
            gnu.bytecode.Type[] r0 = r10.stackTypes
            r29 = r0
            if (r29 == 0) goto L_0x0526
            boolean r0 = r10.needsStackMapEntry
            r29 = r0
            if (r29 == 0) goto L_0x0526
            r0 = r32
            r1 = r25
            gnu.bytecode.Label r25 = r0.mergeLabels(r1, r10)
            r21 = r22
            r13 = r14
            goto L_0x02b6
        L_0x02e7:
            int r21 = r22 + 3
            r13 = r14
            goto L_0x02b6
        L_0x02eb:
            int r0 = r10.position
            r29 = r0
            int r5 = r29 - r14
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            byte r29 = r29[r22]
            r12[r14] = r29
            int r14 = r13 + 1
            int r29 = r5 >> 8
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r13 = r14 + 1
            r0 = r5 & 255(0xff, float:3.57E-43)
            r29 = r0
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r21 = r22 + 3
            goto L_0x02b6
        L_0x0318:
            int r0 = r10.position
            r29 = r0
            int r5 = r29 - r14
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            byte r23 = r29[r22]
            r29 = 6
            r0 = r29
            if (r9 != r0) goto L_0x037d
            r0 = r32
            r1 = r23
            byte r23 = r0.invert_opcode(r1)
            int r13 = r14 + 1
            r12[r14] = r23
            int r14 = r13 + 1
            r29 = 0
            r12[r13] = r29
            int r13 = r14 + 1
            r29 = 8
            r12[r14] = r29
            r23 = -56
        L_0x0346:
            int r14 = r13 + 1
            r12[r13] = r23
            int r13 = r14 + 1
            int r29 = r5 >> 24
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            int r29 = r5 >> 16
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r13 = r14 + 1
            int r29 = r5 >> 8
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            r0 = r5 & 255(0xff, float:3.57E-43)
            r29 = r0
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r21 = r22 + 3
            r13 = r14
            goto L_0x02b6
        L_0x037d:
            int r29 = r23 + 33
            r0 = r29
            byte r0 = (byte) r0
            r23 = r0
            r13 = r14
            goto L_0x0346
        L_0x0386:
            int r29 = 3 - r14
            r24 = r29 & 3
            r28 = r14
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            int r21 = r22 + 1
            byte r29 = r29[r22]
            r12[r14] = r29
            r14 = r13
        L_0x039b:
            int r24 = r24 + -1
            if (r24 < 0) goto L_0x0523
            int r13 = r14 + 1
            r29 = 0
            r12[r14] = r29
            r14 = r13
            goto L_0x039b
        L_0x03a7:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29 = r29[r16]
            r0 = r29
            int r0 = r0.position
            r29 = r0
            int r5 = r29 - r28
            int r13 = r14 + 1
            int r29 = r5 >> 24
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            int r29 = r5 >> 16
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r13 = r14 + 1
            int r29 = r5 >> 8
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            r0 = r5 & 255(0xff, float:3.57E-43)
            r29 = r0
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r21 = r22 + 4
            r13 = r14
        L_0x03e8:
            r0 = r32
            int r0 = r0.fixup_count
            r29 = r0
            r0 = r16
            r1 = r29
            if (r0 >= r1) goto L_0x02b6
            int r29 = r16 + 1
            r0 = r32
            r1 = r29
            int r29 = r0.fixupKind(r1)
            r30 = 3
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x02b6
            int r16 = r16 + 1
            r0 = r32
            r1 = r16
            int r19 = r0.fixupOffset(r1)
            r22 = r21
            r14 = r13
        L_0x0413:
            r0 = r22
            r1 = r19
            if (r0 >= r1) goto L_0x03a7
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            int r21 = r22 + 1
            byte r29 = r29[r22]
            r12[r14] = r29
            r22 = r21
            r14 = r13
            goto L_0x0413
        L_0x042b:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            int r30 = r16 + 2
            r10 = r29[r30]
            int r29 = r16 + 1
            r0 = r32
            r1 = r29
            int r6 = r0.fixupOffset(r1)
            r0 = r32
            gnu.bytecode.StackMapTableAttr r0 = r0.stackMap
            r29 = r0
            if (r29 == 0) goto L_0x044f
            r0 = r32
            r1 = r25
            gnu.bytecode.Label r25 = r0.mergeLabels(r1, r10)
        L_0x044f:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29 = r29[r16]
            r0 = r29
            int r0 = r0.position
            r29 = r0
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r30 = r0
            int r31 = r16 + 1
            r30 = r30[r31]
            r0 = r30
            int r0 = r0.position
            r30 = r0
            r0 = r32
            r1 = r29
            r2 = r30
            r0.addHandler(r1, r2, r14, r6)
            int r16 = r16 + 2
            r21 = r22
            r13 = r14
            goto L_0x02b6
        L_0x047d:
            r0 = r32
            gnu.bytecode.LineNumbersAttr r0 = r0.lines
            r29 = r0
            if (r29 != 0) goto L_0x0494
            gnu.bytecode.LineNumbersAttr r29 = new gnu.bytecode.LineNumbersAttr
            r0 = r29
            r1 = r32
            r0.<init>(r1)
            r0 = r29
            r1 = r32
            r1.lines = r0
        L_0x0494:
            int r16 = r16 + 1
            r0 = r32
            r1 = r16
            int r11 = r0.fixupOffset(r1)
            r0 = r26
            if (r11 == r0) goto L_0x04ad
            r0 = r32
            gnu.bytecode.LineNumbersAttr r0 = r0.lines
            r29 = r0
            r0 = r29
            r0.put(r11, r14)
        L_0x04ad:
            r26 = r11
            r21 = r22
            r13 = r14
            goto L_0x02b6
        L_0x04b4:
            if (r10 != 0) goto L_0x04df
            if (r15 == r14) goto L_0x04fd
            java.lang.Error r29 = new java.lang.Error
            java.lang.StringBuilder r30 = new java.lang.StringBuilder
            r30.<init>()
            java.lang.String r31 = "PC confusion new_pc:"
            java.lang.StringBuilder r30 = r30.append(r31)
            r0 = r30
            java.lang.StringBuilder r30 = r0.append(r14)
            java.lang.String r31 = " new_size:"
            java.lang.StringBuilder r30 = r30.append(r31)
            r0 = r30
            java.lang.StringBuilder r30 = r0.append(r15)
            java.lang.String r30 = r30.toString()
            r29.<init>(r30)
            throw r29
        L_0x04df:
            int r0 = r10.first_fixup
            r16 = r0
            r0 = r32
            r1 = r16
            int r21 = r0.fixupOffset(r1)
            r17 = r21
            int r0 = r10.position
            r29 = r0
            r0 = r29
            if (r0 == r14) goto L_0x051f
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "bad pc"
            r29.<init>(r30)
            throw r29
        L_0x04fd:
            r0 = r32
            r0.f48PC = r15
            r0 = r32
            r0.code = r12
            r29 = 0
            r0 = r29
            r1 = r32
            r1.fixup_count = r0
            r29 = 0
            r0 = r29
            r1 = r32
            r1.fixup_labels = r0
            r29 = 0
            r0 = r29
            r1 = r32
            r1.fixup_offsets = r0
            goto L_0x0008
        L_0x051f:
            r22 = r21
            goto L_0x023f
        L_0x0523:
            r13 = r14
            goto L_0x03e8
        L_0x0526:
            r21 = r22
            r13 = r14
            goto L_0x02b6
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.bytecode.CodeAttr.processFixups():void");
    }
/* Code decompiled incorrectly, please refer to instructions dump. */
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .
public void processFixups() {
        /*
            r32 = this;
            r0 = r32
            int r0 = r0.fixup_count
            r29 = r0
            if (r29 > 0) goto L_0x0009
        L_0x0008:
            return
        L_0x0009:
            r5 = 0
            r0 = r32
            int r8 = r0.fixup_count
            r29 = 9
            r30 = 0
            r31 = 0
            r0 = r32
            r1 = r29
            r2 = r30
            r3 = r31
            r0.fixupAdd(r1, r2, r3)
            r7 = 0
        L_0x0020:
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            r19 = r29[r7]
            r9 = r19 & 15
            int r19 = r19 >> 4
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r10 = r29[r7]
            switch(r9) {
                case 0: goto L_0x0041;
                case 1: goto L_0x0047;
                case 2: goto L_0x0052;
                case 3: goto L_0x0041;
                case 4: goto L_0x0055;
                case 5: goto L_0x008c;
                case 6: goto L_0x009e;
                case 7: goto L_0x0037;
                case 8: goto L_0x0041;
                case 9: goto L_0x00c4;
                case 10: goto L_0x00b0;
                case 11: goto L_0x003f;
                case 12: goto L_0x0037;
                case 13: goto L_0x0037;
                case 14: goto L_0x0044;
                default: goto L_0x0037;
            }
        L_0x0037:
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "unexpected fixup"
            r29.<init>(r30)
            throw r29
        L_0x003f:
            int r7 = r7 + 2
        L_0x0041:
            int r7 = r7 + 1
            goto L_0x0020
        L_0x0044:
            int r7 = r7 + 1
            goto L_0x0041
        L_0x0047:
            int r0 = r10.position
            r29 = r0
            int r29 = r29 + r5
            r0 = r29
            r10.position = r0
            goto L_0x0041
        L_0x0052:
            int r5 = r5 + 3
            goto L_0x0041
        L_0x0055:
            int r0 = r10.first_fixup
            r29 = r0
            int r30 = r7 + 1
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x008c
            int r29 = r7 + 1
            r0 = r32
            r1 = r29
            int r29 = r0.fixupOffset(r1)
            int r30 = r19 + 3
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x008c
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r30 = r19 << 4
            r30 = r30 | 8
            r29[r7] = r30
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r30 = 0
            r29[r7] = r30
            int r5 = r5 + -3
            goto L_0x0041
        L_0x008c:
            r0 = r32
            int r0 = r0.f48PC
            r29 = r0
            r30 = 32768(0x8000, float:4.5918E-41)
            r0 = r29
            r1 = r30
            if (r0 < r1) goto L_0x0041
            int r5 = r5 + 2
            goto L_0x0041
        L_0x009e:
            r0 = r32
            int r0 = r0.f48PC
            r29 = r0
            r30 = 32768(0x8000, float:4.5918E-41)
            r0 = r29
            r1 = r30
            if (r0 < r1) goto L_0x0041
            int r5 = r5 + 5
            goto L_0x0041
        L_0x00b0:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r30 = r0
            int r31 = r7 + 1
            r30 = r30[r31]
            r29[r8] = r30
            r8 = r19
        L_0x00c4:
            int r29 = r7 + 1
            r0 = r32
            int r0 = r0.fixup_count
            r30 = r0
            r0 = r29
            r1 = r30
            if (r0 < r1) goto L_0x0129
            r0 = r32
            int r4 = r0.f48PC
        L_0x00d6:
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r30 = r4 << 4
            r30 = r30 | 9
            r29[r7] = r30
            if (r10 != 0) goto L_0x0142
            r0 = r32
            int r15 = r0.f48PC
            r5 = 0
            r7 = 0
        L_0x00ea:
            r0 = r32
            int r0 = r0.fixup_count
            r29 = r0
            r0 = r29
            if (r7 >= r0) goto L_0x0225
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            r19 = r29[r7]
            r9 = r19 & 15
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r10 = r29[r7]
            if (r10 == 0) goto L_0x0150
            int r0 = r10.position
            r29 = r0
            if (r29 >= 0) goto L_0x0150
            java.lang.Error r29 = new java.lang.Error
            java.lang.StringBuilder r30 = new java.lang.StringBuilder
            r30.<init>()
            java.lang.String r31 = "undefined label "
            java.lang.StringBuilder r30 = r30.append(r31)
            r0 = r30
            java.lang.StringBuilder r30 = r0.append(r10)
            java.lang.String r30 = r30.toString()
            r29.<init>(r30)
            throw r29
        L_0x0129:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            int r30 = r7 + 1
            r29 = r29[r30]
            r0 = r29
            int r0 = r0.first_fixup
            r29 = r0
            r0 = r32
            r1 = r29
            int r4 = r0.fixupOffset(r1)
            goto L_0x00d6
        L_0x0142:
            int r7 = r10.first_fixup
            r0 = r32
            int r18 = r0.fixupOffset(r7)
            int r29 = r4 + r5
            int r5 = r29 - r18
            goto L_0x0020
        L_0x0150:
            if (r10 == 0) goto L_0x01ab
            r29 = 4
            r0 = r29
            if (r9 < r0) goto L_0x01ab
            r29 = 7
            r0 = r29
            if (r9 > r0) goto L_0x01ab
            int r0 = r10.first_fixup
            r29 = r0
            int r29 = r29 + 1
            r0 = r32
            int r0 = r0.fixup_count
            r30 = r0
            r0 = r29
            r1 = r30
            if (r0 >= r1) goto L_0x01ab
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r0 = r10.first_fixup
            r30 = r0
            int r30 = r30 + 1
            r29 = r29[r30]
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r30 = r0
            int r0 = r10.first_fixup
            r31 = r0
            r30 = r30[r31]
            r30 = r30 & 15
            r30 = r30 | 4
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x01ab
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            int r0 = r10.first_fixup
            r30 = r0
            int r30 = r30 + 1
            r10 = r29[r30]
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29[r7] = r10
            goto L_0x0150
        L_0x01ab:
            int r19 = r19 >> 4
            switch(r9) {
                case 0: goto L_0x01ca;
                case 1: goto L_0x01d6;
                case 2: goto L_0x01dd;
                case 3: goto L_0x01ca;
                case 4: goto L_0x01e8;
                case 5: goto L_0x01e8;
                case 6: goto L_0x01e8;
                case 7: goto L_0x01b0;
                case 8: goto L_0x01d1;
                case 9: goto L_0x0223;
                case 10: goto L_0x01b0;
                case 11: goto L_0x01b8;
                case 12: goto L_0x01b0;
                case 13: goto L_0x01b0;
                case 14: goto L_0x01ce;
                default: goto L_0x01b0;
            }
        L_0x01b0:
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "unexpected fixup"
            r29.<init>(r30)
            throw r29
        L_0x01b8:
            int r7 = r7 + 2
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29 = r29[r7]
            int r30 = r19 + r5
            r0 = r30
            r1 = r29
            r1.position = r0
        L_0x01ca:
            int r7 = r7 + 1
            goto L_0x00ea
        L_0x01ce:
            int r7 = r7 + 1
            goto L_0x01ca
        L_0x01d1:
            int r5 = r5 + -3
            int r15 = r15 + -3
            goto L_0x01ca
        L_0x01d6:
            int r29 = r19 + r5
            r0 = r29
            r10.position = r0
            goto L_0x01ca
        L_0x01dd:
            int r29 = r19 + r5
            int r29 = 3 - r29
            r24 = r29 & 3
            int r5 = r5 + r24
            int r15 = r15 + r24
            goto L_0x01ca
        L_0x01e8:
            int r0 = r10.position
            r29 = r0
            int r30 = r19 + r5
            int r27 = r29 - r30
            r0 = r27
            short r0 = (short) r0
            r29 = r0
            r0 = r29
            r1 = r27
            if (r0 != r1) goto L_0x0208
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r30 = r19 << 4
            r30 = r30 | 7
            r29[r7] = r30
            goto L_0x01ca
        L_0x0208:
            r29 = 6
            r0 = r29
            if (r9 != r0) goto L_0x021d
            r29 = 5
        L_0x0210:
            int r5 = r5 + r29
            r29 = 6
            r0 = r29
            if (r9 != r0) goto L_0x0220
            r29 = 5
        L_0x021a:
            int r15 = r15 + r29
            goto L_0x01ca
        L_0x021d:
            r29 = 2
            goto L_0x0210
        L_0x0220:
            r29 = 2
            goto L_0x021a
        L_0x0223:
            if (r10 != 0) goto L_0x0257
        L_0x0225:
            byte[] r12 = new byte[r15]
            r26 = -1
            r13 = 0
            r16 = 0
            r29 = 0
            r0 = r32
            r1 = r29
            int r17 = r0.fixupOffset(r1)
            r20 = -1
            r25 = 0
            r21 = 0
            r22 = r21
            r14 = r13
        L_0x023f:
            r0 = r22
            r1 = r17
            if (r0 >= r1) goto L_0x0265
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            int r21 = r22 + 1
            byte r29 = r29[r22]
            r12[r14] = r29
            r22 = r21
            r14 = r13
            goto L_0x023f
        L_0x0257:
            int r7 = r10.first_fixup
            r0 = r32
            int r18 = r0.fixupOffset(r7)
            int r29 = r19 + r5
            int r5 = r29 - r18
            goto L_0x00ea
        L_0x0265:
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            r29 = r29[r16]
            r9 = r29 & 15
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r10 = r29[r16]
            if (r25 == 0) goto L_0x0294
            r0 = r25
            int r0 = r0.position
            r29 = r0
            r0 = r29
            if (r0 >= r14) goto L_0x0294
            r0 = r32
            gnu.bytecode.StackMapTableAttr r0 = r0.stackMap
            r29 = r0
            r0 = r29
            r1 = r25
            r2 = r32
            r0.emitStackMapEntry(r1, r2)
            r25 = 0
        L_0x0294:
            if (r25 == 0) goto L_0x02a8
            r0 = r25
            int r0 = r0.position
            r29 = r0
            r0 = r29
            if (r0 <= r14) goto L_0x02a8
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "labels out of order"
            r29.<init>(r30)
            throw r29
        L_0x02a8:
            switch(r9) {
                case 0: goto L_0x02b3;
                case 1: goto L_0x02c5;
                case 2: goto L_0x0386;
                case 3: goto L_0x02ab;
                case 4: goto L_0x0318;
                case 5: goto L_0x0318;
                case 6: goto L_0x0318;
                case 7: goto L_0x02eb;
                case 8: goto L_0x02e7;
                case 9: goto L_0x04b4;
                case 10: goto L_0x02ab;
                case 11: goto L_0x042b;
                case 12: goto L_0x02ab;
                case 13: goto L_0x02ab;
                case 14: goto L_0x047d;
                default: goto L_0x02ab;
            }
        L_0x02ab:
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "unexpected fixup"
            r29.<init>(r30)
            throw r29
        L_0x02b3:
            r21 = r22
            r13 = r14
        L_0x02b6:
            int r16 = r16 + 1
            r0 = r32
            r1 = r16
            int r17 = r0.fixupOffset(r1)
            r22 = r21
            r14 = r13
            goto L_0x023f
        L_0x02c5:
            r0 = r32
            gnu.bytecode.StackMapTableAttr r0 = r0.stackMap
            r29 = r0
            if (r29 == 0) goto L_0x0526
            if (r10 == 0) goto L_0x0526
            gnu.bytecode.Type[] r0 = r10.stackTypes
            r29 = r0
            if (r29 == 0) goto L_0x0526
            boolean r0 = r10.needsStackMapEntry
            r29 = r0
            if (r29 == 0) goto L_0x0526
            r0 = r32
            r1 = r25
            gnu.bytecode.Label r25 = r0.mergeLabels(r1, r10)
            r21 = r22
            r13 = r14
            goto L_0x02b6
        L_0x02e7:
            int r21 = r22 + 3
            r13 = r14
            goto L_0x02b6
        L_0x02eb:
            int r0 = r10.position
            r29 = r0
            int r5 = r29 - r14
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            byte r29 = r29[r22]
            r12[r14] = r29
            int r14 = r13 + 1
            int r29 = r5 >> 8
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r13 = r14 + 1
            r0 = r5 & 255(0xff, float:3.57E-43)
            r29 = r0
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r21 = r22 + 3
            goto L_0x02b6
        L_0x0318:
            int r0 = r10.position
            r29 = r0
            int r5 = r29 - r14
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            byte r23 = r29[r22]
            r29 = 6
            r0 = r29
            if (r9 != r0) goto L_0x037d
            r0 = r32
            r1 = r23
            byte r23 = r0.invert_opcode(r1)
            int r13 = r14 + 1
            r12[r14] = r23
            int r14 = r13 + 1
            r29 = 0
            r12[r13] = r29
            int r13 = r14 + 1
            r29 = 8
            r12[r14] = r29
            r23 = -56
        L_0x0346:
            int r14 = r13 + 1
            r12[r13] = r23
            int r13 = r14 + 1
            int r29 = r5 >> 24
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            int r29 = r5 >> 16
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r13 = r14 + 1
            int r29 = r5 >> 8
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            r0 = r5 & 255(0xff, float:3.57E-43)
            r29 = r0
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r21 = r22 + 3
            r13 = r14
            goto L_0x02b6
        L_0x037d:
            int r29 = r23 + 33
            r0 = r29
            byte r0 = (byte) r0
            r23 = r0
            r13 = r14
            goto L_0x0346
        L_0x0386:
            int r29 = 3 - r14
            r24 = r29 & 3
            r28 = r14
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            int r21 = r22 + 1
            byte r29 = r29[r22]
            r12[r14] = r29
            r14 = r13
        L_0x039b:
            int r24 = r24 + -1
            if (r24 < 0) goto L_0x0523
            int r13 = r14 + 1
            r29 = 0
            r12[r14] = r29
            r14 = r13
            goto L_0x039b
        L_0x03a7:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29 = r29[r16]
            r0 = r29
            int r0 = r0.position
            r29 = r0
            int r5 = r29 - r28
            int r13 = r14 + 1
            int r29 = r5 >> 24
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            int r29 = r5 >> 16
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r13 = r14 + 1
            int r29 = r5 >> 8
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            r0 = r5 & 255(0xff, float:3.57E-43)
            r29 = r0
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r21 = r22 + 4
            r13 = r14
        L_0x03e8:
            r0 = r32
            int r0 = r0.fixup_count
            r29 = r0
            r0 = r16
            r1 = r29
            if (r0 >= r1) goto L_0x02b6
            int r29 = r16 + 1
            r0 = r32
            r1 = r29
            int r29 = r0.fixupKind(r1)
            r30 = 3
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x02b6
            int r16 = r16 + 1
            r0 = r32
            r1 = r16
            int r19 = r0.fixupOffset(r1)
            r22 = r21
            r14 = r13
        L_0x0413:
            r0 = r22
            r1 = r19
            if (r0 >= r1) goto L_0x03a7
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            int r21 = r22 + 1
            byte r29 = r29[r22]
            r12[r14] = r29
            r22 = r21
            r14 = r13
            goto L_0x0413
        L_0x042b:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            int r30 = r16 + 2
            r10 = r29[r30]
            int r29 = r16 + 1
            r0 = r32
            r1 = r29
            int r6 = r0.fixupOffset(r1)
            r0 = r32
            gnu.bytecode.StackMapTableAttr r0 = r0.stackMap
            r29 = r0
            if (r29 == 0) goto L_0x044f
            r0 = r32
            r1 = r25
            gnu.bytecode.Label r25 = r0.mergeLabels(r1, r10)
        L_0x044f:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29 = r29[r16]
            r0 = r29
            int r0 = r0.position
            r29 = r0
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r30 = r0
            int r31 = r16 + 1
            r30 = r30[r31]
            r0 = r30
            int r0 = r0.position
            r30 = r0
            r0 = r32
            r1 = r29
            r2 = r30
            r0.addHandler(r1, r2, r14, r6)
            int r16 = r16 + 2
            r21 = r22
            r13 = r14
            goto L_0x02b6
        L_0x047d:
            r0 = r32
            gnu.bytecode.LineNumbersAttr r0 = r0.lines
            r29 = r0
            if (r29 != 0) goto L_0x0494
            gnu.bytecode.LineNumbersAttr r29 = new gnu.bytecode.LineNumbersAttr
            r0 = r29
            r1 = r32
            r0.<init>(r1)
            r0 = r29
            r1 = r32
            r1.lines = r0
        L_0x0494:
            int r16 = r16 + 1
            r0 = r32
            r1 = r16
            int r11 = r0.fixupOffset(r1)
            r0 = r26
            if (r11 == r0) goto L_0x04ad
            r0 = r32
            gnu.bytecode.LineNumbersAttr r0 = r0.lines
            r29 = r0
            r0 = r29
            r0.put(r11, r14)
        L_0x04ad:
            r26 = r11
            r21 = r22
            r13 = r14
            goto L_0x02b6
        L_0x04b4:
            if (r10 != 0) goto L_0x04df
            if (r15 == r14) goto L_0x04fd
            java.lang.Error r29 = new java.lang.Error
            java.lang.StringBuilder r30 = new java.lang.StringBuilder
            r30.<init>()
            java.lang.String r31 = "PC confusion new_pc:"
            java.lang.StringBuilder r30 = r30.append(r31)
            r0 = r30
            java.lang.StringBuilder r30 = r0.append(r14)
            java.lang.String r31 = " new_size:"
            java.lang.StringBuilder r30 = r30.append(r31)
            r0 = r30
            java.lang.StringBuilder r30 = r0.append(r15)
            java.lang.String r30 = r30.toString()
            r29.<init>(r30)
            throw r29
        L_0x04df:
            int r0 = r10.first_fixup
            r16 = r0
            r0 = r32
            r1 = r16
            int r21 = r0.fixupOffset(r1)
            r17 = r21
            int r0 = r10.position
            r29 = r0
            r0 = r29
            if (r0 == r14) goto L_0x051f
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "bad pc"
            r29.<init>(r30)
            throw r29
        L_0x04fd:
            r0 = r32
            r0.f48PC = r15
            r0 = r32
            r0.code = r12
            r29 = 0
            r0 = r29
            r1 = r32
            r1.fixup_count = r0
            r29 = 0
            r0 = r29
            r1 = r32
            r1.fixup_labels = r0
            r29 = 0
            r0 = r29
            r1 = r32
            r1.fixup_offsets = r0
            goto L_0x0008
        L_0x051f:
            r22 = r21
            goto L_0x023f
        L_0x0523:
            r13 = r14
            goto L_0x03e8
        L_0x0526:
            r21 = r22
            r13 = r14
            goto L_0x02b6
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.bytecode.CodeAttr.processFixups():void");
    }
public void processFixups ( ) { /*
            r32 = this;
            r0 = r32
            int r0 = r0.fixup_count
            r29 = r0
            if (r29 > 0) goto L_0x0009
        L_0x0008:
            return
        L_0x0009:
            r5 = 0
            r0 = r32
            int r8 = r0.fixup_count
            r29 = 9
            r30 = 0
            r31 = 0
            r0 = r32
            r1 = r29
            r2 = r30
            r3 = r31
            r0.fixupAdd(r1, r2, r3)
            r7 = 0
        L_0x0020:
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            r19 = r29[r7]
            r9 = r19 & 15
            int r19 = r19 >> 4
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r10 = r29[r7]
            switch(r9) {
                case 0: goto L_0x0041;
                case 1: goto L_0x0047;
                case 2: goto L_0x0052;
                case 3: goto L_0x0041;
                case 4: goto L_0x0055;
                case 5: goto L_0x008c;
                case 6: goto L_0x009e;
                case 7: goto L_0x0037;
                case 8: goto L_0x0041;
                case 9: goto L_0x00c4;
                case 10: goto L_0x00b0;
                case 11: goto L_0x003f;
                case 12: goto L_0x0037;
                case 13: goto L_0x0037;
                case 14: goto L_0x0044;
                default: goto L_0x0037;
            }
        L_0x0037:
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "unexpected fixup"
            r29.<init>(r30)
            throw r29
        L_0x003f:
            int r7 = r7 + 2
        L_0x0041:
            int r7 = r7 + 1
            goto L_0x0020
        L_0x0044:
            int r7 = r7 + 1
            goto L_0x0041
        L_0x0047:
            int r0 = r10.position
            r29 = r0
            int r29 = r29 + r5
            r0 = r29
            r10.position = r0
            goto L_0x0041
        L_0x0052:
            int r5 = r5 + 3
            goto L_0x0041
        L_0x0055:
            int r0 = r10.first_fixup
            r29 = r0
            int r30 = r7 + 1
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x008c
            int r29 = r7 + 1
            r0 = r32
            r1 = r29
            int r29 = r0.fixupOffset(r1)
            int r30 = r19 + 3
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x008c
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r30 = r19 << 4
            r30 = r30 | 8
            r29[r7] = r30
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r30 = 0
            r29[r7] = r30
            int r5 = r5 + -3
            goto L_0x0041
        L_0x008c:
            r0 = r32
            int r0 = r0.f48PC
            r29 = r0
            r30 = 32768(0x8000, float:4.5918E-41)
            r0 = r29
            r1 = r30
            if (r0 < r1) goto L_0x0041
            int r5 = r5 + 2
            goto L_0x0041
        L_0x009e:
            r0 = r32
            int r0 = r0.f48PC
            r29 = r0
            r30 = 32768(0x8000, float:4.5918E-41)
            r0 = r29
            r1 = r30
            if (r0 < r1) goto L_0x0041
            int r5 = r5 + 5
            goto L_0x0041
        L_0x00b0:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r30 = r0
            int r31 = r7 + 1
            r30 = r30[r31]
            r29[r8] = r30
            r8 = r19
        L_0x00c4:
            int r29 = r7 + 1
            r0 = r32
            int r0 = r0.fixup_count
            r30 = r0
            r0 = r29
            r1 = r30
            if (r0 < r1) goto L_0x0129
            r0 = r32
            int r4 = r0.f48PC
        L_0x00d6:
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r30 = r4 << 4
            r30 = r30 | 9
            r29[r7] = r30
            if (r10 != 0) goto L_0x0142
            r0 = r32
            int r15 = r0.f48PC
            r5 = 0
            r7 = 0
        L_0x00ea:
            r0 = r32
            int r0 = r0.fixup_count
            r29 = r0
            r0 = r29
            if (r7 >= r0) goto L_0x0225
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            r19 = r29[r7]
            r9 = r19 & 15
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r10 = r29[r7]
            if (r10 == 0) goto L_0x0150
            int r0 = r10.position
            r29 = r0
            if (r29 >= 0) goto L_0x0150
            java.lang.Error r29 = new java.lang.Error
            java.lang.StringBuilder r30 = new java.lang.StringBuilder
            r30.<init>()
            java.lang.String r31 = "undefined label "
            java.lang.StringBuilder r30 = r30.append(r31)
            r0 = r30
            java.lang.StringBuilder r30 = r0.append(r10)
            java.lang.String r30 = r30.toString()
            r29.<init>(r30)
            throw r29
        L_0x0129:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            int r30 = r7 + 1
            r29 = r29[r30]
            r0 = r29
            int r0 = r0.first_fixup
            r29 = r0
            r0 = r32
            r1 = r29
            int r4 = r0.fixupOffset(r1)
            goto L_0x00d6
        L_0x0142:
            int r7 = r10.first_fixup
            r0 = r32
            int r18 = r0.fixupOffset(r7)
            int r29 = r4 + r5
            int r5 = r29 - r18
            goto L_0x0020
        L_0x0150:
            if (r10 == 0) goto L_0x01ab
            r29 = 4
            r0 = r29
            if (r9 < r0) goto L_0x01ab
            r29 = 7
            r0 = r29
            if (r9 > r0) goto L_0x01ab
            int r0 = r10.first_fixup
            r29 = r0
            int r29 = r29 + 1
            r0 = r32
            int r0 = r0.fixup_count
            r30 = r0
            r0 = r29
            r1 = r30
            if (r0 >= r1) goto L_0x01ab
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r0 = r10.first_fixup
            r30 = r0
            int r30 = r30 + 1
            r29 = r29[r30]
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r30 = r0
            int r0 = r10.first_fixup
            r31 = r0
            r30 = r30[r31]
            r30 = r30 & 15
            r30 = r30 | 4
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x01ab
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            int r0 = r10.first_fixup
            r30 = r0
            int r30 = r30 + 1
            r10 = r29[r30]
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29[r7] = r10
            goto L_0x0150
        L_0x01ab:
            int r19 = r19 >> 4
            switch(r9) {
                case 0: goto L_0x01ca;
                case 1: goto L_0x01d6;
                case 2: goto L_0x01dd;
                case 3: goto L_0x01ca;
                case 4: goto L_0x01e8;
                case 5: goto L_0x01e8;
                case 6: goto L_0x01e8;
                case 7: goto L_0x01b0;
                case 8: goto L_0x01d1;
                case 9: goto L_0x0223;
                case 10: goto L_0x01b0;
                case 11: goto L_0x01b8;
                case 12: goto L_0x01b0;
                case 13: goto L_0x01b0;
                case 14: goto L_0x01ce;
                default: goto L_0x01b0;
            }
        L_0x01b0:
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "unexpected fixup"
            r29.<init>(r30)
            throw r29
        L_0x01b8:
            int r7 = r7 + 2
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29 = r29[r7]
            int r30 = r19 + r5
            r0 = r30
            r1 = r29
            r1.position = r0
        L_0x01ca:
            int r7 = r7 + 1
            goto L_0x00ea
        L_0x01ce:
            int r7 = r7 + 1
            goto L_0x01ca
        L_0x01d1:
            int r5 = r5 + -3
            int r15 = r15 + -3
            goto L_0x01ca
        L_0x01d6:
            int r29 = r19 + r5
            r0 = r29
            r10.position = r0
            goto L_0x01ca
        L_0x01dd:
            int r29 = r19 + r5
            int r29 = 3 - r29
            r24 = r29 & 3
            int r5 = r5 + r24
            int r15 = r15 + r24
            goto L_0x01ca
        L_0x01e8:
            int r0 = r10.position
            r29 = r0
            int r30 = r19 + r5
            int r27 = r29 - r30
            r0 = r27
            short r0 = (short) r0
            r29 = r0
            r0 = r29
            r1 = r27
            if (r0 != r1) goto L_0x0208
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            int r30 = r19 << 4
            r30 = r30 | 7
            r29[r7] = r30
            goto L_0x01ca
        L_0x0208:
            r29 = 6
            r0 = r29
            if (r9 != r0) goto L_0x021d
            r29 = 5
        L_0x0210:
            int r5 = r5 + r29
            r29 = 6
            r0 = r29
            if (r9 != r0) goto L_0x0220
            r29 = 5
        L_0x021a:
            int r15 = r15 + r29
            goto L_0x01ca
        L_0x021d:
            r29 = 2
            goto L_0x0210
        L_0x0220:
            r29 = 2
            goto L_0x021a
        L_0x0223:
            if (r10 != 0) goto L_0x0257
        L_0x0225:
            byte[] r12 = new byte[r15]
            r26 = -1
            r13 = 0
            r16 = 0
            r29 = 0
            r0 = r32
            r1 = r29
            int r17 = r0.fixupOffset(r1)
            r20 = -1
            r25 = 0
            r21 = 0
            r22 = r21
            r14 = r13
        L_0x023f:
            r0 = r22
            r1 = r17
            if (r0 >= r1) goto L_0x0265
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            int r21 = r22 + 1
            byte r29 = r29[r22]
            r12[r14] = r29
            r22 = r21
            r14 = r13
            goto L_0x023f
        L_0x0257:
            int r7 = r10.first_fixup
            r0 = r32
            int r18 = r0.fixupOffset(r7)
            int r29 = r19 + r5
            int r5 = r29 - r18
            goto L_0x00ea
        L_0x0265:
            r0 = r32
            int[] r0 = r0.fixup_offsets
            r29 = r0
            r29 = r29[r16]
            r9 = r29 & 15
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r10 = r29[r16]
            if (r25 == 0) goto L_0x0294
            r0 = r25
            int r0 = r0.position
            r29 = r0
            r0 = r29
            if (r0 >= r14) goto L_0x0294
            r0 = r32
            gnu.bytecode.StackMapTableAttr r0 = r0.stackMap
            r29 = r0
            r0 = r29
            r1 = r25
            r2 = r32
            r0.emitStackMapEntry(r1, r2)
            r25 = 0
        L_0x0294:
            if (r25 == 0) goto L_0x02a8
            r0 = r25
            int r0 = r0.position
            r29 = r0
            r0 = r29
            if (r0 <= r14) goto L_0x02a8
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "labels out of order"
            r29.<init>(r30)
            throw r29
        L_0x02a8:
            switch(r9) {
                case 0: goto L_0x02b3;
                case 1: goto L_0x02c5;
                case 2: goto L_0x0386;
                case 3: goto L_0x02ab;
                case 4: goto L_0x0318;
                case 5: goto L_0x0318;
                case 6: goto L_0x0318;
                case 7: goto L_0x02eb;
                case 8: goto L_0x02e7;
                case 9: goto L_0x04b4;
                case 10: goto L_0x02ab;
                case 11: goto L_0x042b;
                case 12: goto L_0x02ab;
                case 13: goto L_0x02ab;
                case 14: goto L_0x047d;
                default: goto L_0x02ab;
            }
        L_0x02ab:
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "unexpected fixup"
            r29.<init>(r30)
            throw r29
        L_0x02b3:
            r21 = r22
            r13 = r14
        L_0x02b6:
            int r16 = r16 + 1
            r0 = r32
            r1 = r16
            int r17 = r0.fixupOffset(r1)
            r22 = r21
            r14 = r13
            goto L_0x023f
        L_0x02c5:
            r0 = r32
            gnu.bytecode.StackMapTableAttr r0 = r0.stackMap
            r29 = r0
            if (r29 == 0) goto L_0x0526
            if (r10 == 0) goto L_0x0526
            gnu.bytecode.Type[] r0 = r10.stackTypes
            r29 = r0
            if (r29 == 0) goto L_0x0526
            boolean r0 = r10.needsStackMapEntry
            r29 = r0
            if (r29 == 0) goto L_0x0526
            r0 = r32
            r1 = r25
            gnu.bytecode.Label r25 = r0.mergeLabels(r1, r10)
            r21 = r22
            r13 = r14
            goto L_0x02b6
        L_0x02e7:
            int r21 = r22 + 3
            r13 = r14
            goto L_0x02b6
        L_0x02eb:
            int r0 = r10.position
            r29 = r0
            int r5 = r29 - r14
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            byte r29 = r29[r22]
            r12[r14] = r29
            int r14 = r13 + 1
            int r29 = r5 >> 8
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r13 = r14 + 1
            r0 = r5 & 255(0xff, float:3.57E-43)
            r29 = r0
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r21 = r22 + 3
            goto L_0x02b6
        L_0x0318:
            int r0 = r10.position
            r29 = r0
            int r5 = r29 - r14
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            byte r23 = r29[r22]
            r29 = 6
            r0 = r29
            if (r9 != r0) goto L_0x037d
            r0 = r32
            r1 = r23
            byte r23 = r0.invert_opcode(r1)
            int r13 = r14 + 1
            r12[r14] = r23
            int r14 = r13 + 1
            r29 = 0
            r12[r13] = r29
            int r13 = r14 + 1
            r29 = 8
            r12[r14] = r29
            r23 = -56
        L_0x0346:
            int r14 = r13 + 1
            r12[r13] = r23
            int r13 = r14 + 1
            int r29 = r5 >> 24
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            int r29 = r5 >> 16
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r13 = r14 + 1
            int r29 = r5 >> 8
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            r0 = r5 & 255(0xff, float:3.57E-43)
            r29 = r0
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r21 = r22 + 3
            r13 = r14
            goto L_0x02b6
        L_0x037d:
            int r29 = r23 + 33
            r0 = r29
            byte r0 = (byte) r0
            r23 = r0
            r13 = r14
            goto L_0x0346
        L_0x0386:
            int r29 = 3 - r14
            r24 = r29 & 3
            r28 = r14
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            int r21 = r22 + 1
            byte r29 = r29[r22]
            r12[r14] = r29
            r14 = r13
        L_0x039b:
            int r24 = r24 + -1
            if (r24 < 0) goto L_0x0523
            int r13 = r14 + 1
            r29 = 0
            r12[r14] = r29
            r14 = r13
            goto L_0x039b
        L_0x03a7:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29 = r29[r16]
            r0 = r29
            int r0 = r0.position
            r29 = r0
            int r5 = r29 - r28
            int r13 = r14 + 1
            int r29 = r5 >> 24
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            int r29 = r5 >> 16
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r13 = r14 + 1
            int r29 = r5 >> 8
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r14] = r29
            int r14 = r13 + 1
            r0 = r5 & 255(0xff, float:3.57E-43)
            r29 = r0
            r0 = r29
            byte r0 = (byte) r0
            r29 = r0
            r12[r13] = r29
            int r21 = r22 + 4
            r13 = r14
        L_0x03e8:
            r0 = r32
            int r0 = r0.fixup_count
            r29 = r0
            r0 = r16
            r1 = r29
            if (r0 >= r1) goto L_0x02b6
            int r29 = r16 + 1
            r0 = r32
            r1 = r29
            int r29 = r0.fixupKind(r1)
            r30 = 3
            r0 = r29
            r1 = r30
            if (r0 != r1) goto L_0x02b6
            int r16 = r16 + 1
            r0 = r32
            r1 = r16
            int r19 = r0.fixupOffset(r1)
            r22 = r21
            r14 = r13
        L_0x0413:
            r0 = r22
            r1 = r19
            if (r0 >= r1) goto L_0x03a7
            int r13 = r14 + 1
            r0 = r32
            byte[] r0 = r0.code
            r29 = r0
            int r21 = r22 + 1
            byte r29 = r29[r22]
            r12[r14] = r29
            r22 = r21
            r14 = r13
            goto L_0x0413
        L_0x042b:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            int r30 = r16 + 2
            r10 = r29[r30]
            int r29 = r16 + 1
            r0 = r32
            r1 = r29
            int r6 = r0.fixupOffset(r1)
            r0 = r32
            gnu.bytecode.StackMapTableAttr r0 = r0.stackMap
            r29 = r0
            if (r29 == 0) goto L_0x044f
            r0 = r32
            r1 = r25
            gnu.bytecode.Label r25 = r0.mergeLabels(r1, r10)
        L_0x044f:
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r29 = r0
            r29 = r29[r16]
            r0 = r29
            int r0 = r0.position
            r29 = r0
            r0 = r32
            gnu.bytecode.Label[] r0 = r0.fixup_labels
            r30 = r0
            int r31 = r16 + 1
            r30 = r30[r31]
            r0 = r30
            int r0 = r0.position
            r30 = r0
            r0 = r32
            r1 = r29
            r2 = r30
            r0.addHandler(r1, r2, r14, r6)
            int r16 = r16 + 2
            r21 = r22
            r13 = r14
            goto L_0x02b6
        L_0x047d:
            r0 = r32
            gnu.bytecode.LineNumbersAttr r0 = r0.lines
            r29 = r0
            if (r29 != 0) goto L_0x0494
            gnu.bytecode.LineNumbersAttr r29 = new gnu.bytecode.LineNumbersAttr
            r0 = r29
            r1 = r32
            r0.<init>(r1)
            r0 = r29
            r1 = r32
            r1.lines = r0
        L_0x0494:
            int r16 = r16 + 1
            r0 = r32
            r1 = r16
            int r11 = r0.fixupOffset(r1)
            r0 = r26
            if (r11 == r0) goto L_0x04ad
            r0 = r32
            gnu.bytecode.LineNumbersAttr r0 = r0.lines
            r29 = r0
            r0 = r29
            r0.put(r11, r14)
        L_0x04ad:
            r26 = r11
            r21 = r22
            r13 = r14
            goto L_0x02b6
        L_0x04b4:
            if (r10 != 0) goto L_0x04df
            if (r15 == r14) goto L_0x04fd
            java.lang.Error r29 = new java.lang.Error
            java.lang.StringBuilder r30 = new java.lang.StringBuilder
            r30.<init>()
            java.lang.String r31 = "PC confusion new_pc:"
            java.lang.StringBuilder r30 = r30.append(r31)
            r0 = r30
            java.lang.StringBuilder r30 = r0.append(r14)
            java.lang.String r31 = " new_size:"
            java.lang.StringBuilder r30 = r30.append(r31)
            r0 = r30
            java.lang.StringBuilder r30 = r0.append(r15)
            java.lang.String r30 = r30.toString()
            r29.<init>(r30)
            throw r29
        L_0x04df:
            int r0 = r10.first_fixup
            r16 = r0
            r0 = r32
            r1 = r16
            int r21 = r0.fixupOffset(r1)
            r17 = r21
            int r0 = r10.position
            r29 = r0
            r0 = r29
            if (r0 == r14) goto L_0x051f
            java.lang.Error r29 = new java.lang.Error
            java.lang.String r30 = "bad pc"
            r29.<init>(r30)
            throw r29
        L_0x04fd:
            r0 = r32
            r0.f48PC = r15
            r0 = r32
            r0.code = r12
            r29 = 0
            r0 = r29
            r1 = r32
            r1.fixup_count = r0
            r29 = 0
            r0 = r29
            r1 = r32
            r1.fixup_labels = r0
            r29 = 0
            r0 = r29
            r1 = r32
            r1.fixup_offsets = r0
            goto L_0x0008
        L_0x051f:
            r22 = r21
            goto L_0x023f
        L_0x0523:
            r13 = r14
            goto L_0x03e8
        L_0x0526:
            r21 = r22
            r13 = r14
            goto L_0x02b6
        */ throw new UnsupportedOperationException ( "Method not decompiled: gnu.bytecode.CodeAttr.processFixups():void" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .