// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/tools/translator/translator.cpp
// Function: Translator::Translator(smooth::String const&)
Translator::Translator(const String &openFile) : Application("smooth Translator")
{
	fileName	= NIL;
	templateName	= NIL;

	dataSection	= NIL;
	modified	= False;

	splitFactor	= 0.58;
	updateSplitter	= False;

	Rect	 workArea = System::Screen::GetActiveScreenWorkArea();

	wnd		= new GUI::Window(String("smooth Translator v").Append(SMOOTH_VERSION), Point(workArea.left, workArea.top) + Point(50, 50), Size(740, 490));
	title		= new Titlebar();
	menubar		= new Menubar();
	statusbar	= new Statusbar("Ready");

	Section::onSelectItem.Connect(&Translator::SelectEntry, this);

	text_filter	= new Text("Filter:", Point(377, 10));
	text_filter->SetOrientation(OR_UPPERRIGHT);

	edit_filter	= new EditBox(Point(370 - text_filter->GetUnscaledTextWidth(), 7), Size(275 - text_filter->GetUnscaledTextWidth(), 0), 0);
	edit_filter->onInput.Connect(&Translator::FilterEntries, this);
	edit_filter->SetOrientation(OR_UPPERRIGHT);

	button_clear	= new Button("Clear", Point(87, 6), Size());
	button_clear->onAction.Connect(&Translator::ClearFilter, this);
	button_clear->SetOrientation(OR_UPPERRIGHT);

	list_entries	= new ListBox(Point(7, 34), Size(757, 161));
	list_entries->onSelectEntry.Connect(&Translator::SelectEntry, this);
	list_entries->SetFlags(LF_ALLOWRESELECT);
	list_entries->AddTab("ID", 80);
	list_entries->AddTab("String");
	list_entries->AddTab("Translation");

	list_filtered	= new ListBox(list_entries->GetPosition(), list_entries->GetSize());
	list_filtered->onSelectEntry.Connect(&Translator::SelectEntry, this);
	list_filtered->SetFlags(LF_ALLOWRESELECT);
	list_filtered->AddTab("ID", 80);
	list_filtered->AddTab("String");
	list_filtered->AddTab("Translation");
	list_filtered->Hide();

	droparea = new DropArea(list_entries->GetPosition(), list_entries->GetSize());
	droparea->onDropFiles.Connect(&Translator::HandleDropFile, this);

	splitter	= new Divider(200, OR_HORZ | DIV_MOVABLE);
	splitter->onDrag.Connect(&Translator::OnDragSplitter, this);

	layer_edit	= new Layer();
	layer_edit->SetMetrics(Point(0, 202), Size(500, 200));
	layer_edit->onChangeSize.Connect(&Translator::OnChangeEditLayerSize, this);

	button_new	= new Button("New", Point(7, 7), Size());
	button_new->onAction.Connect(&Translator::NewEntry, this);
	button_new->SetTooltipText("Create a new entry");

	text_id		= new Text("ID:", Point(94, 11));

	button_remove	= new Button("Remove", Point(263, 7), Size());
	button_remove->onAction.Connect(&Translator::RemoveEntry, this);
	button_remove->SetTooltipText("Remove entry from translation");
	button_remove->SetOrientation(OR_UPPERRIGHT);

	button_copy	= new Button("Copy", Point(175, 7), Size());
	button_copy->onAction.Connect(&Translator::CopyOriginal, this);
	button_copy->SetTooltipText("Copy original to translation");
	button_copy->SetOrientation(OR_UPPERRIGHT);

	button_save	= new Button("Save", Point(87, 7), Size());
	button_save->onAction.Connect(&Translator::SaveData, this);
	button_save->SetTooltipText("Save entry and show next");
	button_save->SetOrientation(OR_UPPERRIGHT);

	text_original	= new Text("Original:", Point(94, 38));
	text_translated	= new Text("Translation:", Point(94, 106));

	edit_id		= new EditBox(Point(221 - text_translated->GetUnscaledTextWidth(), 8), Size(37, 0), 6);
	edit_id->SetWidth(edit_id->GetFont().GetUnscaledTextSizeX("000000") + 6); 
	edit_id->SetFlags(EDB_NUMERIC);

	edit_original	= new MultiEdit(Point(221 - text_translated->GetUnscaledTextWidth(), 35), Size(608, 60), 0);
	edit_translated	= new MultiEdit(Point(221 - text_translated->GetUnscaledTextWidth(), 103), Size(608, 60), 0);

	MenuEntry	*entry = NIL;

	menu_file	= new PopupMenu();

	menubar->AddEntry("File", menu_file);

	entry = menu_file->AddEntry("New");
	entry->onAction.Connect(&Translator::NewFile, this);
	entry->SetShortcut(SC_CONTROL, 'N', wnd);

	entry = menu_file->AddEntry("Close");
	entry->onAction.Connect(&Translator::Close, this);
	entry->Deactivate();

	menu_file->AddEntry();

	entry = menu_file->AddEntry("Open...");
	entry->onAction.Connect(&Translator::OpenFile, this);
	entry->SetShortcut(SC_CONTROL, 'O', wnd);

	entry = menu_file->AddEntry("Save");
	entry->onAction.Connect(&Translator::SaveFile, this);
	entry->SetShortcut(SC_CONTROL, 'S', wnd);
	entry->Deactivate();

	entry = menu_file->AddEntry("Save as...");
	entry->onAction.Connect(&Translator::SaveFileAs, this);
	entry->SetShortcut(SC_CONTROL | SC_SHIFT, 'S', wnd);
	entry->Deactivate();

	menu_file->AddEntry();

	entry = menu_file->AddEntry("Export as...");
	entry->onAction.Connect(&Translator::ExportAs, this);
	entry->Deactivate();

	menu_file->AddEntry();

	entry = menu_file->AddEntry("Exit");
	entry->onAction.Connect(&GUI::Window::Close, wnd);
	entry->SetShortcut(SC_ALT, Keyboard::KeyF4, wnd);

	menu_entry	= new PopupMenu();

	entry = menubar->AddEntry("Entry", menu_entry);
	entry->Deactivate();

	entry = menu_entry->AddEntry("New");
	entry->onAction.Connect(&Translator::NewEntry, this);
	entry->SetShortcut(SC_ALT, 'N', wnd);

	menu_entry->AddEntry();

	entry = menu_entry->AddEntry("Save");
	entry->onAction.Connect(&Translator::SaveData, this);
	entry->SetShortcut(SC_ALT, 'S', wnd);

	entry = menu_entry->AddEntry("Remove");
	entry->onAction.Connect(&Translator::RemoveEntry, this);
	entry->SetShortcut(SC_ALT, 'R', wnd);
	entry->Deactivate();

	list_entries->Deactivate();
	list_filtered->Deactivate();

	layer_edit->Deactivate();

	text_filter->Deactivate();
	edit_filter->Deactivate();
	button_clear->Deactivate();

	Add(wnd);

	wnd->Add(text_filter);
	wnd->Add(edit_filter);
	wnd->Add(button_clear);

	wnd->GetMainLayer()->Add(droparea);
	wnd->GetMainLayer()->Add(layer_edit);

	layer_edit->Add(text_id);
	layer_edit->Add(edit_id);
	layer_edit->Add(text_original);
	layer_edit->Add(edit_original);
	layer_edit->Add(text_translated);
	layer_edit->Add(edit_translated);
	layer_edit->Add(button_save);
	layer_edit->Add(button_remove);
	layer_edit->Add(button_new);
	layer_edit->Add(button_copy);

	wnd->Add(splitter);

	wnd->Add(list_entries);
	wnd->Add(list_filtered);

	wnd->Add(title);
	wnd->Add(menubar);
	wnd->Add(statusbar);

	wnd->SetMinimumSize(Size(488, 308));
	wnd->SetIcon(NIL);

#ifdef __WIN32__
	wnd->SetIcon(ImageLoader::Load(String("Icon:").Append(String::FromInt(IDI_ICON))));
	wnd->SetIconDirect(LoadImageA(hInstance, MAKEINTRESOURCEA(IDI_ICON), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_SHARED));
#endif

	wnd->doClose.Connect(&Translator::ExitProc, this);
	wnd->onChangeSize.Connect(&Translator::OnChangeSize, this);

	OnChangeSize(wnd->GetSize());

	if (openFile != NIL) OpenFileName(openFile);

	wnd->Show();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %rbp
movq %rdi, %rbx
leaq 0x68cc(%rip), %rsi      # 0x122e7
leaq 0x18(%rsp), %r14
movq %r14, %rdi
callq 0x8800
movq %rbx, %rdi
movq %r14, %rsi
callq 0x87a0
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0xce3c(%rip), %rax      # 0x18880
movq %rax, (%rbx)
leaq 0x688(%rbx), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x8480
leaq 0x6a0(%rbx), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x8480
leaq 0x6b8(%rbx), %r12
movq %r12, %rdi
callq 0x10d72
leaq 0x710(%rbx), %r13
movq %r13, %rdi
callq 0x10d72
movq %r13, 0x8(%rsp)
movq %r12, 0x10(%rsp)
movq %r14, %rdi
xorl %esi, %esi
callq 0x87d0
movq %r15, %rdi
xorl %esi, %esi
callq 0x87d0
andq $0x0, 0x768(%rbx)
xorl %eax, %eax
movb %al, 0x770(%rbx)
movabsq $0x3fe28f5c28f5c28f, %rcx # imm = 0x3FE28F5C28F5C28F
movq %rcx, 0x620(%rbx)
movb %al, 0x628(%rbx)
callq 0x8390
movq %rax, %r13
movl $0x6d8, %edi            # imm = 0x6D8
callq 0x8530
movq %rax, %r12
leaq 0x6811(%rip), %rsi      # 0x122f9
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x6814(%rip), %rsi      # 0x1230d
leaq 0x38(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x8170
leal 0x32(%r13), %ecx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
andq %r13, %rdx
orq %rdx, %rcx
movabsq $0x3200000000, %rsi     # imm = 0x3200000000
addq %rcx, %rsi
leaq 0x30(%rsp), %rdx
movq %rsi, (%rdx)
movabsq $0x1ea000002e4, %rsi    # imm = 0x1EA000002E4
leaq 0x50(%rsp), %rcx
movq %rsi, (%rcx)
movq %r12, %rdi
movq %rax, %rsi
xorl %r8d, %r8d
callq 0x82a0
movq %r12, 0x5b8(%rbx)
leaq 0x38(%rsp), %rdi
callq 0x8990
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x8530
movq %rax, %r12
pushq $0x7
popq %rsi
movq %rax, %rdi
callq 0x8190
movq %r12, 0x5c0(%rbx)
movl $0x688, %edi            # imm = 0x688
callq 0x8530
movq %rax, %r12
movq %rax, %rdi
callq 0x8270
movq %r12, 0x5c8(%rbx)
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x8530
movq %rax, %r12
leaq 0x674f(%rip), %rsi      # 0x12314
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x8180
movq %r12, 0x5d0(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0xd8f4(%rip), %rdi      # 0x194e8
leaq 0x14a7(%rip), %rsi      # 0xd0a2
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10d88
movl $0x5c0, %edi            # imm = 0x5C0
callq 0x8530
movq %rax, %r12
leaq 0x6701(%rip), %rsi      # 0x1231a
leaq 0x18(%rsp), %rdi
callq 0x8800
movabsq $0xa00000179, %rax      # imm = 0xA00000179
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x8140
movq %r12, 0x5e8(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x5e8(%rbx), %rdi
movq (%rdi), %rax
pushq $0x24
popq %rsi
callq *0x120(%rax)
movl $0x630, %edi            # imm = 0x630
callq 0x8530
movq %rax, %r12
movq 0x5e8(%rbx), %rdi
movq (%rdi), %rax
callq *0xf0(%rax)
movl $0x172, %ecx            # imm = 0x172
subl %eax, %ecx
movl %ecx, 0x18(%rsp)
movl $0x7, 0x1c(%rsp)
movq 0x5e8(%rbx), %rdi
movq (%rdi), %rax
callq *0xf0(%rax)
movl $0x113, %ecx            # imm = 0x113
subl %eax, %ecx
leaq 0x38(%rsp), %rdx
movl %ecx, (%rdx)
andl $0x0, 0x4(%rdx)
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %ecx, %ecx
callq 0x8830
movq %r12, 0x5f0(%rbx)
addq $0x5d0, %r12            # imm = 0x5D0
leaq 0x1891(%rip), %rsi      # 0xd576
movq %r12, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10e24
movq 0x5f0(%rbx), %rdi
movq (%rdi), %rax
pushq $0x24
popq %rsi
callq *0x120(%rax)
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x8530
movq %rax, %r12
leaq 0x6609(%rip), %rsi      # 0x12322
leaq 0x18(%rsp), %rdi
callq 0x8800
movabsq $0x600000057, %rax      # imm = 0x600000057
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x82f0
movq %r12, 0x5f8(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x478, %edi            # imm = 0x478
addq 0x5f8(%rbx), %rdi
leaq 0x198d(%rip), %rsi      # 0xd6fc
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x5f8(%rbx), %rdi
movq (%rdi), %rax
pushq $0x24
popq %rsi
callq *0x120(%rax)
movl $0x718, %edi            # imm = 0x718
callq 0x8530
movq %rax, %r12
movabsq $0x2200000007, %rax     # imm = 0x2200000007
leaq 0x18(%rsp), %rsi
movq %rax, (%rsi)
movabsq $0xa1000002f5, %rax     # imm = 0xA1000002F5
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
movq %r12, %rdi
callq 0x8200
movq %r12, 0x600(%rbx)
addq $0x688, %r12            # imm = 0x688
leaq 0x12c8(%rip), %rsi      # 0xd0a2
movq %r12, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10d88
movq 0x600(%rbx), %r12
movl $0x2, 0x30(%r12)
leaq 0x652a(%rip), %rsi      # 0x12328
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
pushq $0x50
popq %rdx
pushq $0x10
popq %rcx
movq %r12, %rdi
callq 0x10f5c
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x600(%rbx), %r12
leaq 0x64f8(%rip), %rsi      # 0x1232b
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
pushq $0x10
popq %rcx
movq %r12, %rdi
xorl %edx, %edx
callq 0x10f5c
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x600(%rbx), %r12
leaq 0x64cb(%rip), %rsi      # 0x12332
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
pushq $0x10
popq %rcx
movq %r12, %rdi
xorl %edx, %edx
callq 0x10f5c
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x718, %edi            # imm = 0x718
callq 0x8530
movq %rax, %r12
movq 0x600(%rbx), %rdx
leaq 0xa8(%rdx), %rsi
addq $0xb0, %rdx
movq %rax, %rdi
callq 0x8200
movq %r12, 0x608(%rbx)
addq $0x688, %r12            # imm = 0x688
leaq 0x11d6(%rip), %rsi      # 0xd0a2
movq %r12, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10d88
movq 0x608(%rbx), %r12
movl $0x2, 0x30(%r12)
leaq 0x6438(%rip), %rsi      # 0x12328
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
pushq $0x50
popq %rdx
pushq $0x10
popq %rcx
movq %r12, %rdi
callq 0x10f5c
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x608(%rbx), %r12
leaq 0x6406(%rip), %rsi      # 0x1232b
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
pushq $0x10
popq %rcx
movq %r12, %rdi
xorl %edx, %edx
callq 0x10f5c
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x608(%rbx), %r12
leaq 0x63d9(%rip), %rsi      # 0x12332
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
pushq $0x10
popq %rcx
movq %r12, %rdi
xorl %edx, %edx
callq 0x10f5c
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x608(%rbx), %rdi
movq (%rdi), %rax
callq *0x60(%rax)
movl $0x5f8, %edi            # imm = 0x5F8
callq 0x8530
movq %rax, %r12
movq 0x600(%rbx), %rdx
leaq 0xa8(%rdx), %rsi
addq $0xb0, %rdx
movq %rax, %rdi
callq 0x8650
movq %r12, 0x610(%rbx)
addq $0x5d8, %r12            # imm = 0x5D8
leaq 0x182f(%rip), %rsi      # 0xd7fa
movq %r12, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10f68
movl $0x5f8, %edi            # imm = 0x5F8
callq 0x8530
movq %rax, %r12
movq %rax, %rdi
movl $0xc8, %esi
movl $0x4001, %edx           # imm = 0x4001
callq 0x86c0
movq %r12, 0x618(%rbx)
addq $0x5d8, %r12            # imm = 0x5D8
leaq 0x1806(%rip), %rsi      # 0xd812
movq %r12, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x11004
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x8530
movq %rax, %r12
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x8480
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x81f0
movq %r12, 0x630(%rbx)
leaq 0x18(%rsp), %r12
movq %r12, %rdi
callq 0x8990
movq 0x630(%rbx), %rdi
movabsq $0xca00000000, %rax     # imm = 0xCA00000000
movq %rax, (%r12)
movabsq $0xc8000001f4, %rax     # imm = 0xC8000001F4
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
movq (%rdi), %rax
leaq 0x18(%rsp), %rsi
callq *0x150(%rax)
movl $0x298, %edi            # imm = 0x298
addq 0x630(%rbx), %rdi
leaq 0x1999(%rip), %rsi      # 0xda34
xorl %edx, %edx
movq %rbx, %rcx
callq 0x110a0
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x8530
movq %rax, %r12
leaq 0x6285(%rip), %rsi      # 0x1233e
leaq 0x18(%rsp), %rdi
callq 0x8800
movabsq $0x700000007, %rax      # imm = 0x700000007
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x82f0
movq %r12, 0x638(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x478, %edi            # imm = 0x478
addq 0x638(%rbx), %rdi
leaq 0x19ff(%rip), %rsi      # 0xdb0e
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x638(%rbx), %r12
leaq 0x621b(%rip), %rsi      # 0x12342
leaq 0x18(%rsp), %rdi
callq 0x8800
movq (%r12), %rax
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq *0xb0(%rax)
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x5c0, %edi            # imm = 0x5C0
callq 0x8530
movq %rax, %r12
leaq 0x61f4(%rip), %rsi      # 0x12355
leaq 0x18(%rsp), %rdi
callq 0x8800
movabsq $0xb0000005e, %rax      # imm = 0xB0000005E
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x8140
movq %r12, 0x640(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x8530
movq %rax, %r12
leaq 0x61a1(%rip), %rsi      # 0x12359
leaq 0x18(%rsp), %rdi
callq 0x8800
movabsq $0x700000107, %rax      # imm = 0x700000107
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x82f0
movq %r12, 0x678(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x478, %edi            # imm = 0x478
addq 0x678(%rbx), %rdi
leaq 0x1afc(%rip), %rsi      # 0xdd0a
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x678(%rbx), %r12
leaq 0x613a(%rip), %rsi      # 0x12360
leaq 0x18(%rsp), %rdi
callq 0x8800
movq (%r12), %rax
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq *0xb0(%rax)
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x678(%rbx), %rdi
movq (%rdi), %rax
pushq $0x24
popq %rsi
callq *0x120(%rax)
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x8530
movq %rax, %r12
leaq 0x610b(%rip), %rsi      # 0x1237e
leaq 0x18(%rsp), %rdi
callq 0x8800
movabsq $0x7000000af, %rax      # imm = 0x7000000AF
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x82f0
movq %r12, 0x680(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x478, %edi            # imm = 0x478
addq 0x680(%rbx), %rdi
leaq 0x1b43(%rip), %rsi      # 0xde0c
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x680(%rbx), %r12
leaq 0x60a2(%rip), %rsi      # 0x12383
leaq 0x18(%rsp), %rdi
callq 0x8800
movq (%r12), %rax
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq *0xb0(%rax)
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x680(%rbx), %rdi
movq (%rdi), %rax
pushq $0x24
popq %rsi
callq *0x120(%rax)
movl $0x5c8, %edi            # imm = 0x5C8
callq 0x8530
movq %rax, %r12
leaq 0x6072(%rip), %rsi      # 0x123a0
leaq 0x18(%rsp), %rdi
callq 0x8800
movabsq $0x700000057, %rax      # imm = 0x700000057
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x82f0
movq %r12, 0x670(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x478, %edi            # imm = 0x478
addq 0x670(%rbx), %rdi
leaq 0x1ab6(%rip), %rsi      # 0xde3a
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x670(%rbx), %r12
leaq 0x6009(%rip), %rsi      # 0x123a5
leaq 0x18(%rsp), %rdi
callq 0x8800
movq (%r12), %rax
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq *0xb0(%rax)
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x670(%rbx), %rdi
movq (%rdi), %rax
pushq $0x24
popq %rsi
callq *0x120(%rax)
movl $0x5c0, %edi            # imm = 0x5C0
callq 0x8530
movq %rax, %r12
leaq 0x5fd5(%rip), %rsi      # 0x123be
leaq 0x18(%rsp), %rdi
callq 0x8800
movabsq $0x260000005e, %rax     # imm = 0x260000005E
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x8140
movq %r12, 0x650(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x5c0, %edi            # imm = 0x5C0
callq 0x8530
movq %rax, %r12
leaq 0x5f88(%rip), %rsi      # 0x123c8
leaq 0x18(%rsp), %rdi
callq 0x8800
movabsq $0x6a0000005e, %rax     # imm = 0x6A0000005E
leaq 0x38(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x30(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x8140
movq %r12, 0x660(%rbx)
leaq 0x18(%rsp), %rdi
callq 0x8990
movl $0x630, %edi            # imm = 0x630
callq 0x8530
movq %rax, %r12
movq 0x660(%rbx), %rdi
movq (%rdi), %rax
callq *0xf0(%rax)
movl $0xdd, %ecx
subl %eax, %ecx
leaq 0x18(%rsp), %rsi
movl %ecx, (%rsi)
movl $0x8, 0x4(%rsi)
leaq 0x38(%rsp), %rdx
movq $0x25, (%rdx)
pushq $0x6
popq %rcx
movq %r12, %rdi
callq 0x8830
movq %r12, 0x648(%rbx)
movq (%r12), %rax
movq %r12, %rdi
callq *0xe8(%rax)
movq %rax, %r13
leaq 0x5eeb(%rip), %rsi      # 0x123d5
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r13, %rdi
callq 0x8880
addl $0x6, %eax
movq %r12, %rdi
movl %eax, %esi
callq 0x1113c
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x648(%rbx), %rax
movl $0x1, 0x30(%rax)
movl $0x5f0, %edi            # imm = 0x5F0
callq 0x8530
movq %rax, %r12
movq 0x660(%rbx), %rdi
movq (%rdi), %rax
callq *0xf0(%rax)
movl $0xdd, %ecx
subl %eax, %ecx
leaq 0x18(%rsp), %rsi
movl %ecx, (%rsi)
movl $0x23, 0x4(%rsi)
movabsq $0x3c00000260, %r13     # imm = 0x3C00000260
leaq 0x38(%rsp), %rdx
movq %r13, (%rdx)
movq %r12, %rdi
xorl %ecx, %ecx
callq 0x83f0
movq %r12, 0x658(%rbx)
movl $0x5f0, %edi            # imm = 0x5F0
callq 0x8530
movq %rax, %r12
movq 0x660(%rbx), %rdi
movq (%rdi), %rax
callq *0xf0(%rax)
movl $0xdd, %ecx
subl %eax, %ecx
leaq 0x18(%rsp), %rsi
movl %ecx, (%rsi)
movl $0x67, 0x4(%rsi)
leaq 0x38(%rsp), %rdx
movq %r13, (%rdx)
movq %r12, %rdi
xorl %ecx, %ecx
callq 0x83f0
movq %r12, 0x668(%rbx)
movl $0x6b8, %edi            # imm = 0x6B8
callq 0x8530
movq %rax, %r12
movq %rax, %rdi
callq 0x8950
movq %r12, 0x5d8(%rbx)
movq 0x5c8(%rbx), %r12
leaq 0x5f05(%rip), %rsi      # 0x124f5
leaq 0x18(%rsp), %rdi
callq 0x8800
movq 0x5d8(%rbx), %rdx
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x11160
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x5d8(%rbx), %r12
leaq 0x5d18(%rip), %rsi      # 0x1233e
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0x478(%r12), %rdi
leaq 0x1e6f(%rip), %rsi      # 0xe4ca
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x5b8(%rbx), %rcx
pushq $0x2
popq %rsi
pushq $0x4e
popq %rdx
movq %r12, %rdi
callq 0x8450
movq 0x5d8(%rbx), %r12
leaq 0x5d54(%rip), %rsi      # 0x123dc
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0x478(%r12), %rdi
leaq 0x248f(%rip), %rsi      # 0xeb4c
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq (%r12), %rax
movq %r12, %rdi
callq *0x70(%rax)
movq 0x5d8(%rbx), %r12
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x8480
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x5d8(%rbx), %r12
leaq 0x5cd7(%rip), %rsi      # 0x123e2
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0x478(%r12), %rdi
leaq 0x2412(%rip), %rsi      # 0xeb52
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x5b8(%rbx), %rcx
pushq $0x2
popq %rsi
pushq $0x4f
popq %rdx
movq %r12, %rdi
callq 0x8450
movq 0x5d8(%rbx), %r12
leaq 0x5c33(%rip), %rsi      # 0x123a0
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0x478(%r12), %rdi
leaq 0x2510(%rip), %rsi      # 0xecb2
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x5b8(%rbx), %rcx
pushq $0x2
popq %rsi
pushq $0x53
popq %rdx
movq %r12, %rdi
callq 0x8450
movq (%r12), %rax
movq %r12, %rdi
callq *0x70(%rax)
movq 0x5d8(%rbx), %r12
leaq 0x5c11(%rip), %rsi      # 0x123ea
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0x478(%r12), %rdi
leaq 0x24fa(%rip), %rsi      # 0xed08
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x5b8(%rbx), %rcx
pushq $0xa
popq %rsi
pushq $0x53
popq %rdx
movq %r12, %rdi
callq 0x8450
movq (%r12), %rax
movq %r12, %rdi
callq *0x70(%rax)
movq 0x5d8(%rbx), %r12
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x8480
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x5d8(%rbx), %r12
leaq 0x5b84(%rip), %rsi      # 0x123f5
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0x478(%r12), %rdi
leaq 0x26d4(%rip), %rsi      # 0xef7a
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq (%r12), %rax
movq %r12, %rdi
callq *0x70(%rax)
movq 0x5d8(%rbx), %r12
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x8480
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x5d8(%rbx), %r12
leaq 0x5b0e(%rip), %rsi      # 0x12402
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0x478(%r12), %rdi
movq 0x5b8(%rbx), %rcx
movq 0xc6b0(%rip), %rsi      # 0x18fe0
xorl %edx, %edx
callq 0x111d6
movq 0x5b8(%rbx), %rcx
pushq $0x1
popq %rsi
pushq $0x73
popq %rdx
movq %r12, %rdi
callq 0x8450
movl $0x6b8, %edi            # imm = 0x6B8
callq 0x8530
movq %rax, %r12
movq %rax, %rdi
callq 0x8950
movq %r12, 0x5e0(%rbx)
movq 0x5c8(%rbx), %r12
leaq 0x5694(%rip), %rsi      # 0x1200a
leaq 0x18(%rsp), %rdi
callq 0x8800
movq 0x5e0(%rbx), %rdx
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
movq (%r12), %rax
movq %r12, %rdi
callq *0x70(%rax)
movq 0x5e0(%rbx), %r12
leaq 0x5985(%rip), %rsi      # 0x1233e
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0x478(%r12), %rdi
leaq 0x1120(%rip), %rsi      # 0xdb0e
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x5b8(%rbx), %rcx
pushq $0x1
popq %rsi
pushq $0x4e
popq %rdx
movq %r12, %rdi
callq 0x8450
movq 0x5e0(%rbx), %r12
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x8480
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
leaq 0x18(%rsp), %rdi
callq 0x8990
movq 0x5e0(%rbx), %r12
leaq 0x5959(%rip), %rsi      # 0x123a0
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0x478(%r12), %rdi
leaq 0x13be(%rip), %rsi      # 0xde3a
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x5b8(%rbx), %rcx
pushq $0x1
popq %rsi
pushq $0x53
popq %rdx
movq %r12, %rdi
callq 0x8450
movq 0x5e0(%rbx), %r12
leaq 0x58b0(%rip), %rsi      # 0x12359
leaq 0x18(%rsp), %rdi
callq 0x8800
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x11160
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x8990
leaq 0x478(%r12), %rdi
leaq 0x122c(%rip), %rsi      # 0xdd0a
xorl %edx, %edx
movq %rbx, %rcx
callq 0x10ec0
movq 0x5b8(%rbx), %rcx
pushq $0x1
popq %rsi
pushq $0x52
popq %rdx
movq %r12, %rdi
callq 0x8450
movq (%r12), %rax
movq %r12, %rdi
callq *0x70(%rax)
movq 0x600(%rbx), %rdi
movq (%rdi), %rax
callq *0x70(%rax)
movq 0x608(%rbx), %rdi
movq (%rdi), %rax
callq *0x70(%rax)
movq 0x630(%rbx), %rdi
movq (%rdi), %rax
callq *0x70(%rax)
movq 0x5e8(%rbx), %rdi
movq (%rdi), %rax
callq *0x70(%rax)
movq 0x5f0(%rbx), %rdi
movq (%rdi), %rax
callq *0x70(%rax)
movq 0x5f8(%rbx), %rdi
movq (%rdi), %rax
callq *0x70(%rax)
movq 0x5b8(%rbx), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x30(%rax)
movq 0x5b8(%rbx), %rdi
movq 0x5e8(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rdi
movq 0x5f0(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rdi
movq 0x5f8(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rax
movq 0x610(%rbx), %rsi
movq 0x620(%rax), %rdi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rax
movq 0x630(%rbx), %rsi
movq 0x620(%rax), %rdi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x630(%rbx), %rdi
movq 0x640(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x630(%rbx), %rdi
movq 0x648(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x630(%rbx), %rdi
movq 0x650(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x630(%rbx), %rdi
movq 0x658(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x630(%rbx), %rdi
movq 0x660(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x630(%rbx), %rdi
movq 0x668(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x630(%rbx), %rdi
movq 0x670(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x630(%rbx), %rdi
movq 0x678(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x630(%rbx), %rdi
movq 0x638(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x630(%rbx), %rdi
movq 0x680(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rdi
movq 0x618(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rdi
movq 0x600(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rdi
movq 0x608(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rdi
movq 0x5c0(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rdi
movq 0x5c8(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rdi
movq 0x5d0(%rbx), %rsi
movq (%rdi), %rax
callq *0x30(%rax)
movq 0x5b8(%rbx), %rdi
movabsq $0x134000001e8, %rax    # imm = 0x134000001E8
leaq 0x18(%rsp), %rsi
movq %rax, (%rsi)
callq 0x88a0
movq 0x5b8(%rbx), %r12
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x88f0
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x8420
leaq 0x18(%rsp), %rdi
callq 0x81c0
movl $0x688, %edi            # imm = 0x688
addq 0x5b8(%rbx), %rdi
leaq 0x2512(%rip), %rsi      # 0xf284
xorl %edx, %edx
movq %rbx, %rcx
callq 0x11272
movl $0x298, %edi            # imm = 0x298
addq 0x5b8(%rbx), %rdi
leaq 0x263b(%rip), %rsi      # 0xf3ca
xorl %edx, %edx
movq %rbx, %rcx
callq 0x110a0
movq %rbx, %rdi
callq 0xf3ca
movq %rbp, %rdi
xorl %esi, %esi
callq 0x86f0
testb %al, %al
je 0xcdba
movq %rbx, %rdi
movq %rbp, %rsi
callq 0xf426
movq 0x5b8(%rbx), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbp
leaq 0x18(%rsp), %rdi
callq 0x81c0
jmp 0xd06b
jmp 0xd068
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xce94
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
movq %rax, %rbp
movl $0x6b8, %esi            # imm = 0x6B8
jmp 0xd05a
jmp 0xcea7
jmp 0xcea7
jmp 0xcea7
movq %rax, %rbp
movl $0x5f0, %esi            # imm = 0x5F0
jmp 0xd05a
jmp 0xd068
jmp 0xd052
jmp 0xd052
jmp 0xcfad
jmp 0xcfbc
jmp 0xcfad
jmp 0xcfbc
jmp 0xd043
jmp 0xd068
jmp 0xcf97
jmp 0xcfec
jmp 0xd043
jmp 0xd068
jmp 0xcf97
jmp 0xcfec
jmp 0xd043
jmp 0xd068
jmp 0xcf97
jmp 0xcfec
jmp 0xcfad
jmp 0xcfbc
jmp 0xd043
jmp 0xd068
jmp 0xcf97
jmp 0xcfec
jmp 0xd068
jmp 0xcfc9
jmp 0xcfd8
jmp 0xcf3f
movq %rax, %rbp
movl $0x5f8, %esi            # imm = 0x5F8
jmp 0xd05a
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xcf8a
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
jmp 0xd043
jmp 0xd068
movq %rax, %rbp
movl $0x718, %esi            # imm = 0x718
jmp 0xd05a
movq %rax, %rbp
leaq 0x18(%rsp), %rdi
callq 0x8990
jmp 0xcfef
jmp 0xcfec
jmp 0xd052
movq %rax, %rbp
leaq 0x18(%rsp), %rdi
callq 0x8990
jmp 0xcfbf
movq %rax, %rbp
movl $0x5c0, %esi            # imm = 0x5C0
jmp 0xd05a
movq %rax, %rbp
leaq 0x18(%rsp), %rdi
callq 0x8990
jmp 0xcfdb
movq %rax, %rbp
movl $0x5b8, %esi            # imm = 0x5B8
jmp 0xd05a
movq %rax, %rbp
movl $0x688, %esi            # imm = 0x688
jmp 0xd05a
movq %rax, %rbp
movl $0x5c8, %esi            # imm = 0x5C8
jmp 0xd05a
jmp 0xcff8
movq %rax, %rbp
leaq 0x38(%rsp), %rdi
callq 0x8990
jmp 0xd00a
movq %rax, %rbp
leaq 0x18(%rsp), %rdi
callq 0x8990
jmp 0xd019
movq %rax, %rbp
movl $0x6d8, %esi            # imm = 0x6D8
jmp 0xd05a
movq %rax, %rbp
jmp 0xd07a
movq %rax, %rbp
jmp 0xd082
movq %rax, %rbp
jmp 0xd08a
movq %rax, %rbp
jmp 0xd092
movq %rax, %rbp
leaq 0x18(%rsp), %rdi
callq 0x8990
jmp 0xd09a
movq %rax, %rbp
leaq 0x18(%rsp), %rdi
callq 0x8990
jmp 0xd06b
movq %rax, %rbp
movl $0x630, %esi            # imm = 0x630
movq %r12, %rdi
callq 0x80a0
jmp 0xd06b
jmp 0xd068
jmp 0xd068
movq %rax, %rbp
movq 0x10(%rsp), %r12
movq 0x8(%rsp), %rdi
callq 0x112a8
movq %r12, %rdi
callq 0x112a8
movq %r15, %rdi
callq 0x8990
movq %r14, %rdi
callq 0x8990
movq %rbx, %rdi
callq 0x84a0
movq %rbp, %rdi
callq 0x8290