// File: Neotoxic-off[P]Abstrakt/src/abstract/scan/scan_header.cpp
// Function: abstrakt::scan_header()
bool abstrakt::scan_header()
{
    std::size_t size = this->current_line.length();
    std::array<std::string, 6> header = {
        "/*",
        "** EPITECH PROJECT, ",
        "** ",
        "** File description:",
        "** ",
        "*/"
    };

    if (size > 0) {
        if (this->line_number <= header.size()) {
            if (this->current_line.find(header[this->line_number]) == std::string::npos) {
                abstrakt::report_error(
                    this->logs.map[0x04]
                );
                return (true);
            }
        }
    }

    return (false);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x140(%rbp)
addq $0x130, %rdi            # imm = 0x130
callq 0x3300
movq %rax, -0x18(%rbp)
leaq -0xd8(%rbp), %rax
movq %rax, -0x138(%rbp)
movb $0x1, -0xfa(%rbp)
movq %rax, -0xe0(%rbp)
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0x3380
movq -0x138(%rbp), %rdi
movq -0x130(%rbp), %rdx
leaq 0xb0e9(%rip), %rsi      # 0x10007
callq 0x5370
jmp 0x4f25
movq -0x138(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x150(%rbp)
movq %rax, -0xe0(%rbp)
leaq -0xf5(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x3380
movq -0x150(%rbp), %rdi
movq -0x148(%rbp), %rdx
leaq 0xb0a4(%rip), %rsi      # 0x1000a
callq 0x5370
jmp 0x4f6d
movq -0x138(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x160(%rbp)
movq %rax, -0xe0(%rbp)
leaq -0xf6(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x3380
movq -0x160(%rbp), %rdi
movq -0x158(%rbp), %rdx
leaq 0xb071(%rip), %rsi      # 0x1001f
callq 0x5370
jmp 0x4fb5
movq -0x138(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x170(%rbp)
movq %rax, -0xe0(%rbp)
leaq -0xf7(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x3380
movq -0x170(%rbp), %rdi
movq -0x168(%rbp), %rdx
leaq 0xb02d(%rip), %rsi      # 0x10023
callq 0x5370
jmp 0x4ffd
movq -0x138(%rbp), %rax
subq $-0x80, %rax
movq %rax, -0x180(%rbp)
movq %rax, -0xe0(%rbp)
leaq -0xf8(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x3380
movq -0x180(%rbp), %rdi
movq -0x178(%rbp), %rdx
leaq 0xafe1(%rip), %rsi      # 0x1001f
callq 0x5370
jmp 0x5045
movq -0x138(%rbp), %rax
addq $0xa0, %rax
movq %rax, -0x190(%rbp)
movq %rax, -0xe0(%rbp)
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x188(%rbp)
callq 0x3380
movq -0x190(%rbp), %rdi
movq -0x188(%rbp), %rdx
leaq 0xafb0(%rip), %rsi      # 0x10038
callq 0x5370
jmp 0x508f
movb $0x0, -0xfa(%rbp)
leaq -0xf9(%rbp), %rdi
callq 0x3250
leaq -0xf8(%rbp), %rdi
callq 0x3250
leaq -0xf7(%rbp), %rdi
callq 0x3250
leaq -0xf6(%rbp), %rdi
callq 0x3250
leaq -0xf5(%rbp), %rdi
callq 0x3250
leaq -0xe1(%rbp), %rdi
callq 0x3250
cmpq $0x0, -0x18(%rbp)
jbe 0x5327
movq -0x140(%rbp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x198(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x5420
movq %rax, %rcx
movq -0x198(%rbp), %rax
cmpq %rcx, %rax
ja 0x5325
movq -0x140(%rbp), %rax
movq %rax, %rcx
addq $0x130, %rcx            # imm = 0x130
movq %rcx, -0x1a0(%rbp)
movq 0x120(%rax), %rsi
leaq -0xd8(%rbp), %rdi
callq 0x5430
movq -0x1a0(%rbp), %rdi
movq %rax, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x33e0
cmpq $-0x1, %rax
jne 0x5323
movq -0x140(%rbp), %rdi
movl $0x4, -0x124(%rbp)
leaq -0x124(%rbp), %rsi
callq 0x3870
movq %rax, -0x1a8(%rbp)
jmp 0x518b
movq -0x1a8(%rbp), %rsi
leaq -0x120(%rbp), %rdi
callq 0x30e0
jmp 0x51a0
movq -0x140(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0xa4b0
jmp 0x51b5
leaq -0x120(%rbp), %rdi
callq 0x3150
movb $0x1, -0x1(%rbp)
movl $0x1, -0x128(%rbp)
jmp 0x5335
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf0(%rbp)
movl %eax, -0xf4(%rbp)
jmp 0x5289
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf0(%rbp)
movl %eax, -0xf4(%rbp)
jmp 0x527d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf0(%rbp)
movl %eax, -0xf4(%rbp)
jmp 0x5271
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf0(%rbp)
movl %eax, -0xf4(%rbp)
jmp 0x5265
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf0(%rbp)
movl %eax, -0xf4(%rbp)
jmp 0x5259
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf0(%rbp)
movl %eax, -0xf4(%rbp)
leaq -0xf9(%rbp), %rdi
callq 0x3250
leaq -0xf8(%rbp), %rdi
callq 0x3250
leaq -0xf7(%rbp), %rdi
callq 0x3250
leaq -0xf6(%rbp), %rdi
callq 0x3250
leaq -0xf5(%rbp), %rdi
callq 0x3250
leaq -0xe1(%rbp), %rdi
callq 0x3250
testb $0x1, -0xfa(%rbp)
jne 0x52a0
jmp 0x52ed
movq -0x138(%rbp), %rcx
movq -0xe0(%rbp), %rax
cmpq %rax, %rcx
movq %rax, -0x1b0(%rbp)
je 0x52eb
movq -0x1b0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x3150
movq -0x138(%rbp), %rcx
movq -0x1b8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1b0(%rbp)
jne 0x52ba
jmp 0x52ed
jmp 0x535b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf0(%rbp)
movl %eax, -0xf4(%rbp)
jmp 0x534f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf0(%rbp)
movl %eax, -0xf4(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x3150
jmp 0x534f
jmp 0x5325
jmp 0x5327
movb $0x0, -0x1(%rbp)
movl $0x1, -0x128(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x5460
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
leaq -0xd8(%rbp), %rdi
callq 0x5460
movq -0xf0(%rbp), %rdi
callq 0x3370
nopw (%rax,%rax)