Normalization__LoadTables

INT64 __fastcall Normalization__LoadTables(INT64 a1, UINT16 *a2, UINT64 a3, INT64 a4){
  char v6; 
  UINT64 v8; 
  UINT64 v9; 
  UINT64 v10; 
  UINT16 *v11; 
  int v12; 
  v6 = BYTE1(a1);
  memset(a4, 0i64);
  v8 = a3 >> 1;
  if( a3 >> 1 < a2[26] )
    return 3221225624i64;
  v9 = a2[27];
  if( v8 < v9 )
    return 3221225624i64;
  v10 = a2[28];
  if( v8 < v10
    || v8 < a2[29]
    || v8 < a2[30]
    || v8 < a2[31]
    || v8 < a2[32]
    || v8 < a2[33]
    || (_DWORD)v10 - (_DWORD)v9 != 4352 )
  {
    return 3221225624i64;
  }
  *(_QWORD *)(a4 + 8) = a2;
  *(_QWORD *)(a4 + 16) = a3;
  *(_DWORD *)a4 = a2[20];
  *(_DWORD *)(a4 + 24) = a2[21];
  *(_DWORD *)(a4 + 28) = a2[22];
  *(_QWORD *)(a4 + 32) = &a2[a2[27]];
  *(_QWORD *)(a4 + 40) = &a2[a2[28]];
  *(_DWORD *)(a4 + 56) = a2[23];
  *(_QWORD *)(a4 + 64) = &a2[a2[29]];
  *(_QWORD *)(a4 + 72) = &a2[a2[30]];
  *(_QWORD *)(a4 + 80) = &a2[a2[31]];
  v11 = 0i64;
  v12 = a2[24];
  *(_DWORD *)(a4 + 88) = v12;
  if( v12 )
  {
    *(_BYTE *)(a4 + 112) = 0;
    *(_QWORD *)(a4 + 96) = &a2[a2[32]];
    v11 = &a2[a2[33]];
  }
  else
  {
    *(_BYTE *)(a4 + 112) = 1;
    *(_QWORD *)(a4 + 96) = 0i64;
  }
  *(_QWORD *)(a4 + 104) = v11;
  *(_QWORD *)(a4 + 48) = &a2[a2[26]];
  Normalization__LoadClassMapExceptions(a4);
  *(_BYTE *)(a4 + 113) = (v6 & 1) == 0;
  return 0i64;
}

Referenced by:

RtlpGetNormalization