Fixture 04

switch shapes

C · 16 functions · 4 lanes · 64 of 64 function-lanes behave identically

All 4 lanes recompile and return the same results as the original.

Switch-shape fixture. Every function is a pure integer function whose result depends on the EXACT switch structure a correct decompilation must recover: the true case constants (not positional 0/1/2/... placeholders), negative and sparse labels, shared bodies, explicit fallthrough, default handling, and a switch nested inside a loop. Each reachable case produces a UNIQUE constant, so a fabricated case 0 / case 1 discriminant, a positional relabel, or a placeholder dispatch sends some input to the wrong arm — which an execution-differential test catches.

Targets review #4 (switch structuring). Keep every function pure (no globals, no libc) and deterministic. Each comment states the exact discriminant and the case constants an honest decompiler must recover.

tests/decompiler_fixtures/src/04_switch_shapes.c source
/* 04_switch_shapes.c
 *
 * Switch-shape fixture. Every function is a pure integer function whose result
 * depends on the EXACT switch structure a correct decompilation must recover:
 * the true case constants (not positional 0/1/2/... placeholders), negative and
 * sparse labels, shared bodies, explicit fallthrough, default handling, and a
 * switch nested inside a loop. Each reachable case produces a UNIQUE constant,
 * so a fabricated `case 0 / case 1` discriminant, a positional relabel, or a
 * placeholder dispatch sends some input to the wrong arm — which an
 * execution-differential test catches.
 *
 * Targets review #4 (switch structuring). Keep every function pure (no globals,
 * no libc) and deterministic. Each comment states the exact discriminant and
 * the case constants an honest decompiler must recover.
 */
#include <stdint.h>

/* Dense jump-table switch. Discriminant: (x & 7), a contiguous 0..7 index that
 * a compiler lowers to a jump table. An honest decompiler must recover cases
 * 0,1,2,3,4,5,6,7 with these EXACT distinct return constants. */
int dense_jumptable(unsigned x) {
    switch (x & 7u) {
        case 0: return 100;
        case 1: return 111;
        case 2: return 122;
        case 3: return 133;
        case 4: return 144;
        case 5: return 155;
        case 6: return 166;
        case 7: return 177;
    }
    return -1;   /* unreachable given the mask, but keeps the type happy */
}

/* Dense table that computes rather than returns constants, still 0..7. */
int dense_compute(unsigned x, int y) {
    int r;
    switch (x & 7u) {
        case 0: r = y + 1; break;
        case 1: r = y - 1; break;
        case 2: r = y * 2; break;
        case 3: r = y * 3; break;
        case 4: r = y ^ 0x5A; break;
        case 5: r = y << 1; break;
        case 6: r = ~y; break;
        case 7: r = y & 0x0F; break;
        default: r = 0; break;
    }
    return r;
}

/* Sparse switch. Discriminant: x itself. Cases 1, 5, 17, 100 — large, non-
 * contiguous, non-zero labels. This tests that the REAL case constants are
 * recovered, NOT positional 0/1/2/3. A decompiler that emits case 0..3 maps
 * every input to the wrong arm. */
int sparse_switch(int x) {
    switch (x) {
        case 1:   return 2001;
        case 5:   return 2005;
        case 17:  return 2017;
        case 100: return 2100;
        default:  return 2999;
    }
}

/* Sparse switch with widely spread labels forcing a binary-search or compare
 * chain lowering. Discriminant: x. Cases 3, 250, 5000, 65537. */
int sparse_wide(int x) {
    switch (x) {
        case 3:     return 30;
        case 250:   return 2500;
        case 5000:  return 50000;
        case 65537: return 655370;
        default:    return -7;
    }
}

/* Negative case values. Discriminant: x. Cases -3, -1, 0, 2 — a decompiler must
 * recover the signed labels, not treat them as large unsigned indices. */
int negative_cases(int x) {
    switch (x) {
        case -3: return 303;
        case -1: return 301;
        case 0:  return 300;
        case 2:  return 302;
        default: return 399;
    }
}

/* Mixed negative + sparse positive. Discriminant: x. Cases -100, -1, 7, 42. */
int negative_sparse(int x) {
    switch (x) {
        case -100: return 4000;
        case -1:   return 4001;
        case 7:    return 4007;
        case 42:   return 4042;
        default:   return 4999;
    }
}

/* Shared case bodies. Discriminant: (x & 7). Cases 0 and 2 fall to the SAME
 * body (return 500); cases 1 and 3 share another (return 600); everything else
 * defaults. An honest decompiler must show two labels reaching one block, not
 * duplicate or drop a label. */
int shared_bodies(unsigned x) {
    switch (x & 7u) {
        case 0:
        case 2:
            return 500;
        case 1:
        case 3:
            return 600;
        default:
            return 700;
    }
}

/* Shared bodies mixing sparse labels. Discriminant: x. Cases 10 and 20 share a
 * body; 30 and 40 share another. */
int shared_sparse(int x) {
    switch (x) {
        case 10:
        case 20:
            return 1200;
        case 30:
        case 40:
            return 3400;
        default:
            return -5;
    }
}

/* Explicit fallthrough. Discriminant: (x & 3). case 0 has NO break and flows
 * into case 1's body, so input 0 accumulates BOTH contributions. A decompiler
 * that inserts a spurious break, or drops the fallthrough edge, changes the
 * result for x&3==0. Recover: case 0 -> (+7, fallthrough), case 1 -> (+30),
 * case 2 -> (+500, break), default -> +9000. */
int explicit_fallthrough(unsigned x) {
    int r = 0;
    switch (x & 3u) {
        case 0:
            r += 7;
            __attribute__((fallthrough));   /* intentional fallthrough into case 1 */
        case 1:
            r += 30;
            break;
        case 2:
            r += 500;
            break;
        default:
            r += 9000;
            break;
    }
    return r;   /* x&3==0 -> 37, ==1 -> 30, ==2 -> 500, ==3 -> 9000 */
}

/* Longer fallthrough chain. Discriminant: (x & 3). Each case adds a distinct
 * weight and falls into the next; only case 3 breaks. So the accumulated total
 * encodes exactly where the switch entered. */
int fallthrough_chain(unsigned x) {
    int r = 0;
    switch (x & 3u) {
        case 0: r += 1; __attribute__((fallthrough));
        case 1: r += 20; __attribute__((fallthrough));
        case 2: r += 300; __attribute__((fallthrough));
        case 3: r += 4000; break;
        default: r = -1;
    }
    return r;   /* 0->4321, 1->4320, 2->4300, 3->4000 */
}

/* Default-only observable behaviour. Discriminant: x. Only case 42 is special;
 * every other value takes the default. Tests that the single real label is
 * recovered and the default catch-all is not mistaken for a case. */
int default_dominant(int x) {
    switch (x) {
        case 42: return 8888;
        default: return 1111;
    }
}

/* Switch with no default: values outside the label set fall through the whole
 * statement to the trailing return. Discriminant: (x & 7). Cases 2 and 5 only. */
int no_default(unsigned x) {
    switch (x & 7u) {
        case 2: return 220;
        case 5: return 550;
    }
    return 999;   /* the implicit fall-off path */
}

/* Switch INSIDE a loop. The switch dispatches on each buffer element's low bits
 * every iteration; the accumulator threads through the loop. Discriminant per
 * iteration: (p[i] & 3), cases 0/1/2/3 each folding a distinct operation. A
 * switch hoisted out of the loop, or a mis-recovered discriminant, changes the
 * fold. The gate drives `p` as 8 random ints. */
int switch_in_loop(const int *p) {
    int s = 0;
    for (int i = 0; i < 8; i++) {
        switch (p[i] & 3) {
            case 0: s += 1; break;
            case 1: s += 10; break;
            case 2: s += 100; break;
            case 3: s += 1000; break;
        }
    }
    return s;   /* base-10 digits count how many elements hit each residue */
}

/* Switch in a loop with fallthrough and an early break out of the LOOP (not just
 * the switch). Discriminant per iteration: (p[i] & 7). case 7 breaks the loop;
 * cases 0/1 fall through together. Tests that switch-break vs loop-break are
 * distinguished. */
int switch_loop_break(const int *p) {
    int s = 0;
    int i = 0;
    for (; i < 8; i++) {
        switch (p[i] & 7) {
            case 0:
            case 1:
                s += 2;      /* shared body, then break the switch */
                break;
            case 7:
                s += 5;
                goto done;   /* leave the loop entirely */
            default:
                s += 1;
                break;
        }
    }
done:
    return s * 10 + i;   /* i records where (if) the loop broke early */
}

/* Nested switch: an outer discriminant selects a group, an inner switch refines
 * it. Recover: outer (x & 1) -> {0,1}; inner (y & 1) -> {0,1}; four distinct
 * leaf constants. */
int nested_switch(unsigned x, unsigned y) {
    switch (x & 1u) {
        case 0:
            switch (y & 1u) {
                case 0: return 6000;
                case 1: return 6001;
            }
            break;
        case 1:
            switch (y & 1u) {
                case 0: return 6010;
                case 1: return 6011;
            }
            break;
    }
    return -1;
}

/* Sparse switch returning through a shared tail after computing per-case: tests
 * that recovered case constants feed a common continuation, not duplicated
 * exits. Discriminant: x. Cases 11, 22, 33. */
int sparse_shared_tail(int x) {
    int r;
    switch (x) {
        case 11: r = 1; break;
        case 22: r = 2; break;
        case 33: r = 3; break;
        default: r = 9; break;
    }
    return r * 1000 + r * r;   /* common tail exercised by every case */
}

Recovered C

Generated by glaurung decompile --style decbench at b47f6b43. baseline.json records the result after recompiling the C and calling it beside the original with seeded inputs.

clang -O0

16/16
default_dominant pass 9 lines
// glaurung: default_dominant @ 0x1620
int default_dominant(int arg0) {
    // x86-64 prologue: save rbp
    if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 42))) != 0)) {
        return 1111;
    } else {
        return 0x22b8;
    }
}
dense_compute pass 40 lines
// glaurung: dense_compute @ 0x11a0
int dense_compute(unsigned int arg0, int arg1) {
    int r;
    long local_18;
    long var2;
    // x86-64 prologue: save rbp
    var2 = (unsigned long)((unsigned int)((arg0 & 7)));
    local_18 = var2;
    if (((((unsigned long)((unsigned long)((unsigned int)(var2))) < (unsigned long)(7)) | ((unsigned long)((unsigned int)((var2 - 7))) == 0)) == 0)) {
        return 0;
    }
    switch (local_18) {
        case 0:
            r = ((unsigned int)(arg1) + 1);
            break;
        case 1:
            r = ((unsigned int)(arg1) - 1);
            break;
        case 2:
            r = ((unsigned long)((unsigned int)(arg1)) << 1);
            break;
        case 3:
            r = (arg1 * 3);
            break;
        case 4:
            r = ((unsigned int)(arg1) ^ 90);
            break;
        case 5:
            r = ((unsigned long)((unsigned int)(arg1)) << 1);
            break;
        case 6:
            r = ((unsigned int)(arg1) ^ -1);
            break;
        case 7:
            r = ((unsigned int)(arg1) & 15);
            break;
    }
    // x86-64 epilogue: restore rbp
    return (unsigned int)(r);
}
dense_jumptable pass 40 lines
// glaurung: dense_jumptable @ 0x1100
int dense_jumptable(unsigned int arg0) {
    long local_10;
    int local_4;
    long var2;
    // x86-64 prologue: save rbp
    var2 = (unsigned long)((unsigned int)((arg0 & 7)));
    local_10 = var2;
    if (((((unsigned long)((unsigned long)((unsigned int)(var2))) < (unsigned long)(7)) | ((unsigned long)((unsigned int)((var2 - 7))) == 0)) == 0)) {
        return (unsigned int)(-1);
    }
    switch (local_10) {
        case 0:
            local_4 = 100;
            break;
        case 1:
            local_4 = 111;
            break;
        case 2:
            local_4 = 122;
            break;
        case 3:
            local_4 = 133;
            break;
        case 4:
            local_4 = 144;
            break;
        case 5:
            local_4 = 155;
            break;
        case 6:
            local_4 = 166;
            break;
        case 7:
            local_4 = 177;
            break;
    }
    // x86-64 epilogue: restore rbp
    return (unsigned int)(local_4);
}
explicit_fallthrough pass 28 lines
// glaurung: explicit_fallthrough @ 0x1530
int explicit_fallthrough(unsigned int arg0) {
    int r;
    int local_c;
    int var1;
    int var7;
    // x86-64 prologue: save rbp
    r = 0;
    var1 = (arg0 & 3);
    local_c = var1;
    if (((unsigned long)((unsigned int)(var1)) == 0)) {
        r = ((unsigned int)(r) + 7);
        var7 = ((unsigned int)(r) + 30);
        return (unsigned int)(var7);
    } else {
        if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(local_c)) - 1))) == 0)) {
            var7 = ((unsigned int)(r) + 30);
            r = var7;
            // x86-64 epilogue: restore rbp
            return (unsigned int)(r);
        }
        if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(local_c)) - 2))) == 0)) {
            return (unsigned int)(((unsigned long)((unsigned int)(r)) + 500));
        } else {
            return (unsigned int)(((unsigned long)((unsigned int)(r)) + 0x2328));
        }
    }
}
fallthrough_chain pass 32 lines
// glaurung: fallthrough_chain @ 0x15b0
int fallthrough_chain(unsigned int arg0) {
    int r;
    long local_10;
    long var2;
    // x86-64 prologue: save rbp
    r = 0;
    var2 = (unsigned long)((unsigned int)((arg0 & 3)));
    local_10 = var2;
    if (((((unsigned long)((unsigned long)((unsigned int)(var2))) < (unsigned long)(3)) | ((unsigned long)((unsigned int)((var2 - 3))) == 0)) == 0)) {
        return (unsigned int)(-1);
    }
    switch (local_10) {
        case 0:
            r = ((unsigned int)(r) + 1);
            goto L_15ee;
        case 1:
            L_15ee: ;
            r = ((unsigned int)(r) + 20);
            goto L_15f7;
        case 2:
            L_15f7: ;
            r = ((unsigned int)(r) + 300);
            goto L_1602;
        case 3:
            L_1602: ;
            r = ((unsigned int)(r) + 4000);
            break;
    }
    // x86-64 epilogue: restore rbp
    return (unsigned int)(r);
}
negative_cases pass 19 lines
// glaurung: negative_cases @ 0x1370
int negative_cases(int arg0) {
    long local_10;
    // x86-64 prologue: save rbp
    local_10 = (unsigned int)(((unsigned long)((unsigned int)(arg0)) + 3));
    switch (local_10) {
        case 0:
            return 303;
        case 2:
            return 301;
        case 3:
            return 300;
        case 5:
            return 302;
        default:
            return 399;
    }
    // x86-64 epilogue: restore rbp
}
negative_sparse pass 21 lines
// glaurung: negative_sparse @ 0x13e0
int negative_sparse(int arg0) {
    // x86-64 prologue: save rbp
    if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) + 100))) == 0)) {
        return 4000;
    } else {
        if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) + 1))) == 0)) {
            return 4001;
        } else {
            if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 7))) == 0)) {
                return 4007;
            } else {
                if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 42))) == 0)) {
                    return 4042;
                } else {
                    return 0x1387;
                }
            }
        }
    }
}
nested_switch pass 44 lines
// glaurung: nested_switch @ 0x17f0
int nested_switch(unsigned int arg0, unsigned int arg1) {
    int local_10;
    int local_14;
    int local_18;
    int local_4;
    int var1;
    int var13;
    int var4;
    // x86-64 prologue: save rbp
    var1 = (arg0 & 1);
    local_10 = var1;
    if (((unsigned long)((unsigned int)(var1)) == 0)) {
        var4 = (arg1 & 1);
        local_14 = var4;
        if (((unsigned long)((unsigned int)(var4)) == 0)) {
            return 0x1770;
        } else {
            if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(local_14)) - 1))) == 0)) {
                return 0x1771;
            } else {
                L_18a3: ;
                return (unsigned int)(-1);
            }
        }
    }
    if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(local_10)) - 1))) == 0)) {
        var13 = (arg1 & 1);
        local_18 = var13;
        if (((unsigned long)((unsigned int)(var13)) == 0)) {
            local_4 = 0x177a;
        } else {
            if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(local_18)) - 1))) == 0)) {
                local_4 = 0x177b;
            } else {
                goto L_18a3;
            }
        }
    } else {
        goto L_18a3;
    }
    // x86-64 epilogue: restore rbp
    return (unsigned int)(local_4);
}
no_default pass 17 lines
// glaurung: no_default @ 0x1650
int no_default(unsigned int arg0) {
    int local_c;
    long var2;
    // x86-64 prologue: save rbp
    var2 = (unsigned long)((unsigned int)((arg0 & 7)));
    local_c = var2;
    if (((unsigned long)((unsigned int)((var2 - 2))) == 0)) {
        return 220;
    } else {
        if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(local_c)) - 5))) == 0)) {
            return 550;
        } else {
            return 999;
        }
    }
}
shared_bodies pass 24 lines
// glaurung: shared_bodies @ 0x1470
int shared_bodies(unsigned int arg0) {
    long local_10;
    int local_4;
    long var2;
    // x86-64 prologue: save rbp
    var2 = (unsigned long)((unsigned int)((arg0 & 7)));
    local_10 = var2;
    if (((((unsigned long)((unsigned long)((unsigned int)(var2))) < (unsigned long)(3)) | ((unsigned long)((unsigned int)((var2 - 3))) == 0)) == 0)) {
        return 700;
    }
    switch (local_10) {
        case 0:
        case 2:
            local_4 = 500;
            break;
        case 1:
        case 3:
            local_4 = 600;
            break;
    }
    // x86-64 epilogue: restore rbp
    return (unsigned int)(local_4);
}
shared_sparse pass 17 lines
// glaurung: shared_sparse @ 0x14d0
int shared_sparse(int arg0) {
    long local_10;
    // x86-64 prologue: save rbp
    local_10 = (unsigned int)(((unsigned long)((unsigned int)(arg0)) - 10));
    switch (local_10) {
        case 0:
        case 10:
            return 1200;
        case 20:
        case 30:
            return 3400;
        default:
            return (unsigned int)(-5);
    }
    // x86-64 epilogue: restore rbp
}
sparse_shared_tail pass 8 lines
// glaurung: sparse_shared_tail @ 0x18b0
int sparse_shared_tail(int arg0) {
    int r;
    // x86-64 prologue: save rbp
    r = (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 11))) == 0) ? 1 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 22))) == 0) ? 2 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 33))) == 0) ? 3 : 9)));
    // x86-64 epilogue: restore rbp
    return (unsigned int)(((r * 1000) + (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(r)) * r)))));
}
sparse_switch pass 21 lines
// glaurung: sparse_switch @ 0x1250
int sparse_switch(int arg0) {
    // x86-64 prologue: save rbp
    if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 1))) == 0)) {
        return 2001;
    } else {
        if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 5))) == 0)) {
            return 2005;
        } else {
            if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 17))) == 0)) {
                return 2017;
            } else {
                if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 100))) == 0)) {
                    return 2100;
                } else {
                    return 2999;
                }
            }
        }
    }
}
sparse_wide pass 21 lines
// glaurung: sparse_wide @ 0x12e0
int sparse_wide(int arg0) {
    // x86-64 prologue: save rbp
    if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 3))) == 0)) {
        return 30;
    } else {
        if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 250))) == 0)) {
            return 2500;
        } else {
            if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 0x1388))) == 0)) {
                return 0xc350;
            } else {
                if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0)) - 0x10001))) == 0)) {
                    return 0xa000a;
                } else {
                    return (unsigned int)(-7);
                }
            }
        }
    }
}
switch_in_loop pass 31 lines
// glaurung: switch_in_loop @ 0x16b0
int switch_in_loop(const int * arg0) {
    int s;
    int i;
    long local_18;
    long var4;
    // x86-64 prologue: save rbp
    s = 0;
    for (i = 0; ((long)(i) < 8); i++) {
        var4 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0[(long)(i)])) & 3)));
        local_18 = var4;
        if (((((unsigned long)((unsigned long)((unsigned int)(var4))) < (unsigned long)(3)) | ((unsigned long)((unsigned int)((var4 - 3))) == 0)) != 0)) {
            switch (local_18) {
                case 0:
                    s = ((unsigned int)(s) + 1);
                    break;
                case 1:
                    s = ((unsigned int)(s) + 10);
                    break;
                case 2:
                    s = ((unsigned int)(s) + 100);
                    break;
                case 3:
                    s = ((unsigned int)(s) + 1000);
                    break;
            }
        }
    }
    // x86-64 epilogue: restore rbp
    return (unsigned int)(s);
}
switch_loop_break pass 39 lines
// glaurung: switch_loop_break @ 0x1750
int switch_loop_break(const int * arg0) {
    int s;
    int i;
    int local_14;
    long var4;
    s = 0;
    i = 0;
    L_1766: ;
    if ((8 <= (long)(i))) {
        // x86-64 epilogue: restore rbp
        return (unsigned int)(((s * 10) + i));
    }
    var4 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0[(long)(i)])) & 7)));
    local_14 = var4;
    if (((unsigned long)((unsigned long)((unsigned int)(var4))) < (unsigned long)(2))) {
        goto L_17a0;
    }
    goto L_178f;
    L_178f: ;
    if (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(local_14)) - 7))) == 0)) {
        goto L_17ae;
    }
    goto L_17bc;
    L_17a0: ;
    s = ((unsigned int)(s) + 2);
    goto L_17c5;
    L_17ae: ;
    s = ((unsigned int)(s) + 5);
    // x86-64 epilogue: restore rbp
    return (unsigned int)(((s * 10) + i));
    L_17bc: ;
    s = ((unsigned int)(s) + 1);
    L_17c5: ;
    goto L_17ca;
    L_17ca: ;
    i = ((unsigned int)(i) + 1);
    goto L_1766;
}

