// File: /workspace/github_cpp_makefile_star2_O3/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, %r13
movq %rdi, %rbx
movq %r8, %rdx
movq %r9, %rcx
callq 0x11274
leaq 0x561d5(%rip), %rax     # 0x6ebf0
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, 0x8(%rsp)
movq %rax, 0x2b0(%rbx)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x1640a
movq %r15, 0x10(%rsp)
movq (%r13), %rdi
leaq 0x56208(%rip), %rax     # 0x6ecb0
leaq 0x18(%rsp), %rsi
movq %rax, (%rsi)
movq $0x0, 0x8(%rsi)
leaq 0x3961(%rip), %rdx      # 0x1c420
movq %r13, %rcx
callq 0x14c7e
movq %rax, 0x2d0(%rbx)
leaq 0x2e8(%rbx), %rax
leaq 0x55e54(%rip), %rcx     # 0x6e930
movq %rcx, 0x308(%rbx)
leaq 0x55ea6(%rip), %rcx     # 0x6e990
movq %rcx, 0x2f8(%rbx)
movq %r13, 0x2e8(%rbx)
movl $0x0, 0x2f4(%rbx)
movq %rax, 0x300(%rbx)
leaq 0x55ea0(%rip), %rax     # 0x6e9b0
movq %rax, 0x310(%rbx)
movl $0xffffffff, 0x2d8(%rbx) # imm = 0xFFFFFFFF
movb $0x0, 0x2dc(%rbx)
leaq 0x320(%rbx), %r15
xorps %xmm0, %xmm0
movups %xmm0, 0x320(%rbx)
movups %xmm0, 0x330(%rbx)
movq 0x288(%rbx), %rax
movq %rax, 0x348(%rbx)
leaq 0x350(%rbx), %r12
movq %r12, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x14baa
leaq 0x3c0(%rbx), %r14
movq %r14, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x14baa
leaq 0x2a0(%rbx), %rcx
leaq 0x430(%rbx), %rsi
movq $0x0, 0x430(%rbx)
leaq 0x438(%rbx), %r13
leaq 0x18(%rsp), %rdx
movq %r13, %rdi
callq 0x1c4f0
movb $0x0, 0x440(%rbx)
testl %ebp, %ebp
je 0x18bb7
movb $0x0, 0x318(%rbx)
jmp 0x18be4
leaq 0x27c(%rbx), %rsi
movb $0x1, 0x318(%rbx)
leaq 0x284(%rbx), %rdx
movq %r15, %rdi
callq 0x1c9bc
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 (%r13), %rdi
testq %rdi, %rdi
je 0x18c0f
callq 0x14590
jmp 0x18c0f
movq %rax, %rbp
movq %r14, %rdi
callq 0x14600
jmp 0x18c1c
movq %rax, %rbp
movq %r12, %rdi
callq 0x14600
jmp 0x18c29
movq %rax, %rbp
leaq 0x2d0(%rbx), %r14
movq (%r15), %rdi
testq %rdi, %rdi
je 0x18c47
movq 0x330(%rbx), %rsi
subq %rdi, %rsi
callq 0xe650
movq %r14, %rdi
callq 0x1c5d0
jmp 0x18c54
movq %rax, %rbp
movq 0x10(%rsp), %rax
movq (%rax), %rdi
cmpq 0x8(%rsp), %rdi
je 0x18c78
movq 0x8(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xe650
jmp 0x18c78
movq %rax, %rbp
movq %rbx, %rdi
callq 0x133ac
movq %rbp, %rdi
callq 0xeb40