// File: /workspace/github_c_makefile_star2_O3/janet-lang[P]janet/src/core/io.c
// Function: janet_lib_io
void janet_lib_io(JanetTable *env) {
    JanetRegExt io_cfuns[] = {
        JANET_CORE_REG("print", cfun_io_print),
        JANET_CORE_REG("prin", cfun_io_prin),
        JANET_CORE_REG("printf", cfun_io_printf),
        JANET_CORE_REG("prinf", cfun_io_prinf),
        JANET_CORE_REG("eprin", cfun_io_eprin),
        JANET_CORE_REG("eprint", cfun_io_eprint),
        JANET_CORE_REG("eprintf", cfun_io_eprintf),
        JANET_CORE_REG("eprinf", cfun_io_eprinf),
        JANET_CORE_REG("xprint", cfun_io_xprint),
        JANET_CORE_REG("xprin", cfun_io_xprin),
        JANET_CORE_REG("xprintf", cfun_io_xprintf),
        JANET_CORE_REG("xprinf", cfun_io_xprinf),
        JANET_CORE_REG("flush", cfun_io_flush),
        JANET_CORE_REG("eflush", cfun_io_eflush),
        JANET_CORE_REG("file/temp", cfun_io_temp),
        JANET_CORE_REG("file/open", cfun_io_fopen),
        JANET_CORE_REG("file/close", cfun_io_fclose),
        JANET_CORE_REG("file/read", cfun_io_fread),
        JANET_CORE_REG("file/write", cfun_io_fwrite),
        JANET_CORE_REG("file/flush", cfun_io_fflush),
        JANET_CORE_REG("file/seek", cfun_io_fseek),
        JANET_CORE_REG("file/tell", cfun_io_ftell),
        JANET_REG_END
    };
    janet_core_cfuns_ext(env, NULL, io_cfuns);
    janet_register_abstract_type(&janet_file_type);
    int default_flags = JANET_FILE_NOT_CLOSEABLE | JANET_FILE_SERIALIZABLE;
    /* stdout */
    JANET_CORE_DEF(env, "stdout",
                   janet_makefile(stdout, JANET_FILE_APPEND | default_flags),
                   "The standard output file.");
    /* stderr */
    JANET_CORE_DEF(env, "stderr",
                   janet_makefile(stderr, JANET_FILE_APPEND | default_flags),
                   "The standard error file.");
    /* stdin */
    JANET_CORE_DEF(env, "stdin",
                   janet_makefile(stdin, JANET_FILE_READ | default_flags),
                   "The standard input file.");

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x398, %rsp            # imm = 0x398
movq %rdi, %rbx
leaq 0x52620(%rip), %rsi     # 0x81660
leaq -0x3c0(%rbp), %r14
movl $0x398, %edx            # imm = 0x398
movq %r14, %rdi
callq 0x12670
movq %rbx, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x48d77
leaq 0x52588(%rip), %r14     # 0x815f0
movq %r14, %rdi
callq 0x49050
movq 0x55f11(%rip), %rax     # 0x84f88
movq (%rax), %r15
movl $0x10, %esi
movq %r14, %rdi
callq 0x144c2
movq %r15, (%rax)
movl $0x94, %ecx
movl %ecx, 0x8(%rax)
movabsq $-0x1000000000000, %r13 # imm = 0xFFFF000000000000
movq %rax, %rdi
movq %r13, %rsi
callq 0x4ed7e
leaq 0x2f4b0(%rip), %rsi     # 0x5e55e
leaq 0x2f4b0(%rip), %rcx     # 0x5e565
leaq 0x2f402(%rip), %r12     # 0x5e4be
movq %rbx, %rdi
movq %rax, %rdx
movq %r12, %r8
movl $0x33f, %r9d            # imm = 0x33F
callq 0x487f1
movq 0x55f19(%rip), %rax     # 0x84ff0
movq (%rax), %r15
movl $0x10, %esi
movq %r14, %rdi
callq 0x144c2
movq %r15, (%rax)
movl $0x94, %ecx
movl %ecx, 0x8(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x4ed7e
leaq 0x2f47b(%rip), %rsi     # 0x5e57f
leaq 0x2f47b(%rip), %rcx     # 0x5e586
movq %rbx, %rdi
movq %rax, %rdx
movq %r12, %r8
movl $0x343, %r9d            # imm = 0x343
callq 0x487f1
movq 0x55e72(%rip), %rax     # 0x84f98
movq (%rax), %r15
movl $0x10, %esi
movq %r14, %rdi
callq 0x144c2
movq %r15, (%rax)
movl $0x92, 0x8(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x4ed7e
leaq 0x2f44d(%rip), %rsi     # 0x5e59f
leaq 0x2f44c(%rip), %rcx     # 0x5e5a5
movq %rbx, %rdi
movq %rax, %rdx
movq %r12, %r8
movl $0x347, %r9d            # imm = 0x347
callq 0x487f1
addq $0x398, %rsp            # imm = 0x398
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop