// File: vjeux[P]jspp/example/../src/constructors.h
// Function: Object::Object(std::initializer_list<Object>)
Object::Object(std::initializer_list<Object> list) : self(&undefined), write(this), s(new State) {
	int length = 0;

	for (auto elem : list)
		if (elem.s->type == KEYVALUE) {
			(*this)[elem.s->kv->key] = elem.s->kv->value;
		} else {
			(*this)[length++] = elem;
		}

	if (length > 0) {
		(*this)["length"] = length;
		s->type = ARRAY;
	} else {
		s->type = OBJECT;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rsi, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x100(%rbp)
leaq 0x104cf(%rip), %rcx     # 0x18208
movq %rcx, (%rax)
movq %rax, 0x8(%rax)
addq $0x10, %rax
movq %rax, -0xf8(%rbp)
movl $0x138, %edi            # imm = 0x138
callq 0x2200
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xf0(%rbp)
callq 0xd110
jmp 0x7d69
movq -0xf8(%rbp), %rax
movq -0xf0(%rbp), %rcx
movq %rcx, (%rax)
movl $0x0, -0x28(%rbp)
leaq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0xd1b0
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
callq 0xd1d0
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
je 0x7f7b
movq -0x38(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0x7840
movq -0x48(%rbp), %rax
cmpl $0x7, 0x38(%rax)
jne 0x7eac
movq -0x48(%rbp), %rax
movq 0x130(%rax), %rsi
addq $0x18, %rsi
leaq -0x70(%rbp), %rdi
callq 0x7840
jmp 0x7de6
movq -0x48(%rbp), %rax
movq 0x130(%rax), %rsi
leaq -0x88(%rbp), %rdi
callq 0x7840
jmp 0x7dff
movq -0x100(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x71d0
movq %rax, -0x108(%rbp)
jmp 0x7e1b
movq -0x108(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x6aa0
leaq -0x88(%rbp), %rdi
callq 0xc620
leaq -0x70(%rbp), %rdi
callq 0xc620
jmp 0x7f53
movq -0xf0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x138, %esi            # imm = 0x138
callq 0x2210
jmp 0x8053
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x7f6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x7e9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xc620
leaq -0x70(%rbp), %rdi
callq 0xc620
jmp 0x7f6d
leaq -0xa0(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x7840
jmp 0x7ebe
movl -0x28(%rbp), %esi
movl %esi, %eax
incl %eax
movl %eax, -0x28(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x79b0
jmp 0x7ed6
movq -0x100(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x71d0
movq %rax, -0x110(%rbp)
jmp 0x7ef2
movq -0x110(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x6aa0
leaq -0xb8(%rbp), %rdi
callq 0xc620
leaq -0xa0(%rbp), %rdi
callq 0xc620
jmp 0x7f53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x7f45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xc620
leaq -0xa0(%rbp), %rdi
callq 0xc620
jmp 0x7f6d
leaq -0x58(%rbp), %rdi
callq 0xc620
movq -0x38(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x38(%rbp)
jmp 0x7da3
leaq -0x58(%rbp), %rdi
callq 0xc620
jmp 0x8053
cmpl $0x0, -0x28(%rbp)
jle 0x8038
movl -0x28(%rbp), %esi
leaq -0xd0(%rbp), %rdi
callq 0x79b0
leaq 0x9174(%rip), %rsi      # 0x1110f
leaq -0xe8(%rbp), %rdi
callq 0x7b00
jmp 0x7fa9
movq -0x100(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x71d0
movq %rax, -0x118(%rbp)
jmp 0x7fc5
movq -0x118(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x6aa0
leaq -0xe8(%rbp), %rdi
callq 0xc620
leaq -0xd0(%rbp), %rdi
callq 0xc620
movq -0x100(%rbp), %rax
movq 0x10(%rax), %rax
movl $0x6, 0x38(%rax)
jmp 0x804a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x802a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0xc620
leaq -0xd0(%rbp), %rdi
callq 0xc620
jmp 0x8053
movq -0x100(%rbp), %rax
movq 0x10(%rax), %rax
movl $0x5, 0x38(%rax)
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0x2340
nopl (%rax)