// File: /workspace/github_c_makefile_star2_O3/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 $0xb8, %rsp
movq %rdx, %r12
movq %rsi, %r13
movq %rdi, %rbx
movq 0x18(%rsi), %rbp
leaq -0x80(%rbp), %rsi
leaq 0x69428(%rip), %rdx     # 0x142d89
movl $0x7, %ecx
movq %r13, %rdi
callq 0xefc85
testl %eax, %eax
je 0xd997f
xorl %r13d, %r13d
xorl %ebp, %ebp
xorl %r15d, %r15d
jmp 0xda28e
movl $0x1, (%r12)
movl $0x18, %esi
movq %rbx, %rdi
callq 0xe8b2b
movq %rax, %r15
movabsq $0x30d0000000d, %rax    # imm = 0x30D0000000D
movq %rax, 0x10(%r15)
leaq 0x693e5(%rip), %rsi     # 0x142d91
movq %rbx, %rdi
xorl %edx, %edx
callq 0xe9bd0
movl %eax, (%r15)
leaq -0x79(%rbp), %rdx
leaq 0x30(%rsp), %rsi
movl $0x23, %ecx
movq %r13, %rdi
callq 0xee8d4
movl $0x24, %r14d
movzbl 0x2e(%rsp,%r14), %eax
testb $-0x21, %al
jne 0xd99ea
decq %r14
cmpq $0x1, %r14
ja 0xd99d5
jmp 0xd9a2e
movq %rbx, %rdi
callq 0xf6410
movq %rax, 0x8(%r12)
movl 0x10(%r15), %r8d
decq %r14
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0xf6cdd
movq 0x8(%r12), %rdi
callq 0xf70f6
leaq 0x4e758(%rip), %rsi     # 0x128179
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe8617
leaq -0x56(%rbp), %rdx
leaq 0x30(%rsp), %rsi
movl $0x14, %ecx
movq %r13, %rdi
callq 0xee8d4
movl $0x15, %r14d
movzbl 0x2e(%rsp,%r14), %eax
testb $-0x21, %al
jne 0xd9a5f
decq %r14
cmpq $0x1, %r14
ja 0xd9a4a
jmp 0xd9aa3
movq %rbx, %rdi
callq 0xf6410
movq %rax, 0x10(%r12)
movl 0x10(%r15), %r8d
decq %r14
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0xf6cdd
movq 0x10(%r12), %rdi
callq 0xf70f6
leaq 0x4e6ef(%rip), %rsi     # 0x128185
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe8617
leaq -0x42(%rbp), %rdx
leaq 0x30(%rsp), %rsi
movl $0x14, %ecx
movq %r13, %rdi
callq 0xee8d4
movl $0x15, %r14d
movzbl 0x2e(%rsp,%r14), %eax
testb $-0x21, %al
jne 0xd9ad4
decq %r14
cmpq $0x1, %r14
ja 0xd9abf
jmp 0xd9b18
movq %rbx, %rdi
callq 0xf6410
movq %rax, 0x18(%r12)
movl 0x10(%r15), %r8d
decq %r14
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0xf6cdd
movq 0x18(%r12), %rdi
callq 0xf70f6
leaq 0x6929c(%rip), %rsi     # 0x142da7
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe8617
movq %r12, 0x10(%rsp)
leaq -0x2e(%rbp), %rdx
leaq 0x30(%rsp), %rsi
movl $0x8, %ecx
movq %r13, %rdi
callq 0xee8d4
xorl %eax, %eax
movq %rbp, 0x20(%rsp)
movb 0x30(%rsp,%rax), %cl
leal -0x30(%rcx), %edx
cmpb $0xa, %dl
jb 0xd9b5d
movl %eax, %edx
andl $0x5, %edx
cmpl $0x4, %edx
jne 0xd9c19
cmpb $0x20, %cl
jne 0xd9c19
incq %rax
cmpq $0x8, %rax
jne 0xd9b3a
movl 0x30(%rsp), %eax
leaq 0x60(%rsp), %r14
movl %eax, (%r14)
xorl %ebp, %ebp
movb %bpl, 0x4(%r14)
movq %r14, %rdi
callq 0xe9c2f
movq %rax, 0x18(%rsp)
movzwl 0x34(%rsp), %eax
movw %ax, (%r14)
movb %bpl, 0x2(%r14)
movq %r14, %rdi
callq 0xe9c2f
movq %r13, %r12
movq %rax, %r13
movzwl 0x36(%rsp), %eax
movw %ax, (%r14)
movb %bpl, 0x2(%r14)
movq %r14, %rdi
callq 0xe9c2f
movq 0x10(%rsp), %rbp
leaq 0x20(%rbp), %r14
movq $0x0, (%rsp)
movl $0xc, %r8d
movq %r14, %rdi
movq 0x18(%rsp), %rsi
movq %r13, %rdx
movq %r12, %r13
movq %rax, %rcx
xorl %r9d, %r9d
callq 0xea98e
movb $0xa, 0x22(%rbp)
movq 0x20(%rsp), %rbp
leaq 0x70(%rsp), %r12
movl $0x40, %edx
movq %r14, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0xeaf46
leaq 0x6928d(%rip), %rsi     # 0x142e99
movq %rbx, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0xe8617
leaq -0x26(%rbp), %rsi
movq %r13, %rdi
callq 0xeed61
movq 0x10(%rsp), %r12
movq %rax, 0x30(%r12)
leaq 0x69184(%rip), %rsi     # 0x142dba
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xe8617
leaq -0x22(%rbp), %rsi
movq %r13, %rdi
callq 0xeead3
movb %al, 0x38(%r12)
movzbl %al, %edx
cmpb $0x8, %al
ja 0xd9c6a
leaq 0x690ef(%rip), %rax     # 0x142d50
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmp 0xd9c71
leaq 0x524e0(%rip), %rcx     # 0x12c151
leaq 0x69159(%rip), %rsi     # 0x142dd1
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
leaq -0x21(%rbp), %rsi
movq %r13, %rdi
callq 0xeead3
movb %al, 0x39(%r12)
movzbl 0x38(%r12), %ecx
movl %ecx, %r14d
shll $0x8, %r14d
movzbl %al, %edx
orl %edx, %r14d
cmpl $0x5, %ecx
jne 0xd9e92
leaq 0x69225(%rip), %rcx     # 0x142edb
leaq 0x69127(%rip), %rsi     # 0x142de4
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
leaq -0x20(%rbp), %rsi
movq %r13, %rdi
callq 0xeebc8
movw %ax, 0x58(%r12)
leaq -0x1e(%rbp), %rsi
movq %r13, %rdi
callq 0xeebc8
movw %ax, 0x5a(%r12)
leaq -0x1c(%rbp), %rsi
movq %r13, %rdi
callq 0xeebc8
movw %ax, 0x5c(%r12)
leaq -0x1a(%rbp), %rsi
movq %r13, %rdi
callq 0xeebc8
movw %ax, 0x5e(%r12)
movzwl 0x58(%r12), %edx
leaq 0x690db(%rip), %rsi     # 0x142df7
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
movzwl 0x5a(%r12), %edx
leaq 0x690cf(%rip), %rsi     # 0x142e02
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
movzwl 0x5c(%r12), %edx
leaq 0x690c3(%rip), %rsi     # 0x142e0d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
movzwl 0x5e(%r12), %edx
leaq 0x690b7(%rip), %rsi     # 0x142e18
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
movl %r14d, %ebp
andl $-0x2, %ebp
cmpl $0x100, %ebp            # imm = 0x100
sete %al
cmpl $0x102, %r14d           # imm = 0x102
sete %cl
orb %al, %cl
movb %cl, 0xf(%rsp)
cmpl $0x600, %r14d           # imm = 0x600
je 0xd9dab
cmpl $0x108, %r14d           # imm = 0x108
je 0xd9dab
cmpl $0x104, %ebp            # imm = 0x104
je 0xd9dab
cmpb $0x0, 0xf(%rsp)
je 0xd9dc7
movzwl 0x58(%r12), %edx
movq %rdx, 0x40(%r12)
leaq 0x69066(%rip), %rsi     # 0x142e23
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
cmpl $0x600, %r14d           # imm = 0x600
je 0xd9de9
cmpl $0x108, %r14d           # imm = 0x108
je 0xd9de9
cmpl $0x100, %ebp            # imm = 0x100
je 0xd9de9
cmpl $0x104, %ebp            # imm = 0x104
jne 0xd9e05
movzwl 0x5a(%r12), %edx
movq %rdx, 0x48(%r12)
leaq 0x6903b(%rip), %rsi     # 0x142e36
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
movq 0x20(%rsp), %r14
leaq -0x18(%r14), %rsi
movq %r13, %rdi
callq 0xeead3
movzbl %al, %edx
movq %rdx, 0x8(%r15)
leaq 0x4ea33(%rip), %rsi     # 0x128857
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
movq 0x8(%r15), %r12
testq %r12, %r12
jle 0xda184
movq 0x18(%r13), %rbp
shlq $0x6, %r12
movq %r12, %rax
negq %rax
leaq (%rax,%rbp), %r14
addq $-0x85, %r14
leaq 0x690be(%rip), %rdx     # 0x142f19
movl $0x5, %ecx
movq %r13, %rdi
movq %r14, %rsi
callq 0xefc85
testl %eax, %eax
je 0xd9ed2
leaq 0x690a9(%rip), %rsi     # 0x142f1f
xorl %ebp, %ebp
movq %rbx, %rdi
movl %r14d, %edx
xorl %eax, %eax
callq 0xe8617
movq $0x0, 0x8(%r15)
jmp 0xda177
leaq 0x522b8(%rip), %rcx     # 0x12c151
cmpl $0x1ff, %r14d           # imm = 0x1FF
jg 0xda087
leal -0x100(%r14), %eax
cmpl $0x8, %eax
ja 0xd9cb6
leaq 0x68e6f(%rip), %rsi     # 0x142d2c
movslq (%rsi,%rax,4), %rax
addq %rsi, %rax
jmpq *%rax
leaq 0x67882(%rip), %rcx     # 0x14174f
jmp 0xd9cb6
movq %rbp, 0x18(%rsp)
movq %r13, 0x28(%rsp)
leaq 0x69063(%rip), %rsi     # 0x142f46
movq %rbx, %rdi
movl %r14d, %edx
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
callq 0xf6410
movq 0x10(%rsp), %rcx
movq %rax, 0x60(%rcx)
movq %rbx, %rdi
callq 0xf6410
movq %rax, %rbp
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe8a15
cmpq $0x0, 0x8(%r15)
jle 0xda03e
movq 0x18(%rsp), %rax
subq %r12, %rax
addq $-0x80, %rax
movq %rax, 0x18(%rsp)
xorl %r13d, %r13d
movq %r13, %r12
shlq $0x6, %r12
addq 0x18(%rsp), %r12
movl $0x40, %ecx
movq 0x28(%rsp), %rdi
leaq 0x70(%rsp), %rsi
movq %r12, %rdx
callq 0xee8d4
cmpl $0x0, (%r15)
je 0xd9f70
movq 0x8(%r15), %rax
decq %rax
cmpq %rax, %r13
sete %al
jmp 0xd9f72
movb $0x1, %al
movl $0x40, %ecx
movq %rcx, %r14
subq $0x1, %rcx
jb 0xd9f95
movb 0x6f(%rsp,%r14), %sil
cmpb $0x20, %sil
sete %dl
testb %sil, %sil
je 0xd9f77
andb %al, %dl
jne 0xd9f77
movq %rbx, %rdi
leaq 0x68fc1(%rip), %rsi     # 0x142f60
movl %r12d, %edx
movl %r14d, %ecx
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe8a15
movq %rbp, %rdi
callq 0xf6423
movl 0x14(%r15), %r8d
movq %rbp, %rdi
leaq 0x70(%rsp), %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0xf6cdd
movq 0x10(%rsp), %r14
movq 0x60(%r14), %rdi
movq %rbp, %rsi
callq 0xf6509
cmpl $0x0, (%r15)
jne 0xda008
movq 0x8(%r15), %rax
decq %rax
cmpq %rax, %r13
je 0xda008
movq 0x60(%r14), %rdi
movl $0xa, %esi
callq 0xf6542
movq %rbp, %rdi
callq 0xf705c
movq %rbx, %rdi
leaq 0x3a866(%rip), %rsi     # 0x114880
movq %rax, %rdx
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe8a15
incq %r13
cmpq 0x8(%r15), %r13
jl 0xd9f38
movq 0x10(%rsp), %r12
movq 0x60(%r12), %r14
movq 0x10(%r14), %rsi
testq %rsi, %rsi
jle 0xda0f6
movq 0x28(%rsp), %r13
movq 0x8(%r14), %rax
movl -0x4(%rax,%rsi,4), %eax
cmpl $0x20, %eax
je 0xda06c
cmpl $0xa, %eax
jne 0xda080
decq %rsi
movq %r14, %rdi
callq 0xf642a
movq 0x10(%r14), %rsi
testq %rsi, %rsi
jg 0xda05a
movq 0x60(%r12), %r14
jmp 0xda0fb
cmpl $0x20a, %r14d           # imm = 0x20A
jg 0xda0c3
cmpl $0x200, %r14d           # imm = 0x200
je 0xda309
cmpl $0x206, %r14d           # imm = 0x206
je 0xda321
cmpl $0x20a, %r14d           # imm = 0x20A
jne 0xd9cb6
leaq 0x5d5c7(%rip), %rcx     # 0x137685
jmp 0xd9cb6
cmpl $0x20b, %r14d           # imm = 0x20B
je 0xda315
cmpl $0x600, %r14d           # imm = 0x600
je 0xda32d
cmpl $0x800, %r14d           # imm = 0x800
jne 0xd9cb6
leaq 0x42b0a(%rip), %rcx     # 0x11cbfb
jmp 0xd9cb6
movq 0x28(%rsp), %r13
movq %r14, %rdi
callq 0xf678d
testl %eax, %eax
je 0xda11c
movq 0x60(%r12), %rdi
callq 0xf6753
movq $0x0, 0x60(%r12)
jmp 0xda177
cmpl $0x2, 0x90(%rbx)
jl 0xda16a
leaq 0x3e407(%rip), %rsi     # 0x118533
movq %rbx, %rdi
xorl %edx, %edx
movl $0x1, %ecx
callq 0xefda1
movq %rax, %r14
movq 0x60(%r12), %rsi
movq %rbx, %rdi
movq %rax, %rdx
movl $0x1, %ecx
callq 0xf6da2
leaq 0x3602d(%rip), %rsi     # 0x110187
movq %r14, %rdi
callq 0xf10ed
movq %r14, %rdi
callq 0xf052b
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe8a15
movq %rbp, %rdi
callq 0xf6753
movq 0x20(%rsp), %r14
addq $-0x17, %r14
movq %r13, %r12
movq %r13, %rdi
movq %r14, %rsi
callq 0xeead3
movq 0x10(%rsp), %r14
movb %al, 0x3a(%r14)
testb %al, %al
je 0xda1f0
movq %rbx, %rdi
callq 0xf6410
movq %rax, %r13
cmpb $0x0, 0xf(%rsp)
jne 0xda1bc
cmpb $0x5, 0x38(%r14)
jne 0xda231
movb 0x3a(%r14), %al
testb $0x1, %al
je 0xda1d7
leaq 0x68c7f(%rip), %rsi     # 0x142e4a
movq %r13, %rdi
callq 0xf7105
movb 0x3a(%r14), %al
shrb %al
andb $0x3, %al
cmpb $0x1, %al
je 0xda1f5
movzbl %al, %eax
cmpl $0x2, %eax
jne 0xda204
leaq 0x68c78(%rip), %rsi     # 0x142e66
jmp 0xda1fc
xorl %r13d, %r13d
jmp 0xda254
leaq 0x68c5d(%rip), %rsi     # 0x142e59
movq %r13, %rdi
callq 0xf7105
movzbl 0x3a(%r14), %eax
shrl $0x3, %eax
andl $0x3, %eax
cmpl $0x1, %eax
je 0xda222
cmpl $0x2, %eax
jne 0xda231
leaq 0x68c57(%rip), %rsi     # 0x142e77
jmp 0xda229
leaq 0x68c4a(%rip), %rsi     # 0x142e73
movq %r13, %rdi
callq 0xf7105
movzbl 0x3a(%r14), %ebp
movq %r13, %rdi
callq 0xf705c
leaq 0x68c40(%rip), %rsi     # 0x142e85
movq %rbx, %rdi
movl %ebp, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0xe8617
movq 0x30(%r14), %rcx
testq %rcx, %rcx
sete %dl
movq 0x18(%r12), %rax
leaq -0x80(%rax), %rsi
cmpq %rsi, %rcx
setg %cl
orb %dl, %cl
movl $0x1, %ebp
cmpb $0x1, %cl
jne 0xda28e
movq 0x8(%r15), %rcx
shlq $0x6, %rcx
subq %rcx, %rax
addq $-0x85, %rax
movq %rax, 0x30(%r14)
movq %r13, %rdi
callq 0xf6753
movq %rbx, %rdi
movq %r15, %rsi
callq 0xe8be2
movl %ebp, %eax
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x68c2d(%rip), %rcx     # 0x142ee9
jmp 0xd9cb6
leaq 0x68c1c(%rip), %rcx     # 0x142ee4
jmp 0xd9cb6
leaq 0x68c33(%rip), %rcx     # 0x142f07
jmp 0xd9cb6
leaq 0x68c1f(%rip), %rcx     # 0x142eff
jmp 0xd9cb6
leaq 0x68c08(%rip), %rcx     # 0x142ef4
jmp 0xd9cb6
leaq 0x68c16(%rip), %rcx     # 0x142f0e
jmp 0xd9cb6
leaq 0x37c3d(%rip), %rcx     # 0x111f41
jmp 0xd9cb6
leaq 0x504a2(%rip), %rcx     # 0x12a7b2
jmp 0xd9cb6
leaq 0x3825b(%rip), %rcx     # 0x112577
jmp 0xd9cb6
leaq 0x49431(%rip), %rcx     # 0x123759
jmp 0xd9cb6
leaq 0x68ba2(%rip), %rcx     # 0x142ed6
jmp 0xd9cb6
nopl (%rax)