// File: /workspace/github_cpp_makefile_star2_O1/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 0x1086b
leaq 0x759b(%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 0x140b6
jmp 0x10927
cvtss2sd 0x8(%rsi), %xmm0
movq 0xc943(%rip), %rsi      # 0x1cfa8
leaq 0x789e(%rip), %rcx      # 0x17f0a
movl $0x3a, %edx
jmp 0x10845
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x7716(%rip), %rsi      # 0x17d9a
leaq 0x771d(%rip), %rdx      # 0x17da8
jmp 0x108ad
movl 0x8(%rsi), %r12d
movl %r12d, %r14d
negl %r14d
cmovsl %r12d, %r14d
movl $0x1, %r15d
cmpl $0xa, %r14d
jb 0x108c6
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r14d, %ecx
cmpl $0x63, %ecx
jbe 0x108b7
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x108c3
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x108c6
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x106bc
addl $-0x3, %r15d
jmp 0x108c6
movq 0x8(%rsi), %r15
movq %r15, %r14
negq %r14
cmovsq %r15, %r14
movl $0x1, %r12d
cmpq $0xa, %r14
jb 0x108fa
movl $0x4, %r12d
movabsq $0x346dc5d63886594b, %rsi # imm = 0x346DC5D63886594B
movq %r14, %rcx
cmpq $0x63, %rcx
jbe 0x108bd
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0x108f7
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0x108fa
movq %rcx, %rax
mulq %rsi
shrq $0xb, %rdx
addl $0x4, %r12d
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0x1072f
addl $-0x3, %r12d
jmp 0x108fa
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x75f4(%rip), %rsi      # 0x17d78
leaq 0x75fd(%rip), %rdx      # 0x17d88
jmp 0x108ad
movzbl 0x8(%rsi), %edx
leaq 0x75c3(%rip), %rax      # 0x17d5e
leaq 0x75c1(%rip), %rsi      # 0x17d63
testq %rdx, %rdx
cmovneq %rax, %rsi
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
xorq $0x5, %rdx
addq %rsi, %rdx
jmp 0x108ad
movswl 0x8(%rsi), %r15d
movl %r15d, %r14d
negl %r14d
cmovsl %r15d, %r14d
movl $0x1, %r12d
cmpl $0xa, %r14d
jb 0x10803
movl $0x2, %r12d
cmpl $0x64, %r14d
jb 0x10803
movl $0x3, %r12d
cmpl $0x3e8, %r14d           # imm = 0x3E8
jb 0x10803
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 0x108ed
movsd 0x8(%rsi), %xmm0
movq 0xc76f(%rip), %rsi      # 0x1cfa8
leaq 0x76ca(%rip), %rcx      # 0x17f0a
movl $0x148, %edx            # imm = 0x148
movq %rbx, %rdi
movb $0x1, %al
callq 0x138a1
jmp 0x10927
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x7507(%rip), %rsi      # 0x17d69
leaq 0x750e(%rip), %rdx      # 0x17d77
jmp 0x108ad
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x692a(%rip), %rdx      # 0x171a3
movq %rbx, %rdi
movq %rdx, %rsi
jmp 0x108b0
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x751a(%rip), %rsi      # 0x17da9
leaq 0x7521(%rip), %rdx      # 0x17db7
jmp 0x108ad
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x74e3(%rip), %rsi      # 0x17d89
leaq 0x74ec(%rip), %rdx      # 0x17d99
movq %rbx, %rdi
callq 0x13c08
jmp 0x10927
addl $-0x2, %r15d
jmp 0x108c6
addl $-0x2, %r12d
jmp 0x108fa
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 0x137af
jmp 0x10927
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 0x13821
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop