summaryrefslogtreecommitdiff
path: root/asm/TRK_MINNOW_DOLPHIN/msghndlr.s
blob: 69b3e1d17df1d1e67a36039fb3538504abd715d1 (plain)
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
.include "macros.inc"

.section .text, "ax"  # 0x80005600 - 0x8036FBA0
.global TRKMessageIntoReply
TRKMessageIntoReply:
/* 80088B2C 00085A6C  7C 08 02 A6 */	mflr r0
/* 80088B30 00085A70  90 01 00 04 */	stw r0, 4(r1)
/* 80088B34 00085A74  94 21 FF E8 */	stwu r1, -0x18(r1)
/* 80088B38 00085A78  93 E1 00 14 */	stw r31, 0x14(r1)
/* 80088B3C 00085A7C  3B E5 00 00 */	addi r31, r5, 0
/* 80088B40 00085A80  93 C1 00 10 */	stw r30, 0x10(r1)
/* 80088B44 00085A84  3B C4 00 00 */	addi r30, r4, 0
/* 80088B48 00085A88  38 80 00 01 */	li r4, 1
/* 80088B4C 00085A8C  93 A1 00 0C */	stw r29, 0xc(r1)
/* 80088B50 00085A90  3B A3 00 00 */	addi r29, r3, 0
/* 80088B54 00085A94  4B FF F6 DD */	bl TRKResetBuffer
/* 80088B58 00085A98  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 80088B5C 00085A9C  28 03 08 80 */	cmplwi r3, 0x880
/* 80088B60 00085AA0  40 80 00 20 */	bge lbl_80088B80
/* 80088B64 00085AA4  38 03 00 01 */	addi r0, r3, 1
/* 80088B68 00085AA8  7C 7D 1A 14 */	add r3, r29, r3
/* 80088B6C 00085AAC  90 1D 00 0C */	stw r0, 0xc(r29)
/* 80088B70 00085AB0  9B C3 00 10 */	stb r30, 0x10(r3)
/* 80088B74 00085AB4  80 7D 00 08 */	lwz r3, 8(r29)
/* 80088B78 00085AB8  38 03 00 01 */	addi r0, r3, 1
/* 80088B7C 00085ABC  90 1D 00 08 */	stw r0, 8(r29)
lbl_80088B80:
/* 80088B80 00085AC0  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 80088B84 00085AC4  28 03 08 80 */	cmplwi r3, 0x880
/* 80088B88 00085AC8  40 80 00 20 */	bge lbl_80088BA8
/* 80088B8C 00085ACC  38 03 00 01 */	addi r0, r3, 1
/* 80088B90 00085AD0  7C 7D 1A 14 */	add r3, r29, r3
/* 80088B94 00085AD4  90 1D 00 0C */	stw r0, 0xc(r29)
/* 80088B98 00085AD8  9B E3 00 10 */	stb r31, 0x10(r3)
/* 80088B9C 00085ADC  80 7D 00 08 */	lwz r3, 8(r29)
/* 80088BA0 00085AE0  38 03 00 01 */	addi r0, r3, 1
/* 80088BA4 00085AE4  90 1D 00 08 */	stw r0, 8(r29)
lbl_80088BA8:
/* 80088BA8 00085AE8  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 80088BAC 00085AEC  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 80088BB0 00085AF0  83 A1 00 0C */	lwz r29, 0xc(r1)
/* 80088BB4 00085AF4  38 21 00 18 */	addi r1, r1, 0x18
/* 80088BB8 00085AF8  80 01 00 04 */	lwz r0, 4(r1)
/* 80088BBC 00085AFC  7C 08 03 A6 */	mtlr r0
/* 80088BC0 00085B00  4E 80 00 20 */	blr 

.global TRKSendACK
TRKSendACK:
/* 80088BC4 00085B04  7C 08 02 A6 */	mflr r0
/* 80088BC8 00085B08  90 01 00 04 */	stw r0, 4(r1)
/* 80088BCC 00085B0C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80088BD0 00085B10  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80088BD4 00085B14  3B E0 00 03 */	li r31, 3
/* 80088BD8 00085B18  93 C1 00 08 */	stw r30, 8(r1)
/* 80088BDC 00085B1C  3B C3 00 00 */	addi r30, r3, 0
lbl_80088BE0:
/* 80088BE0 00085B20  7F C3 F3 78 */	mr r3, r30
/* 80088BE4 00085B24  4B FF F4 75 */	bl TRKMessageSend
/* 80088BE8 00085B28  2C 03 00 00 */	cmpwi r3, 0
/* 80088BEC 00085B2C  3B FF FF FF */	addi r31, r31, -1
/* 80088BF0 00085B30  41 82 00 0C */	beq lbl_80088BFC
/* 80088BF4 00085B34  2C 1F 00 00 */	cmpwi r31, 0
/* 80088BF8 00085B38  41 81 FF E8 */	bgt lbl_80088BE0
lbl_80088BFC:
/* 80088BFC 00085B3C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80088C00 00085B40  83 C1 00 08 */	lwz r30, 8(r1)
/* 80088C04 00085B44  38 21 00 10 */	addi r1, r1, 0x10
/* 80088C08 00085B48  80 01 00 04 */	lwz r0, 4(r1)
/* 80088C0C 00085B4C  7C 08 03 A6 */	mtlr r0
/* 80088C10 00085B50  4E 80 00 20 */	blr 

.global TRKStandardACK
TRKStandardACK:
/* 80088C14 00085B54  7C 08 02 A6 */	mflr r0
/* 80088C18 00085B58  90 01 00 04 */	stw r0, 4(r1)
/* 80088C1C 00085B5C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80088C20 00085B60  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80088C24 00085B64  7C 7F 1B 78 */	mr r31, r3
/* 80088C28 00085B68  4B FF FF 05 */	bl TRKMessageIntoReply
/* 80088C2C 00085B6C  7F E3 FB 78 */	mr r3, r31
/* 80088C30 00085B70  4B FF FF 95 */	bl TRKSendACK
/* 80088C34 00085B74  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80088C38 00085B78  38 21 00 10 */	addi r1, r1, 0x10
/* 80088C3C 00085B7C  80 01 00 04 */	lwz r0, 4(r1)
/* 80088C40 00085B80  7C 08 03 A6 */	mtlr r0
/* 80088C44 00085B84  4E 80 00 20 */	blr 

.global TRKDoUnsupported
TRKDoUnsupported:
/* 80088C48 00085B88  7C 08 02 A6 */	mflr r0
/* 80088C4C 00085B8C  38 80 00 80 */	li r4, 0x80
/* 80088C50 00085B90  90 01 00 04 */	stw r0, 4(r1)
/* 80088C54 00085B94  38 A0 00 10 */	li r5, 0x10
/* 80088C58 00085B98  94 21 FF F8 */	stwu r1, -8(r1)
/* 80088C5C 00085B9C  4B FF FF B9 */	bl TRKStandardACK
/* 80088C60 00085BA0  38 21 00 08 */	addi r1, r1, 8
/* 80088C64 00085BA4  80 01 00 04 */	lwz r0, 4(r1)
/* 80088C68 00085BA8  7C 08 03 A6 */	mtlr r0
/* 80088C6C 00085BAC  4E 80 00 20 */	blr 

.global TRKDoConnect
TRKDoConnect:
/* 80088C70 00085BB0  7C 08 02 A6 */	mflr r0
/* 80088C74 00085BB4  38 80 00 80 */	li r4, 0x80
/* 80088C78 00085BB8  90 01 00 04 */	stw r0, 4(r1)
/* 80088C7C 00085BBC  38 A0 00 00 */	li r5, 0
/* 80088C80 00085BC0  94 21 FF F8 */	stwu r1, -8(r1)
/* 80088C84 00085BC4  4B FF FF 91 */	bl TRKStandardACK
/* 80088C88 00085BC8  38 21 00 08 */	addi r1, r1, 8
/* 80088C8C 00085BCC  80 01 00 04 */	lwz r0, 4(r1)
/* 80088C90 00085BD0  7C 08 03 A6 */	mtlr r0
/* 80088C94 00085BD4  4E 80 00 20 */	blr 

.global TRKDoDisconnect
TRKDoDisconnect:
/* 80088C98 00085BD8  7C 08 02 A6 */	mflr r0
/* 80088C9C 00085BDC  38 80 00 80 */	li r4, 0x80
/* 80088CA0 00085BE0  90 01 00 04 */	stw r0, 4(r1)
/* 80088CA4 00085BE4  38 A0 00 00 */	li r5, 0
/* 80088CA8 00085BE8  94 21 FF E8 */	stwu r1, -0x18(r1)
/* 80088CAC 00085BEC  93 E1 00 14 */	stw r31, 0x14(r1)
/* 80088CB0 00085BF0  4B FF FF 65 */	bl TRKStandardACK
/* 80088CB4 00085BF4  7C 7F 1B 79 */	or. r31, r3, r3
/* 80088CB8 00085BF8  40 82 00 18 */	bne lbl_80088CD0
/* 80088CBC 00085BFC  38 61 00 08 */	addi r3, r1, 8
/* 80088CC0 00085C00  38 80 00 01 */	li r4, 1
/* 80088CC4 00085C04  4B FF F1 C5 */	bl TRKConstructEvent
/* 80088CC8 00085C08  38 61 00 08 */	addi r3, r1, 8
/* 80088CCC 00085C0C  4B FF F0 DD */	bl TRKPostEvent
lbl_80088CD0:
/* 80088CD0 00085C10  7F E3 FB 78 */	mr r3, r31
/* 80088CD4 00085C14  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 80088CD8 00085C18  38 21 00 18 */	addi r1, r1, 0x18
/* 80088CDC 00085C1C  80 01 00 04 */	lwz r0, 4(r1)
/* 80088CE0 00085C20  7C 08 03 A6 */	mtlr r0
/* 80088CE4 00085C24  4E 80 00 20 */	blr 

.global TRKDoReset
TRKDoReset:
/* 80088CE8 00085C28  7C 08 02 A6 */	mflr r0
/* 80088CEC 00085C2C  38 80 00 80 */	li r4, 0x80
/* 80088CF0 00085C30  90 01 00 04 */	stw r0, 4(r1)
/* 80088CF4 00085C34  38 A0 00 00 */	li r5, 0
/* 80088CF8 00085C38  94 21 FF F8 */	stwu r1, -8(r1)
/* 80088CFC 00085C3C  4B FF FF 19 */	bl TRKStandardACK
/* 80088D00 00085C40  4B F7 C4 CD */	bl __TRK_reset
/* 80088D04 00085C44  38 60 00 00 */	li r3, 0
/* 80088D08 00085C48  38 21 00 08 */	addi r1, r1, 8
/* 80088D0C 00085C4C  80 01 00 04 */	lwz r0, 4(r1)
/* 80088D10 00085C50  7C 08 03 A6 */	mtlr r0
/* 80088D14 00085C54  4E 80 00 20 */	blr 

