forked from zeldaret/oot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
code_800EC960.s
11813 lines (11673 loc) · 596 KB
/
code_800EC960.s
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 "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800EC960
/* B63B00 800EC960 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B63B04 800EC964 AFA40018 */ sw $a0, 0x18($sp)
/* B63B08 800EC968 308400FF */ andi $a0, $a0, 0xff
/* B63B0C 800EC96C 14800011 */ bnez $a0, .L800EC9B4
/* B63B10 800EC970 AFBF0014 */ sw $ra, 0x14($sp)
/* B63B14 800EC974 3C048015 */ lui $a0, %hi(D_80149C60) # $a0, 0x8015
/* B63B18 800EC978 0C00084C */ jal osSyncPrintf
/* B63B1C 800EC97C 24849C60 */ addiu $a0, %lo(D_80149C60) # addiu $a0, $a0, -0x63a0
/* B63B20 800EC980 340E800F */ li $t6, 32783
/* B63B24 800EC984 3C018013 */ lui $at, %hi(D_80130EFC) # $at, 0x8013
/* B63B28 800EC988 AC2E0EFC */ sw $t6, %lo(D_80130EFC)($at)
/* B63B2C 800EC98C 3C018013 */ lui $at, %hi(D_80130F00) # $at, 0x8013
/* B63B30 800EC990 340F8000 */ li $t7, 32768
/* B63B34 800EC994 AC2F0F00 */ sw $t7, %lo(D_80130F00)($at)
/* B63B38 800EC998 3C018013 */ lui $at, %hi(D_80130F04) # $at, 0x8013
/* B63B3C 800EC99C 24180008 */ li $t8, 8
/* B63B40 800EC9A0 AC380F04 */ sw $t8, %lo(D_80130F04)($at)
/* B63B44 800EC9A4 3C018013 */ lui $at, %hi(D_80130F08) # $at, 0x8013
/* B63B48 800EC9A8 24190004 */ li $t9, 4
/* B63B4C 800EC9AC 10000010 */ b .L800EC9F0
/* B63B50 800EC9B0 AC390F08 */ sw $t9, %lo(D_80130F08)($at)
.L800EC9B4:
/* B63B54 800EC9B4 3C048015 */ lui $a0, %hi(D_80149C88) # $a0, 0x8015
/* B63B58 800EC9B8 0C00084C */ jal osSyncPrintf
/* B63B5C 800EC9BC 24849C88 */ addiu $a0, %lo(D_80149C88) # addiu $a0, $a0, -0x6378
/* B63B60 800EC9C0 3408C007 */ li $t0, 49159
/* B63B64 800EC9C4 3C018013 */ lui $at, %hi(D_80130EFC) # $at, 0x8013
/* B63B68 800EC9C8 AC280EFC */ sw $t0, %lo(D_80130EFC)($at)
/* B63B6C 800EC9CC 3C018013 */ lui $at, %hi(D_80130F00) # $at, 0x8013
/* B63B70 800EC9D0 24094000 */ li $t1, 16384
/* B63B74 800EC9D4 AC290F00 */ sw $t1, %lo(D_80130F00)($at)
/* B63B78 800EC9D8 3C018013 */ lui $at, %hi(D_80130F04) # $at, 0x8013
/* B63B7C 800EC9DC 240A0004 */ li $t2, 4
/* B63B80 800EC9E0 AC2A0F04 */ sw $t2, %lo(D_80130F04)($at)
/* B63B84 800EC9E4 3C018013 */ lui $at, %hi(D_80130F08) # $at, 0x8013
/* B63B88 800EC9E8 340B8000 */ li $t3, 32768
/* B63B8C 800EC9EC AC2B0F08 */ sw $t3, %lo(D_80130F08)($at)
.L800EC9F0:
/* B63B90 800EC9F0 8FBF0014 */ lw $ra, 0x14($sp)
/* B63B94 800EC9F4 27BD0018 */ addiu $sp, $sp, 0x18
/* B63B98 800EC9F8 03E00008 */ jr $ra
/* B63B9C 800EC9FC 00000000 */ nop
glabel func_800ECA00
/* B63BA0 800ECA00 3C0E8017 */ lui $t6, %hi(D_8016BA0C) # $t6, 0x8017
/* B63BA4 800ECA04 8DCEBA0C */ lw $t6, %lo(D_8016BA0C)($t6)
/* B63BA8 800ECA08 27BDFF80 */ addiu $sp, $sp, -0x80
/* B63BAC 800ECA0C AFBF0014 */ sw $ra, 0x14($sp)
/* B63BB0 800ECA10 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B63BB4 800ECA14 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B63BB8 800ECA18 27A50020 */ addiu $a1, $sp, 0x20
/* B63BBC 800ECA1C 00003025 */ move $a2, $zero
/* B63BC0 800ECA20 0C031F82 */ jal PadMgr_RequestPadData
/* B63BC4 800ECA24 AFAE0018 */ sw $t6, 0x18($sp)
/* B63BC8 800ECA28 97AF0020 */ lhu $t7, 0x20($sp)
/* B63BCC 800ECA2C 8FB80018 */ lw $t8, 0x18($sp)
/* B63BD0 800ECA30 3C018017 */ lui $at, %hi(D_8016BA0C) # $at, 0x8017
/* B63BD4 800ECA34 AC2FBA0C */ sw $t7, %lo(D_8016BA0C)($at)
/* B63BD8 800ECA38 8FBF0014 */ lw $ra, 0x14($sp)
/* B63BDC 800ECA3C 3C018017 */ lui $at, %hi(D_8016BA14) # $at, 0x8017
/* B63BE0 800ECA40 83B90034 */ lb $t9, 0x34($sp)
/* B63BE4 800ECA44 83A80035 */ lb $t0, 0x35($sp)
/* B63BE8 800ECA48 AC38BA14 */ sw $t8, %lo(D_8016BA14)($at)
/* B63BEC 800ECA4C 3C018017 */ lui $at, %hi(D_8016BA08) # $at, 0x8017
/* B63BF0 800ECA50 27BD0080 */ addiu $sp, $sp, 0x80
/* B63BF4 800ECA54 A039BA08 */ sb $t9, %lo(D_8016BA08)($at)
/* B63BF8 800ECA58 03E00008 */ jr $ra
/* B63BFC 800ECA5C A028BA09 */ sb $t0, -0x45f7($at)
glabel func_800ECA60
/* B63C00 800ECA60 AFA40000 */ sw $a0, ($sp)
/* B63C04 800ECA64 00042600 */ sll $a0, $a0, 0x18
/* B63C08 800ECA68 00042603 */ sra $a0, $a0, 0x18
/* B63C0C 800ECA6C 28810041 */ slti $at, $a0, 0x41
/* B63C10 800ECA70 54200004 */ bnezl $at, .L800ECA84
/* B63C14 800ECA74 2881FFC0 */ slti $at, $a0, -0x40
/* B63C18 800ECA78 10000017 */ b .L800ECAD8
/* B63C1C 800ECA7C 2402007F */ li $v0, 127
/* B63C20 800ECA80 2881FFC0 */ slti $at, $a0, -0x40
.L800ECA84:
/* B63C24 800ECA84 10200003 */ beqz $at, .L800ECA94
/* B63C28 800ECA88 00000000 */ nop
/* B63C2C 800ECA8C 10000012 */ b .L800ECAD8
/* B63C30 800ECA90 2402FF80 */ li $v0, -128
.L800ECA94:
/* B63C34 800ECA94 0480000A */ bltz $a0, .L800ECAC0
/* B63C38 800ECA98 000411C0 */ sll $v0, $a0, 7
/* B63C3C 800ECA9C 000411C0 */ sll $v0, $a0, 7
/* B63C40 800ECAA0 00441023 */ subu $v0, $v0, $a0
/* B63C44 800ECAA4 04410002 */ bgez $v0, .L800ECAB0
/* B63C48 800ECAA8 00400821 */ addu $at, $v0, $zero
/* B63C4C 800ECAAC 2441003F */ addiu $at, $v0, 0x3f
.L800ECAB0:
/* B63C50 800ECAB0 00011183 */ sra $v0, $at, 6
/* B63C54 800ECAB4 00021600 */ sll $v0, $v0, 0x18
/* B63C58 800ECAB8 10000007 */ b .L800ECAD8
/* B63C5C 800ECABC 00021603 */ sra $v0, $v0, 0x18
.L800ECAC0:
/* B63C60 800ECAC0 04410002 */ bgez $v0, .L800ECACC
/* B63C64 800ECAC4 00400821 */ addu $at, $v0, $zero
/* B63C68 800ECAC8 2441003F */ addiu $at, $v0, 0x3f
.L800ECACC:
/* B63C6C 800ECACC 00011183 */ sra $v0, $at, 6
/* B63C70 800ECAD0 00021600 */ sll $v0, $v0, 0x18
/* B63C74 800ECAD4 00021603 */ sra $v0, $v0, 0x18
.L800ECAD8:
/* B63C78 800ECAD8 00027080 */ sll $t6, $v0, 2
/* B63C7C 800ECADC 3C018013 */ lui $at, %hi(D_8012F6B4)
/* B63C80 800ECAE0 002E0821 */ addu $at, $at, $t6
/* B63C84 800ECAE4 C422F6B4 */ lwc1 $f2, %lo(D_8012F6B4)($at)
/* B63C88 800ECAE8 03E00008 */ jr $ra
/* B63C8C 800ECAEC 46001006 */ mov.s $f0, $f2
glabel func_800ECAF0
/* B63C90 800ECAF0 3C048013 */ lui $a0, %hi(D_80131878) # $a0, 0x8013
/* B63C94 800ECAF4 24841878 */ addiu $a0, %lo(D_80131878) # addiu $a0, $a0, 0x1878
/* B63C98 800ECAF8 90820000 */ lbu $v0, ($a0)
/* B63C9C 800ECAFC 10400004 */ beqz $v0, .L800ECB10
/* B63CA0 800ECB00 2443FFFF */ addiu $v1, $v0, -1
/* B63CA4 800ECB04 306200FF */ andi $v0, $v1, 0xff
/* B63CA8 800ECB08 03E00008 */ jr $ra
/* B63CAC 800ECB0C A0800000 */ sb $zero, ($a0)
.L800ECB10:
/* B63CB0 800ECB10 3C0E8013 */ lui $t6, %hi(D_80130F3C) # $t6, 0x8013
/* B63CB4 800ECB14 8DCE0F3C */ lw $t6, %lo(D_80130F3C)($t6)
/* B63CB8 800ECB18 51C00004 */ beql $t6, $zero, .L800ECB2C
/* B63CBC 800ECB1C 240300FF */ li $v1, 255
/* B63CC0 800ECB20 03E00008 */ jr $ra
/* B63CC4 800ECB24 240200FE */ li $v0, 254
/* B63CC8 800ECB28 240300FF */ li $v1, 255
.L800ECB2C:
/* B63CCC 800ECB2C 03E00008 */ jr $ra
/* B63CD0 800ECB30 00601025 */ move $v0, $v1
glabel func_800ECB34
/* B63CD4 800ECB34 AFA40000 */ sw $a0, ($sp)
/* B63CD8 800ECB38 308400FF */ andi $a0, $a0, 0xff
/* B63CDC 800ECB3C 308E003F */ andi $t6, $a0, 0x3f
/* B63CE0 800ECB40 3C038013 */ lui $v1, %hi(D_80131BF0)
/* B63CE4 800ECB44 006E1821 */ addu $v1, $v1, $t6
/* B63CE8 800ECB48 90631BF0 */ lbu $v1, %lo(D_80131BF0)($v1)
/* B63CEC 800ECB4C 24010005 */ li $at, 5
/* B63CF0 800ECB50 308F0080 */ andi $t7, $a0, 0x80
/* B63CF4 800ECB54 14610007 */ bne $v1, $at, .L800ECB74
/* B63CF8 800ECB58 00601025 */ move $v0, $v1
/* B63CFC 800ECB5C 11E00003 */ beqz $t7, .L800ECB6C
/* B63D00 800ECB60 00000000 */ nop
/* B63D04 800ECB64 03E00008 */ jr $ra
/* B63D08 800ECB68 24020002 */ li $v0, 2
.L800ECB6C:
/* B63D0C 800ECB6C 03E00008 */ jr $ra
/* B63D10 800ECB70 24020003 */ li $v0, 3
.L800ECB74:
/* B63D14 800ECB74 03E00008 */ jr $ra
/* B63D18 800ECB78 00000000 */ nop
glabel func_800ECB7C
/* B63D1C 800ECB7C AFA40000 */ sw $a0, ($sp)
/* B63D20 800ECB80 308400FF */ andi $a0, $a0, 0xff
/* B63D24 800ECB84 00047080 */ sll $t6, $a0, 2
/* B63D28 800ECB88 01C47021 */ addu $t6, $t6, $a0
/* B63D2C 800ECB8C 3C0F8013 */ lui $t7, %hi(D_80130F80) # $t7, 0x8013
/* B63D30 800ECB90 25EF0F80 */ addiu $t7, %lo(D_80130F80) # addiu $t7, $t7, 0xf80
/* B63D34 800ECB94 000E7140 */ sll $t6, $t6, 5
/* B63D38 800ECB98 3C088013 */ lui $t0, %hi(D_80131BF0) # $t0, 0x8013
/* B63D3C 800ECB9C 3C078013 */ lui $a3, %hi(D_80131C00) # $a3, 0x8013
/* B63D40 800ECBA0 00001025 */ move $v0, $zero
/* B63D44 800ECBA4 00001825 */ move $v1, $zero
/* B63D48 800ECBA8 24E71C00 */ addiu $a3, %lo(D_80131C00) # addiu $a3, $a3, 0x1c00
/* B63D4C 800ECBAC 25081BF0 */ addiu $t0, %lo(D_80131BF0) # addiu $t0, $t0, 0x1bf0
/* B63D50 800ECBB0 01CF2821 */ addu $a1, $t6, $t7
/* B63D54 800ECBB4 240600FF */ li $a2, 255
/* B63D58 800ECBB8 0003C0C0 */ sll $t8, $v1, 3
.L800ECBBC:
/* B63D5C 800ECBBC 00B8C821 */ addu $t9, $a1, $t8
/* B63D60 800ECBC0 93240000 */ lbu $a0, ($t9)
/* B63D64 800ECBC4 24630001 */ addiu $v1, $v1, 1
/* B63D68 800ECBC8 306300FF */ andi $v1, $v1, 0xff
/* B63D6C 800ECBCC 10C40006 */ beq $a2, $a0, .L800ECBE8
/* B63D70 800ECBD0 01044821 */ addu $t1, $t0, $a0
/* B63D74 800ECBD4 912A0000 */ lbu $t2, ($t1)
/* B63D78 800ECBD8 00E25821 */ addu $t3, $a3, $v0
/* B63D7C 800ECBDC 24420001 */ addiu $v0, $v0, 1
/* B63D80 800ECBE0 304200FF */ andi $v0, $v0, 0xff
/* B63D84 800ECBE4 A16A006D */ sb $t2, 0x6d($t3)
.L800ECBE8:
/* B63D88 800ECBE8 28410008 */ slti $at, $v0, 8
/* B63D8C 800ECBEC 10200003 */ beqz $at, .L800ECBFC
/* B63D90 800ECBF0 28610010 */ slti $at, $v1, 0x10
/* B63D94 800ECBF4 5420FFF1 */ bnezl $at, .L800ECBBC
/* B63D98 800ECBF8 0003C0C0 */ sll $t8, $v1, 3
.L800ECBFC:
/* B63D9C 800ECBFC 03E00008 */ jr $ra
/* B63DA0 800ECC00 00000000 */ nop
glabel func_800ECC04
/* B63DA4 800ECC04 3C028013 */ lui $v0, %hi(D_8013170C) # $v0, 0x8013
/* B63DA8 800ECC08 9042170C */ lbu $v0, %lo(D_8013170C)($v0)
/* B63DAC 800ECC0C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* B63DB0 800ECC10 AFA40028 */ sw $a0, 0x28($sp)
/* B63DB4 800ECC14 240300FF */ li $v1, 255
/* B63DB8 800ECC18 3084FFFF */ andi $a0, $a0, 0xffff
/* B63DBC 800ECC1C 10620007 */ beq $v1, $v0, .L800ECC3C
/* B63DC0 800ECC20 AFBF0014 */ sw $ra, 0x14($sp)
/* B63DC4 800ECC24 308E0FFF */ andi $t6, $a0, 0xfff
/* B63DC8 800ECC28 24010FFF */ li $at, 4095
/* B63DCC 800ECC2C 15C10003 */ bne $t6, $at, .L800ECC3C
/* B63DD0 800ECC30 00804025 */ move $t0, $a0
/* B63DD4 800ECC34 35041000 */ ori $a0, $t0, 0x1000
/* B63DD8 800ECC38 3084FFFF */ andi $a0, $a0, 0xffff
.L800ECC3C:
/* B63DDC 800ECC3C 3401CFFF */ li $at, 53247
/* B63DE0 800ECC40 14810005 */ bne $a0, $at, .L800ECC58
/* B63DE4 800ECC44 00804025 */ move $t0, $a0
/* B63DE8 800ECC48 50620004 */ beql $v1, $v0, .L800ECC5C
/* B63DEC 800ECC4C 24010FFF */ li $at, 4095
/* B63DF0 800ECC50 3404DFFF */ li $a0, 57343
/* B63DF4 800ECC54 3408DFFF */ li $t0, 57343
.L800ECC58:
/* B63DF8 800ECC58 24010FFF */ li $at, 4095
.L800ECC5C:
/* B63DFC 800ECC5C 15010005 */ bne $t0, $at, .L800ECC74
/* B63E00 800ECC60 2418000E */ li $t8, 14
/* B63E04 800ECC64 50620004 */ beql $v1, $v0, .L800ECC78
/* B63E08 800ECC68 3401FFFF */ li $at, 65535
/* B63E0C 800ECC6C 24041FFF */ li $a0, 8191
/* B63E10 800ECC70 24081FFF */ li $t0, 8191
.L800ECC74:
/* B63E14 800ECC74 3401FFFF */ li $at, 65535
.L800ECC78:
/* B63E18 800ECC78 11010048 */ beq $t0, $at, .L800ECD9C
/* B63E1C 800ECC7C 3C028017 */ lui $v0, %hi(D_8016BA2B) # $v0, 0x8017
/* B63E20 800ECC80 3C018000 */ lui $at, 0x8000
/* B63E24 800ECC84 00817821 */ addu $t7, $a0, $at
/* B63E28 800ECC88 3C018013 */ lui $at, %hi(D_80130F3C) # $at, 0x8013
/* B63E2C 800ECC8C AC2F0F3C */ sw $t7, %lo(D_80130F3C)($at)
/* B63E30 800ECC90 3C018017 */ lui $at, %hi(D_8016BA2A) # $at, 0x8017
/* B63E34 800ECC94 A020BA2A */ sb $zero, %lo(D_8016BA2A)($at)
/* B63E38 800ECC98 2442BA2B */ addiu $v0, %lo(D_8016BA2B) # addiu $v0, $v0, -0x45d5
/* B63E3C 800ECC9C 3401A000 */ li $at, 40960
/* B63E40 800ECCA0 11010003 */ beq $t0, $at, .L800ECCB0
/* B63E44 800ECCA4 A0580000 */ sb $t8, ($v0)
/* B63E48 800ECCA8 2709FFFF */ addiu $t1, $t8, -1
/* B63E4C 800ECCAC A0490000 */ sb $t1, ($v0)
.L800ECCB0:
/* B63E50 800ECCB0 310A3FFF */ andi $t2, $t0, 0x3fff
/* B63E54 800ECCB4 3C018017 */ lui $at, %hi(D_8016BA2C) # $at, 0x8017
/* B63E58 800ECCB8 A42ABA2C */ sh $t2, %lo(D_8016BA2C)($at)
/* B63E5C 800ECCBC 3C018013 */ lui $at, %hi(D_8013187C) # $at, 0x8013
/* B63E60 800ECCC0 240B0008 */ li $t3, 8
/* B63E64 800ECCC4 A02B187C */ sb $t3, %lo(D_8013187C)($at)
/* B63E68 800ECCC8 3C018017 */ lui $at, %hi(D_8016BA29) # $at, 0x8017
/* B63E6C 800ECCCC A020BA29 */ sb $zero, %lo(D_8016BA29)($at)
/* B63E70 800ECCD0 3C018013 */ lui $at, %hi(D_80131878) # $at, 0x8013
/* B63E74 800ECCD4 A0201878 */ sb $zero, %lo(D_80131878)($at)
/* B63E78 800ECCD8 3C018017 */ lui $at, %hi(D_8016BA2E) # $at, 0x8017
/* B63E7C 800ECCDC A020BA2E */ sb $zero, %lo(D_8016BA2E)($at)
/* B63E80 800ECCE0 0C03B2BC */ jal func_800ECAF0
/* B63E84 800ECCE4 AFA8001C */ sw $t0, 0x1c($sp)
/* B63E88 800ECCE8 3C018017 */ lui $at, %hi(D_8016B9F9) # $at, 0x8017
/* B63E8C 800ECCEC A022B9F9 */ sb $v0, %lo(D_8016B9F9)($at)
/* B63E90 800ECCF0 3C018013 */ lui $at, %hi(D_80130F0C) # $at, 0x8013
/* B63E94 800ECCF4 240C0001 */ li $t4, 1
/* B63E98 800ECCF8 A02C0F0C */ sb $t4, %lo(D_80130F0C)($at)
/* B63E9C 800ECCFC 3C018013 */ lui $at, %hi(D_80130F4C) # $at, 0x8013
/* B63EA0 800ECD00 3C078017 */ lui $a3, %hi(D_8016BA90) # $a3, 0x8017
/* B63EA4 800ECD04 3C068017 */ lui $a2, %hi(D_8016BA70) # $a2, 0x8017
/* B63EA8 800ECD08 3C058017 */ lui $a1, %hi(D_8016BA50) # $a1, 0x8017
/* B63EAC 800ECD0C 3C048017 */ lui $a0, %hi(D_8016BA30) # $a0, 0x8017
/* B63EB0 800ECD10 8FA8001C */ lw $t0, 0x1c($sp)
/* B63EB4 800ECD14 A4200F4C */ sh $zero, %lo(D_80130F4C)($at)
/* B63EB8 800ECD18 2484BA30 */ addiu $a0, %lo(D_8016BA30) # addiu $a0, $a0, -0x45d0
/* B63EBC 800ECD1C 24A5BA50 */ addiu $a1, %lo(D_8016BA50) # addiu $a1, $a1, -0x45b0
/* B63EC0 800ECD20 24C6BA70 */ addiu $a2, %lo(D_8016BA70) # addiu $a2, $a2, -0x4590
/* B63EC4 800ECD24 24E7BA90 */ addiu $a3, %lo(D_8016BA90) # addiu $a3, $a3, -0x4570
/* B63EC8 800ECD28 00001825 */ move $v1, $zero
.L800ECD2C:
/* B63ECC 800ECD2C 00031040 */ sll $v0, $v1, 1
/* B63ED0 800ECD30 00826821 */ addu $t5, $a0, $v0
/* B63ED4 800ECD34 00E3C021 */ addu $t8, $a3, $v1
/* B63ED8 800ECD38 24630001 */ addiu $v1, $v1, 1
/* B63EDC 800ECD3C A5A00000 */ sh $zero, ($t5)
/* B63EE0 800ECD40 00A27021 */ addu $t6, $a1, $v0
/* B63EE4 800ECD44 306300FF */ andi $v1, $v1, 0xff
/* B63EE8 800ECD48 A5C00000 */ sh $zero, ($t6)
/* B63EEC 800ECD4C 00C27821 */ addu $t7, $a2, $v0
/* B63EF0 800ECD50 2861000E */ slti $at, $v1, 0xe
/* B63EF4 800ECD54 A5E00000 */ sh $zero, ($t7)
/* B63EF8 800ECD58 1420FFF4 */ bnez $at, .L800ECD2C
/* B63EFC 800ECD5C A3000000 */ sb $zero, ($t8)
/* B63F00 800ECD60 31198000 */ andi $t9, $t0, 0x8000
/* B63F04 800ECD64 13200003 */ beqz $t9, .L800ECD74
/* B63F08 800ECD68 31094000 */ andi $t1, $t0, 0x4000
/* B63F0C 800ECD6C 3C018013 */ lui $at, %hi(D_8013187C) # $at, 0x8013
/* B63F10 800ECD70 A020187C */ sb $zero, %lo(D_8013187C)($at)
.L800ECD74:
/* B63F14 800ECD74 11200003 */ beqz $t1, .L800ECD84
/* B63F18 800ECD78 310AD000 */ andi $t2, $t0, 0xd000
/* B63F1C 800ECD7C 3C018017 */ lui $at, %hi(D_8016BA28) # $at, 0x8017
/* B63F20 800ECD80 A020BA28 */ sb $zero, %lo(D_8016BA28)($at)
.L800ECD84:
/* B63F24 800ECD84 5140000A */ beql $t2, $zero, .L800ECDB0
/* B63F28 800ECD88 8FBF0014 */ lw $ra, 0x14($sp)
/* B63F2C 800ECD8C 0C03B2DF */ jal func_800ECB7C
/* B63F30 800ECD90 2404000C */ li $a0, 12
/* B63F34 800ECD94 10000006 */ b .L800ECDB0
/* B63F38 800ECD98 8FBF0014 */ lw $ra, 0x14($sp)
.L800ECD9C:
/* B63F3C 800ECD9C 3C018013 */ lui $at, %hi(D_80130F3C) # $at, 0x8013
/* B63F40 800ECDA0 AC200F3C */ sw $zero, %lo(D_80130F3C)($at)
/* B63F44 800ECDA4 3C018013 */ lui $at, %hi(D_80130F0C) # $at, 0x8013
/* B63F48 800ECDA8 A0200F0C */ sb $zero, %lo(D_80130F0C)($at)
/* B63F4C 800ECDAC 8FBF0014 */ lw $ra, 0x14($sp)
.L800ECDB0:
/* B63F50 800ECDB0 27BD0028 */ addiu $sp, $sp, 0x28
/* B63F54 800ECDB4 03E00008 */ jr $ra
/* B63F58 800ECDB8 00000000 */ nop
glabel func_800ECDBC
/* B63F5C 800ECDBC 3C0E8013 */ lui $t6, %hi(D_80130F14) # $t6, 0x8013
/* B63F60 800ECDC0 91CE0F14 */ lbu $t6, %lo(D_80130F14)($t6)
/* B63F64 800ECDC4 240100FF */ li $at, 255
/* B63F68 800ECDC8 3C028017 */ lui $v0, %hi(D_8016BA29) # $v0, 0x8017
/* B63F6C 800ECDCC 11C10008 */ beq $t6, $at, .L800ECDF0
/* B63F70 800ECDD0 2442BA29 */ addiu $v0, %lo(D_8016BA29) # addiu $v0, $v0, -0x45d7
/* B63F74 800ECDD4 904F0000 */ lbu $t7, ($v0)
/* B63F78 800ECDD8 24180001 */ li $t8, 1
/* B63F7C 800ECDDC 241900FF */ li $t9, 255
/* B63F80 800ECDE0 15E00003 */ bnez $t7, .L800ECDF0
/* B63F84 800ECDE4 3C018013 */ lui $at, %hi(D_80130F20) # $at, 0x8013
/* B63F88 800ECDE8 A0580000 */ sb $t8, ($v0)
/* B63F8C 800ECDEC A0390F20 */ sb $t9, %lo(D_80130F20)($at)
.L800ECDF0:
/* B63F90 800ECDF0 03E00008 */ jr $ra
/* B63F94 800ECDF4 00000000 */ nop
glabel func_800ECDF8
/* B63F98 800ECDF8 27BDFFA0 */ addiu $sp, $sp, -0x60
/* B63F9C 800ECDFC AFBF002C */ sw $ra, 0x2c($sp)
/* B63FA0 800ECE00 AFB50028 */ sw $s5, 0x28($sp)
/* B63FA4 800ECE04 AFB40024 */ sw $s4, 0x24($sp)
/* B63FA8 800ECE08 AFB30020 */ sw $s3, 0x20($sp)
/* B63FAC 800ECE0C AFB2001C */ sw $s2, 0x1c($sp)
/* B63FB0 800ECE10 AFB10018 */ sw $s1, 0x18($sp)
/* B63FB4 800ECE14 AFB00014 */ sw $s0, 0x14($sp)
/* B63FB8 800ECE18 A3A0005B */ sb $zero, 0x5b($sp)
/* B63FBC 800ECE1C 0C03B36F */ jal func_800ECDBC
/* B63FC0 800ECE20 A3A00057 */ sb $zero, 0x57($sp)
/* B63FC4 800ECE24 3C0E8017 */ lui $t6, %hi(D_8016BA29) # $t6, 0x8017
/* B63FC8 800ECE28 91CEBA29 */ lbu $t6, %lo(D_8016BA29)($t6)
/* B63FCC 800ECE2C 3C028013 */ lui $v0, %hi(D_80130F2C) # $v0, 0x8013
/* B63FD0 800ECE30 51C000EB */ beql $t6, $zero, .L800ED1E0
/* B63FD4 800ECE34 8FBF002C */ lw $ra, 0x2c($sp)
/* B63FD8 800ECE38 80420F2C */ lb $v0, %lo(D_80130F2C)($v0)
/* B63FDC 800ECE3C 3C0F8013 */ lui $t7, %hi(D_80130F14) # $t7, 0x8013
/* B63FE0 800ECE40 3C188013 */ lui $t8, %hi(D_80130F18) # $t8, 0x8013
/* B63FE4 800ECE44 04410003 */ bgez $v0, .L800ECE54
/* B63FE8 800ECE48 00401825 */ move $v1, $v0
/* B63FEC 800ECE4C 10000001 */ b .L800ECE54
/* B63FF0 800ECE50 00021823 */ negu $v1, $v0
.L800ECE54:
/* B63FF4 800ECE54 28610015 */ slti $at, $v1, 0x15
/* B63FF8 800ECE58 14200004 */ bnez $at, .L800ECE6C
/* B63FFC 800ECE5C 3C1F8017 */ lui $ra, %hi(D_8016BA2A) # $ra, 0x8017
/* B64000 800ECE60 3C018013 */ lui $at, %hi(D_80130F3C) # $at, 0x8013
/* B64004 800ECE64 100000DD */ b .L800ED1DC
/* B64008 800ECE68 AC200F3C */ sw $zero, %lo(D_80130F3C)($at)
.L800ECE6C:
/* B6400C 800ECE6C 91EF0F14 */ lbu $t7, %lo(D_80130F14)($t7)
/* B64010 800ECE70 93180F18 */ lbu $t8, %lo(D_80130F18)($t8)
/* B64014 800ECE74 3C0E8017 */ lui $t6, %hi(D_8016BA2B) # $t6, 0x8017
/* B64018 800ECE78 AFAF0040 */ sw $t7, 0x40($sp)
/* B6401C 800ECE7C 11F80003 */ beq $t7, $t8, .L800ECE8C
/* B64020 800ECE80 01E0A825 */ move $s5, $t7
/* B64024 800ECE84 240D00FF */ li $t5, 255
/* B64028 800ECE88 15AF0003 */ bne $t5, $t7, .L800ECE98
.L800ECE8C:
/* B6402C 800ECE8C 24190001 */ li $t9, 1
/* B64030 800ECE90 A3B9005B */ sb $t9, 0x5b($sp)
/* B64034 800ECE94 240D00FF */ li $t5, 255
.L800ECE98:
/* B64038 800ECE98 93FFBA2A */ lbu $ra, %lo(D_8016BA2A)($ra)
/* B6403C 800ECE9C 91CEBA2B */ lbu $t6, %lo(D_8016BA2B)($t6)
/* B64040 800ECEA0 3C108017 */ lui $s0, %hi(D_8016BA2C) # $s0, 0x8017
/* B64044 800ECEA4 03E03025 */ move $a2, $ra
/* B64048 800ECEA8 03EE082A */ slt $at, $ra, $t6
/* B6404C 800ECEAC 102000BE */ beqz $at, .L800ED1A8
/* B64050 800ECEB0 AFAE0034 */ sw $t6, 0x34($sp)
/* B64054 800ECEB4 3C148013 */ lui $s4, %hi(D_80130F80) # $s4, 0x8013
/* B64058 800ECEB8 3C138017 */ lui $s3, %hi(D_8016BA30) # $s3, 0x8017
/* B6405C 800ECEBC 3C128013 */ lui $s2, %hi(D_80130F20) # $s2, 0x8013
/* B64060 800ECEC0 3C118017 */ lui $s1, %hi(D_8016BA90) # $s1, 0x8017
/* B64064 800ECEC4 3C028017 */ lui $v0, %hi(D_8016BA2E) # $v0, 0x8017
/* B64068 800ECEC8 2442BA2E */ addiu $v0, %lo(D_8016BA2E) # addiu $v0, $v0, -0x45d2
/* B6406C 800ECECC 2631BA90 */ addiu $s1, %lo(D_8016BA90) # addiu $s1, $s1, -0x4570
/* B64070 800ECED0 26520F20 */ addiu $s2, %lo(D_80130F20) # addiu $s2, $s2, 0xf20
/* B64074 800ECED4 2673BA30 */ addiu $s3, %lo(D_8016BA30) # addiu $s3, $s3, -0x45d0
/* B64078 800ECED8 26940F80 */ addiu $s4, %lo(D_80130F80) # addiu $s4, $s4, 0xf80
/* B6407C 800ECEDC 9610BA2C */ lhu $s0, %lo(D_8016BA2C)($s0)
.L800ECEE0:
/* B64080 800ECEE0 240F0001 */ li $t7, 1
/* B64084 800ECEE4 00CF5804 */ sllv $t3, $t7, $a2
/* B64088 800ECEE8 316BFFFF */ andi $t3, $t3, 0xffff
/* B6408C 800ECEEC 020BC024 */ and $t8, $s0, $t3
/* B64090 800ECEF0 1300008E */ beqz $t8, .L800ED12C
/* B64094 800ECEF4 001F6040 */ sll $t4, $ra, 1
/* B64098 800ECEF8 3C0E8017 */ lui $t6, %hi(D_8016BA70) # $t6, 0x8017
/* B6409C 800ECEFC 25CEBA70 */ addiu $t6, %lo(D_8016BA70) # addiu $t6, $t6, -0x4590
/* B640A0 800ECF00 018E4021 */ addu $t0, $t4, $t6
/* B640A4 800ECF04 95040000 */ lhu $a0, ($t0)
/* B640A8 800ECF08 93AF005B */ lbu $t7, 0x5b($sp)
/* B640AC 800ECF0C 3C198017 */ lui $t9, %hi(D_8016BA50) # $t9, 0x8017
/* B640B0 800ECF10 2739BA50 */ addiu $t9, %lo(D_8016BA50) # addiu $t9, $t9, -0x45b0
/* B640B4 800ECF14 01991821 */ addu $v1, $t4, $t9
/* B640B8 800ECF18 24850012 */ addiu $a1, $a0, 0x12
/* B640BC 800ECF1C 11E00021 */ beqz $t7, .L800ECFA4
/* B640C0 800ECF20 A4650000 */ sh $a1, ($v1)
/* B640C4 800ECF24 30A2FFFF */ andi $v0, $a1, 0xffff
/* B640C8 800ECF28 2498FFEE */ addiu $t8, $a0, -0x12
/* B640CC 800ECF2C 0058082A */ slt $at, $v0, $t8
/* B640D0 800ECF30 14200019 */ bnez $at, .L800ECF98
/* B640D4 800ECF34 0045082A */ slt $at, $v0, $a1
/* B640D8 800ECF38 14200017 */ bnez $at, .L800ECF98
/* B640DC 800ECF3C 001FC880 */ sll $t9, $ra, 2
/* B640E0 800ECF40 026C7821 */ addu $t7, $s3, $t4
/* B640E4 800ECF44 95F80000 */ lhu $t8, ($t7)
/* B640E8 800ECF48 033FC821 */ addu $t9, $t9, $ra
/* B640EC 800ECF4C 0019C940 */ sll $t9, $t9, 5
/* B640F0 800ECF50 02997021 */ addu $t6, $s4, $t9
/* B640F4 800ECF54 0018C8C0 */ sll $t9, $t8, 3
/* B640F8 800ECF58 01D97821 */ addu $t7, $t6, $t9
/* B640FC 800ECF5C 95F80002 */ lhu $t8, 2($t7)
/* B64100 800ECF60 023FC821 */ addu $t9, $s1, $ra
/* B64104 800ECF64 1700000C */ bnez $t8, .L800ECF98
/* B64108 800ECF68 00000000 */ nop
/* B6410C 800ECF6C 924E0000 */ lbu $t6, ($s2)
/* B64110 800ECF70 932F0000 */ lbu $t7, ($t9)
/* B64114 800ECF74 24D80001 */ addiu $t8, $a2, 1
/* B64118 800ECF78 3C018013 */ lui $at, %hi(D_80131878) # $at, 0x8013
/* B6411C 800ECF7C 15CF0006 */ bne $t6, $t7, .L800ECF98
/* B64120 800ECF80 00000000 */ nop
/* B64124 800ECF84 A0381878 */ sb $t8, %lo(D_80131878)($at)
/* B64128 800ECF88 3C018013 */ lui $at, %hi(D_80130F0C) # $at, 0x8013
/* B6412C 800ECF8C A0200F0C */ sb $zero, %lo(D_80130F0C)($at)
/* B64130 800ECF90 3C018013 */ lui $at, %hi(D_80130F3C) # $at, 0x8013
/* B64134 800ECF94 AC200F3C */ sw $zero, %lo(D_80130F3C)($at)
.L800ECF98:
/* B64138 800ECF98 3C028017 */ lui $v0, %hi(D_8016BA2E) # $v0, 0x8017
/* B6413C 800ECF9C 10000063 */ b .L800ED12C
/* B64140 800ECFA0 2442BA2E */ addiu $v0, %lo(D_8016BA2E) # addiu $v0, $v0, -0x45d2
.L800ECFA4:
/* B64144 800ECFA4 94620000 */ lhu $v0, ($v1)
/* B64148 800ECFA8 2499FFEE */ addiu $t9, $a0, -0x12
/* B6414C 800ECFAC 026C3821 */ addu $a3, $s3, $t4
/* B64150 800ECFB0 0059082A */ slt $at, $v0, $t9
/* B64154 800ECFB4 1420004C */ bnez $at, .L800ED0E8
/* B64158 800ECFB8 001FC880 */ sll $t9, $ra, 2
/* B6415C 800ECFBC 92420000 */ lbu $v0, ($s2)
/* B64160 800ECFC0 023F7021 */ addu $t6, $s1, $ra
/* B64164 800ECFC4 033FC821 */ addu $t9, $t9, $ra
/* B64168 800ECFC8 51A2000F */ beql $t5, $v0, .L800ED008
/* B6416C 800ECFCC 94E20000 */ lhu $v0, ($a3)
/* B64170 800ECFD0 91CF0000 */ lbu $t7, ($t6)
/* B64174 800ECFD4 020BC026 */ xor $t8, $s0, $t3
/* B64178 800ECFD8 3C018017 */ lui $at, %hi(D_8016BA2C) # $at, 0x8017
/* B6417C 800ECFDC 144F0006 */ bne $v0, $t7, .L800ECFF8
/* B64180 800ECFE0 00000000 */ nop
/* B64184 800ECFE4 2401000C */ li $at, 12
/* B64188 800ECFE8 54C10007 */ bnel $a2, $at, .L800ED008
/* B6418C 800ECFEC 94E20000 */ lhu $v0, ($a3)
/* B64190 800ECFF0 10000004 */ b .L800ED004
/* B64194 800ECFF4 A4600000 */ sh $zero, ($v1)
.L800ECFF8:
/* B64198 800ECFF8 A438BA2C */ sh $t8, %lo(D_8016BA2C)($at)
/* B6419C 800ECFFC 3C108017 */ lui $s0, %hi(D_8016BA2C) # $s0, 0x8017
/* B641A0 800ED000 9610BA2C */ lhu $s0, %lo(D_8016BA2C)($s0)
.L800ED004:
/* B641A4 800ED004 94E20000 */ lhu $v0, ($a3)
.L800ED008:
/* B641A8 800ED008 0019C940 */ sll $t9, $t9, 5
/* B641AC 800ED00C 02993021 */ addu $a2, $s4, $t9
/* B641B0 800ED010 24490001 */ addiu $t1, $v0, 1
/* B641B4 800ED014 3129FFFF */ andi $t1, $t1, 0xffff
/* B641B8 800ED018 000270C0 */ sll $t6, $v0, 3
/* B641BC 800ED01C 00CE2821 */ addu $a1, $a2, $t6
/* B641C0 800ED020 A4E90000 */ sh $t1, ($a3)
/* B641C4 800ED024 94B80002 */ lhu $t8, 2($a1)
/* B641C8 800ED028 000978C0 */ sll $t7, $t1, 3
/* B641CC 800ED02C 00CF5021 */ addu $t2, $a2, $t7
/* B641D0 800ED030 A5180000 */ sh $t8, ($t0)
/* B641D4 800ED034 90B90000 */ lbu $t9, ($a1)
/* B641D8 800ED038 023F1821 */ addu $v1, $s1, $ra
/* B641DC 800ED03C 01402025 */ move $a0, $t2
/* B641E0 800ED040 332E00FF */ andi $t6, $t9, 0xff
/* B641E4 800ED044 12AE0006 */ beq $s5, $t6, .L800ED060
/* B641E8 800ED048 A0790000 */ sb $t9, ($v1)
/* B641EC 800ED04C 020B7826 */ xor $t7, $s0, $t3
/* B641F0 800ED050 3C018017 */ lui $at, %hi(D_8016BA2C) # $at, 0x8017
/* B641F4 800ED054 A42FBA2C */ sh $t7, %lo(D_8016BA2C)($at)
/* B641F8 800ED058 3C108017 */ lui $s0, %hi(D_8016BA2C) # $s0, 0x8017
/* B641FC 800ED05C 9610BA2C */ lhu $s0, %lo(D_8016BA2C)($s0)
.L800ED060:
/* B64200 800ED060 90980000 */ lbu $t8, ($a0)
/* B64204 800ED064 90B90000 */ lbu $t9, ($a1)
/* B64208 800ED068 53190008 */ beql $t8, $t9, .L800ED08C
/* B6420C 800ED06C 95180000 */ lhu $t8, ($t0)
/* B64210 800ED070 914E0000 */ lbu $t6, ($t2)
/* B64214 800ED074 15AE0019 */ bne $t5, $t6, .L800ED0DC
/* B64218 800ED078 00000000 */ nop
/* B6421C 800ED07C 954F0002 */ lhu $t7, 2($t2)
/* B64220 800ED080 11E00016 */ beqz $t7, .L800ED0DC
/* B64224 800ED084 00000000 */ nop
/* B64228 800ED088 95180000 */ lhu $t8, ($t0)
.L800ED08C:
/* B6422C 800ED08C 94990002 */ lhu $t9, 2($a0)
/* B64230 800ED090 94E20000 */ lhu $v0, ($a3)
/* B64234 800ED094 03197021 */ addu $t6, $t8, $t9
/* B64238 800ED098 24590001 */ addiu $t9, $v0, 1
/* B6423C 800ED09C A50E0000 */ sh $t6, ($t0)
/* B64240 800ED0A0 A4F90000 */ sh $t9, ($a3)
/* B64244 800ED0A4 000278C0 */ sll $t7, $v0, 3
/* B64248 800ED0A8 0002C0C0 */ sll $t8, $v0, 3
/* B6424C 800ED0AC 00CF2821 */ addu $a1, $a2, $t7
/* B64250 800ED0B0 00D82021 */ addu $a0, $a2, $t8
/* B64254 800ED0B4 90830008 */ lbu $v1, 8($a0)
/* B64258 800ED0B8 90AE0000 */ lbu $t6, ($a1)
/* B6425C 800ED0BC 24840008 */ addiu $a0, $a0, 8
/* B64260 800ED0C0 506EFFF2 */ beql $v1, $t6, .L800ED08C
/* B64264 800ED0C4 95180000 */ lhu $t8, ($t0)
/* B64268 800ED0C8 15A30004 */ bne $t5, $v1, .L800ED0DC
/* B6426C 800ED0CC 00000000 */ nop
/* B64270 800ED0D0 948F0002 */ lhu $t7, 2($a0)
/* B64274 800ED0D4 55E0FFED */ bnezl $t7, .L800ED08C
/* B64278 800ED0D8 95180000 */ lhu $t8, ($t0)
.L800ED0DC:
/* B6427C 800ED0DC 3C028017 */ lui $v0, %hi(D_8016BA2E) # $v0, 0x8017
/* B64280 800ED0E0 10000012 */ b .L800ED12C
/* B64284 800ED0E4 2442BA2E */ addiu $v0, %lo(D_8016BA2E) # addiu $v0, $v0, -0x45d2
.L800ED0E8:
/* B64288 800ED0E8 2841000A */ slti $at, $v0, 0xa
/* B6428C 800ED0EC 10200008 */ beqz $at, .L800ED110
/* B64290 800ED0F0 2418FFFF */ li $t8, -1
/* B64294 800ED0F4 8FB90040 */ lw $t9, 0x40($sp)
/* B64298 800ED0F8 3C028017 */ lui $v0, %hi(D_8016BA2E) # $v0, 0x8017
/* B6429C 800ED0FC A3B80057 */ sb $t8, 0x57($sp)
/* B642A0 800ED100 A4600000 */ sh $zero, ($v1)
/* B642A4 800ED104 2442BA2E */ addiu $v0, %lo(D_8016BA2E) # addiu $v0, $v0, -0x45d2
/* B642A8 800ED108 10000008 */ b .L800ED12C
/* B642AC 800ED10C A2590000 */ sb $t9, ($s2)
.L800ED110:
/* B642B0 800ED110 020B7026 */ xor $t6, $s0, $t3
/* B642B4 800ED114 3C018017 */ lui $at, %hi(D_8016BA2C) # $at, 0x8017
/* B642B8 800ED118 A42EBA2C */ sh $t6, %lo(D_8016BA2C)($at)
/* B642BC 800ED11C 3C108017 */ lui $s0, %hi(D_8016BA2C) # $s0, 0x8017
/* B642C0 800ED120 3C028017 */ lui $v0, %hi(D_8016BA2E) # $v0, 0x8017
/* B642C4 800ED124 2442BA2E */ addiu $v0, %lo(D_8016BA2E) # addiu $v0, $v0, -0x45d2
/* B642C8 800ED128 9610BA2C */ lhu $s0, %lo(D_8016BA2C)($s0)
.L800ED12C:
/* B642CC 800ED12C 16000018 */ bnez $s0, .L800ED190
/* B642D0 800ED130 3C188013 */ lui $t8, %hi(D_8013187C) # $t8, 0x8013
/* B642D4 800ED134 904F0000 */ lbu $t7, ($v0)
/* B642D8 800ED138 9318187C */ lbu $t8, %lo(D_8013187C)($t8)
/* B642DC 800ED13C 01F8082A */ slt $at, $t7, $t8
/* B642E0 800ED140 54200014 */ bnezl $at, .L800ED194
/* B642E4 800ED144 8FB90034 */ lw $t9, 0x34($sp)
/* B642E8 800ED148 3C028013 */ lui $v0, %hi(D_80130F3C) # $v0, 0x8013
/* B642EC 800ED14C 8C420F3C */ lw $v0, %lo(D_80130F3C)($v0)
/* B642F0 800ED150 3C018013 */ lui $at, %hi(D_80130F0C) # $at, 0x8013
/* B642F4 800ED154 A0200F0C */ sb $zero, %lo(D_80130F0C)($at)
/* B642F8 800ED158 30594000 */ andi $t9, $v0, 0x4000
/* B642FC 800ED15C 13200009 */ beqz $t9, .L800ED184
/* B64300 800ED160 001F7080 */ sll $t6, $ra, 2
/* B64304 800ED164 01DF7021 */ addu $t6, $t6, $ra
/* B64308 800ED168 000E7140 */ sll $t6, $t6, 5
/* B6430C 800ED16C 028E7821 */ addu $t7, $s4, $t6
/* B64310 800ED170 91F80000 */ lbu $t8, ($t7)
/* B64314 800ED174 3C018013 */ lui $at, %hi(D_80130F4C) # $at, 0x8013
/* B64318 800ED178 16B80002 */ bne $s5, $t8, .L800ED184
/* B6431C 800ED17C 00000000 */ nop
/* B64320 800ED180 A4220F4C */ sh $v0, %lo(D_80130F4C)($at)
.L800ED184:
/* B64324 800ED184 3C018013 */ lui $at, %hi(D_80130F3C) # $at, 0x8013
/* B64328 800ED188 10000014 */ b .L800ED1DC
/* B6432C 800ED18C AC200F3C */ sw $zero, %lo(D_80130F3C)($at)
.L800ED190:
/* B64330 800ED190 8FB90034 */ lw $t9, 0x34($sp)
.L800ED194:
/* B64334 800ED194 27FF0001 */ addiu $ra, $ra, 1
/* B64338 800ED198 33FF00FF */ andi $ra, $ra, 0xff
/* B6433C 800ED19C 03F9082A */ slt $at, $ra, $t9
/* B64340 800ED1A0 1420FF4F */ bnez $at, .L800ECEE0
/* B64344 800ED1A4 03E03025 */ move $a2, $ra
.L800ED1A8:
/* B64348 800ED1A8 93AE005B */ lbu $t6, 0x5b($sp)
/* B6434C 800ED1AC 3C028017 */ lui $v0, %hi(D_8016BA2E) # $v0, 0x8017
/* B64350 800ED1B0 3C128013 */ lui $s2, %hi(D_80130F20) # $s2, 0x8013
/* B64354 800ED1B4 26520F20 */ addiu $s2, %lo(D_80130F20) # addiu $s2, $s2, 0xf20
/* B64358 800ED1B8 15C00008 */ bnez $t6, .L800ED1DC
/* B6435C 800ED1BC 2442BA2E */ addiu $v0, %lo(D_8016BA2E) # addiu $v0, $v0, -0x45d2
/* B64360 800ED1C0 8FAF0040 */ lw $t7, 0x40($sp)
/* B64364 800ED1C4 90580000 */ lbu $t8, ($v0)
/* B64368 800ED1C8 83B90057 */ lb $t9, 0x57($sp)
/* B6436C 800ED1CC A24F0000 */ sb $t7, ($s2)
/* B64370 800ED1D0 03197021 */ addu $t6, $t8, $t9
/* B64374 800ED1D4 25CF0001 */ addiu $t7, $t6, 1
/* B64378 800ED1D8 A04F0000 */ sb $t7, ($v0)
.L800ED1DC:
/* B6437C 800ED1DC 8FBF002C */ lw $ra, 0x2c($sp)
.L800ED1E0:
/* B64380 800ED1E0 8FB00014 */ lw $s0, 0x14($sp)
/* B64384 800ED1E4 8FB10018 */ lw $s1, 0x18($sp)
/* B64388 800ED1E8 8FB2001C */ lw $s2, 0x1c($sp)
/* B6438C 800ED1EC 8FB30020 */ lw $s3, 0x20($sp)
/* B64390 800ED1F0 8FB40024 */ lw $s4, 0x24($sp)
/* B64394 800ED1F4 8FB50028 */ lw $s5, 0x28($sp)
/* B64398 800ED1F8 03E00008 */ jr $ra
/* B6439C 800ED1FC 27BD0060 */ addiu $sp, $sp, 0x60
glabel func_800ED200
/* B643A0 800ED200 3C028017 */ lui $v0, %hi(D_8016BA0C) # $v0, 0x8017
/* B643A4 800ED204 8C42BA0C */ lw $v0, %lo(D_8016BA0C)($v0)
/* B643A8 800ED208 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B643AC 800ED20C AFBF001C */ sw $ra, 0x1c($sp)
/* B643B0 800ED210 304E0020 */ andi $t6, $v0, 0x20
/* B643B4 800ED214 11C0000B */ beqz $t6, .L800ED244
/* B643B8 800ED218 AFB00018 */ sw $s0, 0x18($sp)
/* B643BC 800ED21C 3C0F8013 */ lui $t7, %hi(D_80130EFC) # $t7, 0x8013
/* B643C0 800ED220 8DEF0EFC */ lw $t7, %lo(D_80130EFC)($t7)
/* B643C4 800ED224 3C048013 */ lui $a0, %hi(D_80130F3E) # $a0, 0x8013
/* B643C8 800ED228 004FC024 */ and $t8, $v0, $t7
/* B643CC 800ED22C 13000005 */ beqz $t8, .L800ED244
/* B643D0 800ED230 00000000 */ nop
/* B643D4 800ED234 0C03B301 */ jal func_800ECC04
/* B643D8 800ED238 94840F3E */ lhu $a0, %lo(D_80130F3E)($a0)
/* B643DC 800ED23C 10000082 */ b .L800ED448
/* B643E0 800ED240 8FBF001C */ lw $ra, 0x1c($sp)
.L800ED244:
/* B643E4 800ED244 0C03B36F */ jal func_800ECDBC
/* B643E8 800ED248 00000000 */ nop
/* B643EC 800ED24C 3C198017 */ lui $t9, %hi(D_8016BA29) # $t9, 0x8017
/* B643F0 800ED250 9339BA29 */ lbu $t9, %lo(D_8016BA29)($t9)
/* B643F4 800ED254 3C058013 */ lui $a1, %hi(D_80130F14) # $a1, 0x8013
/* B643F8 800ED258 3C0E8013 */ lui $t6, %hi(D_80130F18) # $t6, 0x8013
/* B643FC 800ED25C 5320007A */ beql $t9, $zero, .L800ED448
/* B64400 800ED260 8FBF001C */ lw $ra, 0x1c($sp)
/* B64404 800ED264 90A50F14 */ lbu $a1, %lo(D_80130F14)($a1)
/* B64408 800ED268 91CE0F18 */ lbu $t6, %lo(D_80130F18)($t6)
/* B6440C 800ED26C 240100FF */ li $at, 255
/* B64410 800ED270 50AE0075 */ beql $a1, $t6, .L800ED448
/* B64414 800ED274 8FBF001C */ lw $ra, 0x1c($sp)
/* B64418 800ED278 10A10072 */ beq $a1, $at, .L800ED444
/* B6441C 800ED27C 3C028017 */ lui $v0, %hi(D_8016BA2E) # $v0, 0x8017
/* B64420 800ED280 2442BA2E */ addiu $v0, %lo(D_8016BA2E) # addiu $v0, $v0, -0x45d2
/* B64424 800ED284 904F0000 */ lbu $t7, ($v0)
/* B64428 800ED288 3C038017 */ lui $v1, %hi(D_8016BA28) # $v1, 0x8017
/* B6442C 800ED28C 2463BA28 */ addiu $v1, %lo(D_8016BA28) # addiu $v1, $v1, -0x45d8
/* B64430 800ED290 25F80001 */ addiu $t8, $t7, 1
/* B64434 800ED294 331900FF */ andi $t9, $t8, 0xff
/* B64438 800ED298 2B210009 */ slti $at, $t9, 9
/* B6443C 800ED29C 14200003 */ bnez $at, .L800ED2AC
/* B64440 800ED2A0 A0580000 */ sb $t8, ($v0)
/* B64444 800ED2A4 240E0001 */ li $t6, 1
/* B64448 800ED2A8 A04E0000 */ sb $t6, ($v0)
.L800ED2AC:
/* B6444C 800ED2AC 90620000 */ lbu $v0, ($v1)
/* B64450 800ED2B0 24010008 */ li $at, 8
/* B64454 800ED2B4 00005825 */ move $t3, $zero
/* B64458 800ED2B8 1441000F */ bne $v0, $at, .L800ED2F8
/* B6445C 800ED2BC 00405025 */ move $t2, $v0
/* B64460 800ED2C0 3C028017 */ lui $v0, %hi(D_8016BA20) # $v0, 0x8017
/* B64464 800ED2C4 2442BA20 */ addiu $v0, %lo(D_8016BA20) # addiu $v0, $v0, -0x45e0
/* B64468 800ED2C8 00006025 */ move $t4, $zero
.L800ED2CC:
/* B6446C 800ED2CC 004BC821 */ addu $t9, $v0, $t3
/* B64470 800ED2D0 256B0001 */ addiu $t3, $t3, 1
/* B64474 800ED2D4 004C7821 */ addu $t7, $v0, $t4
/* B64478 800ED2D8 91F80001 */ lbu $t8, 1($t7)
/* B6447C 800ED2DC 316B00FF */ andi $t3, $t3, 0xff
/* B64480 800ED2E0 29610007 */ slti $at, $t3, 7
/* B64484 800ED2E4 01606025 */ move $t4, $t3
/* B64488 800ED2E8 1420FFF8 */ bnez $at, .L800ED2CC
/* B6448C 800ED2EC A3380000 */ sb $t8, ($t9)
/* B64490 800ED2F0 10000006 */ b .L800ED30C
/* B64494 800ED2F4 00000000 */ nop
.L800ED2F8:
/* B64498 800ED2F8 244E0001 */ addiu $t6, $v0, 1
/* B6449C 800ED2FC 3C028017 */ lui $v0, %hi(D_8016BA20) # $v0, 0x8017
/* B644A0 800ED300 2442BA20 */ addiu $v0, %lo(D_8016BA20) # addiu $v0, $v0, -0x45e0
/* B644A4 800ED304 A06E0000 */ sb $t6, ($v1)
/* B644A8 800ED308 31CA00FF */ andi $t2, $t6, 0xff
.L800ED30C:
/* B644AC 800ED30C 3C038013 */ lui $v1, %hi(D_80130F2C) # $v1, 0x8013
/* B644B0 800ED310 80630F2C */ lb $v1, %lo(D_80130F2C)($v1)
/* B644B4 800ED314 3C0B8017 */ lui $t3, %hi(D_8016BA2A) # $t3, 0x8017
/* B644B8 800ED318 3C0D8017 */ lui $t5, %hi(D_8016BA2B) # $t5, 0x8017
/* B644BC 800ED31C 04610003 */ bgez $v1, .L800ED32C
/* B644C0 800ED320 00602025 */ move $a0, $v1
/* B644C4 800ED324 10000001 */ b .L800ED32C
/* B644C8 800ED328 00032023 */ negu $a0, $v1
.L800ED32C:
/* B644CC 800ED32C 28810015 */ slti $at, $a0, 0x15
/* B644D0 800ED330 14200005 */ bnez $at, .L800ED348
/* B644D4 800ED334 004AF821 */ addu $ra, $v0, $t2
/* B644D8 800ED338 004AF821 */ addu $ra, $v0, $t2
/* B644DC 800ED33C 240F00FF */ li $t7, 255
/* B644E0 800ED340 10000002 */ b .L800ED34C
/* B644E4 800ED344 A3EFFFFF */ sb $t7, -1($ra)
.L800ED348:
/* B644E8 800ED348 A3E5FFFF */ sb $a1, -1($ra)
.L800ED34C:
/* B644EC 800ED34C 916BBA2A */ lbu $t3, %lo(D_8016BA2A)($t3)
/* B644F0 800ED350 91ADBA2B */ lbu $t5, %lo(D_8016BA2B)($t5)
/* B644F4 800ED354 3C108017 */ lui $s0, %hi(D_8016BA2C) # $s0, 0x8017
/* B644F8 800ED358 3C098013 */ lui $t1, %hi(D_80130F6C) # $t1, 0x8013
/* B644FC 800ED35C 016D082A */ slt $at, $t3, $t5
/* B64500 800ED360 10200038 */ beqz $at, .L800ED444
/* B64504 800ED364 01606025 */ move $t4, $t3
/* B64508 800ED368 9610BA2C */ lhu $s0, %lo(D_8016BA2C)($s0)
/* B6450C 800ED36C 25290F6C */ addiu $t1, %lo(D_80130F6C) # addiu $t1, $t1, 0xf6c
.L800ED370:
/* B64510 800ED370 24180001 */ li $t8, 1
/* B64514 800ED374 0198C804 */ sllv $t9, $t8, $t4
/* B64518 800ED378 332EFFFF */ andi $t6, $t9, 0xffff
/* B6451C 800ED37C 020E7824 */ and $t7, $s0, $t6
/* B64520 800ED380 11E0002B */ beqz $t7, .L800ED430
/* B64524 800ED384 000BC0C0 */ sll $t8, $t3, 3
/* B64528 800ED388 3C198013 */ lui $t9, %hi(D_80131C00) # $t9, 0x8013
/* B6452C 800ED38C 27391C00 */ addiu $t9, %lo(D_80131C00) # addiu $t9, $t9, 0x1c00
/* B64530 800ED390 030BC021 */ addu $t8, $t8, $t3
/* B64534 800ED394 03194021 */ addu $t0, $t8, $t9
/* B64538 800ED398 91060000 */ lbu $a2, ($t0)
/* B6453C 800ED39C 00001825 */ move $v1, $zero
/* B64540 800ED3A0 00002825 */ move $a1, $zero
/* B64544 800ED3A4 18C0001A */ blez $a2, .L800ED410
/* B64548 800ED3A8 0146082A */ slt $at, $t2, $a2
/* B6454C 800ED3AC 14200018 */ bnez $at, .L800ED410
/* B64550 800ED3B0 00067023 */ negu $t6, $a2
/* B64554 800ED3B4 03EE3821 */ addu $a3, $ra, $t6
/* B64558 800ED3B8 00002025 */ move $a0, $zero
/* B6455C 800ED3BC 0103C021 */ addu $t8, $t0, $v1
.L800ED3C0:
/* B64560 800ED3C0 93190001 */ lbu $t9, 1($t8)
/* B64564 800ED3C4 00E47821 */ addu $t7, $a3, $a0
/* B64568 800ED3C8 91E20000 */ lbu $v0, ($t7)
/* B6456C 800ED3CC 01397021 */ addu $t6, $t1, $t9
/* B64570 800ED3D0 91CF0000 */ lbu $t7, ($t6)
/* B64574 800ED3D4 544F0006 */ bnel $v0, $t7, .L800ED3F0
/* B64578 800ED3D8 24A50001 */ addiu $a1, $a1, 1
/* B6457C 800ED3DC 24630001 */ addiu $v1, $v1, 1
/* B64580 800ED3E0 306300FF */ andi $v1, $v1, 0xff
/* B64584 800ED3E4 10000003 */ b .L800ED3F4
/* B64588 800ED3E8 00602025 */ move $a0, $v1
/* B6458C 800ED3EC 24A50001 */ addiu $a1, $a1, 1
.L800ED3F0:
/* B64590 800ED3F0 30A500FF */ andi $a1, $a1, 0xff
.L800ED3F4:
/* B64594 800ED3F4 0086082A */ slt $at, $a0, $a2
/* B64598 800ED3F8 10200005 */ beqz $at, .L800ED410
/* B6459C 800ED3FC 00000000 */ nop
/* B645A0 800ED400 14A00003 */ bnez $a1, .L800ED410
/* B645A4 800ED404 0146082A */ slt $at, $t2, $a2
/* B645A8 800ED408 5020FFED */ beql $at, $zero, .L800ED3C0
/* B645AC 800ED40C 0103C021 */ addu $t8, $t0, $v1
.L800ED410:
/* B645B0 800ED410 14660007 */ bne $v1, $a2, .L800ED430
/* B645B4 800ED414 25980001 */ addiu $t8, $t4, 1
/* B645B8 800ED418 3C018013 */ lui $at, %hi(D_80131878) # $at, 0x8013
/* B645BC 800ED41C A0381878 */ sb $t8, %lo(D_80131878)($at)
/* B645C0 800ED420 3C018013 */ lui $at, %hi(D_80130F0C) # $at, 0x8013
/* B645C4 800ED424 A0200F0C */ sb $zero, %lo(D_80130F0C)($at)
/* B645C8 800ED428 3C018013 */ lui $at, %hi(D_80130F3C) # $at, 0x8013
/* B645CC 800ED42C AC200F3C */ sw $zero, %lo(D_80130F3C)($at)
.L800ED430:
/* B645D0 800ED430 256B0001 */ addiu $t3, $t3, 1
/* B645D4 800ED434 316B00FF */ andi $t3, $t3, 0xff
/* B645D8 800ED438 016D082A */ slt $at, $t3, $t5
/* B645DC 800ED43C 1420FFCC */ bnez $at, .L800ED370
/* B645E0 800ED440 01606025 */ move $t4, $t3
.L800ED444:
/* B645E4 800ED444 8FBF001C */ lw $ra, 0x1c($sp)
.L800ED448:
/* B645E8 800ED448 8FB00018 */ lw $s0, 0x18($sp)
/* B645EC 800ED44C 27BD0020 */ addiu $sp, $sp, 0x20
/* B645F0 800ED450 03E00008 */ jr $ra
/* B645F4 800ED454 00000000 */ nop
glabel func_800ED458
/* B645F8 800ED458 3C0E8013 */ lui $t6, %hi(D_80130F3C) # $t6, 0x8013
/* B645FC 800ED45C 8DCE0F3C */ lw $t6, %lo(D_80130F3C)($t6)
/* B64600 800ED460 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B64604 800ED464 AFBF001C */ sw $ra, 0x1c($sp)
/* B64608 800ED468 11C00008 */ beqz $t6, .L800ED48C
/* B6460C 800ED46C AFA40020 */ sw $a0, 0x20($sp)
/* B64610 800ED470 3C038013 */ lui $v1, %hi(D_80131880) # $v1, 0x8013
/* B64614 800ED474 24631880 */ addiu $v1, %lo(D_80131880) # addiu $v1, $v1, 0x1880
/* B64618 800ED478 90620000 */ lbu $v0, ($v1)
/* B6461C 800ED47C 10400003 */ beqz $v0, .L800ED48C
/* B64620 800ED480 244FFFFF */ addiu $t7, $v0, -1
/* B64624 800ED484 100000EC */ b .L800ED838
/* B64628 800ED488 A06F0000 */ sb $t7, ($v1)
.L800ED48C:
/* B6462C 800ED48C 3C048017 */ lui $a0, %hi(D_8016BA10) # $a0, 0x8017
/* B64630 800ED490 2484BA10 */ addiu $a0, %lo(D_8016BA10) # addiu $a0, $a0, -0x45f0
/* B64634 800ED494 8C830000 */ lw $v1, ($a0)
/* B64638 800ED498 10600008 */ beqz $v1, .L800ED4BC
/* B6463C 800ED49C 3C028013 */ lui $v0, %hi(D_80130EFC) # $v0, 0x8013
/* B64640 800ED4A0 8C420EFC */ lw $v0, %lo(D_80130EFC)($v0)
/* B64644 800ED4A4 3C188017 */ lui $t8, %hi(D_8016BA0C) # $t8, 0x8017
/* B64648 800ED4A8 8F18BA0C */ lw $t8, %lo(D_8016BA0C)($t8)
/* B6464C 800ED4AC 00625824 */ and $t3, $v1, $v0
/* B64650 800ED4B0 0302C824 */ and $t9, $t8, $v0
/* B64654 800ED4B4 532B00E1 */ beql $t9, $t3, .L800ED83C
/* B64658 800ED4B8 8FBF001C */ lw $ra, 0x1c($sp)
.L800ED4BC:
/* B6465C 800ED4BC AC800000 */ sw $zero, ($a0)
/* B64660 800ED4C0 3C038017 */ lui $v1, %hi(D_8016BA0C) # $v1, 0x8017
/* B64664 800ED4C4 3C028013 */ lui $v0, %hi(D_80130EFC) # $v0, 0x8013
/* B64668 800ED4C8 8C420EFC */ lw $v0, %lo(D_80130EFC)($v0)
/* B6466C 800ED4CC 8C63BA0C */ lw $v1, %lo(D_8016BA0C)($v1)
/* B64670 800ED4D0 3C078013 */ lui $a3, %hi(D_80130F1C) # $a3, 0x8013
/* B64674 800ED4D4 240900FF */ li $t1, 255
/* B64678 800ED4D8 3C0A8013 */ lui $t2, %hi(D_80130F14) # $t2, 0x8013
/* B6467C 800ED4DC 254A0F14 */ addiu $t2, %lo(D_80130F14) # addiu $t2, $t2, 0xf14
/* B64680 800ED4E0 24E70F1C */ addiu $a3, %lo(D_80130F1C) # addiu $a3, $a3, 0xf1c
/* B64684 800ED4E4 A1490000 */ sb $t1, ($t2)
/* B64688 800ED4E8 A0E90000 */ sb $t1, ($a3)
/* B6468C 800ED4EC 3C0C8017 */ lui $t4, %hi(D_8016BA14) # $t4, 0x8017
/* B64690 800ED4F0 8D8CBA14 */ lw $t4, %lo(D_8016BA14)($t4)
/* B64694 800ED4F4 3C068017 */ lui $a2, %hi(D_8016BA18) # $a2, 0x8017
/* B64698 800ED4F8 24C6BA18 */ addiu $a2, %lo(D_8016BA18) # addiu $a2, $a2, -0x45e8
/* B6469C 800ED4FC 8CCE0000 */ lw $t6, ($a2)
/* B646A0 800ED500 00624024 */ and $t0, $v1, $v0
/* B646A4 800ED504 010C6824 */ and $t5, $t0, $t4
/* B646A8 800ED508 01A22024 */ and $a0, $t5, $v0
/* B646AC 800ED50C 01C42824 */ and $a1, $t6, $a0
/* B646B0 800ED510 14A00005 */ bnez $a1, .L800ED528
/* B646B4 800ED514 3C048015 */ lui $a0, %hi(D_80149CB0) # $a0, 0x8015
/* B646B8 800ED518 50600004 */ beql $v1, $zero, .L800ED52C
/* B646BC 800ED51C ACC50000 */ sw $a1, ($a2)
/* B646C0 800ED520 10000002 */ b .L800ED52C
/* B646C4 800ED524 ACC30000 */ sw $v1, ($a2)
.L800ED528:
/* B646C8 800ED528 ACC50000 */ sw $a1, ($a2)
.L800ED52C:
/* B646CC 800ED52C 3C058013 */ lui $a1, %hi(D_80130F00) # $a1, 0x8013
/* B646D0 800ED530 8CA50F00 */ lw $a1, %lo(D_80130F00)($a1)
/* B646D4 800ED534 8CC20000 */ lw $v0, ($a2)
/* B646D8 800ED538 00457824 */ and $t7, $v0, $a1
/* B646DC 800ED53C 11E0000B */ beqz $t7, .L800ED56C
/* B646E0 800ED540 00000000 */ nop
/* B646E4 800ED544 0C00084C */ jal osSyncPrintf
/* B646E8 800ED548 24849CB0 */ addiu $a0, %lo(D_80149CB0) # addiu $a0, $a0, -0x6350
/* B646EC 800ED54C 3C078013 */ lui $a3, %hi(D_80130F1C) # $a3, 0x8013
/* B646F0 800ED550 3C0A8013 */ lui $t2, %hi(D_80130F14) # $t2, 0x8013
/* B646F4 800ED554 254A0F14 */ addiu $t2, %lo(D_80130F14) # addiu $t2, $t2, 0xf14
/* B646F8 800ED558 24E70F1C */ addiu $a3, %lo(D_80130F1C) # addiu $a3, $a3, 0xf1c
/* B646FC 800ED55C 24180002 */ li $t8, 2
/* B64700 800ED560 A1580000 */ sb $t8, ($t2)
/* B64704 800ED564 10000040 */ b .L800ED668
/* B64708 800ED568 A0E00000 */ sb $zero, ($a3)
.L800ED56C:
/* B6470C 800ED56C 3C058013 */ lui $a1, %hi(D_80130F08) # $a1, 0x8013
/* B64710 800ED570 8CA50F08 */ lw $a1, %lo(D_80130F08)($a1)
/* B64714 800ED574 3C048015 */ lui $a0, %hi(D_80149CC8) # $a0, 0x8015
/* B64718 800ED578 304D0001 */ andi $t5, $v0, 1
/* B6471C 800ED57C 0045C824 */ and $t9, $v0, $a1
/* B64720 800ED580 1320000C */ beqz $t9, .L800ED5B4
/* B64724 800ED584 00000000 */ nop
/* B64728 800ED588 0C00084C */ jal osSyncPrintf
/* B6472C 800ED58C 24849CC8 */ addiu $a0, %lo(D_80149CC8) # addiu $a0, $a0, -0x6338
/* B64730 800ED590 3C078013 */ lui $a3, %hi(D_80130F1C) # $a3, 0x8013
/* B64734 800ED594 3C0A8013 */ lui $t2, %hi(D_80130F14) # $t2, 0x8013
/* B64738 800ED598 254A0F14 */ addiu $t2, %lo(D_80130F14) # addiu $t2, $t2, 0xf14
/* B6473C 800ED59C 24E70F1C */ addiu $a3, %lo(D_80130F1C) # addiu $a3, $a3, 0xf1c
/* B64740 800ED5A0 240B0005 */ li $t3, 5
/* B64744 800ED5A4 240C0001 */ li $t4, 1
/* B64748 800ED5A8 A14B0000 */ sb $t3, ($t2)
/* B6474C 800ED5AC 1000002E */ b .L800ED668
/* B64750 800ED5B0 A0EC0000 */ sb $t4, ($a3)
.L800ED5B4:
/* B64754 800ED5B4 11A0000E */ beqz $t5, .L800ED5F0
/* B64758 800ED5B8 30580002 */ andi $t8, $v0, 2
/* B6475C 800ED5BC 3C048015 */ lui $a0, %hi(D_80149CE0) # $a0, 0x8015
/* B64760 800ED5C0 24849CE0 */ addiu $a0, %lo(D_80149CE0) # addiu $a0, $a0, -0x6320
/* B64764 800ED5C4 0C00084C */ jal osSyncPrintf
/* B64768 800ED5C8 24050001 */ li $a1, 1
/* B6476C 800ED5CC 3C078013 */ lui $a3, %hi(D_80130F1C) # $a3, 0x8013
/* B64770 800ED5D0 3C0A8013 */ lui $t2, %hi(D_80130F14) # $t2, 0x8013
/* B64774 800ED5D4 254A0F14 */ addiu $t2, %lo(D_80130F14) # addiu $t2, $t2, 0xf14
/* B64778 800ED5D8 24E70F1C */ addiu $a3, %lo(D_80130F1C) # addiu $a3, $a3, 0xf1c
/* B6477C 800ED5DC 240E0009 */ li $t6, 9
/* B64780 800ED5E0 240F0002 */ li $t7, 2
/* B64784 800ED5E4 A14E0000 */ sb $t6, ($t2)
/* B64788 800ED5E8 1000001F */ b .L800ED668
/* B6478C 800ED5EC A0EF0000 */ sb $t7, ($a3)
.L800ED5F0:
/* B64790 800ED5F0 1300000E */ beqz $t8, .L800ED62C
/* B64794 800ED5F4 3C058013 */ lui $a1, %hi(D_80130F04) # $a1, 0x8013
/* B64798 800ED5F8 3C048015 */ lui $a0, %hi(D_80149CF8) # $a0, 0x8015
/* B6479C 800ED5FC 24849CF8 */ addiu $a0, %lo(D_80149CF8) # addiu $a0, $a0, -0x6308
/* B647A0 800ED600 0C00084C */ jal osSyncPrintf
/* B647A4 800ED604 24050002 */ li $a1, 2
/* B647A8 800ED608 3C078013 */ lui $a3, %hi(D_80130F1C) # $a3, 0x8013
/* B647AC 800ED60C 3C0A8013 */ lui $t2, %hi(D_80130F14) # $t2, 0x8013
/* B647B0 800ED610 254A0F14 */ addiu $t2, %lo(D_80130F14) # addiu $t2, $t2, 0xf14
/* B647B4 800ED614 24E70F1C */ addiu $a3, %lo(D_80130F1C) # addiu $a3, $a3, 0xf1c
/* B647B8 800ED618 2419000B */ li $t9, 11
/* B647BC 800ED61C 240B0003 */ li $t3, 3
/* B647C0 800ED620 A1590000 */ sb $t9, ($t2)
/* B647C4 800ED624 10000010 */ b .L800ED668
/* B647C8 800ED628 A0EB0000 */ sb $t3, ($a3)
.L800ED62C:
/* B647CC 800ED62C 8CA50F04 */ lw $a1, %lo(D_80130F04)($a1)
/* B647D0 800ED630 3C048015 */ lui $a0, %hi(D_80149D10) # $a0, 0x8015
/* B647D4 800ED634 00456024 */ and $t4, $v0, $a1
/* B647D8 800ED638 5180000C */ beql $t4, $zero, .L800ED66C
/* B647DC 800ED63C 91430000 */ lbu $v1, ($t2)
/* B647E0 800ED640 0C00084C */ jal osSyncPrintf
/* B647E4 800ED644 24849D10 */ addiu $a0, %lo(D_80149D10) # addiu $a0, $a0, -0x62f0
/* B647E8 800ED648 3C078013 */ lui $a3, %hi(D_80130F1C) # $a3, 0x8013
/* B647EC 800ED64C 3C0A8013 */ lui $t2, %hi(D_80130F14) # $t2, 0x8013
/* B647F0 800ED650 254A0F14 */ addiu $t2, %lo(D_80130F14) # addiu $t2, $t2, 0xf14
/* B647F4 800ED654 24E70F1C */ addiu $a3, %lo(D_80130F1C) # addiu $a3, $a3, 0xf1c
/* B647F8 800ED658 240D000E */ li $t5, 14
/* B647FC 800ED65C 240E0004 */ li $t6, 4
/* B64800 800ED660 A14D0000 */ sb $t5, ($t2)
/* B64804 800ED664 A0EE0000 */ sb $t6, ($a3)
.L800ED668:
/* B64808 800ED668 91430000 */ lbu $v1, ($t2)
.L800ED66C:
/* B6480C 800ED66C 240600FF */ li $a2, 255
/* B64810 800ED670 3C048013 */ lui $a0, %hi(D_80131858) # $a0, 0x8013
/* B64814 800ED674 10C30012 */ beq $a2, $v1, .L800ED6C0
/* B64818 800ED678 00601025 */ move $v0, $v1
/* B6481C 800ED67C 3C0F8017 */ lui $t7, %hi(D_8016BA0C) # $t7, 0x8017
/* B64820 800ED680 8DEFBA0C */ lw $t7, %lo(D_8016BA0C)($t7)
/* B64824 800ED684 3C198013 */ lui $t9, %hi(D_80131858) # $t9, 0x8013
/* B64828 800ED688 31F80010 */ andi $t8, $t7, 0x10
/* B6482C 800ED68C 5300000D */ beql $t8, $zero, .L800ED6C4
/* B64830 800ED690 24050002 */ li $a1, 2
/* B64834 800ED694 93391858 */ lbu $t9, %lo(D_80131858)($t9)
/* B64838 800ED698 24050002 */ li $a1, 2
/* B6483C 800ED69C 246D0001 */ addiu $t5, $v1, 1
/* B64840 800ED6A0 50B90008 */ beql $a1, $t9, .L800ED6C4
/* B64844 800ED6A4 24050002 */ li $a1, 2
/* B64848 800ED6A8 90EB0000 */ lbu $t3, ($a3)
/* B6484C 800ED6AC 31A300FF */ andi $v1, $t5, 0xff
/* B64850 800ED6B0 00601025 */ move $v0, $v1
/* B64854 800ED6B4 256C0080 */ addiu $t4, $t3, 0x80
/* B64858 800ED6B8 A0EC0000 */ sb $t4, ($a3)
/* B6485C 800ED6BC A14D0000 */ sb $t5, ($t2)
.L800ED6C0:
/* B64860 800ED6C0 24050002 */ li $a1, 2
.L800ED6C4:
/* B64864 800ED6C4 10C2000D */ beq $a2, $v0, .L800ED6FC
/* B64868 800ED6C8 90841858 */ lbu $a0, %lo(D_80131858)($a0)
/* B6486C 800ED6CC 3C0E8017 */ lui $t6, %hi(D_8016BA0C) # $t6, 0x8017
/* B64870 800ED6D0 8DCEBA0C */ lw $t6, %lo(D_8016BA0C)($t6)
/* B64874 800ED6D4 31CF2000 */ andi $t7, $t6, 0x2000
/* B64878 800ED6D8 11E00008 */ beqz $t7, .L800ED6FC
/* B6487C 800ED6DC 00000000 */ nop
/* B64880 800ED6E0 10A40006 */ beq $a1, $a0, .L800ED6FC
/* B64884 800ED6E4 00000000 */ nop
/* B64888 800ED6E8 90F80000 */ lbu $t8, ($a3)
/* B6488C 800ED6EC 246BFFFF */ addiu $t3, $v1, -1
/* B64890 800ED6F0 A14B0000 */ sb $t3, ($t2)
/* B64894 800ED6F4 27190040 */ addiu $t9, $t8, 0x40
/* B64898 800ED6F8 A0F90000 */ sb $t9, ($a3)
.L800ED6FC:
/* B6489C 800ED6FC 10A4001D */ beq $a1, $a0, .L800ED774
/* B648A0 800ED700 3C038013 */ lui $v1, %hi(D_80130F2C)
/* B648A4 800ED704 3C0C8017 */ lui $t4, %hi(D_8016BA09) # $t4, 0x8017
/* B648A8 800ED708 818CBA09 */ lb $t4, %lo(D_8016BA09)($t4)
/* B648AC 800ED70C 3C038013 */ lui $v1, %hi(D_80130F2C) # $v1, 0x8013
/* B648B0 800ED710 24630F2C */ addiu $v1, %lo(D_80130F2C) # addiu $v1, $v1, 0xf2c
/* B648B4 800ED714 A06C0000 */ sb $t4, ($v1)
/* B648B8 800ED718 0C03B298 */ jal func_800ECA60
/* B648BC 800ED71C 80640000 */ lb $a0, ($v1)
/* B648C0 800ED720 3C028017 */ lui $v0, %hi(D_8016BA08) # $v0, 0x8017
/* B648C4 800ED724 8042BA08 */ lb $v0, %lo(D_8016BA08)($v0)
/* B648C8 800ED728 3C018013 */ lui $at, %hi(D_80130F24)
/* B648CC 800ED72C E4200F24 */ swc1 $f0, %lo(D_80130F24)($at)
/* B648D0 800ED730 04410003 */ bgez $v0, .L800ED740
/* B648D4 800ED734 3C040602 */ lui $a0, (0x06020D06 >> 16) # lui $a0, 0x602
/* B648D8 800ED738 10000002 */ b .L800ED744
/* B648DC 800ED73C 00021823 */ negu $v1, $v0