// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jsrepr.c
// Function: reprvalue
static void reprvalue(js_State *J, js_Buffer **sb)
{
	if (js_isundefined(J, -1))
		js_puts(J, sb, "undefined");
	else if (js_isnull(J, -1))
		js_puts(J, sb, "null");
	else if (js_isboolean(J, -1))
		js_puts(J, sb, js_toboolean(J, -1) ? "true" : "false");
	else if (js_isnumber(J, -1))
		reprnum(J, sb, js_tonumber(J, -1));
	else if (js_isstring(J, -1))
		reprstr(J, sb, js_tostring(J, -1));
	else if (js_isobject(J, -1)) {
		js_Object *obj = js_toobject(J, -1);
		switch (obj->type) {
		default:
			reprobject(J, sb);
			break;
		case JS_CARRAY:
			reprarray(J, sb);
			break;
		case JS_CFUNCTION:
		case JS_CSCRIPT:
			reprfun(J, sb, obj->u.f.function);
			break;
		case JS_CCFUNCTION:
			js_puts(J, sb, "function ");
			js_puts(J, sb, obj->u.c.name);
			js_puts(J, sb, "() { [native code] }");
			break;
		case JS_CBOOLEAN:
			js_puts(J, sb, "(new Boolean(");
			js_puts(J, sb, obj->u.boolean ? "true" : "false");
			js_puts(J, sb, "))");
			break;
		case JS_CNUMBER:
			js_puts(J, sb, "(new Number(");
			reprnum(J, sb, obj->u.number);
			js_puts(J, sb, "))");
			break;
		case JS_CSTRING:
			js_puts(J, sb, "(new String(");
			reprstr(J, sb, obj->u.s.string);
			js_puts(J, sb, "))");
			break;
		case JS_CREGEXP:
			js_putc(J, sb, '/');
			js_puts(J, sb, obj->u.r.source);
			js_putc(J, sb, '/');
			if (obj->u.r.flags & JS_REGEXP_G) js_putc(J, sb, 'g');
			if (obj->u.r.flags & JS_REGEXP_I) js_putc(J, sb, 'i');
			if (obj->u.r.flags & JS_REGEXP_M) js_putc(J, sb, 'm');
			break;
		case JS_CDATE:
			{
				char buf[40];
				js_puts(J, sb, "(new Date(");
				js_puts(J, sb, jsV_numbertostring(J, buf, obj->u.number));
				js_puts(J, sb, "))");
			}
			break;
		case JS_CERROR:
			js_puts(J, sb, "(new ");
			js_getproperty(J, -1, "name");
			js_puts(J, sb, js_tostring(J, -1));
			js_pop(J, 1);
			js_putc(J, sb, '(');
			if (js_hasproperty(J, -1, "message")) {
				reprvalue(J, sb);
				js_pop(J, 1);
			}
			js_puts(J, sb, "))");
			break;
		case JS_CMATH:
			js_puts(J, sb, "Math");
			break;
		case JS_CJSON:
			js_puts(J, sb, "JSON");
			break;
		case JS_CITERATOR:
			js_puts(J, sb, "[iterator ");
			break;
		case JS_CUSERDATA:
			js_puts(J, sb, "[userdata ");
			js_puts(J, sb, obj->u.user.tag);
			js_putc(J, sb, ']');
			break;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x15100
cmpl $0x0, %eax
je 0x144df
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x29440(%rip), %rdx     # 0x3d915
callq 0xda70
jmp 0x149fd
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x15130
cmpl $0x0, %eax
je 0x1450b
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28d30(%rip), %rdx     # 0x3d231
callq 0xda70
jmp 0x149fb
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x15160
cmpl $0x0, %eax
je 0x14565
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x15620
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
movl %eax, %ecx
leaq 0x27bfc(%rip), %rdx     # 0x3c149
leaq 0x27bf0(%rip), %rax     # 0x3c144
cmpl $0x0, %ecx
cmovneq %rax, %rdx
callq 0xda70
jmp 0x149f9
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x15190
cmpl $0x0, %eax
je 0x145a8
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x15750
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0x2d290
jmp 0x149f7
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x151c0
cmpl $0x0, %eax
je 0x145ee
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x14b80
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
movq %rax, %rdx
callq 0x2d320
jmp 0x149f5
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x11730
cmpl $0x0, %eax
je 0x149f3
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x11760
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x78(%rbp)
subl $0xe, %eax
ja 0x1463e
movq -0x78(%rbp), %rax
leaq 0x1f1df(%rip), %rcx     # 0x33814
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x2d630
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x2d7b0
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rdx
callq 0x2d8f0
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28330(%rip), %rdx     # 0x3c9bb
callq 0xda70
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rdx
callq 0xda70
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28323(%rip), %rdx     # 0x3c9d7
callq 0xda70
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28eef(%rip), %rdx     # 0x3d5bc
callq 0xda70
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movl 0x20(%rax), %ecx
leaq 0x27a61(%rip), %rdx     # 0x3c149
leaq 0x27a55(%rip), %rax     # 0x3c144
cmpl $0x0, %ecx
cmovneq %rax, %rdx
callq 0xda70
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28ec0(%rip), %rdx     # 0x3d5ca
callq 0xda70
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28eaa(%rip), %rdx     # 0x3d5cd
callq 0xda70
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movsd 0x20(%rax), %xmm0
callq 0x2d290
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28e7d(%rip), %rdx     # 0x3d5ca
callq 0xda70
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28e74(%rip), %rdx     # 0x3d5da
callq 0xda70
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rdx
callq 0x2d320
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28e3b(%rip), %rdx     # 0x3d5ca
callq 0xda70
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x2f, %edx
callq 0xd910
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rdx
callq 0xda70
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x2f, %edx
callq 0xd910
movq -0x18(%rbp), %rax
movzwl 0x30(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x147f4
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x67, %edx
callq 0xd910
movq -0x18(%rbp), %rax
movzwl 0x30(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x14816
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x69, %edx
callq 0xd910
movq -0x18(%rbp), %rax
movzwl 0x30(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x14838
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x6d, %edx
callq 0xd910
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28d9b(%rip), %rdx     # 0x3d5e7
callq 0xda70
movq -0x8(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
movq -0x18(%rbp), %rax
movsd 0x20(%rax), %xmm0
callq 0x13040
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
movq %rax, %rdx
callq 0xda70
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28d2e(%rip), %rdx     # 0x3d5ca
callq 0xda70
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28d3d(%rip), %rdx     # 0x3d5f2
callq 0xda70
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0x26f04(%rip), %rdx     # 0x3b7ce
callq 0x4380
movq -0x8(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x14b80
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
movq %rax, %rdx
callq 0xda70
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x4400
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x28, %edx
callq 0xd910
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0x2804c(%rip), %rdx     # 0x3c985
callq 0x17710
cmpl $0x0, %eax
je 0x1495e
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x144a0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x4400
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28c5d(%rip), %rdx     # 0x3d5ca
callq 0xda70
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x270c1(%rip), %rdx     # 0x3ba44
callq 0xda70
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x26e13(%rip), %rdx     # 0x3b7ac
callq 0xda70
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28c49(%rip), %rdx     # 0x3d5f8
callq 0xda70
jmp 0x149f1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq 0x28c3e(%rip), %rdx     # 0x3d603
callq 0xda70
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rdx
callq 0xda70
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x5d, %edx
callq 0xd910
jmp 0x149f3
jmp 0x149f5
jmp 0x149f7
jmp 0x149f9
jmp 0x149fb
jmp 0x149fd
addq $0xa0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)