// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/libraries/libcpuid/recog_intel.c
// Function: cpuid_identify_intel
int cpuid_identify_intel(struct cpu_raw_data_t* raw, struct cpu_id_t* data, struct internal_id_info_t* internal)
{
	intel_code_and_bits_t brand;
	intel_model_t model_code;
	int i;
	char* brand_code_str = NULL;

	load_intel_features(raw, data);
	if (raw->basic_cpuid[0][EAX] >= 4) {
		/* Deterministic way is preferred, being more generic */
		decode_deterministic_cache_info_x86(raw->intel_fn4, MAX_INTELFN4_LEVEL, data, internal);
	} else if (raw->basic_cpuid[0][EAX] >= 2) {
		decode_intel_oldstyle_cache_info(raw, data);
	}
	if ((raw->basic_cpuid[0][EAX] < 11) || (decode_intel_extended_topology(raw, data) == 0))
		decode_number_of_cores_x86(raw, data);
	data->purpose = cpuid_identify_purpose_intel(raw);

	brand = get_brand_code_and_bits(data);
	model_code = get_model_code(data);
	for (i = 0; i < COUNT_OF(intel_bcode_str); i++) {
		if (brand.code == intel_bcode_str[i].code) {
			brand_code_str = intel_bcode_str[i].str;
			break;
		}
	}
	if (brand_code_str)
		debugf(2, "Detected Intel brand code: %d (%s)\n", brand.code, brand_code_str);
	else
		debugf(2, "Detected Intel brand code: %d\n", brand.code);
	if (brand.bits) {
		debugf(2, "Detected Intel bits: ");
		debug_print_lbits(2, brand.bits);
	}
	debugf(2, "Detected Intel model code: %d\n", model_code);

	internal->code.intel = brand.code;
	internal->bits = brand.bits;

	if (data->flags[CPU_FEATURE_SGX]) {
		debugf(2, "SGX seems to be present, decoding...\n");
		// if SGX is indicated by the CPU, verify its presence:
		decode_intel_sgx_features(raw, data);
	}

	internal->score = match_cpu_codename(cpudb_intel, COUNT_OF(cpudb_intel), data,
		brand.code, brand.bits, model_code);
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1d8, %rsp            # imm = 0x1D8
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r12
movaps 0x53351(%rip), %xmm0    # 0x118160
movaps %xmm0, 0x160(%rsp)
movaps 0x53332(%rip), %xmm0    # 0x118150
movaps %xmm0, 0x150(%rsp)
movaps 0x53313(%rip), %xmm0    # 0x118140
movaps %xmm0, 0x140(%rsp)
movabsq $0x1d0000001f, %rax     # imm = 0x1D0000001F
movq %rax, 0x170(%rsp)
leaq 0x53332(%rip), %rsi     # 0x118180
pushq $0xb
popq %rcx
leaq 0x20(%rsp), %rdi
rep  movsq (%rsi), %es:(%rdi)
movabsq $0x3000000014, %rax     # imm = 0x3000000014
movq %rax, 0x18(%rsp)
leaq 0x53371(%rip), %rsi     # 0x1181e0
pushq $0xa
popq %rcx
leaq 0x180(%rsp), %rdi
rep  movsq (%rsi), %es:(%rdi)
movaps 0x533ac(%rip), %xmm0    # 0x118230
movaps %xmm0, 0x120(%rsp)
movabsq $0x6e0000000b, %rax     # imm = 0x6E0000000B
movq %rax, 0x130(%rsp)
cmpl $0x0, (%r12)
je 0xc4ed2
movl 0x1c(%r12), %edx
leaq 0x140(%rsp), %rdi
pushq $0x7
popq %rsi
movq %r14, %rcx
callq 0xc33d8
movl 0x18(%r12), %edx
leaq 0x20(%rsp), %rdi
pushq $0xb
popq %rsi
movq %r14, %rcx
callq 0xc33d8
cmpl $0x0, 0x200(%r12)
je 0xc4ef5
movl 0x21c(%r12), %edx
leaq 0x18(%rsp), %rdi
pushq $0x1
popq %rsi
movq %r14, %rcx
callq 0xc33d8
movl (%r12), %eax
cmpl $0x7, %eax
jb 0xc4f32
movl 0x74(%r12), %edx
leaq 0x180(%rsp), %rdi
pushq $0xa
popq %rsi
movq %r14, %rcx
callq 0xc33d8
movl 0x78(%r12), %edx
leaq 0x120(%rsp), %rdi
pushq $0x3
popq %rsi
movq %r14, %rcx
callq 0xc33d8
movl (%r12), %eax
cmpl $0x4, %eax
movq %rbx, 0x10(%rsp)
movq %r12, 0x8(%rsp)
jb 0xc4f5c
leaq 0x400(%r12), %rdi
pushq $0x8
popq %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0xc3d54
jmp 0xc558d
cmpl $0x2, %eax
jb 0xc558d
pushq $0x4
popq %rbx
leaq 0x20(%rsp), %rdi
xorl %r15d, %r15d
movl $0x100, %edx            # imm = 0x100
xorl %esi, %esi
callq 0x56ff0
cmpq $0x4, %r15
je 0xc4fa4
movl 0x20(%r12,%r15,4), %eax
testl %eax, %eax
js 0xc4f9f
movl %ebx, %ecx
subl $0x1, %ecx
jb 0xc4f9f
movzbl %al, %edx
movb $0x1, 0x20(%rsp,%rdx)
shrl $0x8, %eax
jmp 0xc4f8d
incq %r15
jmp 0xc4f7c
movzbl 0x26(%rsp), %edi
pushq $0x8
popq %rbx
pushq $0x4
popq %r15
pushq $0x20
popq %rbp
xorl %esi, %esi
movl %ebx, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x28(%rsp), %edi
pushq $0x10
popq %r13
xorl %esi, %esi
movl %r13d, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x2a(%rsp), %edi
pushq $0x1
popq %r12
pushq $0x2
popq %rcx
movl %r12d, %esi
movl %ebx, %edx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x2c(%rsp), %edi
movl %r12d, %esi
movl %r13d, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movl %ebp, %r13d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x42(%rsp), %edi
pushq $0x3
popq %rbp
pushq $0x40
popq %r12
movl %ebp, %esi
movl $0x200, %edx            # imm = 0x200
movl %r15d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x43(%rsp), %edi
movl %ebp, %esi
movl $0x400, %edx            # imm = 0x400
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x45(%rsp), %edi
movl %ebp, %esi
movl $0x800, %edx            # imm = 0x800
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x49(%rsp), %edi
movl %ebp, %esi
movl $0x1000, %edx           # imm = 0x1000
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x4c(%rsp), %edi
pushq $0x1
popq %rsi
movl %r13d, %edx
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x50(%rsp), %edi
xorl %esi, %esi
movl %r13d, %edx
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x59(%rsp), %edi
pushq $0x2
popq %r13
movl %r13d, %esi
movl $0x80, %edx
movl %r15d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x5a(%rsp), %edi
pushq $0x6
popq %rbp
movl %r13d, %esi
movl $0xc0, %edx
movl %ebp, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x5b(%rsp), %edi
movl %r13d, %esi
movl $0x80, %edx
movl %r13d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x5c(%rsp), %edi
movl %r13d, %esi
movl $0x100, %edx            # imm = 0x100
movl %r15d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x5d(%rsp), %edi
movl %r13d, %esi
movl $0x180, %edx            # imm = 0x180
movl %ebp, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x5e(%rsp), %edi
movl %r13d, %esi
movl $0x200, %edx            # imm = 0x200
movl %r15d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x61(%rsp), %edi
movl %r13d, %esi
movl $0x80, %edx
movl %r15d, %ecx
pushq $0x20
popq %rbp
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x62(%rsp), %edi
movl %r13d, %esi
movl $0x100, %edx            # imm = 0x100
movl %r15d, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x63(%rsp), %edi
movl %r13d, %esi
movl $0x200, %edx            # imm = 0x200
movl %r15d, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x64(%rsp), %edi
movl %r13d, %esi
movl $0x400, %edx            # imm = 0x400
movl %r15d, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x65(%rsp), %edi
movl %r13d, %esi
movl $0x800, %edx            # imm = 0x800
movl %r15d, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x66(%rsp), %edi
pushq $0x3
popq %rbp
movl %ebp, %esi
movl $0x1000, %edx           # imm = 0x1000
movl %r15d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x67(%rsp), %edi
movl %ebp, %esi
movl $0x2000, %edx           # imm = 0x2000
pushq $0x8
popq %rcx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x6a(%rsp), %edi
pushq $0xc
popq %rbx
movl %ebp, %esi
movl $0x1800, %edx           # imm = 0x1800
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x6b(%rsp), %edi
movl %ebp, %esi
movl $0x2000, %edx           # imm = 0x2000
pushq $0x10
popq %r13
movl %r13d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x6c(%rsp), %edi
movl %ebp, %esi
movl $0x3000, %edx           # imm = 0x3000
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x6d(%rsp), %edi
movl %ebp, %esi
movl $0x4000, %edx           # imm = 0x4000
movl %r13d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x6e(%rsp), %edi
pushq $0x18
popq %rcx
pushq $0x2
popq %rsi
movl $0x1800, %edx           # imm = 0x1800
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x80(%rsp), %edi
pushq $0x1
popq %rbp
movl %ebp, %esi
movl %r13d, %edx
pushq $0x8
popq %rbx
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x86(%rsp), %edi
movl %ebp, %esi
movl %ebx, %edx
pushq $0x4
popq %r15
movl %r15d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x87(%rsp), %edi
movl %ebp, %esi
movl %r13d, %edx
movl %r15d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x88(%rsp), %edi
movl %ebp, %esi
pushq $0x20
popq %r13
movl %r13d, %edx
movl %r15d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x90(%rsp), %edi
pushq $-0x1
popq %rbp
xorl %esi, %esi
pushq $0xc
popq %rdx
movl %ebx, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x91(%rsp), %edi
xorl %esi, %esi
pushq $0x10
popq %rdx
movl %ebx, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x92(%rsp), %edi
xorl %esi, %esi
movl %r13d, %edx
movl %ebx, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x93(%rsp), %edi
xorl %esi, %esi
movl %r12d, %edx
movl %ebx, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x98(%rsp), %edi
pushq $0x2
popq %rbp
movl %ebp, %esi
movl $0x400, %edx            # imm = 0x400
movl %r15d, %ecx
movl %r15d, %r13d
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x99(%rsp), %edi
movl %ebp, %esi
movl $0x80, %edx
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x9a(%rsp), %edi
movl %ebp, %esi
movl $0x100, %edx            # imm = 0x100
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x9b(%rsp), %edi
movl %ebp, %esi
movl $0x200, %edx            # imm = 0x200
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x9c(%rsp), %edi
movl %ebp, %esi
movl $0x400, %edx            # imm = 0x400
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x9d(%rsp), %edi
movl %ebp, %esi
movl $0x800, %edx            # imm = 0x800
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0x9f(%rsp), %edi
movl %ebp, %esi
movl $0x200, %edx            # imm = 0x200
movl %ebp, %ecx
movl %ebp, %r15d
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0xa2(%rsp), %edi
movl %ebp, %esi
movl $0x100, %edx            # imm = 0x100
movl %ebx, %ecx
pushq $0x20
popq %rbp
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0xa3(%rsp), %edi
movl %r15d, %esi
movl $0x200, %edx            # imm = 0x200
movl %ebx, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0xa4(%rsp), %edi
movl %r15d, %esi
movl $0x400, %edx            # imm = 0x400
movl %ebx, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0xa5(%rsp), %edi
movl %r15d, %esi
movl $0x800, %edx            # imm = 0x800
movl %ebx, %ecx
movl %ebp, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0xa6(%rsp), %edi
movl %r15d, %esi
movl $0x200, %edx            # imm = 0x200
movl %r13d, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
movzbl 0xa7(%rsp), %edi
movl %r15d, %esi
movl $0x400, %edx            # imm = 0x400
movl %ebx, %ecx
movl %r12d, %r8d
movq %r14, %r9
callq 0xc3c5f
cmpb $0x0, 0x69(%rsp)
je 0xc5565
cmpl $0xf, 0xd8(%r14)
jne 0xc5544
cmpl $0x6, 0xdc(%r14)
jne 0xc5544
movl $0x1000, 0x104(%r14) # imm = 0x1000
movl $0x10, 0x11c(%r14)
movl $0x40, 0x134(%r14)
jmp 0xc5565
movl $0x1000, 0x100(%r14) # imm = 0x1000
movl $0x10, 0x118(%r14)
movl $0x40, 0x130(%r14)
cmpb $0x0, 0x60(%rsp)
movq 0x8(%rsp), %r12
je 0xc558d
cmpl $-0x1, 0x100(%r14)
je 0xc5585
andl $0x0, 0x104(%r14)
jmp 0xc558d
andl $0x0, 0x100(%r14)
pushq $0x1
popq %r9
cmpl $0xb, (%r12)
jb 0xc55ee
pushq $-0x1
popq %rcx
leaq 0x488(%r12), %rdx
xorl %esi, %esi
movl %ecx, %eax
cmpl $0x0, -0x8(%rdx)
je 0xc55dc
cmpq $0x3, %rsi
ja 0xc55dc
movl -0x4(%rdx), %edi
testl %edi, %edi
je 0xc55dc
movzbl 0x1(%rdx), %r8d
cmpl $0x2, %r8d
je 0xc55d0
cmpl $0x1, %r8d
jne 0xc55d3
movzwl %di, %ecx
jmp 0xc55d3
movzwl %di, %eax
incq %rsi
addq $0x10, %rdx
jmp 0xc55a7
cmpl $-0x1, %ecx
sete %dl
cmpl $-0x1, %eax
sete %sil
orb %dl, %sil
je 0xc55fb
movq %r12, %rdi
movq %r14, %rsi
callq 0xc3ce8
jmp 0xc5614
movl %eax, 0xf0(%r14)
xorl %edx, %edx
divl %ecx
cmpl $0x2, %eax
cmovll %r9d, %eax
movl %eax, 0xec(%r14)
movq %r12, %rdi
callq 0xc5e97
movl %eax, 0x21d8(%r14)
leaq 0x14(%r14), %r13
movq %r13, %rdi
callq 0x57460
movq %rax, %rbp
pushq $0x8
popq %r15
xorl %r12d, %r12d
leaq 0x9b8e0(%rip), %rbx     # 0x160f20
cmpq $0xb8, %r15
je 0xc5664
movq (%r15,%rbx), %rsi
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc565e
orq -0x8(%r15,%rbx), %r12
addq $0x10, %r15
jmp 0xc5640
leaq 0x52e48(%rip), %rsi     # 0x1184b3
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc5693
movslq %eax, %rcx
movzbl 0x8(%r13,%rcx), %edx
cmpl $0x6d, %edx
je 0xc56eb
cmpl $0x69, %edx
jne 0xc56f4
orq $0x3000, %r12           # imm = 0x3000
jmp 0xc56fb
leaq 0x52e2d(%rip), %rsi     # 0x1184c7
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc571f
cltq
xorl %ecx, %ecx
cmpb $0x77, 0x7(%r13,%rax)
sete %cl
shll $0x13, %ecx
orq %rcx, %r12
orq $0x4000, %r12           # imm = 0x4000
movzbl 0x8(%r13,%rax), %eax
addl $-0x33, %eax
cmpl $0x6, %eax
ja 0xc57f8
leaq 0x47e77(%rip), %rcx     # 0x10d550
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
orq $0x8, %r12
jmp 0xc57f8
orq $0x1001, %r12           # imm = 0x1001
jmp 0xc56fb
orq $0x1000, %r12           # imm = 0x1000
movzbl 0x9(%r13,%rcx), %ecx
addl $-0x33, %ecx
cmpl $0x6, %ecx
ja 0xc576c
leaq 0x47de0(%rip), %rdx     # 0x10d4f0
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
orq $0x8, %r12
jmp 0xc576c
leaq 0x52db1(%rip), %rsi     # 0x1184d7
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc57f8
cltq
movzbl 0x7(%r13,%rax), %eax
cmpl $0x57, %eax
je 0xc57e8
cmpl $0x44, %eax
jne 0xc57f1
orq $0x104000, %r12         # imm = 0x104000
jmp 0xc57f8
orq $0x20, %r12
jmp 0xc576c
orq $0x10, %r12
jmp 0xc576c
orq $0x40, %r12
addl $0xa, %eax
cltq
leaq 0x47d94(%rip), %rcx     # 0x10d50c
cmpq %rax, %rbp
jbe 0xc57f8
movzbl (%r13,%rax), %edx
addl $-0x48, %edx
cmpl $0x10, %edx
ja 0xc57d1
movslq (%rcx,%rdx,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
orq $0x80, %r12
jmp 0xc57d1
orq $0x200, %r12            # imm = 0x200
jmp 0xc57d1
orq $0x10000, %r12          # imm = 0x10000
jmp 0xc57d1
orq $0x400, %r12            # imm = 0x400
jmp 0xc57d1
orq $0x40000, %r12          # imm = 0x40000
jmp 0xc57d1
orq $0x20000, %r12          # imm = 0x20000
jmp 0xc57d1
orq $0x100, %r12            # imm = 0x100
incq %rax
jmp 0xc5778
orq $0x20, %r12
jmp 0xc57f8
orq $0x10, %r12
jmp 0xc57f8
orq $0x40, %r12
jmp 0xc57f8
orq $0x84000, %r12          # imm = 0x84000
jmp 0xc57f8
orq $0x4000, %r12           # imm = 0x4000
pushq $-0x10
popq %rcx
leaq 0x9b67e(%rip), %rbx     # 0x160e80
leaq 0x10(%rcx), %r15
cmpq $0xa0, %r15
je 0xc5829
movq 0x18(%rcx,%rbx), %rsi
movq %r13, %rdi
callq 0xc3a37
movq %r15, %rcx
testl %eax, %eax
je 0xc5802
movl (%r15,%rbx), %ebx
jmp 0xc582c
pushq $0x1
popq %rbx
leaq 0x52cb1(%rip), %rsi     # 0x1184e4
pushq $0x2
popq %rdi
movl %ebx, %edx
xorl %eax, %eax
callq 0xc34c6
btl $0xe, %r12d
jae 0xc5874
leaq 0x52cb6(%rip), %rsi     # 0x118503
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
jne 0xc5870
leaq 0x52ca9(%rip), %rsi     # 0x118509
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc592d
orq $0x20, %r12
movl $0x4004, %esi           # imm = 0x4004
movq %r12, %rdi
callq 0xc3ba2
testl %eax, %eax
je 0xc5898
movl $0x7d2, %ebp            # imm = 0x7D2
cmpl $0x0, 0x104(%r14)
jg 0xc5970
cmpl $0x7d9, %ebx            # imm = 0x7D9
je 0xc5902
cmpl $0x7d7, %ebx            # imm = 0x7D7
jne 0xc58cd
leaq 0x52b62(%rip), %rsi     # 0x118411
movq %r13, %rdi
callq 0x577f0
testq %rax, %rax
je 0xc58dd
addq $0x3, %rax
movzbl (%rax), %ecx
cmpl $0x20, %ecx
jne 0xc58d4
incq %rax
jmp 0xc58c0
movl %ebx, %ebp
jmp 0xc5970
cmpl $0x54, %ecx
jne 0xc58dd
orq $0x2, %r12
movl 0xec(%r14), %eax
cmpl $0x1, %eax
je 0xc5964
cmpl $0x4, %eax
je 0xc594e
cmpl $0x2, %eax
jne 0xc596b
movl $0x7df, %ebp            # imm = 0x7DF
cmpl $0x2, 0xf0(%r14)
jg 0xc5970
movl $0x7d9, %ebp            # imm = 0x7D9
testb $0x2, %r12b
je 0xc5970
cmpl $0xe, 0xdc(%r14)
je 0xc5970
xorl %ebp, %ebp
cmpl $0x17, 0xe8(%r14)
setl %bpl
xorl $0x7dd, %ebp            # imm = 0x7DD
jmp 0xc5970
leaq 0x52be0(%rip), %rsi     # 0x118514
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc5b31
movl $0x7d3, %ebx            # imm = 0x7D3
jmp 0xc5874
xorl %eax, %eax
cmpl $0x5, 0xf0(%r14)
setge %al
leal 0x7de(,%rax,2), %ebp
jmp 0xc5970
movl $0x7d7, %ebp            # imm = 0x7D7
jmp 0xc5970
movl $0x7e1, %ebp            # imm = 0x7E1
cmpl $0x17, 0xe8(%r14)
jne 0xc5996
cmpl $0x7d9, %ebp            # imm = 0x7D9
je 0xc5991
cmpl $0x7e2, %ebp            # imm = 0x7E2
je 0xc5991
btl $0xb, %r12d
jae 0xc5996
movl $0x7db, %ebp            # imm = 0x7DB
movq %r13, %rdi
callq 0x57460
movq %rax, %rbx
leaq 0x52b82(%rip), %rsi     # 0x11852a
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc5a06
leal 0xf(%rax), %ecx
pushq $-0x1
popq %r15
cmpl %ebx, %ecx
jge 0xc5c08
cltq
movzbl 0xb(%r13,%rax), %ecx
addl $-0x31, %ecx
cmpl $0x8, %ecx
ja 0xc5c08
leaq 0x47b8e(%rip), %rdx     # 0x10d56c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movzbl 0xc(%r13,%rax), %eax
movl %eax, %ecx
andb $-0x4, %cl
cmpb $0x30, %cl
jne 0xc5c08
addl $0x46, %eax
movl %eax, %r15d
jmp 0xc5c08
leaq 0x52b2e(%rip), %rsi     # 0x11853b
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc5a31
leaq 0x52b2b(%rip), %rsi     # 0x11854b
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc5a77
addl $0xa, %eax
jmp 0xc5aa4
cmpl $0x4, %ebx
pushq $0x3
popq %rcx
cmovgel %ebx, %ecx
addl $-0x3, %ecx
leaq 0x18(%r14), %r13
pushq $-0x3
popq %r15
pushq $-0x1
popq %rdx
leaq (%rcx,%r15), %rax
cmpq $-0x3, %rax
je 0xc5b29
cmpb $0x43, -0x4(%r13)
jne 0xc5a6f
cmpb $0x50, -0x3(%r13)
jne 0xc5a6f
cmpb $0x55, -0x2(%r13)
je 0xc5b0c
incq %r13
decq %r15
jmp 0xc5a48
leaq 0x52ad8(%rip), %rsi     # 0x118556
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
jne 0xc5aa1
leaq 0x52ad4(%rip), %rsi     # 0x118565
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc5b92
addl $0xf, %eax
pushq $-0x1
popq %r15
testl %eax, %eax
je 0xc5c08
cltq
movzbl (%r13,%rax), %eax
leal -0x31(%rax), %ecx
cmpb $0x4, %cl
movq 0x8(%rsp), %r13
jae 0xc5c0d
addl $0x49, %eax
movl %eax, %r15d
jmp 0xc5c0d
pushq $0x71
jmp 0xc5c06
pushq $0x6f
jmp 0xc5c06
pushq $0x70
jmp 0xc5c06
pushq $0x74
jmp 0xc5c06
pushq $0x6e
jmp 0xc5c06
pushq $0x72
jmp 0xc5c06
pushq $0x73
jmp 0xc5c06
pushq $0x75
jmp 0xc5c06
addl $-0x4, %ebx
movslq %ebx, %rbx
negq %r15
cmpq %rbx, %r15
jge 0xc5b29
cmpb $0x20, -0x1(%r13)
jne 0xc5b4e
incq %r15
incq %r13
jmp 0xc5b15
movl %edx, %r15d
jmp 0xc5c08
leaq 0x529e7(%rip), %rsi     # 0x11851f
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc5bb1
movl $0x7d4, %ebx            # imm = 0x7D4
jmp 0xc5874
callq 0x565b0
movq (%rax), %rdx
xorl %eax, %eax
pushq $0x1
popq %rdi
xorl %esi, %esi
cmpq %rbx, %r15
jge 0xc5c04
movsbq -0x1(%r13), %rcx
movzwl (%rdx,%rcx,2), %r8d
btl $0xb, %r8d
jb 0xc5bd4
addl $-0x41, %ecx
movl %edi, %r8d
shll %cl, %r8d
cmpb $0x1a, %cl
cmovael %eax, %r8d
orl %r8d, %esi
incq %r15
incq %r13
jmp 0xc5b5d
leaq 0x529db(%rip), %rsi     # 0x118574
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc5de3
addl $0xd, %eax
jmp 0xc5aa4
cmpl $0x0, 0x104(%r14)
jle 0xc5874
cmpl $0x10, 0xd8(%r14)
movl $0x7d1, %eax            # imm = 0x7D1
cmovel %eax, %ebx
jmp 0xc5874
xorl %eax, %eax
pushq $0x4
popq %rdi
btl $0xb, %r8d
jae 0xc5bfc
movsbl %cl, %ecx
imull $0xa, %eax, %eax
addl %ecx, %eax
addl $-0x30, %eax
movsbq (%r13), %rcx
movzwl (%rdx,%rcx,2), %r8d
incq %r13
decl %edi
jmp 0xc5bd9
testl %edi, %edi
je 0xc5dfe
pushq $-0x1
popq %r15
movq 0x8(%rsp), %r13
xorl %ecx, %ecx
leaq 0x9b0fa(%rip), %rax     # 0x160d10
leaq 0x10(%rcx), %rdx
cmpq $0x180, %rdx            # imm = 0x180
je 0xc5c4a
cmpl (%rcx,%rax), %ebp
movq %rdx, %rcx
jne 0xc5c16
movq -0x8(%rdx,%rax), %rcx
testq %rcx, %rcx
je 0xc5c4a
leaq 0x526f1(%rip), %rsi     # 0x11832d
pushq $0x2
popq %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0xc34c6
jmp 0xc5c5d
leaq 0x52700(%rip), %rsi     # 0x118351
pushq $0x2
popq %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0xc34c6
testq %r12, %r12
je 0xc5c7f
leaq 0x52707(%rip), %rsi     # 0x118370
pushq $0x2
popq %rbx
movl %ebx, %edi
xorl %eax, %eax
callq 0xc34c6
movl %ebx, %edi
movq %r12, %rsi
callq 0xc3bae
leaq 0x52700(%rip), %rsi     # 0x118386
pushq $0x2
popq %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0xc34c6
movq 0x10(%rsp), %rax
movl %ebp, (%rax)
movq %r12, 0x8(%rax)
cmpb $0x0, 0xc3(%r14)
je 0xc5dab
leaq 0x526f2(%rip), %rsi     # 0x1183a5
pushq $0x2
popq %rdi
xorl %eax, %eax
callq 0xc34c6
cmpl $0x12, (%r13)
jb 0xc5dab
movl 0x120(%r13), %eax
testl %eax, %eax
je 0xc5dab
testb $0x1, %al
je 0xc5cea
movb $0x1, 0x1ae(%r14)
movl 0x120(%r13), %eax
testb $0x2, %al
je 0xc5cf6
movb $0x1, 0x1af(%r14)
cmpb $0x0, 0x1ae(%r14)
jne 0xc5d0a
cmpb $0x0, 0x1af(%r14)
je 0xc5d15
movl $0x1, 0x1a8(%r14)
movl 0x124(%r13), %eax
movl %eax, 0x1c0(%r14)
movzwl 0x12c(%r13), %eax
movw %ax, 0x1ac(%r14)
movq 0x4d0(%r13), %rax
movq %rax, 0x1c8(%r14)
movq 0x4d8(%r13), %rax
movq %rax, 0x1d0(%r14)
orl $-0x1, 0x1bc(%r14)
xorl %ebx, %ebx
cmpl $0xf4240, %ebx          # imm = 0xF4240
je 0xc5d74
movl %ebx, %edi
movq %r13, %rsi
callq 0xc4d64
testq %rdx, %rdx
je 0xc5d91
incl %ebx
jmp 0xc5d59
cmpl $-0x1, 0x1bc(%r14)
jne 0xc5dab
leaq 0x5285f(%rip), %rsi     # 0x1185e4
pushq $0x1
popq %rdi
xorl %eax, %eax
callq 0xc34c6
jmp 0xc5da4
leaq 0x52806(%rip), %rsi     # 0x11859e
pushq $0x2
popq %rdi
movl %ebx, %edx
xorl %eax, %eax
callq 0xc34c6
movl %ebx, 0x1bc(%r14)
leaq 0x477fe(%rip), %rdi     # 0x10d5b0
movl $0x16e, %esi            # imm = 0x16E
movq %r14, %rdx
movl %ebp, %ecx
movq %r12, %r8
movl %r15d, %r9d
callq 0xc3577
movq 0x10(%rsp), %rcx
movl %eax, 0x10(%rcx)
xorl %eax, %eax
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x52797(%rip), %rsi     # 0x118581
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc5e2f
addl $0x11, %eax
jmp 0xc5aa4
pushq $0x64
popq %r15
cltd
idivl %r15d
leal -0x1e(%rax), %ecx
cmpl $0x3, %ecx
movq 0x8(%rsp), %r13
jbe 0xc5e4e
addl $-0x33, %eax
cmpl $0x3, %eax
ja 0xc5e62
leaq 0x4777e(%rip), %rcx     # 0x10d5a0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
pushq $0x6a
jmp 0xc5e90
leaq 0x5275c(%rip), %rsi     # 0x118592
movq %r13, %rdi
callq 0xc3a37
testl %eax, %eax
je 0xc5c04
addl $0xc, %eax
jmp 0xc5aa4
leaq 0x4773b(%rip), %rax     # 0x10d590
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
pushq $0x65
jmp 0xc5e90
pushq $-0x1
jmp 0xc5e90
xorl %r15d, %r15d
btl $0x17, %esi
adcl $0x66, %r15d
jmp 0xc5c0d
pushq $0x6c
jmp 0xc5e90
xorl %r15d, %r15d
btl $0x17, %esi
adcl $0x68, %r15d
jmp 0xc5c0d
pushq $0x6d
jmp 0xc5e90
pushq $0x6b
popq %r15
jmp 0xc5c0d