clang -O2

16/16
default_dominant pass 4 lines
// glaurung: default_dominant @ 0x12d0
int default_dominant(int arg0) {
    return (((unsigned long)((unsigned int)(arg0)) == 42) ? 0x22b8 : 1111);
}
dense_compute pass 23 lines
// glaurung: dense_compute @ 0x1110
int dense_compute(unsigned int arg0, int arg1) {
    int r;
    int var8;
    switch ((unsigned long)((unsigned int)((arg0 & 7)))) {
        case 0:
            return (unsigned int)(((unsigned long)((unsigned int)(arg1)) + 1));
        case 1:
            return (unsigned int)(((unsigned long)((unsigned int)(arg1)) - 1));
        case 2:
        case 5:
            var8 = ((unsigned int)(arg1) + (unsigned int)(arg1));
            return (unsigned int)(var8);
        case 3:
            return (unsigned int)(((unsigned long)((unsigned int)(arg1)) + ((unsigned long)((unsigned int)(arg1)) * 2)));
        case 4:
            return (unsigned int)(((unsigned long)((unsigned int)(arg1)) ^ 90));
        case 6:
            return (~(unsigned long)((unsigned int)(arg1)));
        case 7:
            return (unsigned int)(((unsigned long)((unsigned int)(arg1)) & 15));
    }
}
dense_jumptable pass 6 lines
// glaurung: dense_jumptable @ 0x1100
int dense_jumptable(unsigned int arg0) {
    long var1;
    var1 = (unsigned long)((unsigned int)((arg0 & 7)));
    return (unsigned int)(((unsigned long)((unsigned int)((var1 + ((unsigned long)((unsigned int)((var1 + (var1 * 4)))) * 2)))) + 100));
}
explicit_fallthrough pass 11 lines
// glaurung: explicit_fallthrough @ 0x1280
int explicit_fallthrough(unsigned int arg0) {
    int r;
    long var1;
    var1 = (unsigned long)((unsigned int)((arg0 & 3)));
    r = 0x2328;
    if (((unsigned long)((unsigned int)(var1)) != 3)) {
        r = (unsigned long)((unsigned int)((((unsigned long)((unsigned int)(var1)) == 0) ? 37 : (((unsigned long)((unsigned int)(var1)) == 1) ? 30 : (((unsigned long)((unsigned int)(var1)) == 2) ? 500 : *(int *)((0x20c4 + ((unsigned long)((unsigned int)(var1)) * 4))))))));
    }
    return r;
}
fallthrough_chain pass 14 lines
// glaurung: fallthrough_chain @ 0x12a0
int fallthrough_chain(unsigned int arg0) {
    int r;
    switch ((unsigned long)((unsigned int)((arg0 & 3)))) {
        case 0:
            return 0x10e1;
        case 1:
            return 0x10e0;
        case 2:
            return 0x10cc;
        case 3:
            return 4000;
    }
}
negative_cases pass 13 lines
// glaurung: negative_cases @ 0x11d0
int negative_cases(int arg0) {
    long ret;
    int var0;
    long var1;
    var0 = (arg0 + 3);
    var1 = (unsigned long)((unsigned int)(var0));
    ret = 399;
    if (((unsigned long)((unsigned long)((unsigned int)(var0))) <= (unsigned long)(5))) {
        ret = (unsigned long)((unsigned int)((((long)((int)(var1)) == 0) ? 303 : (((long)((int)(var1)) == 1) ? 399 : (((long)((int)(var1)) == 2) ? 301 : (((long)((int)(var1)) == 3) ? 300 : (((long)((int)(var1)) == 4) ? 399 : (((long)((int)(var1)) == 5) ? 302 : *(int *)((0x20ac + ((long)((int)(var1)) * 4)))))))))));
    }
    return ret;
}
negative_sparse pass 19 lines
// glaurung: negative_sparse @ 0x11f0
int negative_sparse(int arg0) {
    if (((((unsigned long)((unsigned int)(arg0)) == 6) | ((long)(arg0) < 6)) != 0)) {
        if (((unsigned long)((unsigned int)(arg0)) == 0xffffff9c)) {
            return 4000;
        }
        if (((unsigned long)((unsigned int)(arg0)) != 0xffffffff)) {
            return 0x1387;
        }
        return 4001;
    }
    if (((unsigned long)((unsigned int)(arg0)) == 7)) {
        return 4007;
    }
    if (((unsigned long)((unsigned int)(arg0)) != 42)) {
        return 0x1387;
    }
    return 4042;
}
nested_switch pass 4 lines
// glaurung: nested_switch @ 0x1490
int nested_switch(unsigned int arg0, unsigned int arg1) {
    return (unsigned int)(((((unsigned long)((unsigned char)((arg0 & 1))) == 0) ? 0x1770 : 0x177a) | (unsigned long)((unsigned int)((arg1 & 1)))));
}
no_default pass 6 lines
// glaurung: no_default @ 0x12f0
int no_default(unsigned int arg0) {
    long var1;
    var1 = (unsigned long)((unsigned int)((arg0 & 7)));
    return (((unsigned long)((unsigned int)(var1)) != 2) ? (((unsigned long)((unsigned int)(var1)) == 5) ? 550 : 999) : 220);
}
shared_bodies pass 11 lines
// glaurung: shared_bodies @ 0x1230
int shared_bodies(unsigned int arg0) {
    long ret;
    long var1;
    var1 = (unsigned long)((unsigned int)((arg0 & 7)));
    ret = 700;
    if (((unsigned long)((unsigned long)((unsigned int)(var1))) <= (unsigned long)(3))) {
        ret = (unsigned long)((unsigned int)((((unsigned long)((unsigned int)(var1)) == 0) ? 500 : (((unsigned long)((unsigned int)(var1)) == 1) ? 600 : (((unsigned long)((unsigned int)(var1)) == 2) ? 500 : (((unsigned long)((unsigned int)(var1)) == 3) ? 600 : *(int *)((0x20d0 + ((unsigned long)((unsigned int)(var1)) * 4)))))))));
    }
    return ret;
}
shared_sparse pass 17 lines
// glaurung: shared_sparse @ 0x1250
int shared_sparse(int arg0) {
    long ret;
    ret = 1200;
    switch ((unsigned long)((unsigned int)((arg0 - 10)))) {
        case 0:
        case 10:
            break;
        case 20:
        case 30:
            return 3400;
        default:
            ret = 0xfffffffb;
            break;
    }
    return ret;
}
sparse_shared_tail pass 6 lines
// glaurung: sparse_shared_tail @ 0x14b0
int sparse_shared_tail(int arg0) {
    int r;
    r = (((unsigned long)((unsigned int)(arg0)) == 11) ? 1 : (((unsigned long)((unsigned int)(arg0)) == 33) ? 3 : (((unsigned long)((unsigned int)(arg0)) != 22) ? 9 : 2)));
    return (unsigned int)(((unsigned long)((unsigned int)((r + 1000))) * r));
}
sparse_switch pass 19 lines
// glaurung: sparse_switch @ 0x1140
int sparse_switch(int arg0) {
    if (((((unsigned long)((unsigned int)(arg0)) == 16) | ((long)(arg0) < 16)) != 0)) {
        if (((unsigned long)((unsigned int)(arg0)) == 1)) {
            return 2001;
        }
        if (((unsigned long)((unsigned int)(arg0)) != 5)) {
            return 2999;
        }
        return 2005;
    }
    if (((unsigned long)((unsigned int)(arg0)) == 17)) {
        return 2017;
    }
    if (((unsigned long)((unsigned int)(arg0)) != 100)) {
        return 2999;
    }
    return 2100;
}
sparse_wide pass 19 lines
// glaurung: sparse_wide @ 0x1180
int sparse_wide(int arg0) {
    if (((((unsigned long)((unsigned int)(arg0)) == 0x1387) | ((long)(arg0) < 0x1387)) != 0)) {
        if (((unsigned long)((unsigned int)(arg0)) == 3)) {
            return 30;
        }
        if (((unsigned long)((unsigned int)(arg0)) != 250)) {
            return 0xfffffff9;
        }
        return 2500;
    }
    if (((unsigned long)((unsigned int)(arg0)) == 0x1388)) {
        return 0xc350;
    }
    if (((unsigned long)((unsigned int)(arg0)) != 0x10001)) {
        return 0xfffffff9;
    }
    return 0xa000a;
}
switch_in_loop pass 6 lines
// glaurung: switch_in_loop @ 0x1310
int switch_in_loop(const int * arg0) {
    int i;
    int s;
    return (unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0)))) & 3))) == 0) ? 1 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0)))) & 3))) == 1) ? 10 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0)))) & 3))) == 2) ? 100 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0)))) & 3))) == 3) ? 1000 : *(int *)((0x20e0 + ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0)))) & 3))) * 4))))))))) + (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x4)))) & 3))) == 0) ? 1 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x4)))) & 3))) == 1) ? 10 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x4)))) & 3))) == 2) ? 100 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x4)))) & 3))) == 3) ? 1000 : *(int *)((0x20e0 + ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x4)))) & 3))) * 4)))))))))) + (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x8)))) & 3))) == 0) ? 1 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x8)))) & 3))) == 1) ? 10 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x8)))) & 3))) == 2) ? 100 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x8)))) & 3))) == 3) ? 1000 : *(int *)((0x20e0 + ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x8)))) & 3))) * 4)))))))))) + (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0xc)))) & 3))) == 0) ? 1 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0xc)))) & 3))) == 1) ? 10 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0xc)))) & 3))) == 2) ? 100 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0xc)))) & 3))) == 3) ? 1000 : *(int *)((0x20e0 + ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0xc)))) & 3))) * 4)))))))))) + (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x10)))) & 3))) == 0) ? 1 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x10)))) & 3))) == 1) ? 10 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x10)))) & 3))) == 2) ? 100 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x10)))) & 3))) == 3) ? 1000 : *(int *)((0x20e0 + ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x10)))) & 3))) * 4)))))))))) + (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x14)))) & 3))) == 0) ? 1 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x14)))) & 3))) == 1) ? 10 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x14)))) & 3))) == 2) ? 100 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x14)))) & 3))) == 3) ? 1000 : *(int *)((0x20e0 + ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x14)))) & 3))) * 4)))))))))) + (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x18)))) & 3))) == 0) ? 1 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x18)))) & 3))) == 1) ? 10 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x18)))) & 3))) == 2) ? 100 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x18)))) & 3))) == 3) ? 1000 : *(int *)((0x20e0 + ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x18)))) & 3))) * 4)))))))))) + (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x1c)))) & 3))) == 0) ? 1 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x1c)))) & 3))) == 1) ? 10 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x1c)))) & 3))) == 2) ? 100 : (((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x1c)))) & 3))) == 3) ? 1000 : *(int *)((0x20e0 + ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x1c)))) & 3))) * 4)))))))));
}
switch_loop_break pass 163 lines
// glaurung: switch_loop_break @ 0x1370
int switch_loop_break(const int * arg0) {
    int s;
    int i;
    long var10;
    long var13;
    long var14;
    int var15;
    long var17;
    long var2;
    long var20;
    long var22;
    long var25;
    int var26;
    int var27;
    long var29;
    int var3;
    long var32;
    long var34;
    long var37;
    int var38;
    int var43;
    long var45;
    long var46;
    long var48;
    long var5;
    long var8;
    var2 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0)))) & 7)));
    var3 = 2;
    var5 = 2;
    if (((unsigned long)((unsigned long)((unsigned int)(var2))) < (unsigned long)(2))) {
        L_1399: ;
        var8 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x4)))) & 7)));
        if (((unsigned long)((unsigned long)((unsigned int)(var8))) < (unsigned long)(2))) {
            L_13b7: ;
            var10 = (unsigned long)((unsigned int)((var5 + var3)));
            var13 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x8)))) & 7)));
            var14 = 2;
            var15 = 2;
            if (((unsigned long)((unsigned long)((unsigned int)(var13))) < (unsigned long)(2))) {
                L_13dc: ;
                var17 = (unsigned long)((unsigned int)((var10 + var15)));
                var20 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0xc)))) & 7)));
                if (((unsigned long)((unsigned long)((unsigned int)(var20))) < (unsigned long)(2))) {
                    L_13f8: ;
                    var22 = (unsigned long)((unsigned int)((var17 + var14)));
                    var25 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x10)))) & 7)));
                    var26 = 2;
                    var27 = 2;
                    if (((unsigned long)((unsigned long)((unsigned int)(var25))) < (unsigned long)(2))) {
                        L_141e: ;
                        var29 = (unsigned long)((unsigned int)((var22 + var27)));
                        var32 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x14)))) & 7)));
                        if (((unsigned long)((unsigned long)((unsigned int)(var32))) < (unsigned long)(2))) {
                            L_143a: ;
                            var34 = (unsigned long)((unsigned int)((var29 + var26)));
                            var37 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x18)))) & 7)));
                            var38 = 2;
                            if (((unsigned long)((unsigned long)((unsigned int)(var37))) < (unsigned long)(2))) {
                                L_145b: ;
                                s = (unsigned long)((unsigned int)((var34 + var38)));
                                var14 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x1c)))) & 7)));
                                if (((unsigned long)(2) <= (unsigned long)((unsigned long)((unsigned int)(var14))))) {
                                    var5 = (unsigned long)((unsigned int)(s));
                                    if (((unsigned long)((unsigned int)(var14)) == 7)) {
                                        var43 = (var5 + 5);
                                        var45 = (unsigned long)((unsigned int)(var43));
                                        var46 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var43)) + ((unsigned long)((unsigned int)(var43)) * 4))));
                                        return (unsigned int)((var14 + (var46 * 2)));
                                    }
                                    var48 = (unsigned long)((unsigned int)((s + 1)));
                                    L_147f: ;
                                    var14 = 8;
                                    var45 = var48;
                                } else {
                                    var48 = (unsigned long)((unsigned int)((s + 2)));
                                    goto L_147f;
                                }
                            } else {
                                var14 = 6;
                                var5 = var34;
                                if (((unsigned long)((unsigned int)(var37)) == 7)) {
                                    var43 = (var5 + 5);
                                    var45 = (unsigned long)((unsigned int)(var43));
                                    var46 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var43)) + ((unsigned long)((unsigned int)(var43)) * 4))));
                                    return (unsigned int)((var14 + (var46 * 2)));
                                }
                                var38 = 1;
                                goto L_145b;
                            }
                        } else {
                            var14 = 5;
                            var5 = var29;
                            if (((unsigned long)((unsigned int)(var32)) == 7)) {
                                var43 = (var5 + 5);
                                var45 = (unsigned long)((unsigned int)(var43));
                                var46 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var43)) + ((unsigned long)((unsigned int)(var43)) * 4))));
                                return (unsigned int)((var14 + (var46 * 2)));
                            }
                            var26 = 1;
                            goto L_143a;
                        }
                    } else {
                        var14 = 4;
                        var5 = var22;
                        if (((unsigned long)((unsigned int)(var25)) == 7)) {
                            var43 = (var5 + 5);
                            var45 = (unsigned long)((unsigned int)(var43));
                            var46 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var43)) + ((unsigned long)((unsigned int)(var43)) * 4))));
                            return (unsigned int)((var14 + (var46 * 2)));
                        }
                        var27 = 1;
                        goto L_141e;
                    }
                } else {
                    var14 = 3;
                    var5 = var17;
                    if (((unsigned long)((unsigned int)(var20)) == 7)) {
                        var43 = (var5 + 5);
                        var45 = (unsigned long)((unsigned int)(var43));
                        var46 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var43)) + ((unsigned long)((unsigned int)(var43)) * 4))));
                        return (unsigned int)((var14 + (var46 * 2)));
                    }
                    var14 = 1;
                    goto L_13f8;
                }
            } else {
                var5 = var10;
                if (((unsigned long)((unsigned int)(var13)) == 7)) {
                    var43 = (var5 + 5);
                    var45 = (unsigned long)((unsigned int)(var43));
                    var46 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var43)) + ((unsigned long)((unsigned int)(var43)) * 4))));
                    return (unsigned int)((var14 + (var46 * 2)));
                }
                var15 = 1;
                goto L_13dc;
            }
        } else {
            var14 = 1;
            if (((unsigned long)((unsigned int)(var8)) == 7)) {
                var43 = (var5 + 5);
                var45 = (unsigned long)((unsigned int)(var43));
                var46 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var43)) + ((unsigned long)((unsigned int)(var43)) * 4))));
                return (unsigned int)((var14 + (var46 * 2)));
            }
            var3 = 1;
            goto L_13b7;
        }
    } else {
        var14 = 0;
        var5 = 0;
        if (((unsigned long)((unsigned int)(var2)) == 7)) {
            var43 = (var5 + 5);
            var45 = (unsigned long)((unsigned int)(var43));
            var46 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var43)) + ((unsigned long)((unsigned int)(var43)) * 4))));
            return (unsigned int)((var14 + (var46 * 2)));
        }
        var5 = 1;
        goto L_1399;
    }
    var46 = (unsigned long)((unsigned int)((var45 + (var45 * 4))));
    return (unsigned int)((var14 + (var46 * 2)));
}

