// File: /workspace/github_cpp_makefile_star2_O2/WShabti-Team[P]WShabtiPict/wshabtilib/api/model.cpp
// Function: pictcore::Model::generateFlat()
void Model::generateFlat()
{
    // no support for result rows in this generation mode
    assert( 0 == GetResultParameterCount() );
    // no user-defined seeds allowed in this generation mode
    assert( m_rowSeeds.empty() );

    // seeds will ensure values in test cases proceed in the same order as in parameter definitions

    int maxValues = 0;
    for( vector<Parameter*>::iterator ip = m_parameters.begin(); ip != m_parameters.end(); ++ip )
    {
        maxValues = max( maxValues, static_cast<int>( ( *ip )->GetValueCount() ) );
    }

    int curVal = 0;
    while( curVal < maxValues )
    {
        RowSeed seed;

        for( vector<Parameter*>::iterator ip = m_parameters.begin(); ip != m_parameters.end(); ++ip )
        {
            if( curVal < ( *ip )->GetValueCount() )
            {
                seed.insert( make_pair( *ip, curVal ) );
            }
        }

        m_rowSeeds.push_back( seed );
        ++curVal;
    };

    // order is always 1 across all params
    m_order = 1;
    generateFixedOrder();

    // trim the output if necessary
    if( m_maxRows > 0 && m_maxRows < static_cast<long>( m_results.size() ) )
    {
        m_results.erase( m_results.begin() + m_maxRows, m_results.end() );
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
callq 0xc4cc
testq %rax, %rax
jne 0xb773
leaq 0x68(%rbx), %rax
movq %rax, (%rsp)
cmpq %rax, 0x68(%rbx)
jne 0xb792
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
xorl %ebp, %ebp
cmpq %rcx, %rax
je 0xb68b
movq (%rax), %rdx
movl 0x38(%rdx), %edx
cmpl %edx, %ebp
cmovlel %edx, %ebp
addq $0x8, %rax
jmp 0xb675
xorl %r14d, %r14d
testl %ebp, %ebp
cmovlel %r14d, %ebp
leaq 0x18(%rsp), %r15
leaq 0x8(%rsp), %r12
cmpl %ebp, %r14d
je 0xb70b
andl $0x0, 0x20(%rsp)
andq $0x0, 0x28(%rsp)
leaq 0x20(%rsp), %rax
movq %rax, 0x30(%rsp)
movq %rax, 0x38(%rsp)
andq $0x0, 0x40(%rsp)
movq 0x8(%rbx), %r13
cmpq 0x10(%rbx), %r13
je 0xb6f2
movq (%r13), %rax
cmpl 0x38(%rax), %r14d
jge 0xb6ec
movq %rax, 0x8(%rsp)
movl %r14d, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0xf598
addq $0x8, %r13
jmp 0xb6c7
movq (%rsp), %rdi
movq %r15, %rsi
callq 0xc626
incl %r14d
movq %r15, %rdi
callq 0xd164
jmp 0xb69e
movl $0x1, 0x108(%rbx)
movq %rbx, %rdi
callq 0xb2d0
movq 0x118(%rbx), %rdi
testq %rdi, %rdi
jle 0xb764
movq 0xd0(%rbx), %rsi
movq 0xd8(%rbx), %rcx
movq %rcx, %rax
subq %rsi, %rax
pushq $0x18
popq %r8
cqto
idivq %r8
cmpq %rax, %rdi
jge 0xb764
addq $0xd0, %rbx
imulq $0x18, %rdi, %rax
addq %rax, %rsi
movq %rbx, %rdi
movq %rcx, %rdx
callq 0xc620
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x17048(%rip), %rdi     # 0x227c2
leaq 0x16eb4(%rip), %rsi     # 0x22635
leaq 0x170d1(%rip), %rcx     # 0x22859
movl $0x3a6, %edx            # imm = 0x3A6
callq 0x6310
leaq 0x170e5(%rip), %rdi     # 0x2287e
leaq 0x16e95(%rip), %rsi     # 0x22635
leaq 0x170b2(%rip), %rcx     # 0x22859
movl $0x3a8, %edx            # imm = 0x3A8
callq 0x6310
jmp 0xb7b3
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0xd164
movq %rbx, %rdi
callq 0x66e0