// File: /workspace/github_cpp_makefile_star2_O2/halfflat[P]tinyopt/test/test_state.cc
// Function: state_match_long_Test::TestBody()
TEST(state, match_long) {
    to::key k("key", to::key::longfmt);

    {
        mockargs M("key\0value\0rest\0");
        to::state s(M.argc, M.argv);

        auto mmr = s.match_option(k);
        ASSERT_TRUE(mmr);
        EXPECT_EQ("value"s, mmr->argument);
        EXPECT_EQ(2u, mmr->shift);
        EXPECT_EQ(0u, mmr->offset);

        s.consume(*mmr);
        EXPECT_EQ("rest"s, M.argv[0]);
    }

    {
        mockargs M("key\0value\0rest\0");
        to::state s(M.argc, M.argv);

        auto mmr = s.match_flag(k);
        ASSERT_TRUE(mmr);
        EXPECT_EQ(nullptr, mmr->argument);
        EXPECT_EQ(1u, mmr->shift);
        EXPECT_EQ(0u, mmr->offset);

        s.consume(*mmr);
        EXPECT_EQ("value"s, M.argv[0]);
    }

    {
        mockargs M("key=value\0rest\0");
        to::state s(M.argc, M.argv);

        auto mmr = s.match_flag(k);
        ASSERT_FALSE(mmr);
    }

    {
        mockargs M("key=value\0rest\0");
        to::state s(M.argc, M.argv);

        auto mmr = s.match_option(k);
        ASSERT_TRUE(mmr);
        EXPECT_EQ("value"s, mmr->argument);
        EXPECT_EQ(1u, mmr->shift);
        EXPECT_EQ(0u, mmr->offset);

        s.consume(*mmr);
        EXPECT_EQ("rest"s, M.argv[0]);
    }

    {
        mockargs M("keyvalue\0rest\0");
        to::state s(M.argc, M.argv);

        auto mmr = s.match_option(k);
        ASSERT_FALSE(mmr);
    }
}