gcc -O0

16/16
default_dominant pass 9 lines
// glaurung: default_dominant @ 0x14a2
int default_dominant(int arg0) {
    // x86-64 prologue: save rbp
    if (((unsigned long)((unsigned int)(arg0)) != 42)) {
        return 1111;
    } else {
        return 0x22b8;
    }
}
dense_compute pass 36 lines
// glaurung: dense_compute @ 0x1171
int dense_compute(unsigned int arg0, int arg1) {
    int r;
    // x86-64 prologue: save rbp
    switch ((unsigned long)((unsigned int)((arg0 & 7)))) {
        case 0:
            r = ((unsigned int)(arg1) + 1);
            break;
        case 1:
            r = ((unsigned int)(arg1) - 1);
            break;
        case 2:
            r = ((unsigned int)(arg1) + (unsigned int)(arg1));
            break;
        case 3:
            r = ((unsigned int)(((unsigned long)((unsigned int)(arg1)) + (unsigned long)((unsigned int)(arg1)))) + (unsigned int)(arg1));
            break;
        case 4:
            r = ((unsigned int)(arg1) ^ 90);
            break;
        case 5:
            r = ((unsigned int)(arg1) + (unsigned int)(arg1));
            break;
        case 6:
            r = (~(unsigned long)((unsigned int)(arg1)));
            break;
        case 7:
            r = ((unsigned int)(arg1) & 15);
            break;
        default:
            r = 0;
            break;
    }
    // x86-64 epilogue: restore rbp
    return (unsigned int)(r);
}
dense_jumptable pass 25 lines
// glaurung: dense_jumptable @ 0x10f9
int dense_jumptable(unsigned int arg0) {
    // x86-64 prologue: save rbp
    switch ((unsigned long)((unsigned int)((arg0 & 7)))) {
        case 0:
            return 100;
        case 1:
            return 111;
        case 2:
            return 122;
        case 3:
            return 133;
        case 4:
            return 144;
        case 5:
            return 155;
        case 6:
            return 166;
        case 7:
            return 177;
        default:
            return 0xffffffff;
    }
    // x86-64 epilogue: restore rbp
}
explicit_fallthrough pass 34 lines
// glaurung: explicit_fallthrough @ 0x13fa
int explicit_fallthrough(unsigned int arg0) {
    int r;
    long t140;
    long t142;
    long var2;
    // x86-64 prologue: save rbp
    r = 0;
    var2 = (unsigned long)((unsigned int)((arg0 & 3)));
    if (((unsigned long)((unsigned int)(var2)) == 2)) {
        return (unsigned int)((r + 500));
    }
    if (((unsigned long)(2) < (unsigned long)((unsigned long)((unsigned int)(var2))))) {
        t142 = ((unsigned long)((unsigned int)(r)) + 0x2328);
        r = t142;
        // x86-64 epilogue: restore rbp
        return (unsigned int)(r);
    }
    if (((unsigned long)((unsigned int)(var2)) == 0)) {
        r = (r + 7);
        t140 = ((unsigned long)((unsigned int)(r)) + 30);
        return (unsigned int)(t140);
    }
    if (((unsigned long)((unsigned int)(var2)) == 1)) {
        t140 = ((unsigned long)((unsigned int)(r)) + 30);
        r = t140;
        // x86-64 epilogue: restore rbp
        return (unsigned int)(r);
    }
    t142 = ((unsigned long)((unsigned int)(r)) + 0x2328);
    r = t142;
    // x86-64 epilogue: restore rbp
    return (unsigned int)(r);
}
fallthrough_chain pass 45 lines
// glaurung: fallthrough_chain @ 0x1447
int fallthrough_chain(unsigned int arg0) {
    int r;
    long t144;
    long var2;
    // x86-64 prologue: save rbp
    r = 0;
    var2 = (unsigned long)((unsigned int)((arg0 & 3)));
    if (((unsigned long)((unsigned int)(var2)) == 3)) {
        t144 = ((unsigned long)((unsigned int)(r)) + 4000);
        r = t144;
        // x86-64 epilogue: restore rbp
        return (unsigned int)(r);
    }
    if (((unsigned long)(3) < (unsigned long)((unsigned long)((unsigned int)(var2))))) {
        r = -1;
        // x86-64 epilogue: restore rbp
        return (unsigned int)(r);
    }
    if (((unsigned long)((unsigned int)(var2)) == 2)) {
        L_1486: ;
        r = (r + 300);
        t144 = ((unsigned long)((unsigned int)(r)) + 4000);
        return (unsigned int)(t144);
    }
    if (((unsigned long)(2) < (unsigned long)((unsigned long)((unsigned int)(var2))))) {
        r = -1;
        // x86-64 epilogue: restore rbp
        return (unsigned int)(r);
    }
    if (((unsigned long)((unsigned int)(var2)) == 0)) {
        r = (r + 1);
        L_1482: ;
        r = (r + 20);
        goto L_1486;
    } else {
        if (((unsigned long)((unsigned int)(var2)) == 1)) {
            goto L_1482;
        } else {
            r = -1;
        }
    }
    // x86-64 epilogue: restore rbp
    return (unsigned int)(r);
}
negative_cases pass 18 lines
// glaurung: negative_cases @ 0x12c9
int negative_cases(int arg0) {
    // x86-64 prologue: save rbp
    switch (arg0) {
        case 2:
            return 302;
        case 0:
            return 300;
        case -3:
            return 303;
        case -1:
            return 301;
        default:
            // x86-64 epilogue: restore rbp
            return 399;
    }
    // x86-64 epilogue: restore rbp
}
negative_sparse pass 18 lines
// glaurung: negative_sparse @ 0x131d
int negative_sparse(int arg0) {
    // x86-64 prologue: save rbp
    switch (arg0) {
        case 42:
            return 4042;
        case 7:
            return 4007;
        case -100:
            return 4000;
        case -1:
            return 4001;
        default:
            // x86-64 epilogue: restore rbp
            return 0x1387;
    }
    // x86-64 epilogue: restore rbp
}
nested_switch pass 38 lines
// glaurung: nested_switch @ 0x15e8
int nested_switch(unsigned int arg0, unsigned int arg1) {
    long ret;
    long var2;
    long var5;
    long var8;
    // x86-64 prologue: save rbp
    var2 = (unsigned long)((unsigned int)((arg0 & 1)));
    if (((unsigned long)((unsigned int)(var2)) == 0)) {
        var5 = (unsigned long)((unsigned int)((arg1 & 1)));
        if (((unsigned long)((unsigned int)(var5)) == 0)) {
            return 0x1770;
        } else {
            if (((unsigned long)((unsigned int)(var5)) == 1)) {
                return 0x1771;
            } else {
                L_1645: ;
                return 0xffffffff;
            }
        }
    }
    if (((unsigned long)((unsigned int)(var2)) == 1)) {
        var8 = (unsigned long)((unsigned int)((arg1 & 1)));
        if (((unsigned long)((unsigned int)(var8)) == 0)) {
            ret = 0x177a;
        } else {
            if (((unsigned long)((unsigned int)(var8)) == 1)) {
                ret = 0x177b;
            } else {
                goto L_1645;
            }
        }
    } else {
        goto L_1645;
    }
    // x86-64 epilogue: restore rbp
    return ret;
}
no_default pass 15 lines
// glaurung: no_default @ 0x14c1
int no_default(unsigned int arg0) {
    long var2;
    // x86-64 prologue: save rbp
    var2 = (unsigned long)((unsigned int)((arg0 & 7)));
    if (((unsigned long)((unsigned int)(var2)) == 2)) {
        return 220;
    } else {
        if (((unsigned long)((unsigned int)(var2)) == 5)) {
            return 550;
        } else {
            return 999;
        }
    }
}
shared_bodies pass 32 lines
// glaurung: shared_bodies @ 0x1371
int shared_bodies(unsigned int arg0) {
    long var2;
    // x86-64 prologue: save rbp
    var2 = (unsigned long)((unsigned int)((arg0 & 7)));
    if (((unsigned long)((unsigned int)(var2)) == 3)) {
        // x86-64 epilogue: restore rbp
        return 600;
    }
    if (((unsigned long)(3) < (unsigned long)((unsigned long)((unsigned int)(var2))))) {
        // x86-64 epilogue: restore rbp
        return 700;
    }
    if (((unsigned long)((unsigned int)(var2)) == 2)) {
        // x86-64 epilogue: restore rbp
        return 500;
    }
    if (((unsigned long)(2) < (unsigned long)((unsigned long)((unsigned int)(var2))))) {
        // x86-64 epilogue: restore rbp
        return 700;
    }
    if (((unsigned long)((unsigned int)(var2)) == 0)) {
        // x86-64 epilogue: restore rbp
        return 500;
    }
    if (((unsigned long)((unsigned int)(var2)) == 1)) {
        // x86-64 epilogue: restore rbp
        return 600;
    }
    // x86-64 epilogue: restore rbp
    return 700;
}
shared_sparse pass 25 lines
// glaurung: shared_sparse @ 0x13b6
int shared_sparse(int arg0) {
    if (((unsigned long)((unsigned int)(arg0)) == 40)) {
        // x86-64 epilogue: restore rbp
        return 3400;
    }
    if (((((unsigned long)((unsigned int)(arg0)) == 40) | ((long)(arg0) < 40)) == 0)) {
        // x86-64 epilogue: restore rbp
        return 0xfffffffb;
    }
    if (((unsigned long)((unsigned int)(arg0)) == 30)) {
        // x86-64 epilogue: restore rbp
        return 3400;
    }
    if (((((unsigned long)((unsigned int)(arg0)) == 30) | ((long)(arg0) < 30)) == 0)) {
        // x86-64 epilogue: restore rbp
        return 0xfffffffb;
    }
    if ((((unsigned long)((unsigned int)(arg0)) == 10) || ((unsigned long)((unsigned int)(arg0)) == 20))) {
        // x86-64 epilogue: restore rbp
        return 1200;
    }
    // x86-64 epilogue: restore rbp
    return 0xfffffffb;
}
sparse_shared_tail pass 34 lines
// glaurung: sparse_shared_tail @ 0x164c
int sparse_shared_tail(int arg0) {
    int r;
    int var1;
    int var3;
    int var5;
    // x86-64 prologue: save rbp
    if (((unsigned long)((unsigned int)(arg0)) == 33)) {
        r = 3;
    } else {
        if (((((unsigned long)((unsigned int)(arg0)) == 33) | ((long)(arg0) < 33)) == 0)) {
            r = 9;
            var1 = ((unsigned int)(r) * 1000);
            var3 = ((unsigned int)(r) * (unsigned int)(r));
            var5 = ((unsigned int)(var3) + var1);
            // x86-64 epilogue: restore rbp
            return (unsigned int)(var5);
        }
        if (((unsigned long)((unsigned int)(arg0)) == 11)) {
            r = 1;
        } else {
            if (((unsigned long)((unsigned int)(arg0)) == 22)) {
                r = 2;
            } else {
                r = 9;
            }
        }
    }
    var1 = ((unsigned int)(r) * 1000);
    var3 = ((unsigned int)(r) * (unsigned int)(r));
    var5 = ((unsigned int)(var3) + var1);
    // x86-64 epilogue: restore rbp
    return (unsigned int)(var5);
}
sparse_switch pass 18 lines
// glaurung: sparse_switch @ 0x1212
int sparse_switch(int arg0) {
    // x86-64 prologue: save rbp
    switch (arg0) {
        case 100:
            return 2100;
        case 17:
            return 2017;
        case 1:
            return 2001;
        case 5:
            return 2005;
        default:
            // x86-64 epilogue: restore rbp
            return 2999;
    }
    // x86-64 epilogue: restore rbp
}
sparse_wide pass 18 lines
// glaurung: sparse_wide @ 0x1266
int sparse_wide(int arg0) {
    // x86-64 prologue: save rbp
    switch (arg0) {
        case 65537:
            return 0xa000a;
        case 5000:
            return 0xc350;
        case 3:
            return 30;
        case 250:
            return 2500;
        default:
            // x86-64 epilogue: restore rbp
            return 0xfffffff9;
    }
    // x86-64 epilogue: restore rbp
}
switch_in_loop pass 33 lines
// glaurung: switch_in_loop @ 0x14f3
int switch_in_loop(const int * arg0) {
    int s;
    int i;
    long var7;
    // x86-64 prologue: save rbp
    s = 0;
    for (i = 0; ((((unsigned long)((unsigned int)(i)) == 7) | ((long)(i) < 7)) != 0); i++) {
        var7 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0[(long)(i)])) & 3)));
        if (((unsigned long)((unsigned int)(var7)) == 3)) {
            s = (s + 1000);
        } else {
            if (((((unsigned long)((unsigned int)(var7)) == 3) | ((long)((int)(var7)) < 3)) != 0)) {
                if (((unsigned long)((unsigned int)(var7)) == 2)) {
                    s = (s + 100);
                } else {
                    if (((((unsigned long)((unsigned int)(var7)) == 2) | ((long)((int)(var7)) < 2)) != 0)) {
                        if (((unsigned long)((unsigned int)(var7)) == 0)) {
                            s = (s + 1);
                        } else {
                            if (((unsigned long)((unsigned int)(var7)) == 1)) {
                                s = (s + 10);
                            } else {
                            }
                        }
                    }
                }
            }
        }
    }
    // x86-64 epilogue: restore rbp
    return (unsigned int)(s);
}
switch_loop_break pass 41 lines
// glaurung: switch_loop_break @ 0x1570
int switch_loop_break(const int * arg0) {
    int s;
    int i;
    int var12;
    long var7;
    s = 0;
    i = 0;
    goto L_15cc;
    L_158c: ;
    var7 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(arg0[(long)(i)])) & 7)));
    if (((((unsigned long)((unsigned int)(var7)) == 1) | ((long)((int)(var7)) < 1)) != 0)) {
        if ((0 <= (long)((int)(var7)))) {
            goto L_15b7;
        }
        goto L_15c3;
    }
    if (((unsigned long)((unsigned int)(var7)) == 7)) {
        goto L_15bd;
    }
    goto L_15c3;
    L_15b7: ;
    s = (s + 2);
    goto L_15c8;
    L_15bd: ;
    s = (s + 5);
    var12 = ((unsigned int)(((unsigned long)((unsigned int)(s)) << 2)) + (unsigned int)(s));
    // x86-64 epilogue: restore rbp
    return (unsigned int)(((unsigned long)((unsigned int)(i)) + (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var12)) + (unsigned long)((unsigned int)(var12)))))));
    L_15c3: ;
    s = (s + 1);
    L_15c8: ;
    i = (i + 1);
    L_15cc: ;
    if ((((unsigned long)((unsigned int)(i)) == 7) | ((long)(i) < 7))) {
        goto L_158c;
    }
    var12 = ((unsigned int)(((unsigned long)((unsigned int)(s)) << 2)) + (unsigned int)(s));
    // x86-64 epilogue: restore rbp
    return (unsigned int)(((unsigned long)((unsigned int)(i)) + (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var12)) + (unsigned long)((unsigned int)(var12)))))));
}

