// File: /workspace/github_c_makefile_star2_O0/patriciogonzalezvivo[P]tprint/include/serial/list_ports_linux.cc
// Function: usb_sysfs_friendly_name(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
string
usb_sysfs_friendly_name(const string& sys_usb_path)
{
    unsigned int device_number = 0;

    istringstream( read_line(sys_usb_path + "/devnum") ) >> device_number;

    string manufacturer = read_line( sys_usb_path + "/manufacturer" );

    string product = read_line( sys_usb_path + "/product" );

    string serial = read_line( sys_usb_path + "/serial" );

    if( manufacturer.empty() && product.empty() && serial.empty() )
        return "";

    return format("%s %s %s", manufacturer.c_str(), product.c_str(), serial.c_str() );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2f0, %rsp            # imm = 0x2F0
movq %rdi, -0x2c8(%rbp)
movq %rdi, %rax
movq %rax, -0x2c0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x10(%rbp), %rsi
leaq 0x1e529(%rip), %rdx     # 0x2d06f
leaq -0x1d8(%rbp), %rdi
movq %rdi, -0x2b8(%rbp)
callq 0xf8f0
movq -0x2b8(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
callq 0xf140
jmp 0xeb6e
leaq -0x198(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
movl $0x8, %edx
callq 0xd700
jmp 0xeb88
leaq -0x198(%rbp), %rdi
leaq -0x14(%rbp), %rsi
callq 0xf9e0
jmp 0xeb9a
leaq -0x198(%rbp), %rdi
callq 0xd1c0
leaq -0x1b8(%rbp), %rdi
callq 0xd240
leaq -0x1d8(%rbp), %rdi
callq 0xd240
movq -0x10(%rbp), %rsi
leaq 0x1e4ae(%rip), %rdx     # 0x2d077
leaq -0x228(%rbp), %rdi
movq %rdi, -0x2d0(%rbp)
callq 0xf8f0
movq -0x2d0(%rbp), %rsi
leaq -0x208(%rbp), %rdi
callq 0xf140
jmp 0xebf1
leaq -0x228(%rbp), %rdi
callq 0xd240
movq -0x10(%rbp), %rsi
leaq 0x1e47d(%rip), %rdx     # 0x2d085
leaq -0x268(%rbp), %rdi
callq 0xf8f0
jmp 0xec16
leaq -0x248(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0xf140
jmp 0xec2b
leaq -0x268(%rbp), %rdi
callq 0xd240
movq -0x10(%rbp), %rsi
leaq 0x1e44c(%rip), %rdx     # 0x2d08e
leaq -0x2a8(%rbp), %rdi
callq 0xf8f0
jmp 0xec50
leaq -0x288(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0xf140
jmp 0xec65
leaq -0x2a8(%rbp), %rdi
callq 0xd240
leaq -0x208(%rbp), %rdi
callq 0xd6f0
testb $0x1, %al
jne 0xec86
jmp 0xee17
leaq -0x248(%rbp), %rdi
callq 0xd6f0
testb $0x1, %al
jne 0xec9b
jmp 0xee17
leaq -0x288(%rbp), %rdi
callq 0xd6f0
testb $0x1, %al
jne 0xecb0
jmp 0xee17
leaq -0x2a9(%rbp), %rdi
movq %rdi, -0x2d8(%rbp)
callq 0xd760
movq -0x2c8(%rbp), %rdi
movq -0x2d8(%rbp), %rdx
leaq 0x1f6e5(%rip), %rsi     # 0x2e3bd
callq 0xf2c0
jmp 0xecdf
leaq -0x2a9(%rbp), %rdi
callq 0xd430
movl $0x1, -0x2b0(%rbp)
jmp 0xee91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e0(%rbp)
movl %eax, -0x1e4(%rbp)
jmp 0xed4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e0(%rbp)
movl %eax, -0x1e4(%rbp)
jmp 0xed40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e0(%rbp)
movl %eax, -0x1e4(%rbp)
leaq -0x198(%rbp), %rdi
callq 0xd1c0
leaq -0x1b8(%rbp), %rdi
callq 0xd240
leaq -0x1d8(%rbp), %rdi
callq 0xd240
jmp 0xeee9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e0(%rbp)
movl %eax, -0x1e4(%rbp)
leaq -0x228(%rbp), %rdi
callq 0xd240
jmp 0xeee9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e0(%rbp)
movl %eax, -0x1e4(%rbp)
jmp 0xeedd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e0(%rbp)
movl %eax, -0x1e4(%rbp)
leaq -0x268(%rbp), %rdi
callq 0xd240
jmp 0xeedd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e0(%rbp)
movl %eax, -0x1e4(%rbp)
jmp 0xeed1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e0(%rbp)
movl %eax, -0x1e4(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0xd240
jmp 0xeed1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e0(%rbp)
movl %eax, -0x1e4(%rbp)
leaq -0x2a9(%rbp), %rdi
callq 0xd430
jmp 0xeec5
leaq -0x208(%rbp), %rdi
callq 0xd170
movq %rax, -0x2e8(%rbp)
leaq -0x248(%rbp), %rdi
callq 0xd170
movq %rax, -0x2e0(%rbp)
leaq -0x288(%rbp), %rdi
callq 0xd170
movq -0x2c8(%rbp), %rdi
movq -0x2e8(%rbp), %rdx
movq -0x2e0(%rbp), %rcx
movq %rax, %r8
leaq 0x1e22e(%rip), %rsi     # 0x2d096
xorl %eax, %eax
callq 0xe770
jmp 0xee71
movl $0x1, -0x2b0(%rbp)
jmp 0xee91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e0(%rbp)
movl %eax, -0x1e4(%rbp)
jmp 0xeec5
leaq -0x288(%rbp), %rdi
callq 0xd240
leaq -0x248(%rbp), %rdi
callq 0xd240
leaq -0x208(%rbp), %rdi
callq 0xd240
movq -0x2c0(%rbp), %rax
addq $0x2f0, %rsp            # imm = 0x2F0
popq %rbp
retq
leaq -0x288(%rbp), %rdi
callq 0xd240
leaq -0x248(%rbp), %rdi
callq 0xd240
leaq -0x208(%rbp), %rdi
callq 0xd240
movq -0x1e0(%rbp), %rdi
callq 0xd750
nopw %cs:(%rax,%rax)