// Assembly:
pushq %r14
pushq %rbx
subq $0xe8, %rsp
leaq 0x361e4(%rip), %rsi     # 0x572cd
leaq 0xc8(%rsp), %rbx
leaq 0x60(%rsp), %rdx
movq %rbx, %rdi
callq 0x1337a
leaq 0xb0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rbx), %rdx
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdx
je 0x21134
movq %rdx, 0xa0(%rsp)
movq 0xd8(%rsp), %rcx
movq %rcx, 0xb0(%rsp)
jmp 0x2113a
movups (%rax), %xmm0
movups %xmm0, (%rcx)
leaq 0xc8(%rsp), %rdi
movq 0x8(%rdi), %rcx
movq %rax, (%rdi)
andq $0x0, 0x8(%rdi)
movq %rcx, 0xa8(%rsp)
movb $0x0, 0x10(%rdi)
movl $0x1, 0xc0(%rsp)
callq 0xdbe8
leaq 0x370d7(%rip), %rsi     # 0x58248
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x2488e
movq 0x68(%rsp), %rax
leaq 0x88(%rsp), %rsi
movq %rbx, (%rsi)
movq %rax, 0x8(%rsi)
andl $0x0, 0x10(%rsi)
leaq 0x48(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x24998
movb 0x48(%rsp), %al
leaq 0x18(%rsp), %r14
movb %al, -0x8(%r14)
andq $0x0, (%r14)
testb %al, %al
je 0x2122c
movq %r14, %rdi
callq 0x13646
leaq 0x36efc(%rip), %rsi     # 0x580c8
leaq 0x20(%rsp), %rdi
pushq $0x5
popq %rdx
callq 0x1cc63
leaq 0x50(%rsp), %rbx
leaq 0x36e6b(%rip), %rsi     # 0x58050
leaq 0x36e6d(%rip), %rdx     # 0x58059
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rcx
movq %rbx, %r8
callq 0x25225
leaq 0x20(%rsp), %rdi
callq 0xdbe8
cmpb $0x0, 0x10(%rsp)
jne 0x212d1
leaq 0x20(%rsp), %rdi
callq 0x3d5f6
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2128a
movq (%rax), %r8
jmp 0x21291
leaq 0x8(%rsp), %rdi
callq 0x3d5f6
leaq 0x36e0f(%rip), %rdx     # 0x5804c
leaq 0x34ecb(%rip), %rcx     # 0x5610f
leaq 0x34eca(%rip), %r8      # 0x56115
leaq 0x20(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x399e5
movq 0x20(%rsp), %r8
leaq 0x36d0e(%rip), %rdx     # 0x57f74
leaq 0x40(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x58
popq %rcx
callq 0x3b5b6
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x39b08
jmp 0x21d13
leaq 0x37dd9(%rip), %r8      # 0x5906a
leaq 0x36cdc(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x59
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x212d1
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %r14
movq %r14, %rdi
callq 0x13646
movl $0x2, -0x8(%r14)
leaq 0x58(%rsp), %r8
leaq 0x362e4(%rip), %rsi     # 0x575d6
leaq 0x36d6e(%rip), %rdx     # 0x58067
leaq 0x20(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x25308
cmpb $0x0, 0x20(%rsp)
jne 0x2136f
leaq 0x10(%rsp), %rdi
callq 0x3d5f6
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x21328
movq (%rax), %r8
jmp 0x2132f
leaq 0x37d3b(%rip), %r8      # 0x5906a
leaq 0x36c3e(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x5a
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2136f
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x28(%rsp), %rdi
callq 0x13646
leaq 0x10(%rsp), %rcx
andl $0x0, (%rcx)
leaq 0x5c(%rsp), %r8
leaq 0x3622f(%rip), %rsi     # 0x575bc
leaq 0x36cde(%rip), %rdx     # 0x58072
leaq 0x20(%rsp), %rdi
callq 0x25308
cmpb $0x0, 0x20(%rsp)
jne 0x21405
leaq 0x10(%rsp), %rdi
callq 0x3d5f6
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x213be
movq (%rax), %r8
jmp 0x213c5
leaq 0x37ca5(%rip), %r8      # 0x5906a
leaq 0x36ba8(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x5b
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x21405
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x28(%rsp), %rdi
callq 0x13646
leaq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq 0x24976
leaq 0x36c60(%rip), %rsi     # 0x58086
leaq 0x20(%rsp), %rdi
pushq $0x4
popq %rdx
callq 0x1cc63
movq 0x68(%rsp), %r8
leaq 0x36c3f(%rip), %rsi     # 0x5807e
leaq 0x36b98(%rip), %rdx     # 0x57fde
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rcx
callq 0x253bd
leaq 0x20(%rsp), %rdi
callq 0xdbe8
cmpb $0x0, 0x10(%rsp)
jne 0x214c6
leaq 0x20(%rsp), %rdi
callq 0x3d5f6
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2147f
movq (%rax), %r8
jmp 0x21486
leaq 0x37be4(%rip), %r8      # 0x5906a
leaq 0x36ae7(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x5e
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x214c6
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
callq 0x13646
leaq 0x70(%rsp), %rdi
callq 0x25080
leaq 0x36d67(%rip), %rsi     # 0x58248
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x2488e
movq 0x68(%rsp), %rax
leaq 0x88(%rsp), %rsi
movq %rbx, (%rsi)
movq %rax, 0x8(%rsi)
andl $0x0, 0x10(%rsi)
leaq 0x48(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x24a92
movb 0x48(%rsp), %al
leaq 0x18(%rsp), %r14
movb %al, -0x8(%r14)
andq $0x0, (%r14)
testb %al, %al
je 0x21578
movq %r14, %rdi
callq 0x13646
movq 0x50(%rsp), %r8
leaq 0x36b4a(%rip), %rsi     # 0x5808b
leaq 0x36b11(%rip), %rdx     # 0x58059
leaq 0x20(%rsp), %rdi
xorl %ecx, %ecx
callq 0x24b2c
cmpb $0x0, 0x20(%rsp)
jne 0x2161d
leaq 0x10(%rsp), %rdi
callq 0x3d5f6
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x215d6
movq (%rax), %r8
jmp 0x215dd
leaq 0x8(%rsp), %rdi
callq 0x3d5f6
leaq 0x36ac3(%rip), %rdx     # 0x5804c
leaq 0x34b7f(%rip), %rcx     # 0x5610f
leaq 0x34b7e(%rip), %r8      # 0x56115
leaq 0x20(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x399e5
movq 0x20(%rsp), %r8
leaq 0x369c2(%rip), %rdx     # 0x57f74
leaq 0x40(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x66
popq %rcx
callq 0x3b5b6
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x39b08
jmp 0x21d13
leaq 0x37a8d(%rip), %r8      # 0x5906a
leaq 0x36990(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x67
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2161d
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x28(%rsp), %rdi
callq 0x13646
leaq 0x10(%rsp), %rcx
movl $0x1, (%rcx)
leaq 0x58(%rsp), %r8
leaq 0x35f4e(%rip), %rsi     # 0x5758c
leaq 0x36a22(%rip), %rdx     # 0x58067
leaq 0x20(%rsp), %rdi
callq 0x25308
cmpb $0x0, 0x20(%rsp)
jne 0x216b6
leaq 0x10(%rsp), %rdi
callq 0x3d5f6
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x2166f
movq (%rax), %r8
jmp 0x21676
leaq 0x379f4(%rip), %r8      # 0x5906a
leaq 0x368f7(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x68
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x216b6
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x28(%rsp), %rdi
callq 0x13646
leaq 0x10(%rsp), %rcx
andl $0x0, (%rcx)
leaq 0x5c(%rsp), %r8
leaq 0x35ee8(%rip), %rsi     # 0x575bc
leaq 0x36997(%rip), %rdx     # 0x58072
leaq 0x20(%rsp), %rdi
callq 0x25308
cmpb $0x0, 0x20(%rsp)
jne 0x2174c
leaq 0x10(%rsp), %rdi
callq 0x3d5f6
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x21705
movq (%rax), %r8
jmp 0x2170c
leaq 0x3795e(%rip), %r8      # 0x5906a
leaq 0x36861(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x69
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2174c
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x50(%rsp), %rbx
leaq 0x28(%rsp), %rdi
callq 0x13646
leaq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq 0x24976
leaq 0x36956(%rip), %rsi     # 0x580c8
leaq 0x20(%rsp), %rdi
pushq $0x5
popq %rdx
callq 0x1cc63
movq 0x68(%rsp), %r8
leaq 0x368c5(%rip), %rsi     # 0x58050
leaq 0x3684c(%rip), %rdx     # 0x57fde
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rcx
callq 0x253bd
leaq 0x20(%rsp), %rdi
callq 0xdbe8
cmpb $0x0, 0x10(%rsp)
jne 0x21812
leaq 0x20(%rsp), %rdi
callq 0x3d5f6
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x217cb
movq (%rax), %r8
jmp 0x217d2
leaq 0x37898(%rip), %r8      # 0x5906a
leaq 0x3679b(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x6c
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x21812
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
callq 0x13646
leaq 0x70(%rsp), %rdi
callq 0x25080
leaq 0x36a2b(%rip), %rsi     # 0x58258
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x2488e
movq 0x68(%rsp), %rax
leaq 0x88(%rsp), %rsi
movq %rbx, (%rsi)
movq %rax, 0x8(%rsi)
andl $0x0, 0x10(%rsi)
leaq 0x48(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x24a92
movb 0x48(%rsp), %al
movl %eax, %ecx
xorb $0x1, %cl
leaq 0x18(%rsp), %r14
movb %cl, -0x8(%r14)
andq $0x0, (%r14)
testb %al, %al
je 0x218dc
leaq 0x8(%rsp), %rdi
callq 0x3d5f6
leaq 0x367bd(%rip), %rdx     # 0x5804c
leaq 0x3487f(%rip), %rcx     # 0x56115
leaq 0x34872(%rip), %r8      # 0x5610f
leaq 0x20(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x399e5
movq 0x20(%rsp), %r8
leaq 0x366bc(%rip), %rdx     # 0x57f74
leaq 0x40(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x74
popq %rcx
callq 0x3b5b6
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x39b08
jmp 0x21d13
movq %r14, %rdi
callq 0x13646
leaq 0x70(%rsp), %rdi
callq 0x25080
leaq 0x36963(%rip), %rsi     # 0x58258
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x2488e
movq 0x68(%rsp), %rax
leaq 0x88(%rsp), %rsi
movq %rbx, (%rsi)
movq %rax, 0x8(%rsi)
andl $0x0, 0x10(%rsi)
leaq 0x48(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x24998
movb 0x48(%rsp), %al
leaq 0x18(%rsp), %r14
movb %al, -0x8(%r14)
andq $0x0, (%r14)
testb %al, %al
je 0x219b0
movq %r14, %rdi
callq 0x13646
leaq 0x36778(%rip), %rsi     # 0x580c8
leaq 0x20(%rsp), %rdi
pushq $0x5
popq %rdx
callq 0x1cc63
leaq 0x50(%rsp), %rbx
leaq 0x366e7(%rip), %rsi     # 0x58050
leaq 0x366e9(%rip), %rdx     # 0x58059
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rcx
movq %rbx, %r8
callq 0x25225
leaq 0x20(%rsp), %rdi
callq 0xdbe8
cmpb $0x0, 0x10(%rsp)
jne 0x21a55
leaq 0x20(%rsp), %rdi
callq 0x3d5f6
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x21a0e
movq (%rax), %r8
jmp 0x21a15
leaq 0x8(%rsp), %rdi
callq 0x3d5f6
leaq 0x3668b(%rip), %rdx     # 0x5804c
leaq 0x34747(%rip), %rcx     # 0x5610f
leaq 0x34746(%rip), %r8      # 0x56115
leaq 0x20(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x399e5
movq 0x20(%rsp), %r8
leaq 0x3658a(%rip), %rdx     # 0x57f74
leaq 0x40(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x7c
popq %rcx
callq 0x3b5b6
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x39b08
jmp 0x21d13
leaq 0x37655(%rip), %r8      # 0x5906a
leaq 0x36558(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x7d
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x21a55
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %r14
movq %r14, %rdi
callq 0x13646
movl $0x1, -0x8(%r14)
leaq 0x58(%rsp), %r8
leaq 0x35b16(%rip), %rsi     # 0x5758c
leaq 0x365ea(%rip), %rdx     # 0x58067
leaq 0x20(%rsp), %rdi
leaq 0x10(%rsp), %rcx
callq 0x25308
cmpb $0x0, 0x20(%rsp)
jne 0x21af3
leaq 0x10(%rsp), %rdi
callq 0x3d5f6
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x21aac
movq (%rax), %r8
jmp 0x21ab3
leaq 0x375b7(%rip), %r8      # 0x5906a
leaq 0x364ba(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x7e
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x21af3
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x28(%rsp), %rdi
callq 0x13646
leaq 0x10(%rsp), %rcx
andl $0x0, (%rcx)
leaq 0x5c(%rsp), %r8
leaq 0x35aab(%rip), %rsi     # 0x575bc
leaq 0x3655a(%rip), %rdx     # 0x58072
leaq 0x20(%rsp), %rdi
callq 0x25308
cmpb $0x0, 0x20(%rsp)
jne 0x21b89
leaq 0x10(%rsp), %rdi
callq 0x3d5f6
movq 0x28(%rsp), %rax
testq %rax, %rax
je 0x21b42
movq (%rax), %r8
jmp 0x21b49
leaq 0x37521(%rip), %r8      # 0x5906a
leaq 0x36424(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $0x7f
popq %rcx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x21b89
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x28(%rsp), %rdi
callq 0x13646
leaq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq 0x24976
leaq 0x364dc(%rip), %rsi     # 0x58086
leaq 0x20(%rsp), %rdi
pushq $0x4
popq %rdx
callq 0x1cc63
movq 0x68(%rsp), %r8
leaq 0x364bb(%rip), %rsi     # 0x5807e
leaq 0x36414(%rip), %rdx     # 0x57fde
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rcx
callq 0x253bd
leaq 0x20(%rsp), %rdi
callq 0xdbe8
cmpb $0x0, 0x10(%rsp)
jne 0x21c4c
leaq 0x20(%rsp), %rdi
callq 0x3d5f6
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x21c03
movq (%rax), %r8
jmp 0x21c0a
leaq 0x37460(%rip), %r8      # 0x5906a
leaq 0x36363(%rip), %rdx     # 0x57f74
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
movl $0x82, %ecx
callq 0x3b5b6
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x39b08
leaq 0x8(%rsp), %rdi
callq 0x3b616
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x21c4c
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
callq 0x13646
leaq 0x70(%rsp), %rdi
callq 0x25080
leaq 0x3651c(%rip), %rsi     # 0x58183
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x2488e
movq 0x68(%rsp), %rax
leaq 0x88(%rsp), %rsi
movq %rbx, (%rsi)
movq %rax, 0x8(%rsi)
andl $0x0, 0x10(%rsi)
leaq 0x48(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
callq 0x24998
movb 0x48(%rsp), %al
movl %eax, %ecx
xorb $0x1, %cl
leaq 0x18(%rsp), %r14
movb %cl, -0x8(%r14)
andq $0x0, (%r14)
testb %al, %al
je 0x21d37
leaq 0x8(%rsp), %rdi
callq 0x3d5f6
leaq 0x36383(%rip), %rdx     # 0x5804c
leaq 0x34445(%rip), %rcx     # 0x56115
leaq 0x34438(%rip), %r8      # 0x5610f
leaq 0x20(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x399e5
movq 0x20(%rsp), %r8
leaq 0x36282(%rip), %rdx     # 0x57f74
leaq 0x40(%rsp), %rdi
pushq $0x2
popq %rsi
movl $0x8a, %ecx
callq 0x3b5b6
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x39b08
leaq 0x40(%rsp), %rdi
callq 0x3b616
leaq 0x20(%rsp), %rdi
callq 0xdbe8
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x21d37
movq (%rdi), %rax
callq *0x8(%rax)
movq %r14, %rdi
callq 0x13646
leaq 0x70(%rsp), %rdi
callq 0x25080
leaq 0xa0(%rsp), %rdi
callq 0xdbe8
addq $0xe8, %rsp
popq %rbx
popq %r14
retq
jmp 0x21eda
jmp 0x21ee9
jmp 0x21ef8
jmp 0x21f1c
jmp 0x21ea0
jmp 0x21eaf
jmp 0x21ec4
jmp 0x21e6f
jmp 0x21e7e
jmp 0x21e93
jmp 0x21e6f
jmp 0x21e7e
jmp 0x21e93
jmp 0x21ea0
jmp 0x21eaf
jmp 0x21ec4
jmp 0x21f2b
jmp 0x21f4d
jmp 0x21f0d
jmp 0x21f2b
jmp 0x21f2b
jmp 0x21f2b
jmp 0x21eda
jmp 0x21ee9
jmp 0x21ef8
jmp 0x21f0d
jmp 0x21f1c
jmp 0x21f2b
jmp 0x21eda
jmp 0x21ee9
jmp 0x21f2b
jmp 0x21ef8
jmp 0x21f4d
jmp 0x21f1c
jmp 0x21ea0
jmp 0x21eaf
jmp 0x21ec4
jmp 0x21e6f
jmp 0x21e7e
jmp 0x21e93
jmp 0x21e6f
jmp 0x21e7e
jmp 0x21e93
jmp 0x21e6f
jmp 0x21e7e
jmp 0x21e93
jmp 0x21f2b
jmp 0x21f4d
jmp 0x21f0d
jmp 0x21f2b
jmp 0x21f2b
jmp 0x21eda
jmp 0x21f2b
jmp 0x21ee9
jmp 0x21ef8
jmp 0x21f1c
jmp 0x21f2b
jmp 0x21ea0
jmp 0x21eaf
jmp 0x21ec4
jmp 0x21e6f
jmp 0x21e7e
jmp 0x21e93
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3b616
jmp 0x21e81
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x21e96
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x21e96
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
jmp 0x21f22
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3b616
jmp 0x21eb2
movq %rax, %rbx
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x21ec7
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x21ec7
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
jmp 0x21f22
jmp 0x21f2b
jmp 0x21f4d
jmp 0x21f0d
jmp 0x21f2b
jmp 0x21f2b
jmp 0x21f2b
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x3b616
jmp 0x21eec
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0xdbe8
jmp 0x21efb
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x21f1f
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x21f1f
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0xdbe8
jmp 0x21f2e
movq %rax, %rbx
movq %r14, %rdi
callq 0x13646
jmp 0x21f2e
jmp 0x21f2b
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x25080
leaq 0xa0(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rdi
callq 0xdaa0
movq %rax, %rbx
jmp 0x21f38