// File: NovaGL[P]HarmonyHubControl/HarmonyHubControl.cpp
// Function: Device::toString[abi:cxx11]()
std::string toString()
    {       
	std::string ret = m_strType;
	ret.append("\":\"");        
        ret.append(m_strLabel);
	ret.append("\"");
        ret.append(",\"ID\" :");
        ret.append(m_strID);
        ret.append(",\"");
        ret.append(m_strManufacturer);
	ret.append("\":\""); 
        ret.append(m_strModel);
	ret.append("\"");      
        ret.append(",\"Functions\": { \n ");
        std::vector<Function>::iterator it = m_vecFunctions.begin();
        std::vector<Function>::iterator ite = m_vecFunctions.end();
        for(; it != ite; ++it)
        {
            ret.append(it->toString());
        }
        ret=ret.substr(0, ret.size()-2);
        ret.append("}\n");
        return ret;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x80(%rbp)
movq %rdi, %rax
movq %rax, -0x90(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movb $0x0, -0x11(%rbp)
subq $-0x80, %rsi
callq 0x31d0
movq -0x80(%rbp), %rdi
leaq 0xc56d(%rip), %rsi      # 0x16131
callq 0x3630
jmp 0x9bcb
movq -0x80(%rbp), %rdi
movq -0x88(%rbp), %rsi
addq $0x20, %rsi
callq 0x3640
jmp 0x9be1
movq -0x80(%rbp), %rdi
leaq 0xd5ec(%rip), %rsi      # 0x171d8
callq 0x3630
jmp 0x9bf3
movq -0x80(%rbp), %rdi
leaq 0xd5d1(%rip), %rsi      # 0x171cf
callq 0x3630
jmp 0x9c05
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdi
callq 0x3640
jmp 0x9c17
movq -0x80(%rbp), %rdi
leaq 0xd5b5(%rip), %rsi      # 0x171d7
callq 0x3630
jmp 0x9c29
movq -0x80(%rbp), %rdi
movq -0x88(%rbp), %rsi
addq $0x40, %rsi
callq 0x3640
jmp 0x9c3f
movq -0x80(%rbp), %rdi
leaq 0xc4e7(%rip), %rsi      # 0x16131
callq 0x3630
jmp 0x9c51
movq -0x80(%rbp), %rdi
movq -0x88(%rbp), %rsi
addq $0x60, %rsi
callq 0x3640
jmp 0x9c67
movq -0x80(%rbp), %rdi
leaq 0xd566(%rip), %rsi      # 0x171d8
callq 0x3630
jmp 0x9c79
movq -0x80(%rbp), %rdi
leaq 0xd556(%rip), %rsi      # 0x171da
callq 0x3630
jmp 0x9c8b
movq -0x88(%rbp), %rdi
addq $0xa0, %rdi
callq 0xa6d0
movq -0x88(%rbp), %rdi
movq %rax, -0x30(%rbp)
addq $0xa0, %rdi
callq 0xa700
movq %rax, -0x38(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xa730
testb $0x1, %al
jne 0x9ccc
jmp 0x9d2e
leaq -0x30(%rbp), %rdi
callq 0xa770
movq %rax, %rsi
leaq -0x58(%rbp), %rdi
callq 0xa790
jmp 0x9ce3
movq -0x80(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x3640
jmp 0x9cf2
leaq -0x58(%rbp), %rdi
callq 0x3698
leaq -0x30(%rbp), %rdi
callq 0xa9c0
jmp 0x9cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x9da6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x3698
jmp 0x9da6
movq -0x80(%rbp), %rdi
callq 0x3290
movq -0x80(%rbp), %rsi
movq %rax, %rcx
addq $-0x2, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x78(%rbp), %rdi
callq 0x33c0
jmp 0x9d51
movq -0x80(%rbp), %rdi
leaq -0x78(%rbp), %rsi
movq %rsi, -0x98(%rbp)
callq 0x3460
movq -0x98(%rbp), %rdi
callq 0x3698
movq -0x80(%rbp), %rdi
leaq 0xd471(%rip), %rsi      # 0x171ed
callq 0x3630
jmp 0x9d83
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x9d96
movq -0x80(%rbp), %rdi
callq 0x3698
movq -0x90(%rbp), %rax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x80(%rbp), %rdi
callq 0x3698
movq -0x20(%rbp), %rdi
callq 0x35e0
nopl (%rax,%rax)