// File: akshayrajput[P]ARMV8_Simulator/mem.cpp
// Function: setDataDW(mem*, unsigned long, int)
int setDataDW(mem M[],uint64_t dat,int start)
{
	uint64_t a = dat;
	uint8_t b = (a & 0xff00000000000000)>>56;
	uint8_t c = (a & 0x00ff000000000000)>>48;
	uint8_t d = (a & 0x0000ff0000000000)>>40;
	uint8_t e = (a & 0x000000ff00000000)>>32;
	uint8_t f = (a & 0x00000000ff000000)>>24;
	uint8_t g = (a & 0x0000000000ff0000)>>16;
	uint8_t h = (a & 0xff0000000000ff00)>>8;
	uint8_t i = (a & 0xff000000000000ff);


	M[start].setData(b);
	start++;
	M[start].setData(c);
	start++;
	M[start].setData(d);
	start++;
	M[start].setData(e);
	start++;
	M[start].setData(f);
	start++;
	M[start].setData(g);
	start++;
	M[start].setData(h);
	start++;
	M[start].setData(i);
	start++;	

	return start;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movabsq $-0x100000000000000, %rax # imm = 0xFF00000000000000
andq -0x20(%rbp), %rax
shrq $0x38, %rax
movb %al, -0x21(%rbp)
movabsq $0xff000000000000, %rax # imm = 0xFF000000000000
andq -0x20(%rbp), %rax
shrq $0x30, %rax
movb %al, -0x22(%rbp)
movabsq $0xff0000000000, %rax   # imm = 0xFF0000000000
andq -0x20(%rbp), %rax
shrq $0x28, %rax
movb %al, -0x23(%rbp)
movabsq $0xff00000000, %rax     # imm = 0xFF00000000
andq -0x20(%rbp), %rax
shrq $0x20, %rax
movb %al, -0x24(%rbp)
movabsq $0xff000000, %rax       # imm = 0xFF000000
andq -0x20(%rbp), %rax
shrq $0x18, %rax
movb %al, -0x25(%rbp)
movq -0x20(%rbp), %rax
andq $0xff0000, %rax         # imm = 0xFF0000
shrq $0x10, %rax
movb %al, -0x26(%rbp)
movabsq $-0xffffffffff0100, %rax # imm = 0xFF0000000000FF00
andq -0x20(%rbp), %rax
shrq $0x8, %rax
movb %al, -0x27(%rbp)
movabsq $-0xffffffffffff01, %rax # imm = 0xFF000000000000FF
andq -0x20(%rbp), %rax
movb %al, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x14(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdi
movzbl -0x21(%rbp), %esi
callq 0xa670
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x14(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdi
movzbl -0x22(%rbp), %esi
callq 0xa670
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x14(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdi
movzbl -0x23(%rbp), %esi
callq 0xa670
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x14(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdi
movzbl -0x24(%rbp), %esi
callq 0xa670
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x14(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdi
movzbl -0x25(%rbp), %esi
callq 0xa670
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x14(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdi
movzbl -0x26(%rbp), %esi
callq 0xa670
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x14(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdi
movzbl -0x27(%rbp), %esi
callq 0xa670
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x14(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdi
movzbl -0x28(%rbp), %esi
callq 0xa670
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)