// File: halfflat[P]tinyopt/test/test_state.cc
// Function: state_match_short_Test::TestBody()
TEST(state, match_short) {
    to::key k("key", to::key::shortfmt);

    {
        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_option(k);
        ASSERT_FALSE(mmr);
    }

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

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

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

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x590, %rsp            # imm = 0x590
movq %rdi, -0x8(%rbp)
leaq -0x51(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x10e10
movq -0x508(%rbp), %rdx
leaq 0x823b7(%rip), %rsi     # 0xc9564
leaq -0x50(%rbp), %rdi
callq 0x1d070
jmp 0x471b8
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rsi
xorl %edx, %edx
callq 0x38420
jmp 0x471c9
leaq -0x50(%rbp), %rdi
callq 0x10fc8
leaq -0x51(%rbp), %rdi
callq 0x10810
leaq 0x832fe(%rip), %rsi     # 0xca4e0
leaq -0x90(%rbp), %rdi
callq 0x4bfe0
jmp 0x471f0
movq -0x88(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x4c130
jmp 0x4720c
leaq -0xc0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x4c460
jmp 0x47225
xorl %eax, %eax
movl %eax, %edx
leaq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x4c730
jmp 0x4723e
leaq -0xd0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x509(%rbp)
jmp 0x47252
movb -0x509(%rbp), %al
testb $0x1, %al
jne 0x4725e
jmp 0x472d8
jmp 0x473d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47286
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x10fc8
leaq -0x51(%rbp), %rdi
callq 0x10810
jmp 0x48837
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x4882e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47a4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47a41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47477
leaq -0xd8(%rbp), %rdi
callq 0x84210
jmp 0x472e6
leaq 0x82ff6(%rip), %rdx     # 0xca2e3
leaq 0x8115b(%rip), %rcx     # 0xc844f
leaq 0x8115a(%rip), %r8      # 0xc8455
leaq -0x100(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x7d210
jmp 0x47310
leaq -0x100(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x82ee5(%rip), %rdx     # 0xca20b
leaq -0xe0(%rbp), %rdi
movl $0x2, %esi
movl $0x96, %ecx
callq 0x80580
jmp 0x4733e
leaq -0xe0(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x7d370
jmp 0x47353
leaq -0xe0(%rbp), %rdi
callq 0x80600
leaq -0x100(%rbp), %rdi
callq 0x10fc8
leaq -0xd8(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x104(%rbp)
jmp 0x473de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x473c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x473b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x80600
leaq -0x100(%rbp), %rdi
callq 0x10fc8
leaq -0xd8(%rbp), %rdi
callq 0x1d500
jmp 0x47477
movl $0x0, -0x104(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x1d520
movl -0x104(%rbp), %eax
testl %eax, %eax
jne 0x47985
jmp 0x473fa
leaq 0x82f5e(%rip), %rsi     # 0xca35f
leaq -0x138(%rbp), %rdi
movl $0x5, %edx
callq 0x39200
jmp 0x47414
leaq -0xc0(%rbp), %rdi
callq 0x4c7c0
movq %rax, %r8
leaq 0x82ebd(%rip), %rsi     # 0xca2e7
leaq 0x82ebf(%rip), %rdx     # 0xca2f0
leaq -0x118(%rbp), %rdi
leaq -0x138(%rbp), %rcx
callq 0x4c770
jmp 0x47446
leaq -0x138(%rbp), %rdi
callq 0x10fc8
leaq -0x118(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x50a(%rbp)
jmp 0x47466
movb -0x50a(%rbp), %al
testb $0x1, %al
jne 0x47472
jmp 0x474b6
jmp 0x47562
leaq -0xd0(%rbp), %rdi
callq 0x1d520
jmp 0x47a41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x10fc8
jmp 0x47a41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x475d3
leaq -0x140(%rbp), %rdi
callq 0x84210
jmp 0x474c4
leaq -0x118(%rbp), %rdi
callq 0x1d620
movq %rax, -0x518(%rbp)
jmp 0x474d9
movq -0x518(%rbp), %r8
leaq 0x82d24(%rip), %rdx     # 0xca20b
leaq -0x148(%rbp), %rdi
movl $0x1, %esi
movl $0x97, %ecx
callq 0x80580
jmp 0x474ff
leaq -0x148(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x7d370
jmp 0x47514
leaq -0x148(%rbp), %rdi
callq 0x80600
leaq -0x140(%rbp), %rdi
callq 0x1d500
jmp 0x47562
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47554
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x80600
leaq -0x140(%rbp), %rdi
callq 0x1d500
jmp 0x475d3
leaq -0x118(%rbp), %rdi
callq 0x1d520
movl $0x2, -0x15c(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x4c7c0
movq %rax, %r8
addq $0x8, %r8
leaq 0x822db(%rip), %rsi     # 0xc986d
leaq 0x82d65(%rip), %rdx     # 0xca2fe
leaq -0x158(%rbp), %rdi
leaq -0x15c(%rbp), %rcx
callq 0x4c7e0
jmp 0x475ae
leaq -0x158(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x519(%rbp)
jmp 0x475c2
movb -0x519(%rbp), %al
testb $0x1, %al
jne 0x475ce
jmp 0x475f5
jmp 0x476a1
leaq -0x118(%rbp), %rdi
callq 0x1d520
jmp 0x47a41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47712
leaq -0x168(%rbp), %rdi
callq 0x84210
jmp 0x47603
leaq -0x158(%rbp), %rdi
callq 0x1d620
movq %rax, -0x528(%rbp)
jmp 0x47618
movq -0x528(%rbp), %r8
leaq 0x82be5(%rip), %rdx     # 0xca20b
leaq -0x170(%rbp), %rdi
movl $0x1, %esi
movl $0x98, %ecx
callq 0x80580
jmp 0x4763e
leaq -0x170(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x7d370
jmp 0x47653
leaq -0x170(%rbp), %rdi
callq 0x80600
leaq -0x168(%rbp), %rdi
callq 0x1d500
jmp 0x476a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47693
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x80600
leaq -0x168(%rbp), %rdi
callq 0x1d500
jmp 0x47712
leaq -0x158(%rbp), %rdi
callq 0x1d520
movl $0x0, -0x184(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x4c7c0
movq %rax, %r8
addq $0xc, %r8
leaq 0x82182(%rip), %rsi     # 0xc9853
leaq 0x82c31(%rip), %rdx     # 0xca309
leaq -0x180(%rbp), %rdi
leaq -0x184(%rbp), %rcx
callq 0x4c7e0
jmp 0x476ed
leaq -0x180(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x529(%rbp)
jmp 0x47701
movb -0x529(%rbp), %al
testb $0x1, %al
jne 0x4770d
jmp 0x47734
jmp 0x477e3
leaq -0x158(%rbp), %rdi
callq 0x1d520
jmp 0x47a41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47881
leaq -0x190(%rbp), %rdi
callq 0x84210
jmp 0x47742
leaq -0x180(%rbp), %rdi
callq 0x1d620
movq %rax, -0x538(%rbp)
jmp 0x47757
movq -0x538(%rbp), %r8
leaq 0x82aa6(%rip), %rdx     # 0xca20b
leaq -0x198(%rbp), %rdi
movl $0x1, %esi
movl $0x99, %ecx
callq 0x80580
jmp 0x4777d
leaq -0x198(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x7d370
jmp 0x47792
leaq -0x198(%rbp), %rdi
callq 0x80600
leaq -0x190(%rbp), %rdi
callq 0x1d500
jmp 0x477e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x477d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x80600
leaq -0x190(%rbp), %rdi
callq 0x1d500
jmp 0x47881
leaq -0x180(%rbp), %rdi
callq 0x1d520
leaq -0xc0(%rbp), %rdi
callq 0x4c830
movq %rax, %rsi
leaq -0xa8(%rbp), %rdi
callq 0x4c3e0
jmp 0x4780c
leaq 0x82b0a(%rip), %rsi     # 0xca31d
leaq -0x1c8(%rbp), %rdi
movl $0x4, %edx
callq 0x39200
jmp 0x47826
movq -0x88(%rbp), %r8
leaq 0x82ae1(%rip), %rsi     # 0xca315
leaq 0x82a3a(%rip), %rdx     # 0xca275
leaq -0x1a8(%rbp), %rdi
leaq -0x1c8(%rbp), %rcx
callq 0x4c850
jmp 0x47850
leaq -0x1c8(%rbp), %rdi
callq 0x10fc8
leaq -0x1a8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x539(%rbp)
jmp 0x47870
movb -0x539(%rbp), %al
testb $0x1, %al
jne 0x4787c
jmp 0x478c0
jmp 0x4796f
leaq -0x180(%rbp), %rdi
callq 0x1d520
jmp 0x47a41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x10fc8
jmp 0x47a41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47a35
leaq -0x1d0(%rbp), %rdi
callq 0x84210
jmp 0x478ce
leaq -0x1a8(%rbp), %rdi
callq 0x1d620
movq %rax, -0x548(%rbp)
jmp 0x478e3
movq -0x548(%rbp), %r8
leaq 0x8291a(%rip), %rdx     # 0xca20b
leaq -0x1d8(%rbp), %rdi
movl $0x1, %esi
movl $0x9c, %ecx
callq 0x80580
jmp 0x47909
leaq -0x1d8(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x7d370
jmp 0x4791e
leaq -0x1d8(%rbp), %rdi
callq 0x80600
leaq -0x1d0(%rbp), %rdi
callq 0x1d500
jmp 0x4796f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x4795e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x80600
leaq -0x1d0(%rbp), %rdi
callq 0x1d500
jmp 0x47a35
leaq -0x1a8(%rbp), %rdi
callq 0x1d520
movl $0x0, -0x104(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x4c8a0
leaq -0x90(%rbp), %rdi
callq 0x4c380
movl -0x104(%rbp), %eax
testl %eax, %eax
jne 0x487f8
jmp 0x479ad
leaq 0x82b2c(%rip), %rsi     # 0xca4e0
leaq -0x200(%rbp), %rdi
callq 0x4bfe0
jmp 0x479c2
movq -0x1f8(%rbp), %rdx
leaq -0x218(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x4c130
jmp 0x479de
leaq -0x230(%rbp), %rdi
leaq -0x218(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x4c8d0
jmp 0x479f7
xorl %eax, %eax
movl %eax, %edx
leaq -0x240(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x4c730
jmp 0x47a10
leaq -0x240(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x549(%rbp)
jmp 0x47a24
movb -0x549(%rbp), %al
testb $0x1, %al
jne 0x47a30
jmp 0x47a91
jmp 0x47b8a
leaq -0x1a8(%rbp), %rdi
callq 0x1d520
leaq -0xc0(%rbp), %rdi
callq 0x4c8a0
leaq -0x90(%rbp), %rdi
callq 0x4c380
jmp 0x4882e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x481d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x481c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47c04
leaq -0x248(%rbp), %rdi
callq 0x84210
jmp 0x47a9f
leaq 0x8283d(%rip), %rdx     # 0xca2e3
leaq 0x809a2(%rip), %rcx     # 0xc844f
leaq 0x809a1(%rip), %r8      # 0xc8455
leaq -0x270(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x7d210
jmp 0x47ac9
leaq -0x270(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x8272c(%rip), %rdx     # 0xca20b
leaq -0x250(%rbp), %rdi
movl $0x2, %esi
movl $0xa4, %ecx
callq 0x80580
jmp 0x47af7
leaq -0x250(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x7d370
jmp 0x47b0c
leaq -0x250(%rbp), %rdi
callq 0x80600
leaq -0x270(%rbp), %rdi
callq 0x10fc8
leaq -0x248(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x104(%rbp)
jmp 0x47b94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47b7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47b70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x250(%rbp), %rdi
callq 0x80600
leaq -0x270(%rbp), %rdi
callq 0x10fc8
leaq -0x248(%rbp), %rdi
callq 0x1d500
jmp 0x47c04
movl $0x0, -0x104(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x1d520
movl -0x104(%rbp), %eax
testl %eax, %eax
jne 0x480f5
jmp 0x47bb0
leaq -0x230(%rbp), %rdi
callq 0x4c7c0
movq (%rax), %r8
leaq 0x8275c(%rip), %rsi     # 0xca322
leaq 0x82723(%rip), %rdx     # 0xca2f0
xorl %eax, %eax
movl %eax, %ecx
leaq -0x280(%rbp), %rdi
callq 0x4ca80
jmp 0x47bdf
leaq -0x280(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x54a(%rbp)
jmp 0x47bf3
movb -0x54a(%rbp), %al
testb $0x1, %al
jne 0x47bff
jmp 0x47c26
jmp 0x47cd2
leaq -0x240(%rbp), %rdi
callq 0x1d520
jmp 0x481c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47d43
leaq -0x288(%rbp), %rdi
callq 0x84210
jmp 0x47c34
leaq -0x280(%rbp), %rdi
callq 0x1d620
movq %rax, -0x558(%rbp)
jmp 0x47c49
movq -0x558(%rbp), %r8
leaq 0x825b4(%rip), %rdx     # 0xca20b
leaq -0x290(%rbp), %rdi
movl $0x1, %esi
movl $0xa5, %ecx
callq 0x80580
jmp 0x47c6f
leaq -0x290(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x7d370
jmp 0x47c84
leaq -0x290(%rbp), %rdi
callq 0x80600
leaq -0x288(%rbp), %rdi
callq 0x1d500
jmp 0x47cd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47cc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x80600
leaq -0x288(%rbp), %rdi
callq 0x1d500
jmp 0x47d43
leaq -0x280(%rbp), %rdi
callq 0x1d520
movl $0x1, -0x2a4(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x4c7c0
movq %rax, %r8
addq $0x8, %r8
leaq 0x81b21(%rip), %rsi     # 0xc9823
leaq 0x825f5(%rip), %rdx     # 0xca2fe
leaq -0x2a0(%rbp), %rdi
leaq -0x2a4(%rbp), %rcx
callq 0x4c7e0
jmp 0x47d1e
leaq -0x2a0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x559(%rbp)
jmp 0x47d32
movb -0x559(%rbp), %al
testb $0x1, %al
jne 0x47d3e
jmp 0x47d65
jmp 0x47e11
leaq -0x280(%rbp), %rdi
callq 0x1d520
jmp 0x481c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47e82
leaq -0x2b0(%rbp), %rdi
callq 0x84210
jmp 0x47d73
leaq -0x2a0(%rbp), %rdi
callq 0x1d620
movq %rax, -0x568(%rbp)
jmp 0x47d88
movq -0x568(%rbp), %r8
leaq 0x82475(%rip), %rdx     # 0xca20b
leaq -0x2b8(%rbp), %rdi
movl $0x1, %esi
movl $0xa6, %ecx
callq 0x80580
jmp 0x47dae
leaq -0x2b8(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x7d370
jmp 0x47dc3
leaq -0x2b8(%rbp), %rdi
callq 0x80600
leaq -0x2b0(%rbp), %rdi
callq 0x1d500
jmp 0x47e11
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47e03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x2b8(%rbp), %rdi
callq 0x80600
leaq -0x2b0(%rbp), %rdi
callq 0x1d500
jmp 0x47e82
leaq -0x2a0(%rbp), %rdi
callq 0x1d520
movl $0x0, -0x2cc(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x4c7c0
movq %rax, %r8
addq $0xc, %r8
leaq 0x81a12(%rip), %rsi     # 0xc9853
leaq 0x824c1(%rip), %rdx     # 0xca309
leaq -0x2c8(%rbp), %rdi
leaq -0x2cc(%rbp), %rcx
callq 0x4c7e0
jmp 0x47e5d
leaq -0x2c8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x569(%rbp)
jmp 0x47e71
movb -0x569(%rbp), %al
testb $0x1, %al
jne 0x47e7d
jmp 0x47ea4
jmp 0x47f53
leaq -0x2a0(%rbp), %rdi
callq 0x1d520
jmp 0x481c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47ff1
leaq -0x2d8(%rbp), %rdi
callq 0x84210
jmp 0x47eb2
leaq -0x2c8(%rbp), %rdi
callq 0x1d620
movq %rax, -0x578(%rbp)
jmp 0x47ec7
movq -0x578(%rbp), %r8
leaq 0x82336(%rip), %rdx     # 0xca20b
leaq -0x2e0(%rbp), %rdi
movl $0x1, %esi
movl $0xa7, %ecx
callq 0x80580
jmp 0x47eed
leaq -0x2e0(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x7d370
jmp 0x47f02
leaq -0x2e0(%rbp), %rdi
callq 0x80600
leaq -0x2d8(%rbp), %rdi
callq 0x1d500
jmp 0x47f53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x47f42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x80600
leaq -0x2d8(%rbp), %rdi
callq 0x1d500
jmp 0x47ff1
leaq -0x2c8(%rbp), %rdi
callq 0x1d520
leaq -0x230(%rbp), %rdi
callq 0x4c830
movq %rax, %rsi
leaq -0x218(%rbp), %rdi
callq 0x4c3e0
jmp 0x47f7c
leaq 0x823dc(%rip), %rsi     # 0xca35f
leaq -0x310(%rbp), %rdi
movl $0x5, %edx
callq 0x39200
jmp 0x47f96
movq -0x1f8(%rbp), %r8
leaq 0x82343(%rip), %rsi     # 0xca2e7
leaq 0x822ca(%rip), %rdx     # 0xca275
leaq -0x2f0(%rbp), %rdi
leaq -0x310(%rbp), %rcx
callq 0x4c850
jmp 0x47fc0
leaq -0x310(%rbp), %rdi
callq 0x10fc8
leaq -0x2f0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x579(%rbp)
jmp 0x47fe0
movb -0x579(%rbp), %al
testb $0x1, %al
jne 0x47fec
jmp 0x48030
jmp 0x480df
leaq -0x2c8(%rbp), %rdi
callq 0x1d520
jmp 0x481c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x10fc8
jmp 0x481c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x481b9
leaq -0x318(%rbp), %rdi
callq 0x84210
jmp 0x4803e
leaq -0x2f0(%rbp), %rdi
callq 0x1d620
movq %rax, -0x588(%rbp)
jmp 0x48053
movq -0x588(%rbp), %r8
leaq 0x821aa(%rip), %rdx     # 0xca20b
leaq -0x320(%rbp), %rdi
movl $0x1, %esi
movl $0xaa, %ecx
callq 0x80580
jmp 0x48079
leaq -0x320(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x7d370
jmp 0x4808e
leaq -0x320(%rbp), %rdi
callq 0x80600
leaq -0x318(%rbp), %rdi
callq 0x1d500
jmp 0x480df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x480ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x80600
leaq -0x318(%rbp), %rdi
callq 0x1d500
jmp 0x481b9
leaq -0x2f0(%rbp), %rdi
callq 0x1d520
movl $0x0, -0x104(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x4c8a0
leaq -0x200(%rbp), %rdi
callq 0x4c380
movl -0x104(%rbp), %eax
testl %eax, %eax
jne 0x487f8
jmp 0x4811d
leaq 0x823cc(%rip), %rsi     # 0xca4f0
leaq -0x348(%rbp), %rdi
callq 0x4bfe0
jmp 0x48132
movq -0x340(%rbp), %rdx
leaq -0x360(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x4c130
jmp 0x4814e
leaq -0x378(%rbp), %rdi
leaq -0x360(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x4c460
jmp 0x48167
leaq -0x378(%rbp), %rdi
callq 0x4cad0
xorb $0x1, %al
movb %al, -0x389(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x388(%rbp), %rdi
leaq -0x389(%rbp), %rsi
callq 0x1d4a0
jmp 0x48194
leaq -0x388(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x589(%rbp)
jmp 0x481a8
movb -0x589(%rbp), %al
testb $0x1, %al
jne 0x481b4
jmp 0x48215
jmp 0x48311
leaq -0x2f0(%rbp), %rdi
callq 0x1d520
leaq -0x230(%rbp), %rdi
callq 0x4c8a0
leaq -0x200(%rbp), %rdi
callq 0x4c380
jmp 0x4882e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48419
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x4840d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48401
leaq -0x398(%rbp), %rdi
callq 0x84210
jmp 0x48223
leaq 0x820b9(%rip), %rdx     # 0xca2e3
leaq 0x80224(%rip), %rcx     # 0xc8455
leaq 0x80217(%rip), %r8      # 0xc844f
leaq -0x3c0(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x7d210
jmp 0x4824d
leaq -0x3c0(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x81fa8(%rip), %rdx     # 0xca20b
leaq -0x3a0(%rbp), %rdi
movl $0x2, %esi
movl $0xb2, %ecx
callq 0x80580
jmp 0x4827b
leaq -0x3a0(%rbp), %rdi
leaq -0x398(%rbp), %rsi
callq 0x7d370
jmp 0x48290
leaq -0x3a0(%rbp), %rdi
callq 0x80600
leaq -0x3c0(%rbp), %rdi
callq 0x10fc8
leaq -0x398(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x104(%rbp)
jmp 0x4831b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48300
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x482f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x80600
leaq -0x3c0(%rbp), %rdi
callq 0x10fc8
leaq -0x398(%rbp), %rdi
callq 0x1d500
jmp 0x48401
movl $0x0, -0x104(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x1d520
movl -0x104(%rbp), %eax
testl %eax, %eax
jne 0x4833d
jmp 0x48333
movl $0x0, -0x104(%rbp)
leaq -0x378(%rbp), %rdi
callq 0x4c8a0
leaq -0x348(%rbp), %rdi
callq 0x4c380
movl -0x104(%rbp), %eax
testl %eax, %eax
jne 0x487f8
jmp 0x48365
leaq 0x82184(%rip), %rsi     # 0xca4f0
leaq -0x3e8(%rbp), %rdi
callq 0x4bfe0
jmp 0x4837a
movq -0x3e0(%rbp), %rdx
leaq -0x400(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
callq 0x4c130
jmp 0x48396
leaq -0x418(%rbp), %rdi
leaq -0x400(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x4c460
jmp 0x483af
leaq -0x418(%rbp), %rdi
callq 0x4cad0
xorb $0x1, %al
movb %al, -0x429(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x428(%rbp), %rdi
leaq -0x429(%rbp), %rsi
callq 0x1d4a0
jmp 0x483dc
leaq -0x428(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x58a(%rbp)
jmp 0x483f0
movb -0x58a(%rbp), %al
testb $0x1, %al
jne 0x483fc
jmp 0x4845d
jmp 0x48559
leaq -0x388(%rbp), %rdi
callq 0x1d520
leaq -0x378(%rbp), %rdi
callq 0x4c8a0
leaq -0x348(%rbp), %rdi
callq 0x4c380
jmp 0x4882e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48661
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48655
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48649
leaq -0x438(%rbp), %rdi
callq 0x84210
jmp 0x4846b
leaq 0x81e71(%rip), %rdx     # 0xca2e3
leaq 0x7ffdc(%rip), %rcx     # 0xc8455
leaq 0x7ffcf(%rip), %r8      # 0xc844f
leaq -0x460(%rbp), %rdi
leaq -0x428(%rbp), %rsi
callq 0x7d210
jmp 0x48495
leaq -0x460(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x81d60(%rip), %rdx     # 0xca20b
leaq -0x440(%rbp), %rdi
movl $0x2, %esi
movl $0xba, %ecx
callq 0x80580
jmp 0x484c3
leaq -0x440(%rbp), %rdi
leaq -0x438(%rbp), %rsi
callq 0x7d370
jmp 0x484d8
leaq -0x440(%rbp), %rdi
callq 0x80600
leaq -0x460(%rbp), %rdi
callq 0x10fc8
leaq -0x438(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x104(%rbp)
jmp 0x48563
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48548
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x4853c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x80600
leaq -0x460(%rbp), %rdi
callq 0x10fc8
leaq -0x438(%rbp), %rdi
callq 0x1d500
jmp 0x48649
movl $0x0, -0x104(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x1d520
movl -0x104(%rbp), %eax
testl %eax, %eax
jne 0x48585
jmp 0x4857b
movl $0x0, -0x104(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x4c8a0
leaq -0x3e8(%rbp), %rdi
callq 0x4c380
movl -0x104(%rbp), %eax
testl %eax, %eax
jne 0x487f8
jmp 0x485ad
leaq 0x81e66(%rip), %rsi     # 0xca41a
leaq -0x488(%rbp), %rdi
callq 0x4bfe0
jmp 0x485c2
movq -0x480(%rbp), %rdx
leaq -0x4a0(%rbp), %rdi
leaq -0x488(%rbp), %rsi
callq 0x4c130
jmp 0x485de
leaq -0x4b8(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x4c460
jmp 0x485f7
leaq -0x4b8(%rbp), %rdi
callq 0x4cad0
xorb $0x1, %al
movb %al, -0x4c9(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x4c8(%rbp), %rdi
leaq -0x4c9(%rbp), %rsi
callq 0x1d4a0
jmp 0x48624
leaq -0x4c8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x58b(%rbp)
jmp 0x48638
movb -0x58b(%rbp), %al
testb $0x1, %al
jne 0x48644
jmp 0x486a5
jmp 0x4879e
leaq -0x428(%rbp), %rdi
callq 0x1d520
leaq -0x418(%rbp), %rdi
callq 0x4c8a0
leaq -0x3e8(%rbp), %rdi
callq 0x4c380
jmp 0x4882e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48822
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48816
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x4880a
leaq -0x4d8(%rbp), %rdi
callq 0x84210
jmp 0x486b3
leaq 0x81c29(%rip), %rdx     # 0xca2e3
leaq 0x7fd94(%rip), %rcx     # 0xc8455
leaq 0x7fd87(%rip), %r8      # 0xc844f
leaq -0x500(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x7d210
jmp 0x486dd
leaq -0x500(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x81b18(%rip), %rdx     # 0xca20b
leaq -0x4e0(%rbp), %rdi
movl $0x2, %esi
movl $0xc2, %ecx
callq 0x80580
jmp 0x4870b
leaq -0x4e0(%rbp), %rdi
leaq -0x4d8(%rbp), %rsi
callq 0x7d370
jmp 0x48720
leaq -0x4e0(%rbp), %rdi
callq 0x80600
leaq -0x500(%rbp), %rdi
callq 0x10fc8
leaq -0x4d8(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x104(%rbp)
jmp 0x487a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48790
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x48784
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x4e0(%rbp), %rdi
callq 0x80600
leaq -0x500(%rbp), %rdi
callq 0x10fc8
leaq -0x4d8(%rbp), %rdi
callq 0x1d500
jmp 0x4880a
movl $0x0, -0x104(%rbp)
leaq -0x4c8(%rbp), %rdi
callq 0x1d520
movl -0x104(%rbp), %eax
testl %eax, %eax
jne 0x487ca
jmp 0x487c0
movl $0x0, -0x104(%rbp)
leaq -0x4b8(%rbp), %rdi
callq 0x4c8a0
leaq -0x488(%rbp), %rdi
callq 0x4c380
movl -0x104(%rbp), %eax
testl %eax, %eax
jne 0x487f8
jmp 0x487ee
movl $0x0, -0x104(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x384f0
addq $0x590, %rsp            # imm = 0x590
popq %rbp
retq
leaq -0x4c8(%rbp), %rdi
callq 0x1d520
leaq -0x4b8(%rbp), %rdi
callq 0x4c8a0
leaq -0x488(%rbp), %rdi
callq 0x4c380
leaq -0x30(%rbp), %rdi
callq 0x384f0
movq -0x60(%rbp), %rdi
callq 0x10e00