// File: 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:
subq $0x278, %rsp            # imm = 0x278
movq %rdi, 0x270(%rsp)
movq $0x0, 0x268(%rsp)
movq $0x0, 0x260(%rsp)
movq $0x0, 0x258(%rsp)
movq $0x0, 0x250(%rsp)
movq $0x0, 0x248(%rsp)
movl $0x0, 0x244(%rsp)
cmpl $0x4, 0x244(%rsp)
jae 0x9b4d
movq 0x270(%rsp), %rax
movl 0x244(%rsp), %ecx
movq 0x72a8(%rax,%rcx,8), %rax
addq 0x268(%rsp), %rax
movq %rax, 0x268(%rsp)
movq 0x270(%rsp), %rax
movl 0x244(%rsp), %ecx
movq 0x72c8(%rax,%rcx,8), %rax
addq 0x260(%rsp), %rax
movq %rax, 0x260(%rsp)
movq 0x270(%rsp), %rax
movl 0x244(%rsp), %ecx
movq 0x72e8(%rax,%rcx,8), %rax
addq 0x258(%rsp), %rax
movq %rax, 0x258(%rsp)
movq 0x270(%rsp), %rax
movl 0x244(%rsp), %ecx
movq 0x7308(%rax,%rcx,8), %rax
addq 0x250(%rsp), %rax
movq %rax, 0x250(%rsp)
movq 0x270(%rsp), %rax
movl 0x244(%rsp), %ecx
movq 0x7328(%rax,%rcx,8), %rax
addq 0x248(%rsp), %rax
movq %rax, 0x248(%rsp)
movl 0x244(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x244(%rsp)
jmp 0x9a66
movq 0x270(%rsp), %rsi
addq $0x7350, %rsi           # imm = 0x7350
movq 0x1f46d(%rip), %rdi     # 0x28fd0
movq %rdi, 0x158(%rsp)
callq 0x31c0
movq 0x158(%rsp), %rdi
leaq 0x197c9(%rip), %rsi     # 0x23348
callq 0x3220
movq %rax, (%rsp)
movl $0xa, %edi
movl %edi, 0x14c(%rsp)
callq 0xfda0
movq (%rsp), %rdi
movl %eax, 0x240(%rsp)
movl 0x240(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x90a8(%rax), %rsi
callq 0x3080
movq %rax, %rdi
leaq 0x19784(%rip), %rsi     # 0x23355
movq %rsi, 0x40(%rsp)
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x8(%rsp)
callq 0xfda0
movq 0x8(%rsp), %rdi
movl %eax, 0x23c(%rsp)
movl 0x23c(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x90b8(%rax), %rsi
callq 0x3080
movq %rax, %rdi
leaq 0x1973b(%rip), %rsi     # 0x23360
movq %rsi, 0x50(%rsp)
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x10(%rsp)
callq 0xfda0
movq 0x10(%rsp), %rdi
movl %eax, 0x238(%rsp)
movl 0x238(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x90c0(%rax), %rsi
callq 0x3080
movq %rax, %rdi
movq 0x1f33f(%rip), %rsi     # 0x28fb8
movq %rsi, 0x100(%rsp)
callq 0x3250
movq 0x158(%rsp), %rdi
movq 0x270(%rsp), %rsi
addq $0x7350, %rsi           # imm = 0x7350
callq 0x31c0
movq 0x158(%rsp), %rdi
leaq 0x196bc(%rip), %rsi     # 0x2336d
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x18(%rsp)
callq 0xfda0
movq 0x18(%rsp), %rdi
movl %eax, 0x234(%rsp)
movl 0x234(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7408(%rax), %rsi
callq 0x3080
movq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x20(%rsp)
callq 0xfda0
movq 0x20(%rsp), %rdi
movl %eax, 0x230(%rsp)
movl 0x230(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7418(%rax), %rsi
callq 0x3080
movq 0x50(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x28(%rsp)
callq 0xfda0
movq 0x28(%rsp), %rdi
movl %eax, 0x22c(%rsp)
movl 0x22c(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7420(%rax), %rsi
callq 0x3080
movq %rax, %rdi
leaq 0x195e0(%rip), %rsi     # 0x2337a
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x30(%rsp)
callq 0xfda0
movq 0x30(%rsp), %rdi
movl %eax, 0x228(%rsp)
movl 0x228(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7410(%rax), %rsi
callq 0x3080
movq 0x100(%rsp), %rsi
movq %rax, %rdi
callq 0x3250
movq 0x158(%rsp), %rdi
movq 0x270(%rsp), %rsi
addq $0x7350, %rsi           # imm = 0x7350
callq 0x31c0
movq 0x158(%rsp), %rdi
leaq 0x1956c(%rip), %rsi     # 0x23386
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x38(%rsp)
callq 0xfda0
movq 0x38(%rsp), %rdi
movl %eax, 0x224(%rsp)
movl 0x224(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0xad48(%rax), %rsi
callq 0x3080
movq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x48(%rsp)
callq 0xfda0
movq 0x48(%rsp), %rdi
movl %eax, 0x220(%rsp)
movl 0x220(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0xad58(%rax), %rsi
callq 0x3080
movq 0x50(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x58(%rsp)
callq 0xfda0
movq 0x58(%rsp), %rdi
movl %eax, 0x21c(%rsp)
movl 0x21c(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0xad60(%rax), %rsi
callq 0x3080
movq 0x100(%rsp), %rsi
movq %rax, %rdi
callq 0x3250
movq 0x158(%rsp), %rdi
movq 0x270(%rsp), %rsi
addq $0x7350, %rsi           # imm = 0x7350
callq 0x31c0
movq 0x158(%rsp), %rdi
leaq 0x1945f(%rip), %rsi     # 0x23393
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x60(%rsp)
callq 0xfda0
movq 0x60(%rsp), %rdi
movl %eax, 0x218(%rsp)
movl 0x218(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x268(%rsp), %rsi
callq 0x3080
movq %rax, %rdi
leaq 0x1942b(%rip), %rsi     # 0x233a7
movq %rsi, 0x110(%rsp)
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x68(%rsp)
callq 0xfda0
movq 0x68(%rsp), %rdi
movl %eax, 0x214(%rsp)
movl 0x214(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x260(%rsp), %rsi
callq 0x3080
movq %rax, %rdi
leaq 0x193e3(%rip), %rsi     # 0x233af
movq %rsi, 0x120(%rsp)
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x70(%rsp)
callq 0xfda0
movq 0x70(%rsp), %rdi
movl %eax, 0x210(%rsp)
movl 0x210(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x258(%rsp), %rsi
callq 0x3080
movq 0x158(%rsp), %rdi
leaq 0x19397(%rip), %rsi     # 0x233b8
movq %rsi, 0x130(%rsp)
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x78(%rsp)
callq 0xfda0
movq 0x78(%rsp), %rdi
movl %eax, 0x20c(%rsp)
movl 0x20c(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x250(%rsp), %rsi
callq 0x3080
movq %rax, %rdi
leaq 0x19357(%rip), %rsi     # 0x233c8
movq %rsi, 0x140(%rsp)
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x80(%rsp)
callq 0xfda0
movq 0x80(%rsp), %rdi
movl %eax, 0x208(%rsp)
movl 0x208(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x248(%rsp), %rsi
callq 0x3080
movq 0x158(%rsp), %rdi
leaq 0x19306(%rip), %rsi     # 0x233d2
movq %rsi, 0x160(%rsp)
callq 0x3220
movq %rax, %rdi
movq 0x258(%rsp), %xmm0
movaps 0x191d4(%rip), %xmm3    # 0x232c0
movaps %xmm3, 0x170(%rsp)
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x191d0(%rip), %xmm2    # 0x232d0
movaps %xmm2, 0x180(%rsp)
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x191c1(%rip), %xmm1    # 0x232e0
movsd %xmm1, 0x168(%rsp)
mulsd %xmm1, %xmm0
movq 0x1f0ec(%rip), %xmm1    # 0x29220
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x33e0
movq 0x100(%rsp), %rsi
movq %rax, %rdi
callq 0x3250
movq 0x158(%rsp), %rdi
movq 0x270(%rsp), %rsi
addq $0x7350, %rsi           # imm = 0x7350
callq 0x31c0
movq 0x158(%rsp), %rdi
leaq 0x19250(%rip), %rsi     # 0x233db
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x88(%rsp)
callq 0xfda0
movq 0x88(%rsp), %rdi
movl %eax, 0x204(%rsp)
movl 0x204(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72a8(%rax), %rsi
callq 0x3080
movq 0x110(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x90(%rsp)
callq 0xfda0
movq 0x90(%rsp), %rdi
movl %eax, 0x200(%rsp)
movl 0x200(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72c8(%rax), %rsi
callq 0x3080
movq 0x120(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x98(%rsp)
callq 0xfda0
movq 0x98(%rsp), %rdi
movl %eax, 0x1fc(%rsp)
movl 0x1fc(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72e8(%rax), %rsi
callq 0x3080
movq 0x130(%rsp), %rsi
movq 0x158(%rsp), %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xa0(%rsp)
callq 0xfda0
movq 0xa0(%rsp), %rdi
movl %eax, 0x1f8(%rsp)
movl 0x1f8(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7308(%rax), %rsi
callq 0x3080
movq 0x140(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xa8(%rsp)
callq 0xfda0
movq 0xa8(%rsp), %rdi
movl %eax, 0x1f4(%rsp)
movl 0x1f4(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7328(%rax), %rsi
callq 0x3080
movq 0x158(%rsp), %rdi
movq 0x160(%rsp), %rsi
callq 0x3220
movsd 0x168(%rsp), %xmm1
movaps 0x170(%rsp), %xmm3
movaps 0x180(%rsp), %xmm2
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72e8(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm4
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm4, %xmm0
mulsd %xmm1, %xmm0
movq 0x1ee8d(%rip), %xmm1    # 0x29220
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x33e0
movq 0x100(%rsp), %rsi
movq %rax, %rdi
callq 0x3250
movq 0x158(%rsp), %rdi
movq 0x270(%rsp), %rsi
addq $0x7350, %rsi           # imm = 0x7350
callq 0x31c0
movq 0x158(%rsp), %rdi
leaq 0x19005(%rip), %rsi     # 0x233ef
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xb0(%rsp)
callq 0xfda0
movq 0xb0(%rsp), %rdi
movl %eax, 0x1f0(%rsp)
movl 0x1f0(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72b0(%rax), %rsi
callq 0x3080
movq 0x110(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xb8(%rsp)
callq 0xfda0
movq 0xb8(%rsp), %rdi
movl %eax, 0x1ec(%rsp)
movl 0x1ec(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72d0(%rax), %rsi
callq 0x3080
movq 0x120(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xc0(%rsp)
callq 0xfda0
movq 0xc0(%rsp), %rdi
movl %eax, 0x1e8(%rsp)
movl 0x1e8(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72f0(%rax), %rsi
callq 0x3080
movq 0x130(%rsp), %rsi
movq 0x158(%rsp), %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xc8(%rsp)
callq 0xfda0
movq 0xc8(%rsp), %rdi
movl %eax, 0x1e4(%rsp)
movl 0x1e4(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7310(%rax), %rsi
callq 0x3080
movq 0x140(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xd0(%rsp)
callq 0xfda0
movq 0xd0(%rsp), %rdi
movl %eax, 0x1e0(%rsp)
movl 0x1e0(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7330(%rax), %rsi
callq 0x3080
movq 0x158(%rsp), %rdi
movq 0x160(%rsp), %rsi
callq 0x3220
movsd 0x168(%rsp), %xmm1
movaps 0x170(%rsp), %xmm3
movaps 0x180(%rsp), %xmm2
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72f0(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm4
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm4, %xmm0
mulsd %xmm1, %xmm0
movq 0x1ec2e(%rip), %xmm1    # 0x29220
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x33e0
movq 0x100(%rsp), %rsi
movq %rax, %rdi
callq 0x3250
movq 0x158(%rsp), %rdi
movq 0x270(%rsp), %rsi
addq $0x7350, %rsi           # imm = 0x7350
callq 0x31c0
movq 0x158(%rsp), %rdi
leaq 0x18dba(%rip), %rsi     # 0x23403
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xd8(%rsp)
callq 0xfda0
movq 0xd8(%rsp), %rdi
movl %eax, 0x1dc(%rsp)
movl 0x1dc(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72b8(%rax), %rsi
callq 0x3080
movq 0x110(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xe0(%rsp)
callq 0xfda0
movq 0xe0(%rsp), %rdi
movl %eax, 0x1d8(%rsp)
movl 0x1d8(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72d8(%rax), %rsi
callq 0x3080
movq 0x120(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xe8(%rsp)
callq 0xfda0
movq 0xe8(%rsp), %rdi
movl %eax, 0x1d4(%rsp)
movl 0x1d4(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72f8(%rax), %rsi
callq 0x3080
movq 0x130(%rsp), %rsi
movq 0x158(%rsp), %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xf0(%rsp)
callq 0xfda0
movq 0xf0(%rsp), %rdi
movl %eax, 0x1d0(%rsp)
movl 0x1d0(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7318(%rax), %rsi
callq 0x3080
movq 0x140(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0xf8(%rsp)
callq 0xfda0
movq 0xf8(%rsp), %rdi
movl %eax, 0x1cc(%rsp)
movl 0x1cc(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7338(%rax), %rsi
callq 0x3080
movq 0x158(%rsp), %rdi
movq 0x160(%rsp), %rsi
callq 0x3220
movsd 0x168(%rsp), %xmm1
movaps 0x170(%rsp), %xmm3
movaps 0x180(%rsp), %xmm2
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72f8(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm4
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm4, %xmm0
mulsd %xmm1, %xmm0
movq 0x1e9cf(%rip), %xmm1    # 0x29220
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x33e0
movq 0x100(%rsp), %rsi
movq %rax, %rdi
callq 0x3250
movq 0x158(%rsp), %rdi
movq 0x270(%rsp), %rsi
addq $0x7350, %rsi           # imm = 0x7350
callq 0x31c0
movq 0x158(%rsp), %rdi
leaq 0x18b6f(%rip), %rsi     # 0x23417
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x108(%rsp)
callq 0xfda0
movq 0x108(%rsp), %rdi
movl %eax, 0x1c8(%rsp)
movl 0x1c8(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72c0(%rax), %rsi
callq 0x3080
movq 0x110(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x118(%rsp)
callq 0xfda0
movq 0x118(%rsp), %rdi
movl %eax, 0x1c4(%rsp)
movl 0x1c4(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x72e0(%rax), %rsi
callq 0x3080
movq 0x120(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x128(%rsp)
callq 0xfda0
movq 0x128(%rsp), %rdi
movl %eax, 0x1c0(%rsp)
movl 0x1c0(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7300(%rax), %rsi
callq 0x3080
movq 0x130(%rsp), %rsi
movq 0x158(%rsp), %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x138(%rsp)
callq 0xfda0
movq 0x138(%rsp), %rdi
movl %eax, 0x1bc(%rsp)
movl 0x1bc(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7320(%rax), %rsi
callq 0x3080
movq 0x140(%rsp), %rsi
movq %rax, %rdi
callq 0x3220
movl 0x14c(%rsp), %edi
movq %rax, 0x150(%rsp)
callq 0xfda0
movq 0x150(%rsp), %rdi
movl %eax, 0x1b8(%rsp)
movl 0x1b8(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7340(%rax), %rsi
callq 0x3080
movq 0x158(%rsp), %rdi
movq 0x160(%rsp), %rsi
callq 0x3220
movsd 0x168(%rsp), %xmm1
movaps 0x170(%rsp), %xmm3
movaps 0x180(%rsp), %xmm2
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x7300(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm4
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm4, %xmm0
mulsd %xmm1, %xmm0
movq 0x1e770(%rip), %xmm1    # 0x29220
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
callq 0x33e0
movq %rax, %rdi
movq 0x1e4e2(%rip), %rsi     # 0x28fb8
callq 0x3250
movq 0x270(%rsp), %rsi
addq $0x7350, %rsi           # imm = 0x7350
movq 0x1e4df(%rip), %rdi     # 0x28fd0
callq 0x31c0
movq 0x1e4d3(%rip), %rdi     # 0x28fd0
leaq 0x18927(%rip), %rsi     # 0x2342b
callq 0x3220
movq %rax, 0x190(%rsp)
movl $0xa, %edi
callq 0xfda0
movq 0x190(%rsp), %rdi
movl %eax, 0x1b4(%rsp)
movl 0x1b4(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x102e0(%rax), %rsi
callq 0x3080
movq %rax, %rdi
leaq 0x188e8(%rip), %rsi     # 0x2343f
callq 0x3220
movq %rax, 0x198(%rsp)
movl $0xa, %edi
callq 0xfda0
movq 0x198(%rsp), %rdi
movl %eax, 0x1b0(%rsp)
movl 0x1b0(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x102d0(%rax), %rsi
callq 0x3080
movq %rax, %rdi
leaq 0x188a0(%rip), %rsi     # 0x2344a
callq 0x3220
movq %rax, 0x1a0(%rsp)
movl $0xa, %edi
callq 0xfda0
movq 0x1a0(%rsp), %rdi
movl %eax, 0x1ac(%rsp)
movl 0x1ac(%rsp), %esi
callq 0x3270
movq %rax, %rdi
movq 0x270(%rsp), %rax
movq 0x102d8(%rax), %rsi
callq 0x3080
movq 0x1e3d6(%rip), %rdi     # 0x28fd0
movq 0x1e3b7(%rip), %rsi     # 0x28fb8
callq 0x3250
movq 0x1e3c3(%rip), %rdi     # 0x28fd0
movq 0x1e3a4(%rip), %rsi     # 0x28fb8
callq 0x3250
addq $0x278, %rsp            # imm = 0x278
retq
nopw %cs:(%rax,%rax)