.global TRKDoVersions
TRKDoVersions:
/* 80088D18 00085C58  7C 08 02 A6 */	mflr r0
/* 80088D1C 00085C5C  90 01 00 04 */	stw r0, 4(r1)
/* 80088D20 00085C60  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80088D24 00085C64  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80088D28 00085C68  7C 7F 1B 78 */	mr r31, r3
/* 80088D2C 00085C6C  80 03 00 08 */	lwz r0, 8(r3)
/* 80088D30 00085C70  28 00 00 01 */	cmplwi r0, 1
/* 80088D34 00085C74  41 82 00 18 */	beq lbl_80088D4C
/* 80088D38 00085C78  38 7F 00 00 */	addi r3, r31, 0
/* 80088D3C 00085C7C  38 80 00 80 */	li r4, 0x80
/* 80088D40 00085C80  38 A0 00 02 */	li r5, 2
/* 80088D44 00085C84  4B FF FE D1 */	bl TRKStandardACK
/* 80088D48 00085C88  48 00 01 40 */	b lbl_80088E88
lbl_80088D4C:
/* 80088D4C 00085C8C  38 7F 00 00 */	addi r3, r31, 0
/* 80088D50 00085C90  38 80 00 80 */	li r4, 0x80
/* 80088D54 00085C94  38 A0 00 00 */	li r5, 0
/* 80088D58 00085C98  4B FF FD D5 */	bl TRKMessageIntoReply
/* 80088D5C 00085C9C  38 61 00 08 */	addi r3, r1, 8
/* 80088D60 00085CA0  48 00 1F 45 */	bl TRKTargetVersions
/* 80088D64 00085CA4  2C 03 00 00 */	cmpwi r3, 0
/* 80088D68 00085CA8  40 82 00 3C */	bne lbl_80088DA4
/* 80088D6C 00085CAC  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80088D70 00085CB0  88 A1 00 08 */	lbz r5, 8(r1)
/* 80088D74 00085CB4  28 03 08 80 */	cmplwi r3, 0x880
/* 80088D78 00085CB8  41 80 00 0C */	blt lbl_80088D84
/* 80088D7C 00085CBC  38 60 03 01 */	li r3, 0x301
/* 80088D80 00085CC0  48 00 00 24 */	b lbl_80088DA4
lbl_80088D84:
/* 80088D84 00085CC4  38 03 00 01 */	addi r0, r3, 1
/* 80088D88 00085CC8  7C 9F 1A 14 */	add r4, r31, r3
/* 80088D8C 00085CCC  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80088D90 00085CD0  38 60 00 00 */	li r3, 0
/* 80088D94 00085CD4  98 A4 00 10 */	stb r5, 0x10(r4)
/* 80088D98 00085CD8  80 9F 00 08 */	lwz r4, 8(r31)
/* 80088D9C 00085CDC  38 04 00 01 */	addi r0, r4, 1
/* 80088DA0 00085CE0  90 1F 00 08 */	stw r0, 8(r31)
lbl_80088DA4:
/* 80088DA4 00085CE4  2C 03 00 00 */	cmpwi r3, 0
/* 80088DA8 00085CE8  40 82 00 3C */	bne lbl_80088DE4
/* 80088DAC 00085CEC  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80088DB0 00085CF0  88 A1 00 09 */	lbz r5, 9(r1)
/* 80088DB4 00085CF4  28 03 08 80 */	cmplwi r3, 0x880
/* 80088DB8 00085CF8  41 80 00 0C */	blt lbl_80088DC4
/* 80088DBC 00085CFC  38 60 03 01 */	li r3, 0x301
/* 80088DC0 00085D00  48 00 00 24 */	b lbl_80088DE4
lbl_80088DC4:
/* 80088DC4 00085D04  38 03 00 01 */	addi r0, r3, 1
/* 80088DC8 00085D08  7C 9F 1A 14 */	add r4, r31, r3
/* 80088DCC 00085D0C  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80088DD0 00085D10  38 60 00 00 */	li r3, 0
/* 80088DD4 00085D14  98 A4 00 10 */	stb r5, 0x10(r4)
/* 80088DD8 00085D18  80 9F 00 08 */	lwz r4, 8(r31)
/* 80088DDC 00085D1C  38 04 00 01 */	addi r0, r4, 1
/* 80088DE0 00085D20  90 1F 00 08 */	stw r0, 8(r31)
lbl_80088DE4:
/* 80088DE4 00085D24  2C 03 00 00 */	cmpwi r3, 0
/* 80088DE8 00085D28  40 82 00 3C */	bne lbl_80088E24
/* 80088DEC 00085D2C  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80088DF0 00085D30  88 A1 00 0A */	lbz r5, 0xa(r1)
/* 80088DF4 00085D34  28 03 08 80 */	cmplwi r3, 0x880
/* 80088DF8 00085D38  41 80 00 0C */	blt lbl_80088E04
/* 80088DFC 00085D3C  38 60 03 01 */	li r3, 0x301
/* 80088E00 00085D40  48 00 00 24 */	b lbl_80088E24
lbl_80088E04:
/* 80088E04 00085D44  38 03 00 01 */	addi r0, r3, 1
/* 80088E08 00085D48  7C 9F 1A 14 */	add r4, r31, r3
/* 80088E0C 00085D4C  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80088E10 00085D50  38 60 00 00 */	li r3, 0
/* 80088E14 00085D54  98 A4 00 10 */	stb r5, 0x10(r4)
/* 80088E18 00085D58  80 9F 00 08 */	lwz r4, 8(r31)
/* 80088E1C 00085D5C  38 04 00 01 */	addi r0, r4, 1
/* 80088E20 00085D60  90 1F 00 08 */	stw r0, 8(r31)
lbl_80088E24:
/* 80088E24 00085D64  2C 03 00 00 */	cmpwi r3, 0
/* 80088E28 00085D68  40 82 00 3C */	bne lbl_80088E64
/* 80088E2C 00085D6C  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80088E30 00085D70  88 A1 00 0B */	lbz r5, 0xb(r1)
/* 80088E34 00085D74  28 03 08 80 */	cmplwi r3, 0x880
/* 80088E38 00085D78  41 80 00 0C */	blt lbl_80088E44
/* 80088E3C 00085D7C  38 60 03 01 */	li r3, 0x301
/* 80088E40 00085D80  48 00 00 24 */	b lbl_80088E64
lbl_80088E44:
/* 80088E44 00085D84  38 03 00 01 */	addi r0, r3, 1
/* 80088E48 00085D88  7C 9F 1A 14 */	add r4, r31, r3
/* 80088E4C 00085D8C  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80088E50 00085D90  38 60 00 00 */	li r3, 0
/* 80088E54 00085D94  98 A4 00 10 */	stb r5, 0x10(r4)
/* 80088E58 00085D98  80 9F 00 08 */	lwz r4, 8(r31)
/* 80088E5C 00085D9C  38 04 00 01 */	addi r0, r4, 1
/* 80088E60 00085DA0  90 1F 00 08 */	stw r0, 8(r31)
lbl_80088E64:
/* 80088E64 00085DA4  2C 03 00 00 */	cmpwi r3, 0
/* 80088E68 00085DA8  41 82 00 18 */	beq lbl_80088E80
/* 80088E6C 00085DAC  38 7F 00 00 */	addi r3, r31, 0
/* 80088E70 00085DB0  38 80 00 80 */	li r4, 0x80
/* 80088E74 00085DB4  38 A0 00 03 */	li r5, 3
/* 80088E78 00085DB8  4B FF FD 9D */	bl TRKStandardACK
/* 80088E7C 00085DBC  48 00 00 0C */	b lbl_80088E88
lbl_80088E80:
/* 80088E80 00085DC0  7F E3 FB 78 */	mr r3, r31
/* 80088E84 00085DC4  4B FF FD 41 */	bl TRKSendACK
lbl_80088E88:
/* 80088E88 00085DC8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80088E8C 00085DCC  38 21 00 10 */	addi r1, r1, 0x10
/* 80088E90 00085DD0  80 01 00 04 */	lwz r0, 4(r1)
/* 80088E94 00085DD4  7C 08 03 A6 */	mtlr r0
/* 80088E98 00085DD8  4E 80 00 20 */	blr 

.global TRKDoSupportMask
TRKDoSupportMask:
/* 80088E9C 00085DDC  7C 08 02 A6 */	mflr r0
/* 80088EA0 00085DE0  90 01 00 04 */	stw r0, 4(r1)
/* 80088EA4 00085DE4  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80088EA8 00085DE8  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 80088EAC 00085DEC  7C 7F 1B 78 */	mr r31, r3
/* 80088EB0 00085DF0  80 03 00 08 */	lwz r0, 8(r3)
/* 80088EB4 00085DF4  28 00 00 01 */	cmplwi r0, 1
/* 80088EB8 00085DF8  41 82 00 18 */	beq lbl_80088ED0
/* 80088EBC 00085DFC  38 7F 00 00 */	addi r3, r31, 0
/* 80088EC0 00085E00  38 80 00 80 */	li r4, 0x80
/* 80088EC4 00085E04  38 A0 00 02 */	li r5, 2
/* 80088EC8 00085E08  4B FF FD 4D */	bl TRKStandardACK
/* 80088ECC 00085E0C  48 00 00 98 */	b lbl_80088F64
lbl_80088ED0:
/* 80088ED0 00085E10  38 7F 00 00 */	addi r3, r31, 0
/* 80088ED4 00085E14  38 80 00 80 */	li r4, 0x80
/* 80088ED8 00085E18  38 A0 00 00 */	li r5, 0
/* 80088EDC 00085E1C  4B FF FC 51 */	bl TRKMessageIntoReply
/* 80088EE0 00085E20  38 61 00 08 */	addi r3, r1, 8
/* 80088EE4 00085E24  48 00 1D E9 */	bl TRKTargetSupportMask
/* 80088EE8 00085E28  2C 03 00 00 */	cmpwi r3, 0
/* 80088EEC 00085E2C  40 82 00 14 */	bne lbl_80088F00
/* 80088EF0 00085E30  38 7F 00 00 */	addi r3, r31, 0
/* 80088EF4 00085E34  38 81 00 08 */	addi r4, r1, 8
/* 80088EF8 00085E38  38 A0 00 20 */	li r5, 0x20
/* 80088EFC 00085E3C  4B FF F3 A5 */	bl TRKAppendBuffer
lbl_80088F00:
/* 80088F00 00085E40  2C 03 00 00 */	cmpwi r3, 0
/* 80088F04 00085E44  40 82 00 3C */	bne lbl_80088F40
/* 80088F08 00085E48  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80088F0C 00085E4C  28 03 08 80 */	cmplwi r3, 0x880
/* 80088F10 00085E50  41 80 00 0C */	blt lbl_80088F1C
/* 80088F14 00085E54  38 60 03 01 */	li r3, 0x301
/* 80088F18 00085E58  48 00 00 28 */	b lbl_80088F40
lbl_80088F1C:
/* 80088F1C 00085E5C  38 03 00 01 */	addi r0, r3, 1
/* 80088F20 00085E60  7C 9F 1A 14 */	add r4, r31, r3
/* 80088F24 00085E64  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80088F28 00085E68  38 00 00 02 */	li r0, 2
/* 80088F2C 00085E6C  38 60 00 00 */	li r3, 0
/* 80088F30 00085E70  98 04 00 10 */	stb r0, 0x10(r4)
/* 80088F34 00085E74  80 9F 00 08 */	lwz r4, 8(r31)
/* 80088F38 00085E78  38 04 00 01 */	addi r0, r4, 1
/* 80088F3C 00085E7C  90 1F 00 08 */	stw r0, 8(r31)
lbl_80088F40:
/* 80088F40 00085E80  2C 03 00 00 */	cmpwi r3, 0
/* 80088F44 00085E84  41 82 00 18 */	beq lbl_80088F5C
/* 80088F48 00085E88  38 7F 00 00 */	addi r3, r31, 0
/* 80088F4C 00085E8C  38 80 00 80 */	li r4, 0x80
/* 80088F50 00085E90  38 A0 00 03 */	li r5, 3
/* 80088F54 00085E94  4B FF FC C1 */	bl TRKStandardACK
/* 80088F58 00085E98  48 00 00 0C */	b lbl_80088F64
lbl_80088F5C:
/* 80088F5C 00085E9C  7F E3 FB 78 */	mr r3, r31
/* 80088F60 00085EA0  4B FF FC 65 */	bl TRKSendACK
lbl_80088F64:
/* 80088F64 00085EA4  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80088F68 00085EA8  38 21 00 30 */	addi r1, r1, 0x30
/* 80088F6C 00085EAC  80 01 00 04 */	lwz r0, 4(r1)
/* 80088F70 00085EB0  7C 08 03 A6 */	mtlr r0
/* 80088F74 00085EB4  4E 80 00 20 */	blr 

