// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/sauce.c
// Function: do_read_SAUCE
static int do_read_SAUCE(deark *c, dbuf *f, struct de_SAUCE_info *si)
{
	unsigned int t;
	u8 tmpbuf[40];
	i64 tmpbuf_len;
	i64 pos;
	const char *name;
	de_ucstring *tflags_descr = NULL;
	int retval = 0;
	struct sauce_private_ctx *d = NULL;

	pos = f->len - 128;
	if(dbuf_memcmp(f, pos+0, "SAUCE00", 7)) {
		goto done;
	}

	si->is_valid = 1;

	d = de_malloc(c, sizeof(struct sauce_private_ctx));
	d->encoding_for_strings = DE_ENCODING_CP437;
	d->encoding_for_comments = DE_EXTENC_MAKE(d->encoding_for_strings, DE_ENCSUBTYPE_HYBRID);
	d->combine_comments = de_get_ext_option_bool(c, "sauce:combinecomments", 0);

	// Title
	dbuf_read(f, tmpbuf, pos+7, 35);
	tmpbuf_len = sauce_get_string_length(tmpbuf, 35, 0);
	if(tmpbuf_len>0) {
		si->title = ucstring_create(c);
		sauce_bytes_to_ucstring(c, tmpbuf, tmpbuf_len, si->title, d->encoding_for_strings);
		de_dbg(c, "title: \"%s\"", ucstring_getpsz_d(si->title));
	}

	// Artist / Creator
	dbuf_read(f, tmpbuf, pos+42, 20);
	tmpbuf_len = sauce_get_string_length(tmpbuf, 20, 0);
	if(tmpbuf_len>0) {
		si->artist = ucstring_create(c);
		sauce_bytes_to_ucstring(c, tmpbuf, tmpbuf_len, si->artist, d->encoding_for_strings);
		de_dbg(c, "artist: \"%s\"", ucstring_getpsz_d(si->artist));
	}

	// Organization
	dbuf_read(f, tmpbuf, pos+62, 20);
	tmpbuf_len = sauce_get_string_length(tmpbuf, 20, 0);
	if(tmpbuf_len>0) {
		si->organization = ucstring_create(c);
		sauce_bytes_to_ucstring(c, tmpbuf, tmpbuf_len, si->organization, d->encoding_for_strings);
		de_dbg(c, "organization: \"%s\"", ucstring_getpsz_d(si->organization));
	}

	// Creation date
	dbuf_read(f, tmpbuf, pos+82, 8);
	if(sauce_is_valid_date_string(tmpbuf, 8)) {
		do_SAUCE_creation_date(c, si, tmpbuf, 8);
	}

	si->original_file_size = dbuf_getu32le(f, pos+90);
	de_dbg(c, "original file size: %d", (int)si->original_file_size);

	si->data_type = dbuf_getbyte(f, pos+94);
	name = get_sauce_datatype_name(si->data_type);
	de_dbg(c, "data type: %d (%s)", (int)si->data_type, name);

	si->file_type = dbuf_getbyte(f, pos+95);
	t = 256*(unsigned int)si->data_type + si->file_type;
	name = get_sauce_filetype_name(si->data_type, t);
	de_dbg(c, "file type: %d (%s)", (int)si->file_type, name);

	si->tinfo1 = (u16)dbuf_getu16le(f, pos+96);
	si->tinfo2 = (u16)dbuf_getu16le(f, pos+98);
	si->tinfo3 = (u16)dbuf_getu16le(f, pos+100);
	si->tinfo4 = (u16)dbuf_getu16le(f, pos+102);
	de_dbg(c, "TInfo1: %u", (unsigned int)si->tinfo1);
	de_dbg(c, "TInfo2: %u", (unsigned int)si->tinfo2);
	de_dbg(c, "TInfo3: %u", (unsigned int)si->tinfo3);
	de_dbg(c, "TInfo4: %u", (unsigned int)si->tinfo4);

	if(t==0x0100 || t==0x0101 || t==0x0102 || t==0x0104 || t==0x0105 || t==0x0108 || t==0x0600) {
		si->width_in_chars = (i64)si->tinfo1;
		de_dbg(c, "width in chars: %d", (int)si->width_in_chars);
	}
	if(t==0x0100 || t==0x0101 || t==0x0104 || t==0x0105 || t==0x0108 || t==0x0600) {
		si->number_of_lines = (i64)si->tinfo2;
		de_dbg(c, "number of lines: %d", (int)si->number_of_lines);
	}

	d->num_comments = (i64)dbuf_getbyte(f, pos+104);
	de_dbg(c, "num comments: %d", (int)d->num_comments);
	if(d->num_comments>0) {
		sauce_read_comments(c, d, f, si);
	}

	si->tflags = dbuf_getbyte(f, pos+105);
	if(si->tflags!=0) {
		tflags_descr = ucstring_create(c);
		if(t==0x0100 || t==0x0101 || t==0x0102 || si->data_type==5) {
			// ANSiFlags
			if(si->tflags&0x01) {
				ucstring_append_flags_item(tflags_descr, "non-blink mode");
			}
			if((si->tflags & 0x06)>>1 == 1) {
				ucstring_append_flags_item(tflags_descr, "8-pixel font");
			}
			else if((si->tflags & 0x06)>>1 == 2) {
				ucstring_append_flags_item(tflags_descr, "9-pixel font");
			}
			if((si->tflags & 0x18)>>3 == 1) {
				ucstring_append_flags_item(tflags_descr, "non-square pixels");
			}
			else if((si->tflags & 0x18)>>3 == 2) {
				ucstring_append_flags_item(tflags_descr, "square pixels");
			}

		}
		de_dbg(c, "tflags: 0x%02x (%s)", (unsigned int)si->tflags,
			ucstring_getpsz(tflags_descr));
	}

	if(si->original_file_size==0 || si->original_file_size>f->len-128) {
		// If this field seems bad, try to correct it.
		si->original_file_size = f->len-128-(5+d->num_comments*64);
	}

	retval = 1;
done:
	ucstring_destroy(tflags_descr);
	de_free(c, d);
	return retval;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rdx, %rbp
movq %rsi, %r13
movq %rdi, %r15
movq 0x18(%rsi), %rbx
leaq -0x80(%rbx), %rsi
leaq 0x65386(%rip), %rdx     # 0x135939
pushq $0x7
popq %rcx
movq %r13, %rdi
callq 0xe4d48
testl %eax, %eax
je 0xd05cf
xorl %r13d, %r13d
xorl %ebp, %ebp
xorl %r14d, %r14d
jmp 0xd0e8a
movl $0x1, (%rbp)
pushq $0x18
popq %rsi
movq %r15, %rdi
callq 0xdecaf
movq %rbx, %r14
movq %rax, %rbx
movabsq $0x30d0000000d, %rax    # imm = 0x30D0000000D
movq %rax, 0x10(%rbx)
leaq 0x65345(%rip), %rsi     # 0x135941
movq %r15, %rdi
xorl %edx, %edx
callq 0xdfae5
movl %eax, (%rbx)
movq %r14, 0x30(%rsp)
leaq -0x79(%r14), %rdx
leaq 0x40(%rsp), %r14
pushq $0x23
popq %r12
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rcx
callq 0xe3cb7
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0xd0f41
testq %rax, %rax
jle 0xd067c
movq %rax, %r14
movq %r15, %rdi
callq 0xeac74
movq %rax, 0x8(%rbp)
movl 0x10(%rbx), %r8d
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0xeb4a9
movq 0x8(%rbp), %rdi
callq 0xeb877
leaq 0x4a8ca(%rip), %rsi     # 0x11af39
movq %r15, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %rbx, 0x20(%rsp)
movq 0x30(%rsp), %rbx
leaq -0x56(%rbx), %rdx
leaq 0x40(%rsp), %r14
pushq $0x14
popq %r12
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rcx
callq 0xe3cb7
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0xd0f41
testq %rax, %rax
jle 0xd06fa
movq %rax, %r14
movq %r15, %rdi
callq 0xeac74
movq %rax, 0x10(%rbp)
movq 0x20(%rsp), %rcx
movl 0x10(%rcx), %r8d
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0xeb4a9
movq 0x10(%rbp), %rdi
callq 0xeb877
leaq 0x4a858(%rip), %rsi     # 0x11af45
movq %r15, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
leaq -0x42(%rbx), %rdx
leaq 0x40(%rsp), %r14
pushq $0x14
popq %r12
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rcx
callq 0xe3cb7
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0xd0f41
testq %rax, %rax
jle 0xd076e
movq %rax, %r14
movq %r15, %rdi
callq 0xeac74
movq %rax, 0x18(%rbp)
movq 0x20(%rsp), %rcx
movl 0x10(%rcx), %r8d
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0xeb4a9
movq 0x18(%rbp), %rdi
callq 0xeb877
leaq 0x651f6(%rip), %rsi     # 0x135957
movq %r15, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
leaq -0x2e(%rbx), %rdx
leaq 0x40(%rsp), %rsi
pushq $0x8
popq %rcx
movq %r13, %rdi
callq 0xe3cb7
xorl %eax, %eax
movq %r13, 0x28(%rsp)
cmpq $0x8, %rax
je 0xd07b7
movb 0x40(%rsp,%rax), %cl
leal -0x30(%rcx), %edx
cmpb $0xa, %dl
jb 0xd07b2
movl %eax, %edx
andl $0x5, %edx
cmpl $0x4, %edx
jne 0xd085c
cmpb $0x20, %cl
jne 0xd085c
incq %rax
jmp 0xd0789
movl 0x40(%rsp), %eax
leaq 0x70(%rsp), %r14
movl %eax, (%r14)
xorl %ebx, %ebx
movb %bl, 0x4(%r14)
movq %r14, %rdi
callq 0xdfb3b
movq %rax, %r12
movzwl 0x44(%rsp), %eax
movw %ax, (%r14)
movb %bl, 0x2(%r14)
movq %r14, %rdi
callq 0xdfb3b
movq %rax, %r13
movzwl 0x46(%rsp), %eax
movw %ax, (%r14)
movb %bl, 0x2(%r14)
movq 0x30(%rsp), %rbx
movq %r14, %rdi
callq 0xdfb3b
leaq 0x20(%rbp), %r14
andq $0x0, (%rsp)
pushq $0xc
popq %r8
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq 0x28(%rsp), %r13
movq %rax, %rcx
xorl %r9d, %r9d
callq 0xe0174
movb $0xa, 0x22(%rbp)
leaq 0x80(%rsp), %r12
pushq $0x40
popq %rdx
movq %r14, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0xe0644
leaq 0x651fa(%rip), %rsi     # 0x135a49
movq %r15, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xde896
leaq -0x26(%rbx), %rsi
movq %r13, %rdi
callq 0xe409f
movq %rax, 0x30(%rbp)
leaq 0x650f7(%rip), %rsi     # 0x13596a
movq %r15, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
leaq -0x22(%rbx), %rsi
movq %r13, %rdi
callq 0xe3eb4
movb %al, 0x38(%rbp)
movzbl %al, %edx
cmpb $0x8, %al
ja 0xd08a5
leaq 0x65064(%rip), %rax     # 0x135900
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmp 0xd08ac
leaq 0x4e635(%rip), %rcx     # 0x11eee1
leaq 0x650ce(%rip), %rsi     # 0x135981
movq %r15, %rdi
xorl %eax, %eax
callq 0xde896
leaq -0x21(%rbx), %rsi
movq %r13, %rdi
callq 0xe3eb4
movb %al, 0x39(%rbp)
movzbl 0x38(%rbp), %ecx
movl %ecx, %r14d
shll $0x8, %r14d
movzbl %al, %edx
orl %edx, %r14d
cmpl $0x5, %ecx
jne 0xd0ac2
leaq 0x6519e(%rip), %rcx     # 0x135a8b
leaq 0x650a0(%rip), %rsi     # 0x135994
movq %r15, %rdi
xorl %eax, %eax
callq 0xde896
leaq -0x20(%rbx), %rsi
movq %r13, %rdi
callq 0xe3fa3
movw %ax, 0x58(%rbp)
leaq -0x1e(%rbx), %rsi
movq %r13, %rdi
callq 0xe3fa3
movw %ax, 0x5a(%rbp)
leaq -0x1c(%rbx), %rsi
movq %r13, %rdi
callq 0xe3fa3
movw %ax, 0x5c(%rbp)
leaq -0x1a(%rbx), %rsi
movq %r13, %rdi
callq 0xe3fa3
movw %ax, 0x5e(%rbp)
movzwl 0x58(%rbp), %edx
leaq 0x6505e(%rip), %rsi     # 0x1359a7
movq %r15, %rdi
xorl %eax, %eax
callq 0xde896
movzwl 0x5a(%rbp), %edx
leaq 0x65054(%rip), %rsi     # 0x1359b2
movq %r15, %rdi
xorl %eax, %eax
callq 0xde896
movzwl 0x5c(%rbp), %edx
leaq 0x6504a(%rip), %rsi     # 0x1359bd
movq %r15, %rdi
xorl %eax, %eax
callq 0xde896
movzwl 0x5e(%rbp), %edx
leaq 0x65040(%rip), %rsi     # 0x1359c8
movq %r15, %rdi
xorl %eax, %eax
callq 0xde896
movl %r14d, %ebx
andl $-0x2, %ebx
cmpl $0x100, %ebx            # imm = 0x100
sete %al
cmpl $0x102, %r14d           # imm = 0x102
sete %cl
orb %al, %cl
movb %cl, 0x17(%rsp)
cmpl $0x600, %r14d           # imm = 0x600
je 0xd09d2
cmpl $0x108, %r14d           # imm = 0x108
je 0xd09d2
cmpl $0x104, %ebx            # imm = 0x104
je 0xd09d2
cmpb $0x0, 0x17(%rsp)
je 0xd09eb
movzwl 0x58(%rbp), %edx
movq %rdx, 0x40(%rbp)
leaq 0x64ff2(%rip), %rsi     # 0x1359d3
movq %r15, %rdi
xorl %eax, %eax
callq 0xde896
cmpl $0x600, %r14d           # imm = 0x600
je 0xd0a0d
cmpl $0x108, %r14d           # imm = 0x108
je 0xd0a0d
cmpl $0x100, %ebx            # imm = 0x100
je 0xd0a0d
cmpl $0x104, %ebx            # imm = 0x104
jne 0xd0a26
movzwl 0x5a(%rbp), %edx
movq %rdx, 0x48(%rbp)
leaq 0x64fca(%rip), %rsi     # 0x1359e6
movq %r15, %rdi
xorl %eax, %eax
callq 0xde896
movq 0x30(%rsp), %rax
leaq -0x18(%rax), %rsi
movq %r13, %rdi
callq 0xe3eb4
movzbl %al, %edx
movq 0x20(%rsp), %r14
movq %rdx, 0x8(%r14)
leaq 0x4abcd(%rip), %rsi     # 0x11b617
movq %r15, %rdi
xorl %eax, %eax
callq 0xde896
movq 0x8(%r14), %rbx
testq %rbx, %rbx
movq %rbp, 0x18(%rsp)
jle 0xd0d7d
movq %r13, %rdi
movq 0x18(%r13), %r13
shlq $0x6, %rbx
movq %rbx, %rax
negq %rax
leaq (%rax,%r13), %r14
addq $-0x85, %r14
leaq 0x65040(%rip), %rdx     # 0x135ac9
pushq $0x5
popq %rcx
movq %r14, %rsi
callq 0xe4d48
testl %eax, %eax
je 0xd0af5
leaq 0x65030(%rip), %rsi     # 0x135acf
xorl %ebp, %ebp
movq %r15, %rdi
movl %r14d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x20(%rsp), %r14
andq $0x0, 0x8(%r14)
movq 0x28(%rsp), %r13
jmp 0xd0d70
leaq 0x4e418(%rip), %rcx     # 0x11eee1
leal -0x100(%r14), %eax
cmpl $0x8, %eax
ja 0xd0cac
leaq 0x64dfc(%rip), %rsi     # 0x1358dc
movslq (%rsi,%rax,4), %rax
addq %rsi, %rax
jmpq *%rax
leaq 0x6380f(%rip), %rcx     # 0x1342ff
jmp 0xd08ed
subq %rbx, %r13
leaq 0x64ff7(%rip), %rsi     # 0x135af6
movq %r15, %rdi
movl %r14d, %edx
xorl %eax, %eax
callq 0xde896
movq %r15, %rdi
callq 0xeac74
movq %rax, 0x60(%rbp)
movq %r15, %rdi
callq 0xeac74
movq %rax, %rbp
pushq $0x1
popq %rsi
movq %r15, %rdi
callq 0xdeba7
addq $-0x80, %r13
xorl %ebx, %ebx
movq %r15, 0x38(%rsp)
movq 0x20(%rsp), %r12
movq %rbp, 0x68(%rsp)
cmpq 0x8(%r12), %rbx
jge 0xd0c51
movq 0x28(%rsp), %rdi
leaq 0x80(%rsp), %rsi
movq %r13, %rdx
pushq $0x40
popq %rcx
callq 0xe3cb7
cmpl $0x0, (%r12)
je 0xd0b7f
movq 0x8(%r12), %rax
decq %rax
xorl %edx, %edx
cmpq %rax, %rbx
setne %dl
jmp 0xd0b81
xorl %edx, %edx
leaq 0x80(%rsp), %rbp
movq %rbp, %rdi
pushq $0x40
popq %rsi
callq 0xd0f41
movq %rax, %r15
movq 0x38(%rsp), %r14
movq %r14, %rdi
leaq 0x64f6a(%rip), %rsi     # 0x135b10
movl %r13d, %edx
movl %r15d, %ecx
xorl %eax, %eax
callq 0xde896
movq %r14, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq 0x68(%rsp), %r14
movq %r14, %rdi
callq 0xeac85
movl 0x14(%r12), %r8d
movq %r14, %rdi
movq %rbp, %rsi
movq %r14, %rbp
movq %r15, %rdx
xorl %ecx, %ecx
callq 0xeb4a9
movq 0x18(%rsp), %rax
movq 0x60(%rax), %rdi
movq %r14, %rsi
callq 0xead71
cmpl $0x0, (%r12)
jne 0xd0c19
movq 0x8(%r12), %rax
decq %rax
cmpq %rax, %rbx
je 0xd0c19
movq 0x18(%rsp), %rax
movq 0x60(%rax), %rdi
pushq $0xa
popq %rsi
callq 0xeada5
movq %rbp, %rdi
callq 0xeb7e4
movq 0x38(%rsp), %r15
movq %r15, %rdi
leaq 0x36bc5(%rip), %rsi     # 0x1077f5
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %r15, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
incq %rbx
addq $0x40, %r13
jmp 0xd0b43
movq 0x18(%rsp), %rax
movq 0x60(%rax), %r14
movq 0x28(%rsp), %r13
movq 0x10(%r14), %rsi
testq %rsi, %rsi
jle 0xd0c87
movq 0x8(%r14), %rax
movl -0x4(%rax,%rsi,4), %eax
cmpl $0x20, %eax
je 0xd0c7a
cmpl $0xa, %eax
jne 0xd0c87
decq %rsi
movq %r14, %rdi
callq 0xeac8c
jmp 0xd0c5f
movq 0x18(%rsp), %rbx
movq 0x60(%rbx), %rdi
callq 0xeaf76
testl %eax, %eax
je 0xd0d06
movq 0x60(%rbx), %rdi
callq 0xeaf3c
andq $0x0, 0x60(%rbx)
jmp 0xd0d6b
cmpl $0x200, %r14d           # imm = 0x200
je 0xd0f35
cmpl $0x206, %r14d           # imm = 0x206
je 0xd0f1d
cmpl $0x20a, %r14d           # imm = 0x20A
je 0xd0f11
cmpl $0x20b, %r14d           # imm = 0x20B
je 0xd0f05
cmpl $0x600, %r14d           # imm = 0x600
je 0xd0f29
cmpl $0x800, %r14d           # imm = 0x800
jne 0xd08ed
leaq 0x3ee0a(%rip), %rcx     # 0x10fb0b
jmp 0xd08ed
cmpl $0x2, 0x90(%r15)
jl 0xd0d60
leaq 0x3a72c(%rip), %rsi     # 0x10b443
pushq $0x1
popq %r14
movq %r15, %rdi
xorl %edx, %edx
movl %r14d, %ecx
callq 0xe4e62
movq %rax, %r15
movq 0x18(%rsp), %rax
movq 0x60(%rax), %rsi
movq 0x38(%rsp), %rdi
movq %r15, %rdx
movl %r14d, %ecx
callq 0xeb576
leaq 0x3243c(%rip), %rsi     # 0x103187
movq %r15, %rdi
callq 0xe5fe4
movq %r15, %rdi
movq 0x38(%rsp), %r15
callq 0xe5591
pushq $-0x1
popq %rsi
movq %r15, %rdi
callq 0xdeba7
movq 0x20(%rsp), %r14
movq %rbp, %rdi
callq 0xeaf3c
movq 0x18(%rsp), %rbp
movq 0x30(%rsp), %rsi
addq $-0x17, %rsi
movq %r13, %rdi
callq 0xe3eb4
movb %al, 0x3a(%rbp)
testb %al, %al
je 0xd0ddf
movq %r15, %rdi
callq 0xeac74
movq %rax, %r13
cmpb $0x0, 0x17(%rsp)
jne 0xd0dad
cmpb $0x5, 0x38(%rbp)
jne 0xd0e1f
movb 0x3a(%rbp), %al
testb $0x1, %al
je 0xd0dc6
leaq 0x64c3f(%rip), %rsi     # 0x1359fa
movq %r13, %rdi
callq 0xeb884
movb 0x3a(%rbp), %al
shrb %al
andb $0x3, %al
cmpb $0x1, %al
je 0xd0de4
movzbl %al, %eax
cmpl $0x2, %eax
jne 0xd0df3
leaq 0x64c39(%rip), %rsi     # 0x135a16
jmp 0xd0deb
xorl %r13d, %r13d
jmp 0xd0e4b
leaq 0x64c1e(%rip), %rsi     # 0x135a09
movq %r13, %rdi
callq 0xeb884
movzbl 0x3a(%rbp), %eax
shrl $0x3, %eax
andl $0x3, %eax
cmpl $0x1, %eax
je 0xd0e10
cmpl $0x2, %eax
jne 0xd0e1f
leaq 0x64c19(%rip), %rsi     # 0x135a27
jmp 0xd0e17
leaq 0x64c0c(%rip), %rsi     # 0x135a23
movq %r13, %rdi
callq 0xeb884
movq 0x18(%rsp), %rax
movzbl 0x3a(%rax), %ebp
movq %r13, %rdi
callq 0xeb7e4
leaq 0x64bfe(%rip), %rsi     # 0x135a35
movq %r15, %rdi
movl %ebp, %edx
movq 0x18(%rsp), %rbp
movq %rax, %rcx
xorl %eax, %eax
callq 0xde896
movq 0x30(%rbp), %rcx
testq %rcx, %rcx
sete %dl
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rax
leaq -0x80(%rax), %rsi
cmpq %rsi, %rcx
setg %cl
orb %dl, %cl
movq %rbp, %rdx
pushq $0x1
popq %rbp
cmpb $0x1, %cl
jne 0xd0e8a
movq 0x8(%r14), %rcx
shlq $0x6, %rcx
subq %rcx, %rax
addq $-0x85, %rax
movq %rax, 0x30(%rdx)
movq %r13, %rdi
callq 0xeaf3c
movq %r15, %rdi
movq %r14, %rsi
callq 0xded32
movl %ebp, %eax
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x64c06(%rip), %rcx     # 0x135abe
jmp 0xd08ed
leaq 0x64bd5(%rip), %rcx     # 0x135a99
jmp 0xd08ed
leaq 0x64bd4(%rip), %rcx     # 0x135aa4
jmp 0xd08ed
leaq 0x64bd3(%rip), %rcx     # 0x135aaf
jmp 0xd08ed
leaq 0x64bac(%rip), %rcx     # 0x135a94
jmp 0xd08ed
leaq 0x3402d(%rip), %rcx     # 0x104f21
jmp 0xd08ed
leaq 0x64bb7(%rip), %rcx     # 0x135ab7
jmp 0xd08ed
leaq 0x3464b(%rip), %rcx     # 0x105557
jmp 0xd08ed
leaq 0x5948d(%rip), %rcx     # 0x12a3a5
jmp 0xd08ed
leaq 0x45675(%rip), %rcx     # 0x116599
jmp 0xd08ed
leaq 0x64b56(%rip), %rcx     # 0x135a86
jmp 0xd08ed
leaq 0x4c626(%rip), %rcx     # 0x11d562
jmp 0xd08ed