// File: /workspace/github_cpp_makefile_star2_O1/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
movq 0x8(%rdi), %rax
movq 0x10(%rdi), %rcx
cmpq %rcx, %rax
je 0xaf7f
xorl %edx, %edx
movq %rax, %rsi
movq (%rsi), %rdi
movzbl 0x3c(%rdi), %edi
addq %rdi, %rdx
addq $0x8, %rsi
cmpq %rcx, %rsi
jne 0xaf63
testq %rdx, %rdx
jne 0xb0e2
leaq 0x68(%rbx), %r14
cmpq %r14, 0x68(%rbx)
jne 0xb0c3
movq 0x10(%rbx), %rcx
cmpq %rcx, %rax
je 0xafb0
xorl %edx, %edx
movq (%rax), %rsi
movl 0x38(%rsi), %ebp
cmpl %ebp, %edx
cmovgl %edx, %ebp
addq $0x8, %rax
movl %ebp, %edx
cmpq %rcx, %rax
jne 0xaf98
jmp 0xafb2
xorl %ebp, %ebp
testl %ebp, %ebp
jle 0xb051
leaq 0x18(%rsp), %r15
leaq 0x8(%rsp), %r12
xorl %r13d, %r13d
movq %r14, (%rsp)
movl $0x0, 0x20(%rsp)
xorl %eax, %eax
movq %rax, 0x28(%rsp)
leaq 0x20(%rsp), %rcx
movq %rcx, 0x30(%rsp)
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
movq 0x8(%rbx), %r14
cmpq 0x10(%rbx), %r14
je 0xb01f
movq (%r14), %rax
cmpl 0x38(%rax), %r13d
jge 0xb019
movq (%r14), %rax
movq %rax, 0x8(%rsp)
movl %r13d, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0xeb74
addq $0x8, %r14
jmp 0xaff2
movq (%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0xd4c6
movq %rax, %rdi
movq %r14, %rsi
callq 0x5080
incq 0x78(%rbx)
incl %r13d
movq %r15, %rdi
callq 0xcc1c
cmpl %ebp, %r13d
jne 0xafcb
movl $0x1, 0x108(%rbx)
movq %rbx, %rdi
callq 0xab42
movq 0x118(%rbx), %rax
testq %rax, %rax
jle 0xb0b4
movq 0xd0(%rbx), %rcx
movq 0xd8(%rbx), %rdx
subq %rcx, %rdx
movq %rdx, %rsi
sarq $0x3, %rsi
movabsq $-0x5555555555555555, %rdi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdi
cmpq %rdi, %rax
jge 0xb0b4
addq $0xd0, %rbx
leaq (%rax,%rax,2), %rax
leaq (%rcx,%rax,8), %rsi
addq %rcx, %rdx
movq %rbx, %rdi
callq 0xea66
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1b7bc(%rip), %rdi     # 0x26886
leaq 0x1b56c(%rip), %rsi     # 0x2663d
leaq 0x1b789(%rip), %rcx     # 0x26861
movl $0x3a8, %edx            # imm = 0x3A8
callq 0x52c0
leaq 0x1b6e1(%rip), %rdi     # 0x267ca
leaq 0x1b54d(%rip), %rsi     # 0x2663d
leaq 0x1b76a(%rip), %rcx     # 0x26861
movl $0x3a6, %edx            # imm = 0x3A6
callq 0x52c0
jmp 0xb103
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0xcc1c
movq %rbx, %rdi
callq 0x56a0