// File: /workspace/github_c_makefile_star2_O0/coyove[P]chann/./lib/unqlite/unqlite.c
// Function: SyBlobSearch
JX9_PRIVATE sxi32 SyBlobSearch(const void *pBlob, sxu32 nLen, const void *pPattern, sxu32 pLen, sxu32 *pOfft)
{
	const char *zIn = (const char *)pBlob;
	const char *zEnd;
	sxi32 rc;
	if( pLen > nLen ){
		return SXERR_NOTFOUND;
	}
	zEnd = &zIn[nLen-pLen];
	for(;;){
		if( zIn > zEnd ){break;} SX_MACRO_FAST_CMP(zIn, pPattern, pLen, rc); if( rc == 0 ){ if( pOfft ){ *pOfft = (sxu32)(zIn - (const char *)pBlob);} return SXRET_OK; } zIn++;
		if( zIn > zEnd ){break;} SX_MACRO_FAST_CMP(zIn, pPattern, pLen, rc); if( rc == 0 ){ if( pOfft ){ *pOfft = (sxu32)(zIn - (const char *)pBlob);} return SXRET_OK; } zIn++;
		if( zIn > zEnd ){break;} SX_MACRO_FAST_CMP(zIn, pPattern, pLen, rc); if( rc == 0 ){ if( pOfft ){ *pOfft = (sxu32)(zIn - (const char *)pBlob);} return SXRET_OK; } zIn++;
		if( zIn > zEnd ){break;} SX_MACRO_FAST_CMP(zIn, pPattern, pLen, rc); if( rc == 0 ){ if( pOfft ){ *pOfft = (sxu32)(zIn - (const char *)pBlob);} return SXRET_OK; } zIn++;
	}
	return SXERR_NOTFOUND;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x38, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movq %r8, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
jbe 0x99016
movl $0xfffffffa, -0x4(%rbp) # imm = 0xFFFFFFFA
jmp 0x99754
movq -0x38(%rbp), %rax
movl -0x14(%rbp), %ecx
subl -0x24(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
jbe 0x99038
jmp 0x9974d
movq -0x38(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x5c(%rbp)
cmpl $0x0, -0x5c(%rbp)
jne 0x99059
jmp 0x99153
movq -0x50(%rbp), %rax
movzbl (%rax), %eax
movq -0x58(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x99070
jmp 0x99153
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
movl -0x5c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x5c(%rbp)
cmpl $0x0, -0x5c(%rbp)
jne 0x9909c
jmp 0x99153
movq -0x50(%rbp), %rax
movzbl (%rax), %eax
movq -0x58(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x990b3
jmp 0x99153
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
movl -0x5c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x5c(%rbp)
cmpl $0x0, -0x5c(%rbp)
jne 0x990dc
jmp 0x99153
movq -0x50(%rbp), %rax
movzbl (%rax), %eax
movq -0x58(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x990f0
jmp 0x99153
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
movl -0x5c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x5c(%rbp)
cmpl $0x0, -0x5c(%rbp)
jne 0x99119
jmp 0x99153
movq -0x50(%rbp), %rax
movzbl (%rax), %eax
movq -0x58(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x9912d
jmp 0x99153
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
movl -0x5c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x9904e
cmpl $0x0, -0x5c(%rbp)
jne 0x99163
xorl %eax, %eax
movl %eax, -0xa8(%rbp)
jmp 0x99179
movq -0x50(%rbp), %rax
movzbl (%rax), %eax
movq -0x58(%rbp), %rcx
movzbl (%rcx), %ecx
subl %ecx, %eax
movl %eax, -0xa8(%rbp)
movl -0xa8(%rbp), %eax
movl %eax, -0x44(%rbp)
cmpl $0x0, -0x44(%rbp)
jne 0x991ae
cmpq $0x0, -0x30(%rbp)
je 0x991a2
movq -0x38(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
movl $0x0, -0x4(%rbp)
jmp 0x99754
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
jbe 0x991c9
jmp 0x9974d
movq -0x38(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x70(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x74(%rbp)
cmpl $0x0, -0x74(%rbp)
jne 0x991ea
jmp 0x992e4
movq -0x68(%rbp), %rax
movzbl (%rax), %eax
movq -0x70(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x99201
jmp 0x992e4
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
movl -0x74(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x74(%rbp)
cmpl $0x0, -0x74(%rbp)
jne 0x9922d
jmp 0x992e4
movq -0x68(%rbp), %rax
movzbl (%rax), %eax
movq -0x70(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x99244
jmp 0x992e4
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
movl -0x74(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x74(%rbp)
cmpl $0x0, -0x74(%rbp)
jne 0x9926d
jmp 0x992e4
movq -0x68(%rbp), %rax
movzbl (%rax), %eax
movq -0x70(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x99281
jmp 0x992e4
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
movl -0x74(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x74(%rbp)
cmpl $0x0, -0x74(%rbp)
jne 0x992aa
jmp 0x992e4
movq -0x68(%rbp), %rax
movzbl (%rax), %eax
movq -0x70(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x992be
jmp 0x992e4
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
movl -0x74(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x991df
cmpl $0x0, -0x74(%rbp)
jne 0x992f4
xorl %eax, %eax
movl %eax, -0xac(%rbp)
jmp 0x9930a
movq -0x68(%rbp), %rax
movzbl (%rax), %eax
movq -0x70(%rbp), %rcx
movzbl (%rcx), %ecx
subl %ecx, %eax
movl %eax, -0xac(%rbp)
movl -0xac(%rbp), %eax
movl %eax, -0x44(%rbp)
cmpl $0x0, -0x44(%rbp)
jne 0x9933f
cmpq $0x0, -0x30(%rbp)
je 0x99333
movq -0x38(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
movl $0x0, -0x4(%rbp)
jmp 0x99754
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
jbe 0x9935a
jmp 0x9974d
movq -0x38(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x88(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x8c(%rbp)
cmpl $0x0, -0x8c(%rbp)
jne 0x99384
jmp 0x994c9
movq -0x80(%rbp), %rax
movzbl (%rax), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x9939e
jmp 0x994c9
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
movq -0x88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
movl -0x8c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8c(%rbp)
cmpl $0x0, -0x8c(%rbp)
jne 0x993d9
jmp 0x994c9
movq -0x80(%rbp), %rax
movzbl (%rax), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x993f3
jmp 0x994c9
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
movq -0x88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
movl -0x8c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8c(%rbp)
cmpl $0x0, -0x8c(%rbp)
jne 0x9942e
jmp 0x994c9
movq -0x80(%rbp), %rax
movzbl (%rax), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x99448
jmp 0x994c9
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
movq -0x88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
movl -0x8c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8c(%rbp)
cmpl $0x0, -0x8c(%rbp)
jne 0x99480
jmp 0x994c9
movq -0x80(%rbp), %rax
movzbl (%rax), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x99497
jmp 0x994c9
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
movq -0x88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
movl -0x8c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8c(%rbp)
jmp 0x99376
cmpl $0x0, -0x8c(%rbp)
jne 0x994dc
xorl %eax, %eax
movl %eax, -0xb0(%rbp)
jmp 0x994f5
movq -0x80(%rbp), %rax
movzbl (%rax), %eax
movq -0x88(%rbp), %rcx
movzbl (%rcx), %ecx
subl %ecx, %eax
movl %eax, -0xb0(%rbp)
movl -0xb0(%rbp), %eax
movl %eax, -0x44(%rbp)
cmpl $0x0, -0x44(%rbp)
jne 0x9952a
cmpq $0x0, -0x30(%rbp)
je 0x9951e
movq -0x38(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
movl $0x0, -0x4(%rbp)
jmp 0x99754
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
jbe 0x99545
jmp 0x9974d
movq -0x38(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xa0(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
jne 0x99572
jmp 0x996db
movq -0x98(%rbp), %rax
movzbl (%rax), %eax
movq -0xa0(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x9958f
jmp 0x996db
movq -0x98(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x98(%rbp)
movq -0xa0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa0(%rbp)
movl -0xa4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
jne 0x995d0
jmp 0x996db
movq -0x98(%rbp), %rax
movzbl (%rax), %eax
movq -0xa0(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x995ed
jmp 0x996db
movq -0x98(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x98(%rbp)
movq -0xa0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa0(%rbp)
movl -0xa4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
jne 0x9962e
jmp 0x996db
movq -0x98(%rbp), %rax
movzbl (%rax), %eax
movq -0xa0(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x9964b
jmp 0x996db
movq -0x98(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x98(%rbp)
movq -0xa0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa0(%rbp)
movl -0xa4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
jne 0x99689
jmp 0x996db
movq -0x98(%rbp), %rax
movzbl (%rax), %eax
movq -0xa0(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x996a3
jmp 0x996db
movq -0x98(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x98(%rbp)
movq -0xa0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa0(%rbp)
movl -0xa4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xa4(%rbp)
jmp 0x99564
cmpl $0x0, -0xa4(%rbp)
jne 0x996ee
xorl %eax, %eax
movl %eax, -0xb4(%rbp)
jmp 0x9970a
movq -0x98(%rbp), %rax
movzbl (%rax), %eax
movq -0xa0(%rbp), %rcx
movzbl (%rcx), %ecx
subl %ecx, %eax
movl %eax, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
movl %eax, -0x44(%rbp)
cmpl $0x0, -0x44(%rbp)
jne 0x9973c
cmpq $0x0, -0x30(%rbp)
je 0x99733
movq -0x38(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
movl $0x0, -0x4(%rbp)
jmp 0x99754
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x99029
movl $0xfffffffa, -0x4(%rbp) # imm = 0xFFFFFFFA
movl -0x4(%rbp), %eax
addq $0x38, %rsp
popq %rbp
retq
nopl (%rax)