// File: /workspace/github_c_makefile_star2_O2/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 %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movapd %xmm0, %xmm1
cmpl $0x0, 0x2c(%rsi)
movsd %xmm0, 0x8(%rsp)
je 0xfbc6
movsd 0xb90a(%rip), %xmm0     # 0x1b4b0
mulsd %xmm1, %xmm0
movslq (%rbx), %rax
leaq 0x1420c(%rip), %rcx     # 0x23dc0
pushq $0x4
popq %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%rcx,%rax,8)
movsd 0x8(%rsp), %xmm1
movl 0x10(%rbx), %eax
cmpl $0x1, %eax
je 0xfc60
testl %eax, %eax
jne 0xfc9e
movl 0x50(%r14), %eax
cmpq $0x8, %rax
ja 0xfc9e
leaq 0xd411(%rip), %rcx      # 0x1d000
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0xb8b0(%rip), %xmm0     # 0x1b4b0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x141ab(%rip), %r12     # 0x23dc0
pushq $0x2
popq %rbp
movl %ebp, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r12,%rax,8)
movslq (%rbx), %rax
pushq $0x1
popq %r15
movsd (%rsp), %xmm0
movl %r15d, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r12,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
xorl %edi, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r12,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
xorl %edi, %edi
jmp 0xfd40
movsd 0xb848(%rip), %xmm0     # 0x1b4b0
mulsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x14145(%rip), %r15     # 0x23dc0
pushq $0x3
popq %rbp
movl %ebp, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
movl %ebp, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
cmpl $0x0, 0x2c(%rbx)
je 0xfcd4
movsd 0x8(%rsp), %xmm0
mulsd 0xb7fe(%rip), %xmm0     # 0x1b4b0
movslq (%rbx), %rax
leaq 0x14104(%rip), %rcx     # 0x23dc0
pushq $0x4
popq %rdi
movq %r14, %rsi
movq %rbx, %rdx
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *(%rcx,%rax,8)
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movsd 0xb7c7(%rip), %xmm0     # 0x1b4b0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x140c2(%rip), %r15     # 0x23dc0
pushq $0x1
jmp 0xfc7d
movsd 0xb7a3(%rip), %xmm0     # 0x1b4b0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x1409e(%rip), %r12     # 0x23dc0
pushq $0x2
popq %rbp
movl %ebp, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r12,%rax,8)
movslq (%rbx), %rax
pushq $0x1
popq %r15
movsd (%rsp), %xmm0
movl %r15d, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r12,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
movl %r15d, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r12,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
movl %ebp, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r12,%rax,8)
jmp 0xfc9e
movsd 0xb730(%rip), %xmm0     # 0x1b4b0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x1402b(%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 0xfc94
movsd 0xb6f8(%rip), %xmm0     # 0x1b4b0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x13ff3(%rip), %r15     # 0x23dc0
pushq $0x2
jmp 0xfdf0
movsd 0xb6d7(%rip), %xmm0     # 0x1b4b0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x13fd2(%rip), %r15     # 0x23dc0
pushq $0x1
popq %rbp
movl %ebp, %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 0xfc80
movsd 0xb688(%rip), %xmm0     # 0x1b4b0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x13f83(%rip), %r15     # 0x23dc0
pushq $0x2
jmp 0xfc7d