Pasted as Plain Text [Remove this paste ]
Description: walk1
URL: http://rafb.ath.cx/pastes/y5T7Wl98.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
__int64 __fastcall walk(int a1, int a2, int a3)
{
  char *v4; // rbx
  int v6; // er12
  _DWORD *v7; // rbp
  __int64 result; // rax
  char *v9; // rcx
  __int64 v10; // rdi
  __int64 v11; // rsi
 
  v4 = (char *)&dx_1;
  v6 = a3 + 1;
  v7 = &dy_0;
  result = a1 + 71LL * a2;
  v9 = (char *)&dx_1 + 16;
  *(_DWORD *)&grid[8 * result + 4] = a3;
  grid[8 * result] = 79;
  do
  {
    v10 = (unsigned int)(a1 + *(_DWORD *)v4);
    if ( (unsigned int)v10 <= 0x46 )
    {
      v11 = (unsigned int)(a2 + *v7);
      if ( (unsigned int)v11 <= 0x46 )
      {
        result = (int)v10 + 71LL * (int)v11;
        if ( grid[8 * result] != 35 )
        {
          result = *(unsigned int *)&grid[8 * result + 4];
          if ( (int)result > v6 || !(_DWORD)result )
          {
            result = walk(v10, v11, (unsigned int)v6, v9);
            v9 = (char *)&_GNU_EH_FRAME_HDR;
          }
        }
      }
    }
    v4 += 4;
    ++v7;
  }
  while ( v4 != v9 );
  return result;
}