// File: /workspace/github_c_makefile_star2_O0/coyove[P]chann/./lib/unqlite/unqlite.c
// Function: GenStateCompileString
static sxi32 GenStateCompileString(jx9_gen_state *pGen)
{
	SyString *pStr = &pGen->pIn->sData; /* Raw token value */
	const char *zIn, *zCur, *zEnd;
	jx9_value *pObj = 0;
	sxi32 iCons;	
	sxi32 rc;
	/* Delimit the string */
	zIn  = pStr->zString;
	zEnd = &zIn[pStr->nByte];
	if( zIn >= zEnd ){
		/* Empty string, load NULL */
		jx9VmEmitInstr(pGen->pVm, JX9_OP_LOADC, 0, 0, 0, 0);
		return SXRET_OK;
	}
	zCur = 0;
	/* Compile the node */
	iCons = 0;
	for(;;){
		zCur = zIn;
		while( zIn < zEnd && zIn[0] != '\\'  ){
			if(zIn[0] == '$' && &zIn[1] < zEnd &&
				(((unsigned char)zIn[1] >= 0xc0 || SyisAlpha(zIn[1]) || zIn[1] == '_')) ){
					break;
			}
			zIn++;
		}
		if( zIn > zCur ){
			if( pObj == 0 ){
				pObj = GenStateNewStrObj(&(*pGen), &iCons);
				if( pObj == 0 ){
					return SXERR_ABORT;
				}
			}
			jx9MemObjStringAppend(pObj, zCur, (sxu32)(zIn-zCur));
		}
		if( zIn >= zEnd ){
			break;
		}
		if( zIn[0] == '\\' ){
			const char *zPtr = 0;
			sxu32 n;
			zIn++;
			if( zIn >= zEnd ){
				break;
			}
			if( pObj == 0 ){
				pObj = GenStateNewStrObj(&(*pGen), &iCons);
				if( pObj == 0 ){
					return SXERR_ABORT;
				}
			}
			n = sizeof(char); /* size of conversion */
			switch( zIn[0] ){
			case '$':
				/* Dollar sign */
				jx9MemObjStringAppend(pObj, "$", sizeof(char));
				break;
			case '\\':
				/* A literal backslash */
				jx9MemObjStringAppend(pObj, "\\", sizeof(char));
				break;
			case 'a':
				/* The "alert" character (BEL)[ctrl+g] ASCII code 7 */
				jx9MemObjStringAppend(pObj, "\a", sizeof(char));
				break;
			case 'b':
				/* Backspace (BS)[ctrl+h] ASCII code 8 */
				jx9MemObjStringAppend(pObj, "\b", sizeof(char));
				break;
			case 'f':
				/* Form-feed (FF)[ctrl+l] ASCII code 12 */
				jx9MemObjStringAppend(pObj, "\f", sizeof(char));
				break;
			case 'n':
				/* Line feed(new line) (LF)[ctrl+j] ASCII code 10 */
				jx9MemObjStringAppend(pObj, "\n", sizeof(char));
				break;
			case 'r':
				/* Carriage return (CR)[ctrl+m] ASCII code 13 */
				jx9MemObjStringAppend(pObj, "\r", sizeof(char));
				break;
			case 't':
				/* Horizontal tab (HT)[ctrl+i] ASCII code 9 */
				jx9MemObjStringAppend(pObj, "\t", sizeof(char));
				break;
			case 'v':
				/* Vertical tab(VT)[ctrl+k] ASCII code 11 */
				jx9MemObjStringAppend(pObj, "\v", sizeof(char));
				break;
			case '\'':
				/* Single quote */
				jx9MemObjStringAppend(pObj, "'", sizeof(char));
				break;
			case '"':
				/* Double quote */
				jx9MemObjStringAppend(pObj, "\"", sizeof(char));
				break;
			case '0':
				/* NUL byte */
				jx9MemObjStringAppend(pObj, "\0", sizeof(char));
				break;
			case 'x':
				if((unsigned char)zIn[1] < 0xc0 && SyisHex(zIn[1]) ){
					int c;
					/* Hex digit */
					c = SyHexToint(zIn[1]) << 4;
					if( &zIn[2] < zEnd ){
						c +=  SyHexToint(zIn[2]);
					}
					/* Output char */
					jx9MemObjStringAppend(pObj, (const char *)&c, sizeof(char));
					n += sizeof(char) * 2;
				}else{
					/* Output literal character  */
					jx9MemObjStringAppend(pObj, "x", sizeof(char));
				}
				break;
			case 'o':
				if( &zIn[1] < zEnd && (unsigned char)zIn[1] < 0xc0 && SyisDigit(zIn[1]) && (zIn[1] - '0') < 8 ){
					/* Octal digit stream */
					int c;
					c = 0;
					zIn++;
					for( zPtr = zIn ; zPtr < &zIn[3*sizeof(char)] ; zPtr++ ){
						if( zPtr >= zEnd || (unsigned char)zPtr[0] >= 0xc0 || !SyisDigit(zPtr[0]) || (zPtr[0] - '0') > 7 ){
							break;
						}
						c = c * 8 + (zPtr[0] - '0');
					}
					if ( c > 0 ){
						jx9MemObjStringAppend(pObj, (const char *)&c, sizeof(char));
					}
					n = (sxu32)(zPtr-zIn);
				}else{
					/* Output literal character  */
					jx9MemObjStringAppend(pObj, "o", sizeof(char));
				}
				break;
			default:
				/* Output without a slash */
				jx9MemObjStringAppend(pObj, zIn, sizeof(char));
				break;
			}
			/* Advance the stream cursor */
			zIn += n;
			continue;
		}
		if( zIn[0] == '{' ){
			/* Curly syntax */
			const char *zExpr;
			sxi32 iNest = 1;
			zIn++;
			zExpr = zIn;
			/* Synchronize with the next closing curly braces */
			while( zIn < zEnd ){
				if( zIn[0] == '{' ){
					/* Increment nesting level */
					iNest++;
				}else if(zIn[0] == '}' ){
					/* Decrement nesting level */
					iNest--;
					if( iNest <= 0 ){
						break;
					}
				}
				zIn++;
			}
			/* Process the expression */
			rc = GenStateProcessStringExpression(&(*pGen),zExpr,zIn);
			if( rc == SXERR_ABORT ){
				return SXERR_ABORT;
			}
			if( rc != SXERR_EMPTY ){
				++iCons;
			}
			if( zIn < zEnd ){
				/* Jump the trailing curly */
				zIn++;
			}
		}else{
			/* Simple syntax */
			const char *zExpr = zIn;
			/* Assemble variable name */
			for(;;){
				/* Jump leading dollars */
				while( zIn < zEnd && zIn[0] == '$' ){
					zIn++;
				}
				for(;;){
					while( zIn < zEnd && (unsigned char)zIn[0] < 0xc0 && (SyisAlphaNum(zIn[0]) || zIn[0] == '_' ) ){
						zIn++;
					}
					if((unsigned char)zIn[0] >= 0xc0 ){
						/* UTF-8 stream */
						zIn++;
						while( zIn < zEnd && (((unsigned char)zIn[0] & 0xc0) == 0x80) ){
							zIn++;
						}
						continue;
					}
					break;
				}
				if( zIn >= zEnd ){
					break;
				}
				if( zIn[0] == '[' ){
					sxi32 iSquare = 1;
					zIn++;
					while( zIn < zEnd ){
						if( zIn[0] == '[' ){
							iSquare++;
						}else if (zIn[0] == ']' ){
							iSquare--;
							if( iSquare <= 0 ){
								break;
							}
						}
						zIn++;
					}
					if( zIn < zEnd ){
						zIn++;
					}
					break;
				}else if( zIn[0] == '.' ){
					/* Member access operator '.' */
					zIn++;
				}else{
					break;
				}
			}
			/* Process the expression */
			rc = GenStateProcessStringExpression(&(*pGen),zExpr, zIn);
			if( rc == SXERR_ABORT ){
				return SXERR_ABORT;
			}
			if( rc != SXERR_EMPTY ){
				++iCons;
			}
		}
		/* Invalidate the previously used constant */
		pObj = 0;
	}/*for(;;)*/
	if( iCons > 1 ){
		/* Concatenate all compiled constants */
		jx9VmEmitInstr(pGen->pVm, JX9_OP_CAT, iCons, 0, 0, 0);
	}
	/* Node successfully compiled */
	return SXRET_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x158(%rax), %rax
movq %rax, -0x18(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x8(%rcx), %ecx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
jb 0x89276
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movl $0x4, %esi
xorl %ecx, %ecx
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %edx
movq %r9, %r8
callq 0x7e8f0
movl $0x0, -0x4(%rbp)
jmp 0x89a72
movq $0x0, -0x28(%rbp)
movl $0x0, -0x3c(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rcx
xorl %eax, %eax
cmpq -0x30(%rbp), %rcx
movb %al, -0x75(%rbp)
jae 0x892ac
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5c, %eax
setne %al
movb %al, -0x75(%rbp)
movb -0x75(%rbp), %al
testb $0x1, %al
jne 0x892b5
jmp 0x8931f
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x24, %eax
jne 0x8930e
movq -0x20(%rbp), %rax
addq $0x1, %rax
cmpq -0x30(%rbp), %rax
jae 0x8930e
movq -0x20(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0xc0, %eax
jge 0x8930c
callq 0xd1f0
movq (%rax), %rax
movq -0x20(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
jne 0x8930c
movq -0x20(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x5f, %eax
jne 0x8930e
jmp 0x8931f
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x8928d
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jbe 0x89370
cmpq $0x0, -0x38(%rbp)
jne 0x89356
movq -0x10(%rbp), %rdi
leaq -0x3c(%rbp), %rsi
callq 0x89a80
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x89354
movl $0xfffffff6, -0x4(%rbp) # imm = 0xFFFFFFF6
jmp 0x89a72
jmp 0x89356
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
subq %rcx, %rax
movl %eax, %edx
callq 0x6f9b0
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
jb 0x8937f
jmp 0x89a47
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5c, %eax
jne 0x89743
movq $0x0, -0x48(%rbp)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
jb 0x893b2
jmp 0x89a47
cmpq $0x0, -0x38(%rbp)
jne 0x893df
movq -0x10(%rbp), %rdi
leaq -0x3c(%rbp), %rsi
callq 0x89a80
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x893dd
movl $0xfffffff6, -0x4(%rbp) # imm = 0xFFFFFFF6
jmp 0x89a72
jmp 0x893df
movl $0x1, -0x4c(%rbp)
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
addl $-0x22, %eax
movl %eax, %ecx
movq %rcx, -0x80(%rbp)
subl $0x56, %eax
ja 0x8971c
movq -0x80(%rbp), %rax
leaq 0x3776e(%rip), %rcx     # 0xc0b78
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x38(%rbp), %rdi
leaq 0x3e0d9(%rip), %rsi     # 0xc74f7
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x35fc1(%rip), %rsi     # 0xbf3f9
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x3af0f(%rip), %rsi     # 0xc4361
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x3aef7(%rip), %rsi     # 0xc4363
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x3bfe3(%rip), %rsi     # 0xc5469
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x3d739(%rip), %rsi     # 0xc6bd9
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x3aeab(%rip), %rsi     # 0xc4365
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x35ec8(%rip), %rsi     # 0xbf39c
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x3ae79(%rip), %rsi     # 0xc4367
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x3b31f(%rip), %rsi     # 0xc4827
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x36712(%rip), %rsi     # 0xbfc34
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
leaq 0x37c98(%rip), %rsi     # 0xc11d4
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x20(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0xc0, %eax
jge 0x895cd
callq 0xd1f0
movq (%rax), %rax
movq -0x20(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x1000, %eax           # imm = 0x1000
cmpl $0x0, %eax
je 0x895cd
movq -0x20(%rbp), %rax
movsbl 0x1(%rax), %edi
callq 0x72070
shll $0x4, %eax
movl %eax, -0x50(%rbp)
movq -0x20(%rbp), %rax
addq $0x2, %rax
cmpq -0x30(%rbp), %rax
jae 0x895af
movq -0x20(%rbp), %rax
movsbl 0x2(%rax), %edi
callq 0x72070
addl -0x50(%rbp), %eax
movl %eax, -0x50(%rbp)
movq -0x38(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movl $0x1, %edx
callq 0x6f9b0
movl -0x4c(%rbp), %eax
addq $0x2, %rax
movl %eax, -0x4c(%rbp)
jmp 0x895e2
movq -0x38(%rbp), %rdi
leaq 0x38f8a(%rip), %rsi     # 0xc2562
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x20(%rbp), %rax
addq $0x1, %rax
cmpq -0x30(%rbp), %rax
jae 0x89705
movq -0x20(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0xc0, %eax
jge 0x89705
callq 0xd1f0
movq (%rax), %rax
movq -0x20(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x89705
movq -0x20(%rbp), %rax
movsbl 0x1(%rax), %eax
subl $0x30, %eax
cmpl $0x8, %eax
jge 0x89705
movl $0x0, -0x54(%rbp)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq -0x20(%rbp), %rcx
addq $0x3, %rcx
cmpq %rcx, %rax
jae 0x896dd
movq -0x48(%rbp), %rax
cmpq -0x30(%rbp), %rax
jae 0x896b8
movq -0x48(%rbp), %rax
movzbl (%rax), %eax
cmpl $0xc0, %eax
jge 0x896b8
callq 0xd1f0
movq (%rax), %rax
movq -0x48(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x896b8
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
subl $0x30, %eax
cmpl $0x7, %eax
jle 0x896ba
jmp 0x896dd
movl -0x54(%rbp), %eax
shll $0x3, %eax
movq -0x48(%rbp), %rcx
movsbl (%rcx), %ecx
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, -0x54(%rbp)
movq -0x48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0x89660
cmpl $0x0, -0x54(%rbp)
jle 0x896f5
movq -0x38(%rbp), %rdi
leaq -0x54(%rbp), %rsi
movl $0x1, %edx
callq 0x6f9b0
movq -0x48(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
movl %eax, -0x4c(%rbp)
jmp 0x8971a
movq -0x38(%rbp), %rdi
leaq 0x3bca7(%rip), %rsi     # 0xc53b7
movl $0x1, %edx
callq 0x6f9b0
jmp 0x8972e
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl $0x1, %edx
callq 0x6f9b0
movl -0x4c(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
jmp 0x89285
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7b, %eax
jne 0x8980e
movl $0x1, -0x64(%rbp)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
jae 0x897be
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7b, %eax
jne 0x8978f
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x897b0
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7d, %eax
jne 0x897ae
movl -0x64(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x64(%rbp)
cmpl $0x0, -0x64(%rbp)
jg 0x897ac
jmp 0x897be
jmp 0x897ae
jmp 0x897b0
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x8976e
movq -0x10(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x89b20
movl %eax, -0x40(%rbp)
cmpl $-0xa, -0x40(%rbp)
jne 0x897e4
movl $0xfffffff6, -0x4(%rbp) # imm = 0xFFFFFFF6
jmp 0x89a72
cmpl $-0x3, -0x40(%rbp)
je 0x897f3
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
jae 0x89809
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x89a3a
movq -0x20(%rbp), %rax
movq %rax, -0x70(%rbp)
jmp 0x89818
movq -0x20(%rbp), %rcx
xorl %eax, %eax
cmpq -0x30(%rbp), %rcx
movb %al, -0x81(%rbp)
jae 0x8983d
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x24, %eax
sete %al
movb %al, -0x81(%rbp)
movb -0x81(%rbp), %al
testb $0x1, %al
jne 0x89849
jmp 0x89857
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x89818
jmp 0x89859
jmp 0x8985b
movq -0x20(%rbp), %rcx
xorl %eax, %eax
cmpq -0x30(%rbp), %rcx
movb %al, -0x82(%rbp)
jae 0x898c9
movq -0x20(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0x82(%rbp)
jge 0x898c9
callq 0xd1f0
movq (%rax), %rax
movq -0x20(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %ecx
andl $0x8, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x83(%rbp)
jne 0x898bd
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5f, %eax
sete %al
movb %al, -0x83(%rbp)
movb -0x83(%rbp), %al
movb %al, -0x82(%rbp)
movb -0x82(%rbp), %al
testb $0x1, %al
jne 0x898d5
jmp 0x898e6
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x8985b
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
cmpl $0xc0, %eax
jl 0x8994b
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rcx
xorl %eax, %eax
cmpq -0x30(%rbp), %rcx
movb %al, -0x84(%rbp)
jae 0x8992c
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
andl $0xc0, %eax
cmpl $0x80, %eax
sete %al
movb %al, -0x84(%rbp)
movb -0x84(%rbp), %al
testb $0x1, %al
jne 0x89938
jmp 0x89946
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x89900
jmp 0x89859
jmp 0x8994d
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
jb 0x8995c
jmp 0x89a06
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5b, %eax
jne 0x899e3
movl $0x1, -0x74(%rbp)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
jae 0x899cb
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5b, %eax
jne 0x8999c
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x899bd
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
jne 0x899bb
movl -0x74(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x74(%rbp)
cmpl $0x0, -0x74(%rbp)
jg 0x899b9
jmp 0x899cb
jmp 0x899bb
jmp 0x899bd
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x8997b
movq -0x20(%rbp), %rax
cmpq -0x30(%rbp), %rax
jae 0x899e1
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x89a06
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x899fd
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x899ff
jmp 0x89a06
jmp 0x89a01
jmp 0x89816
movq -0x10(%rbp), %rdi
movq -0x70(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x89b20
movl %eax, -0x40(%rbp)
cmpl $-0xa, -0x40(%rbp)
jne 0x89a29
movl $0xfffffff6, -0x4(%rbp) # imm = 0xFFFFFFF6
jmp 0x89a72
cmpl $-0x3, -0x40(%rbp)
je 0x89a38
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x89a3a
movq $0x0, -0x38(%rbp)
jmp 0x89285
cmpl $0x1, -0x3c(%rbp)
jle 0x89a6b
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movl -0x3c(%rbp), %edx
movl $0xc, %esi
xorl %ecx, %ecx
xorl %eax, %eax
movl %eax, %r9d
movq %r9, %r8
callq 0x7e8f0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x90, %rsp
popq %rbp
retq
nop