// autogenerated by syzkaller (http://github.com/google/syzkaller)

#ifndef __NR_mmap
#define __NR_mmap 9
#endif
#ifndef __NR_socket
#define __NR_socket 41
#endif
#ifndef __NR_ioctl
#define __NR_ioctl 16
#endif
#ifndef __NR_setsockopt
#define __NR_setsockopt 54
#endif

#define _GNU_SOURCE

#include <stdint.h>
#include <string.h>
#include <sys/syscall.h>
#include <unistd.h>

long r[22];
void loop()
{
  memset(r, -1, sizeof(r));
  r[0] = syscall(__NR_mmap, 0x20000000ul, 0xfff000ul, 0x3ul, 0x32ul,
                 0xfffffffffffffffful, 0x0ul);
  r[1] = syscall(__NR_socket, 0x2ul, 0x806ul, 0x0ul);
  memcpy((void*)0x2000d000,
         "\x6c\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
         "\x00",
         16);
  *(uint16_t*)0x2000d010 = (uint16_t)0xfffffffffffffffd;
  r[4] = syscall(__NR_ioctl, r[1], 0x8914ul, 0x2000d000ul);
  r[5] = syscall(__NR_socket, 0x2ul, 0x1ul, 0x0ul);
  *(uint32_t*)0x20000000 = (uint32_t)0x20000e0;
  *(uint32_t*)0x20000004 = (uint32_t)0x100007f;
  *(uint32_t*)0x20000008 = (uint32_t)0x0;
  r[9] = syscall(__NR_setsockopt, r[5], 0x0ul, 0x27ul, 0x20000000ul,
                 0xcul);
  r[10] = syscall(__NR_socket, 0x2ul, 0x806ul, 0x0ul);
  memcpy((void*)0x208a3fe0,
         "\x6c\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
         "\x00",
         16);
  *(uint16_t*)0x208a3ff0 = (uint16_t)0x0;
  r[13] = syscall(__NR_ioctl, r[10], 0x8914ul, 0x208a3fe0ul);
  memcpy((void*)0x20dc4000,
         "\x6c\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
         "\x00",
         16);
  *(uint64_t*)0x20dc4010 = (uint64_t)0x4;
  *(uint64_t*)0x20dc4018 = (uint64_t)0xffffffffffffffff;
  *(uint16_t*)0x20dc4020 = (uint16_t)0x2;
  *(uint8_t*)0x20dc4022 = (uint8_t)0x40;
  *(uint8_t*)0x20dc4023 = (uint8_t)0x2ed5;
  *(uint8_t*)0x20dc4024 = (uint8_t)0x8;
  r[21] = syscall(__NR_ioctl, r[10], 0x8922ul, 0x20dc4000ul);
}

int main()
{
  loop();
  return 0;
}