// File: /workspace/github_c_makefile_star2_O3/lucvoo[P]sparse-dev/pre-process.c
// Function: preprocess
struct token * preprocess(struct token *token)
{
	preprocessing = 1;
	init_preprocessor();
	do_preprocess(&token);

	// Drop all expressions from preprocessing, they're not used any more.
	// This is not true when we have multiple files, though ;/
	// clear_expression_alloc();
	preprocessing = 0;

	return token;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq %rdi, (%rsp)
leaq 0x478cc(%rip), %rax     # 0x66e60
movl $0x1, (%rax)
leaq 0x268e4(%rip), %rsi     # 0x45e85
leaq 0x43e08(%rip), %rcx     # 0x633b0
xorl %edi, %edi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2e60a
movl %eax, %ebp
movl $0x8, %r14d
leaq 0x392fd(%rip), %r15     # 0x588c0
movq -0x8(%r14,%r15), %rsi
movq (%r14,%r15), %r12
movl %ebp, %edi
movl $0x1, %edx
movl $0x40, %ecx
callq 0x2bf00
movq %r12, 0x48(%rax)
movl $0x1, 0x50(%rax)
addq $0x10, %r14
cmpq $0x138, %r14            # imm = 0x138
jne 0x1f5c3
movl $0x8, %r14d
leaq 0x393ee(%rip), %r15     # 0x589f0
movq -0x8(%r14,%r15), %rsi
movq (%r14,%r15), %r12
movl %ebp, %edi
movl $0x1, %edx
movl $0x40, %ecx
callq 0x2bf00
movq %r12, 0x48(%rax)
movl $0x0, 0x50(%rax)
addq $0x10, %r14
cmpq $0x68, %r14
jne 0x1f602
movl $0x10, %r12d
leaq 0x39412(%rip), %r13     # 0x58a50
movq -0x10(%r12,%r13), %rsi
movq -0x8(%r12,%r13), %r14
movl %ebp, %edi
movl $0x3, %edx
movl $0x1, %ecx
callq 0x2bf00
movq %rax, %r15
movq %r14, 0x60(%rax)
movq (%r12,%r13), %rax
movq %rax, 0x68(%r15)
testq %rax, %rax
je 0x1f6e7
xorl %edi, %edi
callq 0x2f866
movq %rax, %r14
movq (%rax), %rax
andq $-0x40, %rax
orq $0x1b, %rax
movq %rax, (%r14)
movl 0x10(%r14), %eax
movl $0xfffffc00, %r13d      # imm = 0xFFFFFC00
andl %r13d, %eax
incl %eax
movl %eax, 0x10(%r14)
movq %r14, 0x50(%r15)
xorl %edi, %edi
callq 0x2f866
movq %rax, %r15
movq (%rax), %rax
andq $-0x40, %rax
orq $0x3, %rax
movq %rax, (%r15)
xorl %edi, %edi
callq 0x2f866
movq (%rax), %rcx
andq $-0x40, %rcx
orq $0x1b, %rcx
movq %rcx, (%rax)
movl 0x10(%rax), %ecx
andl %r13d, %ecx
incl %ecx
movl %ecx, 0x10(%rax)
movq %r15, 0x8(%r14)
movq %rax, 0x8(%r15)
leaq 0x66efd(%rip), %rcx     # 0x865e0
movq %rcx, 0x8(%rax)
addq $0x18, %r12
cmpq $0x118, %r12            # imm = 0x118
jne 0x1f637
movl $0x0, 0x47a4e(%rip)     # 0x67150
movq %rsp, %r15
leaq 0x4e89c(%rip), %rbp     # 0x6dfa8
leaq 0x26c6d(%rip), %r14     # 0x46380
leaq 0x66ec6(%rip), %r13     # 0x865e0
movl (%rbx), %eax
andl $0x3f, %eax
cmpl $0x1a, %eax
jne 0x1f73d
movq 0x10(%rbx), %rax
andb $-0x2, 0x11(%rax)
movq 0x8(%rbx), %rbx
movl (%rbx), %eax
andl $0x3f, %eax
cmpl $0x1a, %eax
je 0x1f724
movq %rbx, (%r15)
cmpq %r13, %rbx
je 0x1f864
movq (%rbx), %rax
movl %eax, %ecx
shrl $0x6, %ecx
andl $0x3fff, %ecx           # imm = 0x3FFF
leaq (%rcx,%rcx,4), %r12
shll $0x4, %r12d
addq (%rbp), %r12
movl %eax, %ecx
andl $0x10003f, %ecx         # imm = 0x10003F
cmpl $0x100012, %ecx         # imm = 0x100012
jne 0x1f78b
testq %rax, %rax
js 0x1f78b
cmpl $0x23, 0x10(%rbx)
jne 0x1f78b
movq %r12, %rdi
movq %r15, %rsi
callq 0x21f0c
jmp 0x1f835
andl $0x3f, %eax
cmpl $0x13, %eax
je 0x1f7f4
cmpl $0x14, %eax
jne 0x1f803
movq 0x48(%r12), %rax
testq %rax, %rax
je 0x1f7d4
movl $0x1, 0x2c(%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%r12)
movq (%rax), %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x11a80
movq $0x0, 0x48(%r12)
movl $0x0, 0x49990(%rip)     # 0x69164
cmpl $0x0, 0x2c(%r12)
jne 0x1f7e5
movl $0x3, 0x28(%r12)
movq 0x8(%rbx), %rax
movq %rax, (%r15)
decl 0x4aca2(%rip)           # 0x6a494
jmp 0x1f83d
movq 0x8(%rbx), %rax
movq %rax, (%r15)
incl 0x4ac93(%rip)           # 0x6a494
jmp 0x1f83d
cmpl $0x0, 0x2c(%r12)
jne 0x1f825
movl $0x1, 0x2c(%r12)
cmpq $0x0, 0x40(%r12)
jne 0x1f825
movq $0x0, 0x38(%r12)
cmpl $0x0, 0x49938(%rip)     # 0x69164
je 0x1f845
movq 0x8(%rbx), %rax
movq %rax, (%r15)
movq %rbx, %rdi
callq 0x2f875
movq (%r15), %rbx
jmp 0x1f71a
movl (%rbx), %eax
andl $0x3f, %eax
cmpl $0x3, %eax
jne 0x1f85b
movq %r15, %rdi
callq 0x211ab
testl %eax, %eax
je 0x1f83d
addq $0x8, %rbx
movq %rbx, %r15
jmp 0x1f83d
leaq 0x475f5(%rip), %rax     # 0x66e60
movl $0x0, (%rax)
movq (%rsp), %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq