// File: /workspace/github_cpp_makefile_star2_O3/halfflat[P]tinyopt/test/test_parse.cc
// Function: parse_value_Test::TestBody()
TEST(parse, value) {
    {
        mockargs M("-s\0003\0end\0");
        char** arg = M.argv;

        auto r = to::parse<int>(arg, "-s", "--long");
        ASSERT_TRUE(r);
        ASSERT_EQ(3, *r);
        ASSERT_EQ(M.argv+2, arg);
    }

    {
        mockargs M("-s\0fish\0");
        char** arg = M.argv;

        EXPECT_THROW(to::parse<int>(arg, "-s"), to::option_parse_error);
    }

    {
        mockargs M("--long\0-123\0end\0");
        char** arg = M.argv;

        auto r = to::parse<int>(arg, "--long");
        ASSERT_TRUE(r);
        ASSERT_EQ(-123, *r);
        ASSERT_EQ(M.argv+2, arg);
    }

    {
        mockargs M("--long\0");
        char** arg = M.argv;

        EXPECT_THROW(to::parse<int>(arg, "--long"), to::missing_argument);
    }

    {
        mockargs M("--xyz\0end\0");
        char** arg = M.argv;

        auto r = to::parse<int>(arg, "-s", "--long");
        ASSERT_FALSE(r);
        ASSERT_EQ(M.argv, arg);
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x160, %rsp            # imm = 0x160
leaq 0x4328b(%rip), %rsi     # 0x6e85a
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x29a42
movq 0x8(%rbx), %rax
movq %rax, 0x50(%rsp)
leaq 0x42db4(%rip), %rsi     # 0x6e3a0
leaq 0x138(%rsp), %rdi
callq 0x200cc
leaq 0x418f3(%rip), %rcx     # 0x6cef3
leaq 0x48(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x138(%rsp), %rdx
callq 0x2d0d3
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b638
movq 0x148(%rsp), %rsi
incq %rsi
callq 0xd530
movb 0x48(%rsp), %al
movb %al, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
testb %al, %al
je 0x2b6f2
leaq 0x28(%rsp), %rcx
movl $0x3, (%rcx)
leaq 0x4c(%rsp), %r8
leaq 0x43461(%rip), %rsi     # 0x6eac9
leaq 0x42d44(%rip), %rdx     # 0x6e3b3
leaq 0x8(%rsp), %rdi
callq 0x157b7
cmpb $0x0, 0x8(%rsp)
je 0x2b793
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x2b698
leaq 0x10(%rsp), %rdi
callq 0x153ca
movq 0x68(%rsp), %rax
addq $0x10, %rax
leaq 0x28(%rsp), %rcx
movq %rax, (%rcx)
leaq 0x42d06(%rip), %rsi     # 0x6e3b6
leaq 0x4190a(%rip), %rdx     # 0x6cfc1
leaq 0x8(%rsp), %rdi
leaq 0x50(%rsp), %r8
callq 0x2d35e
movb 0x8(%rsp), %bl
testb %bl, %bl
jne 0x2bb84
leaq 0x28(%rsp), %rdi
callq 0x4ca86
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x2bb3f
movq (%rax), %r8
jmp 0x2bb46
leaq 0x30(%rsp), %r14
movq %rsp, %rdi
callq 0x4ca86
leaq 0x42cae(%rip), %rdx     # 0x6e3b4
leaq 0x409f9(%rip), %rcx     # 0x6c106
leaq 0x409f8(%rip), %r8      # 0x6c10c
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x46893
movq 0x8(%rsp), %r8
leaq 0x42c23(%rip), %rdx     # 0x6e352
leaq 0x58(%rsp), %rdi
movl $0x2, %esi
movl $0x41, %ecx
callq 0x4902a
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x46a1c
leaq 0x58(%rsp), %rdi
callq 0x49096
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b775
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x2b784
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x30(%rsp), %rsi
testq %rsi, %rsi
je 0x2b805
movq %r14, %rdi
jmp 0x2b800
leaq 0x28(%rsp), %rdi
callq 0x4ca86
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x2b7ac
movq (%rax), %r8
jmp 0x2b7b3
leaq 0x43822(%rip), %r8      # 0x6efd5
leaq 0x42b98(%rip), %rdx     # 0x6e352
movq %rsp, %rdi
movl $0x2, %esi
movl $0x42, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x2b7f1
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x2b805
leaq 0x10(%rsp), %rdi
callq 0x153ca
xorl %ebx, %ebx
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x2b821
movq 0x80(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
testb %bl, %bl
je 0x2bf9f
leaq 0x43034(%rip), %rsi     # 0x6e864
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x29a42
movq 0x8(%rbx), %rax
movq %rax, 0x50(%rsp)
leaq 0x18(%rsp), %r15
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
callq 0x4ca83
testb %al, %al
je 0x2b8be
leaq 0x42b32(%rip), %rsi     # 0x6e3a0
leaq 0x110(%rsp), %rdi
callq 0x200cc
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0x2d17e
movb $0x0, 0x90(%rsp)
leaq 0x120(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b8be
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x42bdc(%rip), %rcx     # 0x6e4aa
movl $0x74, %r8d
xorl %esi, %esi
callq 0xd960
leaq 0x28(%rsp), %rdi
callq 0x4ca86
movq 0x8(%rsp), %r8
leaq 0x42a61(%rip), %rdx     # 0x6e352
leaq 0x48(%rsp), %rdi
movl $0x1, %esi
movl $0x4a, %ecx
callq 0x4902a
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x46a1c
leaq 0x48(%rsp), %rdi
callq 0x49096
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x2b92e
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2b945
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x2b95f
movq 0x80(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
leaq 0x42f07(%rip), %rsi     # 0x6e86d
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x29a42
movq 0x8(%rbx), %rax
movq %rax, 0x50(%rsp)
leaq 0x41570(%rip), %rsi     # 0x6cef3
leaq 0xe8(%rsp), %rdi
callq 0x200cc
leaq 0x48(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0x2d17e
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b9c8
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0xd530
movb 0x48(%rsp), %al
movb %al, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
testb %al, %al
je 0x2ba82
leaq 0x28(%rsp), %rcx
movl $0xffffff85, (%rcx)     # imm = 0xFFFFFF85
leaq 0x4c(%rsp), %r8
leaq 0x42b27(%rip), %rsi     # 0x6e51f
leaq 0x429b4(%rip), %rdx     # 0x6e3b3
leaq 0x8(%rsp), %rdi
callq 0x157b7
cmpb $0x0, 0x8(%rsp)
je 0x2bb26
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x2ba28
leaq 0x10(%rsp), %rdi
callq 0x153ca
movq 0x68(%rsp), %rax
addq $0x10, %rax
leaq 0x28(%rsp), %rcx
movq %rax, (%rcx)
leaq 0x42976(%rip), %rsi     # 0x6e3b6
leaq 0x4157a(%rip), %rdx     # 0x6cfc1
leaq 0x8(%rsp), %rdi
leaq 0x50(%rsp), %r8
callq 0x2d35e
movb 0x8(%rsp), %bl
testb %bl, %bl
jne 0x2bf0f
leaq 0x28(%rsp), %rdi
callq 0x4ca86
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x2beca
movq (%rax), %r8
jmp 0x2bed1
leaq 0x30(%rsp), %r14
movq %rsp, %rdi
callq 0x4ca86
leaq 0x4291e(%rip), %rdx     # 0x6e3b4
leaq 0x40669(%rip), %rcx     # 0x6c106
leaq 0x40668(%rip), %r8      # 0x6c10c
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x46893
movq 0x8(%rsp), %r8
leaq 0x42893(%rip), %rdx     # 0x6e352
leaq 0x58(%rsp), %rdi
movl $0x2, %esi
movl $0x52, %ecx
callq 0x4902a
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x46a1c
leaq 0x58(%rsp), %rdi
callq 0x49096
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2bb01
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x2bb10
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x30(%rsp), %rsi
testq %rsi, %rsi
je 0x2bbfa
movq %r14, %rdi
jmp 0x2bbf5
leaq 0x28(%rsp), %rdi
callq 0x4ca86
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x2bba1
movq (%rax), %r8
jmp 0x2bba8
leaq 0x4348f(%rip), %r8      # 0x6efd5
leaq 0x42805(%rip), %rdx     # 0x6e352
movq %rsp, %rdi
movl $0x2, %esi
movl $0x43, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x2bb84
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x2b807
leaq 0x10(%rsp), %rdi
callq 0x153ca
jmp 0x2b807
leaq 0x4342d(%rip), %r8      # 0x6efd5
leaq 0x427a3(%rip), %rdx     # 0x6e352
movq %rsp, %rdi
movl $0x2, %esi
movl $0x53, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x2bbe6
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x2bbfa
leaq 0x10(%rsp), %rdi
callq 0x153ca
xorl %ebx, %ebx
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x2bc16
movq 0x80(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
testb %bl, %bl
je 0x2bf9f
leaq 0x42bfa(%rip), %rsi     # 0x6e81f
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x29a42
movq 0x8(%rbx), %rax
movq %rax, 0x50(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rsp)
movq %r15, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
callq 0x4ca83
testb %al, %al
je 0x2bcb1
leaq 0x41292(%rip), %rsi     # 0x6cef3
leaq 0xc0(%rsp), %rdi
callq 0x200cc
leaq 0x88(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x2d17e
movb $0x0, 0x88(%rsp)
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2bcb1
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x42952(%rip), %rcx     # 0x6e613
movl $0x76, %r8d
xorl %esi, %esi
callq 0xd960
leaq 0x28(%rsp), %rdi
callq 0x4ca86
movq 0x8(%rsp), %r8
leaq 0x4266e(%rip), %rdx     # 0x6e352
leaq 0x48(%rsp), %rdi
movl $0x1, %esi
movl $0x5b, %ecx
callq 0x4902a
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x46a1c
leaq 0x48(%rsp), %rdi
callq 0x49096
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x2bd21
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2bd38
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x2bd52
movq 0x80(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
leaq 0x42af6(%rip), %rsi     # 0x6e84f
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0x29a42
movq 0x8(%rbx), %rax
movq %rax, 0x50(%rsp)
leaq 0x4262a(%rip), %rsi     # 0x6e3a0
leaq 0x98(%rsp), %rdi
callq 0x200cc
leaq 0x41169(%rip), %rcx     # 0x6cef3
leaq 0x48(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x2d0d3
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2bdc2
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0xd530
movb 0x48(%rsp), %al
movl %eax, %ecx
xorb $0x1, %cl
movb %cl, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
testb %al, %al
je 0x2be84
movq %rsp, %rdi
callq 0x4ca86
leaq 0x30(%rsp), %r14
leaq 0x425c0(%rip), %rdx     # 0x6e3b4
leaq 0x40311(%rip), %rcx     # 0x6c10c
leaq 0x40304(%rip), %r8      # 0x6c106
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x46893
movq 0x8(%rsp), %r8
leaq 0x42535(%rip), %rdx     # 0x6e352
leaq 0x58(%rsp), %rdi
movl $0x2, %esi
movl $0x63, %ecx
callq 0x4902a
leaq 0x58(%rsp), %rdi
movq %rsp, %rsi
callq 0x46a1c
leaq 0x58(%rsp), %rdi
callq 0x49096
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2be5f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x2be6e
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x30(%rsp), %rsi
testq %rsi, %rsi
je 0x2bf85
movq %r14, %rdi
jmp 0x2bf80
leaq 0x68(%rsp), %rcx
leaq 0x4251c(%rip), %rsi     # 0x6e3ac
leaq 0x4112a(%rip), %rdx     # 0x6cfc1
leaq 0x8(%rsp), %rdi
leaq 0x50(%rsp), %r8
callq 0x2d35e
cmpb $0x0, 0x8(%rsp)
jne 0x2bf71
leaq 0x28(%rsp), %rdi
callq 0x4ca86
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x2bf2c
movq (%rax), %r8
jmp 0x2bf33
leaq 0x43104(%rip), %r8      # 0x6efd5
leaq 0x4247a(%rip), %rdx     # 0x6e352
movq %rsp, %rdi
movl $0x2, %esi
movl $0x54, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x2bf0f
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x2bbfc
leaq 0x10(%rsp), %rdi
callq 0x153ca
jmp 0x2bbfc
leaq 0x430a2(%rip), %r8      # 0x6efd5
leaq 0x42418(%rip), %rdx     # 0x6e352
movq %rsp, %rdi
movl $0x2, %esi
movl $0x64, %ecx
callq 0x4902a
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x46a1c
movq %rsp, %rdi
callq 0x49096
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x2bf71
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x2bf85
leaq 0x10(%rsp), %rdi
callq 0x153ca
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x2bf9f
movq 0x80(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
addq $0x160, %rsp            # imm = 0x160
popq %rbx
popq %r14
popq %r15
retq
jmp 0x2c0d3
jmp 0x2c0e0
jmp 0x2c0f5
jmp 0x2c0d3
jmp 0x2c0e0
jmp 0x2c0f5
jmp 0x2c06f
jmp 0x2c07e
jmp 0x2c2c7
jmp 0x2c458
jmp 0x2c458
movq %rdx, %r14
movq %rax, %rbx
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c11b
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x2c11b
jmp 0x2c0d3
jmp 0x2c0e0
jmp 0x2c0f5
jmp 0x2c458
jmp 0x2c0d3
jmp 0x2c0e0
jmp 0x2c0f5
movq %rax, %rbx
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c45b
movq 0xa8(%rsp), %rsi
jmp 0x2c44e
jmp 0x2c458
jmp 0x2c268
jmp 0x2c277
jmp 0x2c41e
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x49096
jmp 0x2c081
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
jne 0x2c2b8
jmp 0x2c2ca
jmp 0x2c2c7
jmp 0x2c2db
jmp 0x2c458
movq %rdx, %r14
movq %rax, %rbx
leaq 0x120(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c304
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x2c304
movq %rax, %rbx
movq %rsp, %rdi
callq 0x49096
jmp 0x2c0e3
movq %rax, %rbx
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x2c0f8
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x2c0f8
movq %rax, %rbx
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x2c45b
leaq 0x10(%rsp), %rdi
jmp 0x2c2ef
jmp 0x2c458
movq %rdx, %r14
movq %rax, %rbx
movq %rbx, %rdi
cmpl $0x4, %r14d
jne 0x2c133
callq 0xd200
callq 0xd9e0
jmp 0x2bd21
callq 0xd200
cmpl $0x2, %r14d
jne 0x2c1d8
movq %rax, %rbx
leaq 0x42458(%rip), %rsi     # 0x6e5a4
leaq 0x8(%rsp), %rdi
callq 0xd800
movq (%rbx), %rax
movq -0x8(%rax), %rsi
leaq 0x28(%rsp), %rdi
callq 0x21030
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rdi
callq 0xd180
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c196
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x4748a(%rip), %rsi     # 0x73627
leaq 0x8(%rsp), %rdi
callq 0xdb40
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x10(%rax)
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0xdb40
leaq 0x411fa(%rip), %rsi     # 0x6d3be
leaq 0x8(%rsp), %rdi
callq 0xdb40
callq 0xd9e0
jmp 0x2bcce
leaq 0x42345(%rip), %rsi     # 0x6e524
leaq 0x8(%rsp), %rdi
callq 0xd800
callq 0xd9e0
jmp 0x2bcce
movq %rax, %rbx
callq 0xd9e0
jmp 0x2c421
jmp 0x2c41e
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c22f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x2c22f
jmp 0x2c22c
jmp 0x2c41e
movq %rax, %rbx
callq 0xd9e0
jmp 0x2c421
jmp 0x2c41e
movq %rax, %rbx
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c45b
movq 0xf8(%rsp), %rsi
jmp 0x2c44e
jmp 0x2c458
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x49096
jmp 0x2c27a
movq %rax, %rbx
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x2c421
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x2c421
jmp 0x2c41e
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x49096
jmp 0x2c2aa
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c2ca
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x2c2ca
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x2c2de
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x2c2de
movq %rax, %rbx
movq 0x30(%rsp), %rsi
testq %rsi, %rsi
je 0x2c45b
movq %r14, %rdi
callq 0x153ca
jmp 0x2c45b
jmp 0x2c458
movq %rdx, %r14
movq %rax, %rbx
movq %rbx, %rdi
cmpl $0x3, %r14d
jne 0x2c31c
callq 0xd200
callq 0xd9e0
jmp 0x2b92e
callq 0xd200
cmpl $0x2, %r14d
jne 0x2c3c1
movq %rax, %rbx
leaq 0x42108(%rip), %rsi     # 0x6e43d
leaq 0x8(%rsp), %rdi
callq 0xd800
movq (%rbx), %rax
movq -0x8(%rax), %rsi
leaq 0x28(%rsp), %rdi
callq 0x21030
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
leaq 0x8(%rsp), %rdi
callq 0xd180
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c37f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x472a1(%rip), %rsi     # 0x73627
leaq 0x8(%rsp), %rdi
callq 0xdb40
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x10(%rax)
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0xdb40
leaq 0x41011(%rip), %rsi     # 0x6d3be
leaq 0x8(%rsp), %rdi
callq 0xdb40
callq 0xd9e0
jmp 0x2b8db
leaq 0x41ff7(%rip), %rsi     # 0x6e3bf
leaq 0x8(%rsp), %rdi
callq 0xd800
callq 0xd9e0
jmp 0x2b8db
movq %rax, %rbx
callq 0xd9e0
jmp 0x2c421
jmp 0x2c41e
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c40f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x2c40f
jmp 0x2c40c
jmp 0x2c41e
movq %rax, %rbx
callq 0xd9e0
jmp 0x2c421
movq %rax, %rdi
callq 0x1536f
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2c45b
movq 0x18(%rsp), %rsi
jmp 0x2c44e
movq %rax, %rbx
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c45b
movq 0x148(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x2c45b
movq %rax, %rbx
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x2c475
movq 0x80(%rsp), %rsi
subq %rdi, %rsi
callq 0xd530
movq %rbx, %rdi
callq 0xda70
nop