// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: cell_optimize
static bool cell_optimize(s7_scheme *sc, s7_pointer expr)
                {
                    s7_pointer car_x, head;
                    /* fprintf(stderr, "%s: %s, %d\n", __func__, DISPLAY(expr), sc->pc); */

                    car_x = car(expr);
                    if (!is_pair(car_x)) /* wrap constants/symbols */
                        return(opt_cell_not_pair(sc, car_x));

                    head = car(car_x);
                    if (is_symbol(head))
                    {
                        s7_pointer s_func = NULL;
                        s7_int len;
                        len = s7_list_length(sc, car_x);

                        if ((is_syntactic_symbol(head)) ||
                                (is_syntactic_pair(car_x)))
                            return(p_syntax(sc, car_x, len));

                        if ((is_global(head)) ||
                                ((is_slot(global_slot(head))) &&
                                 (symbol_to_slot(sc, head) == global_slot(head))))
                            s_func = slot_value(global_slot(head));
                        else return(p_implicit(sc, car_x, len));

                        if (is_c_function(s_func))
                        {
                            opt_info *opc;
                            s7_pointer sig;
                            int32_t pstart;

                            sig = c_function_signature(s_func);
                            opc = alloc_opo(sc, car_x);
                            pstart = sc->pc;

                            switch (len)
                            {
                                case 1:
                                    if (p_ok(sc, opc, s_func, car_x))
                                        return(true);
                                    break;

                                case 2:
                                    if ((p_i_ok(sc, opc, s_func, car_x, sc->pc)) ||
                                            (p_d_ok(sc, opc, s_func, car_x, sc->pc)) ||
                                            (p_p_ok(sc, opc, s_func, car_x)))
                                        return(true);
                                    break;

                                case 3:
                                    {
                                        s7_i_ii_t ifunc;
                                        if (is_symbol(cadr(car_x)))
                                        {
                                            if ((is_pair(sig)) &&
                                                    (is_pair(cdr(sig))) &&
                                                    (is_pair(cddr(sig))) &&
                                                    (caddr(sig) == sc->is_integer_symbol))
                                            {
                                                if (p_pi_ok(sc, opc, s_func, sig, car_x))
                                                    return(true);

                                                if ((car(sig) == sc->is_float_symbol) ||
                                                        (car(sig) == sc->is_real_symbol))
                                                {
                                                    s7_d_7pi_t f;
                                                    f = s7_d_7pi_function(s_func);
                                                    if (f)
                                                    {
                                                        sc->pc = pstart - 1;
                                                        if (float_optimize(sc, expr))
                                                        {
                                                            if (oo_size(opc) < 8) oo_resize(opc, 8);
                                                            opc->v[7].fd = opc->v[0].fd;
                                                            opc->v[0].fp = d_to_p;
                                                            return(true);
                                                        }
                                                    }
                                                }
                                            }
                                            pc_fallback(sc, pstart);
                                        }

                                        ifunc = s7_i_ii_function(s_func);
                                        sc->pc = pstart - 1;
                                        if ((ifunc) &&
                                                (int_optimize(sc, expr)))
                                        {
                                            if (oo_size(opc) < 8) oo_resize(opc, 8);
                                            opc->v[7].fi = opc->v[0].fi;
                                            opc->v[0].fp = i_to_p;
                                            if (opc->v[7].fi == opt_i_ii_ss_add)
                                                opc->v[0].fp = opt_p_ii_ss_add;
                                            else
                                            {
                                                if (opc->v[7].fi == opt_i_ii_fc_add)
                                                    opc->v[0].fp = opt_p_ii_fc_add;
                                            }
                                            return(true);
                                        }
                                        pc_fallback(sc, pstart);

                                        if ((p_ii_ok(sc, opc, s_func, car_x, pstart)) ||
                                                (p_dd_ok(sc, opc, s_func, car_x, pstart)) ||
                                                (p_pp_ok(sc, opc, s_func, car_x, pstart)) ||
                                                (p_call_pp_ok(sc, opc, s_func, car_x, pstart)))
                                            return(true);
                                    }
                                    break;

                                case 4:
                                    if (is_symbol(cadr(car_x)))
                                    {
                                        if ((is_pair(sig)) &&
                                                (is_pair(cdr(sig))) &&
                                                (is_pair(cddr(sig))) &&
                                                (caddr(sig) == sc->is_integer_symbol))
                                        {
                                            if (p_pii_ok(sc, opc, s_func, car_x))
                                                return(true);
                                            if (p_pip_ok(sc, opc, s_func, car_x))
                                                return(true);

                                            if (((car(sig) == sc->is_float_symbol) ||
                                                        (car(sig) == sc->is_real_symbol)) &&
                                                    (s7_d_7pid_function(s_func)) &&
                                                    (d_7pid_ok(sc, opc, s_func, car_x)))
                                            {
                                                /* if d_7pid is ok, we need d_to_p for cell_optimize */
                                                if (oo_size(opc) < 8) oo_resize(opc, 8);
                                                opc->v[7].fd = opc->v[0].fd;
                                                opc->v[0].fp = d_to_p;
                                                return(true);
                                            }

                                            sc->pc = pstart - 1;
                                            if ((car(sig) == sc->is_integer_symbol) &&
                                                    (s7_i_7pii_function(s_func)) &&
                                                    (i_7pii_ok(sc, alloc_opo(sc, expr), s_func, car_x)))
                                            {
                                                if (oo_size(opc) < 8) oo_resize(opc, 8);
                                                opc->v[7].fi = opc->v[0].fi;
                                                opc->v[0].fp = i_to_p;
                                                return(true);
                                            }
                                        }
                                        pc_fallback(sc, pstart);
                                    }

                                    if ((p_ppi_ok(sc, opc, s_func, car_x)) ||
                                            (p_ppp_ok(sc, opc, s_func, car_x)) ||
                                            (p_call_ppp_ok(sc, opc, s_func, car_x)))
                                        return(true);
                                    break;

                                case 5:
                                    if ((head == sc->float_vector_set_symbol) &&
                                            (d_7piid_ok(sc, opc, s_func, car_x)))
                                    {
                                        if (oo_size(opc) < 8) oo_resize(opc, 8);
                                        opc->v[7].fd = opc->v[0].fd;
                                        opc->v[0].fp = d_to_p;         /* as above, if d_7piid is ok, we need d_to_p for cell_optimize */
                                        return(true);
                                    }
                                    /* pc_fallback(sc, pstart); */
                                    if (i_7piii_ok(sc, opc, s_func, car_x))
                                    {
                                        if (oo_size(opc) < 8) oo_resize(opc, 8);
                                        opc->v[7].fi = opc->v[0].fi;
                                        opc->v[0].fp = i_to_p;
                                        return(true);
                                    }
                                    if (head == sc->int_vector_set_symbol)
                                        return(return_false(sc, car_x, __func__, __LINE__));
                                    /* pc_fallback(sc, pstart); */
                                    if (p_piip_ok(sc, opc, s_func, car_x))
                                        return(true);
                                    pc_fallback(sc, pstart);

                                default:
                                    if (p_call_any_ok(sc, opc, s_func, car_x, len))
                                        return(true);
                                    break;
                            }
                        }
                        else
                        {
                            if (is_closure(s_func))
                            {
                                opt_info *opc;
                                opc = alloc_opo(sc, car_x);
                                if (p_fx_any_ok(sc, opc, s_func, expr))
                                    return(true);
                            }
                            if (is_macro(s_func))
                                return(return_false(sc, car_x, __func__, __LINE__)); /* macroexpand+cell_optimize here restarts the optimize process */
                        }
                    }
                    return(return_false(sc, car_x, __func__, __LINE__));
                }

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x68(%rsp)
movq %rsi, 0x60(%rsp)
movq 0x60(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0xe9df3
movq 0x68(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0xea7c0
andb $0x1, %al
movb %al, 0x77(%rsp)
jmp 0xea73a
movq 0x58(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xea735
movq $0x0, 0x48(%rsp)
movq 0x68(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x31900
movq %rax, 0x40(%rsp)
movq 0x50(%rsp), %rax
movzwl (%rax), %eax
cmpl $0x20a, %eax            # imm = 0x20A
je 0xe9e4d
movq 0x58(%rsp), %rax
movzwl (%rax), %eax
cmpl $0x201, %eax            # imm = 0x201
jne 0xe9e6e
movq 0x68(%rsp), %rdi
movq 0x58(%rsp), %rsi
movq 0x40(%rsp), %rax
movl %eax, %edx
callq 0xea8b0
andb $0x1, %al
movb %al, 0x77(%rsp)
jmp 0xea73a
movq 0x50(%rsp), %rax
movq (%rax), %rax
andq $0x10000, %rax          # imm = 0x10000
cmpq $0x0, %rax
jne 0xe9ead
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x20, %eax
jne 0xe9ec1
movq 0x68(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0xfc80
movq 0x50(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jne 0xe9ec1
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x48(%rsp)
jmp 0xe9ee2
movq 0x68(%rsp), %rdi
movq 0x58(%rsp), %rsi
movq 0x40(%rsp), %rax
movl %eax, %edx
callq 0xeaaa0
andb $0x1, %al
movb %al, 0x77(%rsp)
jmp 0xea73a
movq 0x48(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x30, %eax
jl 0xea6d9
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x38(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x68(%rsp), %rdi
callq 0xe15e0
movq %rax, 0x38(%rsp)
movq 0x68(%rsp), %rax
movl 0x2258(%rax), %eax
movl %eax, 0x2c(%rsp)
movq 0x40(%rsp), %rax
decq %rax
movq %rax, 0x8(%rsp)
subq $0x4, %rax
ja 0xea6a7
movq 0x8(%rsp), %rax
leaq 0xf5bb6(%rip), %rcx     # 0x1dfafc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xeb300
testb $0x1, %al
jne 0xe9f6e
jmp 0xe9f78
movb $0x1, 0x77(%rsp)
jmp 0xea73a
jmp 0xea6d7
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
movq 0x68(%rsp), %rax
movl 0x2258(%rax), %r8d
callq 0xeb470
testb $0x1, %al
jne 0xe9fee
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
movq 0x68(%rsp), %rax
movl 0x2258(%rax), %r8d
callq 0xeb5e0
testb $0x1, %al
jne 0xe9fee
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xeb750
testb $0x1, %al
jne 0xe9fee
jmp 0xe9ff8
movb $0x1, 0x77(%rsp)
jmp 0xea73a
jmp 0xea6d7
movq 0x58(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xea16e
movq 0x30(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xea160
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xea160
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xea160
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x68(%rsp), %rcx
cmpq 0x10d0(%rcx), %rax
jne 0xea160
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x30(%rsp), %rcx
movq 0x58(%rsp), %r8
callq 0xebd20
testb $0x1, %al
jne 0xea09c
jmp 0xea0a6
movb $0x1, 0x77(%rsp)
jmp 0xea73a
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x68(%rsp), %rcx
cmpq 0x11e0(%rcx), %rax
je 0xea0d8
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x68(%rsp), %rcx
cmpq 0x1180(%rcx), %rax
jne 0xea15e
movq 0x48(%rsp), %rdi
callq 0x47110
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0xea15c
movl 0x2c(%rsp), %ecx
subl $0x1, %ecx
movq 0x68(%rsp), %rax
movl %ecx, 0x2258(%rax)
movq 0x68(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x473f0
testb $0x1, %al
jne 0xea116
jmp 0xea15a
movq 0x38(%rsp), %rax
cmpl $0x8, 0x60(%rax)
jge 0xea130
movq 0x38(%rsp), %rdi
movl $0x8, %esi
callq 0xec320
movq 0x38(%rsp), %rax
movq (%rax), %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x38(%rsp), %rax
leaq 0x21f3(%rip), %rcx      # 0xec340
movq %rcx, (%rax)
movb $0x1, 0x77(%rsp)
jmp 0xea73a
jmp 0xea15c
jmp 0xea15e
jmp 0xea160
movq 0x68(%rsp), %rdi
movl 0x2c(%rsp), %esi
callq 0xe59a0
movq 0x48(%rsp), %rdi
callq 0x472a0
movq %rax, 0x20(%rsp)
movl 0x2c(%rsp), %ecx
subl $0x1, %ecx
movq 0x68(%rsp), %rax
movl %ecx, 0x2258(%rax)
cmpq $0x0, 0x20(%rsp)
je 0xea23d
movq 0x68(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0xe59c0
testb $0x1, %al
jne 0xea1b3
jmp 0xea23d
movq 0x38(%rsp), %rax
cmpl $0x8, 0x60(%rax)
jge 0xea1cd
movq 0x38(%rsp), %rdi
movl $0x8, %esi
callq 0xec320
movq 0x38(%rsp), %rax
movq (%rax), %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x38(%rsp), %rax
leaq 0x2206(%rip), %rcx      # 0xec3f0
movq %rcx, (%rax)
movq 0x38(%rsp), %rax
leaq 0x22e7(%rip), %rcx      # 0xec4e0
cmpq %rcx, 0x38(%rax)
jne 0xea210
movq 0x38(%rsp), %rax
leaq 0x2305(%rip), %rcx      # 0xec510
movq %rcx, (%rax)
jmp 0xea233
movq 0x38(%rsp), %rax
leaq 0x23f4(%rip), %rcx      # 0xec610
cmpq %rcx, 0x38(%rax)
jne 0xea231
movq 0x38(%rsp), %rax
leaq 0x2442(%rip), %rcx      # 0xec670
movq %rcx, (%rax)
jmp 0xea233
movb $0x1, 0x77(%rsp)
jmp 0xea73a
movq 0x68(%rsp), %rdi
movl 0x2c(%rsp), %esi
callq 0xe59a0
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
movl 0x2c(%rsp), %r8d
callq 0xec790
testb $0x1, %al
jne 0xea2d5
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
movl 0x2c(%rsp), %r8d
callq 0xec9c0
testb $0x1, %al
jne 0xea2d5
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
movl 0x2c(%rsp), %r8d
callq 0xecb80
testb $0x1, %al
jne 0xea2d5
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
movl 0x2c(%rsp), %r8d
callq 0xed620
testb $0x1, %al
jne 0xea2d5
jmp 0xea2df
movb $0x1, 0x77(%rsp)
jmp 0xea73a
jmp 0xea6d7
movq 0x58(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xea512
movq 0x30(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xea504
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xea504
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xea504
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x68(%rsp), %rcx
cmpq 0x10d0(%rcx), %rax
jne 0xea504
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xeda40
testb $0x1, %al
jne 0xea37e
jmp 0xea388
movb $0x1, 0x77(%rsp)
jmp 0xea73a
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xedcf0
testb $0x1, %al
jne 0xea3a7
jmp 0xea3b1
movb $0x1, 0x77(%rsp)
jmp 0xea73a
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x68(%rsp), %rcx
cmpq 0x11e0(%rcx), %rax
je 0xea3df
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x68(%rsp), %rcx
cmpq 0x1180(%rcx), %rax
jne 0xea452
movq 0x48(%rsp), %rdi
callq 0x46f80
cmpq $0x0, %rax
je 0xea452
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xe3860
testb $0x1, %al
jne 0xea40e
jmp 0xea452
movq 0x38(%rsp), %rax
cmpl $0x8, 0x60(%rax)
jge 0xea428
movq 0x38(%rsp), %rdi
movl $0x8, %esi
callq 0xec320
movq 0x38(%rsp), %rax
movq (%rax), %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x38(%rsp), %rax
leaq 0x1efb(%rip), %rcx      # 0xec340
movq %rcx, (%rax)
movb $0x1, 0x77(%rsp)
jmp 0xea73a
movl 0x2c(%rsp), %ecx
subl $0x1, %ecx
movq 0x68(%rsp), %rax
movl %ecx, 0x2258(%rax)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x68(%rsp), %rcx
cmpq 0x10d0(%rcx), %rax
jne 0xea502
movq 0x48(%rsp), %rdi
callq 0xee720
cmpq $0x0, %rax
je 0xea502
movq 0x68(%rsp), %rax
movq %rax, (%rsp)
movq 0x68(%rsp), %rdi
callq 0xe15e0
movq (%rsp), %rdi
movq %rax, %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xe8110
testb $0x1, %al
jne 0xea4be
jmp 0xea502
movq 0x38(%rsp), %rax
cmpl $0x8, 0x60(%rax)
jge 0xea4d8
movq 0x38(%rsp), %rdi
movl $0x8, %esi
callq 0xec320
movq 0x38(%rsp), %rax
movq (%rax), %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x38(%rsp), %rax
leaq 0x1efb(%rip), %rcx      # 0xec3f0
movq %rcx, (%rax)
movb $0x1, 0x77(%rsp)
jmp 0xea73a
jmp 0xea504
movq 0x68(%rsp), %rdi
movl 0x2c(%rsp), %esi
callq 0xe59a0
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xee740
testb $0x1, %al
jne 0xea56b
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xee8d0
testb $0x1, %al
jne 0xea56b
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xef270
testb $0x1, %al
jne 0xea56b
jmp 0xea575
movb $0x1, 0x77(%rsp)
jmp 0xea73a
jmp 0xea6d7
movq 0x50(%rsp), %rax
movq 0x68(%rsp), %rcx
cmpq 0xef8(%rcx), %rax
jne 0xea5f0
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xe43d0
testb $0x1, %al
jne 0xea5ac
jmp 0xea5f0
movq 0x38(%rsp), %rax
cmpl $0x8, 0x60(%rax)
jge 0xea5c6
movq 0x38(%rsp), %rdi
movl $0x8, %esi
callq 0xec320
movq 0x38(%rsp), %rax
movq (%rax), %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x38(%rsp), %rax
leaq 0x1d5d(%rip), %rcx      # 0xec340
movq %rcx, (%rax)
movb $0x1, 0x77(%rsp)
jmp 0xea73a
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xe8560
testb $0x1, %al
jne 0xea60f
jmp 0xea653
movq 0x38(%rsp), %rax
cmpl $0x8, 0x60(%rax)
jge 0xea629
movq 0x38(%rsp), %rdi
movl $0x8, %esi
callq 0xec320
movq 0x38(%rsp), %rax
movq (%rax), %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x38(%rsp), %rax
leaq 0x1daa(%rip), %rcx      # 0xec3f0
movq %rcx, (%rax)
movb $0x1, 0x77(%rsp)
jmp 0xea73a
movq 0x50(%rsp), %rax
movq 0x68(%rsp), %rcx
cmpq 0xfb0(%rcx), %rax
jne 0xea670
movb $0x0, 0x77(%rsp)
jmp 0xea73a
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
callq 0xef700
testb $0x1, %al
jne 0xea68f
jmp 0xea699
movb $0x1, 0x77(%rsp)
jmp 0xea73a
movq 0x68(%rsp), %rdi
movl 0x2c(%rsp), %esi
callq 0xe59a0
movq 0x68(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x58(%rsp), %rcx
movq 0x40(%rsp), %rax
movl %eax, %r8d
callq 0xefb60
testb $0x1, %al
jne 0xea6ce
jmp 0xea6d5
movb $0x1, 0x77(%rsp)
jmp 0xea73a
jmp 0xea6d7
jmp 0xea733
movq 0x48(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x28, %eax
jne 0xea71d
movq 0x68(%rsp), %rdi
callq 0xe15e0
movq %rax, 0x10(%rsp)
movq 0x68(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x60(%rsp), %rcx
callq 0xefd10
testb $0x1, %al
jne 0xea714
jmp 0xea71b
movb $0x1, 0x77(%rsp)
jmp 0xea73a
jmp 0xea71d
movq 0x48(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x2a, %eax
jne 0xea731
movb $0x0, 0x77(%rsp)
jmp 0xea73a
jmp 0xea733
jmp 0xea735
movb $0x0, 0x77(%rsp)
movb 0x77(%rsp), %al
andb $0x1, %al
addq $0x78, %rsp
retq
nopw %cs:(%rax,%rax)