-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathlibP3Hash.cpp
More file actions
2977 lines (2940 loc) · 109 KB
/
libP3Hash.cpp
File metadata and controls
2977 lines (2940 loc) · 109 KB
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#include "libP3Hash.hpp"
#include <fstream>
using namespace std;
libP3Hash::libP3Hash()
{
}
template <typename T> T swap_endian(T u)
{
static_assert (CHAR_BIT == 8, "CHAR_BIT != 8");
union
{
T u;
unsigned char u8[sizeof(T)];
} source, dest;
source.u = u;
for (size_t k = 0; k < sizeof(T); k++)
dest.u8[k] = source.u8[sizeof(T) - k - 1];
return dest.u;
}
std::vector<uint32_t> libP3Hash::encryptBlock(std::vector<uint32_t> block)
{
uint32_t _a1_0x0 = swap_endian<uint32_t>(block[0]);
uint32_t _a1_0x4 = swap_endian<uint32_t>(block[1]);
uint32_t _a1_0x8 = swap_endian<uint32_t>(block[2]);
uint32_t _a1_0xC = swap_endian<uint32_t>(block[3]);
a2 = magicTable[0x0 / 4]; ///line: 1
v1 = _a1_0x0; ///line: 2
t0 = _0x8A7; ///line: 3
a3 = _0x8A7; ///line: 4
v1 = v1 ^ a2; ///line: 5
_a1_0x0 = v1; ///line: 6
t2 = magicTable[0x4 / 4]; ///line: 7
t1 = _a1_0x4; ///line: 8
a2 = _0x8A7; ///line: 9
v1 = _0x8A7; ///line: 10
t4 = t1 ^ t2; ///line: 11
t1 = t4 & 0xFF; ///line: 12
t0 = t0 + -0x5D44; ///line: 13
t1 = t1 << 0x2; ///line: 14
t1 = t0 + t1; ///line: 15
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 16
a3 = a3 + -0x5944; ///line: 17
_a1_0x4 = t4; ///line: 18
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 19
t1 = t1 << 0x2; ///line: 20
t1 = a3 + t1; ///line: 21
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 22
a2 = a2 + -0x5544; ///line: 23
v1 = v1 + -0x5144; ///line: 24
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 25
t1 = t1 << 0x2; ///line: 26
t3 = t3 ^ t2; ///line: 27
t1 = a2 + t1; ///line: 28
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 29
t6 = _a1_0x0; ///line: 30
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 31
t1 = t1 << 0x2; ///line: 32
t1 = v1 + t1; ///line: 33
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 34
t2 = t2 ^ t3; ///line: 35
t4 = magicTable[0x10 / 4]; ///line: 36
t1 = t1 ^ t2; ///line: 37
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 38
t2 = t2 << 0x2; ///line: 39
t2 = t0 + t2; ///line: 40
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 41
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 42
t2 = t2 << 0x2; ///line: 43
t2 = a3 + t2; ///line: 44
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 45
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 46
t2 = t2 << 0x2; ///line: 47
t5 = t5 ^ t3; ///line: 48
t2 = a2 + t2; ///line: 49
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 50
t2 = t6 & 0xFF; ///line: 51
t2 = t2 << 0x2; ///line: 52
t6 = t3 ^ t5; ///line: 53
t2 = v1 + t2; ///line: 54
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 55
t3 = magicTable[0x14 / 4]; ///line: 56
t5 = t5 ^ t6; ///line: 57
t2 = _a1_0x8; ///line: 58
t4 = t5 ^ t4; ///line: 59
t1 = t1 ^ t3; ///line: 60
t3 = t1 ^ t4; ///line: 61
t1 = t2 ^ t3; ///line: 62
_a1_0x8 = t1; ///line: 63
t2 = t4 >> 0x8; ///line: 64
t1 = t4 << 0x18; ///line: 65
t1 = t2 + t1; ///line: 66
t2 = t1 ^ t3; ///line: 67
t1 = _a1_0xC; ///line: 68
t4 = t1 ^ t2; ///line: 69
t1 = t4 & 0xFF; ///line: 70
t1 = t1 << 0x2; ///line: 71
t1 = t0 + t1; ///line: 72
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 73
_a1_0xC = t4; ///line: 74
t6 = _a1_0x8; ///line: 75
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 76
t1 = t1 << 0x2; ///line: 77
t1 = a3 + t1; ///line: 78
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 79
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 80
t1 = t1 << 0x2; ///line: 81
t3 = t3 ^ t2; ///line: 82
t1 = a2 + t1; ///line: 83
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 84
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 85
t1 = t1 << 0x2; ///line: 86
t1 = v1 + t1; ///line: 87
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 88
t2 = t2 ^ t3; ///line: 89
t4 = magicTable[0x18 / 4]; ///line: 90
t1 = t1 ^ t2; ///line: 91
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 92
t2 = t2 << 0x2; ///line: 93
t2 = t0 + t2; ///line: 94
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 95
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 96
t2 = t2 << 0x2; ///line: 97
t2 = a3 + t2; ///line: 98
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 99
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 100
t2 = t2 << 0x2; ///line: 101
t5 = t5 ^ t3; ///line: 102
t2 = a2 + t2; ///line: 103
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 104
t2 = t6 & 0xFF; ///line: 105
t2 = t2 << 0x2; ///line: 106
t6 = t3 ^ t5; ///line: 107
t2 = v1 + t2; ///line: 108
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 109
t3 = magicTable[0x1C / 4]; ///line: 110
t5 = t5 ^ t6; ///line: 111
t2 = _a1_0x0; ///line: 112
t4 = t5 ^ t4; ///line: 113
t1 = t1 ^ t3; ///line: 114
t3 = t1 ^ t4; ///line: 115
t1 = t2 ^ t3; ///line: 116
_a1_0x0 = t1; ///line: 117
t2 = t4 >> 0x8; ///line: 118
t1 = t4 << 0x18; ///line: 119
t1 = t2 + t1; ///line: 120
t2 = t1 ^ t3; ///line: 121
t1 = _a1_0x4; ///line: 122
t4 = t1 ^ t2; ///line: 123
t1 = t4 & 0xFF; ///line: 124
t1 = t1 << 0x2; ///line: 125
t1 = t0 + t1; ///line: 126
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 127
_a1_0x4 = t4; ///line: 128
t6 = _a1_0x0; ///line: 129
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 130
t1 = t1 << 0x2; ///line: 131
t1 = a3 + t1; ///line: 132
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 133
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 134
t1 = t1 << 0x2; ///line: 135
t3 = t3 ^ t2; ///line: 136
t1 = a2 + t1; ///line: 137
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 138
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 139
t1 = t1 << 0x2; ///line: 140
t1 = v1 + t1; ///line: 141
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 142
t2 = t2 ^ t3; ///line: 143
t4 = magicTable[0x20 / 4]; ///line: 144
t1 = t1 ^ t2; ///line: 145
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 146
t2 = t2 << 0x2; ///line: 147
t2 = t0 + t2; ///line: 148
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 149
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 150
t2 = t2 << 0x2; ///line: 151
t2 = a3 + t2; ///line: 152
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 153
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 154
t2 = t2 << 0x2; ///line: 155
t5 = t5 ^ t3; ///line: 156
t2 = a2 + t2; ///line: 157
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 158
t2 = t6 & 0xFF; ///line: 159
t2 = t2 << 0x2; ///line: 160
t6 = t3 ^ t5; ///line: 161
t2 = v1 + t2; ///line: 162
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 163
t3 = magicTable[0x24 / 4]; ///line: 164
t5 = t5 ^ t6; ///line: 165
t2 = _a1_0x8; ///line: 166
t4 = t5 ^ t4; ///line: 167
t1 = t1 ^ t3; ///line: 168
t3 = t1 ^ t4; ///line: 169
t1 = t2 ^ t3; ///line: 170
_a1_0x8 = t1; ///line: 171
t2 = t4 >> 0x8; ///line: 172
t1 = t4 << 0x18; ///line: 173
t1 = t2 + t1; ///line: 174
t2 = t1 ^ t3; ///line: 175
t1 = _a1_0xC; ///line: 176
t4 = t1 ^ t2; ///line: 177
t1 = t4 & 0xFF; ///line: 178
t1 = t1 << 0x2; ///line: 179
t1 = t0 + t1; ///line: 180
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 181
_a1_0xC = t4; ///line: 182
t6 = _a1_0x8; ///line: 183
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 184
t1 = t1 << 0x2; ///line: 185
t1 = a3 + t1; ///line: 186
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 187
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 188
t1 = t1 << 0x2; ///line: 189
t3 = t3 ^ t2; ///line: 190
t1 = a2 + t1; ///line: 191
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 192
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 193
t1 = t1 << 0x2; ///line: 194
t1 = v1 + t1; ///line: 195
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 196
t2 = t2 ^ t3; ///line: 197
t4 = magicTable[0x28 / 4]; ///line: 198
t1 = t1 ^ t2; ///line: 199
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 200
t2 = t2 << 0x2; ///line: 201
t2 = t0 + t2; ///line: 202
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 203
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 204
t2 = t2 << 0x2; ///line: 205
t2 = a3 + t2; ///line: 206
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 207
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 208
t2 = t2 << 0x2; ///line: 209
t5 = t5 ^ t3; ///line: 210
t2 = a2 + t2; ///line: 211
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 212
t2 = t6 & 0xFF; ///line: 213
t2 = t2 << 0x2; ///line: 214
t6 = t3 ^ t5; ///line: 215
t2 = v1 + t2; ///line: 216
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 217
t3 = magicTable[0x2C / 4]; ///line: 218
t5 = t5 ^ t6; ///line: 219
t2 = _a1_0x0; ///line: 220
t4 = t5 ^ t4; ///line: 221
t1 = t1 ^ t3; ///line: 222
t3 = t1 ^ t4; ///line: 223
t1 = t2 ^ t3; ///line: 224
_a1_0x0 = t1; ///line: 225
t2 = t4 >> 0x8; ///line: 226
t1 = t4 << 0x18; ///line: 227
t1 = t2 + t1; ///line: 228
t2 = t1 ^ t3; ///line: 229
t1 = _a1_0x4; ///line: 230
t4 = t1 ^ t2; ///line: 231
t1 = t4 & 0xFF; ///line: 232
t1 = t1 << 0x2; ///line: 233
t1 = t0 + t1; ///line: 234
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 235
_a1_0x4 = t4; ///line: 236
t6 = _a1_0x0; ///line: 237
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 238
t1 = t1 << 0x2; ///line: 239
t1 = a3 + t1; ///line: 240
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 241
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 242
t1 = t1 << 0x2; ///line: 243
t3 = t3 ^ t2; ///line: 244
t1 = a2 + t1; ///line: 245
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 246
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 247
t1 = t1 << 0x2; ///line: 248
t1 = v1 + t1; ///line: 249
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 250
t2 = t2 ^ t3; ///line: 251
t4 = magicTable[0x30 / 4]; ///line: 252
t1 = t1 ^ t2; ///line: 253
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 254
t2 = t2 << 0x2; ///line: 255
t2 = t0 + t2; ///line: 256
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 257
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 258
t2 = t2 << 0x2; ///line: 259
t2 = a3 + t2; ///line: 260
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 261
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 262
t2 = t2 << 0x2; ///line: 263
t5 = t5 ^ t3; ///line: 264
t2 = a2 + t2; ///line: 265
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 266
t2 = t6 & 0xFF; ///line: 267
t2 = t2 << 0x2; ///line: 268
t6 = t3 ^ t5; ///line: 269
t2 = v1 + t2; ///line: 270
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 271
t3 = magicTable[0x34 / 4]; ///line: 272
t5 = t5 ^ t6; ///line: 273
t2 = _a1_0x8; ///line: 274
t4 = t5 ^ t4; ///line: 275
t1 = t1 ^ t3; ///line: 276
t3 = t1 ^ t4; ///line: 277
t1 = t2 ^ t3; ///line: 278
_a1_0x8 = t1; ///line: 279
t2 = t4 >> 0x8; ///line: 280
t1 = t4 << 0x18; ///line: 281
t1 = t2 + t1; ///line: 282
t2 = t1 ^ t3; ///line: 283
t1 = _a1_0xC; ///line: 284
t4 = t1 ^ t2; ///line: 285
t1 = t4 & 0xFF; ///line: 286
t1 = t1 << 0x2; ///line: 287
t1 = t0 + t1; ///line: 288
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 289
_a1_0xC = t4; ///line: 290
t6 = _a1_0x8; ///line: 291
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 292
t1 = t1 << 0x2; ///line: 293
t1 = a3 + t1; ///line: 294
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 295
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 296
t1 = t1 << 0x2; ///line: 297
t3 = t3 ^ t2; ///line: 298
t1 = a2 + t1; ///line: 299
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 300
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 301
t1 = t1 << 0x2; ///line: 302
t1 = v1 + t1; ///line: 303
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 304
t2 = t2 ^ t3; ///line: 305
t4 = magicTable[0x38 / 4]; ///line: 306
t1 = t1 ^ t2; ///line: 307
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 308
t2 = t2 << 0x2; ///line: 309
t2 = t0 + t2; ///line: 310
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 311
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 312
t2 = t2 << 0x2; ///line: 313
t2 = a3 + t2; ///line: 314
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 315
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 316
t2 = t2 << 0x2; ///line: 317
t5 = t5 ^ t3; ///line: 318
t2 = a2 + t2; ///line: 319
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 320
t2 = t6 & 0xFF; ///line: 321
t2 = t2 << 0x2; ///line: 322
t6 = t3 ^ t5; ///line: 323
t2 = v1 + t2; ///line: 324
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 325
t3 = magicTable[0x3C / 4]; ///line: 326
t5 = t5 ^ t6; ///line: 327
t2 = _a1_0x0; ///line: 328
t4 = t5 ^ t4; ///line: 329
t1 = t1 ^ t3; ///line: 330
t3 = t1 ^ t4; ///line: 331
t1 = t2 ^ t3; ///line: 332
_a1_0x0 = t1; ///line: 333
t2 = t4 >> 0x8; ///line: 334
t1 = t4 << 0x18; ///line: 335
t1 = t2 + t1; ///line: 336
t2 = t1 ^ t3; ///line: 337
t1 = _a1_0x4; ///line: 338
t3 = t1 ^ t2; ///line: 339
_a1_0x4 = t3; ///line: 340
t2 = magicTable[0x40 / 4]; ///line: 341
t1 = _a1_0x0; ///line: 342
t1 = t2 & t1; ///line: 343
t2 = t1 << 0x1; ///line: 344
t1 = t1 >> 0x1F; ///line: 345
t1 = t2 + t1; ///line: 346
t3 = t3 ^ t1; ///line: 347
_a1_0x4 = t3; ///line: 348
t2 = magicTable[0x44 / 4]; ///line: 349
t1 = _a1_0x0; ///line: 350
t2 = t2 | t3; ///line: 351
t1 = t1 ^ t2; ///line: 352
_a1_0x0 = t1; ///line: 353
t3 = magicTable[0x4C / 4]; ///line: 354
t2 = _a1_0xC; ///line: 355
t1 = _a1_0x8; ///line: 356
t2 = t3 | t2; ///line: 357
t3 = t1 ^ t2; ///line: 358
_a1_0x8 = t3; ///line: 359
t2 = magicTable[0x48 / 4]; ///line: 360
t1 = _a1_0xC; ///line: 361
t2 = t2 & t3; ///line: 362
t3 = t2 << 0x1; ///line: 363
t2 = t2 >> 0x1F; ///line: 364
t2 = t3 + t2; ///line: 365
t1 = t1 ^ t2; ///line: 366
_a1_0xC = t1; ///line: 367
t5 = _a1_0x4; ///line: 368
t6 = _a1_0x0; ///line: 369
t4 = magicTable[0x50 / 4]; ///line: 370
t1 = t5 & 0xFF; ///line: 371
t1 = t1 << 0x2; ///line: 372
t1 = t0 + t1; ///line: 373
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 374
t1 = (t5 >> 0x18) & ((1 << 0x8) - 1); ///line: 375
t1 = t1 << 0x2; ///line: 376
t1 = a3 + t1; ///line: 377
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 378
t1 = (t5 >> 0x10) & ((1 << 0x8) - 1); ///line: 379
t1 = t1 << 0x2; ///line: 380
t3 = t3 ^ t2; ///line: 381
t1 = a2 + t1; ///line: 382
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 383
t1 = (t5 >> 0x8) & ((1 << 0x8) - 1); ///line: 384
t1 = t1 << 0x2; ///line: 385
t5 = t2 ^ t3; ///line: 386
t1 = v1 + t1; ///line: 387
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 388
t1 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 389
t2 = t1 << 0x2; ///line: 390
t1 = t3 ^ t5; ///line: 391
t2 = t0 + t2; ///line: 392
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 393
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 394
t2 = t2 << 0x2; ///line: 395
t2 = a3 + t2; ///line: 396
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 397
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 398
t2 = t2 << 0x2; ///line: 399
t5 = t5 ^ t3; ///line: 400
t2 = a2 + t2; ///line: 401
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 402
t2 = t6 & 0xFF; ///line: 403
t2 = t2 << 0x2; ///line: 404
t6 = t3 ^ t5; ///line: 405
t2 = v1 + t2; ///line: 406
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 407
t3 = magicTable[0x54 / 4]; ///line: 408
t5 = t5 ^ t6; ///line: 409
t2 = _a1_0x8; ///line: 410
t4 = t5 ^ t4; ///line: 411
t1 = t1 ^ t3; ///line: 412
t3 = t1 ^ t4; ///line: 413
t1 = t2 ^ t3; ///line: 414
_a1_0x8 = t1; ///line: 415
t2 = t4 >> 0x8; ///line: 416
t1 = t4 << 0x18; ///line: 417
t1 = t2 + t1; ///line: 418
t2 = t1 ^ t3; ///line: 419
t1 = _a1_0xC; ///line: 420
t4 = t1 ^ t2; ///line: 421
t1 = t4 & 0xFF; ///line: 422
t1 = t1 << 0x2; ///line: 423
t1 = t0 + t1; ///line: 424
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 425
_a1_0xC = t4; ///line: 426
t6 = _a1_0x8; ///line: 427
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 428
t1 = t1 << 0x2; ///line: 429
t1 = a3 + t1; ///line: 430
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 431
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 432
t1 = t1 << 0x2; ///line: 433
t3 = t3 ^ t2; ///line: 434
t1 = a2 + t1; ///line: 435
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 436
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 437
t1 = t1 << 0x2; ///line: 438
t1 = v1 + t1; ///line: 439
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 440
t2 = t2 ^ t3; ///line: 441
t4 = magicTable[0x58 / 4]; ///line: 442
t1 = t1 ^ t2; ///line: 443
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 444
t2 = t2 << 0x2; ///line: 445
t2 = t0 + t2; ///line: 446
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 447
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 448
t2 = t2 << 0x2; ///line: 449
t2 = a3 + t2; ///line: 450
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 451
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 452
t2 = t2 << 0x2; ///line: 453
t5 = t5 ^ t3; ///line: 454
t2 = a2 + t2; ///line: 455
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 456
t2 = t6 & 0xFF; ///line: 457
t2 = t2 << 0x2; ///line: 458
t6 = t3 ^ t5; ///line: 459
t2 = v1 + t2; ///line: 460
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 461
t3 = magicTable[0x5C / 4]; ///line: 462
t5 = t5 ^ t6; ///line: 463
t2 = _a1_0x0; ///line: 464
t4 = t5 ^ t4; ///line: 465
t1 = t1 ^ t3; ///line: 466
t3 = t1 ^ t4; ///line: 467
t1 = t2 ^ t3; ///line: 468
_a1_0x0 = t1; ///line: 469
t2 = t4 >> 0x8; ///line: 470
t1 = t4 << 0x18; ///line: 471
t1 = t2 + t1; ///line: 472
t2 = t1 ^ t3; ///line: 473
t1 = _a1_0x4; ///line: 474
t4 = t1 ^ t2; ///line: 475
t1 = t4 & 0xFF; ///line: 476
t1 = t1 << 0x2; ///line: 477
t1 = t0 + t1; ///line: 478
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 479
_a1_0x4 = t4; ///line: 480
t6 = _a1_0x0; ///line: 481
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 482
t1 = t1 << 0x2; ///line: 483
t1 = a3 + t1; ///line: 484
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 485
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 486
t1 = t1 << 0x2; ///line: 487
t3 = t3 ^ t2; ///line: 488
t1 = a2 + t1; ///line: 489
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 490
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 491
t1 = t1 << 0x2; ///line: 492
t1 = v1 + t1; ///line: 493
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 494
t2 = t2 ^ t3; ///line: 495
t4 = magicTable[0x60 / 4]; ///line: 496
t1 = t1 ^ t2; ///line: 497
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 498
t2 = t2 << 0x2; ///line: 499
t2 = t0 + t2; ///line: 500
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 501
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 502
t2 = t2 << 0x2; ///line: 503
t2 = a3 + t2; ///line: 504
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 505
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 506
t2 = t2 << 0x2; ///line: 507
t5 = t5 ^ t3; ///line: 508
t2 = a2 + t2; ///line: 509
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 510
t2 = t6 & 0xFF; ///line: 511
t2 = t2 << 0x2; ///line: 512
t6 = t3 ^ t5; ///line: 513
t2 = v1 + t2; ///line: 514
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 515
t3 = magicTable[0x64 / 4]; ///line: 516
t5 = t5 ^ t6; ///line: 517
t2 = _a1_0x8; ///line: 518
t4 = t5 ^ t4; ///line: 519
t1 = t1 ^ t3; ///line: 520
t3 = t1 ^ t4; ///line: 521
t1 = t2 ^ t3; ///line: 522
_a1_0x8 = t1; ///line: 523
t2 = t4 >> 0x8; ///line: 524
t1 = t4 << 0x18; ///line: 525
t1 = t2 + t1; ///line: 526
t2 = t1 ^ t3; ///line: 527
t1 = _a1_0xC; ///line: 528
t4 = t1 ^ t2; ///line: 529
t1 = t4 & 0xFF; ///line: 530
t1 = t1 << 0x2; ///line: 531
t1 = t0 + t1; ///line: 532
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 533
_a1_0xC = t4; ///line: 534
t6 = _a1_0x8; ///line: 535
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 536
t1 = t1 << 0x2; ///line: 537
t1 = a3 + t1; ///line: 538
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 539
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 540
t1 = t1 << 0x2; ///line: 541
t3 = t3 ^ t2; ///line: 542
t1 = a2 + t1; ///line: 543
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 544
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 545
t1 = t1 << 0x2; ///line: 546
t1 = v1 + t1; ///line: 547
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 548
t2 = t2 ^ t3; ///line: 549
t4 = magicTable[0x68 / 4]; ///line: 550
t1 = t1 ^ t2; ///line: 551
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 552
t2 = t2 << 0x2; ///line: 553
t2 = t0 + t2; ///line: 554
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 555
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 556
t2 = t2 << 0x2; ///line: 557
t2 = a3 + t2; ///line: 558
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 559
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 560
t2 = t2 << 0x2; ///line: 561
t5 = t5 ^ t3; ///line: 562
t2 = a2 + t2; ///line: 563
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 564
t2 = t6 & 0xFF; ///line: 565
t2 = t2 << 0x2; ///line: 566
t6 = t3 ^ t5; ///line: 567
t2 = v1 + t2; ///line: 568
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 569
t3 = magicTable[0x6C / 4]; ///line: 570
t5 = t5 ^ t6; ///line: 571
t2 = _a1_0x0; ///line: 572
t4 = t5 ^ t4; ///line: 573
t1 = t1 ^ t3; ///line: 574
t3 = t1 ^ t4; ///line: 575
t1 = t2 ^ t3; ///line: 576
_a1_0x0 = t1; ///line: 577
t2 = t4 >> 0x8; ///line: 578
t1 = t4 << 0x18; ///line: 579
t1 = t2 + t1; ///line: 580
t2 = t1 ^ t3; ///line: 581
t1 = _a1_0x4; ///line: 582
t4 = t1 ^ t2; ///line: 583
t1 = t4 & 0xFF; ///line: 584
t1 = t1 << 0x2; ///line: 585
t1 = t0 + t1; ///line: 586
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 587
_a1_0x4 = t4; ///line: 588
t6 = _a1_0x0; ///line: 589
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 590
t1 = t1 << 0x2; ///line: 591
t1 = a3 + t1; ///line: 592
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 593
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 594
t1 = t1 << 0x2; ///line: 595
t3 = t3 ^ t2; ///line: 596
t1 = a2 + t1; ///line: 597
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 598
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 599
t1 = t1 << 0x2; ///line: 600
t1 = v1 + t1; ///line: 601
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 602
t2 = t2 ^ t3; ///line: 603
t4 = magicTable[0x70 / 4]; ///line: 604
t1 = t1 ^ t2; ///line: 605
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 606
t2 = t2 << 0x2; ///line: 607
t2 = t0 + t2; ///line: 608
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 609
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 610
t2 = t2 << 0x2; ///line: 611
t2 = a3 + t2; ///line: 612
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 613
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 614
t2 = t2 << 0x2; ///line: 615
t5 = t5 ^ t3; ///line: 616
t2 = a2 + t2; ///line: 617
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 618
t2 = t6 & 0xFF; ///line: 619
t2 = t2 << 0x2; ///line: 620
t6 = t3 ^ t5; ///line: 621
t2 = v1 + t2; ///line: 622
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 623
t3 = magicTable[0x74 / 4]; ///line: 624
t5 = t5 ^ t6; ///line: 625
t2 = _a1_0x8; ///line: 626
t4 = t5 ^ t4; ///line: 627
t1 = t1 ^ t3; ///line: 628
t3 = t1 ^ t4; ///line: 629
t1 = t2 ^ t3; ///line: 630
_a1_0x8 = t1; ///line: 631
t2 = t4 >> 0x8; ///line: 632
t1 = t4 << 0x18; ///line: 633
t1 = t2 + t1; ///line: 634
t2 = t1 ^ t3; ///line: 635
t1 = _a1_0xC; ///line: 636
t4 = t1 ^ t2; ///line: 637
t1 = t4 & 0xFF; ///line: 638
t1 = t1 << 0x2; ///line: 639
t1 = t0 + t1; ///line: 640
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 641
_a1_0xC = t4; ///line: 642
t6 = _a1_0x8; ///line: 643
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 644
t1 = t1 << 0x2; ///line: 645
t1 = a3 + t1; ///line: 646
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 647
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 648
t1 = t1 << 0x2; ///line: 649
t3 = t3 ^ t2; ///line: 650
t1 = a2 + t1; ///line: 651
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 652
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 653
t1 = t1 << 0x2; ///line: 654
t1 = v1 + t1; ///line: 655
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 656
t2 = t2 ^ t3; ///line: 657
t4 = magicTable[0x78 / 4]; ///line: 658
t1 = t1 ^ t2; ///line: 659
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 660
t2 = t2 << 0x2; ///line: 661
t2 = t0 + t2; ///line: 662
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 663
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 664
t2 = t2 << 0x2; ///line: 665
t2 = a3 + t2; ///line: 666
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 667
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 668
t2 = t2 << 0x2; ///line: 669
t5 = t5 ^ t3; ///line: 670
t2 = a2 + t2; ///line: 671
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 672
t2 = t6 & 0xFF; ///line: 673
t2 = t2 << 0x2; ///line: 674
t6 = t3 ^ t5; ///line: 675
t2 = v1 + t2; ///line: 676
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 677
t3 = magicTable[0x7C / 4]; ///line: 678
t5 = t5 ^ t6; ///line: 679
t2 = _a1_0x0; ///line: 680
t4 = t5 ^ t4; ///line: 681
t1 = t1 ^ t3; ///line: 682
t3 = t1 ^ t4; ///line: 683
t1 = t2 ^ t3; ///line: 684
_a1_0x0 = t1; ///line: 685
t2 = t4 >> 0x8; ///line: 686
t1 = t4 << 0x18; ///line: 687
t1 = t2 + t1; ///line: 688
t2 = t1 ^ t3; ///line: 689
t1 = _a1_0x4; ///line: 690
t3 = t1 ^ t2; ///line: 691
_a1_0x4 = t3; ///line: 692
t2 = magicTable[0x80 / 4]; ///line: 693
t1 = _a1_0x0; ///line: 694
t1 = t2 & t1; ///line: 695
t2 = t1 << 0x1; ///line: 696
t1 = t1 >> 0x1F; ///line: 697
t1 = t2 + t1; ///line: 698
t3 = t3 ^ t1; ///line: 699
_a1_0x4 = t3; ///line: 700
t2 = magicTable[0x84 / 4]; ///line: 701
t1 = _a1_0x0; ///line: 702
t2 = t2 | t3; ///line: 703
t1 = t1 ^ t2; ///line: 704
_a1_0x0 = t1; ///line: 705
t3 = magicTable[0x8C / 4]; ///line: 706
t2 = _a1_0xC; ///line: 707
t1 = _a1_0x8; ///line: 708
t2 = t3 | t2; ///line: 709
t3 = t1 ^ t2; ///line: 710
_a1_0x8 = t3; ///line: 711
t2 = magicTable[0x88 / 4]; ///line: 712
t1 = _a1_0xC; ///line: 713
t2 = t2 & t3; ///line: 714
t3 = t2 << 0x1; ///line: 715
t2 = t2 >> 0x1F; ///line: 716
t2 = t3 + t2; ///line: 717
t1 = t1 ^ t2; ///line: 718
_a1_0xC = t1; ///line: 719
t5 = _a1_0x4; ///line: 720
t6 = _a1_0x0; ///line: 721
t4 = magicTable[0x90 / 4]; ///line: 722
t1 = t5 & 0xFF; ///line: 723
t1 = t1 << 0x2; ///line: 724
t1 = t0 + t1; ///line: 725
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 726
t1 = (t5 >> 0x18) & ((1 << 0x8) - 1); ///line: 727
t1 = t1 << 0x2; ///line: 728
t1 = a3 + t1; ///line: 729
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 730
t1 = (t5 >> 0x10) & ((1 << 0x8) - 1); ///line: 731
t1 = t1 << 0x2; ///line: 732
t3 = t3 ^ t2; ///line: 733
t1 = a2 + t1; ///line: 734
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 735
t1 = (t5 >> 0x8) & ((1 << 0x8) - 1); ///line: 736
t1 = t1 << 0x2; ///line: 737
t5 = t2 ^ t3; ///line: 738
t1 = v1 + t1; ///line: 739
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 740
t1 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 741
t2 = t1 << 0x2; ///line: 742
t1 = t3 ^ t5; ///line: 743
t2 = t0 + t2; ///line: 744
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 745
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 746
t2 = t2 << 0x2; ///line: 747
t2 = a3 + t2; ///line: 748
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 749
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 750
t2 = t2 << 0x2; ///line: 751
t5 = t5 ^ t3; ///line: 752
t2 = a2 + t2; ///line: 753
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 754
t2 = t6 & 0xFF; ///line: 755
t2 = t2 << 0x2; ///line: 756
t6 = t3 ^ t5; ///line: 757
t2 = v1 + t2; ///line: 758
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 759
t3 = magicTable[0x94 / 4]; ///line: 760
t5 = t5 ^ t6; ///line: 761
t2 = _a1_0x8; ///line: 762
t4 = t5 ^ t4; ///line: 763
t1 = t1 ^ t3; ///line: 764
t3 = t1 ^ t4; ///line: 765
t1 = t2 ^ t3; ///line: 766
_a1_0x8 = t1; ///line: 767
t2 = t4 >> 0x8; ///line: 768
t1 = t4 << 0x18; ///line: 769
t1 = t2 + t1; ///line: 770
t2 = t1 ^ t3; ///line: 771
t1 = _a1_0xC; ///line: 772
t4 = t1 ^ t2; ///line: 773
t1 = t4 & 0xFF; ///line: 774
t1 = t1 << 0x2; ///line: 775
t1 = t0 + t1; ///line: 776
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 777
_a1_0xC = t4; ///line: 778
t6 = _a1_0x8; ///line: 779
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 780
t1 = t1 << 0x2; ///line: 781
t1 = a3 + t1; ///line: 782
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 783
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 784
t1 = t1 << 0x2; ///line: 785
t3 = t3 ^ t2; ///line: 786
t1 = a2 + t1; ///line: 787
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 788
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 789
t1 = t1 << 0x2; ///line: 790
t1 = v1 + t1; ///line: 791
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 792
t2 = t2 ^ t3; ///line: 793
t4 = magicTable[0x98 / 4]; ///line: 794
t1 = t1 ^ t2; ///line: 795
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 796
t2 = t2 << 0x2; ///line: 797
t2 = t0 + t2; ///line: 798
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 799
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 800
t2 = t2 << 0x2; ///line: 801
t2 = a3 + t2; ///line: 802
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 803
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 804
t2 = t2 << 0x2; ///line: 805
t5 = t5 ^ t3; ///line: 806
t2 = a2 + t2; ///line: 807
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 808
t2 = t6 & 0xFF; ///line: 809
t2 = t2 << 0x2; ///line: 810
t6 = t3 ^ t5; ///line: 811
t2 = v1 + t2; ///line: 812
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 813
t3 = magicTable[0x9C / 4]; ///line: 814
t5 = t5 ^ t6; ///line: 815
t2 = _a1_0x0; ///line: 816
t4 = t5 ^ t4; ///line: 817
t1 = t1 ^ t3; ///line: 818
t3 = t1 ^ t4; ///line: 819
t1 = t2 ^ t3; ///line: 820
_a1_0x0 = t1; ///line: 821
t2 = t4 >> 0x8; ///line: 822
t1 = t4 << 0x18; ///line: 823
t1 = t2 + t1; ///line: 824
t2 = t1 ^ t3; ///line: 825
t1 = _a1_0x4; ///line: 826
t4 = t1 ^ t2; ///line: 827
t1 = t4 & 0xFF; ///line: 828
t1 = t1 << 0x2; ///line: 829
t1 = t0 + t1; ///line: 830
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 831
_a1_0x4 = t4; ///line: 832
t6 = _a1_0x0; ///line: 833
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 834
t1 = t1 << 0x2; ///line: 835
t1 = a3 + t1; ///line: 836
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 837
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 838
t1 = t1 << 0x2; ///line: 839
t3 = t3 ^ t2; ///line: 840
t1 = a2 + t1; ///line: 841
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 842
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 843
t1 = t1 << 0x2; ///line: 844
t1 = v1 + t1; ///line: 845
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 846
t2 = t2 ^ t3; ///line: 847
t4 = magicTable[0xA0 / 4]; ///line: 848
t1 = t1 ^ t2; ///line: 849
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 850
t2 = t2 << 0x2; ///line: 851
t2 = t0 + t2; ///line: 852
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 853
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 854
t2 = t2 << 0x2; ///line: 855
t2 = a3 + t2; ///line: 856
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 857
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 858
t2 = t2 << 0x2; ///line: 859
t5 = t5 ^ t3; ///line: 860
t2 = a2 + t2; ///line: 861
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 862
t2 = t6 & 0xFF; ///line: 863
t2 = t2 << 0x2; ///line: 864
t6 = t3 ^ t5; ///line: 865
t2 = v1 + t2; ///line: 866
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 867
t3 = magicTable[0xA4 / 4]; ///line: 868
t5 = t5 ^ t6; ///line: 869
t2 = _a1_0x8; ///line: 870
t4 = t5 ^ t4; ///line: 871
t1 = t1 ^ t3; ///line: 872
t3 = t1 ^ t4; ///line: 873
t1 = t2 ^ t3; ///line: 874
_a1_0x8 = t1; ///line: 875
t2 = t4 >> 0x8; ///line: 876
t1 = t4 << 0x18; ///line: 877
t1 = t2 + t1; ///line: 878
t2 = t1 ^ t3; ///line: 879
t1 = _a1_0xC; ///line: 880
t4 = t1 ^ t2; ///line: 881
t1 = t4 & 0xFF; ///line: 882
t1 = t1 << 0x2; ///line: 883
t1 = t0 + t1; ///line: 884
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 885
_a1_0xC = t4; ///line: 886
t6 = _a1_0x8; ///line: 887
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 888
t1 = t1 << 0x2; ///line: 889
t1 = a3 + t1; ///line: 890
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 891
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 892
t1 = t1 << 0x2; ///line: 893
t3 = t3 ^ t2; ///line: 894
t1 = a2 + t1; ///line: 895
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 896
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 897
t1 = t1 << 0x2; ///line: 898
t1 = v1 + t1; ///line: 899
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 900
t2 = t2 ^ t3; ///line: 901
t4 = magicTable[0xA8 / 4]; ///line: 902
t1 = t1 ^ t2; ///line: 903
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 904
t2 = t2 << 0x2; ///line: 905
t2 = t0 + t2; ///line: 906
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 907
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 908
t2 = t2 << 0x2; ///line: 909
t2 = a3 + t2; ///line: 910
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 911
t2 = (t6 >> 0x8) & ((1 << 0x8) - 1); ///line: 912
t2 = t2 << 0x2; ///line: 913
t5 = t5 ^ t3; ///line: 914
t2 = a2 + t2; ///line: 915
t3 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 916
t2 = t6 & 0xFF; ///line: 917
t2 = t2 << 0x2; ///line: 918
t6 = t3 ^ t5; ///line: 919
t2 = v1 + t2; ///line: 920
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 921
t3 = magicTable[0xAC / 4]; ///line: 922
t5 = t5 ^ t6; ///line: 923
t2 = _a1_0x0; ///line: 924
t4 = t5 ^ t4; ///line: 925
t1 = t1 ^ t3; ///line: 926
t3 = t1 ^ t4; ///line: 927
t1 = t2 ^ t3; ///line: 928
_a1_0x0 = t1; ///line: 929
t2 = t4 >> 0x8; ///line: 930
t1 = t4 << 0x18; ///line: 931
t1 = t2 + t1; ///line: 932
t2 = t1 ^ t3; ///line: 933
t1 = _a1_0x4; ///line: 934
t4 = t1 ^ t2; ///line: 935
t1 = t4 & 0xFF; ///line: 936
t1 = t1 << 0x2; ///line: 937
t1 = t0 + t1; ///line: 938
t3 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 939
_a1_0x4 = t4; ///line: 940
t6 = _a1_0x0; ///line: 941
t1 = (t4 >> 0x18) & ((1 << 0x8) - 1); ///line: 942
t1 = t1 << 0x2; ///line: 943
t1 = a3 + t1; ///line: 944
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 945
t1 = (t4 >> 0x10) & ((1 << 0x8) - 1); ///line: 946
t1 = t1 << 0x2; ///line: 947
t3 = t3 ^ t2; ///line: 948
t1 = a2 + t1; ///line: 949
t2 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 950
t1 = (t4 >> 0x8) & ((1 << 0x8) - 1); ///line: 951
t1 = t1 << 0x2; ///line: 952
t1 = v1 + t1; ///line: 953
t1 = hashTable[(t1 - 0x8A6A2BB) / 4]; ///line: 954
t2 = t2 ^ t3; ///line: 955
t4 = magicTable[0xB0 / 4]; ///line: 956
t1 = t1 ^ t2; ///line: 957
t2 = (t6 >> 0x18) & ((1 << 0x8) - 1); ///line: 958
t2 = t2 << 0x2; ///line: 959
t2 = t0 + t2; ///line: 960
t5 = hashTable[(t2 - 0x8A6A2BB) / 4]; ///line: 961
t2 = (t6 >> 0x10) & ((1 << 0x8) - 1); ///line: 962
t2 = t2 << 0x2; ///line: 963
t2 = a3 + t2; ///line: 964