// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/graphics/backends/surfacebackend.cpp
// Function: smooth::GUI::SurfaceBackend::SetText(smooth::String const&, smooth::GUI::Rect const&, smooth::GUI::Font const&, bool)
S::Int S::GUI::SurfaceBackend::SetText(const String &string, const Rect &iRect, const Font &iFont, Bool shadow)
{
	if (shadow)
	{
		Rect	 rect = iRect + Point(2, 2);
		Font	 font = iFont;
		Int	 fontColor = font.GetColor();

		font.SetColor(Color((Int) ((Float) Setup::BackgroundColor.GetRed() / 3 * 2), (Int) ((Float) Setup::BackgroundColor.GetGreen() / 3 * 2), (Int) ((Float) Setup::BackgroundColor.GetBlue() / 3 * 2)));

		SetText(string, rect, font, False);

		rect = rect - Point(2, 2);

		font.SetColor(fontColor);

		SetText(string, rect, font, False);
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x150, %rsp            # imm = 0x150
movb %r8b, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
andb $0x1, %al
movb %al, -0x21(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xf0(%rbp)
testb $0x1, -0x21(%rbp)
je 0x6f135
movq -0x18(%rbp), %rax
movq %rax, -0x110(%rbp)
leaq -0x48(%rbp), %rdi
movq %rdi, -0x108(%rbp)
movl $0x2, %edx
movl %edx, %esi
callq 0x5c2c0
movq -0x110(%rbp), %rdi
movq -0x108(%rbp), %rsi
callq 0x5be80
movq %rax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x88(%rbp), %rdi
movq %rdi, -0x100(%rbp)
callq 0x59da0
movq -0x100(%rbp), %rdi
callq 0x5bc50
movq %rax, -0xf8(%rbp)
jmp 0x6ef41
movq -0xf8(%rbp), %rdi
callq 0x59210
movq %rax, -0x118(%rbp)
jmp 0x6ef56
movq -0x118(%rbp), %rax
movl %eax, -0x8c(%rbp)
movq 0x19953e(%rip), %rdi    # 0x2084a8
callq 0x59f20
movl %eax, -0x11c(%rbp)
jmp 0x6ef77
movl -0x11c(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd 0x1185a7(%rip), %xmm1   # 0x187530
divsd %xmm1, %xmm0
addsd %xmm0, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x124(%rbp)
movq 0x199506(%rip), %rdi    # 0x2084a8
callq 0x5d920
movl %eax, -0x120(%rbp)
jmp 0x6efaf
movl -0x120(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd 0x11856f(%rip), %xmm1   # 0x187530
divsd %xmm1, %xmm0
addsd %xmm0, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x12c(%rbp)
movq 0x1994ce(%rip), %rdi    # 0x2084a8
callq 0x5b650
movl %eax, -0x128(%rbp)
jmp 0x6efe7
movl -0x12c(%rbp), %edx
movl -0x124(%rbp), %esi
movl -0x128(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd 0x11852b(%rip), %xmm1   # 0x187530
divsd %xmm1, %xmm0
addsd %xmm0, %xmm0
cvttsd2si %xmm0, %ecx
leaq -0xb0(%rbp), %rdi
xorl %r8d, %r8d
callq 0x5a6b0
jmp 0x6f022
leaq -0x88(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x5d110
jmp 0x6f037
movq -0xf0(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq (%rdi), %rax
movq 0x78(%rax), %rax
leaq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rcx
xorl %r8d, %r8d
callq *%rax
jmp 0x6f05b
leaq -0xc8(%rbp), %rdi
movl $0x2, %edx
movl %edx, %esi
callq 0x5c2c0
jmp 0x6f070
leaq -0x40(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x5b5a0
movq %rdx, -0x140(%rbp)
movq %rax, -0x138(%rbp)
jmp 0x6f090
movq -0x140(%rbp), %rax
movq -0x138(%rbp), %rcx
movq %rcx, -0xc0(%rbp)
movq %rax, -0xb8(%rbp)
movups -0xc0(%rbp), %xmm0
movaps %xmm0, -0x40(%rbp)
movslq -0x8c(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
jmp 0x6f0ce
leaq -0x88(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x5d110
jmp 0x6f0e3
movq -0xf0(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq (%rdi), %rax
movq 0x78(%rax), %rax
leaq -0x40(%rbp), %rdx
leaq -0x88(%rbp), %rcx
xorl %r8d, %r8d
callq *%rax
jmp 0x6f107
leaq -0x88(%rbp), %rdi
callq 0x5abf0
jmp 0x6f135
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x5abf0
jmp 0x6f195
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x5ca80
movq -0x150(%rbp), %rdi
callq 0x59680
movl %eax, -0x144(%rbp)
jmp 0x6f15c
leaq -0xe8(%rbp), %rdi
callq 0x5a410
movl -0x144(%rbp), %eax
addq $0x150, %rsp            # imm = 0x150
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x5a410
movq -0x98(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)