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

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

	switch (message)
	{
		case SP_PAINT:
		case SP_UPDATE:
			surface->StartPaint(GetVisibleArea());

			if (IsActive())	surface->Box(frame + Point(1, 1) - Size(2, 2), Setup::ClientColor, Rect::Filled);
			else		surface->Box(frame + Point(1, 1) - Size(2, 2), Setup::BackgroundColor, Rect::Filled);

			if (message != SP_UPDATE) surface->Frame(frame, FRAME_DOWN);

			if (value > 0)
			{
				Rect	 frame = Rect(GetRealPosition(), GetRealSize()) + Point(1, 1) - Size(2, 2);

				if (subtype == OR_HORZ)	frame.right = frame.left   + (Int) (frame.GetWidth() / ((Float) (endValue - startValue) / (Float) (value - startValue)));
				else			frame.top   = frame.bottom - (Int) (frame.GetHeight() / ((Float) (endValue - startValue) / (Float) (value - startValue)));

				/* Update gradient bitmap if necessary.
				 */
				if (gradient.GetSize() != GetRealSize() - Size(2, 2) || gradientDirection != IsRightToLeft()) CreateGradient(GetRealSize());

				gradient.BlitToSurface(Rect(Point(0 + (IsRightToLeft() ? gradient.GetSize().cx - frame.GetWidth() : 0), 0), frame.GetSize()), surface, frame);
			}

			if (subtype == OR_HORZ)
			{
				I18n::Translator	*i18n = I18n::Translator::defaultTranslator;

				switch (GetFlags())
				{
					case PB_NOTEXT:
						break;
					case PB_VALUE:
						text = String::FromInt((Int) Math::Max(value, startValue));
						break;
					case PB_PERCENT:
						if (value > 0)	text = i18n->TranslateString("%1%").Replace("%1", String::FromInt((Int) Math::Max(0, (Int) Math::Round(100 / ((Float) (endValue - startValue) / (Float) (value - startValue))))));
						else		text = i18n->TranslateString("%1%").Replace("%1", "0");

						break;
				}

				Point	 realPos  = GetRealPosition();

				Int	 textSize = font.GetScaledTextSizeX(text);
				Rect	 textRect = Rect(Point(realPos.x + (frame.GetWidth() - textSize) / 2, realPos.y + Math::Ceil(Float(frame.GetHeight() - font.GetScaledTextSizeY()) / 2) - 1), Size(textSize, frame.GetHeight() - Math::Round(2 * surface->GetSurfaceDPI() / 96.0) - 1));

				surface->SetText(text, textRect, font);

				if (value > 0)
				{
					textRect.right = realPos.x + (Int) ((frame.GetWidth() - 2) / ((Float) (endValue - startValue) / (Float) (value - startValue)));

					Font	 nFont = font;

					nFont.SetColor(Setup::GradientTextColor);

					surface->SetText(text, textRect, nFont);
				}
			}

			surface->EndPaint();

			break;
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3f0, %rsp            # imm = 0x3F0
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x2e8(%rbp)
movq (%rdi), %rax
callq *0x88(%rax)
testb $0x1, %al
jne 0x9e094
leaq -0x28(%rbp), %rdi
movq %rdi, -0x2f8(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x2f8(%rbp), %rdi
callq 0x59680
movl %eax, -0x2ec(%rbp)
jmp 0x9e063
movl -0x2ec(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x9ed43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5b5b0
jmp 0x9ed4f
movq -0x2e8(%rbp), %rdi
movq (%rdi), %rax
callq *0x90(%rax)
testb $0x1, %al
jne 0x9e0fd
leaq -0x48(%rbp), %rdi
movq %rdi, -0x308(%rbp)
callq 0x5ca80
movq -0x308(%rbp), %rdi
callq 0x59680
movl %eax, -0x2fc(%rbp)
jmp 0x9e0cc
movl -0x2fc(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x9ed43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5a410
jmp 0x9ed4f
movq -0x2e8(%rbp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
movq -0x2e8(%rbp), %rdi
movq %rax, -0x50(%rbp)
movq (%rdi), %rax
movq 0x48(%rax), %rax
callq *%rax
movq -0x2e8(%rbp), %rdi
movq %rax, -0x68(%rbp)
movq (%rdi), %rax
movq 0x50(%rax), %rax
callq *%rax
movq %rax, -0x70(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x59ff0
movl -0x14(%rbp), %eax
subl $0x1, %eax
ja 0x9eceb
jmp 0x9e158
movq -0x2e8(%rbp), %rdi
movq -0x50(%rbp), %rax
movq %rax, -0x310(%rbp)
movq (%rdi), %rax
callq *0x130(%rax)
movq -0x310(%rbp), %rdi
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
leaq -0x80(%rbp), %rsi
callq 0x591b0
movq -0x2e8(%rbp), %rdi
movq (%rdi), %rax
callq *0x98(%rax)
testb $0x1, %al
jne 0x9e1a4
jmp 0x9e25f
movq -0x50(%rbp), %rax
movq %rax, -0x320(%rbp)
leaq -0xa8(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5c2c0
leaq -0x60(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x5be80
movq %rax, -0xa0(%rbp)
movq %rdx, -0x98(%rbp)
leaq -0xb0(%rbp), %rdi
movl $0x2, %edx
movl %edx, %esi
callq 0x59260
leaq -0xa0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x5c040
movq %rax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
movq 0x16ad85(%rip), %rax    # 0x208fa0
movl (%rax), %eax
movl %eax, -0x314(%rbp)
leaq -0xb8(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
movq -0x320(%rbp), %rdi
movl -0x314(%rbp), %ecx
leaq -0x90(%rbp), %rsi
movq 0x16a3fa(%rip), %rdx    # 0x208648
leaq -0xb8(%rbp), %r8
callq 0x5c110
jmp 0x9e315
movq -0x50(%rbp), %rax
movq %rax, -0x330(%rbp)
leaq -0xe0(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5c2c0
leaq -0x60(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x5be80
movq %rax, -0xd8(%rbp)
movq %rdx, -0xd0(%rbp)
leaq -0xe8(%rbp), %rdi
movl $0x2, %edx
movl %edx, %esi
callq 0x59260
leaq -0xd8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x5c040
movq %rax, -0xc8(%rbp)
movq %rdx, -0xc0(%rbp)
movq 0x16acca(%rip), %rax    # 0x208fa0
movl (%rax), %eax
movl %eax, -0x324(%rbp)
leaq -0xf0(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
movq -0x330(%rbp), %rdi
movl -0x324(%rbp), %ecx
leaq -0xc8(%rbp), %rsi
movq 0x16a19f(%rip), %rdx    # 0x2084a8
leaq -0xf0(%rbp), %r8
callq 0x5c110
cmpl $0x1, -0x14(%rbp)
je 0x9e32d
movq -0x50(%rbp), %rdi
leaq -0x60(%rbp), %rsi
movl $0x1, %edx
callq 0x5c050
movq -0x2e8(%rbp), %rax
cmpl $0x0, 0x5c4(%rax)
jle 0x9e676
movq -0x2e8(%rbp), %rdi
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x2e8(%rbp), %rdi
movq %rax, -0x128(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, -0x130(%rbp)
leaq -0x120(%rbp), %rdi
leaq -0x128(%rbp), %rsi
leaq -0x130(%rbp), %rdx
callq 0x59ff0
leaq -0x138(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5c2c0
leaq -0x120(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x5be80
movq %rax, -0x110(%rbp)
movq %rdx, -0x108(%rbp)
leaq -0x140(%rbp), %rdi
movl $0x2, %edx
movl %edx, %esi
callq 0x59260
leaq -0x110(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x5c040
movq %rax, %rcx
movq -0x2e8(%rbp), %rax
movq %rcx, -0x100(%rbp)
movq %rdx, -0xf8(%rbp)
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0x9e462
movl -0x100(%rbp), %eax
movl %eax, -0x334(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x5a5a0
movq -0x2e8(%rbp), %rdx
movl %eax, %ecx
movl -0x334(%rbp), %eax
cvtsi2sd %ecx, %xmm0
movl 0x5cc(%rdx), %ecx
subl 0x5c8(%rdx), %ecx
cvtsi2sd %ecx, %xmm1
movl 0x5c4(%rdx), %ecx
subl 0x5c8(%rdx), %ecx
cvtsi2sd %ecx, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %ecx
addl %ecx, %eax
movl %eax, -0xf8(%rbp)
jmp 0x9e4c1
movl -0xf4(%rbp), %eax
movl %eax, -0x338(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x591a0
movq -0x2e8(%rbp), %rdx
movl %eax, %ecx
movl -0x338(%rbp), %eax
cvtsi2sd %ecx, %xmm0
movl 0x5cc(%rdx), %ecx
subl 0x5c8(%rdx), %ecx
cvtsi2sd %ecx, %xmm1
movl 0x5c4(%rdx), %ecx
subl 0x5c8(%rdx), %ecx
cvtsi2sd %ecx, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %ecx
subl %ecx, %eax
movl %eax, -0xfc(%rbp)
movq -0x2e8(%rbp), %rdi
addq $0x5b8, %rdi            # imm = 0x5B8
callq 0x5ce60
movq -0x2e8(%rbp), %rdi
movq %rax, -0x348(%rbp)
movq (%rdi), %rax
callq *0x50(%rax)
movq %rax, -0x150(%rbp)
leaq -0x158(%rbp), %rdi
movl $0x2, %edx
movl %edx, %esi
callq 0x59260
leaq -0x150(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x5db90
movq -0x348(%rbp), %rdi
movq %rax, -0x148(%rbp)
leaq -0x148(%rbp), %rsi
callq 0x5d9c0
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x339(%rbp)
jne 0x9e578
movq -0x2e8(%rbp), %rdi
movb 0x5c0(%rdi), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x34c(%rbp)
movq (%rdi), %rax
callq *0x160(%rax)
movb %al, %cl
movl -0x34c(%rbp), %eax
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
setne %al
movb %al, -0x339(%rbp)
movb -0x339(%rbp), %al
testb $0x1, %al
jne 0x9e584
jmp 0x9e5ab
movq -0x2e8(%rbp), %rdi
movq (%rdi), %rax
callq *0x50(%rax)
movq -0x2e8(%rbp), %rdi
movq %rax, -0x160(%rbp)
leaq -0x160(%rbp), %rsi
callq 0x59070
movq -0x2e8(%rbp), %rdi
movq %rdi, %rax
addq $0x5b8, %rax            # imm = 0x5B8
movq %rax, -0x358(%rbp)
movq (%rdi), %rax
callq *0x160(%rax)
testb $0x1, %al
jne 0x9e5d1
jmp 0x9e60a
movq -0x2e8(%rbp), %rdi
addq $0x5b8, %rdi            # imm = 0x5B8
callq 0x5ce60
movl (%rax), %eax
movl %eax, -0x360(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x5a5a0
movl %eax, %ecx
movl -0x360(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x35c(%rbp)
jmp 0x9e614
xorl %eax, %eax
movl %eax, -0x35c(%rbp)
jmp 0x9e614
movl -0x35c(%rbp), %esi
addl $0x0, %esi
leaq -0x178(%rbp), %rdi
xorl %edx, %edx
callq 0x5c2c0
leaq -0x100(%rbp), %rdi
callq 0x59e00
movq %rax, -0x180(%rbp)
leaq -0x170(%rbp), %rdi
leaq -0x178(%rbp), %rsi
leaq -0x180(%rbp), %rdx
callq 0x59ff0
movq -0x358(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq -0x170(%rbp), %rsi
leaq -0x100(%rbp), %rcx
callq 0x59df0
movq -0x2e8(%rbp), %rax
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0x9ece2
movq -0x2e8(%rbp), %rdi
movq 0x169d25(%rip), %rax    # 0x2083c0
movq (%rax), %rax
movq %rax, -0x188(%rbp)
callq 0x5a120
movl %eax, %ecx
movl %ecx, -0x364(%rbp)
testl %eax, %eax
je 0x9e6d9
jmp 0x9e6b8
movl -0x364(%rbp), %eax
subl $0x1, %eax
je 0x9e6de
jmp 0x9e6c5
movl -0x364(%rbp), %eax
subl $0x2, %eax
je 0x9e756
jmp 0x9ea60
jmp 0x9ea60
movq -0x2e8(%rbp), %rax
movl 0x5c4(%rax), %edi
movl 0x5c8(%rax), %esi
callq 0x5aae0
movslq %eax, %rsi
leaq -0x1a0(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x5b290
movq -0x2e8(%rbp), %rdi
movq -0x370(%rbp), %rsi
addq $0xf0, %rdi
callq 0x59760
jmp 0x9e728
leaq -0x1a0(%rbp), %rdi
callq 0x5df00
jmp 0x9ea60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x5df00
jmp 0x9ed4f
movq -0x2e8(%rbp), %rax
cmpl $0x0, 0x5c4(%rax)
jle 0x9e914
movq -0x188(%rbp), %rax
movq %rax, -0x388(%rbp)
leaq 0xeb7b1(%rip), %rsi     # 0x189f30
leaq -0x1d0(%rbp), %rdi
movq %rdi, -0x380(%rbp)
callq 0x5c1f0
movq -0x388(%rbp), %rdi
movq -0x380(%rbp), %rsi
callq 0x5cc30
movq %rax, -0x378(%rbp)
jmp 0x9e7ae
leaq 0xeb77f(%rip), %rsi     # 0x189f34
leaq -0x1e8(%rbp), %rdi
callq 0x5c1f0
jmp 0x9e7c3
movq -0x2e8(%rbp), %rcx
movl 0x5cc(%rcx), %edx
movl 0x5c4(%rcx), %eax
movl 0x5c8(%rcx), %ecx
subl %ecx, %edx
cvtsi2sd %edx, %xmm1
subl %ecx, %eax
cvtsi2sd %eax, %xmm0
divsd %xmm0, %xmm1
movsd 0xeb734(%rip), %xmm0    # 0x189f28
divsd %xmm1, %xmm0
callq 0x5a970
movq %rax, -0x390(%rbp)
jmp 0x9e806
movq -0x390(%rbp), %rax
movl %eax, %esi
xorl %edi, %edi
callq 0x5aae0
movl %eax, -0x394(%rbp)
jmp 0x9e81e
movl -0x394(%rbp), %eax
movslq %eax, %rsi
leaq -0x200(%rbp), %rdi
callq 0x5b290
jmp 0x9e835
movq -0x378(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
leaq -0x1e8(%rbp), %rdx
leaq -0x200(%rbp), %rcx
callq 0x5ca50
jmp 0x9e858
movq -0x2e8(%rbp), %rdi
addq $0xf0, %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x59760
jmp 0x9e874
leaq -0x1b8(%rbp), %rdi
callq 0x5df00
leaq -0x200(%rbp), %rdi
callq 0x5df00
leaq -0x1e8(%rbp), %rdi
callq 0x5df00
leaq -0x1d0(%rbp), %rdi
callq 0x5df00
jmp 0x9ea5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x9e903
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x9e8f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x9e8eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x5df00
leaq -0x200(%rbp), %rdi
callq 0x5df00
leaq -0x1e8(%rbp), %rdi
callq 0x5df00
leaq -0x1d0(%rbp), %rdi
callq 0x5df00
jmp 0x9ed4f
movq -0x188(%rbp), %rax
movq %rax, -0x3b0(%rbp)
leaq 0xeb607(%rip), %rsi     # 0x189f30
leaq -0x230(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0x5c1f0
movq -0x3b0(%rbp), %rdi
movq -0x3a8(%rbp), %rsi
callq 0x5cc30
movq %rax, -0x3a0(%rbp)
jmp 0x9e958
leaq 0xeb5d5(%rip), %rsi     # 0x189f34
leaq -0x248(%rbp), %rdi
callq 0x5c1f0
jmp 0x9e96d
leaq 0x12164c(%rip), %rsi    # 0x1bffc0
leaq -0x260(%rbp), %rdi
callq 0x5c1f0
jmp 0x9e982
movq -0x3a0(%rbp), %rsi
leaq -0x218(%rbp), %rdi
leaq -0x248(%rbp), %rdx
leaq -0x260(%rbp), %rcx
callq 0x5ca50
jmp 0x9e9a5
movq -0x2e8(%rbp), %rdi
addq $0xf0, %rdi
leaq -0x218(%rbp), %rsi
callq 0x59760
jmp 0x9e9c1
leaq -0x218(%rbp), %rdi
callq 0x5df00
leaq -0x260(%rbp), %rdi
callq 0x5df00
leaq -0x248(%rbp), %rdi
callq 0x5df00
leaq -0x230(%rbp), %rdi
callq 0x5df00
jmp 0x9ea5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x9ea4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x9ea41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x9ea35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x5df00
leaq -0x260(%rbp), %rdi
callq 0x5df00
leaq -0x248(%rbp), %rdi
callq 0x5df00
leaq -0x230(%rbp), %rdi
callq 0x5df00
jmp 0x9ed4f
jmp 0x9ea60
movq -0x2e8(%rbp), %rdi
movq (%rdi), %rax
callq *0x48(%rax)
movq -0x2e8(%rbp), %rsi
movq %rax, -0x268(%rbp)
movq %rsi, %rdi
addq $0x140, %rdi            # imm = 0x140
addq $0xf0, %rsi
callq 0x5ac00
movl %eax, -0x26c(%rbp)
movl -0x268(%rbp), %eax
movl %eax, -0x3d4(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5a5a0
subl -0x26c(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x3d4(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x3cc(%rbp)
movslq -0x264(%rbp), %rax
movq %rax, -0x3c8(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x591a0
movq -0x2e8(%rbp), %rdi
movl %eax, -0x3d0(%rbp)
addq $0x140, %rdi            # imm = 0x140
movq 0x16a2ac(%rip), %rsi    # 0x208da8
callq 0x5bde0
movl %eax, %ecx
movl -0x3d0(%rbp), %eax
subl %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd 0xe8861(%rip), %xmm1    # 0x187378
divsd %xmm1, %xmm0
callq 0x5b240
movl -0x3cc(%rbp), %esi
movq %rax, %rcx
movq -0x3c8(%rbp), %rax
addq %rcx, %rax
subq $0x1, %rax
movl %eax, %edx
leaq -0x284(%rbp), %rdi
callq 0x5c2c0
movl -0x26c(%rbp), %eax
movl %eax, -0x3bc(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x591a0
cltq
movq %rax, -0x3b8(%rbp)
movq -0x50(%rbp), %rdi
callq 0x5d470
cwtl
shll %eax
cvtsi2sd %eax, %xmm0
movsd 0xe8945(%rip), %xmm1    # 0x1874c0
divsd %xmm1, %xmm0
callq 0x5a970
movl -0x3bc(%rbp), %esi
movq %rax, %rcx
movq -0x3b8(%rbp), %rax
subq %rcx, %rax
subq $0x1, %rax
movl %eax, %edx
leaq -0x28c(%rbp), %rdi
callq 0x59260
leaq -0x27c(%rbp), %rdi
leaq -0x284(%rbp), %rsi
leaq -0x28c(%rbp), %rdx
callq 0x59ff0
movq -0x2e8(%rbp), %rcx
movq -0x50(%rbp), %rdi
movq %rcx, %rsi
addq $0xf0, %rsi
addq $0x140, %rcx            # imm = 0x140
leaq -0x27c(%rbp), %rdx
xorl %r8d, %r8d
callq 0x5c3f0
movq -0x2e8(%rbp), %rax
cmpl $0x0, 0x5c4(%rax)
jle 0x9ece0
movl -0x268(%rbp), %eax
movl %eax, -0x3e4(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5a5a0
movq -0x2e8(%rbp), %rsi
movl %eax, %ecx
movl -0x3e4(%rbp), %eax
addl $-0x2, %ecx
cvtsi2sd %ecx, %xmm0
movl 0x5cc(%rsi), %edi
movl 0x5c4(%rsi), %ecx
movl 0x5c8(%rsi), %edx
subl %edx, %edi
cvtsi2sd %edi, %xmm1
subl %edx, %ecx
cvtsi2sd %ecx, %xmm2
divsd %xmm2, %xmm1
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %ecx
addl %ecx, %eax
movl %eax, -0x274(%rbp)
addq $0x140, %rsi            # imm = 0x140
leaq -0x2d0(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x59da0
movq -0x3e0(%rbp), %rdi
movq 0x169e91(%rip), %rsi    # 0x208b18
callq 0x5d110
jmp 0x9ec8e
movq -0x2e8(%rbp), %rsi
movq -0x50(%rbp), %rdi
addq $0xf0, %rsi
leaq -0x27c(%rbp), %rdx
leaq -0x2d0(%rbp), %rcx
xorl %r8d, %r8d
callq 0x5c3f0
jmp 0x9ecb8
leaq -0x2d0(%rbp), %rdi
callq 0x5abf0
jmp 0x9ece0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x5abf0
jmp 0x9ed4f
jmp 0x9ece2
movq -0x50(%rbp), %rdi
callq 0x5d270
leaq -0x2e0(%rbp), %rdi
movq %rdi, -0x3f0(%rbp)
callq 0x5ca80
movq -0x3f0(%rbp), %rdi
callq 0x59680
movl %eax, -0x3e8(%rbp)
jmp 0x9ed12
movl -0x3e8(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x5a410
jmp 0x9ed43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x5a410
jmp 0x9ed4f
movl -0x4(%rbp), %eax
addq $0x3f0, %rsp            # imm = 0x3F0
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)