.global TRKDoCPUType
TRKDoCPUType:
/* 80088F78 00085EB8  7C 08 02 A6 */	mflr r0
/* 80088F7C 00085EBC  90 01 00 04 */	stw r0, 4(r1)
/* 80088F80 00085EC0  94 21 FF E8 */	stwu r1, -0x18(r1)
/* 80088F84 00085EC4  93 E1 00 14 */	stw r31, 0x14(r1)
/* 80088F88 00085EC8  7C 7F 1B 78 */	mr r31, r3
/* 80088F8C 00085ECC  80 03 00 08 */	lwz r0, 8(r3)
/* 80088F90 00085ED0  28 00 00 01 */	cmplwi r0, 1
/* 80088F94 00085ED4  41 82 00 18 */	beq lbl_80088FAC
/* 80088F98 00085ED8  38 7F 00 00 */	addi r3, r31, 0
/* 80088F9C 00085EDC  38 80 00 80 */	li r4, 0x80
/* 80088FA0 00085EE0  38 A0 00 02 */	li r5, 2
/* 80088FA4 00085EE4  4B FF FC 71 */	bl TRKStandardACK
/* 80088FA8 00085EE8  48 00 02 00 */	b lbl_800891A8
lbl_80088FAC:
/* 80088FAC 00085EEC  38 7F 00 00 */	addi r3, r31, 0
/* 80088FB0 00085EF0  38 80 00 80 */	li r4, 0x80
/* 80088FB4 00085EF4  38 A0 00 00 */	li r5, 0
/* 80088FB8 00085EF8  4B FF FB 75 */	bl TRKMessageIntoReply
/* 80088FBC 00085EFC  38 61 00 08 */	addi r3, r1, 8
/* 80088FC0 00085F00  48 00 1D B1 */	bl TRKTargetCPUType
/* 80088FC4 00085F04  2C 03 00 00 */	cmpwi r3, 0
/* 80088FC8 00085F08  40 82 00 3C */	bne lbl_80089004
/* 80088FCC 00085F0C  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80088FD0 00085F10  88 A1 00 08 */	lbz r5, 8(r1)
/* 80088FD4 00085F14  28 03 08 80 */	cmplwi r3, 0x880
/* 80088FD8 00085F18  41 80 00 0C */	blt lbl_80088FE4
/* 80088FDC 00085F1C  38 60 03 01 */	li r3, 0x301
/* 80088FE0 00085F20  48 00 00 24 */	b lbl_80089004
lbl_80088FE4:
/* 80088FE4 00085F24  38 03 00 01 */	addi r0, r3, 1
/* 80088FE8 00085F28  7C 9F 1A 14 */	add r4, r31, r3
/* 80088FEC 00085F2C  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80088FF0 00085F30  38 60 00 00 */	li r3, 0
/* 80088FF4 00085F34  98 A4 00 10 */	stb r5, 0x10(r4)
/* 80088FF8 00085F38  80 9F 00 08 */	lwz r4, 8(r31)
/* 80088FFC 00085F3C  38 04 00 01 */	addi r0, r4, 1
/* 80089000 00085F40  90 1F 00 08 */	stw r0, 8(r31)
lbl_80089004:
/* 80089004 00085F44  2C 03 00 00 */	cmpwi r3, 0
/* 80089008 00085F48  40 82 00 3C */	bne lbl_80089044
/* 8008900C 00085F4C  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80089010 00085F50  88 A1 00 09 */	lbz r5, 9(r1)
/* 80089014 00085F54  28 03 08 80 */	cmplwi r3, 0x880
/* 80089018 00085F58  41 80 00 0C */	blt lbl_80089024
/* 8008901C 00085F5C  38 60 03 01 */	li r3, 0x301
/* 80089020 00085F60  48 00 00 24 */	b lbl_80089044
lbl_80089024:
/* 80089024 00085F64  38 03 00 01 */	addi r0, r3, 1
/* 80089028 00085F68  7C 9F 1A 14 */	add r4, r31, r3
/* 8008902C 00085F6C  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80089030 00085F70  38 60 00 00 */	li r3, 0
/* 80089034 00085F74  98 A4 00 10 */	stb r5, 0x10(r4)
/* 80089038 00085F78  80 9F 00 08 */	lwz r4, 8(r31)
/* 8008903C 00085F7C  38 04 00 01 */	addi r0, r4, 1
/* 80089040 00085F80  90 1F 00 08 */	stw r0, 8(r31)
lbl_80089044:
/* 80089044 00085F84  2C 03 00 00 */	cmpwi r3, 0
/* 80089048 00085F88  40 82 00 3C */	bne lbl_80089084
/* 8008904C 00085F8C  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80089050 00085F90  88 A1 00 0A */	lbz r5, 0xa(r1)
/* 80089054 00085F94  28 03 08 80 */	cmplwi r3, 0x880
/* 80089058 00085F98  41 80 00 0C */	blt lbl_80089064
/* 8008905C 00085F9C  38 60 03 01 */	li r3, 0x301
/* 80089060 00085FA0  48 00 00 24 */	b lbl_80089084
lbl_80089064:
/* 80089064 00085FA4  38 03 00 01 */	addi r0, r3, 1
/* 80089068 00085FA8  7C 9F 1A 14 */	add r4, r31, r3
/* 8008906C 00085FAC  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80089070 00085FB0  38 60 00 00 */	li r3, 0
/* 80089074 00085FB4  98 A4 00 10 */	stb r5, 0x10(r4)
/* 80089078 00085FB8  80 9F 00 08 */	lwz r4, 8(r31)
/* 8008907C 00085FBC  38 04 00 01 */	addi r0, r4, 1
/* 80089080 00085FC0  90 1F 00 08 */	stw r0, 8(r31)
lbl_80089084:
/* 80089084 00085FC4  2C 03 00 00 */	cmpwi r3, 0
/* 80089088 00085FC8  40 82 00 3C */	bne lbl_800890C4
/* 8008908C 00085FCC  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80089090 00085FD0  88 A1 00 0B */	lbz r5, 0xb(r1)
/* 80089094 00085FD4  28 03 08 80 */	cmplwi r3, 0x880
/* 80089098 00085FD8  41 80 00 0C */	blt lbl_800890A4
/* 8008909C 00085FDC  38 60 03 01 */	li r3, 0x301
/* 800890A0 00085FE0  48 00 00 24 */	b lbl_800890C4
lbl_800890A4:
/* 800890A4 00085FE4  38 03 00 01 */	addi r0, r3, 1
/* 800890A8 00085FE8  7C 9F 1A 14 */	add r4, r31, r3
/* 800890AC 00085FEC  90 1F 00 0C */	stw r0, 0xc(r31)
/* 800890B0 00085FF0  38 60 00 00 */	li r3, 0
/* 800890B4 00085FF4  98 A4 00 10 */	stb r5, 0x10(r4)
/* 800890B8 00085FF8  80 9F 00 08 */	lwz r4, 8(r31)
/* 800890BC 00085FFC  38 04 00 01 */	addi r0, r4, 1
/* 800890C0 00086000  90 1F 00 08 */	stw r0, 8(r31)
lbl_800890C4:
/* 800890C4 00086004  2C 03 00 00 */	cmpwi r3, 0
/* 800890C8 00086008  40 82 00 3C */	bne lbl_80089104
/* 800890CC 0008600C  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 800890D0 00086010  88 A1 00 0C */	lbz r5, 0xc(r1)
/* 800890D4 00086014  28 03 08 80 */	cmplwi r3, 0x880
/* 800890D8 00086018  41 80 00 0C */	blt lbl_800890E4
/* 800890DC 0008601C  38 60 03 01 */	li r3, 0x301
/* 800890E0 00086020  48 00 00 24 */	b lbl_80089104
lbl_800890E4:
/* 800890E4 00086024  38 03 00 01 */	addi r0, r3, 1
/* 800890E8 00086028  7C 9F 1A 14 */	add r4, r31, r3
/* 800890EC 0008602C  90 1F 00 0C */	stw r0, 0xc(r31)
/* 800890F0 00086030  38 60 00 00 */	li r3, 0
/* 800890F4 00086034  98 A4 00 10 */	stb r5, 0x10(r4)
/* 800890F8 00086038  80 9F 00 08 */	lwz r4, 8(r31)
/* 800890FC 0008603C  38 04 00 01 */	addi r0, r4, 1
/* 80089100 00086040  90 1F 00 08 */	stw r0, 8(r31)
lbl_80089104:
/* 80089104 00086044  2C 03 00 00 */	cmpwi r3, 0
/* 80089108 00086048  40 82 00 3C */	bne lbl_80089144
/* 8008910C 0008604C  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80089110 00086050  88 A1 00 0D */	lbz r5, 0xd(r1)
/* 80089114 00086054  28 03 08 80 */	cmplwi r3, 0x880
/* 80089118 00086058  41 80 00 0C */	blt lbl_80089124
/* 8008911C 0008605C  38 60 03 01 */	li r3, 0x301
/* 80089120 00086060  48 00 00 24 */	b lbl_80089144
lbl_80089124:
/* 80089124 00086064  38 03 00 01 */	addi r0, r3, 1
/* 80089128 00086068  7C 9F 1A 14 */	add r4, r31, r3
/* 8008912C 0008606C  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80089130 00086070  38 60 00 00 */	li r3, 0
/* 80089134 00086074  98 A4 00 10 */	stb r5, 0x10(r4)
/* 80089138 00086078  80 9F 00 08 */	lwz r4, 8(r31)
/* 8008913C 0008607C  38 04 00 01 */	addi r0, r4, 1
/* 80089140 00086080  90 1F 00 08 */	stw r0, 8(r31)
lbl_80089144:
/* 80089144 00086084  2C 03 00 00 */	cmpwi r3, 0
/* 80089148 00086088  40 82 00 3C */	bne lbl_80089184
/* 8008914C 0008608C  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 80089150 00086090  88 A1 00 0E */	lbz r5, 0xe(r1)
/* 80089154 00086094  28 03 08 80 */	cmplwi r3, 0x880
/* 80089158 00086098  41 80 00 0C */	blt lbl_80089164
/* 8008915C 0008609C  38 60 03 01 */	li r3, 0x301
/* 80089160 000860A0  48 00 00 24 */	b lbl_80089184
lbl_80089164:
/* 80089164 000860A4  38 03 00 01 */	addi r0, r3, 1
/* 80089168 000860A8  7C 9F 1A 14 */	add r4, r31, r3
/* 8008916C 000860AC  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80089170 000860B0  38 60 00 00 */	li r3, 0
/* 80089174 000860B4  98 A4 00 10 */	stb r5, 0x10(r4)
/* 80089178 000860B8  80 9F 00 08 */	lwz r4, 8(r31)
/* 8008917C 000860BC  38 04 00 01 */	addi r0, r4, 1
/* 80089180 000860C0  90 1F 00 08 */	stw r0, 8(r31)
lbl_80089184:
/* 80089184 000860C4  2C 03 00 00 */	cmpwi r3, 0
/* 80089188 000860C8  41 82 00 18 */	beq lbl_800891A0
/* 8008918C 000860CC  38 7F 00 00 */	addi r3, r31, 0
/* 80089190 000860D0  38 80 00 80 */	li r4, 0x80
/* 80089194 000860D4  38 A0 00 03 */	li r5, 3
/* 80089198 000860D8  4B FF FA 7D */	bl TRKStandardACK
/* 8008919C 000860DC  48 00 00 0C */	b lbl_800891A8
lbl_800891A0:
/* 800891A0 000860E0  7F E3 FB 78 */	mr r3, r31
/* 800891A4 000860E4  4B FF FA 21 */	bl TRKSendACK
lbl_800891A8:
/* 800891A8 000860E8  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 800891AC 000860EC  38 21 00 18 */	addi r1, r1, 0x18
/* 800891B0 000860F0  80 01 00 04 */	lwz r0, 4(r1)
/* 800891B4 000860F4  7C 08 03 A6 */	mtlr r0
/* 800891B8 000860F8  4E 80 00 20 */	blr 

