// File: /workspace/github_cpp_makefile_star2_O3/bonetblai[P]mdp-engine/ctp3/../engine/dispatcher.h
// Function: Dispatcher::dispatcher_t<state_t>::create_request(Problem::problem_t<state_t> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void dispatcher_t<T>::create_request(const Problem::problem_t<T> &problem, const std::string &type, const std::string &request) {
    if( (type != "algorithm") && (type != "heuristic") && (type != "policy") ) {
        std::cout << Utils::error() << "dispatcher: create-request: invalid '" << type << "=" << request << "'" << std::endl;
        return;
    }

    // parse request
    std::string name;
    std::string parameter_str;
    std::multimap<std::string, std::string> parameters;
    Utils::split_request(request, name, parameter_str);
    Utils::tokenize(parameter_str, parameters);

    // algorithms
    if( type == "algorithm" ) {
        if( fetch_algorithm(request) != 0 ) {
#ifdef DEBUG
            std::cout << "dispatcher: create-request: found algorithm '" << request << "'" << std::endl;
#endif
            return;
        }
        std::cout << "dispatcher: create-request: creating: type=" << type << ", request=" << request << std::endl;

        Algorithm::algorithm_t<T> *algorithm = 0;
        if( name == "hdp" )
            algorithm = new Algorithm::hdp_t<T>(problem);
        else if( name == "improved-lao" )
            algorithm = new Algorithm::improved_lao_t<T>(problem);
        else if( name == "ldfs" )
            algorithm = new Algorithm::ldfs_t<T>(problem);
        else if( name == "ldfs-plus" )
            algorithm = new Algorithm::ldfs_plus_t<T>(problem);
        else if( (name == "standard-lrtdp") || (name == "lrtdp") )
            algorithm = new Algorithm::standard_lrtdp_t<T>(problem);
        else if( name == "uniform-lrtdp" )
            algorithm = new Algorithm::uniform_lrtdp_t<T>(problem);
        else if( name == "bounded-lrtdp" )
            algorithm = new Algorithm::bounded_lrtdp_t<T>(problem);
        else if( name == "plain-check" )
            algorithm = new Algorithm::plain_check_t<T>(problem);
        else if( (name == "simple-a*" ) || (name == "simple-astar") )
            algorithm = new Algorithm::simple_astar_t<T>(problem);
        else if( name == "value-iteration" )
            algorithm = new Algorithm::value_iteration_t<T>(problem);

        if( algorithm != 0 ) {
            algorithm->set_parameters(parameters, *this);
            algorithms_.insert(std::make_pair(request, algorithm));
            return;
        }
    }

    // heuristics
    if( type == "heuristic" ) {
        if( fetch_heuristic(request) != 0 ) {
#ifdef DEBUG
            std::cout << "dispatcher: create-request: found heuristic '" << request << "'" << std::endl;
#endif
            return;
        }
        std::cout << "dispatcher: create-request: creating: type=" << type << ", request=" << request << std::endl;

        Heuristic::heuristic_t<T> *heuristic = 0;
        if( name == "zero" )
            heuristic = new Heuristic::zero_heuristic_t<T>(problem);
        else if( name == "min-min" )
            heuristic = new Heuristic::min_min_heuristic_t<T>(problem);
        else if( name == "optimal" )
            heuristic = new Heuristic::optimal_heuristic_t<T>(problem);
        else if( name == "scaled" )
            heuristic = new Heuristic::scaled_heuristic_t<T>(problem);

        if( heuristic != 0 ) {
            heuristic->set_parameters(parameters, *this);
            heuristics_.insert(std::make_pair(request, heuristic));
            return;
        }
    }

    // policies
    if( type == "policy" ) {
        if( fetch_policy(request) != 0 ) {
#ifdef DEBUG
            std::cout << "dispatcher: create-request: found policy '" << request << "'" << std::endl;
#endif
            return;
        }
        std::cout << "dispatcher: create-request: creating: type=" << type << ", request=" << request << std::endl;

        Online::Policy::policy_t<T> *policy = 0;
        if( name == "optimal" )
            policy = new Online::Policy::optimal_policy_t<T>(problem);
        else if( name == "greedy" )
            policy = new Online::Policy::base_greedy_t<T>(problem);
        else if( name == "random" )
            policy = new Online::Policy::random_t<T>(problem);
        else if( name == "rollout" )
            policy = new Online::Policy::Rollout::nested_rollout_t<T>(problem);
        else if( name == "uct" )
            policy = new Online::Policy::UCT::uct_t<T>(problem);
        else if( name == "aot" )
            policy = new Online::Policy::AOT::aot_t<T>(problem);
        else if( name == "aot-gh" )
            assert(0);
        else if( name == "aot-path" )
            assert(0);
        else if( name == "finite-horizon-lrtdp" )
            policy = new Online::Policy::RTDP::finite_horizon_lrtdp_t<T>(problem);

        if( policy != 0 ) {
            policy->set_parameters(parameters, *this);
            policies_.insert(std::make_pair(request, policy));
            return;
        }
    }

    // if this far, request is not recognized
    std::cout << Utils::error() << "dispatcher: create-request: unrecognized: type=" << type << ", request=" << request << std::endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rcx, %rbx
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %r14
leaq 0x237c1(%rip), %rsi     # 0x2b27d
movq %rdx, %rdi
callq 0x50c0
testl %eax, %eax
je 0x7be6
leaq 0x23d0f(%rip), %rsi     # 0x2b7e2
movq %r12, %rdi
callq 0x50c0
testl %eax, %eax
je 0x7be6
leaq 0x2379d(%rip), %rsi     # 0x2b287
movq %r12, %rdi
callq 0x50c0
testl %eax, %eax
je 0x7be6
movb 0x35758(%rip), %al      # 0x3d258
testb %al, %al
leaq 0x23eeb(%rip), %rcx     # 0x2b9f4
leaq 0x24452(%rip), %rsi     # 0x2bf62
cmovneq %rcx, %rsi
leaq 0x12(%rsi), %rdx
testb %al, %al
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
cmoveq %rsi, %rdx
leaq 0x48(%rsp), %r14
movq %r14, %rdi
callq 0xd386
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0x35496(%rip), %rdi     # 0x3cfd8
callq 0x52e0
movq %rax, %r14
leaq 0x23c9b(%rip), %rsi     # 0x2b7ec
movl $0x25, %edx
movq %rax, %rdi
callq 0x52e0
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %r14, %rdi
callq 0x52e0
movq %rax, %r14
leaq 0x236c5(%rip), %rsi     # 0x2b23e
movl $0x1, %edx
movq %rax, %rdi
callq 0x52e0
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r14, %rdi
callq 0x52e0
movq %rax, %rbx
leaq 0x23c71(%rip), %rsi     # 0x2b810
movl $0x1, %edx
movq %rax, %rdi
callq 0x52e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5270
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51e0
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
jne 0x8749
jmp 0x874e
leaq 0x10(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x88(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x50(%rsp), %rcx
movl $0x0, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
movq %rsp, %rsi
leaq 0x78(%rsp), %rdx
movq %rbx, %rdi
callq 0xdf31
leaq 0x78(%rsp), %rdi
leaq 0x48(%rsp), %rsi
movl $0x2c, %edx
callq 0x7845
leaq 0x2362e(%rip), %rsi     # 0x2b27d
movq %r12, %rdi
callq 0x50c0
testl %eax, %eax
je 0x7d65
leaq 0x23b7c(%rip), %rsi     # 0x2b7e2
movq %r12, %rdi
callq 0x50c0
testl %eax, %eax
je 0x7f5c
leaq 0x2360a(%rip), %rsi     # 0x2b287
movq %r12, %rdi
callq 0x50c0
testl %eax, %eax
je 0x8097
movb 0x355c5(%rip), %al      # 0x3d258
testb %al, %al
leaq 0x23d58(%rip), %rcx     # 0x2b9f4
leaq 0x242bf(%rip), %rsi     # 0x2bf62
cmovneq %rcx, %rsi
leaq 0x12(%rsi), %rdx
testb %al, %al
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
cmoveq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0xd386
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x35303(%rip), %rdi     # 0x3cfd8
callq 0x52e0
movq %rax, %r14
leaq 0x23ce0(%rip), %rsi     # 0x2b9c4
movl $0x2f, %edx
movq %rax, %rdi
callq 0x52e0
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %r14, %rdi
callq 0x52e0
movq %rax, %r14
leaq 0x23b32(%rip), %rsi     # 0x2b83e
movl $0xa, %edx
movq %rax, %rdi
callq 0x52e0
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r14, %rdi
callq 0x52e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5270
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51e0
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
jne 0x8715
jmp 0x871a
leaq 0x8(%r14), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x28f46
leaq 0x10(%r14), %rcx
cmpq %rcx, %rax
je 0x7d88
cmpq $0x0, 0x40(%rax)
jne 0x871a
movq 0x35249(%rip), %rdi     # 0x3cfd8
leaq 0x23a7c(%rip), %rsi     # 0x2b812
movl $0x2b, %edx
callq 0x52e0
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq 0x35228(%rip), %rdi     # 0x3cfd8
callq 0x52e0
movq %rax, %rbp
leaq 0x23a7f(%rip), %rsi     # 0x2b83e
movl $0xa, %edx
movq %rax, %rdi
callq 0x52e0
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %rbp, %rdi
callq 0x52e0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x5270
movsbl %al, %esi
movq %rbp, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51e0
leaq 0x23a3d(%rip), %rsi     # 0x2b849
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x827a
leaq 0x23a2a(%rip), %rsi     # 0x2b84d
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x82e6
leaq 0x23a20(%rip), %rsi     # 0x2b85a
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x83bf
leaq 0x23a0e(%rip), %rsi     # 0x2b85f
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x84fe
leaq 0x23a01(%rip), %rsi     # 0x2b869
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x8464
leaq 0x23a0f(%rip), %rsi     # 0x2b88e
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x8464
leaq 0x239e2(%rip), %rsi     # 0x2b878
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x8676
leaq 0x239d9(%rip), %rsi     # 0x2b886
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x8760
leaq 0x239d0(%rip), %rsi     # 0x2b894
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x87cd
leaq 0x239c5(%rip), %rsi     # 0x2b8a0
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x879d
leaq 0x239b8(%rip), %rsi     # 0x2b8aa
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x879d
leaq 0x239ae(%rip), %rsi     # 0x2b8b7
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
jne 0x7c5f
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl 0x35384(%rip), %eax     # 0x3d2bc
movl %eax, 0x18(%r12)
leaq 0x345dc(%rip), %rax     # 0x3c520
movq %rax, (%r12)
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
movq %rcx, 0x1c(%r12)
jmp 0x8536
leaq 0x38(%r14), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x17c4e
leaq 0x40(%r14), %rcx
cmpq %rcx, %rax
je 0x7f7f
cmpq $0x0, 0x40(%rax)
jne 0x871a
movq 0x35052(%rip), %rdi     # 0x3cfd8
leaq 0x23885(%rip), %rsi     # 0x2b812
movl $0x2b, %edx
callq 0x52e0
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq 0x35031(%rip), %rdi     # 0x3cfd8
callq 0x52e0
movq %rax, %rbp
leaq 0x23888(%rip), %rsi     # 0x2b83e
movl $0xa, %edx
movq %rax, %rdi
callq 0x52e0
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %rbp, %rdi
callq 0x52e0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x5270
movsbl %al, %esi
movq %rbp, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51e0
leaq 0x238c4(%rip), %rsi     # 0x2b8c7
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x82b7
leaq 0x238b2(%rip), %rsi     # 0x2b8cc
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x8333
leaq 0x238a3(%rip), %rsi     # 0x2b8d4
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x84a1
leaq 0x23894(%rip), %rsi     # 0x2b8dc
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
jne 0x7c76
movl $0x30, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
xorl %eax, %eax
movq %rax, 0x10(%r12)
movl $0x0, 0x18(%r12)
leaq 0x34740(%rip), %rbp     # 0x3c7c0
movq %rbp, (%r12)
movq %rax, 0x20(%r12)
movl $0x3f800000, 0x28(%r12) # imm = 0x3F800000
jmp 0x84bd
leaq 0x68(%r14), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x29286
leaq 0x70(%r14), %rcx
cmpq %rcx, %rax
je 0x80ba
cmpq $0x0, 0x40(%rax)
jne 0x871a
movq 0x34f17(%rip), %rdi     # 0x3cfd8
leaq 0x2374a(%rip), %rsi     # 0x2b812
movl $0x2b, %edx
callq 0x52e0
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq 0x34ef6(%rip), %rdi     # 0x3cfd8
callq 0x52e0
movq %rax, %rbp
leaq 0x2374d(%rip), %rsi     # 0x2b83e
movl $0xa, %edx
movq %rax, %rdi
callq 0x52e0
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %rbp, %rdi
callq 0x52e0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x5270
movsbl %al, %esi
movq %rbp, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51e0
leaq 0x23796(%rip), %rsi     # 0x2b8d4
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x8316
leaq 0x23c11(%rip), %rsi     # 0x2bd66
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x83f3
leaq 0x23777(%rip), %rsi     # 0x2b8e3
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x8577
leaq 0x23767(%rip), %rsi     # 0x2b8ea
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x85ac
leaq 0x23758(%rip), %rsi     # 0x2b8f2
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x85ff
leaq 0x23745(%rip), %rsi     # 0x2b8f6
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x86b3
leaq 0x23732(%rip), %rsi     # 0x2b8fa
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x87fd
leaq 0x237c7(%rip), %rsi     # 0x2b9a6
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
je 0x881c
leaq 0x237b9(%rip), %rsi     # 0x2b9af
movq %rsp, %rdi
callq 0x50c0
testl %eax, %eax
jne 0x7c8d
movl $0x88, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movl 0x350a3(%rip), %eax     # 0x3d2c0
movl %eax, 0x10(%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x14(%r12)
leaq 0x34a9e(%rip), %rax     # 0x3ccd0
movq %rax, (%r12)
movq %r12, %rax
addq $0x78, %rax
movups %xmm0, 0x28(%r12)
movw $0x0, 0x38(%r12)
movq %rax, 0x48(%r12)
movq $0x1, 0x50(%r12)
movups %xmm0, 0x58(%r12)
movl $0x3f800000, 0x68(%r12) # imm = 0x3F800000
movups %xmm0, 0x70(%r12)
leaq 0x34adb(%rip), %rax     # 0x3cd50
jmp 0x866f
movl $0x20, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl 0x35023(%rip), %eax     # 0x3d2bc
movl %eax, 0x18(%r12)
leaq 0x33e8b(%rip), %rax     # 0x3c130
movq %rax, (%r12)
movl $0x0, 0x1c(%r12)
jmp 0x8536
movl $0x20, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl $0x0, 0x18(%rax)
leaq 0x342a2(%rip), %rbp     # 0x3c580
movq %rbp, (%rax)
jmp 0x84bd
movl $0x20, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl 0x34fb7(%rip), %eax     # 0x3d2bc
movl %eax, 0x18(%r12)
leaq 0x33edf(%rip), %rax     # 0x3c1f0
jmp 0x8532
movl $0x38, %edi
callq 0x5290
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
callq 0xe096
jmp 0x86cb
movl $0x30, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl $0x0, 0x18(%rax)
leaq 0x3428e(%rip), %rbp     # 0x3c5e8
movq %rbp, (%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rax)
movl $0x58, %edi
callq 0x5290
movq %r12, %rcx
addq $0x20, %rcx
movq %rax, %rdx
addq $0x38, %rdx
movq %rdx, 0x8(%rax)
movq $0x1, 0x10(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rax)
movl $0x3f800000, 0x28(%rax) # imm = 0x3F800000
movups %xmm0, 0x30(%rax)
movq $0x0, 0x40(%rax)
movq %r15, 0x48(%rax)
movl $0x0, 0x50(%rax)
leaq 0x3429c(%rip), %rdx     # 0x3c650
movq %rdx, (%rax)
movq %rax, (%rcx)
jmp 0x84bd
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
xorl %eax, %eax
movq %rax, 0x10(%r12)
movl 0x34edf(%rip), %ecx     # 0x3d2bc
movl %ecx, 0x18(%r12)
movq %rax, 0x1c(%r12)
leaq 0x33e62(%rip), %rax     # 0x3c250
jmp 0x8532
movl $0x70, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movl 0x34eb6(%rip), %eax     # 0x3d2c0
movl %eax, 0x10(%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x14(%r12)
leaq 0x344a1(%rip), %rax     # 0x3c8c0
movq %rax, (%r12)
movq %r12, %rax
addq $0x68, %rax
movq $0x0, 0x28(%r12)
movl $0x0, 0x2f(%r12)
movq %rax, 0x38(%r12)
movq $0x1, 0x40(%r12)
movups %xmm0, 0x48(%r12)
movl $0x3f800000, 0x58(%r12) # imm = 0x3F800000
movups %xmm0, 0x60(%r12)
jmp 0x86cb
movl $0x30, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl 0x34e39(%rip), %eax     # 0x3d2bc
movl %eax, 0x18(%r12)
movaps 0x22c01(%rip), %xmm0    # 0x2b090
movups %xmm0, 0x1c(%r12)
leaq 0x33e8c(%rip), %rax     # 0x3c328
jmp 0x8532
movl $0x30, %edi
callq 0x5290
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
callq 0xe01e
movq (%r12), %rbp
leaq 0x48(%rsp), %rsi
movq %r12, %rdi
movq %r14, %rdx
callq *0x38(%rbp)
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0xd65c
leaq 0x20(%rsp), %rsi
movq %r12, 0x20(%rsi)
movq %r13, %rdi
callq 0xdb76
jmp 0x870b
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl 0x34d9f(%rip), %eax     # 0x3d2bc
movl %eax, 0x18(%r12)
movq $0x1, 0x1c(%r12)
leaq 0x33d96(%rip), %rax     # 0x3c2c8
movq %rax, (%r12)
leaq 0x48(%rsp), %rsi
movq %r12, %rdi
movq %r14, %rdx
callq *0x20(%rax)
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0xd65c
leaq 0x20(%rsp), %rsi
movq %r12, 0x20(%rsi)
movq %r13, %rdi
callq 0x17a70
jmp 0x870b
movl $0x28, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movl 0x34d32(%rip), %eax     # 0x3d2c0
movl %eax, 0x10(%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x14(%r12)
leaq 0x339b5(%rip), %rax     # 0x3bf58
movq %rax, (%r12)
jmp 0x86cb
movl $0x58, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movl 0x34cfd(%rip), %eax     # 0x3d2c0
movl %eax, 0x10(%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x14(%r12)
movq $0x0, 0x28(%r12)
leaq 0x3435f(%rip), %rax     # 0x3c940
movq %rax, (%r12)
movups %xmm0, 0x30(%r12)
movups %xmm0, 0x40(%r12)
movl $0x0, 0x50(%r12)
jmp 0x86cb
movl $0x80, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movl 0x34caa(%rip), %eax     # 0x3d2c0
movl %eax, 0x10(%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x14(%r12)
movups %xmm0, 0x28(%r12)
leaq 0x34427(%rip), %rax     # 0x3ca58
movq %rax, (%r12)
movq %r12, %rax
addq $0x78, %rax
movq $0x0, 0x35(%r12)
movq %rax, 0x48(%r12)
movq $0x1, 0x50(%r12)
movups %xmm0, 0x58(%r12)
movl $0x3f800000, 0x68(%r12) # imm = 0x3F800000
movups %xmm0, 0x70(%r12)
leaq 0x34469(%rip), %rax     # 0x3cad8
movq %rax, 0x40(%r12)
jmp 0x86cb
movl $0x30, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl 0x34c27(%rip), %eax     # 0x3d2bc
movl %eax, 0x18(%r12)
movaps 0x229df(%rip), %xmm0    # 0x2b080
movups %xmm0, 0x1c(%r12)
leaq 0x33cf2(%rip), %rax     # 0x3c3a0
jmp 0x8532
movl $0x1b8, %edi            # imm = 0x1B8
callq 0x5290
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
callq 0xe118
movq (%r12), %rax
leaq 0x48(%rsp), %rsi
movq %r12, %rdi
movq %r14, %rdx
callq *0x38(%rax)
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0xd65c
leaq 0x20(%rsp), %rsi
movq %r12, 0x20(%rsi)
movq %r13, %rdi
callq 0xdd54
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x871a
callq 0x5260
leaq 0x48(%rsp), %rdi
callq 0xd6f2
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x873b
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x874e
callq 0x5260
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x30, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl 0x34b3d(%rip), %eax     # 0x3d2bc
movl %eax, 0x18(%r12)
movaps 0x228e5(%rip), %xmm0    # 0x2b070
movups %xmm0, 0x1c(%r12)
leaq 0x33c68(%rip), %rax     # 0x3c400
jmp 0x8532
movl $0x20, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl 0x34b00(%rip), %eax     # 0x3d2bc
movl %eax, 0x18(%r12)
leaq 0x33cf8(%rip), %rax     # 0x3c4c0
jmp 0x8532
movl $0x20, %edi
callq 0x5290
movq %rax, %r12
movq %r15, 0x8(%rax)
movq $0x0, 0x10(%rax)
movl 0x34ad0(%rip), %eax     # 0x3d2bc
movl %eax, 0x18(%r12)
leaq 0x33c68(%rip), %rax     # 0x3c460
jmp 0x8532
leaq 0x23886(%rip), %rdi     # 0x2c08a
leaq 0x230f6(%rip), %rsi     # 0x2b901
leaq 0x23106(%rip), %rcx     # 0x2b918
movl $0x104, %edx            # imm = 0x104
callq 0x51c0
leaq 0x23867(%rip), %rdi     # 0x2c08a
leaq 0x230d7(%rip), %rsi     # 0x2b901
leaq 0x230e7(%rip), %rcx     # 0x2b918
movl $0x106, %edx            # imm = 0x106
callq 0x51c0
jmp 0x8841
jmp 0x8841
jmp 0x8841
movq %rax, %rbx
movq %r12, %rdi
jmp 0x8877
jmp 0x8853
jmp 0x888d
jmp 0x8853
jmp 0x888d
jmp 0x888d
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
jne 0x8877
jmp 0x8890
jmp 0x888d
jmp 0x888d
jmp 0x888d
jmp 0x888d
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x8890
callq 0x5260
jmp 0x8890
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
jne 0x88bf
jmp 0x88c4
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xd6f2
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x88b1
callq 0x5260
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x88c4
callq 0x5260
movq %rbx, %rdi
callq 0x5410