aboutsummaryrefslogtreecommitdiffstats
path: root/fw/diffs/gcp/22.0.0.71__to__22.0.0.73.diff
blob: f71bfcffad3abbe6b0c22f1be45fb6e3d438753b (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
# gcp  22.0.0.71 -> 22.0.0.73
# branch 22.0.0, consecutive builds
#
# 1 functions resized, 0 new, 0 removed, 5 with body changes
# total named bytes +10
#
# Normalised: tier annotations, off_/loc_/sub_ address tokens,
# long hex literals and vN renumbering. Local declarations are
# dropped. Raw diffs are 6-17% of lines and almost all noise.

## resized functions (byte size from the index sidecar)
  gcp_cmdFE08_KeyExchangeAuthenticatedSession__h4             276 -> 286    +10

## body changes, per function

### gcp_call_once_init
  
  -  vX = (int (__fastcall *)(_DWORD, _DWORD, _DWORD, _DWORD))*off_X;
  -  if ( *off_X == nullptr )
  +  vX = *(int (__fastcall **)(_DWORD, _DWORD, _DWORD, _DWORD))off_X;
  +  if ( *(_DWORD *)off_X == 0 )
     {
       vX = a1;
  -    *off_X = a1;
  +    *(_DWORD *)off_X = a1;
     }

### gcp_cmdFE08_KeyExchangeAuthenticatedSession__h4
           case 0x23:
  +        case 0x24:
  +        case 0x25:
             if ( a2 >= 0x4C0 )

### gcp_sysdrv_rpc_103B
   {
     vX = off_X;
  -  result = *off_X;
  -  if ( *off_X == 0 )
  +  result = *(_DWORD *)off_X;
  +  if ( *(_DWORD *)off_X == 0 )
     {

### gcp_ta_main_loop
       {
  -      loc_X(result: (int)a1);
  +      ((void (__fastcall *)(int))gcp_TA_CreateEntryPoint)(result: (int)a1);
       }
           case 2:
  -          loc_X(result: (int)a1);
  +          ((void (__fastcall *)(int))off_X)(result: (int)a1);
             break;
           case 3:
  -          loc_X(result: a1[3]);
  +          ((void (__fastcall *)(int))off_X)(result: a1[3]);
             break;
           case 4:
  -          loc_X(result: a1[2]);
  +          ((void (__fastcall *)(int))off_X)(result: a1[2]);
             break;
           case 5:
  -          loc_X(result: a1[2]);
  +          ((void (__fastcall *)(int))off_X)(result: a1[2]);
             break;

### start
   {
     vX *= 2;
  -  *vX = vX;
  -  *(_DWORD *)(a3 + 8) = vX;
  +  vX = *(_DWORD *)(vX + 24);
  +  *(_DWORD *)(vX + 8) = vX;
     vX = __CFSHL__(vX, 1);
     vX *= 2;
  -  vX = (char *)vX + vX + a3;
  +  vX = a3 + vX + vX;
     *(_DWORD *)vX = vX;
     vX = (__int16)vX >> 15;
  -  vX[1] = vX;
  +  *(_BYTE *)(vX + 1) = vX;
     *(_DWORD *)(vX + 20) = vX;
     *(_BYTE *)(vX + 1) = 2 * vX;
  -  vX = ((_DWORD)vX << 16) + vX;
  +  vX = (vX << 16) + vX;
     *(_BYTE *)(vX + vX) = vX;
     a64[9] = 2 * (_BYTE)a64;
  +  vX = *(_DWORD *)(2 * (_DWORD)a64 + 0x64);
     vX = (vX + 46) >> 28;
     *(_BYTE *)(vX + 13) = vX;
  -  vX = *(_DWORD *)(2 * (_DWORD)a64 + 0x74);
  -  a64[1] = 2 * vX;
  +  vX = 2 * *(_DWORD *)(2 * (_DWORD)a64 + 0x74);
  +  a64[1] = vX;
     *(_DWORD *)(4 * (_DWORD)a64 + 0x14) = a64;