// File: halfflat[P]tinyopt/test/test_option.cc
// Function: option_modals_Test::TestBody()
TEST(option, modals) {
    bool a;
    to::option opts[] = {
        {a, to::when(1)},
        {a, to::when([](int k) { return k%2==0; }), to::when([](int k) { return k%3==0; })},
        {a, to::then(8)},
        {a, to::then(8), to::then([](int m) {return m+1;})},
        {a, to::when(1, 3, 5, [](int k) { return k%2==0; })}
    };

    EXPECT_TRUE(opts[0].check_mode(1));
    EXPECT_FALSE(opts[0].check_mode(0));

    EXPECT_TRUE(opts[1].check_mode(6));
    EXPECT_FALSE(opts[1].check_mode(3));
    EXPECT_FALSE(opts[1].check_mode(4));

    int mode = 0;
    opts[0].set_mode(mode);
    EXPECT_EQ(0, mode);

    mode = 0;
    opts[2].set_mode(mode);
    EXPECT_EQ(8, mode);

    mode = 0;
    opts[3].set_mode(mode);
    EXPECT_EQ(9, mode);

    EXPECT_TRUE(opts[4].check_mode(8));
    EXPECT_TRUE(opts[4].check_mode(1));
    EXPECT_TRUE(opts[4].check_mode(3));
    EXPECT_TRUE(opts[4].check_mode(5));
    EXPECT_FALSE(opts[4].check_mode(7));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x800, %rsp            # imm = 0x800
movq %rdi, -0x8(%rbp)
movb $0x1, -0x3fa(%rbp)
leaq -0x240(%rbp), %rax
movq %rax, -0x248(%rbp)
leaq -0x268(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x39180
jmp 0x300b6
leaq -0x298(%rbp), %rdi
movl $0x1, %esi
callq 0x38a90
jmp 0x300c9
leaq -0x240(%rbp), %rdi
leaq -0x268(%rbp), %rsi
leaq -0x298(%rbp), %rdx
callq 0x395c0
jmp 0x300e5
leaq -0x1d0(%rbp), %rax
movq %rax, -0x758(%rbp)
movq %rax, -0x248(%rbp)
leaq -0x2b8(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x39180
jmp 0x3010c
leaq -0x2d8(%rbp), %rdi
callq 0x31a20
jmp 0x3011a
leaq -0x300(%rbp), %rdi
callq 0x31a50
jmp 0x30128
movq -0x758(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
leaq -0x2d8(%rbp), %rdx
leaq -0x300(%rbp), %rcx
callq 0x396b0
jmp 0x3014b
leaq -0x160(%rbp), %rax
movq %rax, -0x760(%rbp)
movq %rax, -0x248(%rbp)
leaq -0x328(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x39180
jmp 0x30172
leaq -0x348(%rbp), %rdi
movl $0x8, %esi
callq 0x38ac0
jmp 0x30185
movq -0x760(%rbp), %rdi
leaq -0x328(%rbp), %rsi
leaq -0x348(%rbp), %rdx
callq 0x397b0
jmp 0x301a1
leaq -0xf0(%rbp), %rax
movq %rax, -0x768(%rbp)
movq %rax, -0x248(%rbp)
leaq -0x368(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x39180
jmp 0x301c8
leaq -0x388(%rbp), %rdi
movl $0x8, %esi
callq 0x38ac0
jmp 0x301db
leaq -0x3a8(%rbp), %rdi
callq 0x31a80
jmp 0x301e9
movq -0x768(%rbp), %rdi
leaq -0x368(%rbp), %rsi
leaq -0x388(%rbp), %rdx
leaq -0x3a8(%rbp), %rcx
callq 0x398a0
jmp 0x3020c
leaq -0x80(%rbp), %rax
movq %rax, -0x770(%rbp)
movq %rax, -0x248(%rbp)
leaq -0x3d0(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x39180
jmp 0x30230
movl $0x3, -0x3f4(%rbp)
movl $0x5, -0x3f8(%rbp)
leaq -0x3f0(%rbp), %rdi
movl $0x1, %esi
leaq -0x3f4(%rbp), %rdx
leaq -0x3f8(%rbp), %rcx
leaq -0x3f9(%rbp), %r8
callq 0x31ab0
jmp 0x3026c
movq -0x770(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
leaq -0x3f0(%rbp), %rdx
callq 0x395c0
jmp 0x30288
movb $0x0, -0x3fa(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x38eb0
leaq -0x3d0(%rbp), %rdi
callq 0x1d540
leaq -0x3a8(%rbp), %rdi
callq 0x38e90
leaq -0x388(%rbp), %rdi
callq 0x38e90
leaq -0x368(%rbp), %rdi
callq 0x1d540
leaq -0x348(%rbp), %rdi
callq 0x38e90
leaq -0x328(%rbp), %rdi
callq 0x1d540
leaq -0x300(%rbp), %rdi
callq 0x38eb0
leaq -0x2d8(%rbp), %rdi
callq 0x38eb0
leaq -0x2b8(%rbp), %rdi
callq 0x1d540
leaq -0x298(%rbp), %rdi
callq 0x38eb0
leaq -0x268(%rbp), %rdi
callq 0x1d540
leaq -0x240(%rbp), %rdi
movl $0x1, %esi
callq 0x399a0
movb %al, -0x771(%rbp)
jmp 0x30338
movb -0x771(%rbp), %al
andb $0x1, %al
movb %al, -0x411(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x410(%rbp), %rdi
leaq -0x411(%rbp), %rsi
callq 0x1d4a0
jmp 0x3035f
leaq -0x410(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x772(%rbp)
jmp 0x30373
movb -0x772(%rbp), %al
testb $0x1, %al
jne 0x30382
jmp 0x305bc
jmp 0x306bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30531
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30519
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x3050d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30501
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x304f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x304e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x304dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x304d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x304c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x304b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x304ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x38eb0
leaq -0x3d0(%rbp), %rdi
callq 0x1d540
leaq -0x3a8(%rbp), %rdi
callq 0x38e90
leaq -0x388(%rbp), %rdi
callq 0x38e90
leaq -0x368(%rbp), %rdi
callq 0x1d540
leaq -0x348(%rbp), %rdi
callq 0x38e90
leaq -0x328(%rbp), %rdi
callq 0x1d540
leaq -0x300(%rbp), %rdi
callq 0x38eb0
leaq -0x2d8(%rbp), %rdi
callq 0x38eb0
leaq -0x2b8(%rbp), %rdi
callq 0x1d540
leaq -0x298(%rbp), %rdi
callq 0x38eb0
leaq -0x268(%rbp), %rdi
callq 0x1d540
testb $0x1, -0x3fa(%rbp)
jne 0x3053c
jmp 0x30589
movq -0x248(%rbp), %rax
leaq -0x240(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x780(%rbp)
je 0x30587
movq -0x780(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x788(%rbp)
callq 0x38ed0
movq -0x788(%rbp), %rax
leaq -0x240(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x780(%rbp)
jne 0x30556
jmp 0x30589
jmp 0x31a0d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x3072d
leaq -0x420(%rbp), %rdi
callq 0x84210
jmp 0x305ca
leaq 0x993c3(%rip), %rdx     # 0xc9994
leaq 0x97e77(%rip), %rcx     # 0xc844f
leaq 0x97e76(%rip), %r8      # 0xc8455
leaq -0x448(%rbp), %rdi
leaq -0x410(%rbp), %rsi
callq 0x7d210
jmp 0x305f4
leaq -0x448(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x98f5e(%rip), %rdx     # 0xc9568
leaq -0x428(%rbp), %rdi
movl $0x1, %esi
movl $0x83, %ecx
callq 0x80580
jmp 0x30622
leaq -0x428(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0x7d370
jmp 0x30637
leaq -0x428(%rbp), %rdi
callq 0x80600
leaq -0x448(%rbp), %rdi
callq 0x10fc8
leaq -0x420(%rbp), %rdi
callq 0x1d500
jmp 0x306bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x306af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x306a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x80600
leaq -0x448(%rbp), %rdi
callq 0x10fc8
leaq -0x420(%rbp), %rdi
callq 0x1d500
jmp 0x3072d
leaq -0x410(%rbp), %rdi
callq 0x1d520
leaq -0x240(%rbp), %rdi
xorl %esi, %esi
callq 0x399a0
movb %al, -0x789(%rbp)
jmp 0x306df
movb -0x789(%rbp), %al
notb %al
andb $0x1, %al
movb %al, -0x459(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x458(%rbp), %rdi
leaq -0x459(%rbp), %rsi
callq 0x1d4a0
jmp 0x30708
leaq -0x458(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x78a(%rbp)
jmp 0x3071c
movb -0x78a(%rbp), %al
testb $0x1, %al
jne 0x30728
jmp 0x30755
jmp 0x30856
leaq -0x410(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x308c7
leaq -0x468(%rbp), %rdi
callq 0x84210
jmp 0x30763
leaq 0x99240(%rip), %rdx     # 0xc99aa
leaq 0x97ce4(%rip), %rcx     # 0xc8455
leaq 0x97cd7(%rip), %r8      # 0xc844f
leaq -0x490(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0x7d210
jmp 0x3078d
leaq -0x490(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x98dc5(%rip), %rdx     # 0xc9568
leaq -0x470(%rbp), %rdi
movl $0x1, %esi
movl $0x84, %ecx
callq 0x80580
jmp 0x307bb
leaq -0x470(%rbp), %rdi
leaq -0x468(%rbp), %rsi
callq 0x7d370
jmp 0x307d0
leaq -0x470(%rbp), %rdi
callq 0x80600
leaq -0x490(%rbp), %rdi
callq 0x10fc8
leaq -0x468(%rbp), %rdi
callq 0x1d500
jmp 0x30856
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30848
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x3083c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x80600
leaq -0x490(%rbp), %rdi
callq 0x10fc8
leaq -0x468(%rbp), %rdi
callq 0x1d500
jmp 0x308c7
leaq -0x458(%rbp), %rdi
callq 0x1d520
leaq -0x1d0(%rbp), %rdi
movl $0x6, %esi
callq 0x399a0
movb %al, -0x78b(%rbp)
jmp 0x3087b
movb -0x78b(%rbp), %al
andb $0x1, %al
movb %al, -0x4a1(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x4a0(%rbp), %rdi
leaq -0x4a1(%rbp), %rsi
callq 0x1d4a0
jmp 0x308a2
leaq -0x4a0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x78c(%rbp)
jmp 0x308b6
movb -0x78c(%rbp), %al
testb $0x1, %al
jne 0x308c2
jmp 0x308ef
jmp 0x309f0
leaq -0x458(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30a63
leaq -0x4b0(%rbp), %rdi
callq 0x84210
jmp 0x308fd
leaq 0x990bc(%rip), %rdx     # 0xc99c0
leaq 0x97b44(%rip), %rcx     # 0xc844f
leaq 0x97b43(%rip), %r8      # 0xc8455
leaq -0x4d8(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x7d210
jmp 0x30927
leaq -0x4d8(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x98c2b(%rip), %rdx     # 0xc9568
leaq -0x4b8(%rbp), %rdi
movl $0x1, %esi
movl $0x86, %ecx
callq 0x80580
jmp 0x30955
leaq -0x4b8(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x7d370
jmp 0x3096a
leaq -0x4b8(%rbp), %rdi
callq 0x80600
leaq -0x4d8(%rbp), %rdi
callq 0x10fc8
leaq -0x4b0(%rbp), %rdi
callq 0x1d500
jmp 0x309f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x309e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x309d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x4b8(%rbp), %rdi
callq 0x80600
leaq -0x4d8(%rbp), %rdi
callq 0x10fc8
leaq -0x4b0(%rbp), %rdi
callq 0x1d500
jmp 0x30a63
leaq -0x4a0(%rbp), %rdi
callq 0x1d520
leaq -0x1d0(%rbp), %rdi
movl $0x3, %esi
callq 0x399a0
movb %al, -0x78d(%rbp)
jmp 0x30a15
movb -0x78d(%rbp), %al
notb %al
andb $0x1, %al
movb %al, -0x4e9(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x4e8(%rbp), %rdi
leaq -0x4e9(%rbp), %rsi
callq 0x1d4a0
jmp 0x30a3e
leaq -0x4e8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x78e(%rbp)
jmp 0x30a52
movb -0x78e(%rbp), %al
testb $0x1, %al
jne 0x30a5e
jmp 0x30a8b
jmp 0x30b8c
leaq -0x4a0(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30bff
leaq -0x4f8(%rbp), %rdi
callq 0x84210
jmp 0x30a99
leaq 0x98f36(%rip), %rdx     # 0xc99d6
leaq 0x979ae(%rip), %rcx     # 0xc8455
leaq 0x979a1(%rip), %r8      # 0xc844f
leaq -0x520(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
callq 0x7d210
jmp 0x30ac3
leaq -0x520(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x98a8f(%rip), %rdx     # 0xc9568
leaq -0x500(%rbp), %rdi
movl $0x1, %esi
movl $0x87, %ecx
callq 0x80580
jmp 0x30af1
leaq -0x500(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
callq 0x7d370
jmp 0x30b06
leaq -0x500(%rbp), %rdi
callq 0x80600
leaq -0x520(%rbp), %rdi
callq 0x10fc8
leaq -0x4f8(%rbp), %rdi
callq 0x1d500
jmp 0x30b8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30b7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30b72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x500(%rbp), %rdi
callq 0x80600
leaq -0x520(%rbp), %rdi
callq 0x10fc8
leaq -0x4f8(%rbp), %rdi
callq 0x1d500
jmp 0x30bff
leaq -0x4e8(%rbp), %rdi
callq 0x1d520
leaq -0x1d0(%rbp), %rdi
movl $0x4, %esi
callq 0x399a0
movb %al, -0x78f(%rbp)
jmp 0x30bb1
movb -0x78f(%rbp), %al
notb %al
andb $0x1, %al
movb %al, -0x531(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x530(%rbp), %rdi
leaq -0x531(%rbp), %rsi
callq 0x1d4a0
jmp 0x30bda
leaq -0x530(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x790(%rbp)
jmp 0x30bee
movb -0x790(%rbp), %al
testb $0x1, %al
jne 0x30bfa
jmp 0x30c27
jmp 0x30d2b
leaq -0x4e8(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30daf
leaq -0x540(%rbp), %rdi
callq 0x84210
jmp 0x30c35
leaq 0x98db0(%rip), %rdx     # 0xc99ec
leaq 0x97812(%rip), %rcx     # 0xc8455
leaq 0x97805(%rip), %r8      # 0xc844f
leaq -0x568(%rbp), %rdi
leaq -0x530(%rbp), %rsi
callq 0x7d210
jmp 0x30c5f
leaq -0x568(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x988f3(%rip), %rdx     # 0xc9568
leaq -0x548(%rbp), %rdi
movl $0x1, %esi
movl $0x88, %ecx
callq 0x80580
jmp 0x30c8d
leaq -0x548(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x7d370
jmp 0x30ca2
leaq -0x548(%rbp), %rdi
callq 0x80600
leaq -0x568(%rbp), %rdi
callq 0x10fc8
leaq -0x540(%rbp), %rdi
callq 0x1d500
jmp 0x30d2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30d1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30d0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x548(%rbp), %rdi
callq 0x80600
leaq -0x568(%rbp), %rdi
callq 0x10fc8
leaq -0x540(%rbp), %rdi
callq 0x1d500
jmp 0x30daf
leaq -0x530(%rbp), %rdi
callq 0x1d520
movl $0x0, -0x56c(%rbp)
leaq -0x240(%rbp), %rdi
leaq -0x56c(%rbp), %rsi
callq 0x39a30
jmp 0x30d56
movl $0x0, -0x584(%rbp)
leaq 0x9ea07(%rip), %rsi     # 0xcf76e
leaq 0x98c94(%rip), %rdx     # 0xc9a02
leaq -0x580(%rbp), %rdi
leaq -0x584(%rbp), %rcx
leaq -0x56c(%rbp), %r8
callq 0x1d5d0
jmp 0x30d8a
leaq -0x580(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x791(%rbp)
jmp 0x30d9e
movb -0x791(%rbp), %al
testb $0x1, %al
jne 0x30daa
jmp 0x30dd7
jmp 0x30e92
leaq -0x530(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30f16
leaq -0x590(%rbp), %rdi
callq 0x84210
jmp 0x30de5
leaq -0x580(%rbp), %rdi
callq 0x1d620
movq %rax, -0x7a0(%rbp)
jmp 0x30dfa
movq -0x7a0(%rbp), %r8
leaq 0x98760(%rip), %rdx     # 0xc9568
leaq -0x598(%rbp), %rdi
movl $0x1, %esi
movl $0x8c, %ecx
callq 0x80580
jmp 0x30e20
leaq -0x598(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0x7d370
jmp 0x30e35
leaq -0x598(%rbp), %rdi
callq 0x80600
leaq -0x590(%rbp), %rdi
callq 0x1d500
jmp 0x30e92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30e81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x598(%rbp), %rdi
callq 0x80600
leaq -0x590(%rbp), %rdi
callq 0x1d500
jmp 0x30f16
leaq -0x580(%rbp), %rdi
callq 0x1d520
movl $0x0, -0x56c(%rbp)
leaq -0x160(%rbp), %rdi
leaq -0x56c(%rbp), %rsi
callq 0x39a30
jmp 0x30ebd
movl $0x8, -0x5ac(%rbp)
leaq 0x9d16e(%rip), %rsi     # 0xce03c
leaq 0x98b2d(%rip), %rdx     # 0xc9a02
leaq -0x5a8(%rbp), %rdi
leaq -0x5ac(%rbp), %rcx
leaq -0x56c(%rbp), %r8
callq 0x1d5d0
jmp 0x30ef1
leaq -0x5a8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x7a1(%rbp)
jmp 0x30f05
movb -0x7a1(%rbp), %al
testb $0x1, %al
jne 0x30f11
jmp 0x30f3e
jmp 0x30ff9
leaq -0x580(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x3107d
leaq -0x5b8(%rbp), %rdi
callq 0x84210
jmp 0x30f4c
leaq -0x5a8(%rbp), %rdi
callq 0x1d620
movq %rax, -0x7b0(%rbp)
jmp 0x30f61
movq -0x7b0(%rbp), %r8
leaq 0x985f9(%rip), %rdx     # 0xc9568
leaq -0x5c0(%rbp), %rdi
movl $0x1, %esi
movl $0x90, %ecx
callq 0x80580
jmp 0x30f87
leaq -0x5c0(%rbp), %rdi
leaq -0x5b8(%rbp), %rsi
callq 0x7d370
jmp 0x30f9c
leaq -0x5c0(%rbp), %rdi
callq 0x80600
leaq -0x5b8(%rbp), %rdi
callq 0x1d500
jmp 0x30ff9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x30fe8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x5c0(%rbp), %rdi
callq 0x80600
leaq -0x5b8(%rbp), %rdi
callq 0x1d500
jmp 0x3107d
leaq -0x5a8(%rbp), %rdi
callq 0x1d520
movl $0x0, -0x56c(%rbp)
leaq -0xf0(%rbp), %rdi
leaq -0x56c(%rbp), %rsi
callq 0x39a30
jmp 0x31024
movl $0x9, -0x5d4(%rbp)
leaq 0x989d2(%rip), %rsi     # 0xc9a07
leaq 0x989c6(%rip), %rdx     # 0xc9a02
leaq -0x5d0(%rbp), %rdi
leaq -0x5d4(%rbp), %rcx
leaq -0x56c(%rbp), %r8
callq 0x1d5d0
jmp 0x31058
leaq -0x5d0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x7b1(%rbp)
jmp 0x3106c
movb -0x7b1(%rbp), %al
testb $0x1, %al
jne 0x31078
jmp 0x310a5
jmp 0x3115d
leaq -0x5a8(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x311cb
leaq -0x5e0(%rbp), %rdi
callq 0x84210
jmp 0x310b3
leaq -0x5d0(%rbp), %rdi
callq 0x1d620
movq %rax, -0x7c0(%rbp)
jmp 0x310c8
movq -0x7c0(%rbp), %r8
leaq 0x98492(%rip), %rdx     # 0xc9568
leaq -0x5e8(%rbp), %rdi
movl $0x1, %esi
movl $0x94, %ecx
callq 0x80580
jmp 0x310ee
leaq -0x5e8(%rbp), %rdi
leaq -0x5e0(%rbp), %rsi
callq 0x7d370
jmp 0x31103
leaq -0x5e8(%rbp), %rdi
callq 0x80600
leaq -0x5e0(%rbp), %rdi
callq 0x1d500
jmp 0x3115d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x3114f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x5e8(%rbp), %rdi
callq 0x80600
leaq -0x5e0(%rbp), %rdi
callq 0x1d500
jmp 0x311cb
leaq -0x5d0(%rbp), %rdi
callq 0x1d520
leaq -0x80(%rbp), %rdi
movl $0x8, %esi
callq 0x399a0
movb %al, -0x7c1(%rbp)
jmp 0x3117f
movb -0x7c1(%rbp), %al
andb $0x1, %al
movb %al, -0x5f9(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x5f8(%rbp), %rdi
leaq -0x5f9(%rbp), %rsi
callq 0x1d4a0
jmp 0x311a6
leaq -0x5f8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x7c2(%rbp)
jmp 0x311ba
movb -0x7c2(%rbp), %al
testb $0x1, %al
jne 0x311c6
jmp 0x311f3
jmp 0x312f4
leaq -0x5d0(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x31362
leaq -0x608(%rbp), %rdi
callq 0x84210
jmp 0x31201
leaq 0x98801(%rip), %rdx     # 0xc9a09
leaq 0x97240(%rip), %rcx     # 0xc844f
leaq 0x9723f(%rip), %r8      # 0xc8455
leaq -0x630(%rbp), %rdi
leaq -0x5f8(%rbp), %rsi
callq 0x7d210
jmp 0x3122b
leaq -0x630(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x98327(%rip), %rdx     # 0xc9568
leaq -0x610(%rbp), %rdi
movl $0x1, %esi
movl $0x96, %ecx
callq 0x80580
jmp 0x31259
leaq -0x610(%rbp), %rdi
leaq -0x608(%rbp), %rsi
callq 0x7d370
jmp 0x3126e
leaq -0x610(%rbp), %rdi
callq 0x80600
leaq -0x630(%rbp), %rdi
callq 0x10fc8
leaq -0x608(%rbp), %rdi
callq 0x1d500
jmp 0x312f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x312e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x312da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x610(%rbp), %rdi
callq 0x80600
leaq -0x630(%rbp), %rdi
callq 0x10fc8
leaq -0x608(%rbp), %rdi
callq 0x1d500
jmp 0x31362
leaq -0x5f8(%rbp), %rdi
callq 0x1d520
leaq -0x80(%rbp), %rdi
movl $0x1, %esi
callq 0x399a0
movb %al, -0x7c3(%rbp)
jmp 0x31316
movb -0x7c3(%rbp), %al
andb $0x1, %al
movb %al, -0x641(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x640(%rbp), %rdi
leaq -0x641(%rbp), %rsi
callq 0x1d4a0
jmp 0x3133d
leaq -0x640(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x7c4(%rbp)
jmp 0x31351
movb -0x7c4(%rbp), %al
testb $0x1, %al
jne 0x3135d
jmp 0x3138a
jmp 0x3148b
leaq -0x5f8(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x314f9
leaq -0x650(%rbp), %rdi
callq 0x84210
jmp 0x31398
leaq 0x98680(%rip), %rdx     # 0xc9a1f
leaq 0x970a9(%rip), %rcx     # 0xc844f
leaq 0x970a8(%rip), %r8      # 0xc8455
leaq -0x678(%rbp), %rdi
leaq -0x640(%rbp), %rsi
callq 0x7d210
jmp 0x313c2
leaq -0x678(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x98190(%rip), %rdx     # 0xc9568
leaq -0x658(%rbp), %rdi
movl $0x1, %esi
movl $0x97, %ecx
callq 0x80580
jmp 0x313f0
leaq -0x658(%rbp), %rdi
leaq -0x650(%rbp), %rsi
callq 0x7d370
jmp 0x31405
leaq -0x658(%rbp), %rdi
callq 0x80600
leaq -0x678(%rbp), %rdi
callq 0x10fc8
leaq -0x650(%rbp), %rdi
callq 0x1d500
jmp 0x3148b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x3147d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x31471
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x658(%rbp), %rdi
callq 0x80600
leaq -0x678(%rbp), %rdi
callq 0x10fc8
leaq -0x650(%rbp), %rdi
callq 0x1d500
jmp 0x314f9
leaq -0x640(%rbp), %rdi
callq 0x1d520
leaq -0x80(%rbp), %rdi
movl $0x3, %esi
callq 0x399a0
movb %al, -0x7c5(%rbp)
jmp 0x314ad
movb -0x7c5(%rbp), %al
andb $0x1, %al
movb %al, -0x689(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x688(%rbp), %rdi
leaq -0x689(%rbp), %rsi
callq 0x1d4a0
jmp 0x314d4
leaq -0x688(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x7c6(%rbp)
jmp 0x314e8
movb -0x7c6(%rbp), %al
testb $0x1, %al
jne 0x314f4
jmp 0x31521
jmp 0x31622
leaq -0x640(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x31690
leaq -0x698(%rbp), %rdi
callq 0x84210
jmp 0x3152f
leaq 0x984ff(%rip), %rdx     # 0xc9a35
leaq 0x96f12(%rip), %rcx     # 0xc844f
leaq 0x96f11(%rip), %r8      # 0xc8455
leaq -0x6c0(%rbp), %rdi
leaq -0x688(%rbp), %rsi
callq 0x7d210
jmp 0x31559
leaq -0x6c0(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x97ff9(%rip), %rdx     # 0xc9568
leaq -0x6a0(%rbp), %rdi
movl $0x1, %esi
movl $0x98, %ecx
callq 0x80580
jmp 0x31587
leaq -0x6a0(%rbp), %rdi
leaq -0x698(%rbp), %rsi
callq 0x7d370
jmp 0x3159c
leaq -0x6a0(%rbp), %rdi
callq 0x80600
leaq -0x6c0(%rbp), %rdi
callq 0x10fc8
leaq -0x698(%rbp), %rdi
callq 0x1d500
jmp 0x31622
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x31614
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x31608
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x6a0(%rbp), %rdi
callq 0x80600
leaq -0x6c0(%rbp), %rdi
callq 0x10fc8
leaq -0x698(%rbp), %rdi
callq 0x1d500
jmp 0x31690
leaq -0x688(%rbp), %rdi
callq 0x1d520
leaq -0x80(%rbp), %rdi
movl $0x5, %esi
callq 0x399a0
movb %al, -0x7c7(%rbp)
jmp 0x31644
movb -0x7c7(%rbp), %al
andb $0x1, %al
movb %al, -0x6d1(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x6d0(%rbp), %rdi
leaq -0x6d1(%rbp), %rsi
callq 0x1d4a0
jmp 0x3166b
leaq -0x6d0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x7c8(%rbp)
jmp 0x3167f
movb -0x7c8(%rbp), %al
testb $0x1, %al
jne 0x3168b
jmp 0x316b8
jmp 0x317b9
leaq -0x688(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x31829
leaq -0x6e0(%rbp), %rdi
callq 0x84210
jmp 0x316c6
leaq 0x9837e(%rip), %rdx     # 0xc9a4b
leaq 0x96d7b(%rip), %rcx     # 0xc844f
leaq 0x96d7a(%rip), %r8      # 0xc8455
leaq -0x708(%rbp), %rdi
leaq -0x6d0(%rbp), %rsi
callq 0x7d210
jmp 0x316f0
leaq -0x708(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x97e62(%rip), %rdx     # 0xc9568
leaq -0x6e8(%rbp), %rdi
movl $0x1, %esi
movl $0x99, %ecx
callq 0x80580
jmp 0x3171e
leaq -0x6e8(%rbp), %rdi
leaq -0x6e0(%rbp), %rsi
callq 0x7d370
jmp 0x31733
leaq -0x6e8(%rbp), %rdi
callq 0x80600
leaq -0x708(%rbp), %rdi
callq 0x10fc8
leaq -0x6e0(%rbp), %rdi
callq 0x1d500
jmp 0x317b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x317ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x3179f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x6e8(%rbp), %rdi
callq 0x80600
leaq -0x708(%rbp), %rdi
callq 0x10fc8
leaq -0x6e0(%rbp), %rdi
callq 0x1d500
jmp 0x31829
leaq -0x6d0(%rbp), %rdi
callq 0x1d520
leaq -0x80(%rbp), %rdi
movl $0x7, %esi
callq 0x399a0
movb %al, -0x7c9(%rbp)
jmp 0x317db
movb -0x7c9(%rbp), %al
notb %al
andb $0x1, %al
movb %al, -0x719(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x718(%rbp), %rdi
leaq -0x719(%rbp), %rsi
callq 0x1d4a0
jmp 0x31804
leaq -0x718(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x7ca(%rbp)
jmp 0x31818
movb -0x7ca(%rbp), %al
testb $0x1, %al
jne 0x31824
jmp 0x31851
jmp 0x31952
leaq -0x6d0(%rbp), %rdi
callq 0x1d520
jmp 0x319bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x319b3
leaq -0x728(%rbp), %rdi
callq 0x84210
jmp 0x3185f
leaq 0x981fb(%rip), %rdx     # 0xc9a61
leaq 0x96be8(%rip), %rcx     # 0xc8455
leaq 0x96bdb(%rip), %r8      # 0xc844f
leaq -0x750(%rbp), %rdi
leaq -0x718(%rbp), %rsi
callq 0x7d210
jmp 0x31889
leaq -0x750(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x97cc9(%rip), %rdx     # 0xc9568
leaq -0x730(%rbp), %rdi
movl $0x1, %esi
movl $0x9a, %ecx
callq 0x80580
jmp 0x318b7
leaq -0x730(%rbp), %rdi
leaq -0x728(%rbp), %rsi
callq 0x7d370
jmp 0x318cc
leaq -0x730(%rbp), %rdi
callq 0x80600
leaq -0x750(%rbp), %rdi
callq 0x10fc8
leaq -0x728(%rbp), %rdi
callq 0x1d500
jmp 0x31952
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x31944
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
jmp 0x31938
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x270(%rbp)
movl %eax, -0x274(%rbp)
leaq -0x730(%rbp), %rdi
callq 0x80600
leaq -0x750(%rbp), %rdi
callq 0x10fc8
leaq -0x728(%rbp), %rdi
callq 0x1d500
jmp 0x319b3
leaq -0x718(%rbp), %rdi
callq 0x1d520
leaq -0x240(%rbp), %rax
movq %rax, -0x7e0(%rbp)
addq $0x230, %rax            # imm = 0x230
movq %rax, -0x7d8(%rbp)
movq -0x7d8(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x7e8(%rbp)
callq 0x38ed0
movq -0x7e0(%rbp), %rcx
movq -0x7e8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x7d8(%rbp)
jne 0x31979
addq $0x800, %rsp            # imm = 0x800
popq %rbp
retq
leaq -0x718(%rbp), %rdi
callq 0x1d520
leaq -0x240(%rbp), %rax
movq %rax, -0x7f8(%rbp)
addq $0x230, %rax            # imm = 0x230
movq %rax, -0x7f0(%rbp)
movq -0x7f0(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x800(%rbp)
callq 0x38ed0
movq -0x7f8(%rbp), %rcx
movq -0x800(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x7f0(%rbp)
jne 0x319da
jmp 0x31a0d
movq -0x270(%rbp), %rdi
callq 0x10e00
nopl (%rax)