// File: /workspace/github_c_makefile_star2_O2/garbeam[P]st/st.c
// Function: tputc
void
tputc(Rune u)
{
	char c[UTF_SIZ];
	int control;
	int width, len;
	Glyph *gp;

	control = ISCONTROL(u);
	if (!IS_SET(MODE_UTF8) && !IS_SET(MODE_SIXEL)) {
		c[0] = u;
		width = len = 1;
	} else {
		len = utf8encode(u, c);
		if (!control && (width = wcwidth(u)) == -1) {
			memcpy(c, "\357\277\275", 4); /* UTF_INVALID */
			width = 1;
		}
	}

	if (IS_SET(MODE_PRINT))
		tprinter(c, len);

	/*
	 * STR sequence must be checked before anything else
	 * because it uses all following characters until it
	 * receives a ESC, a SUB, a ST or any other C1 control
	 * character.
	 */
	if (term.esc & ESC_STR) {
		if (u == '\a' || u == 030 || u == 032 || u == 033 ||
		   ISCONTROLC1(u)) {
			term.esc &= ~(ESC_START|ESC_STR|ESC_DCS);
			if (IS_SET(MODE_SIXEL)) {
				/* TODO: render sixel */;
				term.mode &= ~MODE_SIXEL;
				return;
			}
			term.esc |= ESC_STR_END;
			goto check_control_code;
		}

		if (IS_SET(MODE_SIXEL)) {
			/* TODO: implement sixel mode */
			return;
		}
		if (term.esc&ESC_DCS && strescseq.len == 0 && u == 'q')
			term.mode |= MODE_SIXEL;

		if (strescseq.len+len >= sizeof(strescseq.buf)-1) {
			/*
			 * Here is a bug in terminals. If the user never sends
			 * some code to stop the str or esc command, then st
			 * will stop responding. But this is better than
			 * silently failing with unknown characters. At least
			 * then users will report back.
			 *
			 * In the case users ever get fixed, here is the code:
			 */
			/*
			 * term.esc = 0;
			 * strhandle();
			 */
			return;
		}

		memmove(&strescseq.buf[strescseq.len], c, len);
		strescseq.len += len;
		return;
	}

check_control_code:
	/*
	 * Actions of control codes must be performed as soon they arrive
	 * because they can be embedded inside a control sequence, and
	 * they must not cause conflicts with sequences.
	 */
	if (control) {
		tcontrolcode(u);
		/*
		 * control codes are not shown ever
		 */
		return;
	} else if (term.esc & ESC_START) {
		if (term.esc & ESC_CSI) {
			csiescseq.buf[csiescseq.len++] = u;
			if (BETWEEN(u, 0x40, 0x7E)
					|| csiescseq.len >= \
					sizeof(csiescseq.buf)-1) {
				term.esc = 0;
				csiparse();
				csihandle();
			}
			return;
		} else if (term.esc & ESC_UTF8) {
			tdefutf8(u);
		} else if (term.esc & ESC_ALTCHARSET) {
			tdeftran(u);
		} else if (term.esc & ESC_TEST) {
			tdectest(u);
		} else {
			if (!eschandle(u))
				return;
			/* sequence already finished */
		}
		term.esc = 0;
		/*
		 * All characters which form part of a sequence are not
		 * printed
		 */
		return;
	}
	if (sel.ob.x != -1 && BETWEEN(term.c.y, sel.ob.y, sel.oe.y))
		selclear();

	gp = &term.line[term.c.y][term.c.x];
	if (IS_SET(MODE_WRAP) && (term.c.state & CURSOR_WRAPNEXT)) {
		gp->mode |= ATTR_WRAP;
		tnewline(1);
		gp = &term.line[term.c.y][term.c.x];
	}

	if (IS_SET(MODE_INSERT) && term.c.x+width < term.col)
		memmove(gp+width, gp, (term.col - term.c.x - width) * sizeof(Glyph));

	if (term.c.x+width > term.col) {
		tnewline(1);
		gp = &term.line[term.c.y][term.c.x];
	}

	tsetchar(u, &term.c.attr, term.c.x, term.c.y);

	if (width == 2) {
		gp->mode |= ATTR_WIDE;
		if (term.c.x+1 < term.col) {
			gp[1].u = '\0';
			gp[1].mode = ATTR_WDUMMY;
		}
	}
	if (term.c.x+width < term.col) {
		tmoveto(term.c.x+width, term.c.y);
	} else {
		term.c.state |= CURSOR_WRAPNEXT;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %edi, %ebx
cmpl $0x20, %edi
setb %al
cmpl $0x7f, %edi
sete %cl
orb %al, %cl
movb $0x1, %r13b
jne 0x77c9
movl %ebx, %eax
andl $-0x20, %eax
cmpl $0x80, %eax
sete %r13b
testb $-0x40, 0xcf8c(%rip)    # 0x1475c
je 0x77e8
leaq 0xc(%rsp), %rsi
movl %ebx, %edi
callq 0x5b02
movq %rax, %r15
testb %r13b, %r13b
je 0x77f5
jmp 0x7812
movb %bl, 0xc(%rsp)
pushq $0x1
popq %r14
movl %r14d, %r15d
jmp 0x7812
movl %ebx, %edi
callq 0x5620
cmpl $-0x1, %eax
je 0x7806
movl %eax, %r14d
jmp 0x7812
pushq $0x1
popq %r14
movl $0xbdbfef, 0xc(%rsp)    # imm = 0xBDBFEF
testb $0x20, 0xcf43(%rip)     # 0x1475c
movslq %r15d, %r12
je 0x782b
leaq 0xc(%rsp), %rdi
movq %r12, %rsi
callq 0x75f7
movl 0xcf2f(%rip), %ebp      # 0x14760
testb $0x4, %bpl
je 0x7871
cmpl $0x1b, %ebx
ja 0x7aeb
movl $0xd000080, %eax        # imm = 0xD000080
btl %ebx, %eax
jae 0x7aeb
andl $0xffffff7a, %ebp       # imm = 0xFFFFFF7A
movl %ebp, 0xcf06(%rip)      # 0x14760
movl 0xcefc(%rip), %eax      # 0x1475c
testb %al, %al
js 0x79b9
orl $0x10, %ebp
movl %ebp, 0xceef(%rip)      # 0x14760
testb %r13b, %r13b
je 0x78b2
movzbl %bl, %edi
cmpb $0x1b, %dil
ja 0x7a7f
leaq 0x5a52(%rip), %rax      # 0xd2dc
movslq (%rax,%rdi,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl 0xcec3(%rip), %edi      # 0x1475c
shrl $0x3, %edi
andl $0x1, %edi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x888a
testb $0x1, %bpl
jne 0x79c9
cmpl $-0x1, 0xce39(%rip)     # 0x146fc
movl 0xce7b(%rip), %eax      # 0x14744
je 0x78e6
cmpl %eax, 0xce2f(%rip)      # 0x14700
jg 0x78e6
cmpl 0xce2f(%rip), %eax      # 0x14708
jg 0x78e6
callq 0x5c56
movl 0xce5e(%rip), %eax      # 0x14744
movq 0xce2b(%rip), %rcx      # 0x14718
cltq
movslq 0xce4a(%rip), %rsi      # 0x14740
movq %rsi, %r15
shlq $0x4, %r15
addq (%rcx,%rax,8), %r15
movl 0xce55(%rip), %eax      # 0x1475c
testb $0x1, %al
je 0x7947
testb $0x1, 0xce36(%rip)      # 0x14748
je 0x7947
orb $0x1, 0x5(%r15)
pushq $0x1
popq %rdi
callq 0x888a
movq 0xcdf0(%rip), %rax      # 0x14718
movslq 0xce15(%rip), %rcx      # 0x14744
movslq 0xce0a(%rip), %rsi      # 0x14740
movq %rsi, %r15
shlq $0x4, %r15
addq (%rax,%rcx,8), %r15
movl 0xce15(%rip), %eax      # 0x1475c
movl 0xcdc7(%rip), %ecx      # 0x14714
testb $0x2, %al
je 0x7980
leal (%rsi,%r14), %edx
movl %ecx, %eax
subl %edx, %eax
jle 0x7980
movslq %r14d, %rdi
shlq $0x4, %rdi
addq %r15, %rdi
movslq %eax, %rdx
shlq $0x4, %rdx
movq %r15, %rsi
callq 0x54d0
movl 0xcdc6(%rip), %esi      # 0x14740
movl 0xcd94(%rip), %ecx      # 0x14714
leal (%rsi,%r14), %eax
cmpl %ecx, %eax
jle 0x7b65
pushq $0x1
popq %rdi
callq 0x888a
movq 0xcd7d(%rip), %rax      # 0x14718
movslq 0xcda2(%rip), %rdx      # 0x14744
movslq 0xcd97(%rip), %rsi      # 0x14740
movq %rsi, %r15
shlq $0x4, %r15
addq (%rax,%rdx,8), %r15
jmp 0x7b6b
andl $0xffffff7f, %eax       # imm = 0xFFFFFF7F
movl %eax, 0xcd98(%rip)      # 0x1475c
jmp 0x7eda
testb $0x2, %bpl
jne 0x7bc0
testb $0x40, %bpl
jne 0x7cd8
testb $0x8, %bpl
jne 0x7d16
testb $0x20, %bpl
jne 0x7e93
movzbl %bl, %ebx
leal -0x5a(%rbx), %eax
cmpl $0x15, %eax
jbe 0x7ee9
leal -0x37(%rbx), %eax
cmpl $0xe, %eax
jbe 0x7f00
leal -0x28(%rbx), %eax
cmpl $0x4, %eax
jb 0x7fa4
cmpl $0x23, %ebx
je 0x8761
cmpl $0x25, %ebx
je 0x8769
cmpl $0x48, %ebx
je 0x8747
cmpl $0x4d, %ebx
je 0x8726
cmpl $0x50, %ebx
je 0x7ef9
movq 0xc5a4(%rip), %rax      # 0x13ff0
movq (%rax), %r14
callq 0x5360
movq (%rax), %rax
movl %ebx, %ecx
movzwl (%rax,%rcx,2), %eax
btl $0xe, %eax
pushq $0x2e
popq %rcx
cmovbl %ebx, %ecx
leaq 0x5f0d(%rip), %rsi      # 0xd97b
movq %r14, %rdi
movl %ebx, %edx
xorl %eax, %eax
callq 0x5820
jmp 0x7dd0
leal -0x9d(%rdi), %eax
cmpl $0x3, %eax
jb 0x7cc5
cmpl $0x7f, %edi
je 0x7eda
cmpl $0x85, %edi
je 0x7e72
cmpl $0x88, %edi
je 0x7e7c
cmpl $0x90, %edi
je 0x7cc5
cmpl $0x9a, %edi
jne 0x7ed3
leaq 0xc9da(%rip), %rax      # 0x144a8
movq (%rax), %rbx
movq %rbx, %rdi
callq 0x5340
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x66ee
jmp 0x7ed3
movl %ebx, %eax
andl $-0x20, %eax
cmpl $0x80, %eax
je 0x784e
movl 0xcc5b(%rip), %ecx      # 0x1475c
testb %cl, %cl
js 0x7eda
movl 0xee7d(%rip), %eax      # 0x1698c
cmpl $0x71, %ebx
jne 0x7b2c
andl $0x80, %ebp
je 0x7b2c
testl %eax, %eax
jne 0x7b2c
orl $0x80, %ecx
movl %ecx, 0xcc30(%rip)      # 0x1475c
addl %eax, %r15d
cmpl $0x1fe, %r15d           # imm = 0x1FE
ja 0x7eda
cltq
leaq 0xec43(%rip), %rcx      # 0x16788
leaq (%rax,%rcx), %rdi
incq %rdi
leaq 0xc(%rsp), %rsi
movq %r12, %rdx
callq 0x5850
addl %r12d, 0xee2c(%rip)     # 0x1698c
jmp 0x7eda
movl 0xcbd9(%rip), %edx      # 0x14744
movl %ebx, %edi
callq 0x88c8
movl 0xcbc8(%rip), %edi      # 0x14740
movl 0xcb96(%rip), %eax      # 0x14714
cmpl $0x2, %r14d
jne 0x7b9c
orb $0x2, 0x5(%r15)
leal 0x1(%rdi), %ecx
cmpl %eax, %ecx
jge 0x7b9c
andl $0x0, 0x10(%r15)
movw $0x400, 0x14(%r15)      # imm = 0x400
addl %r14d, %edi
cmpl %eax, %edi
jge 0x7cb9
movl 0xcb97(%rip), %esi      # 0x14744
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7002
movslq 0xf051(%rip), %rax      # 0x16c18
leaq 0xee4a(%rip), %r15      # 0x16a18
leal 0x1(%rax), %ecx
movl %ecx, 0xf041(%rip)      # 0x16c18
movb %bl, (%rax,%r15)
addl $-0x40, %ebx
cmpl $0x3f, %ebx
setb %cl
movl 0xf02e(%rip), %eax      # 0x16c18
cmpl $0x1ff, %eax            # imm = 0x1FF
setae %dl
orb %cl, %dl
cmpb $0x1, %dl
jne 0x7eda
andl $0x0, 0xcb5c(%rip)      # 0x14760
andl $0x0, 0xf055(%rip)      # 0x16c60
cltq
cmpb $0x3f, 0xee04(%rip)     # 0x16a18
movq %r15, %r14
jne 0x7c27
movb $0x1, 0xeffc(%rip)      # 0x16c1c
leaq 0xedf2(%rip), %r14      # 0x16a19
movb $0x0, (%rax,%r15)
pushq $0xa
popq %rbp
xorl %r12d, %r12d
movabsq $-0x7fffffffffffffff, %r13 # imm = 0x8000000000000001
pushq $-0x1
popq %rbx
movslq 0xefd2(%rip), %rdx      # 0x16c18
leaq (%r15,%rdx), %rax
cmpq %rax, %r14
jae 0x7d0e
andq $0x0, 0x10(%rsp)
movq %r14, %rdi
leaq 0x10(%rsp), %rsi
movl %ebp, %edx
callq 0x5460
movq 0x10(%rsp), %rcx
cmpq %r14, %rcx
cmoveq %r12, %rax
leaq (%rax,%r13), %rsi
movl %ebx, %edx
cmpq $0x2, %rsi
jb 0x7c82
movl %eax, %edx
movslq 0xefd7(%rip), %rax      # 0x16c60
leal 0x1(%rax), %esi
movl %esi, 0xefce(%rip)      # 0x16c60
movl %edx, 0x208(%r15,%rax,4)
movb (%rcx), %al
cmpb $0x3b, %al
jne 0x7d54
cmpl $0x10, 0xefb5(%rip)     # 0x16c60
je 0x7d54
incq %rcx
movq %rcx, %r14
jmp 0x7c3f
orb $0x1, 0xca88(%rip)      # 0x14748
jmp 0x7eda
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8dec
cmpb $0x40, %bl
je 0x7dc1
movzbl %bl, %eax
cmpl $0x47, %eax
jne 0x7dd0
movl 0xca69(%rip), %eax      # 0x1475c
orl $0x40, %eax
jmp 0x7dca
movzbl %bl, %eax
pushq $0xf
popq %rcx
subl %eax, %ecx
movl %ecx, 0xca5f(%rip)      # 0x14768
jmp 0x7eda
movb (%r14), %al
movq %r14, %rcx
jmp 0x7d5b
movsbl %bl, %ebx
leaq 0xc774(%rip), %r14      # 0x14494
movq %r14, %rdi
movl %ebx, %esi
callq 0x54e0
testq %rax, %rax
je 0x7fb2
subq %r14, %rax
leaq 0x5cfb(%rip), %rcx      # 0xda38
movb (%rcx,%rax,4), %al
movslq 0xca25(%rip), %rcx      # 0x1476c
leaq 0xc9c2(%rip), %rdx      # 0x14710
movb %al, 0x54(%rcx,%rdx)
jmp 0x7dd0
movslq 0xeebd(%rip), %rdx      # 0x16c18
incq %rcx
movb %al, 0xef00(%rip)       # 0x16c64
leaq 0xecad(%rip), %r12      # 0x16a18
addq %r12, %rdx
cmpq %rdx, %rcx
jae 0x7d77
movb (%rcx), %cl
jmp 0x7d79
xorl %ecx, %ecx
movb %cl, 0xeee6(%rip)       # 0x16c65
movzbl %al, %eax
addl $-0x20, %eax
cmpl $0x55, %eax
ja 0x87b3
leaq 0x527b(%rip), %rdx      # 0xd010
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
movl 0xee7c(%rip), %esi      # 0x16c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xee70(%rip)      # 0x16c20
movl 0xc98a(%rip), %edi      # 0x14740
addl 0xc988(%rip), %esi      # 0x14744
jmp 0x829a
movl 0xc995(%rip), %eax      # 0x1475c
andl $-0x41, %eax
movl %eax, 0xc98c(%rip)      # 0x1475c
andl $0x0, 0xc989(%rip)      # 0x14760
jmp 0x7eda
pushq $0x1
popq %rdi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8995
testb $0x10, %bpl
jne 0x7ece
callq 0xa7c8
jmp 0x7ed3
movl 0xc938(%rip), %esi      # 0x14744
xorl %edi, %edi
jmp 0x7bad
leaq 0xebfe(%rip), %rdi      # 0x16a18
movl $0x250, %edx            # imm = 0x250
xorl %esi, %esi
callq 0x50a0
andl $-0x2c, %ebp
incl %ebp
movl %ebp, 0xc92f(%rip)      # 0x14760
jmp 0x7eda
movl 0xc904(%rip), %edi      # 0x14740
decl %edi
movl 0xc900(%rip), %esi      # 0x14744
jmp 0x7bad
movl 0xc8f1(%rip), %esi      # 0x14740
movl 0xc8ef(%rip), %edx      # 0x14744
pushq $0x3f
popq %rdi
callq 0x88c8
leaq 0xebb4(%rip), %rdi      # 0x16a18
movl $0x250, %edx            # imm = 0x250
xorl %esi, %esi
callq 0x50a0
jmp 0x7ed3
pushq $0x1
popq %rdi
callq 0x888a
jmp 0x7ed3
movq 0xc8ed(%rip), %rax      # 0x14770
movslq 0xc8b6(%rip), %rcx      # 0x14740
movl $0x1, (%rax,%rcx,4)
jmp 0x7ed3
cmpb $0x38, %bl
jne 0x7dd0
xorl %ebx, %ebx
pushq $0x45
popq %rbp
cmpl 0xc86d(%rip), %ebx      # 0x14714
jge 0x7dd0
xorl %r14d, %r14d
cmpl 0xc859(%rip), %r14d     # 0x14710
jge 0x7eca
movl %ebp, %edi
movl %ebx, %esi
movl %r14d, %edx
callq 0x88c8
incl %r14d
jmp 0x7eb0
incl %ebx
jmp 0x7ea1
callq 0x8a1a
andb $-0x15, 0xc886(%rip)    # 0x14760
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x5394(%rip), %rcx      # 0xd284
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl %ebx, %edi
jmp 0x7cc5
leaq 0x5341(%rip), %rcx      # 0xd248
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0xc846(%rip), %eax      # 0x1475c
shrl $0x2, %eax
andl $0x1, %eax
imulq $0x1c, %rax, %rax
leaq 0xed49(%rip), %rcx      # 0x16c70
movups 0xc80e(%rip), %xmm0     # 0x1473c
movups %xmm0, 0xc(%rax,%rcx)
movups 0xc7f6(%rip), %xmm0     # 0x14730
movups %xmm0, (%rax,%rcx)
jmp 0x7dd0
movl 0xecd7(%rip), %edi      # 0x16c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xeccb(%rip)      # 0x16c20
decl %edi
jmp 0x820f
movl 0xecbe(%rip), %esi      # 0x16c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xecb2(%rip)      # 0x16c20
movl 0xecb0(%rip), %edi      # 0x16c24
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xeca4(%rip)      # 0x16c24
decl %edi
jmp 0x83cf
movl 0xec93(%rip), %edi      # 0x16c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xec87(%rip)      # 0x16c20
addl 0xc7a1(%rip), %edi      # 0x14740
jmp 0x820f
movl %eax, 0xc7c2(%rip)      # 0x1476c
orl $0x8, %ebp
jmp 0x7e2b
movq 0xc037(%rip), %rax      # 0x13ff0
movq (%rax), %rdi
leaq 0x5997(%rip), %rsi      # 0xd95a
movl %ebx, %edx
xorl %eax, %eax
callq 0x5820
jmp 0x7dd0
cmpl $0x0, 0xec48(%rip)      # 0x16c20
jne 0x7eda
leaq 0xc4c3(%rip), %rax      # 0x144a8
movq (%rax), %rbx
movq %rbx, %rdi
callq 0x5340
movq %rbx, %rdi
movq %rax, %rsi
jmp 0x8274
pushq $0x1
popq %rdi
callq 0x71b3
jmp 0x7eda
movsbl 0xec0d(%rip), %edi      # 0x16c1c
movl 0xec4b(%rip), %edx      # 0x16c60
xorl %esi, %esi
jmp 0x8613
movl 0xebfe(%rip), %eax      # 0x16c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xebf2(%rip)      # 0x16c20
movl 0xc70c(%rip), %edi      # 0x14740
movl 0xc70a(%rip), %ecx      # 0x14744
leal (%rax,%rdi), %edx
decl %edx
jmp 0x87e9
movl 0xebd6(%rip), %eax      # 0x16c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xebca(%rip)      # 0x16c20
movslq 0xc6e3(%rip), %rdi      # 0x14740
movl 0xc6b1(%rip), %ecx      # 0x14714
movl %ecx, %edx
subl %edi, %edx
cmpl %eax, %edx
cmovgel %eax, %edx
xorl %ebx, %ebx
testl %eax, %eax
cmovnsl %edx, %ebx
leal (%rbx,%rdi), %eax
subl %eax, %ecx
movq 0xc699(%rip), %rdx      # 0x14718
movslq 0xc6be(%rip), %rsi      # 0x14744
movq (%rdx,%rsi,8), %rdx
shlq $0x4, %rdi
addq %rdx, %rdi
movslq %eax, %rsi
shlq $0x4, %rsi
addq %rdx, %rsi
movslq %ecx, %rdx
shlq $0x4, %rdx
callq 0x54d0
movl 0xc667(%rip), %edx      # 0x14714
movl %edx, %edi
subl %ebx, %edi
movl 0xc68d(%rip), %ecx      # 0x14744
decl %edx
jmp 0x87e9
movl 0xeb5c(%rip), %eax      # 0x16c20
cmpl $0x2, %eax
je 0x87d9
cmpl $0x1, %eax
je 0x87a5
testl %eax, %eax
jne 0x7eda
movl 0xc65c(%rip), %edi      # 0x14740
movl 0xc65a(%rip), %ecx      # 0x14744
movl 0xc624(%rip), %edx      # 0x14714
jmp 0x80b7
cmpb $0x71, %cl
jne 0x87b3
movl 0xeb1f(%rip), %edi      # 0x16c20
callq 0xa7b0
testl %eax, %eax
je 0x7eda
jmp 0x87b3
movl 0xeb07(%rip), %edi      # 0x16c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xeafb(%rip)      # 0x16c20
jmp 0x8587
movl 0xeaf0(%rip), %eax      # 0x16c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xeae4(%rip)      # 0x16c20
movslq 0xc5fd(%rip), %rbx      # 0x14740
movl 0xc5cb(%rip), %ecx      # 0x14714
movl %ecx, %edx
subl %ebx, %edx
cmpl %eax, %edx
cmovgel %eax, %edx
xorl %r14d, %r14d
testl %eax, %eax
cmovnsl %edx, %r14d
leal (%r14,%rbx), %eax
subl %eax, %ecx
movq 0xc5b0(%rip), %rdx      # 0x14718
movslq 0xc5d5(%rip), %rsi      # 0x14744
movq (%rdx,%rsi,8), %rdx
movslq %eax, %rdi
shlq $0x4, %rdi
addq %rdx, %rdi
movq %rbx, %rsi
shlq $0x4, %rsi
addq %rdx, %rsi
movslq %ecx, %rdx
shlq $0x4, %rdx
callq 0x54d0
movl 0xc5ab(%rip), %ecx      # 0x14744
leal (%r14,%rbx), %edx
decl %edx
movl %ebx, %edi
jmp 0x87e9
movl 0xea74(%rip), %eax      # 0x16c20
cmpq $0x5, %rax
ja 0x7eda
leaq 0x5073(%rip), %rcx      # 0xd230
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x6f7c
jmp 0x7eda
movl 0xea4a(%rip), %eax      # 0x16c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xea3e(%rip)      # 0x16c20
movl 0xc558(%rip), %edi      # 0x14740
movl 0xc556(%rip), %esi      # 0x14744
subl %eax, %esi
jmp 0x829a
movl 0xea25(%rip), %eax      # 0x16c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xea19(%rip)      # 0x16c20
movl 0xc533(%rip), %edi      # 0x14740
subl %eax, %edi
movl 0xc52f(%rip), %esi      # 0x14744
jmp 0x829a
movl 0xea00(%rip), %eax      # 0x16c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xe9f4(%rip)      # 0x16c20
movl 0xc512(%rip), %esi      # 0x14744
subl %eax, %esi
jmp 0x8298
cmpl $0x6, 0xe9e3(%rip)      # 0x16c20
jne 0x7eda
movl 0xc4fb(%rip), %ecx      # 0x14744
incl %ecx
movl 0xc4ee(%rip), %r8d      # 0x14740
incl %r8d
leaq 0x55f0(%rip), %rdx      # 0xd84c
leaq 0x10(%rsp), %rbx
pushq $0x28
popq %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x50b0
movslq %eax, %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0x66ee
jmp 0x7eda
movl 0xe99a(%rip), %esi      # 0x16c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xe98e(%rip)      # 0x16c20
addl 0xc4ac(%rip), %esi      # 0x14744
xorl %edi, %edi
callq 0x7002
jmp 0x7eda
cmpb $0x0, 0xe971(%rip)      # 0x16c1c
jne 0x87b3
movl 0xe969(%rip), %edi      # 0x16c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xe95d(%rip)      # 0x16c20
movl 0xe95b(%rip), %esi      # 0x16c24
testl %esi, %esi
jne 0x82d3
movl 0xc43d(%rip), %esi      # 0x14710
movl %esi, 0xe94b(%rip)      # 0x16c24
decl %edi
decl %esi
callq 0x6fc2
xorl %edi, %edi
xorl %esi, %esi
jmp 0x83d1
movl 0xe92f(%rip), %eax      # 0x16c20
cmpl $0x2, %eax
je 0x8771
cmpl $0x1, %eax
je 0x8787
testl %eax, %eax
jne 0x87b3
movl 0xc42f(%rip), %edi      # 0x14740
movl 0xc42d(%rip), %ecx      # 0x14744
movl 0xc3f7(%rip), %edx      # 0x14714
decl %edx
movl %ecx, %esi
callq 0x706d
movl 0xc418(%rip), %esi      # 0x14744
movl 0xc3de(%rip), %ecx      # 0x14710
decl %ecx
cmpl %ecx, %esi
jge 0x7eda
incl %esi
movl 0xc3d0(%rip), %edx      # 0x14714
decl %edx
xorl %edi, %edi
jmp 0x87eb
movl 0xe8cd(%rip), %esi      # 0x16c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xe8c1(%rip)      # 0x16c20
movl 0xc3df(%rip), %edi      # 0x14744
cmpl %edi, 0xc3e9(%rip)      # 0x14754
jg 0x7eda
cmpl 0xc3e1(%rip), %edi      # 0x14758
jle 0x85d7
jmp 0x7eda
movl 0xe898(%rip), %esi      # 0x16c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xe88c(%rip)      # 0x16c20
movl 0xc3aa(%rip), %edi      # 0x14744
cmpl %edi, 0xc3b4(%rip)      # 0x14754
jg 0x7eda
cmpl 0xc3ac(%rip), %edi      # 0x14758
jle 0x85f9
jmp 0x7eda
movl 0xe863(%rip), %esi      # 0x16c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xe857(%rip)      # 0x16c20
movl 0xc371(%rip), %edi      # 0x14740
decl %esi
callq 0x8f56
jmp 0x7eda
movl 0xe87f(%rip), %ebx      # 0x16c60
leaq 0x4d80(%rip), %rbp      # 0xd168
leaq 0xc0dd(%rip), %r13      # 0x144cc
leaq 0xe8ba(%rip), %r14      # 0x16cb0
leaq 0x10(%rsp), %r15
xorl %eax, %eax
movl %eax, 0x10(%rsp)
cmpl %ebx, %eax
jge 0x7eda
cltq
movl 0x208(%r12,%rax,4), %edx
cmpq $0x31, %rdx
ja 0x842f
movslq (%rbp,%rdx,4), %rax
addq %rbp, %rax
jmpq *%rax
orb $0x10, 0xc30a(%rip)     # 0x14734
jmp 0x8523
leal -0x1e(%rdx), %eax
cmpl $0x7, %eax
jbe 0x847c
movl %edx, %eax
andl $-0x8, %eax
cmpl $0x28, %eax
jne 0x852e
addl $-0x28, %edx
jmp 0x854c
movq %r15, %rdi
movl %ebx, %esi
callq 0x9458
testl %eax, %eax
jns 0x847c
jmp 0x8523
andb $-0x5, 0xc2cd(%rip)     # 0x14734
jmp 0x8523
andb $-0x4, 0xc2c1(%rip)     # 0x14734
jmp 0x8523
movl (%r13), %eax
movl %eax, 0xc2b6(%rip)      # 0x14738
jmp 0x8523
orb $0x1, 0xc2a6(%rip)      # 0x14734
jmp 0x8523
orb $0x8, 0xc29a(%rip)      # 0x14734
jmp 0x8523
orb $0x40, 0xc28e(%rip)     # 0x14734
jmp 0x8523
movb $0x0, 0xc285(%rip)      # 0x14734
movl (%r13), %eax
movl %eax, 0xc27f(%rip)      # 0x14738
movl (%r14), %eax
jmp 0x851d
orb $0x20, 0xc26f(%rip)     # 0x14734
jmp 0x8523
andb $-0x11, 0xc266(%rip)    # 0x14734
jmp 0x8523
andb $-0x21, 0xc25d(%rip)    # 0x14734
jmp 0x8523
orb $0x2, 0xc254(%rip)      # 0x14734
jmp 0x8523
orb $0x4, 0xc24b(%rip)      # 0x14734
jmp 0x8523
andb $0x7f, 0xc242(%rip)     # 0x14734
jmp 0x8523
orb $-0x80, 0xc239(%rip)    # 0x14734
jmp 0x8523
andb $-0x41, 0xc230(%rip)    # 0x14734
jmp 0x8523
andb $-0x9, 0xc227(%rip)     # 0x14734
jmp 0x8523
movq %r15, %rdi
movl %ebx, %esi
callq 0x9458
testl %eax, %eax
js 0x8523
movl %eax, 0xc219(%rip)      # 0x1473c
movl 0x10(%rsp), %eax
incl %eax
jmp 0x83fd
leal -0x5a(%rdx), %eax
cmpl $0x7, %eax
ja 0x8541
addl $-0x52, %edx
movl %edx, 0xc1f9(%rip)      # 0x14738
jmp 0x8523
leal -0x64(%rdx), %eax
cmpl $0x7, %eax
ja 0x8554
addl $-0x5c, %edx
movl %edx, 0xc1ea(%rip)      # 0x1473c
jmp 0x8523
movq 0xba95(%rip), %rax      # 0x13ff0
movq (%rax), %rdi
leaq 0x5343(%rip), %rsi      # 0xd8a8
xorl %eax, %eax
callq 0x5820
callq 0x8e80
jmp 0x8523
movl 0xe6a7(%rip), %edi      # 0x16c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xe69b(%rip)      # 0x16c20
negl %edi
callq 0x8995
jmp 0x7eda
movl 0xe689(%rip), %eax      # 0x16c20
cmpl $0x3, %eax
je 0x865e
testl %eax, %eax
jne 0x87b3
movq 0xc1c1(%rip), %rax      # 0x14770
movslq 0xc18a(%rip), %rcx      # 0x14740
andl $0x0, (%rax,%rcx,4)
jmp 0x7eda
movl 0xe65b(%rip), %esi      # 0x16c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xe64f(%rip)      # 0x16c20
movl 0xc17d(%rip), %edi      # 0x14754
callq 0x9007
jmp 0x7eda
movl 0xe639(%rip), %esi      # 0x16c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xe62d(%rip)      # 0x16c20
movl 0xc15b(%rip), %edi      # 0x14754
callq 0x8f70
jmp 0x7eda
movsbl 0xe612(%rip), %edi      # 0x16c1c
movl 0xe650(%rip), %edx      # 0x16c60
pushq $0x1
popq %rsi
callq 0x90a1
jmp 0x7eda
movl 0xc139(%rip), %eax      # 0x1475c
shrl $0x2, %eax
andl $0x1, %eax
imulq $0x1c, %rax, %rax
leaq 0xe63c(%rip), %rcx      # 0x16c70
movups 0xc101(%rip), %xmm0     # 0x1473c
movups %xmm0, 0xc(%rax,%rcx)
movups 0xc0e9(%rip), %xmm0     # 0x14730
movups %xmm0, (%rax,%rcx)
jmp 0x7eda
addl $-0x6c, %ebx
movl %ebx, 0xc10f(%rip)      # 0x14768
jmp 0x7dd0
movq 0xc10b(%rip), %rdi      # 0x14770
movslq 0xc0a8(%rip), %rdx      # 0x14714
shlq $0x2, %rdx
xorl %esi, %esi
callq 0x50a0
jmp 0x7eda
leaq 0xbe25(%rip), %rax      # 0x144a8
movq (%rax), %rbx
movq %rbx, %rdi
callq 0x5340
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x66ee
jmp 0x7dd0
orl $0x2, %ebp
jmp 0x7e2b
callq 0x6e42
callq 0x7207
callq 0x961b
jmp 0x7dd0
testb $0x10, %bpl
je 0x7dd0
callq 0x8a1a
jmp 0x7dd0
movl 0xc06e(%rip), %esi      # 0x14744
cmpl 0xc07c(%rip), %esi      # 0x14758
jne 0x87f5
movl 0xc06c(%rip), %edi      # 0x14754
pushq $0x1
popq %rsi
callq 0x8f70
jmp 0x7dd0
pushq $0x1
popq %rdi
callq 0x888a
jmp 0x7dd0
pushq $0x1
popq %rdi
callq 0x71b3
jmp 0x7dd0
pushq $0x4
popq %rsi
xorl %edi, %edi
jmp 0x871c
pushq $0x1
popq %rdi
pushq $0x4
popq %rsi
callq 0xa78a
jmp 0x7dd0
movl 0xc018(%rip), %eax      # 0x14744
cmpl 0xc022(%rip), %eax      # 0x14754
jne 0x87ff
pushq $0x1
popq %rsi
movl %eax, %edi
callq 0x9007
jmp 0x7dd0
movq 0xc022(%rip), %rax      # 0x14770
movslq 0xbfeb(%rip), %rcx      # 0x14740
movl $0x1, (%rax,%rcx,4)
jmp 0x7dd0
orl $0x20, %ebp
jmp 0x7e2b
orl $0x40, %ebp
jmp 0x7e2b
movl 0xbf9d(%rip), %edx      # 0x14714
decl %edx
movl 0xbf91(%rip), %ecx      # 0x14710
decl %ecx
xorl %edi, %edi
xorl %esi, %esi
jmp 0x87eb
movl 0xbfb7(%rip), %ecx      # 0x14744
cmpl $0x2, %ecx
jl 0x87ab
movl 0xbf7c(%rip), %edx      # 0x14714
decl %edx
decl %ecx
xorl %edi, %edi
xorl %esi, %esi
callq 0x706d
movl 0xbf99(%rip), %ecx      # 0x14744
movl 0xbf8f(%rip), %edx      # 0x14740
jmp 0x87e7
movq 0xb836(%rip), %rax      # 0x13ff0
movq (%rax), %rcx
leaq 0x5073(%rip), %rdi      # 0xd837
pushq $0x14
popq %rsi
pushq $0x1
popq %rdx
callq 0x57c0
callq 0x8e80
jmp 0x7eda
movl 0xbf65(%rip), %ecx      # 0x14744
movl 0xbf2f(%rip), %edx      # 0x14714
decl %edx
xorl %edi, %edi
movl %ecx, %esi
callq 0x706d
jmp 0x7eda
movl 0xbf45(%rip), %edi      # 0x14740
incl %esi
jmp 0x8809
movl 0xbf3b(%rip), %edi      # 0x14740
decl %eax
movl %eax, %esi
callq 0x7002
jmp 0x7dd0
callq 0x6f96
jmp 0x7eda
movl 0xbf21(%rip), %edi      # 0x14744
callq 0x7661
jmp 0x7eda
andb $-0x21, 0xbf28(%rip)    # 0x1475c
jmp 0x7eda
orb $0x20, 0xbf1c(%rip)     # 0x1475c
jmp 0x7eda