// File: /workspace/github_c_makefile_star2_O3/patriciogonzalezvivo[P]tprint/include/serial/serial.h
// Function: serial::IOException::IOException(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, int)
explicit IOException (std::string file, int line, int errnum)
    : file_(file), line_(line), errno_(errnum) {
      std::stringstream ss;
#if defined(_WIN32) && !defined(__MINGW32__)
      char error_str [1024];
      strerror_s(error_str, 1024, errnum);
#else
      char * error_str = strerror(errnum);
#endif
      ss << "IO Exception (" << errno_ << "): " << error_str;
      ss << ", file " << file_ << ", line " << line_ << ".";
      e_what_ = ss.str();
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movl %ecx, %r12d
movl %edx, %r14d
movq %rdi, %rbx
leaq 0x1880c(%rip), %rax     # 0x26d08
movq %rax, (%rdi)
leaq 0x8(%rdi), %r15
leaq 0x18(%rdi), %rax
movq %rax, -0x38(%rbp)
movq %rax, 0x8(%rdi)
movq (%rsi), %rax
movq 0x8(%rsi), %rdx
addq %rax, %rdx
movq %r15, %rdi
movq %rax, %rsi
callq 0xa1e2
movq %r15, -0x40(%rbp)
movl %r14d, 0x28(%rbx)
leaq 0x30(%rbx), %r15
leaq 0x40(%rbx), %rax
movq %rax, -0x30(%rbp)
movq %rax, 0x30(%rbx)
movq $0x0, 0x38(%rbx)
movb $0x0, 0x40(%rbx)
movl %r12d, 0x50(%rbx)
leaq -0x1e8(%rbp), %rdi
callq 0x8220
movl %r12d, %edi
callq 0x8110
movq %rax, %r13
leaq -0x1d8(%rbp), %r12
leaq 0x1223d(%rip), %rsi     # 0x207ae
movl $0xe, %edx
movq %r12, %rdi
callq 0x83b0
movl 0x50(%rbx), %esi
movq %r12, %rdi
callq 0x85c0
movq %rax, %r14
leaq 0x120bf(%rip), %rsi     # 0x20652
movl $0x3, %edx
movq %rax, %rdi
callq 0x83b0
testq %r13, %r13
je 0xe5bd
movq %r13, %rdi
callq 0x8170
movq %r14, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x83b0
jmp 0xe5d7
movq (%r14), %rax
movq -0x18(%rax), %rax
movq %r14, %rdi
addq %rax, %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x85a0
leaq 0x121c0(%rip), %rsi     # 0x2079e
movl $0x7, %edx
movq %r12, %rdi
callq 0x83b0
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %r12, %rdi
callq 0x83b0
movq %rax, %r14
leaq 0x121a1(%rip), %rsi     # 0x207a6
movl $0x7, %edx
movq %rax, %rdi
callq 0x83b0
movl 0x28(%rbx), %esi
movq %r14, %rdi
callq 0x85c0
leaq 0x12169(%rip), %rsi     # 0x2078d
movl $0x1, %edx
movq %rax, %rdi
callq 0x83b0
leaq -0x1d0(%rbp), %rsi
leaq -0x60(%rbp), %rdi
callq 0x8550
leaq -0x60(%rbp), %rbx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x83f0
movq (%rbx), %rdi
leaq -0x50(%rbp), %rax
cmpq %rax, %rdi
je 0xe668
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x8310
movq 0x18931(%rip), %rsi     # 0x26fa0
leaq -0x1e8(%rbp), %rdi
callq 0x8260
leaq -0x168(%rbp), %rdi
callq 0x8100
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xe6a5
movq %rax, %r12
jmp 0xe6c7
movq %rax, %r12
jmp 0xe6fb
movq %rax, %r12
movq 0x188f1(%rip), %rsi     # 0x26fa0
leaq -0x1e8(%rbp), %rdi
callq 0x8260
leaq -0x168(%rbp), %rdi
callq 0x8100
movq (%r15), %rdi
cmpq -0x30(%rbp), %rdi
je 0xe6df
movq -0x30(%rbp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x8310
movq -0x40(%rbp), %rax
movq (%rax), %rdi
cmpq -0x38(%rbp), %rdi
je 0xe6fb
movq -0x38(%rbp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x8310
movq %rbx, %rdi
callq 0x8640
movq %r12, %rdi
callq 0x85f0
nop