// File: frolosofsky[P]pbft/main.cpp
// Function: main
int main() {
    Simulator sim(1);
    sim.actions({
        Message::WriteOpRequest{1},
        Message::WriteOpRequest{2},
        Message::WriteOpRequest{10},
        Message::ReadOpRequest{0},
        Message::ReadOpRequest{2},
        Message::ReadOpRequest{3},
        });
    sim.run();
    sim.destroy_node(1);
    sim.actions({
        Message::WriteOpRequest{1000},
        Message::WriteOpRequest{1234},
        Message::WriteOpRequest{9876},
        Message::ReadOpRequest{5},
        Message::ReadOpRequest{10},
        Message::ReadOpRequest{3},
        });
    sim.run();
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1f0, %rsp            # imm = 0x1F0
movl $0x0, -0x4(%rbp)
leaq -0x60(%rbp), %rdi
movl $0x1, %esi
xorl %edx, %edx
callq 0x60f0
movl $0x1, -0xec(%rbp)
leaq -0xe8(%rbp), %rdi
leaq -0xec(%rbp), %rsi
callq 0x6200
jmp 0x5dc1
leaq -0xd8(%rbp), %rdi
movl $0x2, -0x100(%rbp)
leaq -0x100(%rbp), %rsi
callq 0x6200
jmp 0x5de0
leaq -0xc8(%rbp), %rdi
movl $0xa, -0x104(%rbp)
leaq -0x104(%rbp), %rsi
callq 0x6200
jmp 0x5dff
leaq -0xb8(%rbp), %rdi
movq $0x0, -0x110(%rbp)
leaq -0x110(%rbp), %rsi
callq 0x6230
jmp 0x5e1f
leaq -0xa8(%rbp), %rdi
movq $0x2, -0x118(%rbp)
leaq -0x118(%rbp), %rsi
callq 0x6230
jmp 0x5e3f
leaq -0x98(%rbp), %rdi
movq $0x3, -0x120(%rbp)
leaq -0x120(%rbp), %rsi
callq 0x6230
jmp 0x5e5f
leaq -0xe8(%rbp), %rax
movq %rax, -0x88(%rbp)
movq $0x6, -0x80(%rbp)
leaq -0x121(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x6260
movq -0x1e8(%rbp), %rcx
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
leaq -0x78(%rbp), %rdi
callq 0x6280
jmp 0x5ea5
leaq -0x60(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x61d0
jmp 0x5eb4
leaq -0x78(%rbp), %rdi
callq 0x6330
leaq -0x121(%rbp), %rdi
callq 0x6350
leaq -0x60(%rbp), %rdi
callq 0x6370
jmp 0x5ed4
leaq -0x60(%rbp), %rdi
movl $0x1, %esi
callq 0x6430
jmp 0x5ee4
movl $0x3e8, -0x1b4(%rbp)    # imm = 0x3E8
leaq -0x1b0(%rbp), %rdi
leaq -0x1b4(%rbp), %rsi
callq 0x6200
jmp 0x5f03
leaq -0x1a0(%rbp), %rdi
movl $0x4d2, -0x1b8(%rbp)    # imm = 0x4D2
leaq -0x1b8(%rbp), %rsi
callq 0x6200
jmp 0x5f22
leaq -0x190(%rbp), %rdi
movl $0x2694, -0x1bc(%rbp)   # imm = 0x2694
leaq -0x1bc(%rbp), %rsi
callq 0x6200
jmp 0x5f41
leaq -0x180(%rbp), %rdi
movq $0x5, -0x1c8(%rbp)
leaq -0x1c8(%rbp), %rsi
callq 0x6230
jmp 0x5f61
leaq -0x170(%rbp), %rdi
movq $0xa, -0x1d0(%rbp)
leaq -0x1d0(%rbp), %rsi
callq 0x6230
jmp 0x5f81
leaq -0x160(%rbp), %rdi
movq $0x3, -0x1d8(%rbp)
leaq -0x1d8(%rbp), %rsi
callq 0x6230
jmp 0x5fa1
leaq -0x1b0(%rbp), %rax
movq %rax, -0x150(%rbp)
movq $0x6, -0x148(%rbp)
leaq -0x1d9(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
callq 0x6260
movq -0x1f0(%rbp), %rcx
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
leaq -0x140(%rbp), %rdi
callq 0x6280
jmp 0x5ff0
leaq -0x60(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x61d0
jmp 0x6002
leaq -0x140(%rbp), %rdi
callq 0x6330
leaq -0x1d9(%rbp), %rdi
callq 0x6350
leaq -0x60(%rbp), %rdi
callq 0x6370
jmp 0x6025
movl $0x0, -0x4(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x64b0
movl -0x4(%rbp), %eax
addq $0x1f0, %rsp            # imm = 0x1F0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x60d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x6084
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x6330
leaq -0x121(%rbp), %rdi
callq 0x6350
jmp 0x60d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x60c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x6330
leaq -0x1d9(%rbp), %rdi
callq 0x6350
leaq -0x60(%rbp), %rdi
callq 0x64b0
movq -0xf8(%rbp), %rdi
callq 0x21e0
nopw %cs:(%rax,%rax)
nop