// File: /workspace/github_cpp_makefile_star2_O1/CMU-SAFARI[P]ramulator/src/SALP.cpp
// Function: ramulator::SALP::init_lambda()
void SALP::init_lambda()
{
    switch(int(type)){
        case int(Type::SALP_1):
            lambda[int(Level::Bank)][int(Command::ACT)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Opened;
            };
            lambda[int(Level::SubArray)][int(Command::ACT)] = [] (DRAM<SALP>* node, int id) {
              node->state = State::Opened;
              node->row_state[id] = State::Opened;
            };
            lambda[int(Level::Bank)][int(Command::PRE)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Closed;
                // For SALP_1, we stick to original design that allows
                // only one row in a bank open, so here close subarray id
                // is equivalent to close the whole bank
                node->children[id]->state = State::Closed;
                node->children[id]->row_state.clear();
                };
            lambda[int(Level::Bank)][int(Command::PRE_OTHER)] = lambda[int(Level::Bank)][int(Command::PRE)];
            lambda[int(Level::Rank)][int(Command::PRER)] = [] (DRAM<SALP>* node, int id) {
                for (auto bank : node->children) {
                    bank->state = State::Closed;
                    for (auto sa : bank->children){
                        sa->state = State::Closed;
                        sa->row_state.clear();}}};
            lambda[int(Level::Bank)][int(Command::RDA)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Closed;
                node->children[id]->state = State::Closed;
                node->children[id]->row_state.clear();};
            lambda[int(Level::Bank)][int(Command::WRA)] = lambda[int(Level::Bank)][int(Command::RDA)];
            lambda[int(Level::Rank)][int(Command::PDE)] = [] (DRAM<SALP>* node, int id) {
                for (auto bank : node->children) {
                    if (bank->state == State::Closed)
                        continue;
                    node->state = State::ActPowerDown;
                    return;
                }
                node->state = State::PrePowerDown;};
            break;
        case int(Type::SALP_2):
            lambda[int(Level::SubArray)][int(Command::ACT)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Opened;
                node->row_state[id] = State::Opened;};
            lambda[int(Level::SubArray)][int(Command::PRE)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Closed;
                node->row_state.clear();};
            lambda[int(Level::SubArray)][int(Command::PRE_OTHER)] = lambda[int(Level::SubArray)][int(Command::PRE)];
            lambda[int(Level::Rank)][int(Command::PRER)] = [] (DRAM<SALP>* node, int id) {
                for (auto bank : node->children)
                    for (auto sa : bank->children) {
                        sa->state = State::Closed;
                        sa->row_state.clear();}};
            lambda[int(Level::SubArray)][int(Command::RDA)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Closed;
                node->row_state.clear();};
            lambda[int(Level::SubArray)][int(Command::WRA)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Closed;
                node->row_state.clear();};
            lambda[int(Level::Rank)][int(Command::PDE)] = [] (DRAM<SALP>* node, int id) {
                for (auto bank : node->children)
                    for (auto sa : bank->children) {
                        if (sa->state == State::Closed)
                            continue;
                        node->state = State::ActPowerDown;
                        return;
                    }
                node->state = State::PrePowerDown;};
            break;
        case int(Type::MASA):
            lambda[int(Level::SubArray)][int(Command::ACT)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Selected;
                node->row_state[id] = State::Opened;
                for (auto sa : node->parent->children)
                    if (sa != node && sa->state == State::Selected) {
                        sa->state = State::Opened;
                        break;}};
            lambda[int(Level::SubArray)][int(Command::SASEL)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Selected;
                for (auto sa : node->parent->children)
                    if (sa != node && sa->state == State::Selected) {
                        sa->state = State::Opened;
                        break;}};
            lambda[int(Level::SubArray)][int(Command::PRE)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Closed;
                node->row_state.clear();};

            lambda[int(Level::Rank)][int(Command::PRER)] = [] (DRAM<SALP>* node, int id) {
                for (auto bank : node->children)
                    for (auto sa : bank->children) {
                        sa->state = State::Closed;
                        sa->row_state.clear();}};
            lambda[int(Level::SubArray)][int(Command::RDA)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Closed;
                node->row_state.clear();};
            lambda[int(Level::SubArray)][int(Command::WRA)] = [] (DRAM<SALP>* node, int id) {
                node->state = State::Closed;
                node->row_state.clear();};
            lambda[int(Level::Rank)][int(Command::PDE)] = [] (DRAM<SALP>* node, int id) {
                for (auto bank : node->children)
                    for (auto sa : bank->children) {
                        if (sa->state == State::Closed)
                            continue;
                        node->state = State::ActPowerDown;
                        return;
                    }
                node->state = State::PrePowerDown;};
            break;
        default: assert(false);
    }
    lambda[int(Level::Rank)][int(Command::PDX)] = [] (DRAM<SALP>* node, int id) {
        node->state = State::PowerUp;};
    lambda[int(Level::Rank)][int(Command::SRE)] = [] (DRAM<SALP>* node, int id) {
        node->state = State::SelfRefresh;};
    lambda[int(Level::Rank)][int(Command::SRX)] = [] (DRAM<SALP>* node, int id) {
        node->state = State::PowerUp;};
}

