LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jscompile.c
// Function: cassignop1
static void cassignop1(JF, js_Ast *lhs)
{
	switch (lhs->type) {
	case EXP_IDENTIFIER:
		emitline(J, F, lhs);
		emitlocal(J, F, OP_GETLOCAL, OP_GETVAR, lhs);
		break;
	case EXP_INDEX:
		cexp(J, F, lhs->a);
		cexp(J, F, lhs->b);
		emitline(J, F, lhs);
		emit(J, F, OP_DUP2);
		emit(J, F, OP_GETPROP);
		break;
	case EXP_MEMBER:
		cexp(J, F, lhs->a);
		emitline(J, F, lhs);
		emit(J, F, OP_DUP);
		emitstring(J, F, OP_GETPROP_S, lhs->b->string);
		break;
	default:
		jsC_error(J, lhs, "invalid l-value in assignment");
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1c(%rbp)
subl $0x3, %eax
je 0x2253f
jmp 0x22524
movl -0x1c(%rbp), %eax
subl $0x12, %eax
je 0x22570
jmp 0x2252e
movl -0x1c(%rbp), %eax
subl $0x13, %eax
je 0x225d1
jmp 0x22629
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %r8
movl $0x13, %edx
movl $0x17, %ecx
callq 0x21bb0
jmp 0x2263f
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x2, %edx
callq 0x1ef90
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x20, %edx
callq 0x1ef90
jmp 0x2263f
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x1, %edx
callq 0x1ef90
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x38(%rax), %rcx
movl $0x21, %edx
callq 0x21d10
jmp 0x2263f
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x1a19f(%rip), %rdx     # 0x3c7d7
movb $0x0, %al
callq 0x8b80
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jscompile.c
// Function: cassignop2
static void cassignop2(JF, js_Ast *lhs, int postfix)
{
	switch (lhs->type) {
	case EXP_IDENTIFIER:
		emitline(J, F, lhs);
		if (postfix) emit(J, F, OP_ROT2);
		emitlocal(J, F, OP_SETLOCAL, OP_SETVAR, lhs);
		break;
	case EXP_INDEX:
		emitline(J, F, lhs);
		if (postfix) emit(J, F, OP_ROT4);
		emit(J, F, OP_SETPROP);
		break;
	case EXP_MEMBER:
		emitline(J, F, lhs);
		if (postfix) emit(J, F, OP_ROT3);
		emitstring(J, F, OP_SETPROP_S, lhs->b->string);
		break;
	default:
		jsC_error(J, lhs, "invalid l-value in assignment");
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
subl $0x3, %eax
je 0x22692
jmp 0x22677
movl -0x20(%rbp), %eax
subl $0x12, %eax
je 0x226db
jmp 0x22681
movl -0x20(%rbp), %eax
subl $0x13, %eax
je 0x22718
jmp 0x22761
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
cmpl $0x0, -0x1c(%rbp)
je 0x226bb
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x3, %edx
callq 0x1ef90
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %r8
movl $0x14, %edx
movl $0x18, %ecx
callq 0x21bb0
jmp 0x22777
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
cmpl $0x0, -0x1c(%rbp)
je 0x22704
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x5, %edx
callq 0x1ef90
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x22, %edx
callq 0x1ef90
jmp 0x22777
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
cmpl $0x0, -0x1c(%rbp)
je 0x22741
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x4, %edx
callq 0x1ef90
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x38(%rax), %rcx
movl $0x23, %edx
callq 0x21d10
jmp 0x22777
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x1a067(%rip), %rdx     # 0x3c7d7
movb $0x0, %al
callq 0x8b80
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jscompile.c
// Function: ctypeof
static void ctypeof(JF, js_Ast *exp)
{
	if (exp->a->type == EXP_IDENTIFIER) {
		emitline(J, F, exp->a);
		emitlocal(J, F, OP_GETLOCAL, OP_HASVAR, exp->a);
	} else {
		cexp(J, F, exp->a);
	}
	emitline(J, F, exp);
	emit(J, F, OP_TYPEOF);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x3, (%rax)
jne 0x227d7
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
callq 0x1f2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %r8
movl $0x13, %edx
movl $0x16, %ecx
callq 0x21bb0
jmp 0x227ec
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x2b, %edx
callq 0x1ef90
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jscompile.c
// Function: cbinary
static void cbinary(JF, js_Ast *exp, int opcode)
{
	cexp(J, F, exp->a);
	cexp(J, F, exp->b);
	emitline(J, F, exp);
	emit(J, F, opcode);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x1c(%rbp), %edx
callq 0x1ef90
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jscompile.c
// Function: cassign
static void cassign(JF, js_Ast *exp)
{
	js_Ast *lhs = exp->a;
	js_Ast *rhs = exp->b;
	switch (lhs->type) {
	case EXP_IDENTIFIER:
		cexp(J, F, rhs);
		emitline(J, F, exp);
		emitlocal(J, F, OP_SETLOCAL, OP_SETVAR, lhs);
		break;
	case EXP_INDEX:
		cexp(J, F, lhs->a);
		cexp(J, F, lhs->b);
		cexp(J, F, rhs);
		emitline(J, F, exp);
		emit(J, F, OP_SETPROP);
		break;
	case EXP_MEMBER:
		cexp(J, F, lhs->a);
		cexp(J, F, rhs);
		emitline(J, F, exp);
		emitstring(J, F, OP_SETPROP_S, lhs->b->string);
		break;
	default:
		jsC_error(J, lhs, "invalid l-value in assignment");
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x2c(%rbp)
subl $0x3, %eax
je 0x22947
jmp 0x2292c
movl -0x2c(%rbp), %eax
subl $0x12, %eax
je 0x22989
jmp 0x22936
movl -0x2c(%rbp), %eax
subl $0x13, %eax
je 0x229e9
jmp 0x22a40
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %r8
movl $0x14, %edx
movl $0x18, %ecx
callq 0x21bb0
jmp 0x22a56
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x22, %edx
callq 0x1ef90
jmp 0x22a56
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x38(%rax), %rcx
movl $0x23, %edx
callq 0x21d10
jmp 0x22a56
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
leaq 0x19d88(%rip), %rdx     # 0x3c7d7
movb $0x0, %al
callq 0x8b80
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jscompile.c
// Function: cassignop
static void cassignop(JF, js_Ast *exp, int opcode)
{
	js_Ast *lhs = exp->a;
	js_Ast *rhs = exp->b;
	cassignop1(J, F, lhs);
	cexp(J, F, rhs);
	emitline(J, F, exp);
	emit(J, F, opcode);
	cassignop2(J, F, lhs, 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x22500
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0x20220
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1f2b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x1c(%rbp), %edx
callq 0x1ef90
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
xorl %ecx, %ecx
callq 0x22650
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jscompile.c
// Function: checkdup
static void checkdup(JF, js_Ast *list, js_Ast *end)
{
	char nbuf[32], sbuf[32];
	const char *needle, *straw;

	if (end->a->type == EXP_NUMBER)
		needle = jsV_numbertostring(J, nbuf, end->a->number);
	else
		needle = end->a->string;

	while (list->a != end) {
		if (list->a->type == end->type) {
			js_Ast *prop = list->a->a;
			if (prop->type == EXP_NUMBER)
				straw = jsV_numbertostring(J, sbuf, prop->number);
			else
				straw =  prop->string;
			if (!strcmp(needle, straw))
				jsC_error(J, list, "duplicate property '%s' in object literal", needle);
		}
		list = list->b;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x4, (%rax)
jne 0x22b38
movq -0x8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movsd 0x30(%rax), %xmm0
callq 0x13040
movq %rax, -0x68(%rbp)
jmp 0x22b48
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x38(%rax), %rax
movq %rax, -0x68(%rbp)
jmp 0x22b4a
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
cmpq -0x20(%rbp), %rax
je 0x22bee
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
movq -0x20(%rbp), %rcx
cmpl (%rcx), %eax
jne 0x22bdd
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
cmpl $0x4, (%rax)
jne 0x22ba3
movq -0x8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
movq -0x78(%rbp), %rax
movsd 0x30(%rax), %xmm0
callq 0x13040
movq %rax, -0x70(%rbp)
jmp 0x22baf
movq -0x78(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x68(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0x32d0
cmpl $0x0, %eax
jne 0x22bdb
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x68(%rbp), %rcx
leaq 0x19b78(%rip), %rdx     # 0x3c74c
movb $0x0, %al
callq 0x8b80
jmp 0x22bdd
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x22b4a
addq $0x80, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jscompile.c
// Function: ceval
static void ceval(JF, js_Ast *fun, js_Ast *args)
{
	int n = cargs(J, F, args);
	F->lightweight = 0;
	F->arguments = 1;
	if (n == 0)
		emit(J, F, OP_UNDEF);
	else while (n-- > 1)
		emit(J, F, OP_POP);
	emit(J, F, OP_EVAL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x22350
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rax
movl $0x0, 0xc(%rax)
movq -0x10(%rbp), %rax
movl $0x1, 0x14(%rax)
cmpl $0x0, -0x24(%rbp)
jne 0x22c5c
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0xd, %edx
callq 0x1ef90
jmp 0x22c81
jmp 0x22c5e
movl -0x24(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x24(%rbp)
cmpl $0x1, %eax
jle 0x22c7f
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0x1ef90
jmp 0x22c5e
jmp 0x22c81
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x28, %edx
callq 0x1ef90
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jscompile.c
// Function: matchlabel
static int matchlabel(js_Ast *node, const char *label)
{
	while (node && node->type == STM_LABEL) {
		if (!strcmp(node->a->string, label))
			return 1;
		node = node->parent;
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x19(%rbp)
je 0x22d29
movq -0x10(%rbp), %rax
cmpl $0x59, (%rax)
sete %al
movb %al, -0x19(%rbp)
movb -0x19(%rbp), %al
testb $0x1, %al
jne 0x22d32
jmp 0x22d63
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x38(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x32d0
cmpl $0x0, %eax
jne 0x22d55
movl $0x1, -0x4(%rbp)
jmp 0x22d6a
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0x22d10
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: js_todate
static double js_todate(js_State *J, int idx)
{
	js_Object *self = js_toobject(J, idx);
	if (self->type != JS_CDATE)
		js_typeerror(J, "not a date");
	return self->u.number;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x11760
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0xa, (%rax)
je 0x22dba
movq -0x8(%rbp), %rdi
leaq 0x19ae0(%rip), %rsi     # 0x3c893
movb $0x0, %al
callq 0xbfe0
movq -0x18(%rbp), %rax
movsd 0x20(%rax), %xmm0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: fmtdatetime
static char *fmtdatetime(char *buf, double t, double tza)
{
	char dbuf[20], tbuf[20];
	if (!isfinite(t))
		return "Invalid Date";
	fmtdate(dbuf, t);
	fmttime(tbuf, t, tza);
	sprintf(buf, "%sT%s", dbuf, tbuf);
	return buf;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movsd %xmm0, -0x18(%rbp)
movsd %xmm1, -0x20(%rbp)
movsd -0x18(%rbp), %xmm0
movq %xmm0, %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
andq %rcx, %rax
movabsq $0x7ff0000000000000, %rcx # imm = 0x7FF0000000000000
subq %rcx, %rax
setl %al
testb $0x1, %al
jne 0x22e1e
leaq 0x19a86(%rip), %rax     # 0x3c89e
movq %rax, -0x8(%rbp)
jmp 0x22e61
leaq -0x40(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
callq 0x22f40
leaq -0x60(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
callq 0x22ff0
movq -0x10(%rbp), %rdi
leaq -0x40(%rbp), %rdx
leaq -0x60(%rbp), %rcx
leaq 0x19a59(%rip), %rsi     # 0x3c8ab
movb $0x0, %al
callq 0x3200
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: LocalTZA
static double LocalTZA(void)
{
	static int once = 1;
	static double tza = 0;
	if (once) {
		time_t now = time(NULL);
		time_t utc = mktime(gmtime(&now));
		time_t loc = mktime(localtime(&now));
		tza = (loc - utc) * 1000;
		once = 0;
	}
	return tza;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
cmpl $0x0, 0x24e19(%rip)     # 0x47ce8
je 0x22f2e
xorl %eax, %eax
movl %eax, %edi
callq 0x33c0
movq %rax, -0x8(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x3180
movq %rax, %rdi
callq 0x3050
movq %rax, -0x10(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x3370
movq %rax, %rdi
callq 0x3050
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
subq -0x10(%rbp), %rax
imulq $0x3e8, %rax, %rax      # imm = 0x3E8
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x24f34(%rip)    # 0x47e58
movl $0x0, 0x24dba(%rip)     # 0x47ce8
movsd 0x24f22(%rip), %xmm0    # 0x47e58
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: fmtdate
static char *fmtdate(char *buf, double t)
{
	int y = YearFromTime(t);
	int m = MonthFromTime(t);
	int d = DateFromTime(t);
	if (!isfinite(t))
		return "Invalid Date";
	sprintf(buf, "%04d-%02d-%02d", y, m+1, d);
	return buf;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
callq 0x23160
movl %eax, -0x1c(%rbp)
movsd -0x18(%rbp), %xmm0
callq 0x23210
movl %eax, -0x20(%rbp)
movsd -0x18(%rbp), %xmm0
callq 0x23360
movl %eax, -0x24(%rbp)
movsd -0x18(%rbp), %xmm0
movq %xmm0, %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
andq %rcx, %rax
movabsq $0x7ff0000000000000, %rcx # imm = 0x7FF0000000000000
subq %rcx, %rax
setl %al
testb $0x1, %al
jne 0x22fb0
leaq 0x198f4(%rip), %rax     # 0x3c89e
movq %rax, -0x8(%rbp)
jmp 0x22fd7
movq -0x10(%rbp), %rdi
movl -0x1c(%rbp), %edx
movl -0x20(%rbp), %ecx
addl $0x1, %ecx
movl -0x24(%rbp), %r8d
leaq 0x198e9(%rip), %rsi     # 0x3c8b1
movb $0x0, %al
callq 0x3200
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: fmttime
static char *fmttime(char *buf, double t, double tza)
{
	int H = HourFromTime(t);
	int M = MinFromTime(t);
	int S = SecFromTime(t);
	int ms = msFromTime(t);
	int tzh = HourFromTime(fabs(tza));
	int tzm = MinFromTime(fabs(tza));
	if (!isfinite(t))
		return "Invalid Date";
	if (tza == 0)
		sprintf(buf, "%02d:%02d:%02d.%03dZ", H, M, S, ms);
	else if (tza < 0)
		sprintf(buf, "%02d:%02d:%02d.%03d-%02d:%02d", H, M, S, ms, tzh, tzm);
	else
		sprintf(buf, "%02d:%02d:%02d.%03d+%02d:%02d", H, M, S, ms, tzh, tzm);
	return buf;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movsd %xmm0, -0x18(%rbp)
movsd %xmm1, -0x20(%rbp)
movsd -0x18(%rbp), %xmm0
callq 0x23680
movl %eax, -0x24(%rbp)
movsd -0x18(%rbp), %xmm0
callq 0x236c0
movl %eax, -0x28(%rbp)
movsd -0x18(%rbp), %xmm0
callq 0x23700
movl %eax, -0x2c(%rbp)
movsd -0x18(%rbp), %xmm0
callq 0x23740
movl %eax, -0x30(%rbp)
movsd -0x20(%rbp), %xmm0
movaps 0x1802a(%rip), %xmm1    # 0x3b070
pand %xmm1, %xmm0
callq 0x23680
movl %eax, -0x34(%rbp)
movsd -0x20(%rbp), %xmm0
movaps 0x18012(%rip), %xmm1    # 0x3b070
pand %xmm1, %xmm0
callq 0x236c0
movl %eax, -0x38(%rbp)
movsd -0x18(%rbp), %xmm0
movq %xmm0, %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
andq %rcx, %rax
movabsq $0x7ff0000000000000, %rcx # imm = 0x7FF0000000000000
subq %rcx, %rax
setl %al
testb $0x1, %al
jne 0x230a5
leaq 0x19802(%rip), %rax     # 0x3c89e
movq %rax, -0x8(%rbp)
jmp 0x2314b
movsd -0x20(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x230d7
jp 0x230d7
movq -0x10(%rbp), %rdi
movl -0x24(%rbp), %edx
movl -0x28(%rbp), %ecx
movl -0x2c(%rbp), %r8d
movl -0x30(%rbp), %r9d
leaq 0x197f2(%rip), %rsi     # 0x3c8c0
movb $0x0, %al
callq 0x3200
jmp 0x23143
xorps %xmm0, %xmm0
ucomisd -0x20(%rbp), %xmm0
jbe 0x23112
movq -0x10(%rbp), %rdi
movl -0x24(%rbp), %edx
movl -0x28(%rbp), %ecx
movl -0x2c(%rbp), %r8d
movl -0x30(%rbp), %r9d
movl -0x34(%rbp), %r10d
movl -0x38(%rbp), %eax
leaq 0x197d4(%rip), %rsi     # 0x3c8d5
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x3200
jmp 0x23141
movq -0x10(%rbp), %rdi
movl -0x24(%rbp), %edx
movl -0x28(%rbp), %ecx
movl -0x2c(%rbp), %r8d
movl -0x30(%rbp), %r9d
movl -0x34(%rbp), %r10d
movl -0x38(%rbp), %eax
leaq 0x197c1(%rip), %rsi     # 0x3c8f3
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x3200
jmp 0x23143
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: YearFromTime
static int YearFromTime(double t)
{
	int y = floor(t / (msPerDay * 365.2425)) + 1970;
	double t2 = TimeFromYear(y);
	if (t2 > t)
		--y;
	else if (t2 + msPerDay * DaysInYear(y) <= t)
		++y;
	return y;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
movsd 0x10396(%rip), %xmm1    # 0x33510
divsd %xmm1, %xmm0
callq 0x3340
movsd 0x1037d(%rip), %xmm1    # 0x33508
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %edi
callq 0x23480
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
ucomisd -0x8(%rbp), %xmm0
jbe 0x231ba
movl -0xc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x231fb
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
movl -0xc(%rbp), %edi
callq 0x234b0
movsd -0x20(%rbp), %xmm0
cvtsi2sd %eax, %xmm1
movsd 0x1033b(%rip), %xmm2    # 0x33518
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x8(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x231f9
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x231fb
movl -0xc(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: MonthFromTime
static int MonthFromTime(double t)
{
	int day = DayWithinYear(t);
	int leap = InLeapYear(t);
	if (day < 31) return 0;
	if (day < 59 + leap) return 1;
	if (day < 90 + leap) return 2;
	if (day < 120 + leap) return 3;
	if (day < 151 + leap) return 4;
	if (day < 181 + leap) return 5;
	if (day < 212 + leap) return 6;
	if (day < 243 + leap) return 7;
	if (day < 273 + leap) return 8;
	if (day < 304 + leap) return 9;
	if (day < 334 + leap) return 10;
	return 11;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
callq 0x235d0
movl %eax, -0x14(%rbp)
movsd -0x10(%rbp), %xmm0
callq 0x23610
movl %eax, -0x18(%rbp)
cmpl $0x1f, -0x14(%rbp)
jge 0x23249
movl $0x0, -0x4(%rbp)
jmp 0x23350
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
addl $0x3b, %ecx
cmpl %ecx, %eax
jge 0x23262
movl $0x1, -0x4(%rbp)
jmp 0x23350
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
addl $0x5a, %ecx
cmpl %ecx, %eax
jge 0x2327b
movl $0x2, -0x4(%rbp)
jmp 0x23350
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
addl $0x78, %ecx
cmpl %ecx, %eax
jge 0x23294
movl $0x3, -0x4(%rbp)
jmp 0x23350
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
addl $0x97, %ecx
cmpl %ecx, %eax
jge 0x232b0
movl $0x4, -0x4(%rbp)
jmp 0x23350
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
addl $0xb5, %ecx
cmpl %ecx, %eax
jge 0x232cc
movl $0x5, -0x4(%rbp)
jmp 0x23350
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
addl $0xd4, %ecx
cmpl %ecx, %eax
jge 0x232e5
movl $0x6, -0x4(%rbp)
jmp 0x23350
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
addl $0xf3, %ecx
cmpl %ecx, %eax
jge 0x232fe
movl $0x7, -0x4(%rbp)
jmp 0x23350
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
addl $0x111, %ecx            # imm = 0x111
cmpl %ecx, %eax
jge 0x23317
movl $0x8, -0x4(%rbp)
jmp 0x23350
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
addl $0x130, %ecx            # imm = 0x130
cmpl %ecx, %eax
jge 0x23330
movl $0x9, -0x4(%rbp)
jmp 0x23350
movl -0x14(%rbp), %eax
movl -0x18(%rbp), %ecx
addl $0x14e, %ecx            # imm = 0x14E
cmpl %ecx, %eax
jge 0x23349
movl $0xa, -0x4(%rbp)
jmp 0x23350
movl $0xb, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: DateFromTime
static int DateFromTime(double t)
{
	int day = DayWithinYear(t);
	int leap = InLeapYear(t);
	switch (MonthFromTime(t)) {
	case 0: return day + 1;
	case 1: return day - 30;
	case 2: return day - 58 - leap;
	case 3: return day - 89 - leap;
	case 4: return day - 119 - leap;
	case 5: return day - 150 - leap;
	case 6: return day - 180 - leap;
	case 7: return day - 211 - leap;
	case 8: return day - 242 - leap;
	case 9: return day - 272 - leap;
	case 10: return day - 303 - leap;
	default : return day - 333 - leap;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
callq 0x235d0
movl %eax, -0x14(%rbp)
movsd -0x10(%rbp), %xmm0
callq 0x23610
movl %eax, -0x18(%rbp)
movsd -0x10(%rbp), %xmm0
callq 0x23210
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0xa, %eax
ja 0x2345d
movq -0x20(%rbp), %rax
leaq 0x10899(%rip), %rcx     # 0x33c44
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0x1e, %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0x3a, %eax
subl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0x59, %eax
subl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0x77, %eax
subl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0x96, %eax
subl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0xb4, %eax
subl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0xd3, %eax
subl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0xf2, %eax
subl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0x110, %eax            # imm = 0x110
subl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0x12f, %eax            # imm = 0x12F
subl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x2346b
movl -0x14(%rbp), %eax
subl $0x14d, %eax            # imm = 0x14D
subl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: DayFromYear
static int DayFromYear(int y)
{
	return 365 * (y - 1970) +
		floor((y - 1969) / 4.0) -
		floor((y - 1901) / 100.0) +
		floor((y - 1601) / 400.0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
movl -0x4(%rbp), %eax
subl $0x7b2, %eax            # imm = 0x7B2
imull $0x16d, %eax, %eax      # imm = 0x16D
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x20(%rbp)
movl -0x4(%rbp), %eax
subl $0x7b1, %eax            # imm = 0x7B1
cvtsi2sd %eax, %xmm0
movsd 0xffe2(%rip), %xmm1     # 0x33528
divsd %xmm1, %xmm0
callq 0x3340
movaps %xmm0, %xmm1
movsd -0x20(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movl -0x4(%rbp), %eax
subl $0x76d, %eax            # imm = 0x76D
cvtsi2sd %eax, %xmm0
movsd 0xff0c(%rip), %xmm1     # 0x33480
divsd %xmm1, %xmm0
callq 0x3340
movaps %xmm0, %xmm1
movsd -0x18(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movl -0x4(%rbp), %eax
subl $0x641, %eax            # imm = 0x641
cvtsi2sd %eax, %xmm0
movsd 0xff7e(%rip), %xmm1     # 0x33520
divsd %xmm1, %xmm0
callq 0x3340
movaps %xmm0, %xmm1
movsd -0x10(%rbp), %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: pmod
static double pmod(double x, double y)
{
	x = fmod(x, y);
	if (x < 0)
		x += y;
	return x;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movsd %xmm0, -0x8(%rbp)
movsd %xmm1, -0x10(%rbp)
movsd -0x8(%rbp), %xmm0
movsd -0x10(%rbp), %xmm1
callq 0x3190
movsd %xmm0, -0x8(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x8(%rbp), %xmm0
jbe 0x237af
movsd -0x10(%rbp), %xmm0
addsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: js_setdate
static void js_setdate(js_State *J, int idx, double t)
{
	js_Object *self = js_toobject(J, idx);
	if (self->type != JS_CDATE)
		js_typeerror(J, "not a date");
	self->u.number = TimeClip(t);
	js_pushnumber(J, self->u.number);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movsd %xmm0, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x11760
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpl $0xa, (%rax)
je 0x2384f
movq -0x8(%rbp), %rdi
leaq 0x1904b(%rip), %rsi     # 0x3c893
movb $0x0, %al
callq 0xbfe0
movsd -0x18(%rbp), %xmm0
callq 0x23880
movq -0x20(%rbp), %rax
movsd %xmm0, 0x20(%rax)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rax
movsd 0x20(%rax), %xmm0
callq 0x44d0
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: TimeClip
static double TimeClip(double t)
{
	if (!isfinite(t))
		return NAN;
	if (fabs(t) > 8.64e15)
		return NAN;
	return t < 0 ? -floor(-t) : floor(t);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
movq %xmm0, %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
andq %rcx, %rax
movabsq $0x7ff0000000000000, %rcx # imm = 0x7FF0000000000000
subq %rcx, %rax
setl %al
testb $0x1, %al
jne 0x238ca
movsd 0xfb50(%rip), %xmm0     # 0x33410
movsd %xmm0, -0x8(%rbp)
jmp 0x23959
movsd -0x10(%rbp), %xmm0
movaps 0x1779a(%rip), %xmm1    # 0x3b070
pand %xmm1, %xmm0
movsd 0xfc76(%rip), %xmm1     # 0x33558
ucomisd %xmm1, %xmm0
jbe 0x238f7
movsd 0xfb20(%rip), %xmm0     # 0x33410
movsd %xmm0, -0x8(%rbp)
jmp 0x23959
xorps %xmm0, %xmm0
ucomisd -0x10(%rbp), %xmm0
jbe 0x23940
movsd -0x10(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x3340
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x18(%rbp)
jmp 0x2394f
movsd -0x10(%rbp), %xmm0
callq 0x3340
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: MakeDay
static double MakeDay(double y, double m, double date)
{
	/*
	 * The following array contains the day of year for the first day of
	 * each month, where index 0 is January, and day 0 is January 1.
	 */
	static const double firstDayOfMonth[2][12] = {
		{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334},
		{0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335}
	};

	double yd, md;
	int im;

	y += floor(m / 12);
	m = pmod(m, 12);

	im = (int)m;
	if (im < 0 || im >= 12)
		return NAN;

	yd = floor(TimeFromYear(y) / msPerDay);
	md = firstDayOfMonth[DaysInYear(y) == 366][im];

	return yd + md + date - 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movsd %xmm0, -0x10(%rbp)
movsd %xmm1, -0x18(%rbp)
movsd %xmm2, -0x20(%rbp)
movsd -0x18(%rbp), %xmm0
movsd 0xfadc(%rip), %xmm1     # 0x33560
divsd %xmm1, %xmm0
callq 0x3340
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x10(%rbp)
movsd -0x18(%rbp), %xmm0
movsd 0xfabc(%rip), %xmm1     # 0x33560
callq 0x23770
movsd %xmm0, -0x18(%rbp)
cvttsd2si -0x18(%rbp), %eax
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
jl 0x23ac2
cmpl $0xc, -0x34(%rbp)
jl 0x23ad1
movsd 0xf946(%rip), %xmm0     # 0x33410
movsd %xmm0, -0x8(%rbp)
jmp 0x23b47
cvttsd2si -0x10(%rbp), %edi
callq 0x23480
movsd 0xfa35(%rip), %xmm1     # 0x33518
divsd %xmm1, %xmm0
callq 0x3340
movsd %xmm0, -0x28(%rbp)
cvttsd2si -0x10(%rbp), %edi
callq 0x234b0
cmpl $0x16e, %eax            # imm = 0x16E
sete %al
andb $0x1, %al
movzbl %al, %eax
movslq %eax, %rcx
leaq 0x1542e(%rip), %rax     # 0x38f40
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movslq -0x34(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x28(%rbp), %xmm0
addsd -0x30(%rbp), %xmm0
addsd -0x20(%rbp), %xmm0
movsd 0xf932(%rip), %xmm1     # 0x33470
subsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdate.c
// Function: toint
static int toint(const char **sp, int w, int *v)
{
	const char *s = *sp;
	*v = 0;
	while (w--) {
		if (*s < '0' || *s > '9')
			return 0;
		*v = *v * 10 + (*s++ - '0');
	}
	*sp = s;
	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
je 0x2411b
movq -0x28(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jl 0x240ec
movq -0x28(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
jle 0x240f5
movl $0x0, -0x4(%rbp)
jmp 0x2412d
movq -0x20(%rbp), %rax
imull $0xa, (%rax), %ecx
movq -0x28(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x28(%rbp)
movsbl (%rax), %eax
subl $0x30, %eax
addl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
jmp 0x240c4
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsdtoa.c
// Function: double2diy_fp
static diy_fp_t double2diy_fp(double d)
{
	uint64_t d64 = double_to_uint64(d);
	int biased_e = (d64 & DP_EXPONENT_MASK) >> DP_SIGNIFICAND_SIZE;
	uint64_t significand = (d64 & DP_SIGNIFICAND_MASK);
	diy_fp_t res;
	if (biased_e != 0) {
		res.f = significand + DP_HIDDEN_BIT;
		res.e = biased_e - DP_EXPONENT_BIAS;
	} else {
		res.f = significand;
		res.e = DP_MIN_EXPONENT + 1;
	}
	return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
callq 0x24240
movq %rax, -0x20(%rbp)
movabsq $0x7ff0000000000000, %rax # imm = 0x7FF0000000000000
andq -0x20(%rbp), %rax
shrq $0x34, %rax
movl %eax, -0x24(%rbp)
movabsq $0xfffffffffffff, %rax  # imm = 0xFFFFFFFFFFFFF
andq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x241a7
movabsq $0x10000000000000, %rax # imm = 0x10000000000000
addq -0x30(%rbp), %rax
movq %rax, -0x10(%rbp)
movl -0x24(%rbp), %eax
subl $0x433, %eax            # imm = 0x433
movl %eax, -0x8(%rbp)
jmp 0x241b6
movq -0x30(%rbp), %rax
movq %rax, -0x10(%rbp)
movl $0xfffffbce, -0x8(%rbp) # imm = 0xFFFFFBCE
movq -0x10(%rbp), %rax
movl -0x8(%rbp), %edx
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jserror.c
// Function: jsB_stacktrace
static int jsB_stacktrace(js_State *J, int skip)
{
	char buf[256];
	int n = J->tracetop - skip;
	if (n <= 0)
		return 0;
	for (; n > 0; --n) {
		const char *name = J->trace[n].name;
		const char *file = J->trace[n].file;
		int line = J->trace[n].line;
		if (line > 0) {
			if (name[0])
				snprintf(buf, sizeof buf, "\n\tat %s (%s:%d)", name, file, line);
			else
				snprintf(buf, sizeof buf, "\n\tat %s:%d", file, line);
		} else
			snprintf(buf, sizeof buf, "\n\tat %s (%s)", name, file);
		js_pushstring(J, buf);
		if (n < J->tracetop - skip)
			js_concat(J);
	}
	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x2190(%rax), %eax
subl -0x14(%rbp), %eax
movl %eax, -0x124(%rbp)
cmpl $0x0, -0x124(%rbp)
jg 0x2429a
movl $0x0, -0x4(%rbp)
jmp 0x243f4
jmp 0x2429c
cmpl $0x0, -0x124(%rbp)
jle 0x243ed
movq -0x10(%rbp), %rax
addq $0x2198, %rax           # imm = 0x2198
movslq -0x124(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x130(%rbp)
movq -0x10(%rbp), %rax
addq $0x2198, %rax           # imm = 0x2198
movslq -0x124(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x138(%rbp)
movq -0x10(%rbp), %rax
addq $0x2198, %rax           # imm = 0x2198
movslq -0x124(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
movl %eax, -0x13c(%rbp)
cmpl $0x0, -0x13c(%rbp)
jle 0x2437f
movq -0x130(%rbp), %rax
cmpb $0x0, (%rax)
je 0x24355
leaq -0x120(%rbp), %rdi
movq -0x130(%rbp), %rcx
movq -0x138(%rbp), %r8
movl -0x13c(%rbp), %r9d
movl $0x100, %esi            # imm = 0x100
leaq 0x18647(%rip), %rdx     # 0x3c993
movb $0x0, %al
callq 0x3080
jmp 0x2437d
leaq -0x120(%rbp), %rdi
movq -0x138(%rbp), %rcx
movl -0x13c(%rbp), %r8d
movl $0x100, %esi            # imm = 0x100
leaq 0x1862d(%rip), %rdx     # 0x3c9a3
movb $0x0, %al
callq 0x3080
jmp 0x243a7
leaq -0x120(%rbp), %rdi
movq -0x130(%rbp), %rcx
movq -0x138(%rbp), %r8
movl $0x100, %esi            # imm = 0x100
leaq 0x1860e(%rip), %rdx     # 0x3c9ae
movb $0x0, %al
callq 0x3080
movq -0x10(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x13880
movl -0x124(%rbp), %eax
movq -0x10(%rbp), %rcx
movl 0x2190(%rcx), %ecx
subl -0x14(%rbp), %ecx
cmpl %ecx, %eax
jge 0x243d7
movq -0x10(%rbp), %rdi
callq 0x1bdd0
jmp 0x243d9
movl -0x124(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x124(%rbp)
jmp 0x2429c
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jserror.c
// Function: jsB_ErrorX
static int jsB_ErrorX(js_State *J, js_Object *prototype)
{
	js_pushobject(J, jsV_newobject(J, JS_CERROR, prototype));
	if (js_isdefined(J, 1)) {
		js_pushstring(J, js_tostring(J, 1));
		js_defproperty(J, -2, "message", JS_DONTENUM);
	}
	if (jsB_stacktrace(J, 1))
		js_defproperty(J, -2, "stack", JS_DONTENUM);
	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
movl $0x5, %esi
callq 0x6bc0
movq -0x18(%rbp), %rdi
movq %rax, %rsi
callq 0x4870
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x150d0
cmpl $0x0, %eax
je 0x24485
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x14b80
movq -0x20(%rbp), %rdi
movq %rax, %rsi
callq 0x13880
movq -0x8(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x1850a(%rip), %rdx     # 0x3c985
movl $0x2, %ecx
callq 0x65c0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x24260
cmpl $0x0, %eax
je 0x244b2
movq -0x8(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x184e5(%rip), %rdx     # 0x3c98d
movl $0x2, %ecx
callq 0x65c0
movl $0x1, %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsfunction.c
// Function: callbound
static void callbound(js_State *J)
{
	int top = js_gettop(J);
	int i, fun, args, n;

	fun = js_gettop(J);
	js_currentfunction(J);
	js_getproperty(J, fun, "__TargetFunction__");
	js_getproperty(J, fun, "__BoundThis__");

	args = js_gettop(J);
	js_getproperty(J, fun, "__BoundArguments__");
	n = js_getlength(J, args);
	if (n < 0)
		n = 0;
	for (i = 0; i < n; ++i)
		js_getindex(J, args, i);
	js_remove(J, args);

	for (i = 1; i < top; ++i)
		js_copy(J, i);

	js_call(J, n + top - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x16000
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x16000
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14f00
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
leaq 0x18508(%rip), %rdx     # 0x3ca03
callq 0x4380
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
leaq 0x18508(%rip), %rdx     # 0x3ca16
callq 0x4380
movq -0x8(%rbp), %rdi
callq 0x16000
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
leaq 0x184f7(%rip), %rdx     # 0x3ca24
callq 0x4380
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %esi
callq 0x4330
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jge 0x2454e
movl $0x0, -0x1c(%rbp)
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x24577
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %esi
movl -0x10(%rbp), %edx
callq 0x17aa0
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x24555
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %esi
callq 0x16020
movl $0x1, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x245a9
movq -0x8(%rbp), %rdi
movl -0x10(%rbp), %esi
callq 0x14410
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x2458a
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
addl -0xc(%rbp), %esi
subl $0x1, %esi
callq 0x17ea0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsfunction.c
// Function: constructbound
static void constructbound(js_State *J)
{
	int top = js_gettop(J);
	int i, fun, args, n;

	fun = js_gettop(J);
	js_currentfunction(J);
	js_getproperty(J, fun, "__TargetFunction__");

	args = js_gettop(J);
	js_getproperty(J, fun, "__BoundArguments__");
	n = js_getlength(J, args);
	if (n < 0)
		n = 0;
	for (i = 0; i < n; ++i)
		js_getindex(J, args, i);
	js_remove(J, args);

	for (i = 1; i < top; ++i)
		js_copy(J, i);

	js_construct(J, n + top - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x16000
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x16000
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14f00
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
leaq 0x183f8(%rip), %rdx     # 0x3ca03
callq 0x4380
movq -0x8(%rbp), %rdi
callq 0x16000
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
leaq 0x183fa(%rip), %rdx     # 0x3ca24
callq 0x4380
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %esi
callq 0x4330
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jge 0x2464b
movl $0x0, -0x1c(%rbp)
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x24674
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %esi
movl -0x10(%rbp), %edx
callq 0x17aa0
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x24652
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %esi
callq 0x16020
movl $0x1, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x246a6
movq -0x8(%rbp), %rdi
movl -0x10(%rbp), %esi
callq 0x14410
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x24687
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
addl -0xc(%rbp), %esi
subl $0x1, %esi
callq 0x18680
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsgc.c
// Function: jsG_markproperty
static void jsG_markproperty(js_State *J, int mark, js_Property *node)
{
	if (node->left->level) jsG_markproperty(J, mark, node->left);
	if (node->right->level) jsG_markproperty(J, mark, node->right);

	if (node->value.t.type == JS_TMEMSTR && node->value.u.memstr->gcmark != mark)
		node->value.u.memstr->gcmark = mark;
	if (node->value.t.type == JS_TOBJECT && node->value.u.object->gcmark != mark)
		jsG_markobject(J, mark, node->value.u.object);
	if (node->getter && node->getter->gcmark != mark)
		jsG_markobject(J, mark, node->getter);
	if (node->setter && node->setter->gcmark != mark)
		jsG_markobject(J, mark, node->setter);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
cmpl $0x0, 0x10(%rax)
je 0x246f3
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq (%rax), %rdx
callq 0x246c0
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x0, 0x10(%rax)
je 0x24715
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x246c0
movq -0x18(%rbp), %rax
movsbl 0x27(%rax), %eax
cmpl $0x6, %eax
jne 0x24743
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movsbl 0x8(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0x24743
movl -0xc(%rbp), %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movb %cl, 0x8(%rax)
movq -0x18(%rbp), %rax
movsbl 0x27(%rax), %eax
cmpl $0x7, %eax
jne 0x24774
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x60(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0x24774
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0xd210
movq -0x18(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x247a3
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movl 0x60(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0x247a3
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rdx
callq 0xd210
movq -0x18(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0x247d2
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movl 0x60(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0x247d2
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rdx
callq 0xd210
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsgc.c
// Function: jsG_markfunction
static void jsG_markfunction(js_State *J, int mark, js_Function *fun)
{
	int i;
	fun->gcmark = mark;
	for (i = 0; i < fun->funlen; ++i)
		if (fun->funtab[i]->gcmark != mark)
			jsG_markfunction(J, mark, fun->funtab[i]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movl -0xc(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x68(%rax)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x3c(%rcx), %eax
jge 0x24851
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl 0x68(%rax), %eax
cmpl -0xc(%rbp), %eax
je 0x24844
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
callq 0x247e0
jmp 0x24846
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x24804
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsgc.c
// Function: jsG_freeiterator
static void jsG_freeiterator(js_State *J, js_Iterator *node)
{
	while (node) {
		js_Iterator *next = node->next;
		js_free(J, node);
		node = next;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x248f9
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xd710
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x248d0
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsintern.c
// Function: jsS_skew
static js_StringNode *jsS_skew(js_StringNode *node)
{
	if (node->left->level == node->level) {
		js_StringNode *temp = node;
		node = node->left;
		temp->left = node->right;
		node->right = temp;
	}
	return node;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movl 0x10(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jne 0x24949
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsintern.c
// Function: jsS_split
static js_StringNode *jsS_split(js_StringNode *node)
{
	if (node->right->right->level == node->level) {
		js_StringNode *temp = node;
		node = node->right;
		temp->right = node->left;
		node->left = temp;
		++node->level;
	}
	return node;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl 0x10(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jne 0x249ab
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)