LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: Op_propertyIsEnumerable
static void Op_propertyIsEnumerable(js_State *J)
{
	js_Object *self = js_toobject(J, 0);
	const char *name = js_tostring(J, 1);
	js_Property *ref = jsV_getownproperty(J, self, name);
	js_pushboolean(J, ref && !(ref->atts & JS_DONTENUM));
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %rbx
movslq 0x144(%rdi), %rax
leaq 0x2f77a(%rip), %r14     # 0x403f8
movq %r14, %rsi
testq %rax, %rax
js 0x10c9f
movq %r14, %rsi
cmpl 0x140(%rbx), %eax
jge 0x10c9f
shlq $0x4, %rax
addq 0x148(%rbx), %rax
movq %rax, %rsi
movq %rbx, %rdi
callq 0x15489
movq %rax, %r15
movl 0x144(%rbx), %eax
cmpl $-0x1, %eax
jl 0x10ccd
incl %eax
cmpl 0x140(%rbx), %eax
jge 0x10ccd
movl %eax, %r14d
shlq $0x4, %r14
addq 0x148(%rbx), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1533b
movq %rax, %r14
movq 0x8(%r15), %r12
leaq 0x2f6d2(%rip), %r13     # 0x403b8
cmpq %r13, %r12
je 0x10d12
leaq 0x38(%r12), %rsi
movq %r14, %rdi
callq 0x32f0
testl %eax, %eax
je 0x10d09
movl %eax, %ecx
notl %ecx
shrl $0x1f, %ecx
movq (%r12,%rcx,8), %r12
jmp 0x10d0c
movq %r12, %r15
testl %eax, %eax
jne 0x10ce6
jmp 0x10d15
xorl %r15d, %r15d
xorl %esi, %esi
testq %r15, %r15
je 0x10d25
testb $0x2, 0x14(%r15)
sete %sil
movq %rbx, %rdi
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x14ad9
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: jsB_Object
static void jsB_Object(js_State *J)
{
	if (js_isundefined(J, 1) || js_isnull(J, 1))
		js_newobject(J);
	else
		js_pushobject(J, js_toobject(J, 1));
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2f6ae(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x10d64
cmpl 0x140(%rbx), %eax
jge 0x10d64
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x1, 0xf(%rdx)
je 0x10d91
leaq 0x2f687(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x10d8b
cmpl 0x140(%rbx), %eax
jge 0x10d8b
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x2, 0xf(%rdx)
jne 0x10d9a
movq %rbx, %rdi
popq %rbx
jmp 0x1a42b
leaq 0x2f657(%rip), %rsi     # 0x403f8
cmpl $-0x1, %ecx
jl 0x10dbb
cmpl 0x140(%rbx), %eax
jge 0x10dbb
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq %rbx, %rdi
movq %rax, %rsi
popq %rbx
jmp 0x44e7
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: jsB_new_Object
static void jsB_new_Object(js_State *J)
{
	if (js_isundefined(J, 1) || js_isnull(J, 1))
		js_newobject(J);
	else
		js_pushobject(J, js_toobject(J, 1));
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2f615(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x10dfd
cmpl 0x140(%rbx), %eax
jge 0x10dfd
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x1, 0xf(%rdx)
je 0x10e2a
leaq 0x2f5ee(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x10e24
cmpl 0x140(%rbx), %eax
jge 0x10e24
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x2, 0xf(%rdx)
jne 0x10e33
movq %rbx, %rdi
popq %rbx
jmp 0x1a42b
leaq 0x2f5be(%rip), %rsi     # 0x403f8
cmpl $-0x1, %ecx
jl 0x10e54
cmpl 0x140(%rbx), %eax
jge 0x10e54
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq %rbx, %rdi
movq %rax, %rsi
popq %rbx
jmp 0x44e7
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: O_getPrototypeOf
static void O_getPrototypeOf(js_State *J)
{
	js_Object *obj;
	if (!js_isobject(J, 1))
		js_typeerror(J, "not an object");
	obj = js_toobject(J, 1);
	if (obj->prototype)
		js_pushobject(J, obj->prototype);
	else
		js_pushnull(J);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2f57c(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x10e96
cmpl 0x140(%rbx), %eax
jge 0x10e96
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x10edd
leaq 0x2f555(%rip), %rsi     # 0x403f8
cmpl $-0x1, %ecx
jl 0x10ebd
cmpl 0x140(%rbx), %eax
jge 0x10ebd
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq 0x18(%rax), %rsi
movq %rbx, %rdi
testq %rsi, %rsi
je 0x10ed7
popq %rbx
jmp 0x44e7
popq %rbx
jmp 0x13525
leaq 0x241f8(%rip), %rsi     # 0x350dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: O_create
static void O_create(js_State *J)
{
	js_Object *obj;
	js_Object *proto;
	js_Object *props;

	if (js_isobject(J, 1))
		proto = js_toobject(J, 1);
	else if (js_isnull(J, 1))
		proto = NULL;
	else
		js_typeerror(J, "not an object or null");

	obj = jsV_newobject(J, JS_COBJECT, proto);
	js_pushobject(J, obj);

	if (js_isdefined(J, 2)) {
		if (!js_isobject(J, 2))
			js_typeerror(J, "not an object");
		props = js_toobject(J, 2);
		if (props->properties->level)
			O_create_walk(J, obj, props->properties);
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2f0cc(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x11346
cmpl 0x140(%rbx), %eax
jge 0x11346
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x1137a
leaq 0x2f0a5(%rip), %rsi     # 0x403f8
cmpl $-0x1, %ecx
jl 0x1136d
cmpl 0x140(%rbx), %eax
jge 0x1136d
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq %rax, %r15
jmp 0x113a8
leaq 0x2f077(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x1139b
cmpl 0x140(%rbx), %eax
jge 0x1139b
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x2, 0xf(%rdx)
jne 0x114b9
xorl %r15d, %r15d
movq %rbx, %rdi
movl $0x68, %esi
callq 0xe119
movq %rax, %r14
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x40(%rax)
movups %xmm0, 0x50(%rax)
movq $0x0, 0x60(%rax)
movq 0x170(%rbx), %rax
movq %rax, 0x50(%r14)
movq %r14, 0x170(%rbx)
incl 0x154(%rbx)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, (%r14)
leaq 0x2efb2(%rip), %rax     # 0x403b8
movq %rax, 0x8(%r14)
movq %r15, 0x18(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44e7
movl 0x144(%rbx), %ecx
leal 0x2(%rcx), %eax
leaq 0x2efcf(%rip), %rdx     # 0x403f8
cmpl $-0x2, %ecx
jl 0x11443
cmpl 0x140(%rbx), %eax
jge 0x11443
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x1, 0xf(%rdx)
je 0x114b3
leaq 0x2efa8(%rip), %rdx     # 0x403f8
cmpl $-0x2, %ecx
jl 0x1146a
cmpl 0x140(%rbx), %eax
jge 0x1146a
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x114c2
leaq 0x2ef81(%rip), %rsi     # 0x403f8
cmpl $-0x2, %ecx
jl 0x11491
cmpl 0x140(%rbx), %eax
jge 0x11491
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq 0x8(%rax), %rdx
cmpl $0x0, 0x10(%rdx)
je 0x114b3
movq %rbx, %rdi
movq %r14, %rsi
popq %rbx
popq %r14
popq %r15
jmp 0x21d10
popq %rbx
popq %r14
popq %r15
retq
leaq 0x236aa(%rip), %rsi     # 0x34b6a
jmp 0x114c9
leaq 0x23c13(%rip), %rsi     # 0x350dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: O_defineProperty
static void O_defineProperty(js_State *J)
{
	if (!js_isobject(J, 1)) js_typeerror(J, "not an object");
	if (!js_isobject(J, 3)) js_typeerror(J, "not an object");
	ToPropertyDescriptor(J, js_toobject(J, 1), js_tostring(J, 2), js_toobject(J, 3));
	js_copy(J, 1);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2ef0a(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x11508
cmpl 0x140(%rbx), %eax
jge 0x11508
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x115fe
leaq 0x2eedf(%rip), %rdx     # 0x403f8
cmpl $-0x3, %ecx
jl 0x11536
leal 0x3(%rcx), %esi
cmpl 0x140(%rbx), %esi
jge 0x11536
movl %esi, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x115fe
leaq 0x2eeb1(%rip), %r14     # 0x403f8
movq %r14, %rsi
cmpl $-0x1, %ecx
jl 0x11567
movq %r14, %rsi
cmpl 0x140(%rbx), %eax
jge 0x11567
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq %rax, %r15
movl 0x144(%rbx), %eax
movq %r14, %rsi
cmpl $-0x2, %eax
jl 0x1159b
addl $0x2, %eax
movq %r14, %rsi
cmpl 0x140(%rbx), %eax
jge 0x1159b
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x1533b
movq %rax, %r12
movl 0x144(%rbx), %eax
cmpl $-0x3, %eax
jl 0x115ca
addl $0x3, %eax
cmpl 0x140(%rbx), %eax
jge 0x115ca
movl %eax, %r14d
shlq $0x4, %r14
addq 0x148(%rbx), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x15489
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0x21d75
movq %rbx, %rdi
movl $0x1, %esi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x14073
leaq 0x23ad7(%rip), %rsi     # 0x350dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: O_defineProperties
static void O_defineProperties(js_State *J)
{
	js_Object *props;

	if (!js_isobject(J, 1)) js_typeerror(J, "not an object");
	if (!js_isobject(J, 2)) js_typeerror(J, "not an object");

	props = js_toobject(J, 2);
	if (props->properties->level)
		O_defineProperties_walk(J, props->properties);

	js_copy(J, 1);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl 0x144(%rdi), %eax
leaq 0x2edd8(%rip), %rcx     # 0x403f8
cmpl $-0x1, %eax
jl 0x1163d
leal 0x1(%rax), %edx
cmpl 0x140(%rbx), %edx
jge 0x1163d
movl %edx, %ecx
shlq $0x4, %rcx
addq 0x148(%rbx), %rcx
cmpb $0x7, 0xf(%rcx)
jne 0x116b6
leal 0x2(%rax), %ecx
leaq 0x2edab(%rip), %rdx     # 0x403f8
cmpl $-0x2, %eax
jl 0x11667
cmpl 0x140(%rbx), %ecx
jge 0x11667
movl %ecx, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x116b6
leaq 0x2ed84(%rip), %rsi     # 0x403f8
cmpl $-0x2, %eax
jl 0x1168e
cmpl 0x140(%rbx), %ecx
jge 0x1168e
movl %ecx, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq 0x8(%rax), %rsi
cmpl $0x0, 0x10(%rsi)
je 0x116a8
movq %rbx, %rdi
callq 0x220fa
movq %rbx, %rdi
movl $0x1, %esi
popq %rbx
jmp 0x14073
leaq 0x23a1f(%rip), %rsi     # 0x350dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: O_seal
static void O_seal(js_State *J)
{
	js_Object *obj;

	if (!js_isobject(J, 1))
		js_typeerror(J, "not an object");

	obj = js_toobject(J, 1);
	jsR_unflattenarray(J, obj);
	obj->extensible = 0;

	if (obj->properties->level)
		O_seal_walk(J, obj->properties);

	js_copy(J, 1);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2ed1a(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x116f8
cmpl 0x140(%rbx), %eax
jge 0x116f8
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x11760
leaq 0x2ecf3(%rip), %rsi     # 0x403f8
cmpl $-0x1, %ecx
jl 0x1171f
cmpl 0x140(%rbx), %eax
jge 0x1171f
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x15b88
movl $0x0, 0x4(%r14)
movq 0x8(%r14), %rdi
cmpl $0x0, 0x10(%rdi)
je 0x1174c
callq 0x221f7
movq %rbx, %rdi
movl $0x1, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x14073
leaq 0x23975(%rip), %rsi     # 0x350dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: O_freeze
static void O_freeze(js_State *J)
{
	js_Object *obj;

	if (!js_isobject(J, 1))
		js_typeerror(J, "not an object");

	obj = js_toobject(J, 1);
	jsR_unflattenarray(J, obj);
	obj->extensible = 0;

	if (obj->properties->level)
		O_freeze_walk(J, obj->properties);

	js_copy(J, 1);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2ec70(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x117a2
cmpl 0x140(%rbx), %eax
jge 0x117a2
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x1180a
leaq 0x2ec49(%rip), %rsi     # 0x403f8
cmpl $-0x1, %ecx
jl 0x117c9
cmpl 0x140(%rbx), %eax
jge 0x117c9
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x15b88
movl $0x0, 0x4(%r14)
movq 0x8(%r14), %rdi
cmpl $0x0, 0x10(%rdi)
je 0x117f6
callq 0x22219
movq %rbx, %rdi
movl $0x1, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x14073
leaq 0x238cb(%rip), %rsi     # 0x350dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: O_preventExtensions
static void O_preventExtensions(js_State *J)
{
	js_Object *obj;
	if (!js_isobject(J, 1))
		js_typeerror(J, "not an object");
	obj = js_toobject(J, 1);
	jsR_unflattenarray(J, obj);
	obj->extensible = 0;
	js_copy(J, 1);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2ebc6(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x1184c
cmpl 0x140(%rbx), %eax
jge 0x1184c
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x118a5
leaq 0x2eb9f(%rip), %rsi     # 0x403f8
cmpl $-0x1, %ecx
jl 0x11873
cmpl 0x140(%rbx), %eax
jge 0x11873
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x15b88
movl $0x0, 0x4(%r14)
movq %rbx, %rdi
movl $0x1, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x14073
leaq 0x23830(%rip), %rsi     # 0x350dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: O_isSealed
static void O_isSealed(js_State *J)
{
	js_Object *obj;

	if (!js_isobject(J, 1))
		js_typeerror(J, "not an object");

	obj = js_toobject(J, 1);
	if (obj->extensible) {
		js_pushboolean(J, 0);
		return;
	}

	if (obj->properties->level)
		js_pushboolean(J, O_isSealed_walk(J, obj->properties));
	else
		js_pushboolean(J, 1);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2eb2e(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x118e4
cmpl 0x140(%rbx), %eax
jge 0x118e4
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x1193c
leaq 0x2eb07(%rip), %rsi     # 0x403f8
cmpl $-0x1, %ecx
jl 0x1190b
cmpl 0x140(%rbx), %eax
jge 0x1190b
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
xorl %esi, %esi
cmpl $0x0, 0x4(%rax)
jne 0x11933
movq 0x8(%rax), %rdi
cmpl $0x0, 0x10(%rdi)
je 0x1192e
callq 0x2223b
movl %eax, %esi
jmp 0x11933
movl $0x1, %esi
movq %rbx, %rdi
popq %rbx
jmp 0x14ad9
leaq 0x23799(%rip), %rsi     # 0x350dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: O_isFrozen
static void O_isFrozen(js_State *J)
{
	js_Object *obj;

	if (!js_isobject(J, 1))
		js_typeerror(J, "not an object");

	obj = js_toobject(J, 1);

	if (obj->properties->level) {
		if (!O_isFrozen_walk(J, obj->properties)) {
			js_pushboolean(J, 0);
			return;
		}
	}

	js_pushboolean(J, !obj->extensible);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2ea94(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x1197e
cmpl 0x140(%rbx), %eax
jge 0x1197e
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x119e1
leaq 0x2ea6d(%rip), %rsi     # 0x403f8
cmpl $-0x1, %ecx
jl 0x119a5
cmpl 0x140(%rbx), %eax
jge 0x119a5
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq %rax, %r14
movq 0x8(%rax), %rdi
cmpl $0x0, 0x10(%rdi)
je 0x119c3
callq 0x22283
testl %eax, %eax
je 0x119d0
xorl %esi, %esi
cmpl $0x0, 0x4(%r14)
sete %sil
jmp 0x119d2
xorl %esi, %esi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x14ad9
leaq 0x236f4(%rip), %rsi     # 0x350dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: O_keys
static void O_keys(js_State *J)
{
	js_Object *obj;
	char name[32];
	int i, k;

	if (!js_isobject(J, 1))
		js_typeerror(J, "not an object");
	obj = js_toobject(J, 1);

	js_newarray(J);

	if (obj->properties->level)
		i = O_keys_walk(J, obj->properties, 0);
	else
		i = 0;

	if (obj->type == JS_CSTRING) {
		for (k = 0; k < obj->u.s.length; ++k) {
			js_itoa(name, k);
			js_pushstring(J, name);
			js_setindex(J, -2, i++);
		}
	}

	if (obj->type == JS_CARRAY && obj->u.a.simple) {
		for (k = 0; k < obj->u.a.flat_length; ++k) {
			js_itoa(name, k);
			js_pushstring(J, name);
			js_setindex(J, -2, i++);
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movl 0x144(%rdi), %ecx
leal 0x1(%rcx), %eax
leaq 0x2e96b(%rip), %rdx     # 0x403f8
cmpl $-0x1, %ecx
jl 0x11aa7
cmpl 0x140(%rbx), %eax
jge 0x11aa7
movl %eax, %edx
shlq $0x4, %rdx
addq 0x148(%rbx), %rdx
cmpb $0x7, 0xf(%rdx)
jne 0x11ba4
leaq 0x2e940(%rip), %rsi     # 0x403f8
cmpl $-0x1, %ecx
jl 0x11ad2
cmpl 0x140(%rbx), %eax
jge 0x11ad2
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x15489
movq %rax, %r14
movq %rbx, %rdi
callq 0x135de
movq 0x8(%r14), %rsi
cmpl $0x0, 0x10(%rsi)
je 0x11afe
movq %rbx, %rdi
xorl %edx, %edx
callq 0x222ce
movl %eax, %r15d
jmp 0x11b01
xorl %r15d, %r15d
cmpl $0x8, (%r14)
jne 0x11b49
cmpl $0x0, 0x20(%r14)
jle 0x11b49
xorl %r12d, %r12d
movq %rsp, %r13
leal (%r15,%r12), %ebp
movq %r13, %rdi
movl %r12d, %esi
callq 0x12cc2
movq %rbx, %rdi
movq %r13, %rsi
callq 0x13665
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movl %ebp, %edx
callq 0x1393c
incl %r12d
cmpl 0x20(%r14), %r12d
jl 0x11b14
addl %r12d, %r15d
cmpl $0x1, (%r14)
jne 0x11b95
cmpl $0x0, 0x24(%r14)
je 0x11b95
cmpl $0x0, 0x28(%r14)
jle 0x11b95
xorl %r12d, %r12d
movq %rsp, %r13
leal (%r15,%r12), %ebp
movq %r13, %rdi
movl %r12d, %esi
callq 0x12cc2
movq %rbx, %rdi
movq %r13, %rsi
callq 0x13665
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movl %ebp, %edx
callq 0x1393c
incl %r12d
cmpl 0x28(%r14), %r12d
jl 0x11b63
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x23531(%rip), %rsi     # 0x350dc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsrun.c
// Function: checkstring
static js_Value *stackidx(js_State *J, int idx)
{
	static js_Value undefined = { { {0}, JS_TUNDEFINED } };
	idx = idx < 0 ? TOP + idx : BOT + idx;
	if (idx < 0 || idx >= TOP)
		return &undefined;
	return STACK + idx;
}

// Assembly:
movslq 0x144(%rdi), %rax
leaq 0x1718b(%rip), %rcx     # 0x403f8
testq %rax, %rax
js 0x29288
cmpl 0x140(%rdi), %eax
jge 0x29288
movq %rax, %rcx
shlq $0x4, %rcx
addq 0x148(%rdi), %rcx
movb 0xf(%rcx), %cl
decb %cl
cmpb $0x1, %cl
jbe 0x292c0
leaq 0x1715f(%rip), %rsi     # 0x403f8
testl %eax, %eax
js 0x1533b
cmpl 0x140(%rdi), %eax
jge 0x1533b
shlq $0x4, %rax
addq 0x148(%rdi), %rax
movq %rax, %rsi
jmp 0x1533b
pushq %rax
leaq 0xbf53(%rip), %rsi      # 0x3521b
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./json.c
// Function: JSON_parse
static void JSON_parse(js_State *J)
{
	const char *source = js_tostring(J, 1);
	jsY_initlex(J, "JSON", source);
	jsonnext(J);

	if (js_iscallable(J, 2)) {
		js_newobject(J);
		jsonvalue(J);
		js_defproperty(J, -2, "", 0);
		jsonrevive(J, "");
	} else {
		jsonvalue(J);
	}
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x144(%rdi), %eax
leaq 0x2e68e(%rip), %rsi     # 0x403f8
cmpl $-0x1, %eax
jl 0x11d86
incl %eax
cmpl 0x140(%rbx), %eax
jge 0x11d86
movl %eax, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
movq %rbx, %rdi
callq 0x1533b
leaq 0x21383(%rip), %rcx     # 0x33118
movq %rcx, 0x38(%rbx)
movq %rax, 0x40(%rbx)
movl $0x1, 0x48(%rbx)
movl $0x0, 0x68(%rbx)
movq %rbx, %rdi
callq 0xe5c9
movq %rbx, %rdi
callq 0xf26d
movl %eax, 0x74(%rbx)
movq %rbx, %rdi
movl $0x2, %esi
callq 0x14e17
testl %eax, %eax
je 0x11e0a
movq %rbx, %rdi
callq 0x1a42b
movq %rbx, %rdi
callq 0x22336
leaq 0x225a0(%rip), %r14     # 0x34386
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x66df
movq %rbx, %rdi
movq %r14, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x22512
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x22336
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsparse.c
// Function: jsP_freeparse
void jsP_freeparse(js_State *J)
{
	js_Ast *node = J->gcast;
	while (node) {
		js_Ast *next = node->gcnext;
		jsP_freejumps(J, node->jumps);
		js_free(J, node);
		node = next;
	}
	J->gcast = NULL;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x88(%rdi), %r14
testq %r14, %r14
je 0x120e1
movq 0x40(%r14), %rsi
movq 0x50(%r14), %r15
testq %rsi, %rsi
je 0x120ce
movq 0x8(%rsi), %r12
movq (%rbx), %rdi
xorl %edx, %edx
callq *0x10(%rbx)
movq %r12, %rsi
testq %r12, %r12
jne 0x120ba
movq (%rbx), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq *0x10(%rbx)
movq %r15, %r14
testq %r15, %r15
jne 0x120ad
movq $0x0, 0x88(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsparse.c
// Function: jsP_parse
js_Ast *jsP_parse(js_State *J, const char *filename, const char *source)
{
	js_Ast *p;

	jsY_initlex(J, filename, source);
	jsP_next(J);
	J->astdepth = 0;
	p = script(J, 0);
	if (p)
		jsP_foldconst(p);

	return p;
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq %rsi, 0x38(%rdi)
movq %rdx, 0x40(%rdi)
movl $0x1, 0x48(%rdi)
xorl %ebp, %ebp
movl %ebp, 0x68(%rdi)
callq 0xe5c9
movq %rbx, %rdi
callq 0xe65c
movl %eax, 0x68(%rbx)
movl %eax, 0x74(%rbx)
movl %ebp, 0x70(%rbx)
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1214c
movq %rax, %rbx
testq %rax, %rax
je 0x12142
movq %rbx, %rdi
callq 0x12254
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsparse.c
// Function: script
static js_Ast *script(js_State *J, int terminator)
{
	js_Ast *head, *tail;
	if (J->lookahead == terminator)
		return NULL;
	head = tail = LIST(scriptelement(J));
	while (J->lookahead != terminator)
		tail = tail->b = LIST(scriptelement(J));
	return jsP_list(head);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpl %esi, 0x74(%rdi)
jne 0x12163
xorl %ebx, %ebx
jmp 0x12242
movl %esi, %ebp
movq %rdi, %r14
callq 0x23741
movq %rax, %r12
movq %r14, %rdi
movl $0x58, %esi
callq 0xe119
movq %rax, %r15
movq %rax, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq %r12, 0x10(%rax)
movups %xmm0, 0x18(%rax)
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movl $0x0, 0x48(%rax)
testq %r12, %r12
je 0x121aa
movq %rbx, 0x8(%r12)
addq $0x18, %r15
movq 0x88(%r14), %rax
movq %rax, 0x50(%rbx)
movq %rbx, 0x88(%r14)
cmpl %ebp, 0x74(%r14)
je 0x12227
movq %rbx, %r13
movq %r14, %rdi
callq 0x23741
movq %rax, %r12
movq %r14, %rdi
movl $0x58, %esi
callq 0xe119
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq %r12, 0x10(%rax)
movups %xmm0, 0x18(%rax)
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movl $0x0, 0x48(%rax)
testq %r12, %r12
je 0x12208
movq %rax, 0x8(%r12)
movq 0x88(%r14), %rcx
movq %rcx, 0x50(%rax)
movq %rax, 0x88(%r14)
movq %rax, 0x18(%r13)
movq %rax, %r13
cmpl %ebp, 0x74(%r14)
jne 0x121c9
movq (%r15), %rax
testq %rax, %rax
je 0x12242
movq %rbx, %rcx
movq %rcx, 0x8(%rax)
movq %rax, %rcx
movq 0x18(%rax), %rax
testq %rax, %rax
jne 0x12232
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsparse.c
// Function: jsP_parsefunction
js_Ast *jsP_parsefunction(js_State *J, const char *filename, const char *params, const char *body)
{
	js_Ast *p = NULL;
	int line = 0;
	if (params) {
		jsY_initlex(J, filename, params);
		jsP_next(J);
		J->astdepth = 0;
		p = parameters(J);
	}
	return EXP3(FUN, NULL, p, jsP_parse(J, filename, body));
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r15
movq %rsi, %r12
movq %rdi, %rbx
xorl %r14d, %r14d
testq %rdx, %rdx
je 0x124a3
movq %r12, 0x38(%rbx)
movq %rdx, 0x40(%rbx)
movl $0x1, 0x48(%rbx)
movl %r14d, 0x68(%rbx)
movq %rbx, %rdi
callq 0xe5c9
movq %rbx, %rdi
callq 0xe65c
movl %eax, 0x68(%rbx)
movl %eax, 0x74(%rbx)
movl %r14d, 0x70(%rbx)
movq %rbx, %rdi
callq 0x124dc
movq %rax, %r14
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x120f8
movq $0x0, (%rsp)
movq %rbx, %rdi
movl $0x11, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r14, %r8
movq %rax, %r9
callq 0x125ee
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsparse.c
// Function: parameters
static js_Ast *parameters(js_State *J)
{
	js_Ast *head, *tail;
	if (J->lookahead == ')')
		return NULL;
	head = tail = LIST(identifier(J));
	while (jsP_accept(J, ',')) {
		tail = tail->b = LIST(identifier(J));
	}
	return jsP_list(head);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
cmpl $0x29, 0x74(%rdi)
jne 0x124f2
xorl %ebx, %ebx
jmp 0x125e1
movq %rdi, %r14
callq 0x24385
movq %rax, %r12
movq %r14, %rdi
movl $0x58, %esi
callq 0xe119
movq %rax, %r15
movq %rax, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq %r12, 0x10(%rax)
movups %xmm0, 0x18(%rax)
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movl $0x0, 0x48(%rax)
testq %r12, %r12
je 0x12537
movq %rbx, 0x8(%r12)
addq $0x18, %r15
movq 0x88(%r14), %rax
movq %rax, 0x50(%rbx)
movq %rbx, 0x88(%r14)
cmpl $0x2c, 0x74(%r14)
jne 0x125c6
movq %rbx, %r13
movq %r14, %rdi
callq 0xe65c
movl %eax, 0x68(%r14)
movl %eax, 0x74(%r14)
movq %r14, %rdi
callq 0x24385
movq %rax, %r12
movq %r14, %rdi
movl $0x58, %esi
callq 0xe119
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq %r12, 0x10(%rax)
movups %xmm0, 0x18(%rax)
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movl $0x0, 0x48(%rax)
testq %r12, %r12
je 0x125a6
movq %rax, 0x8(%r12)
movq 0x88(%r14), %rcx
movq %rcx, 0x50(%rax)
movq %rax, 0x88(%r14)
movq %rax, 0x18(%r13)
cmpl $0x2c, 0x74(%r14)
movq %rax, %r13
je 0x12557
movq (%r15), %rax
testq %rax, %rax
je 0x125e1
movq %rbx, %rcx
movq %rcx, 0x8(%rax)
movq %rax, %rcx
movq 0x18(%rax), %rax
testq %rax, %rax
jne 0x125d1
movq %rbx, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsparse.c
// Function: jsP_newnode
static js_Ast *jsP_newnode(js_State *J, enum js_AstType type, int line, js_Ast *a, js_Ast *b, js_Ast *c, js_Ast *d)
{
	js_Ast *node = js_malloc(J, sizeof *node);

	node->type = type;
	node->line = line;
	node->a = a;
	node->b = b;
	node->c = c;
	node->d = d;
	node->number = 0;
	node->string = NULL;
	node->jumps = NULL;
	node->casejump = 0;

	node->parent = NULL;
	if (a) a->parent = node;
	if (b) b->parent = node;
	if (c) c->parent = node;
	if (d) d->parent = node;

	node->gcnext = J->gcast;
	J->gcast = node;

	return node;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r9, %r14
movq %r8, %r15
movq %rcx, %r12
movl %edx, %ebp
movl %esi, %r13d
movq %rdi, %rbx
movl $0x58, %esi
callq 0xe119
movq 0x40(%rsp), %rcx
movl %r13d, (%rax)
movl %ebp, 0x4(%rax)
movq %r12, 0x10(%rax)
movq %r15, 0x18(%rax)
movq %r14, 0x20(%rax)
movq %rcx, 0x28(%rax)
movq $0x0, 0x8(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x3c(%rax)
testq %r12, %r12
je 0x1264c
movq %rax, 0x8(%r12)
testq %r15, %r15
je 0x12655
movq %rax, 0x8(%r15)
testq %r14, %r14
je 0x1265e
movq %rax, 0x8(%r14)
testq %rcx, %rcx
je 0x12667
movq %rax, 0x8(%rcx)
movq 0x88(%rbx), %rcx
movq %rcx, 0x50(%rax)
movq %rax, 0x88(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsproperty.c
// Function: jsV_getpropertyx
js_Property *jsV_getpropertyx(js_State *J, js_Object *obj, const char *name, int *own)
{
	*own = 1;
	do {
		js_Property *ref = lookup(obj->properties, name);
		if (ref)
			return ref;
		obj = obj->prototype;
		*own = 0;
	} while (obj);
	return NULL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r15
movq %rcx, (%rsp)
movl $0x1, (%rcx)
leaq 0x2dcbb(%rip), %r13     # 0x403b8
movq 0x8(%r15), %rbp
cmpq %r13, %rbp
je 0x1272d
leaq 0x38(%rbp), %rsi
movq %r14, %rdi
callq 0x32f0
testl %eax, %eax
je 0x12724
movl %eax, %ecx
notl %ecx
shrl $0x1f, %ecx
movq (%rbp,%rcx,8), %rbp
jmp 0x12727
movq %rbp, %r12
testl %eax, %eax
jne 0x12701
jmp 0x12730
xorl %r12d, %r12d
testq %r12, %r12
je 0x1273a
movq %r12, %rbx
jmp 0x12748
movq 0x18(%r15), %r15
movq (%rsp), %rax
movl $0x0, (%rax)
testq %r12, %r12
jne 0x12754
testq %r15, %r15
jne 0x126fd
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsproperty.c
// Function: jsV_getproperty
js_Property *jsV_getproperty(js_State *J, js_Object *obj, const char *name)
{
	do {
		js_Property *ref = lookup(obj->properties, name);
		if (ref)
			return ref;
		obj = obj->prototype;
	} while (obj);
	return NULL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
leaq 0x2dc3a(%rip), %r12     # 0x403b8
movq 0x8(%r14), %rbp
cmpq %r12, %rbp
je 0x127ae
leaq 0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x32f0
testl %eax, %eax
je 0x127a5
movl %eax, %ecx
notl %ecx
shrl $0x1f, %ecx
movq (%rbp,%rcx,8), %rbp
jmp 0x127a8
movq %rbp, %r13
testl %eax, %eax
jne 0x12782
jmp 0x127b1
xorl %r13d, %r13d
testq %r13, %r13
je 0x127bb
movq %r13, %r15
jmp 0x127bf
movq 0x18(%r14), %r14
testq %r13, %r13
jne 0x127cc
testq %r14, %r14
jne 0x1277e
xorl %r15d, %r15d
movq %r15, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsproperty.c
// Function: jsV_setproperty
js_Property *jsV_setproperty(js_State *J, js_Object *obj, const char *name)
{
	js_Property *result;

	if (!obj->extensible) {
		result = lookup(obj->properties, name);
		if (J->strict && !result)
			js_typeerror(J, "object is non-extensible");
		return result;
	}

	obj->properties = insert(J, obj, obj->properties, name, &result);

	return result;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rdx, %r14
movq %rdi, %rbx
cmpl $0x0, 0x4(%rsi)
movq 0x8(%rsi), %r12
je 0x1281e
movq %rsi, %r15
leaq 0x8(%rsp), %r13
movq %rbx, %rdi
movq %r12, %rdx
movq %r14, %rcx
movq %r13, %r8
callq 0x12886
movq %rax, 0x8(%r15)
movq (%r13), %r15
jmp 0x12864
leaq 0x2db93(%rip), %r13     # 0x403b8
cmpq %r13, %r12
je 0x12851
leaq 0x38(%r12), %rsi
movq %r14, %rdi
callq 0x32f0
testl %eax, %eax
je 0x12848
movl %eax, %ecx
notl %ecx
shrl $0x1f, %ecx
movq (%r12,%rcx,8), %r12
jmp 0x1284b
movq %r12, %r15
testl %eax, %eax
jne 0x12825
jmp 0x12854
xorl %r15d, %r15d
movq %r15, 0x8(%rsp)
cmpl $0x0, 0x34(%rbx)
je 0x12864
testq %r15, %r15
je 0x12875
movq %r15, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
leaq 0x20de2(%rip), %rsi     # 0x3365e
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsproperty.c
// Function: insert
static js_Property *insert(js_State *J, js_Object *obj, js_Property *node, const char *name, js_Property **result)
{
	if (node != &sentinel) {
		int c = strcmp(name, node->name);
		if (c < 0)
			node->left = insert(J, obj, node->left, name, result);
		else if (c > 0)
			node->right = insert(J, obj, node->right, name, result);
		else
			return *result = node;
		node = skew(node);
		node = split(node);
		return node;
	}
	return *result = newproperty(J, obj, name);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %r14
movq %rcx, %r12
movq %rsi, %r15
movq %rdi, %r13
leaq 0x2db14(%rip), %rbp     # 0x403b8
cmpq %rbp, %rdx
je 0x128fa
movq %rdx, %rbx
leaq 0x38(%rdx), %rsi
movq %r12, %rdi
callq 0x32f0
movq %rbx, %rbp
testl %eax, %eax
js 0x128c9
je 0x12957
leaq 0x8(%rbx), %rbp
movq (%rbp), %rdx
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rcx
movq %r14, %r8
callq 0x12886
movq %rax, (%rbp)
movq (%rbx), %rax
movl 0x10(%rax), %ecx
cmpl 0x10(%rbx), %ecx
jne 0x1295c
movq 0x8(%rax), %rcx
movq %rcx, (%rbx)
movq %rbx, 0x8(%rax)
jmp 0x1295f
movq %r12, %rdi
callq 0x3200
leal 0x1(%rax), %ecx
movslq %ecx, %rcx
movq %rcx, (%rsp)
leal 0x39(%rax), %esi
movq %r13, %rdi
callq 0xe119
movq %rax, %rbx
movq %rbp, 0x8(%rax)
movq %rbp, (%rax)
movq $0x1, 0x10(%rax)
movb $0x1, 0x27(%rax)
movq $0x0, 0x18(%rax)
leaq 0x38(%rax), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movq %r12, %rsi
movq (%rsp), %rdx
callq 0x33d0
incl 0x10(%r15)
incl 0x154(%r13)
movq %rbx, (%r14)
jmp 0x12981
movq %rbx, %rax
movq 0x8(%rax), %rbx
movq 0x8(%rbx), %rcx
movl 0x10(%rcx), %ecx
cmpl 0x10(%rax), %ecx
jne 0x1297e
movq (%rbx), %rcx
movq %rcx, 0x8(%rax)
movq %rax, (%rbx)
incl 0x10(%rbx)
jmp 0x12981
movq %rax, %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsproperty.c
// Function: jsV_newiterator
js_Object *jsV_newiterator(js_State *J, js_Object *obj, int own)
{
	js_Object *io = jsV_newobject(J, JS_CITERATOR, NULL);
	io->u.iter.target = obj;
	io->u.iter.i = 0;
	io->u.iter.n = 0;
	if (own) {
		io->u.iter.head = NULL;
		if (obj->properties != &sentinel)
			io->u.iter.head = itwalk(J, io->u.iter.head, obj->properties, NULL);
	} else {
		io->u.iter.head = itflatten(J, obj);
	}
	io->u.iter.current = io->u.iter.head;

	if (obj->type == JS_CSTRING)
		io->u.iter.n = obj->u.s.length;

	if (obj->type == JS_CARRAY && obj->u.a.simple)
		io->u.iter.n = obj->u.a.flat_length;

	return io;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, %r15
movl $0x68, %esi
callq 0xe119
movq %rax, %r14
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x40(%rax)
movups %xmm0, 0x50(%rax)
xorl %ecx, %ecx
movq %rcx, 0x60(%rax)
movq 0x170(%r15), %rax
movq %rax, 0x50(%r14)
movq %r14, 0x170(%r15)
incl 0x154(%r15)
movabsq $0x10000000e, %rax      # imm = 0x10000000E
movq %rax, (%r14)
leaq 0x2d960(%rip), %rax     # 0x403b8
movq %rax, 0x8(%r14)
movq %rcx, 0x18(%r14)
movq %rbx, 0x20(%r14)
movq %rcx, 0x28(%r14)
testl %ebp, %ebp
je 0x12a8b
movq $0x0, 0x30(%r14)
movq 0x8(%rbx), %rdx
cmpq %rax, %rdx
je 0x12a9a
movq %r15, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x12ace
jmp 0x12a96
movq %r15, %rdi
movq %rbx, %rsi
callq 0x12bf4
movq %rax, 0x30(%r14)
movq 0x30(%r14), %rax
movq %rax, 0x38(%r14)
cmpl $0x8, (%rbx)
jne 0x12aae
movl 0x20(%rbx), %eax
movl %eax, 0x2c(%r14)
cmpl $0x1, (%rbx)
jne 0x12ac0
cmpl $0x0, 0x24(%rbx)
je 0x12ac0
movl 0x28(%rbx), %eax
movl %eax, 0x2c(%r14)
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsproperty.c
// Function: itwalk
static js_Iterator *itwalk(js_State *J, js_Iterator *iter, js_Property *prop, js_Object *seen)
{
	if (prop->right != &sentinel)
		iter = itwalk(J, iter, prop->right, seen);
	if (!(prop->atts & JS_DONTENUM)) {
		if (!seen || !jsV_getenumproperty(J, seen, prop->name)) {
			iter = itnewnode(J, prop->name, iter);
		}
	}
	if (prop->left != &sentinel)
		iter = itwalk(J, iter, prop->left, seen);
	return iter;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rcx, %r15
movq %rdx, %r14
movq %rsi, %rax
movq %rdi, 0x10(%rsp)
leaq 0x2d8c7(%rip), %rbx     # 0x403b8
movq %rcx, 0x8(%rsp)
movq 0x8(%r14), %rdx
cmpq %rbx, %rdx
je 0x12b0f
movq 0x10(%rsp), %rdi
movq %rax, %rsi
movq %r15, %rcx
callq 0x12ace
testb $0x2, 0x14(%r14)
jne 0x12bd9
testq %r15, %r15
je 0x12b9a
movq %rax, 0x18(%rsp)
leaq 0x38(%r14), %r13
movq %r15, %rbp
movq 0x8(%rbp), %r12
cmpq %rbx, %r12
je 0x12b5b
leaq 0x38(%r12), %rsi
movq %r13, %rdi
callq 0x32f0
testl %eax, %eax
je 0x12b52
movl %eax, %ecx
notl %ecx
shrl $0x1f, %ecx
movq (%r12,%rcx,8), %r12
jmp 0x12b55
movq %r12, %r15
testl %eax, %eax
jne 0x12b2f
jmp 0x12b5e
xorl %r15d, %r15d
testq %r15, %r15
je 0x12b73
testb $0x2, 0x14(%r15)
jne 0x12b73
xorl %eax, %eax
movq %r15, 0x20(%rsp)
jmp 0x12b79
movq 0x18(%rbp), %rbp
movb $0x1, %al
testb %al, %al
je 0x12b86
testq %rbp, %rbp
jne 0x12b2b
xorl %eax, %eax
jmp 0x12b8b
movq 0x20(%rsp), %rax
testq %rax, %rax
movq 0x8(%rsp), %r15
movq 0x18(%rsp), %rax
jne 0x12bd9
movq %rax, %r15
leaq 0x38(%r14), %r13
movq %r13, %rdi
callq 0x3200
leal 0x1(%rax), %ecx
movslq %ecx, %rbp
leal 0x9(%rax), %esi
movq 0x10(%rsp), %rdi
callq 0xe119
movq %rax, %r12
movq %r15, (%rax)
leaq 0x8(%rax), %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq 0x8(%rsp), %r15
callq 0x33d0
movq %r12, %rax
movq (%r14), %r14
cmpq %rbx, %r14
jne 0x12af6
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsproperty.c
// Function: itflatten
static js_Iterator *itflatten(js_State *J, js_Object *obj)
{
	js_Iterator *iter = NULL;
	if (obj->prototype)
		iter = itflatten(J, obj->prototype);
	if (obj->properties != &sentinel)
		iter = itwalk(J, iter, obj->properties, obj->prototype);
	return iter;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x18(%rsi), %rsi
testq %rsi, %rsi
je 0x12c11
movq %rbx, %rdi
callq 0x12bf4
jmp 0x12c13
xorl %eax, %eax
movq 0x8(%r14), %rdx
leaq 0x2d79a(%rip), %rcx     # 0x403b8
cmpq %rcx, %rdx
je 0x12c39
movq 0x18(%r14), %rcx
movq %rbx, %rdi
movq %rax, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x12ace
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsproperty.c
// Function: jsV_nextiterator
const char *jsV_nextiterator(js_State *J, js_Object *io)
{
	if (io->type != JS_CITERATOR)
		js_typeerror(J, "not an iterator");
	if (io->u.iter.i < io->u.iter.n) {
		js_itoa(J->scratch, io->u.iter.i);
		io->u.iter.i++;
		return J->scratch;
	}
	while (io->u.iter.current) {
		const char *name = io->u.iter.current->name;
		io->u.iter.current = io->u.iter.current->next;
		if (jsV_getproperty(J, io->u.iter.target, name))
			return name;
	}
	return NULL;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpl $0xe, (%rsi)
jne 0x12cb1
movq %rsi, %r14
movl 0x28(%rsi), %esi
cmpl 0x2c(%r14), %esi
jge 0x12c72
addq $0x10c, %rbx            # imm = 0x10C
movq %rbx, %rdi
callq 0x12cc2
incl 0x28(%r14)
jmp 0x12ca2
movq 0x38(%r14), %r15
testq %r15, %r15
je 0x12ca0
movq (%r15), %r12
addq $0x8, %r15
movq %r12, 0x38(%r14)
movq 0x20(%r14), %rsi
movq %r15, %rdx
callq 0x12766
testq %rax, %rax
cmovneq %r15, %rbx
movq %r12, %r15
je 0x12c76
jmp 0x12ca2
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x209bf(%rip), %rsi     # 0x33677
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcce3
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsvalue.c
// Function: js_itoa
const char *js_itoa(char *out, int v)
{
	char buf[32], *s = out;
	unsigned int a;
	int i = 0;
	if (v < 0) {
		a = -v;
		*s++ = '-';
	} else {
		a = v;
	}
	while (a) {
		buf[i++] = (a % 10) + '0';
		a /= 10;
	}
	if (i == 0)
		buf[i++] = '0';
	while (i > 0)
		*s++ = buf[--i];
	*s = 0;
	return out;
}

// Assembly:
movq %rdi, %rax
testl %esi, %esi
js 0x12cce
movq %rax, %rcx
jmp 0x12cd7
negl %esi
leaq 0x1(%rax), %rcx
movb $0x2d, (%rax)
xorl %edx, %edx
testl %esi, %esi
je 0x12d0f
movl $0xcccccccd, %edi       # imm = 0xCCCCCCCD
movl %esi, %r8d
imulq %rdi, %r8
shrq $0x23, %r8
leal (%r8,%r8), %r9d
leal (%r9,%r9,4), %r9d
movl %esi, %r10d
subl %r9d, %r10d
orb $0x30, %r10b
movb %r10b, -0x28(%rsp,%rdx)
incq %rdx
cmpl $0x9, %esi
movl %r8d, %esi
ja 0x12ce2
movl %edx, %esi
testl %edx, %edx
jne 0x12d1f
movb $0x30, -0x28(%rsp)
movl $0x1, %esi
testl %esi, %esi
jle 0x12d40
cmpl $0x1, %edx
adcl $0x0, %edx
incq %rdx
movb -0x2a(%rsp,%rdx), %sil
movb %sil, (%rcx)
incq %rcx
decq %rdx
cmpq $0x1, %rdx
jg 0x12d2c
movb $0x0, (%rcx)
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsproperty.c
// Function: jsV_resizearray
void jsV_resizearray(js_State *J, js_Object *obj, int newlen)
{
	char buf[32];
	const char *s;
	int k;
	assert(!obj->u.a.simple);
	if (newlen < obj->u.a.length) {
		if (obj->u.a.length > obj->count * 2) {
			js_Object *it = jsV_newiterator(J, obj, 1);
			while ((s = jsV_nextiterator(J, it))) {
				k = jsV_numbertointeger(jsV_stringtonumber(J, s));
				if (k >= newlen && !strcmp(s, jsV_numbertostring(J, buf, k)))
					jsV_delproperty(J, obj, s);
			}
		} else {
			for (k = newlen; k < obj->u.a.length; ++k) {
				jsV_delproperty(J, obj, js_itoa(buf, k));
			}
		}
	}
	obj->u.a.length = newlen;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
cmpl $0x0, 0x24(%rsi)
jne 0x12e93
movl %edx, %ebx
movq %rsi, %r14
movl 0x20(%rsi), %eax
cmpl %edx, %eax
jle 0x12e80
movq %rdi, %r15
movl 0x10(%r14), %ecx
addl %ecx, %ecx
cmpl %ecx, %eax
jle 0x12e55
movq %r15, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x129ef
movq %rax, %r12
movq %r15, %rdi
movq %rax, %rsi
callq 0x12c41
testq %rax, %rax
je 0x12e80
movq %rax, %rbp
movq %rsp, %r13
movq %rbp, %rsi
callq 0x12f0d
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
je 0x12ddd
ucomisd %xmm0, %xmm1
jbe 0x12de1
movapd 0x18636(%rip), %xmm1    # 0x2b400
xorpd %xmm1, %xmm0
callq 0x3370
xorpd 0x18625(%rip), %xmm0    # 0x2b400
jmp 0x12de6
xorl %eax, %eax
jmp 0x12e0c
callq 0x3370
movl $0x80000000, %eax       # imm = 0x80000000
movsd 0x1863d(%rip), %xmm1    # 0x2b430
ucomisd %xmm0, %xmm1
ja 0x12e0c
movl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
ucomisd 0x18632(%rip), %xmm0    # 0x2b438
ja 0x12e0c
cvttsd2si %xmm0, %eax
cmpl %ebx, %eax
jl 0x12e3c
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %r13, %rsi
callq 0x1303a
movq %rbp, %rdi
movq %rax, %rsi
callq 0x32f0
testl %eax, %eax
jne 0x12e3c
movq %r15, %rdi
movq %r14, %rsi
movq %rbp, %rdx
callq 0x12993
movq %r15, %rdi
movq %r12, %rsi
callq 0x12c41
movq %rax, %rbp
testq %rax, %rax
jne 0x12daa
jmp 0x12e80
cmpl %ebx, 0x20(%r14)
jle 0x12e80
movq %rsp, %r12
movl %ebx, %ebp
movq %r12, %rdi
movl %ebp, %esi
callq 0x12cc2
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x12993
incl %ebp
cmpl 0x20(%r14), %ebp
jl 0x12e60
movl %ebx, 0x20(%r14)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x207ed(%rip), %rdi     # 0x33687
leaq 0x207f7(%rip), %rsi     # 0x33698
leaq 0x207ff(%rip), %rcx     # 0x336a7
movl $0x145, %edx            # imm = 0x145
callq 0x3130
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsvalue.c
// Function: jsV_numbertointeger
int jsV_numbertointeger(double n)
{
	if (n == 0) return 0;
	if (isnan(n)) return 0;
	n = (n < 0) ? -floor(-n) : floor(n);
	if (n < INT_MIN) return INT_MIN;
	if (n > INT_MAX) return INT_MAX;
	return (int)n;
}

// Assembly:
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
je 0x12eda
pushq %rax
ucomisd %xmm0, %xmm1
jbe 0x12edd
xorpd 0x18535(%rip), %xmm0    # 0x2b400
callq 0x3370
xorpd 0x18528(%rip), %xmm0    # 0x2b400
jmp 0x12ee2
xorl %eax, %eax
retq
callq 0x3370
movl $0x80000000, %eax       # imm = 0x80000000
movsd 0x18541(%rip), %xmm1    # 0x2b430
ucomisd %xmm0, %xmm1
ja 0x12f08
movl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
ucomisd 0x18536(%rip), %xmm0    # 0x2b438
ja 0x12f08
cvttsd2si %xmm0, %eax
addq $0x8, %rsp
retq
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsvalue.c
// Function: jsV_stringtonumber
double jsV_stringtonumber(js_State *J, const char *s)
{
	char *e;
	double n;
	while (jsY_iswhite(*s) || jsY_isnewline(*s)) ++s;
	if (s[0] == '0' && (s[1] == 'x' || s[1] == 'X') && s[2] != 0)
		n = js_strtol(s + 2, &e, 16);
	else if (!strncmp(s, "Infinity", 8))
		n = INFINITY, e = (char*)s + 8;
	else if (!strncmp(s, "+Infinity", 9))
		n = INFINITY, e = (char*)s + 9;
	else if (!strncmp(s, "-Infinity", 9))
		n = -INFINITY, e = (char*)s + 9;
	else
		n = js_stringtofloat(s, &e);
	while (jsY_iswhite(*e) || jsY_isnewline(*e)) ++e;
	if (*e) return NAN;
	return n;
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movq %rsi, %rbx
movzbl (%rbx), %eax
leal -0x9(%rax), %ecx
cmpl $0x5, %ecx
jae 0x12f25
incq %rbx
jmp 0x12f15
cmpl $0x20, %eax
je 0x12f20
cmpl $0x30, %eax
jne 0x12f8b
movzbl 0x1(%rbx), %eax
orl $0x20, %eax
cmpl $0x78, %eax
jne 0x12f8b
movzbl 0x2(%rbx), %ecx
testq %rcx, %rcx
je 0x12f8b
addq $0x2, %rbx
leaq 0x18fb1(%rip), %rax     # 0x2bf00
movb (%rcx,%rax), %cl
xorpd %xmm0, %xmm0
cmpb $0xf, %cl
ja 0x12f84
movsd 0x18605(%rip), %xmm1    # 0x2b568
movsbl %cl, %ecx
xorps %xmm2, %xmm2
cvtsi2sd %ecx, %xmm2
mulsd %xmm1, %xmm0
addsd %xmm2, %xmm0
movzbl 0x1(%rbx), %ecx
incq %rbx
movb (%rcx,%rax), %cl
cmpb $0x10, %cl
jb 0x12f63
movq %rbx, 0x8(%rsp)
jmp 0x12ff9
leaq 0x20af4(%rip), %rsi     # 0x33a86
movl $0x8, %edx
movq %rbx, %rdi
callq 0x3160
testl %eax, %eax
je 0x12fe2
leaq 0x20adb(%rip), %rsi     # 0x33a85
movl $0x9, %edx
movq %rbx, %rdi
callq 0x3160
testl %eax, %eax
je 0x12fe8
leaq 0x20acd(%rip), %rsi     # 0x33a8f
movl $0x9, %edx
movq %rbx, %rdi
callq 0x3160
testl %eax, %eax
je 0x13027
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1a027
jmp 0x12ff9
addq $0x8, %rbx
jmp 0x12fec
addq $0x9, %rbx
movq %rbx, 0x8(%rsp)
movsd 0x1845f(%rip), %xmm0    # 0x2b458
movq 0x8(%rsp), %rax
movb (%rax), %cl
movzbl %cl, %edx
leal -0x9(%rdx), %esi
cmpl $0x5, %esi
jae 0x13010
incq %rax
jmp 0x12ffe
cmpl $0x20, %edx
je 0x1300b
testb %cl, %cl
je 0x13021
movsd 0x1842f(%rip), %xmm0    # 0x2b450
addq $0x10, %rsp
popq %rbx
retq
addq $0x9, %rbx
movq %rbx, 0x8(%rsp)
movsd 0x18438(%rip), %xmm0    # 0x2b470
jmp 0x12ff9
// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsregexp.c
// Function: js_newregexpx
static void js_newregexpx(js_State *J, const char *pattern, int flags, int is_clone)
{
	const char *error;
	js_Object *obj;
	Reprog *prog;
	int opts;

	obj = jsV_newobject(J, JS_CREGEXP, J->RegExp_prototype);

	opts = 0;
	if (flags & JS_REGEXP_I) opts |= REG_ICASE;
	if (flags & JS_REGEXP_M) opts |= REG_NEWLINE;

	prog = js_regcompx(J->alloc, J->actx, pattern, opts, &error);
	if (!prog)
		js_syntaxerror(J, "regular expression: %s", error);

	obj->u.r.prog = prog;
	obj->u.r.source = is_clone ? js_strdup(J, pattern) : escaperegexp(J, pattern);
	obj->u.r.flags = flags;
	obj->u.r.last = 0;
	js_pushobject(J, obj);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %ecx, %r12d
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %rbx
movq 0xc0(%rdi), %r13
movl $0x68, %esi
callq 0xe119
movq %rax, %r14
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x40(%rax)
movups %xmm0, 0x50(%rax)
movq $0x0, 0x60(%rax)
movq 0x170(%rbx), %rax
movq %rax, 0x50(%r14)
movq %r14, 0x170(%rbx)
incl 0x154(%rbx)
movabsq $0x100000009, %rax      # imm = 0x100000009
movq %rax, (%r14)
leaq 0x2d0f0(%rip), %rax     # 0x403b8
movq %rax, 0x8(%r14)
movq %r13, 0x18(%r14)
movl %ebp, %ecx
shrl %ecx
andl $0x3, %ecx
movq (%rbx), %rsi
movq 0x10(%rbx), %rdi
movq %rsp, %r8
movq %r15, %rdx
callq 0x7110
testq %rax, %rax
je 0x1339f
movq %rax, 0x20(%r14)
testl %r12d, %r12d
je 0x13327
movq %r15, %rdi
callq 0x3200
movq %rax, %r13
incl %r13d
movq %rbx, %rdi
movl %r13d, %esi
callq 0xe119
movq %rax, %r12
movslq %r13d, %rdx
movq %rax, %rdi
movq %r15, %rsi
callq 0x33d0
jmp 0x13375
xorl %esi, %esi
movq %r15, %rax
movzbl (%rax), %ecx
cmpl $0x2f, %ecx
je 0x1333a
testl %ecx, %ecx
jne 0x1333c
jmp 0x13343
incl %esi
incl %esi
incq %rax
jmp 0x1332c
incl %esi
movq %rbx, %rdi
callq 0xe119
movq %rax, %r12
movzbl (%r15), %ecx
cmpl $0x2f, %ecx
je 0x1335f
testl %ecx, %ecx
jne 0x13365
jmp 0x13372
movb $0x5c, (%rax)
incq %rax
movb (%r15), %cl
movb %cl, (%rax)
incq %rax
incq %r15
jmp 0x13350
movb $0x0, (%rax)
movq %r12, 0x28(%r14)
movw %bp, 0x30(%r14)
movw $0x0, 0x32(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44e7
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rsp), %rdx
leaq 0x21a72(%rip), %rsi     # 0x34e1c
movq %rbx, %rdi
xorl %eax, %eax
callq 0xcc25