.global TRKDoReadMemory
TRKDoReadMemory:
/* 800891BC 000860FC  7C 08 02 A6 */	mflr r0
/* 800891C0 00086100  90 01 00 04 */	stw r0, 4(r1)
/* 800891C4 00086104  94 21 F7 E0 */	stwu r1, -0x820(r1)
/* 800891C8 00086108  93 E1 08 1C */	stw r31, 0x81c(r1)
/* 800891CC 0008610C  7C 7F 1B 78 */	mr r31, r3
/* 800891D0 00086110  93 C1 08 18 */	stw r30, 0x818(r1)
/* 800891D4 00086114  80 03 00 08 */	lwz r0, 8(r3)
/* 800891D8 00086118  28 00 00 08 */	cmplwi r0, 8
/* 800891DC 0008611C  41 82 00 18 */	beq lbl_800891F4
/* 800891E0 00086120  38 7F 00 00 */	addi r3, r31, 0
/* 800891E4 00086124  38 80 00 80 */	li r4, 0x80
/* 800891E8 00086128  38 A0 00 02 */	li r5, 2
/* 800891EC 0008612C  4B FF FA 29 */	bl TRKStandardACK
/* 800891F0 00086130  48 00 01 9C */	b lbl_8008938C
lbl_800891F4:
/* 800891F4 00086134  38 7F 00 00 */	addi r3, r31, 0
/* 800891F8 00086138  38 80 00 00 */	li r4, 0
/* 800891FC 0008613C  4B FF F0 75 */	bl TRKSetBufferPosition
/* 80089200 00086140  38 7F 00 00 */	addi r3, r31, 0
/* 80089204 00086144  38 81 00 08 */	addi r4, r1, 8
/* 80089208 00086148  4B FF F3 ED */	bl TRKReadBuffer1_ui8
/* 8008920C 0008614C  7C 7E 1B 79 */	or. r30, r3, r3
/* 80089210 00086150  40 82 00 14 */	bne lbl_80089224
/* 80089214 00086154  38 7F 00 00 */	addi r3, r31, 0
/* 80089218 00086158  38 81 00 09 */	addi r4, r1, 9
/* 8008921C 0008615C  4B FF F3 D9 */	bl TRKReadBuffer1_ui8
/* 80089220 00086160  7C 7E 1B 78 */	mr r30, r3
lbl_80089224:
/* 80089224 00086164  2C 1E 00 00 */	cmpwi r30, 0
/* 80089228 00086168  40 82 00 14 */	bne lbl_8008923C
/* 8008922C 0008616C  38 7F 00 00 */	addi r3, r31, 0
/* 80089230 00086170  38 81 00 0A */	addi r4, r1, 0xa
/* 80089234 00086174  4B FF F3 E5 */	bl TRKReadBuffer1_ui16
/* 80089238 00086178  7C 7E 1B 78 */	mr r30, r3
lbl_8008923C:
/* 8008923C 0008617C  2C 1E 00 00 */	cmpwi r30, 0
/* 80089240 00086180  40 82 00 14 */	bne lbl_80089254
/* 80089244 00086184  38 7F 00 00 */	addi r3, r31, 0
/* 80089248 00086188  38 81 00 0C */	addi r4, r1, 0xc
/* 8008924C 0008618C  4B FF F4 4D */	bl TRKReadBuffer1_ui32
/* 80089250 00086190  7C 7E 1B 78 */	mr r30, r3
lbl_80089254:
/* 80089254 00086194  88 01 00 09 */	lbz r0, 9(r1)
/* 80089258 00086198  54 00 07 BD */	rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8008925C 0008619C  41 82 00 18 */	beq lbl_80089274
/* 80089260 000861A0  38 7F 00 00 */	addi r3, r31, 0
/* 80089264 000861A4  38 80 00 80 */	li r4, 0x80
/* 80089268 000861A8  38 A0 00 12 */	li r5, 0x12
/* 8008926C 000861AC  4B FF F9 A9 */	bl TRKStandardACK
/* 80089270 000861B0  48 00 01 1C */	b lbl_8008938C
lbl_80089274:
/* 80089274 000861B4  A0 01 00 0A */	lhz r0, 0xa(r1)
/* 80089278 000861B8  28 00 08 00 */	cmplwi r0, 0x800
/* 8008927C 000861BC  40 81 00 18 */	ble lbl_80089294
/* 80089280 000861C0  38 7F 00 00 */	addi r3, r31, 0
/* 80089284 000861C4  38 80 00 80 */	li r4, 0x80
/* 80089288 000861C8  38 A0 00 11 */	li r5, 0x11
/* 8008928C 000861CC  4B FF F9 89 */	bl TRKStandardACK
/* 80089290 000861D0  48 00 00 FC */	b lbl_8008938C
lbl_80089294:
/* 80089294 000861D4  38 7F 00 00 */	addi r3, r31, 0
/* 80089298 000861D8  38 80 00 80 */	li r4, 0x80
/* 8008929C 000861DC  38 A0 00 00 */	li r5, 0
/* 800892A0 000861E0  4B FF F8 8D */	bl TRKMessageIntoReply
/* 800892A4 000861E4  2C 1E 00 00 */	cmpwi r30, 0
/* 800892A8 000861E8  40 82 00 74 */	bne lbl_8008931C
/* 800892AC 000861EC  88 01 00 09 */	lbz r0, 9(r1)
/* 800892B0 000861F0  A0 61 00 0A */	lhz r3, 0xa(r1)
/* 800892B4 000861F4  54 00 07 39 */	rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 800892B8 000861F8  90 61 00 10 */	stw r3, 0x10(r1)
/* 800892BC 000861FC  41 82 00 0C */	beq lbl_800892C8
/* 800892C0 00086200  38 C0 00 00 */	li r6, 0
/* 800892C4 00086204  48 00 00 08 */	b lbl_800892CC
lbl_800892C8:
/* 800892C8 00086208  38 C0 00 01 */	li r6, 1
lbl_800892CC:
/* 800892CC 0008620C  80 81 00 0C */	lwz r4, 0xc(r1)
/* 800892D0 00086210  38 61 00 14 */	addi r3, r1, 0x14
/* 800892D4 00086214  38 A1 00 10 */	addi r5, r1, 0x10
/* 800892D8 00086218  38 E0 00 01 */	li r7, 1
/* 800892DC 0008621C  48 00 12 E1 */	bl TRKTargetAccessMemory
/* 800892E0 00086220  80 01 00 10 */	lwz r0, 0x10(r1)
/* 800892E4 00086224  7C 7E 1B 79 */	or. r30, r3, r3
/* 800892E8 00086228  B0 01 00 0A */	sth r0, 0xa(r1)
/* 800892EC 0008622C  40 82 00 14 */	bne lbl_80089300
/* 800892F0 00086230  7F E3 FB 78 */	mr r3, r31
/* 800892F4 00086234  A0 81 00 0A */	lhz r4, 0xa(r1)
/* 800892F8 00086238  4B FF F0 D9 */	bl TRKAppendBuffer1_ui16
/* 800892FC 0008623C  7C 7E 1B 78 */	mr r30, r3
lbl_80089300:
/* 80089300 00086240  2C 1E 00 00 */	cmpwi r30, 0
/* 80089304 00086244  40 82 00 18 */	bne lbl_8008931C
/* 80089308 00086248  80 A1 00 10 */	lwz r5, 0x10(r1)
/* 8008930C 0008624C  38 7F 00 00 */	addi r3, r31, 0
/* 80089310 00086250  38 81 00 14 */	addi r4, r1, 0x14
/* 80089314 00086254  4B FF EF 8D */	bl TRKAppendBuffer
/* 80089318 00086258  7C 7E 1B 78 */	mr r30, r3
lbl_8008931C:
/* 8008931C 0008625C  2C 1E 00 00 */	cmpwi r30, 0
/* 80089320 00086260  41 82 00 64 */	beq lbl_80089384
/* 80089324 00086264  38 1E F9 00 */	addi r0, r30, -1792
/* 80089328 00086268  28 00 00 06 */	cmplwi r0, 6
/* 8008932C 0008626C  41 81 00 44 */	bgt lbl_80089370
/* 80089330 00086270  3C 60 80 3B */	lis r3, "@175"@ha
/* 80089334 00086274  38 63 EF E0 */	addi r3, r3, "@175"@l
/* 80089338 00086278  54 00 10 3A */	slwi r0, r0, 2
/* 8008933C 0008627C  7C 03 00 2E */	lwzx r0, r3, r0
/* 80089340 00086280  7C 09 03 A6 */	mtctr r0
/* 80089344 00086284  4E 80 04 20 */	bctr 
lbl_80089348:
/* 80089348 00086288  38 A0 00 15 */	li r5, 0x15
/* 8008934C 0008628C  48 00 00 28 */	b lbl_80089374
lbl_80089350:
/* 80089350 00086290  38 A0 00 13 */	li r5, 0x13
/* 80089354 00086294  48 00 00 20 */	b lbl_80089374
lbl_80089358:
/* 80089358 00086298  38 A0 00 21 */	li r5, 0x21
/* 8008935C 0008629C  48 00 00 18 */	b lbl_80089374
lbl_80089360:
/* 80089360 000862A0  38 A0 00 22 */	li r5, 0x22
/* 80089364 000862A4  48 00 00 10 */	b lbl_80089374
lbl_80089368:
/* 80089368 000862A8  38 A0 00 20 */	li r5, 0x20
/* 8008936C 000862AC  48 00 00 08 */	b lbl_80089374
lbl_80089370:
/* 80089370 000862B0  38 A0 00 03 */	li r5, 3
lbl_80089374:
/* 80089374 000862B4  38 7F 00 00 */	addi r3, r31, 0
/* 80089378 000862B8  38 80 00 80 */	li r4, 0x80
/* 8008937C 000862BC  4B FF F8 99 */	bl TRKStandardACK
/* 80089380 000862C0  48 00 00 0C */	b lbl_8008938C
lbl_80089384:
/* 80089384 000862C4  7F E3 FB 78 */	mr r3, r31
/* 80089388 000862C8  4B FF F8 3D */	bl TRKSendACK
lbl_8008938C:
/* 8008938C 000862CC  83 E1 08 1C */	lwz r31, 0x81c(r1)
/* 80089390 000862D0  83 C1 08 18 */	lwz r30, 0x818(r1)
/* 80089394 000862D4  38 21 08 20 */	addi r1, r1, 0x820
/* 80089398 000862D8  80 01 00 04 */	lwz r0, 4(r1)
/* 8008939C 000862DC  7C 08 03 A6 */	mtlr r0
/* 800893A0 000862E0  4E 80 00 20 */	blr 

.global TRKDoWriteMemory
TRKDoWriteMemory:
/* 800893A4 000862E4  7C 08 02 A6 */	mflr r0
/* 800893A8 000862E8  90 01 00 04 */	stw r0, 4(r1)
/* 800893AC 000862EC  94 21 F7 E0 */	stwu r1, -0x820(r1)
/* 800893B0 000862F0  93 E1 08 1C */	stw r31, 0x81c(r1)
/* 800893B4 000862F4  7C 7F 1B 78 */	mr r31, r3
/* 800893B8 000862F8  93 C1 08 18 */	stw r30, 0x818(r1)
/* 800893BC 000862FC  80 03 00 08 */	lwz r0, 8(r3)
/* 800893C0 00086300  28 00 00 08 */	cmplwi r0, 8
/* 800893C4 00086304  41 81 00 18 */	bgt lbl_800893DC
/* 800893C8 00086308  38 7F 00 00 */	addi r3, r31, 0
/* 800893CC 0008630C  38 80 00 80 */	li r4, 0x80
/* 800893D0 00086310  38 A0 00 02 */	li r5, 2
/* 800893D4 00086314  4B FF F8 41 */	bl TRKStandardACK
/* 800893D8 00086318  48 00 01 B0 */	b lbl_80089588
lbl_800893DC:
/* 800893DC 0008631C  38 7F 00 00 */	addi r3, r31, 0
/* 800893E0 00086320  38 80 00 00 */	li r4, 0
/* 800893E4 00086324  4B FF EE 8D */	bl TRKSetBufferPosition
/* 800893E8 00086328  38 7F 00 00 */	addi r3, r31, 0
/* 800893EC 0008632C  38 81 00 08 */	addi r4, r1, 8
/* 800893F0 00086330  4B FF F2 05 */	bl TRKReadBuffer1_ui8
/* 800893F4 00086334  7C 7E 1B 79 */	or. r30, r3, r3
/* 800893F8 00086338  40 82 00 14 */	bne lbl_8008940C
/* 800893FC 0008633C  38 7F 00 00 */	addi r3, r31, 0
/* 80089400 00086340  38 81 00 09 */	addi r4, r1, 9
/* 80089404 00086344  4B FF F1 F1 */	bl TRKReadBuffer1_ui8
/* 80089408 00086348  7C 7E 1B 78 */	mr r30, r3
lbl_8008940C:
/* 8008940C 0008634C  2C 1E 00 00 */	cmpwi r30, 0
/* 80089410 00086350  40 82 00 14 */	bne lbl_80089424
/* 80089414 00086354  38 7F 00 00 */	addi r3, r31, 0
/* 80089418 00086358  38 81 00 0A */	addi r4, r1, 0xa
/* 8008941C 0008635C  4B FF F1 FD */	bl TRKReadBuffer1_ui16
/* 80089420 00086360  7C 7E 1B 78 */	mr r30, r3
lbl_80089424:
/* 80089424 00086364  2C 1E 00 00 */	cmpwi r30, 0
/* 80089428 00086368  40 82 00 14 */	bne lbl_8008943C
/* 8008942C 0008636C  38 7F 00 00 */	addi r3, r31, 0
/* 80089430 00086370  38 81 00 0C */	addi r4, r1, 0xc
/* 80089434 00086374  4B FF F2 65 */	bl TRKReadBuffer1_ui32
/* 80089438 00086378  7C 7E 1B 78 */	mr r30, r3
lbl_8008943C:
/* 8008943C 0008637C  88 01 00 09 */	lbz r0, 9(r1)
/* 80089440 00086380  54 00 07 BD */	rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80089444 00086384  41 82 00 18 */	beq lbl_8008945C
/* 80089448 00086388  38 7F 00 00 */	addi r3, r31, 0
/* 8008944C 0008638C  38 80 00 80 */	li r4, 0x80
/* 80089450 00086390  38 A0 00 12 */	li r5, 0x12
/* 80089454 00086394  4B FF F7 C1 */	bl TRKStandardACK
/* 80089458 00086398  48 00 01 30 */	b lbl_80089588
lbl_8008945C:
/* 8008945C 0008639C  A0 81 00 0A */	lhz r4, 0xa(r1)
/* 80089460 000863A0  80 7F 00 08 */	lwz r3, 8(r31)
/* 80089464 000863A4  38 04 00 08 */	addi r0, r4, 8
/* 80089468 000863A8  7C 03 00 40 */	cmplw r3, r0
/* 8008946C 000863AC  40 82 00 0C */	bne lbl_80089478
/* 80089470 000863B0  28 04 08 00 */	cmplwi r4, 0x800
/* 80089474 000863B4  40 81 00 18 */	ble lbl_8008948C
lbl_80089478:
/* 80089478 000863B8  38 7F 00 00 */	addi r3, r31, 0
/* 8008947C 000863BC  38 80 00 80 */	li r4, 0x80
/* 80089480 000863C0  38 A0 00 11 */	li r5, 0x11
/* 80089484 000863C4  4B FF F7 91 */	bl TRKStandardACK
/* 80089488 000863C8  48 00 01 00 */	b lbl_80089588
lbl_8008948C:
/* 8008948C 000863CC  2C 1E 00 00 */	cmpwi r30, 0
/* 80089490 000863D0  40 82 00 58 */	bne lbl_800894E8
/* 80089494 000863D4  90 81 00 10 */	stw r4, 0x10(r1)
/* 80089498 000863D8  38 7F 00 00 */	addi r3, r31, 0
/* 8008949C 000863DC  38 81 00 14 */	addi r4, r1, 0x14
/* 800894A0 000863E0  80 A1 00 10 */	lwz r5, 0x10(r1)
/* 800894A4 000863E4  4B FF EE A1 */	bl TRKReadBuffer
/* 800894A8 000863E8  7C 7E 1B 79 */	or. r30, r3, r3
/* 800894AC 000863EC  40 82 00 34 */	bne lbl_800894E0
/* 800894B0 000863F0  88 01 00 09 */	lbz r0, 9(r1)
/* 800894B4 000863F4  54 00 07 39 */	rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 800894B8 000863F8  41 82 00 0C */	beq lbl_800894C4
/* 800894BC 000863FC  38 C0 00 00 */	li r6, 0
/* 800894C0 00086400  48 00 00 08 */	b lbl_800894C8
lbl_800894C4:
/* 800894C4 00086404  38 C0 00 01 */	li r6, 1
lbl_800894C8:
/* 800894C8 00086408  80 81 00 0C */	lwz r4, 0xc(r1)
/* 800894CC 0008640C  38 61 00 14 */	addi r3, r1, 0x14
/* 800894D0 00086410  38 A1 00 10 */	addi r5, r1, 0x10
/* 800894D4 00086414  38 E0 00 00 */	li r7, 0
/* 800894D8 00086418  48 00 10 E5 */	bl TRKTargetAccessMemory
/* 800894DC 0008641C  7C 7E 1B 78 */	mr r30, r3
lbl_800894E0:
/* 800894E0 00086420  80 01 00 10 */	lwz r0, 0x10(r1)
/* 800894E4 00086424  B0 01 00 0A */	sth r0, 0xa(r1)
lbl_800894E8:
/* 800894E8 00086428  2C 1E 00 00 */	cmpwi r30, 0
/* 800894EC 0008642C  40 82 00 14 */	bne lbl_80089500
/* 800894F0 00086430  38 7F 00 00 */	addi r3, r31, 0
/* 800894F4 00086434  38 80 00 80 */	li r4, 0x80
/* 800894F8 00086438  38 A0 00 00 */	li r5, 0
/* 800894FC 0008643C  4B FF F6 31 */	bl TRKMessageIntoReply
lbl_80089500:
/* 80089500 00086440  2C 1E 00 00 */	cmpwi r30, 0
/* 80089504 00086444  40 82 00 14 */	bne lbl_80089518
/* 80089508 00086448  7F E3 FB 78 */	mr r3, r31
/* 8008950C 0008644C  A0 81 00 0A */	lhz r4, 0xa(r1)
/* 80089510 00086450  4B FF EE C1 */	bl TRKAppendBuffer1_ui16
/* 80089514 00086454  7C 7E 1B 78 */	mr r30, r3
lbl_80089518:
/* 80089518 00086458  2C 1E 00 00 */	cmpwi r30, 0
/* 8008951C 0008645C  41 82 00 64 */	beq lbl_80089580
/* 80089520 00086460  38 1E F9 00 */	addi r0, r30, -1792
/* 80089524 00086464  28 00 00 06 */	cmplwi r0, 6
/* 80089528 00086468  41 81 00 44 */	bgt lbl_8008956C
/* 8008952C 0008646C  3C 60 80 3B */	lis r3, "@214"@ha
/* 80089530 00086470  38 63 EF FC */	addi r3, r3, "@214"@l
/* 80089534 00086474  54 00 10 3A */	slwi r0, r0, 2
/* 80089538 00086478  7C 03 00 2E */	lwzx r0, r3, r0
/* 8008953C 0008647C  7C 09 03 A6 */	mtctr r0
/* 80089540 00086480  4E 80 04 20 */	bctr 
lbl_80089544:
/* 80089544 00086484  38 A0 00 15 */	li r5, 0x15
/* 80089548 00086488  48 00 00 28 */	b lbl_80089570
lbl_8008954C:
/* 8008954C 0008648C  38 A0 00 13 */	li r5, 0x13
/* 80089550 00086490  48 00 00 20 */	b lbl_80089570
lbl_80089554:
/* 80089554 00086494  38 A0 00 21 */	li r5, 0x21
/* 80089558 00086498  48 00 00 18 */	b lbl_80089570
lbl_8008955C:
/* 8008955C 0008649C  38 A0 00 22 */	li r5, 0x22
/* 80089560 000864A0  48 00 00 10 */	b lbl_80089570
lbl_80089564:
/* 80089564 000864A4  38 A0 00 20 */	li r5, 0x20
/* 80089568 000864A8  48 00 00 08 */	b lbl_80089570
lbl_8008956C:
/* 8008956C 000864AC  38 A0 00 03 */	li r5, 3
lbl_80089570:
/* 80089570 000864B0  38 7F 00 00 */	addi r3, r31, 0
/* 80089574 000864B4  38 80 00 80 */	li r4, 0x80
/* 80089578 000864B8  4B FF F6 9D */	bl TRKStandardACK
/* 8008957C 000864BC  48 00 00 0C */	b lbl_80089588
lbl_80089580:
/* 80089580 000864C0  7F E3 FB 78 */	mr r3, r31
/* 80089584 000864C4  4B FF F6 41 */	bl TRKSendACK
lbl_80089588:
/* 80089588 000864C8  83 E1 08 1C */	lwz r31, 0x81c(r1)
/* 8008958C 000864CC  83 C1 08 18 */	lwz r30, 0x818(r1)
/* 80089590 000864D0  38 21 08 20 */	addi r1, r1, 0x820
/* 80089594 000864D4  80 01 00 04 */	lwz r0, 4(r1)
/* 80089598 000864D8  7C 08 03 A6 */	mtlr r0
/* 8008959C 000864DC  4E 80 00 20 */	blr 

