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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x300, %rsp            # imm = 0x300
movq %r9, -0x2a8(%rbp)
movq %r8, -0x2a0(%rbp)
movq %rcx, -0x298(%rbp)
movq %rdx, -0x290(%rbp)
movq %rdi, -0x288(%rbp)
movq %rdi, %rax
movq %rax, -0x280(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x278(%rbp)
movq 0x10(%rax), %rax
cmpl $0x2, 0x38(%rax)
je 0x53f8
movb $0x1, -0x55(%rbp)
movl $0x18, %edi
callq 0x2100
movq %rax, -0x2b0(%rbp)
leaq 0xbd37(%rip), %rsi      # 0x110ac
leaq -0x48(%rbp), %rdi
callq 0x7b00
jmp 0x5380
movq -0x2b0(%rbp), %rdi
leaq 0x12eaa(%rip), %rsi     # 0x18238
leaq -0x48(%rbp), %rdx
callq 0xc680
jmp 0x5399
movq -0x2b0(%rbp), %rdi
movb $0x0, -0x55(%rbp)
leaq 0x12995(%rip), %rsi     # 0x17d40
leaq 0x726e(%rip), %rdx      # 0xc620
callq 0x2330
jmp 0x5bc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x53df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xc620
testb $0x1, -0x55(%rbp)
jne 0x53e7
jmp 0x53f3
movq -0x2b0(%rbp), %rdi
callq 0x2180
jmp 0x5bc0
movq -0x278(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x68(%rax)
jne 0x5476
movq -0x278(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0x70, %rax
movq %rax, -0x2c0(%rbp)
leaq -0x70(%rbp), %rdi
movq %rdi, -0x2b8(%rbp)
callq 0x7840
movq -0x288(%rbp), %rdi
movq -0x2c0(%rbp), %rsi
movq -0x2b8(%rbp), %rdx
callq 0xc6c0
jmp 0x544e
leaq -0x70(%rbp), %rdi
callq 0xc620
jmp 0x5bb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x70(%rbp), %rdi
callq 0xc620
jmp 0x5bc0
movq -0x278(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x1, 0x68(%rax)
jne 0x553e
movq -0x278(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0x90, %rax
movq %rax, -0x2c8(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x7840
movq -0x290(%rbp), %rsi
leaq -0xa0(%rbp), %rdi
callq 0x7840
jmp 0x54c7
movq -0x2c8(%rbp), %rsi
movq -0x288(%rbp), %rdi
leaq -0x88(%rbp), %rdx
leaq -0xa0(%rbp), %rcx
callq 0xc720
jmp 0x54ea
leaq -0xa0(%rbp), %rdi
callq 0xc620
leaq -0x88(%rbp), %rdi
callq 0xc620
jmp 0x5bb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x552d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0xc620
leaq -0x88(%rbp), %rdi
callq 0xc620
jmp 0x5bc0
movq -0x278(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x2, 0x68(%rax)
jne 0x5648
movq -0x278(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0xb0, %rax
movq %rax, -0x2d0(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x7840
movq -0x290(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x7840
jmp 0x558f
movq -0x298(%rbp), %rsi
leaq -0xe8(%rbp), %rdi
callq 0x7840
jmp 0x55a4
movq -0x2d0(%rbp), %rsi
movq -0x288(%rbp), %rdi
leaq -0xb8(%rbp), %rdx
leaq -0xd0(%rbp), %rcx
leaq -0xe8(%rbp), %r8
callq 0xc790
jmp 0x55ce
leaq -0xe8(%rbp), %rdi
callq 0xc620
leaq -0xd0(%rbp), %rdi
callq 0xc620
leaq -0xb8(%rbp), %rdi
callq 0xc620
jmp 0x5bb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5637
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x562b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0xc620
leaq -0xd0(%rbp), %rdi
callq 0xc620
leaq -0xb8(%rbp), %rdi
callq 0xc620
jmp 0x5bc0
movq -0x278(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x3, 0x68(%rax)
jne 0x5794
movq -0x278(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0xd0, %rax
movq %rax, -0x2d8(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x7840
movq -0x290(%rbp), %rsi
leaq -0x118(%rbp), %rdi
callq 0x7840
jmp 0x5699
movq -0x298(%rbp), %rsi
leaq -0x130(%rbp), %rdi
callq 0x7840
jmp 0x56ae
movq -0x2a0(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0x7840
jmp 0x56c3
movq -0x2d8(%rbp), %rsi
movq -0x288(%rbp), %rdi
leaq -0x100(%rbp), %rdx
leaq -0x118(%rbp), %rcx
leaq -0x130(%rbp), %r8
leaq -0x148(%rbp), %r9
callq 0xc800
jmp 0x56f4
leaq -0x148(%rbp), %rdi
callq 0xc620
leaq -0x130(%rbp), %rdi
callq 0xc620
leaq -0x118(%rbp), %rdi
callq 0xc620
leaq -0x100(%rbp), %rdi
callq 0xc620
jmp 0x5bb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5783
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5777
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x576b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x148(%rbp), %rdi
callq 0xc620
leaq -0x130(%rbp), %rdi
callq 0xc620
leaq -0x118(%rbp), %rdi
callq 0xc620
leaq -0x100(%rbp), %rdi
callq 0xc620
jmp 0x5bc0
movq -0x278(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x4, 0x68(%rax)
jne 0x5928
movq -0x278(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0xf0, %rax
movq %rax, -0x2e0(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x7840
movq -0x290(%rbp), %rsi
leaq -0x178(%rbp), %rdi
callq 0x7840
jmp 0x57e5
movq -0x298(%rbp), %rsi
leaq -0x190(%rbp), %rdi
callq 0x7840
jmp 0x57fa
movq -0x2a0(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x7840
jmp 0x580f
movq -0x2a8(%rbp), %rsi
leaq -0x1c0(%rbp), %rdi
callq 0x7840
jmp 0x5824
movq -0x2e0(%rbp), %rsi
movq -0x288(%rbp), %rdi
movq %rsp, %rax
leaq -0x1c0(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x160(%rbp), %rdx
leaq -0x178(%rbp), %rcx
leaq -0x190(%rbp), %r8
leaq -0x1a8(%rbp), %r9
callq 0xc880
jmp 0x5862
leaq -0x1c0(%rbp), %rdi
callq 0xc620
leaq -0x1a8(%rbp), %rdi
callq 0xc620
leaq -0x190(%rbp), %rdi
callq 0xc620
leaq -0x178(%rbp), %rdi
callq 0xc620
leaq -0x160(%rbp), %rdi
callq 0xc620
jmp 0x5bb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5917
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x590b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x58ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x58f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0xc620
leaq -0x1a8(%rbp), %rdi
callq 0xc620
leaq -0x190(%rbp), %rdi
callq 0xc620
leaq -0x178(%rbp), %rdi
callq 0xc620
leaq -0x160(%rbp), %rdi
callq 0xc620
jmp 0x5bc0
movq -0x278(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x5, 0x68(%rax)
jne 0x5b05
movq -0x278(%rbp), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rax
addq $0x110, %rax            # imm = 0x110
movq %rax, -0x2e8(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x7840
movq -0x290(%rbp), %rsi
leaq -0x1f0(%rbp), %rdi
callq 0x7840
jmp 0x5979
movq -0x298(%rbp), %rsi
leaq -0x208(%rbp), %rdi
callq 0x7840
jmp 0x598e
movq -0x2a0(%rbp), %rsi
leaq -0x220(%rbp), %rdi
callq 0x7840
jmp 0x59a3
movq -0x2a8(%rbp), %rsi
leaq -0x238(%rbp), %rdi
callq 0x7840
jmp 0x59b8
leaq 0x12849(%rip), %rsi     # 0x18208
leaq -0x250(%rbp), %rdi
callq 0x7840
jmp 0x59cd
movq -0x2e8(%rbp), %rsi
movq -0x288(%rbp), %rdi
movq %rsp, %rax
leaq -0x250(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq -0x238(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x1d8(%rbp), %rdx
leaq -0x1f0(%rbp), %rcx
leaq -0x208(%rbp), %r8
leaq -0x220(%rbp), %r9
callq 0xc920
jmp 0x5a16
leaq -0x250(%rbp), %rdi
callq 0xc620
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
jmp 0x5bb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5af4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5ae8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5adc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5ad0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5ac4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x250(%rbp), %rdi
callq 0xc620
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
jmp 0x5bc0
movb $0x1, -0x269(%rbp)
movl $0x18, %edi
callq 0x2100
movq %rax, -0x2f0(%rbp)
leaq 0xb5a1(%rip), %rsi      # 0x110c5
leaq -0x268(%rbp), %rdi
callq 0x7b00
jmp 0x5b32
movq -0x2f0(%rbp), %rdi
leaq 0x126f8(%rip), %rsi     # 0x18238
leaq -0x268(%rbp), %rdx
callq 0xc680
jmp 0x5b4e
movq -0x2f0(%rbp), %rdi
movb $0x0, -0x269(%rbp)
leaq 0x121dd(%rip), %rsi     # 0x17d40
leaq 0x6ab6(%rip), %rdx      # 0xc620
callq 0x2330
jmp 0x5bc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5b97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x268(%rbp), %rdi
callq 0xc620
testb $0x1, -0x269(%rbp)
jne 0x5ba2
jmp 0x5bae
movq -0x2f0(%rbp), %rdi
callq 0x2180
jmp 0x5bc0
movq -0x280(%rbp), %rax
addq $0x300, %rsp            # imm = 0x300
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x2340
nopl (%rax)