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

    to::saved_options restore1;
    restore1.add("-m");
    mockargs M1("-a\0");

    auto r1 = to::run(opts, M1.argc, M1.argv, restore1);
    EXPECT_TRUE(r1);
    EXPECT_TRUE(a);
    EXPECT_TRUE(m);

    a = m = false;

    to::saved_options restore2;
    restore2.add("-a");
    mockargs M2("-m\0");

    auto r2 = to::run(opts, M2.argc, M2.argv, restore2);
    EXPECT_TRUE(r2);
    EXPECT_TRUE(a);
    EXPECT_TRUE(m);

    to::saved_options restore3;
    restore3.add("-a");
    mockargs M3("-a\0");

    EXPECT_THROW(to::run(opts, M3.argc, M3.argv), to::missing_mandatory_option);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x5a0, %rsp            # imm = 0x5A0
movq %rdi, -0x8(%rbp)
movb $0x0, -0x9(%rbp)
movb $0x0, -0xa(%rbp)
movb $0x1, -0x155(%rbp)
leaq -0xf0(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0x118(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x6df00
jmp 0x6a82e
movl $0x1, -0x128(%rbp)
movl $0x8, -0x12c(%rbp)
leaq 0x60e66(%rip), %rdx     # 0xcb6af
leaq -0xf0(%rbp), %rdi
leaq -0x118(%rbp), %rsi
leaq -0x128(%rbp), %rcx
leaq -0x12c(%rbp), %r8
callq 0x6e820
jmp 0x6a86c
leaq -0x80(%rbp), %rax
movq %rax, -0x500(%rbp)
movq %rax, -0xf8(%rbp)
leaq -0x150(%rbp), %rdi
leaq -0xa(%rbp), %rsi
callq 0x6df00
jmp 0x6a890
movq -0x500(%rbp), %rdi
movl $0x1, -0x154(%rbp)
leaq 0x5edd8(%rip), %rdx     # 0xc9680
leaq -0x150(%rbp), %rsi
leaq -0x154(%rbp), %rcx
callq 0x6df30
jmp 0x6a8bd
movb $0x0, -0x155(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x1d540
leaq -0x118(%rbp), %rdi
callq 0x1d540
leaq -0x170(%rbp), %rdi
callq 0x611a0
leaq -0x191(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x10e10
movq -0x508(%rbp), %rdx
leaq 0x60da6(%rip), %rsi     # 0xcb6af
leaq -0x190(%rbp), %rdi
callq 0x1d070
jmp 0x6a917
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x61220
jmp 0x6a92c
leaq -0x190(%rbp), %rdi
callq 0x10fc8
leaq -0x191(%rbp), %rdi
callq 0x10810
leaq 0x6129c(%rip), %rsi     # 0xcbbe7
leaq -0x1c0(%rbp), %rdi
callq 0x4bfe0
jmp 0x6a959
movq -0x1b8(%rbp), %rcx
leaq -0x1e0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x1c0(%rbp), %rdx
leaq -0x170(%rbp), %r8
callq 0x6e040
jmp 0x6a983
xorl %eax, %eax
movl %eax, %edx
leaq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x6e4b0
jmp 0x6a99c
leaq -0x1f0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x509(%rbp)
jmp 0x6a9b0
movb -0x509(%rbp), %al
testb $0x1, %al
jne 0x6a9bf
jmp 0x6ab12
jmp 0x6ac13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6aa16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6aa0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x1d540
leaq -0x118(%rbp), %rdi
callq 0x1d540
testb $0x1, -0x155(%rbp)
jne 0x6aa21
jmp 0x6aa6e
movq -0xf8(%rbp), %rax
leaq -0xf0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x518(%rbp)
je 0x6aa6c
movq -0x518(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x520(%rbp)
callq 0x38ed0
movq -0x520(%rbp), %rax
leaq -0xf0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x518(%rbp)
jne 0x6aa3b
jmp 0x6aa6e
jmp 0x6baab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6aaa5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x10fc8
leaq -0x191(%rbp), %rdi
callq 0x10810
jmp 0x6ba51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ba51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ba45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ba39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ac5a
leaq -0x1f8(%rbp), %rdi
callq 0x84210
jmp 0x6ab20
leaq 0x5e2a4(%rip), %rdx     # 0xc8dcb
leaq 0x5d921(%rip), %rcx     # 0xc844f
leaq 0x5d920(%rip), %r8      # 0xc8455
leaq -0x220(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x7d210
jmp 0x6ab4a
leaq -0x220(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x60a3a(%rip), %rdx     # 0xcb59a
leaq -0x200(%rbp), %rdi
movl $0x1, %esi
movl $0xb6, %ecx
callq 0x80580
jmp 0x6ab78
leaq -0x200(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x7d370
jmp 0x6ab8d
leaq -0x200(%rbp), %rdi
callq 0x80600
leaq -0x220(%rbp), %rdi
callq 0x10fc8
leaq -0x1f8(%rbp), %rdi
callq 0x1d500
jmp 0x6ac13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ac05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6abf9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x80600
leaq -0x220(%rbp), %rdi
callq 0x10fc8
leaq -0x1f8(%rbp), %rdi
callq 0x1d500
jmp 0x6ac5a
leaq -0x1f0(%rbp), %rdi
callq 0x1d520
xorl %eax, %eax
movl %eax, %edx
leaq -0x230(%rbp), %rdi
leaq -0xa(%rbp), %rsi
callq 0x1d4a0
jmp 0x6ac35
leaq -0x230(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x521(%rbp)
jmp 0x6ac49
movb -0x521(%rbp), %al
testb $0x1, %al
jne 0x6ac55
jmp 0x6ac82
jmp 0x6ad83
leaq -0x1f0(%rbp), %rdi
callq 0x1d520
jmp 0x6ba39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6adca
leaq -0x238(%rbp), %rdi
callq 0x84210
jmp 0x6ac90
leaq 0x5e9ea(%rip), %rdx     # 0xc9681
leaq 0x5d7b1(%rip), %rcx     # 0xc844f
leaq 0x5d7b0(%rip), %r8      # 0xc8455
leaq -0x260(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x7d210
jmp 0x6acba
leaq -0x260(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x608ca(%rip), %rdx     # 0xcb59a
leaq -0x240(%rbp), %rdi
movl $0x1, %esi
movl $0xb7, %ecx
callq 0x80580
jmp 0x6ace8
leaq -0x240(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x7d370
jmp 0x6acfd
leaq -0x240(%rbp), %rdi
callq 0x80600
leaq -0x260(%rbp), %rdi
callq 0x10fc8
leaq -0x238(%rbp), %rdi
callq 0x1d500
jmp 0x6ad83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ad75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ad69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x80600
leaq -0x260(%rbp), %rdi
callq 0x10fc8
leaq -0x238(%rbp), %rdi
callq 0x1d500
jmp 0x6adca
leaq -0x230(%rbp), %rdi
callq 0x1d520
xorl %eax, %eax
movl %eax, %edx
leaq -0x270(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x1d4a0
jmp 0x6ada5
leaq -0x270(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x522(%rbp)
jmp 0x6adb9
movb -0x522(%rbp), %al
testb $0x1, %al
jne 0x6adc5
jmp 0x6adf2
jmp 0x6aef6
leaq -0x230(%rbp), %rdi
callq 0x1d520
jmp 0x6ba39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6aff2
leaq -0x278(%rbp), %rdi
callq 0x84210
jmp 0x6ae00
leaq 0x608a9(%rip), %rdx     # 0xcb6b0
leaq 0x5d641(%rip), %rcx     # 0xc844f
leaq 0x5d640(%rip), %r8      # 0xc8455
leaq -0x2a0(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x7d210
jmp 0x6ae2a
leaq -0x2a0(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x6075a(%rip), %rdx     # 0xcb59a
leaq -0x280(%rbp), %rdi
movl $0x1, %esi
movl $0xb8, %ecx
callq 0x80580
jmp 0x6ae58
leaq -0x280(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x7d370
jmp 0x6ae6d
leaq -0x280(%rbp), %rdi
callq 0x80600
leaq -0x2a0(%rbp), %rdi
callq 0x10fc8
leaq -0x278(%rbp), %rdi
callq 0x1d500
jmp 0x6aef6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6aee5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6aed9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x80600
leaq -0x2a0(%rbp), %rdi
callq 0x10fc8
leaq -0x278(%rbp), %rdi
callq 0x1d500
jmp 0x6aff2
leaq -0x270(%rbp), %rdi
callq 0x1d520
movb $0x0, -0x9(%rbp)
movb $0x0, -0xa(%rbp)
leaq -0x2b8(%rbp), %rdi
callq 0x611a0
leaq -0x2d9(%rbp), %rdi
movq %rdi, -0x530(%rbp)
callq 0x10e10
movq -0x530(%rbp), %rdx
leaq 0x5e749(%rip), %rsi     # 0xc9680
leaq -0x2d8(%rbp), %rdi
callq 0x1d070
jmp 0x6af45
leaq -0x2b8(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x61220
jmp 0x6af5a
leaq -0x2d8(%rbp), %rdi
callq 0x10fc8
leaq -0x2d9(%rbp), %rdi
callq 0x10810
leaq 0x60c72(%rip), %rsi     # 0xcbbeb
leaq -0x308(%rbp), %rdi
callq 0x4bfe0
jmp 0x6af87
movq -0x300(%rbp), %rcx
leaq -0x328(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x308(%rbp), %rdx
leaq -0x2b8(%rbp), %r8
callq 0x6e040
jmp 0x6afb1
xorl %eax, %eax
movl %eax, %edx
leaq -0x338(%rbp), %rdi
leaq -0x328(%rbp), %rsi
callq 0x6e4b0
jmp 0x6afca
leaq -0x338(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x531(%rbp)
jmp 0x6afde
movb -0x531(%rbp), %al
testb $0x1, %al
jne 0x6afed
jmp 0x6b0a2
jmp 0x6b1a3
leaq -0x270(%rbp), %rdi
callq 0x1d520
jmp 0x6ba39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b035
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x10fc8
leaq -0x2d9(%rbp), %rdi
callq 0x10810
jmp 0x6ba2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ba2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ba21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ba15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b1ea
leaq -0x340(%rbp), %rdi
callq 0x84210
jmp 0x6b0b0
leaq 0x5dd29(%rip), %rdx     # 0xc8de0
leaq 0x5d391(%rip), %rcx     # 0xc844f
leaq 0x5d390(%rip), %r8      # 0xc8455
leaq -0x368(%rbp), %rdi
leaq -0x338(%rbp), %rsi
callq 0x7d210
jmp 0x6b0da
leaq -0x368(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x604aa(%rip), %rdx     # 0xcb59a
leaq -0x348(%rbp), %rdi
movl $0x1, %esi
movl $0xc1, %ecx
callq 0x80580
jmp 0x6b108
leaq -0x348(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x7d370
jmp 0x6b11d
leaq -0x348(%rbp), %rdi
callq 0x80600
leaq -0x368(%rbp), %rdi
callq 0x10fc8
leaq -0x340(%rbp), %rdi
callq 0x1d500
jmp 0x6b1a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b195
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b189
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x80600
leaq -0x368(%rbp), %rdi
callq 0x10fc8
leaq -0x340(%rbp), %rdi
callq 0x1d500
jmp 0x6b1ea
leaq -0x338(%rbp), %rdi
callq 0x1d520
xorl %eax, %eax
movl %eax, %edx
leaq -0x378(%rbp), %rdi
leaq -0xa(%rbp), %rsi
callq 0x1d4a0
jmp 0x6b1c5
leaq -0x378(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x532(%rbp)
jmp 0x6b1d9
movb -0x532(%rbp), %al
testb $0x1, %al
jne 0x6b1e5
jmp 0x6b212
jmp 0x6b313
leaq -0x338(%rbp), %rdi
callq 0x1d520
jmp 0x6ba15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b35a
leaq -0x380(%rbp), %rdi
callq 0x84210
jmp 0x6b220
leaq 0x5e45a(%rip), %rdx     # 0xc9681
leaq 0x5d221(%rip), %rcx     # 0xc844f
leaq 0x5d220(%rip), %r8      # 0xc8455
leaq -0x3a8(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0x7d210
jmp 0x6b24a
leaq -0x3a8(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x6033a(%rip), %rdx     # 0xcb59a
leaq -0x388(%rbp), %rdi
movl $0x1, %esi
movl $0xc2, %ecx
callq 0x80580
jmp 0x6b278
leaq -0x388(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x7d370
jmp 0x6b28d
leaq -0x388(%rbp), %rdi
callq 0x80600
leaq -0x3a8(%rbp), %rdi
callq 0x10fc8
leaq -0x380(%rbp), %rdi
callq 0x1d500
jmp 0x6b313
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b305
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b2f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x80600
leaq -0x3a8(%rbp), %rdi
callq 0x10fc8
leaq -0x380(%rbp), %rdi
callq 0x1d500
jmp 0x6b35a
leaq -0x378(%rbp), %rdi
callq 0x1d520
xorl %eax, %eax
movl %eax, %edx
leaq -0x3b8(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x1d4a0
jmp 0x6b335
leaq -0x3b8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x533(%rbp)
jmp 0x6b349
movb -0x533(%rbp), %al
testb $0x1, %al
jne 0x6b355
jmp 0x6b382
jmp 0x6b486
leaq -0x378(%rbp), %rdi
callq 0x1d520
jmp 0x6ba15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b5f6
leaq -0x3c0(%rbp), %rdi
callq 0x84210
jmp 0x6b390
leaq 0x60319(%rip), %rdx     # 0xcb6b0
leaq 0x5d0b1(%rip), %rcx     # 0xc844f
leaq 0x5d0b0(%rip), %r8      # 0xc8455
leaq -0x3e8(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0x7d210
jmp 0x6b3ba
leaq -0x3e8(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x601ca(%rip), %rdx     # 0xcb59a
leaq -0x3c8(%rbp), %rdi
movl $0x1, %esi
movl $0xc3, %ecx
callq 0x80580
jmp 0x6b3e8
leaq -0x3c8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x7d370
jmp 0x6b3fd
leaq -0x3c8(%rbp), %rdi
callq 0x80600
leaq -0x3e8(%rbp), %rdi
callq 0x10fc8
leaq -0x3c0(%rbp), %rdi
callq 0x1d500
jmp 0x6b486
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b475
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b469
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x80600
leaq -0x3e8(%rbp), %rdi
callq 0x10fc8
leaq -0x3c0(%rbp), %rdi
callq 0x1d500
jmp 0x6b5f6
leaq -0x3b8(%rbp), %rdi
callq 0x1d520
leaq -0x400(%rbp), %rdi
callq 0x611a0
leaq -0x421(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x10e10
movq -0x540(%rbp), %rdx
leaq 0x5e1c1(%rip), %rsi     # 0xc9680
leaq -0x420(%rbp), %rdi
callq 0x1d070
jmp 0x6b4cd
leaq -0x400(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0x61220
jmp 0x6b4e2
leaq -0x420(%rbp), %rdi
callq 0x10fc8
leaq -0x421(%rbp), %rdi
callq 0x10810
leaq 0x606e6(%rip), %rsi     # 0xcbbe7
leaq -0x450(%rbp), %rdi
callq 0x4bfe0
jmp 0x6b50f
xorps %xmm0, %xmm0
movaps %xmm0, -0x460(%rbp)
movaps %xmm0, -0x470(%rbp)
leaq -0x470(%rbp), %rdi
movq %rdi, -0x550(%rbp)
callq 0x39af0
movq -0x550(%rbp), %rdi
callq 0x39b10
movb %al, -0x541(%rbp)
jmp 0x6b547
movb -0x541(%rbp), %al
testb $0x1, %al
jne 0x6b556
jmp 0x6b880
movb $0x0, -0x471(%rbp)
callq 0x841d0
movb %al, -0x551(%rbp)
jmp 0x6b56a
movb -0x551(%rbp), %al
testb $0x1, %al
jne 0x6b579
jmp 0x6b812
movq -0x448(%rbp), %rax
movq %rax, -0x568(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x4b0(%rbp)
movq $0x0, -0x4a0(%rbp)
leaq -0x4b0(%rbp), %rdi
movq %rdi, -0x560(%rbp)
callq 0x611a0
movq -0x568(%rbp), %rcx
movq -0x560(%rbp), %r8
leaq -0x498(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x450(%rbp), %rdx
callq 0x6e040
jmp 0x6b5d9
leaq -0x498(%rbp), %rdi
callq 0x6e5d0
leaq -0x4b0(%rbp), %rdi
callq 0x61330
jmp 0x6b814
leaq -0x3b8(%rbp), %rdi
callq 0x1d520
jmp 0x6ba15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b639
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x420(%rbp), %rdi
callq 0x10fc8
leaq -0x421(%rbp), %rdi
callq 0x10810
jmp 0x6ba09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6ba09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b9f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b6aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x4b0(%rbp), %rdi
callq 0x61330
movl -0x124(%rbp), %eax
movl %eax, -0x56c(%rbp)
movl $0x3, %ecx
cmpl %ecx, %eax
jne 0x6b709
movq -0x120(%rbp), %rdi
callq 0x102b0
movq %rax, -0x4e8(%rbp)
movb $0x1, -0x471(%rbp)
callq 0x10d40
jmp 0x6b6e0
jmp 0x6b6e2
testb $0x1, -0x471(%rbp)
jne 0x6b87b
leaq 0x6026c(%rip), %rsi     # 0xcb962
leaq -0x470(%rbp), %rdi
callq 0x10b40
jmp 0x6b704
jmp 0x6b882
movl -0x56c(%rbp), %eax
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x6b7e0
movq -0x120(%rbp), %rdi
callq 0x102b0
movq %rax, -0x4c0(%rbp)
leaq 0x601b3(%rip), %rsi     # 0xcb8e9
leaq -0x470(%rbp), %rdi
callq 0x10b40
jmp 0x6b744
movq -0x4c0(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq -0x4e0(%rbp), %rdi
callq 0x39c70
jmp 0x6b760
leaq -0x470(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
callq 0x10a70
jmp 0x6b775
leaq -0x4e0(%rbp), %rdi
callq 0x10fc8
leaq 0x64979(%rip), %rsi     # 0xd0101
leaq -0x470(%rbp), %rdi
callq 0x10700
jmp 0x6b796
movq -0x4c0(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, %rsi
leaq -0x470(%rbp), %rdi
callq 0x10700
jmp 0x6b7b7
leaq 0x5e2c4(%rip), %rsi     # 0xc9a82
leaq -0x470(%rbp), %rdi
callq 0x10700
jmp 0x6b7cc
movl $0x2, -0x4b4(%rbp)
callq 0x10d40
jmp 0x6b86d
movq -0x120(%rbp), %rdi
callq 0x102b0
leaq 0x6006c(%rip), %rsi     # 0xcb85f
leaq -0x470(%rbp), %rdi
callq 0x10b40
jmp 0x6b801
movl $0x2, -0x4b4(%rbp)
callq 0x10d40
jmp 0x6b832
jmp 0x6b814
jmp 0x6b6e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
callq 0x10d40
jmp 0x6b834
jmp 0x6b882
jmp 0x6b9f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b86f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x4e0(%rbp), %rdi
callq 0x10fc8
jmp 0x6b86f
jmp 0x6b882
callq 0x10d40
jmp 0x6b876
jmp 0x6b9f1
jmp 0x6b930
jmp 0x6b882
leaq -0x4f0(%rbp), %rdi
callq 0x84210
jmp 0x6b890
leaq -0x470(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x5fcf4(%rip), %rdx     # 0xcb59a
leaq -0x4f8(%rbp), %rdi
movl $0x1, %esi
movl $0xc9, %ecx
callq 0x80580
jmp 0x6b8be
leaq -0x4f8(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0x7d370
jmp 0x6b8d3
leaq -0x4f8(%rbp), %rdi
callq 0x80600
leaq -0x4f0(%rbp), %rdi
callq 0x1d500
jmp 0x6b930
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6b91f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x80600
leaq -0x4f0(%rbp), %rdi
callq 0x1d500
jmp 0x6b9f1
leaq -0x470(%rbp), %rdi
callq 0x39ed0
leaq -0x450(%rbp), %rdi
callq 0x4c380
leaq -0x400(%rbp), %rdi
callq 0x61330
leaq -0x328(%rbp), %rdi
callq 0x6e5d0
leaq -0x308(%rbp), %rdi
callq 0x4c380
leaq -0x2b8(%rbp), %rdi
callq 0x61330
leaq -0x1e0(%rbp), %rdi
callq 0x6e5d0
leaq -0x1c0(%rbp), %rdi
callq 0x4c380
leaq -0x170(%rbp), %rdi
callq 0x61330
leaq -0xf0(%rbp), %rax
movq %rax, -0x580(%rbp)
addq $0xe0, %rax
movq %rax, -0x578(%rbp)
movq -0x578(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x588(%rbp)
callq 0x38ed0
movq -0x580(%rbp), %rcx
movq -0x588(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x578(%rbp)
jne 0x6b9b7
addq $0x5a0, %rsp            # imm = 0x5A0
popq %rbp
retq
leaq -0x470(%rbp), %rdi
callq 0x39ed0
leaq -0x450(%rbp), %rdi
callq 0x4c380
leaq -0x400(%rbp), %rdi
callq 0x61330
leaq -0x328(%rbp), %rdi
callq 0x6e5d0
leaq -0x308(%rbp), %rdi
callq 0x4c380
leaq -0x2b8(%rbp), %rdi
callq 0x61330
leaq -0x1e0(%rbp), %rdi
callq 0x6e5d0
leaq -0x1c0(%rbp), %rdi
callq 0x4c380
leaq -0x170(%rbp), %rdi
callq 0x61330
leaq -0xf0(%rbp), %rax
movq %rax, -0x598(%rbp)
addq $0xe0, %rax
movq %rax, -0x590(%rbp)
movq -0x590(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x38ed0
movq -0x598(%rbp), %rcx
movq -0x5a0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x590(%rbp)
jne 0x6ba78
jmp 0x6baab
movq -0x120(%rbp), %rdi
callq 0x10e00
movq %rax, %rdi
callq 0x1dfc0
nop