.global TRKDoReadRegisters
TRKDoReadRegisters:
/* 800895A0 000864E0  7C 08 02 A6 */	mflr r0
/* 800895A4 000864E4  90 01 00 04 */	stw r0, 4(r1)
/* 800895A8 000864E8  94 21 FF E8 */	stwu r1, -0x18(r1)
/* 800895AC 000864EC  93 E1 00 14 */	stw r31, 0x14(r1)
/* 800895B0 000864F0  7C 7F 1B 78 */	mr r31, r3
/* 800895B4 000864F4  80 03 00 08 */	lwz r0, 8(r3)
/* 800895B8 000864F8  28 00 00 06 */	cmplwi r0, 6
/* 800895BC 000864FC  41 82 00 18 */	beq lbl_800895D4
/* 800895C0 00086500  38 7F 00 00 */	addi r3, r31, 0
/* 800895C4 00086504  38 80 00 80 */	li r4, 0x80
/* 800895C8 00086508  38 A0 00 02 */	li r5, 2
/* 800895CC 0008650C  4B FF F6 49 */	bl TRKStandardACK
/* 800895D0 00086510  48 00 01 C0 */	b lbl_80089790
lbl_800895D4:
/* 800895D4 00086514  38 7F 00 00 */	addi r3, r31, 0
/* 800895D8 00086518  38 80 00 00 */	li r4, 0
/* 800895DC 0008651C  4B FF EC 95 */	bl TRKSetBufferPosition
/* 800895E0 00086520  38 7F 00 00 */	addi r3, r31, 0
/* 800895E4 00086524  38 81 00 08 */	addi r4, r1, 8
/* 800895E8 00086528  4B FF F0 0D */	bl TRKReadBuffer1_ui8
/* 800895EC 0008652C  2C 03 00 00 */	cmpwi r3, 0
/* 800895F0 00086530  40 82 00 10 */	bne lbl_80089600
/* 800895F4 00086534  38 7F 00 00 */	addi r3, r31, 0
/* 800895F8 00086538  38 81 00 09 */	addi r4, r1, 9
/* 800895FC 0008653C  4B FF EF F9 */	bl TRKReadBuffer1_ui8
lbl_80089600:
/* 80089600 00086540  2C 03 00 00 */	cmpwi r3, 0
/* 80089604 00086544  40 82 00 10 */	bne lbl_80089614
/* 80089608 00086548  38 7F 00 00 */	addi r3, r31, 0
/* 8008960C 0008654C  38 81 00 0A */	addi r4, r1, 0xa
/* 80089610 00086550  4B FF F0 09 */	bl TRKReadBuffer1_ui16
lbl_80089614:
/* 80089614 00086554  2C 03 00 00 */	cmpwi r3, 0
/* 80089618 00086558  40 82 00 10 */	bne lbl_80089628
/* 8008961C 0008655C  38 7F 00 00 */	addi r3, r31, 0
/* 80089620 00086560  38 81 00 0C */	addi r4, r1, 0xc
/* 80089624 00086564  4B FF EF F5 */	bl TRKReadBuffer1_ui16
lbl_80089628:
/* 80089628 00086568  A0 81 00 0A */	lhz r4, 0xa(r1)
/* 8008962C 0008656C  A0 01 00 0C */	lhz r0, 0xc(r1)
/* 80089630 00086570  7C 04 00 40 */	cmplw r4, r0
/* 80089634 00086574  40 81 00 18 */	ble lbl_8008964C
/* 80089638 00086578  38 7F 00 00 */	addi r3, r31, 0
/* 8008963C 0008657C  38 80 00 80 */	li r4, 0x80
/* 80089640 00086580  38 A0 00 14 */	li r5, 0x14
/* 80089644 00086584  4B FF F5 D1 */	bl TRKStandardACK
/* 80089648 00086588  48 00 01 48 */	b lbl_80089790
lbl_8008964C:
/* 8008964C 0008658C  2C 03 00 00 */	cmpwi r3, 0
/* 80089650 00086590  40 82 00 14 */	bne lbl_80089664
/* 80089654 00086594  38 7F 00 00 */	addi r3, r31, 0
/* 80089658 00086598  38 80 00 80 */	li r4, 0x80
/* 8008965C 0008659C  38 A0 00 00 */	li r5, 0
/* 80089660 000865A0  4B FF F4 CD */	bl TRKMessageIntoReply
lbl_80089664:
/* 80089664 000865A4  88 01 00 09 */	lbz r0, 9(r1)
/* 80089668 000865A8  54 00 07 7E */	clrlwi r0, r0, 0x1d
/* 8008966C 000865AC  2C 00 00 02 */	cmpwi r0, 2
/* 80089670 000865B0  41 82 00 5C */	beq lbl_800896CC
/* 80089674 000865B4  40 80 00 14 */	bge lbl_80089688
/* 80089678 000865B8  2C 00 00 00 */	cmpwi r0, 0
/* 8008967C 000865BC  41 82 00 18 */	beq lbl_80089694
/* 80089680 000865C0  40 80 00 30 */	bge lbl_800896B0
/* 80089684 000865C4  48 00 00 80 */	b lbl_80089704
lbl_80089688:
/* 80089688 000865C8  2C 00 00 04 */	cmpwi r0, 4
/* 8008968C 000865CC  40 80 00 78 */	bge lbl_80089704
/* 80089690 000865D0  48 00 00 58 */	b lbl_800896E8
lbl_80089694:
/* 80089694 000865D4  A0 61 00 0A */	lhz r3, 0xa(r1)
/* 80089698 000865D8  7F E5 FB 78 */	mr r5, r31
/* 8008969C 000865DC  A0 81 00 0C */	lhz r4, 0xc(r1)
/* 800896A0 000865E0  38 C1 00 10 */	addi r6, r1, 0x10
/* 800896A4 000865E4  38 E0 00 01 */	li r7, 1
/* 800896A8 000865E8  48 00 10 C5 */	bl TRKTargetAccessDefault
/* 800896AC 000865EC  48 00 00 5C */	b lbl_80089708
lbl_800896B0:
/* 800896B0 000865F0  A0 61 00 0A */	lhz r3, 0xa(r1)
/* 800896B4 000865F4  7F E5 FB 78 */	mr r5, r31
/* 800896B8 000865F8  A0 81 00 0C */	lhz r4, 0xc(r1)
/* 800896BC 000865FC  38 C1 00 10 */	addi r6, r1, 0x10
/* 800896C0 00086600  38 E0 00 01 */	li r7, 1
/* 800896C4 00086604  48 00 11 A5 */	bl TRKTargetAccessFP
/* 800896C8 00086608  48 00 00 40 */	b lbl_80089708
lbl_800896CC:
/* 800896CC 0008660C  A0 61 00 0A */	lhz r3, 0xa(r1)
/* 800896D0 00086610  7F E5 FB 78 */	mr r5, r31
/* 800896D4 00086614  A0 81 00 0C */	lhz r4, 0xc(r1)
/* 800896D8 00086618  38 C1 00 10 */	addi r6, r1, 0x10
/* 800896DC 0008661C  38 E0 00 01 */	li r7, 1
/* 800896E0 00086620  48 00 12 D1 */	bl TRKTargetAccessExtended1
/* 800896E4 00086624  48 00 00 24 */	b lbl_80089708
lbl_800896E8:
/* 800896E8 00086628  A0 61 00 0A */	lhz r3, 0xa(r1)
/* 800896EC 0008662C  7F E5 FB 78 */	mr r5, r31
/* 800896F0 00086630  A0 81 00 0C */	lhz r4, 0xc(r1)
/* 800896F4 00086634  38 C1 00 10 */	addi r6, r1, 0x10
/* 800896F8 00086638  38 E0 00 01 */	li r7, 1
/* 800896FC 0008663C  48 00 14 2D */	bl TRKTargetAccessExtended2
/* 80089700 00086640  48 00 00 08 */	b lbl_80089708
lbl_80089704:
/* 80089704 00086644  38 60 07 03 */	li r3, 0x703
lbl_80089708:
/* 80089708 00086648  2C 03 00 00 */	cmpwi r3, 0
/* 8008970C 0008664C  41 82 00 7C */	beq lbl_80089788
/* 80089710 00086650  2C 03 07 04 */	cmpwi r3, 0x704
/* 80089714 00086654  41 82 00 48 */	beq lbl_8008975C
/* 80089718 00086658  40 80 00 1C */	bge lbl_80089734
/* 8008971C 0008665C  2C 03 07 02 */	cmpwi r3, 0x702
/* 80089720 00086660  41 82 00 34 */	beq lbl_80089754
/* 80089724 00086664  40 80 00 20 */	bge lbl_80089744
/* 80089728 00086668  2C 03 07 01 */	cmpwi r3, 0x701
/* 8008972C 0008666C  40 80 00 20 */	bge lbl_8008974C
/* 80089730 00086670  48 00 00 44 */	b lbl_80089774
lbl_80089734:
/* 80089734 00086674  2C 03 07 06 */	cmpwi r3, 0x706
/* 80089738 00086678  41 82 00 34 */	beq lbl_8008976C
/* 8008973C 0008667C  40 80 00 38 */	bge lbl_80089774
/* 80089740 00086680  48 00 00 24 */	b lbl_80089764
lbl_80089744:
/* 80089744 00086684  38 A0 00 12 */	li r5, 0x12
/* 80089748 00086688  48 00 00 30 */	b lbl_80089778
lbl_8008974C:
/* 8008974C 0008668C  38 A0 00 14 */	li r5, 0x14
/* 80089750 00086690  48 00 00 28 */	b lbl_80089778
lbl_80089754:
/* 80089754 00086694  38 A0 00 15 */	li r5, 0x15
/* 80089758 00086698  48 00 00 20 */	b lbl_80089778
lbl_8008975C:
/* 8008975C 0008669C  38 A0 00 21 */	li r5, 0x21
/* 80089760 000866A0  48 00 00 18 */	b lbl_80089778
lbl_80089764:
/* 80089764 000866A4  38 A0 00 22 */	li r5, 0x22
/* 80089768 000866A8  48 00 00 10 */	b lbl_80089778
lbl_8008976C:
/* 8008976C 000866AC  38 A0 00 20 */	li r5, 0x20
/* 80089770 000866B0  48 00 00 08 */	b lbl_80089778
lbl_80089774:
/* 80089774 000866B4  38 A0 00 03 */	li r5, 3
lbl_80089778:
/* 80089778 000866B8  38 7F 00 00 */	addi r3, r31, 0
/* 8008977C 000866BC  38 80 00 80 */	li r4, 0x80
/* 80089780 000866C0  4B FF F4 95 */	bl TRKStandardACK
/* 80089784 000866C4  48 00 00 0C */	b lbl_80089790
lbl_80089788:
/* 80089788 000866C8  7F E3 FB 78 */	mr r3, r31
/* 8008978C 000866CC  4B FF F4 39 */	bl TRKSendACK
lbl_80089790:
/* 80089790 000866D0  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 80089794 000866D4  38 21 00 18 */	addi r1, r1, 0x18
/* 80089798 000866D8  80 01 00 04 */	lwz r0, 4(r1)
/* 8008979C 000866DC  7C 08 03 A6 */	mtlr r0
/* 800897A0 000866E0  4E 80 00 20 */	blr 

