// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: do_let
static goto_t do_let(s7_scheme *sc, s7_pointer step_slot, s7_pointer scc)
                {
                    s7_pointer let_body, p = NULL, let_vars, let_code, ip;
                    bool let_star;
                    s7_pointer old_e, stepper;
                    s7_int body_len, var_len, k, end;

                    /* do_let with non-float vars doesn't get many fixable hits */
                    let_code = caddr(scc);
                    if ((!is_pair(cdr(let_code))) || (!is_list(cadr(let_code)))) /* (do ((j 0 (+ j 1))) ((= j 1)) (let name 123)) */
                        return(fall_through);
                    let_body = cddr(let_code);
                    body_len = s7_list_length(sc, let_body);
                    if (body_len <= 0) return(fall_through);
                    let_star = (symbol_syntax_op_checked(let_code) == OP_LET_STAR);
                    let_vars = cadr(let_code);
                    set_safe_stepper(step_slot);
                    stepper = slot_value(step_slot);

                    old_e = sc->envir;
                    sc->envir = new_frame_in_env(sc, sc->envir);

                    if (setjmp(sc->opt_exit) != 0)
                        return(fall_through);

                    sc->pc = 0;
                    reset_opts(sc);
                    for (var_len = 0, p = let_vars; is_pair(p); var_len++, p = cdr(p))
                    {
                        s7_pointer expr;
                        if ((!is_pair(car(p))) ||
                                (!is_normal_symbol(caar(p))) ||
                                (!is_pair(cdar(p))))
                            return(fall_through);
                        expr = cdar(p);
                        if (!float_optimize(sc, expr))   /* each of these needs to set the associated variable */
                        {
                            sc->envir = old_e;
                            return(fall_through);
                        }
                        if (let_star)
                            make_slot_1(sc, sc->envir, caar(p), s7_make_mutable_real(sc, 1.5));
                    }

                    if (!let_star)
                        for (p = let_vars; is_pair(p); p = cdr(p))
                            make_slot_1(sc, sc->envir, caar(p), s7_make_mutable_real(sc, 1.5));

                    for (p = let_body; is_pair(p); p = cdr(p))
                        if (!float_optimize(sc, p))
                        {
                            sc->envir = old_e;
                            return(fall_through);
                        }

                    if (!is_null(p)) /* no hits in s7test or snd-test */
                    {
                        sc->envir = old_e;
                        return(fall_through);
                    }

                    end = denominator(stepper);
                    let_set_slots(sc->envir, reverse_slots(sc, let_slots(sc->envir)));
                    ip = slot_value(step_slot);

                    if (body_len == 1)
                    {
                        if (var_len == 1)
                        {
                            s7_pointer xp;
                            int32_t pc2;
                            opt_info *first, *o;
                            s7_double (*f1)(opt_info *o);
                            s7_double (*f2)(opt_info *o);
                            xp = slot_value(let_slots(sc->envir));
                            first = sc->opts[0];
                            f1 = first->v[0].fd;
                            integer(ip) = numerator(stepper);
                            sc->pc = 0;
                            set_real(xp, f1(first));
                            pc2 = ++sc->pc;
                            o = sc->opts[pc2];
                            f2 = o->v[0].fd;
                            f2(o);
                            if ((f2 == opt_fmv) &&
                                    (f1 == opt_d_dd_ff_o2) &&
                                    (first->v[3].d_dd_f == add_d_dd) &&
                                    (slot_symbol(step_slot) == slot_symbol(o->v[2].p))) /* and _dv et al throughout (so sc->pc ignored) etc */
                            {
                                /* gcc now refuses to inline opt_fmv -- we are not amused... */
                                opt_info *o1, *o2, *o3;
                                s7_d_v_t vf1, vf2, vf3, vf4;
                                s7_d_vd_t vf5, vf6;
                                s7_d_vid_t vf7;
                                void *obj1, *obj2, *obj3, *obj4, *obj5, *obj6, *obj7;

                                sc->pc = pc2;
                                o1 = o->sc->opts[o->sc->pc + 1];
                                o2 = o->sc->opts[o->sc->pc + 3];
                                o3 = o->sc->opts[o->sc->pc + 5];
                                vf1 = first->v[4].d_v_f;
                                vf2 = first->v[5].d_v_f;
                                vf3 = o1->v[2].d_v_f;
                                vf4 = o3->v[5].d_v_f;
                                vf5 = o2->v[3].d_vd_f;
                                vf6 = o3->v[6].d_vd_f;
                                vf7 = o->v[4].d_vid_f;
                                obj1 = first->v[1].obj;
                                obj2 = first->v[2].obj;
                                obj3 = o1->v[1].obj;
                                obj4 = o3->v[1].obj;
                                obj5 = o->v[5].obj;
                                obj6 = o2->v[5].obj;
                                obj7 = o3->v[2].obj;

                                for (k = numerator(stepper) + 1; k < end; k++)
                                {
                                    s7_double amp_env, vib;
                                    vib = vf1(obj1) + vf2(obj2);
                                    amp_env = vf3(obj3);
                                    vf7(obj5, k, amp_env * vf5(obj6, vib + (vf4(obj4) * vf6(obj7, vib))));
                                }
                            }
                            else
                            {
                                for (k = numerator(stepper) + 1; k < end; k++)
                                {
                                    integer(ip) = k;
                                    sc->pc = 0;
                                    set_real(xp, f1(first));
                                    sc->pc = pc2;
                                    f2(o);
                                }
                            }
                        } /* body_len == 1 and var_len == 1 */
                        else
                        {
                            if (var_len == 2)
                            {
                                s7_pointer s1, s2;
                                s1 = let_slots(sc->envir);
                                s2 = next_slot(s1);
                                for (k = numerator(stepper); k < end; k++)
                                {
                                    integer(ip) = k;
                                    sc->pc = 0;
                                    set_real(slot_value(s1), sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]));
                                    sc->pc++;
                                    set_real(slot_value(s2), sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]));
                                    sc->pc++;
                                    sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]);
                                }
                            } /* body_len == 1 and var_len == 2 */
                            else
                            {
                                for (k = numerator(stepper); k < end; k++)
                                {
                                    integer(ip) = k;
                                    sc->pc = 0;
                                    for (p = let_slots(sc->envir); tis_slot(p); p = next_slot(p))
                                    {
                                        set_real(slot_value(p), sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]));
                                        sc->pc++;
                                    }
                                    sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]);
                                }
                            }
                        }
                    } /* body_len == 1 */
                    else
                    {
                        if ((body_len == 2) && (var_len == 1))
                        {
                            s7_pointer s1;
                            s1 = let_slots(sc->envir);
                            for (k = numerator(stepper); k < end; k++)
                            {
                                integer(ip) = k;
                                sc->pc = 0;
                                set_real(slot_value(s1), sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]));
                                sc->pc++;
                                sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]);
                                sc->pc++;
                                sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]);
                            }
                        }
                        else
                        {
                            for (k = numerator(stepper); k < end; k++)
                            {
                                int32_t i;
                                integer(ip) = k;
                                sc->pc = 0;
                                for (p = let_slots(sc->envir); tis_slot(p); p = next_slot(p))
                                {
                                    set_real(slot_value(p), sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]));
                                    sc->pc++;
                                }
                                for (i = 0; i < body_len; i++)
                                {
                                    sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]);
                                    sc->pc++;
                                }
                            }
                        }
                    }
                    sc->envir = old_e;
                    sc->value = sc->T;
                    sc->code = cdadr(scc);
                    return(goto_safe_do_end_clauses);
                }

