aboutsummaryrefslogtreecommitdiffstats
path: root/fw/pseudo/gcp.gcp_cmdFE09_ConfigureAuthenticatedSession.before.c
blob: e6c43ae9655b1c3a2529c3b83c0f70e926dd53e9 (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
int __fastcall sub_402988(int a1, _DWORD *a2)
{
  unsigned int v4; // r0
  int v5; // r6
  unsigned int v6; // r7
  unsigned int v7; // r10
  unsigned int v8; // r2
  int v9; // r8
  int v10; // r11
  int v11; // r3
  char *v12; // r1
  bool v14; // cc
  int v15; // r6
  unsigned int v16; // r0
  _BYTE *v17; // r0
  int v18; // [sp+0h] [bp-4h]

  sub_405084(a1: 0, a2: sub_402AF4);
  v4 = a2[4];
  if ( v4 >> 28 == 0 )
  {
    v6 = a2[522];
    v7 = a2[518];
    v8 = a2[261];
    v9 = a2[520];
    v10 = a2[521];
    v11 = a2[523];
    if ( v6 > 0xFFFFFFFB || v6 + 4 <= v7 )
    {
      if ( v9 != 1 )
      {
        v15 = a1 + 80 * HIBYTE(v4);
        if ( *(_DWORD *)(v15 + 792) == 3 )
        {
          v18 = v15 + 792;
          if ( sub_4052AC() == 0 )
          {
            v16 = *((unsigned __int8 *)a2 + v10 + 20)
                | (*((unsigned __int8 *)a2 + v10 + 21) << 8)
                | ((*((unsigned __int8 *)a2 + v10 + 22) | (*((unsigned __int8 *)a2 + v10 + 23) << 8)) << 16);
            if ( v16 <= *(_DWORD *)(v15 + 840) )
            {
              sub_405084(a1: 0, a2: aAmdTaGcpErrorI);
              v5 = 560;
              goto LABEL_7;
            }
            *(_DWORD *)(v15 + 840) = v16;
            if ( v9 != 2 )
            {
              if ( v9 == 3 )
              {
                v5 = sub_402B78(a1, a2);
                if ( v5 != 0 )
                  goto LABEL_7;
              }
              else if ( v9 != 4 )
              {
                sub_405084(a1: 0, a2: off_402B68);
                v5 = 561;
                goto LABEL_7;
              }
            }
            v5 = 0;
            v17 = (char *)a2 + v6 + 1048;
            *v17 = 0;
            v17[3] = 0;
            v17[2] = 0;
            v17[1] = 0;
            sub_4011A4(a1: a2 + 1620);
            if ( sub_403678(a1: v18, a2: a2 + 1620, a3: v7) == 0 )
            {
              v5 = 0;
              a2[1876] = v7;
            }
            goto LABEL_7;
          }
          sub_405084(a1: 0, a2: off_402B2C);
          v5 = 562;
        }
        else
        {
          sub_405084(a1: 0, a2: off_402B28[0]);
          v5 = 610;
        }
LABEL_7:
        sub_405084(a1: 0, a2: off_402B74);
        return v5;
      }
      v14 = v11 + 4 > v8;
      if ( v11 + 4 <= v8 )
        v14 = a2[524] + 4 > v8;
      if ( !v14 )
      {
        v5 = sub_402D28(a1, a2);
        goto LABEL_7;
      }
      v12 = (char *)dword_402B6C;
    }
    else
    {
      v12 = off_402B70[0];
    }
    sub_405084(a1: 0, a2: v12);
    v5 = 256;
    goto LABEL_7;
  }
  return 256;
}