.global TRKDoWriteRegisters
TRKDoWriteRegisters:
/* 800897A4 000866E4  7C 08 02 A6 */	mflr r0
/* 800897A8 000866E8  90 01 00 04 */	stw r0, 4(r1)
/* 800897AC 000866EC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 800897B0 000866F0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 800897B4 000866F4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 800897B8 000866F8  7C 7E 1B 78 */	mr r30, r3
/* 800897BC 000866FC  80 03 00 08 */	lwz r0, 8(r3)
/* 800897C0 00086700  28 00 00 06 */	cmplwi r0, 6
/* 800897C4 00086704  41 81 00 18 */	bgt lbl_800897DC
/* 800897C8 00086708  38 7E 00 00 */	addi r3, r30, 0
/* 800897CC 0008670C  38 80 00 80 */	li r4, 0x80
/* 800897D0 00086710  38 A0 00 02 */	li r5, 2
/* 800897D4 00086714  4B FF F4 41 */	bl TRKStandardACK
/* 800897D8 00086718  48 00 01 BC */	b lbl_80089994
lbl_800897DC:
/* 800897DC 0008671C  38 7E 00 00 */	addi r3, r30, 0
/* 800897E0 00086720  38 80 00 00 */	li r4, 0
/* 800897E4 00086724  4B FF EA 8D */	bl TRKSetBufferPosition
/* 800897E8 00086728  38 7E 00 00 */	addi r3, r30, 0
/* 800897EC 0008672C  38 81 00 08 */	addi r4, r1, 8
/* 800897F0 00086730  4B FF EE 05 */	bl TRKReadBuffer1_ui8
/* 800897F4 00086734  2C 03 00 00 */	cmpwi r3, 0
/* 800897F8 00086738  40 82 00 10 */	bne lbl_80089808
/* 800897FC 0008673C  38 7E 00 00 */	addi r3, r30, 0
/* 80089800 00086740  38 81 00 09 */	addi r4, r1, 9
/* 80089804 00086744  4B FF ED F1 */	bl TRKReadBuffer1_ui8
lbl_80089808:
/* 80089808 00086748  2C 03 00 00 */	cmpwi r3, 0
/* 8008980C 0008674C  40 82 00 10 */	bne lbl_8008981C
/* 80089810 00086750  38 7E 00 00 */	addi r3, r30, 0
/* 80089814 00086754  38 81 00 0A */	addi r4, r1, 0xa
/* 80089818 00086758  4B FF EE 01 */	bl TRKReadBuffer1_ui16
lbl_8008981C:
/* 8008981C 0008675C  2C 03 00 00 */	cmpwi r3, 0
/* 80089820 00086760  40 82 00 10 */	bne lbl_80089830
/* 80089824 00086764  38 7E 00 00 */	addi r3, r30, 0
/* 80089828 00086768  38 81 00 0C */	addi r4, r1, 0xc
/* 8008982C 0008676C  4B FF ED ED */	bl TRKReadBuffer1_ui16
lbl_80089830:
/* 80089830 00086770  A0 61 00 0A */	lhz r3, 0xa(r1)
/* 80089834 00086774  A0 81 00 0C */	lhz r4, 0xc(r1)
/* 80089838 00086778  7C 03 20 40 */	cmplw r3, r4
/* 8008983C 0008677C  40 81 00 18 */	ble lbl_80089854
/* 80089840 00086780  38 7E 00 00 */	addi r3, r30, 0
/* 80089844 00086784  38 80 00 80 */	li r4, 0x80
/* 80089848 00086788  38 A0 00 14 */	li r5, 0x14
/* 8008984C 0008678C  4B FF F3 C9 */	bl TRKStandardACK
/* 80089850 00086790  48 00 01 44 */	b lbl_80089994
lbl_80089854:
/* 80089854 00086794  88 01 00 09 */	lbz r0, 9(r1)
/* 80089858 00086798  2C 00 00 02 */	cmpwi r0, 2
/* 8008985C 0008679C  41 82 00 54 */	beq lbl_800898B0
/* 80089860 000867A0  40 80 00 14 */	bge lbl_80089874
/* 80089864 000867A4  2C 00 00 00 */	cmpwi r0, 0
/* 80089868 000867A8  41 82 00 18 */	beq lbl_80089880
/* 8008986C 000867AC  40 80 00 2C */	bge lbl_80089898
/* 80089870 000867B0  48 00 00 70 */	b lbl_800898E0
lbl_80089874:
/* 80089874 000867B4  2C 00 00 04 */	cmpwi r0, 4
/* 80089878 000867B8  40 80 00 68 */	bge lbl_800898E0
/* 8008987C 000867BC  48 00 00 4C */	b lbl_800898C8
lbl_80089880:
/* 80089880 000867C0  38 C1 00 10 */	addi r6, r1, 0x10
/* 80089884 000867C4  38 BE 00 00 */	addi r5, r30, 0
/* 80089888 000867C8  38 E0 00 00 */	li r7, 0
/* 8008988C 000867CC  48 00 0E E1 */	bl TRKTargetAccessDefault
/* 80089890 000867D0  7C 7F 1B 78 */	mr r31, r3
/* 80089894 000867D4  48 00 00 50 */	b lbl_800898E4
lbl_80089898:
/* 80089898 000867D8  38 C1 00 10 */	addi r6, r1, 0x10
/* 8008989C 000867DC  38 BE 00 00 */	addi r5, r30, 0
/* 800898A0 000867E0  38 E0 00 00 */	li r7, 0
/* 800898A4 000867E4  48 00 0F C5 */	bl TRKTargetAccessFP
/* 800898A8 000867E8  7C 7F 1B 78 */	mr r31, r3
/* 800898AC 000867EC  48 00 00 38 */	b lbl_800898E4
lbl_800898B0:
/* 800898B0 000867F0  38 C1 00 10 */	addi r6, r1, 0x10
/* 800898B4 000867F4  38 BE 00 00 */	addi r5, r30, 0
/* 800898B8 000867F8  38 E0 00 00 */	li r7, 0
/* 800898BC 000867FC  48 00 10 F5 */	bl TRKTargetAccessExtended1
/* 800898C0 00086800  7C 7F 1B 78 */	mr r31, r3
/* 800898C4 00086804  48 00 00 20 */	b lbl_800898E4
lbl_800898C8:
/* 800898C8 00086808  38 C1 00 10 */	addi r6, r1, 0x10
/* 800898CC 0008680C  38 BE 00 00 */	addi r5, r30, 0
/* 800898D0 00086810  38 E0 00 00 */	li r7, 0
/* 800898D4 00086814  48 00 12 55 */	bl TRKTargetAccessExtended2
/* 800898D8 00086818  7C 7F 1B 78 */	mr r31, r3
/* 800898DC 0008681C  48 00 00 08 */	b lbl_800898E4
lbl_800898E0:
/* 800898E0 00086820  3B E0 07 03 */	li r31, 0x703
lbl_800898E4:
/* 800898E4 00086824  2C 1F 00 00 */	cmpwi r31, 0
/* 800898E8 00086828  40 82 00 14 */	bne lbl_800898FC
/* 800898EC 0008682C  38 7E 00 00 */	addi r3, r30, 0
/* 800898F0 00086830  38 80 00 80 */	li r4, 0x80
/* 800898F4 00086834  38 A0 00 00 */	li r5, 0
/* 800898F8 00086838  4B FF F2 35 */	bl TRKMessageIntoReply
lbl_800898FC:
/* 800898FC 0008683C  2C 1F 00 00 */	cmpwi r31, 0
/* 80089900 00086840  41 82 00 8C */	beq lbl_8008998C
/* 80089904 00086844  2C 1F 07 03 */	cmpwi r31, 0x703
/* 80089908 00086848  41 82 00 38 */	beq lbl_80089940
/* 8008990C 0008684C  40 80 00 1C */	bge lbl_80089928
/* 80089910 00086850  2C 1F 07 01 */	cmpwi r31, 0x701
/* 80089914 00086854  41 82 00 34 */	beq lbl_80089948
/* 80089918 00086858  40 80 00 40 */	bge lbl_80089958
/* 8008991C 0008685C  2C 1F 03 02 */	cmpwi r31, 0x302
/* 80089920 00086860  41 82 00 30 */	beq lbl_80089950
/* 80089924 00086864  48 00 00 54 */	b lbl_80089978
lbl_80089928:
/* 80089928 00086868  2C 1F 07 06 */	cmpwi r31, 0x706
/* 8008992C 0008686C  41 82 00 44 */	beq lbl_80089970
/* 80089930 00086870  40 80 00 48 */	bge lbl_80089978
/* 80089934 00086874  2C 1F 07 05 */	cmpwi r31, 0x705
/* 80089938 00086878  40 80 00 30 */	bge lbl_80089968
/* 8008993C 0008687C  48 00 00 24 */	b lbl_80089960
lbl_80089940:
/* 80089940 00086880  38 A0 00 12 */	li r5, 0x12
/* 80089944 00086884  48 00 00 38 */	b lbl_8008997C
lbl_80089948:
/* 80089948 00086888  38 A0 00 14 */	li r5, 0x14
/* 8008994C 0008688C  48 00 00 30 */	b lbl_8008997C
lbl_80089950:
/* 80089950 00086890  38 A0 00 02 */	li r5, 2
/* 80089954 00086894  48 00 00 28 */	b lbl_8008997C
lbl_80089958:
/* 80089958 00086898  38 A0 00 15 */	li r5, 0x15
/* 8008995C 0008689C  48 00 00 20 */	b lbl_8008997C
lbl_80089960:
/* 80089960 000868A0  38 A0 00 21 */	li r5, 0x21
/* 80089964 000868A4  48 00 00 18 */	b lbl_8008997C
lbl_80089968:
/* 80089968 000868A8  38 A0 00 22 */	li r5, 0x22
/* 8008996C 000868AC  48 00 00 10 */	b lbl_8008997C
lbl_80089970:
/* 80089970 000868B0  38 A0 00 20 */	li r5, 0x20
/* 80089974 000868B4  48 00 00 08 */	b lbl_8008997C
lbl_80089978:
/* 80089978 000868B8  38 A0 00 03 */	li r5, 3
lbl_8008997C:
/* 8008997C 000868BC  38 7E 00 00 */	addi r3, r30, 0
/* 80089980 000868C0  38 80 00 80 */	li r4, 0x80
/* 80089984 000868C4  4B FF F2 91 */	bl TRKStandardACK
/* 80089988 000868C8  48 00 00 0C */	b lbl_80089994
lbl_8008998C:
/* 8008998C 000868CC  7F C3 F3 78 */	mr r3, r30
/* 80089990 000868D0  4B FF F2 35 */	bl TRKSendACK
lbl_80089994:
/* 80089994 000868D4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80089998 000868D8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8008999C 000868DC  38 21 00 20 */	addi r1, r1, 0x20
/* 800899A0 000868E0  80 01 00 04 */	lwz r0, 4(r1)
/* 800899A4 000868E4  7C 08 03 A6 */	mtlr r0
/* 800899A8 000868E8  4E 80 00 20 */	blr 

