int Object_Clone(int *a, int *b)
{
  register int *x __asm__("r2") = a;
  register int *y __asm__("r3") = b;
  if (x != 0) {
    register int t __asm__("r5");
    register int w __asm__("r4");
    __asm__ volatile(
      "mov r4, #17\n\t"
      "mov r5, #0\n\t"
      "add r0, r4, #0\n\t"
      "add r1, r5, #0\n\t"
      "swi #0xab\n\t"
      "add r5, r0, #0\n\t"
      "add r4, r5, #0"
      : "=r" (t), "=r" (w) : : "r0", "r1", "memory");
    x[0] = w;
    x[1] = 0;
  }
  if (y != 0) {
    y[0] = 0;
    y[1] = 0;
  }
  return 0;
}
