// File: /workspace/github_cpp_makefile_star2_O1/CMU-SAFARI[P]ramulator/src/WideIO.cpp
// Function: ramulator::WideIO::init_timing()
void WideIO::init_timing()
{
    SpeedEntry& s = speed_entry;
    vector<TimingEntry> *t;

    /*** Channel ***/ 
    t = timing[int(Level::Channel)];

    // CAS <-> CAS
    t[int(Command::RD)].push_back({Command::RD, 1, s.nBL});
    t[int(Command::RD)].push_back({Command::RDA, 1, s.nBL});
    t[int(Command::RDA)].push_back({Command::RD, 1, s.nBL});
    t[int(Command::RDA)].push_back({Command::RDA, 1, s.nBL});
    t[int(Command::WR)].push_back({Command::WR, 1, s.nBL});
    t[int(Command::WR)].push_back({Command::WRA, 1, s.nBL});
    t[int(Command::WRA)].push_back({Command::WR, 1, s.nBL});
    t[int(Command::WRA)].push_back({Command::WRA, 1, s.nBL});


    /*** Rank ***/ 
    t = timing[int(Level::Rank)];

    // CAS <-> CAS
    t[int(Command::RD)].push_back({Command::RD, 1, s.nCCD});
    t[int(Command::RD)].push_back({Command::RDA, 1, s.nCCD});
    t[int(Command::RDA)].push_back({Command::RD, 1, s.nCCD});
    t[int(Command::RDA)].push_back({Command::RDA, 1, s.nCCD});
    t[int(Command::WR)].push_back({Command::WR, 1, s.nCCD});
    t[int(Command::WR)].push_back({Command::WRA, 1, s.nCCD});
    t[int(Command::WRA)].push_back({Command::WR, 1, s.nCCD});
    t[int(Command::WRA)].push_back({Command::WRA, 1, s.nCCD});
    t[int(Command::RD)].push_back({Command::WR, 1, s.nRTW});
    t[int(Command::RD)].push_back({Command::WRA, 1, s.nRTW});
    t[int(Command::RDA)].push_back({Command::WR, 1, s.nRTW});
    t[int(Command::RDA)].push_back({Command::WRA, 1, s.nRTW});
    t[int(Command::WR)].push_back({Command::RD, 1, s.nCWL + s.nBL + s.nWTR});
    t[int(Command::WR)].push_back({Command::RDA, 1, s.nCWL + s.nBL + s.nWTR});
    t[int(Command::WRA)].push_back({Command::RD, 1, s.nCWL + s.nBL + s.nWTR});
    t[int(Command::WRA)].push_back({Command::RDA, 1, s.nCWL + s.nBL + s.nWTR});

    // CAS <-> PRA
    t[int(Command::RD)].push_back({Command::PRA, 1, s.nRTP});
    t[int(Command::WR)].push_back({Command::PRA, 1, s.nCWL + s.nBL + s.nWR});

    // CAS <-> PD
    t[int(Command::RD)].push_back({Command::PD, 1, s.nCL + s.nBL + 1});
    t[int(Command::RDA)].push_back({Command::PD, 1, s.nCL + s.nBL + 1});
    t[int(Command::WR)].push_back({Command::PD, 1, s.nCWL + s.nBL + s.nWR});
    t[int(Command::WRA)].push_back({Command::PD, 1, s.nCWL + s.nBL + s.nWR + 1}); // +1 for pre
    t[int(Command::PDX)].push_back({Command::RD, 1, s.nXP});
    t[int(Command::PDX)].push_back({Command::RDA, 1, s.nXP});
    t[int(Command::PDX)].push_back({Command::WR, 1, s.nXP});
    t[int(Command::PDX)].push_back({Command::WRA, 1, s.nXP});
    
    // CAS <-> SR: none (all banks have to be precharged)

    // RAS <-> RAS
    t[int(Command::ACT)].push_back({Command::ACT, 1, s.nRRD});
    t[int(Command::ACT)].push_back({Command::ACT, 2, s.nTAW});
    t[int(Command::ACT)].push_back({Command::PRA, 1, s.nRAS});
    t[int(Command::PRA)].push_back({Command::ACT, 1, s.nRP});

    // RAS <-> REF
    t[int(Command::PRE)].push_back({Command::REF, 1, s.nRP});
    t[int(Command::PRA)].push_back({Command::REF, 1, s.nRP});
    t[int(Command::REF)].push_back({Command::ACT, 1, s.nRFC});

    // RAS <-> PD
    t[int(Command::ACT)].push_back({Command::PD, 1, 1});
    t[int(Command::PDX)].push_back({Command::ACT, 1, s.nXP});
    t[int(Command::PDX)].push_back({Command::PRE, 1, s.nXP});
    t[int(Command::PDX)].push_back({Command::PRA, 1, s.nXP});

    // RAS <-> SR
    t[int(Command::PRE)].push_back({Command::SREF, 1, s.nRP});
    t[int(Command::PRA)].push_back({Command::SREF, 1, s.nRP});
    t[int(Command::SREFX)].push_back({Command::ACT, 1, s.nXSR});

    // REF <-> REF
    t[int(Command::REF)].push_back({Command::REF, 1, s.nRFC});

    // REF <-> PD
    t[int(Command::REF)].push_back({Command::PD, 1, 1});
    t[int(Command::PDX)].push_back({Command::REF, 1, s.nXP});

    // REF <-> SR
    t[int(Command::SREFX)].push_back({Command::REF, 1, s.nXSR});
    
    // PD <-> PD
    t[int(Command::PD)].push_back({Command::PDX, 1, s.nCKE});
    t[int(Command::PDX)].push_back({Command::PD, 1, s.nXP});

    // PD <-> SR
    t[int(Command::PDX)].push_back({Command::SREF, 1, s.nXP});
    t[int(Command::SREFX)].push_back({Command::PD, 1, s.nXSR});
    
    // SR <-> SR
    t[int(Command::SREF)].push_back({Command::SREFX, 1, s.nCKESR});
    t[int(Command::SREFX)].push_back({Command::SREF, 1, s.nXSR});


    /*** Bank ***/ 
    t = timing[int(Level::Bank)];

    // CAS <-> RAS
    t[int(Command::ACT)].push_back({Command::RD, 1, s.nRCD});
    t[int(Command::ACT)].push_back({Command::RDA, 1, s.nRCD});
    t[int(Command::ACT)].push_back({Command::WR, 1, s.nRCD});
    t[int(Command::ACT)].push_back({Command::WRA, 1, s.nRCD});

    t[int(Command::RD)].push_back({Command::PRE, 1, s.nRTP});
    t[int(Command::WR)].push_back({Command::PRE, 1, s.nCWL + s.nBL + s.nWR});

    t[int(Command::RDA)].push_back({Command::ACT, 1, s.nRTP + s.nRP});
    t[int(Command::WRA)].push_back({Command::ACT, 1, s.nCWL + s.nBL + s.nWR + s.nRP});

    // RAS <-> RAS
    t[int(Command::ACT)].push_back({Command::ACT, 1, s.nRC});
    t[int(Command::ACT)].push_back({Command::PRE, 1, s.nRAS});
    t[int(Command::PRE)].push_back({Command::ACT, 1, s.nRP});
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x18a8(%rdi), %r14
movabsq $0x100000003, %rbp      # imm = 0x100000003
movq %rbp, 0x8(%rsp)
movl 0x2710(%rdi), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x18b0(%rdi), %rsi
cmpq 0x18b8(%rdi), %rsi
je 0x145f66
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x18b0(%rbx)
jmp 0x145f73
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000005, %rax      # imm = 0x100000005
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x18b0(%rbx), %rsi
cmpq 0x18b8(%rbx), %rsi
je 0x145fb3
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x18b0(%rbx)
jmp 0x145fc0
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
leaq 0x18d8(%rbx), %r14
movq %rbp, 0x8(%rsp)
movl 0x2710(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x18e0(%rbx), %rsi
cmpq 0x18e8(%rbx), %rsi
je 0x145ffd
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x18e0(%rbx)
jmp 0x14600a
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000005, %rax      # imm = 0x100000005
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x18e0(%rbx), %rsi
cmpq 0x18e8(%rbx), %rsi
je 0x14604a
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x18e0(%rbx)
jmp 0x146057
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
leaq 0x18c0(%rbx), %r14
movabsq $0x100000004, %rax      # imm = 0x100000004
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x18c8(%rbx), %rsi
cmpq 0x18d0(%rbx), %rsi
je 0x14609e
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x18c8(%rbx)
jmp 0x1460ab
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000006, %rax      # imm = 0x100000006
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x18c8(%rbx), %rsi
cmpq 0x18d0(%rbx), %rsi
je 0x1460eb
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x18c8(%rbx)
jmp 0x1460f8
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
leaq 0x18f0(%rbx), %r14
movabsq $0x100000004, %rax      # imm = 0x100000004
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x18f8(%rbx), %rsi
cmpq 0x1900(%rbx), %rsi
je 0x14613f
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x18f8(%rbx)
jmp 0x14614c
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000006, %rax      # imm = 0x100000006
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x18f8(%rbx), %rsi
cmpq 0x1900(%rbx), %rsi
je 0x14618c
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x18f8(%rbx)
jmp 0x146199
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
leaq 0x19c8(%rbx), %r14
movq %rbp, 0x8(%rsp)
movl 0x2714(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19d0(%rbx), %rsi
cmpq 0x19d8(%rbx), %rsi
je 0x1461d6
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19d0(%rbx)
jmp 0x1461e3
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000005, %rax      # imm = 0x100000005
movq %rax, 0x8(%rsp)
movl 0x2714(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19d0(%rbx), %rsi
cmpq 0x19d8(%rbx), %rsi
je 0x146223
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19d0(%rbx)
jmp 0x146230
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
leaq 0x19f8(%rbx), %r15
movq %rbp, 0x8(%rsp)
movl 0x2714(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a00(%rbx), %rsi
cmpq 0x1a08(%rbx), %rsi
je 0x14626d
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a00(%rbx)
jmp 0x14627a
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
movabsq $0x100000005, %rax      # imm = 0x100000005
movq %rax, 0x8(%rsp)
movl 0x2714(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a00(%rbx), %rsi
cmpq 0x1a08(%rbx), %rsi
je 0x1462ba
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a00(%rbx)
jmp 0x1462c7
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
leaq 0x19e0(%rbx), %r12
movabsq $0x100000004, %rax      # imm = 0x100000004
movq %rax, 0x8(%rsp)
movl 0x2714(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19e8(%rbx), %rsi
cmpq 0x19f0(%rbx), %rsi
je 0x14630e
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19e8(%rbx)
jmp 0x14631b
leaq 0x8(%rsp), %rdx
movq %r12, %rdi
callq 0x148a4e
movabsq $0x100000006, %rax      # imm = 0x100000006
movq %rax, 0x8(%rsp)
movl 0x2714(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19e8(%rbx), %rsi
cmpq 0x19f0(%rbx), %rsi
je 0x14635b
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19e8(%rbx)
jmp 0x146368
leaq 0x8(%rsp), %rdx
movq %r12, %rdi
callq 0x148a4e
leaq 0x1a10(%rbx), %r13
movabsq $0x100000004, %rax      # imm = 0x100000004
movq %rax, 0x8(%rsp)
movl 0x2714(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a18(%rbx), %rsi
cmpq 0x1a20(%rbx), %rsi
je 0x1463af
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a18(%rbx)
jmp 0x1463bc
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
movabsq $0x100000006, %rax      # imm = 0x100000006
movq %rax, 0x8(%rsp)
movl 0x2714(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a18(%rbx), %rsi
cmpq 0x1a20(%rbx), %rsi
je 0x1463fc
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a18(%rbx)
jmp 0x146409
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
movabsq $0x100000004, %rax      # imm = 0x100000004
movq %rax, 0x8(%rsp)
movl 0x2738(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19d0(%rbx), %rsi
cmpq 0x19d8(%rbx), %rsi
je 0x146449
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19d0(%rbx)
jmp 0x146456
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000006, %rax      # imm = 0x100000006
movq %rax, 0x8(%rsp)
movl 0x2738(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19d0(%rbx), %rsi
cmpq 0x19d8(%rbx), %rsi
je 0x146496
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19d0(%rbx)
jmp 0x1464a3
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000004, %rax      # imm = 0x100000004
movq %rax, 0x8(%rsp)
movl 0x2738(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a00(%rbx), %rsi
cmpq 0x1a08(%rbx), %rsi
je 0x1464e3
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a00(%rbx)
jmp 0x1464f0
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
movabsq $0x100000006, %rax      # imm = 0x100000006
movq %rax, 0x8(%rsp)
movl 0x2738(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a00(%rbx), %rsi
cmpq 0x1a08(%rbx), %rsi
je 0x146530
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a00(%rbx)
jmp 0x14653d
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
movq %rbp, 0x8(%rsp)
movl 0x2710(%rbx), %eax
addl 0x2728(%rbx), %eax
addl 0x273c(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19e8(%rbx), %rsi
cmpq 0x19f0(%rbx), %rsi
je 0x14657f
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19e8(%rbx)
jmp 0x14658c
leaq 0x8(%rsp), %rdx
movq %r12, %rdi
callq 0x148a4e
movabsq $0x100000005, %rax      # imm = 0x100000005
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
addl 0x2728(%rbx), %eax
addl 0x273c(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19e8(%rbx), %rsi
cmpq 0x19f0(%rbx), %rsi
je 0x1465d8
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19e8(%rbx)
jmp 0x1465e5
leaq 0x8(%rsp), %rdx
movq %r12, %rdi
callq 0x148a4e
movq %rbp, 0x8(%rsp)
movl 0x2710(%rbx), %eax
addl 0x2728(%rbx), %eax
addl 0x273c(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a18(%rbx), %rsi
cmpq 0x1a20(%rbx), %rsi
je 0x146627
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a18(%rbx)
jmp 0x146634
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
movabsq $0x100000005, %rax      # imm = 0x100000005
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
addl 0x2728(%rbx), %eax
addl 0x273c(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a18(%rbx), %rsi
cmpq 0x1a20(%rbx), %rsi
je 0x146680
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a18(%rbx)
jmp 0x14668d
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
movabsq $0x100000002, %rax      # imm = 0x100000002
movq %rax, 0x8(%rsp)
movl 0x2734(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19d0(%rbx), %rsi
cmpq 0x19d8(%rbx), %rsi
je 0x1466cd
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19d0(%rbx)
jmp 0x1466da
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000002, %rax      # imm = 0x100000002
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
addl 0x2728(%rbx), %eax
addl 0x2740(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19e8(%rbx), %rsi
cmpq 0x19f0(%rbx), %rsi
je 0x146726
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19e8(%rbx)
jmp 0x146733
leaq 0x8(%rsp), %rdx
movq %r12, %rdi
callq 0x148a4e
movabsq $0x100000008, %rax      # imm = 0x100000008
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
movl 0x271c(%rbx), %ecx
addl %ecx, %eax
incl %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19d0(%rbx), %rsi
cmpq 0x19d8(%rbx), %rsi
je 0x14677d
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19d0(%rbx)
jmp 0x14678a
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000008, %rax      # imm = 0x100000008
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
movl 0x271c(%rbx), %ecx
addl %ecx, %eax
incl %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a00(%rbx), %rsi
cmpq 0x1a08(%rbx), %rsi
je 0x1467d4
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a00(%rbx)
jmp 0x1467e1
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
movabsq $0x100000008, %rax      # imm = 0x100000008
movq %rax, 0x8(%rsp)
movl 0x2710(%rbx), %eax
addl 0x2728(%rbx), %eax
addl 0x2740(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19e8(%rbx), %rsi
cmpq 0x19f0(%rbx), %rsi
je 0x14682d
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19e8(%rbx)
jmp 0x14683a
leaq 0x8(%rsp), %rdx
movq %r12, %rdi
callq 0x148a4e
movabsq $0x100000008, %rax      # imm = 0x100000008
movq %rax, 0x8(%rsp)
movl 0x2728(%rbx), %eax
movl 0x2740(%rbx), %ecx
addl 0x2710(%rbx), %eax
addl %ecx, %eax
incl %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a18(%rbx), %rsi
cmpq 0x1a20(%rbx), %rsi
je 0x14688a
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a18(%rbx)
jmp 0x146897
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
leaq 0x1a58(%rbx), %r14
movq %rbp, 0x8(%rsp)
movl 0x2758(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a60(%rbx), %rsi
cmpq 0x1a68(%rbx), %rsi
je 0x1468d4
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a60(%rbx)
jmp 0x1468e1
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000005, %rax      # imm = 0x100000005
movq %rax, 0x8(%rsp)
movl 0x2758(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a60(%rbx), %rsi
cmpq 0x1a68(%rbx), %rsi
je 0x146921
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a60(%rbx)
jmp 0x14692e
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000004, %rax      # imm = 0x100000004
movq %rax, 0x8(%rsp)
movl 0x2758(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a60(%rbx), %rsi
cmpq 0x1a68(%rbx), %rsi
je 0x14696e
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a60(%rbx)
jmp 0x14697b
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000006, %rax      # imm = 0x100000006
movq %rax, 0x8(%rsp)
movl 0x2758(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a60(%rbx), %rsi
cmpq 0x1a68(%rbx), %rsi
movq %r14, 0x18(%rsp)
je 0x1469c0
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a60(%rbx)
jmp 0x1469cd
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
leaq 0x1980(%rbx), %r13
movabsq $0x100000000, %r12      # imm = 0x100000000
movq %r12, 0x8(%rsp)
movl 0x2744(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1988(%rbx), %rsi
cmpq 0x1990(%rbx), %rsi
je 0x146a14
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1988(%rbx)
jmp 0x146a21
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
movabsq $0x200000000, %rax      # imm = 0x200000000
movq %rax, 0x8(%rsp)
movl 0x2748(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1988(%rbx), %rsi
cmpq 0x1990(%rbx), %rsi
je 0x146a61
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1988(%rbx)
jmp 0x146a6e
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
movabsq $0x100000002, %rax      # imm = 0x100000002
movq %rax, 0x8(%rsp)
movl 0x272c(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1988(%rbx), %rsi
cmpq 0x1990(%rbx), %rsi
je 0x146aae
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1988(%rbx)
jmp 0x146abb
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
leaq 0x19b0(%rbx), %rdi
movq %r12, 0x8(%rsp)
movl 0x2724(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19b8(%rbx), %rsi
cmpq 0x19c0(%rbx), %rsi
movq %rdi, 0x20(%rsp)
je 0x146afd
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19b8(%rbx)
jmp 0x146b07
leaq 0x8(%rsp), %rdx
callq 0x148a4e
leaq 0x1998(%rbx), %r15
movabsq $0x100000007, %rbp      # imm = 0x100000007
movq %rbp, 0x8(%rsp)
movl 0x2724(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19a0(%rbx), %rsi
cmpq 0x19a8(%rbx), %rsi
je 0x146b4e
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19a0(%rbx)
jmp 0x146b5b
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
movq %rbp, 0x8(%rsp)
movl 0x2724(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19b8(%rbx), %rsi
cmpq 0x19c0(%rbx), %rsi
je 0x146b91
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19b8(%rbx)
jmp 0x146ba0
leaq 0x8(%rsp), %rdx
movq 0x20(%rsp), %rdi
callq 0x148a4e
leaq 0x1a28(%rbx), %rdi
movq %r12, 0x8(%rsp)
movl 0x274c(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a30(%rbx), %rsi
cmpq 0x1a38(%rbx), %rsi
movq %rdi, %r14
je 0x146be0
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a30(%rbx)
jmp 0x146bf0
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movq %r14, %rdi
movabsq $0x100000008, %rax      # imm = 0x100000008
movq %rax, 0x8(%rsp)
movl $0x1, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1988(%rbx), %rsi
cmpq 0x1990(%rbx), %rsi
je 0x146c2e
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1988(%rbx)
jmp 0x146c3e
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
movq %r14, %rdi
movq 0x18(%rsp), %r13
movq %r12, 0x8(%rsp)
movl 0x2758(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a60(%rbx), %rsi
cmpq 0x1a68(%rbx), %rsi
je 0x146c79
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a60(%rbx)
jmp 0x146c89
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
movq %r14, %rdi
movabsq $0x100000001, %rax      # imm = 0x100000001
movq %rax, 0x8(%rsp)
movl 0x2758(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a60(%rbx), %rsi
cmpq 0x1a68(%rbx), %rsi
je 0x146cc9
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a60(%rbx)
jmp 0x146cd9
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
movq %r14, %rdi
movabsq $0x100000002, %rax      # imm = 0x100000002
movq %rax, 0x8(%rsp)
movl 0x2758(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a60(%rbx), %rsi
cmpq 0x1a68(%rbx), %rsi
je 0x146d19
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a60(%rbx)
jmp 0x146d29
leaq 0x8(%rsp), %rdx
movq %r13, %rdi
callq 0x148a4e
movq %r14, %rdi
movabsq $0x10000000a, %r13      # imm = 0x10000000A
movq %r13, 0x8(%rsp)
movl 0x2724(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19a0(%rbx), %rsi
cmpq 0x19a8(%rbx), %rsi
je 0x146d69
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19a0(%rbx)
jmp 0x146d79
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
movq %r14, %rdi
movq %r13, 0x8(%rsp)
movl 0x2724(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x19b8(%rbx), %rsi
cmpq 0x19c0(%rbx), %rsi
je 0x146daf
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x19b8(%rbx)
jmp 0x146dc1
leaq 0x8(%rsp), %rdx
movq 0x20(%rsp), %rdi
callq 0x148a4e
movq %r14, %rdi
leaq 0x1a88(%rbx), %r15
movq %r12, 0x8(%rsp)
movl 0x2760(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a90(%rbx), %rsi
cmpq 0x1a98(%rbx), %rsi
je 0x146dfe
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a90(%rbx)
jmp 0x146e0e
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
movq %r14, %rdi
movq %rbp, 0x8(%rsp)
movl 0x274c(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a30(%rbx), %rsi
cmpq 0x1a38(%rbx), %rsi
je 0x146e44
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a30(%rbx)
jmp 0x146e4e
leaq 0x8(%rsp), %rdx
callq 0x148a4e
movabsq $0x100000008, %rax      # imm = 0x100000008
movq %rax, 0x8(%rsp)
movl $0x1, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a30(%rbx), %rsi
cmpq 0x1a38(%rbx), %rsi
je 0x146e8c
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a30(%rbx)
jmp 0x146e99
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movq %rbp, 0x8(%rsp)
movl 0x2758(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a60(%rbx), %rsi
cmpq 0x1a68(%rbx), %rsi
je 0x146ecf
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a60(%rbx)
jmp 0x146ede
leaq 0x8(%rsp), %rdx
movq 0x18(%rsp), %rdi
callq 0x148a4e
movq %rbp, 0x8(%rsp)
movl 0x2760(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a90(%rbx), %rsi
cmpq 0x1a98(%rbx), %rsi
je 0x146f14
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a90(%rbx)
jmp 0x146f21
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
movabsq $0x100000009, %rax      # imm = 0x100000009
movq %rax, 0x8(%rsp)
movl 0x2754(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a48(%rbx), %rsi
cmpq 0x1a50(%rbx), %rsi
je 0x146f61
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a48(%rbx)
jmp 0x146f72
leaq 0x1a40(%rbx), %rdi
leaq 0x8(%rsp), %rdx
callq 0x148a4e
movabsq $0x100000008, %rax      # imm = 0x100000008
movq %rax, 0x8(%rsp)
movl 0x2758(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a60(%rbx), %rsi
cmpq 0x1a68(%rbx), %rsi
je 0x146fb2
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a60(%rbx)
jmp 0x146fc1
leaq 0x8(%rsp), %rdx
movq 0x18(%rsp), %rdi
callq 0x148a4e
movq %r13, 0x8(%rsp)
movl 0x2758(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a60(%rbx), %rsi
cmpq 0x1a68(%rbx), %rsi
je 0x146ff7
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a60(%rbx)
jmp 0x147006
leaq 0x8(%rsp), %rdx
movq 0x18(%rsp), %rdi
callq 0x148a4e
movabsq $0x100000008, %rax      # imm = 0x100000008
movq %rax, 0x8(%rsp)
movl 0x2760(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a90(%rbx), %rsi
cmpq 0x1a98(%rbx), %rsi
je 0x147046
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a90(%rbx)
jmp 0x147053
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
movabsq $0x10000000b, %rax      # imm = 0x10000000B
movq %rax, 0x8(%rsp)
movl 0x275c(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a78(%rbx), %rsi
cmpq 0x1a80(%rbx), %rsi
je 0x147093
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a78(%rbx)
jmp 0x1470a4
leaq 0x1a70(%rbx), %rdi
leaq 0x8(%rsp), %rdx
callq 0x148a4e
movq %r13, 0x8(%rsp)
movl 0x2760(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1a90(%rbx), %rsi
cmpq 0x1a98(%rbx), %rsi
je 0x1470da
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1a90(%rbx)
jmp 0x1470e7
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x148a4e
movabsq $0x100000001, %r15      # imm = 0x100000001
leaq 0x1aa0(%rbx), %r14
movabsq $0x100000003, %rax      # imm = 0x100000003
movq %rax, 0x8(%rsp)
movl 0x2720(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1aa8(%rbx), %rsi
cmpq 0x1ab0(%rbx), %rsi
je 0x147138
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1aa8(%rbx)
jmp 0x147145
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000005, %rax      # imm = 0x100000005
movq %rax, 0x8(%rsp)
movl 0x2720(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1aa8(%rbx), %rsi
cmpq 0x1ab0(%rbx), %rsi
je 0x147185
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1aa8(%rbx)
jmp 0x147192
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000004, %rax      # imm = 0x100000004
movq %rax, 0x8(%rsp)
movl 0x2720(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1aa8(%rbx), %rsi
cmpq 0x1ab0(%rbx), %rsi
je 0x1471d2
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1aa8(%rbx)
jmp 0x1471df
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movabsq $0x100000006, %rax      # imm = 0x100000006
movq %rax, 0x8(%rsp)
movl 0x2720(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1aa8(%rbx), %rsi
cmpq 0x1ab0(%rbx), %rsi
je 0x14721f
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1aa8(%rbx)
jmp 0x14722c
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movq %r15, 0x8(%rsp)
movl 0x2734(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1af0(%rbx), %rsi
cmpq 0x1af8(%rbx), %rsi
je 0x147262
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1af0(%rbx)
jmp 0x147273
leaq 0x1ae8(%rbx), %rdi
leaq 0x8(%rsp), %rdx
callq 0x148a4e
movq %r15, 0x8(%rsp)
movl 0x2710(%rbx), %eax
addl 0x2728(%rbx), %eax
addl 0x2740(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1b08(%rbx), %rsi
cmpq 0x1b10(%rbx), %rsi
je 0x1472b5
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1b08(%rbx)
jmp 0x1472c6
leaq 0x1b00(%rbx), %rdi
leaq 0x8(%rsp), %rdx
callq 0x148a4e
movq %r12, 0x8(%rsp)
movl 0x2724(%rbx), %eax
addl 0x2734(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1b20(%rbx), %rsi
cmpq 0x1b28(%rbx), %rsi
je 0x147302
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1b20(%rbx)
jmp 0x147313
leaq 0x1b18(%rbx), %rdi
leaq 0x8(%rsp), %rdx
callq 0x148a4e
movq %r12, 0x8(%rsp)
movl 0x2710(%rbx), %eax
addl 0x2728(%rbx), %eax
addl 0x2740(%rbx), %eax
addl 0x2724(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1b38(%rbx), %rsi
cmpq 0x1b40(%rbx), %rsi
je 0x14735b
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1b38(%rbx)
jmp 0x14736c
leaq 0x1b30(%rbx), %rdi
leaq 0x8(%rsp), %rdx
callq 0x148a4e
movq %r12, 0x8(%rsp)
movl 0x2730(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1aa8(%rbx), %rsi
cmpq 0x1ab0(%rbx), %rsi
je 0x1473a2
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1aa8(%rbx)
jmp 0x1473af
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movq %r15, 0x8(%rsp)
movl 0x272c(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1aa8(%rbx), %rsi
cmpq 0x1ab0(%rbx), %rsi
je 0x1473e5
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1aa8(%rbx)
jmp 0x1473f2
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x148a4e
movq %r12, 0x8(%rsp)
movl 0x2724(%rbx), %eax
movl %eax, 0x10(%rsp)
movb $0x0, 0x14(%rsp)
movq 0x1ac0(%rbx), %rsi
cmpq 0x1ac8(%rbx), %rsi
je 0x147428
movups 0x8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x1ac0(%rbx)
jmp 0x14743c
addq $0x1ab8, %rbx           # imm = 0x1AB8
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x148a4e
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop