// File: /workspace/github_c_makefile_star2_O1/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 0x10b85
movsd 0xca5d(%rip), %xmm0     # 0x1d5c0
mulsd %xmm1, %xmm0
movslq (%rbx), %rax
leaq 0x1424f(%rip), %rcx     # 0x24dc0
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 0x10c1d
testl %eax, %eax
jne 0x10e02
movl 0x50(%r14), %eax
cmpq $0x8, %rax
ja 0x10e02
leaq 0xe4e2(%rip), %rcx      # 0x1f090
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0xca01(%rip), %xmm0     # 0x1d5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x141ec(%rip), %r15     # 0x24dc0
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 0x10cb9
movsd 0xc99b(%rip), %xmm0     # 0x1d5c0
mulsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x14188(%rip), %r15     # 0x24dc0
movl $0x3, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
movl $0x3, %edi
jmp 0x10df8
movsd 0xc95f(%rip), %xmm0     # 0x1d5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x1414a(%rip), %r15     # 0x24dc0
movl $0x1, %edi
jmp 0x10da6
movsd 0xc938(%rip), %xmm0     # 0x1d5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x14123(%rip), %r15     # 0x24dc0
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 0x10de1
movsd 0xc8e3(%rip), %xmm0     # 0x1d5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x140ce(%rip), %r15     # 0x24dc0
xorl %edi, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq *(%r15,%rax,8)
movslq (%rbx), %rax
movsd (%rsp), %xmm0
xorl %edi, %edi
jmp 0x10df8
movsd 0xc8ab(%rip), %xmm0     # 0x1d5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x14096(%rip), %r15     # 0x24dc0
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 0x10de1
movsd 0xc85c(%rip), %xmm0     # 0x1d5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x14047(%rip), %r15     # 0x24dc0
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 0x10df8
movsd 0xc7f9(%rip), %xmm0     # 0x1d5c0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rsp)
movslq (%rbx), %rax
leaq 0x13fe4(%rip), %r15     # 0x24dc0
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 0x10e37
movsd 0x8(%rsp), %xmm0
mulsd 0xc7aa(%rip), %xmm0     # 0x1d5c0
movslq (%rbx), %rax
leaq 0x13fa0(%rip), %rcx     # 0x24dc0
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