// File: /workspace/github_cpp_makefile_star2_O3/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 0xba26(%rip), %eax      # 0x13488
cmpl $0x0, 0xbad7(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8122
movl %esi, %ebp
movl %edi, %ebx
sarl %eax
cltq
leaq 0xb5f5(%rip), %rcx      # 0x13080
movq (%rcx,%rax,8), %r14
movl 0xbab2(%rip), %r12d     # 0x13548
movl $0x1, %edi
callq 0x2d11
movl 0xba9a(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x812b
movl %eax, %edx
sarl %edx
movq 0xbaed(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x7ae4
leaq (%rdx,%rdx,2), %rsi
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x8122
cmpl $0x1, %esi
jle 0x817b
leaq (%rdx,%rdx,2), %rdx
movq 0x10(%rcx,%rdx,8), %rcx
movl %r12d, (%rcx)
movl %eax, %edi
callq *%r14
movl %eax, %r12d
cmpl $0x0, 0xba41(%rip)      # 0x13540
je 0x7b0d
movl %r12d, %eax
andl $0x1, %eax
jne 0x8134
sarl %r12d
movl $0x5, %edi
callq 0x2d11
movl %eax, %r14d
cmpl $0x0, 0xba1c(%rip)      # 0x13540
movq 0xba85(%rip), %rax      # 0x135b0
movslq %r12d, %rcx
je 0x7b49
leaq (%rcx,%rcx,2), %rdx
movl (%rax,%rdx,8), %edx
testb $0x1, %dl
je 0x819a
cmpl $0x1, %edx
jle 0x81a3
leaq (%rcx,%rcx,2), %rcx
movq 0x10(%rax,%rcx,8), %rax
movl %r14d, (%rax)
testb $0x1, %r14b
je 0x7b68
cmpl $0x0, 0xb9de(%rip)      # 0x13540
jne 0x8039
movl 0xb941(%rip), %r12d     # 0x134b0
movl $0x2, %edi
callq 0x2d11
movl 0xb9c1(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x8039
movl %eax, %edx
sarl %edx
movq 0xba14(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x7bb9
leaq (%rdx,%rdx,2), %rsi
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x806c
cmpl $0x1, %esi
jle 0x7c28
testb $0x1, %al
sete %dil
leaq (%rdx,%rdx,2), %rsi
movq 0x10(%rcx,%rsi,8), %rdx
movl %r12d, (%rdx)
movl 0xb96e(%rip), %r8d      # 0x13540
testl %r8d, %r8d
sete %dl
orb %dil, %dl
je 0x8039
movl %r14d, %edx
sarl %edx
leaq (%rcx,%rsi,8), %rdi
addq $0x10, %rdi
testl %r8d, %r8d
je 0x7c34
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x806c
cmpl $0x3, %esi
jle 0x7c28
movq (%rdi), %rsi
movl $0x3, 0x4(%rsi)
movslq %edx, %rdx
leaq (%rdx,%rdx,2), %rsi
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x806c
cmpl $0x1, %esi
jg 0x7c41
leaq 0x7eaa(%rip), %rdi      # 0xfad9
jmp 0x8073
movq (%rdi), %rsi
movl $0x3, 0x4(%rsi)
movslq %edx, %rdx
leaq (%rdx,%rdx,2), %r12
movq 0x10(%rcx,%r12,8), %rcx
movl %eax, (%rcx)
testb $0x1, %r14b
je 0x7c5f
cmpl $0x0, 0xb8e7(%rip)      # 0x13540
jne 0x8042
movl 0xb83e(%rip), %r13d     # 0x134a4
movl $0x2, %edi
callq 0x2d11
movl 0xb8ca(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x8042
movl %eax, %edx
sarl %edx
movq 0xb91d(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x7cb4
leaq (%rdx,%rdx,2), %rsi
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x808b
cmpl $0x1, %esi
jle 0x8094
testb $0x1, %al
sete %r8b
leaq (%rdx,%rdx,2), %rsi
movq 0x10(%rcx,%rsi,8), %rdx
movl %r13d, (%rdx)
movl 0xb874(%rip), %edi      # 0x13540
testl %edi, %edi
sete %dl
orb %r8b, %dl
je 0x8042
leaq (%rcx,%rsi,8), %rdx
addq $0x10, %rdx
testl %edi, %edi
je 0x7d2f
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x808b
cmpl $0x3, %esi
jle 0x8094
movq (%rdx), %rdx
movl $0x1, 0x4(%rdx)
movl (%rcx,%r12,8), %edx
testb $0x1, %dl
je 0x808b
cmpl $0x3, %edx
jle 0x8094
movq 0x10(%rcx,%r12,8), %rcx
movl %eax, 0x4(%rcx)
testb $0x1, %r14b
je 0x7d41
jmp 0x804b
movq (%rdx), %rdx
movl $0x1, 0x4(%rdx)
movq 0x10(%rcx,%r12,8), %rcx
movl %eax, 0x4(%rcx)
movl 0xb740(%rip), %r13d     # 0x13488
movl $0x2, %edi
callq 0x2d11
movl 0xb7e8(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x804b
movl %eax, %edx
sarl %edx
movq 0xb83b(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x7d96
leaq (%rdx,%rdx,2), %rsi
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x80b3
cmpl $0x1, %esi
jle 0x80bc
testb $0x1, %al
sete %r8b
leaq (%rdx,%rdx,2), %rsi
movq 0x10(%rcx,%rsi,8), %rdx
movl %r13d, (%rdx)
movl 0xb792(%rip), %edi      # 0x13540
testl %edi, %edi
sete %dl
orb %r8b, %dl
je 0x804b
leaq (%rcx,%rsi,8), %rdx
addq $0x10, %rdx
testl %edi, %edi
je 0x7e0e
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x80b3
cmpl $0x3, %esi
jle 0x80bc
movq (%rdx), %rdx
movl %r15d, 0x4(%rdx)
movl (%rcx,%r12,8), %edx
testb $0x1, %dl
je 0x80b3
cmpl $0x5, %edx
jle 0x80bc
movq 0x10(%rcx,%r12,8), %rcx
movl %eax, 0x8(%rcx)
testb $0x1, %r14b
je 0x7e1d
jmp 0x8054
movq (%rdx), %rdx
movl %r15d, 0x4(%rdx)
movq 0x10(%rcx,%r12,8), %rcx
movl %eax, 0x8(%rcx)
movl 0xb6b8(%rip), %r15d     # 0x134dc
movl $0x2, %edi
callq 0x2d11
movl 0xb70c(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x8054
movl %eax, %edx
sarl %edx
movq 0xb75f(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x7e72
leaq (%rdx,%rdx,2), %rsi
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x80db
cmpl $0x1, %esi
jle 0x80e4
testb $0x1, %al
sete %r8b
leaq (%rdx,%rdx,2), %rsi
movq 0x10(%rcx,%rsi,8), %rdx
movl %r15d, (%rdx)
movl 0xb6b6(%rip), %edi      # 0x13540
testl %edi, %edi
sete %dl
orb %r8b, %dl
je 0x8054
leaq (%rcx,%rsi,8), %rdx
addq $0x10, %rdx
testl %edi, %edi
je 0x7eed
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x80db
cmpl $0x3, %esi
jle 0x80e4
movq (%rdx), %rdx
movl $0x3, 0x4(%rdx)
movl (%rcx,%r12,8), %edx
testb $0x1, %dl
je 0x80db
cmpl $0x7, %edx
jle 0x80e4
movq 0x10(%rcx,%r12,8), %rcx
movl %eax, 0xc(%rcx)
testb $0x1, %r14b
je 0x7eff
jmp 0x8060
movq (%rdx), %rdx
movl $0x3, 0x4(%rdx)
movq 0x10(%rcx,%r12,8), %rcx
movl %eax, 0xc(%rcx)
movl 0xb5c6(%rip), %r15d     # 0x134cc
movl 0xb63b(%rip), %r14d     # 0x13548
movl $0x2, %edi
callq 0x2d11
movl 0xb623(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x8060
movl %eax, %edx
sarl %edx
movq 0xb676(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x7f57
leaq (%rdx,%rdx,2), %rsi
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x8103
cmpl $0x1, %esi
jle 0x7fb6
testb $0x1, %al
sete %sil
leaq (%rdx,%rdx,2), %rdi
movq 0x10(%rcx,%rdi,8), %rdx
movl %r15d, (%rdx)
movl 0xb5d1(%rip), %edx      # 0x13540
testl %edx, %edx
sete %r8b
orb %sil, %r8b
je 0x8060
leaq (%rcx,%rdi,8), %rsi
addq $0x10, %rsi
testl %edx, %edx
je 0x7fc2
movl (%rcx,%rdi,8), %edi
testb $0x1, %dil
je 0x8103
cmpl $0x3, %edi
jle 0x7fb6
movq (%rsi), %rsi
movl %r14d, 0x4(%rsi)
movl (%rcx,%r12,8), %esi
testb $0x1, %sil
je 0x8103
cmpl $0x9, %esi
jg 0x7fc9
leaq 0x7e54(%rip), %rdi      # 0xfe11
jmp 0x810a
movq (%rsi), %rsi
movl %r14d, 0x4(%rsi)
movq 0x10(%rcx,%r12,8), %rcx
movl %eax, 0x10(%rcx)
movl 0xb4b1(%rip), %eax      # 0x13488
testl %edx, %edx
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
leaq 0xb093(%rip), %rcx      # 0x13080
je 0x813d
sarl %eax
cltq
movl %ebp, %edi
movq %rcx, %r14
callq *(%rcx,%rax,8)
movl 0xb4cb(%rip), %eax      # 0x134d0
cmpl $0x0, 0xb534(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x815c
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 0x401a(%rip), %rdi      # 0xc05a
jmp 0x8073
leaq 0x4011(%rip), %rdi      # 0xc05a
jmp 0x809b
leaq 0x4008(%rip), %rdi      # 0xc05a
jmp 0x80c3
leaq 0x3fff(%rip), %rdi      # 0xc05a
jmp 0x80eb
leaq 0x3ff3(%rip), %rdi      # 0xc05a
jmp 0x810a
leaq 0x411b(%rip), %rdi      # 0xc18e
leaq 0x3fbd(%rip), %rsi      # 0xc037
leaq 0x7888(%rip), %rcx      # 0xf909
movl $0x201, %edx            # imm = 0x201
callq 0x2060
leaq 0x40fc(%rip), %rdi      # 0xc18e
jmp 0x809b
leaq 0x7b0c(%rip), %rdi      # 0xfba7
leaq 0x3f95(%rip), %rsi      # 0xc037
leaq 0x7860(%rip), %rcx      # 0xf909
movl $0x202, %edx            # imm = 0x202
callq 0x2060
leaq 0x40d4(%rip), %rdi      # 0xc18e
jmp 0x80c3
leaq 0x7bb2(%rip), %rdi      # 0xfc75
leaq 0x3f6d(%rip), %rsi      # 0xc037
leaq 0x7838(%rip), %rcx      # 0xf909
movl $0x203, %edx            # imm = 0x203
callq 0x2060
leaq 0x40ac(%rip), %rdi      # 0xc18e
jmp 0x80eb
leaq 0x7c58(%rip), %rdi      # 0xfd43
leaq 0x3f45(%rip), %rsi      # 0xc037
leaq 0x7810(%rip), %rcx      # 0xf909
movl $0x204, %edx            # imm = 0x204
callq 0x2060
leaq 0x4084(%rip), %rdi      # 0xc18e
leaq 0x3f26(%rip), %rsi      # 0xc037
leaq 0x77f1(%rip), %rcx      # 0xf909
movl $0x205, %edx            # imm = 0x205
callq 0x2060
leaq 0x4065(%rip), %rdi      # 0xc18e
jmp 0x8182
leaq 0x3f28(%rip), %rdi      # 0xc05a
jmp 0x8182
leaq 0x3f1f(%rip), %rdi      # 0xc05a
jmp 0x81aa
leaq 0x404a(%rip), %rdi      # 0xc18e
leaq 0x3eec(%rip), %rsi      # 0xc037
leaq 0x77b7(%rip), %rcx      # 0xf909
movl $0x206, %edx            # imm = 0x206
callq 0x2060
leaq 0x402b(%rip), %rdi      # 0xc18e
leaq 0x3ecd(%rip), %rsi      # 0xc037
leaq 0x7798(%rip), %rcx      # 0xf909
movl $0x207, %edx            # imm = 0x207
callq 0x2060
leaq 0x77bb(%rip), %rdi      # 0xf93d
leaq 0x3eae(%rip), %rsi      # 0xc037
leaq 0x7779(%rip), %rcx      # 0xf909
movl $0x1ff, %edx            # imm = 0x1FF
callq 0x2060
leaq 0x3fed(%rip), %rdi      # 0xc18e
jmp 0x81aa
leaq 0x7861(%rip), %rdi      # 0xfa0b
leaq 0x3e86(%rip), %rsi      # 0xc037
leaq 0x7751(%rip), %rcx      # 0xf909
movl $0x200, %edx            # imm = 0x200
callq 0x2060