aboutsummaryrefslogtreecommitdiffstats
path: root/fw/pseudo/opm.opm_cmd09.before.c
blob: f9e3dad786f86b6e80cee77bac99949ef6befd4e (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
int __fastcall sub_401768(int a1)
{
  unsigned int v1; // r6
  int v2; // r5
  int *v3; // r8
  int *v4; // r4
  int v5; // r0
  _DWORD *v6; // r1
  int v7; // r2

  v1 = *(_DWORD *)(a1 + 16);
  if ( v1 > 0x3F )
    return 259;
  v3 = (int *)off_4023E4;
  v4 = &(*off_4023E4)[22 * v1];
  v5 = *v4;
  if ( *v4 == 3 )
  {
    if ( v4[18] != 1 )
    {
LABEL_9:
      v2 = 0;
      goto LABEL_10;
    }
    v6 = off_4017D8;
    v7 = *(_DWORD *)off_4017D8;
    if ( *(_DWORD *)off_4017D8 == 0 )
    {
      v2 = 265;
      goto LABEL_10;
    }
    v2 = 0;
    v4[18] = 0;
    *v6 = v7 - 1;
    if ( v7 != 1 )
    {
LABEL_10:
      sub_401188(a1: v4, a2: 88);
      v3[22 * v1 + 13] = -1;
      return v2;
    }
    sub_402E22(a1: 4);
    v5 = *v4;
  }
  if ( v5 != 0 )
    goto LABEL_9;
  return 259;
}