// File: /workspace/github_c_makefile_star2_O1/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, %r15b
jne 0x7dcf
movl %ebx, %eax
andl $-0x20, %eax
cmpl $0x80, %eax
sete %r15b
testb $-0x40, 0xd986(%rip)    # 0x1575c
je 0x7dee
leaq 0xc(%rsp), %rsi
movl %ebx, %edi
callq 0x5f04
movq %rax, %r14
testb %r15b, %r15b
je 0x7dff
jmp 0x7e1c
movb %bl, 0xc(%rsp)
movl $0x1, %ebp
movl $0x1, %r14d
jmp 0x7e1c
movl %ebx, %edi
callq 0x5630
cmpl $-0x1, %eax
je 0x7e0f
movl %eax, %ebp
jmp 0x7e1c
movl $0xbdbfef, 0xc(%rsp)    # imm = 0xBDBFEF
movl $0x1, %ebp
testb $0x20, 0xd939(%rip)     # 0x1575c
je 0x7e32
movslq %r14d, %rsi
leaq 0xc(%rsp), %rdi
callq 0x7b9f
movl 0xd928(%rip), %eax      # 0x15760
testb $0x4, %al
je 0x7e75
cmpl $0x1b, %ebx
ja 0x80d5
movl $0xd000080, %ecx        # imm = 0xD000080
btl %ebx, %ecx
jae 0x80d5
andl $0xffffff7a, %eax       # imm = 0xFFFFFF7A
movl %eax, 0xd902(%rip)      # 0x15760
movl 0xd8f8(%rip), %ecx      # 0x1575c
testb %cl, %cl
js 0x8044
orl $0x10, %eax
movl %eax, 0xd8eb(%rip)      # 0x15760
testb %r15b, %r15b
je 0x7ec3
movzbl %bl, %edi
cmpl $0x84, %edi
jg 0x808a
cmpl $0x1b, %edi
ja 0x838e
movl %edi, %eax
leaq 0x62e5(%rip), %rcx      # 0xe180
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0xd8b2(%rip), %edi      # 0x1575c
shrl $0x3, %edi
andl $0x1, %edi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8d53
movl 0xd897(%rip), %eax      # 0x15760
testb $0x1, %al
jne 0x8055
cmpl $-0x1, 0xd824(%rip)     # 0x156fc
je 0x7f15
movl 0xd864(%rip), %eax      # 0x15744
cmpl %eax, 0xd81a(%rip)      # 0x15700
jg 0x7f15
cmpl 0xd81a(%rip), %eax      # 0x15708
jg 0x7f15
movl $0x0, 0xd7e6(%rip)      # 0x156e0
movl $0xffffffff, 0xd7f8(%rip) # imm = 0xFFFFFFFF
movl 0xd7e6(%rip), %edi      # 0x156f0
movl 0xd7e8(%rip), %esi      # 0x156f8
callq 0x616b
movq 0xd7fc(%rip), %rax      # 0x15718
movslq 0xd821(%rip), %rcx      # 0x15744
movslq 0xd816(%rip), %r14      # 0x15740
shlq $0x4, %r14
addq (%rax,%rcx,8), %r14
testb $0x1, 0xd823(%rip)      # 0x1575c
je 0x7f70
testb $0x1, 0xd806(%rip)      # 0x15748
je 0x7f70
orb $0x1, 0x5(%r14)
movl $0x1, %edi
callq 0x8d53
movq 0xd7be(%rip), %rax      # 0x15718
movslq 0xd7e3(%rip), %rcx      # 0x15744
movslq 0xd7d8(%rip), %r14      # 0x15740
shlq $0x4, %r14
addq (%rax,%rcx,8), %r14
testb $0x2, 0xd7e5(%rip)      # 0x1575c
je 0x7fa4
movl 0xd7c1(%rip), %ecx      # 0x15740
addl %ebp, %ecx
movl 0xd78d(%rip), %eax      # 0x15714
subl %ecx, %eax
jle 0x7fa4
movslq %ebp, %rdi
shlq $0x4, %rdi
addq %r14, %rdi
movslq %eax, %rdx
shlq $0x4, %rdx
movq %r14, %rsi
callq 0x54d0
movl 0xd796(%rip), %eax      # 0x15740
addl %ebp, %eax
cmpl 0xd762(%rip), %eax      # 0x15714
jle 0x7fdb
movl $0x1, %edi
callq 0x8d53
movq 0xd753(%rip), %rax      # 0x15718
movslq 0xd778(%rip), %rcx      # 0x15744
movslq 0xd76d(%rip), %r14      # 0x15740
shlq $0x4, %r14
addq (%rax,%rcx,8), %r14
movl 0xd75f(%rip), %esi      # 0x15740
movl 0xd75d(%rip), %edx      # 0x15744
movl %ebx, %edi
callq 0x8d93
cmpl $0x2, %ebp
jne 0x8017
orb $0x2, 0x5(%r14)
movl 0xd742(%rip), %eax      # 0x15740
incl %eax
cmpl 0xd70e(%rip), %eax      # 0x15714
jge 0x8017
movl $0x0, 0x10(%r14)
movw $0x400, 0x14(%r14)      # imm = 0x400
addl 0xd723(%rip), %ebp      # 0x15740
cmpl 0xd6f1(%rip), %ebp      # 0x15714
jge 0x814f
movl 0xd715(%rip), %esi      # 0x15744
movl %ebp, %edi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x74fb
andl $0xffffff7f, %ecx       # imm = 0xFFFFFF7F
movl %ecx, 0xd70c(%rip)      # 0x1575c
jmp 0x847d
testb $0x2, %al
jne 0x815b
testb $0x40, %al
jne 0x82a7
testb $0x8, %al
jne 0x82dd
testb $0x20, %al
jne 0x846b
movzbl %bl, %edi
callq 0x8af2
testl %eax, %eax
jne 0x8473
jmp 0x847d
cmpl $0x99, %edi
jle 0x8270
leal -0x9d(%rdi), %eax
cmpl $0x3, %eax
jb 0x8294
cmpl $0x9a, %edi
jne 0x83f1
leaq 0xd3f0(%rip), %rax      # 0x154a8
movq (%rax), %rbx
movq %rbx, %rdi
callq 0x5340
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x6b48
jmp 0x83f1
movl %ebx, %ecx
andl $-0x20, %ecx
cmpl $0x80, %ecx
je 0x7e53
movl 0xd670(%rip), %edx      # 0x1575c
testb %dl, %dl
js 0x847d
movl 0xf892(%rip), %ecx      # 0x1798c
cmpl $0x71, %ebx
jne 0x8116
andl $0x80, %eax
je 0x8116
testl %ecx, %ecx
jne 0x8116
orl $0x80, %edx
movl %edx, 0xd646(%rip)      # 0x1575c
leal (%rcx,%r14), %eax
cmpl $0x1fe, %eax            # imm = 0x1FE
ja 0x847d
movslq %ecx, %rax
leaq 0xf659(%rip), %rcx      # 0x17788
leaq (%rax,%rcx), %rdi
incq %rdi
movslq %r14d, %rdx
leaq 0xc(%rsp), %rsi
callq 0x5860
addl %r14d, 0xf842(%rip)     # 0x1798c
jmp 0x847d
orb $0x1, 0xd5f2(%rip)      # 0x15748
jmp 0x847d
movslq 0xfab6(%rip), %rcx      # 0x17c18
leaq 0xf8af(%rip), %rax      # 0x17a18
leal 0x1(%rcx), %edx
movl %edx, 0xfaa6(%rip)      # 0x17c18
movb %bl, (%rcx,%rax)
addl $-0x40, %ebx
cmpl $0x3f, %ebx
setb %dl
movl 0xfa94(%rip), %ecx      # 0x17c18
cmpl $0x1ff, %ecx            # imm = 0x1FF
setae %sil
orb %dl, %sil
cmpb $0x1, %sil
jne 0x847d
movslq %ecx, %rcx
xorl %edx, %edx
movl %edx, 0xd5ba(%rip)      # 0x15760
movl %edx, 0xfab4(%rip)      # 0x17c60
cmpb $0x3f, 0xf865(%rip)     # 0x17a18
movq %rax, %r14
jne 0x81c6
movb $0x1, 0xfa5d(%rip)      # 0x17c1c
leaq 0xf853(%rip), %r14      # 0x17a19
movb $0x0, (%rcx,%rax)
movslq 0xfa47(%rip), %rcx      # 0x17c18
addq %rax, %rcx
cmpq %rcx, %r14
jae 0x831e
xorl %r15d, %r15d
leaq 0x10(%rsp), %rbx
movabsq $-0x7fffffffffffffff, %r12 # imm = 0x8000000000000001
leaq 0xf822(%rip), %r13      # 0x17a18
movq %r15, 0x10(%rsp)
movq %r14, %rdi
movq %rbx, %rsi
movl $0xa, %edx
callq 0x5460
movq 0x10(%rsp), %rcx
cmpq %r14, %rcx
cmoveq %r15, %rax
leaq (%rax,%r12), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmpq $0x2, %rsi
jb 0x8228
movl %eax, %edx
movslq 0xfa31(%rip), %rax      # 0x17c60
leal 0x1(%rax), %esi
movl %esi, 0xfa28(%rip)      # 0x17c60
movl %edx, 0x208(%r13,%rax,4)
cmpb $0x3b, (%rcx)
jne 0x8321
cmpl $0x10, 0xfa10(%rip)     # 0x17c60
je 0x8321
incq %rcx
movslq 0xf9b8(%rip), %rax      # 0x17c18
addq %r13, %rax
movq %rcx, %r14
cmpq %rax, %rcx
jb 0x81f6
jmp 0x8321
cmpl $0x85, %edi
je 0x8399
cmpl $0x88, %edi
je 0x83a5
cmpl $0x90, %edi
jne 0x83f1
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x90e9
cmpb $0x40, %bl
je 0x83bc
movzbl %bl, %eax
cmpl $0x47, %eax
jne 0x8473
orb $0x40, 0xd499(%rip)     # 0x1575c
jmp 0x8473
movzbl %bl, %eax
movl $0xf, %ecx
subl %eax, %ecx
movl %ecx, 0xd490(%rip)      # 0x15768
jmp 0x847d
movsbl %bl, %ebx
leaq 0xd1ad(%rip), %r14      # 0x15494
movq %r14, %rdi
movl %ebx, %esi
callq 0x54e0
testq %rax, %rax
je 0x84f7
subq %r14, %rax
leaq 0x6738(%rip), %rcx      # 0xea3c
movb (%rcx,%rax,4), %al
movslq 0xd45e(%rip), %rcx      # 0x1576c
leaq 0xd3fb(%rip), %rdx      # 0x15710
movb %al, 0x54(%rcx,%rdx)
jmp 0x8473
movq %r14, %rcx
movzbl (%rcx), %eax
incq %rcx
movb %al, 0xf937(%rip)       # 0x17c64
leaq 0xf6e4(%rip), %rdx      # 0x17a18
movslq 0xf8dd(%rip), %rsi      # 0x17c18
addq %rdx, %rsi
cmpq %rsi, %rcx
jae 0x8347
movb (%rcx), %cl
jmp 0x8349
xorl %ecx, %ecx
movb %cl, 0xf916(%rip)       # 0x17c65
addl $-0x20, %eax
cmpl $0x55, %eax
ja 0x8a52
leaq 0x5cae(%rip), %rdx      # 0xe010
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
movl 0xf8af(%rip), %esi      # 0x17c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xf8a3(%rip)      # 0x17c20
movl 0xd3bd(%rip), %edi      # 0x15740
addl 0xd3bb(%rip), %esi      # 0x15744
jmp 0x88ef
cmpl $0x7f, %edi
je 0x847d
jmp 0x83f1
movl $0x1, %edi
callq 0x8d53
jmp 0x83f1
movq 0xd3c4(%rip), %rax      # 0x15770
movslq 0xd38d(%rip), %rcx      # 0x15740
movl $0x1, (%rax,%rcx,4)
jmp 0x83f1
andb $-0x41, 0xd399(%rip)    # 0x1575c
jmp 0x8473
movl 0xd372(%rip), %esi      # 0x15740
movl 0xd370(%rip), %edx      # 0x15744
movl $0x3f, %edi
callq 0x8d93
leaq 0xf633(%rip), %rdi      # 0x17a18
movl $0x250, %edx            # imm = 0x250
xorl %esi, %esi
callq 0x50a0
andb $-0x15, 0xd368(%rip)    # 0x15760
jmp 0x847d
leaq 0xf614(%rip), %rdi      # 0x17a18
movl $0x250, %edx            # imm = 0x250
xorl %esi, %esi
callq 0x50a0
movl 0xd34a(%rip), %eax      # 0x15760
andl $-0x2c, %eax
incl %eax
movl %eax, 0xd33f(%rip)      # 0x15760
jmp 0x847d
movl $0x1, %edi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8e62
movl 0xd303(%rip), %esi      # 0x15744
xorl %edi, %edi
jmp 0x8031
testb $0x10, 0xd311(%rip)     # 0x15760
jne 0x848c
callq 0xafc1
jmp 0x83f1
movl 0xd2e2(%rip), %edi      # 0x15740
decl %edi
movl 0xd2de(%rip), %esi      # 0x15744
jmp 0x8031
movsbl %bl, %edi
callq 0x8aaa
movl $0x0, 0xd2e3(%rip)      # 0x15760
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x8ef3
jmp 0x83f1
movl 0xf784(%rip), %edi      # 0x17c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xf778(%rip)      # 0x17c20
decl %edi
jmp 0x86eb
movl 0xf76b(%rip), %eax      # 0x17c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xf75f(%rip)      # 0x17c20
movl 0xf75d(%rip), %edi      # 0x17c24
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xf751(%rip)      # 0x17c24
decl %edi
jmp 0x88d9
movl 0xf740(%rip), %edi      # 0x17c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xf734(%rip)      # 0x17c20
addl 0xd24e(%rip), %edi      # 0x15740
jmp 0x86eb
movq 0xcaf2(%rip), %rax      # 0x14ff0
movq (%rax), %rdi
leaq 0x6454(%rip), %rsi      # 0xe95c
movl %ebx, %edx
xorl %eax, %eax
callq 0x5830
jmp 0x8473
cmpl $0x0, 0xf703(%rip)      # 0x17c20
jne 0x847d
leaq 0xcf7e(%rip), %rax      # 0x154a8
movq (%rax), %rbx
movq %rbx, %rdi
callq 0x5340
movq %rbx, %rdi
movq %rax, %rsi
jmp 0x8755
movl 0xd216(%rip), %eax      # 0x1575c
shrl $0x2, %eax
andl $0x1, %eax
leaq (%rax,%rax,8), %rcx
leaq (%rcx,%rcx,2), %rcx
addq %rax, %rcx
leaq 0xf712(%rip), %rax      # 0x17c70
movups (%rax,%rcx), %xmm0
movups 0xc(%rax,%rcx), %xmm1
movups %xmm0, 0xd1c2(%rip)     # 0x15730
movups %xmm1, 0xd1c7(%rip)     # 0x1573c
movl 0x10(%rax,%rcx), %edi
movl 0x14(%rax,%rcx), %esi
jmp 0x88ef
movsbl 0xf693(%rip), %edi      # 0x17c1c
movl 0xf6d1(%rip), %edx      # 0x17c60
xorl %esi, %esi
jmp 0x89ae
movl 0xf684(%rip), %eax      # 0x17c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xf678(%rip)      # 0x17c20
movl 0xd192(%rip), %edi      # 0x15740
movl 0xd190(%rip), %ecx      # 0x15744
leal (%rax,%rdi), %edx
decl %edx
jmp 0x8a6c
movl 0xf65c(%rip), %edi      # 0x17c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xf650(%rip)      # 0x17c20
callq 0x97bf
jmp 0x847d
movl 0xf640(%rip), %eax      # 0x17c20
cmpl $0x2, %eax
je 0x8a5c
cmpl $0x1, %eax
je 0x8a44
testl %eax, %eax
jne 0x847d
movl 0xd140(%rip), %edi      # 0x15740
movl 0xd13e(%rip), %ecx      # 0x15744
movl 0xd108(%rip), %edx      # 0x15714
decl %edx
jmp 0x8a6c
cmpb $0x71, %cl
jne 0x8a52
movl 0xf5fe(%rip), %edi      # 0x17c20
callq 0xafa8
testl %eax, %eax
je 0x847d
jmp 0x8a52
movl 0xf5e6(%rip), %edi      # 0x17c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xf5da(%rip)      # 0x17c20
jmp 0x891d
movl 0xf5cf(%rip), %edi      # 0x17c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xf5c3(%rip)      # 0x17c20
callq 0x9289
jmp 0x847d
movl 0xf5b3(%rip), %eax      # 0x17c20
cmpq $0x5, %rax
ja 0x847d
leaq 0x5aea(%rip), %rcx      # 0xe168
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x0, 0xd082(%rip)      # 0x15710
jle 0x847d
xorl %ebx, %ebx
movl %ebx, %edi
callq 0x7bfb
incl %ebx
cmpl 0xd06b(%rip), %ebx      # 0x15710
jl 0x8696
jmp 0x847d
movl 0xf56e(%rip), %eax      # 0x17c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xf562(%rip)      # 0x17c20
movl 0xd07c(%rip), %edi      # 0x15740
movl 0xd07a(%rip), %esi      # 0x15744
subl %eax, %esi
jmp 0x88ef
movl 0xf549(%rip), %eax      # 0x17c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xf53d(%rip)      # 0x17c20
movl 0xd057(%rip), %edi      # 0x15740
subl %eax, %edi
movl 0xd053(%rip), %esi      # 0x15744
jmp 0x88ef
movl 0xf524(%rip), %eax      # 0x17c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xf518(%rip)      # 0x17c20
movl 0xd036(%rip), %esi      # 0x15744
subl %eax, %esi
jmp 0x87ee
cmpl $0x6, 0xf504(%rip)      # 0x17c20
jne 0x847d
movl 0xd01c(%rip), %ecx      # 0x15744
incl %ecx
movl 0xd00f(%rip), %r8d      # 0x15740
incl %r8d
leaq 0x6113(%rip), %rdx      # 0xe84e
leaq 0x10(%rsp), %rbx
movl $0x28, %esi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x50b0
movslq %eax, %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0x6b48
jmp 0x847d
movl 0xf4b9(%rip), %esi      # 0x17c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xf4ad(%rip)      # 0x17c20
addl 0xcfcb(%rip), %esi      # 0x15744
jmp 0x87ee
cmpb $0x0, 0xf49a(%rip)      # 0x17c1c
jne 0x8a52
movl 0xf492(%rip), %ecx      # 0x17c20
xorl %eax, %eax
cmpl $0x1, %ecx
adcl %eax, %ecx
movl %ecx, 0xf485(%rip)      # 0x17c20
movl 0xf483(%rip), %edx      # 0x17c24
testl %edx, %edx
movl 0xcf67(%rip), %esi      # 0x15710
cmovel %esi, %edx
leal -0x1(%rcx), %edi
decl %esi
cmpl %edi, %esi
cmovll %esi, %edi
testl %ecx, %ecx
cmovlel %eax, %edi
leal -0x1(%rdx), %ecx
cmpl %ecx, %esi
cmovgel %ecx, %esi
movl %edx, 0xf45b(%rip)      # 0x17c24
testl %edx, %edx
cmovlel %eax, %esi
cmpl %esi, %edi
movl %esi, %ecx
cmovgl %edi, %ecx
cmovll %edi, %esi
movl %esi, 0xcf76(%rip)      # 0x15754
movl %ecx, 0xcf74(%rip)      # 0x15758
testb $0x2, 0xcf5d(%rip)      # 0x15748
cmovel %eax, %esi
xorl %edi, %edi
jmp 0x88ef
movl 0xf425(%rip), %eax      # 0x17c20
cmpl $0x2, %eax
je 0x8a10
cmpl $0x1, %eax
je 0x8a26
testl %eax, %eax
jne 0x8a52
movl 0xcf25(%rip), %edi      # 0x15740
movl 0xcf23(%rip), %ecx      # 0x15744
movl 0xceed(%rip), %edx      # 0x15714
decl %edx
movl %ecx, %esi
callq 0x7566
movl 0xcf0e(%rip), %esi      # 0x15744
movl 0xced4(%rip), %ecx      # 0x15710
decl %ecx
cmpl %ecx, %esi
jge 0x847d
incl %esi
movl 0xcec6(%rip), %edx      # 0x15714
decl %edx
xorl %edi, %edi
jmp 0x8a6e
movl 0xf3c3(%rip), %esi      # 0x17c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xf3b7(%rip)      # 0x17c20
movl 0xced5(%rip), %edi      # 0x15744
cmpl %edi, 0xcedf(%rip)      # 0x15754
jg 0x847d
cmpl 0xced7(%rip), %edi      # 0x15758
jle 0x8970
jmp 0x847d
movl 0xf38e(%rip), %esi      # 0x17c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xf382(%rip)      # 0x17c20
movl 0xcea0(%rip), %edi      # 0x15744
cmpl %edi, 0xceaa(%rip)      # 0x15754
jg 0x847d
cmpl 0xcea2(%rip), %edi      # 0x15758
jle 0x8992
jmp 0x847d
movl 0xf359(%rip), %eax      # 0x17c20
cmpl $0x1, %eax
adcl $0x0, %eax
movl %eax, 0xf34d(%rip)      # 0x17c20
movl 0xce67(%rip), %edi      # 0x15740
xorl %ecx, %ecx
testb $0x2, 0xce66(%rip)      # 0x15748
je 0x88ea
movl 0xce6a(%rip), %ecx      # 0x15754
leal (%rax,%rcx), %esi
decl %esi
callq 0x74fb
jmp 0x847d
movl 0xf361(%rip), %edi      # 0x17c60
callq 0x9837
jmp 0x847d
movl 0xf311(%rip), %edi      # 0x17c20
cmpl $0x1, %edi
adcl $0x0, %edi
movl %edi, 0xf305(%rip)      # 0x17c20
negl %edi
callq 0x8e62
jmp 0x847d
movl 0xf2f3(%rip), %eax      # 0x17c20
cmpl $0x3, %eax
je 0x89f2
testl %eax, %eax
jne 0x8a52
movq 0xce2b(%rip), %rax      # 0x15770
movslq 0xcdf4(%rip), %rcx      # 0x15740
movl $0x0, (%rax,%rcx,4)
jmp 0x847d
movl 0xf2c2(%rip), %esi      # 0x17c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xf2b6(%rip)      # 0x17c20
movl 0xcde4(%rip), %edi      # 0x15754
callq 0x93a7
jmp 0x847d
movl 0xf2a0(%rip), %esi      # 0x17c20
cmpl $0x1, %esi
adcl $0x0, %esi
movl %esi, 0xf294(%rip)      # 0x17c20
movl 0xcdc2(%rip), %edi      # 0x15754
callq 0x930b
jmp 0x847d
movsbl 0xf279(%rip), %edi      # 0x17c1c
movl 0xf2b7(%rip), %edx      # 0x17c60
movl $0x1, %esi
callq 0x944c
jmp 0x847d
movl 0xcd9e(%rip), %eax      # 0x1575c
shrl $0x2, %eax
andl $0x1, %eax
leaq (%rax,%rax,8), %rcx
leaq (%rcx,%rcx,2), %rcx
addq %rax, %rcx
leaq 0xf29a(%rip), %rax      # 0x17c70
movups 0xcd5f(%rip), %xmm0     # 0x1573c
movups %xmm0, 0xc(%rax,%rcx)
movups 0xcd47(%rip), %xmm0     # 0x15730
movups %xmm0, (%rax,%rcx)
jmp 0x847d
movq 0xcd77(%rip), %rdi      # 0x15770
movslq 0xcd14(%rip), %rdx      # 0x15714
shlq $0x2, %rdx
xorl %esi, %esi
callq 0x50a0
jmp 0x847d
movl 0xccfe(%rip), %edx      # 0x15714
decl %edx
movl 0xccf2(%rip), %ecx      # 0x15710
decl %ecx
xorl %edi, %edi
xorl %esi, %esi
jmp 0x8a6e
movl 0xcd18(%rip), %ecx      # 0x15744
cmpl $0x2, %ecx
jl 0x8a44
movl 0xccdd(%rip), %edx      # 0x15714
decl %edx
decl %ecx
xorl %edi, %edi
xorl %esi, %esi
callq 0x7566
movl 0xccfa(%rip), %ecx      # 0x15744
movl 0xccf0(%rip), %edx      # 0x15740
jmp 0x8a6a
callq 0x5b84
jmp 0x847d
movl 0xcce2(%rip), %ecx      # 0x15744
movl 0xccac(%rip), %edx      # 0x15714
decl %edx
xorl %edi, %edi
movl %ecx, %esi
callq 0x7566
jmp 0x847d
callq 0x74cf
jmp 0x847d
movl 0xccbc(%rip), %edi      # 0x15744
callq 0x7bfb
jmp 0x847d
andb $-0x21, 0xccc3(%rip)    # 0x1575c
jmp 0x847d
orb $0x20, 0xccb7(%rip)     # 0x1575c
jmp 0x847d