Source/sources/gnu/kawa/functions/Map.java
public java.lang.Object applyN(java.lang.Object[] r15) throws java.lang.Throwable {
        /*
            r14 = this;
            int r12 = r15.length
            int r0 = r12 + -1
            r12 = 1
            if (r0 != r12) goto L_0x002a
            r12 = 0
            r12 = r15[r12]
            boolean r12 = r12 instanceof gnu.mapping.Procedure
            if (r12 == 0) goto L_0x002a
            r12 = 0
            r12 = r15[r12]
            gnu.mapping.Procedure r12 = (gnu.mapping.Procedure) r12
            r8 = r12
            gnu.mapping.Procedure r8 = (gnu.mapping.Procedure) r8
            boolean r12 = r14.collect
            if (r12 == 0) goto L_0x0021
            r12 = 1
            r12 = r15[r12]
            java.lang.Object r10 = map1(r8, r12)
        L_0x0020:
            return r10
        L_0x0021:
            r12 = 1
            r12 = r15[r12]
            forEach1(r8, r12)
            gnu.mapping.Values r10 = gnu.mapping.Values.empty
            goto L_0x0020
        L_0x002a:
            r3 = 0
            boolean r12 = r14.collect
            if (r12 == 0) goto L_0x0064
            gnu.lists.LList r10 = gnu.lists.LList.Empty
        L_0x0031:
            java.lang.Object[] r9 = new java.lang.Object[r0]
            r12 = 1
            r13 = 0
            java.lang.System.arraycopy(r15, r12, r9, r13, r0)
            r12 = 0
            r12 = r15[r12]
            boolean r12 = r12 instanceof gnu.mapping.Procedure
            if (r12 == 0) goto L_0x0067
            r5 = 0
            java.lang.Object[] r1 = new java.lang.Object[r0]
            r12 = 0
            r8 = r15[r12]
            gnu.mapping.Procedure r8 = (gnu.mapping.Procedure) r8
        L_0x0047:
            r2 = 0
        L_0x0048:
            if (r2 >= r0) goto L_0x0075
            r4 = r9[r2]
            gnu.lists.LList r12 = gnu.lists.LList.Empty
            if (r4 == r12) goto L_0x0020
            r7 = r4
            gnu.lists.Pair r7 = (gnu.lists.Pair) r7
            int r12 = r5 + r2
            java.lang.Object r13 = r7.getCar()
            r1[r12] = r13
            java.lang.Object r12 = r7.getCdr()
            r9[r2] = r12
            int r2 = r2 + 1
            goto L_0x0048
        L_0x0064:
            gnu.mapping.Values r10 = gnu.mapping.Values.empty
            goto L_0x0031
        L_0x0067:
            r5 = 1
            int r12 = r0 + 1
            java.lang.Object[] r1 = new java.lang.Object[r12]
            r12 = 0
            r13 = 0
            r13 = r15[r13]
            r1[r12] = r13
            gnu.kawa.functions.ApplyToArgs r8 = r14.applyToArgs
            goto L_0x0047
        L_0x0075:
            java.lang.Object r11 = r8.applyN(r1)
            boolean r12 = r14.collect
            if (r12 == 0) goto L_0x0047
            gnu.lists.Pair r6 = new gnu.lists.Pair
            gnu.lists.LList r12 = gnu.lists.LList.Empty
            r6.<init>(r11, r12)
            if (r3 != 0) goto L_0x0089
            r10 = r6
        L_0x0087:
            r3 = r6
            goto L_0x0047
        L_0x0089:
            r3.setCdr(r6)
            goto L_0x0087
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.kawa.functions.Map.applyN(java.lang.Object[]):java.lang.Object");
    }
/* 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 java.lang.Object applyN(java.lang.Object[] r15) throws java.lang.Throwable {
        /*
            r14 = this;
            int r12 = r15.length
            int r0 = r12 + -1
            r12 = 1
            if (r0 != r12) goto L_0x002a
            r12 = 0
            r12 = r15[r12]
            boolean r12 = r12 instanceof gnu.mapping.Procedure
            if (r12 == 0) goto L_0x002a
            r12 = 0
            r12 = r15[r12]
            gnu.mapping.Procedure r12 = (gnu.mapping.Procedure) r12
            r8 = r12
            gnu.mapping.Procedure r8 = (gnu.mapping.Procedure) r8
            boolean r12 = r14.collect
            if (r12 == 0) goto L_0x0021
            r12 = 1
            r12 = r15[r12]
            java.lang.Object r10 = map1(r8, r12)
        L_0x0020:
            return r10
        L_0x0021:
            r12 = 1
            r12 = r15[r12]
            forEach1(r8, r12)
            gnu.mapping.Values r10 = gnu.mapping.Values.empty
            goto L_0x0020
        L_0x002a:
            r3 = 0
            boolean r12 = r14.collect
            if (r12 == 0) goto L_0x0064
            gnu.lists.LList r10 = gnu.lists.LList.Empty
        L_0x0031:
            java.lang.Object[] r9 = new java.lang.Object[r0]
            r12 = 1
            r13 = 0
            java.lang.System.arraycopy(r15, r12, r9, r13, r0)
            r12 = 0
            r12 = r15[r12]
            boolean r12 = r12 instanceof gnu.mapping.Procedure
            if (r12 == 0) goto L_0x0067
            r5 = 0
            java.lang.Object[] r1 = new java.lang.Object[r0]
            r12 = 0
            r8 = r15[r12]
            gnu.mapping.Procedure r8 = (gnu.mapping.Procedure) r8
        L_0x0047:
            r2 = 0
        L_0x0048:
            if (r2 >= r0) goto L_0x0075
            r4 = r9[r2]
            gnu.lists.LList r12 = gnu.lists.LList.Empty
            if (r4 == r12) goto L_0x0020
            r7 = r4
            gnu.lists.Pair r7 = (gnu.lists.Pair) r7
            int r12 = r5 + r2
            java.lang.Object r13 = r7.getCar()
            r1[r12] = r13
            java.lang.Object r12 = r7.getCdr()
            r9[r2] = r12
            int r2 = r2 + 1
            goto L_0x0048
        L_0x0064:
            gnu.mapping.Values r10 = gnu.mapping.Values.empty
            goto L_0x0031
        L_0x0067:
            r5 = 1
            int r12 = r0 + 1
            java.lang.Object[] r1 = new java.lang.Object[r12]
            r12 = 0
            r13 = 0
            r13 = r15[r13]
            r1[r12] = r13
            gnu.kawa.functions.ApplyToArgs r8 = r14.applyToArgs
            goto L_0x0047
        L_0x0075:
            java.lang.Object r11 = r8.applyN(r1)
            boolean r12 = r14.collect
            if (r12 == 0) goto L_0x0047
            gnu.lists.Pair r6 = new gnu.lists.Pair
            gnu.lists.LList r12 = gnu.lists.LList.Empty
            r6.<init>(r11, r12)
            if (r3 != 0) goto L_0x0089
            r10 = r6
        L_0x0087:
            r3 = r6
            goto L_0x0047
        L_0x0089:
            r3.setCdr(r6)
            goto L_0x0087
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.kawa.functions.Map.applyN(java.lang.Object[]):java.lang.Object");
    }
public java . lang . Object applyN ( java . lang . Object [ ] r15 ) throws java . lang . Throwable { /*
            r14 = this;
            int r12 = r15.length
            int r0 = r12 + -1
            r12 = 1
            if (r0 != r12) goto L_0x002a
            r12 = 0
            r12 = r15[r12]
            boolean r12 = r12 instanceof gnu.mapping.Procedure
            if (r12 == 0) goto L_0x002a
            r12 = 0
            r12 = r15[r12]
            gnu.mapping.Procedure r12 = (gnu.mapping.Procedure) r12
            r8 = r12
            gnu.mapping.Procedure r8 = (gnu.mapping.Procedure) r8
            boolean r12 = r14.collect
            if (r12 == 0) goto L_0x0021
            r12 = 1
            r12 = r15[r12]
            java.lang.Object r10 = map1(r8, r12)
        L_0x0020:
            return r10
        L_0x0021:
            r12 = 1
            r12 = r15[r12]
            forEach1(r8, r12)
            gnu.mapping.Values r10 = gnu.mapping.Values.empty
            goto L_0x0020
        L_0x002a:
            r3 = 0
            boolean r12 = r14.collect
            if (r12 == 0) goto L_0x0064
            gnu.lists.LList r10 = gnu.lists.LList.Empty
        L_0x0031:
            java.lang.Object[] r9 = new java.lang.Object[r0]
            r12 = 1
            r13 = 0
            java.lang.System.arraycopy(r15, r12, r9, r13, r0)
            r12 = 0
            r12 = r15[r12]
            boolean r12 = r12 instanceof gnu.mapping.Procedure
            if (r12 == 0) goto L_0x0067
            r5 = 0
            java.lang.Object[] r1 = new java.lang.Object[r0]
            r12 = 0
            r8 = r15[r12]
            gnu.mapping.Procedure r8 = (gnu.mapping.Procedure) r8
        L_0x0047:
            r2 = 0
        L_0x0048:
            if (r2 >= r0) goto L_0x0075
            r4 = r9[r2]
            gnu.lists.LList r12 = gnu.lists.LList.Empty
            if (r4 == r12) goto L_0x0020
            r7 = r4
            gnu.lists.Pair r7 = (gnu.lists.Pair) r7
            int r12 = r5 + r2
            java.lang.Object r13 = r7.getCar()
            r1[r12] = r13
            java.lang.Object r12 = r7.getCdr()
            r9[r2] = r12
            int r2 = r2 + 1
            goto L_0x0048
        L_0x0064:
            gnu.mapping.Values r10 = gnu.mapping.Values.empty
            goto L_0x0031
        L_0x0067:
            r5 = 1
            int r12 = r0 + 1
            java.lang.Object[] r1 = new java.lang.Object[r12]
            r12 = 0
            r13 = 0
            r13 = r15[r13]
            r1[r12] = r13
            gnu.kawa.functions.ApplyToArgs r8 = r14.applyToArgs
            goto L_0x0047
        L_0x0075:
            java.lang.Object r11 = r8.applyN(r1)
            boolean r12 = r14.collect
            if (r12 == 0) goto L_0x0047
            gnu.lists.Pair r6 = new gnu.lists.Pair
            gnu.lists.LList r12 = gnu.lists.LList.Empty
            r6.<init>(r11, r12)
            if (r3 != 0) goto L_0x0089
            r10 = r6
        L_0x0087:
            r3 = r6
            goto L_0x0047
        L_0x0089:
            r3.setCdr(r6)
            goto L_0x0087
        */ throw new UnsupportedOperationException ( "Method not decompiled: gnu.kawa.functions.Map.applyN(java.lang.Object[]):java.lang.Object" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .