// File: /workspace/github_c_makefile_star2_O0/morozov312[P]documentary/./src/processing.c
// Function: Create_struct_of_data
comment* Create_struct_of_data(
        int qty_lines, char** document_data, int* qty_structs, int* start_flag)
{
    comment* comments_array = (comment*)calloc(qty_lines, sizeof(comment));
    *qty_structs = 0;
    for (int i = 0; i < qty_lines - 1; i++) {
        //=========================================================================
        char* current_s = document_data[i];
        char* next_s = document_data[i + 1];
        int multiline_begin_flag = Check_multiline_comment_begin(current_s);
        int multiline_end_flag = Check_multiline_comment_end(current_s);
        int multiline_doc_flag = Check_multiline_documentary_comment(current_s);
        int singleline_doc_flag = Check_single_documentary_comment(current_s);
        int code_Check_flag = Check_code(next_s);
        char* str_whithout_star = Del_multiline_comment_stars(current_s);
        char* str_whithout_doc = Del_documentary_comment_symbols(current_s);
        char* s_whithout_end = Del_multiline_comment_end(str_whithout_star);
        //========================================================================
        /// Check to begin multiline documentary comment
        if (multiline_doc_flag && !*start_flag) {
            *start_flag = 1;
            comments_array[*qty_structs].comment_data = str_whithout_doc;
            comments_array[*qty_structs].code_string = "";
            if (!multiline_end_flag) {
                *qty_structs = *qty_structs + 1;
            }
        }
        /// search lines between end and begin multiline doucumentary comment
        if (*start_flag && !multiline_end_flag && !multiline_begin_flag) {
            comments_array[*qty_structs].comment_data = str_whithout_star;
            comments_array[*qty_structs].code_string = "";
            *qty_structs = *qty_structs + 1;
        }
        /// Checking at the end of the documentary comment
        if (multiline_end_flag) {
            /// in case if multiline comment writing in one-line
            if (multiline_begin_flag) {
                char* no_symb = Del_documentary_comment_symbols(s_whithout_end);
                comments_array[*qty_structs].comment_data = no_symb;
            } else {
                comments_array[*qty_structs].comment_data = s_whithout_end;
            }
            //=============================================================
            if (code_Check_flag) {
                comments_array[*qty_structs].code_string = next_s;
            } else {
                comments_array[*qty_structs].code_string = "";
            }
            *qty_structs = *qty_structs + 1;
            *start_flag = 0;
        }
        /// search singleline comment if there wasn't start of multiline comment
        if (singleline_doc_flag && !*start_flag) {
            comments_array[*qty_structs].comment_data = str_whithout_doc;
            if (code_Check_flag) {
                comments_array[*qty_structs].code_string = next_s;
            } else {
                comments_array[*qty_structs].code_string = "";
            }
            *qty_structs = *qty_structs + 1;
        }
    }
    return comments_array;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movslq -0x4(%rbp), %rdi
movl $0x10, %esi
callq 0x2180
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movl $0x0, (%rax)
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x5a25
movq -0x10(%rbp), %rax
movslq -0x2c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movl -0x2c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rdi
callq 0x4e50
movl %eax, -0x44(%rbp)
movq -0x38(%rbp), %rdi
callq 0x4ed0
movl %eax, -0x48(%rbp)
movq -0x38(%rbp), %rdi
callq 0x5240
movl %eax, -0x4c(%rbp)
movq -0x38(%rbp), %rdi
callq 0x51d0
movl %eax, -0x50(%rbp)
movq -0x40(%rbp), %rdi
callq 0x5700
movl %eax, -0x54(%rbp)
movq -0x38(%rbp), %rdi
callq 0x50a0
movq %rax, -0x60(%rbp)
movq -0x38(%rbp), %rdi
callq 0x4f50
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rdi
callq 0x5020
movq %rax, -0x70(%rbp)
cmpl $0x0, -0x4c(%rbp)
je 0x589c
movq -0x20(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x589c
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x68(%rbp), %rcx
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rdx
movslq (%rdx), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
leaq 0x12bc(%rip), %rcx      # 0x6b3d
movq %rcx, 0x8(%rax)
cmpl $0x0, -0x48(%rbp)
jne 0x589a
movq -0x18(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
jmp 0x589c
movq -0x20(%rbp), %rax
cmpl $0x0, (%rax)
je 0x58f6
cmpl $0x0, -0x48(%rbp)
jne 0x58f6
cmpl $0x0, -0x44(%rbp)
jne 0x58f6
movq -0x60(%rbp), %rcx
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rdx
movslq (%rdx), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
leaq 0x125a(%rip), %rcx      # 0x6b3d
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
cmpl $0x0, -0x48(%rbp)
je 0x599f
cmpl $0x0, -0x44(%rbp)
je 0x592e
movq -0x70(%rbp), %rdi
callq 0x4f50
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rcx
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rdx
movslq (%rdx), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
jmp 0x5947
movq -0x70(%rbp), %rcx
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rdx
movslq (%rdx), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
cmpl $0x0, -0x54(%rbp)
je 0x5969
movq -0x40(%rbp), %rcx
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rdx
movslq (%rdx), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
jmp 0x5986
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
leaq 0x11bb(%rip), %rcx      # 0x6b3d
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
cmpl $0x0, -0x50(%rbp)
je 0x5a15
movq -0x20(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x5a15
movq -0x68(%rbp), %rcx
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rdx
movslq (%rdx), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
cmpl $0x0, -0x54(%rbp)
je 0x59e9
movq -0x40(%rbp), %rcx
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rdx
movslq (%rdx), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
jmp 0x5a06
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
leaq 0x113b(%rip), %rcx      # 0x6b3d
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
jmp 0x5a17
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x579d
movq -0x28(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)