// File: /workspace/github_cpp_makefile_star2_O2/vsklad[P]cgen/commandline.cpp
// Function: CGenCommandLineReader::parse(CGenCommandInfo&)
void CGenCommandLineReader::parse(CGenCommandInfo& info) {
    std::string variable_name_last;
    
    skip_line(); // the first argument is the file name
    while (!is_eof()) {
        std::string variable_name_current;
        if (is_option()) {
            int option_index = read_option(APP_OPTIONS, APP_OPTIONS_SIZE);
            switch(option_index) {
                case 0: // format
                    if (is_eol()) {
                        read_eol();
                    };
                    if (is_token("anf") || is_token("ANF")) {
                        skip_token();
                        info.formula_type = ftAnf;
                        info.output_format = ofAnfPolybori;
                        info.b_formula_type_specified = true;
                    } else if (is_token("cnf") || is_token("CNF") ||
                               is_token("dimacs_cnf") || is_token("dimacs_cnf")) {
                        skip_token();
                        info.formula_type = ftCnf;
                        info.output_format = ofCnfDimacs;
                        info.b_formula_type_specified = true;
                    } else if (is_token("vig") || is_token("VIG") ||
                               is_token("vig_graphml") || is_token("VIG_GraphML")) {
                        skip_token();
                        info.formula_type = ftCnf;
                        info.output_format = ofCnfVIGGraphML;
                        info.b_formula_type_specified = true;
                    } else if (is_token("vigw") || is_token("VIGW") ||
                               is_token("vigw_graphml") || is_token("VIGW_GraphML")) {
                        skip_token();
                        info.formula_type = ftCnf;
                        info.output_format = ofCnfWeightedVIGGraphML;
                        info.b_formula_type_specified = true;
                    } else if (is_token("vig_gexf") || is_token("VIG_GEXF")) {
                        skip_token();
                        info.formula_type = ftCnf;
                        info.output_format = ofCnfVIGGEXF;
                        info.b_formula_type_specified = true;
                    } else {
                        parse_error(ERROR_UNKNOWN_FORMAT);
                    };
                    break;
                case 1: // variable
                    if (info.command != cmdEncode &&
                        info.command != cmdProcess) {
                        parse_error(ERROR_V_MUST_FOLLOW_ENCODE_PROCESS);
                    };
                    if (is_eol()) {
                        read_eol();
                    };
                    variable_name_current = parse_variable(info.variables_map, info.command);
                    break;
                case 2: // rounds
                    if (info.command != cmdEncode) {
                        parse_error(ERROR_R_MUST_FOLLOW_ENCODE);
                    };
                    if (is_eol()) {
                        read_eol();
                    };
                    info.rounds = read_uint32(1, UINT32_MAX);
                    break;
                case 3: // add_max_agrs
                    read_symbol('=');
                    info.add_max_args = read_uint32();
                    if (info.add_max_args == 0) {
                        parse_error(ERROR_ADD_MAX_ARGS_RANGE);
                    };
                    break;
                case 4: // xor_max_args
                    read_symbol('=');
                    info.xor_max_args = read_uint32();
                    if (info.xor_max_args == 0) {
                        parse_error(ERROR_XOR_MAX_ARGS_RANGE);
                    };
                    break;
                case 5: // assign_after_encoding
                    info.b_assign_after_encoding = true;
                    break;
                case 6: // help
                case 7:
                    info.command = cmdHelp;
                    break;
                case 8: // version
                    info.command = cmdVersion;
                    break;
                case 9: // no_variable_reindexing
                    info.b_reindex_variables = false;
                    break;
                case 10:
                case 11: // normalize_variables
                    info.b_normalize_variables_specified = true;
                    break;
                case 12: // mode
                    if (is_eol()) {
                        read_eol();
                    };
                    if (is_token("o") || is_token("original")) {
                        skip_token();
                        info.mode = bal::fpmOriginal;
                    } else if (is_token("a") || is_token("all")) {
                        skip_token();
                        info.mode = bal::fpmAll;
                    } else if (is_token("u") || is_token("unoptimized")) {
                        skip_token();
                        info.mode = bal::fpmUnoptimized;
                    } else {
                        parse_error(ERROR_MODE_UNKNOWN_VALUE);
                    };
                    info.b_mode_assigned = true;
                    break;
                case 13: // trace
                case 14:
                    if (is_eol()) {
                        read_eol();
                    };
                    if (is_token("n") || is_token("native") || is_token("N") || is_token("NATIVE")) {
                        skip_token();
                        info.trace_format = tfNativeFile;
                    } else if (is_token("d") || is_token("debug") || is_token("D") || is_token("DEBUG")) {
                        skip_token();
                        info.trace_format = tfNativeStdOut;
                    } else if (is_token("gexf") || is_token("GEXF")) {
                        skip_token();
                        info.trace_format = tfCnfVIGGEXF;
                    } else {
                        parse_error(ERROR_TRACE_UNKNOWN_VALUE);
                    };
                    break;
                default:
                    print_arg_ignore(ERROR_UNKNOWN_OPTION, get_current_line());
                    read_until_eol();
                    break;
            };
        } else if (is_token("encode")) {
            info.command = cmdEncode;
            skip_token();
            read_eol();
            if (is_token("SHA1") || is_token("sha1")) {
                skip_token();
                info.algorithm = algSHA1;
                info.rounds = SHA1_ROUNDS_NUMBER;
            } else if (is_token("SHA256") || is_token("sha256")) {
                skip_token();
                info.algorithm = algSHA256;
                info.rounds = SHA256_ROUNDS_NUMBER;
            } else {
                parse_error(ERROR_UNKNOWN_ALGORITHM);
            };
        } else if (is_token("process")) {
            info.command = cmdProcess;
            skip_token();
        } else if (is_token("except")) {
            assert(variable_name_current.empty());
            parse_variable_except(info.variables_map, variable_name_last);
            variable_name_current = variable_name_last;
        } else if (is_token("pad")) {
            assert(variable_name_current.empty());
            parse_variable_pad(info.variables_map, variable_name_last);
            variable_name_current = variable_name_last;
        } else if (is_token("replace")) {
            assert(variable_name_current.empty());
            parse_variable_replace(info.variables_map, variable_name_last);
            variable_name_current = variable_name_last;
            skip_token();
        } else if (is_token("complete") && !variable_name_last.empty()) {
            assert(variable_name_current.empty());
            parse_variable_compute_mode(info.variables_map, variable_name_last, vcmComplete);
            variable_name_current = variable_name_last;
            skip_token();
        } else if (is_token("constant") && !variable_name_last.empty()) {
            assert(variable_name_current.empty());
            parse_variable_compute_mode(info.variables_map, variable_name_last, vcmConstant);
            variable_name_current = variable_name_last;
            skip_token();
        } else if (is_token("difference") && !variable_name_last.empty()) {
            assert(variable_name_current.empty());
            parse_variable_compute_mode(info.variables_map, variable_name_last, vcmDifference);
            variable_name_current = variable_name_last;
            skip_token();
        } else if (info.command == cmdEncode && info.output_file_name.empty()) {
            info.output_file_name = read_until_eol();
        } else if ((info.command == cmdProcess) &&
                   info.input_file_name.empty()) {
            info.input_file_name = read_until_eol();
        } else if ((info.command == cmdProcess) &&
                   info.output_file_name.empty()) {
            info.output_file_name = read_until_eol();
        } else {
            print_arg_ignore(ERROR_UNKNOWN_ARGUMENT, get_current_line());
        };
        read_eol();
        variable_name_last = variable_name_current;
    };
    
    // validate the result
    // assign default values
    
    if (info.command == cmdProcess) {
        if (info.input_file_name.empty()) {
            parse_error(ERROR_MISSING_INPUT_FILE_NAME);
        };
        validate_file_extension(info.input_file_name, "cnf", info, ftCnf, ofCnfDimacs, ERROR_INPUT_FILE_FORMAT_MISMATCH);
        validate_file_extension(info.input_file_name, "anf", info, ftAnf, ofAnfPolybori, ERROR_INPUT_FILE_FORMAT_MISMATCH);
    };
    
    if (info.command == cmdEncode || info.command == cmdProcess) {
        if (!info.output_file_name.empty()) {
            validate_file_extension(info.output_file_name, "cnf", info, ftCnf, ofCnfDimacs, ERROR_OUTPUT_FILE_FORMAT_MISMATCH);
            validate_file_extension(info.output_file_name, "anf", info, ftAnf, ofAnfPolybori, ERROR_OUTPUT_FILE_FORMAT_MISMATCH);
        };
        
        if (!info.b_formula_type_specified) {
            if (info.command == cmdEncode) {
                info.formula_type = ftCnf;
                info.output_format = ofCnfDimacs;
                info.b_formula_type_specified = true;
            } else {
                parse_error(ERROR_FORMULA_TYPE_UNDEFINED);
            };
        };
    } else {
        if (info.variables_map.size() > 0) {
            parse_error(ERROR_V_MUST_FOLLOW_ENCODE_PROCESS);
        };
    };
    
    if (info.b_normalize_variables_specified) {
        if (info.command != cmdEncode && info.command != cmdProcess) {
            parse_error(ERROR_NORMALIZE_VARIABLES_MUST_FOLLOW_ENCODE_PROCESS);
        };
    };
    
    if (info.b_mode_assigned) {
        if (info.command != cmdEncode && info.command != cmdProcess) {
            parse_error(ERROR_MODE_UNSUPPORTED_COMMAND);
        };
        if (info.formula_type == ftAnf && info.mode != bal::fpmUnoptimized) {
            parse_error(ERROR_ANF_UNOPTIMIZED_ONLY);
        };
    } else if (info.formula_type == ftAnf) {
        info.mode = bal::fpmUnoptimized;
    } else {
        info.mode = bal::fpmOriginal;
    };
    
    if (info.command != cmdEncode) {
        if (info.add_max_args > 0) {
            parse_error(ERROR_ADD_MAX_ARGS_MUST_FOLLOW_ENCODE);
        };
        if (info.xor_max_args > 0) {
            parse_error(ERROR_XOR_MAX_ARGS_MUST_FOLLOW_ENCODE);
        };
        if (info.b_assign_after_encoding) {
            parse_error(ERROR_AAE_MUST_FOLLOW_ENCODE);
        };
    };
    
    if (info.trace_format != tfNone) {
#ifdef CNF_TRACE
        if ((info.formula_type != ftCnf) ||
            (info.command != cmdEncode && info.command != cmdProcess)) {
            parse_error(ERROR_TRACE_UNSUPPORTED_COMMAND);
        };
#else
        parse_error(ERROR_TRACE_NOT_SUPPORTED);
#endif
    };
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2d8, %rsp            # imm = 0x2D8
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x88(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq (%rdi), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18f62
leaq -0x38(%rbp), %r12
leaq 0x58(%r14), %rax
movq %rax, -0xa0(%rbp)
leaq 0x78(%r14), %rax
movq %rax, -0x58(%rbp)
leaq 0x18(%r14), %rax
movq %rax, -0x50(%rbp)
leaq -0x48(%rbp), %r13
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18f7e
testb %al, %al
jne 0x17f99
movq %r12, -0x48(%rbp)
andq $0x0, -0x40(%rbp)
movb $0x0, -0x38(%rbp)
movq (%rbx), %rax
movq -0x20(%rax), %rdi
addq %rbx, %rdi
callq 0x18fa8
movq (%rbx), %rcx
testb %al, %al
je 0x17270
movq -0x20(%rcx), %rdi
addq %rbx, %rdi
leaq 0x37b7f(%rip), %rsi     # 0x4edc0
pushq $0xf
popq %rdx
callq 0x18fbe
cmpl $0xe, %eax
ja 0x17825
movl %eax, %eax
leaq 0x1ffd9(%rip), %rcx     # 0x37234
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x3, (%r14)
jmp 0x17a5d
movq -0x18(%rcx), %rdi
addq %rbx, %rdi
leaq 0x2078e(%rip), %rsi     # 0x37a0c
callq 0x18cd6
testb %al, %al
je 0x17323
movl $0x1, (%r14)
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq 0x10(%rbx,%rcx), %rdx
addq %rdx, 0x8(%rbx,%rcx)
andq $0x0, 0x10(%rbx,%rcx)
andl $0x0, 0x40(%rbx,%rcx)
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18c3c
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20478(%rip), %rsi     # 0x37743
callq 0x18cd6
testb %al, %al
jne 0x172f2
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20459(%rip), %rsi     # 0x3773e
callq 0x18cd6
testb %al, %al
je 0x174ba
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movl $0x1, 0x4(%r14)
movl $0x50, 0x48(%r14)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x206fe(%rip), %rsi     # 0x37a32
callq 0x18cd6
testb %al, %al
je 0x17365
movl $0x2, (%r14)
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x206c4(%rip), %rsi     # 0x37a3a
callq 0x18cd6
testb %al, %al
je 0x1746a
cmpq $0x0, -0x40(%rbp)
jne 0x183ec
movq %rbx, %rdi
movq -0x50(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x16ab0
jmp 0x174a6
movb $0x1, 0x9b(%r14)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18bfe
testb %al, %al
je 0x173d5
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18c3c
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20f4d(%rip), %rsi     # 0x38333
callq 0x18cd6
testb %al, %al
jne 0x17441
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x205c4(%rip), %rsi     # 0x379c4
callq 0x18cd6
testb %al, %al
jne 0x17441
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x205b1(%rip), %rsi     # 0x379cb
callq 0x18cd6
testb %al, %al
jne 0x17441
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20599(%rip), %rsi     # 0x379cd
callq 0x18cd6
testb %al, %al
je 0x17ae8
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movl $0x2, 0x10(%r14)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20629(%rip), %rsi     # 0x37aa4
callq 0x18cd6
testb %al, %al
je 0x17870
cmpq $0x0, -0x40(%rbp)
jne 0x1840b
movq %rbx, %rdi
movq -0x50(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x16d8c
movq %r13, %rdi
leaq -0x98(%rbp), %rsi
callq 0xc150
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20284(%rip), %rsi     # 0x3774f
callq 0x18cd6
testb %al, %al
jne 0x174f2
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20263(%rip), %rsi     # 0x37748
callq 0x18cd6
testb %al, %al
je 0x1791b
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movl $0x2, 0x4(%r14)
movl $0x40, 0x48(%r14)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
pushq $0x3d
popq %rsi
callq 0x18ac2
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
xorl %esi, %esi
pushq $-0x1
popq %rdx
callq 0x1866c
movl %eax, 0x50(%r14)
testl %eax, %eax
jne 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %r12
leaq -0x2a0(%rbp), %r15
movq %r15, %rdi
leaq 0x203ff(%rip), %rsi     # 0x3796c
leaq -0x78(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x189ce
jmp 0x1794a
cmpl $0x1, (%r14)
je 0x175ca
movq (%rbx), %rax
movq -0x18(%rax), %r12
leaq -0x2e0(%rbp), %r15
movq %r15, %rdi
leaq 0x20369(%rip), %rsi     # 0x37910
leaq -0x78(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x189ce
movq %r15, %rdi
callq 0xc110
leaq -0x38(%rbp), %r12
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18bfe
testb %al, %al
je 0x175ec
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18c3c
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
pushq $0x1
popq %rsi
pushq $-0x1
popq %rdx
callq 0x1866c
movl %eax, 0x48(%r14)
jmp 0x17a5d
movb $0x0, 0x9a(%r14)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18bfe
testb %al, %al
je 0x17639
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18c3c
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20320(%rip), %rsi     # 0x3796a
callq 0x18cd6
testb %al, %al
jne 0x17671
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20331(%rip), %rsi     # 0x37995
callq 0x18cd6
testb %al, %al
je 0x1795b
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movl $0x2, 0xa0(%r14)
movb $0x1, 0x9c(%r14)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
pushq $0x3d
popq %rsi
callq 0x18ac2
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
xorl %esi, %esi
pushq $-0x1
popq %rdx
callq 0x1866c
movl %eax, 0x4c(%r14)
testl %eax, %eax
jne 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %r12
leaq -0x2c0(%rbp), %r15
movq %r15, %rdi
leaq 0x20254(%rip), %rsi     # 0x37943
leaq -0x78(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x189ce
jmp 0x1794a
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18bfe
testb %al, %al
je 0x1772d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18c3c
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x267e8(%rip), %rsi     # 0x3df26
callq 0x18cd6
testb %al, %al
jne 0x17765
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x200ee(%rip), %rsi     # 0x37846
callq 0x18cd6
testb %al, %al
je 0x179bf
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movq $0x1, 0x8(%r14)
jmp 0x17a55
movl (%r14), %eax
decl %eax
cmpl $0x2, %eax
jb 0x177d3
movq (%rbx), %rax
movq -0x18(%rax), %r12
leaq -0x300(%rbp), %r15
movq %r15, %rdi
leaq 0x20115(%rip), %rsi     # 0x378c5
leaq -0x78(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x189ce
movq %r15, %rdi
callq 0xc110
leaq -0x38(%rbp), %r12
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18bfe
testb %al, %al
je 0x177f5
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18c3c
leaq -0x78(%rbp), %r15
movq %r15, %rdi
movq %rbx, %rsi
movq -0x50(%rbp), %rdx
callq 0x16652
movq %r13, %rdi
movq %r15, %rsi
callq 0xc320
movq %r15, %rdi
jmp 0x1785a
movb $0x1, 0x99(%r14)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x18(%rbx,%rax), %rsi
leaq 0x201c5(%rip), %rdi     # 0x379fd
callq 0x16488
movq (%rbx), %rax
movq -0x18(%rax), %rsi
addq %rbx, %rsi
leaq -0x240(%rbp), %rdi
callq 0x18d34
leaq -0x240(%rbp), %rdi
callq 0xc110
jmp 0x17a5d
movl $0x4, (%r14)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20227(%rip), %rsi     # 0x37aa8
callq 0x18cd6
testb %al, %al
je 0x178bc
cmpq $0x0, -0x40(%rbp)
jne 0x1842a
movq %rbx, %rdi
movq -0x50(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x16fe4
movq %r13, %rdi
leaq -0x98(%rbp), %rsi
callq 0xc150
jmp 0x17344
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x201e3(%rip), %rsi     # 0x37ab0
callq 0x18cd6
cmpq $0x0, -0x90(%rbp)
setne %cl
andb %cl, %al
cmpb $0x1, %al
jne 0x17a88
cmpq $0x0, -0x40(%rbp)
jne 0x18449
movq %rbx, %rdi
movq -0x50(%rbp), %rsi
leaq -0x98(%rbp), %rdx
xorl %ecx, %ecx
callq 0x1711a
movq %r13, %rdi
leaq -0x98(%rbp), %rsi
callq 0xc150
jmp 0x17344
movq (%rbx), %rax
movq -0x18(%rax), %r12
leaq -0x220(%rbp), %r15
movq %r15, %rdi
leaq 0x200e0(%rip), %rsi     # 0x37a13
leaq -0x78(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x189ce
movq %r15, %rdi
callq 0xc110
leaq -0x38(%rbp), %r12
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x201f9(%rip), %rsi     # 0x37b65
callq 0x18cd6
testb %al, %al
jne 0x17993
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20018(%rip), %rsi     # 0x3799e
callq 0x18cd6
testb %al, %al
je 0x17bdd
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movl $0x1, 0xa0(%r14)
jmp 0x17698
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x2655b(%rip), %rsi     # 0x3df2b
callq 0x18cd6
testb %al, %al
jne 0x17a2b
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1fe60(%rip), %rsi     # 0x3784a
callq 0x18cd6
testb %al, %al
jne 0x17a2b
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1fe4a(%rip), %rsi     # 0x3784e
callq 0x18cd6
testb %al, %al
jne 0x17a2b
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1fe30(%rip), %rsi     # 0x3784e
callq 0x18cd6
testb %al, %al
je 0x17cf2
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0x8(%r14)
movb $0x1, 0x98(%r14)
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq 0x18c3c
leaq -0x98(%rbp), %rdi
movq %r13, %rsi
callq 0xc150
movq %r13, %rdi
callq 0xc110
jmp 0x171f9
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20020(%rip), %rsi     # 0x37ab9
callq 0x18cd6
cmpq $0x0, -0x90(%rbp)
setne %cl
andb %cl, %al
cmpb $0x1, %al
jne 0x17b7d
cmpq $0x0, -0x40(%rbp)
jne 0x18468
movq %rbx, %rdi
movq -0x50(%rbp), %rsi
leaq -0x98(%rbp), %rdx
pushq $0x2
popq %rcx
callq 0x1711a
movq %r13, %rdi
leaq -0x98(%rbp), %rsi
callq 0xc150
jmp 0x17344
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x22e67(%rip), %rsi     # 0x3a960
callq 0x18cd6
testb %al, %al
jne 0x17b54
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1fec1(%rip), %rsi     # 0x379d4
callq 0x18cd6
testb %al, %al
jne 0x17b54
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1beb5(%rip), %rsi     # 0x339e2
callq 0x18cd6
testb %al, %al
jne 0x17b54
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1fe93(%rip), %rsi     # 0x379da
callq 0x18cd6
testb %al, %al
je 0x17db3
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movl $0x1, 0x10(%r14)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1ff34(%rip), %rsi     # 0x37ac2
callq 0x18cd6
cmpq $0x0, -0x90(%rbp)
setne %cl
andb %cl, %al
cmpb $0x1, %al
jne 0x17c3e
cmpq $0x0, -0x40(%rbp)
jne 0x18487
movq %rbx, %rdi
movq -0x50(%rbp), %rsi
leaq -0x98(%rbp), %rdx
pushq $0x1
popq %rcx
callq 0x1711a
movq %r13, %rdi
leaq -0x98(%rbp), %rsi
callq 0xc150
jmp 0x17344
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x26335(%rip), %rsi     # 0x3df23
callq 0x18cd6
testb %al, %al
jne 0x17c15
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1fd9a(%rip), %rsi     # 0x379a2
callq 0x18cd6
testb %al, %al
je 0x17cb2
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
andl $0x0, 0xa0(%r14)
jmp 0x17698
movl (%r14), %eax
cmpl $0x2, %eax
je 0x17c7c
cmpl $0x1, %eax
jne 0x17c95
cmpq $0x0, 0x80(%r14)
jne 0x17c95
movq (%rbx), %rax
movq -0x18(%rax), %rsi
addq %rbx, %rsi
leaq -0x78(%rbp), %r15
movq %r15, %rdi
callq 0x18d34
movq -0x58(%rbp), %rdi
movq %r15, %rsi
callq 0xc150
jmp 0x17813
cmpq $0x0, 0x60(%r14)
je 0x17d89
cmpq $0x0, 0x80(%r14)
je 0x17e10
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x18(%rbx,%rax), %rsi
leaq 0x1fe25(%rip), %rdi     # 0x37acd
callq 0x16488
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %r12
leaq -0x280(%rbp), %r15
movq %r15, %rdi
leaq 0x1fce4(%rip), %rsi     # 0x379ae
leaq -0x78(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x189ce
movq %r15, %rdi
callq 0xc110
leaq -0x38(%rbp), %r12
jmp 0x17698
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1fb56(%rip), %rsi     # 0x37859
callq 0x18cd6
testb %al, %al
jne 0x17d5e
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1fb40(%rip), %rsi     # 0x3785d
callq 0x18cd6
testb %al, %al
jne 0x17d5e
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1fb2a(%rip), %rsi     # 0x37861
callq 0x18cd6
testb %al, %al
jne 0x17d5e
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1fb1c(%rip), %rsi     # 0x3786d
callq 0x18cd6
testb %al, %al
je 0x17e6b
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movabsq $0x200000000, %rax      # imm = 0x200000000
jmp 0x17a51
movq (%rbx), %rax
movq -0x18(%rax), %rsi
addq %rbx, %rsi
leaq -0x78(%rbp), %r15
movq %r15, %rdi
callq 0x18d34
movq -0xa0(%rbp), %rdi
movq %r15, %rsi
callq 0xc150
jmp 0x17813
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x20b9a(%rip), %rsi     # 0x3895e
callq 0x18cd6
testb %al, %al
jne 0x17de7
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1facc(%rip), %rsi     # 0x378aa
callq 0x18cd6
testb %al, %al
je 0x17e37
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movl $0x3, 0x10(%r14)
jmp 0x17a5d
movq (%rbx), %rax
movq -0x18(%rax), %rsi
addq %rbx, %rsi
leaq -0x78(%rbp), %r15
movq %r15, %rdi
callq 0x18d34
movq -0x58(%rbp), %rdi
movq %r15, %rsi
callq 0xc150
jmp 0x17813
movq (%rbx), %rax
movq -0x18(%rax), %r12
leaq -0x260(%rbp), %r15
movq %r15, %rdi
leaq 0x1fb91(%rip), %rsi     # 0x379e0
leaq -0x78(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x189ce
jmp 0x1794a
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1f9fd(%rip), %rsi     # 0x37879
callq 0x18cd6
testb %al, %al
jne 0x17ed3
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1f9e8(%rip), %rsi     # 0x3787e
callq 0x18cd6
testb %al, %al
jne 0x17ed3
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1f9d3(%rip), %rsi     # 0x37883
callq 0x18cd6
testb %al, %al
jne 0x17ed3
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1f9c6(%rip), %rsi     # 0x37890
callq 0x18cd6
testb %al, %al
je 0x17efe
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movabsq $0x300000000, %rax      # imm = 0x300000000
jmp 0x17a51
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1f98e(%rip), %rsi     # 0x3789d
callq 0x18cd6
testb %al, %al
jne 0x17f32
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
leaq 0x1f97d(%rip), %rsi     # 0x378a6
callq 0x18cd6
testb %al, %al
je 0x17f5d
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq 0x10(%rbx,%rax), %rcx
addq %rcx, 0x8(%rbx,%rax)
andq $0x0, 0x10(%rbx,%rax)
andl $0x0, 0x40(%rbx,%rax)
movabsq $0x400000000, %rax      # imm = 0x400000000
jmp 0x17a51
movq (%rbx), %rax
movq -0x18(%rax), %r12
leaq -0x200(%rbp), %rdi
leaq 0x1f93d(%rip), %rsi     # 0x378af
leaq -0x78(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r12
movq %r12, %rdi
leaq -0x200(%rbp), %rsi
callq 0x189ce
leaq -0x200(%rbp), %rdi
jmp 0x1794d
movl (%r14), %eax
cmpl $0x2, %eax
jne 0x18064
cmpq $0x0, 0x60(%r14)
jne 0x17fe8
movq (%rbx), %rax
movq -0x18(%rax), %r15
leaq 0x1fb24(%rip), %rsi     # 0x37ade
leaq -0x1e0(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r15
leaq -0x1e0(%rbp), %rsi
movq %r15, %rdi
callq 0x189ce
leaq -0x1e0(%rbp), %rdi
callq 0xc110
leaq 0x25f3c(%rip), %rsi     # 0x3df2b
leaq -0x48(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0xc0e0
leaq 0x1fafc(%rip), %r9      # 0x37aff
leaq -0x48(%rbp), %rsi
pushq $0x1
popq %r8
movq -0xa0(%rbp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x165c9
leaq -0x48(%rbp), %rdi
callq 0xc110
leaq 0x25ef7(%rip), %rsi     # 0x3df26
leaq -0x48(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0xc0e0
leaq 0x1fabc(%rip), %r9      # 0x37aff
leaq -0x48(%rbp), %rsi
pushq $0x1
popq %rcx
movq %r15, %rdi
movq %r14, %rdx
xorl %r8d, %r8d
callq 0x165c9
leaq -0x48(%rbp), %rdi
callq 0xc110
movl (%r14), %eax
decl %eax
cmpl $0x1, %eax
ja 0x18119
cmpq $0x0, 0x80(%r14)
je 0x180ed
leaq 0x25eab(%rip), %rsi     # 0x3df2b
leaq -0x48(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0xc0e0
leaq 0x1faa4(%rip), %r9      # 0x37b38
leaq -0x48(%rbp), %rsi
pushq $0x1
popq %r8
movq -0x58(%rbp), %rdi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x165c9
leaq -0x48(%rbp), %rdi
callq 0xc110
leaq 0x25e6c(%rip), %rsi     # 0x3df26
leaq -0x48(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0xc0e0
leaq 0x1fa6a(%rip), %r9      # 0x37b38
leaq -0x48(%rbp), %rsi
pushq $0x1
popq %rcx
movq -0x58(%rbp), %rdi
movq %r14, %rdx
xorl %r8d, %r8d
callq 0x165c9
leaq -0x48(%rbp), %rdi
callq 0xc110
cmpb $0x0, 0x98(%r14)
jne 0x18195
cmpl $0x1, (%r14)
jne 0x18159
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0x8(%r14)
movb $0x1, 0x98(%r14)
jmp 0x18195
cmpq $0x0, 0x40(%r14)
je 0x18195
movq (%rbx), %rax
movq -0x18(%rax), %r15
leaq 0x1f797(%rip), %rsi     # 0x378c5
leaq -0x1a0(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r15
leaq -0x1a0(%rbp), %rsi
movq %r15, %rdi
callq 0x189ce
leaq -0x1a0(%rbp), %rdi
jmp 0x18190
movq (%rbx), %rax
movq -0x18(%rax), %r15
leaq 0x1fa00(%rip), %rsi     # 0x37b67
leaq -0x1c0(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r15
leaq -0x1c0(%rbp), %rsi
movq %r15, %rdi
callq 0x189ce
leaq -0x1c0(%rbp), %rdi
callq 0xc110
cmpb $0x1, 0x9b(%r14)
jne 0x181e5
movl (%r14), %eax
decl %eax
cmpl $0x2, %eax
jb 0x181e5
movq (%rbx), %rax
movq -0x18(%rax), %r15
leaq 0x1f9ea(%rip), %rsi     # 0x37ba1
leaq -0x180(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r15
leaq -0x180(%rbp), %rsi
movq %r15, %rdi
callq 0x189ce
leaq -0x180(%rbp), %rdi
callq 0xc110
cmpb $0x1, 0x9c(%r14)
jne 0x18288
movl (%r14), %eax
decl %eax
cmpl $0x2, %eax
jb 0x18239
movq (%rbx), %rax
movq -0x18(%rax), %r15
leaq 0x1f9ea(%rip), %rsi     # 0x37bf5
leaq -0x160(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r15
leaq -0x160(%rbp), %rsi
movq %r15, %rdi
callq 0x189ce
leaq -0x160(%rbp), %rdi
callq 0xc110
cmpl $0x1, 0x8(%r14)
jne 0x182a4
cmpl $0x0, 0xa0(%r14)
je 0x182a4
movq (%rbx), %rax
movq -0x18(%rax), %r15
leaq 0x1f9f9(%rip), %rsi     # 0x37c51
leaq -0x140(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r15
leaq -0x140(%rbp), %rsi
movq %r15, %rdi
callq 0x189ce
leaq -0x140(%rbp), %rdi
callq 0xc110
jmp 0x182a4
cmpl $0x1, 0x8(%r14)
jne 0x18299
andl $0x0, 0xa0(%r14)
jmp 0x182a4
movl $0x2, 0xa0(%r14)
cmpl $0x1, (%r14)
je 0x1837a
cmpl $0x0, 0x4c(%r14)
je 0x182f1
movq (%rbx), %rax
movq -0x18(%rax), %r15
leaq 0x1f9b7(%rip), %rsi     # 0x37c7a
leaq -0x120(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r15
leaq -0x120(%rbp), %rsi
movq %r15, %rdi
callq 0x189ce
leaq -0x120(%rbp), %rdi
callq 0xc110
cmpl $0x0, 0x50(%r14)
je 0x18334
movq (%rbx), %rax
movq -0x18(%rax), %r15
leaq 0x1f9ad(%rip), %rsi     # 0x37cb3
leaq -0x100(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r15
leaq -0x100(%rbp), %rsi
movq %r15, %rdi
callq 0x189ce
leaq -0x100(%rbp), %rdi
callq 0xc110
cmpb $0x1, 0x99(%r14)
jne 0x1837a
movq (%rbx), %rax
movq -0x18(%rax), %r15
leaq 0x1f9a0(%rip), %rsi     # 0x37cec
leaq -0xe0(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xc0e0
addq %rbx, %r15
leaq -0xe0(%rbp), %rsi
movq %r15, %rdi
callq 0x189ce
leaq -0xe0(%rbp), %rdi
callq 0xc110
cmpl $0x0, 0x10(%r14)
je 0x183ce
cmpl $0x0, 0x8(%r14)
jne 0x18392
movl (%r14), %eax
decl %eax
cmpl $0x2, %eax
jb 0x183ce
movq (%rbx), %rax
movq -0x18(%rax), %r14
leaq 0x1f98e(%rip), %rsi     # 0x37d2e
leaq -0xc0(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xc0e0
addq %r14, %rbx
leaq -0xc0(%rbp), %rsi
movq %rbx, %rdi
callq 0x189ce
leaq -0xc0(%rbp), %rdi
callq 0xc110
leaq -0x98(%rbp), %rdi
callq 0xc110
addq $0x2d8, %rsp            # imm = 0x2D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1f64e(%rip), %rdi     # 0x37a41
leaq 0x1f665(%rip), %rsi     # 0x37a5f
leaq 0x1f66e(%rip), %rcx     # 0x37a6f
movl $0x170, %edx            # imm = 0x170
callq 0xc180
leaq 0x1f62f(%rip), %rdi     # 0x37a41
leaq 0x1f646(%rip), %rsi     # 0x37a5f
leaq 0x1f64f(%rip), %rcx     # 0x37a6f
movl $0x174, %edx            # imm = 0x174
callq 0xc180
leaq 0x1f610(%rip), %rdi     # 0x37a41
leaq 0x1f627(%rip), %rsi     # 0x37a5f
leaq 0x1f630(%rip), %rcx     # 0x37a6f
movl $0x178, %edx            # imm = 0x178
callq 0xc180
leaq 0x1f5f1(%rip), %rdi     # 0x37a41
leaq 0x1f608(%rip), %rsi     # 0x37a5f
leaq 0x1f611(%rip), %rcx     # 0x37a6f
movl $0x17d, %edx            # imm = 0x17D
callq 0xc180
leaq 0x1f5d2(%rip), %rdi     # 0x37a41
leaq 0x1f5e9(%rip), %rsi     # 0x37a5f
leaq 0x1f5f2(%rip), %rcx     # 0x37a6f
movl $0x182, %edx            # imm = 0x182
callq 0xc180
leaq 0x1f5b3(%rip), %rdi     # 0x37a41
leaq 0x1f5ca(%rip), %rsi     # 0x37a5f
leaq 0x1f5d3(%rip), %rcx     # 0x37a6f
movl $0x187, %edx            # imm = 0x187
callq 0xc180
movq %rax, %rbx
leaq -0x200(%rbp), %rdi
jmp 0x185f9
jmp 0x18623
movq %rax, %rbx
leaq -0x260(%rbp), %rdi
jmp 0x185f9
jmp 0x18623
jmp 0x184dc
jmp 0x18623
jmp 0x184dc
jmp 0x18623
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
jmp 0x185f9
jmp 0x18623
movq %rax, %rbx
leaq -0x280(%rbp), %rdi
jmp 0x185f9
jmp 0x18623
movq %rax, %rbx
leaq -0x1c0(%rbp), %rdi
jmp 0x1862a
jmp 0x1861c
movq %rax, %rbx
leaq -0x1e0(%rbp), %rdi
jmp 0x1862a
jmp 0x1861c
movq %rax, %rbx
leaq -0xe0(%rbp), %rdi
jmp 0x1862a
jmp 0x1861c
movq %rax, %rbx
leaq -0x140(%rbp), %rdi
jmp 0x1862a
jmp 0x1861c
movq %rax, %rbx
leaq -0x160(%rbp), %rdi
jmp 0x1862a
movq %rax, %rbx
leaq -0x180(%rbp), %rdi
jmp 0x1862a
jmp 0x1861c
jmp 0x1861c
movq %rax, %rbx
leaq -0x100(%rbp), %rdi
jmp 0x1862a
jmp 0x1861c
movq %rax, %rbx
leaq -0x120(%rbp), %rdi
jmp 0x1862a
jmp 0x1861c
jmp 0x18623
jmp 0x1861c
movq %rax, %rbx
leaq -0x1a0(%rbp), %rdi
jmp 0x1862a
jmp 0x18623
jmp 0x1861c
jmp 0x1861c
movq %rax, %rbx
leaq -0x2c0(%rbp), %rdi
jmp 0x185f9
jmp 0x18623
movq %rax, %rbx
leaq -0x2a0(%rbp), %rdi
jmp 0x185f9
jmp 0x18623
movq %rax, %rbx
leaq -0x300(%rbp), %rdi
jmp 0x185f9
jmp 0x18623
movq %rax, %rbx
leaq -0x2e0(%rbp), %rdi
jmp 0x185f9
jmp 0x18623
movq %rax, %rbx
leaq -0x220(%rbp), %rdi
callq 0xc110
jmp 0x18626
jmp 0x18623
jmp 0x18623
jmp 0x1861c
jmp 0x18623
jmp 0x1861c
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
jmp 0x1862a
jmp 0x1861c
jmp 0x18623
jmp 0x1861c
movq %rax, %rbx
jmp 0x1862f
jmp 0x18623
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0xc110
leaq -0x98(%rbp), %rdi
callq 0xc110
movq %rbx, %rdi
callq 0xc4c0
nop