// File: halfflat[P]tinyopt/test/test_run.cc
// Function: run_flags_Test::TestBody()
TEST(run, flags) {
    bool a = false, b = false;
    to::option opts[] = {
        { to::set(a), "-a", to::flag },
        { to::set(b), "-b", to::flag }
    };

    mockargs M1("-a\0-b\0");
    auto r1 = to::run(opts, M1.argc, M1.argv);
    EXPECT_TRUE(a);
    EXPECT_TRUE(b);
    EXPECT_EQ(0, M1.argc);
    EXPECT_EQ(nullptr, *M1.argv);
    ASSERT_TRUE(r1);
    EXPECT_EQ((svector{"-a", "-b"}), svector(r1->begin(), r1->end()));

    a = b = false;
    mockargs M2("-c\0");
    auto r2 = to::run(opts, M2.argc, M2.argv);
    EXPECT_FALSE(a);
    EXPECT_FALSE(b);
    EXPECT_EQ(1, M2.argc);
    EXPECT_EQ("-c"s, *M2.argv);
    ASSERT_TRUE(r2);
    EXPECT_TRUE(r2->empty());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x6c0, %rsp            # imm = 0x6C0
movq %rdi, -0x8(%rbp)
movb $0x0, -0x9(%rbp)
movb $0x0, -0xa(%rbp)
movb $0x1, -0x14d(%rbp)
leaq -0xf0(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0x118(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x6df00
jmp 0x6417e
movl $0x1, -0x128(%rbp)
leaq 0x654f1(%rip), %rdx     # 0xc9680
leaq -0xf0(%rbp), %rdi
leaq -0x118(%rbp), %rsi
leaq -0x128(%rbp), %rcx
callq 0x6df30
jmp 0x641ab
leaq -0x80(%rbp), %rax
movq %rax, -0x578(%rbp)
movq %rax, -0xf8(%rbp)
leaq -0x148(%rbp), %rdi
leaq -0xa(%rbp), %rsi
callq 0x6df00
jmp 0x641cf
movq -0x578(%rbp), %rdi
movl $0x1, -0x14c(%rbp)
leaq 0x654a2(%rip), %rdx     # 0xc9689
leaq -0x148(%rbp), %rsi
leaq -0x14c(%rbp), %rcx
callq 0x6df30
jmp 0x641fc
movb $0x0, -0x14d(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x1d540
leaq -0x118(%rbp), %rdi
callq 0x1d540
leaq 0x67861(%rip), %rsi     # 0xcba83
leaq -0x178(%rbp), %rdi
callq 0x4bfe0
jmp 0x64230
movq -0x170(%rbp), %rax
movq %rax, -0x588(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x1b0(%rbp)
movq $0x0, -0x1a0(%rbp)
leaq -0x1b0(%rbp), %rdi
movq %rdi, -0x580(%rbp)
callq 0x611a0
movq -0x588(%rbp), %rcx
movq -0x580(%rbp), %r8
leaq -0x198(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x178(%rbp), %rdx
callq 0x6e040
jmp 0x64290
leaq -0x1b0(%rbp), %rdi
callq 0x61330
xorl %eax, %eax
movl %eax, %edx
leaq -0x1c0(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x1d4a0
jmp 0x642b2
leaq -0x1c0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x589(%rbp)
jmp 0x642c6
movb -0x589(%rbp), %al
testb $0x1, %al
jne 0x642d5
jmp 0x643f1
jmp 0x644f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6432c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64320
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x1d540
leaq -0x118(%rbp), %rdi
callq 0x1d540
testb $0x1, -0x14d(%rbp)
jne 0x64337
jmp 0x64384
movq -0xf8(%rbp), %rax
leaq -0xf0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x598(%rbp)
je 0x64382
movq -0x598(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x38ed0
movq -0x5a0(%rbp), %rax
leaq -0xf0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x598(%rbp)
jne 0x64351
jmp 0x64384
jmp 0x659db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6598d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0x61330
jmp 0x65981
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x65975
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64539
leaq -0x1c8(%rbp), %rdi
callq 0x84210
jmp 0x643ff
leaq 0x6527b(%rip), %rdx     # 0xc9681
leaq 0x64042(%rip), %rcx     # 0xc844f
leaq 0x64041(%rip), %r8      # 0xc8455
leaq -0x1f0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x7d210
jmp 0x64429
leaq -0x1f0(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x6715b(%rip), %rdx     # 0xcb59a
leaq -0x1d0(%rbp), %rdi
movl $0x1, %esi
movl $0x15, %ecx
callq 0x80580
jmp 0x64457
leaq -0x1d0(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x7d370
jmp 0x6446c
leaq -0x1d0(%rbp), %rdi
callq 0x80600
leaq -0x1f0(%rbp), %rdi
callq 0x10fc8
leaq -0x1c8(%rbp), %rdi
callq 0x1d500
jmp 0x644f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x644e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x644d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x80600
leaq -0x1f0(%rbp), %rdi
callq 0x10fc8
leaq -0x1c8(%rbp), %rdi
callq 0x1d500
jmp 0x64539
leaq -0x1c0(%rbp), %rdi
callq 0x1d520
xorl %eax, %eax
movl %eax, %edx
leaq -0x200(%rbp), %rdi
leaq -0xa(%rbp), %rsi
callq 0x1d4a0
jmp 0x64514
leaq -0x200(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x5a1(%rbp)
jmp 0x64528
movb -0x5a1(%rbp), %al
testb $0x1, %al
jne 0x64534
jmp 0x64561
jmp 0x64662
leaq -0x1c0(%rbp), %rdi
callq 0x1d520
jmp 0x65975
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x646c7
leaq -0x208(%rbp), %rdi
callq 0x84210
jmp 0x6456f
leaq 0x65114(%rip), %rdx     # 0xc968a
leaq 0x63ed2(%rip), %rcx     # 0xc844f
leaq 0x63ed1(%rip), %r8      # 0xc8455
leaq -0x230(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x7d210
jmp 0x64599
leaq -0x230(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x66feb(%rip), %rdx     # 0xcb59a
leaq -0x210(%rbp), %rdi
movl $0x1, %esi
movl $0x16, %ecx
callq 0x80580
jmp 0x645c7
leaq -0x210(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x7d370
jmp 0x645dc
leaq -0x210(%rbp), %rdi
callq 0x80600
leaq -0x230(%rbp), %rdi
callq 0x10fc8
leaq -0x208(%rbp), %rdi
callq 0x1d500
jmp 0x64662
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64654
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64648
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x80600
leaq -0x230(%rbp), %rdi
callq 0x10fc8
leaq -0x208(%rbp), %rdi
callq 0x1d500
jmp 0x646c7
leaq -0x200(%rbp), %rdi
callq 0x1d520
movl $0x0, -0x244(%rbp)
leaq 0x6b0ef(%rip), %rsi     # 0xcf76e
leaq 0x66f60(%rip), %rdx     # 0xcb5e6
leaq -0x240(%rbp), %rdi
leaq -0x244(%rbp), %rcx
leaq -0x178(%rbp), %r8
callq 0x1d5d0
jmp 0x646a2
leaq -0x240(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x5a2(%rbp)
jmp 0x646b6
movb -0x5a2(%rbp), %al
testb $0x1, %al
jne 0x646c2
jmp 0x646ef
jmp 0x647a7
leaq -0x200(%rbp), %rdi
callq 0x1d520
jmp 0x65975
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64802
leaq -0x250(%rbp), %rdi
callq 0x84210
jmp 0x646fd
leaq -0x240(%rbp), %rdi
callq 0x1d620
movq %rax, -0x5b0(%rbp)
jmp 0x64712
movq -0x5b0(%rbp), %r8
leaq 0x66e7a(%rip), %rdx     # 0xcb59a
leaq -0x258(%rbp), %rdi
movl $0x1, %esi
movl $0x17, %ecx
callq 0x80580
jmp 0x64738
leaq -0x258(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x7d370
jmp 0x6474d
leaq -0x258(%rbp), %rdi
callq 0x80600
leaq -0x250(%rbp), %rdi
callq 0x1d500
jmp 0x647a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64799
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x80600
leaq -0x250(%rbp), %rdi
callq 0x1d500
jmp 0x64802
leaq -0x240(%rbp), %rdi
callq 0x1d520
movq -0x170(%rbp), %rax
movq (%rax), %r8
leaq 0x65b5e(%rip), %rsi     # 0xca322
leaq 0x66e23(%rip), %rdx     # 0xcb5ee
xorl %eax, %eax
movl %eax, %ecx
leaq -0x268(%rbp), %rdi
callq 0x4c230
jmp 0x647dd
leaq -0x268(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x5b1(%rbp)
jmp 0x647f1
movb -0x5b1(%rbp), %al
testb $0x1, %al
jne 0x647fd
jmp 0x6482a
jmp 0x648e2
leaq -0x240(%rbp), %rdi
callq 0x1d520
jmp 0x65975
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6492c
leaq -0x270(%rbp), %rdi
callq 0x84210
jmp 0x64838
leaq -0x268(%rbp), %rdi
callq 0x1d620
movq %rax, -0x5c0(%rbp)
jmp 0x6484d
movq -0x5c0(%rbp), %r8
leaq 0x66d3f(%rip), %rdx     # 0xcb59a
leaq -0x278(%rbp), %rdi
movl $0x1, %esi
movl $0x18, %ecx
callq 0x80580
jmp 0x64873
leaq -0x278(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x7d370
jmp 0x64888
leaq -0x278(%rbp), %rdi
callq 0x80600
leaq -0x270(%rbp), %rdi
callq 0x1d500
jmp 0x648e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x648d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x80600
leaq -0x270(%rbp), %rdi
callq 0x1d500
jmp 0x6492c
leaq -0x268(%rbp), %rdi
callq 0x1d520
xorl %eax, %eax
movl %eax, %edx
leaq -0x288(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x6e4b0
jmp 0x64907
leaq -0x288(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x5c1(%rbp)
jmp 0x6491b
movb -0x5c1(%rbp), %al
testb $0x1, %al
jne 0x64927
jmp 0x64954
jmp 0x64a62
leaq -0x268(%rbp), %rdi
callq 0x1d520
jmp 0x65975
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64cc4
leaq -0x290(%rbp), %rdi
callq 0x84210
jmp 0x64962
leaq 0x64462(%rip), %rdx     # 0xc8dcb
leaq 0x63adf(%rip), %rcx     # 0xc844f
leaq 0x63ade(%rip), %r8      # 0xc8455
leaq -0x2b8(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x7d210
jmp 0x6498c
leaq -0x2b8(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x66bf8(%rip), %rdx     # 0xcb59a
leaq -0x298(%rbp), %rdi
movl $0x2, %esi
movl $0x19, %ecx
callq 0x80580
jmp 0x649ba
leaq -0x298(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x7d370
jmp 0x649cf
leaq -0x298(%rbp), %rdi
callq 0x80600
leaq -0x2b8(%rbp), %rdi
callq 0x10fc8
leaq -0x290(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x2bc(%rbp)
jmp 0x64a6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64a51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64a45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x80600
leaq -0x2b8(%rbp), %rdi
callq 0x10fc8
leaq -0x290(%rbp), %rdi
callq 0x1d500
jmp 0x64cc4
movl $0x0, -0x2bc(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x1d520
movl -0x2bc(%rbp), %eax
testl %eax, %eax
jne 0x658e4
jmp 0x64a88
movb $0x1, -0x343(%rbp)
leaq -0x338(%rbp), %rax
movq %rax, -0x5d8(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x341(%rbp), %rdi
movq %rdi, -0x5d0(%rbp)
callq 0x10e10
movq -0x5d8(%rbp), %rdi
movq -0x5d0(%rbp), %rdx
leaq 0x64bb4(%rip), %rsi     # 0xc9680
callq 0x1d070
jmp 0x64ad3
leaq -0x318(%rbp), %rax
movq %rax, -0x5e8(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x342(%rbp), %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x10e10
movq -0x5e8(%rbp), %rdi
movq -0x5e0(%rbp), %rdx
leaq 0x64b79(%rip), %rsi     # 0xc9689
callq 0x1d070
jmp 0x64b17
movb $0x0, -0x343(%rbp)
leaq -0x338(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movq $0x2, -0x2f0(%rbp)
leaq -0x344(%rbp), %rdi
movq %rdi, -0x5f0(%rbp)
callq 0x39000
movq -0x5f0(%rbp), %rcx
movq -0x2f8(%rbp), %rsi
movq -0x2f0(%rbp), %rdx
leaq -0x2e8(%rbp), %rdi
callq 0x39020
jmp 0x64b6d
leaq -0x198(%rbp), %rdi
movq %rdi, -0x600(%rbp)
callq 0x6e4f0
movq %rax, %rdi
callq 0x416b0
movq -0x600(%rbp), %rdi
movq %rax, -0x368(%rbp)
callq 0x6e4f0
movq %rax, %rdi
callq 0x416e0
movq %rax, -0x370(%rbp)
leaq -0x371(%rbp), %rdi
movq %rdi, -0x5f8(%rbp)
callq 0x39000
movq -0x5f8(%rbp), %rcx
movq -0x368(%rbp), %rsi
movq -0x370(%rbp), %rdx
leaq -0x360(%rbp), %rdi
callq 0x6e510
jmp 0x64be0
leaq 0x66a10(%rip), %rsi     # 0xcb5f7
leaq 0x66a1f(%rip), %rdx     # 0xcb60d
leaq -0x2d0(%rbp), %rdi
leaq -0x2e8(%rbp), %rcx
leaq -0x360(%rbp), %r8
callq 0x38fb0
jmp 0x64c0a
leaq -0x360(%rbp), %rdi
callq 0x390a0
leaq -0x371(%rbp), %rdi
callq 0x39100
leaq -0x2e8(%rbp), %rdi
callq 0x390a0
leaq -0x344(%rbp), %rdi
callq 0x39100
leaq -0x338(%rbp), %rax
movq %rax, -0x610(%rbp)
addq $0x40, %rax
movq %rax, -0x608(%rbp)
movq -0x608(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x618(%rbp)
callq 0x10fc8
movq -0x610(%rbp), %rcx
movq -0x618(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x608(%rbp)
jne 0x64c53
leaq -0x342(%rbp), %rdi
callq 0x10810
leaq -0x341(%rbp), %rdi
callq 0x10810
leaq -0x2d0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x619(%rbp)
jmp 0x64cb0
movb -0x619(%rbp), %al
testb $0x1, %al
jne 0x64cbf
jmp 0x64e45
jmp 0x64f00
leaq -0x288(%rbp), %rdi
callq 0x1d520
jmp 0x65975
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64dc5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64db9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64d61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64d49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x390a0
leaq -0x371(%rbp), %rdi
callq 0x39100
leaq -0x2e8(%rbp), %rdi
callq 0x390a0
leaq -0x344(%rbp), %rdi
callq 0x39100
leaq -0x338(%rbp), %rax
movq %rax, -0x630(%rbp)
addq $0x40, %rax
movq %rax, -0x628(%rbp)
movq -0x628(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x638(%rbp)
callq 0x10fc8
movq -0x630(%rbp), %rcx
movq -0x638(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x628(%rbp)
jne 0x64d86
jmp 0x64db9
leaq -0x342(%rbp), %rdi
callq 0x10810
leaq -0x341(%rbp), %rdi
callq 0x10810
testb $0x1, -0x343(%rbp)
jne 0x64ddc
jmp 0x64e29
movq -0x340(%rbp), %rax
leaq -0x338(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x640(%rbp)
je 0x64e27
movq -0x640(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x648(%rbp)
callq 0x10fc8
movq -0x648(%rbp), %rax
leaq -0x338(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x640(%rbp)
jne 0x64df6
jmp 0x64e29
jmp 0x65975
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64fe0
leaq -0x380(%rbp), %rdi
callq 0x84210
jmp 0x64e53
leaq -0x2d0(%rbp), %rdi
callq 0x1d620
movq %rax, -0x650(%rbp)
jmp 0x64e68
movq -0x650(%rbp), %r8
leaq 0x66724(%rip), %rdx     # 0xcb59a
leaq -0x388(%rbp), %rdi
movl $0x1, %esi
movl $0x1a, %ecx
callq 0x80580
jmp 0x64e8e
leaq -0x388(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x7d370
jmp 0x64ea3
leaq -0x388(%rbp), %rdi
callq 0x80600
leaq -0x380(%rbp), %rdi
callq 0x1d500
jmp 0x64f00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x64eef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x80600
leaq -0x380(%rbp), %rdi
callq 0x1d500
jmp 0x64fe0
leaq -0x2d0(%rbp), %rdi
callq 0x1d520
movb $0x0, -0xa(%rbp)
movb $0x0, -0x9(%rbp)
leaq 0x66cc8(%rip), %rsi     # 0xcbbe3
leaq -0x3b0(%rbp), %rdi
callq 0x4bfe0
jmp 0x64f29
movq -0x3a8(%rbp), %rax
movq %rax, -0x660(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x3f0(%rbp)
movq $0x0, -0x3e0(%rbp)
leaq -0x3f0(%rbp), %rdi
movq %rdi, -0x658(%rbp)
callq 0x611a0
movq -0x660(%rbp), %rcx
movq -0x658(%rbp), %r8
leaq -0x3d0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x3b0(%rbp), %rdx
callq 0x6e040
jmp 0x64f89
leaq -0x3f0(%rbp), %rdi
callq 0x61330
movb -0x9(%rbp), %al
notb %al
andb $0x1, %al
movb %al, -0x401(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x400(%rbp), %rdi
leaq -0x401(%rbp), %rsi
callq 0x1d4a0
jmp 0x64fbb
leaq -0x400(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x661(%rbp)
jmp 0x64fcf
movb -0x661(%rbp), %al
testb $0x1, %al
jne 0x64fdb
jmp 0x65042
jmp 0x65143
leaq -0x2d0(%rbp), %rdi
callq 0x1d520
jmp 0x65975
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x61330
jmp 0x65969
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6595d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6519a
leaq -0x410(%rbp), %rdi
callq 0x84210
jmp 0x65050
leaq 0x6462a(%rip), %rdx     # 0xc9681
leaq 0x633f7(%rip), %rcx     # 0xc8455
leaq 0x633ea(%rip), %r8      # 0xc844f
leaq -0x438(%rbp), %rdi
leaq -0x400(%rbp), %rsi
callq 0x7d210
jmp 0x6507a
leaq -0x438(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x6650a(%rip), %rdx     # 0xcb59a
leaq -0x418(%rbp), %rdi
movl $0x1, %esi
movl $0x1f, %ecx
callq 0x80580
jmp 0x650a8
leaq -0x418(%rbp), %rdi
leaq -0x410(%rbp), %rsi
callq 0x7d370
jmp 0x650bd
leaq -0x418(%rbp), %rdi
callq 0x80600
leaq -0x438(%rbp), %rdi
callq 0x10fc8
leaq -0x410(%rbp), %rdi
callq 0x1d500
jmp 0x65143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x65135
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x65129
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x80600
leaq -0x438(%rbp), %rdi
callq 0x10fc8
leaq -0x410(%rbp), %rdi
callq 0x1d500
jmp 0x6519a
leaq -0x400(%rbp), %rdi
callq 0x1d520
movb -0xa(%rbp), %al
notb %al
andb $0x1, %al
movb %al, -0x449(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x448(%rbp), %rdi
leaq -0x449(%rbp), %rsi
callq 0x1d4a0
jmp 0x65175
leaq -0x448(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x662(%rbp)
jmp 0x65189
movb -0x662(%rbp), %al
testb $0x1, %al
jne 0x65195
jmp 0x651c2
jmp 0x652c3
leaq -0x400(%rbp), %rdi
callq 0x1d520
jmp 0x6595d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x65328
leaq -0x458(%rbp), %rdi
callq 0x84210
jmp 0x651d0
leaq 0x644b3(%rip), %rdx     # 0xc968a
leaq 0x63277(%rip), %rcx     # 0xc8455
leaq 0x6326a(%rip), %r8      # 0xc844f
leaq -0x480(%rbp), %rdi
leaq -0x448(%rbp), %rsi
callq 0x7d210
jmp 0x651fa
leaq -0x480(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x6638a(%rip), %rdx     # 0xcb59a
leaq -0x460(%rbp), %rdi
movl $0x1, %esi
movl $0x20, %ecx
callq 0x80580
jmp 0x65228
leaq -0x460(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0x7d370
jmp 0x6523d
leaq -0x460(%rbp), %rdi
callq 0x80600
leaq -0x480(%rbp), %rdi
callq 0x10fc8
leaq -0x458(%rbp), %rdi
callq 0x1d500
jmp 0x652c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x652b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x652a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x80600
leaq -0x480(%rbp), %rdi
callq 0x10fc8
leaq -0x458(%rbp), %rdi
callq 0x1d500
jmp 0x65328
leaq -0x448(%rbp), %rdi
callq 0x1d520
movl $0x1, -0x494(%rbp)
leaq 0x64ff6(%rip), %rsi     # 0xca2d6
leaq 0x66346(%rip), %rdx     # 0xcb62d
leaq -0x490(%rbp), %rdi
leaq -0x494(%rbp), %rcx
leaq -0x3b0(%rbp), %r8
callq 0x1d5d0
jmp 0x65303
leaq -0x490(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x663(%rbp)
jmp 0x65317
movb -0x663(%rbp), %al
testb $0x1, %al
jne 0x65323
jmp 0x65350
jmp 0x6540b
leaq -0x448(%rbp), %rdi
callq 0x1d520
jmp 0x6595d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6548c
leaq -0x4a0(%rbp), %rdi
callq 0x84210
jmp 0x6535e
leaq -0x490(%rbp), %rdi
callq 0x1d620
movq %rax, -0x670(%rbp)
jmp 0x65373
movq -0x670(%rbp), %r8
leaq 0x66219(%rip), %rdx     # 0xcb59a
leaq -0x4a8(%rbp), %rdi
movl $0x1, %esi
movl $0x21, %ecx
callq 0x80580
jmp 0x65399
leaq -0x4a8(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x7d370
jmp 0x653ae
leaq -0x4a8(%rbp), %rdi
callq 0x80600
leaq -0x4a0(%rbp), %rdi
callq 0x1d500
jmp 0x6540b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x653fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x4a8(%rbp), %rdi
callq 0x80600
leaq -0x4a0(%rbp), %rdi
callq 0x1d500
jmp 0x6548c
leaq -0x490(%rbp), %rdi
callq 0x1d520
leaq 0x64274(%rip), %rsi     # 0xc9692
leaq -0x4d8(%rbp), %rdi
movl $0x2, %edx
callq 0x39200
jmp 0x65431
movq -0x3a8(%rbp), %r8
leaq 0x661f6(%rip), %rsi     # 0xcb635
leaq 0x661f5(%rip), %rdx     # 0xcb63b
leaq -0x4b8(%rbp), %rdi
leaq -0x4d8(%rbp), %rcx
callq 0x4c850
jmp 0x6545b
leaq -0x4d8(%rbp), %rdi
callq 0x10fc8
leaq -0x4b8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x671(%rbp)
jmp 0x6547b
movb -0x671(%rbp), %al
testb $0x1, %al
jne 0x65487
jmp 0x654d7
jmp 0x6558f
leaq -0x490(%rbp), %rdi
callq 0x1d520
jmp 0x6595d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x4d8(%rbp), %rdi
callq 0x10fc8
jmp 0x6595d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x655d9
leaq -0x4e0(%rbp), %rdi
callq 0x84210
jmp 0x654e5
leaq -0x4b8(%rbp), %rdi
callq 0x1d620
movq %rax, -0x680(%rbp)
jmp 0x654fa
movq -0x680(%rbp), %r8
leaq 0x66092(%rip), %rdx     # 0xcb59a
leaq -0x4e8(%rbp), %rdi
movl $0x1, %esi
movl $0x22, %ecx
callq 0x80580
jmp 0x65520
leaq -0x4e8(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
callq 0x7d370
jmp 0x65535
leaq -0x4e8(%rbp), %rdi
callq 0x80600
leaq -0x4e0(%rbp), %rdi
callq 0x1d500
jmp 0x6558f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x65581
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0x80600
leaq -0x4e0(%rbp), %rdi
callq 0x1d500
jmp 0x655d9
leaq -0x4b8(%rbp), %rdi
callq 0x1d520
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f8(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
callq 0x6e4b0
jmp 0x655b4
leaq -0x4f8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x681(%rbp)
jmp 0x655c8
movb -0x681(%rbp), %al
testb $0x1, %al
jne 0x655d4
jmp 0x65601
jmp 0x6570c
leaq -0x4b8(%rbp), %rdi
callq 0x1d520
jmp 0x6595d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6578a
leaq -0x500(%rbp), %rdi
callq 0x84210
jmp 0x6560f
leaq 0x637ca(%rip), %rdx     # 0xc8de0
leaq 0x62e32(%rip), %rcx     # 0xc844f
leaq 0x62e31(%rip), %r8      # 0xc8455
leaq -0x528(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
callq 0x7d210
jmp 0x65639
leaq -0x528(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x65f4b(%rip), %rdx     # 0xcb59a
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
movl $0x23, %ecx
callq 0x80580
jmp 0x65667
leaq -0x508(%rbp), %rdi
leaq -0x500(%rbp), %rsi
callq 0x7d370
jmp 0x6567c
leaq -0x508(%rbp), %rdi
callq 0x80600
leaq -0x528(%rbp), %rdi
callq 0x10fc8
leaq -0x500(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x2bc(%rbp)
jmp 0x65716
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x656fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x656f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x508(%rbp), %rdi
callq 0x80600
leaq -0x528(%rbp), %rdi
callq 0x10fc8
leaq -0x500(%rbp), %rdi
callq 0x1d500
jmp 0x6578a
movl $0x0, -0x2bc(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x1d520
movl -0x2bc(%rbp), %eax
testl %eax, %eax
jne 0x658cc
jmp 0x65732
leaq -0x3d0(%rbp), %rdi
callq 0x6e4f0
movq %rax, %rdi
callq 0x6e590
movb %al, -0x539(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x538(%rbp), %rdi
leaq -0x539(%rbp), %rsi
callq 0x1d4a0
jmp 0x65765
leaq -0x538(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x682(%rbp)
jmp 0x65779
movb -0x682(%rbp), %al
testb $0x1, %al
jne 0x65785
jmp 0x657b2
jmp 0x658b6
leaq -0x4f8(%rbp), %rdi
callq 0x1d520
jmp 0x6595d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x65951
leaq -0x548(%rbp), %rdi
callq 0x84210
jmp 0x657c0
leaq 0x65e7d(%rip), %rdx     # 0xcb644
leaq 0x62c81(%rip), %rcx     # 0xc844f
leaq 0x62c80(%rip), %r8      # 0xc8455
leaq -0x570(%rbp), %rdi
leaq -0x538(%rbp), %rsi
callq 0x7d210
jmp 0x657ea
leaq -0x570(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x65d9a(%rip), %rdx     # 0xcb59a
leaq -0x550(%rbp), %rdi
movl $0x1, %esi
movl $0x24, %ecx
callq 0x80580
jmp 0x65818
leaq -0x550(%rbp), %rdi
leaq -0x548(%rbp), %rsi
callq 0x7d370
jmp 0x6582d
leaq -0x550(%rbp), %rdi
callq 0x80600
leaq -0x570(%rbp), %rdi
callq 0x10fc8
leaq -0x548(%rbp), %rdi
callq 0x1d500
jmp 0x658b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x658a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x65899
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x550(%rbp), %rdi
callq 0x80600
leaq -0x570(%rbp), %rdi
callq 0x10fc8
leaq -0x548(%rbp), %rdi
callq 0x1d500
jmp 0x65951
leaq -0x538(%rbp), %rdi
callq 0x1d520
movl $0x0, -0x2bc(%rbp)
leaq -0x3d0(%rbp), %rdi
callq 0x6e5d0
leaq -0x3b0(%rbp), %rdi
callq 0x4c380
leaq -0x198(%rbp), %rdi
callq 0x6e5d0
leaq -0x178(%rbp), %rdi
callq 0x4c380
leaq -0xf0(%rbp), %rax
movq %rax, -0x698(%rbp)
addq $0xe0, %rax
movq %rax, -0x690(%rbp)
movq -0x690(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x6a0(%rbp)
callq 0x38ed0
movq -0x698(%rbp), %rcx
movq -0x6a0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x690(%rbp)
jne 0x65917
addq $0x6c0, %rsp            # imm = 0x6C0
popq %rbp
retq
leaq -0x538(%rbp), %rdi
callq 0x1d520
leaq -0x3d0(%rbp), %rdi
callq 0x6e5d0
leaq -0x3b0(%rbp), %rdi
callq 0x4c380
leaq -0x198(%rbp), %rdi
callq 0x6e5d0
leaq -0x178(%rbp), %rdi
callq 0x4c380
leaq -0xf0(%rbp), %rax
movq %rax, -0x6b0(%rbp)
addq $0xe0, %rax
movq %rax, -0x6a8(%rbp)
movq -0x6a8(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x6b8(%rbp)
callq 0x38ed0
movq -0x6b0(%rbp), %rcx
movq -0x6b8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x6a8(%rbp)
jne 0x659a8
jmp 0x659db
movq -0x120(%rbp), %rdi
callq 0x10e00
nopw (%rax,%rax)