// File: /workspace/github_cpp_makefile_star2_O1/flightaware[P]beast-splitter/beast_input_serial.cc
// Function: beast::SerialInput::SerialInput(boost::asio::io_context&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned int, beast::Settings const&, modes::Filter const&)
SerialInput::SerialInput(boost::asio::io_service &service_, const std::string &path_, unsigned int fixed_baud_rate_, const Settings &fixed_settings_, const modes::Filter &filter_) : BeastInput(service_, fixed_settings_, filter_), path(path_), port(service_), autobaud_interval(autobaud_base_interval), autobaud_timer(service_), read_timer(service_), readbuf(std::make_shared<helpers::bytebuf>(read_buffer_size)), warned_about_rate(false) {
    // set up autobaud
    if (fixed_baud_rate_ == 0) {
        autobauding = true;
        autobaud_rates.assign(autobaud_standard_rates.begin(), autobaud_standard_rates.end());
        autobaud_rate = autobaud_rates.begin();
        baud_rate = *autobaud_rate;
    } else {
        autobauding = false;
        baud_rate = fixed_baud_rate_;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %ecx, %ebp
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %rbx
movq %r8, %rdx
movq %r9, %rcx
callq 0x1239c
leaq 0x56d6d(%rip), %rax     # 0x70b88
movq %rax, (%rbx)
movabsq $0xf4240002dc6c0, %rax  # imm = 0xF4240002DC6C0
movq %rax, 0x27c(%rbx)
movq $0x3e8, 0x288(%rbx) # imm = 0x3E8
movq $0x3e80, 0x290(%rbx) # imm = 0x3E80
movabsq $0x3e800000004, %rax    # imm = 0x3E800000004
movq %rax, 0x298(%rbx)
movq $0x1000, 0x2a0(%rbx) # imm = 0x1000
movq $0x32, 0x2a8(%rbx)
leaq 0x2b0(%rbx), %r15
leaq 0x2c0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rax, 0x2b0(%rbx)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x17760
movq %r15, 0x20(%rsp)
leaq 0x2d0(%rbx), %r15
movq %r15, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x1d9b6
leaq 0x320(%rbx), %rax
movq %rax, 0x18(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x330(%rbx)
movups %xmm0, 0x320(%rbx)
movq 0x288(%rbx), %rax
movq %rax, 0x348(%rbx)
leaq 0x350(%rbx), %r13
movq %r13, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x15ec6
leaq 0x3c0(%rbx), %r14
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x15ec6
leaq 0x2a0(%rbx), %rcx
leaq 0x430(%rbx), %rsi
movq $0x0, 0x430(%rbx)
leaq 0x438(%rbx), %r12
leaq 0xf(%rsp), %rdx
movq %r12, %rdi
callq 0x1db0e
movb $0x0, 0x440(%rbx)
testl %ebp, %ebp
je 0x19f45
movb $0x0, 0x318(%rbx)
jmp 0x19f74
leaq 0x27c(%rbx), %rsi
movb $0x1, 0x318(%rbx)
leaq 0x284(%rbx), %rdx
movq 0x18(%rsp), %rdi
callq 0x1dffa
movq 0x320(%rbx), %rax
movq %rax, 0x338(%rbx)
movl (%rax), %ebp
movl %ebp, 0x340(%rbx)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbp
movq (%r12), %rdi
testq %rdi, %rdi
je 0x19f9f
callq 0x1581a
jmp 0x19f9f
movq %rax, %rbp
movq %r14, %rdi
callq 0x1588a
jmp 0x19fac
movq %rax, %rbp
movq %r13, %rdi
callq 0x1588a
jmp 0x19fb9
movq %rax, %rbp
movq 0x18(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x19fd5
movq 0x330(%rbx), %rsi
subq %rdi, %rsi
callq 0xf650
movq %r15, %rdi
callq 0x1dbee
jmp 0x19fe2
movq %rax, %rbp
movq 0x20(%rsp), %rax
movq (%rax), %rdi
cmpq 0x10(%rsp), %rdi
je 0x1a006
movq 0x10(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xf650
jmp 0x1a006
movq %rax, %rbp
movq %rbx, %rdi
callq 0x1459a
movq %rbp, %rdi
callq 0xfb40