.global TRKDoFlushCache
TRKDoFlushCache:
/* 800899AC 000868EC  7C 08 02 A6 */	mflr r0
/* 800899B0 000868F0  90 01 00 04 */	stw r0, 4(r1)
/* 800899B4 000868F4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 800899B8 000868F8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 800899BC 000868FC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 800899C0 00086900  7C 7E 1B 78 */	mr r30, r3
/* 800899C4 00086904  80 03 00 08 */	lwz r0, 8(r3)
/* 800899C8 00086908  28 00 00 0A */	cmplwi r0, 0xa
/* 800899CC 0008690C  41 82 00 18 */	beq lbl_800899E4
/* 800899D0 00086910  38 7E 00 00 */	addi r3, r30, 0
/* 800899D4 00086914  38 80 00 80 */	li r4, 0x80
/* 800899D8 00086918  38 A0 00 02 */	li r5, 2
/* 800899DC 0008691C  4B FF F2 39 */	bl TRKStandardACK
/* 800899E0 00086920  48 00 00 EC */	b lbl_80089ACC
lbl_800899E4:
/* 800899E4 00086924  38 7E 00 00 */	addi r3, r30, 0
/* 800899E8 00086928  38 80 00 00 */	li r4, 0
/* 800899EC 0008692C  4B FF E8 85 */	bl TRKSetBufferPosition
/* 800899F0 00086930  38 7E 00 00 */	addi r3, r30, 0
/* 800899F4 00086934  38 81 00 08 */	addi r4, r1, 8
/* 800899F8 00086938  4B FF EB FD */	bl TRKReadBuffer1_ui8
/* 800899FC 0008693C  7C 7F 1B 79 */	or. r31, r3, r3
/* 80089A00 00086940  40 82 00 14 */	bne lbl_80089A14
/* 80089A04 00086944  38 7E 00 00 */	addi r3, r30, 0
/* 80089A08 00086948  38 81 00 09 */	addi r4, r1, 9
/* 80089A0C 0008694C  4B FF EB E9 */	bl TRKReadBuffer1_ui8
/* 80089A10 00086950  7C 7F 1B 78 */	mr r31, r3
lbl_80089A14:
/* 80089A14 00086954  2C 1F 00 00 */	cmpwi r31, 0
/* 80089A18 00086958  40 82 00 14 */	bne lbl_80089A2C
/* 80089A1C 0008695C  38 7E 00 00 */	addi r3, r30, 0
/* 80089A20 00086960  38 81 00 0C */	addi r4, r1, 0xc
/* 80089A24 00086964  4B FF EC 75 */	bl TRKReadBuffer1_ui32
/* 80089A28 00086968  7C 7F 1B 78 */	mr r31, r3
lbl_80089A2C:
/* 80089A2C 0008696C  2C 1F 00 00 */	cmpwi r31, 0
/* 80089A30 00086970  40 82 00 14 */	bne lbl_80089A44
/* 80089A34 00086974  38 7E 00 00 */	addi r3, r30, 0
/* 80089A38 00086978  38 81 00 10 */	addi r4, r1, 0x10
/* 80089A3C 0008697C  4B FF EC 5D */	bl TRKReadBuffer1_ui32
/* 80089A40 00086980  7C 7F 1B 78 */	mr r31, r3
lbl_80089A44:
/* 80089A44 00086984  80 81 00 0C */	lwz r4, 0xc(r1)
/* 80089A48 00086988  80 A1 00 10 */	lwz r5, 0x10(r1)
/* 80089A4C 0008698C  7C 04 28 40 */	cmplw r4, r5
/* 80089A50 00086990  40 81 00 18 */	ble lbl_80089A68
/* 80089A54 00086994  38 7E 00 00 */	addi r3, r30, 0
/* 80089A58 00086998  38 80 00 80 */	li r4, 0x80
/* 80089A5C 0008699C  38 A0 00 13 */	li r5, 0x13
/* 80089A60 000869A0  4B FF F1 B5 */	bl TRKStandardACK
/* 80089A64 000869A4  48 00 00 68 */	b lbl_80089ACC
lbl_80089A68:
/* 80089A68 000869A8  2C 1F 00 00 */	cmpwi r31, 0
/* 80089A6C 000869AC  40 82 00 10 */	bne lbl_80089A7C
/* 80089A70 000869B0  88 61 00 09 */	lbz r3, 9(r1)
/* 80089A74 000869B4  48 00 1B FD */	bl TRKTargetFlushCache
/* 80089A78 000869B8  7C 7F 1B 78 */	mr r31, r3
lbl_80089A7C:
/* 80089A7C 000869BC  2C 1F 00 00 */	cmpwi r31, 0
/* 80089A80 000869C0  40 82 00 14 */	bne lbl_80089A94
/* 80089A84 000869C4  38 7E 00 00 */	addi r3, r30, 0
/* 80089A88 000869C8  38 80 00 80 */	li r4, 0x80
/* 80089A8C 000869CC  38 A0 00 00 */	li r5, 0
/* 80089A90 000869D0  4B FF F0 9D */	bl TRKMessageIntoReply
lbl_80089A94:
/* 80089A94 000869D4  2C 1F 00 00 */	cmpwi r31, 0
/* 80089A98 000869D8  41 82 00 2C */	beq lbl_80089AC4
/* 80089A9C 000869DC  2C 1F 07 03 */	cmpwi r31, 0x703
/* 80089AA0 000869E0  41 82 00 08 */	beq lbl_80089AA8
/* 80089AA4 000869E4  48 00 00 0C */	b lbl_80089AB0
lbl_80089AA8:
/* 80089AA8 000869E8  38 A0 00 12 */	li r5, 0x12
/* 80089AAC 000869EC  48 00 00 08 */	b lbl_80089AB4
lbl_80089AB0:
/* 80089AB0 000869F0  38 A0 00 03 */	li r5, 3
lbl_80089AB4:
/* 80089AB4 000869F4  38 7E 00 00 */	addi r3, r30, 0
/* 80089AB8 000869F8  38 80 00 80 */	li r4, 0x80
/* 80089ABC 000869FC  4B FF F1 59 */	bl TRKStandardACK
/* 80089AC0 00086A00  48 00 00 0C */	b lbl_80089ACC
lbl_80089AC4:
/* 80089AC4 00086A04  7F C3 F3 78 */	mr r3, r30
/* 80089AC8 00086A08  4B FF F0 FD */	bl TRKSendACK
lbl_80089ACC:
/* 80089ACC 00086A0C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80089AD0 00086A10  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80089AD4 00086A14  38 21 00 20 */	addi r1, r1, 0x20
/* 80089AD8 00086A18  80 01 00 04 */	lwz r0, 4(r1)
/* 80089ADC 00086A1C  7C 08 03 A6 */	mtlr r0
/* 80089AE0 00086A20  4E 80 00 20 */	blr 

.global TRKDoContinue
TRKDoContinue:
/* 80089AE4 00086A24  7C 08 02 A6 */	mflr r0
/* 80089AE8 00086A28  90 01 00 04 */	stw r0, 4(r1)
/* 80089AEC 00086A2C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80089AF0 00086A30  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80089AF4 00086A34  7C 7F 1B 78 */	mr r31, r3
/* 80089AF8 00086A38  48 00 1B B5 */	bl TRKTargetStopped
/* 80089AFC 00086A3C  2C 03 00 00 */	cmpwi r3, 0
/* 80089B00 00086A40  40 82 00 18 */	bne lbl_80089B18
/* 80089B04 00086A44  38 7F 00 00 */	addi r3, r31, 0
/* 80089B08 00086A48  38 80 00 80 */	li r4, 0x80
/* 80089B0C 00086A4C  38 A0 00 16 */	li r5, 0x16
/* 80089B10 00086A50  4B FF F1 05 */	bl TRKStandardACK
/* 80089B14 00086A54  48 00 00 20 */	b lbl_80089B34
lbl_80089B18:
/* 80089B18 00086A58  38 7F 00 00 */	addi r3, r31, 0
/* 80089B1C 00086A5C  38 80 00 80 */	li r4, 0x80
/* 80089B20 00086A60  38 A0 00 00 */	li r5, 0
/* 80089B24 00086A64  4B FF F0 F1 */	bl TRKStandardACK
/* 80089B28 00086A68  2C 03 00 00 */	cmpwi r3, 0
/* 80089B2C 00086A6C  40 82 00 08 */	bne lbl_80089B34
/* 80089B30 00086A70  48 00 28 3D */	bl TRKTargetContinue
lbl_80089B34:
/* 80089B34 00086A74  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80089B38 00086A78  38 21 00 10 */	addi r1, r1, 0x10
/* 80089B3C 00086A7C  80 01 00 04 */	lwz r0, 4(r1)
/* 80089B40 00086A80  7C 08 03 A6 */	mtlr r0
/* 80089B44 00086A84  4E 80 00 20 */	blr 

