aboutsummaryrefslogtreecommitdiffstats
path: root/fw/pseudo/auc.auc_cmd02__h5.before.c
blob: ab6d8d650b486f63bb04bdd145c277e0422b32df (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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
int __fastcall sub_40120C(int a1, int a2, int a3, int a4, int a5)
{
  int v9; // r6
  __int64 v11; // r0
  int v12; // lr
  __int64 v13; // r4
  int *v14; // r7
  int v15; // r6
  int v16; // r2
  int v17; // r3
  int v18; // r6
  int *v19; // r0
  unsigned int *v20; // r0
  unsigned int v21; // r0
  int v22; // r0
  int v23; // [sp+4h] [bp-268h] BYREF
  _DWORD v24[128]; // [sp+8h] [bp-264h] BYREF
  int v25; // [sp+208h] [bp-64h]
  int v26; // [sp+20Ch] [bp-60h]
  int v27; // [sp+210h] [bp-5Ch]
  int v28; // [sp+214h] [bp-58h]
  int v29; // [sp+218h] [bp-54h]
  int v30; // [sp+21Ch] [bp-50h]
  int *v31; // [sp+220h] [bp-4Ch]
  int v32; // [sp+224h] [bp-48h]
  int v33; // [sp+230h] [bp-3Ch] BYREF
  _DWORD v34[3]; // [sp+234h] [bp-38h] BYREF
  int v35; // [sp+240h] [bp-2Ch] BYREF
  int v36; // [sp+244h] [bp-28h] BYREF
  _BYTE v37[32]; // [sp+248h] [bp-24h] BYREF
  int v38; // [sp+268h] [bp-4h]

  v38 = dword_401954;
  sub_401130(a1: v37, a2: 32);
  v35 = 0;
  v36 = 0;
  if ( a1 != 0 )
  {
    v9 = sub_401A54(a1: -1610612720, a2: 256, a3: &v35);
    if ( v9 == 0 )
    {
      v34[1] = a3;
      v34[2] = a4;
      v34[0] = -1073741824;
      v9 = sub_401B86(a1: v35, a2: v34, a3: 1);
      if ( v9 == 0 )
      {
        v9 = sub_401A24(a1: &v36, a2: 805307920, a3: 4, a4: 256);
        if ( v9 == 0 )
        {
          v9 = sub_401BB6(a1: v36, a2: v35);
          if ( v9 == 0 )
          {
            sub_401B5C(a1: v36, a2: 0, a3: 0);
            v33 = 32;
            v9 = sub_401B18(a1: v36, a2: a1, a3: a2, a4: v37, a5: &v33);
            if ( v9 == 0 )
            {
              sub_401000(a1: a5, a2: v37, a3: 16);
              v9 = 0;
            }
          }
        }
      }
    }
    if ( v36 != 0 )
      sub_401AD6();
    if ( v35 != 0 )
      sub_401AF6();
  }
  else
  {
    v9 = -65525;
  }
  if ( dword_401954 == v38 )
    return v9;
  v11 = ((__int64 (__fastcall *)(int))loc_401958)(a1: dword_401954 - v38);
  v26 = a4;
  v27 = a1;
  v28 = v9;
  v29 = a3;
  v30 = a2;
  v31 = &dword_401954;
  v32 = v12;
  v13 = v11;
  v25 = dword_401954;
  sub_401130(a1: v24, a2: 512);
  v23 = 0;
  if ( (_DWORD)v13 != 0 && HIDWORD(v13) != 0 )
  {
    v14 = &dword_406004[6];
    v15 = 0;
    *(_DWORD *)HIDWORD(v13) = 0xFFFF;
    while ( *(v14 - 5) != 0 )
    {
      ++v15;
      v14 += 7;
      if ( v15 == 16 )
        goto LABEL_25;
    }
    sub_401130(a1: v14 - 5, a2: 24);
    *(v14 - 5) = 1;
    *(_DWORD *)HIDWORD(v13) = v15;
    *(v14 - 6) = *(_DWORD *)v13;
    if ( sub_401638(a1: v13 + 4, a2: 256, a3: v24, a4: &v23) != 0 )
    {
      sub_401130(a1: v14 - 6, a2: 28);
    }
    else
    {
      v16 = v24[1];
      v17 = v24[2];
      v18 = v24[3];
      v19 = v14 - 4;
      *v19 = v24[0];
      v19[1] = v16;
      v19[2] = v17;
      v19[3] = v18;
      *v14 = v24[4];
      if ( *(_DWORD *)v13 <= 6u )
        *((_DWORD *)nullsub_3 + *(_DWORD *)v13 + 113) = 0;
    }
  }
LABEL_25:
  if ( dword_401954 == v25 )
    __asm { POPEQ.W {R4-R9,PC} }
  v20 = (unsigned int *)((int (__fastcall *)(int))loc_401958)(a1: dword_401954 - v25);
  if ( v20 == nullptr )
    return 2;
  v21 = *v20;
  if ( v21 > 0xF )
    return 1;
  v22 = 28 * v21 + 4218880;
  if ( *(_DWORD *)(v22 + 8) != 1 )
    return 1;
  sub_401130(a1: v22 + 4, a2: 28);
  return 0;
}