// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: check_lambda_star_args
static s7_pointer check_lambda_star_args(s7_scheme *sc, s7_pointer args, s7_pointer body) /* checks closure*, macro*, and bacro* */
                {
                    s7_pointer top, v, w;
                    int32_t i;
                    bool has_defaults;

                    if (!is_list(args))
                    {
                        if (is_constant(sc, args))                                  /* (lambda* :a ...) */
                            eval_error(sc, "lambda* parameter '~S is a constant", 35, args);
                        if (is_symbol(args))
                            set_local(args);
                        return(args);
                    }

                    has_defaults = false;
                    top = args;
                    v = args;
                    for (i = 0, w = args; is_pair(w); i++, v = w, w = cdr(w))
                    {
                        s7_pointer car_w;
                        car_w = car(w);
                        if (is_pair(car_w))
                        {
                            has_defaults = true;
                            if (is_constant(sc, car(car_w)))                            /* (lambda* ((:a 1)) ...) */
                                eval_error(sc, "lambda* parameter '~A is a constant", 35, car(car_w));
                            if (symbol_is_in_arg_list(caar(w), cdr(w)))             /* (lambda* ((a 1) a) ...) */
                                eval_error(sc, "lambda* parameter '~A is used twice in the argument list", 56, car(car_w));

                            if (!is_pair(cdr(car_w)))                                  /* (lambda* ((a . 0.0)) a) */
                            {
                                if (is_null(cdr(car_w)))                               /* (lambda* ((a)) ...) */
                                    eval_error(sc, "lambda* parameter default value missing? '~A", 44, car_w);
                                eval_error(sc, "lambda* parameter is a dotted pair? '~A",39,  car_w);
                            }
                            else
                            {
                                if ((is_pair(cadr(car_w))) &&                          /* (lambda* ((a (quote . -1))) ...) */
                                        (s7_list_length(sc, cadr(car_w)) < 0))
                                    eval_error(sc, "lambda* parameter default value is improper? ~A", 47, car_w);
                            }

                            if (is_not_null(cddr(car_w)))                              /* (lambda* ((a 0.0 'hi)) a) */
                                eval_error(sc, "lambda* parameter has multiple default values? '~A", 50, car_w);

                            set_local(car(car_w));
                        }
                        else
                        {
                            if (car_w != sc->key_rest_symbol)
                            {
                                if (is_constant(sc, car_w))
                                {
                                    if (car_w == sc->key_allow_other_keys_symbol)
                                    {
                                        if (is_not_null(cdr(w)))                /* (lambda* (:allow-other-keys x) x) */
                                            eval_error(sc, ":allow-other-keys should be the last parameter: ~A", 50, args);
                                        if (w == top)
                                            eval_error(sc, ":allow-other-keys can't be the only parameter: ~A", 49, args);
                                        set_allow_other_keys(top);
                                        set_cdr(v, sc->nil);
                                    }
                                    else                                        /* (lambda* (pi) ...) */
                                        eval_error(sc, "lambda* parameter '~A is a constant", 35, car_w);
                                }
                                if (symbol_is_in_arg_list(car_w, cdr(w)))       /* (lambda* (a a) ...) or (lambda* (a . a) ...) */
                                    eval_error(sc, "lambda* parameter '~A is used twice in the argument list", 56, car_w);

                                if (!is_keyword(car_w)) set_local(car_w);
                            }
                            else
                            {
                                has_defaults = true;
                                if (!is_pair(cdr(w)))                               /* (lambda* (:rest) ...) */
                                    eval_error(sc, "lambda* :rest parameter missing? ~A", 35, w);
                                if (!is_symbol(cadr(w)))                         /* (lambda* (:rest (a 1)) ...) */
                                {
                                    if (!is_pair(cadr(w)))                          /* (lambda* (:rest 1) ...) */
                                        eval_error(sc, "lambda* :rest parameter is not a symbol? ~A", 43, w);
                                    eval_error(sc, "lambda* :rest parameter can't have a default value. ~A", 54, w);
                                }
                                else
                                {
                                    if (is_constant(sc, cadr(w)))                   /* (lambda* (a :rest x)...) where x is locally a constant */
                                        return(s7_error(sc, sc->wrong_type_arg_symbol,
                                                    set_elist_2(sc, wrap_string(sc, "can't bind an immutable object: ~S", 34), w)));
                                }
                                set_local(cadr(w));
                            }
                        }
                    }
                    if (is_not_null(w))
                    {
                        if (is_constant(sc, w))                             /* (lambda* (a . 0.0) a) or (lambda* (a . :b) a) */
                            eval_error(sc, "lambda* :rest parameter '~A is a constant", 41, w);
                        if (is_symbol(w))
                            set_local(w);
                    }
                    else
                    {
                        if ((body) && (!has_defaults) && (is_pair(args)))
                            set_has_no_defaults(body);
                    }
                    return(top);
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r12
movq %rdi, %r14
movzbl (%rsi), %eax
leal -0x1(%rax), %ecx
cmpl $0x2, %ecx
jae 0xef759
movb (%r12), %sil
cmpb $0x1, %sil
jne 0xef877
movq %rdx, 0x8(%rsp)
xorl %ebp, %ebp
movq %r12, %rax
movq %r12, %rcx
movq %rax, %r13
movq 0x8(%rax), %r15
movb (%r15), %al
cmpb $0x1, %al
jne 0xef0b5
movq %rbx, 0x10(%rsp)
movq 0x8(%r15), %rbp
cmpb $0xa, (%rbp)
jne 0xef1a2
movq (%rbp), %rbx
btl $0x18, %ebx
jb 0xef1a2
testb $0x1, 0x6(%rbp)
je 0xef086
movq 0x8(%r14), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%rbp), %rdx
movl $0x18, %eax
cmpq %rdx, %rsi
je 0xef072
jle 0xef037
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xef02a
cmpq %rdx, %rsi
je 0xef072
movl $0x10, %eax
cmpb $0x1c, (%rcx)
jne 0xef072
movq 0x8(%rcx), %rsi
testq %rsi, %rsi
sete %dil
je 0xef064
cmpq %rbp, 0x8(%rsi)
je 0xef05f
movq 0x18(%rsi), %rsi
jmp 0xef04a
xorl %edi, %edi
movq %rsi, %rdx
testb %dil, %dil
je 0xef077
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xef046
movq (%rbp,%rax), %rdx
cmpb $0x20, (%rdx)
jne 0xef086
testb $0x1, 0x3(%rdx)
jne 0xef1a2
movq 0x10(%r13), %rax
cmpb $0x1, (%rax)
jne 0xef36a
movq 0x8(%rax), %rcx
cmpq %rbp, %rcx
je 0xef3ec
cmpb $0x1, (%rcx)
jne 0xef0af
cmpq %rbp, 0x8(%rcx)
je 0xef3ec
movq 0x10(%rax), %rax
jmp 0xef08a
cmpq 0x1890(%r14), %r15
je 0xef1fd
cmpb $0xa, %al
jne 0xef158
testb $0x1, 0x3(%r15)
jne 0xef158
testb $0x1, 0x6(%r15)
je 0xef443
movq 0x8(%r14), %rdx
movq 0x18(%rdx), %rdi
movq 0x20(%r15), %rsi
movl $0x18, %eax
cmpq %rsi, %rdi
je 0xef141
jle 0xef105
movq 0x10(%rdx), %rdx
movq 0x18(%rdx), %rdi
cmpq %rdi, %rsi
jl 0xef0f8
cmpq %rsi, %rdi
je 0xef141
movl $0x10, %eax
cmpb $0x1c, (%rdx)
jne 0xef141
movq 0x8(%rdx), %rdi
testq %rdi, %rdi
sete %r8b
je 0xef133
cmpq %r15, 0x8(%rdi)
je 0xef12d
movq 0x18(%rdi), %rdi
jmp 0xef118
xorl %r8d, %r8d
movq %rdi, %rsi
testb %r8b, %r8b
je 0xef145
movq 0x10(%rdx), %rdx
cmpb $0x1c, (%rdx)
je 0xef114
movq (%r15,%rax), %rsi
cmpb $0x20, (%rsi)
jne 0xef443
testb $0x1, 0x3(%rsi)
je 0xef443
cmpq 0x1898(%r14), %r15
je 0xef302
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31f78(%rip), %rcx     # 0x121109
movq %rcx, 0x10(%rax)
movq $0x23, 0x8(%rax)
jmp 0xef4cc
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31f3b(%rip), %rcx     # 0x121109
movq %rcx, 0x10(%rax)
movq $0x23, 0x8(%rax)
movq 0x8(%r15), %rcx
movq 0x6e0(%r14), %rdx
movq %rax, 0x8(%rdx)
movq 0x6e0(%r14), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0xef613
movq 0x10(%r13), %rax
cmpb $0x1, (%rax)
jne 0xef2c5
movq 0x8(%rax), %rax
movzbl (%rax), %ecx
cmpl $0x1, %ecx
je 0xef4fd
cmpl $0xa, %ecx
jne 0xef53a
movq (%rax), %rcx
btl $0x18, %ecx
jb 0xef5c1
testb $0x1, 0x6(%rax)
je 0xef2aa
movq 0x8(%r14), %rsi
movq 0x18(%rsi), %r8
movq 0x20(%rax), %rdi
movl $0x18, %edx
cmpq %rdi, %r8
je 0xef297
jle 0xef25b
movq 0x10(%rsi), %rsi
movq 0x18(%rsi), %r8
cmpq %r8, %rdi
jl 0xef24e
cmpq %rdi, %r8
je 0xef297
movl $0x10, %edx
cmpb $0x1c, (%rsi)
jne 0xef297
movq 0x8(%rsi), %r8
testq %r8, %r8
sete %r9b
je 0xef289
cmpq %rax, 0x8(%r8)
je 0xef283
movq 0x18(%r8), %r8
jmp 0xef26e
xorl %r9d, %r9d
movq %r8, %rdi
testb %r9b, %r9b
je 0xef29b
movq 0x10(%rsi), %rsi
cmpb $0x1c, (%rsi)
je 0xef26a
movq (%rax,%rdx), %rdi
cmpb $0x20, (%rdi)
jne 0xef2aa
testb $0x1, 0x3(%rdi)
jne 0xef5c1
andq $-0x1112201, %rcx       # imm = 0xFEEEDDFF
orq $0x100000, %rcx         # imm = 0x100000
movq %rcx, (%rax)
movb $0x1, %bpl
movb $0x1, %al
jmp 0xef62a
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31f92(%rip), %rcx     # 0x121283
movq %rcx, 0x10(%rax)
movq $0x23, 0x8(%rax)
jmp 0xef5f9
movq 0x10(%r13), %rax
cmpq 0x110(%r14), %rax
je 0xef429
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31edf(%rip), %rcx     # 0x12121e
movq %rcx, 0x10(%rax)
movq $0x32, 0x8(%rax)
movq 0x6e0(%r14), %rcx
movq %rax, 0x8(%rcx)
movq 0x6e0(%r14), %rax
movq 0x10(%rax), %rax
movq %r12, 0x8(%rax)
jmp 0xef4e6
cmpq %rbp, %rax
je 0xef3ec
movq %r12, (%rsp)
movq 0x10(%r15), %r12
cmpb $0x1, (%r12)
jne 0xef577
movq 0x8(%r12), %rsi
cmpb $0x1, (%rsi)
jne 0xef39d
movq %r14, %rdi
callq 0x3c299
testq %rax, %rax
js 0xef6e7
movq 0x10(%r12), %rax
cmpq 0x110(%r14), %rax
je 0xef6c2
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31e10(%rip), %rcx     # 0x1211eb
movq %rcx, 0x10(%rax)
movq $0x32, 0x8(%rax)
jmp 0xef71f
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31d15(%rip), %rcx     # 0x12112d
movq %rcx, 0x10(%rax)
movq $0x38, 0x8(%rax)
jmp 0xef1da
cmpq %r12, %r13
je 0xef64b
orb $0x2, 0x3(%r12)
movq 0x110(%r14), %rax
movq %rax, 0x10(%rcx)
movq 0x10(%r13), %rax
cmpb $0x1, (%rax)
jne 0xef466
movq 0x8(%rax), %rcx
cmpq %r15, %rcx
je 0xef494
cmpb $0x1, (%rcx)
jne 0xef460
cmpq %r15, 0x8(%rcx)
je 0xef494
movq 0x10(%rax), %rax
jmp 0xef447
cmpq %r15, %rax
je 0xef494
movb $0x1, %al
testb $-0x80, 0x6(%r15)
jne 0xef62a
movq (%r15), %rcx
movq $-0x112201, %rdx        # imm = 0xFFEEDDFF
andq %rdx, %rcx
orq $0x100000, %rcx         # imm = 0x100000
movq %rcx, (%r15)
jmp 0xef62a
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31c6d(%rip), %rcx     # 0x12112d
movq %rcx, 0x10(%rax)
movq $0x38, 0x8(%rax)
movq 0x6e0(%r14), %rcx
movq %rax, 0x8(%rcx)
movq 0x6e0(%r14), %rax
movq 0x10(%rax), %rax
movq %r15, 0x8(%rax)
movq 0x6e0(%r14), %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3b366
jmp 0xef628
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31daa(%rip), %rcx     # 0x1212d3
movq %rcx, 0x10(%rax)
movq $0x36, 0x8(%rax)
jmp 0xef5f9
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31d41(%rip), %rcx     # 0x1212a7
movq %rcx, 0x10(%rax)
movq $0x2b, 0x8(%rax)
jmp 0xef5f9
cmpq 0x110(%r14), %r12
je 0xef688
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31be3(%rip), %rcx     # 0x121193
movq %rcx, 0x10(%rax)
movq $0x27, 0x8(%rax)
jmp 0xef71f
movq 0x1940(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31d1d(%rip), %rcx     # 0x12130a
movq %rcx, 0x10(%rax)
movq $0x22, 0x8(%rax)
movq 0x6e0(%r14), %rcx
movq %rax, 0x8(%rcx)
movq 0x6e0(%r14), %rax
movq 0x10(%rax), %rax
movq %r13, 0x8(%rax)
movq 0x6e0(%r14), %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3b366
movb $0x1, %bpl
xorl %eax, %eax
testb %al, %al
je 0xef87e
movq 0x10(%r13), %rax
movb (%rax), %sil
movq %r13, %rcx
cmpb $0x1, %sil
je 0xeefd9
jmp 0xef886
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31bda(%rip), %rcx     # 0x121251
movq %rcx, 0x10(%rax)
movq $0x31, 0x8(%rax)
jmp 0xef34b
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31ab2(%rip), %rcx     # 0x121166
movq %rcx, 0x10(%rax)
movq $0x2c, 0x8(%rax)
jmp 0xef71f
andq $-0x1112201, %rbx       # imm = 0xFEEEDDFF
orq $0x100000, %rbx         # imm = 0x100000
movq %rbx, (%rbp)
movb $0x1, %bpl
movb $0x1, %al
movq (%rsp), %r12
movq 0x10(%rsp), %rbx
jmp 0xef62a
movq 0x1918(%r14), %rbx
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x31aa8(%rip), %rcx     # 0x1211bb
movq %rcx, 0x10(%rax)
movq $0x2f, 0x8(%rax)
movq 0x6e0(%r14), %rcx
movq %rax, 0x8(%rcx)
movq 0x6e0(%r14), %rax
movq 0x10(%rax), %rax
movq %r15, 0x8(%rax)
movq 0x6e0(%r14), %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3b366
movb $0x1, %bpl
xorl %eax, %eax
movq (%rsp), %r12
jmp 0xef62a
cmpl $0xa, %eax
jne 0xef80b
testb $0x1, 0x3(%r12)
jne 0xef80b
testb $0x1, 0x6(%r12)
je 0xef7e6
movq 0x8(%r14), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%r12), %rdx
movl $0x18, %eax
cmpq %rdx, %rsi
je 0xef7d7
jle 0xef79c
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xef78f
cmpq %rdx, %rsi
je 0xef7d7
movl $0x10, %eax
cmpb $0x1c, (%rcx)
jne 0xef7d7
movq 0x8(%rcx), %rsi
testq %rsi, %rsi
sete %dil
je 0xef7c9
cmpq %r12, 0x8(%rsi)
je 0xef7c4
movq 0x18(%rsi), %rsi
jmp 0xef7af
xorl %edi, %edi
movq %rsi, %rdx
testb %dil, %dil
je 0xef7db
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
je 0xef7ab
movq (%r12,%rax), %rdx
cmpb $0x20, (%rdx)
jne 0xef7e6
testb $0x1, 0x3(%rdx)
jne 0xef80b
cmpb $0xa, (%r12)
jne 0xef9bf
movq $-0x112201, %rax        # imm = 0xFFEEDDFF
andq (%r12), %rax
orq $0x100000, %rax         # imm = 0x100000
movq %rax, (%r12)
jmp 0xef9bf
movq 0x1918(%r14), %r15
movq 0x820(%r14), %rax
movslq 0x7dc(%r14), %rcx
movq (%rax,%rcx,8), %rax
incl %ecx
andl $0x7, %ecx
movl %ecx, 0x7dc(%r14)
leaq 0x318ae(%rip), %rcx     # 0x1210e5
movq %rcx, 0x10(%rax)
movq $0x23, 0x8(%rax)
movq 0x6e0(%r14), %rcx
movq %rax, 0x8(%rcx)
movq 0x6e0(%r14), %rax
movq 0x10(%rax), %rax
movq %r12, 0x8(%rax)
movq 0x6e0(%r14), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3b366
movq %r15, %r12
jmp 0xef9bf
xorl %ebp, %ebp
movq %r12, %rax
jmp 0xef88b
movq %rbx, %r12
jmp 0xef9bf
movq 0x8(%rsp), %rdx
cmpq 0x110(%r14), %rax
je 0xef9a7
cmpb $0xa, %sil
jne 0xef941
testb $0x1, 0x3(%rax)
jne 0xef941
testb $0x1, 0x6(%rax)
je 0xef922
movq 0x8(%r14), %rdx
movq 0x18(%rdx), %rdi
movq 0x20(%rax), %rsi
movl $0x18, %ecx
cmpq %rsi, %rdi
je 0xef913
jle 0xef8d7
movq 0x10(%rdx), %rdx
movq 0x18(%rdx), %rdi
cmpq %rdi, %rsi
jl 0xef8ca
cmpq %rsi, %rdi
je 0xef913
movl $0x10, %ecx
cmpb $0x1c, (%rdx)
jne 0xef913
movq 0x8(%rdx), %rdi
testq %rdi, %rdi
sete %r8b
je 0xef905
cmpq %rax, 0x8(%rdi)
je 0xef8ff
movq 0x18(%rdi), %rdi
jmp 0xef8ea
xorl %r8d, %r8d
movq %rdi, %rsi
testb %r8b, %r8b
je 0xef917
movq 0x10(%rdx), %rdx
cmpb $0x1c, (%rdx)
je 0xef8e6
movq (%rax,%rcx), %rsi
cmpb $0x20, (%rsi)
jne 0xef922
testb $0x1, 0x3(%rsi)
jne 0xef941
cmpb $0xa, (%rax)
jne 0xef9bf
movq $-0x112201, %rcx        # imm = 0xFFEEDDFF
andq (%rax), %rcx
orq $0x100000, %rcx         # imm = 0x100000
movq %rcx, (%rax)
jmp 0xef9bf
movq 0x1918(%r14), %r12
movq 0x820(%r14), %rcx
movslq 0x7dc(%r14), %rdx
movq (%rcx,%rdx,8), %rcx
incl %edx
andl $0x7, %edx
movl %edx, 0x7dc(%r14)
leaq 0x319c0(%rip), %rdx     # 0x12132d
movq %rdx, 0x10(%rcx)
movq $0x29, 0x8(%rcx)
movq 0x6e0(%r14), %rdx
movq %rcx, 0x8(%rdx)
movq 0x6e0(%r14), %rcx
movq 0x10(%rcx), %rcx
movq %rax, 0x8(%rcx)
movq 0x6e0(%r14), %rdx
movq %r14, %rdi
movq %r12, %rsi
callq 0x3b366
jmp 0xef9bf
testq %rdx, %rdx
sete %al
orb %bpl, %al
testb $0x1, %al
jne 0xef9bf
cmpb $0x1, (%r12)
jne 0xef9bf
orb $0x2, 0x6(%rdx)
movq %r12, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq