// File: /workspace/github_cpp_makefile_star2_O2/alexwarth[P]nothing/main.cpp
// Function: installPrimAsMethod(int, int, int)
void installPrimAsMethod(value_t _class, value_t sel, value_t prim) {
  value_t closure = _p1(Push, ref(nil));
  value_t code    = deref_(closure, mk(5));
  slotAtPut(code, Int(0), cons(Arg,    Int(1))); // push boxed receiver
  slotAtPut(code, Int(1), cons(Unbox,  Int(0))); // unbox the receiver on the stack
  slotAtPut(code, Int(2), cons(Push,   prim));   // push the primitive
  slotAtPut(code, Int(3), cons(DoPrim, Int(1)));
  slotAtPut(code, Int(4), cons(Ret,    nil));    // return (DoPrim's result is top of stack)
  _p1(Push, sel);
  _p1(InstMeth, _class);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %edx, %r15d
movl 0xbc26(%rip), %eax      # 0x13488
cmpl $0x0, 0xbcd7(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x7f02
movl %esi, %ebp
movl %edi, %ebx
sarl %eax
cltq
leaq 0xb7f5(%rip), %rcx      # 0x13080
movq (%rcx,%rax,8), %r14
movl 0xbcb2(%rip), %r12d     # 0x13548
pushq $0x1
popq %rdi
callq 0x2ccd
movl 0xbc9c(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x7f0b
movl %eax, %edx
sarl %edx
movq 0xbcef(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x78e2
imulq $0x18, %rdx, %rsi
movl (%rcx,%rsi), %esi
testb $0x1, %sil
je 0x7f02
cmpl $0x1, %esi
jle 0x7f5b
imulq $0x18, %rdx, %rdx
movq 0x10(%rcx,%rdx), %rcx
movl %r12d, (%rcx)
movl %eax, %edi
callq *%r14
movl %eax, %r12d
cmpl $0x0, 0xbc43(%rip)      # 0x13540
je 0x790b
movl %r12d, %eax
andl $0x1, %eax
jne 0x7f14
sarl %r12d
pushq $0x5
popq %rdi
callq 0x2ccd
movl %eax, %r14d
cmpl $0x0, 0xbc20(%rip)      # 0x13540
movq 0xbc89(%rip), %rax      # 0x135b0
movslq %r12d, %rcx
je 0x7945
imulq $0x18, %rcx, %rdx
movl (%rax,%rdx), %edx
testb $0x1, %dl
je 0x7f7a
cmpl $0x1, %edx
jle 0x7f83
imulq $0x18, %rcx, %rcx
movq 0x10(%rax,%rcx), %rax
movl %r14d, (%rax)
testb $0x1, %r14b
je 0x7964
cmpl $0x0, 0xbbe2(%rip)      # 0x13540
jne 0x7e37
movl 0xbb45(%rip), %r12d     # 0x134b0
pushq $0x2
popq %rdi
callq 0x2ccd
movl 0xbbc7(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x7e37
movl %eax, %edx
sarl %edx
movq 0xbc1a(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x79b3
imulq $0x18, %rdx, %rsi
movl (%rcx,%rsi), %esi
testb $0x1, %sil
je 0x7e67
cmpl $0x1, %esi
jle 0x7a22
testb $0x1, %al
sete %dil
imulq $0x18, %rdx, %rsi
movq 0x10(%rcx,%rsi), %rdx
movl %r12d, (%rdx)
movl 0xbb74(%rip), %r8d      # 0x13540
testl %r8d, %r8d
sete %dl
orb %dil, %dl
je 0x7e37
movl %r14d, %edx
sarl %edx
leaq (%rcx,%rsi), %rdi
addq $0x10, %rdi
movslq %edx, %rdx
testl %r8d, %r8d
je 0x7a2e
movl (%rcx,%rsi), %esi
testb $0x1, %sil
je 0x7e67
cmpl $0x3, %esi
jle 0x7a22
movq (%rdi), %rsi
movl $0x3, 0x4(%rsi)
imulq $0x18, %rdx, %rsi
movl (%rcx,%rsi), %esi
testb $0x1, %sil
je 0x7e67
cmpl $0x1, %esi
jg 0x7a38
leaq 0x70b0(%rip), %rdi      # 0xead9
jmp 0x7e6e
movq (%rdi), %rsi
movl $0x3, 0x4(%rsi)
imulq $0x18, %rdx, %r12
movq 0x10(%rcx,%r12), %rcx
movl %eax, (%rcx)
testb $0x1, %r14b
je 0x7a56
cmpl $0x0, 0xbaf0(%rip)      # 0x13540
jne 0x7e40
movl 0xba47(%rip), %r13d     # 0x134a4
pushq $0x2
popq %rdi
callq 0x2ccd
movl 0xbad5(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x7e40
movl %eax, %edx
sarl %edx
movq 0xbb28(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x7aa5
imulq $0x18, %rdx, %rsi
movl (%rcx,%rsi), %esi
testb $0x1, %sil
je 0x7e86
cmpl $0x1, %esi
jle 0x7b07
testb $0x1, %al
sete %sil
imulq $0x18, %rdx, %rdi
movq 0x10(%rcx,%rdi), %rdx
movl %r13d, (%rdx)
movl 0xba83(%rip), %edx      # 0x13540
testl %edx, %edx
sete %r8b
orb %sil, %r8b
je 0x7e40
leaq (%rcx,%rdi), %rsi
addq $0x10, %rsi
testl %edx, %edx
je 0x7b13
movl (%rcx,%rdi), %edi
testb $0x1, %dil
je 0x7e86
cmpl $0x3, %edi
jle 0x7b07
movq (%rsi), %rsi
movl $0x1, 0x4(%rsi)
movl (%rcx,%r12), %esi
testb $0x1, %sil
je 0x7e86
cmpl $0x3, %esi
jg 0x7b1d
leaq 0x7099(%rip), %rdi      # 0xeba7
jmp 0x7e8d
movq (%rsi), %rsi
movl $0x1, 0x4(%rsi)
testl %edx, %edx
sete %dl
testb $0x1, %r14b
sete %sil
movq 0x10(%rcx,%r12), %rcx
movl %eax, 0x4(%rcx)
orb %dl, %sil
je 0x7e49
movl 0xb946(%rip), %r13d     # 0x13488
pushq $0x2
popq %rdi
callq 0x2ccd
movl 0xb9f0(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x7e49
movl %eax, %edx
sarl %edx
movq 0xba43(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x7b8a
imulq $0x18, %rdx, %rsi
movl (%rcx,%rsi), %esi
testb $0x1, %sil
je 0x7ea5
cmpl $0x1, %esi
jle 0x7be9
testb $0x1, %al
sete %sil
imulq $0x18, %rdx, %rdi
movq 0x10(%rcx,%rdi), %rdx
movl %r13d, (%rdx)
movl 0xb99e(%rip), %edx      # 0x13540
testl %edx, %edx
sete %r8b
orb %sil, %r8b
je 0x7e49
leaq (%rcx,%rdi), %rsi
addq $0x10, %rsi
testl %edx, %edx
je 0x7bf5
movl (%rcx,%rdi), %edi
testb $0x1, %dil
je 0x7ea5
cmpl $0x3, %edi
jle 0x7be9
movq (%rsi), %rsi
movl %r15d, 0x4(%rsi)
movl (%rcx,%r12), %esi
testb $0x1, %sil
je 0x7ea5
cmpl $0x5, %esi
jg 0x7bfc
leaq 0x7085(%rip), %rdi      # 0xec75
jmp 0x7eac
movq (%rsi), %rsi
movl %r15d, 0x4(%rsi)
testl %edx, %edx
sete %dl
testb $0x1, %r14b
sete %sil
movq 0x10(%rcx,%r12), %rcx
movl %eax, 0x8(%rcx)
orb %dl, %sil
je 0x7e52
movl 0xb8bb(%rip), %r15d     # 0x134dc
pushq $0x2
popq %rdi
callq 0x2ccd
movl 0xb911(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x7e52
movl %eax, %edx
sarl %edx
movq 0xb964(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x7c69
imulq $0x18, %rdx, %rsi
movl (%rcx,%rsi), %esi
testb $0x1, %sil
je 0x7ec4
cmpl $0x1, %esi
jle 0x7ccb
testb $0x1, %al
sete %sil
imulq $0x18, %rdx, %rdi
movq 0x10(%rcx,%rdi), %rdx
movl %r15d, (%rdx)
movl 0xb8bf(%rip), %edx      # 0x13540
testl %edx, %edx
sete %r8b
orb %sil, %r8b
je 0x7e52
leaq (%rcx,%rdi), %rsi
addq $0x10, %rsi
testl %edx, %edx
je 0x7cd7
movl (%rcx,%rdi), %edi
testb $0x1, %dil
je 0x7ec4
cmpl $0x3, %edi
jle 0x7ccb
movq (%rsi), %rsi
movl $0x3, 0x4(%rsi)
movl (%rcx,%r12), %esi
testb $0x1, %sil
je 0x7ec4
cmpl $0x7, %esi
jg 0x7ce1
leaq 0x7071(%rip), %rdi      # 0xed43
jmp 0x7ecb
movq (%rsi), %rsi
movl $0x3, 0x4(%rsi)
testl %edx, %edx
sete %dl
testb $0x1, %r14b
sete %sil
movq 0x10(%rcx,%r12), %rcx
movl %eax, 0xc(%rcx)
orb %dl, %sil
je 0x7e5b
movl 0xb7c6(%rip), %r15d     # 0x134cc
movl 0xb83b(%rip), %r14d     # 0x13548
pushq $0x2
popq %rdi
callq 0x2ccd
movl 0xb825(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x7e5b
movl %eax, %edx
sarl %edx
movq 0xb878(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x7d55
imulq $0x18, %rdx, %rsi
movl (%rcx,%rsi), %esi
testb $0x1, %sil
je 0x7ee3
cmpl $0x1, %esi
jle 0x7db4
testb $0x1, %al
sete %sil
imulq $0x18, %rdx, %rdi
movq 0x10(%rcx,%rdi), %rdx
movl %r15d, (%rdx)
movl 0xb7d3(%rip), %edx      # 0x13540
testl %edx, %edx
sete %r8b
orb %sil, %r8b
je 0x7e5b
leaq (%rcx,%rdi), %rsi
addq $0x10, %rsi
testl %edx, %edx
je 0x7dc0
movl (%rcx,%rdi), %edi
testb $0x1, %dil
je 0x7ee3
cmpl $0x3, %edi
jle 0x7db4
movq (%rsi), %rsi
movl %r14d, 0x4(%rsi)
movl (%rcx,%r12), %esi
testb $0x1, %sil
je 0x7ee3
cmpl $0x9, %esi
jg 0x7dc7
leaq 0x7056(%rip), %rdi      # 0xee11
jmp 0x7eea
movq (%rsi), %rsi
movl %r14d, 0x4(%rsi)
movq 0x10(%rcx,%r12), %rcx
movl %eax, 0x10(%rcx)
movl 0xb6b3(%rip), %eax      # 0x13488
testl %edx, %edx
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
leaq 0xb295(%rip), %rcx      # 0x13080
je 0x7f1d
sarl %eax
cltq
movl %ebp, %edi
movq %rcx, %r14
callq *(%rcx,%rax,8)
movl 0xb6cd(%rip), %eax      # 0x134d0
cmpl $0x0, 0xb736(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x7f3c
sarl %eax
cltq
movl %ebx, %edi
movq %r14, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *(%rcx,%rax,8)
leaq 0x321c(%rip), %rdi      # 0xb05a
jmp 0x7e6e
leaq 0x3213(%rip), %rdi      # 0xb05a
jmp 0x7e8d
leaq 0x320a(%rip), %rdi      # 0xb05a
jmp 0x7eac
leaq 0x3201(%rip), %rdi      # 0xb05a
jmp 0x7ecb
leaq 0x31f8(%rip), %rdi      # 0xb05a
jmp 0x7eea
leaq 0x3320(%rip), %rdi      # 0xb18e
leaq 0x31c2(%rip), %rsi      # 0xb037
leaq 0x6a8d(%rip), %rcx      # 0xe909
movl $0x201, %edx            # imm = 0x201
callq 0x2060
leaq 0x3301(%rip), %rdi      # 0xb18e
leaq 0x31a3(%rip), %rsi      # 0xb037
leaq 0x6a6e(%rip), %rcx      # 0xe909
movl $0x202, %edx            # imm = 0x202
callq 0x2060
leaq 0x32e2(%rip), %rdi      # 0xb18e
leaq 0x3184(%rip), %rsi      # 0xb037
leaq 0x6a4f(%rip), %rcx      # 0xe909
movl $0x203, %edx            # imm = 0x203
callq 0x2060
leaq 0x32c3(%rip), %rdi      # 0xb18e
leaq 0x3165(%rip), %rsi      # 0xb037
leaq 0x6a30(%rip), %rcx      # 0xe909
movl $0x204, %edx            # imm = 0x204
callq 0x2060
leaq 0x32a4(%rip), %rdi      # 0xb18e
leaq 0x3146(%rip), %rsi      # 0xb037
leaq 0x6a11(%rip), %rcx      # 0xe909
movl $0x205, %edx            # imm = 0x205
callq 0x2060
leaq 0x3285(%rip), %rdi      # 0xb18e
jmp 0x7f62
leaq 0x3148(%rip), %rdi      # 0xb05a
jmp 0x7f62
leaq 0x313f(%rip), %rdi      # 0xb05a
jmp 0x7f8a
leaq 0x326a(%rip), %rdi      # 0xb18e
leaq 0x310c(%rip), %rsi      # 0xb037
leaq 0x69d7(%rip), %rcx      # 0xe909
movl $0x206, %edx            # imm = 0x206
callq 0x2060
leaq 0x324b(%rip), %rdi      # 0xb18e
leaq 0x30ed(%rip), %rsi      # 0xb037
leaq 0x69b8(%rip), %rcx      # 0xe909
movl $0x207, %edx            # imm = 0x207
callq 0x2060
leaq 0x69db(%rip), %rdi      # 0xe93d
leaq 0x30ce(%rip), %rsi      # 0xb037
leaq 0x6999(%rip), %rcx      # 0xe909
movl $0x1ff, %edx            # imm = 0x1FF
callq 0x2060
leaq 0x320d(%rip), %rdi      # 0xb18e
jmp 0x7f8a
leaq 0x6a81(%rip), %rdi      # 0xea0b
leaq 0x30a6(%rip), %rsi      # 0xb037
leaq 0x6971(%rip), %rcx      # 0xe909
movl $0x200, %edx            # imm = 0x200
callq 0x2060