// File: /workspace/github_c_makefile_star2_O0/sTeeLM[P]dwipe/gui.c
// Function: dwipe_gui_method
void dwipe_gui_method( void )
{
/**
 * Allows the user to change the wipe method.
 *
 * @modifies  dwipe_options.method
 * @modifies  main_window
 *
 */

	/* The number of implemented methods. */
	const int count = 6;

	/* The first tabstop. */
	const int tab1 = 2;

	/* The second tabstop. */
	const int tab2 = 30;

	/* The currently selected method. */
	int focus = 0;

	/* The current working row. */
	int yy;

	/* Input buffer. */
	int keystroke;

	/* Update the footer window. */
	werase( footer_window );
	dwipe_gui_title( footer_window, dwipe_buttons2 );
	wrefresh( footer_window );

	if( dwipe_options.method == &dwipe_zero       ) { focus = 0; }
	if( dwipe_options.method == &dwipe_ops2       ) { focus = 1; }
	if( dwipe_options.method == &dwipe_dodshort   ) { focus = 2; }
	if( dwipe_options.method == &dwipe_dod522022m ) { focus = 3; }
	if( dwipe_options.method == &dwipe_gutmann    ) { focus = 4; }
	if( dwipe_options.method == &dwipe_random     ) { focus = 5; }


	do
	{
		/* Clear the main window. */
		werase( main_window );

		/* Initialize the working row. */
		yy = 2;

		/* Print the options. */
		mvwprintw( main_window, yy++, tab1, "  %s", dwipe_method_label( &dwipe_zero       ) );
		mvwprintw( main_window, yy++, tab1, "  %s", dwipe_method_label( &dwipe_ops2       ) );
		mvwprintw( main_window, yy++, tab1, "  %s", dwipe_method_label( &dwipe_dodshort   ) );
		mvwprintw( main_window, yy++, tab1, "  %s", dwipe_method_label( &dwipe_dod522022m ) );
		mvwprintw( main_window, yy++, tab1, "  %s", dwipe_method_label( &dwipe_gutmann    ) );
		mvwprintw( main_window, yy++, tab1, "  %s", dwipe_method_label( &dwipe_random     ) );
		mvwprintw( main_window, yy++, tab1, "                                             " );

		/* Print the cursor. */
		mvwaddch( main_window, 2 + focus, tab1, ACS_RARROW );

		switch( focus )
		{
			case 0:

				mvwprintw( main_window, 2, tab2, "syslinux.cfg: nuke=\"dwipe --method zero\"" );
				mvwprintw( main_window, 3, tab2, "Security Level: Low (1 pass)" );

				/*                                 0         1         2         3         4         5         6         7         8  */
				mvwprintw( main_window, yy++, tab1, "This method fills the device with zeros. Note that the rounds option does    " );
				mvwprintw( main_window, yy++, tab1, "not apply to this method. This method always runs one round.                 " );
				mvwprintw( main_window, yy++, tab1, "                                                                             " );
				mvwprintw( main_window, yy++, tab1, "Use this method to blank disks before internal redeployment, or before       " );
				mvwprintw( main_window, yy++, tab1, "reinstalling Microsoft Windows to remove the data areas that the format      " );
				mvwprintw( main_window, yy++, tab1, "utility preserves.                                                    " );
				break;

			case 1:

				mvwprintw( main_window, 2, tab2, "syslinux.cfg: nuke=\"dwipe --method ops2\"" );
				mvwprintw( main_window, 3, tab2, "Security Level: Medium (8 passes)" );

				/*                                 0         1         2         3         4         5         6         7         8  */
				mvwprintw( main_window, yy++, tab1, "The Royal Canadian Mounted Police Technical Security Standard for            " );
				mvwprintw( main_window, yy++, tab1, "Information Technology, Appendix OPS-II: Media Sanitization.                 " );
				mvwprintw( main_window, yy++, tab1, "                                                                             " );
				mvwprintw( main_window, yy++, tab1, "This implementation, with regards to paragraph 2 section A of the standard,  " );
				mvwprintw( main_window, yy++, tab1, "uses a pattern that is one random byte and that is changed each round.       " );
				break;

			case 2:

				mvwprintw( main_window, 2, tab2, "syslinux.cfg: nuke=\"dwipe --method dodshort\"" );
				mvwprintw( main_window, 3, tab2, "Security Level: Medium (3 passes)" );

				/*                                 0         1         2         3         4         5         6         7         8  */
				mvwprintw( main_window, yy++, tab1, "The American Department of Defense 5220.22-M short wipe.                     " );
				mvwprintw( main_window, yy++, tab1, "This method is composed of passes 1,2,7 from the standard wipe.              " );
				break;

			case 3:

				mvwprintw( main_window, 2, tab2, "syslinux.cfg: nuke=\"dwipe --method dod522022m\"" );
				mvwprintw( main_window, 3, tab2, "Security Level: Medium (7 passes)" );

				/*                                 0         1         2         3         4         5         6         7         8  */
				mvwprintw( main_window, yy++, tab1, "The American Department of Defense 5220.22-M standard wipe.                  " );
				mvwprintw( main_window, yy++, tab1, "This implementation uses the same algorithm as the Heidi Eraser product.     " );
				break;

			case 4:

				mvwprintw( main_window, 2, tab2, "syslinux.cfg: nuke=\"dwipe --method gutmann\"" );
				mvwprintw( main_window, 3, tab2, "Security Level: High (35 passes)" );

				/*                                 0         1         2         3         4         5         6         7         8  */
				mvwprintw( main_window, yy++, tab1, "This is the method described by Peter Gutmann in the paper entitled          " );
				mvwprintw( main_window, yy++, tab1, "\"Secure Deletion of Data from Magnetic and Solid-State Memory\".            " );
				break;

			case 5:

				mvwprintw( main_window, 2, tab2, "syslinux.cfg: nuke=\"dwipe --method random\"" );
				mvwprintw( main_window, 3, tab2, "Security Level: Depends on Rounds" );

				/*                                 0         1         2         3         4         5         6         7         8  */
				mvwprintw( main_window, yy++, tab1, "This method fills the device with a stream from the PRNG. It is probably the " );
				mvwprintw( main_window, yy++, tab1, "best method to use on modern hard disk drives because encoding schemes vary. " );
				mvwprintw( main_window, yy++, tab1, "                                                                             " );
				mvwprintw( main_window, yy++, tab1, "This method has a medium security level with 4 rounds, and a high security   " );
				mvwprintw( main_window, yy++, tab1, "level with 8 rounds.                                                         " );
				break;

		} /* switch */

		/* Add a border. */
		box( main_window, 0, 0 );

		/* Add a title. */
		dwipe_gui_title( main_window, " Wipe Method " );

		/* Refresh the window. */
		wrefresh( main_window );

		/* Get a keystroke. */
		keystroke = getch();

		switch( keystroke )
		{
			case KEY_DOWN:
			case 'j':
			case 'J':

				if( focus < count -1 ) { focus += 1; } 
				break;

			case KEY_UP:
			case 'k':
			case 'K':

				if( focus > 0 ) { focus -= 1; } 
				break;

			case KEY_BACKSPACE:
			case KEY_BREAK:

				return;

		} /* switch */

	} while( keystroke != KEY_ENTER && keystroke != ' ' && keystroke != 10 );

	switch( focus )
	{
		case 0:
			dwipe_options.method = &dwipe_zero;
			break;

		case 1:
			dwipe_options.method = &dwipe_ops2;
			break;

		case 2:
			dwipe_options.method = &dwipe_dodshort;
			break;

		case 3:
			dwipe_options.method = &dwipe_dod522022m;
			break;

		case 4:
			dwipe_options.method = &dwipe_gutmann;
			break;

		case 5:
			dwipe_options.method = &dwipe_random;
			break;
	}


}

