// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/kernel.c
// Function: file_source
SOURCE*
file_source(FILE* f)
{
	SOURCE* src;

	DBUG_ENTER("file_source");
	assert(f != NULL);
	DBUG_PRINT("f", ("%p", f));
	src = NEW(SOURCE);
	src->context = pr(MK_REF(f), NIL);
	DBUG_PRINT("f'", ("%p", MK_PTR(hd(src->context))));
	src->empty = file_empty;
	src->get = file_get;
	src->next = file_next;
	DBUG_PRINT("context", ("%s", cons_to_str(src->context)));
	DBUG_RETURN src;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
leaq 0x25ff0(%rip), %rax     # 0x29103
movq %rax, -0x38(%rbp)
leaq 0x2c202(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x30(%rbp)
movl $0x110, -0x2c(%rbp)     # imm = 0x110
leaq 0x26236(%rip), %rax     # 0x2936f
movq %rax, -0x28(%rbp)
leaq 0x2bffc(%rip), %rax     # 0x2f140
movq %rax, -0x20(%rbp)
leaq 0x2c1d1(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x28490
cmpq $0x0, -0x8(%rbp)
je 0x316c
jmp 0x318b
leaq 0x285a2(%rip), %rdi     # 0x2b715
leaq 0x25ea2(%rip), %rsi     # 0x2901c
movl $0x111, %edx            # imm = 0x111
leaq 0x25f89(%rip), %rcx     # 0x2910f
callq 0x2100
jmp 0x318d
leaq 0x2c78c(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x31ea
leaq 0x2c180(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x25fbd(%rip), %rcx     # 0x2916b
movq %rcx, 0x10(%rax)
leaq 0x25fb2(%rip), %rdi     # 0x2916b
callq 0x278a0
cmpl $0x0, %eax
je 0x31ea
leaq 0x2c156(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x112, 0xc(%rax)       # imm = 0x112
movq -0x8(%rbp), %rsi
leaq 0x27e6a(%rip), %rdi     # 0x2b04d
movb $0x0, %al
callq 0x28540
jmp 0x31ec
movl $0x20, %edi
movl $0x1, %esi
callq 0x2150
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
shlq $0x2, %rdi
orq $0x3, %rdi
leaq 0x2c07e(%rip), %rsi     # 0x2f290
callq 0x25290
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
leaq 0x2c6f8(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x328d
leaq 0x2c0ec(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x25ee9(%rip), %rcx     # 0x2912b
movq %rcx, 0x10(%rax)
leaq 0x25ede(%rip), %rdi     # 0x2912b
callq 0x278a0
cmpl $0x0, %eax
je 0x328d
leaq 0x2c0c2(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x115, 0xc(%rax)       # imm = 0x115
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x25380
movq %rax, %rsi
sarq $0x2, %rsi
leaq 0x27dc7(%rip), %rdi     # 0x2b04d
movb $0x0, %al
callq 0x28540
jmp 0x328f
movq -0x10(%rbp), %rax
leaq -0x52a(%rip), %rcx      # 0x2d70
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
leaq -0x479(%rip), %rcx      # 0x2e30
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
leaq -0x2c8(%rip), %rcx      # 0x2ff0
movq %rcx, 0x18(%rax)
leaq 0x2c65d(%rip), %rax     # 0x2f920
cmpl $0x0, (%rax)
je 0x3324
leaq 0x2c051(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
leaq 0x25e14(%rip), %rcx     # 0x290f1
movq %rcx, 0x10(%rax)
leaq 0x25e09(%rip), %rdi     # 0x290f1
callq 0x278a0
cmpl $0x0, %eax
je 0x3324
leaq 0x2c027(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl $0x119, 0xc(%rax)       # imm = 0x119
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x1d250
movq %rax, %rsi
leaq 0x27248(%rip), %rdi     # 0x2a565
movb $0x0, %al
callq 0x28540
jmp 0x3326
movl $0x11a, -0x2c(%rbp)     # imm = 0x11A
leaq -0x38(%rbp), %rdi
callq 0x28660
movq -0x10(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq