// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsgc.c
// Function: jsG_scanobject
static void jsG_scanobject(js_State *J, int mark, js_Object *obj)
{
	if (obj->properties->level)
		jsG_markproperty(J, mark, obj->properties);
	if (obj->prototype && obj->prototype->gcmark != mark)
		jsG_markobject(J, mark, obj->prototype);
	if (obj->type == JS_CARRAY && obj->u.a.simple) {
		int i;
		for (i = 0; i < obj->u.a.flat_length; ++i) {
			js_Value *v = &obj->u.a.array[i];
			if (v->t.type == JS_TMEMSTR && v->u.memstr->gcmark != mark)
				v->u.memstr->gcmark = mark;
			if (v->t.type == JS_TOBJECT && v->u.object->gcmark != mark)
				jsG_markobject(J, mark, v->u.object);
		}
	}
	if (obj->type == JS_CITERATOR && obj->u.iter.target->gcmark != mark) {
		jsG_markobject(J, mark, obj->u.iter.target);
	}
	if (obj->type == JS_CFUNCTION || obj->type == JS_CSCRIPT) {
		if (obj->u.f.scope && obj->u.f.scope->gcmark != mark)
			jsG_markenvironment(J, mark, obj->u.f.scope);
		if (obj->u.f.function && obj->u.f.function->gcmark != mark)
			jsG_markfunction(J, mark, obj->u.f.function);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x0, 0x10(%rax)
je 0xd3b5
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x246c0
movq -0x18(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0xd3e4
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x60(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0xd3e4
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0xd210
movq -0x18(%rbp), %rax
cmpl $0x1, (%rax)
jne 0xd49a
movq -0x18(%rbp), %rax
cmpl $0x0, 0x24(%rax)
je 0xd49a
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x28(%rcx), %eax
jge 0xd498
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movsbl 0xf(%rax), %eax
cmpl $0x6, %eax
jne 0xd459
movq -0x28(%rbp), %rax
movq (%rax), %rax
movsbl 0x8(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0xd459
movl -0xc(%rbp), %eax
movb %al, %cl
movq -0x28(%rbp), %rax
movq (%rax), %rax
movb %cl, 0x8(%rax)
movq -0x28(%rbp), %rax
movsbl 0xf(%rax), %eax
cmpl $0x7, %eax
jne 0xd488
movq -0x28(%rbp), %rax
movq (%rax), %rax
movl 0x60(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0xd488
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
callq 0xd210
jmp 0xd48a
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xd406
jmp 0xd49a
movq -0x18(%rbp), %rax
cmpl $0xe, (%rax)
jne 0xd4c7
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x60(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0xd4c7
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rdx
callq 0xd210
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
je 0xd4d9
movq -0x18(%rbp), %rax
cmpl $0x3, (%rax)
jne 0xd539
movq -0x18(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0xd508
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movl 0x18(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0xd508
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rdx
callq 0xd300
movq -0x18(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0xd537
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x68(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0xd537
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rdx
callq 0x247e0
jmp 0xd539
addq $0x30, %rsp
popq %rbp
retq
nop