// File: /workspace/github_c_makefile_star2_O0/martintopholm[P]xping/icmp.c
// Function: find
struct probe *
find(int af, void *address)
{
	struct probe *result;
	union addr sa;

	memset(&sa, 0, sizeof(sa));
	if (af == AF_INET) {
		sa.sin.sin_family = AF_INET;
		memmove(&sa.sin.sin_addr, (struct in_addr *)address,
		    sizeof(sa.sin.sin_addr));
	} else if (af == AF_INET6) {
		sa.sin6.sin6_family = AF_INET6;
		memmove(&sa.sin6.sin6_addr, (struct in6_addr *)address,
		    sizeof(sa.sin6.sin6_addr));
	} else {
		return NULL;
	}
	HASH_FIND(hh, hash, &sa, sizeof(union addr), result);
	return (result);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %edi, -0xc(%rbp)
movq %rsi, -0x18(%rbp)
leaq -0x3c(%rbp), %rdi
xorl %esi, %esi
movl $0x1c, %edx
callq 0x2100
cmpl $0x2, -0xc(%rbp)
jne 0x4b9d
movw $0x2, -0x3c(%rbp)
leaq -0x3c(%rbp), %rax
addq $0x4, %rax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
movl %ecx, (%rax)
jmp 0x4bcc
cmpl $0xa, -0xc(%rbp)
jne 0x4bbd
movw $0xa, -0x3c(%rbp)
leaq -0x3c(%rbp), %rax
addq $0x8, %rax
movq -0x18(%rbp), %rcx
movups (%rcx), %xmm0
movups %xmm0, (%rax)
jmp 0x4bca
movq $0x0, -0x8(%rbp)
jmp 0x5117
jmp 0x4bcc
jmp 0x4bce
movq $0x0, -0x20(%rbp)
cmpq $0x0, 0x4692(%rip)      # 0x9270
je 0x510d
jmp 0x4be6
leaq -0x3c(%rbp), %rax
movq %rax, -0x58(%rbp)
movl $0xfeedbeef, -0x44(%rbp) # imm = 0xFEEDBEEF
movl $0x9e3779b9, -0x4c(%rbp) # imm = 0x9E3779B9
movl $0x9e3779b9, -0x48(%rbp) # imm = 0x9E3779B9
movl $0x1c, -0x50(%rbp)
cmpl $0xc, -0x50(%rbp)
jb 0x4dfe
movq -0x58(%rbp), %rax
movsbl (%rax), %eax
movq -0x58(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x58(%rbp), %rcx
movsbl 0x2(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x58(%rbp), %rcx
movsbl 0x3(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x4(%rax), %eax
movq -0x58(%rbp), %rcx
movsbl 0x5(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x58(%rbp), %rcx
movsbl 0x6(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x58(%rbp), %rcx
movsbl 0x7(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x8(%rax), %eax
movq -0x58(%rbp), %rcx
movsbl 0x9(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x58(%rbp), %rcx
movsbl 0xa(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x58(%rbp), %rcx
movsbl 0xb(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %eax
shrl $0xd, %eax
xorl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %eax
shll $0x8, %eax
xorl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %eax
shrl $0xd, %eax
xorl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %eax
shrl $0xc, %eax
xorl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %eax
shll $0x10, %eax
xorl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %eax
shrl $0x5, %eax
xorl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %eax
shrl $0x3, %eax
xorl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %eax
shll $0xa, %eax
xorl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %eax
shrl $0xf, %eax
xorl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movq -0x58(%rbp), %rax
addq $0xc, %rax
movq %rax, -0x58(%rbp)
movl -0x50(%rbp), %eax
subl $0xc, %eax
movl %eax, -0x50(%rbp)
jmp 0x4c0a
movl -0x44(%rbp), %eax
addl $0x1c, %eax
movl %eax, -0x44(%rbp)
movl -0x50(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x60(%rbp)
subl $0xa, %eax
ja 0x4ee3
movq -0x60(%rbp), %rax
leaq 0x244e(%rip), %rcx      # 0x7274
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x58(%rbp), %rax
movsbl 0xa(%rax), %eax
shll $0x18, %eax
addl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x9(%rax), %eax
shll $0x10, %eax
addl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x8(%rax), %eax
shll $0x8, %eax
addl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x7(%rax), %eax
shll $0x18, %eax
addl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x6(%rax), %eax
shll $0x10, %eax
addl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x5(%rax), %eax
shll $0x8, %eax
addl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x4(%rax), %eax
addl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x3(%rax), %eax
shll $0x18, %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x2(%rax), %eax
shll $0x10, %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movq -0x58(%rbp), %rax
movsbl 0x1(%rax), %eax
shll $0x8, %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movq -0x58(%rbp), %rax
movsbl (%rax), %eax
addl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
jmp 0x4ee5
movl -0x4c(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %eax
shrl $0xd, %eax
xorl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %eax
shll $0x8, %eax
xorl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %eax
shrl $0xd, %eax
xorl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %eax
shrl $0xc, %eax
xorl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %eax
shll $0x10, %eax
xorl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %eax
shrl $0x5, %eax
xorl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x48(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %eax
shrl $0x3, %eax
xorl -0x48(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x44(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x4c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %eax
shll $0xa, %eax
xorl -0x4c(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x48(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %ecx
movl -0x44(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x44(%rbp)
movl -0x4c(%rbp), %eax
shrl $0xf, %eax
xorl -0x44(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %eax
movq 0x424f(%rip), %rcx      # 0x9270
movq 0x70(%rcx), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
andl %ecx, %eax
movl %eax, -0x40(%rbp)
jmp 0x5032
movq 0x4237(%rip), %rax      # 0x9270
movq 0x70(%rax), %rax
movq (%rax), %rax
movl -0x40(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x5087
jmp 0x5052
movq 0x4217(%rip), %rax      # 0x9270
movq 0x70(%rax), %rax
movq (%rax), %rax
movl -0x40(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0x41fc(%rip), %rcx      # 0x9270
movq 0x70(%rcx), %rdx
xorl %ecx, %ecx
subq 0x20(%rdx), %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
jmp 0x508f
movq $0x0, -0x20(%rbp)
jmp 0x5091
cmpq $0x0, -0x20(%rbp)
je 0x5109
movq -0x20(%rbp), %rax
movl 0xa0(%rax), %eax
cmpq $0x1c, %rax
jne 0x50ca
movq -0x20(%rbp), %rax
movq 0x98(%rax), %rdi
leaq -0x3c(%rbp), %rsi
movl $0x1c, %edx
callq 0x20e0
cmpl $0x0, %eax
jne 0x50c8
jmp 0x5109
jmp 0x50ca
movq -0x20(%rbp), %rax
cmpq $0x0, 0x90(%rax)
je 0x50ff
jmp 0x50da
movq -0x20(%rbp), %rax
movq 0x90(%rax), %rax
movq 0x4184(%rip), %rcx      # 0x9270
movq 0x70(%rcx), %rdx
xorl %ecx, %ecx
subq 0x20(%rdx), %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
jmp 0x5107
movq $0x0, -0x20(%rbp)
jmp 0x5091
jmp 0x510b
jmp 0x510d
jmp 0x510f
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)