blob: e73c60444434c8e2755dd35f68990d046f0e9c7e (
plain) (
blame)
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
109
110
111
|
int __fastcall sub_40160C(int a1, int a2, int a3, _DWORD *a4, int *a5, int a6, int *a7)
{
char *v7; // r7
int v10; // r0
int v11; // r5
int v12; // r0
int v13; // r6
int v14; // r5
int v16; // r1
int v17; // r2
int v18; // r3
int v19; // r0
int v20; // r0
int v21; // r1
int v22; // r3
int v23; // r4
int v24; // r7
int v26; // [sp+0h] [bp-34h] BYREF
_DWORD v27[12]; // [sp+4h] [bp-30h] BYREF
v7 = off_4016F4[0];
if ( *off_4016F4[0] == 0 )
return *off_4016F8;
if ( a2 != 1 )
return 4;
((void (__fastcall *)(_DWORD *, int))loc_401000)(a1: v27, a2: 48);
v26 = 1;
sub_4010AC(a1: &v26);
v26 = 10;
v10 = sub_4010AC(a1: &v26);
*a7 = v10;
if ( v10 == 0 )
{
v27[1] = 1;
v26 = a1;
if ( a1 == 5 )
{
v12 = sub_4010AC(a1: &v26);
v11 = 11;
*a7 = v12;
if ( v12 == 0 )
v11 = 1;
v13 = 0;
}
else
{
v14 = a6;
if ( a6 == 0 )
{
v11 = 9;
*a7 = dword_4016FC;
LABEL_26:
v26 = 11;
sub_4010AC(a1: &v26);
return v11;
}
v16 = *((_DWORD *)v7 + 12);
v17 = *((_DWORD *)v7 + 13);
v18 = *((_DWORD *)v7 + 14);
v27[2] = *((_DWORD *)v7 + 6);
v27[3] = v16;
v27[4] = v17;
v27[5] = v18;
v13 = 0;
while ( 1 )
{
if ( v14 == 0 )
{
v11 = 1;
goto LABEL_20;
}
v13 = *a5;
if ( *a5 != 0 )
{
v27[0] = *a5;
v19 = sub_4010AC(a1: &v26);
*a7 = v19;
if ( v19 != 0 )
break;
}
--v14;
++a5;
}
v11 = 11;
}
LABEL_20:
sub_401080(a1: &v26);
v20 = v27[6];
v21 = v27[7];
v22 = v27[8];
v23 = v27[9];
v24 = v27[10];
*a4 = v27[11];
a4[1] = v20;
a4[2] = v21;
a4[3] = v22;
a4[4] = v23;
a4[5] = v24;
if ( *a7 != 0 )
{
if ( *a7 == dword_4016FC )
*a4 = v13;
}
else if ( v20 != v21 )
{
v11 = 7;
}
goto LABEL_26;
}
return 11;
}
|