// File: kchan1[P]helloworld_test1/main.cpp
// Function: prepare(double**&, int, int, int)
void prepare(double** &image_data, int height, int width, int quant){
	
	for (int i = 0; i<height; i++){
		for(int j=0; j<height; j++){
			image_data[i][j]=(int)image_data[i][j];
		}
	}

	int max = 0;
	for (int i = 0; i<height; i++){
		for(int j=0; j<height; j++){
			image_data[i][j]=(int)(image_data[i][j]/quant)*quant;
			image_data[i][j]=image_data[i][j]/quant;
			if (image_data[i][j] < -126){
				image_data[i][j] = -126;
			}
			if (image_data[i][j] > 127){
				image_data[i][j]= 127;
			}
			if (abs(image_data[i][j]) > max){
				max = abs(image_data[i][j]);
			}
			//image_data[i][j]*=quant;
			//std::cout<<image_data[i][j]<<" ";
		}
	}
	//std::cout<<max<<std::endl;
	

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x475f
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x4752
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x1c(%rbp), %rcx
cvttsd2si (%rax,%rcx,8), %eax
cvtsi2sd %eax, %xmm0
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x1c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x470b
jmp 0x4754
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x46fc
movl $0x0, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x48fe
movl $0x0, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x48ee
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
cvtsi2sdl -0x14(%rbp), %xmm1
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
imull -0x14(%rbp), %eax
cvtsi2sd %eax, %xmm0
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
cvtsi2sdl -0x14(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd 0x2863(%rip), %xmm0     # 0x7088
ucomisd (%rax,%rcx,8), %xmm0
jbe 0x484c
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd 0x2841(%rip), %xmm0     # 0x7088
movsd %xmm0, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd 0x2824(%rip), %xmm1     # 0x7090
ucomisd %xmm1, %xmm0
jbe 0x4892
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd 0x2803(%rip), %xmm0     # 0x7090
movsd %xmm0, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x6760
cvtsi2sdl -0x20(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x48de
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x6760
cvttsd2si %xmm0, %eax
movl %eax, -0x20(%rbp)
jmp 0x48e0
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x4780
jmp 0x48f0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x476d
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)