// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x488, %rsp            # imm = 0x488
leaq 0x230(%rsp), %rsi
movq $0x0, 0x8(%rsi)
leaq 0xef(%rsp), %r15
movq %r15, (%rsi)
leaq 0x8115(%rip), %r12      # 0x23aa6
movq %r12, 0x18(%rsi)
leaq 0x813e(%rip), %r13      # 0x23ada
movq %r13, 0x10(%rsi)
xorps %xmm0, %xmm0
movq %rsp, %rdx
movaps %xmm0, (%rdx)
movl $0x1, (%rdx)
leaq 0x5a4c(%rip), %rbp      # 0x21402
movq %rbp, 0x18(%rdx)
leaq 0x5a49(%rip), %rax      # 0x2140a
movq %rax, 0x10(%rdx)
leaq 0x250(%rsp), %rbx
movq %rbx, %rdi
callq 0x20a38
leaq 0x2c0(%rsp), %rdi
leaq 0x210(%rsp), %rsi
movq $0x0, 0x8(%rsi)
movq %r15, (%rsi)
movq %r12, 0x18(%rsi)
movq %r13, 0x10(%rsi)
leaq 0xf0(%rsp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
leaq 0x4115(%rip), %rax      # 0x1fb22
movq %rax, 0x18(%rdx)
leaq 0x4112(%rip), %rax      # 0x1fb2a
movq %rax, 0x10(%rdx)
leaq 0x1b0(%rsp), %rcx
movaps %xmm0, (%rcx)
leaq 0x4122(%rip), %rax      # 0x1fb50
movq %rax, 0x18(%rcx)
leaq 0x412b(%rip), %rax      # 0x1fb64
movq %rax, 0x10(%rcx)
callq 0x20b5c
leaq 0x330(%rsp), %rdi
leaq 0x1f0(%rsp), %rsi
movq $0x0, 0x8(%rsi)
movq %r15, (%rsi)
movq %r12, 0x18(%rsi)
movq %r13, 0x10(%rsi)
xorps %xmm0, %xmm0
leaq 0x190(%rsp), %rdx
movaps %xmm0, (%rdx)
movl $0x8, (%rdx)
leaq 0x59b0(%rip), %rbx      # 0x21430
movq %rbx, 0x18(%rdx)
leaq 0x59a9(%rip), %r14      # 0x21434
movq %r14, 0x10(%rdx)
callq 0x20c82
leaq 0x3a0(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
movq $0x0, 0x8(%rsi)
movq %r15, (%rsi)
movq %r12, 0x18(%rsi)
movq %r13, 0x10(%rsi)
leaq 0x170(%rsp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
movl $0x8, (%rdx)
movq %rbx, 0x18(%rdx)
movq %r14, 0x10(%rdx)
leaq 0x150(%rsp), %rcx
movaps %xmm0, (%rcx)
leaq 0x40a5(%rip), %rax      # 0x1fb8a
movq %rax, 0x18(%rcx)
leaq 0x40a0(%rip), %rax      # 0x1fb90
movq %rax, 0x10(%rcx)
callq 0x20da6
leaq 0x410(%rsp), %rbx
movq $0x0, 0x118(%rsp)
movq %r15, 0x110(%rsp)
movq %r12, 0x128(%rsp)
movq %r13, 0x120(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xa0(%rsp)
movl $0x1, 0xa0(%rsp)
movq %rbp, 0xb8(%rsp)
leaq 0x58c0(%rip), %r13      # 0x2140a
movq %r13, 0xb0(%rsp)
movaps %xmm0, 0x60(%rsp)
movl $0x3, 0x60(%rsp)
movq %rbp, 0x78(%rsp)
movq %r13, 0x70(%rsp)
movaps %xmm0, 0x20(%rsp)
movl $0x5, 0x20(%rsp)
movq %rbp, 0x38(%rsp)
movq %r13, 0x30(%rsp)
movaps %xmm0, 0x40(%rsp)
leaq 0x40e4(%rip), %r14      # 0x1fc70
movq %r14, 0x58(%rsp)
leaq 0x40e0(%rip), %r12      # 0x1fc78
movq %r12, 0x50(%rsp)
movaps %xmm0, 0x80(%rsp)
movaps %xmm0, 0x90(%rsp)
movl $0x40, %edi
callq 0xd500
leaq 0xc0(%rsp), %r15
movq %rbp, 0x18(%rax)
movaps 0x20(%rsp), %xmm0
movups %xmm0, (%rax)
movq %r13, 0x10(%rax)
movq %r14, 0x38(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rax)
movq %r12, 0x30(%rax)
movq %rax, 0x80(%rsp)
leaq 0x40b1(%rip), %r12      # 0x1fc9e
movq %r12, 0x98(%rsp)
leaq 0x40e8(%rip), %r14      # 0x1fce4
movq %r14, 0x90(%rsp)
movups %xmm0, 0x10(%r15)
movups %xmm0, (%r15)
movl $0x40, %edi
callq 0xd500
leaq 0x80(%rsp), %rcx
movq %rbp, 0x18(%rax)
movaps -0x20(%rcx), %xmm0
movups %xmm0, (%rax)
movq %r13, 0x10(%rax)
movq %r12, 0x38(%rax)
movups (%rcx), %xmm0
movups %xmm0, 0x20(%rax)
movq %r14, 0x30(%rax)
movq %rax, 0xc0(%rsp)
leaq 0x4184(%rip), %r12      # 0x1fdd0
movq %r12, 0xd8(%rsp)
leaq 0x41bb(%rip), %r14      # 0x1fe16
movq %r14, 0xd0(%rsp)
movq $0x0, 0x138(%rsp)
movl $0x40, %edi
callq 0xd500
movq %rbp, 0x18(%rax)
movaps 0xa0(%rsp), %xmm0
movups %xmm0, (%rax)
movq %r13, 0x10(%rax)
movq %r12, 0x38(%rax)
movups (%r15), %xmm0
movups %xmm0, 0x20(%rax)
movq %r14, 0x30(%rax)
leaq 0x130(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x4254(%rip), %rax      # 0x1ff02
movq %rax, 0x18(%rdx)
leaq 0x428f(%rip), %rax      # 0x1ff48
movq %rax, 0x10(%rdx)
leaq 0x110(%rsp), %rsi
movq %rbx, %rdi
callq 0x20a38
movq 0x140(%rsp), %rax
testq %rax, %rax
leaq 0x2c0(%rsp), %r14
je 0x1bcf4
leaq 0x130(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x120(%rsp), %rax
testq %rax, %rax
je 0x1bd13
leaq 0x110(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x160(%rsp), %rax
testq %rax, %rax
je 0x1bd32
leaq 0x150(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x180(%rsp), %rax
testq %rax, %rax
je 0x1bd51
leaq 0x170(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x1e0(%rsp), %rax
testq %rax, %rax
je 0x1bd70
leaq 0x1d0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x1a0(%rsp), %rax
testq %rax, %rax
je 0x1bd8f
leaq 0x190(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x200(%rsp), %rax
testq %rax, %rax
je 0x1bdae
leaq 0x1f0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x1c0(%rsp), %rax
testq %rax, %rax
je 0x1bdcd
leaq 0x1b0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x100(%rsp), %rax
testq %rax, %rax
je 0x1bdec
leaq 0xf0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x220(%rsp), %rax
testq %rax, %rax
je 0x1be0b
leaq 0x210(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x1be22
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x240(%rsp), %rax
testq %rax, %rax
je 0x1be41
leaq 0x230(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x250(%rsp), %rdi
movl $0x1, %esi
callq 0x20ecc
movb %al, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
testb %al, %al
jne 0x1bf14
leaq 0x68(%rsp), %rbp
leaq 0xa0(%rsp), %rdi
callq 0x4ca86
leaq 0x5144f(%rip), %rdx     # 0x6d2d0
leaq 0x5027e(%rip), %rcx     # 0x6c106
leaq 0x5027d(%rip), %r8      # 0x6c10c
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46893
movq 0x20(%rsp), %r8
leaq 0x50ffa(%rip), %rdx     # 0x6cea4
movq %rsp, %rdi
movl $0x1, %esi
movl $0x83, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1beef
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1bf02
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1bf14
movq %rbp, %rdi
callq 0x153ca
leaq 0x250(%rsp), %rdi
xorl %esi, %esi
callq 0x20ecc
movl %eax, %ecx
xorb $0x1, %cl
movb %cl, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
testb %al, %al
je 0x1bfe9
leaq 0x68(%rsp), %rbp
leaq 0xa0(%rsp), %rdi
callq 0x4ca86
leaq 0x51390(%rip), %rdx     # 0x6d2e6
leaq 0x501af(%rip), %rcx     # 0x6c10c
leaq 0x501a2(%rip), %r8      # 0x6c106
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46893
movq 0x20(%rsp), %r8
leaq 0x50f25(%rip), %rdx     # 0x6cea4
movq %rsp, %rdi
movl $0x1, %esi
movl $0x84, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1bfc4
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1bfd7
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1bfe9
movq %rbp, %rdi
callq 0x153ca
movq %r14, %rdi
movl $0x6, %esi
callq 0x20ecc
movb %al, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
testb %al, %al
jne 0x1c0b7
leaq 0x68(%rsp), %rbp
leaq 0xa0(%rsp), %rdi
callq 0x4ca86
leaq 0x512d8(%rip), %rdx     # 0x6d2fc
leaq 0x500db(%rip), %rcx     # 0x6c106
leaq 0x500da(%rip), %r8      # 0x6c10c
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46893
movq 0x20(%rsp), %r8
leaq 0x50e57(%rip), %rdx     # 0x6cea4
movq %rsp, %rdi
movl $0x1, %esi
movl $0x86, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c092
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1c0a5
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1c0b7
movq %rbp, %rdi
callq 0x153ca
movq %r14, %rdi
movl $0x3, %esi
callq 0x20ecc
movl %eax, %ecx
xorb $0x1, %cl
movb %cl, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
testb %al, %al
je 0x1c18a
leaq 0x68(%rsp), %rbp
leaq 0xa0(%rsp), %rdi
callq 0x4ca86
leaq 0x5121b(%rip), %rdx     # 0x6d312
leaq 0x5000e(%rip), %rcx     # 0x6c10c
leaq 0x50001(%rip), %r8      # 0x6c106
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46893
movq 0x20(%rsp), %r8
leaq 0x50d84(%rip), %rdx     # 0x6cea4
movq %rsp, %rdi
movl $0x1, %esi
movl $0x87, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c165
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1c178
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1c18a
movq %rbp, %rdi
callq 0x153ca
movq %r14, %rdi
movl $0x4, %esi
callq 0x20ecc
movl %eax, %ecx
xorb $0x1, %cl
movb %cl, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
testb %al, %al
je 0x1c25d
leaq 0x68(%rsp), %r13
leaq 0xa0(%rsp), %rdi
callq 0x4ca86
leaq 0x5115e(%rip), %rdx     # 0x6d328
leaq 0x4ff3b(%rip), %rcx     # 0x6c10c
leaq 0x4ff2e(%rip), %r8      # 0x6c106
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46893
movq 0x20(%rsp), %r8
leaq 0x50cb1(%rip), %rdx     # 0x6cea4
movq %rsp, %rdi
movl $0x1, %esi
movl $0x88, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c238
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1c24b
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1c25d
movq %r13, %rdi
callq 0x153ca
leaq 0xf0(%rsp), %rsi
movl $0x0, (%rsi)
leaq 0x250(%rsp), %rdi
callq 0x20f2c
leaq 0x60(%rsp), %rcx
movl $0x0, (%rcx)
leaq 0x56a7e(%rip), %rsi     # 0x72d08
leaq 0x510ad(%rip), %rdx     # 0x6d33e
leaq 0x20(%rsp), %rdi
leaq 0xf0(%rsp), %r8
callq 0x157b7
cmpb $0x0, 0x20(%rsp)
jne 0x1c317
leaq 0x60(%rsp), %rdi
callq 0x4ca86
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x1c2c3
movq (%rax), %r8
jmp 0x1c2ca
leaq 0x52d0b(%rip), %r8      # 0x6efd5
leaq 0x50bd3(%rip), %rdx     # 0x6cea4
leaq 0xa0(%rsp), %rdi
movl $0x1, %esi
movl $0x8c, %ecx
callq 0x4902a
leaq 0xa0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46a1c
leaq 0xa0(%rsp), %rdi
callq 0x49096
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x1c317
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x28(%rsp), %rsi
testq %rsi, %rsi
je 0x1c32b
leaq 0x28(%rsp), %rdi
callq 0x153ca
leaq 0xf0(%rsp), %rsi
movl $0x0, (%rsi)
leaq 0x330(%rsp), %rdi
callq 0x20f2c
leaq 0x60(%rsp), %rcx
movl $0x8, (%rcx)
leaq 0x552e4(%rip), %rsi     # 0x7163c
leaq 0x50fdf(%rip), %rdx     # 0x6d33e
leaq 0x20(%rsp), %rdi
leaq 0xf0(%rsp), %r8
callq 0x157b7
cmpb $0x0, 0x20(%rsp)
jne 0x1c3e5
leaq 0x60(%rsp), %rdi
callq 0x4ca86
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x1c391
movq (%rax), %r8
jmp 0x1c398
leaq 0x52c3d(%rip), %r8      # 0x6efd5
leaq 0x50b05(%rip), %rdx     # 0x6cea4
leaq 0xa0(%rsp), %rdi
movl $0x1, %esi
movl $0x90, %ecx
callq 0x4902a
leaq 0xa0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46a1c
leaq 0xa0(%rsp), %rdi
callq 0x49096
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x1c3e5
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x28(%rsp), %rsi
testq %rsi, %rsi
je 0x1c3f9
leaq 0x28(%rsp), %rdi
callq 0x153ca
leaq 0xf0(%rsp), %rsi
movl $0x0, (%rsi)
leaq 0x3a0(%rsp), %rdi
callq 0x20f2c
leaq 0x60(%rsp), %rcx
movl $0x9, (%rcx)
leaq 0x50f1d(%rip), %rsi     # 0x6d343
leaq 0x50f11(%rip), %rdx     # 0x6d33e
leaq 0x20(%rsp), %rdi
leaq 0xf0(%rsp), %r8
callq 0x157b7
cmpb $0x0, 0x20(%rsp)
jne 0x1c4b3
leaq 0x60(%rsp), %rdi
callq 0x4ca86
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x1c45f
movq (%rax), %r8
jmp 0x1c466
leaq 0x52b6f(%rip), %r8      # 0x6efd5
leaq 0x50a37(%rip), %rdx     # 0x6cea4
leaq 0xa0(%rsp), %rdi
movl $0x1, %esi
movl $0x94, %ecx
callq 0x4902a
leaq 0xa0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46a1c
leaq 0xa0(%rsp), %rdi
callq 0x49096
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x1c4b3
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x28(%rsp), %rsi
testq %rsi, %rsi
je 0x1c4c7
leaq 0x28(%rsp), %rdi
callq 0x153ca
movq %rbx, %rdi
movl $0x8, %esi
callq 0x20ecc
movb %al, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
testb %al, %al
jne 0x1c595
leaq 0x68(%rsp), %r15
leaq 0xa0(%rsp), %rdi
callq 0x4ca86
leaq 0x50e43(%rip), %rdx     # 0x6d345
leaq 0x4fbfd(%rip), %rcx     # 0x6c106
leaq 0x4fbfc(%rip), %r8      # 0x6c10c
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46893
movq 0x20(%rsp), %r8
leaq 0x50979(%rip), %rdx     # 0x6cea4
movq %rsp, %rdi
movl $0x1, %esi
movl $0x96, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c570
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1c583
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1c595
movq %r15, %rdi
callq 0x153ca
movq %rbx, %rdi
movl $0x1, %esi
callq 0x20ecc
movb %al, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
testb %al, %al
jne 0x1c663
leaq 0x68(%rsp), %r15
leaq 0xa0(%rsp), %rdi
callq 0x4ca86
leaq 0x50d8b(%rip), %rdx     # 0x6d35b
leaq 0x4fb2f(%rip), %rcx     # 0x6c106
leaq 0x4fb2e(%rip), %r8      # 0x6c10c
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46893
movq 0x20(%rsp), %r8
leaq 0x508ab(%rip), %rdx     # 0x6cea4
movq %rsp, %rdi
movl $0x1, %esi
movl $0x97, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c63e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1c651
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1c663
movq %r15, %rdi
callq 0x153ca
movq %rbx, %rdi
movl $0x3, %esi
callq 0x20ecc
movb %al, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
testb %al, %al
jne 0x1c731
leaq 0x68(%rsp), %r15
leaq 0xa0(%rsp), %rdi
callq 0x4ca86
leaq 0x50cd3(%rip), %rdx     # 0x6d371
leaq 0x4fa61(%rip), %rcx     # 0x6c106
leaq 0x4fa60(%rip), %r8      # 0x6c10c
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46893
movq 0x20(%rsp), %r8
leaq 0x507dd(%rip), %rdx     # 0x6cea4
movq %rsp, %rdi
movl $0x1, %esi
movl $0x98, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c70c
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1c71f
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1c731
movq %r15, %rdi
callq 0x153ca
movq %rbx, %rdi
movl $0x5, %esi
callq 0x20ecc
movb %al, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
testb %al, %al
jne 0x1c7ff
leaq 0x68(%rsp), %r15
leaq 0xa0(%rsp), %rdi
callq 0x4ca86
leaq 0x50c1b(%rip), %rdx     # 0x6d387
leaq 0x4f993(%rip), %rcx     # 0x6c106
leaq 0x4f992(%rip), %r8      # 0x6c10c
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46893
movq 0x20(%rsp), %r8
leaq 0x5070f(%rip), %rdx     # 0x6cea4
movq %rsp, %rdi
movl $0x1, %esi
movl $0x99, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c7da
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1c7ed
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1c7ff
movq %r15, %rdi
callq 0x153ca
movq %rbx, %rdi
movl $0x7, %esi
callq 0x20ecc
movl %eax, %ecx
xorb $0x1, %cl
movb %cl, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
testb %al, %al
je 0x1c8d2
leaq 0x68(%rsp), %rbx
leaq 0xa0(%rsp), %rdi
callq 0x4ca86
leaq 0x50b5e(%rip), %rdx     # 0x6d39d
leaq 0x4f8c6(%rip), %rcx     # 0x6c10c
leaq 0x4f8b9(%rip), %r8      # 0x6c106
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x46893
movq 0x20(%rsp), %r8
leaq 0x5063c(%rip), %rdx     # 0x6cea4
movq %rsp, %rdi
movl $0x1, %esi
movl $0x9a, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c8ad
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1c8c0
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1c8d2
movq %rbx, %rdi
callq 0x153ca
movl $0x230, %r14d           # imm = 0x230
leaq (%rsp,%r14), %rdi
addq $0x230, %rdi            # imm = 0x230
callq 0x2145a
leaq (%rsp,%r14), %rdi
addq $0x218, %rdi            # imm = 0x218
callq 0x2148a
leaq (%rsp,%r14), %rbx
addq $0x200, %rbx            # imm = 0x200
movq %rbx, %rdi
callq 0x214ba
movq -0x10(%rbx), %rax
testq %rax, %rax
je 0x1c929
leaq (%rsp,%r14), %rdi
addq $0x1e0, %rdi            # imm = 0x1E0
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
addq $-0x70, %r14
jne 0x1c8d8
addq $0x488, %rsp            # imm = 0x488
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq %rsp, %rdi
callq 0x49096
jmp 0x1c951
movq %rax, %r14
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c971
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x1c971
movq %rax, %r14
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1c989
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x1c989
movq %rax, %r14
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1ce1c
movq %rbx, %rdi
jmp 0x1cb2f
jmp 0x1c9b7
jmp 0x1c9c4
jmp 0x1c9e4
jmp 0x1c9fc
jmp 0x1c9b7
jmp 0x1c9c4
jmp 0x1c9e4
jmp 0x1c9fc
jmp 0x1c9b7
jmp 0x1c9c4
jmp 0x1c9e4
jmp 0x1c9fc
movq %rax, %r14
movq %rsp, %rdi
callq 0x49096
jmp 0x1c9c7
movq %rax, %r14
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c9e7
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x1c9e7
movq %rax, %r14
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1c9ff
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x1c9ff
movq %rax, %r14
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1ce1c
movq %r15, %rdi
jmp 0x1cb2f
jmp 0x1ca21
jmp 0x1ca33
jmp 0x1ca48
jmp 0x1ca21
jmp 0x1ca33
jmp 0x1ca48
movq %rax, %r14
leaq 0xa0(%rsp), %rdi
callq 0x49096
jmp 0x1ca36
movq %rax, %r14
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x1ca4b
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x1ca4b
movq %rax, %r14
movq 0x28(%rsp), %rsi
testq %rsi, %rsi
je 0x1ce1c
leaq 0x28(%rsp), %rdi
jmp 0x1cb2f
movq %rax, %r14
movq %rsp, %rdi
callq 0x49096
jmp 0x1ca73
movq %rax, %r14
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ca93
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x1ca93
movq %rax, %r14
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1caab
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x1caab
movq %rax, %r14
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1ce1c
movq %r13, %rdi
jmp 0x1cb2f
jmp 0x1cad6
jmp 0x1cae3
jmp 0x1cb03
jmp 0x1cb1b
jmp 0x1cad6
jmp 0x1cae3
jmp 0x1cb03
jmp 0x1cb1b
jmp 0x1cad6
jmp 0x1cae3
jmp 0x1cb03
jmp 0x1cb1b
movq %rax, %r14
movq %rsp, %rdi
callq 0x49096
jmp 0x1cae6
movq %rax, %r14
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1cb06
movq 0x30(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x1cb06
movq %rax, %r14
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x1cb1e
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x1cb1e
movq %rax, %r14
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x1ce1c
movq %rbp, %rdi
callq 0x153ca
jmp 0x1ce1c
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
jmp 0x1ce19
movq %rax, %r14
movq 0x140(%rsp), %rax
testq %rax, %rax
je 0x1cc45
leaq 0x130(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x1cc45
jmp 0x1ce43
movq %rax, %r14
leaq 0xa0(%rsp), %rdi
callq 0x1fbb6
jmp 0x1cc45
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x1fbf4
jmp 0x1cc26
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0x1fc32
movq 0x70(%rsp), %rax
testq %rax, %rax
je 0x1cc26
leaq 0x60(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0xb0(%rsp), %rax
testq %rax, %rax
je 0x1cc45
leaq 0xa0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x120(%rsp), %rax
testq %rax, %rax
je 0x1cc80
leaq 0x110(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x1cc80
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
movq %rax, %r14
leaq 0x3a0(%rsp), %rbx
movq 0x160(%rsp), %rax
testq %rax, %rax
je 0x1cc9f
leaq 0x150(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x180(%rsp), %rax
testq %rax, %rax
je 0x1ccbe
leaq 0x170(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x1e0(%rsp), %rax
testq %rax, %rax
je 0x1ccf9
leaq 0x1d0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x1ccf9
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
movq %rax, %r14
leaq 0x330(%rsp), %rbx
movq 0x1a0(%rsp), %rax
testq %rax, %rax
je 0x1cd18
leaq 0x190(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x200(%rsp), %rax
testq %rax, %rax
je 0x1cd4e
leaq 0x1f0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x1cd4e
jmp 0x1ce43
jmp 0x1ce43
movq %rax, %r14
leaq 0x2c0(%rsp), %rbx
movq 0x1c0(%rsp), %rax
testq %rax, %rax
je 0x1cd6d
leaq 0x1b0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x100(%rsp), %rax
testq %rax, %rax
je 0x1cd8c
leaq 0xf0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x220(%rsp), %rax
testq %rax, %rax
je 0x1cdbf
leaq 0x210(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x1cdbf
jmp 0x1ce43
jmp 0x1ce43
jmp 0x1ce43
movq %rax, %r14
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x1cdd6
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x240(%rsp), %rax
testq %rax, %rax
je 0x1cdf5
leaq 0x230(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x250(%rsp), %r15
cmpq %rbx, %r15
je 0x1ce3b
addq $-0x70, %rbx
movq %rbx, %rdi
callq 0x206e8
cmpq %r15, %rbx
jne 0x1ce02
jmp 0x1ce3b
jmp 0x1ce43
jmp 0x1ce43
movq %rax, %r14
movl $0x1c0, %ebx            # imm = 0x1C0
leaq (%rsp,%rbx), %rdi
addq $0x250, %rdi            # imm = 0x250
callq 0x206e8
addq $-0x70, %rbx
cmpq $-0x70, %rbx
jne 0x1ce21
movq %r14, %rdi
callq 0xda70
movq %rax, %rdi
callq 0x1536f
nop