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;
} |