// File: /workspace/github_cpp_makefile_star2_O1/NishadSaraf[P]Championship-Simulator/inc/dram_controller.h
// Function: MEMORY_CONTROLLER::MEMORY_CONTROLLER(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
MEMORY_CONTROLLER(string v1) : NAME (v1) {
        for (uint32_t i=0; i<NUM_TYPES+1; i++) {
            for (uint32_t j=0; j<NUM_TYPES+1; j++) {
                dbus_congested[i][j] = 0;
            }
        }
        do_write = 0;
        processed_writes = 0;
        scheduled_reads = 0;
        scheduled_writes = 0;
        for (uint32_t i=0; i<DRAM_CHANNELS; i++) {
            dbus_cycle_available[i] = 0;
            dbus_cycle_congested[i] = 0;
            write_mode[i] = 0;

            for (uint32_t j=0; j<DRAM_RANKS; j++) {
                for (uint32_t k=0; k<DRAM_BANKS; k++)
                    bank_cycle_available[i][j][k] = 0;
            }
        }

        fill_level = FILL_DRAM;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r15
movq %rdi, %rbx
callq 0x11174
leaq 0x85c4(%rip), %rax      # 0x19c88
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x7348(%rbx), %r14
leaq 0x7358(%rbx), %r13
movq %r13, 0x7348(%rbx)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x110e4
leaq 0x7368(%rbx), %rdi
xorl %r15d, %r15d
movl $0x200, %edx            # imm = 0x200
xorl %esi, %esi
callq 0x3130
leaq 0x787c(%rbx), %rax
xorps %xmm0, %xmm0
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movups %xmm0, -0x24(%rax,%r15)
movq $0x0, -0x14(%rax,%r15)
movq %rcx, -0xc(%rax,%r15)
movw $0x0, -0x4(%rax,%r15)
movl $0xffffffff, (%rax,%r15) # imm = 0xFFFFFFFF
addq $0x28, %r15
cmpq $0xa00, %r15            # imm = 0xA00
jne 0x11717
leaq 0x38(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x7348(%rbx), %rsi
movq 0x7350(%rbx), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x110e4
leaq 0x33dd(%rip), %rsi      # 0x14b50
leaq 0x28(%rsp), %rdi
callq 0x33f0
leaq 0x8258(%rbx), %r15
leaq 0x28(%rsp), %rsi
movq %r15, %rdi
movl $0x30, %edx
callq 0x11350
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x117a5
callq 0x3220
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x7348(%rbx), %rsi
movq 0x7350(%rbx), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x110e4
leaq 0x3878(%rip), %rsi      # 0x15048
leaq 0x8(%rsp), %rdi
callq 0x33f0
leaq 0x9ef8(%rbx), %rdi
leaq 0x8(%rsp), %rsi
movl $0x30, %edx
callq 0x11350
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x117ff
callq 0x3220
leaq 0x7578(%rbx), %rdi
movl $0xc8, %edx
xorl %esi, %esi
callq 0x3130
leaq 0x7640(%rbx), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x7568(%rbx)
movl $0x202, %edx            # imm = 0x202
xorl %esi, %esi
callq 0x3130
movaps 0x383a(%rip), %xmm0     # 0x15070
movups %xmm0, 0x7844(%rbx)
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1184e
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x11865
callq 0x3220
jmp 0x11865
movq %rax, %r12
movq %r15, %rdi
callq 0x1152c
jmp 0x11888
jmp 0x11871
movq %rax, %r12
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x11888
callq 0x3220
jmp 0x11888
movq %rax, %r12
movq (%r14), %rdi
cmpq %r13, %rdi
je 0x1189a
callq 0x3220
jmp 0x1189a
movq %rax, %r12
movq %rbx, %rdi
callq 0x11556
movq %r12, %rdi
callq 0x33d0