// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/gui/dialogs/messagebox.cpp
// Function: smooth::GUI::Dialogs::MessageDlg::InitializeWidgets(smooth::String const&, smooth::String const&, int, smooth::GUI::Bitmap const&, smooth::String const&, bool*)
S::Bool S::GUI::Dialogs::MessageDlg::InitializeWidgets(const String &iText, const String &title, Int iButtons, const Bitmap &bitmap, const String &checkBoxText, Bool *iCVar)
{
	text	   = iText;
	cVar	   = iCVar;

	buttons	   = iButtons;
	buttonCode = -1;

	msgbox		= new Window(title, Point(), Size());
	msgbox->SetRightToLeft(defaultRightToLeft);
	msgbox->SetFlags(msgbox->GetFlags() | WF_MODAL);

	titlebar	= new Titlebar(TB_CLOSEBUTTON);
	layer		= new Layer();
	icon		= new Image(bitmap, Point(14, 19), Size(32, 32));

	/* Compute message box size.
	 */
	Int	 maxSize      = 0;
	Int	 buttonWidth  = 80;
	Int	 buttonHeight = 22;

	GUI::Font		 font;
	const Array<String>	&lines = text.Explode("\n");

	foreach (const String &line, lines)
	{
		Int	 textSize = font.GetUnscaledTextSizeX(line);

		if (textSize > maxSize) maxSize = textSize;
	}

	msgbox->SetWidth(maxSize + 36);
	msgbox->SetHeight((((Int) Math::Max(2, lines.Length()) + 1) * 16) + 70 + buttonHeight);

	if (bitmap != NIL) msgbox->SetWidth(maxSize + 36 + icon->GetWidth() + 20);

	Int	 titleSize = Font(Font::Default, Font::DefaultSize, Font::Bold).GetUnscaledTextSizeX(title);

	msgbox->SetWidth(Math::Max(msgbox->GetWidth(), titleSize + 80));

	/* Add widgets.
	 */
	Add(msgbox);

	msgbox->Add(titlebar);
	msgbox->Add(layer);
	msgbox->Add(icon);

	msgbox->onPaint.Connect(&MessageDlg::MessagePaintProc, this);
	msgbox->doClose.Connect(&MessageDlg::MessageKillProc, this);

	/* Add optional checkbox.
	 */
	checkbox = NIL;

	if (cVar != NIL)
	{
		checkbox = new CheckBox(checkBoxText, Point(13, 46 + buttonHeight), Size(100, 0), cVar);
		checkbox->SetOrientation(OR_LOWERLEFT);
		checkbox->SetWidth(checkbox->GetUnscaledTextWidth() + 21);

		msgbox->SetWidth(Math::Max(msgbox->GetWidth(), checkbox->GetUnscaledTextWidth() + 54));
		msgbox->SetHeight(msgbox->GetHeight() + 22);

		if (bitmap != NIL)
		{
			checkbox->SetX(checkbox->GetX() + icon->GetWidth() + 20);

			msgbox->SetWidth(Math::Max(msgbox->GetWidth(), checkbox->GetUnscaledTextWidth() + 54 + icon->GetWidth() + 20));
		}

		layer->Add(checkbox);
	}

	/* Find button labels.
	 */
	switch (buttons)
	{
		default:
		case Message::Buttons::Ok:
			buttonLabels.Add("OK");

			break;
		case Message::Buttons::OkCancel:
			buttonLabels.Add("OK");
			buttonLabels.Add("Cancel");

			break;
		case Message::Buttons::YesNo:
			buttonLabels.Add("Yes");
			buttonLabels.Add("No");

			break;
		case Message::Buttons::YesNoCancel:
			buttonLabels.Add("Yes");
			buttonLabels.Add("No");
			buttonLabels.Add("Cancel");

			break;
		case Message::Buttons::RetryCancel:
			buttonLabels.Add("Retry");
			buttonLabels.Add("Cancel");

			break;
		case Message::Buttons::AbortRetryIgnore:
			buttonLabels.Add("Abort");
			buttonLabels.Add("Retry");
			buttonLabels.Add("Ignore");

			break;
	}

	/* Add buttons.
	 */
	msgbox->SetWidth(Math::Max(msgbox->GetWidth(), buttonLabels.Length() * (buttonWidth + 9) + 21));

	foreach (const String &buttonLabel, buttonLabels)
	{
		Button	*button = new Button(I18n::Translator::defaultTranslator->TranslateString(buttonLabel), Point((msgbox->GetWidth() - (buttonLabels.Length() * (buttonWidth + 9) - 9)) / 2 - 3 + (foreachindex * (buttonWidth + 9)), 14 + buttonHeight), Size());

		if	(foreachindex == 0) button->onAction.Connect(&MessageDlg::MessageButton0, this);
		else if	(foreachindex == 1) button->onAction.Connect(&MessageDlg::MessageButton1, this);
		else if	(foreachindex == 2) button->onAction.Connect(&MessageDlg::MessageButton2, this);

		button->SetOrientation(OR_LOWERLEFT);

		buttonWidgets.Add(button);

		layer->Add(button);
	}

	/* Position message box on screen.
	 */
	Rect	 workArea    = System::Screen::GetActiveScreenWorkArea();
	Float	 scaleFactor = Surface().GetSurfaceDPI() / 96.0;

	msgbox->SetPosition(workArea.GetPosition() + Point((workArea.GetWidth()  - Math::Round(msgbox->GetWidth()  * scaleFactor)) / 2,
							   (workArea.GetHeight() - Math::Round(msgbox->GetHeight() * scaleFactor)) / 2) + Point(nOfMessageBoxes * 25, nOfMessageBoxes * 25));

	return True;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %r9, 0x60(%rsp)
movq %r8, 0x48(%rsp)
movl %ecx, %ebp
movq %rdx, %r12
movq %rdi, %r14
movq 0x140(%rsp), %rbx
leaq 0xf0(%rdi), %r13
movq %r13, %rdi
callq 0x56630
movq %rbx, 0x6d0(%r14)
movl %ebp, 0x5e8(%r14)
orl $-0x1, 0x6c0(%r14)
movl $0x6d8, %edi            # imm = 0x6D8
callq 0x56700
movq %rax, %r15
leaq 0x70(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0xc8(%rsp), %rcx
andq $0x0, (%rcx)
movq %rax, %rdi
movq %r12, %rsi
xorl %r8d, %r8d
callq 0x581a0
movq %r15, 0x5f0(%r14)
movq 0xf7c5e(%rip), %rax     # 0x161dc0
movzbl (%rax), %esi
movq %r15, %rdi
callq 0x58e00
movq 0x5f0(%r14), %rax
orl $0x1, 0x30(%rax)
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x56700
movq %rax, %r15
pushq $0x4
popq %rsi
movq %rax, %rdi
callq 0x57490
movq %r15, 0x5f8(%r14)
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x56700
movq %rax, %r15
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
callq 0x5a180
leaq 0x70(%rsp), %rsi
movq %r15, %rdi
callq 0x57c00
movq %r15, 0x600(%r14)
leaq 0x70(%rsp), %rbp
movq %rbp, %rdi
callq 0x5a588
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x56700
movq %rax, %r15
movabsq $0x130000000e, %rax     # imm = 0x130000000E
movq %rax, (%rbp)
movabsq $0x2000000020, %rax     # imm = 0x2000000020
leaq 0xc8(%rsp), %rcx
movq %rax, (%rcx)
leaq 0x70(%rsp), %rdx
movq %r15, %rdi
movq 0x48(%rsp), %rsi
callq 0x569e0
movq %r14, (%rsp)
movq %r15, 0x608(%r14)
movq 0xf7c73(%rip), %rbx     # 0x161e98
movswl (%rbx), %edx
movq 0xf7551(%rip), %rax     # 0x161780
leaq 0x70(%rsp), %r9
andq $0x0, 0x8(%r9)
movswl (%rax), %ecx
andl $0x0, (%r9)
movq 0xf7b71(%rip), %rsi     # 0x161db8
leaq 0xc8(%rsp), %rdi
movl %ecx, %r8d
callq 0x58460
leaq 0x976c9(%rip), %rsi     # 0x101927
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x70(%rsp), %rdi
leaq 0x8(%rsp), %rdx
movq %r13, %rsi
callq 0x591a0
leaq 0x8(%rsp), %rdi
callq 0x5a588
xorl %r13d, %r13d
leaq 0x70(%rsp), %rbp
leaq 0xc8(%rsp), %r15
xorl %r14d, %r14d
leal -0x1(%r13), %eax
movl 0x78(%rsp), %ecx
decl %ecx
cmpl %ecx, %eax
jge 0x6a2c7
movq %rbp, %rdi
movl %r13d, %esi
callq 0x64d9c
movq %r15, %rdi
movq %rax, %rsi
callq 0x591e0
cmpl %r14d, %eax
cmovgl %eax, %r14d
incl %r13d
jmp 0x6a297
movq (%rsp), %rax
movq 0x5f0(%rax), %rdi
leal 0x24(%r14), %esi
callq 0x5a1f0
movq (%rsp), %rax
movq 0x5f0(%rax), %rdi
movl 0x78(%rsp), %esi
cmpl $0x3, %esi
pushq $0x2
popq %rax
cmovll %eax, %esi
shll $0x4, %esi
addl $0x6c, %esi
callq 0x58980
movq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x574f0
testb %al, %al
je 0x6a332
movq (%rsp), %rax
movq 0x5f0(%rax), %rdi
movq 0x608(%rax), %rax
movl 0xb0(%rax), %eax
leal (%r14,%rax), %esi
addl $0x38, %esi
callq 0x5a1f0
movswl (%rbx), %edx
movq 0xf710c(%rip), %rax     # 0x161448
movswl (%rax), %ecx
leaq 0x50(%rsp), %r9
andq $0x0, 0x8(%r9)
movq 0xf7430(%rip), %rax     # 0x161780
movswl (%rax), %r8d
andl $0x0, (%r9)
movq 0xf7a59(%rip), %rsi     # 0x161db8
leaq 0x8(%rsp), %rdi
callq 0x58460
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x591e0
movq (%rsp), %r13
movl %eax, %ebp
leaq 0x8(%rsp), %rdi
callq 0x57860
movq 0x5f0(%r13), %rdi
movl 0xb0(%rdi), %eax
addl $0x50, %ebp
cmpl %ebp, %eax
cmovgl %eax, %ebp
movl %ebp, %esi
callq 0x5a1f0
movq 0x5f0(%r13), %rsi
movq (%r13), %rax
movq %r13, %rdi
callq *0x30(%rax)
movq 0x5f0(%r13), %rdi
movq 0x5f8(%r13), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5f0(%r13), %rdi
movq 0x600(%r13), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5f0(%r13), %rdi
movq 0x608(%r13), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movl $0x648, %edi            # imm = 0x648
addq 0x5f0(%r13), %rdi
movq 0xf782e(%rip), %rsi     # 0x161c30
xorl %edx, %edx
movq %r13, %rcx
callq 0x6b770
movl $0x688, %edi            # imm = 0x688
addq 0x5f0(%r13), %rdi
movq 0xf7681(%rip), %rsi     # 0x161aa0
xorl %edx, %edx
movq %r13, %rcx
callq 0x6b80c
andq $0x0, 0x6c8(%r13)
movq 0x6d0(%r13), %r12
testq %r12, %r12
je 0x6a582
movl $0x5d8, %edi            # imm = 0x5D8
callq 0x56700
movq %rax, %r15
movabsq $0x440000000d, %rax     # imm = 0x440000000D
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x50(%rsp), %rcx
movq $0x64, (%rcx)
movq %r15, %rdi
movq 0x60(%rsp), %rsi
movq %r12, %r8
callq 0x56b90
movq (%rsp), %r13
movq %r15, 0x6c8(%r13)
movq (%r15), %rax
pushq $0x18
popq %rsi
movq %r15, %rdi
callq *0x120(%rax)
movq 0x6c8(%r13), %r15
movq (%r15), %rax
movq %r15, %rdi
callq *0xf0(%rax)
addl $0x15, %eax
movq %r15, %rdi
movl %eax, %esi
callq 0x5a1f0
movq 0x5f0(%r13), %r15
movq 0x6c8(%r13), %rdi
movl 0xb0(%r15), %ebx
movq (%rdi), %rax
callq *0xf0(%rax)
addl $0x36, %eax
cmpl %eax, %ebx
cmovgl %ebx, %eax
movq %r15, %rdi
movl %eax, %esi
callq 0x5a1f0
movq 0x5f0(%r13), %rdi
movl 0xb4(%rdi), %esi
addl $0x16, %esi
callq 0x58980
movq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x574f0
testb %al, %al
je 0x6a56e
movq 0x608(%r13), %rax
movq 0x6c8(%r13), %rdi
movl 0xa8(%rdi), %ecx
movl 0xb0(%rax), %eax
leal (%rcx,%rax), %esi
addl $0x14, %esi
callq 0x56a40
movq 0x5f0(%r13), %r14
movq 0x6c8(%r13), %rdi
movl 0xb0(%r14), %ebx
movq (%rdi), %rax
callq *0xf0(%rax)
movq 0x608(%r13), %rcx
movl 0xb0(%rcx), %ecx
leal (%rax,%rcx), %esi
addl $0x4a, %esi
cmpl %esi, %ebx
cmovgl %ebx, %esi
movq %r14, %rdi
callq 0x5a1f0
movq 0x600(%r13), %rdi
movq 0x6c8(%r13), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movl 0x5e8(%r13), %eax
decl %eax
cmpl $0x4, %eax
ja 0x6a78b
leaq 0x7938d(%rip), %rcx     # 0xe3928
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xb3909(%rip), %rsi     # 0x11deb4
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x610(%r13), %r14
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
leaq 0x8(%rsp), %rdi
callq 0x5a588
leaq 0x79246(%rip), %rsi     # 0xe3820
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
jmp 0x6a7ad
leaq 0x79436(%rip), %rsi     # 0xe3a33
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x610(%r13), %r14
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
leaq 0x8(%rsp), %rdi
callq 0x5a588
leaq 0x791f4(%rip), %rsi     # 0xe3820
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
jmp 0x6a7ad
leaq 0x793dd(%rip), %rsi     # 0xe3a2c
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x610(%r13), %r14
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
leaq 0x8(%rsp), %rdi
callq 0x5a588
leaq 0x793b2(%rip), %rsi     # 0xe3a30
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
leaq 0x8(%rsp), %rdi
callq 0x5a588
leaq 0x7917a(%rip), %rsi     # 0xe3820
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
jmp 0x6a7ad
leaq 0x79363(%rip), %rsi     # 0xe3a2c
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x610(%r13), %r14
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
leaq 0x8(%rsp), %rdi
callq 0x5a588
leaq 0x79338(%rip), %rsi     # 0xe3a30
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
jmp 0x6a7ad
leaq 0x7931e(%rip), %rsi     # 0xe3a39
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x610(%r13), %r14
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
leaq 0x8(%rsp), %rdi
callq 0x5a588
leaq 0x792e9(%rip), %rsi     # 0xe3a33
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
leaq 0x8(%rsp), %rdi
callq 0x5a588
leaq 0x792cd(%rip), %rsi     # 0xe3a3f
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x64dee
jmp 0x6a7ad
leaq 0xb3722(%rip), %rsi     # 0x11deb4
leaq 0x8(%rsp), %rdi
callq 0x58c40
leaq 0x610(%r13), %rdi
leaq 0x8(%rsp), %rsi
callq 0x64dee
leaq 0x8(%rsp), %rdi
callq 0x5a588
movq 0x5f0(%r13), %rdi
movl 0xb0(%rdi), %eax
imull $0x59, 0x618(%r13), %esi
addl $0x15, %esi
cmpl %esi, %eax
cmovgl %eax, %esi
callq 0x5a1f0
leaq 0x610(%r13), %r14
leaq 0x668(%r13), %r15
xorl %r12d, %r12d
pushq $-0x3
popq %rbx
leal -0x1(%r12), %eax
movq (%rsp), %rcx
movl 0x618(%rcx), %ecx
decl %ecx
cmpl %ecx, %eax
jge 0x6a8fe
movq %r14, %rdi
movl %r12d, %esi
callq 0x6bad6
movq %rax, %rbp
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x56700
movq %rax, %r13
movq 0xf6bc0(%rip), %rax     # 0x1613e8
movq (%rax), %rdi
movq %rbp, %rsi
callq 0x59510
movq %rax, %rsi
movq (%rsp), %rcx
movq 0x5f0(%rcx), %rax
imull $-0x59, 0x618(%rcx), %ecx
movl 0xb0(%rax), %eax
addl %ecx, %eax
addl $0x9, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
addl %ebx, %eax
movl %eax, 0x50(%rsp)
movl $0x24, 0x54(%rsp)
andq $0x0, 0x68(%rsp)
movq %r13, %rdi
leaq 0x50(%rsp), %rdx
leaq 0x68(%rsp), %rcx
callq 0x585b0
movq %r13, 0x8(%rsp)
movq 0xf74b5(%rip), %rsi     # 0x161d40
testl %r12d, %r12d
je 0x6a8aa
movq 0xf7751(%rip), %rsi     # 0x161fe8
cmpl $0x1, %r12d
je 0x6a8aa
movq 0xf6fb4(%rip), %rsi     # 0x161858
cmpl $0x2, %r12d
jne 0x6a8bf
addq $0x478, %r13            # imm = 0x478
movq %r13, %rdi
xorl %edx, %edx
movq (%rsp), %rcx
callq 0x6b770
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
pushq $0x18
popq %rsi
callq *0x120(%rax)
movq %r15, %rdi
leaq 0x8(%rsp), %rsi
callq 0x6b866
movq (%rsp), %rax
movq 0x600(%rax), %rdi
movq 0x8(%rsp), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
incl %r12d
addl $0x59, %ebx
jmp 0x6a7ed
callq 0x59120
movq %rax, %r14
movq %rdx, %r15
leaq 0x50(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0x58340
movq (%rsp), %rbx
leaq 0x8(%rsp), %rdi
callq 0x59c60
movl %eax, %ebp
leaq 0x8(%rsp), %rdi
callq 0x58d90
movswl %bp, %eax
cvtsi2sd %eax, %xmm0
movq 0x5f0(%rbx), %rdi
divsd 0x78bc2(%rip), %xmm0    # 0xe3510
movq %r14, %rsi
shrq $0x20, %rsi
movl %r15d, %eax
subl %r14d, %eax
cltq
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
cvtdq2pd 0xb0(%rdi), %xmm1
andq %r14, %rcx
subq %rcx, %r15
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
mulpd %xmm1, %xmm0
xorpd %xmm1, %xmm1
movapd %xmm0, %xmm2
cmpltpd %xmm1, %xmm2
movmskpd %xmm2, %r9d
movsd 0x789e1(%rip), %xmm1    # 0xe3378
movsd 0x789e1(%rip), %xmm2    # 0xe3380
movapd %xmm1, %xmm3
testb $0x1, %r9b
jne 0x6a9ad
movapd %xmm2, %xmm3
leaq 0xb0(%rdi), %rcx
addsd %xmm0, %xmm3
cvttsd2si %xmm3, %rdx
sarq $0x20, %r15
subq %rdx, %rax
pushq $0x2
popq %r10
cqto
idivq %r10
movq %rax, %r8
testb $0x2, %r9b
jne 0x6a9da
movapd %xmm2, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
subq %rax, %r15
movq %r15, %rax
cqto
idivq %r10
movq 0xf6c27(%rip), %rdx     # 0x161620
imull $0x19, (%rdx), %edx
addl %edx, %r8d
addl %r14d, %r8d
addl %edx, %esi
addl %eax, %esi
shlq $0x20, %rsi
orq %rsi, %r8
leaq 0x8(%rsp), %rsi
movq %r8, (%rsi)
movq (%rdi), %rax
movq %rcx, %rdx
callq *0x150(%rax)
leaq 0x70(%rsp), %rdi
callq 0x64988
leaq 0xc8(%rsp), %rdi
callq 0x57860
movb $0x1, %al
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x6aa87
jmp 0x6aa87
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6aa87
jmp 0x6aa87
jmp 0x6aa87
jmp 0x6aa87
jmp 0x6aa87
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6aa87
jmp 0x6aa87
jmp 0x6aa87
jmp 0x6aa87
jmp 0x6aa87
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x5a588
jmp 0x6ab5f
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6ab5c
movq %rax, %rbx
movl $0x5d8, %esi            # imm = 0x5D8
movq %r15, %rdi
jmp 0x6ab51
jmp 0x6ab5c
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x58d90
jmp 0x6ab5f
jmp 0x6ab5c
jmp 0x6ab5c
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x57860
jmp 0x6ab5f
jmp 0x6ab5c
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x5a588
jmp 0x6ab69
movq %rax, %rbx
jmp 0x6ab69
jmp 0x6ab22
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x5a588
jmp 0x6ab1b
movq %rax, %rbx
movl $0x5b8, %esi            # imm = 0x5B8
jmp 0x6ab34
movq %rax, %rbx
movl $0x5c8, %esi            # imm = 0x5C8
jmp 0x6ab34
movq %rax, %rbx
movl $0x6d8, %esi            # imm = 0x6D8
movq %r15, %rdi
callq 0x564c0
jmp 0x6ab76
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6ab5c
jmp 0x6ab46
movq %rax, %rbx
movl $0x5c8, %esi            # imm = 0x5C8
movq %r13, %rdi
callq 0x564c0
jmp 0x6ab5f
jmp 0x6ab5c
jmp 0x6ab5c
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x64988
leaq 0xc8(%rsp), %rdi
callq 0x57860
movq %rbx, %rdi
callq 0x58260