// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/optionbox.cpp
// Function: smooth::GUI::OptionBox::Paint(int)
S::Int S::GUI::OptionBox::Paint(Int message)
{
	if (!IsRegistered()) return Error();
	if (!IsVisible())    return Success();

	switch (message)
	{
		case SP_PAINT:
		case SP_UPDATE:
			{
				Surface	*surface = GetDrawSurface();
				Rect	 frame	 = Rect(GetRealPosition(), GetRealSize());

				surface->StartPaint(frame);

				if (message == SP_PAINT)
				{
					Font	 nFont = font;

					if (!IsActive()) nFont.SetColor(Setup::InactiveTextColor);

					surface->Box(frame, GetBackgroundColor(), Rect::Filled);
					surface->SetText(text, frame + Point(frame.GetHeight(), Math::Ceil(Float(frame.GetHeight() - scaledTextSize.cy) / 2) - 1), nFont);
				}

				Float	 scaleFactor = surface->GetSurfaceDPI() / 96.0;
				Int	 inset	     = 3 * scaleFactor;

				Point	 lineStart   = Point(frame.left, frame.top) + Point(3, 3) * scaleFactor + Point(inset + (IsRightToLeft() ? 1 : 0), 0);
				Point	 lineEnd     = lineStart + Point(11 * scaleFactor - 2 * inset, 0);

				Int	 lightColor  = Color(Math::Min(Setup::BackgroundColor.GetRed() + 64, 255), Math::Min(Setup::BackgroundColor.GetGreen() + 64, 255), Math::Min(Setup::BackgroundColor.GetBlue() + 64, 255));
				Int	 darkColor   = Color(Math::Max(Setup::BackgroundColor.GetRed() - 64, 0), Math::Max(Setup::BackgroundColor.GetGreen() - 64, 0), Math::Max(Setup::BackgroundColor.GetBlue() - 64, 0));

				Int	 innerColor  = (IsActive() ? Setup::ClientColor : Setup::BackgroundColor);

				surface->Line(lineStart, lineEnd, darkColor);

				for (Int i = 0; i < Int(11 * scaleFactor) - 2; i++)
				{
					if	(i <			      inset) { lineStart.x--; lineEnd.x++; }
					else if (i > (11 * scaleFactor) - 2 - inset) { lineStart.x++; lineEnd.x--; }

					lineStart.y++;
					lineEnd.y++;

					surface->Line(lineStart, lineEnd, innerColor);

					Int	 leftColor  = (i > (11 * scaleFactor) - 2 - inset) ? lightColor : (IsRightToLeft() ? lightColor : darkColor);
					Int	 rightColor = (i > (11 * scaleFactor) - 2 - inset) ? lightColor : (IsRightToLeft() ? darkColor : lightColor);

					surface->SetPixel(lineStart, leftColor);
					surface->SetPixel(lineEnd - Point(1, 0), rightColor);
				}

				lineStart.x++;
				lineStart.y++;
				lineEnd.x--;
				lineEnd.y++;

				surface->Line(lineStart, lineEnd, lightColor);

				if (*variable == code)
				{
					for (Int i = 0; i < 2; i++)
					{
						Int	 color	= IsActive() ? Setup::DividerDarkColor : Setup::DividerDarkColor.Average(Setup::BackgroundColor);
						Point	 offset	= Point(IsRightToLeft() ? 0 : 1, 0);

						if (i == 1)
						{
							color	= IsActive() ? Setup::ClientTextColor : Setup::InactiveTextColor;
							offset -= Point(IsRightToLeft() ? -i : i, i);
						}

						Int	 inset	    = 2 * scaleFactor;

						Point	 lineStart  = Point(frame.left, frame.top) + Point(6, 6) * scaleFactor + offset + Point(inset, 0);
						Point	 lineEnd    = lineStart + Point(5 * scaleFactor - 2 * inset, 0);

						for (Int j = 0; j < Int(5 * scaleFactor); j++)
						{
							if	(j <			 inset) { lineStart.x--; lineEnd.x++; }
							else if (j > (5 * scaleFactor) - inset) { lineStart.x++; lineEnd.x--; }

							lineStart.y++;
							lineEnd.y++;

							surface->Line(lineStart, lineEnd, color);
						}
					}
				}

				surface->EndPaint();
			}

			break;
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x350, %rsp            # imm = 0x350
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x260(%rbp)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x9ca34
leaq -0x28(%rbp), %rdi
movq %rdi, -0x270(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x270(%rbp), %rdi
callq 0x59680
movl %eax, -0x264(%rbp)
jmp 0x9ca03
movl -0x264(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x9d779
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x9d785
movq -0x260(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x9ca9d
leaq -0x48(%rbp), %rdi
movq %rdi, -0x280(%rbp)
callq 0x5ca80
movq -0x280(%rbp), %rdi
callq 0x59680
movl %eax, -0x274(%rbp)
jmp 0x9ca6c
movl -0x274(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x9d779
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x9d785
movl -0x14(%rbp), %eax
subl $0x1, %eax
ja 0x9d721
jmp 0x9caab
movq -0x260(%rbp), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq -0x260(%rbp), %rdi
movq %rax, -0x50(%rbp)
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x260(%rbp), %rdi
movq %rax, -0x68(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, -0x70(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x59ff0
movq -0x50(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x591b0
cmpl $0x0, -0x14(%rbp)
jne 0x9ccea
movq -0x260(%rbp), %rsi
addq $0x140, %rsi            # imm = 0x140
leaq -0xb0(%rbp), %rdi
callq 0x59da0
movq -0x260(%rbp), %rdi
movq (%rdi), %rax
movq 0x98(%rax), %rax
callq *%rax
movb %al, -0x281(%rbp)
jmp 0x9cb3b
movb -0x281(%rbp), %al
testb $0x1, %al
jne 0x9cb7b
jmp 0x9cb47
movq 0x16bde2(%rip), %rsi    # 0x208930
leaq -0xb0(%rbp), %rdi
callq 0x5d110
jmp 0x9cb5c
jmp 0x9cb7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x5abf0
jmp 0x9d785
movq -0x260(%rbp), %rdi
movq -0x50(%rbp), %rax
movq %rax, -0x298(%rbp)
movq (%rdi), %rax
movq 0x140(%rax), %rax
callq *%rax
movq %rax, -0x290(%rbp)
jmp 0x9cba2
movq 0x16c3f7(%rip), %rax    # 0x208fa0
movl (%rax), %eax
movl %eax, -0x29c(%rbp)
leaq -0xb8(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
jmp 0x9cbc3
movl -0x29c(%rbp), %ecx
movq -0x290(%rbp), %rdx
movq -0x298(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0xb8(%rbp), %r8
callq 0x5c110
jmp 0x9cbe9
movq -0x260(%rbp), %rax
movq -0x50(%rbp), %rcx
movq %rcx, -0x2b0(%rbp)
addq $0xf0, %rax
movq %rax, -0x2a8(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x591a0
movl %eax, -0x2a0(%rbp)
jmp 0x9cc19
leaq -0x60(%rbp), %rdi
callq 0x591a0
movl %eax, -0x2b4(%rbp)
jmp 0x9cc2a
movl -0x2b4(%rbp), %eax
movq -0x260(%rbp), %rcx
movl 0x18c(%rcx), %ecx
subl %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd 0xea73d(%rip), %xmm1    # 0x187388
mulsd %xmm1, %xmm0
callq 0x5b240
movq %rax, -0x2c0(%rbp)
jmp 0x9cc5d
movl -0x2a0(%rbp), %esi
movq -0x2c0(%rbp), %rax
movl %eax, %edx
decl %edx
leaq -0xd0(%rbp), %rdi
callq 0x5c2c0
jmp 0x9cc7c
leaq -0x60(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x2d0(%rbp)
movq %rax, -0x2c8(%rbp)
jmp 0x9cc9c
movq -0x2a8(%rbp), %rsi
movq -0x2b0(%rbp), %rdi
movq -0x2d0(%rbp), %rax
movq -0x2c8(%rbp), %rcx
movq %rcx, -0xc8(%rbp)
movq %rax, -0xc0(%rbp)
leaq -0xc8(%rbp), %rdx
leaq -0xb0(%rbp), %rcx
xorl %r8d, %r8d
callq 0x5c3f0
jmp 0x9ccde
leaq -0xb0(%rbp), %rdi
callq 0x5abf0
movq -0x50(%rbp), %rdi
callq 0x5d470
cwtl
cvtsi2sd %eax, %xmm0
movsd 0xea7c0(%rip), %xmm1    # 0x1874c0
divsd %xmm1, %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd 0xea81c(%rip), %xmm0    # 0x187530
mulsd -0xd8(%rbp), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0xdc(%rbp)
movl -0x60(%rbp), %esi
movl -0x5c(%rbp), %edx
leaq -0xf4(%rbp), %rdi
callq 0x5c2c0
leaq -0x104(%rbp), %rdi
movl $0x3, %edx
movl %edx, %esi
callq 0x5c2c0
movsd -0xd8(%rbp), %xmm0
leaq -0x104(%rbp), %rdi
callq 0x5a300
movq %rax, -0xfc(%rbp)
leaq -0xf4(%rbp), %rdi
leaq -0xfc(%rbp), %rsi
callq 0x5ca20
movq -0x260(%rbp), %rdi
movq %rax, -0xec(%rbp)
movl -0xdc(%rbp), %eax
movl %eax, -0x2e4(%rbp)
movq (%rdi), %rax
callq *0x160(%rax)
movl -0x2e4(%rbp), %esi
movb %al, %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
addl %eax, %esi
leaq -0x10c(%rbp), %rdi
xorl %edx, %edx
callq 0x5c2c0
leaq -0xec(%rbp), %rdi
leaq -0x10c(%rbp), %rsi
callq 0x5ca20
movq %rax, -0xe4(%rbp)
movsd -0xd8(%rbp), %xmm0
movl -0xdc(%rbp), %eax
shll %eax
cvtsi2sd %eax, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movsd 0xed0ba(%rip), %xmm2    # 0x189ec8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %esi
leaq -0x11c(%rbp), %rdi
xorl %edx, %edx
callq 0x5c2c0
leaq -0xe4(%rbp), %rdi
leaq -0x11c(%rbp), %rsi
callq 0x5ca20
movq %rax, -0x114(%rbp)
movq 0x16b65f(%rip), %rdi    # 0x2084a8
callq 0x59f20
movl %eax, %edi
addl $0x40, %edi
movl $0xff, %esi
callq 0x5ce90
movl %eax, -0x2e0(%rbp)
movq 0x16b63e(%rip), %rdi    # 0x2084a8
callq 0x5d920
movl %eax, %edi
addl $0x40, %edi
movl $0xff, %esi
callq 0x5ce90
movl %eax, -0x2dc(%rbp)
movq 0x16b61d(%rip), %rdi    # 0x2084a8
callq 0x5b650
movl %eax, %edi
addl $0x40, %edi
movl $0xff, %esi
callq 0x5ce90
movl -0x2e0(%rbp), %esi
movl -0x2dc(%rbp), %edx
movl %eax, %ecx
leaq -0x130(%rbp), %rdi
xorl %r8d, %r8d
callq 0x5a6b0
leaq -0x130(%rbp), %rdi
callq 0x59210
movl %eax, -0x120(%rbp)
movq 0x16b5d3(%rip), %rdi    # 0x2084a8
callq 0x59f20
movl %eax, %edi
subl $0x40, %edi
xorl %esi, %esi
callq 0x5aae0
movl %eax, -0x2d8(%rbp)
movq 0x16b5b5(%rip), %rdi    # 0x2084a8
callq 0x5d920
movl %eax, %edi
subl $0x40, %edi
xorl %esi, %esi
callq 0x5aae0
movl %eax, -0x2d4(%rbp)
movq 0x16b597(%rip), %rdi    # 0x2084a8
callq 0x5b650
movl %eax, %edi
subl $0x40, %edi
xorl %esi, %esi
callq 0x5aae0
movl -0x2d8(%rbp), %esi
movl -0x2d4(%rbp), %edx
movl %eax, %ecx
leaq -0x148(%rbp), %rdi
xorl %r8d, %r8d
callq 0x5a6b0
leaq -0x148(%rbp), %rdi
callq 0x59210
movq -0x260(%rbp), %rdi
movl %eax, -0x134(%rbp)
movq (%rdi), %rax
callq *0x98(%rax)
testb $0x1, %al
jne 0x9cf67
jmp 0x9cf77
movq 0x16b6da(%rip), %rax    # 0x208648
movq %rax, -0x2f0(%rbp)
jmp 0x9cf87
movq 0x16b52a(%rip), %rax    # 0x2084a8
movq %rax, -0x2f0(%rbp)
jmp 0x9cf87
movq -0x2f0(%rbp), %rdi
callq 0x59210
movl %eax, -0x14c(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movslq -0x134(%rbp), %rsi
leaq -0x160(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
movq -0x2f8(%rbp), %rdi
leaq -0xe4(%rbp), %rsi
leaq -0x114(%rbp), %rdx
leaq -0x160(%rbp), %rcx
callq 0x5cce0
movl $0x0, -0x164(%rbp)
movl -0x164(%rbp), %eax
movsd 0xeced6(%rip), %xmm0    # 0x189ec8
mulsd -0xd8(%rbp), %xmm0
cvttsd2si %xmm0, %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jge 0x9d2c5
movl -0x164(%rbp), %eax
cmpl -0xdc(%rbp), %eax
jge 0x9d037
movl -0xe4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xe4(%rbp)
movl -0x114(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x114(%rbp)
jmp 0x9d091
cvtsi2sdl -0x164(%rbp), %xmm0
movsd -0xd8(%rbp), %xmm1
movsd 0xece79(%rip), %xmm2    # 0x189ec8
mulsd %xmm2, %xmm1
movsd 0xece7d(%rip), %xmm2    # 0x189ed8
addsd %xmm2, %xmm1
cvtsi2sdl -0xdc(%rbp), %xmm2
subsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x9d08f
movl -0xe4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe4(%rbp)
movl -0x114(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x114(%rbp)
jmp 0x9d091
movl -0xe0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe0(%rbp)
movl -0x110(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x110(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x300(%rbp)
movslq -0x14c(%rbp), %rsi
leaq -0x178(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
movq -0x300(%rbp), %rdi
leaq -0xe4(%rbp), %rsi
leaq -0x114(%rbp), %rdx
leaq -0x178(%rbp), %rcx
callq 0x5cce0
cvtsi2sdl -0x164(%rbp), %xmm0
movsd -0xd8(%rbp), %xmm1
movsd 0xecdc0(%rip), %xmm2    # 0x189ec8
mulsd %xmm2, %xmm1
movsd 0xecdc4(%rip), %xmm2    # 0x189ed8
addsd %xmm2, %xmm1
cvtsi2sdl -0xdc(%rbp), %xmm2
subsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x9d138
movl -0x120(%rbp), %eax
movl %eax, -0x304(%rbp)
jmp 0x9d174
movq -0x260(%rbp), %rdi
movq (%rdi), %rax
callq *0x160(%rax)
testb $0x1, %al
jne 0x9d14e
jmp 0x9d15c
movl -0x120(%rbp), %eax
movl %eax, -0x308(%rbp)
jmp 0x9d168
movl -0x134(%rbp), %eax
movl %eax, -0x308(%rbp)
movl -0x308(%rbp), %eax
movl %eax, -0x304(%rbp)
movl -0x304(%rbp), %eax
movl %eax, -0x17c(%rbp)
cvtsi2sdl -0x164(%rbp), %xmm0
movsd -0xd8(%rbp), %xmm1
movsd 0xecd30(%rip), %xmm2    # 0x189ec8
mulsd %xmm2, %xmm1
movsd 0xecd34(%rip), %xmm2    # 0x189ed8
addsd %xmm2, %xmm1
cvtsi2sdl -0xdc(%rbp), %xmm2
subsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x9d1c8
movl -0x120(%rbp), %eax
movl %eax, -0x30c(%rbp)
jmp 0x9d204
movq -0x260(%rbp), %rdi
movq (%rdi), %rax
callq *0x160(%rax)
testb $0x1, %al
jne 0x9d1de
jmp 0x9d1ec
movl -0x134(%rbp), %eax
movl %eax, -0x310(%rbp)
jmp 0x9d1f8
movl -0x120(%rbp), %eax
movl %eax, -0x310(%rbp)
movl -0x310(%rbp), %eax
movl %eax, -0x30c(%rbp)
movl -0x30c(%rbp), %eax
movl %eax, -0x180(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x320(%rbp)
movslq -0x17c(%rbp), %rsi
leaq -0x190(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
movq -0x320(%rbp), %rdi
leaq -0xe4(%rbp), %rsi
leaq -0x190(%rbp), %rdx
callq 0x59140
movq -0x50(%rbp), %rax
movq %rax, -0x318(%rbp)
leaq -0x1a0(%rbp), %rdi
movl $0x1, %esi
xorl %edx, %edx
callq 0x5c2c0
leaq -0x114(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x5cbd0
movq %rax, -0x198(%rbp)
movslq -0x180(%rbp), %rsi
leaq -0x1b0(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
movq -0x318(%rbp), %rdi
leaq -0x198(%rbp), %rsi
leaq -0x1b0(%rbp), %rdx
callq 0x59140
movl -0x164(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x164(%rbp)
jmp 0x9cfe4
movl -0xe4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe4(%rbp)
movl -0xe0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe0(%rbp)
movl -0x114(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x114(%rbp)
movl -0x110(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x110(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x328(%rbp)
movslq -0x120(%rbp), %rsi
leaq -0x1c0(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
movq -0x328(%rbp), %rdi
leaq -0xe4(%rbp), %rsi
leaq -0x114(%rbp), %rdx
leaq -0x1c0(%rbp), %rcx
callq 0x5cce0
movq -0x260(%rbp), %rcx
movq 0x5b8(%rcx), %rax
movl (%rax), %eax
cmpl 0x5c0(%rcx), %eax
jne 0x9d718
movl $0x0, -0x1c4(%rbp)
cmpl $0x2, -0x1c4(%rbp)
jge 0x9d716
movq -0x260(%rbp), %rdi
movq (%rdi), %rax
callq *0x98(%rax)
testb $0x1, %al
jne 0x9d38b
jmp 0x9d3a0
leaq -0x1d8(%rbp), %rdi
movq 0x16b4c7(%rip), %rsi    # 0x208860
callq 0x5c720
jmp 0x9d3ba
leaq -0x1d8(%rbp), %rdi
movq 0x16b4b2(%rip), %rsi    # 0x208860
movq 0x16b0f3(%rip), %rdx    # 0x2084a8
callq 0x5cbb0
leaq -0x1d8(%rbp), %rdi
callq 0x59210
movq -0x260(%rbp), %rdi
movl %eax, -0x1c8(%rbp)
movq (%rdi), %rax
callq *0x160(%rax)
movb %al, %cl
movl $0x1, %esi
xorl %eax, %eax
testb $0x1, %cl
cmovnel %eax, %esi
leaq -0x1e0(%rbp), %rdi
xorl %edx, %edx
callq 0x5c2c0
cmpl $0x1, -0x1c4(%rbp)
jne 0x9d4ab
movq -0x260(%rbp), %rdi
movq (%rdi), %rax
callq *0x98(%rax)
testb $0x1, %al
jne 0x9d41c
jmp 0x9d42c
movq 0x16b9bd(%rip), %rax    # 0x208de0
movq %rax, -0x330(%rbp)
jmp 0x9d43c
movq 0x16b4fd(%rip), %rax    # 0x208930
movq %rax, -0x330(%rbp)
jmp 0x9d43c
movq -0x330(%rbp), %rdi
callq 0x59210
movq -0x260(%rbp), %rdi
movl %eax, -0x1c8(%rbp)
movq (%rdi), %rax
callq *0x160(%rax)
testb $0x1, %al
jne 0x9d464
jmp 0x9d474
xorl %eax, %eax
subl -0x1c4(%rbp), %eax
movl %eax, -0x334(%rbp)
jmp 0x9d480
movl -0x1c4(%rbp), %eax
movl %eax, -0x334(%rbp)
movl -0x334(%rbp), %esi
movl -0x1c4(%rbp), %edx
leaq -0x1e8(%rbp), %rdi
callq 0x5c2c0
leaq -0x1e0(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x5cd40
movsd 0xe9ec5(%rip), %xmm0    # 0x187378
mulsd -0xd8(%rbp), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x1ec(%rbp)
movl -0x60(%rbp), %esi
movl -0x5c(%rbp), %edx
leaq -0x20c(%rbp), %rdi
callq 0x5c2c0
leaq -0x21c(%rbp), %rdi
movl $0x6, %edx
movl %edx, %esi
callq 0x5c2c0
movsd -0xd8(%rbp), %xmm0
leaq -0x21c(%rbp), %rdi
callq 0x5a300
movq %rax, -0x214(%rbp)
leaq -0x20c(%rbp), %rdi
leaq -0x214(%rbp), %rsi
callq 0x5ca20
movq %rax, -0x204(%rbp)
leaq -0x204(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x5ca20
movq %rax, -0x1fc(%rbp)
movl -0x1ec(%rbp), %esi
leaq -0x224(%rbp), %rdi
xorl %edx, %edx
callq 0x5c2c0
leaq -0x1fc(%rbp), %rdi
leaq -0x224(%rbp), %rsi
callq 0x5ca20
movq %rax, -0x1f4(%rbp)
movsd -0xd8(%rbp), %xmm0
movl -0x1ec(%rbp), %eax
shll %eax
cvtsi2sd %eax, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movsd 0xec936(%rip), %xmm2    # 0x189ed0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %esi
leaq -0x234(%rbp), %rdi
xorl %edx, %edx
callq 0x5c2c0
leaq -0x1f4(%rbp), %rdi
leaq -0x234(%rbp), %rsi
callq 0x5ca20
movq %rax, -0x22c(%rbp)
movl $0x0, -0x238(%rbp)
movl -0x238(%rbp), %eax
movsd 0xec8ea(%rip), %xmm0    # 0x189ed0
mulsd -0xd8(%rbp), %xmm0
cvttsd2si %xmm0, %ecx
cmpl %ecx, %eax
jge 0x9d700
movl -0x238(%rbp), %eax
cmpl -0x1ec(%rbp), %eax
jge 0x9d628
movl -0x1f4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1f4(%rbp)
movl -0x22c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x22c(%rbp)
jmp 0x9d68d
cvtsi2sdl -0x238(%rbp), %xmm0
movsd -0xd8(%rbp), %xmm1
cvtsi2sdl -0x1ec(%rbp), %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
movsd 0xec871(%rip), %xmm3    # 0x189ed0
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x9d68b
movl -0x1f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1f4(%rbp)
movl -0x22c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x22c(%rbp)
jmp 0x9d68d
movl -0x1f0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1f0(%rbp)
movl -0x228(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x228(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x340(%rbp)
movslq -0x1c8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
movq -0x340(%rbp), %rdi
leaq -0x1f4(%rbp), %rsi
leaq -0x22c(%rbp), %rdx
leaq -0x248(%rbp), %rcx
callq 0x5cce0
movl -0x238(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x238(%rbp)
jmp 0x9d5d8
jmp 0x9d702
movl -0x1c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c4(%rbp)
jmp 0x9d368
jmp 0x9d718
movq -0x50(%rbp), %rdi
callq 0x5d270
leaq -0x258(%rbp), %rdi
movq %rdi, -0x350(%rbp)
callq 0x5ca80
movq -0x350(%rbp), %rdi
callq 0x59680
movl %eax, -0x344(%rbp)
jmp 0x9d748
movl -0x344(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x5a410
jmp 0x9d779
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x5a410
jmp 0x9d785
movl -0x4(%rbp), %eax
addq $0x350, %rsp            # imm = 0x350
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nop