// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: check_recur
static bool check_recur(s7_scheme *sc, s7_pointer name, int32_t vars, s7_pointer args, s7_pointer body)
                {
                    /* fprintf(stderr, "%s[%d]: %s %d %s %s\n", __func__, __LINE__, DISPLAY(name), vars, DISPLAY(args), DISPLAY(body)); */

                    if ((car(body) == sc->if_symbol) &&
                            (safe_list_length(body) == 4))
                    {
                        if ((vars == 1) || (vars == 2))
                            return(check_recur_if_one_or_two_vars(sc, name, vars, args, body));
                        if (vars == 3)
                        {
                            s7_pointer test;
                            test = cadr(body);
                            if (is_fxable(sc, test))
                            {
                                s7_pointer true_p, false_p;
                                true_p = caddr(body);
                                false_p = cadddr(body);
                                if ((is_fxable(sc, true_p)) &&
                                        (is_proper_list_4(sc, false_p)) &&
                                        (car(false_p) == name))
                                {
                                    s7_pointer l3a, la1, la2, la3;
                                    l3a = cdr(false_p);
                                    la1 = car(l3a);
                                    la2 = cadr(l3a);
                                    la3 = caddr(l3a);
                                    if ((is_proper_list_4(sc, la1)) && (is_proper_list_4(sc, la2)) && (is_proper_list_4(sc, la3)) &&
                                            (car(la1) == name) && (car(la2) == name) && (car(la3) == name) &&
                                            (is_fxable(sc, cadr(la1))) && (is_fxable(sc, cadr(la2))) && (is_fxable(sc, cadr(la3))) &&
                                            (is_fxable(sc, caddr(la1))) && (is_fxable(sc, caddr(la2))) && (is_fxable(sc, caddr(la3))) &&
                                            (is_fxable(sc, cadddr(la1))) && (is_fxable(sc, cadddr(la2))) && (is_fxable(sc, cadddr(la3))))
                                    {
                                        set_safe_optimize_op(body, OP_RECUR_IF_A_A_LopL3A_L3A_L3Aq);
                                        annotate_args(sc, cdr(la1), args);
                                        annotate_args(sc, cdr(la2), args);
                                        annotate_args(sc, cdr(la3), args);
                                        annotate_arg(sc, cdr(body), args);
                                        annotate_arg(sc, cddr(body), args);
                                        fx_tree(sc, cdr(body), car(args), cadr(args));
                                        set_opt3_pair(body, false_p);
                                        set_opt3_pair(false_p, la3);
                                        return(true);
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        if (car(body) == sc->cond_symbol)
                        {
                            s7_pointer clause, clause2 = NULL;
                            clause = cadr(body);
                            if ((is_proper_list_1(sc, (cdr(clause)))) &&
                                    (is_fxable(sc, car(clause))) &&
                                    (is_fxable(sc, cadr(clause))))
                            {
                                s7_pointer la_clause;
                                s7_int len;
                                len = safe_list_length(body);
                                la_clause = caddr(body);
                                if (len == 4)
                                {
                                    if ((is_proper_list_2(sc, la_clause)) &&
                                            (is_fxable(sc, car(la_clause))))
                                    {
                                        clause2 = la_clause;
                                        la_clause = cadddr(body);
                                    }
                                    else
                                    {
                                        /* if (!(sc->got_tc)) fprintf(stderr, "%s[%d]: %s %s\n%s\n\n", __func__, __LINE__, DISPLAY(name), DISPLAY(args), DISPLAY(body)); */
                                        return(false);
                                    }
                                }
                                if ((is_proper_list_2(sc, la_clause)) &&
                                        ((car(la_clause) == sc->else_symbol) || (car(la_clause) == sc->T)) &&
                                        (is_pair(cadr(la_clause))))
                                {
                                    la_clause = cadr(la_clause); /* (c_op arg (recur par)) or (c_op (recur) (recur)) or (op|l a laa) */
                                    if (is_proper_list_2(sc, cdr(la_clause)))
                                    {
                                        if (is_h_optimized(la_clause))
                                        {
                                            if ((is_fxable(sc, cadr(la_clause))) &&
                                                    ((len == 3) ||
                                                     ((len == 4) && (vars == 2) &&
                                                      (is_proper_list_3(sc, cadr(clause2))) &&
                                                      (caadr(clause2) == name))))
                                            {
                                                s7_pointer la;
                                                la = caddr(la_clause);
                                                if ((is_pair(la)) &&
                                                        (car(la) == name) &&
                                                        (is_pair(cdr(la))) &&
                                                        (is_fxable(sc, cadr(la))) &&
                                                        (((vars == 1) && (is_null(cddr(la)))) ||
                                                         ((vars == 2) &&
                                                          (is_pair(cddr(la))) &&
                                                          (is_fxable(sc, caddr(la))) &&
                                                          (is_null(cdddr(la))))))
                                                {
                                                    if (len == 3)
                                                        set_safe_optimize_op(body, (vars == 1) ? OP_RECUR_COND_A_A_opA_LAq : OP_RECUR_COND_A_A_opA_LAAq);
                                                    else
                                                    {
                                                        s7_pointer laa;
                                                        laa = cadr(clause2);
                                                        if ((is_fxable(sc, cadr(laa))) && /* args to first laa */
                                                                (is_fxable(sc, caddr(laa))))
                                                        {
                                                            set_safe_optimize_op(body, OP_RECUR_COND_A_A_A_LAA_opA_LAAq);
                                                            annotate_arg(sc, clause2, args);
                                                            annotate_args(sc, cdr(laa), args);
                                                        }
                                                        else return(false);
                                                    }
                                                    annotate_args(sc, clause, args);
                                                    annotate_arg(sc, cdr(la_clause), args);
                                                    annotate_args(sc, cdr(la), args);
                                                    fx_tree(sc, cdr(body), car(args), (vars == 1) ? NULL : cadr(args));
                                                    set_opt3_pair(body, la_clause);
                                                    set_opt3_pair(la_clause, la);
                                                    return(true);
                                                }
                                            }
                                            else
                                            {
                                                if (len == 4)
                                                {
                                                    s7_pointer la1, la2;
                                                    bool happy = false;
                                                    la1 = cadr(la_clause);
                                                    la2 = caddr(la_clause);

                                                    if ((vars == 1) &&
                                                            (is_proper_list_2(sc, la1)) && (is_proper_list_2(sc, la2)) &&
                                                            (car(la1) == name) && (car(la2) == name) &&
                                                            (is_fxable(sc, cadr(la1))) && (is_fxable(sc, cadr(la2))))
                                                    {
                                                        set_safe_optimize_op(body, OP_RECUR_COND_A_A_A_A_opLA_LAq);
                                                        annotate_arg(sc, cdr(la1), args);
                                                        happy = true;
                                                    }
                                                    else
                                                    {
                                                        if ((vars == 2) &&
                                                                (is_fxable(sc, cadr(clause2))) &&
                                                                (is_proper_list_3(sc, la2)) &&
                                                                (car(la2) == name) &&
                                                                (is_fxable(sc, cadr(la2))) &&
                                                                (is_fxable(sc, caddr(la2))))
                                                        {
                                                            if (is_fxable(sc, la1))
                                                            {
                                                                set_safe_optimize_op(body, OP_RECUR_COND_A_A_A_A_opA_LAAq);
                                                                annotate_arg(sc, cdr(la_clause), args);
                                                                happy = true;
                                                            }
                                                            else
                                                            {
                                                                if ((is_proper_list_3(sc, la1)) &&
                                                                        (car(la1) == name) &&
                                                                        (is_fxable(sc, cadr(la1))) &&
                                                                        (is_fxable(sc, caddr(la1))))
                                                                {
                                                                    set_safe_optimize_op(body, OP_RECUR_COND_A_A_A_A_opLAA_LAAq);
                                                                    annotate_args(sc, cdr(la1), args);
                                                                    happy = true;
                                                                }
                                                            }
                                                        }
                                                    }
                                                    if (happy)
                                                    {
                                                        set_opt3_pair(la_clause, cdr(la2));
                                                        annotate_args(sc, clause, args);
                                                        annotate_args(sc, clause2, args);
                                                        annotate_args(sc, cdr(la2), args);
                                                        fx_tree(sc, cdr(body), car(args), (vars == 1) ? NULL : cadr(args));
                                                        set_opt3_pair(body, la_clause);
                                                        return(true);
                                                    }
                                                }
                                            }
                                        }
                                        else
                                        {
                                            if (clause2)
                                            {
                                                s7_pointer laa;
                                                laa = cadr(clause2);

                                                if ((vars == 2) && (len == 4) &&
                                                        (is_proper_list_3(sc, laa)) &&
                                                        (car(laa) == name) &&
                                                        (is_fxable(sc, cadr(laa))) &&
                                                        (is_fxable(sc, caddr(laa))))
                                                {
                                                    s7_pointer la1, la2;
                                                    la1 = cadr(la_clause);
                                                    la2 = caddr(la_clause);
                                                    if ((is_fxable(sc, la1)) &&
                                                            (is_proper_list_3(sc, la2)) &&
                                                            (car(la2) == name) &&
                                                            (is_fxable(sc, cadr(la2))) &&
                                                            (is_fxable(sc, caddr(la2))))
                                                    {
                                                        set_safe_optimize_op(body, OP_RECUR_COND_A_A_A_LAA_LopA_LAAq);
                                                        annotate_args(sc, clause, args);
                                                        annotate_arg(sc, clause2, args);
                                                        annotate_args(sc, cdr(laa), args);
                                                        annotate_arg(sc, cdr(la_clause), args);
                                                        annotate_args(sc, cdr(la2), args);
                                                        fx_tree(sc, cdr(body), car(args), cadr(args));
                                                        set_opt3_pair(body, la_clause);
                                                        set_opt3_pair(la_clause, cdr(la2));
                                                        return(true);
                                                    }}}}}}}}}
                    return(false);
                }

// Assembly:
subq $0x108, %rsp            # imm = 0x108
movq %rdi, 0xf8(%rsp)
movq %rsi, 0xf0(%rsp)
movl %edx, 0xec(%rsp)
movq %rcx, 0xe0(%rsp)
movq %r8, 0xd8(%rsp)
movq 0xd8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0xf8(%rsp), %rcx
cmpq 0x17e8(%rcx), %rax
jne 0x186c26
movq 0xd8(%rsp), %rdi
callq 0x3a070
cmpq $0x4, %rax
jne 0x186c26
cmpl $0x1, 0xec(%rsp)
je 0x18672a
cmpl $0x2, 0xec(%rsp)
jne 0x186764
movq 0xf8(%rsp), %rdi
movq 0xf0(%rsp), %rsi
movl 0xec(%rsp), %edx
movq 0xe0(%rsp), %rcx
movq 0xd8(%rsp), %r8
callq 0x189700
andb $0x1, %al
movb %al, 0x107(%rsp)
jmp 0x187984
cmpl $0x3, 0xec(%rsp)
jne 0x186c21
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xd0(%rsp)
movq 0xf8(%rsp), %rdi
movq 0xd0(%rsp), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x1867a8
jmp 0x186c1f
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xc8(%rsp)
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xc0(%rsp)
movq 0xf8(%rsp), %rdi
movq 0xc8(%rsp), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186802
jmp 0x186c1d
movq 0xf8(%rsp), %rdi
movq 0xc0(%rsp), %rsi
callq 0x1896d0
testb $0x1, %al
jne 0x186820
jmp 0x186c1d
movq 0xc0(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x186c1d
movq 0xc0(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0xb8(%rsp)
movq 0xb8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xb0(%rsp)
movq 0xb8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xa8(%rsp)
movq 0xb8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xa0(%rsp)
movq 0xf8(%rsp), %rdi
movq 0xb0(%rsp), %rsi
callq 0x1896d0
testb $0x1, %al
jne 0x1868b4
jmp 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xa8(%rsp), %rsi
callq 0x1896d0
testb $0x1, %al
jne 0x1868d2
jmp 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xa0(%rsp), %rsi
callq 0x1896d0
testb $0x1, %al
jne 0x1868f0
jmp 0x186c1b
movq 0xb0(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x186c1b
movq 0xa8(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x186c1b
movq 0xa0(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xb0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186964
jmp 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xa8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x18698a
jmp 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xa0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x1869b0
jmp 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xb0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x1869da
jmp 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xa8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186a04
jmp 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xa0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186a2e
jmp 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xb0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186a5c
jmp 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xa8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186a8a
jmp 0x186c1b
movq 0xf8(%rsp), %rdi
movq 0xa0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186ab8
jmp 0x186c1b
jmp 0x186aba
movq 0xd8(%rsp), %rax
movzwl (%rax), %ecx
orl $0x800, %ecx            # imm = 0x800
movw %cx, (%rax)
movq 0xd8(%rsp), %rax
movw $0x34d, 0x4(%rax)       # imm = 0x34D
movq 0xf8(%rsp), %rdi
movq 0xb0(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rdi
movq 0xa8(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rdi
movq 0xa0(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rdi
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x15d020
movq 0xf8(%rsp), %rdi
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x15d020
movq 0xf8(%rsp), %rdi
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rax
movq 0x8(%rax), %rdx
movq 0xe0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
callq 0x15d170
movq 0xc0(%rsp), %rcx
movq 0xd8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0xd8(%rsp), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
jmp 0x186be5
movq 0xa0(%rsp), %rcx
movq 0xc0(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0xc0(%rsp), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
movb $0x1, 0x107(%rsp)
jmp 0x187984
jmp 0x186c1d
jmp 0x186c1f
jmp 0x186c21
jmp 0x18797c
movq 0xd8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0xf8(%rsp), %rcx
cmpq 0x1810(%rcx), %rax
jne 0x18797a
movq $0x0, 0x90(%rsp)
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x98(%rsp)
movq 0xf8(%rsp), %rdi
movq 0x98(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0xfd500
testb $0x1, %al
jne 0x186c8d
jmp 0x187978
movq 0xf8(%rsp), %rdi
movq 0x98(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186caf
jmp 0x187978
movq 0xf8(%rsp), %rdi
movq 0x98(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186cd5
jmp 0x187978
movq 0xd8(%rsp), %rdi
callq 0x3a070
movq %rax, 0x80(%rsp)
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x88(%rsp)
cmpq $0x4, 0x80(%rsp)
jne 0x186d8c
movq 0xf8(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0xf7790
testb $0x1, %al
jne 0x186d2c
jmp 0x186d7d
movq 0xf8(%rsp), %rdi
movq 0x88(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186d4b
jmp 0x186d7d
movq 0x88(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x88(%rsp)
jmp 0x186d8a
movb $0x0, 0x107(%rsp)
jmp 0x187984
jmp 0x186d8c
movq 0xf8(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0xf7790
testb $0x1, %al
jne 0x186daa
jmp 0x187976
movq 0x88(%rsp), %rax
movq 0x8(%rax), %rax
movq 0xf8(%rsp), %rcx
cmpq 0x1790(%rcx), %rax
je 0x186de8
movq 0x88(%rsp), %rax
movq 0x8(%rax), %rax
movq 0xf8(%rsp), %rcx
cmpq 0x118(%rcx), %rax
jne 0x187976
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x187976
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x88(%rsp)
movq 0xf8(%rsp), %rdi
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0xf7790
testb $0x1, %al
jne 0x186e3e
jmp 0x187974
movq 0x88(%rsp), %rdi
callq 0x182250
testb $0x1, %al
jne 0x186e54
jmp 0x18769b
movq 0xf8(%rsp), %rdi
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186e7a
jmp 0x187246
cmpq $0x3, 0x80(%rsp)
je 0x186eea
cmpq $0x4, 0x80(%rsp)
jne 0x187246
cmpl $0x2, 0xec(%rsp)
jne 0x187246
movq 0xf8(%rsp), %rdi
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xfd7c0
testb $0x1, %al
jne 0x186ec8
jmp 0x187246
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x187246
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x78(%rsp)
movq 0x78(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x187241
movq 0x78(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x187241
movq 0x78(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x187241
movq 0xf8(%rsp), %rdi
movq 0x78(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186f63
jmp 0x187241
cmpl $0x1, 0xec(%rsp)
jne 0x186f8b
movq 0x78(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0xf8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0x186fff
cmpl $0x2, 0xec(%rsp)
jne 0x187241
movq 0x78(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x187241
movq 0xf8(%rsp), %rdi
movq 0x78(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x186fd9
jmp 0x187241
movq 0x78(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0xf8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x187241
cmpq $0x3, 0x80(%rsp)
jne 0x18704b
jmp 0x18700c
movq 0xd8(%rsp), %rax
movzwl (%rax), %ecx
orl $0x800, %ecx            # imm = 0x800
movw %cx, (%rax)
movl 0xec(%rsp), %edx
movl $0x351, %eax            # imm = 0x351
movl $0x350, %ecx            # imm = 0x350
cmpl $0x1, %edx
cmovel %ecx, %eax
movw %ax, %cx
movq 0xd8(%rsp), %rax
movw %cx, 0x4(%rax)
jmp 0x187117
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x70(%rsp)
movq 0xf8(%rsp), %rdi
movq 0x70(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x187083
jmp 0x187108
movq 0xf8(%rsp), %rdi
movq 0x70(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x1870a7
jmp 0x187108
jmp 0x1870a9
movq 0xd8(%rsp), %rax
movzwl (%rax), %ecx
orl $0x800, %ecx            # imm = 0x800
movw %cx, (%rax)
movq 0xd8(%rsp), %rax
movw $0x356, 0x4(%rax)       # imm = 0x356
movq 0xf8(%rsp), %rdi
movq 0x90(%rsp), %rsi
movq 0xe0(%rsp), %rdx
callq 0x15d020
movq 0xf8(%rsp), %rdi
movq 0x70(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
jmp 0x187115
movb $0x0, 0x107(%rsp)
jmp 0x187984
jmp 0x187117
movq 0xf8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rdi
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x15d020
movq 0xf8(%rsp), %rdi
movq 0x78(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0xe0(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x38(%rsp)
cmpl $0x1, 0xec(%rsp)
jne 0x1871b5
xorl %eax, %eax
movq %rax, 0x20(%rsp)
jmp 0x1871ca
movq 0xe0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x38(%rsp), %rdx
movq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rcx
callq 0x15d170
movq 0x88(%rsp), %rcx
movq 0xd8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0xd8(%rsp), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
jmp 0x18720e
movq 0x78(%rsp), %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x88(%rsp), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
movb $0x1, 0x107(%rsp)
jmp 0x187984
jmp 0x187696
cmpq $0x4, 0x80(%rsp)
jne 0x187694
movb $0x0, 0x5f(%rsp)
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x68(%rsp)
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x60(%rsp)
cmpl $0x1, 0xec(%rsp)
jne 0x187386
movq 0xf8(%rsp), %rdi
movq 0x68(%rsp), %rsi
callq 0xf7790
testb $0x1, %al
jne 0x1872b1
jmp 0x187386
movq 0xf8(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0xf7790
testb $0x1, %al
jne 0x1872cc
jmp 0x187386
movq 0x68(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x187386
movq 0x60(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x187386
movq 0xf8(%rsp), %rdi
movq 0x68(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x18731a
jmp 0x187386
movq 0xf8(%rsp), %rdi
movq 0x60(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x18733a
jmp 0x187386
jmp 0x18733c
movq 0xd8(%rsp), %rax
movzwl (%rax), %ecx
orl $0x800, %ecx            # imm = 0x800
movw %cx, (%rax)
movq 0xd8(%rsp), %rax
movw $0x352, 0x4(%rax)       # imm = 0x352
movq 0xf8(%rsp), %rdi
movq 0x68(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x15d020
movb $0x1, 0x5f(%rsp)
jmp 0x187560
cmpl $0x2, 0xec(%rsp)
jne 0x18755e
movq 0xf8(%rsp), %rdi
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x1873ba
jmp 0x18755e
movq 0xf8(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0xfd7c0
testb $0x1, %al
jne 0x1873d5
jmp 0x18755e
movq 0x60(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x18755e
movq 0xf8(%rsp), %rdi
movq 0x60(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x18740f
jmp 0x18755e
movq 0xf8(%rsp), %rdi
movq 0x60(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x187436
jmp 0x18755e
movq 0xf8(%rsp), %rdi
movq 0x68(%rsp), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x18744e
jmp 0x18749d
jmp 0x187450
movq 0xd8(%rsp), %rax
movzwl (%rax), %ecx
orl $0x800, %ecx            # imm = 0x800
movw %cx, (%rax)
movq 0xd8(%rsp), %rax
movw $0x354, 0x4(%rax)       # imm = 0x354
movq 0xf8(%rsp), %rdi
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x15d020
movb $0x1, 0x5f(%rsp)
jmp 0x18755c
movq 0xf8(%rsp), %rdi
movq 0x68(%rsp), %rsi
callq 0xfd7c0
testb $0x1, %al
jne 0x1874b8
jmp 0x18755a
movq 0x68(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x18755a
movq 0xf8(%rsp), %rdi
movq 0x68(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x1874ef
jmp 0x18755a
movq 0xf8(%rsp), %rdi
movq 0x68(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x187513
jmp 0x18755a
jmp 0x187515
movq 0xd8(%rsp), %rax
movzwl (%rax), %ecx
orl $0x800, %ecx            # imm = 0x800
movw %cx, (%rax)
movq 0xd8(%rsp), %rax
movw $0x353, 0x4(%rax)       # imm = 0x353
movq 0xf8(%rsp), %rdi
movq 0x68(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movb $0x1, 0x5f(%rsp)
jmp 0x18755c
jmp 0x18755e
jmp 0x187560
testb $0x1, 0x5f(%rsp)
je 0x187692
jmp 0x18756d
movq 0x60(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x88(%rsp), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
movq 0xf8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rdi
movq 0x90(%rsp), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rdi
movq 0x60(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0xe0(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
cmpl $0x1, 0xec(%rsp)
jne 0x187630
xorl %eax, %eax
movq %rax, (%rsp)
jmp 0x187644
movq 0xe0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdx
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq (%rsp), %rcx
callq 0x15d170
movq 0x88(%rsp), %rcx
movq 0xd8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0xd8(%rsp), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
movb $0x1, 0x107(%rsp)
jmp 0x187984
jmp 0x187694
jmp 0x187696
jmp 0x187972
cmpq $0x0, 0x90(%rsp)
je 0x187970
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x50(%rsp)
cmpl $0x2, 0xec(%rsp)
jne 0x18796e
cmpq $0x4, 0x80(%rsp)
jne 0x18796e
movq 0xf8(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0xfd7c0
testb $0x1, %al
jne 0x1876f7
jmp 0x18796e
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x18796e
movq 0xf8(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x187731
jmp 0x18796e
movq 0xf8(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x187758
jmp 0x18796e
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x48(%rsp)
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0xf8(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x1877a1
jmp 0x18796c
movq 0xf8(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0xfd7c0
testb $0x1, %al
jne 0x1877bc
jmp 0x18796c
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0xf0(%rsp), %rax
jne 0x18796c
movq 0xf8(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x1877f6
jmp 0x18796c
movq 0xf8(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x18781d
jmp 0x18796c
jmp 0x18781f
movq 0xd8(%rsp), %rax
movzwl (%rax), %ecx
orl $0x800, %ecx            # imm = 0x800
movw %cx, (%rax)
movq 0xd8(%rsp), %rax
movw $0x355, 0x4(%rax)       # imm = 0x355
movq 0xf8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rdi
movq 0x90(%rsp), %rsi
movq 0xe0(%rsp), %rdx
callq 0x15d020
movq 0xf8(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rdi
movq 0x88(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x15d020
movq 0xf8(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rdx
callq 0x164800
movq 0xf8(%rsp), %rdi
movq 0xd8(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0xe0(%rsp), %rax
movq 0x8(%rax), %rdx
movq 0xe0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
callq 0x15d170
movq 0x88(%rsp), %rcx
movq 0xd8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0xd8(%rsp), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
jmp 0x187938
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x88(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x88(%rsp), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
movb $0x1, 0x107(%rsp)
jmp 0x187984
jmp 0x18796e
jmp 0x187970
jmp 0x187972
jmp 0x187974
jmp 0x187976
jmp 0x187978
jmp 0x18797a
jmp 0x18797c
movb $0x0, 0x107(%rsp)
movb 0x107(%rsp), %al
andb $0x1, %al
addq $0x108, %rsp            # imm = 0x108
retq
nopw %cs:(%rax,%rax)