// File: /workspace/github_cpp_makefile_star2_O1/bonetblai[P]mdp-engine/ctp3/../engine/aot.h
// Function: Online::Policy::AOT::aot_t<state_t>::set_parameters(std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<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&, Dispatcher::dispatcher_t<state_t>&)
virtual void set_parameters(const std::multimap<std::string, std::string> &parameters, Dispatcher::dispatcher_t<T> &dispatcher) {
        std::multimap<std::string, std::string>::const_iterator it = parameters.find("width");
        if( it != parameters.end() ) width_ = strtol(it->second.c_str(), 0, 0);
        it = parameters.find("horizon");
        if( it != parameters.end() ) horizon_ = strtol(it->second.c_str(), 0, 0);
        it = parameters.find("probability");
        if( it != parameters.end() ) probability_ = strtod(it->second.c_str(), 0);
        it = parameters.find("expansions-per-iteration");
        if( it != parameters.end() ) expansions_per_iteration_ = strtol(it->second.c_str(), 0, 0);
        it = parameters.find("random-ties");
        if( it != parameters.end() ) random_ties_ = it->second == "true";
        it = parameters.find("policy");
        if( it != parameters.end() ) {
            delete base_policy_;
            dispatcher.create_request(problem_, it->first, it->second);
            base_policy_ = dispatcher.fetch_policy(it->second);
        }
        it = parameters.find("heuristic");
        if( it != parameters.end() ) {
            delete heuristic_;
            dispatcher.create_request(problem_, it->first, it->second);
            heuristic_ = dispatcher.fetch_heuristic(it->second);
        }
        policy_t<T>::setup_time_ = base_policy_ == 0 ? 0 : base_policy_->setup_time();
        policy_t<T>::setup_time_ += heuristic_ == 0 ? 0 : heuristic_->setup_time();

#ifdef DEBUG
        std::cout << "debug: aot(): params:"
                  << " width=" << width_
                  << " horizon=" << horizon_
                  << " probability=" << probability_
                  << " expansions-per-iteration=" << expansions_per_iteration_
                  << " random-ties=" << (random_ties_ ? "true" : "false")
                  << " policy=" << (base_policy_ == 0 ? std::string("null") : base_policy_->name())
                  << " heuristic=" << (heuristic_ == 0 ? std::string("null") : heuristic_->name())
                  << std::endl;
#endif
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x9ffc(%rip), %rsi      # 0x2e3e3
leaq 0x9ffa(%rip), %rdx      # 0x2e3e8
leaq 0x8(%rsp), %rdi
callq 0xe5ba
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x10180
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x24417
callq 0x6260
leaq 0x8(%r15), %rbp
cmpq %rbp, %r12
je 0x24431
movq 0x40(%r12), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6370
movl %eax, 0x30(%rbx)
leaq 0x8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xa360(%rip), %rsi      # 0x2e7a0
leaq 0xa360(%rip), %rdx      # 0x2e7a7
callq 0xe5ba
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x10180
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x2446b
callq 0x6260
cmpq %rbp, %r12
je 0x24481
movq 0x40(%r12), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6370
movl %eax, 0x34(%rbx)
leaq 0x8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xba4c(%rip), %rsi      # 0x2fedc
leaq 0xba50(%rip), %rdx      # 0x2fee7
callq 0xe5ba
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x10180
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x244bb
callq 0x6260
cmpq %rbp, %r12
je 0x244d5
movq 0x40(%r12), %rdi
xorl %esi, %esi
callq 0x6210
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x38(%rbx)
leaq 0x8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xba04(%rip), %rsi      # 0x2fee8
leaq 0xba15(%rip), %rdx      # 0x2ff00
callq 0xe5ba
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x10180
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x2450f
callq 0x6260
cmpq %rbp, %r12
je 0x24525
movq 0x40(%r12), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6370
movl %eax, 0x40(%rbx)
leaq 0x8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x9cb6(%rip), %rsi      # 0x2e1ea
leaq 0x9cba(%rip), %rdx      # 0x2e1f5
callq 0xe5ba
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x10180
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x2455f
callq 0x6260
cmpq %rbp, %r12
je 0x2457d
addq $0x40, %r12
leaq 0x9c4d(%rip), %rsi      # 0x2e1bc
movq %r12, %rdi
callq 0x60c0
testl %eax, %eax
sete 0x3c(%rbx)
leaq 0x8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x8ceb(%rip), %rsi      # 0x2d277
leaq 0x8cea(%rip), %rdx      # 0x2d27d
callq 0xe5ba
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x10180
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x245b7
callq 0x6260
cmpq %rbp, %r12
je 0x24604
movq 0x28(%rbx), %rdi
testq %rdi, %rdi
je 0x245cb
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x8(%rbx), %rsi
leaq 0x20(%r12), %rdx
addq $0x40, %r12
movq %r14, %rdi
movq %r12, %rcx
callq 0x8c62
leaq 0x68(%r14), %rdi
movq %r12, %rsi
callq 0x2b068
leaq 0x70(%r14), %rcx
cmpq %rcx, %rax
je 0x245fe
movq 0x40(%rax), %rax
jmp 0x24600
xorl %eax, %eax
movq %rax, 0x28(%rbx)
leaq 0x8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x91d4(%rip), %rsi      # 0x2d7e7
leaq 0x91d6(%rip), %rdx      # 0x2d7f0
callq 0xe5ba
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
callq 0x10180
movq %rax, %r15
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x2463e
callq 0x6260
cmpq %rbp, %r15
je 0x24690
movq 0x98(%rbx), %rdi
testq %rdi, %rdi
je 0x24655
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x8(%rbx), %rsi
leaq 0x20(%r15), %rdx
addq $0x40, %r15
movq %r14, %rdi
movq %r15, %rcx
callq 0x8c62
leaq 0x38(%r14), %rdi
movq %r15, %rsi
callq 0x190ac
addq $0x40, %r14
cmpq %r14, %rax
je 0x24687
movq 0x40(%rax), %rax
jmp 0x24689
xorl %eax, %eax
movq %rax, 0x98(%rbx)
movq 0x28(%rbx), %rax
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
testq %rax, %rax
je 0x246a4
movss 0x14(%rax), %xmm1
movss %xmm1, 0x14(%rbx)
movq 0x98(%rbx), %rax
testq %rax, %rax
je 0x246ba
movss 0x14(%rax), %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x14(%rbx)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x246ea
jmp 0x246fe
jmp 0x246ea
jmp 0x246fe
jmp 0x246ea
jmp 0x246fe
jmp 0x246ea
jmp 0x246fe
jmp 0x246ea
jmp 0x246fe
jmp 0x246ea
jmp 0x246fe
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x24701
callq 0x6260
jmp 0x24701
movq %rax, %rbx
movq %rbx, %rdi
callq 0x6410
nop