// File: bonetblai[P]mdp-engine/ctp3/./ctp3.h
// Function: state_t::initialize(CTP::graph_t const&, bool, int)
static void initialize(const CTP::graph_t &graph, bool use_cache, int cache_capacity) {
        graph_ = &graph;
        num_nodes_ = graph.num_nodes_;
        num_edges_ = graph.num_edges_;

        if( num_nodes_ > (int)(WORDS_FOR_NODES * sizeof(unsigned) * 8) ) {
            std::cout << "error: number of nodes must be <= "
                      <<  WORDS_FOR_NODES * sizeof(unsigned) * 8
                      << std::endl;
            exit(1);
        }

        if( num_edges_ > (int)(WORDS_FOR_EDGES * sizeof(unsigned) * 8) ) {
            std::cout << "error: number of nodes must be <= "
                      <<  WORDS_FOR_EDGES * sizeof(unsigned) * 8
                      << std::endl;
            exit(1);
        }

        words_for_nodes_ = num_nodes_ >> 5;
        if( (num_nodes_ & 0x1F) != 0 ) ++words_for_nodes_;
        words_for_edges_ = num_edges_ >> 5;
        if( (num_edges_ & 0x1F) != 0 ) ++words_for_edges_;
        std::cout << "init: #nodes=" << num_nodes_
                  << ", #edges=" << num_edges_
                  << ", #words-for-nodes=" << words_for_nodes_
                  << ", #words-for-edges=" << words_for_edges_
                  << std::endl;
        state_info_t::initialize(words_for_edges_);
        use_cache_ = use_cache;
        cache_.initialize(num_nodes_, cache_capacity);
    }

// Assembly:
subq $0x18, %rsp
movb %sil, %al
movq %rdi, 0x10(%rsp)
andb $0x1, %al
movb %al, 0xf(%rsp)
movl %edx, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x7a35e(%rip)     # 0x83310
movq 0x10(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x7a359(%rip)     # 0x83318
movq 0x10(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, 0x7a34f(%rip)     # 0x8331c
cmpl $0x80, 0x7a341(%rip)    # 0x83318
jle 0x9012
movq 0x79ff0(%rip), %rdi     # 0x82fd0
leaq 0x54422(%rip), %rsi     # 0x5d409
callq 0x6330
movq %rax, %rdi
movl $0x80, %esi
callq 0x60c0
movq %rax, %rdi
movq 0x79fb5(%rip), %rsi     # 0x82fb8
callq 0x6370
movl $0x1, %edi
callq 0x63e0
cmpl $0x120, 0x7a300(%rip)   # imm = 0x120
jle 0x9057
movq 0x79fab(%rip), %rdi     # 0x82fd0
leaq 0x543dd(%rip), %rsi     # 0x5d409
callq 0x6330
movq %rax, %rdi
movl $0x120, %esi            # imm = 0x120
callq 0x60c0
movq %rax, %rdi
movq 0x79f70(%rip), %rsi     # 0x82fb8
callq 0x6370
movl $0x1, %edi
callq 0x63e0
movl 0x7a2bb(%rip), %eax     # 0x83318
sarl $0x5, %eax
movl %eax, 0x7a2ba(%rip)     # 0x83320
movl 0x7a2ac(%rip), %eax     # 0x83318
andl $0x1f, %eax
cmpl $0x0, %eax
je 0x9083
movl 0x7a2a6(%rip), %eax     # 0x83320
addl $0x1, %eax
movl %eax, 0x7a29d(%rip)     # 0x83320
movl 0x7a293(%rip), %eax     # 0x8331c
sarl $0x5, %eax
movl %eax, 0x7a292(%rip)     # 0x83324
movl 0x7a284(%rip), %eax     # 0x8331c
andl $0x1f, %eax
cmpl $0x0, %eax
je 0x90af
movl 0x7a27e(%rip), %eax     # 0x83324
addl $0x1, %eax
movl %eax, 0x7a275(%rip)     # 0x83324
movq 0x79f1a(%rip), %rdi     # 0x82fd0
leaq 0x5436f(%rip), %rsi     # 0x5d42c
callq 0x6330
movq %rax, %rdi
movl 0x7a24d(%rip), %esi     # 0x83318
callq 0x6510
movq %rax, %rdi
leaq 0x5428d(%rip), %rsi     # 0x5d367
callq 0x6330
movq %rax, %rdi
movl 0x7a234(%rip), %esi     # 0x8331c
callq 0x6510
movq %rax, %rdi
leaq 0x54343(%rip), %rsi     # 0x5d43a
callq 0x6330
movq %rax, %rdi
movl 0x7a21b(%rip), %esi     # 0x83320
callq 0x6510
movq %rax, %rdi
leaq 0x5433a(%rip), %rsi     # 0x5d44e
callq 0x6330
movq %rax, %rdi
movl 0x7a202(%rip), %esi     # 0x83324
callq 0x6510
movq %rax, %rdi
movq 0x79e87(%rip), %rsi     # 0x82fb8
callq 0x6370
movl 0x7a1e8(%rip), %edi     # 0x83324
callq 0x11100
movb 0xf(%rsp), %al
andb $0x1, %al
movb %al, 0x7a203(%rip)      # 0x83350
movl 0x7a1c5(%rip), %esi     # 0x83318
movl 0x8(%rsp), %edx
leaq 0x7a1ca(%rip), %rdi     # 0x83328
callq 0x11110
addq $0x18, %rsp
retq
nopl (%rax,%rax)