// File: /workspace/github_cpp_makefile_star2_O1/enferex[P]fnplot/cs.cc
// Function: CS::initSymbols(unsigned char const*, unsigned long)
void CS::initSymbols(const uint8_t *data, size_t data_len)
{
    pos_t pos = {0};
    char line[1024];
    CSFile *file;

    pos.off = this->_hdr.syms_start;
    pos.data = data;
    pos.data_len = data_len;

    while (VALID(&pos) && pos.off <= this->_hdr.trailer) {
        // Get file info
        getLine(&pos, line, sizeof(line));
        file = newFile(line);
        fileLoadSymbols(file, &pos);

        // No-name file
        if (file->getName().size() == 0) {
            delete file;
            continue;
        }

        // Add the file to the list of files 
        this->addFile(file);
        this->_n_functions += file->getFunctionCount();
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc38, %rsp            # imm = 0xC38
movq %rdi, 0x8(%rsp)
movq 0x8(%rdi), %rbp
cmpq %rdx, %rbp
ja 0x32ae
movq 0x8(%rsp), %rax
cmpq 0x10(%rax), %rbp
ja 0x32ae
movq %rdx, %rbx
movq %rsi, %r14
movq %rbp, %r13
cmpb $0xa, (%r14,%r13)
je 0x2d14
incq %r13
cmpq %rbx, %r13
jbe 0x2d05
movq %r13, %r15
subq %rbp, %r15
incq %r13
cmpq %rbx, %r13
setae %al
cmpq $0x401, %r15            # imm = 0x401
setae %cl
orb %al, %cl
jne 0x2d50
addq %r14, %rbp
leaq 0x830(%rsp), %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x2170
movb $0x0, 0x830(%rsp,%r15)
leaq 0x830(%rsp), %r15
movb (%r15), %bpl
movsbl %bpl, %edi
callq 0x2060
incq %r15
testl %eax, %eax
jne 0x2d58
movl $0x68, %edi
callq 0x21b0
movq %rax, %r12
addq $0x10, %rax
movq %rax, 0x20(%rsp)
movq %rax, (%r12)
movq %r15, %rdi
callq 0x20e0
leaq (%rax,%r15), %rdx
movq %r12, %rdi
movq %r15, %rsi
callq 0x43a4
movb %bpl, 0x20(%r12)
leaq 0x58(%r12), %rax
movq %rax, 0x28(%r12)
movq $0x1, 0x30(%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%r12)
movl $0x3f800000, 0x48(%r12) # imm = 0x3F800000
movups %xmm0, 0x50(%r12)
movq $0x0, 0x60(%r12)
movq %r13, %r15
cmpq %rbx, %r13
ja 0x2def
movq %r13, %r15
cmpb $0xa, (%r14,%r15)
je 0x2def
incq %r15
cmpq %rbx, %r15
jbe 0x2de0
movq %r12, (%rsp)
movq %r15, %r12
subq %r13, %r12
incq %r15
cmpq %rbx, %r15
setae %al
cmpq $0x401, %r12            # imm = 0x401
setae %cl
orb %al, %cl
jne 0x2e2f
addq %r14, %r13
leaq 0x430(%rsp), %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x2170
movb $0x0, 0x430(%rsp,%r12)
cmpq %rbx, %r15
jbe 0x2e41
movq %r15, %rbp
leaq 0x30(%rsp), %r13
jmp 0x3205
movq %r15, %rbp
leaq 0x30(%rsp), %r13
cmpq %rbx, %r15
ja 0x2e60
movq %r15, %rbp
cmpb $0xa, (%r14,%rbp)
je 0x2e60
incq %rbp
cmpq %rbx, %rbp
jbe 0x2e51
movq %rbp, %r12
subq %r15, %r12
incq %rbp
cmpq %rbx, %rbp
setae %al
cmpq $0x401, %r12            # imm = 0x401
setae %cl
orb %al, %cl
jne 0x2e9c
addq %r14, %r15
leaq 0x430(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x2170
movb $0x0, 0x430(%rsp,%r12)
leaq 0x42f(%rsp), %r15
movb 0x1(%r15), %r12b
incq %r15
movsbl %r12b, %edi
callq 0x2060
testl %eax, %eax
jne 0x2ea4
cmpb $0x40, %r12b
je 0x31f5
movq %r15, %rdi
callq 0x2210
movq %rax, 0x18(%rsp)
cmpq %rbx, %rbp
ja 0x31e7
leaq 0x24a1(%rip), %rdi      # 0x5380
movq %rbp, %r15
cmpq %rbx, %rbp
ja 0x2ef9
movq %rbp, %r15
cmpb $0xa, (%r14,%r15)
je 0x2ef9
incq %r15
cmpq %rbx, %r15
jbe 0x2eea
movq %r15, %r12
subq %rbp, %r12
incq %r15
cmpq %rbx, %r15
setae %al
cmpq $0x401, %r12            # imm = 0x401
setae %cl
orb %al, %cl
jne 0x2f34
addq %r14, %rbp
movq %r13, %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x2170
leaq 0x2452(%rip), %rdi      # 0x5380
movb $0x0, 0x30(%rsp,%r12)
cmpb $0x0, 0x30(%rsp)
je 0x31e4
movq %r13, %rbp
movzbl (%rbp), %eax
cmpl $0x20, %eax
jne 0x2f50
incq %rbp
jmp 0x2f42
cmpl $0x9, %eax
jne 0x2f7a
movb 0x1(%rbp), %al
movb $0x1, %cl
cmpb $0x40, %al
je 0x2f8b
movq $-0x1, %rcx
cmpq $0x10, %rcx
je 0x2f7f
leaq 0x1(%rcx), %rdx
cmpb %al, 0x2(%rcx,%rdi)
movq %rdx, %rcx
jne 0x2f65
jmp 0x2f84
xorl %r12d, %r12d
jmp 0x2fa2
movl $0x11, %edx
cmpq $0x11, %rdx
setb %cl
movzbl %al, %r12d
testb %cl, %cl
movl $0x0, %eax
cmovel %eax, %r12d
movzbl %cl, %eax
leaq (%rbp,%rax,2), %rbp
movzbl %r12b, %eax
cmpb $0x60, %al
je 0x2fb3
cmpl $0x24, %eax
jne 0x31d6
movb (%rbp), %cl
cmpb $0x40, %cl
je 0x2fe2
movq $-0x1, %rdx
cmpq $0x10, %rdx
je 0x2fd7
leaq 0x1(%rdx), %rsi
cmpb %cl, 0x2(%rdx,%rdi)
movq %rsi, %rdx
jne 0x2fc2
jmp 0x2fdc
movl $0x11, %esi
cmpq $0x10, %rsi
ja 0x2fec
cmpb $0x0, 0x1(%rbp)
je 0x31d6
cmpb $0x24, %r12b
je 0x30b1
cmpl $0x60, %eax
jne 0x3179
movq (%rsp), %rax
movq 0x60(%rax), %rax
testq %rax, %rax
je 0x31d6
movq %rax, 0x28(%rsp)
movl $0x78, %edi
callq 0x21b0
movq %rax, %r13
leaq 0x4d37(%rip), %rax      # 0x7d60
movq %rax, (%r13)
leaq 0x8(%r13), %rax
movq %rax, 0x10(%rsp)
leaq 0x18(%r13), %rax
movq %rax, 0x8(%r13)
movq %rbp, %rdi
callq 0x20e0
leaq (%rax,%rbp), %rdx
movq 0x10(%rsp), %rdi
movq %rbp, %rsi
callq 0x43a4
movb %r12b, 0x28(%r13)
movq 0x18(%rsp), %rax
movq %rax, 0x30(%r13)
movq (%rsp), %rax
movq %rax, 0x38(%r13)
movq %r13, %rax
addq $0x70, %rax
movq %rax, 0x40(%r13)
movq $0x1, 0x48(%r13)
xorps %xmm0, %xmm0
movups %xmm0, 0x50(%r13)
movl $0x3f800000, 0x60(%r13) # imm = 0x3F800000
movups %xmm0, 0x68(%r13)
leaq 0x4c85(%rip), %rax      # 0x7d20
movq %rax, (%r13)
movq 0x28(%rsp), %rdi
movq %r13, %rsi
callq 0x4434
jmp 0x316d
movl $0xb0, %edi
callq 0x21b0
movq %rax, %r13
leaq 0x4c9b(%rip), %rax      # 0x7d60
movq %rax, (%r13)
leaq 0x8(%r13), %rax
movq %rax, 0x10(%rsp)
leaq 0x18(%r13), %rax
movq %rax, 0x8(%r13)
movq %rbp, %rdi
callq 0x20e0
leaq (%rax,%rbp), %rdx
movq 0x10(%rsp), %rdi
movq %rbp, %rsi
callq 0x43a4
movb %r12b, 0x28(%r13)
movq 0x18(%rsp), %rax
movq %rax, 0x30(%r13)
movq (%rsp), %rdi
movq %rdi, 0x38(%r13)
leaq 0x70(%r13), %rax
movq %rax, 0x40(%r13)
movl $0x1, %ecx
movq %rcx, 0x48(%r13)
xorps %xmm0, %xmm0
movups %xmm0, 0x50(%r13)
movl $0x3f800000, %edx       # imm = 0x3F800000
movl %edx, 0x60(%r13)
movups %xmm0, 0x68(%r13)
leaq 0x4c42(%rip), %rax      # 0x7d78
movq %rax, (%r13)
movq %r13, %rax
addq $0xa8, %rax
movq %rax, 0x78(%r13)
movq %rcx, 0x80(%r13)
movups %xmm0, 0x88(%r13)
movl %edx, 0x98(%r13)
movups %xmm0, 0xa0(%r13)
movq %r13, %rsi
callq 0x44e0
leaq 0x30(%rsp), %r13
leaq 0x2207(%rip), %rdi      # 0x5380
cmpb $0x0, (%rbp)
je 0x31d6
movq %r15, %rbp
cmpq %rbx, %r15
ja 0x3199
movq %r15, %rbp
cmpb $0xa, (%r14,%rbp)
je 0x3199
incq %rbp
cmpq %rbx, %rbp
jbe 0x318a
movq %rbp, %r12
subq %r15, %r12
incq %rbp
cmpq %rbx, %rbp
setae %al
cmpq $0x401, %r12            # imm = 0x401
setae %cl
orb %al, %cl
jne 0x31d9
addq %r14, %r15
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x2170
leaq 0x21b2(%rip), %rdi      # 0x5380
movb $0x0, 0x30(%rsp,%r12)
jmp 0x31d9
movq %r15, %rbp
cmpq %rbx, %rbp
jbe 0x2edf
jmp 0x31e7
movq %r15, %rbp
movq %rbp, %r15
cmpq %rbx, %rbp
jbe 0x2e49
jmp 0x3205
leaq 0x430(%rsp), %rdi
callq 0x20e0
subq %rax, %rbp
leaq 0x40(%rsp), %r12
movq %r12, 0x30(%rsp)
movq (%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0x3b82
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %r15
cmpq %r12, %rdi
je 0x3241
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21c0
testq %r15, %r15
je 0x3265
movq 0x8(%rsp), %r15
movq %r15, %rdi
movq (%rsp), %r12
movq %r12, %rsi
callq 0x3b58
movl 0x40(%r12), %eax
addl %eax, 0x58(%r15)
jmp 0x329a
movq (%rsp), %r15
movq %r15, %rdi
addq $0x28, %rdi
callq 0x49cc
movq (%r15), %rdi
movq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x328d
movq (%rax), %rsi
incq %rsi
callq 0x21c0
movl $0x68, %esi
movq %r15, %rdi
callq 0x21c0
cmpq %rbx, %rbp
ja 0x32ae
movq 0x8(%rsp), %rax
cmpq 0x10(%rax), %rbp
jbe 0x2d02
addq $0xc38, %rsp            # imm = 0xC38
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movl $0x68, %esi
movq %r12, %rdi
jmp 0x32e2
movq %rax, %rbx
movl $0x78, %esi
jmp 0x32df
movq %rax, %rbx
movl $0xb0, %esi
movq %r13, %rdi
callq 0x21c0
movq %rbx, %rdi
callq 0x22f0
nop