gcc -O2

16/16
default_dominant pass 4 lines
// glaurung: default_dominant @ 0x1390
int default_dominant(int arg0) {
    return (((unsigned long)((unsigned int)(arg0)) != 42) ? 1111 : 0x22b8);
}
dense_compute pass 23 lines
// glaurung: dense_compute @ 0x1120
int dense_compute(unsigned int arg0, int arg1) {
    int r;
    long t133;
    switch ((unsigned long)((unsigned int)((arg0 & 7)))) {
        case 0:
            return (unsigned int)((arg1 + 1));
        case 1:
            return (unsigned int)((arg1 - 1));
        case 2:
        case 5:
            t133 = ((unsigned long)((unsigned int)(arg1)) + (unsigned long)((unsigned int)(arg1)));
            return (unsigned int)(t133);
        case 3:
            return (unsigned int)((arg1 + (arg1 * 2)));
        case 4:
            return (unsigned int)(((unsigned long)((unsigned int)(arg1)) ^ 90));
        case 6:
            return (~(unsigned long)((unsigned int)(arg1)));
        case 7:
            return (unsigned int)(((unsigned long)((unsigned int)(arg1)) & 15));
    }
}
dense_jumptable pass 11 lines
// glaurung: dense_jumptable @ 0x1100
int dense_jumptable(unsigned int arg0) {
    long ret;
    long var1;
    var1 = (unsigned long)((unsigned int)((arg0 & 7)));
    ret = 100;
    if (((unsigned long)((unsigned long)((unsigned int)((var1 - 1)))) <= (unsigned long)(6))) {
        ret = (unsigned long)((unsigned int)(((var1 + ((unsigned long)((unsigned int)((var1 + (var1 * 4)))) * 2)) + 100)));
    }
    return ret;
}
explicit_fallthrough pass 14 lines
// glaurung: explicit_fallthrough @ 0x1330
int explicit_fallthrough(unsigned int arg0) {
    long ret;
    long var1;
    var1 = (unsigned long)((unsigned int)((arg0 & 3)));
    ret = 30;
    if (((unsigned long)((unsigned int)(var1)) != 1)) {
        ret = 500;
        if (((unsigned long)((unsigned int)(var1)) != 2)) {
            ret = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned int)((0 - ((unsigned long)((unsigned long)((unsigned int)(var1))) < (unsigned long)(1)))) & -0x2303LL))) + 0x2328)));
        }
    }
    return ret;
}
fallthrough_chain pass 14 lines
// glaurung: fallthrough_chain @ 0x1360
int fallthrough_chain(unsigned int arg0) {
    long ret;
    long var1;
    var1 = (unsigned long)((unsigned int)((arg0 & 3)));
    ret = 0x10cc;
    if (((unsigned long)((unsigned int)(var1)) != 2)) {
        ret = 4000;
        if (((unsigned long)((unsigned int)(var1)) != 3)) {
            ret = (unsigned long)((unsigned int)((((unsigned long)((unsigned int)(var1)) != 1) + 0x10e0)));
        }
    }
    return ret;
}
negative_cases pass 13 lines
// glaurung: negative_cases @ 0x1220
int negative_cases(int arg0) {
    long ret;
    int var0;
    long var1;
    var0 = (arg0 + 3);
    var1 = (unsigned long)((unsigned int)(var0));
    ret = 399;
    if (((unsigned long)((unsigned long)((unsigned int)(var0))) <= (unsigned long)(5))) {
        ret = (unsigned long)((unsigned int)(((var1 == 0) ? 303 : ((var1 == 1) ? 399 : ((var1 == 2) ? 301 : ((var1 == 3) ? 300 : ((var1 == 4) ? 399 : ((var1 == 5) ? 302 : *(int *)((0x2080 + (var1 * 4)))))))))));
    }
    return ret;
}
negative_sparse pass 17 lines
// glaurung: negative_sparse @ 0x1240
int negative_sparse(int arg0) {
    long ret;
    long t33;
    t33 = ((unsigned long)((unsigned int)(arg0)) - 7);
    if (((unsigned long)((unsigned int)(arg0)) == 7)) {
        return 4007;
    }
    if (((((unsigned long)((unsigned int)(arg0)) == 7) | ((long)(arg0) < 7)) == 0)) {
        return (((unsigned long)((unsigned int)(arg0)) == 42) ? 4042 : 0x1387);
    }
    ret = 4000;
    if (((unsigned long)((unsigned int)(arg0)) == 0xffffff9c)) {
        return ret;
    }
    return (((unsigned long)((unsigned int)(arg0)) == 0xffffffff) ? 4001 : 0x1387);
}
nested_switch pass 6 lines
// glaurung: nested_switch @ 0x1490
int nested_switch(unsigned int arg0, unsigned int arg1) {
    long var1;
    var1 = (unsigned long)((unsigned int)((arg1 & 1)));
    return (((unsigned long)((unsigned int)((arg0 & 1))) != 0) ? (unsigned long)((unsigned int)((var1 + 0x177a))) : (unsigned long)((unsigned int)((var1 + 0x1770))));
}
no_default pass 13 lines
// glaurung: no_default @ 0x13b0
int no_default(unsigned int arg0) {
    long var1;
    var1 = (unsigned long)((unsigned int)((arg0 & 7)));
    if (((unsigned long)((unsigned int)(var1)) != 2)) {
        if (((unsigned long)((unsigned int)(var1)) == 5)) {
            return 550;
        } else {
            return 999;
        }
    }
    return 220;
}
shared_bodies pass 17 lines
// glaurung: shared_bodies @ 0x1290
int shared_bodies(unsigned int arg0) {
    long ret;
    long var1;
    var1 = (unsigned long)((unsigned int)((arg0 & 7)));
    if (((unsigned long)((unsigned int)(var1)) == 2)) {
        return 500;
    }
    if (((unsigned long)(2) < (unsigned long)((unsigned long)((unsigned int)(var1))))) {
        return (((unsigned long)((unsigned int)(var1)) == 3) ? 600 : 700);
    }
    ret = 500;
    if (((unsigned long)((unsigned int)(var1)) == 0)) {
        return ret;
    }
    return (((unsigned long)((unsigned int)(var1)) == 1) ? 600 : 700);
}
shared_sparse pass 17 lines
// glaurung: shared_sparse @ 0x12e0
int shared_sparse(int arg0) {
    long ret;
    long t33;
    t33 = ((unsigned long)((unsigned int)(arg0)) - 30);
    if (((unsigned long)((unsigned int)(arg0)) == 30)) {
        return 3400;
    }
    if (((((unsigned long)((unsigned int)(arg0)) == 30) | ((long)(arg0) < 30)) == 0)) {
        return (((unsigned long)((unsigned int)(arg0)) == 40) ? 3400 : 0xfffffffb);
    }
    ret = 1200;
    if (((unsigned long)((unsigned int)(arg0)) == 10)) {
        return ret;
    }
    return (((unsigned long)((unsigned int)(arg0)) != 20) ? 0xfffffffb : 1200);
}
sparse_shared_tail pass 13 lines
// glaurung: sparse_shared_tail @ 0x14b0
int sparse_shared_tail(int arg0) {
    int r;
    long ret;
    long var1;
    var1 = (unsigned long)((unsigned int)((arg0 - 11)));
    ret = 0x2379;
    if (((unsigned long)((unsigned long)((unsigned int)(var1))) <= (unsigned long)(22))) {
        r = (unsigned long)((unsigned int)(((var1 == 0) ? 1 : ((var1 == 1) ? 9 : ((var1 == 2) ? 9 : ((var1 == 3) ? 9 : ((var1 == 4) ? 9 : ((var1 == 5) ? 9 : ((var1 == 6) ? 9 : ((var1 == 7) ? 9 : ((var1 == 8) ? 9 : ((var1 == 9) ? 9 : ((var1 == 10) ? 9 : ((var1 == 11) ? 2 : ((var1 == 12) ? 9 : ((var1 == 13) ? 9 : ((var1 == 14) ? 9 : ((var1 == 15) ? 9 : ((var1 == 16) ? 9 : ((var1 == 17) ? 9 : ((var1 == 18) ? 9 : ((var1 == 19) ? 9 : ((var1 == 20) ? 9 : ((var1 == 21) ? 9 : ((var1 == 22) ? 3 : *(int *)((0x2020 + (var1 * 4))))))))))))))))))))))))))));
        ret = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((r + 1000))) * r)));
    }
    return ret;
}
sparse_switch pass 17 lines
// glaurung: sparse_switch @ 0x1180
int sparse_switch(int arg0) {
    long ret;
    long t33;
    t33 = ((unsigned long)((unsigned int)(arg0)) - 17);
    if (((unsigned long)((unsigned int)(arg0)) == 17)) {
        return 2017;
    }
    if (((((unsigned long)((unsigned int)(arg0)) == 17) | ((long)(arg0) < 17)) == 0)) {
        return (((unsigned long)((unsigned int)(arg0)) == 100) ? 2100 : 2999);
    }
    ret = 2001;
    if (((unsigned long)((unsigned int)(arg0)) == 1)) {
        return ret;
    }
    return (((unsigned long)((unsigned int)(arg0)) == 5) ? 2005 : 2999);
}
sparse_wide pass 17 lines
// glaurung: sparse_wide @ 0x11d0
int sparse_wide(int arg0) {
    long ret;
    long t33;
    t33 = ((unsigned long)((unsigned int)(arg0)) - 0x1388);
    if (((unsigned long)((unsigned int)(arg0)) == 0x1388)) {
        return 0xc350;
    }
    if (((((unsigned long)((unsigned int)(arg0)) == 0x1388) | ((long)(arg0) < 0x1388)) == 0)) {
        return (((unsigned long)((unsigned int)(arg0)) == 0x10001) ? 0xa000a : 0xfffffff9);
    }
    ret = 30;
    if (((unsigned long)((unsigned int)(arg0)) == 3)) {
        return ret;
    }
    return (((unsigned long)((unsigned int)(arg0)) == 250) ? 2500 : 0xfffffff9);
}
switch_in_loop pass 48 lines
// glaurung: switch_in_loop @ 0x13e0
int switch_in_loop(const int * arg0) {
    int s;
    int i;
    long ret;
    long var0;
    long var12;
    int var13;
    long var4;
    long var7;
    var0 = (long)((arg0 + 8));
    s = 0;
    var4 = (long)arg0;
    L_1405: ;
    while (1) {
        var7 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((var4)))) & 3)));
        if (((unsigned long)((unsigned int)(var7)) == 2)) {
            goto L_1428;
        }
        goto L_140f;
        L_13f0: ;
        var12 = (((unsigned long)((unsigned int)(var7)) != 1) ? (unsigned long)((unsigned int)((s + 1))) : (unsigned long)((unsigned int)((s + 10))));
        L_13fc: ;
        var4 = (var4 + 4);
        s = var12;
        ret = var12;
        if ((var4 == var0)) {
            return ret;
        }
        goto L_1405;
        L_140f: ;
        if (((unsigned long)((unsigned int)(var7)) != 3)) {
            goto L_13f0;
        }
        var4 = (var4 + 4);
        var13 = (s + 1000);
        s = (unsigned long)((unsigned int)(var13));
        ret = (unsigned long)((unsigned int)(var13));
        if ((var4 != var0)) {
            goto L_1405;
        }
        return ret;
        L_1428: ;
        var12 = (unsigned long)((unsigned int)((s + 100)));
        goto L_13fc;
    }
    return ret;
}
switch_loop_break pass 34 lines
// glaurung: switch_loop_break @ 0x1430
int switch_loop_break(const int * arg0) {
    int s;
    int i;
    long var1;
    long var13;
    int var16;
    long var5;
    long var9;
    var1 = 0;
    s = 0;
    L_1438: ;
    var5 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + var1 * 4))));
    i = (unsigned long)((unsigned int)(var1));
    var9 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var5)) & 7)));
    if (((unsigned long)((unsigned int)((var5 & 6))) != 0)) {
        goto L_1468;
    }
    var13 = (unsigned long)((unsigned int)((s + 2)));
    L_144b: ;
    var1 = (var1 + 1);
    s = var13;
    if ((var1 != 8)) {
        goto L_1438;
    }
    return (unsigned int)((8 + ((unsigned long)((unsigned int)((var13 + (var13 * 4)))) * 2)));
    L_1468: ;
    if (((unsigned long)((unsigned int)(var9)) == 7)) {
        var16 = (s + 5);
        return (unsigned int)((i + ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var16)) + ((unsigned long)((unsigned int)(var16)) * 4)))) * 2)));
    }
    var13 = (unsigned long)((unsigned int)((s + 1)));
    goto L_144b;
}

← 213 fixtures