// File: vjeux[P]jspp/example/../src/operators.h
// Function: Object::operator()(Object)
Object Object::operator()(Object a) {
		if (s->type != FUNCTION) { throw _("Object is not a function"); }
		if (s->f == 0) return s->f0(*self);
		if (s->f == 1) return s->f1(*self, a);
		if (s->f == 2) return s->f2(*self, a, undefined);
		if (s->f == 3) return s->f3(*self, a, undefined, undefined);
		if (s->f == 4) return s->f4(*self, a, undefined, undefined, undefined);
		if (s->f == 5) return s->f5(*self, a, undefined, undefined, undefined, undefined);
		throw _("Too many arguments");
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2d0, %rsp            # imm = 0x2D0
movq %rdx, -0x278(%rbp)
movq %rdi, -0x270(%rbp)
movq %rdi, %rax
movq %rax, -0x268(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x260(%rbp)
movq 0x10(%rax), %rax
cmpl $0x2, 0x38(%rax)
je 0x3997
movb $0x1, -0x3d(%rbp)
movl $0x18, %edi
callq 0x2100
movq %rax, -0x280(%rbp)
leaq 0xd798(%rip), %rsi      # 0x110ac
leaq -0x30(%rbp), %rdi
callq 0x7b00
jmp 0x391f
movq -0x280(%rbp), %rdi
leaq 0x1490b(%rip), %rsi     # 0x18238
leaq -0x30(%rbp), %rdx
callq 0xc680
jmp 0x3938
movq -0x280(%rbp), %rdi
movb $0x0, -0x3d(%rbp)
leaq 0x143f6(%rip), %rsi     # 0x17d40
leaq 0x8ccf(%rip), %rdx      # 0xc620
callq 0x2330
jmp 0x415c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x397e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xc620
testb $0x1, -0x3d(%rbp)
jne 0x3986
jmp 0x3992
movq -0x280(%rbp), %rdi
callq 0x2180
jmp 0x4153
movq -0x260(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x68(%rax)
jne 0x3a15
movq -0x260(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0x70, %rax
movq %rax, -0x290(%rbp)
leaq -0x58(%rbp), %rdi
movq %rdi, -0x288(%rbp)
callq 0x7840
movq -0x270(%rbp), %rdi
movq -0x290(%rbp), %rsi
movq -0x288(%rbp), %rdx
callq 0xc6c0
jmp 0x39ed
leaq -0x58(%rbp), %rdi
callq 0xc620
jmp 0x4143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xc620
jmp 0x4153
movq -0x260(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x1, 0x68(%rax)
jne 0x3ad1
movq -0x260(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0x90, %rax
movq %rax, -0x298(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x7840
movq -0x278(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x7840
jmp 0x3a63
movq -0x298(%rbp), %rsi
movq -0x270(%rbp), %rdi
leaq -0x70(%rbp), %rdx
leaq -0x88(%rbp), %rcx
callq 0xc720
jmp 0x3a83
leaq -0x88(%rbp), %rdi
callq 0xc620
leaq -0x70(%rbp), %rdi
callq 0xc620
jmp 0x4143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3ac3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xc620
leaq -0x70(%rbp), %rdi
callq 0xc620
jmp 0x4153
movq -0x260(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x2, 0x68(%rax)
jne 0x3bdb
movq -0x260(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0xb0, %rax
movq %rax, -0x2a0(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x7840
movq -0x278(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x7840
jmp 0x3b22
leaq 0x146df(%rip), %rsi     # 0x18208
leaq -0xd0(%rbp), %rdi
callq 0x7840
jmp 0x3b37
movq -0x2a0(%rbp), %rsi
movq -0x270(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
leaq -0xb8(%rbp), %rcx
leaq -0xd0(%rbp), %r8
callq 0xc790
jmp 0x3b61
leaq -0xd0(%rbp), %rdi
callq 0xc620
leaq -0xb8(%rbp), %rdi
callq 0xc620
leaq -0xa0(%rbp), %rdi
callq 0xc620
jmp 0x4143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3bca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3bbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0xc620
leaq -0xb8(%rbp), %rdi
callq 0xc620
leaq -0xa0(%rbp), %rdi
callq 0xc620
jmp 0x4153
movq -0x260(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x3, 0x68(%rax)
jne 0x3d27
movq -0x260(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0xd0, %rax
movq %rax, -0x2a8(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x7840
movq -0x278(%rbp), %rsi
leaq -0x100(%rbp), %rdi
callq 0x7840
jmp 0x3c2c
leaq 0x145d5(%rip), %rsi     # 0x18208
leaq -0x118(%rbp), %rdi
callq 0x7840
jmp 0x3c41
leaq 0x145c0(%rip), %rsi     # 0x18208
leaq -0x130(%rbp), %rdi
callq 0x7840
jmp 0x3c56
movq -0x2a8(%rbp), %rsi
movq -0x270(%rbp), %rdi
leaq -0xe8(%rbp), %rdx
leaq -0x100(%rbp), %rcx
leaq -0x118(%rbp), %r8
leaq -0x130(%rbp), %r9
callq 0xc800
jmp 0x3c87
leaq -0x130(%rbp), %rdi
callq 0xc620
leaq -0x118(%rbp), %rdi
callq 0xc620
leaq -0x100(%rbp), %rdi
callq 0xc620
leaq -0xe8(%rbp), %rdi
callq 0xc620
jmp 0x4143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3d16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3d0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3cfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0xc620
leaq -0x118(%rbp), %rdi
callq 0xc620
leaq -0x100(%rbp), %rdi
callq 0xc620
leaq -0xe8(%rbp), %rdi
callq 0xc620
jmp 0x4153
movq -0x260(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x4, 0x68(%rax)
jne 0x3ebb
movq -0x260(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0xf0, %rax
movq %rax, -0x2b0(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x7840
movq -0x278(%rbp), %rsi
leaq -0x160(%rbp), %rdi
callq 0x7840
jmp 0x3d78
leaq 0x14489(%rip), %rsi     # 0x18208
leaq -0x178(%rbp), %rdi
callq 0x7840
jmp 0x3d8d
leaq 0x14474(%rip), %rsi     # 0x18208
leaq -0x190(%rbp), %rdi
callq 0x7840
jmp 0x3da2
leaq 0x1445f(%rip), %rsi     # 0x18208
leaq -0x1a8(%rbp), %rdi
callq 0x7840
jmp 0x3db7
movq -0x2b0(%rbp), %rsi
movq -0x270(%rbp), %rdi
movq %rsp, %rax
leaq -0x1a8(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x148(%rbp), %rdx
leaq -0x160(%rbp), %rcx
leaq -0x178(%rbp), %r8
leaq -0x190(%rbp), %r9
callq 0xc880
jmp 0x3df5
leaq -0x1a8(%rbp), %rdi
callq 0xc620
leaq -0x190(%rbp), %rdi
callq 0xc620
leaq -0x178(%rbp), %rdi
callq 0xc620
leaq -0x160(%rbp), %rdi
callq 0xc620
leaq -0x148(%rbp), %rdi
callq 0xc620
jmp 0x4143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3eaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3e9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3e92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3e86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0xc620
leaq -0x190(%rbp), %rdi
callq 0xc620
leaq -0x178(%rbp), %rdi
callq 0xc620
leaq -0x160(%rbp), %rdi
callq 0xc620
leaq -0x148(%rbp), %rdi
callq 0xc620
jmp 0x4153
movq -0x260(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x5, 0x68(%rax)
jne 0x4098
movq -0x260(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0x110, %rax            # imm = 0x110
movq %rax, -0x2b8(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x7840
movq -0x278(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x7840
jmp 0x3f0c
leaq 0x142f5(%rip), %rsi     # 0x18208
leaq -0x1f0(%rbp), %rdi
callq 0x7840
jmp 0x3f21
leaq 0x142e0(%rip), %rsi     # 0x18208
leaq -0x208(%rbp), %rdi
callq 0x7840
jmp 0x3f36
leaq 0x142cb(%rip), %rsi     # 0x18208
leaq -0x220(%rbp), %rdi
callq 0x7840
jmp 0x3f4b
leaq 0x142b6(%rip), %rsi     # 0x18208
leaq -0x238(%rbp), %rdi
callq 0x7840
jmp 0x3f60
movq -0x2b8(%rbp), %rsi
movq -0x270(%rbp), %rdi
movq %rsp, %rax
leaq -0x238(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq -0x220(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x1c0(%rbp), %rdx
leaq -0x1d8(%rbp), %rcx
leaq -0x1f0(%rbp), %r8
leaq -0x208(%rbp), %r9
callq 0xc920
jmp 0x3fa9
leaq -0x238(%rbp), %rdi
callq 0xc620
leaq -0x220(%rbp), %rdi
callq 0xc620
leaq -0x208(%rbp), %rdi
callq 0xc620
leaq -0x1f0(%rbp), %rdi
callq 0xc620
leaq -0x1d8(%rbp), %rdi
callq 0xc620
leaq -0x1c0(%rbp), %rdi
callq 0xc620
jmp 0x4143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x4087
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x407b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x406f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x4063
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x4057
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x238(%rbp), %rdi
callq 0xc620
leaq -0x220(%rbp), %rdi
callq 0xc620
leaq -0x208(%rbp), %rdi
callq 0xc620
leaq -0x1f0(%rbp), %rdi
callq 0xc620
leaq -0x1d8(%rbp), %rdi
callq 0xc620
leaq -0x1c0(%rbp), %rdi
callq 0xc620
jmp 0x4153
movb $0x1, -0x251(%rbp)
movl $0x18, %edi
callq 0x2100
movq %rax, -0x2c0(%rbp)
leaq 0xd00e(%rip), %rsi      # 0x110c5
leaq -0x250(%rbp), %rdi
callq 0x7b00
jmp 0x40c5
movq -0x2c0(%rbp), %rdi
leaq 0x14165(%rip), %rsi     # 0x18238
leaq -0x250(%rbp), %rdx
callq 0xc680
jmp 0x40e1
movq -0x2c0(%rbp), %rdi
movb $0x0, -0x251(%rbp)
leaq 0x13c4a(%rip), %rsi     # 0x17d40
leaq 0x8523(%rip), %rdx      # 0xc620
callq 0x2330
jmp 0x415c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x412a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x250(%rbp), %rdi
callq 0xc620
testb $0x1, -0x251(%rbp)
jne 0x4135
jmp 0x4141
movq -0x2c0(%rbp), %rdi
callq 0x2180
jmp 0x4153
movq -0x268(%rbp), %rax
addq $0x2d0, %rsp            # imm = 0x2D0
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x2340
nopl (%rax)