// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: hash_table_to_let
static s7_pointer hash_table_to_let(s7_scheme *sc, s7_pointer obj)
                {
                    s7_pointer let;
                    if (!sc->entries_symbol)
                    {
                        sc->entries_symbol = make_symbol(sc, "entries");
                        sc->locked_symbol = make_symbol(sc, "locked");
                        sc->weak_symbol = make_symbol(sc, "weak");
                    }
                    if (!sc->function_symbol)
                        sc->function_symbol = make_symbol(sc, "function");
                    let = g_local_inlet(sc, 12, sc->value_symbol, obj,
                            sc->type_symbol, sc->is_hash_table_symbol,
                            sc->length_symbol, s7_length(sc, obj),
                            sc->entries_symbol, s7_make_integer(sc, hash_table_entries(obj)),
                            sc->locked_symbol, s7_make_boolean(sc, hash_table_checker_locked(obj)),
                            sc->is_immutable_symbol, s7_make_boolean(sc, is_immutable(obj)));
                    if (is_weak_hash_table(obj))
                        s7_varlet(sc, let, sc->weak_symbol, sc->T);
                    if ((hash_table_checker(obj) == hash_eq) ||
                            (hash_table_checker(obj) == hash_c_function) ||
                            (hash_table_checker(obj) == hash_closure) ||
                            (hash_table_checker(obj) == hash_equal_eq) ||
                            (hash_table_checker(obj) == hash_equal_syntax) ||
                            (hash_table_checker(obj) == hash_symbol))
                        s7_varlet(sc, let, sc->function_symbol, sc->is_eq_symbol);
                    else
                    {
                        if (hash_table_checker(obj) == hash_eqv)
                            s7_varlet(sc, let, sc->function_symbol, sc->is_eqv_symbol);
                        else
                        {
                            if ((hash_table_checker(obj) == hash_equal) ||
                                    (hash_table_checker(obj) == hash_empty))
                                s7_varlet(sc, let, sc->function_symbol, sc->is_equal_symbol);
                            else
                            {
                                if (hash_table_checker(obj) == hash_equivalent)
                                    s7_varlet(sc, let, sc->function_symbol, sc->is_equivalent_symbol);
                                else
                                {
                                    if ((hash_table_checker(obj) == hash_number) ||
                                            (hash_table_checker(obj) == hash_int) ||
                                            (hash_table_checker(obj) == hash_float) ||
                                            (hash_table_checker(obj) == hash_equal_real) ||
                                            (hash_table_checker(obj) == hash_equal_complex))
                                        s7_varlet(sc, let, sc->function_symbol, sc->num_eq_symbol);
                                    else
                                    {
                                        if (hash_table_checker(obj) == hash_string)
                                            s7_varlet(sc, let, sc->function_symbol, sc->string_eq_symbol);
                                        else
                                        {
                                            if (hash_table_checker(obj) == hash_char)
                                                s7_varlet(sc, let, sc->function_symbol, sc->char_eq_symbol);
#if (!WITH_PURE_S7)
                                            else
                                            {
                                                if (hash_table_checker(obj) == hash_ci_char)
                                                    s7_varlet(sc, let, sc->function_symbol, sc->char_ci_eq_symbol);
                                                else
                                                {
                                                    if (hash_table_checker(obj) == hash_ci_string)
                                                        s7_varlet(sc, let, sc->function_symbol, sc->string_ci_eq_symbol);
                                                }}
#endif
                                        }}}}}}
                    if (is_typed_hash_table(obj))
                        s7_varlet(sc, let, sc->signature_symbol, g_signature(sc, set_plist_1(sc, obj)));
                    return(let);
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb0, %rsp
movq %rdi, 0xa8(%rsp)
movq %rsi, 0xa0(%rsp)
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x1dd0(%rax)
jne 0x1c5c74
movq 0xa8(%rsp), %rdi
leaq 0x2e47b(%rip), %rsi     # 0x1f408c
callq 0xb400
movq %rax, %rcx
movq 0xa8(%rsp), %rax
movq %rcx, 0x1dd0(%rax)
movq 0xa8(%rsp), %rdi
leaq 0x2db17(%rip), %rsi     # 0x1f374e
callq 0xb400
movq %rax, %rcx
movq 0xa8(%rsp), %rax
movq %rcx, 0x1dd8(%rax)
movq 0xa8(%rsp), %rdi
leaq 0x2daf8(%rip), %rsi     # 0x1f3755
callq 0xb400
movq %rax, %rcx
movq 0xa8(%rsp), %rax
movq %rcx, 0x1d88(%rax)
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x1de0(%rax)
jne 0x1c5cac
movq 0xa8(%rsp), %rdi
leaq 0x2df3f(%rip), %rsi     # 0x1f3bd4
callq 0xb400
movq %rax, %rcx
movq 0xa8(%rsp), %rax
movq %rcx, 0x1de0(%rax)
movq 0xa8(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0xa8(%rsp), %rax
movq 0x18b8(%rax), %rax
movq %rax, 0x68(%rsp)
movq 0xa0(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0xa8(%rsp), %rax
movq 0x18c0(%rax), %rax
movq %rax, 0x78(%rsp)
movq 0xa8(%rsp), %rax
movq 0x10a0(%rax), %rax
movq %rax, 0x80(%rsp)
movq 0xa8(%rsp), %rax
movq 0x1218(%rax), %r13
movq 0xa8(%rsp), %rdi
movq 0xa0(%rsp), %rsi
callq 0x10f040
movq %rax, %r12
movq 0xa8(%rsp), %rax
movq 0x1dd0(%rax), %r15
movq 0xa8(%rsp), %rdi
movq 0xa0(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rsi
callq 0x120f0
movq %rax, %r14
movq 0xa8(%rsp), %rax
movq 0x1dd8(%rax), %rbx
movq 0xa8(%rsp), %rdi
movq 0xa0(%rsp), %rax
leaq 0x54a1f(%rip), %rcx     # 0x21a7a0
cmpq %rcx, 0x20(%rax)
setne %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x9c10
movq %rax, 0x88(%rsp)
movq 0xa8(%rsp), %rax
movq 0x10a8(%rax), %rax
movq %rax, 0x90(%rsp)
movq 0xa8(%rsp), %rdi
movq 0xa0(%rsp), %rax
movq (%rax), %rax
andq $0x1000000, %rax        # imm = 0x1000000
cmpq $0x0, %rax
setne %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x9c10
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rdx
movq 0x70(%rsp), %rcx
movq 0x78(%rsp), %r8
movq 0x80(%rsp), %r9
movq 0x88(%rsp), %r11
movq 0x90(%rsp), %r10
movl $0xc, %esi
movq %r13, (%rsp)
movq %r12, 0x8(%rsp)
movq %r15, 0x10(%rsp)
movq %r14, 0x18(%rsp)
movq %rbx, 0x20(%rsp)
movq %r11, 0x28(%rsp)
movq %r10, 0x30(%rsp)
movq %rax, 0x38(%rsp)
movb $0x0, %al
callq 0x1c4750
movq %rax, 0x98(%rsp)
movq 0xa0(%rsp), %rax
movq (%rax), %rax
andq $0x8000000, %rax        # imm = 0x8000000
cmpq $0x0, %rax
je 0x1c5e8e
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xa8(%rsp), %rax
movq 0x1d88(%rax), %rdx
movq 0xa8(%rsp), %rax
movq 0x118(%rax), %rcx
callq 0xc040
movq 0xa0(%rsp), %rax
leaq 0x2b33(%rip), %rcx      # 0x1c89d0
cmpq %rcx, 0x18(%rax)
je 0x1c5f0c
movq 0xa0(%rsp), %rax
leaq 0x2bbe(%rip), %rcx      # 0x1c8a70
cmpq %rcx, 0x18(%rax)
je 0x1c5f0c
movq 0xa0(%rsp), %rax
leaq 0x2cd9(%rip), %rcx      # 0x1c8ba0
cmpq %rcx, 0x18(%rax)
je 0x1c5f0c
movq 0xa0(%rsp), %rax
leaq -0x18d46c(%rip), %rcx   # 0x38a70
cmpq %rcx, 0x18(%rax)
je 0x1c5f0c
movq 0xa0(%rsp), %rax
leaq -0x18d551(%rip), %rcx   # 0x389a0
cmpq %rcx, 0x18(%rax)
je 0x1c5f0c
movq 0xa0(%rsp), %rax
leaq -0x18d0f6(%rip), %rcx   # 0x38e10
cmpq %rcx, 0x18(%rax)
jne 0x1c5f44
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xa8(%rsp), %rax
movq 0x1de0(%rax), %rdx
movq 0xa8(%rsp), %rax
movq 0x1068(%rax), %rcx
callq 0xc040
jmp 0x1c621d
movq 0xa0(%rsp), %rax
leaq 0x319d(%rip), %rcx      # 0x1c90f0
cmpq %rcx, 0x18(%rax)
jne 0x1c5f91
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xa8(%rsp), %rax
movq 0x1de0(%rax), %rdx
movq 0xa8(%rsp), %rax
movq 0x1078(%rax), %rcx
callq 0xc040
jmp 0x1c621b
movq 0xa0(%rsp), %rax
leaq -0x18e330(%rip), %rcx   # 0x37c70
cmpq %rcx, 0x18(%rax)
je 0x1c5fbb
movq 0xa0(%rsp), %rax
leaq -0x18ec25(%rip), %rcx   # 0x37390
cmpq %rcx, 0x18(%rax)
jne 0x1c5ff3
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xa8(%rsp), %rax
movq 0x1de0(%rax), %rdx
movq 0xa8(%rsp), %rax
movq 0x1070(%rax), %rcx
callq 0xc040
jmp 0x1c6219
movq 0xa0(%rsp), %rax
leaq -0xf3872(%rip), %rcx    # 0xd2790
cmpq %rcx, 0x18(%rax)
jne 0x1c6040
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xa8(%rsp), %rax
movq 0x1de0(%rax), %rdx
movq 0xa8(%rsp), %rax
movq 0x1100(%rax), %rcx
callq 0xc040
jmp 0x1c6217
movq 0xa0(%rsp), %rax
leaq 0x3161(%rip), %rcx      # 0x1c91b0
cmpq %rcx, 0x18(%rax)
je 0x1c60a9
movq 0xa0(%rsp), %rax
leaq -0x18d394(%rip), %rcx   # 0x38cd0
cmpq %rcx, 0x18(%rax)
je 0x1c60a9
movq 0xa0(%rsp), %rax
leaq -0x18d2f9(%rip), %rcx   # 0x38d80
cmpq %rcx, 0x18(%rax)
je 0x1c60a9
movq 0xa0(%rsp), %rax
leaq -0x18d7de(%rip), %rcx   # 0x388b0
cmpq %rcx, 0x18(%rax)
je 0x1c60a9
movq 0xa0(%rsp), %rax
leaq -0x18d773(%rip), %rcx   # 0x38930
cmpq %rcx, 0x18(%rax)
jne 0x1c60e1
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xa8(%rsp), %rax
movq 0x1de0(%rax), %rdx
movq 0xa8(%rsp), %rax
movq 0xea0(%rax), %rcx
callq 0xc040
jmp 0x1c6215
movq 0xa0(%rsp), %rax
leaq -0x18d5d0(%rip), %rcx   # 0x38b20
cmpq %rcx, 0x18(%rax)
jne 0x1c612e
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xa8(%rsp), %rax
movq 0x1de0(%rax), %rdx
movq 0xa8(%rsp), %rax
movq 0x1510(%rax), %rcx
callq 0xc040
jmp 0x1c6213
movq 0xa0(%rsp), %rax
leaq -0x18d2ad(%rip), %rcx   # 0x38e90
cmpq %rcx, 0x18(%rax)
jne 0x1c617b
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xa8(%rsp), %rax
movq 0x1de0(%rax), %rdx
movq 0xa8(%rsp), %rax
movq 0xdb8(%rax), %rcx
callq 0xc040
jmp 0x1c6211
movq 0xa0(%rsp), %rax
leaq 0x31c6(%rip), %rcx      # 0x1c9350
cmpq %rcx, 0x18(%rax)
jne 0x1c61c5
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xa8(%rsp), %rax
movq 0x1de0(%rax), %rdx
movq 0xa8(%rsp), %rax
movq 0x16f8(%rax), %rcx
callq 0xc040
jmp 0x1c620f
movq 0xa0(%rsp), %rax
leaq 0x325c(%rip), %rcx      # 0x1c9430
cmpq %rcx, 0x18(%rax)
jne 0x1c620d
movq 0xa8(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0xa8(%rsp), %rax
movq 0x1de0(%rax), %rdx
movq 0xa8(%rsp), %rax
movq 0x1730(%rax), %rcx
callq 0xc040
jmp 0x1c620f
jmp 0x1c6211
jmp 0x1c6213
jmp 0x1c6215
jmp 0x1c6217
jmp 0x1c6219
jmp 0x1c621b
jmp 0x1c621d
movq 0xa0(%rsp), %rax
movzwl 0x6(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x1c62a5
movq 0xa8(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0xa8(%rsp), %rax
movq 0x14d0(%rax), %rax
movq %rax, 0x58(%rsp)
movq 0xa8(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0xa8(%rsp), %rdi
movq 0xa0(%rsp), %rsi
callq 0x35ea0
movq 0x40(%rsp), %rdi
movq %rax, %rsi
callq 0x3a790
movq 0x48(%rsp), %rdi
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %rax, %rcx
callq 0xc040
movq 0x98(%rsp), %rax
addq $0xb0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
nop