aboutsummaryrefslogtreecommitdiffstats
path: root/fw/pseudo/oc.oc_cmd01.before.c
blob: db44f917798314b98087350d79d8590637e647b0 (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
int __fastcall sub_401768(int a1)
{
  int v2; // r6
  int v3; // r0
  int v4; // r5
  int v5; // r0
  int v6; // r2
  int *v8; // [sp+4h] [bp-14h]
  char v9; // [sp+17h] [bp-1h] BYREF

  v8 = (int *)off_40181C;
  v2 = sub_4011EC();
  if ( v2 == 0 )
  {
    v3 = sub_401580(a1: 14, a2: 0);
    if ( v3 != 0 )
    {
      v4 = v3;
      v6 = off_401824[1];
      v5 = *off_401824;
      *(_BYTE *)v4 = *(_QWORD *)off_401824;
      *(_DWORD *)(v4 + 4) = v6;
      *(_BYTE *)(v4 + 3) = HIBYTE(v5);
      *(_BYTE *)(v4 + 2) = BYTE2(v5);
      *(_BYTE *)(v4 + 1) = BYTE1(v5);
      sub_401000(a1: v4 + 8, a2: a1 + 2, a3: 6, a4: v4 + 4, a5: 11, a6: v8, a7: 48, a8: 1);
      ((void (__fastcall *)(int, int, int *, int, int, int))loc_40133C)(
        a1: v4,
        a2: 14,
        a3: (int *)off_40181C,
        a4: 48,
        a5: a1 + 8,
        a6: 48);
      v9 = 1;
      if ( *(_BYTE *)(a1 + 6) == 0 || (v2 = 5, sub_4011BE(a1: &v9) == 0) && v9 != 1 )
        v2 = 0;
      sub_401482(a1: v4);
    }
    else
    {
      return 2;
    }
  }
  return v2;
}