// File: ridiculousfish[P]docopt_fish/docopt_fish_test.cpp
// Function: run_1_annotated_option_test(unsigned long, unsigned long, char const*, char const*, std::vector<docopt_fish::annotated_option_t, std::allocator<docopt_fish::annotated_option_t>> const&)
static void run_1_annotated_option_test(unsigned long test_idx, unsigned long arg_idx, const char *joined_argv, const char *joined_expected_results, const std::vector<annotated_option_t> &dopts) {
    typedef map<string_t, argument_t > arg_map_t;
    typedef map<string_t, string_t> string_map_t;
    
    /* Separate argv by spaces */
    string_list_t argv = split_nonempty(joined_argv, ' ');
    
    /* Prepend the program name for every argument */
    argv.insert(argv.begin(), to_string("prog"));
    
    /* Perform the parsing */
    arg_map_t results;
    std::vector<doc_error_t> error_list;
    vector<size_t> unused_args;
    argument_parser_t parser;
    parser.set_options(dopts);
    results = parser.parse_arguments(argv, 0, &error_list, &unused_args);
    
    bool expects_error = ! strcmp(joined_expected_results, ERROR_EXPECTED);
    bool did_error = ! unused_args.empty() || ! error_list.empty();
    
    if (expects_error && ! did_error) {
        err("Direct option test %lu.%lu was expected to fail, but did not", test_idx, arg_idx);
    } else if (did_error && ! expects_error) {
        err("Direct option test %lu.%lu was expected to succeed, but instead errored", test_idx, arg_idx);
        for (size_t i=0; i < error_list.size(); i++) {
            fprintf(stderr, "\t%ls\n", wide(error_list.at(i).text));
        }
    } else if (! did_error && ! expects_error) {
        /* joined_expected_results is a newline-delimited "map" of the form key:value */
        const string_map_t expected = parse_expected_results(joined_expected_results);
        
        // Verify everything we expected appears in our map
        for (auto iter = expected.cbegin(); iter != expected.cend(); ++iter) {
            const string_t &key = iter->first;
            const string_t &val = iter->second;
            arg_map_t::const_iterator arg_iter = results.find(key);
            if (arg_iter == results.end()) {
                err("Direct option test %lu.%lu: Expected to find %ls = %ls, but it was missing", test_idx, arg_idx, wide(key), wide(val));
            } else {
                const argument_t &arg = arg_iter->second;
                /* The value here can be interpreted a few ways. If it is "True" or "False", it means we expect the argument to have no values, and to have a count of 1 or 0, respectively. If it is % followed by a one-digit number, it represents the count of the argument; values is expected to be empty. Otherwise, split the value about ', '; those are the values we expect. */
                if (val == to_string("True")) {
                    /* A "true" means we expect the argument ot have no values, and to have appeared once */
                    do_arg_test(arg.count == 1);
                    do_arg_test(arg.values.empty());
                } else if (val == to_string("False") || val == to_string("None")) {
                    do_arg_test(arg.count == 0);
                    do_arg_test(arg.values.empty());
                } else if (is_percent_digit(val)) {
                    size_t expected_count = val.at(1) - '0';
                    assert(expected_count <= 9);
                    do_arg_test(arg.count == expected_count);
                    do_arg_test(arg.values.empty());
                } else {
                    const string_list_t values = split(val, ", ");
                    do_arg_test(arg.values == values);
                    if (arg.values != values) {
                        err("Key '%ls' expected '%ls', found '%ls'", wide(key), wide(join(arg.values, ", ")), wide(val));
                    }
                    /* Note that we don't test count here, since count will be 0 if it came from a default: clause, and nonzero if it did not */
                }
            }
        }
        
        // Verify nothing we didn't expect appears in our map
        for (arg_map_t::const_iterator iter = results.begin(); iter != results.end(); ++iter) {
            const string_t &key = iter->first;
            auto result = expected.find(key);
            if (result == expected.end()) {
                err("Test %lu.%lu: Unexpected key %ls with count %u", test_idx, arg_idx, wide(key), iter->second.count);
            }
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3b0, %rsp            # imm = 0x3B0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x40(%rbp), %rdi
movq %rdi, -0x2d0(%rbp)
movl $0x20, %edx
callq 0x40670
movq -0x2d0(%rbp), %rdi
callq 0x19820
movq %rax, -0x50(%rbp)
leaq -0x48(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x440d0
leaq 0xcb4a(%rip), %rsi      # 0x4db36
leaq -0x70(%rbp), %rdi
callq 0x3af90
jmp 0x40ff7
movq -0x48(%rbp), %rsi
leaq -0x40(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x44090
movq %rax, -0x2d8(%rbp)
jmp 0x41011
movq -0x2d8(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x8590
leaq -0xb8(%rbp), %rdi
callq 0x19b30
leaq -0xd0(%rbp), %rdi
callq 0xbe50
leaq -0xe8(%rbp), %rdi
callq 0xcf10
leaq -0xf0(%rbp), %rdi
callq 0xab20
jmp 0x4105a
movq -0x28(%rbp), %rsi
leaq -0x108(%rbp), %rdi
callq 0x467c0
jmp 0x4106c
leaq -0xf0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0xaa20
jmp 0x41081
leaq -0x108(%rbp), %rdi
callq 0xe890
leaq -0x138(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
leaq -0xd0(%rbp), %r8
leaq -0xe8(%rbp), %r9
callq 0xa850
jmp 0x410b6
leaq -0xb8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x44110
leaq -0x138(%rbp), %rdi
callq 0x19d50
movq -0x20(%rbp), %rdi
leaq 0xbacb(%rip), %rsi      # 0x4cbab
callq 0x8490
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
andb $0x1, %al
movb %al, -0x139(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x44140
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x2d9(%rbp)
jne 0x41112
jmp 0x41126
leaq -0xd0(%rbp), %rdi
callq 0xbfd0
xorb $-0x1, %al
movb %al, -0x2d9(%rbp)
movb -0x2d9(%rbp), %al
andb $0x1, %al
movb %al, -0x13a(%rbp)
testb $0x1, -0x139(%rbp)
je 0x411d5
testb $0x1, -0x13a(%rbp)
jne 0x411d5
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0xdce5(%rip), %rdi      # 0x4ee42
xorl %eax, %eax
callq 0x3b570
jmp 0x41166
jmp 0x41afa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x41b6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x8590
jmp 0x41b6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x41b48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x41b3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0xe890
jmp 0x41b3c
testb $0x1, -0x13a(%rbp)
je 0x41349
testb $0x1, -0x139(%rbp)
jne 0x41349
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0xdc81(%rip), %rdi      # 0x4ee7f
xorl %eax, %eax
callq 0x3b570
jmp 0x41207
movq $0x0, -0x148(%rbp)
movq -0x148(%rbp), %rax
movq %rax, -0x2e8(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xf550
movq %rax, %rcx
movq -0x2e8(%rbp), %rax
cmpq %rcx, %rax
jae 0x41344
movq 0x36d8a(%rip), %rax     # 0x77fd0
movq (%rax), %rax
movq %rax, -0x2f8(%rbp)
movq -0x148(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x44180
movq %rax, -0x2f0(%rbp)
jmp 0x4126c
movq -0x2f0(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x308(%rbp)
leaq -0x169(%rbp), %rdi
movq %rdi, -0x300(%rbp)
callq 0x85e0
movq -0x308(%rbp), %rsi
movq -0x300(%rbp), %rdx
leaq -0x168(%rbp), %rdi
callq 0x2be70
jmp 0x412ad
leaq -0x168(%rbp), %rdi
callq 0x407f0
movq %rax, -0x310(%rbp)
jmp 0x412c2
movq -0x310(%rbp), %rdx
movq -0x2f8(%rbp), %rdi
leaq 0xd771(%rip), %rsi      # 0x4ea48
movb $0x0, %al
callq 0x84b0
leaq -0x168(%rbp), %rdi
callq 0x81c0
leaq -0x169(%rbp), %rdi
callq 0x8380
movq -0x148(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x148(%rbp)
jmp 0x41212
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x41333
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x81c0
leaq -0x169(%rbp), %rdi
callq 0x8380
jmp 0x41b3c
jmp 0x41af8
testb $0x1, -0x13a(%rbp)
jne 0x41af6
testb $0x1, -0x139(%rbp)
jne 0x41af6
movq -0x20(%rbp), %rsi
leaq -0x1a0(%rbp), %rdi
callq 0x40950
jmp 0x41375
leaq -0x1a0(%rbp), %rdi
callq 0x441c0
movq %rax, -0x1a8(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x44220
movq %rax, -0x1b0(%rbp)
leaq -0x1a8(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x441f0
testb $0x1, %al
jne 0x413b7
jmp 0x41996
leaq -0x1a8(%rbp), %rdi
movq %rdi, -0x320(%rbp)
callq 0x44250
movq -0x320(%rbp), %rdi
movq %rax, -0x1b8(%rbp)
callq 0x44250
addq $0x20, %rax
movq %rax, -0x1c0(%rbp)
movq -0x1b8(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x44270
movq %rax, -0x318(%rbp)
jmp 0x41404
movq -0x318(%rbp), %rax
movq %rax, -0x1d0(%rbp)
leaq -0x1c8(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x1ac90
leaq -0xb8(%rbp), %rdi
callq 0x1aaf0
movq %rax, -0x1e0(%rbp)
leaq -0x1d8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x1ac90
leaq -0x1c8(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x442a0
testb $0x1, %al
jne 0x41464
jmp 0x414d7
movq -0x8(%rbp), %rax
movq %rax, -0x338(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x330(%rbp)
movq -0x1b8(%rbp), %rdi
callq 0x3b6c0
movq %rax, -0x328(%rbp)
movq -0x1c0(%rbp), %rdi
callq 0x3b6c0
movq -0x338(%rbp), %rsi
movq -0x330(%rbp), %rdx
movq -0x328(%rbp), %rcx
movq %rax, %r8
leaq 0xda0f(%rip), %rdi      # 0x4eec7
xorl %eax, %eax
callq 0x3b570
jmp 0x414c1
jmp 0x41983
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x41ae8
leaq -0x1c8(%rbp), %rdi
callq 0x442d0
addq $0x20, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1c0(%rbp), %rax
movq %rax, -0x340(%rbp)
leaq 0xc4dd(%rip), %rsi      # 0x4d9e0
leaq -0x208(%rbp), %rdi
callq 0x3af90
jmp 0x41511
movq -0x340(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x442f0
movb %al, -0x341(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x8590
movb -0x341(%rbp), %al
testb $0x1, %al
jne 0x41542
jmp 0x415bc
jmp 0x41544
movq -0x1e8(%rbp), %rax
cmpl $0x1, 0x18(%rax)
je 0x41577
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0xd537(%rip), %rdi      # 0x4ea97
leaq 0xd554(%rip), %r8       # 0x4eabb
xorl %eax, %eax
movl $0x14e, %ecx            # imm = 0x14E
callq 0x3b570
jmp 0x41575
jmp 0x41577
jmp 0x41579
jmp 0x4157b
jmp 0x4157d
movq -0x1e8(%rbp), %rdi
callq 0x13730
testb $0x1, %al
jne 0x415b3
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0xd4fb(%rip), %rdi      # 0x4ea97
leaq 0xd527(%rip), %r8       # 0x4eaca
xorl %eax, %eax
movl $0x14f, %ecx            # imm = 0x14F
callq 0x3b570
jmp 0x415b1
jmp 0x415b3
jmp 0x415b5
jmp 0x415b7
jmp 0x41981
movq -0x1c0(%rbp), %rax
movq %rax, -0x350(%rbp)
movb $0x0, -0x249(%rbp)
leaq 0xd505(%rip), %rsi      # 0x4eadd
leaq -0x228(%rbp), %rdi
callq 0x3af90
jmp 0x415e6
movq -0x350(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x442f0
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x351(%rbp)
jne 0x4164b
movq -0x1c0(%rbp), %rax
movq %rax, -0x360(%rbp)
leaq 0xd4c6(%rip), %rsi      # 0x4eae3
leaq -0x248(%rbp), %rdi
callq 0x3af90
jmp 0x4162b
movq -0x360(%rbp), %rdi
movb $0x1, -0x249(%rbp)
leaq -0x248(%rbp), %rsi
callq 0x442f0
movb %al, -0x351(%rbp)
movb -0x351(%rbp), %al
movb %al, -0x361(%rbp)
testb $0x1, -0x249(%rbp)
jne 0x41662
jmp 0x4166e
leaq -0x248(%rbp), %rdi
callq 0x8590
leaq -0x228(%rbp), %rdi
callq 0x8590
movb -0x361(%rbp), %al
testb $0x1, %al
jne 0x41689
jmp 0x41720
jmp 0x4168b
movq -0x1e8(%rbp), %rax
cmpl $0x0, 0x18(%rax)
je 0x416db
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0xd3f0(%rip), %rdi      # 0x4ea97
leaq 0xd43a(%rip), %r8       # 0x4eae8
xorl %eax, %eax
movl $0x151, %ecx            # imm = 0x151
callq 0x3b570
jmp 0x416bc
jmp 0x416db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x8590
jmp 0x41ae8
jmp 0x416dd
jmp 0x416df
jmp 0x416e1
movq -0x1e8(%rbp), %rdi
callq 0x13730
testb $0x1, %al
jne 0x41717
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0xd397(%rip), %rdi      # 0x4ea97
leaq 0xd3c3(%rip), %r8       # 0x4eaca
xorl %eax, %eax
movl $0x152, %ecx            # imm = 0x152
callq 0x3b570
jmp 0x41715
jmp 0x41717
jmp 0x41719
jmp 0x4171b
jmp 0x4197f
movq -0x1c0(%rbp), %rdi
callq 0x40ba0
movb %al, -0x362(%rbp)
jmp 0x41734
movb -0x362(%rbp), %al
testb $0x1, %al
jne 0x41743
jmp 0x4181d
movq -0x1c0(%rbp), %rdi
movl $0x1, %esi
callq 0x8630
movq %rax, -0x370(%rbp)
jmp 0x4175d
movq -0x370(%rbp), %rax
movl (%rax), %eax
subl $0x30, %eax
cltq
movq %rax, -0x258(%rbp)
cmpq $0x9, -0x258(%rbp)
ja 0x4177e
jmp 0x4179d
leaq 0xd372(%rip), %rdi      # 0x4eaf7
leaq 0xd37f(%rip), %rsi      # 0x4eb0b
movl $0x155, %edx            # imm = 0x155
leaq 0xd77a(%rip), %rcx      # 0x4ef12
callq 0x81e0
jmp 0x4179f
movq -0x1e8(%rbp), %rax
movl 0x18(%rax), %eax
cmpq -0x258(%rbp), %rax
je 0x417d8
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0xd2d6(%rip), %rdi      # 0x4ea97
leaq 0xd3ae(%rip), %r8       # 0x4eb76
xorl %eax, %eax
movl $0x156, %ecx            # imm = 0x156
callq 0x3b570
jmp 0x417d6
jmp 0x417d8
jmp 0x417da
jmp 0x417dc
jmp 0x417de
movq -0x1e8(%rbp), %rdi
callq 0x13730
testb $0x1, %al
jne 0x41814
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0xd29a(%rip), %rdi      # 0x4ea97
leaq 0xd2c6(%rip), %r8       # 0x4eaca
xorl %eax, %eax
movl $0x157, %ecx            # imm = 0x157
callq 0x3b570
jmp 0x41812
jmp 0x41814
jmp 0x41816
jmp 0x41818
jmp 0x4197d
movq -0x1c0(%rbp), %rsi
leaq 0xd367(%rip), %rdx      # 0x4eb92
leaq -0x270(%rbp), %rdi
callq 0x40c20
jmp 0x41839
jmp 0x4183b
movq -0x1e8(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x44380
movb %al, -0x371(%rbp)
jmp 0x41856
movb -0x371(%rbp), %al
testb $0x1, %al
jne 0x41899
jmp 0x41862
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0xd226(%rip), %rdi      # 0x4ea97
leaq 0xd31d(%rip), %r8       # 0x4eb95
xorl %eax, %eax
movl $0x15a, %ecx            # imm = 0x15A
callq 0x3b570
jmp 0x41886
jmp 0x41899
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x4196c
jmp 0x4189b
jmp 0x4189d
movq -0x1e8(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x44400
movb %al, -0x372(%rbp)
jmp 0x418b8
movb -0x372(%rbp), %al
testb $0x1, %al
jne 0x418c7
jmp 0x4195e
movq -0x1b8(%rbp), %rdi
callq 0x3b6c0
movq %rax, -0x380(%rbp)
movq -0x1e8(%rbp), %rsi
leaq 0xd2aa(%rip), %rdx      # 0x4eb92
leaq -0x290(%rbp), %rdi
callq 0x3b130
jmp 0x418f6
leaq -0x290(%rbp), %rdi
callq 0x3b6c0
movq %rax, -0x388(%rbp)
movq -0x1c0(%rbp), %rdi
callq 0x3b6c0
movq -0x380(%rbp), %rsi
movq -0x388(%rbp), %rdx
movq %rax, %rcx
leaq 0xd27d(%rip), %rdi      # 0x4ebaa
xorl %eax, %eax
callq 0x3b570
jmp 0x41936
leaq -0x290(%rbp), %rdi
callq 0x8590
jmp 0x4195e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x8590
jmp 0x4196c
leaq -0x270(%rbp), %rdi
callq 0x12f80
jmp 0x4197d
leaq -0x270(%rbp), %rdi
callq 0x12f80
jmp 0x41ae8
jmp 0x4197f
jmp 0x41981
jmp 0x41983
jmp 0x41985
leaq -0x1a8(%rbp), %rdi
callq 0x44430
jmp 0x41388
leaq -0xb8(%rbp), %rdi
callq 0x468b0
movq %rax, -0x2a0(%rbp)
leaq -0x298(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x1ac90
leaq -0xb8(%rbp), %rdi
callq 0x1aaf0
movq %rax, -0x2b0(%rbp)
leaq -0x2a8(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x1ac90
leaq -0x298(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x44490
testb $0x1, %al
jne 0x419fe
jmp 0x41ada
leaq -0x298(%rbp), %rdi
callq 0x442d0
movq %rax, -0x2b8(%rbp)
movq -0x2b8(%rbp), %rsi
leaq -0x1a0(%rbp), %rdi
callq 0x444f0
movq %rax, -0x390(%rbp)
jmp 0x41a2d
movq -0x390(%rbp), %rax
movq %rax, -0x2c0(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x44550
movq %rax, -0x2c8(%rbp)
leaq -0x2c0(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x44520
testb $0x1, %al
jne 0x41a67
jmp 0x41ac7
movq -0x8(%rbp), %rax
movq %rax, -0x3a8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x3a0(%rbp)
movq -0x2b8(%rbp), %rdi
callq 0x3b6c0
movq %rax, -0x398(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x442d0
movq -0x3a8(%rbp), %rsi
movq -0x3a0(%rbp), %rdx
movq -0x398(%rbp), %rcx
movl 0x38(%rax), %r8d
leaq 0xd114(%rip), %rdi      # 0x4ebd0
xorl %eax, %eax
callq 0x3b570
jmp 0x41ac5
jmp 0x41ac7
jmp 0x41ac9
leaq -0x298(%rbp), %rdi
callq 0x44580
jmp 0x419bc
leaq -0x1a0(%rbp), %rdi
callq 0x445b0
jmp 0x41af6
leaq -0x1a0(%rbp), %rdi
callq 0x445b0
jmp 0x41b3c
jmp 0x41af8
jmp 0x41afa
leaq -0xf0(%rbp), %rdi
callq 0xac20
leaq -0xe8(%rbp), %rdi
callq 0xd160
leaq -0xd0(%rbp), %rdi
callq 0xc3d0
leaq -0xb8(%rbp), %rdi
callq 0x19d50
leaq -0x40(%rbp), %rdi
callq 0x12f80
addq $0x3b0, %rsp            # imm = 0x3B0
popq %rbp
retq
leaq -0xf0(%rbp), %rdi
callq 0xac20
leaq -0xe8(%rbp), %rdi
callq 0xd160
leaq -0xd0(%rbp), %rdi
callq 0xc3d0
leaq -0xb8(%rbp), %rdi
callq 0x19d50
leaq -0x40(%rbp), %rdi
callq 0x12f80
movq -0x78(%rbp), %rdi
callq 0x85d0
nop