// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/multi/tree/tree.cpp
// Function: smooth::GUI::Tree::PaintText(smooth::GUI::Color const&, bool)
S::Void S::GUI::Tree::PaintText(const Color &color, Bool drawGradient)
{
	Surface	*surface = GetDrawSurface();
	Rect	 frame	 = Rect(GetRealPosition(), GetRealSize());
	Font	 nFont	 = font;
	Bool	 gotTabs = False;

	if (!active) nFont.SetColor(Setup::InactiveTextColor);
	else	     nFont.SetColor(color);

	if (text.Contains(ListEntry::tabDelimiter)) gotTabs = True;

	surface->StartPaint(GetVisibleArea());

	if (drawGradient) surface->Gradient(Rect(Point(frame.left, frame.top), Size(frame.GetWidth(), Math::Round(16 * surface->GetSurfaceDPI() / 96.0))), Setup::GradientStartColor, Setup::GradientEndColor, OR_HORZ);
	else		  surface->Box(Rect(Point(frame.left, frame.top), Size(frame.GetWidth(), Math::Round(16 * surface->GetSurfaceDPI() / 96.0))), Setup::ClientColor, Rect::Filled);

	Rect	 cbRect = Rect(GetRealPosition() + Point(2, 3) * surface->GetSurfaceDPI() / 96.0, Size(9, 9) * surface->GetSurfaceDPI() / 96.0);

	if (cbRect.GetWidth() % 2 == 0) cbRect = cbRect + Point(1, 1) - Size(1, 1);

	if (cbRect.top <= cbRect.bottom - 1)
	{
		surface->Box(cbRect, Setup::ClientColor, Rect::Filled);
		surface->Box(cbRect, Setup::InactiveTextColor, Rect::Outlined);

		if (cbRect.top <= cbRect.bottom - 3)
		{
			Point	 p1 = Point(cbRect.left + 2 + (IsRightToLeft() ? 1 : 0), (cbRect.top + cbRect.bottom) / 2);
			Point	 p2 = Point(cbRect.right - 2 + (IsRightToLeft() ? 1 : 0), (cbRect.top + cbRect.bottom) / 2);

			Color	 darkColor = Setup::ClientTextColor;

			if (!active) darkColor = Setup::InactiveTextColor;

			surface->Line(p1, p2, darkColor);

			if (!IsMarked())
			{
				p1 = Point((cbRect.left + cbRect.right) / 2 + (IsRightToLeft() ? 1 : 0), cbRect.top + 2);
				p2 = Point((cbRect.left + cbRect.right) / 2 + (IsRightToLeft() ? 1 : 0), cbRect.bottom - 2);

				surface->Line(p1, p2, darkColor);
			}
		}
	}

	if (container->GetObjectType() == ListBox::classID && ((ListBox *) container)->GetNOfTabs() > 0 && gotTabs)
	{
		for (Int i = 0; i < ((ListBox *) container)->GetNOfTabs(); i++)
		{
			Rect	 rect = Rect(GetRealPosition() + Point(0, Math::Ceil(Float(headHotspot->GetRealSize().cy - nFont.GetScaledTextSizeY()) / 2) - 2) + Point(1, 1) * surface->GetSurfaceDPI() / 96.0, GetSize() - Size(1, 1) * surface->GetSurfaceDPI() / 96.0 * 2 - Size(1, 0));

			rect.left += ((ListBox *) container)->GetNthTabOffset(i);
			rect.left += (i == 0 ? Math::Round(12 * surface->GetSurfaceDPI() / 96.0) : 0);

			if (((ListBox *) container)->GetNOfTabs() >= i + 2) rect.right = rect.left + (((ListBox *) container)->GetNthTabOffset(i + 1) - ((ListBox *) container)->GetNthTabOffset(i)) - (i == 0 ? Math::Round(12 * surface->GetSurfaceDPI() / 96.0) : 0) - Math::Round(1 * surface->GetSurfaceDPI() / 96.0) * 2 - 1;

			String	 tabText = GetNthTabText(i);

			if (((ListBox *) container)->GetNthTabOrientation(i) == OR_RIGHT)
			{
				rect.left = Math::Max(rect.left, rect.right - nFont.GetScaledTextSizeX(tabText));
			}

			surface->SetText(tabText, rect, nFont);
		}
	}
	else
	{
		surface->SetText(text, frame + Point(0, Math::Ceil(Float(headHotspot->GetRealSize().cy - nFont.GetScaledTextSizeY()) / 2) - 2) + Point(1, 1) * surface->GetSurfaceDPI() / 96.0 + Point(Math::Round(12 * surface->GetSurfaceDPI() / 96.0), 0) - Size(1, 1) * surface->GetSurfaceDPI() / 96.0 * 2 - Size(Math::Round(12 * surface->GetSurfaceDPI() / 96.0), 0), nFont);
	}

	surface->EndPaint();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x5f0, %rsp            # imm = 0x5F0
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x308(%rbp)
movq (%rdi), %rax
callq *0x40(%rax)
movq -0x308(%rbp), %rdi
movq %rax, -0x20(%rbp)
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x308(%rbp), %rdi
movq %rax, -0x38(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, -0x40(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x59ff0
movq -0x308(%rbp), %rsi
addq $0x140, %rsi            # imm = 0x140
leaq -0x80(%rbp), %rdi
callq 0x59da0
movq -0x308(%rbp), %rax
movb $0x0, -0x81(%rbp)
testb $0x1, 0xcc(%rax)
jne 0xc6fbb
movq 0x141999(%rip), %rsi    # 0x208930
leaq -0x80(%rbp), %rdi
callq 0x5d110
jmp 0xc6fa2
jmp 0xc6fcc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xc82a1
movq -0x10(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x5d110
jmp 0xc6fca
jmp 0xc6fcc
movq -0x308(%rbp), %rdi
addq $0xf0, %rdi
movq 0x141bbf(%rip), %rsi    # 0x208ba0
callq 0x591d0
movb %al, -0x309(%rbp)
jmp 0xc6fee
movb -0x309(%rbp), %al
testb $0x1, %al
jne 0xc6ffa
jmp 0xc7001
movb $0x1, -0x81(%rbp)
movq -0x308(%rbp), %rdi
movq -0x20(%rbp), %rax
movq %rax, -0x328(%rbp)
movq (%rdi), %rax
movq 0x130(%rax), %rax
callq *%rax
movq %rdx, -0x320(%rbp)
movq %rax, -0x318(%rbp)
jmp 0xc702f
movq -0x328(%rbp), %rdi
movq -0x320(%rbp), %rax
movq -0x318(%rbp), %rcx
movq %rcx, -0xa4(%rbp)
movq %rax, -0x9c(%rbp)
leaq -0xa4(%rbp), %rsi
callq 0x591b0
jmp 0xc7060
testb $0x1, -0x11(%rbp)
je 0xc713c
movq -0x20(%rbp), %rax
movq %rax, -0x330(%rbp)
movl -0x30(%rbp), %esi
movl -0x2c(%rbp), %edx
leaq -0xbc(%rbp), %rdi
callq 0x5c2c0
jmp 0xc7089
leaq -0x30(%rbp), %rdi
callq 0x5a5a0
movl %eax, -0x334(%rbp)
jmp 0xc709a
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x336(%rbp)
jmp 0xc70ac
movw -0x336(%rbp), %ax
cwtl
shll $0x4, %eax
cvtsi2sd %eax, %xmm0
movsd 0xc03fd(%rip), %xmm1    # 0x1874c0
divsd %xmm1, %xmm0
callq 0x5a970
movq %rax, -0x340(%rbp)
jmp 0xc70d5
movl -0x334(%rbp), %esi
movq -0x340(%rbp), %rax
movl %eax, %edx
leaq -0xc4(%rbp), %rdi
callq 0x59260
jmp 0xc70f2
leaq -0xb4(%rbp), %rdi
leaq -0xbc(%rbp), %rsi
leaq -0xc4(%rbp), %rdx
callq 0x59ff0
jmp 0xc710e
movq -0x330(%rbp), %rdi
movq 0x141e9c(%rip), %rdx    # 0x208fb8
movq 0x141df5(%rip), %rcx    # 0x208f18
leaq -0xb4(%rbp), %rsi
movl $0x1, %r8d
callq 0x5d230
jmp 0xc7137
jmp 0xc722c
movq -0x20(%rbp), %rax
movq %rax, -0x348(%rbp)
movl -0x30(%rbp), %esi
movl -0x2c(%rbp), %edx
leaq -0xdc(%rbp), %rdi
callq 0x5c2c0
jmp 0xc715b
leaq -0x30(%rbp), %rdi
callq 0x5a5a0
movl %eax, -0x34c(%rbp)
jmp 0xc716c
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x34e(%rbp)
jmp 0xc717e
movw -0x34e(%rbp), %ax
cwtl
shll $0x4, %eax
cvtsi2sd %eax, %xmm0
movsd 0xc032b(%rip), %xmm1    # 0x1874c0
divsd %xmm1, %xmm0
callq 0x5a970
movq %rax, -0x358(%rbp)
jmp 0xc71a7
movl -0x34c(%rbp), %esi
movq -0x358(%rbp), %rax
movl %eax, %edx
leaq -0xe4(%rbp), %rdi
callq 0x59260
jmp 0xc71c4
leaq -0xd4(%rbp), %rdi
leaq -0xdc(%rbp), %rsi
leaq -0xe4(%rbp), %rdx
callq 0x59ff0
jmp 0xc71e0
movq 0x141db9(%rip), %rax    # 0x208fa0
movl (%rax), %eax
movl %eax, -0x35c(%rbp)
leaq -0xec(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
jmp 0xc7201
movl -0x35c(%rbp), %ecx
movq -0x348(%rbp), %rdi
movq 0x141433(%rip), %rdx    # 0x208648
leaq -0xd4(%rbp), %rsi
leaq -0xec(%rbp), %r8
callq 0x5c110
jmp 0xc722a
jmp 0xc722c
movq -0x308(%rbp), %rdi
movq (%rdi), %rax
movq 0x48(%rax), %rax
callq *%rax
movq %rax, -0x368(%rbp)
jmp 0xc7245
movq -0x368(%rbp), %rax
movq %rax, -0x10c(%rbp)
leaq -0x124(%rbp), %rdi
movl $0x2, %esi
movl $0x3, %edx
callq 0x5c2c0
jmp 0xc726b
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x36a(%rbp)
jmp 0xc727d
movw -0x36a(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x124(%rbp), %rdi
callq 0x5a300
movq %rax, -0x378(%rbp)
jmp 0xc729e
movq -0x378(%rbp), %rax
movq %rax, -0x11c(%rbp)
leaq -0x11c(%rbp), %rdi
movsd 0xc0205(%rip), %xmm0    # 0x1874c0
callq 0x5cd70
movq %rax, -0x380(%rbp)
jmp 0xc72c9
movq -0x380(%rbp), %rax
movq %rax, -0x114(%rbp)
leaq -0x10c(%rbp), %rdi
leaq -0x114(%rbp), %rsi
callq 0x5ca20
movq %rax, -0x388(%rbp)
jmp 0xc72f3
movq -0x388(%rbp), %rax
movq %rax, -0x104(%rbp)
leaq -0x13c(%rbp), %rdi
movl $0x9, %edx
movl %edx, %esi
callq 0x59260
jmp 0xc7316
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x38a(%rbp)
jmp 0xc7328
movw -0x38a(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x13c(%rbp), %rdi
callq 0x5a7b0
movq %rax, -0x398(%rbp)
jmp 0xc7349
movq -0x398(%rbp), %rax
movq %rax, -0x134(%rbp)
leaq -0x134(%rbp), %rdi
movsd 0xc015a(%rip), %xmm0    # 0x1874c0
callq 0x5c6b0
movq %rax, -0x3a0(%rbp)
jmp 0xc7374
movq -0x3a0(%rbp), %rax
movq %rax, -0x12c(%rbp)
leaq -0xfc(%rbp), %rdi
leaq -0x104(%rbp), %rsi
leaq -0x12c(%rbp), %rdx
callq 0x59ff0
jmp 0xc739e
leaq -0xfc(%rbp), %rdi
callq 0x5a5a0
movl %eax, -0x3a4(%rbp)
jmp 0xc73b2
movl -0x3a4(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0xc748d
leaq -0x164(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5c2c0
jmp 0xc73de
leaq -0xfc(%rbp), %rdi
leaq -0x164(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x3b8(%rbp)
movq %rax, -0x3b0(%rbp)
jmp 0xc7401
movq -0x3b8(%rbp), %rax
movq -0x3b0(%rbp), %rcx
movq %rcx, -0x15c(%rbp)
movq %rax, -0x154(%rbp)
leaq -0x16c(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x59260
jmp 0xc7432
leaq -0x15c(%rbp), %rdi
leaq -0x16c(%rbp), %rsi
callq 0x5c040
movq %rdx, -0x3c8(%rbp)
movq %rax, -0x3c0(%rbp)
jmp 0xc7455
movq -0x3c8(%rbp), %rax
movq -0x3c0(%rbp), %rcx
movq %rcx, -0x14c(%rbp)
movq %rax, -0x144(%rbp)
movq -0x14c(%rbp), %rax
movq %rax, -0xfc(%rbp)
movq -0x144(%rbp), %rax
movq %rax, -0xf4(%rbp)
movl -0xf8(%rbp), %eax
movl -0xf0(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jg 0xc77b8
movq -0x20(%rbp), %rax
movq %rax, -0x3d8(%rbp)
movq 0x141aea(%rip), %rax    # 0x208fa0
movl (%rax), %eax
movl %eax, -0x3cc(%rbp)
leaq -0x174(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
jmp 0xc74d0
movl -0x3cc(%rbp), %ecx
movq -0x3d8(%rbp), %rdi
movq 0x141164(%rip), %rdx    # 0x208648
leaq -0xfc(%rbp), %rsi
leaq -0x174(%rbp), %r8
callq 0x5c110
jmp 0xc74f9
movq -0x20(%rbp), %rax
movq %rax, -0x3e8(%rbp)
movq 0x1412ed(%rip), %rax    # 0x2087f8
movl (%rax), %eax
movl %eax, -0x3dc(%rbp)
leaq -0x17c(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
jmp 0xc7525
movl -0x3dc(%rbp), %ecx
movq -0x3e8(%rbp), %rdi
movq 0x1413f7(%rip), %rdx    # 0x208930
leaq -0xfc(%rbp), %rsi
leaq -0x17c(%rbp), %r8
callq 0x5c110
jmp 0xc754e
movl -0xf8(%rbp), %eax
movl -0xf0(%rbp), %ecx
subl $0x3, %ecx
cmpl %ecx, %eax
jg 0xc77b6
movq -0x308(%rbp), %rdi
movl -0xfc(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x3f0(%rbp)
movq (%rdi), %rax
movq 0x160(%rax), %rax
callq *%rax
movb %al, -0x3e9(%rbp)
jmp 0xc758f
movl -0x3f0(%rbp), %esi
movb -0x3e9(%rbp), %al
movzbl %al, %eax
andl $0x1, %eax
addl %eax, %esi
movl -0xf8(%rbp), %edx
movl -0xf0(%rbp), %eax
addl %eax, %edx
movl %edx, %eax
shrl $0x1f, %eax
addl %eax, %edx
sarl %edx
leaq -0x188(%rbp), %rdi
callq 0x5c2c0
jmp 0xc75c8
movq -0x308(%rbp), %rdi
movl -0xf4(%rbp), %eax
addl $-0x2, %eax
movl %eax, -0x3f8(%rbp)
movq (%rdi), %rax
movq 0x160(%rax), %rax
callq *%rax
movb %al, -0x3f1(%rbp)
jmp 0xc75f2
movl -0x3f8(%rbp), %esi
movb -0x3f1(%rbp), %al
movzbl %al, %eax
andl $0x1, %eax
addl %eax, %esi
movl -0xf8(%rbp), %edx
movl -0xf0(%rbp), %eax
addl %eax, %edx
movl %edx, %eax
shrl $0x1f, %eax
addl %eax, %edx
sarl %edx
leaq -0x190(%rbp), %rdi
callq 0x5c2c0
jmp 0xc762b
movq 0x1417ae(%rip), %rsi    # 0x208de0
leaq -0x1a0(%rbp), %rdi
callq 0x5c720
jmp 0xc7640
movq -0x308(%rbp), %rax
testb $0x1, 0xcc(%rax)
jne 0xc766c
movq 0x1412d9(%rip), %rax    # 0x208930
movq (%rax), %rcx
movq %rcx, -0x1a0(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x198(%rbp)
movq -0x20(%rbp), %rdi
leaq -0x188(%rbp), %rsi
leaq -0x190(%rbp), %rdx
leaq -0x1a0(%rbp), %rcx
callq 0x5cce0
jmp 0xc768c
movq -0x308(%rbp), %rdi
callq 0x5b1b0
movb %al, -0x3f9(%rbp)
jmp 0xc76a0
movb -0x3f9(%rbp), %al
testb $0x1, %al
jne 0xc77b4
jmp 0xc76b0
movq -0x308(%rbp), %rdi
movl -0xfc(%rbp), %eax
movl -0xf4(%rbp), %ecx
addl %ecx, %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %ecx, %eax
sarl %eax
movl %eax, -0x400(%rbp)
movq (%rdi), %rax
movq 0x160(%rax), %rax
callq *%rax
movb %al, -0x3fa(%rbp)
jmp 0xc76e8
movl -0x400(%rbp), %esi
movb -0x3fa(%rbp), %al
movzbl %al, %eax
andl $0x1, %eax
addl %eax, %esi
movl -0xf8(%rbp), %edx
addl $0x2, %edx
leaq -0x1a8(%rbp), %rdi
callq 0x5c2c0
jmp 0xc7713
movq -0x308(%rbp), %rdi
movq -0x1a8(%rbp), %rax
movq %rax, -0x188(%rbp)
movl -0xfc(%rbp), %eax
movl -0xf4(%rbp), %ecx
addl %ecx, %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %ecx, %eax
sarl %eax
movl %eax, -0x408(%rbp)
movq (%rdi), %rax
movq 0x160(%rax), %rax
callq *%rax
movb %al, -0x401(%rbp)
jmp 0xc7759
movl -0x408(%rbp), %esi
movb -0x401(%rbp), %al
movzbl %al, %eax
andl $0x1, %eax
addl %eax, %esi
movl -0xf0(%rbp), %edx
addl $-0x2, %edx
leaq -0x1b0(%rbp), %rdi
callq 0x5c2c0
jmp 0xc7784
movq -0x1b0(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x20(%rbp), %rdi
leaq -0x188(%rbp), %rsi
leaq -0x190(%rbp), %rdx
leaq -0x1a0(%rbp), %rcx
callq 0x5cce0
jmp 0xc77b2
jmp 0xc77b4
jmp 0xc77b6
jmp 0xc77b8
movq -0x308(%rbp), %rax
movq 0x190(%rax), %rdi
callq 0x5bb10
movq %rax, -0x410(%rbp)
jmp 0xc77d4
movq -0x410(%rbp), %rdi
movq 0x14177e(%rip), %rax    # 0x208f60
movswl (%rax), %esi
callq 0x5bc10
movb %al, -0x411(%rbp)
jmp 0xc77f2
movb -0x411(%rbp), %al
testb $0x1, %al
jne 0xc7801
jmp 0xc7e8e
movq -0x308(%rbp), %rax
movq 0x190(%rax), %rdi
callq 0x59890
movl %eax, -0x418(%rbp)
jmp 0xc781c
movl -0x418(%rbp), %eax
cmpl $0x0, %eax
jle 0xc7e8e
testb $0x1, -0x81(%rbp)
je 0xc7e8e
movl $0x0, -0x1b4(%rbp)
movq -0x308(%rbp), %rax
movl -0x1b4(%rbp), %ecx
movl %ecx, -0x420(%rbp)
movq 0x190(%rax), %rdi
callq 0x59890
movl %eax, -0x41c(%rbp)
jmp 0xc7869
movl -0x420(%rbp), %eax
movl -0x41c(%rbp), %ecx
cmpl %ecx, %eax
jge 0xc7e89
movq -0x308(%rbp), %rdi
movq (%rdi), %rax
movq 0x48(%rax), %rax
callq *%rax
movq %rax, -0x428(%rbp)
jmp 0xc7896
movq -0x308(%rbp), %rax
movq -0x428(%rbp), %rcx
movq %rcx, -0x1dc(%rbp)
movq 0xcf8(%rax), %rdi
movq (%rdi), %rax
movq 0x50(%rax), %rax
callq *%rax
movq %rax, -0x430(%rbp)
jmp 0xc78c4
movq -0x430(%rbp), %rax
movq %rax, -0x1ec(%rbp)
movl -0x1e8(%rbp), %eax
movl %eax, -0x438(%rbp)
movq 0x1414c3(%rip), %rsi    # 0x208da8
leaq -0x80(%rbp), %rdi
callq 0x5bde0
movl %eax, -0x434(%rbp)
jmp 0xc78f6
movl -0x434(%rbp), %ecx
movl -0x438(%rbp), %eax
subl %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd 0xbfa78(%rip), %xmm1    # 0x187388
mulsd %xmm1, %xmm0
callq 0x5b240
movq %rax, -0x440(%rbp)
jmp 0xc7922
movq -0x440(%rbp), %rax
movl %eax, %edx
addl $-0x2, %edx
leaq -0x1e4(%rbp), %rdi
xorl %esi, %esi
callq 0x5c2c0
jmp 0xc793e
leaq -0x1dc(%rbp), %rdi
leaq -0x1e4(%rbp), %rsi
callq 0x5ca20
movq %rax, -0x448(%rbp)
jmp 0xc795a
movq -0x448(%rbp), %rax
movq %rax, -0x1d4(%rbp)
leaq -0x204(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5c2c0
jmp 0xc797d
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x44a(%rbp)
jmp 0xc798f
movw -0x44a(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x204(%rbp), %rdi
callq 0x5a300
movq %rax, -0x458(%rbp)
jmp 0xc79b0
movq -0x458(%rbp), %rax
movq %rax, -0x1fc(%rbp)
leaq -0x1fc(%rbp), %rdi
movsd 0xbfaf3(%rip), %xmm0    # 0x1874c0
callq 0x5cd70
movq %rax, -0x460(%rbp)
jmp 0xc79db
movq -0x460(%rbp), %rax
movq %rax, -0x1f4(%rbp)
leaq -0x1d4(%rbp), %rdi
leaq -0x1f4(%rbp), %rsi
callq 0x5ca20
movq %rax, -0x468(%rbp)
jmp 0xc7a05
movq -0x308(%rbp), %rdi
movq -0x468(%rbp), %rax
movq %rax, -0x1cc(%rbp)
callq 0x5bf70
movq %rax, -0x470(%rbp)
jmp 0xc7a28
leaq -0x234(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x59260
jmp 0xc7a3d
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x472(%rbp)
jmp 0xc7a4f
movw -0x472(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x234(%rbp), %rdi
callq 0x5a7b0
movq %rax, -0x480(%rbp)
jmp 0xc7a70
movq -0x480(%rbp), %rax
movq %rax, -0x22c(%rbp)
leaq -0x22c(%rbp), %rdi
movsd 0xbfa33(%rip), %xmm0    # 0x1874c0
callq 0x5c6b0
movq %rax, -0x488(%rbp)
jmp 0xc7a9b
movq -0x488(%rbp), %rax
movq %rax, -0x224(%rbp)
leaq -0x224(%rbp), %rdi
movsd 0xbf8c0(%rip), %xmm0    # 0x187378
callq 0x5a7b0
movq %rax, -0x490(%rbp)
jmp 0xc7ac6
movq -0x470(%rbp), %rdi
movq -0x490(%rbp), %rax
movq %rax, -0x21c(%rbp)
leaq -0x21c(%rbp), %rsi
callq 0x5db90
movq %rax, -0x498(%rbp)
jmp 0xc7af0
movq -0x498(%rbp), %rax
movq %rax, -0x214(%rbp)
leaq -0x23c(%rbp), %rdi
movl $0x1, %esi
xorl %edx, %edx
callq 0x59260
jmp 0xc7b13
leaq -0x214(%rbp), %rdi
leaq -0x23c(%rbp), %rsi
callq 0x5db90
movq %rax, -0x4a0(%rbp)
jmp 0xc7b2f
movq -0x4a0(%rbp), %rax
movq %rax, -0x20c(%rbp)
leaq -0x1c4(%rbp), %rdi
leaq -0x1cc(%rbp), %rsi
leaq -0x20c(%rbp), %rdx
callq 0x59ff0
jmp 0xc7b59
movq -0x308(%rbp), %rax
movq 0x190(%rax), %rdi
movl -0x1b4(%rbp), %esi
callq 0x5ce70
movl %eax, -0x4a4(%rbp)
jmp 0xc7b7a
movl -0x4a4(%rbp), %eax
addl -0x1c4(%rbp), %eax
movl %eax, -0x1c4(%rbp)
cmpl $0x0, -0x1b4(%rbp)
jne 0xc7be7
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x4a6(%rbp)
jmp 0xc7ba7
movw -0x4a6(%rbp), %ax
movswl %ax, %ecx
shll $0x2, %ecx
movl %ecx, %eax
leal (%rax,%rax,2), %eax
cvtsi2sd %eax, %xmm0
movsd 0xbf8fb(%rip), %xmm1    # 0x1874c0
divsd %xmm1, %xmm0
callq 0x5a970
movq %rax, -0x4b0(%rbp)
jmp 0xc7bd7
movq -0x4b0(%rbp), %rax
movq %rax, -0x4b8(%rbp)
jmp 0xc7bf2
xorl %eax, %eax
movq %rax, -0x4b8(%rbp)
jmp 0xc7bf2
movq -0x308(%rbp), %rax
movq -0x4b8(%rbp), %rdx
movl -0x1c4(%rbp), %ecx
addl %edx, %ecx
movl %ecx, -0x1c4(%rbp)
movq 0x190(%rax), %rdi
callq 0x59890
movl %eax, -0x4bc(%rbp)
jmp 0xc7c22
movl -0x4bc(%rbp), %eax
movl -0x1b4(%rbp), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jl 0xc7d7c
movq -0x308(%rbp), %rax
movl -0x1c4(%rbp), %ecx
movl %ecx, -0x4c4(%rbp)
movq 0x190(%rax), %rdi
movl -0x1b4(%rbp), %esi
incl %esi
callq 0x5ce70
movl %eax, -0x4c0(%rbp)
jmp 0xc7c68
movq -0x308(%rbp), %rax
movq 0x190(%rax), %rdi
movl -0x1b4(%rbp), %esi
callq 0x5ce70
movl %eax, -0x4c8(%rbp)
jmp 0xc7c89
movl -0x4c4(%rbp), %eax
movl -0x4c8(%rbp), %edx
movl -0x4c0(%rbp), %ecx
subl %edx, %ecx
addl %ecx, %eax
cltq
movq %rax, -0x4d0(%rbp)
cmpl $0x0, -0x1b4(%rbp)
jne 0xc7d03
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x4d2(%rbp)
jmp 0xc7cc3
movw -0x4d2(%rbp), %ax
movswl %ax, %ecx
shll $0x2, %ecx
movl %ecx, %eax
leal (%rax,%rax,2), %eax
cvtsi2sd %eax, %xmm0
movsd 0xbf7df(%rip), %xmm1    # 0x1874c0
divsd %xmm1, %xmm0
callq 0x5a970
movq %rax, -0x4e0(%rbp)
jmp 0xc7cf3
movq -0x4e0(%rbp), %rax
movq %rax, -0x4e8(%rbp)
jmp 0xc7d0e
xorl %eax, %eax
movq %rax, -0x4e8(%rbp)
jmp 0xc7d0e
movq -0x4d0(%rbp), %rax
movq -0x4e8(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x4f8(%rbp)
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x4ea(%rbp)
jmp 0xc7d38
movw -0x4ea(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
movsd 0xbf774(%rip), %xmm1    # 0x1874c0
divsd %xmm1, %xmm0
callq 0x5a970
movq %rax, -0x500(%rbp)
jmp 0xc7d5e
movq -0x4f8(%rbp), %rax
movq -0x500(%rbp), %rcx
shlq %rcx
subq %rcx, %rax
subq $0x1, %rax
movl %eax, -0x1bc(%rbp)
movq -0x308(%rbp), %rsi
movl -0x1b4(%rbp), %edx
leaq -0x258(%rbp), %rdi
callq 0x5d8e0
jmp 0xc7d97
movq -0x308(%rbp), %rax
movq 0x190(%rax), %rdi
movl -0x1b4(%rbp), %esi
callq 0x5cee0
movl %eax, -0x504(%rbp)
jmp 0xc7db8
movl -0x504(%rbp), %eax
cmpl $0x20, %eax
jne 0xc7e49
movl -0x1c4(%rbp), %eax
movl %eax, -0x510(%rbp)
movl -0x1bc(%rbp), %eax
movl %eax, -0x50c(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x5ac00
movl %eax, -0x508(%rbp)
jmp 0xc7df7
movl -0x510(%rbp), %edi
movl -0x508(%rbp), %eax
movl -0x50c(%rbp), %esi
subl %eax, %esi
callq 0x5aae0
movl %eax, -0x514(%rbp)
jmp 0xc7e18
movl -0x514(%rbp), %eax
movl %eax, -0x1c4(%rbp)
jmp 0xc7e49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x5df00
jmp 0xc82a1
movq -0x20(%rbp), %rdi
leaq -0x258(%rbp), %rsi
leaq -0x1c4(%rbp), %rdx
leaq -0x80(%rbp), %rcx
xorl %r8d, %r8d
callq 0x5c3f0
jmp 0xc7e69
leaq -0x258(%rbp), %rdi
callq 0x5df00
movl -0x1b4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1b4(%rbp)
jmp 0xc7842
jmp 0xc8284
movq -0x308(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, -0x530(%rbp)
movq %rax, %rcx
addq $0xf0, %rcx
movq %rcx, -0x528(%rbp)
movq 0xcf8(%rax), %rdi
movq (%rdi), %rax
movq 0x50(%rax), %rax
callq *%rax
movq %rax, -0x520(%rbp)
jmp 0xc7eca
movq -0x520(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movl -0x2b4(%rbp), %eax
movl %eax, -0x538(%rbp)
movq 0x140ebd(%rip), %rsi    # 0x208da8
leaq -0x80(%rbp), %rdi
callq 0x5bde0
movl %eax, -0x534(%rbp)
jmp 0xc7efc
movl -0x534(%rbp), %ecx
movl -0x538(%rbp), %eax
subl %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd 0xbf472(%rip), %xmm1    # 0x187388
mulsd %xmm1, %xmm0
callq 0x5b240
movq %rax, -0x540(%rbp)
jmp 0xc7f28
movq -0x540(%rbp), %rax
movl %eax, %edx
addl $-0x2, %edx
leaq -0x2b0(%rbp), %rdi
xorl %esi, %esi
callq 0x5c2c0
jmp 0xc7f44
leaq -0x30(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x550(%rbp)
movq %rax, -0x548(%rbp)
jmp 0xc7f64
movq -0x550(%rbp), %rax
movq -0x548(%rbp), %rcx
movq %rcx, -0x2a8(%rbp)
movq %rax, -0x2a0(%rbp)
leaq -0x2d0(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5c2c0
jmp 0xc7f95
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x552(%rbp)
jmp 0xc7fa7
movw -0x552(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x2d0(%rbp), %rdi
callq 0x5a300
movq %rax, -0x560(%rbp)
jmp 0xc7fc8
movq -0x560(%rbp), %rax
movq %rax, -0x2c8(%rbp)
leaq -0x2c8(%rbp), %rdi
movsd 0xbf4db(%rip), %xmm0    # 0x1874c0
callq 0x5cd70
movq %rax, -0x568(%rbp)
jmp 0xc7ff3
movq -0x568(%rbp), %rax
movq %rax, -0x2c0(%rbp)
leaq -0x2a8(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x578(%rbp)
movq %rax, -0x570(%rbp)
jmp 0xc8024
movq -0x578(%rbp), %rax
movq -0x570(%rbp), %rcx
movq %rcx, -0x298(%rbp)
movq %rax, -0x290(%rbp)
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x57a(%rbp)
jmp 0xc8052
movw -0x57a(%rbp), %ax
movswl %ax, %ecx
shll $0x2, %ecx
movl %ecx, %eax
leal (%rax,%rax,2), %eax
cvtsi2sd %eax, %xmm0
movsd 0xbf450(%rip), %xmm1    # 0x1874c0
divsd %xmm1, %xmm0
callq 0x5a970
movq %rax, -0x588(%rbp)
jmp 0xc8082
movq -0x588(%rbp), %rax
movl %eax, %esi
leaq -0x2d8(%rbp), %rdi
xorl %edx, %edx
callq 0x5c2c0
jmp 0xc809b
leaq -0x298(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x598(%rbp)
movq %rax, -0x590(%rbp)
jmp 0xc80be
movq -0x598(%rbp), %rax
movq -0x590(%rbp), %rcx
movq %rcx, -0x288(%rbp)
movq %rax, -0x280(%rbp)
leaq -0x2f8(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x59260
jmp 0xc80ef
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x59a(%rbp)
jmp 0xc8101
movw -0x59a(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x2f8(%rbp), %rdi
callq 0x5a7b0
movq %rax, -0x5a8(%rbp)
jmp 0xc8122
movq -0x5a8(%rbp), %rax
movq %rax, -0x2f0(%rbp)
leaq -0x2f0(%rbp), %rdi
movsd 0xbf381(%rip), %xmm0    # 0x1874c0
callq 0x5c6b0
movq %rax, -0x5b0(%rbp)
jmp 0xc814d
movq -0x5b0(%rbp), %rax
movq %rax, -0x2e8(%rbp)
leaq -0x2e8(%rbp), %rdi
movsd 0xbf20e(%rip), %xmm0    # 0x187378
callq 0x5a7b0
movq %rax, -0x5b8(%rbp)
jmp 0xc8178
movq -0x5b8(%rbp), %rax
movq %rax, -0x2e0(%rbp)
leaq -0x288(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x5c040
movq %rdx, -0x5c8(%rbp)
movq %rax, -0x5c0(%rbp)
jmp 0xc81a9
movq -0x5c8(%rbp), %rax
movq -0x5c0(%rbp), %rcx
movq %rcx, -0x278(%rbp)
movq %rax, -0x270(%rbp)
movq -0x20(%rbp), %rdi
callq 0x5d470
movw %ax, -0x5ca(%rbp)
jmp 0xc81d7
movw -0x5ca(%rbp), %ax
movswl %ax, %ecx
shll $0x2, %ecx
movl %ecx, %eax
leal (%rax,%rax,2), %eax
cvtsi2sd %eax, %xmm0
movsd 0xbf2cb(%rip), %xmm1    # 0x1874c0
divsd %xmm1, %xmm0
callq 0x5a970
movq %rax, -0x5d8(%rbp)
jmp 0xc8207
movq -0x5d8(%rbp), %rax
movl %eax, %esi
leaq -0x300(%rbp), %rdi
xorl %edx, %edx
callq 0x59260
jmp 0xc8220
leaq -0x278(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x5c040
movq %rdx, -0x5e8(%rbp)
movq %rax, -0x5e0(%rbp)
jmp 0xc8243
movq -0x528(%rbp), %rsi
movq -0x530(%rbp), %rdi
movq -0x5e8(%rbp), %rax
movq -0x5e0(%rbp), %rcx
movq %rcx, -0x268(%rbp)
movq %rax, -0x260(%rbp)
leaq -0x268(%rbp), %rdx
leaq -0x80(%rbp), %rcx
xorl %r8d, %r8d
callq 0x5c3f0
jmp 0xc8282
jmp 0xc8284
movq -0x20(%rbp), %rdi
callq 0x5d270
jmp 0xc828f
leaq -0x80(%rbp), %rdi
callq 0x5abf0
addq $0x5f0, %rsp            # imm = 0x5F0
popq %rbp
retq
leaq -0x80(%rbp), %rdi
callq 0x5abf0
movq -0x90(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)