// Assembly:
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
movl 0x20(%rdi), %eax
cmpl $0x2, %eax
je 0x135954
cmpl $0x1, %eax
je 0x1356c2
testl %eax, %eax
jne 0x135d74
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x355d(%rip), %rcx      # 0x138988
movq %rcx, 0x18(%rsp)
leaq 0x355f(%rip), %rdx      # 0x138996
movq %rdx, 0x10(%rsp)
movups 0x2d30(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2d30(%rbx)
movq 0x2d40(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2d40(%rbx)
movq 0x2d48(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2d48(%rbx)
testq %rax, %rax
je 0x135486
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x351a(%rip), %rcx      # 0x1389ae
movq %rcx, 0x18(%rsp)
leaq 0x353c(%rip), %rdx      # 0x1389dc
movq %rdx, 0x10(%rsp)
movups 0x2ef0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2ef0(%rbx)
movq 0x2f00(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2f00(%rbx)
movq 0x2f08(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2f08(%rbx)
testq %rax, %rax
je 0x1354ef
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x34f7(%rip), %rcx      # 0x1389f4
movq %rcx, 0x18(%rsp)
leaq 0x3519(%rip), %rdx      # 0x138a22
movq %rdx, 0x10(%rsp)
movups 0x2d70(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2d70(%rbx)
movq 0x2d80(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2d80(%rbx)
movq 0x2d88(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2d88(%rbx)
testq %rax, %rax
je 0x135558
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x2d70(%rbx), %rsi
leaq 0x2ed0(%rbx), %rdi
callq 0x139456
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x34c1(%rip), %rcx      # 0x138a3a
movq %rcx, 0x18(%rsp)
leaq 0x3525(%rip), %rdx      # 0x138aaa
movq %rdx, 0x10(%rsp)
movups 0x2bd0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2bd0(%rbx)
movq 0x2be0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2be0(%rbx)
movq 0x2be8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2be8(%rbx)
testq %rax, %rax
je 0x1355d4
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x34e0(%rip), %rcx      # 0x138ac2
movq %rcx, 0x18(%rsp)
leaq 0x3502(%rip), %rdx      # 0x138af0
movq %rdx, 0x10(%rsp)
movups 0x2df0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2df0(%rbx)
movq 0x2e00(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2e00(%rbx)
movq 0x2e08(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2e08(%rbx)
testq %rax, %rax
je 0x13563d
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x2df0(%rbx), %rsi
leaq 0x2e10(%rbx), %rdi
callq 0x139456
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x34aa(%rip), %rcx      # 0x138b08
movq %rcx, 0x18(%rsp)
leaq 0x34ea(%rip), %rdx      # 0x138b54
movq %rdx, 0x10(%rsp)
movups 0x2c90(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2c90(%rbx)
movq 0x2ca0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2ca0(%rbx)
movq 0x2ca8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2ca8(%rbx)
testq %rax, %rax
je 0x135c33
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x135c33
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x349c(%rip), %rcx      # 0x138b6c
movq %rcx, 0x18(%rsp)
leaq 0x34be(%rip), %rdx      # 0x138b9a
movq %rdx, 0x10(%rsp)
movups 0x2ef0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2ef0(%rbx)
movq 0x2f00(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2f00(%rbx)
movq 0x2f08(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2f08(%rbx)
testq %rax, %rax
je 0x13572b
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x3479(%rip), %rcx      # 0x138bb2
movq %rcx, 0x18(%rsp)
leaq 0x3487(%rip), %rdx      # 0x138bcc
movq %rdx, 0x10(%rsp)
movups 0x2f30(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2f30(%rbx)
movq 0x2f40(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2f40(%rbx)
movq 0x2f48(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2f48(%rbx)
testq %rax, %rax
je 0x135794
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x2f30(%rbx), %rsi
leaq 0x3090(%rbx), %rdi
callq 0x139456
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x342f(%rip), %rcx      # 0x138be4
movq %rcx, 0x18(%rsp)
leaq 0x3489(%rip), %rdx      # 0x138c4a
movq %rdx, 0x10(%rsp)
movups 0x2bd0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2bd0(%rbx)
movq 0x2be0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2be0(%rbx)
movq 0x2be8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2be8(%rbx)
testq %rax, %rax
je 0x135810
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x3444(%rip), %rcx      # 0x138c62
movq %rcx, 0x18(%rsp)
leaq 0x3452(%rip), %rdx      # 0x138c7c
movq %rdx, 0x10(%rsp)
movups 0x2fb0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2fb0(%rbx)
movq 0x2fc0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2fc0(%rbx)
movq 0x2fc8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2fc8(%rbx)
testq %rax, %rax
je 0x135879
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x340d(%rip), %rcx      # 0x138c94
movq %rcx, 0x18(%rsp)
leaq 0x341b(%rip), %rdx      # 0x138cae
movq %rdx, 0x10(%rsp)
movups 0x2fd0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2fd0(%rbx)
movq 0x2fe0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2fe0(%rbx)
movq 0x2fe8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2fe8(%rbx)
testq %rax, %rax
je 0x1358e2
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x33d6(%rip), %rcx      # 0x138cc6
movq %rcx, 0x18(%rsp)
leaq 0x344c(%rip), %rdx      # 0x138d48
movq %rdx, 0x10(%rsp)
movups 0x2c90(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2c90(%rbx)
movq 0x2ca0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2ca0(%rbx)
movq 0x2ca8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2ca8(%rbx)
testq %rax, %rax
je 0x135c33
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x135c33
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x33fe(%rip), %rcx      # 0x138d60
movq %rcx, 0x18(%rsp)
leaq 0x3460(%rip), %rdx      # 0x138dce
movq %rdx, 0x10(%rsp)
movups 0x2ef0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2ef0(%rbx)
movq 0x2f00(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2f00(%rbx)
movq 0x2f08(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2f08(%rbx)
testq %rax, %rax
je 0x1359bd
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x341b(%rip), %rcx      # 0x138de6
movq %rcx, 0x18(%rsp)
leaq 0x3459(%rip), %rdx      # 0x138e30
movq %rdx, 0x10(%rsp)
movups 0x2f10(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2f10(%rbx)
movq 0x2f20(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2f20(%rbx)
movq 0x2f28(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2f28(%rbx)
testq %rax, %rax
je 0x135a26
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x3414(%rip), %rcx      # 0x138e48
movq %rcx, 0x18(%rsp)
leaq 0x3422(%rip), %rdx      # 0x138e62
movq %rdx, 0x10(%rsp)
movups 0x2f30(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2f30(%rbx)
movq 0x2f40(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2f40(%rbx)
movq 0x2f48(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2f48(%rbx)
testq %rax, %rax
je 0x135a8f
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x33dd(%rip), %rcx      # 0x138e7a
movq %rcx, 0x18(%rsp)
leaq 0x3437(%rip), %rdx      # 0x138ee0
movq %rdx, 0x10(%rsp)
movups 0x2bd0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2bd0(%rbx)
movq 0x2be0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2be0(%rbx)
movq 0x2be8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2be8(%rbx)
testq %rax, %rax
je 0x135af8
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x33f2(%rip), %rcx      # 0x138ef8
movq %rcx, 0x18(%rsp)
leaq 0x3400(%rip), %rdx      # 0x138f12
movq %rdx, 0x10(%rsp)
movups 0x2fb0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2fb0(%rbx)
movq 0x2fc0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2fc0(%rbx)
movq 0x2fc8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2fc8(%rbx)
testq %rax, %rax
je 0x135b61
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x33bb(%rip), %rcx      # 0x138f2a
movq %rcx, 0x18(%rsp)
leaq 0x33c9(%rip), %rdx      # 0x138f44
movq %rdx, 0x10(%rsp)
movups 0x2fd0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2fd0(%rbx)
movq 0x2fe0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2fe0(%rbx)
movq 0x2fe8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2fe8(%rbx)
testq %rax, %rax
je 0x135bca
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0x3384(%rip), %rcx      # 0x138f5c
movq %rcx, 0x18(%rsp)
leaq 0x33fa(%rip), %rdx      # 0x138fde
movq %rdx, 0x10(%rsp)
movups 0x2c90(%rbx), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, 0x2c90(%rbx)
movq 0x2ca0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2ca0(%rbx)
movq 0x2ca8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2ca8(%rbx)
testq %rax, %rax
je 0x135c33
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x33b5(%rip), %rcx      # 0x138ff6
movq %rcx, 0x18(%rsp)
leaq 0x33b7(%rip), %rdx      # 0x139004
movq %rdx, 0x10(%rsp)
movups 0x2cb0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2cb0(%rbx)
movq 0x2cc0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2cc0(%rbx)
movq 0x2cc8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2cc8(%rbx)
testq %rax, %rax
je 0x135c9c
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
leaq 0x3372(%rip), %rcx      # 0x13901c
movq %rcx, 0x18(%rsp)
leaq 0x3374(%rip), %rdx      # 0x13902a
movq %rdx, 0x10(%rsp)
movups 0x2cd0(%rbx), %xmm0
movaps %xmm0, (%rsp)
movups %xmm1, 0x2cd0(%rbx)
movq 0x2ce0(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2ce0(%rbx)
movq 0x2ce8(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2ce8(%rbx)
testq %rax, %rax
je 0x135d05
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0x332f(%rip), %rcx      # 0x139042
movq %rcx, 0x18(%rsp)
leaq 0x3331(%rip), %rdx      # 0x139050
movq %rdx, 0x10(%rsp)
movups 0x2cf0(%rbx), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, 0x2cf0(%rbx)
movq 0x2d00(%rbx), %rax
movq %rax, 0x10(%rsp)
movq %rdx, 0x2d00(%rbx)
movq 0x2d08(%rbx), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, 0x2d08(%rbx)
testq %rax, %rax
je 0x135d6e
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
addq $0x20, %rsp
popq %rbx
retq
leaq 0x175de(%rip), %rdi     # 0x14d359
leaq 0x28791(%rip), %rsi     # 0x15e513
leaq 0x28854(%rip), %rcx     # 0x15e5dd
movl $0x1a8, %edx            # imm = 0x1A8
callq 0xb200
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
jmp 0x135dbd
movq %rax, %rdi
callq 0x1718f
nop