// File: /workspace/github_c_makefile_star2_O0/esheldon[P]xshear/src/redshear.c
// Function: find_lens
LensumHash* find_lens(LensumHash* lensums, int64 id) {
    // a single file reference, don't allocate
    LensumHash* alensum=NULL;
    HASH_FIND_INT64(lensums, &id, alensum);
    return alensum;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0xc347
jmp 0xbe39
leaq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movl $0xfeedbeef, -0x20(%rbp) # imm = 0xFEEDBEEF
movl $0x9e3779b9, -0x28(%rbp) # imm = 0x9E3779B9
movl $0x9e3779b9, -0x24(%rbp) # imm = 0x9E3779B9
movl $0x8, -0x2c(%rbp)
cmpl $0xc, -0x2c(%rbp)
jb 0xc051
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
movq -0x38(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x38(%rbp), %rcx
movsbl 0x2(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x38(%rbp), %rcx
movsbl 0x3(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x4(%rax), %eax
movq -0x38(%rbp), %rcx
movsbl 0x5(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x38(%rbp), %rcx
movsbl 0x6(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x38(%rbp), %rcx
movsbl 0x7(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x8(%rax), %eax
movq -0x38(%rbp), %rcx
movsbl 0x9(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x38(%rbp), %rcx
movsbl 0xa(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x38(%rbp), %rcx
movsbl 0xb(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %eax
shrl $0xd, %eax
xorl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %eax
shll $0x8, %eax
xorl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %eax
shrl $0xd, %eax
xorl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %eax
shrl $0xc, %eax
xorl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %eax
shll $0x10, %eax
xorl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %eax
shrl $0x5, %eax
xorl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %eax
shrl $0x3, %eax
xorl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %eax
shll $0xa, %eax
xorl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %eax
shrl $0xf, %eax
xorl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movq -0x38(%rbp), %rax
addq $0xc, %rax
movq %rax, -0x38(%rbp)
movl -0x2c(%rbp), %eax
subl $0xc, %eax
movl %eax, -0x2c(%rbp)
jmp 0xbe5d
movl -0x20(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x20(%rbp)
movl -0x2c(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x40(%rbp)
subl $0xa, %eax
ja 0xc136
movq -0x40(%rbp), %rax
leaq 0x2ee7(%rip), %rcx      # 0xef60
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x38(%rbp), %rax
movsbl 0xa(%rax), %eax
shll $0x18, %eax
addl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x9(%rax), %eax
shll $0x10, %eax
addl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x8(%rax), %eax
shll $0x8, %eax
addl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x7(%rax), %eax
shll $0x18, %eax
addl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x6(%rax), %eax
shll $0x10, %eax
addl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x5(%rax), %eax
shll $0x8, %eax
addl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x4(%rax), %eax
addl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x3(%rax), %eax
shll $0x18, %eax
addl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x2(%rax), %eax
shll $0x10, %eax
addl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movq -0x38(%rbp), %rax
movsbl 0x1(%rax), %eax
shll $0x8, %eax
addl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
addl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
jmp 0xc138
movl -0x28(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %eax
shrl $0xd, %eax
xorl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %eax
shll $0x8, %eax
xorl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %eax
shrl $0xd, %eax
xorl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %eax
shrl $0xc, %eax
xorl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %eax
shll $0x10, %eax
xorl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %eax
shrl $0x5, %eax
xorl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %eax
shrl $0x3, %eax
xorl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x28(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %eax
shll $0xa, %eax
xorl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x28(%rbp), %eax
shrl $0xf, %eax
xorl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
andl %ecx, %eax
movl %eax, -0x1c(%rbp)
jmp 0xc282
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl -0x1c(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0xc2ce
jmp 0xc29f
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl -0x1c(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rdx
xorl %ecx, %ecx
subq 0x20(%rdx), %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
jmp 0xc2d6
movq $0x0, -0x18(%rbp)
jmp 0xc2d8
cmpq $0x0, -0x18(%rbp)
je 0xc343
movq -0x18(%rbp), %rax
movl 0x38(%rax), %eax
cmpq $0x8, %rax
jne 0xc30d
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0xc30b
jmp 0xc343
jmp 0xc30d
movq -0x18(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0xc339
jmp 0xc31a
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rdx
xorl %ecx, %ecx
subq 0x20(%rdx), %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
jmp 0xc341
movq $0x0, -0x18(%rbp)
jmp 0xc2d8
jmp 0xc345
jmp 0xc347
jmp 0xc349
movq -0x18(%rbp), %rax
popq %rbp
retq
nop