// File: /workspace/github_cpp_makefile_star2_O1/changliu00[P]ascii-animation/ascii-anim.cpp
// Function: EllArc::EllArc(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::pair<float, float> const&, float, float, float, float, float, float, bool, std::pair<float, float> const&, std::pair<float, float> const&)
EllArc::EllArc(const string& name, const Fpair& pc0, float a, float b, float angle, float width, float anglim1, float anglim2, bool solid, const Fpair& tlim, const Fpair& pc):
	Ellipse(name, pc0, a, b, angle, solid, tlim, pc), width(width), anglim1(anglim1), anglim2(anglim2) {
	if(width <= 0 || width > 1) throw invalid_argument(dynamic_cast<ostringstream&&>(ostringstream() << "\"width\" (" << width << ") should be in the range (0, 1]!").str());
	if(anglim1 >= anglim2) throw invalid_argument(dynamic_cast<ostringstream&&>(ostringstream() << "\"anglim1\" (" << anglim1 << ") should be less than \"anglim2\" (" << anglim2 << ")!").str());
	if(anglim1 > pi || anglim1 < -pi) throw invalid_argument(dynamic_cast<ostringstream&&>(ostringstream() << "\"anglim1\" (" << anglim1 << ") should be in the range [-\\pi, \\pi]!").str());
	if(anglim2 > pi || anglim2 < -pi) throw invalid_argument(dynamic_cast<ostringstream&&>(ostringstream() << "\"anglim2\" (" << anglim2 << ") should be in the range [-\\pi, \\pi]!").str());
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movaps %xmm5, 0x30(%rsp)
movaps %xmm4, 0x40(%rsp)
movss %xmm3, 0xc(%rsp)
movq %rdi, %rbx
callq 0x6260
movss 0xc(%rsp), %xmm3
movaps 0x40(%rsp), %xmm2
movaps 0x30(%rsp), %xmm1
leaq 0xe110(%rip), %rax      # 0x149f0
movq %rax, (%rbx)
movss %xmm3, 0x98(%rbx)
movss %xmm2, 0x9c(%rbx)
movss %xmm1, 0xa0(%rbx)
xorps %xmm0, %xmm0
ucomiss %xmm3, %xmm0
jae 0x6951
ucomiss 0x9726(%rip), %xmm3     # 0x10030
ja 0x6951
ucomiss %xmm1, %xmm2
jae 0x69e3
movaps 0x9704(%rip), %xmm0     # 0x10020
andps %xmm2, %xmm0
ucomiss 0x9726(%rip), %xmm0     # 0x1004c
ja 0x6a9e
movaps 0x96ed(%rip), %xmm0     # 0x10020
andps %xmm1, %xmm0
ucomiss 0x970f(%rip), %xmm0     # 0x1004c
ja 0x6b30
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x30d0
movq %rax, %r14
leaq 0x50(%rsp), %rdi
callq 0x3230
leaq 0x975b(%rip), %rsi      # 0x100ca
leaq 0x50(%rsp), %rdi
movl $0x9, %edx
callq 0x3210
xorps %xmm0, %xmm0
cvtss2sd 0xc(%rsp), %xmm0
leaq 0x50(%rsp), %rdi
callq 0x32b0
leaq 0x973c(%rip), %rsi      # 0x100d4
leaq 0x50(%rsp), %rdi
movl $0x20, %edx
callq 0x3210
leaq 0x58(%rsp), %rsi
leaq 0x10(%rsp), %rdi
callq 0x32a0
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x32e0
xorl %ebp, %ebp
movq 0xe611(%rip), %rsi      # 0x14fe0
movq 0xe5f2(%rip), %rdx      # 0x14fc8
movq %r14, %rdi
callq 0x32d0
jmp 0x6bbd
movl $0x10, %edi
callq 0x30d0
movq %rax, %r14
leaq 0x50(%rsp), %rdi
callq 0x3230
leaq 0x96f4(%rip), %rsi      # 0x100f5
leaq 0x50(%rsp), %rdi
movl $0xb, %edx
callq 0x3210
xorps %xmm0, %xmm0
cvtss2sd 0x40(%rsp), %xmm0
leaq 0x50(%rsp), %rdi
callq 0x32b0
leaq 0x96d7(%rip), %rsi      # 0x10101
leaq 0x50(%rsp), %rdi
movl $0x21, %edx
callq 0x3210
xorps %xmm0, %xmm0
cvtss2sd 0x30(%rsp), %xmm0
leaq 0x50(%rsp), %rdi
callq 0x32b0
leaq 0x96d0(%rip), %rsi      # 0x10123
leaq 0x50(%rsp), %rdi
movl $0x2, %edx
callq 0x3210
leaq 0x58(%rsp), %rsi
leaq 0x10(%rsp), %rdi
callq 0x32a0
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x32e0
xorl %ebp, %ebp
movq 0xe556(%rip), %rsi      # 0x14fe0
movq 0xe537(%rip), %rdx      # 0x14fc8
movq %r14, %rdi
callq 0x32d0
jmp 0x6bbd
movl $0x10, %edi
callq 0x30d0
movq %rax, %r14
leaq 0x50(%rsp), %rdi
callq 0x3230
leaq 0x9639(%rip), %rsi      # 0x100f5
leaq 0x50(%rsp), %rdi
movl $0xb, %edx
callq 0x3210
xorps %xmm0, %xmm0
cvtss2sd 0x40(%rsp), %xmm0
leaq 0x50(%rsp), %rdi
callq 0x32b0
leaq 0x9641(%rip), %rsi      # 0x10126
leaq 0x50(%rsp), %rdi
movl $0x25, %edx
callq 0x3210
leaq 0x58(%rsp), %rsi
leaq 0x10(%rsp), %rdi
callq 0x32a0
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x32e0
xorl %ebp, %ebp
movq 0xe4c4(%rip), %rsi      # 0x14fe0
movq 0xe4a5(%rip), %rdx      # 0x14fc8
movq %r14, %rdi
callq 0x32d0
jmp 0x6bbd
movl $0x10, %edi
callq 0x30d0
movq %rax, %r14
leaq 0x50(%rsp), %rdi
callq 0x3230
leaq 0x95c9(%rip), %rsi      # 0x10117
leaq 0x50(%rsp), %rdi
movl $0xb, %edx
callq 0x3210
xorps %xmm0, %xmm0
cvtss2sd 0x30(%rsp), %xmm0
leaq 0x50(%rsp), %rdi
callq 0x32b0
leaq 0x95af(%rip), %rsi      # 0x10126
leaq 0x50(%rsp), %rdi
movl $0x25, %edx
callq 0x3210
leaq 0x58(%rsp), %rsi
leaq 0x10(%rsp), %rdi
callq 0x32a0
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x32e0
xorl %ebp, %ebp
movq 0xe432(%rip), %rsi      # 0x14fe0
movq 0xe413(%rip), %rdx      # 0x14fc8
movq %r14, %rdi
callq 0x32d0
jmp 0x6bc3
jmp 0x6bc3
jmp 0x6bc3
movq %rax, %r15
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6bef
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x31d0
jmp 0x6bef
jmp 0x6be9
jmp 0x6be9
jmp 0x6be9
movq %rax, %r15
movb $0x1, %bpl
movq 0xe3ba(%rip), %rsi      # 0x14fb0
leaq 0x50(%rsp), %rdi
callq 0x30f0
leaq 0xc0(%rsp), %rdi
callq 0x3080
jmp 0x6c1b
jmp 0x6c15
jmp 0x6c15
jmp 0x6c15
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x6c28
movq %r14, %rdi
callq 0x3140
movq %rbx, %rdi
callq 0x751a
movq %r15, %rdi
callq 0x32f0