// File: 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
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x1bf50
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x194cb
jmp 0x194ea
leaq 0x4b2fc(%rip), %rdi     # 0x647ce
leaq 0x4b168(%rip), %rsi     # 0x64641
movl $0x3a6, %edx            # imm = 0x3A6
leaq 0x4b380(%rip), %rcx     # 0x64865
callq 0x7450
movq -0xe0(%rbp), %rdi
addq $0x68, %rdi
callq 0x1b9c0
testb $0x1, %al
jne 0x19500
jmp 0x19502
jmp 0x19521
leaq 0x4b381(%rip), %rdi     # 0x6488a
leaq 0x4b131(%rip), %rsi     # 0x64641
movl $0x3a8, %edx            # imm = 0x3A8
leaq 0x4b349(%rip), %rcx     # 0x64865
callq 0x7450
movq -0xe0(%rbp), %rdi
movl $0x0, -0xc(%rbp)
addq $0x8, %rdi
callq 0x8c90
movq %rax, -0x18(%rbp)
movq -0xe0(%rbp), %rdi
addq $0x8, %rdi
callq 0x8cc0
movq %rax, -0x20(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x8cf0
testb $0x1, %al
jne 0x19563
jmp 0x19594
leaq -0x18(%rbp), %rdi
callq 0x8d30
movq (%rax), %rdi
callq 0x8eb0
movl %eax, -0x24(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x1cf30
movl (%rax), %eax
movl %eax, -0xc(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x8d70
jmp 0x1953c
movl $0x0, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x1970b
leaq -0x58(%rbp), %rdi
callq 0x1cf70
movq -0xe0(%rbp), %rdi
addq $0x8, %rdi
callq 0x8c90
movq %rax, -0x60(%rbp)
movq -0xe0(%rbp), %rdi
addq $0x8, %rdi
callq 0x8cc0
movq %rax, -0x68(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x8cf0
testb $0x1, %al
jne 0x195ee
jmp 0x196de
movl -0x28(%rbp), %eax
movl %eax, -0xe8(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x8d30
movq (%rax), %rdi
callq 0x8eb0
movl %eax, -0xe4(%rbp)
jmp 0x19610
movl -0xe8(%rbp), %eax
movl -0xe4(%rbp), %ecx
cmpl %ecx, %eax
jge 0x196ce
leaq -0x60(%rbp), %rdi
callq 0x8d30
movq %rax, %rdi
leaq -0x28(%rbp), %rsi
callq 0x1ca40
movl %edx, -0xf4(%rbp)
movq %rax, -0xf0(%rbp)
jmp 0x19648
movl -0xf4(%rbp), %eax
movq -0xf0(%rbp), %rcx
movq %rcx, -0x98(%rbp)
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %eax
movl %eax, -0x80(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x1cf90
movb %dl, -0x101(%rbp)
movq %rax, -0x100(%rbp)
jmp 0x19698
movb -0x101(%rbp), %al
movq -0x100(%rbp), %rcx
movq %rcx, -0xa8(%rbp)
movb %al, -0xa0(%rbp)
jmp 0x196ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x1d020
jmp 0x19822
jmp 0x196d0
leaq -0x60(%rbp), %rdi
callq 0x8d70
jmp 0x195c4
movq -0xe0(%rbp), %rdi
addq $0x68, %rdi
leaq -0x58(%rbp), %rsi
callq 0x1cfe0
jmp 0x196f4
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x1d020
jmp 0x1959b
movq -0xe0(%rbp), %rdi
movl $0x1, 0x108(%rdi)
callq 0x18d80
movq -0xe0(%rbp), %rax
cmpq $0x0, 0x118(%rax)
jle 0x19819
movq -0xe0(%rbp), %rdi
movq 0x118(%rdi), %rax
movq %rax, -0x110(%rbp)
addq $0xd0, %rdi
callq 0x1c0b0
movq %rax, %rcx
movq -0x110(%rbp), %rax
cmpq %rcx, %rax
jge 0x19819
movq -0xe0(%rbp), %rdi
movq %rdi, %rax
addq $0xd0, %rax
movq %rax, -0x118(%rbp)
addq $0xd0, %rdi
callq 0x1c180
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movq %rcx, -0xc0(%rbp)
movq 0x118(%rax), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x1ceb0
movq %rax, -0xb8(%rbp)
leaq -0xb0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x1cef0
movq -0xe0(%rbp), %rdi
addq $0xd0, %rdi
callq 0x1c1f0
movq %rax, -0xd0(%rbp)
leaq -0xc8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x1cef0
movq -0x118(%rbp), %rdi
movq -0xb0(%rbp), %rsi
movq -0xc8(%rbp), %rdx
callq 0x1ce20
movq %rax, -0xd8(%rbp)
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x79d0
nopl (%rax,%rax)