// File: flightaware[P]beast-splitter/beast_settings.cc
// Function: beast::Settings::to_message() const
helpers::bytebuf Settings::to_message() const {
        helpers::bytebuf msg;

        if (radarcape.dontcare())
            throw std::logic_error("need to explictly select radarcape or beast when generating settings messages");

        add_setting(msg, binary_format);
        add_setting(msg, filter_11_17_18);
        add_setting(msg, avrmlat);
        add_setting(msg, crc_disable);
        // this is a little special because of the ambiguity between radarcape and beast
        if (!radarcape && !filter_0_4_5.dontcare())
            add_setting(msg, filter_0_4_5, 'g', 'G');
        else if (radarcape && !gps_timestamps.dontcare())
            add_setting(msg, gps_timestamps, 'g', 'G');
        add_setting(msg, rts_handshake);
        add_setting(msg, fec_disable);
        add_setting(msg, modeac_enable);
        add_setting(msg, verbatim);

        return msg;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x40(%rbp)
movq %rdi, %rax
movq %rax, -0x38(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movb $0x0, -0x11(%rbp)
callq 0x1b8f0
movq -0x30(%rbp), %rdi
callq 0x1b910
movb %al, -0x25(%rbp)
jmp 0x1a3da
movb -0x25(%rbp), %al
testb $0x1, %al
jne 0x1a3e3
jmp 0x1a44c
movl $0x10, %edi
callq 0x12430
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x48(%rbp)
leaq 0x98db2(%rip), %rsi     # 0xb31b0
callq 0x12ca0
jmp 0x1a405
movq -0x48(%rbp), %rdi
movq 0xf0bb0(%rip), %rsi     # 0x10afc0
movq 0xf0b69(%rip), %rdx     # 0x10af80
callq 0x12ee0
jmp 0x1a5dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x1a5cb
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
callq 0x12650
jmp 0x1a5cb
movq -0x40(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x4, %rsi
callq 0x1a5e0
jmp 0x1a45f
movq -0x40(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x8, %rsi
callq 0x1a630
jmp 0x1a472
movq -0x40(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0xc, %rsi
callq 0x1a680
jmp 0x1a485
movq -0x40(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x10, %rsi
callq 0x1a6d0
jmp 0x1a498
movq -0x30(%rbp), %rdi
callq 0x1b590
movb %al, -0x49(%rbp)
jmp 0x1a4a6
movb -0x49(%rbp), %al
testb $0x1, %al
jne 0x1a4af
jmp 0x1a4fc
movq -0x30(%rbp), %rdi
addq $0x24, %rdi
callq 0x1b360
movb %al, -0x4a(%rbp)
jmp 0x1a4c1
movb -0x4a(%rbp), %al
testb $0x1, %al
jne 0x1a4fc
jmp 0x1a4ca
movq -0x30(%rbp), %rdi
addq $0x24, %rdi
callq 0x1b7d0
movb %al, -0x4b(%rbp)
jmp 0x1a4dc
movq -0x40(%rbp), %rdi
movb -0x4b(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
movl $0x67, %edx
movl $0x47, %ecx
callq 0x1a720
jmp 0x1a4fa
jmp 0x1a562
movq -0x30(%rbp), %rdi
callq 0x1b930
movb %al, -0x4c(%rbp)
jmp 0x1a50a
movb -0x4c(%rbp), %al
testb $0x1, %al
jne 0x1a513
jmp 0x1a560
movq -0x30(%rbp), %rdi
addq $0x14, %rdi
callq 0x1b320
movb %al, -0x4d(%rbp)
jmp 0x1a525
movb -0x4d(%rbp), %al
testb $0x1, %al
jne 0x1a560
jmp 0x1a52e
movq -0x30(%rbp), %rdi
addq $0x14, %rdi
callq 0x1b6d0
movb %al, -0x4e(%rbp)
jmp 0x1a540
movq -0x40(%rbp), %rdi
movb -0x4e(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
movl $0x67, %edx
movl $0x47, %ecx
callq 0x1a720
jmp 0x1a55e
jmp 0x1a560
jmp 0x1a562
movq -0x40(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x18, %rsi
callq 0x1a7a0
jmp 0x1a575
movq -0x40(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x1c, %rsi
callq 0x1a7f0
jmp 0x1a588
movq -0x40(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x20, %rsi
callq 0x1a840
jmp 0x1a59b
movq -0x40(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x2c, %rsi
callq 0x1a890
jmp 0x1a5ae
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x1a5c1
movq -0x40(%rbp), %rdi
callq 0x14790
movq -0x38(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x14790
movq -0x20(%rbp), %rdi
callq 0x12f70
nopl (%rax)