// File: /workspace/github_c_makefile_star2_O0/coyove[P]chann/./lib/unqlite/unqlite.c
// Function: SyStrncmp
JX9_PRIVATE sxi32 SyStrncmp(const char *zLeft, const char *zRight, sxu32 nLen)
{
	const unsigned char *zP = (const unsigned char *)zLeft;
	const unsigned char *zQ = (const unsigned char *)zRight;

	if( SX_EMPTY_STR(zP) || SX_EMPTY_STR(zQ)  ){
			return SX_EMPTY_STR(zP) ? (SX_EMPTY_STR(zQ) ? 0 : -1) :1;
	}
	if( nLen <= 0 ){
		return 0;
	}
	for(;;){
		if( nLen <= 0 ){ return 0; } if( zP[0] == 0 || zQ[0] == 0 || zP[0] != zQ[0] ){ break; } zP++; zQ++; nLen--;
		if( nLen <= 0 ){ return 0; } if( zP[0] == 0 || zQ[0] == 0 || zP[0] != zQ[0] ){ break; } zP++; zQ++; nLen--;
		if( nLen <= 0 ){ return 0; } if( zP[0] == 0 || zQ[0] == 0 || zP[0] != zQ[0] ){ break; } zP++; zQ++; nLen--;
		if( nLen <= 0 ){ return 0; } if( zP[0] == 0 || zQ[0] == 0 || zP[0] != zQ[0] ){ break; } zP++; zQ++; nLen--;
	}
	return (sxi32)(zP[0] - zQ[0]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x98dc5
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x98dc5
cmpq $0x0, -0x30(%rbp)
je 0x98dc5
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0x98e1e
cmpq $0x0, -0x28(%rbp)
je 0x98dd8
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
jne 0x98e09
movb $0x1, %al
cmpq $0x0, -0x30(%rbp)
movb %al, -0x31(%rbp)
je 0x98df4
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
sete %al
movb %al, -0x31(%rbp)
movb -0x31(%rbp), %dl
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, -0x38(%rbp)
jmp 0x98e13
movl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x98e13
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x98fcc
cmpl $0x0, -0x1c(%rbp)
ja 0x98e30
movl $0x0, -0x4(%rbp)
jmp 0x98fcc
jmp 0x98e32
cmpl $0x0, -0x1c(%rbp)
ja 0x98e44
movl $0x0, -0x4(%rbp)
jmp 0x98fcc
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x98e6e
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x98e6e
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
movq -0x30(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x98e73
jmp 0x98fb9
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
ja 0x98ea6
movl $0x0, -0x4(%rbp)
jmp 0x98fcc
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x98ed0
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x98ed0
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
movq -0x30(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x98ed5
jmp 0x98fb9
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
ja 0x98f08
movl $0x0, -0x4(%rbp)
jmp 0x98fcc
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x98f32
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x98f32
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
movq -0x30(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x98f37
jmp 0x98fb9
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
ja 0x98f67
movl $0x0, -0x4(%rbp)
jmp 0x98fcc
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x98f91
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
je 0x98f91
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
movq -0x30(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x98f93
jmp 0x98fb9
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x98e32
movq -0x28(%rbp), %rax
movzbl (%rax), %eax
movq -0x30(%rbp), %rcx
movzbl (%rcx), %ecx
subl %ecx, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)