// File: 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:
subq $0x388, %rsp            # imm = 0x388
movq %rdi, 0x380(%rsp)
movq %rsi, 0x378(%rsp)
movq %rdx, 0x370(%rsp)
movq %rcx, 0x368(%rsp)
movq 0x380(%rsp), %rax
movq %rax, 0x1d8(%rsp)
movq 0x370(%rsp), %rdi
leaq 0x534d7(%rip), %rsi     # 0x5d1fd
callq 0x1e8b0
testb $0x1, %al
jne 0x9d34
jmp 0x9e87
movq 0x370(%rsp), %rdi
leaq 0x53a0a(%rip), %rsi     # 0x5d74d
callq 0x1e8b0
testb $0x1, %al
jne 0x9d51
jmp 0x9e87
movq 0x370(%rsp), %rdi
leaq 0x534a7(%rip), %rsi     # 0x5d207
callq 0x1e8b0
testb $0x1, %al
jne 0x9d6e
jmp 0x9e87
leaq 0x348(%rsp), %rdi
movq %rdi, 0x1c8(%rsp)
callq 0x1e8e0
movq 0x1c8(%rsp), %rsi
movq 0x7923e(%rip), %rdi     # 0x82fd0
callq 0x62f0
movq %rax, 0x1d0(%rsp)
jmp 0x9da1
movq 0x1d0(%rsp), %rdi
leaq 0x539a7(%rip), %rsi     # 0x5d757
callq 0x6330
movq %rax, 0x1c0(%rsp)
jmp 0x9dbf
movq 0x1c0(%rsp), %rdi
movq 0x370(%rsp), %rsi
callq 0x62f0
movq %rax, 0x1b8(%rsp)
jmp 0x9dde
movq 0x1b8(%rsp), %rdi
leaq 0x533d1(%rip), %rsi     # 0x5d1be
callq 0x6330
movq %rax, 0x1b0(%rsp)
jmp 0x9dfc
movq 0x1b0(%rsp), %rdi
movq 0x368(%rsp), %rsi
callq 0x62f0
movq %rax, 0x1a8(%rsp)
jmp 0x9e1b
movq 0x1a8(%rsp), %rdi
leaq 0x53951(%rip), %rsi     # 0x5d77b
callq 0x6330
movq %rax, 0x1a0(%rsp)
jmp 0x9e39
movq 0x1a0(%rsp), %rdi
movq 0x79170(%rip), %rsi     # 0x82fb8
callq 0x6370
jmp 0x9e4f
leaq 0x348(%rsp), %rdi
callq 0x61f0
jmp 0xb06c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
leaq 0x348(%rsp), %rdi
callq 0x61f0
jmp 0xb0bc
leaq 0x318(%rsp), %rdi
movq %rdi, 0x190(%rsp)
callq 0x6470
leaq 0x2f8(%rsp), %rdi
movq %rdi, 0x198(%rsp)
callq 0x6470
leaq 0x2c8(%rsp), %rdi
callq 0x98a0
movq 0x190(%rsp), %rsi
movq 0x198(%rsp), %rdx
movq 0x368(%rsp), %rdi
callq 0x1e980
jmp 0x9edd
leaq 0x2f8(%rsp), %rdi
leaq 0x2c8(%rsp), %rsi
movl $0x2c, %edx
callq 0x98b0
jmp 0x9ef9
movq 0x370(%rsp), %rdi
leaq 0x532f5(%rip), %rsi     # 0x5d1fd
callq 0x8590
testb $0x1, %al
jne 0x9f16
jmp 0xa634
movq 0x1d8(%rsp), %rdi
movq 0x368(%rsp), %rsi
callq 0xb0f0
movq %rax, 0x188(%rsp)
jmp 0x9f35
movq 0x188(%rsp), %rax
cmpq $0x0, %rax
je 0x9f6c
movl $0x1, 0x2c4(%rsp)
jmp 0xb045
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
jmp 0xb095
movq 0x7905d(%rip), %rdi     # 0x82fd0
leaq 0x53803(%rip), %rsi     # 0x5d77d
callq 0x6330
movq %rax, 0x180(%rsp)
jmp 0x9f89
movq 0x180(%rsp), %rdi
movq 0x370(%rsp), %rsi
callq 0x62f0
movq %rax, 0x178(%rsp)
jmp 0x9fa8
movq 0x178(%rsp), %rdi
leaq 0x537f2(%rip), %rsi     # 0x5d7a9
callq 0x6330
movq %rax, 0x170(%rsp)
jmp 0x9fc6
movq 0x170(%rsp), %rdi
movq 0x368(%rsp), %rsi
callq 0x62f0
movq %rax, 0x168(%rsp)
jmp 0x9fe5
movq 0x168(%rsp), %rdi
movq 0x78fc4(%rip), %rsi     # 0x82fb8
callq 0x6370
jmp 0x9ffb
movq $0x0, 0x2b8(%rsp)
leaq 0x318(%rsp), %rdi
leaq 0x5379e(%rip), %rsi     # 0x5d7b4
callq 0x8590
testb $0x1, %al
jne 0xa021
jmp 0xa087
movl $0x20, %edi
callq 0x6340
movq %rax, 0x160(%rsp)
jmp 0xa035
movq 0x160(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1ea60
jmp 0xa04c
movq 0x160(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0xa546
movq 0x160(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x53722(%rip), %rsi     # 0x5d7b8
callq 0x8590
testb $0x1, %al
jne 0xa0a1
jmp 0xa107
movl $0x20, %edi
callq 0x6340
movq %rax, 0x158(%rsp)
jmp 0xa0b5
movq 0x158(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1eaa0
jmp 0xa0cc
movq 0x158(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0xa544
movq 0x158(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x536af(%rip), %rsi     # 0x5d7c5
callq 0x8590
testb $0x1, %al
jne 0xa121
jmp 0xa187
movl $0x28, %edi
callq 0x6340
movq %rax, 0x150(%rsp)
jmp 0xa135
movq 0x150(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1eae0
jmp 0xa14c
movq 0x150(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0xa542
movq 0x150(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x53634(%rip), %rsi     # 0x5d7ca
callq 0x8590
testb $0x1, %al
jne 0xa1a1
jmp 0xa207
movl $0x28, %edi
callq 0x6340
movq %rax, 0x148(%rsp)
jmp 0xa1b5
movq 0x148(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1eb20
jmp 0xa1cc
movq 0x148(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0xa540
movq 0x148(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x535be(%rip), %rsi     # 0x5d7d4
callq 0x8590
testb $0x1, %al
jne 0xa239
leaq 0x318(%rsp), %rdi
leaq 0x535cb(%rip), %rsi     # 0x5d7f9
callq 0x8590
testb $0x1, %al
jne 0xa239
jmp 0xa29f
movl $0x30, %edi
callq 0x6340
movq %rax, 0x140(%rsp)
jmp 0xa24d
movq 0x140(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1eb60
jmp 0xa264
movq 0x140(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0xa53e
movq 0x140(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x53535(%rip), %rsi     # 0x5d7e3
callq 0x8590
testb $0x1, %al
jne 0xa2b9
jmp 0xa31f
movl $0x30, %edi
callq 0x6340
movq %rax, 0x138(%rsp)
jmp 0xa2cd
movq 0x138(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1eba0
jmp 0xa2e4
movq 0x138(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0xa53c
movq 0x138(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x534c3(%rip), %rsi     # 0x5d7f1
callq 0x8590
testb $0x1, %al
jne 0xa339
jmp 0xa39f
movl $0x30, %edi
callq 0x6340
movq %rax, 0x130(%rsp)
jmp 0xa34d
movq 0x130(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1ebe0
jmp 0xa364
movq 0x130(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0xa53a
movq 0x130(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x53451(%rip), %rsi     # 0x5d7ff
callq 0x8590
testb $0x1, %al
jne 0xa3b9
jmp 0xa41f
movl $0x20, %edi
callq 0x6340
movq %rax, 0x128(%rsp)
jmp 0xa3cd
movq 0x128(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1ec20
jmp 0xa3e4
movq 0x128(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0xa538
movq 0x128(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x533dd(%rip), %rsi     # 0x5d80b
callq 0x8590
testb $0x1, %al
jne 0xa451
leaq 0x318(%rsp), %rdi
leaq 0x533cf(%rip), %rsi     # 0x5d815
callq 0x8590
testb $0x1, %al
jne 0xa451
jmp 0xa4b7
movl $0x20, %edi
callq 0x6340
movq %rax, 0x120(%rsp)
jmp 0xa465
movq 0x120(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1ec60
jmp 0xa47c
movq 0x120(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0xa536
movq 0x120(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x5335c(%rip), %rsi     # 0x5d822
callq 0x8590
testb $0x1, %al
jne 0xa4d1
jmp 0xa534
movl $0x28, %edi
callq 0x6340
movq %rax, 0x118(%rsp)
jmp 0xa4e5
movq 0x118(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1eca0
jmp 0xa4fc
movq 0x118(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0xa534
movq 0x118(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
jmp 0xa536
jmp 0xa538
jmp 0xa53a
jmp 0xa53c
jmp 0xa53e
jmp 0xa540
jmp 0xa542
jmp 0xa544
jmp 0xa546
cmpq $0x0, 0x2b8(%rsp)
je 0xa632
movq 0x1d8(%rsp), %rdx
movq 0x2b8(%rsp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq 0x2c8(%rsp), %rsi
callq *%rax
jmp 0xa578
movq 0x1d8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x110(%rsp)
movq 0x368(%rsp), %rsi
leaq 0x290(%rsp), %rdi
leaq 0x2b8(%rsp), %rdx
callq 0xb1c0
jmp 0xa5ab
movq 0x110(%rsp), %rdi
leaq 0x290(%rsp), %rsi
callq 0x1ecf0
movb %dl, 0x107(%rsp)
movq %rax, 0x108(%rsp)
jmp 0xa5d1
movb 0x107(%rsp), %al
movq 0x108(%rsp), %rcx
movq %rcx, 0x280(%rsp)
movb %al, 0x288(%rsp)
leaq 0x290(%rsp), %rdi
callq 0xb200
movl $0x1, 0x2c4(%rsp)
jmp 0xb045
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
leaq 0x290(%rsp), %rdi
callq 0xb200
jmp 0xb095
jmp 0xa634
movq 0x370(%rsp), %rdi
leaq 0x5310a(%rip), %rsi     # 0x5d74d
callq 0x8590
testb $0x1, %al
jne 0xa651
jmp 0xaa1a
movq 0x1d8(%rsp), %rdi
movq 0x368(%rsp), %rsi
callq 0x1ed40
movq %rax, 0xf8(%rsp)
jmp 0xa670
movq 0xf8(%rsp), %rax
cmpq $0x0, %rax
je 0xa68e
movl $0x1, 0x2c4(%rsp)
jmp 0xb045
movq 0x7893b(%rip), %rdi     # 0x82fd0
leaq 0x530e1(%rip), %rsi     # 0x5d77d
callq 0x6330
movq %rax, 0xf0(%rsp)
jmp 0xa6ab
movq 0xf0(%rsp), %rdi
movq 0x370(%rsp), %rsi
callq 0x62f0
movq %rax, 0xe8(%rsp)
jmp 0xa6ca
movq 0xe8(%rsp), %rdi
leaq 0x530d0(%rip), %rsi     # 0x5d7a9
callq 0x6330
movq %rax, 0xe0(%rsp)
jmp 0xa6e8
movq 0xe0(%rsp), %rdi
movq 0x368(%rsp), %rsi
callq 0x62f0
movq %rax, 0xd8(%rsp)
jmp 0xa707
movq 0xd8(%rsp), %rdi
movq 0x788a2(%rip), %rsi     # 0x82fb8
callq 0x6370
jmp 0xa71d
movq $0x0, 0x278(%rsp)
leaq 0x318(%rsp), %rdi
leaq 0x530fa(%rip), %rsi     # 0x5d832
callq 0x8590
testb $0x1, %al
jne 0xa743
jmp 0xa7a9
movl $0x20, %edi
callq 0x6340
movq %rax, 0xd0(%rsp)
jmp 0xa757
movq 0xd0(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1ede0
jmp 0xa76e
movq 0xd0(%rsp), %rax
movq %rax, 0x278(%rsp)
jmp 0xa92c
movq 0xd0(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x5307f(%rip), %rsi     # 0x5d837
callq 0x8590
testb $0x1, %al
jne 0xa7c3
jmp 0xa829
movl $0x30, %edi
callq 0x6340
movq %rax, 0xc8(%rsp)
jmp 0xa7d7
movq 0xc8(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1ee20
jmp 0xa7ee
movq 0xc8(%rsp), %rax
movq %rax, 0x278(%rsp)
jmp 0xa92a
movq 0xc8(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x53007(%rip), %rsi     # 0x5d83f
callq 0x8590
testb $0x1, %al
jne 0xa843
jmp 0xa8a9
movl $0x30, %edi
callq 0x6340
movq %rax, 0xc0(%rsp)
jmp 0xa857
movq 0xc0(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1eee0
jmp 0xa86e
movq 0xc0(%rsp), %rax
movq %rax, 0x278(%rsp)
jmp 0xa928
movq 0xc0(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x52f8f(%rip), %rsi     # 0x5d847
callq 0x8590
testb $0x1, %al
jne 0xa8c3
jmp 0xa926
movl $0x30, %edi
callq 0x6340
movq %rax, 0xb8(%rsp)
jmp 0xa8d7
movq 0xb8(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1efa0
jmp 0xa8ee
movq 0xb8(%rsp), %rax
movq %rax, 0x278(%rsp)
jmp 0xa926
movq 0xb8(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
jmp 0xa928
jmp 0xa92a
jmp 0xa92c
cmpq $0x0, 0x278(%rsp)
je 0xaa18
movq 0x1d8(%rsp), %rdx
movq 0x278(%rsp), %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0x2c8(%rsp), %rsi
callq *%rax
jmp 0xa95e
movq 0x1d8(%rsp), %rax
addq $0x38, %rax
movq %rax, 0xb0(%rsp)
movq 0x368(%rsp), %rsi
leaq 0x250(%rsp), %rdi
leaq 0x278(%rsp), %rdx
callq 0x1d8e0
jmp 0xa991
movq 0xb0(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x1d890
movb %dl, 0xa7(%rsp)
movq %rax, 0xa8(%rsp)
jmp 0xa9b7
movb 0xa7(%rsp), %al
movq 0xa8(%rsp), %rcx
movq %rcx, 0x240(%rsp)
movb %al, 0x248(%rsp)
leaq 0x250(%rsp), %rdi
callq 0x1d920
movl $0x1, 0x2c4(%rsp)
jmp 0xb045
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
leaq 0x250(%rsp), %rdi
callq 0x1d920
jmp 0xb095
jmp 0xaa1a
movq 0x370(%rsp), %rdi
leaq 0x527de(%rip), %rsi     # 0x5d207
callq 0x8590
testb $0x1, %al
jne 0xaa37
jmp 0xaf90
movq 0x1d8(%rsp), %rdi
movq 0x368(%rsp), %rsi
callq 0xb210
movq %rax, 0x98(%rsp)
jmp 0xaa56
movq 0x98(%rsp), %rax
cmpq $0x0, %rax
je 0xaa74
movl $0x1, 0x2c4(%rsp)
jmp 0xb045
movq 0x78555(%rip), %rdi     # 0x82fd0
leaq 0x52cfb(%rip), %rsi     # 0x5d77d
callq 0x6330
movq %rax, 0x90(%rsp)
jmp 0xaa91
movq 0x90(%rsp), %rdi
movq 0x370(%rsp), %rsi
callq 0x62f0
movq %rax, 0x88(%rsp)
jmp 0xaab0
movq 0x88(%rsp), %rdi
leaq 0x52cea(%rip), %rsi     # 0x5d7a9
callq 0x6330
movq %rax, 0x80(%rsp)
jmp 0xaace
movq 0x80(%rsp), %rdi
movq 0x368(%rsp), %rsi
callq 0x62f0
movq %rax, 0x78(%rsp)
jmp 0xaaea
movq 0x78(%rsp), %rdi
movq 0x784c2(%rip), %rsi     # 0x82fb8
callq 0x6370
jmp 0xaafd
movq $0x0, 0x238(%rsp)
leaq 0x318(%rsp), %rdi
leaq 0x52d27(%rip), %rsi     # 0x5d83f
callq 0x8590
testb $0x1, %al
jne 0xab23
jmp 0xab7d
movl $0x38, %edi
callq 0x6340
movq %rax, 0x70(%rsp)
jmp 0xab34
movq 0x70(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1eff0
jmp 0xab48
movq 0x70(%rsp), %rax
movq %rax, 0x238(%rsp)
jmp 0xaeb4
movq 0x70(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x5316f(%rip), %rsi     # 0x5dcfb
callq 0x8590
testb $0x1, %al
jne 0xab97
jmp 0xabf1
movl $0x70, %edi
callq 0x6340
movq %rax, 0x68(%rsp)
jmp 0xaba8
movq 0x68(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1f0b0
jmp 0xabbc
movq 0x68(%rsp), %rax
movq %rax, 0x238(%rsp)
jmp 0xaeb2
movq 0x68(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x52c4e(%rip), %rsi     # 0x5d84e
callq 0x8590
testb $0x1, %al
jne 0xac0b
jmp 0xac65
movl $0x28, %edi
callq 0x6340
movq %rax, 0x60(%rsp)
jmp 0xac1c
movq 0x60(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x19bd0
jmp 0xac30
movq 0x60(%rsp), %rax
movq %rax, 0x238(%rsp)
jmp 0xaeb0
movq 0x60(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x52be1(%rip), %rsi     # 0x5d855
callq 0x8590
testb $0x1, %al
jne 0xac7f
jmp 0xacd9
movl $0x58, %edi
callq 0x6340
movq %rax, 0x58(%rsp)
jmp 0xac90
movq 0x58(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1f110
jmp 0xaca4
movq 0x58(%rsp), %rax
movq %rax, 0x238(%rsp)
jmp 0xaeae
movq 0x58(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x52b75(%rip), %rsi     # 0x5d85d
callq 0x8590
testb $0x1, %al
jne 0xacf3
jmp 0xad4d
movl $0x80, %edi
callq 0x6340
movq %rax, 0x50(%rsp)
jmp 0xad04
movq 0x50(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1f170
jmp 0xad18
movq 0x50(%rsp), %rax
movq %rax, 0x238(%rsp)
jmp 0xaeac
movq 0x50(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x52b05(%rip), %rsi     # 0x5d861
callq 0x8590
testb $0x1, %al
jne 0xad67
jmp 0xadc1
movl $0x1b8, %edi            # imm = 0x1B8
callq 0x6340
movq %rax, 0x48(%rsp)
jmp 0xad78
movq 0x48(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1f1f0
jmp 0xad8c
movq 0x48(%rsp), %rax
movq %rax, 0x238(%rsp)
jmp 0xaeaa
movq 0x48(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
leaq 0x318(%rsp), %rdi
leaq 0x52a95(%rip), %rsi     # 0x5d865
callq 0x8590
testb $0x1, %al
jne 0xaddb
jmp 0xadfa
leaq 0x5327b(%rip), %rdi     # 0x5e05d
leaq 0x52a83(%rip), %rsi     # 0x5d86c
movl $0x104, %edx            # imm = 0x104
leaq 0x52a8e(%rip), %rcx     # 0x5d883
callq 0x6220
leaq 0x318(%rsp), %rdi
leaq 0x52b08(%rip), %rsi     # 0x5d911
callq 0x8590
testb $0x1, %al
jne 0xae14
jmp 0xae33
leaq 0x53242(%rip), %rdi     # 0x5e05d
leaq 0x52a4a(%rip), %rsi     # 0x5d86c
movl $0x106, %edx            # imm = 0x106
leaq 0x52a55(%rip), %rcx     # 0x5d883
callq 0x6220
leaq 0x318(%rsp), %rdi
leaq 0x52ad8(%rip), %rsi     # 0x5d91a
callq 0x8590
testb $0x1, %al
jne 0xae4d
jmp 0xaea4
movl $0x88, %edi
callq 0x6340
movq %rax, 0x40(%rsp)
jmp 0xae5e
movq 0x40(%rsp), %rdi
movq 0x378(%rsp), %rsi
callq 0x1f380
jmp 0xae72
movq 0x40(%rsp), %rax
movq %rax, 0x238(%rsp)
jmp 0xaea4
movq 0x40(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
callq 0x6310
jmp 0xb095
jmp 0xaea6
jmp 0xaea8
jmp 0xaeaa
jmp 0xaeac
jmp 0xaeae
jmp 0xaeb0
jmp 0xaeb2
jmp 0xaeb4
cmpq $0x0, 0x238(%rsp)
je 0xaf8e
movq 0x1d8(%rsp), %rdx
movq 0x238(%rsp), %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
leaq 0x2c8(%rsp), %rsi
callq *%rax
jmp 0xaee6
movq 0x1d8(%rsp), %rax
addq $0x68, %rax
movq %rax, 0x38(%rsp)
movq 0x368(%rsp), %rsi
leaq 0x210(%rsp), %rdi
leaq 0x238(%rsp), %rdx
callq 0xb2e0
jmp 0xaf16
movq 0x38(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x1e0d0
movb %dl, 0x2f(%rsp)
movq %rax, 0x30(%rsp)
jmp 0xaf33
movb 0x2f(%rsp), %al
movq 0x30(%rsp), %rcx
movq %rcx, 0x200(%rsp)
movb %al, 0x208(%rsp)
leaq 0x210(%rsp), %rdi
callq 0xb320
movl $0x1, 0x2c4(%rsp)
jmp 0xb045
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
leaq 0x210(%rsp), %rdi
callq 0xb320
jmp 0xb095
jmp 0xaf90
leaq 0x1e0(%rsp), %rdi
callq 0x1e8e0
jmp 0xaf9f
movq 0x7802a(%rip), %rdi     # 0x82fd0
leaq 0x1e0(%rsp), %rsi
callq 0x62f0
movq %rax, 0x20(%rsp)
jmp 0xafba
movq 0x20(%rsp), %rdi
leaq 0x52969(%rip), %rsi     # 0x5d92f
callq 0x6330
movq %rax, 0x18(%rsp)
jmp 0xafd2
movq 0x18(%rsp), %rdi
movq 0x370(%rsp), %rsi
callq 0x62f0
movq %rax, 0x10(%rsp)
jmp 0xafeb
movq 0x10(%rsp), %rdi
leaq 0x527b2(%rip), %rsi     # 0x5d7a9
callq 0x6330
movq %rax, 0x8(%rsp)
jmp 0xb003
movq 0x8(%rsp), %rdi
movq 0x368(%rsp), %rsi
callq 0x62f0
movq %rax, (%rsp)
jmp 0xb01b
movq (%rsp), %rdi
movq 0x77f92(%rip), %rsi     # 0x82fb8
callq 0x6370
jmp 0xb02d
leaq 0x1e0(%rsp), %rdi
callq 0x61f0
movl $0x0, 0x2c4(%rsp)
leaq 0x2c8(%rsp), %rdi
callq 0xb360
leaq 0x2f8(%rsp), %rdi
callq 0x61f0
leaq 0x318(%rsp), %rdi
callq 0x61f0
addq $0x388, %rsp            # imm = 0x388
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x340(%rsp)
movl %eax, 0x33c(%rsp)
leaq 0x1e0(%rsp), %rdi
callq 0x61f0
leaq 0x2c8(%rsp), %rdi
callq 0xb360
leaq 0x2f8(%rsp), %rdi
callq 0x61f0
leaq 0x318(%rsp), %rdi
callq 0x61f0
movq 0x340(%rsp), %rdi
callq 0x6520
nopl (%rax)