// File: /workspace/github_c_makefile_star2_O3/jonof[P]jftekwar/jfbuild/src/osd.c
// Function: OSD_Manipulate
static void OSD_Manipulate(int op) {
	int i, j;
	symbol_t *tabc = NULL;

	switch (op) {
		case OSDOP_START:
			osdeditcursor = 0;
			osdeditwinstart = osdeditcursor;
			osdeditwinend = osdeditwinstart+editlinewidth;
			break;
		case OSDOP_END:
			osdeditcursor = osdeditlen;
			osdeditwinend = osdeditcursor;
			osdeditwinstart = osdeditwinend-editlinewidth;
			if (osdeditwinstart<0) {
				osdeditwinstart=0;
				osdeditwinend = editlinewidth;
			}
			break;
		case OSDOP_LEFT:
			if (osdeditcursor>0) {
				osdeditcursor--;
			}
			if (osdeditcursor<osdeditwinstart) {
				osdeditwinend-=(osdeditwinstart-osdeditcursor);
				osdeditwinstart-=(osdeditwinstart-osdeditcursor);
			}
			break;
		case OSDOP_LEFT_WORD:
			if (osdeditcursor>0) {
				while (osdeditcursor>0) {
					if (osdeditbuf[osdeditcursor-1] != 32) break;
					osdeditcursor--;
				}
				while (osdeditcursor>0) {
					if (osdeditbuf[osdeditcursor-1] == 32) break;
					osdeditcursor--;
				}
			}
			if (osdeditcursor<osdeditwinstart) {
				osdeditwinend-=(osdeditwinstart-osdeditcursor);
				osdeditwinstart-=(osdeditwinstart-osdeditcursor);
			}
			break;
		case OSDOP_RIGHT:
			if (osdeditcursor<osdeditlen) {
				osdeditcursor++;
			}
			if (osdeditcursor>=osdeditwinend) {
				osdeditwinstart+=(osdeditcursor-osdeditwinend);
				osdeditwinend+=(osdeditcursor-osdeditwinend);
			}
			break;
		case OSDOP_RIGHT_WORD:
			if (osdeditcursor<osdeditlen) {
				while (osdeditcursor<osdeditlen) {
					if (osdeditbuf[osdeditcursor] == 32) break;
					osdeditcursor++;
				}
				while (osdeditcursor<osdeditlen) {
					if (osdeditbuf[osdeditcursor] != 32) break;
					osdeditcursor++;
				}
			}
			if (osdeditcursor>=osdeditwinend) {
				osdeditwinstart+=(osdeditcursor-osdeditwinend);
				osdeditwinend+=(osdeditcursor-osdeditwinend);
			}
			break;
		case OSDOP_BACKSPACE:
			if (!osdeditcursor || !osdeditlen) return;
			if (!osdovertype) {
				if (osdeditcursor < osdeditlen)
					Bmemmove(osdeditbuf+osdeditcursor-1, osdeditbuf+osdeditcursor, osdeditlen-osdeditcursor);
				osdeditlen--;
			}
			osdeditcursor--;
			if (osdeditcursor<osdeditwinstart) {
				osdeditwinstart--;
				osdeditwinend--;
			}
			break;
		case OSDOP_DELETE:
			if (osdeditcursor == osdeditlen || !osdeditlen) return;
			if (osdeditcursor <= osdeditlen-1) Bmemmove(osdeditbuf+osdeditcursor, osdeditbuf+osdeditcursor+1, osdeditlen-osdeditcursor-1);
			osdeditlen--;
			break;
		case OSDOP_DELETE_START:
			if (osdeditcursor>0 && osdeditlen) {
				if (osdeditcursor<osdeditlen)
					Bmemmove(osdeditbuf, osdeditbuf+osdeditcursor, osdeditlen-osdeditcursor);
				osdeditlen-=osdeditcursor;
				osdeditcursor = 0;
				osdeditwinstart = 0;
				osdeditwinend = editlinewidth;
			}
			break;
		case OSDOP_DELETE_END:
			osdeditlen = osdeditcursor;
			break;
		case OSDOP_DELETE_WORD:
			if (osdeditcursor>0 && osdeditlen>0) {
				i=osdeditcursor;
				while (i>0 && osdeditbuf[i-1]==32) i--;
				while (i>0 && osdeditbuf[i-1]!=32) i--;
				if (osdeditcursor<osdeditlen)
					Bmemmove(osdeditbuf+i, osdeditbuf+osdeditcursor, osdeditlen-osdeditcursor);
				osdeditlen -= (osdeditcursor-i);
				osdeditcursor = i;
				if (osdeditcursor < osdeditwinstart) {
					osdeditwinstart=osdeditcursor;
					osdeditwinend=osdeditwinstart+editlinewidth;
				}
			}
			break;
		case OSDOP_CANCEL:
			osdeditlen=0;
			osdeditcursor=0;
			osdeditwinstart=0;
			osdeditwinend=editlinewidth;
			break;
		case OSDOP_COMPLETE:
			if (!lastmatch) {
				for (i=osdeditcursor;i>0;i--) if (osdeditbuf[i-1] == ' ') break;
				for (j=0;osdeditbuf[i] != ' ' && i < osdeditlen;j++,i++)
					osdedittmp[j] = osdeditbuf[i];
				osdedittmp[j] = 0;

				if (j > 0)
					tabc = findsymbol(osdedittmp, NULL);
			} else {
				tabc = findsymbol(osdedittmp, lastmatch->next);
				if (!tabc && lastmatch)
					tabc = findsymbol(osdedittmp, NULL);	// wrap
			}

			if (tabc) {
				for (i=osdeditcursor;i>0;i--) if (osdeditbuf[i-1] == ' ') break;
				osdeditlen = i;
				for (j=0;tabc->name[j] && osdeditlen <= EDITLENGTH;i++,j++,osdeditlen++)
					osdeditbuf[i] = tabc->name[j];
				osdeditcursor = osdeditlen;
				osdeditwinend = osdeditcursor;
				osdeditwinstart = osdeditwinend-editlinewidth;
				if (osdeditwinstart<0) {
					osdeditwinstart=0;
					osdeditwinend = editlinewidth;
				}

				lastmatch = tabc;
			}
			break;
		case OSDOP_SUBMIT:
			if (osdeditlen>0) {
				osdeditbuf[osdeditlen] = 0;
				Bmemmove(osdhistorybuf[1], osdhistorybuf[0], (HISTORYDEPTH-1)*(EDITLENGTH+1));
				Bmemmove(osdhistorybuf[0], osdeditbuf, EDITLENGTH+1);
				if (osdhistorysize < HISTORYDEPTH) osdhistorysize++;
				if (osdexeccount == HISTORYDEPTH)
					OSD_Printf("Command Buffer Warning: Failed queueing command "
							"for execution. Buffer full.\n");
				else
					osdexeccount++;
				osdhistorypos=-1;
			}

			osdeditlen=0;
			osdeditcursor=0;
			osdeditwinstart=0;
			osdeditwinend=editlinewidth;
			break;
		case OSDOP_HISTORY_UP:
			if (osdhistorypos < osdhistorysize-1) {
				osdhistorypos++;
				memcpy(osdeditbuf, osdhistorybuf[osdhistorypos], EDITLENGTH+1);
				osdeditlen = osdeditcursor = 0;
				while (osdeditbuf[osdeditcursor]) {
					osdeditlen++;
					osdeditcursor++;
				}
				if (osdeditcursor<osdeditwinstart) {
					osdeditwinend = osdeditcursor;
					osdeditwinstart = osdeditwinend-editlinewidth;

					if (osdeditwinstart<0) {
						osdeditwinend-=osdeditwinstart;
						osdeditwinstart=0;
					}
				} else if (osdeditcursor>=osdeditwinend) {
					osdeditwinstart+=(osdeditcursor-osdeditwinend);
					osdeditwinend+=(osdeditcursor-osdeditwinend);
				}
			}
			break;
		case OSDOP_HISTORY_DOWN:
			if (osdhistorypos >= 0) {
				if (osdhistorypos == 0) {
					osdeditlen=0;
					osdeditcursor=0;
					osdeditwinstart=0;
					osdeditwinend=editlinewidth;
					osdhistorypos = -1;
				} else {
					osdhistorypos--;
					memcpy(osdeditbuf, osdhistorybuf[osdhistorypos], EDITLENGTH+1);
					osdeditlen = osdeditcursor = 0;
					while (osdeditbuf[osdeditcursor]) {
						osdeditlen++;
						osdeditcursor++;
					}
					if (osdeditcursor<osdeditwinstart) {
						osdeditwinend = osdeditcursor;
						osdeditwinstart = osdeditwinend-editlinewidth;

						if (osdeditwinstart<0) {
							osdeditwinend-=osdeditwinstart;
							osdeditwinstart=0;
						}
					} else if (osdeditcursor>=osdeditwinend) {
						osdeditwinstart+=(osdeditcursor-osdeditwinend);
						osdeditwinend+=(osdeditcursor-osdeditwinend);
					}
				}
			}
			break;
		case OSDOP_SCROLL_TOP:
			osdhead = osdlines-1;
			break;
		case OSDOP_SCROLL_BOTTOM:
			osdhead = 0;
			break;
		case OSDOP_PAGE_UP:
			if (osdhead < osdlines-1)
				osdhead++;
			break;
		case OSDOP_PAGE_DOWN:
			if (osdhead > 0)
				osdhead--;
			break;
	}
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edi, %eax
leaq 0x2be8e(%rip), %rcx     # 0x77bbc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x5ac5cf(%rip), %ecx    # 0x5f830c
movl %ecx, 0x5ac7cd(%rip)    # 0x5f8510
movl %ecx, 0x58f9f(%rip)     # 0xa4ce8
movl 0x58f8d(%rip), %eax     # 0xa4cdc
addl $-0x4, %eax
subl %eax, %ecx
movl %ecx, 0x5ac5ae(%rip)    # 0x5f8308
jns 0x4c369
movl $0x0, 0x5ac59e(%rip)    # 0x5f8308
jmp 0x4c363
movl 0x58f0b(%rip), %eax     # 0xa4c80
jmp 0x4c23a
movslq 0x58f7f(%rip), %rax     # 0xa4d00
movl 0x5ae999(%rip), %ecx    # 0x5fa720
decl %ecx
cmpl %ecx, %eax
jge 0x4c369
incq %rax
movl %eax, 0x58f66(%rip)     # 0xa4d00
shlq $0x9, %rax
leaq 0x5ac77b(%rip), %rsi    # 0x5f8520
addq %rax, %rsi
leaq 0x5ac561(%rip), %rbx    # 0x5f8310
movl $0x200, %edx            # imm = 0x200
movq %rbx, %rdi
callq 0x60c0
xorl %eax, %eax
movl %eax, 0x5ac74c(%rip)    # 0x5f8510
movl %eax, 0x5ac542(%rip)    # 0x5f830c
cmpb $0x0, 0x5ac53f(%rip)    # 0x5f8310
je 0x4bedf
xorl %eax, %eax
cmpb $0x0, 0x1(%rax,%rbx)
leaq 0x1(%rax), %rax
jne 0x4bdd9
jmp 0x4bed3
movl 0x5ac721(%rip), %eax    # 0x5f8510
cmpl 0x5ac517(%rip), %eax    # 0x5f830c
jge 0x4c249
incl %eax
movl %eax, 0x5ac70d(%rip)    # 0x5f8510
jmp 0x4c249
movq 0x5ac4e1(%rip), %rax    # 0x5f82f0
testq %rax, %rax
je 0x4c285
movq 0x8(%rax), %rdi
callq 0x4d01d
testq %rax, %rax
jne 0x4c3fe
jmp 0x4c3ee
movl 0x5ac6db(%rip), %eax    # 0x5f8510
movl %eax, 0x5ac4d1(%rip)    # 0x5f830c
jmp 0x4c369
movl 0x5ac6ca(%rip), %eax    # 0x5f8510
testl %eax, %eax
jle 0x4be52
decl %eax
movl %eax, 0x5ac6be(%rip)    # 0x5f8510
movl %eax, %ecx
subl 0x5ac4ae(%rip), %ecx    # 0x5f8308
jge 0x4c369
addl %ecx, 0x58e82(%rip)     # 0xa4ce8
movl %eax, 0x5ac49c(%rip)    # 0x5f8308
jmp 0x4c369
movl 0x58e89(%rip), %eax     # 0xa4d00
testl %eax, %eax
js 0x4c369
je 0x4c36e
decl %eax
movl %eax, 0x58e73(%rip)     # 0xa4d00
shlq $0x9, %rax
leaq 0x5ac688(%rip), %rsi    # 0x5f8520
addq %rax, %rsi
leaq 0x5ac46e(%rip), %rbx    # 0x5f8310
movl $0x200, %edx            # imm = 0x200
movq %rbx, %rdi
callq 0x60c0
xorl %eax, %eax
movl %eax, 0x5ac659(%rip)    # 0x5f8510
movl %eax, 0x5ac44f(%rip)    # 0x5f830c
cmpb $0x0, 0x5ac44c(%rip)    # 0x5f8310
je 0x4bedf
xorl %eax, %eax
cmpb $0x0, 0x1(%rax,%rbx)
leaq 0x1(%rax), %rax
jne 0x4bec8
movl %eax, 0x5ac433(%rip)    # 0x5f830c
movl %eax, 0x5ac631(%rip)    # 0x5f8510
movl 0x5ac423(%rip), %ecx    # 0x5f8308
cmpl %ecx, %eax
jge 0x4c262
movl %eax, 0x58df5(%rip)     # 0xa4ce8
movl 0x58de3(%rip), %ecx     # 0xa4cdc
addl $-0x4, %ecx
subl %ecx, %eax
movl %eax, 0x5ac404(%rip)    # 0x5f8308
jns 0x4c369
movl %ecx, 0x58dd8(%rip)     # 0xa4ce8
movl $0x0, 0x5ac3ee(%rip)    # 0x5f8308
jmp 0x4c369
movslq 0x5ac5ea(%rip), %rax    # 0x5f8510
testq %rax, %rax
jle 0x4bf80
leaq 0x5ac3de(%rip), %rcx    # 0x5f8310
cmpb $0x20, -0x1(%rax,%rcx)
jne 0x4bf57
movq %rax, %rdx
cmpq $0x1, %rax
jbe 0x4bf4d
leaq -0x1(%rdx), %rax
cmpb $0x20, -0x2(%rdx,%rcx)
je 0x4bf39
decl %edx
movl %edx, 0x5ac5bb(%rip)    # 0x5f8510
movl %edx, %eax
testl %eax, %eax
jle 0x4bf80
movl %eax, %edx
cmpb $0x20, -0x1(%rdx,%rcx)
je 0x4bf80
movq %rdx, %rax
cmpq $0x1, %rdx
jbe 0x4bf78
leaq -0x1(%rax), %rdx
cmpb $0x20, -0x2(%rax,%rcx)
jne 0x4bf64
decl %eax
movl %eax, 0x5ac590(%rip)    # 0x5f8510
movl %eax, %ecx
subl 0x5ac380(%rip), %ecx    # 0x5f8308
jge 0x4c369
addl %ecx, 0x58d54(%rip)     # 0xa4ce8
movl %eax, 0x5ac36e(%rip)    # 0x5f8308
jmp 0x4c369
movslq 0x5ac56a(%rip), %rax    # 0x5f8510
movl 0x5ac360(%rip), %ebx    # 0x5f830c
cmpl %ebx, %eax
sete %cl
testl %ebx, %ebx
sete %dl
orb %cl, %dl
jne 0x4c369
cmpl %ebx, %eax
jge 0x4bfe0
leaq 0x5ac347(%rip), %rcx    # 0x5f8310
leaq (%rcx,%rax), %rdi
leaq (%rax,%rcx), %rsi
incq %rsi
notl %eax
addl %ebx, %eax
movslq %eax, %rdx
callq 0x61a0
decl %ebx
movl %ebx, 0x5ac324(%rip)    # 0x5f830c
jmp 0x4c369
movl $0x0, 0x5ac30d(%rip)    # 0x5f8304
jmp 0x4c369
movl 0x5ac50e(%rip), %ecx    # 0x5f8510
movl 0x5ac304(%rip), %eax    # 0x5f830c
cmpl %eax, %ecx
jge 0x4c247
movslq %ecx, %rsi
leaq 0x5ac2f6(%rip), %rdx    # 0x5f8310
cmpb $0x20, (%rsi,%rdx)
je 0x4c043
addq %rdx, %rsi
incq %rsi
incl %ecx
cmpl %ecx, %eax
je 0x4c4b8
incl %ecx
cmpb $0x20, (%rsi)
leaq 0x1(%rsi), %rsi
jne 0x4c028
decl %ecx
movl %ecx, 0x5ac4cd(%rip)    # 0x5f8510
cmpl %eax, %ecx
jge 0x4c247
movslq %ecx, %rsi
cmpb $0x20, (%rsi,%rdx)
jne 0x4c247
addq %rdx, %rsi
incq %rsi
incl %ecx
movl %ecx, %edx
cmpl %ecx, %eax
je 0x4c076
cmpb $0x20, (%rsi)
leaq 0x1(%rsi), %rsi
leal 0x1(%rdx), %ecx
je 0x4c060
decl %ecx
movl %ecx, %eax
movl %edx, 0x5ac494(%rip)    # 0x5f8510
jmp 0x4c249
movslq 0x5ac284(%rip), %rax    # 0x5f830c
testq %rax, %rax
jle 0x4c2c8
leaq 0x5ac278(%rip), %rbx    # 0x5f8310
movb $0x0, (%rax,%rbx)
leaq 0x5ac67d(%rip), %rdi    # 0x5f8720
leaq 0x5ac476(%rip), %r14    # 0x5f8520
movl $0x1e00, %edx           # imm = 0x1E00
movq %r14, %rsi
callq 0x61a0
movl $0x200, %edx            # imm = 0x200
movq %r14, %rdi
movq %rbx, %rsi
callq 0x60c0
movl 0x5ae653(%rip), %eax    # 0x5fa720
cmpl $0xf, %eax
jg 0x4c0da
incl %eax
movl %eax, 0x5ae646(%rip)    # 0x5fa720
movl 0x5ac434(%rip), %eax    # 0x5f8514
cmpl $0x10, %eax
jne 0x4c2b6
leaq 0x2bead(%rip), %rdi     # 0x77f9d
xorl %eax, %eax
callq 0x4cb1d
jmp 0x4c2be
movslq 0x5ac40d(%rip), %rbx    # 0x5f8510
testq %rbx, %rbx
setne %al
movl 0x5ac1fd(%rip), %ebp    # 0x5f830c
testl %ebp, %ebp
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x4c369
cmpl $0x0, 0x5ac1d2(%rip)    # 0x5f82f8
jne 0x4c151
cmpl %ebx, %ebp
jle 0x4c149
leaq 0x5ac1dd(%rip), %rsi    # 0x5f8310
leaq (%rbx,%rsi), %rdi
decq %rdi
addq %rbx, %rsi
movl %ebp, %eax
subl %ebx, %eax
movslq %eax, %rdx
callq 0x61a0
decl %ebp
movl %ebp, 0x5ac1bb(%rip)    # 0x5f830c
leal -0x1(%rbx), %eax
movl %eax, 0x5ac3b6(%rip)    # 0x5f8510
movl 0x5ac1a8(%rip), %eax    # 0x5f8308
cmpl %eax, %ebx
jg 0x4c369
decl %eax
movl %eax, 0x5ac198(%rip)    # 0x5f8308
decl 0x58b72(%rip)           # 0xa4ce8
jmp 0x4c369
movl 0x5ac183(%rip), %eax    # 0x5f8304
movl 0x58af9(%rip), %ecx     # 0xa4c80
decl %ecx
cmpl %ecx, %eax
jge 0x4c369
incl %eax
jmp 0x4c23c
movslq 0x5ac371(%rip), %rax    # 0x5f8510
testq %rax, %rax
setg %cl
movl 0x5ac161(%rip), %ebx    # 0x5f830c
testl %ebx, %ebx
setg %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x4c369
leal 0x1(%rax), %r14d
leaq 0x5ac14a(%rip), %rsi    # 0x5f8310
movq %rax, %rcx
testq %rcx, %rcx
jle 0x4c2d2
decl %r14d
cmpb $0x20, -0x1(%rcx,%rsi)
leaq -0x1(%rcx), %rcx
je 0x4c1c9
jmp 0x4c2d5
movslq 0x5ac324(%rip), %rax    # 0x5f8510
testq %rax, %rax
setg %cl
movl 0x5ac114(%rip), %ebx    # 0x5f830c
testl %ebx, %ebx
setne %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x4c369
cmpl %eax, %ebx
jle 0x4c344
leaq 0x5ac0f9(%rip), %rdi    # 0x5f8310
movq %rax, %rsi
addq %rdi, %rsi
subl %eax, %ebx
movslq %ebx, %rdx
callq 0x61a0
jmp 0x4c346
movl 0x5ac0d2(%rip), %eax    # 0x5f8304
testl %eax, %eax
jle 0x4c369
decl %eax
movl %eax, 0x5ac0c2(%rip)    # 0x5f8304
jmp 0x4c369
movl %ecx, %eax
movl %eax, %ecx
subl 0x58a97(%rip), %ecx     # 0xa4ce8
jl 0x4c369
addl %ecx, 0x5ac0ab(%rip)    # 0x5f8308
jmp 0x4c363
movl 0x58a80(%rip), %edx     # 0xa4ce8
cmpl %edx, %eax
jl 0x4c369
addl %eax, %ecx
subl %edx, %ecx
movl %ecx, 0x5ac08e(%rip)    # 0x5f8308
movl %eax, 0x58a68(%rip)     # 0xa4ce8
jmp 0x4c369
movl 0x5ac285(%rip), %edx    # 0x5f8510
movl %edx, %ecx
sarl $0x1f, %ecx
andl %edx, %ecx
leal 0x1(%rdx), %esi
leaq 0x5ac074(%rip), %rax    # 0x5f8310
testl %edx, %edx
jle 0x4c39d
decl %esi
cmpb $0x20, -0x1(%rdx,%rax)
leaq -0x1(%rdx), %rdx
jne 0x4c29c
jmp 0x4c39f
incl %eax
movl %eax, 0x5ac256(%rip)    # 0x5f8514
movl $0xffffffff, 0x58a38(%rip) # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, 0x5ac03c(%rip)    # 0x5f830c
jmp 0x4c34e
xorl %r14d, %r14d
movl %r14d, %edx
movl %r14d, %ecx
sarl $0x1f, %ecx
andl %r14d, %ecx
incl %r14d
testl %edx, %edx
jle 0x4c2f8
decl %r14d
cmpb $0x20, -0x1(%rdx,%rsi)
leaq -0x1(%rdx), %rdx
jne 0x4c2e4
jmp 0x4c2fb
movl %ecx, %r14d
cmpl %eax, %ebx
jle 0x4c314
movl %r14d, %edi
addq %rsi, %rdi
addq %rax, %rsi
subl %eax, %ebx
movslq %ebx, %rdx
callq 0x61a0
jmp 0x4c316
subl %eax, %ebx
addl %r14d, %ebx
movl %ebx, 0x5abfed(%rip)    # 0x5f830c
movl %r14d, 0x5ac1ea(%rip)   # 0x5f8510
cmpl 0x5abfdb(%rip), %r14d   # 0x5f8308
jge 0x4c369
movl %r14d, 0x5abfd2(%rip)   # 0x5f8308
movl 0x589a0(%rip), %eax     # 0xa4cdc
addl %r14d, %eax
addl $-0x4, %eax
jmp 0x4c363
subl %eax, %ebx
movl %ebx, 0x5abfc0(%rip)    # 0x5f830c
xorl %eax, %eax
movl %eax, 0x5ac1bc(%rip)    # 0x5f8510
movl %eax, 0x5abfae(%rip)    # 0x5f8308
movl 0x5897c(%rip), %eax     # 0xa4cdc
addl $-0x4, %eax
movl %eax, 0x5897f(%rip)     # 0xa4ce8
popq %rbx
popq %r14
popq %rbp
retq
xorl %eax, %eax
movl %eax, 0x5abf96(%rip)    # 0x5f830c
movl %eax, 0x5ac194(%rip)    # 0x5f8510
movl %eax, 0x5abf86(%rip)    # 0x5f8308
movl 0x58954(%rip), %eax     # 0xa4cdc
addl $-0x4, %eax
movl %eax, 0x58957(%rip)     # 0xa4ce8
movl $0xffffffff, 0x58965(%rip) # imm = 0xFFFFFFFF
jmp 0x4c369
movl %ecx, %esi
movl 0x5abf67(%rip), %edi    # 0x5f830c
movslq %esi, %rcx
movb (%rcx,%rax), %dl
cmpb $0x20, %dl
setne %sil
cmpl %edi, %ecx
setl %r8b
testb %r8b, %sil
je 0x4c4ac
movslq %edi, %rsi
incq %rcx
xorl %edi, %edi
leaq 0x5ae150(%rip), %r8     # 0x5fa520
movb %dl, (%rdi,%r8)
leaq (%rcx,%rdi), %r9
incq %rdi
movb (%rax,%r9), %dl
cmpb $0x20, %dl
je 0x4c3e9
cmpq %rsi, %r9
jl 0x4c3d0
movb $0x0, (%rdi,%r8)
xorl %edi, %edi
callq 0x4d01d
testq %rax, %rax
je 0x4c369
movl 0x5ac10c(%rip), %edi    # 0x5f8510
movl %edi, %esi
sarl $0x1f, %esi
andl %edi, %esi
leal 0x1(%rdi), %ecx
leaq 0x5abefb(%rip), %rdx    # 0x5f8310
testl %edi, %edi
jle 0x4c428
decl %ecx
cmpb $0x20, -0x1(%rdi,%rdx)
leaq -0x1(%rdi), %rdi
jne 0x4c415
jmp 0x4c42a
movl %esi, %ecx
movq (%rax), %rsi
movb (%rsi), %dil
testb %dil, %dil
sete %r8b
cmpl $0x200, %ecx            # imm = 0x200
setge %r9b
orb %r8b, %r9b
jne 0x4c46b
movslq %ecx, %r8
incq %rsi
movb %dil, (%r8,%rdx)
leaq 0x1(%r8), %rcx
movb (%rsi), %dil
testb %dil, %dil
je 0x4c46b
incq %rsi
cmpl $0x1ff, %r8d            # imm = 0x1FF
movq %rcx, %r8
jl 0x4c44c
movl %ecx, 0x5abe9b(%rip)    # 0x5f830c
movl %ecx, 0x5ac099(%rip)    # 0x5f8510
movl %ecx, 0x5886b(%rip)     # 0xa4ce8
movl 0x58859(%rip), %edx     # 0xa4cdc
addl $-0x4, %edx
subl %edx, %ecx
movl %ecx, 0x5abe7a(%rip)    # 0x5f8308
jns 0x4c4a0
movl $0x0, 0x5abe6e(%rip)    # 0x5f8308
movl %edx, 0x58848(%rip)     # 0xa4ce8
movq %rax, 0x5abe49(%rip)    # 0x5f82f0
jmp 0x4c369
movb $0x0, 0x5ae06d(%rip)    # 0x5fa520
jmp 0x4c369
movl %ecx, 0x5ac052(%rip)    # 0x5f8510
jmp 0x4c249