// File: /workspace/github_c_makefile_star2_O1/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, %r14
movq %rsi, %r12
movq %rdi, %rbx
movq 0x18(%rsi), %rbp
leaq -0x80(%rbp), %rsi
leaq 0x6859c(%rip), %rdx     # 0x1428a9
movl $0x7, %ecx
movq %r12, %rdi
callq 0xf025e
testl %eax, %eax
je 0xda32b
xorl %r13d, %r13d
xorl %ebp, %ebp
xorl %r12d, %r12d
jmp 0xdac52
movl $0x1, (%r14)
movl $0x18, %esi
movq %rbx, %rdi
callq 0xe969b
movq %rax, %r15
movabsq $0x30d0000000d, %rax    # imm = 0x30D0000000D
movq %rax, 0x10(%r15)
leaq 0x6855a(%rip), %rsi     # 0x1428b1
xorl %r13d, %r13d
movq %rbx, %rdi
xorl %edx, %edx
callq 0xea727
movl %eax, (%r15)
leaq -0x79(%rbp), %rdx
leaq 0x30(%rsp), %rsi
movl $0x23, %ecx
movq %r12, 0x20(%rsp)
movq %r12, %rdi
callq 0xeeee8
movl $0x24, %eax
movzbl 0x2e(%rsp,%rax), %ecx
decq %rax
testb $-0x21, %cl
jne 0xda39c
cmpq $0x1, %rax
ja 0xda387
jmp 0xda39f
movq %rax, %r13
testq %r13, %r13
jle 0xda3e3
movq %rbx, %rdi
callq 0xf6870
movq %rax, 0x8(%r14)
movl 0x10(%r15), %r8d
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
movq %r13, %rdx
xorl %ecx, %ecx
callq 0xf7131
movq 0x8(%r14), %rdi
callq 0xf7557
leaq 0x4db73(%rip), %rsi     # 0x127f49
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq %r15, 0x18(%rsp)
leaq -0x56(%rbp), %rdx
leaq 0x30(%rsp), %rsi
movl $0x14, %ecx
movq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0xeeee8
movl $0x15, %eax
xorl %r12d, %r12d
movzbl 0x2e(%rsp,%rax), %ecx
decq %rax
testb $-0x21, %cl
jne 0xda420
cmpq $0x1, %rax
ja 0xda40b
jmp 0xda423
movq %rax, %r12
testq %r12, %r12
jle 0xda46c
movq %rbx, %rdi
callq 0xf6870
movq %rax, 0x10(%r14)
movq 0x18(%rsp), %rcx
movl 0x10(%rcx), %r8d
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
movq %r12, %rdx
xorl %ecx, %ecx
callq 0xf7131
movq 0x10(%r14), %rdi
callq 0xf7557
leaq 0x4daf6(%rip), %rsi     # 0x127f55
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
leaq -0x42(%rbp), %rdx
leaq 0x30(%rsp), %rsi
movl $0x14, %ecx
movq %r15, %rdi
callq 0xeeee8
movl $0x15, %eax
xorl %r12d, %r12d
movzbl 0x2e(%rsp,%rax), %ecx
decq %rax
testb $-0x21, %cl
jne 0xda49f
cmpq $0x1, %rax
ja 0xda48a
jmp 0xda4a2
movq %rax, %r12
testq %r12, %r12
jle 0xda4eb
movq %rbx, %rdi
callq 0xf6870
movq %rax, 0x18(%r14)
movq 0x18(%rsp), %rcx
movl 0x10(%rcx), %r8d
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
movq %r12, %rdx
xorl %ecx, %ecx
callq 0xf7131
movq 0x18(%r14), %rdi
callq 0xf7557
leaq 0x683e9(%rip), %rsi     # 0x1428c7
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
leaq -0x2e(%rbp), %rdx
leaq 0x30(%rsp), %rsi
movl $0x8, %ecx
movq %r15, %rdi
callq 0xeeee8
xorl %eax, %eax
movq %rbp, 0x28(%rsp)
movb 0x30(%rsp,%rax), %cl
leal -0x30(%rcx), %edx
cmpb $0xa, %dl
jb 0xda52b
movl %eax, %edx
andl $0x5, %edx
cmpl $0x4, %edx
jne 0xda5e5
cmpb $0x20, %cl
jne 0xda5e5
incq %rax
cmpq $0x8, %rax
jne 0xda508
movl 0x30(%rsp), %eax
leaq 0x60(%rsp), %r12
movl %eax, (%r12)
xorl %r15d, %r15d
movb %r15b, 0x4(%r12)
movq %r12, %rdi
callq 0xea786
movq %rax, %r13
movzwl 0x34(%rsp), %eax
movw %ax, (%r12)
movb %r15b, 0x2(%r12)
movq %r12, %rdi
callq 0xea786
movq %rax, %rbp
movzwl 0x36(%rsp), %eax
movw %ax, (%r12)
movb %r15b, 0x2(%r12)
movq 0x20(%rsp), %r15
movq %r12, %rdi
callq 0xea786
leaq 0x20(%r14), %r12
movq $0x0, (%rsp)
movl $0xc, %r8d
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq 0x28(%rsp), %rbp
movq %rax, %rcx
xorl %r9d, %r9d
callq 0xeae97
movb $0xa, 0x22(%r14)
leaq 0x70(%rsp), %r13
movl $0x40, %edx
movq %r12, %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0xeb4f8
leaq 0x683e1(%rip), %rsi     # 0x1429b9
movq %rbx, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0xe9226
leaq -0x26(%rbp), %rsi
movq %r15, %rdi
callq 0xef37e
movq %rax, 0x30(%r14)
leaq 0x682de(%rip), %rsi     # 0x1428da
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
leaq -0x22(%rbp), %rsi
movq %r15, %rdi
callq 0xef0d5
movb %al, 0x38(%r14)
movzbl %al, %edx
cmpb $0x8, %al
ja 0xda62f
leaq 0x6824a(%rip), %rax     # 0x142870
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmp 0xda636
leaq 0x51833(%rip), %rcx     # 0x12be69
leaq 0x682b4(%rip), %rsi     # 0x1428f1
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9226
leaq -0x21(%rbp), %rsi
movq %r15, %rdi
callq 0xef0d5
movb %al, 0x39(%r14)
movzbl 0x38(%r14), %ecx
movl %ecx, %r12d
shll $0x8, %r12d
movzbl %al, %edx
orl %edx, %r12d
cmpl $0x5, %ecx
jne 0xda866
leaq 0x68382(%rip), %rcx     # 0x1429fb
leaq 0x68284(%rip), %rsi     # 0x142904
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9226
leaq -0x20(%rbp), %rsi
movq %r15, %rdi
callq 0xef1ca
movw %ax, 0x58(%r14)
leaq -0x1e(%rbp), %rsi
movq %r15, %rdi
callq 0xef1ca
movw %ax, 0x5a(%r14)
leaq -0x1c(%rbp), %rsi
movq %r15, %rdi
callq 0xef1ca
movw %ax, 0x5c(%r14)
leaq -0x1a(%rbp), %rsi
movq %r15, %rdi
callq 0xef1ca
movw %ax, 0x5e(%r14)
movzwl 0x58(%r14), %edx
leaq 0x6823d(%rip), %rsi     # 0x142917
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9226
movzwl 0x5a(%r14), %edx
leaq 0x68232(%rip), %rsi     # 0x142922
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9226
movzwl 0x5c(%r14), %edx
leaq 0x68227(%rip), %rsi     # 0x14292d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9226
movzwl 0x5e(%r14), %edx
leaq 0x6821c(%rip), %rsi     # 0x142938
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9226
movl %r12d, %ebp
andl $-0x2, %ebp
cmpl $0x100, %ebp            # imm = 0x100
sete %al
cmpl $0x102, %r12d           # imm = 0x102
sete %r13b
orb %al, %r13b
cmpl $0x600, %r12d           # imm = 0x600
je 0xda762
cmpl $0x108, %r12d           # imm = 0x108
je 0xda762
cmpl $0x104, %ebp            # imm = 0x104
je 0xda762
testb %r13b, %r13b
je 0xda77c
movzwl 0x58(%r14), %edx
movq %rdx, 0x40(%r14)
leaq 0x681d1(%rip), %rsi     # 0x142943
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9226
movb %r13b, 0x17(%rsp)
cmpl $0x600, %r12d           # imm = 0x600
je 0xda7a3
cmpl $0x108, %r12d           # imm = 0x108
je 0xda7a3
cmpl $0x100, %ebp            # imm = 0x100
je 0xda7a3
cmpl $0x104, %ebp            # imm = 0x104
jne 0xda7bd
movzwl 0x5a(%r14), %edx
movq %rdx, 0x48(%r14)
leaq 0x681a3(%rip), %rsi     # 0x142956
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9226
movq 0x28(%rsp), %r13
leaq -0x18(%r13), %rsi
movq %r15, %rdi
callq 0xef0d5
movzbl %al, %edx
movq 0x18(%rsp), %r12
movq %rdx, 0x8(%r12)
leaq 0x4de45(%rip), %rsi     # 0x128627
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe9226
cmpq $0x0, 0x8(%r12)
jle 0xdab4e
movq 0x8(%r12), %r15
testq %r15, %r15
jle 0xda8a3
movq 0x20(%rsp), %rdi
movq 0x18(%rdi), %r13
shlq $0x6, %r15
movq %r15, %rax
negq %rax
leaq (%rax,%r13), %r12
addq $-0x85, %r12
leaq 0x6820e(%rip), %rdx     # 0x142a39
movl $0x5, %ecx
movq %r12, %rsi
callq 0xf025e
testl %eax, %eax
je 0xda8ef
leaq 0x681f8(%rip), %rsi     # 0x142a3f
xorl %ebp, %ebp
movq %rbx, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0xe9226
movq 0x18(%rsp), %r12
movq $0x0, 0x8(%r12)
jmp 0xda8a5
leaq 0x515fc(%rip), %rcx     # 0x12be69
cmpl $0x1ff, %r12d           # imm = 0x1FF
jg 0xda8af
leal -0x100(%r12), %eax
cmpl $0x8, %eax
ja 0xda679
leaq 0x67fbe(%rip), %rsi     # 0x14284c
movslq (%rsi,%rax,4), %rax
addq %rsi, %rax
jmpq *%rax
leaq 0x669d1(%rip), %rcx     # 0x14126f
jmp 0xda679
xorl %ebp, %ebp
movq 0x20(%rsp), %r15
jmp 0xdab41
cmpl $0x20a, %r12d           # imm = 0x20A
jg 0xdaaaf
cmpl $0x200, %r12d           # imm = 0x200
je 0xdaccd
cmpl $0x206, %r12d           # imm = 0x206
je 0xdace5
cmpl $0x20a, %r12d           # imm = 0x20A
jne 0xda679
leaq 0x5ca13(%rip), %rcx     # 0x1372fd
jmp 0xda679
leaq 0x68170(%rip), %rsi     # 0x142a66
movq %rbx, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0xe9226
movq %rbx, %rdi
callq 0xf6870
movq %rax, 0x60(%r14)
movq %rbx, %rdi
callq 0xf6870
movq %rax, %rbp
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe9585
movq 0x18(%rsp), %r12
cmpq $0x0, 0x8(%r12)
jle 0xdaa59
subq %r15, %r13
addq $-0x80, %r13
movq %r13, 0x58(%rsp)
xorl %r15d, %r15d
movq %r15, %r13
shlq $0x6, %r13
addq 0x58(%rsp), %r13
movl $0x40, %ecx
movq 0x20(%rsp), %rdi
leaq 0x70(%rsp), %rsi
movq %r13, %rdx
callq 0xeeee8
cmpl $0x0, (%r12)
je 0xda981
movq 0x8(%r12), %rax
decq %rax
cmpq %rax, %r15
sete %al
jmp 0xda983
movb $0x1, %al
movl $0x41, %r12d
cmpq $0x1, %r12
je 0xda9a7
movb 0x6e(%rsp,%r12), %dl
cmpb $0x20, %dl
sete %cl
decq %r12
testb %dl, %dl
je 0xda989
andb %al, %cl
jne 0xda989
jmp 0xda9aa
xorl %r12d, %r12d
movq %rbx, %rdi
leaq 0x680cc(%rip), %rsi     # 0x142a80
movl %r13d, %edx
movl %r12d, %ecx
xorl %eax, %eax
callq 0xe9226
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe9585
movq %rbp, %rdi
callq 0xf6883
movq 0x18(%rsp), %rax
movl 0x14(%rax), %r8d
movq %rbp, %rdi
leaq 0x70(%rsp), %rsi
movq %r12, %rdx
movq %rax, %r12
xorl %ecx, %ecx
callq 0xf7131
movq 0x60(%r14), %rdi
movq %rbp, %rsi
callq 0xf6969
cmpl $0x0, (%r12)
jne 0xdaa22
movq 0x8(%r12), %rax
decq %rax
cmpq %rax, %r15
je 0xdaa22
movq 0x60(%r14), %rdi
movl $0xa, %esi
callq 0xf69a2
movq %rbp, %rdi
callq 0xf74bd
movq %rbx, %rdi
leaq 0x39d71(%rip), %rsi     # 0x1147a5
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe9585
incq %r15
cmpq 0x8(%r12), %r15
jl 0xda947
movq 0x60(%r14), %r12
movq 0x10(%r12), %rsi
testq %rsi, %rsi
jle 0xdaa87
movq 0x8(%r12), %rax
movl -0x4(%rax,%rsi,4), %eax
cmpl $0x20, %eax
je 0xdaa7a
cmpl $0xa, %eax
jne 0xdaa87
decq %rsi
movq %r12, %rdi
callq 0xf688a
jmp 0xdaa5d
movq 0x60(%r14), %rdi
callq 0xf6bea
testl %eax, %eax
movq 0x20(%rsp), %r15
je 0xdaae2
movq 0x60(%r14), %rdi
callq 0xf6bb0
movq $0x0, 0x60(%r14)
jmp 0xdab3c
cmpl $0x20b, %r12d           # imm = 0x20B
je 0xdacd9
cmpl $0x600, %r12d           # imm = 0x600
je 0xdacf1
cmpl $0x800, %r12d           # imm = 0x800
jne 0xda679
leaq 0x4200e(%rip), %rcx     # 0x11caeb
jmp 0xda679
cmpl $0x2, 0x90(%rbx)
jl 0xdab2f
leaq 0x3d909(%rip), %rsi     # 0x1183fb
movq %rbx, %rdi
xorl %edx, %edx
movl $0x1, %ecx
callq 0xf037a
movq %rax, %r12
movq 0x60(%r14), %rsi
movq %rbx, %rdi
movq %rax, %rdx
movl $0x1, %ecx
callq 0xf71f7
leaq 0x3567c(%rip), %rsi     # 0x11019b
movq %r12, %rdi
callq 0xf16f0
movq %r12, %rdi
callq 0xf0b13
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe9585
movq 0x18(%rsp), %r12
movq %rbp, %rdi
callq 0xf6bb0
movq 0x28(%rsp), %r13
addq $-0x17, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0xef0d5
movb %al, 0x3a(%r14)
testb %al, %al
je 0xdabb1
movq %rbx, %rdi
callq 0xf6870
movq %rax, %r13
cmpb $0x0, 0x17(%rsp)
jne 0xdab7e
cmpb $0x5, 0x38(%r14)
jne 0xdabf2
testb $0x1, 0x3a(%r14)
je 0xdab94
leaq 0x67dde(%rip), %rsi     # 0x14296a
movq %r13, %rdi
callq 0xf7566
movzbl 0x3a(%r14), %eax
shrl %eax
andl $0x3, %eax
cmpl $0x1, %eax
je 0xdabb6
cmpl $0x2, %eax
jne 0xdabc5
leaq 0x67dd7(%rip), %rsi     # 0x142986
jmp 0xdabbd
xorl %r13d, %r13d
jmp 0xdac15
leaq 0x67dbc(%rip), %rsi     # 0x142979
movq %r13, %rdi
callq 0xf7566
movzbl 0x3a(%r14), %eax
shrl $0x3, %eax
andl $0x3, %eax
cmpl $0x1, %eax
je 0xdabe3
cmpl $0x2, %eax
jne 0xdabf2
leaq 0x67db6(%rip), %rsi     # 0x142997
jmp 0xdabea
leaq 0x67da9(%rip), %rsi     # 0x142993
movq %r13, %rdi
callq 0xf7566
movzbl 0x3a(%r14), %ebp
movq %r13, %rdi
callq 0xf74bd
leaq 0x67d9f(%rip), %rsi     # 0x1429a5
movq %rbx, %rdi
movl %ebp, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0xe9226
movq 0x30(%r14), %rax
testq %rax, %rax
je 0xdac30
movq 0x18(%r15), %rcx
addq $-0x80, %rcx
movl $0x1, %ebp
cmpq %rcx, %rax
jle 0xdac52
movq 0x18(%r15), %rax
movq 0x8(%r12), %rcx
shlq $0x6, %rcx
negq %rcx
addq %rcx, %rax
addq $-0x85, %rax
movq %rax, 0x30(%r14)
movl $0x1, %ebp
movq %r13, %rdi
callq 0xf6bb0
movq %rbx, %rdi
movq %r12, %rsi
callq 0xe9752
movl %ebp, %eax
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x67d89(%rip), %rcx     # 0x142a09
jmp 0xda679
leaq 0x67d78(%rip), %rcx     # 0x142a04
jmp 0xda679
leaq 0x67d8f(%rip), %rcx     # 0x142a27
jmp 0xda679
leaq 0x67d7b(%rip), %rcx     # 0x142a1f
jmp 0xda679
leaq 0x67d64(%rip), %rcx     # 0x142a14
jmp 0xda679
leaq 0x67d72(%rip), %rcx     # 0x142a2e
jmp 0xda679
leaq 0x37269(%rip), %rcx     # 0x111f31
jmp 0xda679
leaq 0x4f86e(%rip), %rcx     # 0x12a542
jmp 0xda679
leaq 0x37887(%rip), %rcx     # 0x112567
jmp 0xda679
leaq 0x4888d(%rip), %rcx     # 0x123579
jmp 0xda679
leaq 0x67cfe(%rip), %rcx     # 0x1429f6
jmp 0xda679
nopl (%rax)