// File: /workspace/github_c_makefile_star2_O3/mohuangrui[P]ArtraCFD/fluid_dynamics.c
// Function: EvolveFluidDynamics
void EvolveFluidDynamics(const Real dt, Space *space, const Model *model)
{
    if (0 != model->sState) {
        DiscretizeTime(0.5 * dt, PHI, space, model);
    }
    switch (model->multidim) {
        case OPTSPLIT:
            switch (space->part.collapse) {
                case COLLAPSEN:
                    DiscretizeTime(0.5 * dt, Z, space, model);
                    DiscretizeTime(0.5 * dt, Y, space, model);
                    DiscretizeTime(0.5 * dt, X, space, model);
                    DiscretizeTime(0.5 * dt, X, space, model);
                    DiscretizeTime(0.5 * dt, Y, space, model);
                    DiscretizeTime(0.5 * dt, Z, space, model);
                    break;
                case COLLAPSEX:
                    DiscretizeTime(0.5 * dt, Z, space, model);
                    DiscretizeTime(0.5 * dt, Y, space, model);
                    DiscretizeTime(0.5 * dt, Y, space, model);
                    DiscretizeTime(0.5 * dt, Z, space, model);
                    break;
                case COLLAPSEY:
                    DiscretizeTime(0.5 * dt, Z, space, model);
                    DiscretizeTime(0.5 * dt, X, space, model);
                    DiscretizeTime(0.5 * dt, X, space, model);
                    DiscretizeTime(0.5 * dt, Z, space, model);
                    break;
                case COLLAPSEZ:
                    DiscretizeTime(0.5 * dt, Y, space, model);
                    DiscretizeTime(0.5 * dt, X, space, model);
                    DiscretizeTime(0.5 * dt, X, space, model);
                    DiscretizeTime(0.5 * dt, Y, space, model);
                    break;
                case COLLAPSEXY:
                    DiscretizeTime(0.5 * dt, Z, space, model);
                    DiscretizeTime(0.5 * dt, Z, space, model);
                    break;
                case COLLAPSEXZ:
                    DiscretizeTime(0.5 * dt, Y, space, model);
                    DiscretizeTime(0.5 * dt, Y, space, model);
                    break;
                case COLLAPSEYZ:
                    DiscretizeTime(0.5 * dt, X, space, model);
                    DiscretizeTime(0.5 * dt, X, space, model);
                    break;
                default:
                    break;
            }
            break;
        case OPTBYOPT:
            DiscretizeTime(0.5 * dt, DIMS, space, model);
            DiscretizeTime(0.5 * dt, DIMS, space, model);
            break;
        default:
            break;
    }
    if (0 != model->sState) {
        DiscretizeTime(0.5 * dt, PHI, space, model);
    }
    return;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movapd %xmm0, %xmm1
cmpl $0x0, 0x2c(%rsi)
movsd %xmm0, 0x8(%rsp)
je 0x10811
movsd 0xbdd1(%rip), %xmm0     # 0x1c5c0
mulsd %xmm1, %xmm0
movslq (%rbx), %rax
leaq 0x135c3(%rip), %rcx     # 0x23dc0
movl $0x4, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%rcx,%rax,8)
movsd 0x8(%rsp), %xmm1
movl 0x10(%rbx), %eax
cmpl $0x1, %eax
je 0x108a9
testl %eax, %eax
jne 0x10a8e
movl 0x50(%r14), %eax
cmpq $0x8, %rax
ja 0x10a8e
leaq 0xd8e6(%rip), %rcx      # 0x1e120
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0xbd75(%rip), %xmm0     # 0x1c5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x13560(%rip), %r15     # 0x23dc0
movl $0x2, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
movl $0x1, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
xorl %edi, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
xorl %edi, %edi
jmp 0x10945
movsd 0xbd0f(%rip), %xmm0     # 0x1c5c0
mulsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x134fc(%rip), %r15     # 0x23dc0
movl $0x3, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
movl $0x3, %edi
jmp 0x10a84
movsd 0xbcd3(%rip), %xmm0     # 0x1c5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x134be(%rip), %r15     # 0x23dc0
movl $0x1, %edi
jmp 0x10a32
movsd 0xbcac(%rip), %xmm0     # 0x1c5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x13497(%rip), %r15     # 0x23dc0
movl $0x2, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
movl $0x1, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
movl $0x1, %edi
jmp 0x10a6d
movsd 0xbc57(%rip), %xmm0     # 0x1c5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x13442(%rip), %r15     # 0x23dc0
xorl %edi, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
xorl %edi, %edi
jmp 0x10a84
movsd 0xbc1f(%rip), %xmm0     # 0x1c5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x1340a(%rip), %r15     # 0x23dc0
movl $0x2, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
xorl %edi, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
xorl %edi, %edi
jmp 0x10a6d
movsd 0xbbd0(%rip), %xmm0     # 0x1c5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x133bb(%rip), %r15     # 0x23dc0
movl $0x1, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
xorl %edi, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
xorl %edi, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
movl $0x1, %edi
jmp 0x10a84
movsd 0xbb6d(%rip), %xmm0     # 0x1c5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x13358(%rip), %r15     # 0x23dc0
movl $0x2, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
movl $0x2, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
cmpl $0x0, 0x2c(%rbx)
je 0x10ac3
movsd 0x8(%rsp), %xmm0
mulsd 0xbb1e(%rip), %xmm0     # 0x1c5c0
movslq (%rbx), %rax
leaq 0x13314(%rip), %rcx     # 0x23dc0
movl $0x4, %edi
movq %r14, %rsi
movq %rbx, %rdx
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
jmpq *(%rcx,%rax,8)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq