// File: /workspace/github_c_makefile_star2_O2/lucvoo[P]sparse-dev/predefine.c
// Function: predefined_macros
void predefined_macros(void)
{
	predefine("__CHECKER__", 0, "1");
	predefine("__GNUC__", 1, "%d", gcc_major);
	predefine("__GNUC_MINOR__", 1, "%d", gcc_minor);
	predefine("__GNUC_PATCHLEVEL__", 1, "%d", gcc_patchlevel);

	predefine("__STDC__", 1, "1");
	predefine("__STDC_HOSTED__", 0, fhosted ? "1" : "0");
	switch (standard) {
	default:
		break;

	case STANDARD_C94:
		predefine("__STDC_VERSION__", 1, "199409L");
		break;

	case STANDARD_C99:
	case STANDARD_GNU99:
		predefine("__STDC_VERSION__", 1, "199901L");
		break;

	case STANDARD_C11:
	case STANDARD_GNU11:
		predefine("__STDC_VERSION__", 1, "201112L");
		break;
	case STANDARD_C17:
	case STANDARD_GNU17:
		predefine("__STDC_VERSION__", 1, "201710L");
		break;
	}
	if (!(standard & STANDARD_GNU) && (standard != STANDARD_NONE))
		predefine("__STRICT_ANSI__", 1, "1");
	if (standard >= STANDARD_C11) {
		predefine("__STDC_NO_ATOMICS__", 1, "1");
		predefine("__STDC_NO_COMPLEX__", 1, "1");
		predefine("__STDC_NO_THREADS__", 1, "1");
	}

	predefine("__CHAR_BIT__", 1, "%d", bits_in_char);
	if (funsigned_char)
		predefine("__CHAR_UNSIGNED__", 1, "1");

	predefined_ctype("SHORT",     &short_ctype, PTYPE_SIZEOF);
	predefined_ctype("SHRT",      &short_ctype, PTYPE_MAX|PTYPE_WIDTH);
	predefined_ctype("SCHAR",     &schar_ctype, PTYPE_MAX|PTYPE_WIDTH);
	predefined_ctype("WCHAR",      wchar_ctype, PTYPE_ALL_T|PTYPE_MIN|PTYPE_TYPE);
	predefined_ctype("WINT",        wint_ctype, PTYPE_ALL_T|PTYPE_MIN|PTYPE_TYPE);
	predefined_ctype("CHAR16",   &ushort_ctype, PTYPE_TYPE);
	predefined_ctype("CHAR32",    uint32_ctype, PTYPE_TYPE);

	predefined_ctype("INT",         &int_ctype, PTYPE_ALL);
	predefined_ctype("LONG",       &long_ctype, PTYPE_ALL);
	predefined_ctype("LONG_LONG", &llong_ctype, PTYPE_ALL);

	predefined_ctype("INT8",      &schar_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("UINT8",     &uchar_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("INT16",     &short_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("UINT16",   &ushort_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("INT32",      int32_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("UINT32",    uint32_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("INT64",      int64_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("UINT64",    uint64_ctype, PTYPE_MAX|PTYPE_TYPE);

	predefined_ctype("INT_LEAST8",   &schar_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
	predefined_ctype("UINT_LEAST8",  &uchar_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("INT_LEAST16",  &short_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
	predefined_ctype("UINT_LEAST16",&ushort_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("INT_LEAST32",   int32_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
	predefined_ctype("UINT_LEAST32", uint32_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("INT_LEAST64",   int64_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
	predefined_ctype("UINT_LEAST64", uint64_ctype, PTYPE_MAX|PTYPE_TYPE);

	predefined_ctype("INT_FAST8",    fast8_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
	predefined_ctype("UINT_FAST8",  ufast8_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("INT_FAST16",  fast16_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
	predefined_ctype("UINT_FAST16",ufast16_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("INT_FAST32",  fast32_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
	predefined_ctype("UINT_FAST32",ufast32_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("INT_FAST64",  fast64_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
	predefined_ctype("UINT_FAST64",ufast64_ctype, PTYPE_MAX|PTYPE_TYPE);

	predefined_ctype("INTMAX",    intmax_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
	predefined_ctype("UINTMAX",  uintmax_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("INTPTR",    intptr_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
	predefined_ctype("UINTPTR",  uintptr_ctype, PTYPE_MAX|PTYPE_TYPE);
	predefined_ctype("PTRDIFF",  ptrdiff_ctype, PTYPE_ALL_T|PTYPE_TYPE);
	predefined_ctype("SIZE",      size_t_ctype, PTYPE_ALL_T|PTYPE_TYPE);
	predefined_ctype("POINTER",     &ptr_ctype, PTYPE_SIZEOF);
	predefined_ctype("SIG_ATOMIC", sig_atomic_ctype, PTYPE_MAX|PTYPE_MIN|PTYPE_TYPE|PTYPE_WIDTH);

	predefined_sizeof("FLOAT", "", bits_in_float);
	predefined_sizeof("DOUBLE", "", bits_in_double);
	predefined_sizeof("LONG_DOUBLE", "", bits_in_longdouble);

	if (arch_target->has_int128)
		predefined_sizeof("INT128", "", 128);

	predefine("__ATOMIC_RELAXED", 1, "0");
	predefine("__ATOMIC_CONSUME", 1, "1");
	predefine("__ATOMIC_ACQUIRE", 1, "3");
	predefine("__ATOMIC_RELEASE", 1, "4");
	predefine("__ATOMIC_ACQ_REL", 1, "7");
	predefine("__ATOMIC_SEQ_CST", 1, "8");

	predefine("__ORDER_LITTLE_ENDIAN__", 1, "1234");
	predefine("__ORDER_BIG_ENDIAN__", 1, "4321");
	predefine("__ORDER_PDP_ENDIAN__", 1, "3412");
	if (arch_big_endian) {
		predefine("__BIG_ENDIAN__", 1, "1");
		predefine("__BYTE_ORDER__", 1, "__ORDER_BIG_ENDIAN__");
	} else {
		predefine("__LITTLE_ENDIAN__", 1, "1");
		predefine("__BYTE_ORDER__", 1, "__ORDER_LITTLE_ENDIAN__");
	}

	if (optimize_level)
		predefine("__OPTIMIZE__", 0, "1");
	if (optimize_size)
		predefine("__OPTIMIZE_SIZE__", 0, "1");

	predefine("__PRAGMA_REDEFINE_EXTNAME", 1, "1");

	// Temporary hacks
	predefine("__extension__", 0, NULL);
	predefine("__pragma__", 0, NULL);

	switch (arch_m64) {
	case ARCH_LP32:
		break;
	case ARCH_X32:
		predefine("__ILP32__", 1, "1");
		predefine("_ILP32", 1, "1");
		break;
	case ARCH_LP64:
		predefine("__LP64__", 1, "1");
		predefine("_LP64", 1, "1");
		break;
	case ARCH_LLP64:
		predefine("__LLP64__", 1, "1");
		break;
	}

	if (fpic) {
		predefine("__pic__", 0, "%d", fpic);
		predefine("__PIC__", 0, "%d", fpic);
	}
	if (fpie) {
		predefine("__pie__", 0, "%d", fpie);
		predefine("__PIE__", 0, "%d", fpie);
	}

	if (arch_target->predefine)
		arch_target->predefine(arch_target);

	if (arch_os >= OS_UNIX && arch_os != OS_DARWIN) {
		predefine("__unix__", 1, "1");
		predefine("__unix", 1, "1");
		predefine_nostd("unix");
	}

	switch (arch_os) {
	case OS_CYGWIN:
		predefine("__CYGWIN__", 1, "1");
		if (arch_m64 == ARCH_LP32)
			predefine("__CYGWIN32__", 1, "1");
		add_pre_buffer("#define __cdecl __attribute__((__cdecl__))\n");
		add_pre_buffer("#define __declspec(x) __attribute__((x))\n");
		add_pre_buffer("#define __fastcall __attribute__((__fastcall__))\n");
		add_pre_buffer("#define __stdcall __attribute__((__stdcall__))\n");
		add_pre_buffer("#define __thiscall __attribute__((__thiscall__))\n");
		add_pre_buffer("#define _cdecl __attribute__((__cdecl__))\n");
		add_pre_buffer("#define _fastcall __attribute__((__fastcall__))\n");
		add_pre_buffer("#define _stdcall __attribute__((__stdcall__))\n");
		add_pre_buffer("#define _thiscall __attribute__((__thiscall__))\n");
		break;
	case OS_DARWIN:
		predefine("__APPLE__", 1, "1");
		predefine("__APPLE_CC__", 1, "1");
		predefine("__MACH__", 1, "1");
		break;
	case OS_FREEBSD:
		predefine("__FreeBSD__", 1, "1");
		break;
	case OS_LINUX:
		predefine("__linux__", 1, "1");
		predefine("__linux", 1, "1");
		break;
	case OS_NETBSD:
		predefine("__NetBSD__", 1, "1");
		break;
	case OS_OPENBSD:
		predefine("__OpenBSD__", 1, "1");
		break;
	case OS_SUNOS:
		predefine("__sun__", 1, "1");
		predefine("__sun", 1, "1");
		predefine_nostd("sun");
		predefine("__svr4__", 1, "1");
		break;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
leaq 0x22e02(%rip), %rdi     # 0x3e740
leaq 0x28b2e(%rip), %rbx     # 0x44473
xorl %esi, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x3ebdc(%rip), %rax     # 0x5a534
movl (%rax), %ecx
leaq 0x22deb(%rip), %rdi     # 0x3e74c
leaq 0x1ede9(%rip), %r14     # 0x3a751
pushq $0x1
popq %rbp
movl %ebp, %esi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x3ebba(%rip), %rax     # 0x5a538
movl (%rax), %ecx
leaq 0x22dce(%rip), %rdi     # 0x3e755
movl %ebp, %esi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x3eba2(%rip), %rax     # 0x5a53c
movl (%rax), %ecx
leaq 0x22dc1(%rip), %rdi     # 0x3e764
movl %ebp, %esi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x22dc2(%rip), %rdi     # 0x3e778
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x3eb9f(%rip), %rax     # 0x5a568
cmpl $0x0, (%rax)
leaq 0x23acd(%rip), %rdx     # 0x3f4a0
cmovneq %rbx, %rdx
leaq 0x22da3(%rip), %rdi     # 0x3e781
xorl %esi, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x3eb6a(%rip), %rbx     # 0x5a558
movl (%rbx), %eax
addl $-0x4, %eax
cmpl $0x7, %eax
ja 0x1ba23
movl $0xfd, %ecx
btl %eax, %ecx
jae 0x1ba23
movl %eax, %eax
leaq 0x22d15(%rip), %rcx     # 0x3e720
movslq (%rcx,%rax,4), %rdx
addq %rcx, %rdx
leaq 0x22d78(%rip), %rdi     # 0x3e791
pushq $0x1
popq %rsi
xorl %eax, %eax
callq 0x1c59c
movl (%rbx), %eax
testl %eax, %eax
sete %cl
orb %al, %cl
testb $0x1, %cl
jne 0x1ba4b
leaq 0x22d8a(%rip), %rdi     # 0x3e7c2
leaq 0x28a34(%rip), %rdx     # 0x44473
pushq $0x1
popq %rsi
xorl %eax, %eax
callq 0x1c59c
movl (%rbx), %eax
cmpl $0x8, %eax
jb 0x1ba93
leaq 0x22d7b(%rip), %rdi     # 0x3e7d2
leaq 0x28a15(%rip), %rbx     # 0x44473
pushq $0x1
popq %rbp
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x22d72(%rip), %rdi     # 0x3e7e6
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x22d73(%rip), %rdi     # 0x3e7fa
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x42c66(%rip), %rax     # 0x5e700
movl (%rax), %ecx
leaq 0x22d6b(%rip), %rdi     # 0x3e80e
leaq 0x1eca7(%rip), %rdx     # 0x3a751
pushq $0x1
popq %rsi
xorl %eax, %eax
callq 0x1c59c
leaq 0x45321(%rip), %rax     # 0x60ddc
cmpl $0x0, (%rax)
je 0x1bad8
leaq 0x22d54(%rip), %rdi     # 0x3e81b
leaq 0x289a5(%rip), %rdx     # 0x44473
pushq $0x1
popq %rsi
xorl %eax, %eax
callq 0x1c59c
leaq 0x22d4e(%rip), %rdi     # 0x3e82d
leaq 0x499b2(%rip), %r14     # 0x65498
pushq $0x1
popq %rdx
movq %r14, %rsi
callq 0x1c3d0
leaq 0x22d3b(%rip), %rdi     # 0x3e833
pushq $0x14
popq %rbx
movq %r14, %rsi
movl %ebx, %edx
callq 0x1c3d0
leaq 0x22d2c(%rip), %rdi     # 0x3e838
leaq 0x497c5(%rip), %r15     # 0x652d8
movq %r15, %rsi
movl %ebx, %edx
callq 0x1c3d0
leaq 0x42b3c(%rip), %rax     # 0x5e660
movq (%rax), %rsi
leaq 0x22d10(%rip), %rdi     # 0x3e83e
pushq $0x3f
popq %rbx
movl %ebx, %edx
callq 0x1c3d0
leaq 0x42b29(%rip), %rax     # 0x5e668
movq (%rax), %rsi
leaq 0x22cfb(%rip), %rdi     # 0x3e844
movl %ebx, %edx
callq 0x1c3d0
leaq 0x22cf2(%rip), %rdi     # 0x3e849
leaq 0x49afa(%rip), %r12     # 0x65658
pushq $0x20
popq %rbx
movq %r12, %rsi
movl %ebx, %edx
callq 0x1c3d0
leaq 0x42ae6(%rip), %rax     # 0x5e658
movq (%rax), %rsi
movq %rax, %r13
leaq 0x22cd1(%rip), %rdi     # 0x3e850
movl %ebx, %edx
callq 0x1c3d0
leaq 0x22cb8(%rip), %rdi     # 0x3e845
leaq 0x49ba4(%rip), %rsi     # 0x65738
pushq $0x15
popq %rbx
movl %ebx, %edx
callq 0x1c3d0
leaq 0x252ab(%rip), %rdi     # 0x40e50
leaq 0x49e2c(%rip), %rsi     # 0x659d8
movl %ebx, %edx
callq 0x1c3d0
leaq 0x22c9d(%rip), %rdi     # 0x3e857
leaq 0x4a0b7(%rip), %rsi     # 0x65c78
movl %ebx, %edx
callq 0x1c3d0
leaq 0x22c93(%rip), %rdi     # 0x3e862
pushq $0x24
popq %rbp
movq %r15, %rsi
movl %ebp, %edx
callq 0x1c3d0
leaq 0x22c7e(%rip), %rdi     # 0x3e861
leaq 0x497ce(%rip), %rbx     # 0x653b8
movq %rbx, %rsi
movl %ebp, %edx
callq 0x1c3d0
leaq 0x22c6d(%rip), %rdi     # 0x3e868
movq %r14, %rsi
movl %ebp, %edx
callq 0x1c3d0
leaq 0x22c5b(%rip), %rdi     # 0x3e867
movq %r12, %rsi
movl %ebp, %edx
callq 0x1c3d0
leaq 0x42a33(%rip), %r12     # 0x5e650
movq (%r12), %rsi
leaq 0x22c47(%rip), %rdi     # 0x3e86f
movl %ebp, %edx
callq 0x1c3d0
movq (%r13), %rsi
leaq 0x22c34(%rip), %rdi     # 0x3e86e
movl %ebp, %edx
callq 0x1c3d0
leaq 0x429f8(%rip), %r13     # 0x5e640
movq (%r13), %rsi
leaq 0x22c23(%rip), %rdi     # 0x3e876
movl %ebp, %edx
callq 0x1c3d0
leaq 0x429e7(%rip), %r14     # 0x5e648
movq (%r14), %rsi
leaq 0x22c0a(%rip), %rdi     # 0x3e875
movl %ebp, %edx
callq 0x1c3d0
leaq 0x22c04(%rip), %rdi     # 0x3e87d
pushq $0x34
popq %r15
leaq 0x49654(%rip), %rsi     # 0x652d8
movl %r15d, %edx
callq 0x1c3d0
leaq 0x22be9(%rip), %rdi     # 0x3e87c
movq %rbx, %rsi
movl %ebp, %edx
callq 0x1c3d0
leaq 0x22be5(%rip), %rdi     # 0x3e889
leaq 0x497ed(%rip), %rsi     # 0x65498
movl %r15d, %edx
callq 0x1c3d0
leaq 0x22bce(%rip), %rdi     # 0x3e888
leaq 0x49997(%rip), %rsi     # 0x65658
movl %ebp, %edx
callq 0x1c3d0
movq (%r12), %rsi
leaq 0x22bc3(%rip), %rdi     # 0x3e896
movl %r15d, %edx
callq 0x1c3d0
leaq 0x42976(%rip), %rax     # 0x5e658
movq (%rax), %rsi
leaq 0x22ba9(%rip), %rdi     # 0x3e895
movl %ebp, %edx
callq 0x1c3d0
movq (%r13), %rsi
leaq 0x22ba5(%rip), %rdi     # 0x3e8a3
movl %r15d, %edx
callq 0x1c3d0
movq (%r14), %rsi
leaq 0x22b92(%rip), %rdi     # 0x3e8a2
movl %ebp, %edx
callq 0x1c3d0
leaq 0x42992(%rip), %rax     # 0x5e6b0
movq (%rax), %rsi
leaq 0x22b88(%rip), %rdi     # 0x3e8b0
movl %r15d, %edx
callq 0x1c3d0
leaq 0x42981(%rip), %rax     # 0x5e6b8
movq (%rax), %rsi
leaq 0x22b6e(%rip), %rdi     # 0x3e8af
movl %ebp, %edx
callq 0x1c3d0
leaq 0x42971(%rip), %rax     # 0x5e6c0
movq (%rax), %rsi
leaq 0x22b62(%rip), %rdi     # 0x3e8bb
movl %r15d, %edx
callq 0x1c3d0
leaq 0x42960(%rip), %rax     # 0x5e6c8
movq (%rax), %rsi
leaq 0x22b48(%rip), %rdi     # 0x3e8ba
movl %ebp, %edx
callq 0x1c3d0
leaq 0x42950(%rip), %rax     # 0x5e6d0
movq (%rax), %rsi
leaq 0x22b3d(%rip), %rdi     # 0x3e8c7
movl %r15d, %edx
callq 0x1c3d0
leaq 0x4293f(%rip), %rax     # 0x5e6d8
movq (%rax), %rsi
leaq 0x22b23(%rip), %rdi     # 0x3e8c6
movl %ebp, %edx
callq 0x1c3d0
leaq 0x4292f(%rip), %rax     # 0x5e6e0
movq (%rax), %rsi
leaq 0x22b18(%rip), %rdi     # 0x3e8d3
movl %r15d, %edx
callq 0x1c3d0
leaq 0x4291e(%rip), %rax     # 0x5e6e8
movq (%rax), %rsi
leaq 0x22afe(%rip), %rdi     # 0x3e8d2
movl %ebp, %edx
callq 0x1c3d0
leaq 0x4284e(%rip), %rax     # 0x5e630
movq (%rax), %rsi
leaq 0x22af3(%rip), %rdi     # 0x3e8df
movl %r15d, %edx
callq 0x1c3d0
leaq 0x4283d(%rip), %rax     # 0x5e638
movq (%rax), %rsi
leaq 0x22ad9(%rip), %rdi     # 0x3e8de
movl %ebp, %edx
callq 0x1c3d0
leaq 0x4c175(%rip), %rax     # 0x67f88
movq (%rax), %rsi
leaq 0x22aca(%rip), %rdi     # 0x3e8e7
movl %r15d, %edx
callq 0x1c3d0
leaq 0x4c164(%rip), %rax     # 0x67f90
movq (%rax), %rsi
leaq 0x22ab0(%rip), %rdi     # 0x3e8e6
movl %ebp, %edx
callq 0x1c3d0
leaq 0x4c13c(%rip), %rax     # 0x67f80
movq (%rax), %rsi
leaq 0x22aa0(%rip), %rdi     # 0x3e8ee
pushq $0x37
popq %rbx
movl %ebx, %edx
callq 0x1c3d0
leaq 0x427c1(%rip), %rax     # 0x5e620
movq (%rax), %rsi
leaq 0x22a8d(%rip), %rdi     # 0x3e8f6
movl %ebx, %edx
callq 0x1c3d0
leaq 0x22a84(%rip), %rdi     # 0x3e8fb
leaq 0x4a6ba(%rip), %rsi     # 0x66538
pushq $0x1
popq %rdx
callq 0x1c3d0
leaq 0x42863(%rip), %rax     # 0x5e6f0
movq (%rax), %rsi
leaq 0x22a6c(%rip), %rdi     # 0x3e903
pushq $0x3c
popq %rdx
callq 0x1c3d0
leaq 0x42876(%rip), %rax     # 0x5e71c
movl (%rax), %edx
leaq 0x22a5f(%rip), %rdi     # 0x3e90e
leaq 0x1da17(%rip), %rbx     # 0x398cd
movq %rbx, %rsi
callq 0x1c533
leaq 0x4285b(%rip), %rax     # 0x5e720
movl (%rax), %edx
leaq 0x22a4b(%rip), %rdi     # 0x3e919
movq %rbx, %rsi
callq 0x1c533
leaq 0x42847(%rip), %rax     # 0x5e724
movl (%rax), %edx
leaq 0x22a2e(%rip), %rdi     # 0x3e914
movq %rbx, %rsi
callq 0x1c533
leaq 0x4284b(%rip), %r13     # 0x5e740
movq (%r13), %rax
testb $0x8, 0x8(%rax)
je 0x1bf17
leaq 0x22a1a(%rip), %rdi     # 0x3e920
leaq 0x1d9c0(%rip), %rsi     # 0x398cd
movl $0x80, %edx
callq 0x1c533
leaq 0x22a09(%rip), %rdi     # 0x3e927
leaq 0x2357b(%rip), %rdx     # 0x3f4a0
pushq $0x1
popq %rbx
movl %ebx, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x22a00(%rip), %rdi     # 0x3e938
leaq 0x28534(%rip), %r14     # 0x44473
movl %ebx, %esi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x229f7(%rip), %rdi     # 0x3e949
leaq 0x22a01(%rip), %rdx     # 0x3e95a
movl %ebx, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x229f3(%rip), %rdi     # 0x3e95c
leaq 0x22a3a(%rip), %rdx     # 0x3e9aa
movl %ebx, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x229ed(%rip), %rdi     # 0x3e96d
leaq 0x1f55f(%rip), %rdx     # 0x3b4e6
movl %ebx, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x229e7(%rip), %rdi     # 0x3e97e
leaq 0x1f555(%rip), %rdx     # 0x3b4f3
movl %ebx, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x229e1(%rip), %r12     # 0x3e98f
leaq 0x229f2(%rip), %rdx     # 0x3e9a7
movq %r12, %rdi
movl %ebx, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x229e4(%rip), %r15     # 0x3e9ac
leaq 0x229f2(%rip), %rdx     # 0x3e9c1
movq %r15, %rdi
movl %ebx, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x229e4(%rip), %rdi     # 0x3e9c6
leaq 0x229f2(%rip), %rdx     # 0x3e9db
movl %ebx, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x44d9f(%rip), %rax     # 0x60d98
cmpl $0x0, (%rax)
leaq 0x229fb(%rip), %rax     # 0x3e9fe
leaq 0x229d6(%rip), %rdi     # 0x3e9e0
cmoveq %rax, %rdi
cmoveq %r12, %r15
movl %ebx, %esi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x229ca(%rip), %rdi     # 0x3e9ef
movl %ebx, %esi
movq %r15, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x44e1c(%rip), %rax     # 0x60e54
cmpl $0x0, (%rax)
je 0x1c054
leaq 0x229cc(%rip), %rdi     # 0x3ea10
leaq 0x28428(%rip), %rdx     # 0x44473
xorl %esi, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x44dfd(%rip), %rax     # 0x60e58
cmpl $0x0, (%rax)
je 0x1c077
leaq 0x229b6(%rip), %rdi     # 0x3ea1d
leaq 0x28405(%rip), %rdx     # 0x44473
xorl %esi, %esi
xorl %eax, %eax
callq 0x1c59c
leaq 0x229b1(%rip), %rdi     # 0x3ea2f
leaq 0x283ee(%rip), %rdx     # 0x44473
pushq $0x1
popq %rsi
xorl %eax, %eax
callq 0x1c59c
leaq 0x229b3(%rip), %rdi     # 0x3ea49
xorl %esi, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0x1c59c
leaq 0x229af(%rip), %rdi     # 0x3ea57
xorl %esi, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0x1c59c
leaq 0x3e4a6(%rip), %r14     # 0x5a560
movl (%r14), %eax
cmpl $0x1, %eax
je 0x1c0e5
cmpl $0x3, %eax
je 0x1c0dc
cmpl $0x2, %eax
jne 0x1c118
leaq 0x229a9(%rip), %rbx     # 0x3ea7c
leaq 0x22999(%rip), %rdi     # 0x3ea73
jmp 0x1c0f3
leaq 0x2299f(%rip), %rbx     # 0x3ea82
jmp 0x1c104
leaq 0x22980(%rip), %rbx     # 0x3ea6c
leaq 0x2296f(%rip), %rdi     # 0x3ea62
leaq 0x28379(%rip), %rdx     # 0x44473
pushq $0x1
popq %rsi
xorl %eax, %eax
callq 0x1c59c
leaq 0x28368(%rip), %rdx     # 0x44473
pushq $0x1
popq %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1c59c
leaq 0x44cad(%rip), %r15     # 0x60dcc
movl (%r15), %ecx
testl %ecx, %ecx
je 0x1c156
leaq 0x2295f(%rip), %rdi     # 0x3ea8c
leaq 0x1e61d(%rip), %rbx     # 0x3a751
xorl %esi, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
movl (%r15), %ecx
leaq 0x2294a(%rip), %rdi     # 0x3ea94
xorl %esi, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x44c73(%rip), %r15     # 0x60dd0
movl (%r15), %ecx
testl %ecx, %ecx
je 0x1c194
leaq 0x22931(%rip), %rdi     # 0x3ea9c
leaq 0x1e5df(%rip), %rbx     # 0x3a751
xorl %esi, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
movl (%r15), %ecx
leaq 0x2291c(%rip), %rdi     # 0x3eaa4
xorl %esi, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
movq (%r13), %rdi
movq 0x60(%rdi), %rax
testq %rax, %rax
je 0x1c1a3
callq *%rax
leaq 0x3e3ba(%rip), %r15     # 0x5a564
movl (%r15), %eax
cmpl $0x2, %eax
setl %cl
cmpl $0x4, %eax
sete %dl
orb %cl, %dl
jne 0x1c1fc
leaq 0x228e8(%rip), %rdi     # 0x3eaac
leaq 0x282a8(%rip), %rbx     # 0x44473
pushq $0x1
popq %rbp
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x228d4(%rip), %rdi     # 0x3eab5
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x228c3(%rip), %rdi     # 0x3eab7
callq 0x1ca93
movl (%r15), %eax
addl $-0x3, %eax
cmpl $0x6, %eax
ja 0x1c318
leaq 0x224f5(%rip), %rcx     # 0x3e704
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2289d(%rip), %rdi     # 0x3eabc
leaq 0x2824d(%rip), %rdx     # 0x44473
pushq $0x1
popq %rsi
xorl %eax, %eax
callq 0x1c59c
cmpl $0x0, (%r14)
jne 0x1c24e
leaq 0x2288a(%rip), %rdi     # 0x3eac7
leaq 0x2822f(%rip), %rdx     # 0x44473
pushq $0x1
popq %rsi
xorl %eax, %eax
callq 0x1c59c
leaq 0x2287f(%rip), %rdi     # 0x3ead4
xorl %eax, %eax
callq 0x11481
leaq 0x2289d(%rip), %rdi     # 0x3eb00
xorl %eax, %eax
callq 0x11481
leaq 0x228b9(%rip), %rdi     # 0x3eb2a
xorl %eax, %eax
callq 0x11481
leaq 0x228dd(%rip), %rdi     # 0x3eb5c
xorl %eax, %eax
callq 0x11481
leaq 0x228ff(%rip), %rdi     # 0x3eb8c
xorl %eax, %eax
callq 0x11481
leaq 0x22923(%rip), %rdi     # 0x3ebbe
xorl %eax, %eax
callq 0x11481
leaq 0x22940(%rip), %rdi     # 0x3ebe9
xorl %eax, %eax
callq 0x11481
leaq 0x22963(%rip), %rdi     # 0x3ec1a
xorl %eax, %eax
callq 0x11481
leaq 0x22984(%rip), %rdi     # 0x3ec49
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x11481
leaq 0x229d7(%rip), %rdi     # 0x3ecb8
jmp 0x1c367
leaq 0x229ad(%rip), %rdi     # 0x3ec9a
jmp 0x1c367
leaq 0x229b0(%rip), %rdi     # 0x3eca6
leaq 0x28176(%rip), %rbx     # 0x44473
pushq $0x1
popq %rbp
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x2299d(%rip), %rdi     # 0x3ecb0
jmp 0x1c3b6
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2294c(%rip), %rdi     # 0x3ec7a
leaq 0x2813e(%rip), %rbx     # 0x44473
pushq $0x1
popq %rbp
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x22939(%rip), %rdi     # 0x3ec84
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x22933(%rip), %rdi     # 0x3ec91
jmp 0x1c3b6
leaq 0x2295c(%rip), %rdi     # 0x3ecc3
leaq 0x28105(%rip), %rdx     # 0x44473
pushq $0x1
popq %rsi
jmp 0x1c3bb
leaq 0x22955(%rip), %rdi     # 0x3eccf
leaq 0x280f2(%rip), %rbx     # 0x44473
pushq $0x1
popq %rbp
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x22940(%rip), %rdi     # 0x3ecd7
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1c59c
leaq 0x2292f(%rip), %rdi     # 0x3ecd9
callq 0x1ca93
leaq 0x22927(%rip), %rdi     # 0x3ecdd
movl %ebp, %esi
movq %rbx, %rdx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1c59c