// File: /workspace/github_c_makefile_star2_O0/Tarsnap[P]kivaloo/liball/../libcperciva/util/json.c
// Function: json_find
const uint8_t *
json_find(const uint8_t * buf, const uint8_t * end, const char * s)
{
	int foundit;

	/* After optional whitespace there should be a '{'. */
	SCAN(buf, end, '{');

	/* Scan the object looking for the child we want. */
	do {
		/*
		 * After optional whitespace we should have a '"' (unless
		 * the object is empty, in which case the key we're looking
		 * for is not present).
		 */
		SCAN(buf, end, '"');

		/* Is this the string we want? */
		buf = match_str(buf, end, s, &foundit);

		/* After optional whitespace we should have a ':'. */
		SCAN(buf, end, ':');

		/* Skip whitespace looking for the associated value. */
		buf = skip_ws(buf, end);

		/* Return the value if this is the one we wanted. */
		if (foundit)
			return (buf);

		/* Skip this JSON object. */
		buf = skip_value(buf, end);

		/*
		 * After optional whitespace we should have a ','.  (Or we
		 * could hit the closing '}' of the object, but that would
		 * mean that we don't have the key we're looking for anyway.)
		 */
		SCAN(buf, end, ',');
	} while (1);

	/* NOTREACHED */
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x10650
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
jne 0x104dc
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10643
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x10(%rbp)
movzbl (%rax), %eax
cmpl $0x7b, %eax
je 0x10500
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10643
jmp 0x10502
jmp 0x10504
jmp 0x10506
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x10650
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
jne 0x1052e
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10643
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x10(%rbp)
movzbl (%rax), %eax
cmpl $0x22, %eax
je 0x10552
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10643
jmp 0x10554
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
leaq -0x24(%rbp), %rcx
callq 0x106b0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x10650
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
jne 0x10595
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10643
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x10(%rbp)
movzbl (%rax), %eax
cmpl $0x3a, %eax
je 0x105b9
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10643
jmp 0x105bb
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x10650
movq %rax, -0x10(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x105dc
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10643
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x10840
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x10650
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
jne 0x10612
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10643
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x10(%rbp)
movzbl (%rax), %eax
cmpl $0x2c, %eax
je 0x10633
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10643
jmp 0x10635
jmp 0x10637
movb $0x1, %al
testb $0x1, %al
jne 0x10504
jmp 0x10643
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)