extern int Object_BounceOffWalls(int a, int *b, int *c, int d, int e);
int Camera_CalcRenderDist(int *p)
{
  register int *pp __asm__("r2") = p;
  register int base __asm__("r12");
  register int st __asm__("r0");
  register int stk __asm__("r3");
  int v;
  int r1v;
  base = *(int *)0x0200005C;
  pp[21] = pp[15] >> 12;
  pp[22] = pp[16] >> 12;
  st = pp[24];
  v = st;
  if (st == 1)
    goto s1;
  if (st > 1)
    goto hi;
  if (st == 0)
    goto s0;
  goto ret0;
hi:
  if (v == 2)
    goto s1;
  if (v == 3)
    goto s1;
  goto ret0;
s0:
  r1v = (int)(pp + 21);
  pp = pp + 22;
  stk = 16;
  goto call;
s1:
  r1v = (int)(pp + 21);
  pp = pp + 22;
  stk = 8;
call:
  return Object_BounceOffWalls((208 << 1) + base, (int *)r1v, pp, stk, stk);
ret0:
  return 0;
}
