// File: mouda[P]LTE_random_access-simulate/ap.cpp
// Function: alglib::str_matrix_create(char const*, std::vector<std::vector<char const*, std::allocator<char const*>>, std::allocator<std::vector<char const*, std::allocator<char const*>>>>*)
void alglib::str_matrix_create(const char *src, std::vector< std::vector<const char*> > *p_mat)
{
    p_mat->clear();
    
    //
    // Try to handle "[[]]" string
    //
    if( strcmp(src, "[[]]")==0 )
        return;

    //
    // Parse non-empty string
    //
    if( *src!='[' )
        throw alglib::ap_error("Incorrect initializer for matrix");
    src++;
    for(;;)
    {
        p_mat->push_back(std::vector<const char*>());
        str_vector_create(src, false, &p_mat->back());
        if( p_mat->back().size()==0 || p_mat->back().size()!=(*p_mat)[0].size() )
            throw alglib::ap_error("Incorrect initializer for matrix");
        src = strchr(src, ']');
        if( src==NULL )
            throw alglib::ap_error("Incorrect initializer for matrix");
        src++;
        if( *src==',' )
        {
            src++;
            continue;
        }
        if( *src==']' )
            break;
        throw alglib::ap_error("Incorrect initializer for matrix");
    }
    src++;
    if( *src!=0 )
        throw alglib::ap_error("Incorrect initializer for matrix");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x532f0
movq -0x8(%rbp), %rdi
leaq 0xdee5(%rip), %rsi      # 0x5849c
callq 0x3400
cmpl $0x0, %eax
jne 0x4a5c6
jmp 0x4a8aa
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5b, %eax
je 0x4a625
movl $0x20, %edi
callq 0x3130
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x48(%rbp)
leaq 0xded9(%rip), %rsi      # 0x584c6
callq 0x42660
jmp 0x4a5f4
movq -0x48(%rbp), %rdi
leaq 0x1a579(%rip), %rsi     # 0x64b78
leaq -0x2ce56(%rip), %rdx    # 0x1d7b0
callq 0x3490
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x31e0
jmp 0x4a8b3
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x58(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x40(%rbp)
movq $0x0, -0x30(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0x530a0
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x53310
jmp 0x4a664
leaq -0x40(%rbp), %rdi
callq 0x53100
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rdi
callq 0x53340
movq -0x60(%rbp), %rdi
movq %rax, %rdx
xorl %esi, %esi
callq 0x477e0
movq -0x10(%rbp), %rdi
callq 0x53340
movq %rax, %rdi
callq 0x530c0
cmpq $0x0, %rax
je 0x4a6d9
movq -0x10(%rbp), %rdi
callq 0x53340
movq %rax, %rdi
callq 0x530c0
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x531b0
movq %rax, %rdi
callq 0x530c0
movq %rax, %rcx
movq -0x68(%rbp), %rax
cmpq %rcx, %rax
je 0x4a746
movl $0x20, %edi
callq 0x3130
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x70(%rbp)
leaq 0xddd2(%rip), %rsi      # 0x584c6
callq 0x42660
jmp 0x4a6fb
movq -0x70(%rbp), %rdi
leaq 0x1a472(%rip), %rsi     # 0x64b78
leaq -0x2cf5d(%rip), %rdx    # 0x1d7b0
callq 0x3490
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x53100
jmp 0x4a8b3
movq -0x70(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x31e0
jmp 0x4a8b3
movq -0x8(%rbp), %rdi
movl $0x5d, %esi
callq 0x30e0
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x4a7b2
movl $0x20, %edi
callq 0x3130
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x78(%rbp)
leaq 0xdd4c(%rip), %rsi      # 0x584c6
callq 0x42660
jmp 0x4a781
movq -0x78(%rbp), %rdi
leaq 0x1a3ec(%rip), %rsi     # 0x64b78
leaq -0x2cfe3(%rip), %rdx    # 0x1d7b0
callq 0x3490
movq -0x78(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x31e0
jmp 0x4a8b3
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x4a7db
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0x4a631
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
jne 0x4a7e9
jmp 0x4a839
movl $0x20, %edi
callq 0x3130
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x80(%rbp)
leaq 0xdcc2(%rip), %rsi      # 0x584c6
callq 0x42660
jmp 0x4a80b
movq -0x80(%rbp), %rdi
leaq 0x1a362(%rip), %rsi     # 0x64b78
leaq -0x2d06d(%rip), %rdx    # 0x1d7b0
callq 0x3490
movq -0x80(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x31e0
jmp 0x4a8b3
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x4a8aa
movl $0x20, %edi
callq 0x3130
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x88(%rbp)
leaq 0xdc57(%rip), %rsi      # 0x584c6
callq 0x42660
jmp 0x4a876
movq -0x88(%rbp), %rdi
leaq 0x1a2f4(%rip), %rsi     # 0x64b78
leaq -0x2d0db(%rip), %rdx    # 0x1d7b0
callq 0x3490
movq -0x88(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x31e0
jmp 0x4a8b3
addq $0x90, %rsp
popq %rbp
retq
movq -0x18(%rbp), %rdi
callq 0x34c0
nopl (%rax)