Source/sources/gnu/expr/LambdaExp.java
public void addMethodFor(gnu.bytecode.ClassType r59, gnu.expr.Compilation r60, gnu.bytecode.ObjectType r61) {
        /*
            r58 = this;
            java.lang.String r35 = r58.getName()
            gnu.expr.LambdaExp r41 = r58.outerLambda()
            r0 = r58
            gnu.expr.Keyword[] r0 = r0.keywords
            r55 = r0
            if (r55 != 0) goto L_0x01ec
            r24 = 0
        L_0x0012:
            r0 = r58
            gnu.expr.Expression[] r0 = r0.defaultArgs
            r55 = r0
            if (r55 != 0) goto L_0x01f9
            r40 = 0
        L_0x001c:
            r0 = r58
            int r0 = r0.flags
            r55 = r0
            r0 = r55
            r0 = r0 & 512(0x200, float:7.175E-43)
            r55 = r0
            if (r55 == 0) goto L_0x0208
            r39 = 0
        L_0x002c:
            r0 = r58
            int r0 = r0.max_args
            r55 = r0
            if (r55 < 0) goto L_0x0048
            r0 = r58
            int r0 = r0.min_args
            r55 = r0
            int r55 = r55 + r39
            r0 = r58
            int r0 = r0.max_args
            r56 = r0
            r0 = r55
            r1 = r56
            if (r0 >= r1) goto L_0x020c
        L_0x0048:
            r53 = 1
        L_0x004a:
            int r55 = r39 + 1
            r0 = r55
            gnu.bytecode.Method[] r0 = new gnu.bytecode.Method[r0]
            r30 = r0
            r0 = r30
            r1 = r58
            r1.primBodyMethods = r0
            r0 = r58
            gnu.bytecode.Method[] r0 = r0.primMethods
            r55 = r0
            if (r55 != 0) goto L_0x0066
            r0 = r30
            r1 = r58
            r1.primMethods = r0
        L_0x0066:
            r19 = 0
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x0210
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r56 = 4096(0x1000, double:2.0237E-320)
            boolean r55 = r55.getFlag(r56)
            if (r55 == 0) goto L_0x0210
            r20 = 0
        L_0x0080:
            java.lang.StringBuffer r37 = new java.lang.StringBuffer
            r55 = 60
            r0 = r37
            r1 = r55
            r0.<init>(r1)
            if (r20 == 0) goto L_0x02be
            r32 = 8
        L_0x008f:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x00a5
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            boolean r55 = r55.needsExternalAccess()
            if (r55 == 0) goto L_0x02c2
            r32 = r32 | 1
        L_0x00a5:
            boolean r55 = r41.isModuleBody()
            if (r55 != 0) goto L_0x00b3
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x00b5
        L_0x00b3:
            if (r35 != 0) goto L_0x00d3
        L_0x00b5:
            java.lang.String r55 = "lambda"
            r0 = r37
            r1 = r55
            r0.append(r1)
            r0 = r60
            int r0 = r0.method_counter
            r55 = r0
            int r55 = r55 + 1
            r0 = r55
            r1 = r60
            r1.method_counter = r0
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x00d3:
            r55 = 67
            r0 = r19
            r1 = r55
            if (r0 != r1) goto L_0x02e7
            java.lang.String r55 = "<clinit>"
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x00e4:
            r55 = 1024(0x400, float:1.435E-42)
            r0 = r58
            r1 = r55
            boolean r55 = r0.getFlag(r1)
            if (r55 == 0) goto L_0x00f9
            java.lang.String r55 = "$C"
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x00f9:
            int r55 = r58.getCallConvention()
            r56 = 2
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x02fa
            if (r19 != 0) goto L_0x02fa
            r54 = 1
        L_0x0109:
            if (r19 == 0) goto L_0x0111
            if (r20 == 0) goto L_0x02fe
            r55 = r32 & -3
            int r32 = r55 + 1
        L_0x0111:
            boolean r55 = r59.isInterface()
            if (r55 != 0) goto L_0x011d
            boolean r55 = r58.isAbstract()
            if (r55 == 0) goto L_0x0123
        L_0x011d:
            r0 = r32
            r0 = r0 | 1024(0x400, float:1.435E-42)
            r32 = r0
        L_0x0123:
            boolean r55 = r58.isClassMethod()
            if (r55 == 0) goto L_0x0155
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x0155
            r0 = r58
            int r0 = r0.min_args
            r55 = r0
            r0 = r58
            int r0 = r0.max_args
            r56 = r0
            r0 = r55
            r1 = r56
            if (r0 != r1) goto L_0x0155
            r18 = 0
            r17 = 0
            gnu.expr.Declaration r42 = r58.firstDecl()
        L_0x014b:
            if (r42 != 0) goto L_0x0304
            r0 = r58
            gnu.bytecode.Type r0 = r0.returnType
            r55 = r0
            if (r55 == 0) goto L_0x0320
        L_0x0155:
            r55 = 1024(0x400, float:1.435E-42)
            r0 = r58
            r1 = r55
            boolean r55 = r0.getFlag(r1)
            if (r55 != 0) goto L_0x016d
            int r55 = r58.getCallConvention()
            r56 = 2
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x0379
        L_0x016d:
            gnu.bytecode.PrimType r46 = gnu.bytecode.Type.voidType
        L_0x016f:
            if (r61 == 0) goto L_0x0383
            r0 = r61
            r1 = r59
            if (r0 == r1) goto L_0x0383
            r14 = 1
        L_0x0178:
            r8 = 0
            int r55 = r58.getCallConvention()
            r56 = 2
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x0188
            if (r19 != 0) goto L_0x0188
            r8 = 1
        L_0x0188:
            int r36 = r37.length()
            r16 = 0
        L_0x018e:
            r0 = r16
            r1 = r39
            if (r0 > r1) goto L_0x0590
            r0 = r37
            r1 = r36
            r0.setLength(r1)
            r0 = r58
            int r0 = r0.min_args
            r55 = r0
            int r43 = r55 + r16
            r38 = r43
            r0 = r16
            r1 = r39
            if (r0 != r1) goto L_0x01af
            if (r53 == 0) goto L_0x01af
            int r38 = r38 + 1
        L_0x01af:
            int r55 = r14 + r38
            int r55 = r55 + r8
            r0 = r55
            gnu.bytecode.Type[] r5 = new gnu.bytecode.Type[r0]
            if (r14 <= 0) goto L_0x01bd
            r55 = 0
            r5[r55] = r61
        L_0x01bd:
            gnu.expr.Declaration r52 = r58.firstDecl()
            if (r52 == 0) goto L_0x01cd
            boolean r55 = r52.isThisParameter()
            if (r55 == 0) goto L_0x01cd
            gnu.expr.Declaration r52 = r52.nextDecl()
        L_0x01cd:
            r21 = 0
            r22 = r21
        L_0x01d1:
            r0 = r22
            r1 = r43
            if (r0 >= r1) goto L_0x0386
            int r21 = r22 + 1
            int r55 = r14 + r22
            gnu.bytecode.Type r56 = r52.getType()
            gnu.bytecode.Type r56 = r56.getImplementationType()
            r5[r55] = r56
            gnu.expr.Declaration r52 = r52.nextDecl()
            r22 = r21
            goto L_0x01d1
        L_0x01ec:
            r0 = r58
            gnu.expr.Keyword[] r0 = r0.keywords
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r24 = r0
            goto L_0x0012
        L_0x01f9:
            r0 = r58
            gnu.expr.Expression[] r0 = r0.defaultArgs
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r55 = r0
            int r40 = r55 - r24
            goto L_0x001c
        L_0x0208:
            r39 = r40
            goto L_0x002c
        L_0x020c:
            r53 = 0
            goto L_0x004a
        L_0x0210:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x022a
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r56 = 2048(0x800, double:1.0118E-320)
            boolean r55 = r55.getFlag(r56)
            if (r55 == 0) goto L_0x022a
            r20 = 1
            goto L_0x0080
        L_0x022a:
            boolean r55 = r58.isClassMethod()
            if (r55 == 0) goto L_0x026b
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x0267
            r6 = r41
            gnu.expr.ClassExp r6 = (gnu.expr.ClassExp) r6
            boolean r55 = r6.isMakingClassPair()
            if (r55 == 0) goto L_0x0254
            if (r61 == 0) goto L_0x0254
            r20 = 1
        L_0x0246:
            gnu.expr.LambdaExp r0 = r6.initMethod
            r55 = r0
            r0 = r58
            r1 = r55
            if (r0 != r1) goto L_0x0257
            r19 = 73
            goto L_0x0080
        L_0x0254:
            r20 = 0
            goto L_0x0246
        L_0x0257:
            gnu.expr.LambdaExp r0 = r6.clinitMethod
            r55 = r0
            r0 = r58
            r1 = r55
            if (r0 != r1) goto L_0x0080
            r19 = 67
            r20 = 1
            goto L_0x0080
        L_0x0267:
            r20 = 0
            goto L_0x0080
        L_0x026b:
            r0 = r58
            gnu.bytecode.Variable r0 = r0.thisVariable
            r55 = r0
            if (r55 != 0) goto L_0x0279
            r0 = r61
            r1 = r59
            if (r0 != r1) goto L_0x027d
        L_0x0279:
            r20 = 0
            goto L_0x0080
        L_0x027d:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x02ba
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r0 = r55
            gnu.expr.ScopeExp r0 = r0.context
            r55 = r0
            r0 = r55
            boolean r0 = r0 instanceof gnu.expr.ModuleExp
            r55 = r0
            if (r55 == 0) goto L_0x02ba
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r0 = r55
            gnu.expr.ScopeExp r0 = r0.context
            r31 = r0
            gnu.expr.ModuleExp r31 = (gnu.expr.ModuleExp) r31
            gnu.bytecode.ClassType r55 = r31.getSuperType()
            if (r55 != 0) goto L_0x02b7
            gnu.bytecode.ClassType[] r55 = r31.getInterfaces()
            if (r55 != 0) goto L_0x02b7
            r20 = 1
        L_0x02b5:
            goto L_0x0080
        L_0x02b7:
            r20 = 0
            goto L_0x02b5
        L_0x02ba:
            r20 = 1
            goto L_0x0080
        L_0x02be:
            r32 = 0
            goto L_0x008f
        L_0x02c2:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            boolean r55 = r55.isPrivate()
            if (r55 == 0) goto L_0x02e5
            r11 = 0
        L_0x02cf:
            boolean r55 = r58.isClassMethod()
            if (r55 == 0) goto L_0x02e1
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r0 = r55
            short r11 = r0.getAccessFlags(r11)
        L_0x02e1:
            r32 = r32 | r11
            goto L_0x00a5
        L_0x02e5:
            r11 = 1
            goto L_0x02cf
        L_0x02e7:
            java.lang.Object r55 = r58.getSymbol()
            if (r55 == 0) goto L_0x00e4
            java.lang.String r55 = gnu.expr.Compilation.mangleName(r35)
            r0 = r37
            r1 = r55
            r0.append(r1)
            goto L_0x00e4
        L_0x02fa:
            r54 = 0
            goto L_0x0109
        L_0x02fe:
            r55 = r32 & 2
            int r32 = r55 + 2
            goto L_0x0111
        L_0x0304:
            boolean r55 = r42.isThisParameter()
            if (r55 == 0) goto L_0x0314
            int r17 = r17 + -1
        L_0x030c:
            gnu.expr.Declaration r42 = r42.nextDecl()
            int r17 = r17 + 1
            goto L_0x014b
        L_0x0314:
            r56 = 8192(0x2000, double:4.0474E-320)
            r0 = r42
            r1 = r56
            boolean r55 = r0.getFlag(r1)
            if (r55 != 0) goto L_0x030c
        L_0x0320:
            if (r18 != 0) goto L_0x0339
            java.lang.String r28 = r37.toString()
            gnu.expr.LambdaExp$1 r15 = new gnu.expr.LambdaExp$1
            r0 = r58
            r1 = r28
            r15.<init>(r1)
            r55 = 2
            r0 = r59
            r1 = r55
            gnu.bytecode.Method[] r18 = r0.getMethods(r15, r1)
        L_0x0339:
            r50 = 0
            r0 = r18
            int r0 = r0.length
            r16 = r0
        L_0x0340:
            int r16 = r16 + -1
            if (r16 < 0) goto L_0x0362
            r29 = r18[r16]
            if (r42 != 0) goto L_0x0351
            gnu.bytecode.Type r44 = r29.getReturnType()
        L_0x034c:
            if (r50 != 0) goto L_0x0358
            r50 = r44
            goto L_0x0340
        L_0x0351:
            gnu.bytecode.Type[] r55 = r29.getParameterTypes()
            r44 = r55[r17]
            goto L_0x034c
        L_0x0358:
            r0 = r44
            r1 = r50
            if (r0 == r1) goto L_0x0340
            if (r42 != 0) goto L_0x030c
            goto L_0x0155
        L_0x0362:
            if (r50 == 0) goto L_0x036d
            if (r42 == 0) goto L_0x0371
            r0 = r42
            r1 = r50
            r0.setType(r1)
        L_0x036d:
            if (r42 != 0) goto L_0x030c
            goto L_0x0155
        L_0x0371:
            r0 = r58
            r1 = r50
            r0.setCoercedReturnType(r1)
            goto L_0x036d
        L_0x0379:
            gnu.bytecode.Type r55 = r58.getReturnType()
            gnu.bytecode.Type r46 = r55.getImplementationType()
            goto L_0x016f
        L_0x0383:
            r14 = 0
            goto L_0x0178
        L_0x0386:
            if (r8 == 0) goto L_0x0391
            int r0 = r5.length
            r55 = r0
            int r55 = r55 + -1
            gnu.bytecode.ClassType r56 = gnu.expr.Compilation.typeCallContext
            r5[r55] = r56
        L_0x0391:
            r0 = r43
            r1 = r38
            if (r0 >= r1) goto L_0x0402
            gnu.bytecode.Type r25 = r52.getType()
            java.lang.String r26 = r25.getName()
            int r55 = r59.getClassfileVersion()
            r56 = 3211264(0x310000, float:4.49994E-39)
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x0460
            r0 = r25
            boolean r0 = r0 instanceof gnu.bytecode.ArrayType
            r55 = r0
            if (r55 == 0) goto L_0x0460
            r0 = r32
            r0 = r0 | 128(0x80, float:1.794E-43)
            r32 = r0
        L_0x03b9:
            if (r24 > 0) goto L_0x03d5
            r0 = r39
            r1 = r40
            if (r0 < r1) goto L_0x03d5
            java.lang.String r55 = "gnu.lists.LList"
            r0 = r55
            r1 = r26
            boolean r55 = r0.equals(r1)
            if (r55 != 0) goto L_0x03f1
            r0 = r25
            boolean r0 = r0 instanceof gnu.bytecode.ArrayType
            r55 = r0
            if (r55 != 0) goto L_0x03f1
        L_0x03d5:
            gnu.bytecode.ArrayType r25 = gnu.expr.Compilation.objArrayType
            gnu.bytecode.Variable r55 = new gnu.bytecode.Variable
            java.lang.String r56 = "argsArray"
            gnu.bytecode.ArrayType r57 = gnu.expr.Compilation.objArrayType
            r55.<init>(r56, r57)
            r0 = r55
            r1 = r58
            r1.argsArray = r0
            r0 = r58
            gnu.bytecode.Variable r0 = r0.argsArray
            r55 = r0
            r56 = 1
            r55.setParameter(r56)
        L_0x03f1:
            r0 = r52
            r1 = r58
            r1.firstArgsArrayArg = r0
            int r0 = r5.length
            r56 = r0
            if (r54 == 0) goto L_0x046b
            r55 = 2
        L_0x03fe:
            int r55 = r56 - r55
            r5[r55] = r25
        L_0x0402:
            if (r54 == 0) goto L_0x040d
            java.lang.String r55 = "$X"
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x040d:
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 != 0) goto L_0x0429
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ModuleExp
            r55 = r0
            if (r55 == 0) goto L_0x046e
            r55 = r41
            gnu.expr.ModuleExp r55 = (gnu.expr.ModuleExp) r55
            r56 = 131072(0x20000, float:1.83671E-40)
            boolean r55 = r55.getFlag(r56)
            if (r55 == 0) goto L_0x046e
        L_0x0429:
            r7 = 1
        L_0x042a:
            java.lang.String r35 = r37.toString()
            r45 = 0
            int r27 = r37.length()
        L_0x0434:
            r47 = r59
        L_0x0436:
            if (r47 == 0) goto L_0x0472
            r0 = r47
            r1 = r35
            gnu.bytecode.Method r55 = r0.getDeclaredMethod(r1, r5)
            if (r55 == 0) goto L_0x0470
            r0 = r37
            r1 = r27
            r0.setLength(r1)
            r55 = 36
            r0 = r37
            r1 = r55
            r0.append(r1)
            int r45 = r45 + 1
            r0 = r37
            r1 = r45
            r0.append(r1)
            java.lang.String r35 = r37.toString()
            goto L_0x0434
        L_0x0460:
            java.lang.String r55 = "$V"
            r0 = r37
            r1 = r55
            r0.append(r1)
            goto L_0x03b9
        L_0x046b:
            r55 = 1
            goto L_0x03fe
        L_0x046e:
            r7 = 0
            goto L_0x042a
        L_0x0470:
            if (r7 == 0) goto L_0x04f7
        L_0x0472:
            r0 = r59
            r1 = r35
            r2 = r46
            r3 = r32
            gnu.bytecode.Method r29 = r0.addMethod(r1, r5, r2, r3)
            r30[r16] = r29
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            if (r55 == 0) goto L_0x058c
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r55 = r0
            if (r55 <= 0) goto L_0x058c
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r34 = r0
            r0 = r34
            gnu.bytecode.ClassType[] r13 = new gnu.bytecode.ClassType[r0]
            r23 = 0
        L_0x04a6:
            r0 = r23
            r1 = r34
            if (r0 >= r1) goto L_0x0582
            r12 = 0
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            r48 = r55[r23]
            r33 = 0
            r0 = r48
            boolean r0 = r0 instanceof gnu.expr.ReferenceExp
            r55 = r0
            if (r55 == 0) goto L_0x0533
            r49 = r48
            gnu.expr.ReferenceExp r49 = (gnu.expr.ReferenceExp) r49
            gnu.expr.Declaration r9 = r49.getBinding()
            if (r9 == 0) goto L_0x051b
            gnu.expr.Expression r10 = r9.getValue()
            boolean r0 = r10 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x04fd
            gnu.expr.ClassExp r10 = (gnu.expr.ClassExp) r10
            r0 = r60
            gnu.bytecode.ClassType r12 = r10.getCompiledClassType(r0)
        L_0x04db:
            if (r12 != 0) goto L_0x04e1
            if (r33 != 0) goto L_0x04e1
            java.lang.String r33 = "invalid throws specification"
        L_0x04e1:
            if (r33 == 0) goto L_0x04f2
            r55 = 101(0x65, float:1.42E-43)
            r0 = r60
            r1 = r55
            r2 = r33
            r3 = r48
            r0.error(r1, r2, r3)
            gnu.bytecode.ClassType r12 = gnu.bytecode.Type.javalangThrowableType
        L_0x04f2:
            r13[r23] = r12
            int r23 = r23 + 1
            goto L_0x04a6
        L_0x04f7:
            gnu.bytecode.ClassType r47 = r47.getSuperclass()
            goto L_0x0436
        L_0x04fd:
            java.lang.StringBuilder r55 = new java.lang.StringBuilder
            r55.<init>()
            java.lang.String r56 = "throws specification "
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = r9.getName()
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = " has non-class lexical binding"
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r33 = r55.toString()
            goto L_0x04db
        L_0x051b:
            java.lang.StringBuilder r55 = new java.lang.StringBuilder
            r55.<init>()
            java.lang.String r56 = "unknown class "
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = r49.getName()
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r33 = r55.toString()
            goto L_0x04db
        L_0x0533:
            r0 = r48
            boolean r0 = r0 instanceof gnu.expr.QuoteExp
            r55 = r0
            if (r55 == 0) goto L_0x04db
            r55 = r48
            gnu.expr.QuoteExp r55 = (gnu.expr.QuoteExp) r55
            java.lang.Object r51 = r55.getValue()
            r0 = r51
            boolean r0 = r0 instanceof java.lang.Class
            r55 = r0
            if (r55 == 0) goto L_0x0551
            java.lang.Class r51 = (java.lang.Class) r51
            gnu.bytecode.Type r51 = gnu.bytecode.Type.make(r51)
        L_0x0551:
            r0 = r51
            boolean r0 = r0 instanceof gnu.bytecode.ClassType
            r55 = r0
            if (r55 == 0) goto L_0x055d
            r12 = r51
            gnu.bytecode.ClassType r12 = (gnu.bytecode.ClassType) r12
        L_0x055d:
            if (r12 == 0) goto L_0x04db
            gnu.bytecode.ClassType r55 = gnu.bytecode.Type.javalangThrowableType
            r0 = r55
            boolean r55 = r12.isSubtype(r0)
            if (r55 != 0) goto L_0x04db
            java.lang.StringBuilder r55 = new java.lang.StringBuilder
            r55.<init>()
            java.lang.String r56 = r12.getName()
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = " does not extend Throwable"
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r33 = r55.toString()
            goto L_0x04db
        L_0x0582:
            gnu.bytecode.ExceptionsAttr r4 = new gnu.bytecode.ExceptionsAttr
            r0 = r29
            r4.<init>(r0)
            r4.setExceptions(r13)
        L_0x058c:
            int r16 = r16 + 1
            goto L_0x018e
        L_0x0590:
            return
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.expr.LambdaExp.addMethodFor(gnu.bytecode.ClassType, gnu.expr.Compilation, gnu.bytecode.ObjectType):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 addMethodFor(gnu.bytecode.ClassType r59, gnu.expr.Compilation r60, gnu.bytecode.ObjectType r61) {
        /*
            r58 = this;
            java.lang.String r35 = r58.getName()
            gnu.expr.LambdaExp r41 = r58.outerLambda()
            r0 = r58
            gnu.expr.Keyword[] r0 = r0.keywords
            r55 = r0
            if (r55 != 0) goto L_0x01ec
            r24 = 0
        L_0x0012:
            r0 = r58
            gnu.expr.Expression[] r0 = r0.defaultArgs
            r55 = r0
            if (r55 != 0) goto L_0x01f9
            r40 = 0
        L_0x001c:
            r0 = r58
            int r0 = r0.flags
            r55 = r0
            r0 = r55
            r0 = r0 & 512(0x200, float:7.175E-43)
            r55 = r0
            if (r55 == 0) goto L_0x0208
            r39 = 0
        L_0x002c:
            r0 = r58
            int r0 = r0.max_args
            r55 = r0
            if (r55 < 0) goto L_0x0048
            r0 = r58
            int r0 = r0.min_args
            r55 = r0
            int r55 = r55 + r39
            r0 = r58
            int r0 = r0.max_args
            r56 = r0
            r0 = r55
            r1 = r56
            if (r0 >= r1) goto L_0x020c
        L_0x0048:
            r53 = 1
        L_0x004a:
            int r55 = r39 + 1
            r0 = r55
            gnu.bytecode.Method[] r0 = new gnu.bytecode.Method[r0]
            r30 = r0
            r0 = r30
            r1 = r58
            r1.primBodyMethods = r0
            r0 = r58
            gnu.bytecode.Method[] r0 = r0.primMethods
            r55 = r0
            if (r55 != 0) goto L_0x0066
            r0 = r30
            r1 = r58
            r1.primMethods = r0
        L_0x0066:
            r19 = 0
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x0210
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r56 = 4096(0x1000, double:2.0237E-320)
            boolean r55 = r55.getFlag(r56)
            if (r55 == 0) goto L_0x0210
            r20 = 0
        L_0x0080:
            java.lang.StringBuffer r37 = new java.lang.StringBuffer
            r55 = 60
            r0 = r37
            r1 = r55
            r0.<init>(r1)
            if (r20 == 0) goto L_0x02be
            r32 = 8
        L_0x008f:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x00a5
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            boolean r55 = r55.needsExternalAccess()
            if (r55 == 0) goto L_0x02c2
            r32 = r32 | 1
        L_0x00a5:
            boolean r55 = r41.isModuleBody()
            if (r55 != 0) goto L_0x00b3
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x00b5
        L_0x00b3:
            if (r35 != 0) goto L_0x00d3
        L_0x00b5:
            java.lang.String r55 = "lambda"
            r0 = r37
            r1 = r55
            r0.append(r1)
            r0 = r60
            int r0 = r0.method_counter
            r55 = r0
            int r55 = r55 + 1
            r0 = r55
            r1 = r60
            r1.method_counter = r0
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x00d3:
            r55 = 67
            r0 = r19
            r1 = r55
            if (r0 != r1) goto L_0x02e7
            java.lang.String r55 = "<clinit>"
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x00e4:
            r55 = 1024(0x400, float:1.435E-42)
            r0 = r58
            r1 = r55
            boolean r55 = r0.getFlag(r1)
            if (r55 == 0) goto L_0x00f9
            java.lang.String r55 = "$C"
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x00f9:
            int r55 = r58.getCallConvention()
            r56 = 2
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x02fa
            if (r19 != 0) goto L_0x02fa
            r54 = 1
        L_0x0109:
            if (r19 == 0) goto L_0x0111
            if (r20 == 0) goto L_0x02fe
            r55 = r32 & -3
            int r32 = r55 + 1
        L_0x0111:
            boolean r55 = r59.isInterface()
            if (r55 != 0) goto L_0x011d
            boolean r55 = r58.isAbstract()
            if (r55 == 0) goto L_0x0123
        L_0x011d:
            r0 = r32
            r0 = r0 | 1024(0x400, float:1.435E-42)
            r32 = r0
        L_0x0123:
            boolean r55 = r58.isClassMethod()
            if (r55 == 0) goto L_0x0155
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x0155
            r0 = r58
            int r0 = r0.min_args
            r55 = r0
            r0 = r58
            int r0 = r0.max_args
            r56 = r0
            r0 = r55
            r1 = r56
            if (r0 != r1) goto L_0x0155
            r18 = 0
            r17 = 0
            gnu.expr.Declaration r42 = r58.firstDecl()
        L_0x014b:
            if (r42 != 0) goto L_0x0304
            r0 = r58
            gnu.bytecode.Type r0 = r0.returnType
            r55 = r0
            if (r55 == 0) goto L_0x0320
        L_0x0155:
            r55 = 1024(0x400, float:1.435E-42)
            r0 = r58
            r1 = r55
            boolean r55 = r0.getFlag(r1)
            if (r55 != 0) goto L_0x016d
            int r55 = r58.getCallConvention()
            r56 = 2
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x0379
        L_0x016d:
            gnu.bytecode.PrimType r46 = gnu.bytecode.Type.voidType
        L_0x016f:
            if (r61 == 0) goto L_0x0383
            r0 = r61
            r1 = r59
            if (r0 == r1) goto L_0x0383
            r14 = 1
        L_0x0178:
            r8 = 0
            int r55 = r58.getCallConvention()
            r56 = 2
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x0188
            if (r19 != 0) goto L_0x0188
            r8 = 1
        L_0x0188:
            int r36 = r37.length()
            r16 = 0
        L_0x018e:
            r0 = r16
            r1 = r39
            if (r0 > r1) goto L_0x0590
            r0 = r37
            r1 = r36
            r0.setLength(r1)
            r0 = r58
            int r0 = r0.min_args
            r55 = r0
            int r43 = r55 + r16
            r38 = r43
            r0 = r16
            r1 = r39
            if (r0 != r1) goto L_0x01af
            if (r53 == 0) goto L_0x01af
            int r38 = r38 + 1
        L_0x01af:
            int r55 = r14 + r38
            int r55 = r55 + r8
            r0 = r55
            gnu.bytecode.Type[] r5 = new gnu.bytecode.Type[r0]
            if (r14 <= 0) goto L_0x01bd
            r55 = 0
            r5[r55] = r61
        L_0x01bd:
            gnu.expr.Declaration r52 = r58.firstDecl()
            if (r52 == 0) goto L_0x01cd
            boolean r55 = r52.isThisParameter()
            if (r55 == 0) goto L_0x01cd
            gnu.expr.Declaration r52 = r52.nextDecl()
        L_0x01cd:
            r21 = 0
            r22 = r21
        L_0x01d1:
            r0 = r22
            r1 = r43
            if (r0 >= r1) goto L_0x0386
            int r21 = r22 + 1
            int r55 = r14 + r22
            gnu.bytecode.Type r56 = r52.getType()
            gnu.bytecode.Type r56 = r56.getImplementationType()
            r5[r55] = r56
            gnu.expr.Declaration r52 = r52.nextDecl()
            r22 = r21
            goto L_0x01d1
        L_0x01ec:
            r0 = r58
            gnu.expr.Keyword[] r0 = r0.keywords
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r24 = r0
            goto L_0x0012
        L_0x01f9:
            r0 = r58
            gnu.expr.Expression[] r0 = r0.defaultArgs
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r55 = r0
            int r40 = r55 - r24
            goto L_0x001c
        L_0x0208:
            r39 = r40
            goto L_0x002c
        L_0x020c:
            r53 = 0
            goto L_0x004a
        L_0x0210:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x022a
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r56 = 2048(0x800, double:1.0118E-320)
            boolean r55 = r55.getFlag(r56)
            if (r55 == 0) goto L_0x022a
            r20 = 1
            goto L_0x0080
        L_0x022a:
            boolean r55 = r58.isClassMethod()
            if (r55 == 0) goto L_0x026b
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x0267
            r6 = r41
            gnu.expr.ClassExp r6 = (gnu.expr.ClassExp) r6
            boolean r55 = r6.isMakingClassPair()
            if (r55 == 0) goto L_0x0254
            if (r61 == 0) goto L_0x0254
            r20 = 1
        L_0x0246:
            gnu.expr.LambdaExp r0 = r6.initMethod
            r55 = r0
            r0 = r58
            r1 = r55
            if (r0 != r1) goto L_0x0257
            r19 = 73
            goto L_0x0080
        L_0x0254:
            r20 = 0
            goto L_0x0246
        L_0x0257:
            gnu.expr.LambdaExp r0 = r6.clinitMethod
            r55 = r0
            r0 = r58
            r1 = r55
            if (r0 != r1) goto L_0x0080
            r19 = 67
            r20 = 1
            goto L_0x0080
        L_0x0267:
            r20 = 0
            goto L_0x0080
        L_0x026b:
            r0 = r58
            gnu.bytecode.Variable r0 = r0.thisVariable
            r55 = r0
            if (r55 != 0) goto L_0x0279
            r0 = r61
            r1 = r59
            if (r0 != r1) goto L_0x027d
        L_0x0279:
            r20 = 0
            goto L_0x0080
        L_0x027d:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x02ba
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r0 = r55
            gnu.expr.ScopeExp r0 = r0.context
            r55 = r0
            r0 = r55
            boolean r0 = r0 instanceof gnu.expr.ModuleExp
            r55 = r0
            if (r55 == 0) goto L_0x02ba
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r0 = r55
            gnu.expr.ScopeExp r0 = r0.context
            r31 = r0
            gnu.expr.ModuleExp r31 = (gnu.expr.ModuleExp) r31
            gnu.bytecode.ClassType r55 = r31.getSuperType()
            if (r55 != 0) goto L_0x02b7
            gnu.bytecode.ClassType[] r55 = r31.getInterfaces()
            if (r55 != 0) goto L_0x02b7
            r20 = 1
        L_0x02b5:
            goto L_0x0080
        L_0x02b7:
            r20 = 0
            goto L_0x02b5
        L_0x02ba:
            r20 = 1
            goto L_0x0080
        L_0x02be:
            r32 = 0
            goto L_0x008f
        L_0x02c2:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            boolean r55 = r55.isPrivate()
            if (r55 == 0) goto L_0x02e5
            r11 = 0
        L_0x02cf:
            boolean r55 = r58.isClassMethod()
            if (r55 == 0) goto L_0x02e1
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r0 = r55
            short r11 = r0.getAccessFlags(r11)
        L_0x02e1:
            r32 = r32 | r11
            goto L_0x00a5
        L_0x02e5:
            r11 = 1
            goto L_0x02cf
        L_0x02e7:
            java.lang.Object r55 = r58.getSymbol()
            if (r55 == 0) goto L_0x00e4
            java.lang.String r55 = gnu.expr.Compilation.mangleName(r35)
            r0 = r37
            r1 = r55
            r0.append(r1)
            goto L_0x00e4
        L_0x02fa:
            r54 = 0
            goto L_0x0109
        L_0x02fe:
            r55 = r32 & 2
            int r32 = r55 + 2
            goto L_0x0111
        L_0x0304:
            boolean r55 = r42.isThisParameter()
            if (r55 == 0) goto L_0x0314
            int r17 = r17 + -1
        L_0x030c:
            gnu.expr.Declaration r42 = r42.nextDecl()
            int r17 = r17 + 1
            goto L_0x014b
        L_0x0314:
            r56 = 8192(0x2000, double:4.0474E-320)
            r0 = r42
            r1 = r56
            boolean r55 = r0.getFlag(r1)
            if (r55 != 0) goto L_0x030c
        L_0x0320:
            if (r18 != 0) goto L_0x0339
            java.lang.String r28 = r37.toString()
            gnu.expr.LambdaExp$1 r15 = new gnu.expr.LambdaExp$1
            r0 = r58
            r1 = r28
            r15.<init>(r1)
            r55 = 2
            r0 = r59
            r1 = r55
            gnu.bytecode.Method[] r18 = r0.getMethods(r15, r1)
        L_0x0339:
            r50 = 0
            r0 = r18
            int r0 = r0.length
            r16 = r0
        L_0x0340:
            int r16 = r16 + -1
            if (r16 < 0) goto L_0x0362
            r29 = r18[r16]
            if (r42 != 0) goto L_0x0351
            gnu.bytecode.Type r44 = r29.getReturnType()
        L_0x034c:
            if (r50 != 0) goto L_0x0358
            r50 = r44
            goto L_0x0340
        L_0x0351:
            gnu.bytecode.Type[] r55 = r29.getParameterTypes()
            r44 = r55[r17]
            goto L_0x034c
        L_0x0358:
            r0 = r44
            r1 = r50
            if (r0 == r1) goto L_0x0340
            if (r42 != 0) goto L_0x030c
            goto L_0x0155
        L_0x0362:
            if (r50 == 0) goto L_0x036d
            if (r42 == 0) goto L_0x0371
            r0 = r42
            r1 = r50
            r0.setType(r1)
        L_0x036d:
            if (r42 != 0) goto L_0x030c
            goto L_0x0155
        L_0x0371:
            r0 = r58
            r1 = r50
            r0.setCoercedReturnType(r1)
            goto L_0x036d
        L_0x0379:
            gnu.bytecode.Type r55 = r58.getReturnType()
            gnu.bytecode.Type r46 = r55.getImplementationType()
            goto L_0x016f
        L_0x0383:
            r14 = 0
            goto L_0x0178
        L_0x0386:
            if (r8 == 0) goto L_0x0391
            int r0 = r5.length
            r55 = r0
            int r55 = r55 + -1
            gnu.bytecode.ClassType r56 = gnu.expr.Compilation.typeCallContext
            r5[r55] = r56
        L_0x0391:
            r0 = r43
            r1 = r38
            if (r0 >= r1) goto L_0x0402
            gnu.bytecode.Type r25 = r52.getType()
            java.lang.String r26 = r25.getName()
            int r55 = r59.getClassfileVersion()
            r56 = 3211264(0x310000, float:4.49994E-39)
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x0460
            r0 = r25
            boolean r0 = r0 instanceof gnu.bytecode.ArrayType
            r55 = r0
            if (r55 == 0) goto L_0x0460
            r0 = r32
            r0 = r0 | 128(0x80, float:1.794E-43)
            r32 = r0
        L_0x03b9:
            if (r24 > 0) goto L_0x03d5
            r0 = r39
            r1 = r40
            if (r0 < r1) goto L_0x03d5
            java.lang.String r55 = "gnu.lists.LList"
            r0 = r55
            r1 = r26
            boolean r55 = r0.equals(r1)
            if (r55 != 0) goto L_0x03f1
            r0 = r25
            boolean r0 = r0 instanceof gnu.bytecode.ArrayType
            r55 = r0
            if (r55 != 0) goto L_0x03f1
        L_0x03d5:
            gnu.bytecode.ArrayType r25 = gnu.expr.Compilation.objArrayType
            gnu.bytecode.Variable r55 = new gnu.bytecode.Variable
            java.lang.String r56 = "argsArray"
            gnu.bytecode.ArrayType r57 = gnu.expr.Compilation.objArrayType
            r55.<init>(r56, r57)
            r0 = r55
            r1 = r58
            r1.argsArray = r0
            r0 = r58
            gnu.bytecode.Variable r0 = r0.argsArray
            r55 = r0
            r56 = 1
            r55.setParameter(r56)
        L_0x03f1:
            r0 = r52
            r1 = r58
            r1.firstArgsArrayArg = r0
            int r0 = r5.length
            r56 = r0
            if (r54 == 0) goto L_0x046b
            r55 = 2
        L_0x03fe:
            int r55 = r56 - r55
            r5[r55] = r25
        L_0x0402:
            if (r54 == 0) goto L_0x040d
            java.lang.String r55 = "$X"
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x040d:
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 != 0) goto L_0x0429
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ModuleExp
            r55 = r0
            if (r55 == 0) goto L_0x046e
            r55 = r41
            gnu.expr.ModuleExp r55 = (gnu.expr.ModuleExp) r55
            r56 = 131072(0x20000, float:1.83671E-40)
            boolean r55 = r55.getFlag(r56)
            if (r55 == 0) goto L_0x046e
        L_0x0429:
            r7 = 1
        L_0x042a:
            java.lang.String r35 = r37.toString()
            r45 = 0
            int r27 = r37.length()
        L_0x0434:
            r47 = r59
        L_0x0436:
            if (r47 == 0) goto L_0x0472
            r0 = r47
            r1 = r35
            gnu.bytecode.Method r55 = r0.getDeclaredMethod(r1, r5)
            if (r55 == 0) goto L_0x0470
            r0 = r37
            r1 = r27
            r0.setLength(r1)
            r55 = 36
            r0 = r37
            r1 = r55
            r0.append(r1)
            int r45 = r45 + 1
            r0 = r37
            r1 = r45
            r0.append(r1)
            java.lang.String r35 = r37.toString()
            goto L_0x0434
        L_0x0460:
            java.lang.String r55 = "$V"
            r0 = r37
            r1 = r55
            r0.append(r1)
            goto L_0x03b9
        L_0x046b:
            r55 = 1
            goto L_0x03fe
        L_0x046e:
            r7 = 0
            goto L_0x042a
        L_0x0470:
            if (r7 == 0) goto L_0x04f7
        L_0x0472:
            r0 = r59
            r1 = r35
            r2 = r46
            r3 = r32
            gnu.bytecode.Method r29 = r0.addMethod(r1, r5, r2, r3)
            r30[r16] = r29
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            if (r55 == 0) goto L_0x058c
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r55 = r0
            if (r55 <= 0) goto L_0x058c
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r34 = r0
            r0 = r34
            gnu.bytecode.ClassType[] r13 = new gnu.bytecode.ClassType[r0]
            r23 = 0
        L_0x04a6:
            r0 = r23
            r1 = r34
            if (r0 >= r1) goto L_0x0582
            r12 = 0
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            r48 = r55[r23]
            r33 = 0
            r0 = r48
            boolean r0 = r0 instanceof gnu.expr.ReferenceExp
            r55 = r0
            if (r55 == 0) goto L_0x0533
            r49 = r48
            gnu.expr.ReferenceExp r49 = (gnu.expr.ReferenceExp) r49
            gnu.expr.Declaration r9 = r49.getBinding()
            if (r9 == 0) goto L_0x051b
            gnu.expr.Expression r10 = r9.getValue()
            boolean r0 = r10 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x04fd
            gnu.expr.ClassExp r10 = (gnu.expr.ClassExp) r10
            r0 = r60
            gnu.bytecode.ClassType r12 = r10.getCompiledClassType(r0)
        L_0x04db:
            if (r12 != 0) goto L_0x04e1
            if (r33 != 0) goto L_0x04e1
            java.lang.String r33 = "invalid throws specification"
        L_0x04e1:
            if (r33 == 0) goto L_0x04f2
            r55 = 101(0x65, float:1.42E-43)
            r0 = r60
            r1 = r55
            r2 = r33
            r3 = r48
            r0.error(r1, r2, r3)
            gnu.bytecode.ClassType r12 = gnu.bytecode.Type.javalangThrowableType
        L_0x04f2:
            r13[r23] = r12
            int r23 = r23 + 1
            goto L_0x04a6
        L_0x04f7:
            gnu.bytecode.ClassType r47 = r47.getSuperclass()
            goto L_0x0436
        L_0x04fd:
            java.lang.StringBuilder r55 = new java.lang.StringBuilder
            r55.<init>()
            java.lang.String r56 = "throws specification "
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = r9.getName()
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = " has non-class lexical binding"
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r33 = r55.toString()
            goto L_0x04db
        L_0x051b:
            java.lang.StringBuilder r55 = new java.lang.StringBuilder
            r55.<init>()
            java.lang.String r56 = "unknown class "
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = r49.getName()
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r33 = r55.toString()
            goto L_0x04db
        L_0x0533:
            r0 = r48
            boolean r0 = r0 instanceof gnu.expr.QuoteExp
            r55 = r0
            if (r55 == 0) goto L_0x04db
            r55 = r48
            gnu.expr.QuoteExp r55 = (gnu.expr.QuoteExp) r55
            java.lang.Object r51 = r55.getValue()
            r0 = r51
            boolean r0 = r0 instanceof java.lang.Class
            r55 = r0
            if (r55 == 0) goto L_0x0551
            java.lang.Class r51 = (java.lang.Class) r51
            gnu.bytecode.Type r51 = gnu.bytecode.Type.make(r51)
        L_0x0551:
            r0 = r51
            boolean r0 = r0 instanceof gnu.bytecode.ClassType
            r55 = r0
            if (r55 == 0) goto L_0x055d
            r12 = r51
            gnu.bytecode.ClassType r12 = (gnu.bytecode.ClassType) r12
        L_0x055d:
            if (r12 == 0) goto L_0x04db
            gnu.bytecode.ClassType r55 = gnu.bytecode.Type.javalangThrowableType
            r0 = r55
            boolean r55 = r12.isSubtype(r0)
            if (r55 != 0) goto L_0x04db
            java.lang.StringBuilder r55 = new java.lang.StringBuilder
            r55.<init>()
            java.lang.String r56 = r12.getName()
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = " does not extend Throwable"
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r33 = r55.toString()
            goto L_0x04db
        L_0x0582:
            gnu.bytecode.ExceptionsAttr r4 = new gnu.bytecode.ExceptionsAttr
            r0 = r29
            r4.<init>(r0)
            r4.setExceptions(r13)
        L_0x058c:
            int r16 = r16 + 1
            goto L_0x018e
        L_0x0590:
            return
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.expr.LambdaExp.addMethodFor(gnu.bytecode.ClassType, gnu.expr.Compilation, gnu.bytecode.ObjectType):void");
    }
public void addMethodFor ( gnu . bytecode . ClassType r59 , gnu . expr . Compilation r60 , gnu . bytecode . ObjectType r61 ) { /*
            r58 = this;
            java.lang.String r35 = r58.getName()
            gnu.expr.LambdaExp r41 = r58.outerLambda()
            r0 = r58
            gnu.expr.Keyword[] r0 = r0.keywords
            r55 = r0
            if (r55 != 0) goto L_0x01ec
            r24 = 0
        L_0x0012:
            r0 = r58
            gnu.expr.Expression[] r0 = r0.defaultArgs
            r55 = r0
            if (r55 != 0) goto L_0x01f9
            r40 = 0
        L_0x001c:
            r0 = r58
            int r0 = r0.flags
            r55 = r0
            r0 = r55
            r0 = r0 & 512(0x200, float:7.175E-43)
            r55 = r0
            if (r55 == 0) goto L_0x0208
            r39 = 0
        L_0x002c:
            r0 = r58
            int r0 = r0.max_args
            r55 = r0
            if (r55 < 0) goto L_0x0048
            r0 = r58
            int r0 = r0.min_args
            r55 = r0
            int r55 = r55 + r39
            r0 = r58
            int r0 = r0.max_args
            r56 = r0
            r0 = r55
            r1 = r56
            if (r0 >= r1) goto L_0x020c
        L_0x0048:
            r53 = 1
        L_0x004a:
            int r55 = r39 + 1
            r0 = r55
            gnu.bytecode.Method[] r0 = new gnu.bytecode.Method[r0]
            r30 = r0
            r0 = r30
            r1 = r58
            r1.primBodyMethods = r0
            r0 = r58
            gnu.bytecode.Method[] r0 = r0.primMethods
            r55 = r0
            if (r55 != 0) goto L_0x0066
            r0 = r30
            r1 = r58
            r1.primMethods = r0
        L_0x0066:
            r19 = 0
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x0210
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r56 = 4096(0x1000, double:2.0237E-320)
            boolean r55 = r55.getFlag(r56)
            if (r55 == 0) goto L_0x0210
            r20 = 0
        L_0x0080:
            java.lang.StringBuffer r37 = new java.lang.StringBuffer
            r55 = 60
            r0 = r37
            r1 = r55
            r0.<init>(r1)
            if (r20 == 0) goto L_0x02be
            r32 = 8
        L_0x008f:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x00a5
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            boolean r55 = r55.needsExternalAccess()
            if (r55 == 0) goto L_0x02c2
            r32 = r32 | 1
        L_0x00a5:
            boolean r55 = r41.isModuleBody()
            if (r55 != 0) goto L_0x00b3
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x00b5
        L_0x00b3:
            if (r35 != 0) goto L_0x00d3
        L_0x00b5:
            java.lang.String r55 = "lambda"
            r0 = r37
            r1 = r55
            r0.append(r1)
            r0 = r60
            int r0 = r0.method_counter
            r55 = r0
            int r55 = r55 + 1
            r0 = r55
            r1 = r60
            r1.method_counter = r0
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x00d3:
            r55 = 67
            r0 = r19
            r1 = r55
            if (r0 != r1) goto L_0x02e7
            java.lang.String r55 = "<clinit>"
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x00e4:
            r55 = 1024(0x400, float:1.435E-42)
            r0 = r58
            r1 = r55
            boolean r55 = r0.getFlag(r1)
            if (r55 == 0) goto L_0x00f9
            java.lang.String r55 = "$C"
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x00f9:
            int r55 = r58.getCallConvention()
            r56 = 2
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x02fa
            if (r19 != 0) goto L_0x02fa
            r54 = 1
        L_0x0109:
            if (r19 == 0) goto L_0x0111
            if (r20 == 0) goto L_0x02fe
            r55 = r32 & -3
            int r32 = r55 + 1
        L_0x0111:
            boolean r55 = r59.isInterface()
            if (r55 != 0) goto L_0x011d
            boolean r55 = r58.isAbstract()
            if (r55 == 0) goto L_0x0123
        L_0x011d:
            r0 = r32
            r0 = r0 | 1024(0x400, float:1.435E-42)
            r32 = r0
        L_0x0123:
            boolean r55 = r58.isClassMethod()
            if (r55 == 0) goto L_0x0155
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x0155
            r0 = r58
            int r0 = r0.min_args
            r55 = r0
            r0 = r58
            int r0 = r0.max_args
            r56 = r0
            r0 = r55
            r1 = r56
            if (r0 != r1) goto L_0x0155
            r18 = 0
            r17 = 0
            gnu.expr.Declaration r42 = r58.firstDecl()
        L_0x014b:
            if (r42 != 0) goto L_0x0304
            r0 = r58
            gnu.bytecode.Type r0 = r0.returnType
            r55 = r0
            if (r55 == 0) goto L_0x0320
        L_0x0155:
            r55 = 1024(0x400, float:1.435E-42)
            r0 = r58
            r1 = r55
            boolean r55 = r0.getFlag(r1)
            if (r55 != 0) goto L_0x016d
            int r55 = r58.getCallConvention()
            r56 = 2
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x0379
        L_0x016d:
            gnu.bytecode.PrimType r46 = gnu.bytecode.Type.voidType
        L_0x016f:
            if (r61 == 0) goto L_0x0383
            r0 = r61
            r1 = r59
            if (r0 == r1) goto L_0x0383
            r14 = 1
        L_0x0178:
            r8 = 0
            int r55 = r58.getCallConvention()
            r56 = 2
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x0188
            if (r19 != 0) goto L_0x0188
            r8 = 1
        L_0x0188:
            int r36 = r37.length()
            r16 = 0
        L_0x018e:
            r0 = r16
            r1 = r39
            if (r0 > r1) goto L_0x0590
            r0 = r37
            r1 = r36
            r0.setLength(r1)
            r0 = r58
            int r0 = r0.min_args
            r55 = r0
            int r43 = r55 + r16
            r38 = r43
            r0 = r16
            r1 = r39
            if (r0 != r1) goto L_0x01af
            if (r53 == 0) goto L_0x01af
            int r38 = r38 + 1
        L_0x01af:
            int r55 = r14 + r38
            int r55 = r55 + r8
            r0 = r55
            gnu.bytecode.Type[] r5 = new gnu.bytecode.Type[r0]
            if (r14 <= 0) goto L_0x01bd
            r55 = 0
            r5[r55] = r61
        L_0x01bd:
            gnu.expr.Declaration r52 = r58.firstDecl()
            if (r52 == 0) goto L_0x01cd
            boolean r55 = r52.isThisParameter()
            if (r55 == 0) goto L_0x01cd
            gnu.expr.Declaration r52 = r52.nextDecl()
        L_0x01cd:
            r21 = 0
            r22 = r21
        L_0x01d1:
            r0 = r22
            r1 = r43
            if (r0 >= r1) goto L_0x0386
            int r21 = r22 + 1
            int r55 = r14 + r22
            gnu.bytecode.Type r56 = r52.getType()
            gnu.bytecode.Type r56 = r56.getImplementationType()
            r5[r55] = r56
            gnu.expr.Declaration r52 = r52.nextDecl()
            r22 = r21
            goto L_0x01d1
        L_0x01ec:
            r0 = r58
            gnu.expr.Keyword[] r0 = r0.keywords
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r24 = r0
            goto L_0x0012
        L_0x01f9:
            r0 = r58
            gnu.expr.Expression[] r0 = r0.defaultArgs
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r55 = r0
            int r40 = r55 - r24
            goto L_0x001c
        L_0x0208:
            r39 = r40
            goto L_0x002c
        L_0x020c:
            r53 = 0
            goto L_0x004a
        L_0x0210:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x022a
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r56 = 2048(0x800, double:1.0118E-320)
            boolean r55 = r55.getFlag(r56)
            if (r55 == 0) goto L_0x022a
            r20 = 1
            goto L_0x0080
        L_0x022a:
            boolean r55 = r58.isClassMethod()
            if (r55 == 0) goto L_0x026b
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x0267
            r6 = r41
            gnu.expr.ClassExp r6 = (gnu.expr.ClassExp) r6
            boolean r55 = r6.isMakingClassPair()
            if (r55 == 0) goto L_0x0254
            if (r61 == 0) goto L_0x0254
            r20 = 1
        L_0x0246:
            gnu.expr.LambdaExp r0 = r6.initMethod
            r55 = r0
            r0 = r58
            r1 = r55
            if (r0 != r1) goto L_0x0257
            r19 = 73
            goto L_0x0080
        L_0x0254:
            r20 = 0
            goto L_0x0246
        L_0x0257:
            gnu.expr.LambdaExp r0 = r6.clinitMethod
            r55 = r0
            r0 = r58
            r1 = r55
            if (r0 != r1) goto L_0x0080
            r19 = 67
            r20 = 1
            goto L_0x0080
        L_0x0267:
            r20 = 0
            goto L_0x0080
        L_0x026b:
            r0 = r58
            gnu.bytecode.Variable r0 = r0.thisVariable
            r55 = r0
            if (r55 != 0) goto L_0x0279
            r0 = r61
            r1 = r59
            if (r0 != r1) goto L_0x027d
        L_0x0279:
            r20 = 0
            goto L_0x0080
        L_0x027d:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            if (r55 == 0) goto L_0x02ba
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r0 = r55
            gnu.expr.ScopeExp r0 = r0.context
            r55 = r0
            r0 = r55
            boolean r0 = r0 instanceof gnu.expr.ModuleExp
            r55 = r0
            if (r55 == 0) goto L_0x02ba
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r0 = r55
            gnu.expr.ScopeExp r0 = r0.context
            r31 = r0
            gnu.expr.ModuleExp r31 = (gnu.expr.ModuleExp) r31
            gnu.bytecode.ClassType r55 = r31.getSuperType()
            if (r55 != 0) goto L_0x02b7
            gnu.bytecode.ClassType[] r55 = r31.getInterfaces()
            if (r55 != 0) goto L_0x02b7
            r20 = 1
        L_0x02b5:
            goto L_0x0080
        L_0x02b7:
            r20 = 0
            goto L_0x02b5
        L_0x02ba:
            r20 = 1
            goto L_0x0080
        L_0x02be:
            r32 = 0
            goto L_0x008f
        L_0x02c2:
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            boolean r55 = r55.isPrivate()
            if (r55 == 0) goto L_0x02e5
            r11 = 0
        L_0x02cf:
            boolean r55 = r58.isClassMethod()
            if (r55 == 0) goto L_0x02e1
            r0 = r58
            gnu.expr.Declaration r0 = r0.nameDecl
            r55 = r0
            r0 = r55
            short r11 = r0.getAccessFlags(r11)
        L_0x02e1:
            r32 = r32 | r11
            goto L_0x00a5
        L_0x02e5:
            r11 = 1
            goto L_0x02cf
        L_0x02e7:
            java.lang.Object r55 = r58.getSymbol()
            if (r55 == 0) goto L_0x00e4
            java.lang.String r55 = gnu.expr.Compilation.mangleName(r35)
            r0 = r37
            r1 = r55
            r0.append(r1)
            goto L_0x00e4
        L_0x02fa:
            r54 = 0
            goto L_0x0109
        L_0x02fe:
            r55 = r32 & 2
            int r32 = r55 + 2
            goto L_0x0111
        L_0x0304:
            boolean r55 = r42.isThisParameter()
            if (r55 == 0) goto L_0x0314
            int r17 = r17 + -1
        L_0x030c:
            gnu.expr.Declaration r42 = r42.nextDecl()
            int r17 = r17 + 1
            goto L_0x014b
        L_0x0314:
            r56 = 8192(0x2000, double:4.0474E-320)
            r0 = r42
            r1 = r56
            boolean r55 = r0.getFlag(r1)
            if (r55 != 0) goto L_0x030c
        L_0x0320:
            if (r18 != 0) goto L_0x0339
            java.lang.String r28 = r37.toString()
            gnu.expr.LambdaExp$1 r15 = new gnu.expr.LambdaExp$1
            r0 = r58
            r1 = r28
            r15.<init>(r1)
            r55 = 2
            r0 = r59
            r1 = r55
            gnu.bytecode.Method[] r18 = r0.getMethods(r15, r1)
        L_0x0339:
            r50 = 0
            r0 = r18
            int r0 = r0.length
            r16 = r0
        L_0x0340:
            int r16 = r16 + -1
            if (r16 < 0) goto L_0x0362
            r29 = r18[r16]
            if (r42 != 0) goto L_0x0351
            gnu.bytecode.Type r44 = r29.getReturnType()
        L_0x034c:
            if (r50 != 0) goto L_0x0358
            r50 = r44
            goto L_0x0340
        L_0x0351:
            gnu.bytecode.Type[] r55 = r29.getParameterTypes()
            r44 = r55[r17]
            goto L_0x034c
        L_0x0358:
            r0 = r44
            r1 = r50
            if (r0 == r1) goto L_0x0340
            if (r42 != 0) goto L_0x030c
            goto L_0x0155
        L_0x0362:
            if (r50 == 0) goto L_0x036d
            if (r42 == 0) goto L_0x0371
            r0 = r42
            r1 = r50
            r0.setType(r1)
        L_0x036d:
            if (r42 != 0) goto L_0x030c
            goto L_0x0155
        L_0x0371:
            r0 = r58
            r1 = r50
            r0.setCoercedReturnType(r1)
            goto L_0x036d
        L_0x0379:
            gnu.bytecode.Type r55 = r58.getReturnType()
            gnu.bytecode.Type r46 = r55.getImplementationType()
            goto L_0x016f
        L_0x0383:
            r14 = 0
            goto L_0x0178
        L_0x0386:
            if (r8 == 0) goto L_0x0391
            int r0 = r5.length
            r55 = r0
            int r55 = r55 + -1
            gnu.bytecode.ClassType r56 = gnu.expr.Compilation.typeCallContext
            r5[r55] = r56
        L_0x0391:
            r0 = r43
            r1 = r38
            if (r0 >= r1) goto L_0x0402
            gnu.bytecode.Type r25 = r52.getType()
            java.lang.String r26 = r25.getName()
            int r55 = r59.getClassfileVersion()
            r56 = 3211264(0x310000, float:4.49994E-39)
            r0 = r55
            r1 = r56
            if (r0 < r1) goto L_0x0460
            r0 = r25
            boolean r0 = r0 instanceof gnu.bytecode.ArrayType
            r55 = r0
            if (r55 == 0) goto L_0x0460
            r0 = r32
            r0 = r0 | 128(0x80, float:1.794E-43)
            r32 = r0
        L_0x03b9:
            if (r24 > 0) goto L_0x03d5
            r0 = r39
            r1 = r40
            if (r0 < r1) goto L_0x03d5
            java.lang.String r55 = "gnu.lists.LList"
            r0 = r55
            r1 = r26
            boolean r55 = r0.equals(r1)
            if (r55 != 0) goto L_0x03f1
            r0 = r25
            boolean r0 = r0 instanceof gnu.bytecode.ArrayType
            r55 = r0
            if (r55 != 0) goto L_0x03f1
        L_0x03d5:
            gnu.bytecode.ArrayType r25 = gnu.expr.Compilation.objArrayType
            gnu.bytecode.Variable r55 = new gnu.bytecode.Variable
            java.lang.String r56 = "argsArray"
            gnu.bytecode.ArrayType r57 = gnu.expr.Compilation.objArrayType
            r55.<init>(r56, r57)
            r0 = r55
            r1 = r58
            r1.argsArray = r0
            r0 = r58
            gnu.bytecode.Variable r0 = r0.argsArray
            r55 = r0
            r56 = 1
            r55.setParameter(r56)
        L_0x03f1:
            r0 = r52
            r1 = r58
            r1.firstArgsArrayArg = r0
            int r0 = r5.length
            r56 = r0
            if (r54 == 0) goto L_0x046b
            r55 = 2
        L_0x03fe:
            int r55 = r56 - r55
            r5[r55] = r25
        L_0x0402:
            if (r54 == 0) goto L_0x040d
            java.lang.String r55 = "$X"
            r0 = r37
            r1 = r55
            r0.append(r1)
        L_0x040d:
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 != 0) goto L_0x0429
            r0 = r41
            boolean r0 = r0 instanceof gnu.expr.ModuleExp
            r55 = r0
            if (r55 == 0) goto L_0x046e
            r55 = r41
            gnu.expr.ModuleExp r55 = (gnu.expr.ModuleExp) r55
            r56 = 131072(0x20000, float:1.83671E-40)
            boolean r55 = r55.getFlag(r56)
            if (r55 == 0) goto L_0x046e
        L_0x0429:
            r7 = 1
        L_0x042a:
            java.lang.String r35 = r37.toString()
            r45 = 0
            int r27 = r37.length()
        L_0x0434:
            r47 = r59
        L_0x0436:
            if (r47 == 0) goto L_0x0472
            r0 = r47
            r1 = r35
            gnu.bytecode.Method r55 = r0.getDeclaredMethod(r1, r5)
            if (r55 == 0) goto L_0x0470
            r0 = r37
            r1 = r27
            r0.setLength(r1)
            r55 = 36
            r0 = r37
            r1 = r55
            r0.append(r1)
            int r45 = r45 + 1
            r0 = r37
            r1 = r45
            r0.append(r1)
            java.lang.String r35 = r37.toString()
            goto L_0x0434
        L_0x0460:
            java.lang.String r55 = "$V"
            r0 = r37
            r1 = r55
            r0.append(r1)
            goto L_0x03b9
        L_0x046b:
            r55 = 1
            goto L_0x03fe
        L_0x046e:
            r7 = 0
            goto L_0x042a
        L_0x0470:
            if (r7 == 0) goto L_0x04f7
        L_0x0472:
            r0 = r59
            r1 = r35
            r2 = r46
            r3 = r32
            gnu.bytecode.Method r29 = r0.addMethod(r1, r5, r2, r3)
            r30[r16] = r29
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            if (r55 == 0) goto L_0x058c
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r55 = r0
            if (r55 <= 0) goto L_0x058c
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            r0 = r55
            int r0 = r0.length
            r34 = r0
            r0 = r34
            gnu.bytecode.ClassType[] r13 = new gnu.bytecode.ClassType[r0]
            r23 = 0
        L_0x04a6:
            r0 = r23
            r1 = r34
            if (r0 >= r1) goto L_0x0582
            r12 = 0
            r0 = r58
            gnu.expr.Expression[] r0 = r0.throwsSpecification
            r55 = r0
            r48 = r55[r23]
            r33 = 0
            r0 = r48
            boolean r0 = r0 instanceof gnu.expr.ReferenceExp
            r55 = r0
            if (r55 == 0) goto L_0x0533
            r49 = r48
            gnu.expr.ReferenceExp r49 = (gnu.expr.ReferenceExp) r49
            gnu.expr.Declaration r9 = r49.getBinding()
            if (r9 == 0) goto L_0x051b
            gnu.expr.Expression r10 = r9.getValue()
            boolean r0 = r10 instanceof gnu.expr.ClassExp
            r55 = r0
            if (r55 == 0) goto L_0x04fd
            gnu.expr.ClassExp r10 = (gnu.expr.ClassExp) r10
            r0 = r60
            gnu.bytecode.ClassType r12 = r10.getCompiledClassType(r0)
        L_0x04db:
            if (r12 != 0) goto L_0x04e1
            if (r33 != 0) goto L_0x04e1
            java.lang.String r33 = "invalid throws specification"
        L_0x04e1:
            if (r33 == 0) goto L_0x04f2
            r55 = 101(0x65, float:1.42E-43)
            r0 = r60
            r1 = r55
            r2 = r33
            r3 = r48
            r0.error(r1, r2, r3)
            gnu.bytecode.ClassType r12 = gnu.bytecode.Type.javalangThrowableType
        L_0x04f2:
            r13[r23] = r12
            int r23 = r23 + 1
            goto L_0x04a6
        L_0x04f7:
            gnu.bytecode.ClassType r47 = r47.getSuperclass()
            goto L_0x0436
        L_0x04fd:
            java.lang.StringBuilder r55 = new java.lang.StringBuilder
            r55.<init>()
            java.lang.String r56 = "throws specification "
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = r9.getName()
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = " has non-class lexical binding"
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r33 = r55.toString()
            goto L_0x04db
        L_0x051b:
            java.lang.StringBuilder r55 = new java.lang.StringBuilder
            r55.<init>()
            java.lang.String r56 = "unknown class "
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = r49.getName()
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r33 = r55.toString()
            goto L_0x04db
        L_0x0533:
            r0 = r48
            boolean r0 = r0 instanceof gnu.expr.QuoteExp
            r55 = r0
            if (r55 == 0) goto L_0x04db
            r55 = r48
            gnu.expr.QuoteExp r55 = (gnu.expr.QuoteExp) r55
            java.lang.Object r51 = r55.getValue()
            r0 = r51
            boolean r0 = r0 instanceof java.lang.Class
            r55 = r0
            if (r55 == 0) goto L_0x0551
            java.lang.Class r51 = (java.lang.Class) r51
            gnu.bytecode.Type r51 = gnu.bytecode.Type.make(r51)
        L_0x0551:
            r0 = r51
            boolean r0 = r0 instanceof gnu.bytecode.ClassType
            r55 = r0
            if (r55 == 0) goto L_0x055d
            r12 = r51
            gnu.bytecode.ClassType r12 = (gnu.bytecode.ClassType) r12
        L_0x055d:
            if (r12 == 0) goto L_0x04db
            gnu.bytecode.ClassType r55 = gnu.bytecode.Type.javalangThrowableType
            r0 = r55
            boolean r55 = r12.isSubtype(r0)
            if (r55 != 0) goto L_0x04db
            java.lang.StringBuilder r55 = new java.lang.StringBuilder
            r55.<init>()
            java.lang.String r56 = r12.getName()
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r56 = " does not extend Throwable"
            java.lang.StringBuilder r55 = r55.append(r56)
            java.lang.String r33 = r55.toString()
            goto L_0x04db
        L_0x0582:
            gnu.bytecode.ExceptionsAttr r4 = new gnu.bytecode.ExceptionsAttr
            r0 = r29
            r4.<init>(r0)
            r4.setExceptions(r13)
        L_0x058c:
            int r16 = r16 + 1
            goto L_0x018e
        L_0x0590:
            return
        */ throw new UnsupportedOperationException ( "Method not decompiled: gnu.expr.LambdaExp.addMethodFor(gnu.bytecode.ClassType, gnu.expr.Compilation, gnu.bytecode.ObjectType):void" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .