// File: /workspace/github_cpp_makefile_star2_O3/jimmiebergmann[P]fbx-file/fbx.cpp
// Function: Fbx::Property::string[abi:cxx11]() const
std::string Property::string() const
    {
        switch (m_type)
        {
            case Type::Boolean: return m_primitive.boolean ? "true" : "false";
            case Type::Integer16: return std::to_string(m_primitive.integer16);
            case Type::Integer32: return std::to_string(m_primitive.integer32);
            case Type::Integer64: return std::to_string(m_primitive.integer64);
            case Type::Float32: return std::to_string(m_primitive.float32);
            case Type::Float64: return std::to_string(m_primitive.float64);
            case Type::BooleanArray: return "array(boolean)";
            case Type::Integer32Array: return "array(integer32)";
            case Type::Integer64Array: return "array(integer64)";
            case Type::Float32Array: return "array(float32)";
            case Type::Float64Array: return "array(float64)";
            case Type::String:
            case Type::Raw: return std::string(m_raw.begin(), m_raw.end());
            default: break;
        }

        return "";
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
movl (%rsi), %eax
cmpq $0xc, %rax
ja 0x105e7
leaq 0x781f(%rip), %rcx      # 0x17bcc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x28(%rsi), %rax
movq 0x30(%rsi), %rdx
leaq 0x10(%rbx), %rcx
movq %rcx, (%rbx)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x13e44
jmp 0x106a3
cvtss2sd 0x8(%rsi), %xmm0
movq 0xcbc7(%rip), %rsi      # 0x1cfa8
leaq 0x7b22(%rip), %rcx      # 0x17f0a
movl $0x3a, %edx
jmp 0x105c1
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x799a(%rip), %rsi      # 0x17d9a
leaq 0x79a1(%rip), %rdx      # 0x17da8
jmp 0x10629
movl 0x8(%rsi), %r12d
movl %r12d, %r14d
negl %r14d
cmovsl %r12d, %r14d
movl $0x1, %r15d
cmpl $0xa, %r14d
jb 0x10642
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r14d, %ecx
cmpl $0x63, %ecx
jbe 0x10633
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x1063f
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x10642
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x10438
addl $-0x3, %r15d
jmp 0x10642
movq 0x8(%rsi), %r15
movq %r15, %r14
negq %r14
cmovsq %r15, %r14
movl $0x1, %r12d
cmpq $0xa, %r14
jb 0x10676
movl $0x4, %r12d
movabsq $0x346dc5d63886594b, %rsi # imm = 0x346DC5D63886594B
movq %r14, %rcx
cmpq $0x63, %rcx
jbe 0x10639
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0x10673
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0x10676
movq %rcx, %rax
mulq %rsi
shrq $0xb, %rdx
addl $0x4, %r12d
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0x104ab
addl $-0x3, %r12d
jmp 0x10676
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x7878(%rip), %rsi      # 0x17d78
leaq 0x7881(%rip), %rdx      # 0x17d88
jmp 0x10629
movzbl 0x8(%rsi), %edx
leaq 0x7847(%rip), %rax      # 0x17d5e
leaq 0x7845(%rip), %rsi      # 0x17d63
testq %rdx, %rdx
cmovneq %rax, %rsi
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
xorq $0x5, %rdx
addq %rsi, %rdx
jmp 0x10629
movswl 0x8(%rsi), %r15d
movl %r15d, %r14d
negl %r14d
cmovsl %r15d, %r14d
movl $0x1, %r12d
cmpl $0xa, %r14d
jb 0x1057f
movl $0x2, %r12d
cmpl $0x64, %r14d
jb 0x1057f
movl $0x3, %r12d
cmpl $0x3e8, %r14d           # imm = 0x3E8
jb 0x1057f
cmpl $0x2710, %r14d          # imm = 0x2710
movl $0x5, %r12d
sbbl $0x0, %r12d
shrl $0x1f, %r15d
leal (%r12,%r15), %esi
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x32b0
addq (%rbx), %r15
movq %r15, %rdi
movl %r12d, %esi
jmp 0x10669
movsd 0x8(%rsi), %xmm0
movq 0xc9f3(%rip), %rsi      # 0x1cfa8
leaq 0x794e(%rip), %rcx      # 0x17f0a
movl $0x148, %edx            # imm = 0x148
movq %rbx, %rdi
movb $0x1, %al
callq 0x13627
jmp 0x106a3
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x778b(%rip), %rsi      # 0x17d69
leaq 0x7792(%rip), %rdx      # 0x17d77
jmp 0x10629
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x6bae(%rip), %rdx      # 0x171a3
movq %rbx, %rdi
movq %rdx, %rsi
jmp 0x1062c
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x779e(%rip), %rsi      # 0x17da9
leaq 0x77a5(%rip), %rdx      # 0x17db7
jmp 0x10629
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x7767(%rip), %rsi      # 0x17d89
leaq 0x7770(%rip), %rdx      # 0x17d99
movq %rbx, %rdi
callq 0x139ac
jmp 0x106a3
addl $-0x2, %r15d
jmp 0x10642
addl $-0x2, %r12d
jmp 0x10676
decl %r15d
shrl $0x1f, %r12d
movl %r12d, %esi
addl %r15d, %esi
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x32b0
movq (%rbx), %rdi
addq %r12, %rdi
movl %r15d, %esi
movl %r14d, %edx
callq 0x13535
jmp 0x106a3
decl %r12d
shrq $0x3f, %r15
leal (%r15,%r12), %esi
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x32b0
addq (%rbx), %r15
movq %r15, %rdi
movl %r12d, %esi
movq %r14, %rdx
callq 0x135a7
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop