// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/special/cursor.cpp
// Function: smooth::GUI::Cursor::DrawWidget()
S::Int S::GUI::Cursor::DrawWidget()
{
	Int	 nMaxScrollPos = Math::Max(0, (Int) Math::Ceil((Float) (font.GetUnscaledTextSizeY(text) - GetHeight()) / (font.GetUnscaledTextSizeY() + 3)));

	if (nMaxScrollPos != maxScrollPos)
	{
		maxScrollPos = nMaxScrollPos;

		if (maxScrollPos == 0) scrollPos = 0;

		onScroll.Emit(scrollPos, maxScrollPos);
	}

	Int	 textLength = text.Length();

	if (lineIndices.Length() == 0)
	{
		lineIndices.Add(0);

		for (Int i = 0; i <= textLength; i++)
		{
			if (text[i] != '\n' && text[i] != 0) continue;

			lineIndices.Add(i + 1);
		}
	}

	Surface	*surface = GetDrawSurface();
	Point	 realPos = GetRealPosition();
	Rect	 frame	 = Rect(realPos, GetRealSize());

	surface->StartPaint(GetVisibleArea());

	surface->Box(frame, GetBackgroundColor(), Rect::Filled);

	Int	 lineNumber = scrollPos;

	for (Int lineStart = lineIndices.GetNth(lineNumber); lineStart <= textLength; lineStart = lineIndices.GetNth(++lineNumber))
	{
		if ((lineNumber - scrollPos) * (font.GetUnscaledTextSizeY() + 3) >= frame.GetHeight()) break;

		Int	 lineLength = lineIndices.GetNth(lineNumber + 1) - lineStart - 1;
		String	 line	    = text.SubString(lineStart, lineLength);

		if (!Binary::IsFlagSet(container->GetFlags(), EDB_ASTERISK)) surface->SetText(ConvertTabs(line, tabSize),      frame + Point(-visibleOffset, (lineNumber - scrollPos) * (font.GetScaledTextSizeY() + 3)) + Point(0, 1) * surface->GetSurfaceDPI() / 96.0 + Size(visibleOffset, -2), font);
		else							     surface->SetText(String().FillN('*', lineLength), frame + Point(-visibleOffset, (lineNumber - scrollPos) * (font.GetScaledTextSizeY() + 3)) + Point(0, 1) * surface->GetSurfaceDPI() / 96.0 + Size(visibleOffset, -2), font);

		if (markStart != markEnd && markStart >= 0 && markEnd >= 0)
		{
			Int	 lineMarkStart = Math::Max(0, Math::Min(markStart, markEnd) - lineStart);
			Int	 lineMarkEnd   = Math::Min(lineLength, Math::Max(markStart, markEnd) - lineStart);

			if (lineMarkStart < lineLength && lineMarkEnd > 0)
			{
				Array<Int>	 markRegionStarts;
				Array<Int>	 markRegionEnds;

				if (Setup::useIconv && ContainsRTLCharacters(line))
				{
					FriBidiStrIndex	 length = lineLength;

					/* Get visual positions.
					 */
					FriBidiStrIndex	*positions = new FriBidiStrIndex [length + 1];
					FriBidiParType	 type = (IsRightToLeft() ? FRIBIDI_PAR_RTL : FRIBIDI_PAR_LTR);

					fribidi_log2vis((FriBidiChar *) line.ConvertTo("UCS-4LE"), length, &type, NIL, positions, NIL, NIL);

					/* Find marked regions in visual string.
					 */
					for (Int i = lineMarkStart; i < lineMarkEnd; i++)
					{
						Bool	 done = False;

						for (Int j = 0; j < markRegionStarts.Length(); j++)
						{
							if	(markRegionStarts.GetNth(j) == positions[i] + 1) { markRegionStarts.SetNth(j, markRegionStarts.GetNth(j) - 1); done = True; break; }
							else if (markRegionEnds.GetNth(j)   == positions[i]    ) { markRegionEnds.SetNth(j, markRegionEnds.GetNth(j) + 1);     done = True; break; }
						}

						if (!done)
						{
							markRegionStarts.Add(positions[i]);
							markRegionEnds.Add(positions[i] + 1);
						}
					}

					delete [] positions;

					/* Consolidate adjacent regions into one.
					 */
					for (Int i = 0; i < markRegionStarts.Length() - 1; i++)
					{
						for (Int j = i + 1; j < markRegionStarts.Length(); j++)
						{
							if (markRegionStarts.GetNth(i) < markRegionStarts.GetNth(j) &&
							    markRegionEnds.GetNth(i) >= markRegionStarts.GetNth(j))
							{
								markRegionEnds.SetNth(i, markRegionEnds.GetNth(j));

								markRegionStarts.RemoveNth(j);
								markRegionEnds.RemoveNth(j);

								j--;
							}
							else if (markRegionStarts.GetNth(j) < markRegionStarts.GetNth(i) &&
								 markRegionEnds.GetNth(j) >= markRegionStarts.GetNth(i))
							{
								markRegionStarts.SetNth(i, markRegionStarts.GetNth(j));

								markRegionStarts.RemoveNth(j);
								markRegionEnds.RemoveNth(j);

								j--;
							}
						}
					}
				}
				else
				{
					markRegionStarts.Add(lineMarkStart);
					markRegionEnds.Add(lineMarkEnd);
				}

				/* Draw marked regions.
				 */
				for (Int i = 0; i < markRegionStarts.Length(); i++)
				{
					Int	 markRegionStart = GetDisplayCursorPositionFromVisual(line, markRegionStarts.GetNth(i));
					Int	 markRegionEnd	 = GetDisplayCursorPositionFromVisual(line, markRegionEnds.GetNth(i));

					Rect	 markRect = Rect(realPos + Point(Math::Min(markRegionStart, markRegionEnd), (lineNumber - scrollPos) * (font.GetScaledTextSizeY() + 3)) + Point(0, 1) * surface->GetSurfaceDPI() / 96.0 - Point(0, 1), Size(Math::Abs(markRegionEnd - markRegionStart), font.GetScaledTextSizeY() + 3));
					Font	 nFont = font;

					nFont.SetColor(Setup::HighlightTextColor);

					surface->StartPaint(markRect);

					surface->Box(markRect, Setup::HighlightColor, Rect::Filled);

					if (!Binary::IsFlagSet(container->GetFlags(), EDB_ASTERISK)) surface->SetText(ConvertTabs(line, tabSize),      frame + Point(-visibleOffset, (lineNumber - scrollPos) * (font.GetScaledTextSizeY() + 3)) + Point(0, 1) * surface->GetSurfaceDPI() / 96.0 + Size(visibleOffset, -2), nFont);
					else							     surface->SetText(String().FillN('*', lineLength), frame + Point(-visibleOffset, (lineNumber - scrollPos) * (font.GetScaledTextSizeY() + 3)) + Point(0, 1) * surface->GetSurfaceDPI() / 96.0 + Size(visibleOffset, -2), nFont);

					surface->EndPaint();
				}
			}
		}
	}

	surface->EndPaint();

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x770, %rsp            # imm = 0x770
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
movq %rsi, -0x408(%rbp)
movq %rsi, %rdi
addq $0x140, %rdi            # imm = 0x140
addq $0xf0, %rsi
callq 0x5d5e0
movq -0x408(%rbp), %rdi
movl %eax, -0x414(%rbp)
callq 0x5b860
movq -0x408(%rbp), %rdi
movl %eax, %ecx
movl -0x414(%rbp), %eax
subl %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x410(%rbp)
addq $0x140, %rdi            # imm = 0x140
movq 0x13e94b(%rip), %rsi    # 0x208da8
callq 0x5d5e0
movsd -0x410(%rbp), %xmm0
addl $0x3, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
callq 0x5b240
movl %eax, %esi
xorl %edi, %edi
callq 0x5aae0
movq -0x408(%rbp), %rcx
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl 0x5d8(%rcx), %eax
je 0xca4e4
movq -0x408(%rbp), %rax
movl -0xc(%rbp), %ecx
movl %ecx, 0x5d8(%rax)
cmpl $0x0, 0x5d8(%rax)
jne 0xca4c2
movq -0x408(%rbp), %rax
movl $0x0, 0x5d4(%rax)
movq -0x408(%rbp), %rax
movq %rax, %rdi
addq $0x748, %rdi            # imm = 0x748
movl 0x5d4(%rax), %esi
movl 0x5d8(%rax), %edx
callq 0x908f0
movq -0x408(%rbp), %rdi
addq $0xf0, %rdi
callq 0x5b800
movq -0x408(%rbp), %rdi
movl %eax, -0x10(%rbp)
addq $0x5e8, %rdi            # imm = 0x5E8
callq 0x5c990
cmpl $0x0, %eax
jne 0xca5a8
movq -0x408(%rbp), %rdi
addq $0x5e8, %rdi            # imm = 0x5E8
movl $0x0, -0x14(%rbp)
leaq -0x14(%rbp), %rsi
callq 0xb5920
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x10(%rbp), %eax
jg 0xca5a6
movq -0x408(%rbp), %rdi
addq $0xf0, %rdi
movl -0x18(%rbp), %esi
callq 0x5d4e0
cmpl $0xa, (%rax)
je 0xca57b
movq -0x408(%rbp), %rdi
addq $0xf0, %rdi
movl -0x18(%rbp), %esi
callq 0x5d4e0
cmpl $0x0, (%rax)
je 0xca57b
jmp 0xca59b
movq -0x408(%rbp), %rdi
addq $0x5e8, %rdi            # imm = 0x5E8
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
leaq -0x1c(%rbp), %rsi
callq 0xb5920
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xca53b
jmp 0xca5a8
movq -0x408(%rbp), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq -0x408(%rbp), %rdi
movq %rax, -0x28(%rbp)
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x408(%rbp), %rdi
movq %rax, -0x30(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, -0x48(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x59ff0
movq -0x408(%rbp), %rdi
movq -0x28(%rbp), %rax
movq %rax, -0x430(%rbp)
movq (%rdi), %rax
callq *0x130(%rax)
movq -0x430(%rbp), %rdi
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
leaq -0x58(%rbp), %rsi
callq 0x591b0
movq -0x408(%rbp), %rdi
movq -0x28(%rbp), %rax
movq %rax, -0x428(%rbp)
movq (%rdi), %rax
callq *0x140(%rax)
movq %rax, -0x420(%rbp)
movq 0x13e958(%rip), %rax    # 0x208fa0
movl (%rax), %eax
movl %eax, -0x418(%rbp)
leaq -0x60(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
movq -0x428(%rbp), %rdi
movq -0x420(%rbp), %rdx
movl -0x418(%rbp), %ecx
leaq -0x40(%rbp), %rsi
leaq -0x60(%rbp), %r8
callq 0x5c110
movq -0x408(%rbp), %rdi
movl 0x5d4(%rdi), %eax
movl %eax, -0x64(%rbp)
addq $0x5e8, %rdi            # imm = 0x5E8
movl -0x64(%rbp), %esi
callq 0xb5a70
movl (%rax), %eax
movl %eax, -0x68(%rbp)
movl -0x68(%rbp), %eax
cmpl -0x10(%rbp), %eax
jg 0xcbcf1
movq -0x408(%rbp), %rdi
movl -0x64(%rbp), %eax
subl 0x5d4(%rdi), %eax
movl %eax, -0x438(%rbp)
addq $0x140, %rdi            # imm = 0x140
movq 0x13e6d6(%rip), %rsi    # 0x208da8
callq 0x5d5e0
movl %eax, %ecx
movl -0x438(%rbp), %eax
addl $0x3, %ecx
imull %ecx, %eax
movl %eax, -0x434(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x591a0
movl %eax, %ecx
movl -0x434(%rbp), %eax
cmpl %ecx, %eax
jl 0xca705
jmp 0xcbcf1
movq -0x408(%rbp), %rdi
addq $0x5e8, %rdi            # imm = 0x5E8
movl -0x64(%rbp), %esi
incl %esi
callq 0xb5a70
movq -0x408(%rbp), %rsi
movl (%rax), %ecx
movl -0x68(%rbp), %eax
notl %eax
addl %ecx, %eax
movl %eax, -0x6c(%rbp)
addq $0xf0, %rsi
movl -0x68(%rbp), %edx
movl -0x6c(%rbp), %ecx
leaq -0x88(%rbp), %rdi
callq 0x5dc20
movq -0x408(%rbp), %rax
movq 0x190(%rax), %rdi
callq 0x5a120
movl %eax, -0x43c(%rbp)
jmp 0xca764
movl -0x43c(%rbp), %edi
movl $0x2, %esi
callq 0x5ce30
movb %al, -0x43d(%rbp)
jmp 0xca77c
movb -0x43d(%rbp), %al
testb $0x1, %al
jne 0xca9f3
jmp 0xca78c
movq -0x408(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, -0x448(%rbp)
movl 0x5e4(%rax), %edx
leaq -0xb0(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x5af90
jmp 0xca7b9
movq -0x408(%rbp), %rdi
movl 0x5d0(%rdi), %eax
movl 0x5d4(%rdi), %ecx
negl %eax
movl %eax, -0x454(%rbp)
movl -0x64(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x450(%rbp)
addq $0x140, %rdi            # imm = 0x140
movq 0x13e5bb(%rip), %rsi    # 0x208da8
callq 0x5bde0
movl %eax, -0x44c(%rbp)
jmp 0xca7fa
movl -0x454(%rbp), %esi
movl -0x450(%rbp), %edx
movl -0x44c(%rbp), %eax
addl $0x3, %eax
imull %eax, %edx
leaq -0xe8(%rbp), %rdi
callq 0x5c2c0
jmp 0xca820
leaq -0x40(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x468(%rbp)
movq %rax, -0x460(%rbp)
jmp 0xca840
movq -0x468(%rbp), %rax
movq -0x460(%rbp), %rcx
movq %rcx, -0xe0(%rbp)
movq %rax, -0xd8(%rbp)
leaq -0x100(%rbp), %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x5c2c0
jmp 0xca871
movq -0x28(%rbp), %rdi
callq 0x5d470
movw %ax, -0x46a(%rbp)
jmp 0xca883
movw -0x46a(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x100(%rbp), %rdi
callq 0x5a300
movq %rax, -0x478(%rbp)
jmp 0xca8a4
movq -0x478(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0xf8(%rbp), %rdi
movsd 0xbcbff(%rip), %xmm0    # 0x1874c0
callq 0x5cd70
movq %rax, -0x480(%rbp)
jmp 0xca8cf
movq -0x480(%rbp), %rax
movq %rax, -0xf0(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x490(%rbp)
movq %rax, -0x488(%rbp)
jmp 0xca900
movq -0x408(%rbp), %rax
movq -0x490(%rbp), %rcx
movq -0x488(%rbp), %rdx
movq %rdx, -0xd0(%rbp)
movq %rcx, -0xc8(%rbp)
movl 0x5d0(%rax), %esi
leaq -0x108(%rbp), %rdi
movl $0xfffffffe, %edx       # imm = 0xFFFFFFFE
callq 0x59260
jmp 0xca93c
leaq -0xd0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x5ab30
movq %rdx, -0x4a0(%rbp)
movq %rax, -0x498(%rbp)
jmp 0xca95f
movq -0x448(%rbp), %rdi
movq -0x408(%rbp), %rcx
movq -0x4a0(%rbp), %rax
movq -0x498(%rbp), %rdx
movq %rdx, -0xc0(%rbp)
movq %rax, -0xb8(%rbp)
addq $0x140, %rcx            # imm = 0x140
leaq -0xb0(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
xorl %r8d, %r8d
callq 0x5c3f0
jmp 0xca9a8
leaq -0xb0(%rbp), %rdi
callq 0x5df00
jmp 0xcac4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xcbce3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x5df00
jmp 0xcbce3
movq -0x28(%rbp), %rax
movq %rax, -0x4a8(%rbp)
leaq -0x120(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0xcaa0e
movl -0x6c(%rbp), %edx
leaq -0x120(%rbp), %rdi
movl $0x2a, %esi
callq 0x5c480
movq %rax, -0x4b0(%rbp)
jmp 0xcaa2b
movq -0x408(%rbp), %rdi
movl 0x5d0(%rdi), %eax
movl 0x5d4(%rdi), %ecx
negl %eax
movl %eax, -0x4bc(%rbp)
movl -0x64(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4b8(%rbp)
addq $0x140, %rdi            # imm = 0x140
movq 0x13e349(%rip), %rsi    # 0x208da8
callq 0x5bde0
movl %eax, -0x4b4(%rbp)
jmp 0xcaa6c
movl -0x4bc(%rbp), %esi
movl -0x4b8(%rbp), %edx
movl -0x4b4(%rbp), %eax
addl $0x3, %eax
imull %eax, %edx
leaq -0x158(%rbp), %rdi
callq 0x5c2c0
jmp 0xcaa92
leaq -0x40(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x4d0(%rbp)
movq %rax, -0x4c8(%rbp)
jmp 0xcaab2
movq -0x4d0(%rbp), %rax
movq -0x4c8(%rbp), %rcx
movq %rcx, -0x150(%rbp)
movq %rax, -0x148(%rbp)
leaq -0x170(%rbp), %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x5c2c0
jmp 0xcaae3
movq -0x28(%rbp), %rdi
callq 0x5d470
movw %ax, -0x4d2(%rbp)
jmp 0xcaaf5
movw -0x4d2(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x170(%rbp), %rdi
callq 0x5a300
movq %rax, -0x4e0(%rbp)
jmp 0xcab16
movq -0x4e0(%rbp), %rax
movq %rax, -0x168(%rbp)
leaq -0x168(%rbp), %rdi
movsd 0xbc98d(%rip), %xmm0    # 0x1874c0
callq 0x5cd70
movq %rax, -0x4e8(%rbp)
jmp 0xcab41
movq -0x4e8(%rbp), %rax
movq %rax, -0x160(%rbp)
leaq -0x150(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x4f8(%rbp)
movq %rax, -0x4f0(%rbp)
jmp 0xcab72
movq -0x408(%rbp), %rax
movq -0x4f8(%rbp), %rcx
movq -0x4f0(%rbp), %rdx
movq %rdx, -0x140(%rbp)
movq %rcx, -0x138(%rbp)
movl 0x5d0(%rax), %esi
leaq -0x178(%rbp), %rdi
movl $0xfffffffe, %edx       # imm = 0xFFFFFFFE
callq 0x59260
jmp 0xcabae
leaq -0x140(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x5ab30
movq %rdx, -0x508(%rbp)
movq %rax, -0x500(%rbp)
jmp 0xcabd1
movq -0x4b0(%rbp), %rsi
movq -0x4a8(%rbp), %rdi
movq -0x408(%rbp), %rcx
movq -0x508(%rbp), %rax
movq -0x500(%rbp), %rdx
movq %rdx, -0x130(%rbp)
movq %rax, -0x128(%rbp)
addq $0x140, %rcx            # imm = 0x140
leaq -0x130(%rbp), %rdx
xorl %r8d, %r8d
callq 0x5c3f0
jmp 0xcac1a
leaq -0x120(%rbp), %rdi
callq 0x5df00
jmp 0xcac4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x5df00
jmp 0xcbce3
movq -0x408(%rbp), %rcx
movl 0x5c8(%rcx), %eax
cmpl 0x5cc(%rcx), %eax
je 0xcbcb1
movq -0x408(%rbp), %rax
cmpl $0x0, 0x5c8(%rax)
jl 0xcbcb1
movq -0x408(%rbp), %rax
cmpl $0x0, 0x5cc(%rax)
jl 0xcbcb1
movq -0x408(%rbp), %rax
movl 0x5c8(%rax), %edi
movl 0x5cc(%rax), %esi
callq 0x5ce90
movl %eax, -0x50c(%rbp)
jmp 0xcacac
movl -0x50c(%rbp), %esi
movl -0x68(%rbp), %eax
subl %eax, %esi
xorl %edi, %edi
callq 0x5aae0
movl %eax, -0x510(%rbp)
jmp 0xcacc6
movq -0x408(%rbp), %rax
movl -0x510(%rbp), %ecx
movl %ecx, -0x17c(%rbp)
movl -0x6c(%rbp), %ecx
movl %ecx, -0x518(%rbp)
movl 0x5c8(%rax), %edi
movl 0x5cc(%rax), %esi
callq 0x5aae0
movl %eax, -0x514(%rbp)
jmp 0xcacfb
movl -0x518(%rbp), %edi
movl -0x514(%rbp), %esi
movl -0x68(%rbp), %eax
subl %eax, %esi
callq 0x5ce90
movl %eax, -0x51c(%rbp)
jmp 0xcad19
movl -0x51c(%rbp), %eax
movl %eax, -0x180(%rbp)
movl -0x17c(%rbp), %eax
cmpl -0x6c(%rbp), %eax
jge 0xcbcaf
cmpl $0x0, -0x180(%rbp)
jle 0xcbcaf
leaq -0x1d8(%rbp), %rdi
callq 0xb5640
jmp 0xcad4f
leaq -0x230(%rbp), %rdi
callq 0xb5640
jmp 0xcad5d
movq 0x13d5cc(%rip), %rax    # 0x208330
testb $0x1, (%rax)
je 0xcb3c0
leaq -0x88(%rbp), %rdi
callq 0x5bb50
movb %al, -0x51d(%rbp)
jmp 0xcad81
movb -0x51d(%rbp), %al
testb $0x1, %al
jne 0xcad90
jmp 0xcb3c0
movl -0x6c(%rbp), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
incl %eax
cltq
movl $0x4, %ecx
mulq %rcx
movq %rax, %rdi
movq $-0x1, %rax
cmovoq %rax, %rdi
callq 0x5ab20
movq %rax, -0x528(%rbp)
jmp 0xcadc7
movq -0x408(%rbp), %rdi
movq -0x528(%rbp), %rax
movq %rax, -0x240(%rbp)
movq (%rdi), %rax
movq 0x160(%rax), %rax
callq *%rax
movb %al, -0x529(%rbp)
jmp 0xcadf0
movb -0x529(%rbp), %al
movzbl %al, %eax
andl $0x1, %eax
orl $0x110, %eax            # imm = 0x110
movl %eax, -0x244(%rbp)
leaq 0xbfe8b(%rip), %rsi     # 0x18ac99
leaq -0x88(%rbp), %rdi
callq 0x5c120
movq %rax, -0x538(%rbp)
jmp 0xcae23
movq -0x538(%rbp), %rdi
movl -0x234(%rbp), %esi
movq -0x240(%rbp), %r8
movq %rsp, %rax
movq $0x0, (%rax)
xorl %eax, %eax
movl %eax, %r9d
leaq -0x244(%rbp), %rdx
movq %r9, %rcx
callq 0x5a370
jmp 0xcae57
movl -0x17c(%rbp), %eax
movl %eax, -0x248(%rbp)
movl -0x248(%rbp), %eax
cmpl -0x180(%rbp), %eax
jge 0xcb095
movb $0x0, -0x249(%rbp)
movl $0x0, -0x250(%rbp)
movl -0x250(%rbp), %eax
movl %eax, -0x540(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x5c990
movl %eax, -0x53c(%rbp)
jmp 0xcaea6
movl -0x540(%rbp), %eax
movl -0x53c(%rbp), %ecx
cmpl %ecx, %eax
jge 0xcb026
movl -0x250(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x548(%rbp)
jmp 0xcaed5
movq -0x548(%rbp), %rax
movl (%rax), %eax
movq -0x240(%rbp), %rcx
movslq -0x248(%rbp), %rdx
movl (%rcx,%rdx,4), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jne 0xcaf81
movl -0x250(%rbp), %esi
movl %esi, -0x554(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x550(%rbp)
jmp 0xcaf1b
movl -0x554(%rbp), %esi
movq -0x550(%rbp), %rax
movl (%rax), %eax
decl %eax
movl %eax, -0x254(%rbp)
leaq -0x1d8(%rbp), %rdi
leaq -0x254(%rbp), %rdx
callq 0xb5b30
jmp 0xcaf47
movb $0x1, -0x249(%rbp)
jmp 0xcb026
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xcbca1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xcbc95
movl -0x250(%rbp), %esi
leaq -0x230(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x560(%rbp)
jmp 0xcaf9c
movq -0x560(%rbp), %rax
movl (%rax), %eax
movq -0x240(%rbp), %rcx
movslq -0x248(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0xcb00e
movl -0x250(%rbp), %esi
movl %esi, -0x56c(%rbp)
leaq -0x230(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x568(%rbp)
jmp 0xcafd9
movl -0x56c(%rbp), %esi
movq -0x568(%rbp), %rax
movl (%rax), %eax
incl %eax
movl %eax, -0x258(%rbp)
leaq -0x230(%rbp), %rdi
leaq -0x258(%rbp), %rdx
callq 0xb5b30
jmp 0xcb005
movb $0x1, -0x249(%rbp)
jmp 0xcb026
jmp 0xcb010
jmp 0xcb012
movl -0x250(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x250(%rbp)
jmp 0xcae86
testb $0x1, -0x249(%rbp)
jne 0xcb07f
movq -0x240(%rbp), %rax
movslq -0x248(%rbp), %rcx
leaq (%rax,%rcx,4), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0xb5920
jmp 0xcb04f
movq -0x240(%rbp), %rax
movslq -0x248(%rbp), %rcx
movl (%rax,%rcx,4), %eax
incl %eax
movl %eax, -0x25c(%rbp)
leaq -0x230(%rbp), %rdi
leaq -0x25c(%rbp), %rsi
callq 0xb5920
jmp 0xcb07d
jmp 0xcb07f
jmp 0xcb081
movl -0x248(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x248(%rbp)
jmp 0xcae63
movq -0x240(%rbp), %rax
movq %rax, -0x578(%rbp)
cmpq $0x0, %rax
je 0xcb0b5
movq -0x578(%rbp), %rdi
callq 0x5a5e0
movl $0x0, -0x260(%rbp)
movl -0x260(%rbp), %eax
movl %eax, -0x580(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x5c990
movl %eax, -0x57c(%rbp)
jmp 0xcb0df
movl -0x580(%rbp), %eax
movl -0x57c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0xcb3be
movl -0x260(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x264(%rbp)
movl -0x264(%rbp), %eax
movl %eax, -0x588(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x5c990
movl %eax, -0x584(%rbp)
jmp 0xcb125
movl -0x588(%rbp), %eax
movl -0x584(%rbp), %ecx
cmpl %ecx, %eax
jge 0xcb3a8
movl -0x260(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x590(%rbp)
jmp 0xcb154
movq -0x590(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x59c(%rbp)
movl -0x264(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x598(%rbp)
jmp 0xcb17e
movl -0x59c(%rbp), %eax
movq -0x598(%rbp), %rcx
cmpl (%rcx), %eax
jge 0xcb267
movl -0x260(%rbp), %esi
leaq -0x230(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x5a8(%rbp)
jmp 0xcb1ae
movq -0x5a8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x5b4(%rbp)
movl -0x264(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x5b0(%rbp)
jmp 0xcb1d8
movl -0x5b4(%rbp), %eax
movq -0x5b0(%rbp), %rcx
cmpl (%rcx), %eax
jl 0xcb267
movl -0x260(%rbp), %eax
movl %eax, -0x5c4(%rbp)
movl -0x264(%rbp), %esi
leaq -0x230(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x5c0(%rbp)
jmp 0xcb210
movq -0x5c0(%rbp), %rdx
movl -0x5c4(%rbp), %esi
leaq -0x230(%rbp), %rdi
callq 0xb5b30
jmp 0xcb22b
movl -0x264(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5e00
jmp 0xcb23f
movl -0x264(%rbp), %esi
leaq -0x230(%rbp), %rdi
callq 0xb5e00
jmp 0xcb253
movl -0x264(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x264(%rbp)
jmp 0xcb392
movl -0x264(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x5d0(%rbp)
jmp 0xcb282
movq -0x5d0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x5dc(%rbp)
movl -0x260(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x5d8(%rbp)
jmp 0xcb2ac
movl -0x5dc(%rbp), %eax
movq -0x5d8(%rbp), %rcx
cmpl (%rcx), %eax
jge 0xcb390
movl -0x264(%rbp), %esi
leaq -0x230(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x5e8(%rbp)
jmp 0xcb2dc
movq -0x5e8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x5f4(%rbp)
movl -0x260(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x5f0(%rbp)
jmp 0xcb306
movl -0x5f4(%rbp), %eax
movq -0x5f0(%rbp), %rcx
cmpl (%rcx), %eax
jl 0xcb390
movl -0x260(%rbp), %eax
movl %eax, -0x604(%rbp)
movl -0x264(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x600(%rbp)
jmp 0xcb33e
movq -0x600(%rbp), %rdx
movl -0x604(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5b30
jmp 0xcb359
movl -0x264(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5e00
jmp 0xcb36d
movl -0x264(%rbp), %esi
leaq -0x230(%rbp), %rdi
callq 0xb5e00
jmp 0xcb381
movl -0x264(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x264(%rbp)
jmp 0xcb392
jmp 0xcb394
movl -0x264(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x264(%rbp)
jmp 0xcb105
jmp 0xcb3aa
movl -0x260(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x260(%rbp)
jmp 0xcb0bf
jmp 0xcb3ec
leaq -0x1d8(%rbp), %rdi
leaq -0x17c(%rbp), %rsi
callq 0xb5920
jmp 0xcb3d5
leaq -0x230(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xb5920
jmp 0xcb3ea
jmp 0xcb3ec
movl $0x0, -0x268(%rbp)
movl -0x268(%rbp), %eax
movl %eax, -0x60c(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x5c990
movl %eax, -0x608(%rbp)
jmp 0xcb416
movl -0x60c(%rbp), %eax
movl -0x608(%rbp), %ecx
cmpl %ecx, %eax
jge 0xcbc7b
movl -0x268(%rbp), %esi
leaq -0x1d8(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x618(%rbp)
jmp 0xcb445
movq -0x408(%rbp), %rdi
movq -0x618(%rbp), %rax
movl (%rax), %edx
leaq -0x88(%rbp), %rsi
callq 0x59440
movl %eax, -0x61c(%rbp)
jmp 0xcb469
movl -0x61c(%rbp), %eax
movl %eax, -0x26c(%rbp)
movl -0x268(%rbp), %esi
leaq -0x230(%rbp), %rdi
callq 0xb5a70
movq %rax, -0x628(%rbp)
jmp 0xcb490
movq -0x408(%rbp), %rdi
movq -0x628(%rbp), %rax
movl (%rax), %edx
leaq -0x88(%rbp), %rsi
callq 0x59440
movl %eax, -0x62c(%rbp)
jmp 0xcb4b4
movl -0x62c(%rbp), %eax
movl %eax, -0x270(%rbp)
movl -0x26c(%rbp), %edi
movl -0x270(%rbp), %esi
callq 0x5ce90
movl %eax, -0x630(%rbp)
jmp 0xcb4d9
movq -0x408(%rbp), %rdi
movl -0x64(%rbp), %eax
movl 0x5d4(%rdi), %ecx
subl %ecx, %eax
movl %eax, -0x638(%rbp)
addq $0x140, %rdi            # imm = 0x140
movq 0x13d8a9(%rip), %rsi    # 0x208da8
callq 0x5bde0
movl %eax, -0x634(%rbp)
jmp 0xcb50c
movl -0x630(%rbp), %esi
movl -0x638(%rbp), %edx
movl -0x634(%rbp), %eax
addl $0x3, %eax
imull %eax, %edx
leaq -0x2a0(%rbp), %rdi
callq 0x5c2c0
jmp 0xcb532
leaq -0x30(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x5ca20
movq %rax, -0x640(%rbp)
jmp 0xcb54b
movq -0x640(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq -0x2b8(%rbp), %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x5c2c0
jmp 0xcb56e
movq -0x28(%rbp), %rdi
callq 0x5d470
movw %ax, -0x642(%rbp)
jmp 0xcb580
movw -0x642(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x2b8(%rbp), %rdi
callq 0x5a300
movq %rax, -0x650(%rbp)
jmp 0xcb5a1
movq -0x650(%rbp), %rax
movq %rax, -0x2b0(%rbp)
leaq -0x2b0(%rbp), %rdi
movsd 0xbbf02(%rip), %xmm0    # 0x1874c0
callq 0x5cd70
movq %rax, -0x658(%rbp)
jmp 0xcb5cc
movq -0x658(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x298(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x5ca20
movq %rax, -0x660(%rbp)
jmp 0xcb5f6
movq -0x660(%rbp), %rax
movq %rax, -0x290(%rbp)
leaq -0x2c0(%rbp), %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x5c2c0
jmp 0xcb619
leaq -0x290(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x5cbd0
movq %rax, -0x668(%rbp)
jmp 0xcb635
movq -0x668(%rbp), %rax
movq %rax, -0x288(%rbp)
movl -0x270(%rbp), %edi
movl -0x26c(%rbp), %eax
subl %eax, %edi
callq 0x5c600
movl %eax, -0x66c(%rbp)
jmp 0xcb65e
movq -0x408(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
movq 0x13d735(%rip), %rsi    # 0x208da8
callq 0x5bde0
movl %eax, -0x670(%rbp)
jmp 0xcb680
movl -0x66c(%rbp), %esi
movl -0x670(%rbp), %edx
addl $0x3, %edx
leaq -0x2c8(%rbp), %rdi
callq 0x59260
jmp 0xcb69d
leaq -0x280(%rbp), %rdi
leaq -0x288(%rbp), %rsi
leaq -0x2c8(%rbp), %rdx
callq 0x59ff0
jmp 0xcb6b9
movq -0x408(%rbp), %rsi
addq $0x140, %rsi            # imm = 0x140
leaq -0x308(%rbp), %rdi
callq 0x59da0
jmp 0xcb6d5
movq 0x13cfec(%rip), %rsi    # 0x2086c8
leaq -0x308(%rbp), %rdi
callq 0x5d110
jmp 0xcb6ea
movq -0x28(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x591b0
jmp 0xcb6fc
movq -0x28(%rbp), %rax
movq %rax, -0x680(%rbp)
movq 0x13d892(%rip), %rax    # 0x208fa0
movl (%rax), %eax
movl %eax, -0x674(%rbp)
leaq -0x310(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
jmp 0xcb728
movl -0x674(%rbp), %ecx
movq -0x680(%rbp), %rdi
movq 0x13ccfc(%rip), %rdx    # 0x208438
leaq -0x280(%rbp), %rsi
leaq -0x310(%rbp), %r8
callq 0x5c110
jmp 0xcb751
movq -0x408(%rbp), %rax
movq 0x190(%rax), %rdi
callq 0x5a120
movl %eax, -0x684(%rbp)
jmp 0xcb76c
movl -0x684(%rbp), %edi
movl $0x2, %esi
callq 0x5ce30
movb %al, -0x685(%rbp)
jmp 0xcb784
movb -0x685(%rbp), %al
testb $0x1, %al
jne 0xcb9f4
jmp 0xcb794
movq -0x408(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, -0x690(%rbp)
movl 0x5e4(%rax), %edx
leaq -0x328(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x5af90
jmp 0xcb7c1
movq -0x408(%rbp), %rdi
movl 0x5d0(%rdi), %eax
movl 0x5d4(%rdi), %ecx
negl %eax
movl %eax, -0x69c(%rbp)
movl -0x64(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x698(%rbp)
addq $0x140, %rdi            # imm = 0x140
movq 0x13d5b3(%rip), %rsi    # 0x208da8
callq 0x5bde0
movl %eax, -0x694(%rbp)
jmp 0xcb802
movl -0x69c(%rbp), %esi
movl -0x698(%rbp), %edx
movl -0x694(%rbp), %eax
addl $0x3, %eax
imull %eax, %edx
leaq -0x360(%rbp), %rdi
callq 0x5c2c0
jmp 0xcb828
leaq -0x40(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x6b0(%rbp)
movq %rax, -0x6a8(%rbp)
jmp 0xcb848
movq -0x6b0(%rbp), %rax
movq -0x6a8(%rbp), %rcx
movq %rcx, -0x358(%rbp)
movq %rax, -0x350(%rbp)
leaq -0x378(%rbp), %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x5c2c0
jmp 0xcb879
movq -0x28(%rbp), %rdi
callq 0x5d470
movw %ax, -0x6b2(%rbp)
jmp 0xcb88b
movw -0x6b2(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x378(%rbp), %rdi
callq 0x5a300
movq %rax, -0x6c0(%rbp)
jmp 0xcb8ac
movq -0x6c0(%rbp), %rax
movq %rax, -0x370(%rbp)
leaq -0x370(%rbp), %rdi
movsd 0xbbbf7(%rip), %xmm0    # 0x1874c0
callq 0x5cd70
movq %rax, -0x6c8(%rbp)
jmp 0xcb8d7
movq -0x6c8(%rbp), %rax
movq %rax, -0x368(%rbp)
leaq -0x358(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x6d8(%rbp)
movq %rax, -0x6d0(%rbp)
jmp 0xcb908
movq -0x408(%rbp), %rax
movq -0x6d8(%rbp), %rcx
movq -0x6d0(%rbp), %rdx
movq %rdx, -0x348(%rbp)
movq %rcx, -0x340(%rbp)
movl 0x5d0(%rax), %esi
leaq -0x380(%rbp), %rdi
movl $0xfffffffe, %edx       # imm = 0xFFFFFFFE
callq 0x59260
jmp 0xcb944
leaq -0x348(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x5ab30
movq %rdx, -0x6e8(%rbp)
movq %rax, -0x6e0(%rbp)
jmp 0xcb967
movq -0x690(%rbp), %rdi
movq -0x6e8(%rbp), %rax
movq -0x6e0(%rbp), %rcx
movq %rcx, -0x338(%rbp)
movq %rax, -0x330(%rbp)
leaq -0x328(%rbp), %rsi
leaq -0x338(%rbp), %rdx
leaq -0x308(%rbp), %rcx
xorl %r8d, %r8d
callq 0x5c3f0
jmp 0xcb9a9
leaq -0x328(%rbp), %rdi
callq 0x5df00
jmp 0xcbc42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xcbc6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x328(%rbp), %rdi
callq 0x5df00
jmp 0xcbc6d
movq -0x28(%rbp), %rax
movq %rax, -0x6f0(%rbp)
leaq -0x398(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0xcba0f
movl -0x6c(%rbp), %edx
leaq -0x398(%rbp), %rdi
movl $0x2a, %esi
callq 0x5c480
movq %rax, -0x6f8(%rbp)
jmp 0xcba2c
movq -0x408(%rbp), %rdi
movl 0x5d0(%rdi), %eax
movl 0x5d4(%rdi), %ecx
negl %eax
movl %eax, -0x704(%rbp)
movl -0x64(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x700(%rbp)
addq $0x140, %rdi            # imm = 0x140
movq 0x13d348(%rip), %rsi    # 0x208da8
callq 0x5bde0
movl %eax, -0x6fc(%rbp)
jmp 0xcba6d
movl -0x704(%rbp), %esi
movl -0x700(%rbp), %edx
movl -0x6fc(%rbp), %eax
addl $0x3, %eax
imull %eax, %edx
leaq -0x3d0(%rbp), %rdi
callq 0x5c2c0
jmp 0xcba93
leaq -0x40(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x718(%rbp)
movq %rax, -0x710(%rbp)
jmp 0xcbab3
movq -0x718(%rbp), %rax
movq -0x710(%rbp), %rcx
movq %rcx, -0x3c8(%rbp)
movq %rax, -0x3c0(%rbp)
leaq -0x3e8(%rbp), %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x5c2c0
jmp 0xcbae4
movq -0x28(%rbp), %rdi
callq 0x5d470
movw %ax, -0x71a(%rbp)
jmp 0xcbaf6
movw -0x71a(%rbp), %ax
cwtl
cvtsi2sd %eax, %xmm0
leaq -0x3e8(%rbp), %rdi
callq 0x5a300
movq %rax, -0x728(%rbp)
jmp 0xcbb17
movq -0x728(%rbp), %rax
movq %rax, -0x3e0(%rbp)
leaq -0x3e0(%rbp), %rdi
movsd 0xbb98c(%rip), %xmm0    # 0x1874c0
callq 0x5cd70
movq %rax, -0x730(%rbp)
jmp 0xcbb42
movq -0x730(%rbp), %rax
movq %rax, -0x3d8(%rbp)
leaq -0x3c8(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x5be80
movq %rdx, -0x740(%rbp)
movq %rax, -0x738(%rbp)
jmp 0xcbb73
movq -0x408(%rbp), %rax
movq -0x740(%rbp), %rcx
movq -0x738(%rbp), %rdx
movq %rdx, -0x3b8(%rbp)
movq %rcx, -0x3b0(%rbp)
movl 0x5d0(%rax), %esi
leaq -0x3f0(%rbp), %rdi
movl $0xfffffffe, %edx       # imm = 0xFFFFFFFE
callq 0x59260
jmp 0xcbbaf
leaq -0x3b8(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x5ab30
movq %rdx, -0x750(%rbp)
movq %rax, -0x748(%rbp)
jmp 0xcbbd2
movq -0x6f8(%rbp), %rsi
movq -0x6f0(%rbp), %rdi
movq -0x750(%rbp), %rax
movq -0x748(%rbp), %rcx
movq %rcx, -0x3a8(%rbp)
movq %rax, -0x3a0(%rbp)
leaq -0x3a8(%rbp), %rdx
leaq -0x308(%rbp), %rcx
xorl %r8d, %r8d
callq 0x5c3f0
jmp 0xcbc14
leaq -0x398(%rbp), %rdi
callq 0x5df00
jmp 0xcbc42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x398(%rbp), %rdi
callq 0x5df00
jmp 0xcbc6d
movq -0x28(%rbp), %rdi
callq 0x5d270
jmp 0xcbc4d
leaq -0x308(%rbp), %rdi
callq 0x5abf0
movl -0x268(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x268(%rbp)
jmp 0xcb3f6
leaq -0x308(%rbp), %rdi
callq 0x5abf0
jmp 0xcbc95
leaq -0x230(%rbp), %rdi
callq 0xb5900
leaq -0x1d8(%rbp), %rdi
callq 0xb5900
jmp 0xcbcaf
leaq -0x230(%rbp), %rdi
callq 0xb5900
leaq -0x1d8(%rbp), %rdi
callq 0xb5900
jmp 0xcbce3
jmp 0xcbcb1
leaq -0x88(%rbp), %rdi
callq 0x5df00
movq -0x408(%rbp), %rdi
addq $0x5e8, %rdi            # imm = 0x5E8
movl -0x64(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x64(%rbp)
callq 0xb5a70
movl (%rax), %eax
movl %eax, -0x68(%rbp)
jmp 0xca6a2
leaq -0x88(%rbp), %rdi
callq 0x5df00
jmp 0xcbd5a
movq -0x28(%rbp), %rdi
callq 0x5d270
leaq -0x400(%rbp), %rdi
movq %rdi, -0x760(%rbp)
callq 0x5ca80
movq -0x760(%rbp), %rdi
callq 0x59680
movl %eax, -0x754(%rbp)
jmp 0xcbd21
leaq -0x400(%rbp), %rdi
callq 0x5a410
movl -0x754(%rbp), %eax
addq $0x770, %rsp            # imm = 0x770
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x400(%rbp), %rdi
callq 0x5a410
movq -0x90(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)