.global TRKDoStep
TRKDoStep:
/* 80089B48 00086A88  7C 08 02 A6 */	mflr r0
/* 80089B4C 00086A8C  90 01 00 04 */	stw r0, 4(r1)
/* 80089B50 00086A90  94 21 FF E8 */	stwu r1, -0x18(r1)
/* 80089B54 00086A94  93 E1 00 14 */	stw r31, 0x14(r1)
/* 80089B58 00086A98  7C 7F 1B 78 */	mr r31, r3
/* 80089B5C 00086A9C  80 03 00 08 */	lwz r0, 8(r3)
/* 80089B60 00086AA0  28 00 00 03 */	cmplwi r0, 3
/* 80089B64 00086AA4  40 80 00 18 */	bge lbl_80089B7C
/* 80089B68 00086AA8  38 7F 00 00 */	addi r3, r31, 0
/* 80089B6C 00086AAC  38 80 00 80 */	li r4, 0x80
/* 80089B70 00086AB0  38 A0 00 02 */	li r5, 2
/* 80089B74 00086AB4  4B FF F0 A1 */	bl TRKStandardACK
/* 80089B78 00086AB8  48 00 01 C0 */	b lbl_80089D38
lbl_80089B7C:
/* 80089B7C 00086ABC  38 7F 00 00 */	addi r3, r31, 0
/* 80089B80 00086AC0  38 80 00 00 */	li r4, 0
/* 80089B84 00086AC4  4B FF E6 ED */	bl TRKSetBufferPosition
/* 80089B88 00086AC8  38 7F 00 00 */	addi r3, r31, 0
/* 80089B8C 00086ACC  38 81 00 08 */	addi r4, r1, 8
/* 80089B90 00086AD0  4B FF EA 65 */	bl TRKReadBuffer1_ui8
/* 80089B94 00086AD4  2C 03 00 00 */	cmpwi r3, 0
/* 80089B98 00086AD8  40 82 00 10 */	bne lbl_80089BA8
/* 80089B9C 00086ADC  38 7F 00 00 */	addi r3, r31, 0
/* 80089BA0 00086AE0  38 81 00 09 */	addi r4, r1, 9
/* 80089BA4 00086AE4  4B FF EA 51 */	bl TRKReadBuffer1_ui8
lbl_80089BA8:
/* 80089BA8 00086AE8  88 01 00 09 */	lbz r0, 9(r1)
/* 80089BAC 00086AEC  2C 00 00 10 */	cmpwi r0, 0x10
/* 80089BB0 00086AF0  41 82 00 2C */	beq lbl_80089BDC
/* 80089BB4 00086AF4  40 80 00 1C */	bge lbl_80089BD0
/* 80089BB8 00086AF8  2C 00 00 01 */	cmpwi r0, 1
/* 80089BBC 00086AFC  41 82 00 54 */	beq lbl_80089C10
/* 80089BC0 00086B00  40 80 00 C8 */	bge lbl_80089C88
/* 80089BC4 00086B04  2C 00 00 00 */	cmpwi r0, 0
/* 80089BC8 00086B08  40 80 00 14 */	bge lbl_80089BDC
/* 80089BCC 00086B0C  48 00 00 BC */	b lbl_80089C88
lbl_80089BD0:
/* 80089BD0 00086B10  2C 00 00 12 */	cmpwi r0, 0x12
/* 80089BD4 00086B14  40 80 00 B4 */	bge lbl_80089C88
/* 80089BD8 00086B18  48 00 00 38 */	b lbl_80089C10
lbl_80089BDC:
/* 80089BDC 00086B1C  2C 03 00 00 */	cmpwi r3, 0
/* 80089BE0 00086B20  40 82 00 10 */	bne lbl_80089BF0
/* 80089BE4 00086B24  38 7F 00 00 */	addi r3, r31, 0
/* 80089BE8 00086B28  38 81 00 0A */	addi r4, r1, 0xa
/* 80089BEC 00086B2C  4B FF EA 09 */	bl TRKReadBuffer1_ui8
lbl_80089BF0:
/* 80089BF0 00086B30  88 01 00 0A */	lbz r0, 0xa(r1)
/* 80089BF4 00086B34  28 00 00 01 */	cmplwi r0, 1
/* 80089BF8 00086B38  40 80 00 A4 */	bge lbl_80089C9C
/* 80089BFC 00086B3C  38 7F 00 00 */	addi r3, r31, 0
/* 80089C00 00086B40  38 80 00 80 */	li r4, 0x80
/* 80089C04 00086B44  38 A0 00 11 */	li r5, 0x11
/* 80089C08 00086B48  4B FF F0 0D */	bl TRKStandardACK
/* 80089C0C 00086B4C  48 00 01 2C */	b lbl_80089D38
lbl_80089C10:
/* 80089C10 00086B50  80 1F 00 08 */	lwz r0, 8(r31)
/* 80089C14 00086B54  28 00 00 0A */	cmplwi r0, 0xa
/* 80089C18 00086B58  41 82 00 18 */	beq lbl_80089C30
/* 80089C1C 00086B5C  38 7F 00 00 */	addi r3, r31, 0
/* 80089C20 00086B60  38 80 00 80 */	li r4, 0x80
/* 80089C24 00086B64  38 A0 00 02 */	li r5, 2
/* 80089C28 00086B68  4B FF EF ED */	bl TRKStandardACK
/* 80089C2C 00086B6C  48 00 01 0C */	b lbl_80089D38
lbl_80089C30:
/* 80089C30 00086B70  2C 03 00 00 */	cmpwi r3, 0
/* 80089C34 00086B74  40 82 00 10 */	bne lbl_80089C44
/* 80089C38 00086B78  38 7F 00 00 */	addi r3, r31, 0
/* 80089C3C 00086B7C  38 81 00 0C */	addi r4, r1, 0xc
/* 80089C40 00086B80  4B FF EA 59 */	bl TRKReadBuffer1_ui32
lbl_80089C44:
/* 80089C44 00086B84  2C 03 00 00 */	cmpwi r3, 0
/* 80089C48 00086B88  40 82 00 10 */	bne lbl_80089C58
/* 80089C4C 00086B8C  38 7F 00 00 */	addi r3, r31, 0
/* 80089C50 00086B90  38 81 00 10 */	addi r4, r1, 0x10
/* 80089C54 00086B94  4B FF EA 45 */	bl TRKReadBuffer1_ui32
lbl_80089C58:
/* 80089C58 00086B98  48 00 19 19 */	bl TRKTargetGetPC
/* 80089C5C 00086B9C  80 01 00 0C */	lwz r0, 0xc(r1)
/* 80089C60 00086BA0  7C 03 00 40 */	cmplw r3, r0
/* 80089C64 00086BA4  41 80 00 10 */	blt lbl_80089C74
/* 80089C68 00086BA8  80 01 00 10 */	lwz r0, 0x10(r1)
/* 80089C6C 00086BAC  7C 03 00 40 */	cmplw r3, r0
/* 80089C70 00086BB0  40 81 00 2C */	ble lbl_80089C9C
lbl_80089C74:
/* 80089C74 00086BB4  38 7F 00 00 */	addi r3, r31, 0
/* 80089C78 00086BB8  38 80 00 80 */	li r4, 0x80
/* 80089C7C 00086BBC  38 A0 00 11 */	li r5, 0x11
/* 80089C80 00086BC0  4B FF EF 95 */	bl TRKStandardACK
/* 80089C84 00086BC4  48 00 00 B4 */	b lbl_80089D38
lbl_80089C88:
/* 80089C88 00086BC8  38 7F 00 00 */	addi r3, r31, 0
/* 80089C8C 00086BCC  38 80 00 80 */	li r4, 0x80
/* 80089C90 00086BD0  38 A0 00 12 */	li r5, 0x12
/* 80089C94 00086BD4  4B FF EF 81 */	bl TRKStandardACK
/* 80089C98 00086BD8  48 00 00 A0 */	b lbl_80089D38
lbl_80089C9C:
/* 80089C9C 00086BDC  48 00 1A 11 */	bl TRKTargetStopped
/* 80089CA0 00086BE0  2C 03 00 00 */	cmpwi r3, 0
/* 80089CA4 00086BE4  40 82 00 18 */	bne lbl_80089CBC
/* 80089CA8 00086BE8  38 7F 00 00 */	addi r3, r31, 0
/* 80089CAC 00086BEC  38 80 00 80 */	li r4, 0x80
/* 80089CB0 00086BF0  38 A0 00 16 */	li r5, 0x16
/* 80089CB4 00086BF4  4B FF EF 61 */	bl TRKStandardACK
/* 80089CB8 00086BF8  48 00 00 80 */	b lbl_80089D38
lbl_80089CBC:
/* 80089CBC 00086BFC  38 7F 00 00 */	addi r3, r31, 0
/* 80089CC0 00086C00  38 80 00 80 */	li r4, 0x80
/* 80089CC4 00086C04  38 A0 00 00 */	li r5, 0
/* 80089CC8 00086C08  4B FF EF 4D */	bl TRKStandardACK
/* 80089CCC 00086C0C  2C 03 00 00 */	cmpwi r3, 0
/* 80089CD0 00086C10  40 82 00 68 */	bne lbl_80089D38
/* 80089CD4 00086C14  88 01 00 09 */	lbz r0, 9(r1)
/* 80089CD8 00086C18  2C 00 00 10 */	cmpwi r0, 0x10
/* 80089CDC 00086C1C  41 82 00 2C */	beq lbl_80089D08
/* 80089CE0 00086C20  40 80 00 1C */	bge lbl_80089CFC
/* 80089CE4 00086C24  2C 00 00 01 */	cmpwi r0, 1
/* 80089CE8 00086C28  41 82 00 38 */	beq lbl_80089D20
/* 80089CEC 00086C2C  40 80 00 4C */	bge lbl_80089D38
/* 80089CF0 00086C30  2C 00 00 00 */	cmpwi r0, 0
/* 80089CF4 00086C34  40 80 00 14 */	bge lbl_80089D08
/* 80089CF8 00086C38  48 00 00 40 */	b lbl_80089D38
lbl_80089CFC:
/* 80089CFC 00086C3C  2C 00 00 12 */	cmpwi r0, 0x12
/* 80089D00 00086C40  40 80 00 38 */	bge lbl_80089D38
/* 80089D04 00086C44  48 00 00 1C */	b lbl_80089D20
lbl_80089D08:
/* 80089D08 00086C48  20 00 00 10 */	subfic r0, r0, 0x10
/* 80089D0C 00086C4C  88 61 00 0A */	lbz r3, 0xa(r1)
/* 80089D10 00086C50  7C 00 00 34 */	cntlzw r0, r0
/* 80089D14 00086C54  54 04 D9 7E */	srwi r4, r0, 5
/* 80089D18 00086C58  48 00 17 CD */	bl TRKTargetSingleStep
/* 80089D1C 00086C5C  48 00 00 1C */	b lbl_80089D38
lbl_80089D20:
/* 80089D20 00086C60  20 00 00 11 */	subfic r0, r0, 0x11
/* 80089D24 00086C64  80 61 00 0C */	lwz r3, 0xc(r1)
/* 80089D28 00086C68  7C 00 00 34 */	cntlzw r0, r0
/* 80089D2C 00086C6C  80 81 00 10 */	lwz r4, 0x10(r1)
/* 80089D30 00086C70  54 05 D9 7E */	srwi r5, r0, 5
/* 80089D34 00086C74  48 00 17 F5 */	bl TRKTargetStepOutOfRange
lbl_80089D38:
/* 80089D38 00086C78  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 80089D3C 00086C7C  38 21 00 18 */	addi r1, r1, 0x18
/* 80089D40 00086C80  80 01 00 04 */	lwz r0, 4(r1)
/* 80089D44 00086C84  7C 08 03 A6 */	mtlr r0
/* 80089D48 00086C88  4E 80 00 20 */	blr 

.global TRKDoStop
TRKDoStop:
/* 80089D4C 00086C8C  7C 08 02 A6 */	mflr r0
/* 80089D50 00086C90  90 01 00 04 */	stw r0, 4(r1)
/* 80089D54 00086C94  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80089D58 00086C98  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80089D5C 00086C9C  7C 7F 1B 78 */	mr r31, r3
/* 80089D60 00086CA0  48 00 19 6D */	bl TRKTargetStop
/* 80089D64 00086CA4  2C 03 07 04 */	cmpwi r3, 0x704
/* 80089D68 00086CA8  41 82 00 2C */	beq lbl_80089D94
/* 80089D6C 00086CAC  40 80 00 10 */	bge lbl_80089D7C
/* 80089D70 00086CB0  2C 03 00 00 */	cmpwi r3, 0
/* 80089D74 00086CB4  41 82 00 18 */	beq lbl_80089D8C
/* 80089D78 00086CB8  48 00 00 34 */	b lbl_80089DAC
lbl_80089D7C:
/* 80089D7C 00086CBC  2C 03 07 06 */	cmpwi r3, 0x706
/* 80089D80 00086CC0  41 82 00 24 */	beq lbl_80089DA4
/* 80089D84 00086CC4  40 80 00 28 */	bge lbl_80089DAC
/* 80089D88 00086CC8  48 00 00 14 */	b lbl_80089D9C
lbl_80089D8C:
/* 80089D8C 00086CCC  38 A0 00 00 */	li r5, 0
/* 80089D90 00086CD0  48 00 00 20 */	b lbl_80089DB0
lbl_80089D94:
/* 80089D94 00086CD4  38 A0 00 21 */	li r5, 0x21
/* 80089D98 00086CD8  48 00 00 18 */	b lbl_80089DB0
lbl_80089D9C:
/* 80089D9C 00086CDC  38 A0 00 22 */	li r5, 0x22
/* 80089DA0 00086CE0  48 00 00 10 */	b lbl_80089DB0
lbl_80089DA4:
/* 80089DA4 00086CE4  38 A0 00 20 */	li r5, 0x20
/* 80089DA8 00086CE8  48 00 00 08 */	b lbl_80089DB0
lbl_80089DAC:
/* 80089DAC 00086CEC  38 A0 00 01 */	li r5, 1
lbl_80089DB0:
/* 80089DB0 00086CF0  38 7F 00 00 */	addi r3, r31, 0
/* 80089DB4 00086CF4  38 80 00 80 */	li r4, 0x80
/* 80089DB8 00086CF8  4B FF EE 5D */	bl TRKStandardACK
/* 80089DBC 00086CFC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80089DC0 00086D00  38 21 00 10 */	addi r1, r1, 0x10
/* 80089DC4 00086D04  80 01 00 04 */	lwz r0, 4(r1)
/* 80089DC8 00086D08  7C 08 03 A6 */	mtlr r0
/* 80089DCC 00086D0C  4E 80 00 20 */	blr 

.section .data, "wa"  # 0x803A8380 - 0x803E6000
"@175":
    .4byte lbl_80089350
    .4byte lbl_80089370
    .4byte lbl_80089348
    .4byte lbl_80089370
    .4byte lbl_80089358
    .4byte lbl_80089360
    .4byte lbl_80089368
"@214":
    .4byte lbl_8008954C
    .4byte lbl_8008956C
    .4byte lbl_80089544
    .4byte lbl_8008956C
    .4byte lbl_80089554
    .4byte lbl_8008955C
    .4byte lbl_80089564