// File: /workspace/github_c_makefile_star2_O0/coyove[P]chann/./lib/unqlite/unqlite.c
// Function: jx9ParseIniString
JX9_PRIVATE sxi32 jx9ParseIniString(jx9_context *pCtx, const char *zIn, sxu32 nByte, int bProcessSection)
{
	jx9_value *pCur, *pArray, *pSection, *pWorker, *pValue;
	const char *zCur, *zEnd = &zIn[nByte];
	SyHashEntry *pEntry;
	SyString sEntry;
	SyHash sHash;
	int c;
	/* Create an empty array and worker variables */
	pArray = jx9_context_new_array(pCtx);
	pWorker = jx9_context_new_scalar(pCtx);
	pValue = jx9_context_new_scalar(pCtx);
	if( pArray == 0 || pWorker == 0 || pValue == 0){
		/* Out of memory */
		jx9_context_throw_error(pCtx, JX9_CTX_ERR, "JX9 is running out of memory");
		/* Return FALSE */
		jx9_result_bool(pCtx, 0);
		return JX9_OK;
	}
	SyHashInit(&sHash, &pCtx->pVm->sAllocator, 0, 0);
	pCur = pArray;
	/* Start the parse process */
	for(;;){
		/* Ignore leading white spaces */
		while( zIn < zEnd && (unsigned char)zIn[0] < 0xc0 && SyisSpace(zIn[0])){
			zIn++;
		}
		if( zIn >= zEnd ){
			/* No more input to process */
			break;
		}
		if( zIn[0] == ';' || zIn[0] == '#' ){
			/* Comment til the end of line */
			zIn++;
			while(zIn < zEnd && zIn[0] != '\n' ){
				zIn++;
			}
			continue;
		}
		/* Reset the string cursor of the working variable */
		jx9_value_reset_string_cursor(pWorker);
		if( zIn[0] == '[' ){
			/* Section: Extract the section name */
			zIn++;
			zCur = zIn;
			while( zIn < zEnd && zIn[0] != ']' ){
				zIn++;
			}
			if( zIn > zCur && bProcessSection ){
				/* Save the section name */
				SyStringInitFromBuf(&sEntry, zCur, (int)(zIn-zCur));
				SyStringFullTrim(&sEntry);
				jx9_value_string(pWorker, sEntry.zString, (int)sEntry.nByte);
				if( sEntry.nByte > 0 ){
					/* Associate an array with the section */
					pSection = jx9_context_new_array(pCtx);
					if( pSection ){
						jx9_array_add_elem(pArray, pWorker/*Section name*/, pSection);
						pCur = pSection;
					}
				}
			}
			zIn++; /* Trailing square brackets ']' */
		}else{
			jx9_value *pOldCur;
			int is_array;
			int iLen;
			/* Properties */
			is_array = 0;
			zCur = zIn;
			iLen = 0; /* cc warning */
			pOldCur = pCur;
			while( zIn < zEnd && zIn[0] != '=' ){
				if( zIn[0] == '[' && !is_array ){
					/* Array */
					iLen = (int)(zIn-zCur);
					is_array = 1;
					if( iLen > 0 ){
						jx9_value *pvArr = 0; /* cc warning */
						/* Query the hashtable */
						SyStringInitFromBuf(&sEntry, zCur, iLen);
						SyStringFullTrim(&sEntry);
						pEntry = SyHashGet(&sHash, (const void *)sEntry.zString, sEntry.nByte);
						if( pEntry ){
							pvArr = (jx9_value *)SyHashEntryGetUserData(pEntry);
						}else{
							/* Create an empty array */
							pvArr = jx9_context_new_array(pCtx);
							if( pvArr ){
								/* Save the entry */
								SyHashInsert(&sHash, (const void *)sEntry.zString, sEntry.nByte, pvArr);
								/* Insert the entry */
								jx9_value_reset_string_cursor(pWorker);
								jx9_value_string(pWorker, sEntry.zString, (int)sEntry.nByte);
								jx9_array_add_elem(pCur, pWorker, pvArr);
								jx9_value_reset_string_cursor(pWorker);
							}
						}
						if( pvArr ){
							pCur = pvArr;
						}
					}
					while ( zIn < zEnd && zIn[0] != ']' ){
						zIn++;
					}
				}
				zIn++;
			}
			if( !is_array ){
				iLen = (int)(zIn-zCur);
			}
			/* Trim the key */
			SyStringInitFromBuf(&sEntry, zCur, iLen);
			SyStringFullTrim(&sEntry);
			if( sEntry.nByte > 0 ){
				if( !is_array ){
					/* Save the key name */
					jx9_value_string(pWorker, sEntry.zString, (int)sEntry.nByte);
				}
				/* extract key value */
				jx9_value_reset_string_cursor(pValue);
				zIn++; /* '=' */
				while( zIn < zEnd && (unsigned char)zIn[0] < 0xc0 && SyisSpace(zIn[0]) ){
					zIn++;
				}
				if( zIn < zEnd ){
					zCur = zIn;
					c = zIn[0];
					if( c == '"' || c == '\'' ){
						zIn++;
						/* Delimit the value */
						while( zIn < zEnd ){
							if ( zIn[0] == c && zIn[-1] != '\\' ){
								break;
							}
							zIn++;
						}
						if( zIn < zEnd ){
							zIn++;
						}
					}else{
						while( zIn < zEnd ){
							if( zIn[0] == '\n' ){
								if( zIn[-1] != '\\' ){
									break;
								}
							}else if( zIn[0] == ';' || zIn[0] == '#' ){
								/* Inline comments */
								break;
							}
							zIn++;
						}
					}
					/* Trim the value */
					SyStringInitFromBuf(&sEntry, zCur, (int)(zIn-zCur));
					SyStringFullTrim(&sEntry);
					if( c == '"' || c == '\'' ){
						SyStringTrimLeadingChar(&sEntry, c);
						SyStringTrimTrailingChar(&sEntry, c);
					}
					if( sEntry.nByte > 0 ){
						jx9_value_string(pValue, sEntry.zString, (int)sEntry.nByte);
					}
					/* Insert the key and it's value */
					jx9_array_add_elem(pCur, is_array ? 0 /*Automatic index assign */: pWorker, pValue);
				}
			}else{
				while( zIn < zEnd && (unsigned char)zIn[0] < 0xc0 && ( SyisSpace(zIn[0]) || zIn[0] == '=' ) ){
					zIn++;
				}
			}
			pCur = pOldCur;
		}
	}
	SyHashRelease(&sHash);
	/* Return the parse of the INI string */
	jx9_result_value(pCtx, pArray);
	return SXRET_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movl %ecx, -0x20(%rbp)
movq -0x18(%rbp), %rax
movl -0x1c(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rdi
callq 0x58570
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
callq 0x58510
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
callq 0x58510
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x9c863
cmpq $0x0, -0x40(%rbp)
je 0x9c863
cmpq $0x0, -0x48(%rbp)
jne 0x9c88f
movq -0x10(%rbp), %rdi
movl $0x1, %esi
leaq 0x27f3e(%rip), %rdx     # 0xc47b1
callq 0x580b0
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x57070
movl $0x0, -0x4(%rbp)
jmp 0x9d36d
movq -0x10(%rbp), %rax
movq 0x60(%rax), %rsi
leaq -0xb0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x79070
movq -0x30(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x9c8b4
movq -0x18(%rbp), %rcx
xorl %eax, %eax
cmpq -0x58(%rbp), %rcx
movb %al, -0xd1(%rbp)
jae 0x9c904
movq -0x18(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xd1(%rbp)
jge 0x9c904
callq 0xd1f0
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
movb %al, -0xd1(%rbp)
movb -0xd1(%rbp), %al
testb $0x1, %al
jne 0x9c910
jmp 0x9c91e
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9c8b4
movq -0x18(%rbp), %rax
cmpq -0x58(%rbp), %rax
jb 0x9c92d
jmp 0x9d34d
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
je 0x9c945
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x9c995
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
xorl %eax, %eax
cmpq -0x58(%rbp), %rcx
movb %al, -0xd2(%rbp)
jae 0x9c976
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0xd2(%rbp)
movb -0xd2(%rbp), %al
testb $0x1, %al
jne 0x9c982
jmp 0x9c990
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9c951
jmp 0x9c8b2
movq -0x40(%rbp), %rdi
callq 0x56b80
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5b, %eax
jne 0x9cb6d
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rcx
xorl %eax, %eax
cmpq -0x58(%rbp), %rcx
movb %al, -0xd3(%rbp)
jae 0x9c9e7
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
setne %al
movb %al, -0xd3(%rbp)
movb -0xd3(%rbp), %al
testb $0x1, %al
jne 0x9c9f3
jmp 0x9ca01
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9c9c2
movq -0x18(%rbp), %rax
cmpq -0x50(%rbp), %rax
jbe 0x9cb5c
cmpl $0x0, -0x20(%rbp)
je 0x9cb5c
movq -0x50(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rax
movq -0x50(%rbp), %rcx
subq %rcx, %rax
movl %eax, -0x68(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x68(%rbp)
movb %al, -0xd4(%rbp)
jbe 0x9ca7b
movq -0x70(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xd4(%rbp)
jge 0x9ca7b
callq 0xd1f0
movq (%rax), %rax
movq -0x70(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
movb %al, -0xd4(%rbp)
movb -0xd4(%rbp), %al
testb $0x1, %al
jne 0x9ca87
jmp 0x9ca9e
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x9ca2f
jmp 0x9caa0
xorl %eax, %eax
cmpl $0x0, -0x68(%rbp)
movb %al, -0xd5(%rbp)
jbe 0x9cafe
movq -0x70(%rbp), %rax
movl -0x68(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xd5(%rbp)
jge 0x9cafe
callq 0xd1f0
movq (%rax), %rax
movq -0x70(%rbp), %rcx
movl -0x68(%rbp), %edx
subl $0x1, %edx
movl %edx, %edx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
movb %al, -0xd5(%rbp)
movb -0xd5(%rbp), %al
testb $0x1, %al
jne 0x9cb0a
jmp 0x9cb15
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0x9caa0
movq -0x40(%rbp), %rdi
movq -0x70(%rbp), %rsi
movl -0x68(%rbp), %edx
callq 0x56950
cmpl $0x0, -0x68(%rbp)
jbe 0x9cb5a
movq -0x10(%rbp), %rdi
callq 0x58570
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x9cb58
movq -0x30(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
callq 0x57920
movq -0x38(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x9cb5a
jmp 0x9cb5c
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9d348
movl $0x0, -0xc4(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movl $0x0, -0xc8(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x18(%rbp), %rcx
xorl %eax, %eax
cmpq -0x58(%rbp), %rcx
movb %al, -0xd6(%rbp)
jae 0x9cbb9
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
setne %al
movb %al, -0xd6(%rbp)
movb -0xd6(%rbp), %al
testb $0x1, %al
jne 0x9cbc8
jmp 0x9ce15
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5b, %eax
jne 0x9ce04
cmpl $0x0, -0xc4(%rbp)
jne 0x9ce04
movq -0x18(%rbp), %rax
movq -0x50(%rbp), %rcx
subq %rcx, %rax
movl %eax, -0xc8(%rbp)
movl $0x1, -0xc4(%rbp)
cmpl $0x0, -0xc8(%rbp)
jle 0x9cdc1
movq $0x0, -0xd0(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x70(%rbp)
movl -0xc8(%rbp), %eax
movl %eax, -0x68(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x68(%rbp)
movb %al, -0xd7(%rbp)
jbe 0x9cc75
movq -0x70(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xd7(%rbp)
jge 0x9cc75
callq 0xd1f0
movq (%rax), %rax
movq -0x70(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
movb %al, -0xd7(%rbp)
movb -0xd7(%rbp), %al
testb $0x1, %al
jne 0x9cc81
jmp 0x9cc98
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x9cc29
jmp 0x9cc9a
xorl %eax, %eax
cmpl $0x0, -0x68(%rbp)
movb %al, -0xd8(%rbp)
jbe 0x9ccf8
movq -0x70(%rbp), %rax
movl -0x68(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xd8(%rbp)
jge 0x9ccf8
callq 0xd1f0
movq (%rax), %rax
movq -0x70(%rbp), %rcx
movl -0x68(%rbp), %edx
subl $0x1, %edx
movl %edx, %edx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
movb %al, -0xd8(%rbp)
movb -0xd8(%rbp), %al
testb $0x1, %al
jne 0x9cd04
jmp 0x9cd0f
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0x9cc9a
movq -0x70(%rbp), %rsi
movl -0x68(%rbp), %edx
leaq -0xb0(%rbp), %rdi
callq 0x76c30
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
je 0x9cd3e
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xd0(%rbp)
jmp 0x9cdaa
movq -0x10(%rbp), %rdi
callq 0x58570
movq %rax, -0xd0(%rbp)
cmpq $0x0, -0xd0(%rbp)
je 0x9cda8
movq -0x70(%rbp), %rsi
movl -0x68(%rbp), %edx
movq -0xd0(%rbp), %rcx
leaq -0xb0(%rbp), %rdi
callq 0x77a80
movq -0x40(%rbp), %rdi
callq 0x56b80
movq -0x40(%rbp), %rdi
movq -0x70(%rbp), %rsi
movl -0x68(%rbp), %edx
callq 0x56950
movq -0x28(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0xd0(%rbp), %rdx
callq 0x57920
movq -0x40(%rbp), %rdi
callq 0x56b80
jmp 0x9cdaa
cmpq $0x0, -0xd0(%rbp)
je 0x9cdbf
movq -0xd0(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x9cdc1
jmp 0x9cdc3
movq -0x18(%rbp), %rcx
xorl %eax, %eax
cmpq -0x58(%rbp), %rcx
movb %al, -0xd9(%rbp)
jae 0x9cde8
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
setne %al
movb %al, -0xd9(%rbp)
movb -0xd9(%rbp), %al
testb $0x1, %al
jne 0x9cdf4
jmp 0x9ce02
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9cdc3
jmp 0x9ce04
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9cb94
cmpl $0x0, -0xc4(%rbp)
jne 0x9ce2f
movq -0x18(%rbp), %rax
movq -0x50(%rbp), %rcx
subq %rcx, %rax
movl %eax, -0xc8(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x70(%rbp)
movl -0xc8(%rbp), %eax
movl %eax, -0x68(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x68(%rbp)
movb %al, -0xda(%rbp)
jbe 0x9ce8c
movq -0x70(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xda(%rbp)
jge 0x9ce8c
callq 0xd1f0
movq (%rax), %rax
movq -0x70(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
movb %al, -0xda(%rbp)
movb -0xda(%rbp), %al
testb $0x1, %al
jne 0x9ce98
jmp 0x9ceaf
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x9ce40
jmp 0x9ceb1
xorl %eax, %eax
cmpl $0x0, -0x68(%rbp)
movb %al, -0xdb(%rbp)
jbe 0x9cf0f
movq -0x70(%rbp), %rax
movl -0x68(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xdb(%rbp)
jge 0x9cf0f
callq 0xd1f0
movq (%rax), %rax
movq -0x70(%rbp), %rcx
movl -0x68(%rbp), %edx
subl $0x1, %edx
movl %edx, %edx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
movb %al, -0xdb(%rbp)
movb -0xdb(%rbp), %al
testb $0x1, %al
jne 0x9cf1b
jmp 0x9cf26
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0x9ceb1
cmpl $0x0, -0x68(%rbp)
jbe 0x9d2ab
cmpl $0x0, -0xc4(%rbp)
jne 0x9cf49
movq -0x40(%rbp), %rdi
movq -0x70(%rbp), %rsi
movl -0x68(%rbp), %edx
callq 0x56950
movq -0x48(%rbp), %rdi
callq 0x56b80
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
xorl %eax, %eax
cmpq -0x58(%rbp), %rcx
movb %al, -0xdc(%rbp)
jae 0x9cfae
movq -0x18(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xdc(%rbp)
jge 0x9cfae
callq 0xd1f0
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
movb %al, -0xdc(%rbp)
movb -0xdc(%rbp), %al
testb $0x1, %al
jne 0x9cfba
jmp 0x9cfc8
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9cf5e
movq -0x18(%rbp), %rax
cmpq -0x58(%rbp), %rax
jae 0x9d2a6
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0xb4(%rbp)
cmpl $0x22, -0xb4(%rbp)
je 0x9cffd
cmpl $0x27, -0xb4(%rbp)
jne 0x9d057
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x58(%rbp), %rax
jae 0x9d03f
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl -0xb4(%rbp), %eax
jne 0x9d031
movq -0x18(%rbp), %rax
movsbl -0x1(%rax), %eax
cmpl $0x5c, %eax
je 0x9d031
jmp 0x9d03f
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9d009
movq -0x18(%rbp), %rax
cmpq -0x58(%rbp), %rax
jae 0x9d055
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9d0ac
jmp 0x9d059
movq -0x18(%rbp), %rax
cmpq -0x58(%rbp), %rax
jae 0x9d0aa
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
jne 0x9d080
movq -0x18(%rbp), %rax
movsbl -0x1(%rax), %eax
cmpl $0x5c, %eax
je 0x9d07e
jmp 0x9d0aa
jmp 0x9d09c
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
je 0x9d098
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x9d09a
jmp 0x9d0aa
jmp 0x9d09c
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9d059
jmp 0x9d0ac
movq -0x50(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rax
movq -0x50(%rbp), %rcx
subq %rcx, %rax
movl %eax, -0x68(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x68(%rbp)
movb %al, -0xdd(%rbp)
jbe 0x9d10e
movq -0x70(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xdd(%rbp)
jge 0x9d10e
callq 0xd1f0
movq (%rax), %rax
movq -0x70(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
movb %al, -0xdd(%rbp)
movb -0xdd(%rbp), %al
testb $0x1, %al
jne 0x9d11a
jmp 0x9d131
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x9d0c2
jmp 0x9d133
xorl %eax, %eax
cmpl $0x0, -0x68(%rbp)
movb %al, -0xde(%rbp)
jbe 0x9d191
movq -0x70(%rbp), %rax
movl -0x68(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xde(%rbp)
jge 0x9d191
callq 0xd1f0
movq (%rax), %rax
movq -0x70(%rbp), %rcx
movl -0x68(%rbp), %edx
subl $0x1, %edx
movl %edx, %edx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
setne %al
movb %al, -0xde(%rbp)
movb -0xde(%rbp), %al
testb $0x1, %al
jne 0x9d19d
jmp 0x9d1a8
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0x9d133
cmpl $0x22, -0xb4(%rbp)
je 0x9d1be
cmpl $0x27, -0xb4(%rbp)
jne 0x9d24f
jmp 0x9d1c0
xorl %eax, %eax
cmpl $0x0, -0x68(%rbp)
movb %al, -0xdf(%rbp)
jbe 0x9d1e4
movq -0x70(%rbp), %rax
movsbl (%rax), %eax
cmpl -0xb4(%rbp), %eax
sete %al
movb %al, -0xdf(%rbp)
movb -0xdf(%rbp), %al
testb $0x1, %al
jne 0x9d1f0
jmp 0x9d207
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0x9d1c0
jmp 0x9d209
xorl %eax, %eax
cmpl $0x0, -0x68(%rbp)
movb %al, -0xe0(%rbp)
jbe 0x9d236
movq -0x70(%rbp), %rax
movl -0x68(%rbp), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movsbl (%rax,%rcx), %eax
cmpl -0xb4(%rbp), %eax
sete %al
movb %al, -0xe0(%rbp)
movb -0xe0(%rbp), %al
testb $0x1, %al
jne 0x9d242
jmp 0x9d24d
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0x9d209
jmp 0x9d24f
cmpl $0x0, -0x68(%rbp)
jbe 0x9d265
movq -0x48(%rbp), %rdi
movq -0x70(%rbp), %rsi
movl -0x68(%rbp), %edx
callq 0x56950
movq -0x28(%rbp), %rax
movq %rax, -0xe8(%rbp)
cmpl $0x0, -0xc4(%rbp)
je 0x9d284
xorl %eax, %eax
movq %rax, -0xf0(%rbp)
jmp 0x9d28f
movq -0x40(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0xe8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x48(%rbp), %rdx
callq 0x57920
jmp 0x9d33d
jmp 0x9d2ad
movq -0x18(%rbp), %rcx
xorl %eax, %eax
cmpq -0x58(%rbp), %rcx
movb %al, -0xf1(%rbp)
jae 0x9d31e
movq -0x18(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xc0, %ecx
movb %al, -0xf1(%rbp)
jge 0x9d31e
callq 0xd1f0
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %ecx
andl $0x2000, %ecx           # imm = 0x2000
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xf2(%rbp)
jne 0x9d312
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
sete %al
movb %al, -0xf2(%rbp)
movb -0xf2(%rbp), %al
movb %al, -0xf1(%rbp)
movb -0xf1(%rbp), %al
testb $0x1, %al
jne 0x9d32a
jmp 0x9d33b
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9d2ad
jmp 0x9d33d
movq -0xc0(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x9c8b2
leaq -0xb0(%rbp), %rdi
callq 0x793a0
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x572c0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopl (%rax)