// Assembly:
subq $0x1f8, %rsp            # imm = 0x1F8
movq %rdi, 0x1e8(%rsp)
movq %rsi, 0x1e0(%rsp)
movq %rdx, 0x1d8(%rsp)
movq $0x0, 0x1c8(%rsp)
movq 0x1d8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1b8(%rsp)
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x170a3b
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x170a4b
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x2, %eax
je 0x170a4b
movl $0x2, 0x1f4(%rsp)
jmp 0x171b33
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1d0(%rsp)
movq 0x1e8(%rsp), %rdi
movq 0x1d0(%rsp), %rsi
callq 0x31900
movq %rax, 0x190(%rsp)
cmpq $0x0, 0x190(%rsp)
jg 0x170a9b
movl $0x2, 0x1f4(%rsp)
jmp 0x171b33
movq 0x1b8(%rsp), %rax
movzwl (%rax), %eax
cmpl $0x201, %eax            # imm = 0x201
jne 0x170ac3
movq 0x1b8(%rsp), %rax
movzwl 0x4(%rax), %eax
movq %rax, 0x80(%rsp)
jmp 0x170ae3
movq 0x1b8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
cmpq $0x1af, %rax            # imm = 0x1AF
sete %al
andb $0x1, %al
movb %al, 0x1af(%rsp)
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1c0(%rsp)
movq 0x1e0(%rsp), %rax
movq (%rax), %rcx
orq $0x8000000, %rcx        # imm = 0x8000000
movq %rcx, (%rax)
movq 0x1e0(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x198(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1a0(%rsp)
movq 0x1e8(%rsp), %rdi
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xc53b0
movq %rax, %rcx
movq 0x1e8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1e8(%rsp), %rdi
addq $0x2190, %rdi           # imm = 0x2190
callq 0x9350
cmpl $0x0, %eax
je 0x170ba3
movl $0x2, 0x1f4(%rsp)
jmp 0x171b33
movq 0x1e8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq $0x0, 0x188(%rsp)
movq 0x1c0(%rsp), %rax
movq %rax, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x170d44
movq 0x1c8(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x170c47
movq 0x1c8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0x170c47
movq 0x1c8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movzwl 0x6(%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
jne 0x170c47
movq 0x1c8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0x170c57
movl $0x2, 0x1f4(%rsp)
jmp 0x171b33
movq 0x1c8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x170(%rsp)
movq 0x1e8(%rsp), %rdi
movq 0x170(%rsp), %rsi
callq 0x473f0
testb $0x1, %al
jne 0x170cac
movq 0x1a0(%rsp), %rcx
movq 0x1e8(%rsp), %rax
movq %rcx, 0x8(%rax)
movl $0x2, 0x1f4(%rsp)
jmp 0x171b33
testb $0x1, 0x1af(%rsp)
je 0x170d15
movq 0x1e8(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x70(%rsp)
movq 0x1c8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x78(%rsp)
movq 0x1e8(%rsp), %rdi
movsd 0x70d87(%rip), %xmm0    # 0x1e1a80
callq 0x12220
movq 0x68(%rsp), %rdi
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
movq %rax, %rcx
callq 0xbec0
jmp 0x170d17
movq 0x188(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x188(%rsp)
movq 0x1c8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1c8(%rsp)
jmp 0x170bd1
testb $0x1, 0x1af(%rsp)
jne 0x170dec
movq 0x1c0(%rsp), %rax
movq %rax, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x170dea
movq 0x1e8(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x58(%rsp)
movq 0x1c8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x60(%rsp)
movq 0x1e8(%rsp), %rdi
movsd 0x70ccb(%rip), %xmm0    # 0x1e1a80
callq 0x12220
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
movq %rax, %rcx
callq 0xbec0
movq 0x1c8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1c8(%rsp)
jmp 0x170d62
jmp 0x170dec
movq 0x1d0(%rsp), %rax
movq %rax, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x170e61
movq 0x1e8(%rsp), %rdi
movq 0x1c8(%rsp), %rsi
callq 0x473f0
testb $0x1, %al
jne 0x170e49
movq 0x1a0(%rsp), %rcx
movq 0x1e8(%rsp), %rax
movq %rcx, 0x8(%rax)
movl $0x2, 0x1f4(%rsp)
jmp 0x171b33
jmp 0x170e4b
movq 0x1c8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1c8(%rsp)
jmp 0x170dfc
movq 0x1c8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0x170e9e
movq 0x1a0(%rsp), %rcx
movq 0x1e8(%rsp), %rax
movq %rcx, 0x8(%rax)
movl $0x2, 0x1f4(%rsp)
jmp 0x171b33
movq 0x198(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x178(%rsp)
movq 0x1e8(%rsp), %rdi
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xfd760
movq %rax, %rcx
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x1e0(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1b0(%rsp)
cmpq $0x1, 0x190(%rsp)
jne 0x17178a
cmpq $0x1, 0x188(%rsp)
jne 0x171468
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x168(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x2260(%rax), %rax
movq %rax, 0x158(%rsp)
movq 0x158(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x148(%rsp)
movq 0x198(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq 0x148(%rsp), %rax
movq 0x158(%rsp), %rdi
callq *%rax
movq 0x168(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movq 0x1e8(%rsp), %rcx
movl 0x2258(%rcx), %eax
addl $0x1, %eax
movl %eax, 0x2258(%rcx)
movl %eax, 0x164(%rsp)
movq 0x1e8(%rsp), %rax
movslq 0x164(%rsp), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x150(%rsp)
movq 0x150(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x140(%rsp)
movq 0x140(%rsp), %rax
movq 0x150(%rsp), %rdi
callq *%rax
leaq -0x5a04d(%rip), %rax    # 0x116fc0
cmpq %rax, 0x140(%rsp)
jne 0x1713ae
leaq -0x5ba32(%rip), %rax    # 0x1155f0
cmpq %rax, 0x148(%rsp)
jne 0x1713ae
movq 0x158(%rsp), %rax
leaq -0xbe3ff(%rip), %rcx    # 0xb2c40
cmpq %rcx, 0x18(%rax)
jne 0x1713ae
movq 0x1e0(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x150(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x1713ae
movl 0x164(%rsp), %ecx
movq 0x1e8(%rsp), %rax
movl %ecx, 0x2258(%rax)
movq 0x150(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x150(%rsp), %rcx
movq 0x68(%rcx), %rcx
movl 0x2258(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x138(%rsp)
movq 0x150(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x150(%rsp), %rcx
movq 0x68(%rcx), %rcx
movl 0x2258(%rcx), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x130(%rsp)
movq 0x150(%rsp), %rax
movq 0x68(%rax), %rax
movq 0x150(%rsp), %rcx
movq 0x68(%rcx), %rcx
movl 0x2258(%rcx), %ecx
addl $0x5, %ecx
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x128(%rsp)
movq 0x158(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x120(%rsp)
movq 0x158(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x118(%rsp)
movq 0x138(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x110(%rsp)
movq 0x128(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x108(%rsp)
movq 0x130(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x100(%rsp)
movq 0x128(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, 0xf8(%rsp)
movq 0x150(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0xf0(%rsp)
movq 0x158(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xe8(%rsp)
movq 0x158(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0xe0(%rsp)
movq 0x138(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xd8(%rsp)
movq 0x128(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xd0(%rsp)
movq 0x150(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0xc8(%rsp)
movq 0x130(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0xc0(%rsp)
movq 0x128(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0xb8(%rsp)
movq 0x198(%rsp), %rax
movq 0x8(%rax), %rax
addq $0x1, %rax
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rax
cmpq 0x178(%rsp), %rax
jge 0x1713a9
movq 0x120(%rsp), %rax
movq 0xe8(%rsp), %rdi
callq *%rax
movsd %xmm0, 0x8(%rsp)
movq 0x118(%rsp), %rax
movq 0xe0(%rsp), %rdi
callq *%rax
movaps %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0xa8(%rsp)
movq 0x110(%rsp), %rax
movq 0xd8(%rsp), %rdi
callq *%rax
movsd %xmm0, 0xb0(%rsp)
movq 0xf0(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0xc8(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x180(%rsp), %rax
movq %rax, 0x38(%rsp)
movsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movq 0x100(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0x18(%rsp)
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movq 0x108(%rsp), %rax
movq 0xd0(%rsp), %rdi
callq *%rax
movsd %xmm0, 0x28(%rsp)
movq 0xf8(%rsp), %rax
movq 0xb8(%rsp), %rdi
movsd 0xa8(%rsp), %xmm0
callq *%rax
movsd 0x10(%rsp), %xmm1
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rax
movaps %xmm0, %xmm2
movsd 0x28(%rsp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq *%rax
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rax
movaps %xmm0, %xmm1
movsd 0x48(%rsp), %xmm0
mulsd %xmm1, %xmm0
callq *%rax
movq 0x180(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x180(%rsp)
jmp 0x17124c
jmp 0x171463
movq 0x198(%rsp), %rax
movq 0x8(%rax), %rax
addq $0x1, %rax
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rax
cmpq 0x178(%rsp), %rax
jge 0x171461
movq 0x180(%rsp), %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq 0x148(%rsp), %rax
movq 0x158(%rsp), %rdi
callq *%rax
movq 0x168(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movl 0x164(%rsp), %ecx
movq 0x1e8(%rsp), %rax
movl %ecx, 0x2258(%rax)
movq 0x140(%rsp), %rax
movq 0x150(%rsp), %rdi
callq *%rax
movq 0x180(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x180(%rsp)
jmp 0x1713c6
jmp 0x171463
jmp 0x171785
cmpq $0x2, 0x188(%rsp)
jne 0x17162a
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x98(%rsp)
movq 0x198(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rax
cmpq 0x178(%rsp), %rax
jge 0x171625
movq 0x180(%rsp), %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq 0x1e8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x1e8(%rsp), %rcx
movq 0x1e8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0xa0(%rsp), %rax
movq 0x10(%rax), %rax
movsd %xmm0, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movq 0x1e8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x1e8(%rsp), %rcx
movq 0x1e8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x98(%rsp), %rax
movq 0x10(%rax), %rax
movsd %xmm0, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movq 0x1e8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x1e8(%rsp), %rcx
movq 0x1e8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x180(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x180(%rsp)
jmp 0x1714b7
jmp 0x171783
movq 0x198(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rax
cmpq 0x178(%rsp), %rax
jge 0x171781
movq 0x180(%rsp), %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1c8(%rsp)
cmpq $0x0, 0x1c8(%rsp)
je 0x171725
movq 0x1e8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x1e8(%rsp), %rcx
movq 0x1e8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x1c8(%rsp), %rax
movq 0x10(%rax), %rax
movsd %xmm0, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movq 0x1c8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x1c8(%rsp)
jmp 0x171692
movq 0x1e8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x1e8(%rsp), %rcx
movq 0x1e8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x180(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x180(%rsp)
jmp 0x17163e
jmp 0x171783
jmp 0x171785
jmp 0x171ada
cmpq $0x2, 0x190(%rsp)
jne 0x171936
cmpq $0x1, 0x188(%rsp)
jne 0x171936
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x90(%rsp)
movq 0x198(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rax
cmpq 0x178(%rsp), %rax
jge 0x171931
movq 0x180(%rsp), %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq 0x1e8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x1e8(%rsp), %rcx
movq 0x1e8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movsd %xmm0, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movq 0x1e8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x1e8(%rsp), %rcx
movq 0x1e8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x1e8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movq 0x1e8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x1e8(%rsp), %rcx
movq 0x1e8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x180(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x180(%rsp)
jmp 0x1717d4
jmp 0x171ad8
movq 0x198(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rax
cmpq 0x178(%rsp), %rax
jge 0x171ad6
movq 0x180(%rsp), %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq 0x1e8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1c8(%rsp)
cmpq $0x0, 0x1c8(%rsp)
je 0x171a31
movq 0x1e8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x1e8(%rsp), %rcx
movq 0x1e8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x1c8(%rsp), %rax
movq 0x10(%rax), %rax
movsd %xmm0, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movq 0x1c8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x1c8(%rsp)
jmp 0x17199e
movl $0x0, 0x8c(%rsp)
movslq 0x8c(%rsp), %rax
cmpq 0x190(%rsp), %rax
jge 0x171abb
movq 0x1e8(%rsp), %rax
movq 0x1e8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x1e8(%rsp), %rcx
movq 0x1e8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x1e8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movl 0x8c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8c(%rsp)
jmp 0x171a3c
jmp 0x171abd
movq 0x180(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x180(%rsp)
jmp 0x17194a
jmp 0x171ad8
jmp 0x171ada
movq 0x1a0(%rsp), %rcx
movq 0x1e8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1e8(%rsp), %rax
movq 0x118(%rax), %rcx
movq 0x1e8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x1d8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x1e8(%rsp), %rax
movq %rcx, (%rax)
movl $0x4, 0x1f4(%rsp)
movl 0x1f4(%rsp), %eax
addq $0x1f8, %rsp            # imm = 0x1F8
retq
nopw %cs:(%rax,%rax)