// File: /workspace/github_c_makefile_star2_O3/BernardTatin[P]s7sh/s7.c
// Function: g_autoloader
static s7_pointer g_autoloader(s7_scheme *sc, s7_pointer args)
    {
#define H_autoloader "(*autoload* sym) returns the autoload info for the symbol sym, or #f."
#define Q_autoloader s7_make_signature(sc, 2, sc->T, sc->is_symbol_symbol)
        s7_pointer sym;

        sym = car(args);
        if (!is_symbol(sym))
        {
            check_method(sc, sym, sc->autoloader_symbol, args);
            return(s7_wrong_type_arg_error(sc, "*autoload*", 1, sym, "a symbol"));
        }
        if (sc->autoload_names)
        {
            const char *file;
            bool loaded = false;
            file = find_autoload_name(sc, sym, &loaded, false);
            if (file)
                return(s7_make_string(sc, file));
        }
        if (is_hash_table(sc->autoload_table))
            return(s7_hash_table_ref(sc, sc->autoload_table, sym));

        return(sc->F);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movq 0x8(%rsi), %r15
cmpb $0xa, (%r15)
jne 0x800b0
cmpq $0x0, 0x2160(%rbx)
je 0x8020f
movq 0x8(%r15), %rax
movq 0x10(%rax), %rsi
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x9ccf5
testq %rax, %rax
je 0x8020f
movq %rbx, %rdi
movq %rax, %rsi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xe9af
testb $0x40, 0x3(%r15)
je 0x801e3
cmpb $0x1, 0x24c(%rbx)
jne 0x801e3
movq %rsi, %r12
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8a63
movq 0xc20(%rbx), %rdx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x89ff
cmpq 0x128(%rbx), %rax
je 0x801e3
cmpb $0x1, (%r12)
jne 0x80240
movq %rax, 0x10(%rsp)
movq %r12, 0x4c8(%rbx)
movq 0x8(%r12), %r13
movq 0x90(%rbx), %rax
movq 0x110(%rbx), %rbp
cmpq 0x98(%rbx), %rax
ja 0x80137
movq %rbx, %rdi
callq 0xa550
movq 0x90(%rbx), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%rbx)
movq -0x8(%rax), %r15
movq $0x200001, (%r15)       # imm = 0x200001
movq %r13, 0x8(%r15)
movq %rbp, 0x10(%r15)
movq %r15, 0x4e8(%rbx)
movq 0x10(%r12), %r12
cmpb $0x1, (%r12)
jne 0x801c7
movq %r15, %r13
movq 0x8(%r12), %rbp
movq 0x90(%rbx), %rax
movq 0x110(%rbx), %r14
cmpq 0x98(%rbx), %rax
ja 0x80196
movq %rbx, %rdi
callq 0xa550
movq 0x90(%rbx), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%rbx)
movq -0x8(%rax), %rax
movq $0x200001, (%rax)       # imm = 0x200001
movq %rbp, 0x8(%rax)
movq %r14, 0x10(%rax)
movq %rax, 0x10(%r13)
movq 0x10(%r12), %r12
cmpb $0x1, (%r12)
movq %rax, %r13
je 0x8016b
movq 0x110(%rbx), %rax
movq %rax, 0x4e8(%rbx)
movq %rax, 0x4c8(%rbx)
movq 0x10(%rsp), %rax
jmp 0x80247
leaq 0x94424(%rip), %rsi     # 0x11460e
leaq 0x8bef2(%rip), %r8      # 0x10c0e3
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rcx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd4e5
movq 0x2140(%rbx), %rsi
cmpb $0x1b, (%rsi)
jne 0x8022a
movq %rbx, %rdi
movq %r15, %rdx
callq *0x18(%rsi)
movq 0x20(%rax), %rax
jmp 0x80231
movq 0x120(%rbx), %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x110(%rbx), %r15
movq %rbx, %rdi
movq %rax, %rsi
movq %r15, %rdx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xaee6