// File: /workspace/github_cpp_makefile_star2_O2/NishadSaraf[P]Championship-Simulator/src/main.cc
// Function: print_cache_stats(CACHE*)
void print_cache_stats(CACHE *stats)
{
    uint64_t TOTAL_ACCESS = 0, TOTAL_HIT = 0, TOTAL_MISS = 0, TOTAL_MSHR_MERGED = 0, TOTAL_STALL = 0;

    for (uint32_t i=0; i<NUM_TYPES; i++) {
        TOTAL_ACCESS += stats->ACCESS[i];
        TOTAL_HIT += stats->HIT[i];
        TOTAL_MISS += stats->MISS[i];
        TOTAL_MSHR_MERGED += stats->MSHR_MERGED[i];
        TOTAL_STALL += stats->STALL[i];
    }

    cout << stats->NAME;
    cout << " RQ ACCESS: " << setw(10) << stats->RQ.ACCESS << "  MERGED: " << setw(10) << stats->RQ.MERGED << "  TO_CACHE: " << setw(10) << stats->RQ.TO_CACHE << endl;
    cout << stats->NAME;
    cout << " WQ ACCESS: " << setw(10) << stats->WQ.ACCESS << "  MERGED: " << setw(10) << stats->WQ.MERGED << "  TO_CACHE: " << setw(10) << stats->WQ.TO_CACHE << "  FORWARD: " << setw(10) << stats->WQ.FORWARD << endl;
    cout << stats->NAME;
    cout << " PQ ACCESS: " << setw(10) << stats->PQ.ACCESS << "  MERGED: " << setw(10) << stats->PQ.MERGED << "  TO_CACHE: " << setw(10) << stats->PQ.TO_CACHE << endl;

    cout << stats->NAME;
    cout << " TOTAL     ACCESS: " << setw(10) << TOTAL_ACCESS << "  HIT: " << setw(10) << TOTAL_HIT << "  MISS: " << setw(10) << TOTAL_MISS;
    cout << "  MSHR_MERGED: " << setw(10) << TOTAL_MSHR_MERGED << "  STALL: " << setw(10) << TOTAL_STALL;
    cout << "  MPKI: " << (1000.0*TOTAL_MISS)/simulation_instructions << endl;

    cout << stats->NAME;
    cout << " LOAD      ACCESS: " << setw(10) << stats->ACCESS[0] << "  HIT: " << setw(10) << stats->HIT[0] << "  MISS: " << setw(10) << stats->MISS[0];
    cout << "  MSHR_MERGED: " << setw(10) << stats->MSHR_MERGED[0] << "  STALL: " << setw(10) << stats->STALL[0];
    cout << "  MPKI: " << (1000.0*stats->MISS[0])/simulation_instructions << endl;

    cout << stats->NAME;
    cout << " RFO       ACCESS: " << setw(10) << stats->ACCESS[1] << "  HIT: " << setw(10) << stats->HIT[1] << "  MISS: " << setw(10) << stats->MISS[1];
    cout << "  MSHR_MERGED: " << setw(10) << stats->MSHR_MERGED[1] << "  STALL: " << setw(10) << stats->STALL[1];
    cout << "  MPKI: " << (1000.0*stats->MISS[1])/simulation_instructions << endl;

    cout << stats->NAME;
    cout << " PREFETCH  ACCESS: " << setw(10) << stats->ACCESS[2] << "  HIT: " << setw(10) << stats->HIT[2] << "  MISS: " << setw(10) << stats->MISS[2];
    cout << "  MSHR_MERGED: " << setw(10) << stats->MSHR_MERGED[2] << "  STALL: " << setw(10) << stats->STALL[2];
    cout << "  MPKI: " << (1000.0*stats->MISS[2])/simulation_instructions << endl;

    cout << stats->NAME;
    cout << " WRITEBACK ACCESS: " << setw(10) << stats->ACCESS[3] << "  HIT: " << setw(10) << stats->HIT[3] << "  MISS: " << setw(10) << stats->MISS[3];
    cout << "  MSHR_MERGED: " << setw(10) << stats->MSHR_MERGED[3] << "  STALL: " << setw(10) << stats->STALL[3];
    cout << "  MPKI: " << (1000.0*stats->MISS[3])/simulation_instructions << endl;

    cout << stats->NAME;
    cout << " PREFETCH  FILL:   " << setw(10) << stats->STATS.pf_fill << "  USEFUL: " << setw(10) << stats->STATS.pf_useful << " USELESS: " << setw(10) << stats->STATS.pf_useless;
    cout << endl;

    cout << endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
pushq $-0x20
popq %rax
xorl %r13d, %r13d
xorl %ebp, %ebp
xorl %r12d, %r12d
xorl %r15d, %r15d
xorl %r14d, %r14d
testq %rax, %rax
je 0x54e2
addq 0x72c8(%rbx,%rax), %r14
addq 0x72e8(%rbx,%rax), %r15
addq 0x7308(%rbx,%rax), %r12
addq 0x7328(%rbx,%rax), %rbp
addq 0x7348(%rbx,%rax), %r13
addq $0x8, %rax
jmp 0x54af
leaq 0x7350(%rbx), %rsi
movq %rsi, (%rsp)
movq 0x10adc(%rip), %rdi     # 0x15fd0
callq 0x21d0
leaq 0xaea0(%rip), %rsi      # 0x103a0
movq 0x10ac9(%rip), %rdi     # 0x15fd0
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq 0x90a8(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
leaq 0xae7c(%rip), %rsi      # 0x103ad
movq %rax, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq 0x90b8(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
leaq 0xae5a(%rip), %rsi      # 0x103b8
movq %rax, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq 0x90c0(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x2110
movq 0x10a3d(%rip), %rdi     # 0x15fd0
movq (%rsp), %rsi
callq 0x21d0
leaq 0xae22(%rip), %rsi      # 0x103c5
movq 0x10a26(%rip), %rdi     # 0x15fd0
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq 0x7408(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xadd6(%rip), %rsi      # 0x103ad
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq 0x7418(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xadb4(%rip), %rsi      # 0x103b8
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq 0x7420(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
leaq 0xada4(%rip), %rsi      # 0x103d2
movq %rax, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq 0x7410(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x2110
movq 0x1096d(%rip), %rdi     # 0x15fd0
movq (%rsp), %rsi
callq 0x21d0
leaq 0xad6b(%rip), %rsi      # 0x103de
movq 0x10956(%rip), %rdi     # 0x15fd0
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq 0xad48(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xad06(%rip), %rsi      # 0x103ad
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq 0xad58(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xace4(%rip), %rsi      # 0x103b8
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq 0xad60(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x2110
movq 0x108ca(%rip), %rdi     # 0x15fd0
movq (%rsp), %rsi
callq 0x21d0
leaq 0xacd5(%rip), %rsi      # 0x103eb
movq 0x108b3(%rip), %rdi     # 0x15fd0
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %rdx
movq %rdx, 0x10(%rax,%rcx)
movq %rax, %rdi
movq %r14, %rsi
callq 0x2170
leaq 0xacbc(%rip), %rsi      # 0x103ff
movq %rax, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
pushq $0xa
popq %r14
movq %r14, 0x10(%rax,%rcx)
movq %rax, %rdi
movq %r15, %rsi
callq 0x2170
leaq 0xac9a(%rip), %rsi      # 0x10407
movq %rax, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r14, %r15
movq %r14, 0x10(%rax,%rcx)
movq %rax, %rdi
movq %r12, %rsi
callq 0x2170
leaq 0xac7a(%rip), %rsi      # 0x10410
movq 0x10833(%rip), %r14     # 0x15fd0
movq %r14, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq %rax, %rdi
movq %rbp, %rsi
callq 0x2170
leaq 0xac5d(%rip), %rsi      # 0x10420
movq %rax, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq %rax, %rdi
movq %r13, %rsi
callq 0x2170
leaq 0xac41(%rip), %rsi      # 0x1042a
movq %r14, %rdi
callq 0x2230
movq %r12, %xmm1
movq 0xab12(%rip), %xmm0     # 0x10310
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movdqa %xmm0, %xmm2
movapd 0xab12(%rip), %xmm0     # 0x10320
subpd %xmm0, %xmm1
movapd %xmm0, %xmm3
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0xab46(%rip), %xmm0     # 0x10370
movq 0x109de(%rip), %xmm1    # 0x16210
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rax, %rdi
callq 0x2350
movq %rax, %rdi
callq 0x2110
movq %r14, %rdi
movq (%rsp), %r12
movq %r12, %rsi
callq 0x21d0
leaq 0xabc3(%rip), %rsi      # 0x10433
movq %r14, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72a8(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xab62(%rip), %r13      # 0x103ff
movq %r13, %rsi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72c8(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xab3d(%rip), %rbp      # 0x10407
movq %rbp, %rsi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72e8(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %r14, %rdi
leaq 0xab19(%rip), %rsi      # 0x10410
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x7308(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xaaff(%rip), %rsi      # 0x10420
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x7328(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %r14, %rdi
leaq 0xaadf(%rip), %rsi      # 0x1042a
callq 0x2230
movsd 0x72e8(%rbx), %xmm1
movsd 0xa9b0(%rip), %xmm2     # 0x10310
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0xa9b5(%rip), %xmm3     # 0x10320
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0xa9ed(%rip), %xmm0     # 0x10370
movsd 0x10885(%rip), %xmm1    # 0x16210
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rax, %rdi
callq 0x2350
movq %rax, %rdi
callq 0x2110
movq %r14, %rdi
movq %r12, %rsi
callq 0x21d0
leaq 0xaa83(%rip), %rsi      # 0x10447
movq %r14, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72b0(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
movq %r13, %rsi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72d0(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
movq %rbp, %rsi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72f0(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %r14, %rdi
leaq 0xa9d3(%rip), %rbp      # 0x10410
movq %rbp, %rsi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x7310(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xa9b6(%rip), %rsi      # 0x10420
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x7330(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %r14, %rdi
leaq 0xa996(%rip), %r13      # 0x1042a
movq %r13, %rsi
callq 0x2230
movsd 0x72f0(%rbx), %xmm1
movsd 0xa864(%rip), %xmm2     # 0x10310
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0xa869(%rip), %xmm3     # 0x10320
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0xa8a1(%rip), %xmm0     # 0x10370
movsd 0x10739(%rip), %xmm1    # 0x16210
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rax, %rdi
callq 0x2350
movq %rax, %rdi
callq 0x2110
movq %r14, %rdi
movq %r12, %rsi
callq 0x21d0
leaq 0xa94b(%rip), %rsi      # 0x1045b
movq %r14, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72b8(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xa8c2(%rip), %rsi      # 0x103ff
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72d8(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xa8a0(%rip), %rsi      # 0x10407
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72f8(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %r14, %rdi
movq %rbp, %rsi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x7318(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xa869(%rip), %rsi      # 0x10420
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x7338(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %r14, %rdi
movq %r13, %rsi
callq 0x2230
movsd 0x72f8(%rbx), %xmm1
movsd 0xa71e(%rip), %xmm2     # 0x10310
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0xa723(%rip), %xmm3     # 0x10320
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0xa75b(%rip), %xmm0     # 0x10370
movsd 0x105f3(%rip), %xmm1    # 0x16210
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rax, %rdi
callq 0x2350
movq %rax, %rdi
callq 0x2110
movq %r14, %rdi
movq %r12, %rsi
callq 0x21d0
leaq 0xa819(%rip), %rsi      # 0x1046f
movq %r14, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72c0(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xa77c(%rip), %rsi      # 0x103ff
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x72e0(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xa75a(%rip), %rsi      # 0x10407
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x7300(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %r14, %rdi
movq %rbp, %rsi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x7320(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
leaq 0xa723(%rip), %rsi      # 0x10420
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x7340(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %r14, %rdi
movq %r13, %rsi
callq 0x2230
movsd 0x7300(%rbx), %xmm1
movsd 0xa5d8(%rip), %xmm2     # 0x10310
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0xa5dd(%rip), %xmm3     # 0x10320
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0xa615(%rip), %xmm0     # 0x10370
movsd 0x104ad(%rip), %xmm1    # 0x16210
unpcklps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq %rax, %rdi
callq 0x2350
movq %rax, %rdi
callq 0x2110
movq %r14, %rdi
movq %r12, %rsi
callq 0x21d0
leaq 0xa6e7(%rip), %rsi      # 0x10483
movq %r14, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x102e0(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
leaq 0xa6d1(%rip), %rsi      # 0x10497
movq %rax, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x102d0(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
leaq 0xa6b2(%rip), %rsi      # 0x104a2
movq %rax, %rdi
callq 0x2230
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq %r15, 0x10(%rax,%rcx)
movq 0x102d8(%rbx), %rsi
movq %rax, %rdi
callq 0x2170
movq %r14, %rdi
callq 0x2110
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2110