aboutsummaryrefslogtreecommitdiffstats
path: root/fw/pseudo/rap.rap_cmd02.before.c
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;
}