// File: kebwi[P]Trifid/src/DebayerProcs.cpp
// Function: bilinear_calcMissingColors(ImageReal&, Image3ChnlReal&, int, int, double&, double&)
void bilinear_calcMissingColors(
	ImageReal &grayImage, Image3ChnlReal &rgbImage,
	int x, int y, Float_t &color1, Float_t &color2)
{
	Color color = determineBayerColor(x, y);
	int width = grayImage.width(), height = grayImage.height();
	
	Float_t color1L = 0, color2L = 0;
	color1 = color2 = 0;
	int divisor;
	
	if (color == R)
	{
		//Determine green component
		divisor = 0;
		if (y > 0)
		{
			color1L += grayImage(x, y - 1);
			divisor++;
		}
		if (x < width - 1)
		{
			color1L += grayImage(x + 1, y);
			divisor++;
		}
		if (y < height - 1)
		{
			color1L += grayImage(x, y + 1);
			divisor++;
		}
		if (x > 0)
		{
			color1L += grayImage(x - 1, y);
			divisor++;
		}
		assert(divisor > 0);
		color1 = color1L / (Float_t)divisor;
		
		//Determine blue component
		divisor = 0;
		if (x > 0 && y > 0)
		{
			color2L += grayImage(x - 1, y - 1);
			divisor++;
		}
		if (x < width - 1 && y > 0)
		{
			color2L += grayImage(x + 1, y - 1);
			divisor++;
		}
		if (x < width - 1 && y < height - 1)
		{
			color2L += grayImage(x + 1, y + 1);
			divisor++;
		}
		if (x > 0 && y < height - 1)
		{
			color2L += grayImage(x - 1, y + 1);
			divisor++;
		}
		assert(divisor > 0);
		color2 = color2L / (Float_t)divisor;
	}
	else if (color == G)
	{
		Color colorRight;
		if (x < width - 1)
			colorRight = determineBayerColor(x + 1, y);
		else colorRight = determineBayerColor(x - 1, y);
		assert(colorRight != G);
		if (colorRight == R)
		{
			//Determine red component
			divisor = 0;
			if (x > 0)
			{
				color1L += grayImage(x - 1, y);
				divisor++;
			}
			if (x < width - 1)
			{
				color1L += grayImage(x + 1, y);
				divisor++;
			}
			assert(divisor > 0);
			color1 = color1L / (Float_t)divisor;
			
			//Determine blue component
			divisor = 0;
			if (y > 0)
			{
				color2L += grayImage(x, y - 1);
				divisor++;
			}
			if (y < height - 1)
			{
				color2L += grayImage(x, y + 1);
				divisor++;
			}
			assert(divisor > 0);
			color2 = color2L / (Float_t)divisor;
		}
		else //if (colorRight == B)
		{
			//Determine red component
			divisor = 0;
			if (y > 0)
			{
				color1L += grayImage(x, y - 1);
				divisor++;
			}
			if (y < height - 1)
			{
				color1L += grayImage(x, y + 1);
				divisor++;
			}
			assert(divisor > 0);
			color1 = color1L / (Float_t)divisor;
			
			//Determine blue component
			divisor = 0;
			if (x > 0)
			{
				color2L += grayImage(x - 1, y);
				divisor++;
			}
			if (x < width - 1)
			{
				color2L += grayImage(x + 1, y);
				divisor++;
			}
			assert(divisor > 0);
			color2 = color2L / (Float_t)divisor;
		}
	}
	else //if (color == B)
	{
		//Determine red component
		divisor = 0;
		if (x > 0 && y > 0)
		{
			color1L += grayImage(x - 1, y - 1);
			divisor++;
		}
		if (x < width - 1 && y > 0)
		{
			color1L += grayImage(x + 1, y - 1);
			divisor++;
		}
		if (x < width - 1 && y < height - 1)
		{
			color1L += grayImage(x + 1, y + 1);
			divisor++;
		}
		if (x > 0 && y < height - 1)
		{
			color1L += grayImage(x - 1, y + 1);
			divisor++;
		}
		assert(divisor > 0);
		color1 = color1L / (Float_t)divisor;
		
		//Determine green component
		divisor = 0;
		if (y > 0)
		{
			color2L += grayImage(x, y - 1);
			divisor++;
		}
		if (x < width - 1)
		{
			color2L += grayImage(x + 1, y);
			divisor++;
		}
		if (y < height - 1)
		{
			color2L += grayImage(x, y + 1);
			divisor++;
		}
		if (x > 0)
		{
			color2L += grayImage(x - 1, y);
			divisor++;
		}
		assert(divisor > 0);
		color2 = color2L / (Float_t)divisor;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movq %r8, -0x20(%rbp)
movq %r9, -0x28(%rbp)
movl -0x14(%rbp), %edi
movl -0x18(%rbp), %esi
callq 0x380a0
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
callq 0xedd0
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0xedf0
movl %eax, -0x34(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x40(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x48(%rbp)
movq -0x28(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
movq -0x20(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
cmpl $0x0, -0x2c(%rbp)
jne 0x19ea7
movl $0x0, -0x4c(%rbp)
cmpl $0x0, -0x18(%rbp)
jle 0x19c8a
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
subl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x14(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x19cc0
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
movl -0x18(%rbp), %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x18(%rbp), %eax
movl -0x34(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x19cf6
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
addl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x19d25
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
subl $0x1, %esi
movl -0x18(%rbp), %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jle 0x19d2d
jmp 0x19d4c
leaq 0x3088b(%rip), %rdi     # 0x4a5bf
leaq 0x30835(%rip), %rsi     # 0x4a570
movl $0x8e, %edx
leaq 0x30884(%rip), %rcx     # 0x4a5cb
callq 0x4240
movsd -0x40(%rbp), %xmm0
cvtsi2sdl -0x4c(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, (%rax)
movl $0x0, -0x4c(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x19da1
cmpl $0x0, -0x18(%rbp)
jle 0x19da1
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
subl $0x1, %esi
movl -0x18(%rbp), %edx
subl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x14(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x19de0
cmpl $0x0, -0x18(%rbp)
jle 0x19de0
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
movl -0x18(%rbp), %edx
subl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x14(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x19e26
movl -0x18(%rbp), %eax
movl -0x34(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x19e26
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
movl -0x18(%rbp), %edx
addl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x19e65
movl -0x18(%rbp), %eax
movl -0x34(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x19e65
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
subl $0x1, %esi
movl -0x18(%rbp), %edx
addl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jle 0x19e6d
jmp 0x19e8c
leaq 0x3074b(%rip), %rdi     # 0x4a5bf
leaq 0x306f5(%rip), %rsi     # 0x4a570
movl $0xa7, %edx
leaq 0x30744(%rip), %rcx     # 0x4a5cb
callq 0x4240
movsd -0x48(%rbp), %xmm0
cvtsi2sdl -0x4c(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x1a411
cmpl $0x1, -0x2c(%rbp)
jne 0x1a1c1
movl -0x14(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x19ed1
movl -0x14(%rbp), %edi
addl $0x1, %edi
movl -0x18(%rbp), %esi
callq 0x380a0
movl %eax, -0x50(%rbp)
jmp 0x19ee2
movl -0x14(%rbp), %edi
subl $0x1, %edi
movl -0x18(%rbp), %esi
callq 0x380a0
movl %eax, -0x50(%rbp)
cmpl $0x1, -0x50(%rbp)
je 0x19eea
jmp 0x19f09
leaq 0x3066f(%rip), %rdi     # 0x4a560
leaq 0x30678(%rip), %rsi     # 0x4a570
movl $0xb0, %edx
leaq 0x306c7(%rip), %rcx     # 0x4a5cb
callq 0x4240
cmpl $0x0, -0x50(%rbp)
jne 0x1a06a
movl $0x0, -0x4c(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x19f49
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
subl $0x1, %esi
movl -0x18(%rbp), %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x14(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x19f7f
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
movl -0x18(%rbp), %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jle 0x19f87
jmp 0x19fa6
leaq 0x30631(%rip), %rdi     # 0x4a5bf
leaq 0x305db(%rip), %rsi     # 0x4a570
movl $0xbf, %edx
leaq 0x3062a(%rip), %rcx     # 0x4a5cb
callq 0x4240
movsd -0x40(%rbp), %xmm0
cvtsi2sdl -0x4c(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, (%rax)
movl $0x0, -0x4c(%rbp)
cmpl $0x0, -0x18(%rbp)
jle 0x19ff2
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
subl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x18(%rbp), %eax
movl -0x34(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1a028
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
addl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jle 0x1a030
jmp 0x1a04f
leaq 0x30588(%rip), %rdi     # 0x4a5bf
leaq 0x30532(%rip), %rsi     # 0x4a570
movl $0xce, %edx
leaq 0x30581(%rip), %rcx     # 0x4a5cb
callq 0x4240
movsd -0x48(%rbp), %xmm0
cvtsi2sdl -0x4c(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x1a1bc
movl $0x0, -0x4c(%rbp)
cmpl $0x0, -0x18(%rbp)
jle 0x1a0a0
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
subl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x18(%rbp), %eax
movl -0x34(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1a0d6
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
addl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jle 0x1a0de
jmp 0x1a0fd
leaq 0x304da(%rip), %rdi     # 0x4a5bf
leaq 0x30484(%rip), %rsi     # 0x4a570
movl $0xdf, %edx
leaq 0x304d3(%rip), %rcx     # 0x4a5cb
callq 0x4240
movsd -0x40(%rbp), %xmm0
cvtsi2sdl -0x4c(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, (%rax)
movl $0x0, -0x4c(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x1a149
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
subl $0x1, %esi
movl -0x18(%rbp), %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x14(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1a17f
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
movl -0x18(%rbp), %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jle 0x1a187
jmp 0x1a1a6
leaq 0x30431(%rip), %rdi     # 0x4a5bf
leaq 0x303db(%rip), %rsi     # 0x4a570
movl $0xee, %edx
leaq 0x3042a(%rip), %rcx     # 0x4a5cb
callq 0x4240
movsd -0x48(%rbp), %xmm0
cvtsi2sdl -0x4c(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x1a40f
movl $0x0, -0x4c(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x1a200
cmpl $0x0, -0x18(%rbp)
jle 0x1a200
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
subl $0x1, %esi
movl -0x18(%rbp), %edx
subl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x14(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1a23f
cmpl $0x0, -0x18(%rbp)
jle 0x1a23f
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
movl -0x18(%rbp), %edx
subl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x14(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1a285
movl -0x18(%rbp), %eax
movl -0x34(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1a285
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
movl -0x18(%rbp), %edx
addl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x1a2c4
movl -0x18(%rbp), %eax
movl -0x34(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1a2c4
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
subl $0x1, %esi
movl -0x18(%rbp), %edx
addl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jle 0x1a2cc
jmp 0x1a2eb
leaq 0x302ec(%rip), %rdi     # 0x4a5bf
leaq 0x30296(%rip), %rsi     # 0x4a570
movl $0x10a, %edx            # imm = 0x10A
leaq 0x302e5(%rip), %rcx     # 0x4a5cb
callq 0x4240
movsd -0x40(%rbp), %xmm0
cvtsi2sdl -0x4c(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, (%rax)
movl $0x0, -0x4c(%rbp)
cmpl $0x0, -0x18(%rbp)
jle 0x1a337
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
subl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x14(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1a36d
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x1, %esi
movl -0x18(%rbp), %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x18(%rbp), %eax
movl -0x34(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1a3a3
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
addl $0x1, %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x1a3d2
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
subl $0x1, %esi
movl -0x18(%rbp), %edx
callq 0x16fd0
movsd (%rax), %xmm0
addsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jle 0x1a3da
jmp 0x1a3f9
leaq 0x301de(%rip), %rdi     # 0x4a5bf
leaq 0x30188(%rip), %rsi     # 0x4a570
movl $0x123, %edx            # imm = 0x123
leaq 0x301d7(%rip), %rcx     # 0x4a5cb
callq 0x4240
movsd -0x48(%rbp), %xmm0
cvtsi2sdl -0x4c(%rbp), %xmm1
divsd %xmm1, %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x1a411
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)