// File: halfflat[P]tinyopt/test/test_state.cc
// Function: state_consume_Test::TestBody()
TEST(state, consume) {
    const char* argstr = "zero\0one\0two\0three\0four\0five\0six\0";
    mockargs M(argstr);

    std::vector<char*> v0 = M.args;
    to::state s(M.argc, M.argv);

    typedef to::state::match_result MR;


    s.consume(MR{nullptr, 0, 0});
    EXPECT_EQ(7, M.argc);
    EXPECT_EQ(0, M.argv[M.argc]);
    EXPECT_EQ(v0[0], M.argv[0]+s.optoff);

    s.consume(MR{nullptr, 0, 2});
    EXPECT_EQ(7, M.argc);
    EXPECT_EQ(0, M.argv[M.argc]);
    EXPECT_EQ(v0[0]+2, M.argv[0]+s.optoff);

    s.consume(MR{nullptr, 2, 0});
    EXPECT_EQ(5, M.argc);
    EXPECT_EQ(0, M.argv[M.argc]);
    EXPECT_EQ(v0[2], M.argv[0]+s.optoff);

    s.consume(MR{nullptr, 0, 2});
    EXPECT_EQ(5, M.argc);
    EXPECT_EQ(0, M.argv[M.argc]);
    EXPECT_EQ(v0[2]+2, M.argv[0]+s.optoff);

    s.consume(MR{nullptr, 1, 1});
    EXPECT_EQ(4, M.argc);
    EXPECT_EQ(0, M.argv[M.argc]);
    EXPECT_EQ(v0[3]+1, M.argv[0]+s.optoff);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x400, %rsp            # imm = 0x400
movq %rdi, -0x8(%rbp)
leaq 0x862a2(%rip), %rax     # 0xca3f8
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x4bfe0
leaq -0x28(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x4c040
jmp 0x44176
movq -0x30(%rbp), %rdx
leaq -0x78(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4c130
jmp 0x44189
movq $0x0, -0x88(%rbp)
movl $0x0, -0x80(%rbp)
movl $0x0, -0x7c(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x4c3e0
jmp 0x441b4
movl $0x7, -0x9c(%rbp)
leaq 0x842b8(%rip), %rsi     # 0xc847d
leaq 0x8608d(%rip), %rdx     # 0xca259
leaq -0x98(%rbp), %rdi
leaq -0x9c(%rbp), %rcx
leaq -0x38(%rbp), %r8
callq 0x1d5d0
jmp 0x441e5
leaq -0x98(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x311(%rbp)
jmp 0x441f9
movb -0x311(%rbp), %al
testb $0x1, %al
jne 0x44205
jmp 0x4423d
jmp 0x442e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4552b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44346
leaq -0xa8(%rbp), %rdi
callq 0x84210
jmp 0x4424b
leaq -0x98(%rbp), %rdi
callq 0x1d620
movq %rax, -0x320(%rbp)
jmp 0x44260
movq -0x320(%rbp), %r8
leaq 0x85f9d(%rip), %rdx     # 0xca20b
leaq -0xb0(%rbp), %rdi
movl $0x1, %esi
movl $0x37, %ecx
callq 0x80580
jmp 0x44286
leaq -0xb0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x7d370
jmp 0x4429b
leaq -0xb0(%rbp), %rdi
callq 0x80600
leaq -0xa8(%rbp), %rdi
callq 0x1d500
jmp 0x442e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x442db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x80600
leaq -0xa8(%rbp), %rdi
callq 0x1d500
jmp 0x44346
leaq -0x98(%rbp), %rdi
callq 0x1d520
movq -0x30(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %r8
leaq 0x8b466(%rip), %rsi     # 0xcf76e
leaq 0x85f51(%rip), %rdx     # 0xca260
xorl %eax, %eax
movl %eax, %ecx
leaq -0xc0(%rbp), %rdi
callq 0x4c230
jmp 0x44321
leaq -0xc0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x321(%rbp)
jmp 0x44335
movb -0x321(%rbp), %al
testb $0x1, %al
jne 0x44341
jmp 0x44368
jmp 0x44414
leaq -0x98(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4448c
leaq -0xc8(%rbp), %rdi
callq 0x84210
jmp 0x44376
leaq -0xc0(%rbp), %rdi
callq 0x1d620
movq %rax, -0x330(%rbp)
jmp 0x4438b
movq -0x330(%rbp), %r8
leaq 0x85e72(%rip), %rdx     # 0xca20b
leaq -0xd0(%rbp), %rdi
movl $0x1, %esi
movl $0x38, %ecx
callq 0x80580
jmp 0x443b1
leaq -0xd0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x7d370
jmp 0x443c6
leaq -0xd0(%rbp), %rdi
callq 0x80600
leaq -0xc8(%rbp), %rdi
callq 0x1d500
jmp 0x44414
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44406
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x80600
leaq -0xc8(%rbp), %rdi
callq 0x1d500
jmp 0x4448c
leaq -0xc0(%rbp), %rdi
callq 0x1d520
xorl %eax, %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x4c2d0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq (%rax), %rax
movl -0x68(%rbp), %edx
addq %rdx, %rax
movq %rax, -0xe8(%rbp)
leaq 0x85e24(%rip), %rsi     # 0xca26f
leaq 0x85e5b(%rip), %rdx     # 0xca2ad
leaq -0xe0(%rbp), %rdi
leaq -0xe8(%rbp), %r8
callq 0x4c280
jmp 0x44467
leaq -0xe0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x331(%rbp)
jmp 0x4447b
movb -0x331(%rbp), %al
testb $0x1, %al
jne 0x44487
jmp 0x444ae
jmp 0x4455d
leaq -0xc0(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x445f0
leaq -0xf0(%rbp), %rdi
callq 0x84210
jmp 0x444bc
leaq -0xe0(%rbp), %rdi
callq 0x1d620
movq %rax, -0x340(%rbp)
jmp 0x444d1
movq -0x340(%rbp), %r8
leaq 0x85d2c(%rip), %rdx     # 0xca20b
leaq -0xf8(%rbp), %rdi
movl $0x1, %esi
movl $0x39, %ecx
callq 0x80580
jmp 0x444f7
leaq -0xf8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x7d370
jmp 0x4450c
leaq -0xf8(%rbp), %rdi
callq 0x80600
leaq -0xf0(%rbp), %rdi
callq 0x1d500
jmp 0x4455d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4454c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x80600
leaq -0xf0(%rbp), %rdi
callq 0x1d500
jmp 0x445f0
leaq -0xe0(%rbp), %rdi
callq 0x1d520
movq $0x0, -0x108(%rbp)
movl $0x0, -0x100(%rbp)
movl $0x2, -0xfc(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x4c3e0
jmp 0x4459a
movl $0x7, -0x11c(%rbp)
leaq 0x83ed2(%rip), %rsi     # 0xc847d
leaq 0x85ca7(%rip), %rdx     # 0xca259
leaq -0x118(%rbp), %rdi
leaq -0x11c(%rbp), %rcx
leaq -0x38(%rbp), %r8
callq 0x1d5d0
jmp 0x445cb
leaq -0x118(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x341(%rbp)
jmp 0x445df
movb -0x341(%rbp), %al
testb $0x1, %al
jne 0x445eb
jmp 0x44612
jmp 0x446be
leaq -0xe0(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4471b
leaq -0x128(%rbp), %rdi
callq 0x84210
jmp 0x44620
leaq -0x118(%rbp), %rdi
callq 0x1d620
movq %rax, -0x350(%rbp)
jmp 0x44635
movq -0x350(%rbp), %r8
leaq 0x85bc8(%rip), %rdx     # 0xca20b
leaq -0x130(%rbp), %rdi
movl $0x1, %esi
movl $0x3c, %ecx
callq 0x80580
jmp 0x4465b
leaq -0x130(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x7d370
jmp 0x44670
leaq -0x130(%rbp), %rdi
callq 0x80600
leaq -0x128(%rbp), %rdi
callq 0x1d500
jmp 0x446be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x446b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x80600
leaq -0x128(%rbp), %rdi
callq 0x1d500
jmp 0x4471b
leaq -0x118(%rbp), %rdi
callq 0x1d520
movq -0x30(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %r8
leaq 0x8b091(%rip), %rsi     # 0xcf76e
leaq 0x85b7c(%rip), %rdx     # 0xca260
xorl %eax, %eax
movl %eax, %ecx
leaq -0x140(%rbp), %rdi
callq 0x4c230
jmp 0x446f6
leaq -0x140(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x351(%rbp)
jmp 0x4470a
movb -0x351(%rbp), %al
testb $0x1, %al
jne 0x44716
jmp 0x4473d
jmp 0x447ec
leaq -0x118(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44876
leaq -0x148(%rbp), %rdi
callq 0x84210
jmp 0x4474b
leaq -0x140(%rbp), %rdi
callq 0x1d620
movq %rax, -0x360(%rbp)
jmp 0x44760
movq -0x360(%rbp), %r8
leaq 0x85a9d(%rip), %rdx     # 0xca20b
leaq -0x150(%rbp), %rdi
movl $0x1, %esi
movl $0x3d, %ecx
callq 0x80580
jmp 0x44786
leaq -0x150(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x7d370
jmp 0x4479b
leaq -0x150(%rbp), %rdi
callq 0x80600
leaq -0x148(%rbp), %rdi
callq 0x1d500
jmp 0x447ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x447db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x80600
leaq -0x148(%rbp), %rdi
callq 0x1d500
jmp 0x44876
leaq -0x140(%rbp), %rdi
callq 0x1d520
xorl %eax, %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x4c2d0
movq (%rax), %rax
addq $0x2, %rax
movq %rax, -0x168(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movl -0x68(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0x170(%rbp)
leaq 0x85a92(%rip), %rsi     # 0xca2c0
leaq 0x85a78(%rip), %rdx     # 0xca2ad
leaq -0x160(%rbp), %rdi
leaq -0x168(%rbp), %rcx
leaq -0x170(%rbp), %r8
callq 0x4c280
jmp 0x44851
leaq -0x160(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x361(%rbp)
jmp 0x44865
movb -0x361(%rbp), %al
testb $0x1, %al
jne 0x44871
jmp 0x44898
jmp 0x44947
leaq -0x140(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x449da
leaq -0x178(%rbp), %rdi
callq 0x84210
jmp 0x448a6
leaq -0x160(%rbp), %rdi
callq 0x1d620
movq %rax, -0x370(%rbp)
jmp 0x448bb
movq -0x370(%rbp), %r8
leaq 0x85942(%rip), %rdx     # 0xca20b
leaq -0x180(%rbp), %rdi
movl $0x1, %esi
movl $0x3e, %ecx
callq 0x80580
jmp 0x448e1
leaq -0x180(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x7d370
jmp 0x448f6
leaq -0x180(%rbp), %rdi
callq 0x80600
leaq -0x178(%rbp), %rdi
callq 0x1d500
jmp 0x44947
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44936
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x80600
leaq -0x178(%rbp), %rdi
callq 0x1d500
jmp 0x449da
leaq -0x160(%rbp), %rdi
callq 0x1d520
movq $0x0, -0x190(%rbp)
movl $0x2, -0x188(%rbp)
movl $0x0, -0x184(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x4c3e0
jmp 0x44984
movl $0x5, -0x1a4(%rbp)
leaq 0x84434(%rip), %rsi     # 0xc8dc9
leaq 0x858bd(%rip), %rdx     # 0xca259
leaq -0x1a0(%rbp), %rdi
leaq -0x1a4(%rbp), %rcx
leaq -0x38(%rbp), %r8
callq 0x1d5d0
jmp 0x449b5
leaq -0x1a0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x371(%rbp)
jmp 0x449c9
movb -0x371(%rbp), %al
testb $0x1, %al
jne 0x449d5
jmp 0x449fc
jmp 0x44aa8
leaq -0x160(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44b05
leaq -0x1b0(%rbp), %rdi
callq 0x84210
jmp 0x44a0a
leaq -0x1a0(%rbp), %rdi
callq 0x1d620
movq %rax, -0x380(%rbp)
jmp 0x44a1f
movq -0x380(%rbp), %r8
leaq 0x857de(%rip), %rdx     # 0xca20b
leaq -0x1b8(%rbp), %rdi
movl $0x1, %esi
movl $0x41, %ecx
callq 0x80580
jmp 0x44a45
leaq -0x1b8(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x7d370
jmp 0x44a5a
leaq -0x1b8(%rbp), %rdi
callq 0x80600
leaq -0x1b0(%rbp), %rdi
callq 0x1d500
jmp 0x44aa8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44a9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x80600
leaq -0x1b0(%rbp), %rdi
callq 0x1d500
jmp 0x44b05
leaq -0x1a0(%rbp), %rdi
callq 0x1d520
movq -0x30(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %r8
leaq 0x8aca7(%rip), %rsi     # 0xcf76e
leaq 0x85792(%rip), %rdx     # 0xca260
xorl %eax, %eax
movl %eax, %ecx
leaq -0x1c8(%rbp), %rdi
callq 0x4c230
jmp 0x44ae0
leaq -0x1c8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x381(%rbp)
jmp 0x44af4
movb -0x381(%rbp), %al
testb $0x1, %al
jne 0x44b00
jmp 0x44b27
jmp 0x44bd3
leaq -0x1a0(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44c4c
leaq -0x1d0(%rbp), %rdi
callq 0x84210
jmp 0x44b35
leaq -0x1c8(%rbp), %rdi
callq 0x1d620
movq %rax, -0x390(%rbp)
jmp 0x44b4a
movq -0x390(%rbp), %r8
leaq 0x856b3(%rip), %rdx     # 0xca20b
leaq -0x1d8(%rbp), %rdi
movl $0x1, %esi
movl $0x42, %ecx
callq 0x80580
jmp 0x44b70
leaq -0x1d8(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x7d370
jmp 0x44b85
leaq -0x1d8(%rbp), %rdi
callq 0x80600
leaq -0x1d0(%rbp), %rdi
callq 0x1d500
jmp 0x44bd3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44bc5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x80600
leaq -0x1d0(%rbp), %rdi
callq 0x1d500
jmp 0x44c4c
leaq -0x1c8(%rbp), %rdi
callq 0x1d520
leaq -0x50(%rbp), %rdi
movl $0x2, %esi
callq 0x4c2d0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq (%rax), %rax
movl -0x68(%rbp), %edx
addq %rdx, %rax
movq %rax, -0x1f0(%rbp)
leaq 0x8568e(%rip), %rsi     # 0xca299
leaq 0x8569b(%rip), %rdx     # 0xca2ad
leaq -0x1e8(%rbp), %rdi
leaq -0x1f0(%rbp), %r8
callq 0x4c280
jmp 0x44c27
leaq -0x1e8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x391(%rbp)
jmp 0x44c3b
movb -0x391(%rbp), %al
testb $0x1, %al
jne 0x44c47
jmp 0x44c6e
jmp 0x44d1d
leaq -0x1c8(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44db0
leaq -0x1f8(%rbp), %rdi
callq 0x84210
jmp 0x44c7c
leaq -0x1e8(%rbp), %rdi
callq 0x1d620
movq %rax, -0x3a0(%rbp)
jmp 0x44c91
movq -0x3a0(%rbp), %r8
leaq 0x8556c(%rip), %rdx     # 0xca20b
leaq -0x200(%rbp), %rdi
movl $0x1, %esi
movl $0x43, %ecx
callq 0x80580
jmp 0x44cb7
leaq -0x200(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x7d370
jmp 0x44ccc
leaq -0x200(%rbp), %rdi
callq 0x80600
leaq -0x1f8(%rbp), %rdi
callq 0x1d500
jmp 0x44d1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44d0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x80600
leaq -0x1f8(%rbp), %rdi
callq 0x1d500
jmp 0x44db0
leaq -0x1e8(%rbp), %rdi
callq 0x1d520
movq $0x0, -0x210(%rbp)
movl $0x0, -0x208(%rbp)
movl $0x2, -0x204(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x4c3e0
jmp 0x44d5a
movl $0x5, -0x224(%rbp)
leaq 0x8405e(%rip), %rsi     # 0xc8dc9
leaq 0x854e7(%rip), %rdx     # 0xca259
leaq -0x220(%rbp), %rdi
leaq -0x224(%rbp), %rcx
leaq -0x38(%rbp), %r8
callq 0x1d5d0
jmp 0x44d8b
leaq -0x220(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x3a1(%rbp)
jmp 0x44d9f
movb -0x3a1(%rbp), %al
testb $0x1, %al
jne 0x44dab
jmp 0x44dd2
jmp 0x44e7e
leaq -0x1e8(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44edb
leaq -0x230(%rbp), %rdi
callq 0x84210
jmp 0x44de0
leaq -0x220(%rbp), %rdi
callq 0x1d620
movq %rax, -0x3b0(%rbp)
jmp 0x44df5
movq -0x3b0(%rbp), %r8
leaq 0x85408(%rip), %rdx     # 0xca20b
leaq -0x238(%rbp), %rdi
movl $0x1, %esi
movl $0x46, %ecx
callq 0x80580
jmp 0x44e1b
leaq -0x238(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x7d370
jmp 0x44e30
leaq -0x238(%rbp), %rdi
callq 0x80600
leaq -0x230(%rbp), %rdi
callq 0x1d500
jmp 0x44e7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44e70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x80600
leaq -0x230(%rbp), %rdi
callq 0x1d500
jmp 0x44edb
leaq -0x220(%rbp), %rdi
callq 0x1d520
movq -0x30(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %r8
leaq 0x8a8d1(%rip), %rsi     # 0xcf76e
leaq 0x853bc(%rip), %rdx     # 0xca260
xorl %eax, %eax
movl %eax, %ecx
leaq -0x248(%rbp), %rdi
callq 0x4c230
jmp 0x44eb6
leaq -0x248(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x3b1(%rbp)
jmp 0x44eca
movb -0x3b1(%rbp), %al
testb $0x1, %al
jne 0x44ed6
jmp 0x44efd
jmp 0x44fac
leaq -0x220(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x45037
leaq -0x250(%rbp), %rdi
callq 0x84210
jmp 0x44f0b
leaq -0x248(%rbp), %rdi
callq 0x1d620
movq %rax, -0x3c0(%rbp)
jmp 0x44f20
movq -0x3c0(%rbp), %r8
leaq 0x852dd(%rip), %rdx     # 0xca20b
leaq -0x258(%rbp), %rdi
movl $0x1, %esi
movl $0x47, %ecx
callq 0x80580
jmp 0x44f46
leaq -0x258(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x7d370
jmp 0x44f5b
leaq -0x258(%rbp), %rdi
callq 0x80600
leaq -0x250(%rbp), %rdi
callq 0x1d500
jmp 0x44fac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x44f9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x80600
leaq -0x250(%rbp), %rdi
callq 0x1d500
jmp 0x45037
leaq -0x248(%rbp), %rdi
callq 0x1d520
leaq -0x50(%rbp), %rdi
movl $0x2, %esi
callq 0x4c2d0
movq (%rax), %rax
addq $0x2, %rax
movq %rax, -0x270(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movl -0x68(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0x278(%rbp)
leaq 0x852d9(%rip), %rsi     # 0xca2c8
leaq 0x852b7(%rip), %rdx     # 0xca2ad
leaq -0x268(%rbp), %rdi
leaq -0x270(%rbp), %rcx
leaq -0x278(%rbp), %r8
callq 0x4c280
jmp 0x45012
leaq -0x268(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x3c1(%rbp)
jmp 0x45026
movb -0x3c1(%rbp), %al
testb $0x1, %al
jne 0x45032
jmp 0x45059
jmp 0x45108
leaq -0x248(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4519b
leaq -0x280(%rbp), %rdi
callq 0x84210
jmp 0x45067
leaq -0x268(%rbp), %rdi
callq 0x1d620
movq %rax, -0x3d0(%rbp)
jmp 0x4507c
movq -0x3d0(%rbp), %r8
leaq 0x85181(%rip), %rdx     # 0xca20b
leaq -0x288(%rbp), %rdi
movl $0x1, %esi
movl $0x48, %ecx
callq 0x80580
jmp 0x450a2
leaq -0x288(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x7d370
jmp 0x450b7
leaq -0x288(%rbp), %rdi
callq 0x80600
leaq -0x280(%rbp), %rdi
callq 0x1d500
jmp 0x45108
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x450f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x80600
leaq -0x280(%rbp), %rdi
callq 0x1d500
jmp 0x4519b
leaq -0x268(%rbp), %rdi
callq 0x1d520
movq $0x0, -0x298(%rbp)
movl $0x1, -0x290(%rbp)
movl $0x1, -0x28c(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x4c3e0
jmp 0x45145
movl $0x4, -0x2ac(%rbp)
leaq 0x85c1b(%rip), %rsi     # 0xcad71
leaq 0x850fc(%rip), %rdx     # 0xca259
leaq -0x2a8(%rbp), %rdi
leaq -0x2ac(%rbp), %rcx
leaq -0x38(%rbp), %r8
callq 0x1d5d0
jmp 0x45176
leaq -0x2a8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x3d1(%rbp)
jmp 0x4518a
movb -0x3d1(%rbp), %al
testb $0x1, %al
jne 0x45196
jmp 0x451bd
jmp 0x45269
leaq -0x268(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x452c6
leaq -0x2b8(%rbp), %rdi
callq 0x84210
jmp 0x451cb
leaq -0x2a8(%rbp), %rdi
callq 0x1d620
movq %rax, -0x3e0(%rbp)
jmp 0x451e0
movq -0x3e0(%rbp), %r8
leaq 0x8501d(%rip), %rdx     # 0xca20b
leaq -0x2c0(%rbp), %rdi
movl $0x1, %esi
movl $0x4b, %ecx
callq 0x80580
jmp 0x45206
leaq -0x2c0(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
callq 0x7d370
jmp 0x4521b
leaq -0x2c0(%rbp), %rdi
callq 0x80600
leaq -0x2b8(%rbp), %rdi
callq 0x1d500
jmp 0x45269
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4525b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x80600
leaq -0x2b8(%rbp), %rdi
callq 0x1d500
jmp 0x452c6
leaq -0x2a8(%rbp), %rdi
callq 0x1d520
movq -0x30(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %r8
leaq 0x8a4e6(%rip), %rsi     # 0xcf76e
leaq 0x84fd1(%rip), %rdx     # 0xca260
xorl %eax, %eax
movl %eax, %ecx
leaq -0x2d0(%rbp), %rdi
callq 0x4c230
jmp 0x452a1
leaq -0x2d0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x3e1(%rbp)
jmp 0x452b5
movb -0x3e1(%rbp), %al
testb $0x1, %al
jne 0x452c1
jmp 0x452e8
jmp 0x45397
leaq -0x2a8(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x45421
leaq -0x2d8(%rbp), %rdi
callq 0x84210
jmp 0x452f6
leaq -0x2d0(%rbp), %rdi
callq 0x1d620
movq %rax, -0x3f0(%rbp)
jmp 0x4530b
movq -0x3f0(%rbp), %r8
leaq 0x84ef2(%rip), %rdx     # 0xca20b
leaq -0x2e0(%rbp), %rdi
movl $0x1, %esi
movl $0x4c, %ecx
callq 0x80580
jmp 0x45331
leaq -0x2e0(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x7d370
jmp 0x45346
leaq -0x2e0(%rbp), %rdi
callq 0x80600
leaq -0x2d8(%rbp), %rdi
callq 0x1d500
jmp 0x45397
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x45386
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x80600
leaq -0x2d8(%rbp), %rdi
callq 0x1d500
jmp 0x45421
leaq -0x2d0(%rbp), %rdi
callq 0x1d520
leaq -0x50(%rbp), %rdi
movl $0x3, %esi
callq 0x4c2d0
movq (%rax), %rax
incq %rax
movq %rax, -0x2f8(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movl -0x68(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0x300(%rbp)
leaq 0x84ef7(%rip), %rsi     # 0xca2d0
leaq 0x84ecd(%rip), %rdx     # 0xca2ad
leaq -0x2f0(%rbp), %rdi
leaq -0x2f8(%rbp), %rcx
leaq -0x300(%rbp), %r8
callq 0x4c280
jmp 0x453fc
leaq -0x2f0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x3f1(%rbp)
jmp 0x45410
movb -0x3f1(%rbp), %al
testb $0x1, %al
jne 0x4541c
jmp 0x45443
jmp 0x454ef
leaq -0x2d0(%rbp), %rdi
callq 0x1d520
jmp 0x45522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x45516
leaq -0x308(%rbp), %rdi
callq 0x84210
jmp 0x45451
leaq -0x2f0(%rbp), %rdi
callq 0x1d620
movq %rax, -0x400(%rbp)
jmp 0x45466
movq -0x400(%rbp), %r8
leaq 0x84d97(%rip), %rdx     # 0xca20b
leaq -0x310(%rbp), %rdi
movl $0x1, %esi
movl $0x4d, %ecx
callq 0x80580
jmp 0x4548c
leaq -0x310(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0x7d370
jmp 0x454a1
leaq -0x310(%rbp), %rdi
callq 0x80600
leaq -0x308(%rbp), %rdi
callq 0x1d500
jmp 0x454ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x454e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x80600
leaq -0x308(%rbp), %rdi
callq 0x1d500
jmp 0x45516
leaq -0x2f0(%rbp), %rdi
callq 0x1d520
leaq -0x50(%rbp), %rdi
callq 0x4c320
leaq -0x38(%rbp), %rdi
callq 0x4c380
addq $0x400, %rsp            # imm = 0x400
popq %rbp
retq
leaq -0x2f0(%rbp), %rdi
callq 0x1d520
leaq -0x50(%rbp), %rdi
callq 0x4c320
leaq -0x38(%rbp), %rdi
callq 0x4c380
movq -0x58(%rbp), %rdi
callq 0x10e00
nopl (%rax)