// Assembly:
subq $0xa8, %rsp
movl $0x6, 0xa4(%rsp)
movl $0x2, 0xa0(%rsp)
movl $0x1e, 0x9c(%rsp)
movl $0x0, 0x98(%rsp)
movq 0xd4a6(%rip), %rdi      # 0x14800
callq 0x3050
movq 0xd49a(%rip), %rdi      # 0x14800
movq 0xd2eb(%rip), %rsi      # 0x14658
callq 0x5a80
movq 0xd487(%rip), %rdi      # 0x14800
callq 0x31b0
leaq 0x491b(%rip), %rcx      # 0xbca0
leaq 0xd4a4(%rip), %rax      # 0x14830
cmpq %rcx, 0x10(%rax)
jne 0x739d
movl $0x0, 0x98(%rsp)
leaq 0x43cc(%rip), %rcx      # 0xb770
leaq 0xd485(%rip), %rax      # 0x14830
cmpq %rcx, 0x10(%rax)
jne 0x73bc
movl $0x1, 0x98(%rsp)
leaq 0x407d(%rip), %rcx      # 0xb440
leaq 0xd466(%rip), %rax      # 0x14830
cmpq %rcx, 0x10(%rax)
jne 0x73db
movl $0x2, 0x98(%rsp)
leaq 0x3eae(%rip), %rcx      # 0xb290
leaq 0xd447(%rip), %rax      # 0x14830
cmpq %rcx, 0x10(%rax)
jne 0x73fa
movl $0x3, 0x98(%rsp)
leaq 0x413f(%rip), %rcx      # 0xb540
leaq 0xd428(%rip), %rax      # 0x14830
cmpq %rcx, 0x10(%rax)
jne 0x7419
movl $0x4, 0x98(%rsp)
leaq 0x4830(%rip), %rcx      # 0xbc50
leaq 0xd409(%rip), %rax      # 0x14830
cmpq %rcx, 0x10(%rax)
jne 0x7438
movl $0x5, 0x98(%rsp)
jmp 0x743a
movq 0xd3d7(%rip), %rdi      # 0x14818
callq 0x3050
movl $0x2, 0x94(%rsp)
movq 0xd3c0(%rip), %rax      # 0x14818
movq %rax, 0x30(%rsp)
movl 0x94(%rsp), %eax
movl %eax, 0x3c(%rsp)
addl $0x1, %eax
movl %eax, 0x94(%rsp)
leaq 0x4827(%rip), %rdi      # 0xbca0
callq 0xb1c0
movq 0x30(%rsp), %rdi
movl 0x3c(%rsp), %esi
movq %rax, %r8
movl $0x2, %edx
leaq 0x8d4d(%rip), %rcx      # 0x101e3
movb $0x0, %al
callq 0x31c0
movq 0xd374(%rip), %rax      # 0x14818
movq %rax, 0x40(%rsp)
movl 0x94(%rsp), %eax
movl %eax, 0x4c(%rsp)
addl $0x1, %eax
movl %eax, 0x94(%rsp)
leaq 0x42ab(%rip), %rdi      # 0xb770
callq 0xb1c0
movq 0x40(%rsp), %rdi
movl 0x4c(%rsp), %esi
movq %rax, %r8
movl $0x2, %edx
leaq 0x8d01(%rip), %rcx      # 0x101e3
movb $0x0, %al
callq 0x31c0
movq 0xd328(%rip), %rax      # 0x14818
movq %rax, 0x50(%rsp)
movl 0x94(%rsp), %eax
movl %eax, 0x5c(%rsp)
addl $0x1, %eax
movl %eax, 0x94(%rsp)
leaq 0x3f2f(%rip), %rdi      # 0xb440
callq 0xb1c0
movq 0x50(%rsp), %rdi
movl 0x5c(%rsp), %esi
movq %rax, %r8
movl $0x2, %edx
leaq 0x8cb5(%rip), %rcx      # 0x101e3
movb $0x0, %al
callq 0x31c0
movq 0xd2dc(%rip), %rax      # 0x14818
movq %rax, 0x60(%rsp)
movl 0x94(%rsp), %eax
movl %eax, 0x6c(%rsp)
addl $0x1, %eax
movl %eax, 0x94(%rsp)
leaq 0x3d33(%rip), %rdi      # 0xb290
callq 0xb1c0
movq 0x60(%rsp), %rdi
movl 0x6c(%rsp), %esi
movq %rax, %r8
movl $0x2, %edx
leaq 0x8c69(%rip), %rcx      # 0x101e3
movb $0x0, %al
callq 0x31c0
movq 0xd290(%rip), %rax      # 0x14818
movq %rax, 0x70(%rsp)
movl 0x94(%rsp), %eax
movl %eax, 0x7c(%rsp)
addl $0x1, %eax
movl %eax, 0x94(%rsp)
leaq 0x3f97(%rip), %rdi      # 0xb540
callq 0xb1c0
movq 0x70(%rsp), %rdi
movl 0x7c(%rsp), %esi
movq %rax, %r8
movl $0x2, %edx
leaq 0x8c1d(%rip), %rcx      # 0x101e3
movb $0x0, %al
callq 0x31c0
movq 0xd244(%rip), %rax      # 0x14818
movq %rax, 0x80(%rsp)
movl 0x94(%rsp), %eax
movl %eax, 0x8c(%rsp)
addl $0x1, %eax
movl %eax, 0x94(%rsp)
leaq 0x4655(%rip), %rdi      # 0xbc50
callq 0xb1c0
movq 0x80(%rsp), %rdi
movl 0x8c(%rsp), %esi
movq %rax, %r8
movl $0x2, %edx
leaq 0x8bc5(%rip), %rcx      # 0x101e3
movb $0x0, %al
callq 0x31c0
movq 0xd1ec(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x930e(%rip), %rcx      # 0x10959
movb $0x0, %al
callq 0x31c0
movq 0xd1bf(%rip), %rdi      # 0x14818
movl 0x98(%rsp), %esi
addl $0x2, %esi
movl $0x2, %edx
callq 0x3390
cmpl $-0x1, %eax
jne 0x7674
jmp 0x768d
movq 0xd19d(%rip), %rdi      # 0x14818
movq 0xc936(%rip), %rax      # 0x13fb8
movl 0xac(%rax), %esi
callq 0x33d0
movl 0x98(%rsp), %eax
movq %rax, 0x28(%rsp)
subq $0x5, %rax
ja 0x7c23
movq 0x28(%rsp), %rax
leaq 0x8941(%rip), %rcx      # 0xfff0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xd159(%rip), %rdi      # 0x14818
movl $0x2, %esi
movl $0x1e, %edx
leaq 0x9187(%rip), %rcx      # 0x10857
movb $0x0, %al
callq 0x31c0
movq 0xd13a(%rip), %rdi      # 0x14818
movl $0x3, %esi
movl $0x1e, %edx
leaq 0x9191(%rip), %rcx      # 0x10880
movb $0x0, %al
callq 0x31c0
movq 0xd11b(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x9181(%rip), %rcx      # 0x1089d
movb $0x0, %al
callq 0x31c0
movq 0xd0ee(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x91a2(%rip), %rcx      # 0x108eb
movb $0x0, %al
callq 0x31c0
movq 0xd0c1(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x91c3(%rip), %rcx      # 0x10939
movb $0x0, %al
callq 0x31c0
movq 0xd094(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x91e4(%rip), %rcx      # 0x10987
movb $0x0, %al
callq 0x31c0
movq 0xd067(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x9205(%rip), %rcx      # 0x109d5
movb $0x0, %al
callq 0x31c0
movq 0xd03a(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x9226(%rip), %rcx      # 0x10a23
movb $0x0, %al
callq 0x31c0
jmp 0x7c23
movq 0xd008(%rip), %rdi      # 0x14818
movl $0x2, %esi
movl $0x1e, %edx
leaq 0x9249(%rip), %rcx      # 0x10a6a
movb $0x0, %al
callq 0x31c0
movq 0xcfe9(%rip), %rdi      # 0x14818
movl $0x3, %esi
movl $0x1e, %edx
leaq 0x9253(%rip), %rcx      # 0x10a93
movb $0x0, %al
callq 0x31c0
movq 0xcfca(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x9248(%rip), %rcx      # 0x10ab5
movb $0x0, %al
callq 0x31c0
movq 0xcf9d(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x9269(%rip), %rcx      # 0x10b03
movb $0x0, %al
callq 0x31c0
movq 0xcf70(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x9072(%rip), %rcx      # 0x10939
movb $0x0, %al
callq 0x31c0
movq 0xcf43(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x925d(%rip), %rcx      # 0x10b51
movb $0x0, %al
callq 0x31c0
movq 0xcf16(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x927e(%rip), %rcx      # 0x10b9f
movb $0x0, %al
callq 0x31c0
jmp 0x7c23
movq 0xcee4(%rip), %rdi      # 0x14818
movl $0x2, %esi
movl $0x1e, %edx
leaq 0x92a8(%rip), %rcx      # 0x10bed
movb $0x0, %al
callq 0x31c0
movq 0xcec5(%rip), %rdi      # 0x14818
movl $0x3, %esi
movl $0x1e, %edx
leaq 0x92b6(%rip), %rcx      # 0x10c1a
movb $0x0, %al
callq 0x31c0
movq 0xcea6(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x92ab(%rip), %rcx      # 0x10c3c
movb $0x0, %al
callq 0x31c0
movq 0xce79(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x92cc(%rip), %rcx      # 0x10c8a
movb $0x0, %al
callq 0x31c0
jmp 0x7c23
movq 0xce47(%rip), %rdi      # 0x14818
movl $0x2, %esi
movl $0x1e, %edx
leaq 0x92f6(%rip), %rcx      # 0x10cd8
movb $0x0, %al
callq 0x31c0
movq 0xce28(%rip), %rdi      # 0x14818
movl $0x3, %esi
movl $0x1e, %edx
leaq 0x9306(%rip), %rcx      # 0x10d07
movb $0x0, %al
callq 0x31c0
movq 0xce09(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x92fb(%rip), %rcx      # 0x10d29
movb $0x0, %al
callq 0x31c0
movq 0xcddc(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x931c(%rip), %rcx      # 0x10d77
movb $0x0, %al
callq 0x31c0
jmp 0x7c23
movq 0xcdaa(%rip), %rdi      # 0x14818
movl $0x2, %esi
movl $0x1e, %edx
leaq 0x9346(%rip), %rcx      # 0x10dc5
movb $0x0, %al
callq 0x31c0
movq 0xcd8b(%rip), %rdi      # 0x14818
movl $0x3, %esi
movl $0x1e, %edx
leaq 0x9353(%rip), %rcx      # 0x10df1
movb $0x0, %al
callq 0x31c0
movq 0xcd6c(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x9347(%rip), %rcx      # 0x10e12
movb $0x0, %al
callq 0x31c0
movq 0xcd3f(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x9368(%rip), %rcx      # 0x10e60
movb $0x0, %al
callq 0x31c0
jmp 0x7c23
movq 0xcd0d(%rip), %rdi      # 0x14818
movl $0x2, %esi
movl $0x1e, %edx
leaq 0x9390(%rip), %rcx      # 0x10eac
movb $0x0, %al
callq 0x31c0
movq 0xccee(%rip), %rdi      # 0x14818
movl $0x3, %esi
movl $0x1e, %edx
leaq 0x939c(%rip), %rcx      # 0x10ed7
movb $0x0, %al
callq 0x31c0
movq 0xcccf(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x9391(%rip), %rcx      # 0x10ef9
movb $0x0, %al
callq 0x31c0
movq 0xcca2(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x93b2(%rip), %rcx      # 0x10f47
movb $0x0, %al
callq 0x31c0
movq 0xcc75(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x8d77(%rip), %rcx      # 0x10939
movb $0x0, %al
callq 0x31c0
movq 0xcc48(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x93a6(%rip), %rcx      # 0x10f95
movb $0x0, %al
callq 0x31c0
movq 0xcc1b(%rip), %rdi      # 0x14818
movl 0x94(%rsp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
movl $0x2, %edx
leaq 0x93c7(%rip), %rcx      # 0x10fe3
movb $0x0, %al
callq 0x31c0
movq 0xcbee(%rip), %rdi      # 0x14818
movq %rsp, %rax
movl $0x0, 0x10(%rax)
movl $0x0, 0x8(%rax)
movl $0x0, (%rax)
xorl %r9d, %r9d
movl %r9d, %esi
movl %r9d, %edx
movl %r9d, %ecx
movl %r9d, %r8d
callq 0x3100
movq 0xcbbc(%rip), %rdi      # 0x14818
leaq 0x93ce(%rip), %rsi      # 0x11031
callq 0x5a80
movq 0xcba9(%rip), %rdi      # 0x14818
callq 0x31b0
movq 0xc345(%rip), %rax      # 0x13fc0
movq (%rax), %rdi
callq 0x3120
movl %eax, 0x90(%rsp)
movl 0x90(%rsp), %eax
movl %eax, 0x24(%rsp)
subl $0x4a, %eax
je 0x7cf1
jmp 0x7c9c
movl 0x24(%rsp), %eax
subl $0x4b, %eax
je 0x7d0e
jmp 0x7ca7
movl 0x24(%rsp), %eax
subl $0x6a, %eax
je 0x7cf1
jmp 0x7cb2
movl 0x24(%rsp), %eax
subl $0x6b, %eax
je 0x7d0e
jmp 0x7cbd
movl 0x24(%rsp), %eax
subl $0x101, %eax            # imm = 0x101
je 0x7d2b
jmp 0x7cca
movl 0x24(%rsp), %eax
subl $0x102, %eax            # imm = 0x102
je 0x7cf1
jmp 0x7cd7
movl 0x24(%rsp), %eax
subl $0x103, %eax            # imm = 0x103
je 0x7d0e
jmp 0x7ce4
movl 0x24(%rsp), %eax
subl $0x107, %eax            # imm = 0x107
je 0x7d2b
jmp 0x7d30
cmpl $0x5, 0x98(%rsp)
jge 0x7d0c
movl 0x98(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x98(%rsp)
jmp 0x7d30
cmpl $0x0, 0x98(%rsp)
jle 0x7d29
movl 0x98(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x98(%rsp)
jmp 0x7d30
jmp 0x7e11
jmp 0x7d32
xorl %eax, %eax
cmpl $0x157, 0x90(%rsp) # imm = 0x157
movb %al, 0x23(%rsp)
je 0x7d64
xorl %eax, %eax
cmpl $0x20, 0x90(%rsp)
movb %al, 0x23(%rsp)
je 0x7d64
cmpl $0xa, 0x90(%rsp)
setne %al
movb %al, 0x23(%rsp)
movb 0x23(%rsp), %al
testb $0x1, %al
jne 0x743a
movl 0x98(%rsp), %eax
movq %rax, 0x18(%rsp)
subq $0x5, %rax
ja 0x7e11
movq 0x18(%rsp), %rax
leaq 0x8276(%rip), %rcx      # 0x10008
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xca8e(%rip), %rax      # 0x14830
leaq 0x3ef7(%rip), %rcx      # 0xbca0
movq %rcx, 0x10(%rax)
jmp 0x7e11
leaq 0xca7a(%rip), %rax      # 0x14830
leaq 0x39b3(%rip), %rcx      # 0xb770
movq %rcx, 0x10(%rax)
jmp 0x7e11
leaq 0xca66(%rip), %rax      # 0x14830
leaq 0x366f(%rip), %rcx      # 0xb440
movq %rcx, 0x10(%rax)
jmp 0x7e11
leaq 0xca52(%rip), %rax      # 0x14830
leaq 0x34ab(%rip), %rcx      # 0xb290
movq %rcx, 0x10(%rax)
jmp 0x7e11
leaq 0xca3e(%rip), %rax      # 0x14830
leaq 0x3747(%rip), %rcx      # 0xb540
movq %rcx, 0x10(%rax)
jmp 0x7e11
leaq 0xca2a(%rip), %rax      # 0x14830
leaq 0x3e43(%rip), %rcx      # 0xbc50
movq %rcx, 0x10(%rax)
addq $0xa8, %rsp
retq
nopl (%rax)