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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
int __fastcall sub_402988(int a1, _DWORD *a2)
{
unsigned int v4; // r0
int v5; // r6
unsigned int v6; // r7
unsigned int v7; // r10
unsigned int v8; // r2
int v9; // r8
int v10; // r11
int v11; // r3
char *v12; // r1
bool v14; // cc
int v15; // r6
unsigned int v16; // r0
_BYTE *v17; // r0
int v18; // [sp+0h] [bp-4h]
sub_405084(a1: 0, a2: sub_402AF4);
v4 = a2[4];
if ( v4 >> 28 == 0 )
{
v6 = a2[522];
v7 = a2[518];
v8 = a2[261];
v9 = a2[520];
v10 = a2[521];
v11 = a2[523];
if ( v6 > 0xFFFFFFFB || v6 + 4 <= v7 )
{
if ( v9 != 1 )
{
v15 = a1 + 80 * HIBYTE(v4);
if ( *(_DWORD *)(v15 + 792) == 3 )
{
v18 = v15 + 792;
if ( sub_4052AC() == 0 )
{
v16 = *((unsigned __int8 *)a2 + v10 + 20)
| (*((unsigned __int8 *)a2 + v10 + 21) << 8)
| ((*((unsigned __int8 *)a2 + v10 + 22) | (*((unsigned __int8 *)a2 + v10 + 23) << 8)) << 16);
if ( v16 <= *(_DWORD *)(v15 + 840) )
{
sub_405084(a1: 0, a2: aAmdTaGcpErrorI);
v5 = 560;
goto LABEL_7;
}
*(_DWORD *)(v15 + 840) = v16;
if ( v9 != 2 )
{
if ( v9 == 3 )
{
v5 = sub_402B78(a1, a2);
if ( v5 != 0 )
goto LABEL_7;
}
else if ( v9 != 4 )
{
sub_405084(a1: 0, a2: off_402B68);
v5 = 561;
goto LABEL_7;
}
}
v5 = 0;
v17 = (char *)a2 + v6 + 1048;
*v17 = 0;
v17[3] = 0;
v17[2] = 0;
v17[1] = 0;
sub_4011A4(a1: a2 + 1620);
if ( sub_403678(a1: v18, a2: a2 + 1620, a3: v7) == 0 )
{
v5 = 0;
a2[1876] = v7;
}
goto LABEL_7;
}
sub_405084(a1: 0, a2: off_402B2C);
v5 = 562;
}
else
{
sub_405084(a1: 0, a2: off_402B28[0]);
v5 = 610;
}
LABEL_7:
sub_405084(a1: 0, a2: off_402B74);
return v5;
}
v14 = v11 + 4 > v8;
if ( v11 + 4 <= v8 )
v14 = a2[524] + 4 > v8;
if ( !v14 )
{
v5 = sub_402D28(a1, a2);
goto LABEL_7;
}
v12 = (char *)dword_402B6C;
}
else
{
v12 = off_402B70[0];
}
sub_405084(a1: 0, a2: v12);
v5 = 256;
goto LABEL_7;
}
return 256;
}
|