aboutsummaryrefslogtreecommitdiffstats
path: root/fw/pseudo/merit.merit_cmd03.before.c
blob: 74fb0983cbe7e9b4f296926d0af3d0c822f3eeab (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
int __fastcall sub_401BE8(_DWORD *a1)
{
  int v2; // r5
  int *v3; // r7
  int v4; // r5
  int v6; // r5
  bool v7; // zf
  void *v8; // r1
  bool v9; // zf
  _DWORD *v10; // r0
  int v11; // r2
  int v12; // [sp+0h] [bp-2Ch] BYREF
  unsigned int v13; // [sp+4h] [bp-28h]
  int v14; // [sp+8h] [bp-24h]

  v2 = a1[4];
  sub_401124(a1: &v12, a2: 40);
  if ( (unsigned int)(v2 - 1) > 0x3F )
    return 259;
  v3 = (int *)off_401CE0;
  v4 = 257 * v2;
  if ( *((_BYTE *)off_401CE0 + v4) == 0 )
    return 259;
  if ( sub_401F56(a1: &v12) != 0 )
    return 576;
  v6 = (int)v3 + v4 + 1;
  sub_401E6C(a1: v6, a2: 16);
  a1[1037] = 16;
  sub_401058(a1: a1 + 1033, a2: v6, a3: 16);
  if ( *off_401CB8 == 2 )
  {
    if ( v13 < 3 )
      goto LABEL_21;
    v9 = v13 == 4;
    if ( v13 != 4 )
      v9 = v13 == 7;
    if ( v9 && v14 == 1 )
LABEL_21:
      v8 = off_401CC0;
    else
      v8 = (void *)dword_401CBC;
    a1[2025] = 3947;
    v10 = a1 + 1038;
    v11 = 3947;
    goto LABEL_26;
  }
  if ( *off_401CB8 == 1 )
  {
    if ( v13 < 3 )
      goto LABEL_14;
    v7 = v13 == 4;
    if ( v13 != 4 )
      v7 = v13 == 7;
    if ( v7 && v14 == 1 )
LABEL_14:
      v8 = off_401CC8;
    else
      v8 = off_401CC4;
    a1[2025] = 3944;
    v10 = a1 + 1038;
    v11 = 3944;
LABEL_26:
    sub_401058(a1: v10, a2: v8, a3: v11);
  }
  return 0;
}