// File: /workspace/github_cpp_makefile_star2_O2/FreeSlave[P]vhlt/hlbsp/qbsp.cpp
// Function: SplitFace(face_s*, plane_t const*, face_s**, face_s**)
void            SplitFace(face_t* in, const dplane_t* const split, face_t** front, face_t** back)
{
    SplitFaceTmp(in, split, front, back);

    // free the original face now that is is represented by the fragments
    if (*front && *back)
    {
        FreeFace(in);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2b8, %rsp            # imm = 0x2B8
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r12
movl 0x2c(%rdi), %eax
testl %eax, %eax
movq %rdi, 0x8(%rsp)
jns 0x12967
leaq 0xcec3(%rip), %rdi      # 0x1f81b
xorl %eax, %eax
callq 0x8b1f
movq 0x8(%rsp), %rdi
movl 0x2c(%rdi), %eax
leaq 0x3c(%rsp), %rcx
andl $0x0, (%rcx)
leaq 0x18(%rsp), %rdx
andl $0x0, (%rdx)
leaq 0x1c(%rsp), %rsi
andl $0x0, (%rsi)
xorl %r10d, %r10d
testl %eax, %eax
cmovlel %r10d, %eax
leaq 0x38(%rdi), %r8
movq %r8, 0x20(%rsp)
leaq 0x48(%rdi), %r8
movsd 0xba43(%rip), %xmm0     # 0x1e3e0
movsd 0xba5b(%rip), %xmm1     # 0x1e400
cmpq %r10, %rax
je 0x12a25
movsd -0x10(%r8), %xmm3
movsd -0x8(%r8), %xmm4
mulsd 0x8(%r12), %xmm4
mulsd (%r12), %xmm3
movsd (%r8), %xmm2
mulsd 0x10(%r12), %xmm2
addsd %xmm4, %xmm3
addsd %xmm3, %xmm2
subsd 0x30(%r12), %xmm2
movsd %xmm2, 0x130(%rsp,%r10,8)
ucomisd %xmm0, %xmm2
jbe 0x129f9
andl $0x0, 0x60(%rsp,%r10,4)
movq %rsi, %r9
jmp 0x12a19
ucomisd %xmm2, %xmm1
jbe 0x12a0d
movl $0x1, 0x60(%rsp,%r10,4)
movq %rdx, %r9
jmp 0x12a19
movl $0x2, 0x60(%rsp,%r10,4)
movq %rcx, %r9
incl (%r9)
incq %r10
addq $0x18, %r8
jmp 0x129a5
movl 0x60(%rsp), %ecx
movl %ecx, 0x60(%rsp,%rax,4)
movsd 0x130(%rsp), %xmm0
movsd %xmm0, 0x130(%rsp,%rax,8)
movl 0x1c(%rsp), %ecx
movl 0x18(%rsp), %edx
movl %ecx, %esi
orl %edx, %esi
je 0x12cda
testl %edx, %edx
setne %dl
xorl %eax, %eax
testl %ecx, %ecx
setne %sil
movl $0x0, %ecx
cmovneq %rdi, %rcx
cmoveq %rdi, %rax
andb %dl, %sil
cmpb $0x1, %sil
jne 0x12d37
callq 0x128f6
movq %rax, %rbp
movq %rbx, 0x30(%rsp)
movq %rax, (%rbx)
movq 0x8(%rsp), %rdi
callq 0x128f6
movq 0x8(%rsp), %r9
movq %rax, %r13
movq %r14, 0x28(%rsp)
movq %rax, (%r14)
leaq 0x2c(%rbp), %rbx
leaq 0x2c(%rax), %r10
movq %rax, %r14
addq $0x38, %r14
movq %rbp, %rax
addq $0x38, %rax
movq %rax, 0x10(%rsp)
movsd 0xb563(%rip), %xmm3     # 0x1e028
movsd 0xb6fb(%rip), %xmm4     # 0x1e1c8
movapd 0xb72b(%rip), %xmm5     # 0x1e200
xorl %ecx, %ecx
movq %r10, (%rsp)
movq %rcx, %r15
movslq 0x2c(%r9), %rcx
movl (%rbx), %eax
cmpq %rcx, %r15
jge 0x12d67
cmpl $0x30, %eax
jg 0x12af8
cmpl $0x31, (%r10)
jl 0x12b27
leaq 0xcd32(%rip), %rdi      # 0x1f831
xorl %eax, %eax
callq 0x8b1f
movapd 0xb6f2(%rip), %xmm5     # 0x1e200
movsd 0xb6b2(%rip), %xmm4     # 0x1e1c8
movsd 0xb50a(%rip), %xmm3     # 0x1e028
movq (%rsp), %r10
movq 0x8(%rsp), %r9
imulq $0x18, %r15, %rcx
movq 0x20(%rsp), %rdx
leaq (%rdx,%rcx), %rsi
movl 0x60(%rsp,%r15,4), %eax
movsd (%rdx,%rcx), %xmm0
movq %r10, %rcx
movq %r14, %rdx
testl %eax, %eax
je 0x12bb9
cmpl $0x2, %eax
jne 0x12bb1
movslq (%rbx), %rax
imulq $0x18, %rax, %rax
movq 0x10(%rsp), %rdx
movsd %xmm0, (%rdx,%rax)
movsd 0x8(%rsi), %xmm1
movsd %xmm1, 0x8(%rdx,%rax)
movsd 0x10(%rsi), %xmm2
movslq (%rbx), %rax
imulq $0x18, %rax, %rcx
movsd %xmm2, 0x10(%rdx,%rcx)
incl %eax
movl %eax, (%rbx)
movslq (%r10), %rax
imulq $0x18, %rax, %rax
movsd %xmm0, (%r14,%rax)
movsd %xmm1, 0x8(%r14,%rax)
movslq (%r10), %rax
imulq $0x18, %rax, %rcx
movsd %xmm2, 0x10(%r14,%rcx)
incl %eax
movl %eax, (%r10)
incq %r15
movq %r15, %rcx
jmp 0x12adb
movq %rbx, %rcx
movq 0x10(%rsp), %rdx
movslq (%rcx), %rdi
imulq $0x18, %rdi, %rdi
movsd %xmm0, (%rdx,%rdi)
movsd 0x8(%rsi), %xmm0
movsd %xmm0, 0x8(%rdx,%rdi)
movsd 0x10(%rsi), %xmm0
movslq (%rcx), %rdi
imulq $0x18, %rdi, %r8
movsd %xmm0, 0x10(%rdx,%r8)
leal 0x1(%rdi), %edx
movl %edx, (%rcx)
leaq 0x1(%r15), %rcx
movl 0x64(%rsp,%r15,4), %edx
cmpl $0x2, %edx
sete %dil
cmpl %eax, %edx
sete %al
orb %dil, %al
jne 0x12adb
movl %ecx, %eax
cltd
idivl 0x2c(%r9)
imulq $0x18, %rdx, %rax
addq 0x20(%rsp), %rax
movsd 0x130(%rsp,%r15,8), %xmm0
movapd %xmm0, %xmm1
subsd 0x138(%rsp,%r15,8), %xmm1
divsd %xmm1, %xmm0
xorl %edx, %edx
cmpq $0x3, %rdx
je 0x12c87
movsd (%r12,%rdx,8), %xmm1
ucomisd %xmm3, %xmm1
jne 0x12c51
jp 0x12c51
movsd 0x30(%r12), %xmm1
jmp 0x12c7c
ucomisd %xmm4, %xmm1
jne 0x12c66
jp 0x12c66
movsd 0x30(%r12), %xmm1
xorpd %xmm5, %xmm1
jmp 0x12c7c
movsd (%rsi,%rdx,8), %xmm2
movsd (%rax,%rdx,8), %xmm1
subsd %xmm2, %xmm1
mulsd %xmm0, %xmm1
addsd %xmm2, %xmm1
movsd %xmm1, 0x40(%rsp,%rdx,8)
incq %rdx
jmp 0x12c34
movslq (%rbx), %rax
imulq $0x18, %rax, %rax
movapd 0x40(%rsp), %xmm0
movq 0x10(%rsp), %rsi
movupd %xmm0, (%rsi,%rax)
movsd 0x50(%rsp), %xmm1
movslq (%rbx), %rax
imulq $0x18, %rax, %rdx
movsd %xmm1, 0x10(%rsi,%rdx)
incl %eax
movl %eax, (%rbx)
movslq (%r10), %rax
imulq $0x18, %rax, %rax
movupd %xmm0, (%r14,%rax)
movslq (%r10), %rax
imulq $0x18, %rax, %rdx
movsd %xmm1, 0x10(%r14,%rdx)
incl %eax
movl %eax, (%r10)
jmp 0x12adb
cmpl $0x0, 0x14(%rdi)
je 0x12f39
movslq 0x8(%rdi), %rax
shlq $0x6, %rax
leaq 0x20bfd2d(%rip), %rcx   # 0x20d2a20
movsd 0x8(%rax,%rcx), %xmm0
mulsd 0x8(%r12), %xmm0
movsd (%rax,%rcx), %xmm1
mulsd (%r12), %xmm1
addsd %xmm0, %xmm1
movsd 0x10(%rax,%rcx), %xmm0
mulsd 0x10(%r12), %xmm0
addsd %xmm1, %xmm0
xorl %eax, %eax
ucomisd 0x8356(%rip), %xmm0     # 0x1b080
movl $0x0, %ecx
cmovaq %rdi, %rcx
cmovbeq %rdi, %rax
movq %rcx, (%r14)
movq %rax, (%rbx)
cmpq $0x0, (%r14)
je 0x12f27
cmpq $0x0, (%rbx)
je 0x12f27
addq $0x2b8, %rsp            # imm = 0x2B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4390
cmpl $0x30, %eax
jg 0x12d75
movq (%rsp), %rax
cmpl $0x31, (%rax)
jl 0x12d83
leaq 0xcab5(%rip), %rdi      # 0x1f831
xorl %eax, %eax
callq 0x8b1f
pushq $0x20
popq %rdi
callq 0x42f0
movq %rax, %r14
movl (%rbx), %esi
movq %rax, %rdi
callq 0xaa76
xorl %eax, %eax
xorl %ecx, %ecx
movslq (%rbx), %rdx
cmpq %rdx, %rcx
jge 0x12ddc
movsd 0x38(%rbp,%rax), %xmm0
movq 0x10(%r14), %rdx
movsd %xmm0, (%rdx,%rax)
movsd 0x40(%rbp,%rax), %xmm0
movq 0x10(%r14), %rdx
movsd %xmm0, 0x8(%rdx,%rax)
movsd 0x48(%rbp,%rax), %xmm0
movq 0x10(%r14), %rdx
movsd %xmm0, 0x10(%rdx,%rax)
incq %rcx
addq $0x18, %rax
jmp 0x12d9c
movsd 0xb5fc(%rip), %xmm0     # 0x1e3e0
movq %r14, %rdi
callq 0xaea8
movl 0x8(%r14), %ecx
movl %ecx, 0x2c(%rbp)
xorl %eax, %eax
testl %ecx, %ecx
cmovlel %eax, %ecx
imulq $0x18, %rcx, %rcx
cmpq %rax, %rcx
je 0x12e30
movq 0x10(%r14), %rdx
movsd (%rdx,%rax), %xmm0
movsd %xmm0, 0x38(%rbp,%rax)
movsd 0x8(%rdx,%rax), %xmm0
movsd %xmm0, 0x40(%rbp,%rax)
movsd 0x10(%rdx,%rax), %xmm0
movsd %xmm0, 0x48(%rbp,%rax)
addq $0x18, %rax
jmp 0x12dfe
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
cmpl $0x0, (%rbx)
movq 0x30(%rsp), %rbx
jne 0x12e47
andq $0x0, (%rbx)
pushq $0x20
popq %rdi
callq 0x42f0
movq %rax, %r14
movq (%rsp), %rax
movl (%rax), %esi
movq %r14, %rdi
callq 0xaa76
xorl %eax, %eax
xorl %ecx, %ecx
movq (%rsp), %rsi
movslq (%rsi), %rdx
cmpq %rdx, %rcx
jge 0x12eab
movsd 0x38(%r13,%rax), %xmm0
movq 0x10(%r14), %rdx
movsd %xmm0, (%rdx,%rax)
movsd 0x40(%r13,%rax), %xmm0
movq 0x10(%r14), %rdx
movsd %xmm0, 0x8(%rdx,%rax)
movsd 0x48(%r13,%rax), %xmm0
movq 0x10(%r14), %rdx
movsd %xmm0, 0x10(%rdx,%rax)
incq %rcx
addq $0x18, %rax
jmp 0x12e68
movsd 0xb52d(%rip), %xmm0     # 0x1e3e0
movq %r14, %rdi
callq 0xaea8
movl 0x8(%r14), %ecx
movl %ecx, 0x2c(%r13)
xorl %eax, %eax
testl %ecx, %ecx
cmovlel %eax, %ecx
imulq $0x18, %rcx, %rcx
cmpq %rax, %rcx
je 0x12f03
movq 0x10(%r14), %rdx
movsd (%rdx,%rax), %xmm0
movsd %xmm0, 0x38(%r13,%rax)
movsd 0x8(%rdx,%rax), %xmm0
movsd %xmm0, 0x40(%r13,%rax)
movsd 0x10(%rdx,%rax), %xmm0
movsd %xmm0, 0x48(%r13,%rax)
addq $0x18, %rax
jmp 0x12ece
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movq (%rsp), %rax
cmpl $0x0, (%rax)
movq 0x8(%rsp), %rdi
movq 0x28(%rsp), %r14
jne 0x12d3d
andq $0x0, (%r14)
addq $0x2b8, %rsp            # imm = 0x2B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
imulq $0x18, %rax, %rax
xorpd %xmm0, %xmm0
xorl %ecx, %ecx
cmpq %rcx, %rax
je 0x12d20
movsd 0x40(%rdi,%rcx), %xmm1
mulsd 0x8(%r12), %xmm1
movsd 0x38(%rdi,%rcx), %xmm2
mulsd (%r12), %xmm2
addsd %xmm1, %xmm2
movsd 0x48(%rdi,%rcx), %xmm1
mulsd 0x10(%r12), %xmm1
addsd %xmm2, %xmm1
subsd 0x30(%r12), %xmm1
addsd %xmm1, %xmm0
addq $0x18, %rcx
jmp 0x12f43
jmp 0x12f8d
movq %rax, %rbx
pushq $0x20
popq %rsi
movq %r14, %rdi
callq 0x4300
movq %rbx, %rdi
callq 0x4550