// File: vjeux[P]jspp/example/../src/operators.h
// Function: Object::operator()(Object, Object)
Object Object::operator()(Object a, Object b) {
		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, b);
		if (s->f == 3) return s->f3(*self, a, b, undefined);
		if (s->f == 4) return s->f4(*self, a, b, undefined, undefined);
		if (s->f == 5) return s->f5(*self, a, b, undefined, undefined, undefined);
		throw _("Too many arguments");
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2e0, %rsp            # imm = 0x2E0
movq %rcx, -0x288(%rbp)
movq %rdx, -0x280(%rbp)
movq %rdi, -0x278(%rbp)
movq %rdi, %rax
movq %rax, -0x270(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x268(%rbp)
movq 0x10(%rax), %rax
cmpl $0x2, 0x38(%rax)
je 0x4252
movb $0x1, -0x45(%rbp)
movl $0x18, %edi
callq 0x2100
movq %rax, -0x290(%rbp)
leaq 0xcedd(%rip), %rsi      # 0x110ac
leaq -0x38(%rbp), %rdi
callq 0x7b00
jmp 0x41da
movq -0x290(%rbp), %rdi
leaq 0x14050(%rip), %rsi     # 0x18238
leaq -0x38(%rbp), %rdx
callq 0xc680
jmp 0x41f3
movq -0x290(%rbp), %rdi
movb $0x0, -0x45(%rbp)
leaq 0x13b3b(%rip), %rsi     # 0x17d40
leaq 0x8414(%rip), %rdx      # 0xc620
callq 0x2330
jmp 0x4a17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4239
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xc620
testb $0x1, -0x45(%rbp)
jne 0x4241
jmp 0x424d
movq -0x290(%rbp), %rdi
callq 0x2180
jmp 0x4a0e
movq -0x268(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x68(%rax)
jne 0x42d0
movq -0x268(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0x70, %rax
movq %rax, -0x2a0(%rbp)
leaq -0x60(%rbp), %rdi
movq %rdi, -0x298(%rbp)
callq 0x7840
movq -0x278(%rbp), %rdi
movq -0x2a0(%rbp), %rsi
movq -0x298(%rbp), %rdx
callq 0xc6c0
jmp 0x42a8
leaq -0x60(%rbp), %rdi
callq 0xc620
jmp 0x49fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xc620
jmp 0x4a0e
movq -0x268(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x1, 0x68(%rax)
jne 0x438c
movq -0x268(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0x90, %rax
movq %rax, -0x2a8(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x7840
movq -0x280(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x7840
jmp 0x431e
movq -0x2a8(%rbp), %rsi
movq -0x278(%rbp), %rdi
leaq -0x78(%rbp), %rdx
leaq -0x90(%rbp), %rcx
callq 0xc720
jmp 0x433e
leaq -0x90(%rbp), %rdi
callq 0xc620
leaq -0x78(%rbp), %rdi
callq 0xc620
jmp 0x49fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x437e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x90(%rbp), %rdi
callq 0xc620
leaq -0x78(%rbp), %rdi
callq 0xc620
jmp 0x4a0e
movq -0x268(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x2, 0x68(%rax)
jne 0x4496
movq -0x268(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0xb0, %rax
movq %rax, -0x2b0(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x7840
movq -0x280(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x7840
jmp 0x43dd
movq -0x288(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0x7840
jmp 0x43f2
movq -0x2b0(%rbp), %rsi
movq -0x278(%rbp), %rdi
leaq -0xa8(%rbp), %rdx
leaq -0xc0(%rbp), %rcx
leaq -0xd8(%rbp), %r8
callq 0xc790
jmp 0x441c
leaq -0xd8(%rbp), %rdi
callq 0xc620
leaq -0xc0(%rbp), %rdi
callq 0xc620
leaq -0xa8(%rbp), %rdi
callq 0xc620
jmp 0x49fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4485
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4479
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0xc620
leaq -0xc0(%rbp), %rdi
callq 0xc620
leaq -0xa8(%rbp), %rdi
callq 0xc620
jmp 0x4a0e
movq -0x268(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x3, 0x68(%rax)
jne 0x45e2
movq -0x268(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0xd0, %rax
movq %rax, -0x2b8(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x7840
movq -0x280(%rbp), %rsi
leaq -0x108(%rbp), %rdi
callq 0x7840
jmp 0x44e7
movq -0x288(%rbp), %rsi
leaq -0x120(%rbp), %rdi
callq 0x7840
jmp 0x44fc
leaq 0x13d05(%rip), %rsi     # 0x18208
leaq -0x138(%rbp), %rdi
callq 0x7840
jmp 0x4511
movq -0x2b8(%rbp), %rsi
movq -0x278(%rbp), %rdi
leaq -0xf0(%rbp), %rdx
leaq -0x108(%rbp), %rcx
leaq -0x120(%rbp), %r8
leaq -0x138(%rbp), %r9
callq 0xc800
jmp 0x4542
leaq -0x138(%rbp), %rdi
callq 0xc620
leaq -0x120(%rbp), %rdi
callq 0xc620
leaq -0x108(%rbp), %rdi
callq 0xc620
leaq -0xf0(%rbp), %rdi
callq 0xc620
jmp 0x49fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x45d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x45c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x45b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x138(%rbp), %rdi
callq 0xc620
leaq -0x120(%rbp), %rdi
callq 0xc620
leaq -0x108(%rbp), %rdi
callq 0xc620
leaq -0xf0(%rbp), %rdi
callq 0xc620
jmp 0x4a0e
movq -0x268(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x4, 0x68(%rax)
jne 0x4776
movq -0x268(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0xf0, %rax
movq %rax, -0x2c0(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x7840
movq -0x280(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0x7840
jmp 0x4633
movq -0x288(%rbp), %rsi
leaq -0x180(%rbp), %rdi
callq 0x7840
jmp 0x4648
leaq 0x13bb9(%rip), %rsi     # 0x18208
leaq -0x198(%rbp), %rdi
callq 0x7840
jmp 0x465d
leaq 0x13ba4(%rip), %rsi     # 0x18208
leaq -0x1b0(%rbp), %rdi
callq 0x7840
jmp 0x4672
movq -0x2c0(%rbp), %rsi
movq -0x278(%rbp), %rdi
movq %rsp, %rax
leaq -0x1b0(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x150(%rbp), %rdx
leaq -0x168(%rbp), %rcx
leaq -0x180(%rbp), %r8
leaq -0x198(%rbp), %r9
callq 0xc880
jmp 0x46b0
leaq -0x1b0(%rbp), %rdi
callq 0xc620
leaq -0x198(%rbp), %rdi
callq 0xc620
leaq -0x180(%rbp), %rdi
callq 0xc620
leaq -0x168(%rbp), %rdi
callq 0xc620
leaq -0x150(%rbp), %rdi
callq 0xc620
jmp 0x49fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4759
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x474d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4741
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0xc620
leaq -0x198(%rbp), %rdi
callq 0xc620
leaq -0x180(%rbp), %rdi
callq 0xc620
leaq -0x168(%rbp), %rdi
callq 0xc620
leaq -0x150(%rbp), %rdi
callq 0xc620
jmp 0x4a0e
movq -0x268(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x5, 0x68(%rax)
jne 0x4953
movq -0x268(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0x110, %rax            # imm = 0x110
movq %rax, -0x2c8(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x7840
movq -0x280(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
callq 0x7840
jmp 0x47c7
movq -0x288(%rbp), %rsi
leaq -0x1f8(%rbp), %rdi
callq 0x7840
jmp 0x47dc
leaq 0x13a25(%rip), %rsi     # 0x18208
leaq -0x210(%rbp), %rdi
callq 0x7840
jmp 0x47f1
leaq 0x13a10(%rip), %rsi     # 0x18208
leaq -0x228(%rbp), %rdi
callq 0x7840
jmp 0x4806
leaq 0x139fb(%rip), %rsi     # 0x18208
leaq -0x240(%rbp), %rdi
callq 0x7840
jmp 0x481b
movq -0x2c8(%rbp), %rsi
movq -0x278(%rbp), %rdi
movq %rsp, %rax
leaq -0x240(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq -0x228(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x1c8(%rbp), %rdx
leaq -0x1e0(%rbp), %rcx
leaq -0x1f8(%rbp), %r8
leaq -0x210(%rbp), %r9
callq 0xc920
jmp 0x4864
leaq -0x240(%rbp), %rdi
callq 0xc620
leaq -0x228(%rbp), %rdi
callq 0xc620
leaq -0x210(%rbp), %rdi
callq 0xc620
leaq -0x1f8(%rbp), %rdi
callq 0xc620
leaq -0x1e0(%rbp), %rdi
callq 0xc620
leaq -0x1c8(%rbp), %rdi
callq 0xc620
jmp 0x49fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4942
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4936
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x492a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x491e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4912
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x240(%rbp), %rdi
callq 0xc620
leaq -0x228(%rbp), %rdi
callq 0xc620
leaq -0x210(%rbp), %rdi
callq 0xc620
leaq -0x1f8(%rbp), %rdi
callq 0xc620
leaq -0x1e0(%rbp), %rdi
callq 0xc620
leaq -0x1c8(%rbp), %rdi
callq 0xc620
jmp 0x4a0e
movb $0x1, -0x259(%rbp)
movl $0x18, %edi
callq 0x2100
movq %rax, -0x2d0(%rbp)
leaq 0xc753(%rip), %rsi      # 0x110c5
leaq -0x258(%rbp), %rdi
callq 0x7b00
jmp 0x4980
movq -0x2d0(%rbp), %rdi
leaq 0x138aa(%rip), %rsi     # 0x18238
leaq -0x258(%rbp), %rdx
callq 0xc680
jmp 0x499c
movq -0x2d0(%rbp), %rdi
movb $0x0, -0x259(%rbp)
leaq 0x1338f(%rip), %rsi     # 0x17d40
leaq 0x7c68(%rip), %rdx      # 0xc620
callq 0x2330
jmp 0x4a17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x49e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x258(%rbp), %rdi
callq 0xc620
testb $0x1, -0x259(%rbp)
jne 0x49f0
jmp 0x49fc
movq -0x2d0(%rbp), %rdi
callq 0x2180
jmp 0x4a0e
movq -0x270(%rbp), %rax
addq $0x2e0, %rsp            # imm = 0x2E0
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x2340
nopw (%rax,%rax)