blob: 6868eece4b8a567191e3d18e70ed9118f8495e32 (
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
112
113
114
115
116
117
118
119
|
int __fastcall rap_cmd02(void *ctx, struct ta_params *params)
{
_DWORD *v2; // r3
char *v3; // r7
_DWORD *v5; // r9
int v6; // r0
int v7; // r5
int v8; // r0
int v9; // r6
int v10; // r5
int *v11; // r4
int v12; // r1
int v13; // r2
int v14; // r3
int v15; // r0
int v16; // r0
int v17; // r1
int v18; // r3
int v19; // r4
int v20; // r7
int v22; // [sp+0h] [bp-34h] BYREF
_DWORD v23[12]; // [sp+4h] [bp-30h] BYREF
int *v24; // [sp+50h] [bp+1Ch]
int v25; // [sp+54h] [bp+20h]
int *v26; // [sp+58h] [bp+24h]
v3 = off_4016F4[0];
if ( *off_4016F4[0] == 0 )
return *off_4016F8;
if ( params != (struct ta_params *)1 )
return 4;
v5 = v2;
((void (__fastcall *)(_DWORD *, int))loc_401000)(a1: v23, a2: 48);
v22 = 1;
rap_sysdrv_rpc_1076(a1: (int)&v22);
v22 = 10;
v6 = rap_sysdrv_rpc_1076(a1: (int)&v22);
*v26 = v6;
if ( v6 == 0 )
{
v23[1] = 1;
v22 = (int)ctx;
if ( ctx == (void *)5 )
{
v8 = rap_sysdrv_rpc_1076(a1: (int)&v22);
v7 = 11;
*v26 = v8;
if ( v8 == 0 )
v7 = 1;
v9 = 0;
}
else
{
v10 = v25;
if ( v25 == 0 )
{
v7 = 9;
*v26 = dword_4016FC;
LABEL_26:
v22 = 11;
rap_sysdrv_rpc_1076(a1: (int)&v22);
return v7;
}
v11 = v24;
v12 = *((_DWORD *)v3 + 12);
v13 = *((_DWORD *)v3 + 13);
v14 = *((_DWORD *)v3 + 14);
v23[2] = *((_DWORD *)v3 + 6);
v23[3] = v12;
v23[4] = v13;
v23[5] = v14;
v9 = 0;
while ( 1 )
{
if ( v10 == 0 )
{
v7 = 1;
goto LABEL_20;
}
v9 = *v11;
if ( *v11 != 0 )
{
v23[0] = *v11;
v15 = rap_sysdrv_rpc_1076(a1: (int)&v22);
*v26 = v15;
if ( v15 != 0 )
break;
}
--v10;
++v11;
}
v7 = 11;
}
LABEL_20:
rap_sysdrv_rpc_107B(a1: (int)&v22);
v16 = v23[6];
v17 = v23[7];
v18 = v23[8];
v19 = v23[9];
v20 = v23[10];
*v5 = v23[11];
v5[1] = v16;
v5[2] = v17;
v5[3] = v18;
v5[4] = v19;
v5[5] = v20;
if ( *v26 != 0 )
{
if ( *v26 == dword_4016FC )
*v5 = v9;
}
else if ( v16 != v17 )
{
v7 = 7;
}
goto LABEL_26;
}
return 11;
}
|