forked from zeldaret/oot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
code_80105250.s
719 lines (713 loc) · 32.6 KB
/
code_80105250.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
.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_80105250
/* B7C3F0 80105250 27BDFB38 */ addiu $sp, $sp, -0x4c8
/* B7C3F4 80105254 AFBF0044 */ sw $ra, 0x44($sp)
/* B7C3F8 80105258 AFBE0040 */ sw $fp, 0x40($sp)
/* B7C3FC 8010525C AFB3002C */ sw $s3, 0x2c($sp)
/* B7C400 80105260 00809825 */ move $s3, $a0
/* B7C404 80105264 AFB7003C */ sw $s7, 0x3c($sp)
/* B7C408 80105268 AFB60038 */ sw $s6, 0x38($sp)
/* B7C40C 8010526C AFB50034 */ sw $s5, 0x34($sp)
/* B7C410 80105270 AFB40030 */ sw $s4, 0x30($sp)
/* B7C414 80105274 AFB20028 */ sw $s2, 0x28($sp)
/* B7C418 80105278 AFB10024 */ sw $s1, 0x24($sp)
/* B7C41C 8010527C AFB00020 */ sw $s0, 0x20($sp)
/* B7C420 80105280 AFA00074 */ sw $zero, 0x74($sp)
/* B7C424 80105284 0C040AFC */ jal func_80102BF0
/* B7C428 80105288 241E00FE */ li $fp, 254
/* B7C42C 8010528C 24010002 */ li $at, 2
/* B7C430 80105290 14410004 */ bne $v0, $at, .L801052A4
/* B7C434 80105294 0040B825 */ move $s7, $v0
/* B7C438 80105298 0C040A91 */ jal func_80102A44
/* B7C43C 8010529C 02602025 */ move $a0, $s3
/* B7C440 801052A0 0040B825 */ move $s7, $v0
.L801052A4:
/* B7C444 801052A4 10400003 */ beqz $v0, .L801052B4
/* B7C448 801052A8 02602025 */ move $a0, $s3
/* B7C44C 801052AC 1000012A */ b .L80105758
/* B7C450 801052B0 02E01025 */ move $v0, $s7
.L801052B4:
/* B7C454 801052B4 0C0415E2 */ jal func_80105788
/* B7C458 801052B8 27A50078 */ addiu $a1, $sp, 0x78
/* B7C45C 801052BC 50400004 */ beql $v0, $zero, .L801052D0
/* B7C460 801052C0 8E620050 */ lw $v0, 0x50($s3)
/* B7C464 801052C4 10000125 */ b .L8010575C
/* B7C468 801052C8 8FBF0044 */ lw $ra, 0x44($sp)
/* B7C46C 801052CC 8E620050 */ lw $v0, 0x50($s3)
.L801052D0:
/* B7C470 801052D0 0000A025 */ move $s4, $zero
/* B7C474 801052D4 27B502BC */ addiu $s5, $sp, 0x2bc
/* B7C478 801052D8 18400082 */ blez $v0, .L801054E4
/* B7C47C 801052DC 27B204BC */ addiu $s2, $sp, 0x4bc
/* B7C480 801052E0 8E6E005C */ lw $t6, 0x5c($s3)
.L801052E4:
/* B7C484 801052E4 8E640004 */ lw $a0, 4($s3)
/* B7C488 801052E8 8E650008 */ lw $a1, 8($s3)
/* B7C48C 801052EC 01D43021 */ addu $a2, $t6, $s4
/* B7C490 801052F0 30CFFFFF */ andi $t7, $a2, 0xffff
/* B7C494 801052F4 01E03025 */ move $a2, $t7
/* B7C498 801052F8 0C0417D0 */ jal osReadMempak
/* B7C49C 801052FC 27A7029C */ addiu $a3, $sp, 0x29c
/* B7C4A0 80105300 10400003 */ beqz $v0, .L80105310
/* B7C4A4 80105304 0040B825 */ move $s7, $v0
/* B7C4A8 80105308 10000114 */ b .L8010575C
/* B7C4AC 8010530C 8FBF0044 */ lw $ra, 0x44($sp)
.L80105310:
/* B7C4B0 80105310 97A202A0 */ lhu $v0, 0x2a0($sp)
/* B7C4B4 80105314 8FB8029C */ lw $t8, 0x29c($sp)
/* B7C4B8 80105318 14400003 */ bnez $v0, .L80105328
/* B7C4BC 8010531C 00000000 */ nop
/* B7C4C0 80105320 5300006B */ beql $t8, $zero, .L801054D0
/* B7C4C4 80105324 8E620050 */ lw $v0, 0x50($s3)
.L80105328:
/* B7C4C8 80105328 10400003 */ beqz $v0, .L80105338
/* B7C4CC 8010532C 8FB9029C */ lw $t9, 0x29c($sp)
/* B7C4D0 80105330 17200003 */ bnez $t9, .L80105340
/* B7C4D4 80105334 27A902A2 */ addiu $t1, $sp, 0x2a2
.L80105338:
/* B7C4D8 80105338 10000044 */ b .L8010544C
/* B7C4DC 8010533C 2404FFFF */ li $a0, -1
.L80105340:
/* B7C4E0 80105340 95210000 */ lhu $at, ($t1)
/* B7C4E4 80105344 00002025 */ move $a0, $zero
/* B7C4E8 80105348 00008025 */ move $s0, $zero
/* B7C4EC 8010534C A6410000 */ sh $at, ($s2)
/* B7C4F0 80105350 8E6D0060 */ lw $t5, 0x60($s3)
/* B7C4F4 80105354 97AC04BC */ lhu $t4, 0x4bc($sp)
/* B7C4F8 80105358 241600FF */ li $s6, 255
/* B7C4FC 8010535C 93AE04BC */ lbu $t6, 0x4bc($sp)
/* B7C500 80105360 018D082A */ slt $at, $t4, $t5
/* B7C504 80105364 14200039 */ bnez $at, .L8010544C
/* B7C508 80105368 00000000 */ nop
/* B7C50C 8010536C 926F0064 */ lbu $t7, 0x64($s3)
/* B7C510 80105370 93B804BD */ lbu $t8, 0x4bd($sp)
/* B7C514 80105374 01CF082A */ slt $at, $t6, $t7
/* B7C518 80105378 10200034 */ beqz $at, .L8010544C
/* B7C51C 8010537C 00000000 */ nop
/* B7C520 80105380 1B000032 */ blez $t8, .L8010544C
/* B7C524 80105384 2B010080 */ slti $at, $t8, 0x80
/* B7C528 80105388 10200030 */ beqz $at, .L8010544C
/* B7C52C 8010538C 02C08825 */ move $s1, $s6
/* B7C530 80105390 93B904BC */ lbu $t9, 0x4bc($sp)
.L80105394:
/* B7C534 80105394 13310010 */ beq $t9, $s1, .L801053D8
/* B7C538 80105398 0320B025 */ move $s6, $t9
/* B7C53C 8010539C 133E0008 */ beq $t9, $fp, .L801053C0
/* B7C540 801053A0 03208825 */ move $s1, $t9
/* B7C544 801053A4 02602025 */ move $a0, $s3
/* B7C548 801053A8 02A02825 */ move $a1, $s5
/* B7C54C 801053AC 00003025 */ move $a2, $zero
/* B7C550 801053B0 0C040B31 */ jal func_80102CC4
/* B7C554 801053B4 332700FF */ andi $a3, $t9, 0xff
/* B7C558 801053B8 0040B825 */ move $s7, $v0
/* B7C55C 801053BC 32DE00FF */ andi $fp, $s6, 0xff
.L801053C0:
/* B7C560 801053C0 12E00005 */ beqz $s7, .L801053D8
/* B7C564 801053C4 24010003 */ li $at, 3
/* B7C568 801053C8 52E10004 */ beql $s7, $at, .L801053DC
/* B7C56C 801053CC 96410000 */ lhu $at, ($s2)
/* B7C570 801053D0 100000E1 */ b .L80105758
/* B7C574 801053D4 02E01025 */ move $v0, $s7
.L801053D8:
/* B7C578 801053D8 96410000 */ lhu $at, ($s2)
.L801053DC:
/* B7C57C 801053DC 02602025 */ move $a0, $s3
/* B7C580 801053E0 27A60078 */ addiu $a2, $sp, 0x78
/* B7C584 801053E4 A7A10004 */ sh $at, 4($sp)
/* B7C588 801053E8 0C041698 */ jal func_80105A60
/* B7C58C 801053EC 8FA50004 */ lw $a1, 4($sp)
/* B7C590 801053F0 00502023 */ subu $a0, $v0, $s0
/* B7C594 801053F4 14800015 */ bnez $a0, .L8010544C
/* B7C598 801053F8 93AB04BD */ lbu $t3, 0x4bd($sp)
/* B7C59C 801053FC 000B6040 */ sll $t4, $t3, 1
/* B7C5A0 80105400 02AC6821 */ addu $t5, $s5, $t4
/* B7C5A4 80105404 95A10000 */ lhu $at, ($t5)
/* B7C5A8 80105408 24100001 */ li $s0, 1
/* B7C5AC 8010540C A6410000 */ sh $at, ($s2)
/* B7C5B0 80105410 8E790060 */ lw $t9, 0x60($s3)
/* B7C5B4 80105414 97B804BC */ lhu $t8, 0x4bc($sp)
/* B7C5B8 80105418 93AB04BD */ lbu $t3, 0x4bd($sp)
/* B7C5BC 8010541C 93AA04BC */ lbu $t2, 0x4bc($sp)
/* B7C5C0 80105420 0319082A */ slt $at, $t8, $t9
/* B7C5C4 80105424 14200009 */ bnez $at, .L8010544C
/* B7C5C8 80105428 00000000 */ nop
/* B7C5CC 8010542C 92690064 */ lbu $t1, 0x64($s3)
/* B7C5D0 80105430 0149082A */ slt $at, $t2, $t1
/* B7C5D4 80105434 10200005 */ beqz $at, .L8010544C
/* B7C5D8 80105438 00000000 */ nop
/* B7C5DC 8010543C 19600003 */ blez $t3, .L8010544C
/* B7C5E0 80105440 29610080 */ slti $at, $t3, 0x80
/* B7C5E4 80105444 5420FFD3 */ bnezl $at, .L80105394
/* B7C5E8 80105448 93B904BC */ lbu $t9, 0x4bc($sp)
.L8010544C:
/* B7C5EC 8010544C 14800003 */ bnez $a0, .L8010545C
/* B7C5F0 80105450 97AC04BC */ lhu $t4, 0x4bc($sp)
/* B7C5F4 80105454 24010001 */ li $at, 1
/* B7C5F8 80105458 1181001C */ beq $t4, $at, .L801054CC
.L8010545C:
/* B7C5FC 8010545C 27A4029C */ addiu $a0, $sp, 0x29c
/* B7C600 80105460 0C001114 */ jal bzero
/* B7C604 80105464 24050020 */ li $a1, 32
/* B7C608 80105468 926E0065 */ lbu $t6, 0x65($s3)
/* B7C60C 8010546C 02602025 */ move $a0, $s3
/* B7C610 80105470 51C00008 */ beql $t6, $zero, .L80105494
/* B7C614 80105474 8E6D005C */ lw $t5, 0x5c($s3)
/* B7C618 80105478 0C041320 */ jal func_80104C80
/* B7C61C 8010547C 00002825 */ move $a1, $zero
/* B7C620 80105480 50400004 */ beql $v0, $zero, .L80105494
/* B7C624 80105484 8E6D005C */ lw $t5, 0x5c($s3)
/* B7C628 80105488 100000B4 */ b .L8010575C
/* B7C62C 8010548C 8FBF0044 */ lw $ra, 0x44($sp)
/* B7C630 80105490 8E6D005C */ lw $t5, 0x5c($s3)
.L80105494:
/* B7C634 80105494 8E640004 */ lw $a0, 4($s3)
/* B7C638 80105498 8E650008 */ lw $a1, 8($s3)
/* B7C63C 8010549C 01B43021 */ addu $a2, $t5, $s4
/* B7C640 801054A0 30CFFFFF */ andi $t7, $a2, 0xffff
/* B7C644 801054A4 01E03025 */ move $a2, $t7
/* B7C648 801054A8 AFA00010 */ sw $zero, 0x10($sp)
/* B7C64C 801054AC 0C04173C */ jal func_80105CF0
/* B7C650 801054B0 27A7029C */ addiu $a3, $sp, 0x29c
/* B7C654 801054B4 10400003 */ beqz $v0, .L801054C4
/* B7C658 801054B8 8FB80074 */ lw $t8, 0x74($sp)
/* B7C65C 801054BC 100000A7 */ b .L8010575C
/* B7C660 801054C0 8FBF0044 */ lw $ra, 0x44($sp)
.L801054C4:
/* B7C664 801054C4 27190001 */ addiu $t9, $t8, 1
/* B7C668 801054C8 AFB90074 */ sw $t9, 0x74($sp)
.L801054CC:
/* B7C66C 801054CC 8E620050 */ lw $v0, 0x50($s3)
.L801054D0:
/* B7C670 801054D0 26940001 */ addiu $s4, $s4, 1
/* B7C674 801054D4 0282082A */ slt $at, $s4, $v0
/* B7C678 801054D8 5420FF82 */ bnezl $at, .L801052E4
/* B7C67C 801054DC 8E6E005C */ lw $t6, 0x5c($s3)
/* B7C680 801054E0 0000A025 */ move $s4, $zero
.L801054E4:
/* B7C684 801054E4 18400021 */ blez $v0, .L8010556C
/* B7C688 801054E8 27B502BC */ addiu $s5, $sp, 0x2bc
/* B7C68C 801054EC 8E6A005C */ lw $t2, 0x5c($s3)
.L801054F0:
/* B7C690 801054F0 8E640004 */ lw $a0, 4($s3)
/* B7C694 801054F4 8E650008 */ lw $a1, 8($s3)
/* B7C698 801054F8 01543021 */ addu $a2, $t2, $s4
/* B7C69C 801054FC 30C9FFFF */ andi $t1, $a2, 0xffff
/* B7C6A0 80105500 01203025 */ move $a2, $t1
/* B7C6A4 80105504 0C0417D0 */ jal osReadMempak
/* B7C6A8 80105508 27A7029C */ addiu $a3, $sp, 0x29c
/* B7C6AC 8010550C 10400003 */ beqz $v0, .L8010551C
/* B7C6B0 80105510 97AE02A0 */ lhu $t6, 0x2a0($sp)
/* B7C6B4 80105514 10000091 */ b .L8010575C
/* B7C6B8 80105518 8FBF0044 */ lw $ra, 0x44($sp)
.L8010551C:
/* B7C6BC 8010551C 00145840 */ sll $t3, $s4, 1
/* B7C6C0 80105520 27AC027C */ addiu $t4, $sp, 0x27c
/* B7C6C4 80105524 11C0000B */ beqz $t6, .L80105554
/* B7C6C8 80105528 016C2021 */ addu $a0, $t3, $t4
/* B7C6CC 8010552C 8FAD029C */ lw $t5, 0x29c($sp)
/* B7C6D0 80105530 97AF02A2 */ lhu $t7, 0x2a2($sp)
/* B7C6D4 80105534 51A00008 */ beql $t5, $zero, .L80105558
/* B7C6D8 80105538 A4800000 */ sh $zero, ($a0)
/* B7C6DC 8010553C 96780062 */ lhu $t8, 0x62($s3)
/* B7C6E0 80105540 01F8082A */ slt $at, $t7, $t8
/* B7C6E4 80105544 54200004 */ bnezl $at, .L80105558
/* B7C6E8 80105548 A4800000 */ sh $zero, ($a0)
/* B7C6EC 8010554C 10000002 */ b .L80105558
/* B7C6F0 80105550 A48F0000 */ sh $t7, ($a0)
.L80105554:
/* B7C6F4 80105554 A4800000 */ sh $zero, ($a0)
.L80105558:
/* B7C6F8 80105558 8E790050 */ lw $t9, 0x50($s3)
/* B7C6FC 8010555C 26940001 */ addiu $s4, $s4, 1
/* B7C700 80105560 0299082A */ slt $at, $s4, $t9
/* B7C704 80105564 5420FFE2 */ bnezl $at, .L801054F0
/* B7C708 80105568 8E6A005C */ lw $t2, 0x5c($s3)
.L8010556C:
/* B7C70C 8010556C 926A0064 */ lbu $t2, 0x64($s3)
/* B7C710 80105570 0000B025 */ move $s6, $zero
/* B7C714 80105574 241E0003 */ li $fp, 3
/* B7C718 80105578 1940006B */ blez $t2, .L80105728
/* B7C71C 8010557C 27B203BC */ addiu $s2, $sp, 0x3bc
/* B7C720 80105580 27B00060 */ addiu $s0, $sp, 0x60
.L80105584:
/* B7C724 80105584 02602025 */ move $a0, $s3
/* B7C728 80105588 02A02825 */ move $a1, $s5
/* B7C72C 8010558C 00003025 */ move $a2, $zero
/* B7C730 80105590 0C040B31 */ jal func_80102CC4
/* B7C734 80105594 32C700FF */ andi $a3, $s6, 0xff
/* B7C738 80105598 10400006 */ beqz $v0, .L801055B4
/* B7C73C 8010559C 27A804BC */ addiu $t0, $sp, 0x4bc
/* B7C740 801055A0 24010003 */ li $at, 3
/* B7C744 801055A4 50410004 */ beql $v0, $at, .L801055B8
/* B7C748 801055A8 02C08825 */ move $s1, $s6
/* B7C74C 801055AC 1000006B */ b .L8010575C
/* B7C750 801055B0 8FBF0044 */ lw $ra, 0x44($sp)
.L801055B4:
/* B7C754 801055B4 02C08825 */ move $s1, $s6
.L801055B8:
/* B7C758 801055B8 1AC00003 */ blez $s6, .L801055C8
/* B7C75C 801055BC 0000A025 */ move $s4, $zero
/* B7C760 801055C0 10000002 */ b .L801055CC
/* B7C764 801055C4 24050001 */ li $a1, 1
.L801055C8:
/* B7C768 801055C8 8E650060 */ lw $a1, 0x60($s3)
.L801055CC:
/* B7C76C 801055CC 18A0001C */ blez $a1, .L80105640
/* B7C770 801055D0 30A70003 */ andi $a3, $a1, 3
/* B7C774 801055D4 10E0000B */ beqz $a3, .L80105604
/* B7C778 801055D8 00E02025 */ move $a0, $a3
/* B7C77C 801055DC 00143040 */ sll $a2, $s4, 1
/* B7C780 801055E0 02461821 */ addu $v1, $s2, $a2
/* B7C784 801055E4 02A61021 */ addu $v0, $s5, $a2
.L801055E8:
/* B7C788 801055E8 94490000 */ lhu $t1, ($v0)
/* B7C78C 801055EC 26940001 */ addiu $s4, $s4, 1
/* B7C790 801055F0 24630002 */ addiu $v1, $v1, 2
/* B7C794 801055F4 24420002 */ addiu $v0, $v0, 2
/* B7C798 801055F8 1494FFFB */ bne $a0, $s4, .L801055E8
/* B7C79C 801055FC A469FFFE */ sh $t1, -2($v1)
/* B7C7A0 80105600 1285000F */ beq $s4, $a1, .L80105640
.L80105604:
/* B7C7A4 80105604 00143040 */ sll $a2, $s4, 1
/* B7C7A8 80105608 02461821 */ addu $v1, $s2, $a2
/* B7C7AC 8010560C 02A61021 */ addu $v0, $s5, $a2
.L80105610:
/* B7C7B0 80105610 944C0002 */ lhu $t4, 2($v0)
/* B7C7B4 80105614 944E0004 */ lhu $t6, 4($v0)
/* B7C7B8 80105618 944D0006 */ lhu $t5, 6($v0)
/* B7C7BC 8010561C 944B0000 */ lhu $t3, ($v0)
/* B7C7C0 80105620 26940004 */ addiu $s4, $s4, 4
/* B7C7C4 80105624 24630008 */ addiu $v1, $v1, 8
/* B7C7C8 80105628 24420008 */ addiu $v0, $v0, 8
/* B7C7CC 8010562C A46CFFFA */ sh $t4, -6($v1)
/* B7C7D0 80105630 A46EFFFC */ sh $t6, -4($v1)
/* B7C7D4 80105634 A46DFFFE */ sh $t5, -2($v1)
/* B7C7D8 80105638 1685FFF5 */ bne $s4, $a1, .L80105610
/* B7C7DC 8010563C A46BFFF8 */ sh $t3, -8($v1)
.L80105640:
/* B7C7E0 80105640 2A810080 */ slti $at, $s4, 0x80
/* B7C7E4 80105644 10200007 */ beqz $at, .L80105664
/* B7C7E8 80105648 02402825 */ move $a1, $s2
/* B7C7EC 8010564C 0014C040 */ sll $t8, $s4, 1
/* B7C7F0 80105650 02581821 */ addu $v1, $s2, $t8
.L80105654:
/* B7C7F4 80105654 24630002 */ addiu $v1, $v1, 2
/* B7C7F8 80105658 0068082B */ sltu $at, $v1, $t0
/* B7C7FC 8010565C 1420FFFD */ bnez $at, .L80105654
/* B7C800 80105660 A47EFFFE */ sh $fp, -2($v1)
.L80105664:
/* B7C804 80105664 8E6F0050 */ lw $t7, 0x50($s3)
/* B7C808 80105668 0000A025 */ move $s4, $zero
/* B7C80C 8010566C 24060001 */ li $a2, 1
/* B7C810 80105670 19E00021 */ blez $t7, .L801056F8
/* B7C814 80105674 32C700FF */ andi $a3, $s6, 0xff
/* B7C818 80105678 27A4027C */ addiu $a0, $sp, 0x27c
/* B7C81C 8010567C 90990000 */ lbu $t9, ($a0)
.L80105680:
/* B7C820 80105680 56390018 */ bnel $s1, $t9, .L801056E4
/* B7C824 80105684 8E6E0050 */ lw $t6, 0x50($s3)
/* B7C828 80105688 948A0000 */ lhu $t2, ($a0)
/* B7C82C 8010568C 96690062 */ lhu $t1, 0x62($s3)
/* B7C830 80105690 0149082A */ slt $at, $t2, $t1
/* B7C834 80105694 54200013 */ bnezl $at, .L801056E4
/* B7C838 80105698 8E6E0050 */ lw $t6, 0x50($s3)
/* B7C83C 8010569C 90830001 */ lbu $v1, 1($a0)
.L801056A0:
/* B7C840 801056A0 00031040 */ sll $v0, $v1, 1
/* B7C844 801056A4 02A25821 */ addu $t3, $s5, $v0
/* B7C848 801056A8 95610000 */ lhu $at, ($t3)
/* B7C84C 801056AC 02426821 */ addu $t5, $s2, $v0
/* B7C850 801056B0 A6010000 */ sh $at, ($s0)
/* B7C854 801056B4 A5A10000 */ sh $at, ($t5)
/* B7C858 801056B8 96010000 */ lhu $at, ($s0)
/* B7C85C 801056BC A4810000 */ sh $at, ($a0)
/* B7C860 801056C0 90890000 */ lbu $t1, ($a0)
/* B7C864 801056C4 56290007 */ bnel $s1, $t1, .L801056E4
/* B7C868 801056C8 8E6E0050 */ lw $t6, 0x50($s3)
/* B7C86C 801056CC 966B0062 */ lhu $t3, 0x62($s3)
/* B7C870 801056D0 302CFFFF */ andi $t4, $at, 0xffff
/* B7C874 801056D4 018B082A */ slt $at, $t4, $t3
/* B7C878 801056D8 5020FFF1 */ beql $at, $zero, .L801056A0
/* B7C87C 801056DC 90830001 */ lbu $v1, 1($a0)
/* B7C880 801056E0 8E6E0050 */ lw $t6, 0x50($s3)
.L801056E4:
/* B7C884 801056E4 26940001 */ addiu $s4, $s4, 1
/* B7C888 801056E8 24840002 */ addiu $a0, $a0, 2
/* B7C88C 801056EC 028E082A */ slt $at, $s4, $t6
/* B7C890 801056F0 5420FFE3 */ bnezl $at, .L80105680
/* B7C894 801056F4 90990000 */ lbu $t9, ($a0)
.L801056F8:
/* B7C898 801056F8 0C040B31 */ jal func_80102CC4
/* B7C89C 801056FC 02602025 */ move $a0, $s3
/* B7C8A0 80105700 50400004 */ beql $v0, $zero, .L80105714
/* B7C8A4 80105704 926D0064 */ lbu $t5, 0x64($s3)
/* B7C8A8 80105708 10000014 */ b .L8010575C
/* B7C8AC 8010570C 8FBF0044 */ lw $ra, 0x44($sp)
/* B7C8B0 80105710 926D0064 */ lbu $t5, 0x64($s3)
.L80105714:
/* B7C8B4 80105714 26D60001 */ addiu $s6, $s6, 1
/* B7C8B8 80105718 32D800FF */ andi $t8, $s6, 0xff
/* B7C8BC 8010571C 030D082A */ slt $at, $t8, $t5
/* B7C8C0 80105720 1420FF98 */ bnez $at, .L80105584
/* B7C8C4 80105724 0300B025 */ move $s6, $t8
.L80105728:
/* B7C8C8 80105728 8FAF0074 */ lw $t7, 0x74($sp)
/* B7C8CC 8010572C 00001025 */ move $v0, $zero
/* B7C8D0 80105730 51E00006 */ beql $t7, $zero, .L8010574C
/* B7C8D4 80105734 8E690000 */ lw $t1, ($s3)
/* B7C8D8 80105738 8E790000 */ lw $t9, ($s3)
/* B7C8DC 8010573C 372A0002 */ ori $t2, $t9, 2
/* B7C8E0 80105740 10000005 */ b .L80105758
/* B7C8E4 80105744 AE6A0000 */ sw $t2, ($s3)
/* B7C8E8 80105748 8E690000 */ lw $t1, ($s3)
.L8010574C:
/* B7C8EC 8010574C 2401FFFD */ li $at, -3
/* B7C8F0 80105750 01216024 */ and $t4, $t1, $at
/* B7C8F4 80105754 AE6C0000 */ sw $t4, ($s3)
.L80105758:
/* B7C8F8 80105758 8FBF0044 */ lw $ra, 0x44($sp)
.L8010575C:
/* B7C8FC 8010575C 8FB00020 */ lw $s0, 0x20($sp)
/* B7C900 80105760 8FB10024 */ lw $s1, 0x24($sp)
/* B7C904 80105764 8FB20028 */ lw $s2, 0x28($sp)
/* B7C908 80105768 8FB3002C */ lw $s3, 0x2c($sp)
/* B7C90C 8010576C 8FB40030 */ lw $s4, 0x30($sp)
/* B7C910 80105770 8FB50034 */ lw $s5, 0x34($sp)
/* B7C914 80105774 8FB60038 */ lw $s6, 0x38($sp)
/* B7C918 80105778 8FB7003C */ lw $s7, 0x3c($sp)
/* B7C91C 8010577C 8FBE0040 */ lw $fp, 0x40($sp)
/* B7C920 80105780 03E00008 */ jr $ra
/* B7C924 80105784 27BD04C8 */ addiu $sp, $sp, 0x4c8
glabel func_80105788
/* B7C928 80105788 27BDFE98 */ addiu $sp, $sp, -0x168
/* B7C92C 8010578C AFB30024 */ sw $s3, 0x24($sp)
/* B7C930 80105790 00809825 */ move $s3, $a0
/* B7C934 80105794 AFB40028 */ sw $s4, 0x28($sp)
/* B7C938 80105798 00A0A025 */ move $s4, $a1
/* B7C93C 8010579C AFBF003C */ sw $ra, 0x3c($sp)
/* B7C940 801057A0 AFBE0038 */ sw $fp, 0x38($sp)
/* B7C944 801057A4 AFB70034 */ sw $s7, 0x34($sp)
/* B7C948 801057A8 AFB60030 */ sw $s6, 0x30($sp)
/* B7C94C 801057AC AFB5002C */ sw $s5, 0x2c($sp)
/* B7C950 801057B0 AFB20020 */ sw $s2, 0x20($sp)
/* B7C954 801057B4 AFB1001C */ sw $s1, 0x1c($sp)
/* B7C958 801057B8 AFB00018 */ sw $s0, 0x18($sp)
/* B7C95C 801057BC 24040100 */ li $a0, 256
/* B7C960 801057C0 00001025 */ move $v0, $zero
/* B7C964 801057C4 00A01825 */ move $v1, $a1
.L801057C8:
/* B7C968 801057C8 24420004 */ addiu $v0, $v0, 4
/* B7C96C 801057CC A0600102 */ sb $zero, 0x102($v1)
/* B7C970 801057D0 A0600103 */ sb $zero, 0x103($v1)
/* B7C974 801057D4 A0600104 */ sb $zero, 0x104($v1)
/* B7C978 801057D8 24630004 */ addiu $v1, $v1, 4
/* B7C97C 801057DC 1444FFFA */ bne $v0, $a0, .L801057C8
/* B7C980 801057E0 A06000FD */ sb $zero, 0xfd($v1)
/* B7C984 801057E4 240E00FF */ li $t6, 255
/* B7C988 801057E8 A28E0100 */ sb $t6, 0x100($s4)
/* B7C98C 801057EC 926F0064 */ lbu $t7, 0x64($s3)
/* B7C990 801057F0 0000B825 */ move $s7, $zero
/* B7C994 801057F4 00008025 */ move $s0, $zero
/* B7C998 801057F8 19E0008C */ blez $t7, .L80105A2C
/* B7C99C 801057FC 241E0080 */ li $fp, 128
/* B7C9A0 80105800 27B6015A */ addiu $s6, $sp, 0x15a
/* B7C9A4 80105804 27B50058 */ addiu $s5, $sp, 0x58
/* B7C9A8 80105808 27B20158 */ addiu $s2, $sp, 0x158
.L8010580C:
/* B7C9AC 8010580C 1A000003 */ blez $s0, .L8010581C
/* B7C9B0 80105810 02602025 */ move $a0, $s3
/* B7C9B4 80105814 10000002 */ b .L80105820
/* B7C9B8 80105818 24110001 */ li $s1, 1
.L8010581C:
/* B7C9BC 8010581C 8E710060 */ lw $s1, 0x60($s3)
.L80105820:
/* B7C9C0 80105820 02A02825 */ move $a1, $s5
/* B7C9C4 80105824 00003025 */ move $a2, $zero
/* B7C9C8 80105828 0C040B31 */ jal func_80102CC4
/* B7C9CC 8010582C 32E700FF */ andi $a3, $s7, 0xff
/* B7C9D0 80105830 10400005 */ beqz $v0, .L80105848
/* B7C9D4 80105834 24010003 */ li $at, 3
/* B7C9D8 80105838 50410004 */ beql $v0, $at, .L8010584C
/* B7C9DC 8010583C 2A210080 */ slti $at, $s1, 0x80
/* B7C9E0 80105840 1000007C */ b .L80105A34
/* B7C9E4 80105844 8FBF003C */ lw $ra, 0x3c($sp)
.L80105848:
/* B7C9E8 80105848 2A210080 */ slti $at, $s1, 0x80
.L8010584C:
/* B7C9EC 8010584C 10200071 */ beqz $at, .L80105A14
/* B7C9F0 80105850 02201025 */ move $v0, $s1
/* B7C9F4 80105854 03D11823 */ subu $v1, $fp, $s1
/* B7C9F8 80105858 30780001 */ andi $t8, $v1, 1
/* B7C9FC 8010585C 13000025 */ beqz $t8, .L801058F4
/* B7CA00 80105860 0011C840 */ sll $t9, $s1, 1
/* B7CA04 80105864 02B94021 */ addu $t0, $s5, $t9
/* B7CA08 80105868 95010000 */ lhu $at, ($t0)
/* B7CA0C 8010586C A6410000 */ sh $at, ($s2)
/* B7CA10 80105870 8E6C0060 */ lw $t4, 0x60($s3)
/* B7CA14 80105874 97AB0158 */ lhu $t3, 0x158($sp)
/* B7CA18 80105878 93AD0158 */ lbu $t5, 0x158($sp)
/* B7CA1C 8010587C 016C082A */ slt $at, $t3, $t4
/* B7CA20 80105880 5420001B */ bnezl $at, .L801058F0
/* B7CA24 80105884 26220001 */ addiu $v0, $s1, 1
/* B7CA28 80105888 120D0018 */ beq $s0, $t5, .L801058EC
/* B7CA2C 8010588C 93AE0159 */ lbu $t6, 0x159($sp)
/* B7CA30 80105890 31CF007F */ andi $t7, $t6, 0x7f
/* B7CA34 80105894 05E10003 */ bgez $t7, .L801058A4
/* B7CA38 80105898 000FC083 */ sra $t8, $t7, 2
/* B7CA3C 8010589C 25E10003 */ addiu $at, $t7, 3
/* B7CA40 801058A0 0001C083 */ sra $t8, $at, 2
.L801058A4:
/* B7CA44 801058A4 05A10004 */ bgez $t5, .L801058B8
/* B7CA48 801058A8 31B90007 */ andi $t9, $t5, 7
/* B7CA4C 801058AC 13200002 */ beqz $t9, .L801058B8
/* B7CA50 801058B0 00000000 */ nop
/* B7CA54 801058B4 2739FFF8 */ addiu $t9, $t9, -8
.L801058B8:
/* B7CA58 801058B8 00194940 */ sll $t1, $t9, 5
/* B7CA5C 801058BC 03091821 */ addu $v1, $t8, $t1
/* B7CA60 801058C0 02831021 */ addu $v0, $s4, $v1
/* B7CA64 801058C4 90480101 */ lbu $t0, 0x101($v0)
/* B7CA68 801058C8 06010004 */ bgez $s0, .L801058DC
/* B7CA6C 801058CC 320A0007 */ andi $t2, $s0, 7
/* B7CA70 801058D0 11400002 */ beqz $t2, .L801058DC
/* B7CA74 801058D4 00000000 */ nop
/* B7CA78 801058D8 254AFFF8 */ addiu $t2, $t2, -8
.L801058DC:
/* B7CA7C 801058DC 240B0001 */ li $t3, 1
/* B7CA80 801058E0 014B6004 */ sllv $t4, $t3, $t2
/* B7CA84 801058E4 010C7025 */ or $t6, $t0, $t4
/* B7CA88 801058E8 A04E0101 */ sb $t6, 0x101($v0)
.L801058EC:
/* B7CA8C 801058EC 26220001 */ addiu $v0, $s1, 1
.L801058F0:
/* B7CA90 801058F0 105E0048 */ beq $v0, $fp, .L80105A14
.L801058F4:
/* B7CA94 801058F4 00027840 */ sll $t7, $v0, 1
/* B7CA98 801058F8 02AF2821 */ addu $a1, $s5, $t7
/* B7CA9C 801058FC 24A40002 */ addiu $a0, $a1, 2
.L80105900:
/* B7CAA0 80105900 94A10000 */ lhu $at, ($a1)
/* B7CAA4 80105904 A6410000 */ sh $at, ($s2)
/* B7CAA8 80105908 8E690060 */ lw $t1, 0x60($s3)
/* B7CAAC 8010590C 97B80158 */ lhu $t8, 0x158($sp)
/* B7CAB0 80105910 93AB0158 */ lbu $t3, 0x158($sp)
/* B7CAB4 80105914 0309082A */ slt $at, $t8, $t1
/* B7CAB8 80105918 5420001B */ bnezl $at, .L80105988
/* B7CABC 8010591C 94810000 */ lhu $at, ($a0)
/* B7CAC0 80105920 120B0018 */ beq $s0, $t3, .L80105984
/* B7CAC4 80105924 93AA0159 */ lbu $t2, 0x159($sp)
/* B7CAC8 80105928 3148007F */ andi $t0, $t2, 0x7f
/* B7CACC 8010592C 05010003 */ bgez $t0, .L8010593C
/* B7CAD0 80105930 00086083 */ sra $t4, $t0, 2
/* B7CAD4 80105934 25010003 */ addiu $at, $t0, 3
/* B7CAD8 80105938 00016083 */ sra $t4, $at, 2
.L8010593C:
/* B7CADC 8010593C 05610004 */ bgez $t3, .L80105950
/* B7CAE0 80105940 316E0007 */ andi $t6, $t3, 7
/* B7CAE4 80105944 11C00002 */ beqz $t6, .L80105950
/* B7CAE8 80105948 00000000 */ nop
/* B7CAEC 8010594C 25CEFFF8 */ addiu $t6, $t6, -8
.L80105950:
/* B7CAF0 80105950 000E7940 */ sll $t7, $t6, 5
/* B7CAF4 80105954 018F1821 */ addu $v1, $t4, $t7
/* B7CAF8 80105958 02831021 */ addu $v0, $s4, $v1
/* B7CAFC 8010595C 904D0101 */ lbu $t5, 0x101($v0)
/* B7CB00 80105960 06010004 */ bgez $s0, .L80105974
/* B7CB04 80105964 32190007 */ andi $t9, $s0, 7
/* B7CB08 80105968 13200002 */ beqz $t9, .L80105974
/* B7CB0C 8010596C 00000000 */ nop
/* B7CB10 80105970 2739FFF8 */ addiu $t9, $t9, -8
.L80105974:
/* B7CB14 80105974 24180001 */ li $t8, 1
/* B7CB18 80105978 03384804 */ sllv $t1, $t8, $t9
/* B7CB1C 8010597C 01A95025 */ or $t2, $t5, $t1
/* B7CB20 80105980 A04A0101 */ sb $t2, 0x101($v0)
.L80105984:
/* B7CB24 80105984 94810000 */ lhu $at, ($a0)
.L80105988:
/* B7CB28 80105988 24840004 */ addiu $a0, $a0, 4
/* B7CB2C 8010598C A6410000 */ sh $at, ($s2)
/* B7CB30 80105990 8E6C0060 */ lw $t4, 0x60($s3)
/* B7CB34 80105994 97AE0158 */ lhu $t6, 0x158($sp)
/* B7CB38 80105998 93AF0158 */ lbu $t7, 0x158($sp)
/* B7CB3C 8010599C 01CC082A */ slt $at, $t6, $t4
/* B7CB40 801059A0 1420001A */ bnez $at, .L80105A0C
/* B7CB44 801059A4 00000000 */ nop
/* B7CB48 801059A8 120F0018 */ beq $s0, $t7, .L80105A0C
/* B7CB4C 801059AC 93B80159 */ lbu $t8, 0x159($sp)
/* B7CB50 801059B0 3319007F */ andi $t9, $t8, 0x7f
/* B7CB54 801059B4 07210003 */ bgez $t9, .L801059C4
/* B7CB58 801059B8 00196883 */ sra $t5, $t9, 2
/* B7CB5C 801059BC 27210003 */ addiu $at, $t9, 3
/* B7CB60 801059C0 00016883 */ sra $t5, $at, 2
.L801059C4:
/* B7CB64 801059C4 05E10004 */ bgez $t7, .L801059D8
/* B7CB68 801059C8 31E90007 */ andi $t1, $t7, 7
/* B7CB6C 801059CC 11200002 */ beqz $t1, .L801059D8
/* B7CB70 801059D0 00000000 */ nop
/* B7CB74 801059D4 2529FFF8 */ addiu $t1, $t1, -8
.L801059D8:
/* B7CB78 801059D8 00095140 */ sll $t2, $t1, 5
/* B7CB7C 801059DC 01AA1821 */ addu $v1, $t5, $t2
/* B7CB80 801059E0 02831021 */ addu $v0, $s4, $v1
/* B7CB84 801059E4 90480101 */ lbu $t0, 0x101($v0)
/* B7CB88 801059E8 06010004 */ bgez $s0, .L801059FC
/* B7CB8C 801059EC 320B0007 */ andi $t3, $s0, 7
/* B7CB90 801059F0 11600002 */ beqz $t3, .L801059FC
/* B7CB94 801059F4 00000000 */ nop
/* B7CB98 801059F8 256BFFF8 */ addiu $t3, $t3, -8
.L801059FC:
/* B7CB9C 801059FC 240E0001 */ li $t6, 1
/* B7CBA0 80105A00 016E6004 */ sllv $t4, $t6, $t3
/* B7CBA4 80105A04 010CC025 */ or $t8, $t0, $t4
/* B7CBA8 80105A08 A0580101 */ sb $t8, 0x101($v0)
.L80105A0C:
/* B7CBAC 80105A0C 1496FFBC */ bne $a0, $s6, .L80105900
/* B7CBB0 80105A10 24A50004 */ addiu $a1, $a1, 4
.L80105A14:
/* B7CBB4 80105A14 926F0064 */ lbu $t7, 0x64($s3)
/* B7CBB8 80105A18 26F70001 */ addiu $s7, $s7, 1
/* B7CBBC 80105A1C 32F000FF */ andi $s0, $s7, 0xff
/* B7CBC0 80105A20 020F082A */ slt $at, $s0, $t7
/* B7CBC4 80105A24 1420FF79 */ bnez $at, .L8010580C
/* B7CBC8 80105A28 0200B825 */ move $s7, $s0
.L80105A2C:
/* B7CBCC 80105A2C 00001025 */ move $v0, $zero
/* B7CBD0 80105A30 8FBF003C */ lw $ra, 0x3c($sp)
.L80105A34:
/* B7CBD4 80105A34 8FB00018 */ lw $s0, 0x18($sp)
/* B7CBD8 80105A38 8FB1001C */ lw $s1, 0x1c($sp)
/* B7CBDC 80105A3C 8FB20020 */ lw $s2, 0x20($sp)
/* B7CBE0 80105A40 8FB30024 */ lw $s3, 0x24($sp)
/* B7CBE4 80105A44 8FB40028 */ lw $s4, 0x28($sp)
/* B7CBE8 80105A48 8FB5002C */ lw $s5, 0x2c($sp)
/* B7CBEC 80105A4C 8FB60030 */ lw $s6, 0x30($sp)
/* B7CBF0 80105A50 8FB70034 */ lw $s7, 0x34($sp)
/* B7CBF4 80105A54 8FBE0038 */ lw $fp, 0x38($sp)
/* B7CBF8 80105A58 03E00008 */ jr $ra
/* B7CBFC 80105A5C 27BD0168 */ addiu $sp, $sp, 0x168
glabel func_80105A60
/* B7CC00 80105A60 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B7CC04 80105A64 AFA5003C */ sw $a1, 0x3c($sp)
/* B7CC08 80105A68 93B8003C */ lbu $t8, 0x3c($sp)
/* B7CC0C 80105A6C AFB40028 */ sw $s4, 0x28($sp)
/* B7CC10 80105A70 93AE003D */ lbu $t6, 0x3d($sp)
/* B7CC14 80105A74 0080A025 */ move $s4, $a0
/* B7CC18 80105A78 AFBF0034 */ sw $ra, 0x34($sp)
/* B7CC1C 80105A7C AFB60030 */ sw $s6, 0x30($sp)
/* B7CC20 80105A80 AFB5002C */ sw $s5, 0x2c($sp)
/* B7CC24 80105A84 AFB30024 */ sw $s3, 0x24($sp)
/* B7CC28 80105A88 AFB20020 */ sw $s2, 0x20($sp)
/* B7CC2C 80105A8C AFB1001C */ sw $s1, 0x1c($sp)
/* B7CC30 80105A90 AFB00018 */ sw $s0, 0x18($sp)
/* B7CC34 80105A94 92890064 */ lbu $t1, 0x64($s4)
/* B7CC38 80105A98 00C09825 */ move $s3, $a2
/* B7CC3C 80105A9C 00008025 */ move $s0, $zero
/* B7CC40 80105AA0 05C10003 */ bgez $t6, .L80105AB0
/* B7CC44 80105AA4 000E7883 */ sra $t7, $t6, 2
/* B7CC48 80105AA8 25C10003 */ addiu $at, $t6, 3
/* B7CC4C 80105AAC 00017883 */ sra $t7, $at, 2
.L80105AB0:
/* B7CC50 80105AB0 07010004 */ bgez $t8, .L80105AC4
/* B7CC54 80105AB4 33190007 */ andi $t9, $t8, 7
/* B7CC58 80105AB8 13200002 */ beqz $t9, .L80105AC4
/* B7CC5C 80105ABC 00000000 */ nop
/* B7CC60 80105AC0 2739FFF8 */ addiu $t9, $t9, -8
.L80105AC4:
/* B7CC64 80105AC4 00194140 */ sll $t0, $t9, 5
/* B7CC68 80105AC8 01E8B021 */ addu $s6, $t7, $t0
/* B7CC6C 80105ACC 19200040 */ blez $t1, .L80105BD0
/* B7CC70 80105AD0 00009025 */ move $s2, $zero
/* B7CC74 80105AD4 00001025 */ move $v0, $zero
/* B7CC78 80105AD8 24150003 */ li $s5, 3
.L80105ADC:
/* B7CC7C 80105ADC 18400003 */ blez $v0, .L80105AEC
/* B7CC80 80105AE0 93AA003C */ lbu $t2, 0x3c($sp)
/* B7CC84 80105AE4 10000002 */ b .L80105AF0
/* B7CC88 80105AE8 24110001 */ li $s1, 1
.L80105AEC:
/* B7CC8C 80105AEC 8E910060 */ lw $s1, 0x60($s4)
.L80105AF0:
/* B7CC90 80105AF0 1142000C */ beq $t2, $v0, .L80105B24
/* B7CC94 80105AF4 02765821 */ addu $t3, $s3, $s6
/* B7CC98 80105AF8 916C0101 */ lbu $t4, 0x101($t3)
/* B7CC9C 80105AFC 04410004 */ bgez $v0, .L80105B10
/* B7CCA0 80105B00 304D0007 */ andi $t5, $v0, 7
/* B7CCA4 80105B04 11A00002 */ beqz $t5, .L80105B10
/* B7CCA8 80105B08 00000000 */ nop
/* B7CCAC 80105B0C 25ADFFF8 */ addiu $t5, $t5, -8
.L80105B10:
/* B7CCB0 80105B10 240E0001 */ li $t6, 1
/* B7CCB4 80105B14 01AEC004 */ sllv $t8, $t6, $t5
/* B7CCB8 80105B18 0198C824 */ and $t9, $t4, $t8
/* B7CCBC 80105B1C 53200027 */ beql $t9, $zero, .L80105BBC
/* B7CCC0 80105B20 928B0064 */ lbu $t3, 0x64($s4)
.L80105B24:
/* B7CCC4 80105B24 926F0100 */ lbu $t7, 0x100($s3)
/* B7CCC8 80105B28 02802025 */ move $a0, $s4
/* B7CCCC 80105B2C 02602825 */ move $a1, $s3
/* B7CCD0 80105B30 11E2000A */ beq $t7, $v0, .L80105B5C
/* B7CCD4 80105B34 00003025 */ move $a2, $zero
/* B7CCD8 80105B38 0C040B31 */ jal func_80102CC4
/* B7CCDC 80105B3C 324700FF */ andi $a3, $s2, 0xff
/* B7CCE0 80105B40 50400006 */ beql $v0, $zero, .L80105B5C
/* B7CCE4 80105B44 A2720100 */ sb $s2, 0x100($s3)
/* B7CCE8 80105B48 50550004 */ beql $v0, $s5, .L80105B5C
/* B7CCEC 80105B4C A2720100 */ sb $s2, 0x100($s3)
/* B7CCF0 80105B50 10000021 */ b .L80105BD8
/* B7CCF4 80105B54 8FBF0034 */ lw $ra, 0x34($sp)
/* B7CCF8 80105B58 A2720100 */ sb $s2, 0x100($s3)
.L80105B5C:
/* B7CCFC 80105B5C 2A010002 */ slti $at, $s0, 2
/* B7CD00 80105B60 10200010 */ beqz $at, .L80105BA4
/* B7CD04 80105B64 2A210080 */ slti $at, $s1, 0x80
/* B7CD08 80105B68 1020000E */ beqz $at, .L80105BA4
/* B7CD0C 80105B6C 00111040 */ sll $v0, $s1, 1
/* B7CD10 80105B70 02621821 */ addu $v1, $s3, $v0
/* B7CD14 80105B74 97A8003C */ lhu $t0, 0x3c($sp)
.L80105B78:
/* B7CD18 80105B78 94690000 */ lhu $t1, ($v1)
/* B7CD1C 80105B7C 24420002 */ addiu $v0, $v0, 2
/* B7CD20 80105B80 55090003 */ bnel $t0, $t1, .L80105B90
/* B7CD24 80105B84 2A010002 */ slti $at, $s0, 2
/* B7CD28 80105B88 26100001 */ addiu $s0, $s0, 1
/* B7CD2C 80105B8C 2A010002 */ slti $at, $s0, 2
.L80105B90:
/* B7CD30 80105B90 10200004 */ beqz $at, .L80105BA4
/* B7CD34 80105B94 24630002 */ addiu $v1, $v1, 2
/* B7CD38 80105B98 28410100 */ slti $at, $v0, 0x100
/* B7CD3C 80105B9C 5420FFF6 */ bnezl $at, .L80105B78
/* B7CD40 80105BA0 97A8003C */ lhu $t0, 0x3c($sp)
.L80105BA4:
/* B7CD44 80105BA4 2A010002 */ slti $at, $s0, 2
/* B7CD48 80105BA8 54200004 */ bnezl $at, .L80105BBC
/* B7CD4C 80105BAC 928B0064 */ lbu $t3, 0x64($s4)
/* B7CD50 80105BB0 10000008 */ b .L80105BD4
/* B7CD54 80105BB4 24020002 */ li $v0, 2
/* B7CD58 80105BB8 928B0064 */ lbu $t3, 0x64($s4)
.L80105BBC:
/* B7CD5C 80105BBC 26520001 */ addiu $s2, $s2, 1
/* B7CD60 80105BC0 324200FF */ andi $v0, $s2, 0xff
/* B7CD64 80105BC4 004B082A */ slt $at, $v0, $t3
/* B7CD68 80105BC8 1420FFC4 */ bnez $at, .L80105ADC
/* B7CD6C 80105BCC 00409025 */ move $s2, $v0
.L80105BD0:
/* B7CD70 80105BD0 02001025 */ move $v0, $s0
.L80105BD4:
/* B7CD74 80105BD4 8FBF0034 */ lw $ra, 0x34($sp)
.L80105BD8:
/* B7CD78 80105BD8 8FB00018 */ lw $s0, 0x18($sp)
/* B7CD7C 80105BDC 8FB1001C */ lw $s1, 0x1c($sp)
/* B7CD80 80105BE0 8FB20020 */ lw $s2, 0x20($sp)
/* B7CD84 80105BE4 8FB30024 */ lw $s3, 0x24($sp)
/* B7CD88 80105BE8 8FB40028 */ lw $s4, 0x28($sp)
/* B7CD8C 80105BEC 8FB5002C */ lw $s5, 0x2c($sp)
/* B7CD90 80105BF0 8FB60030 */ lw $s6, 0x30($sp)
/* B7CD94 80105BF4 03E00008 */ jr $ra
/* B7CD98 80105BF8 27BD0038 */ addiu $sp, $sp, 0x38