prime/asm/Kyoto/zlib/infutil.s

138 lines
5.5 KiB
ArmAsm
Raw Normal View History

2022-04-16 07:50:32 +00:00
.include "macros.inc"
2022-04-18 04:19:18 +00:00
.section .data
.balign 8
2022-04-18 04:19:18 +00:00
2022-07-29 05:03:24 +00:00
.global inflate_mask
inflate_mask:
2022-04-18 04:19:18 +00:00
# ROM: 0x3EC5C8
.4byte 0
.4byte 0x00000001
.4byte 0x00000003
.4byte 0x00000007
.4byte 0x0000000F
.4byte 0x0000001F
.4byte 0x0000003F
.4byte 0x0000007F
.4byte 0x000000FF
.4byte 0x000001FF
.4byte 0x000003FF
.4byte 0x000007FF
.4byte 0x00000FFF
.4byte 0x00001FFF
.4byte 0x00003FFF
.4byte 0x00007FFF
.4byte 0x0000FFFF
.4byte 0
2022-07-14 05:36:41 +00:00
.section .text, "ax"
2022-04-16 07:50:32 +00:00
.global inflate_flush
inflate_flush:
/* 8034440C 0034136C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80344410 00341370 7C 08 02 A6 */ mflr r0
/* 80344414 00341374 90 01 00 24 */ stw r0, 0x24(r1)
/* 80344418 00341378 BF 41 00 08 */ stmw r26, 8(r1)
/* 8034441C 0034137C 7C 7B 1B 78 */ mr r27, r3
/* 80344420 00341380 7C 9C 23 78 */ mr r28, r4
/* 80344424 00341384 7C BD 2B 78 */ mr r29, r5
/* 80344428 00341388 83 C3 00 30 */ lwz r30, 0x30(r3)
/* 8034442C 0034138C 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80344430 00341390 83 E4 00 0C */ lwz r31, 0xc(r4)
/* 80344434 00341394 7C 1E 00 40 */ cmplw r30, r0
/* 80344438 00341398 41 81 00 08 */ bgt lbl_80344440
/* 8034443C 0034139C 48 00 00 08 */ b lbl_80344444
lbl_80344440:
/* 80344440 003413A0 80 1B 00 2C */ lwz r0, 0x2c(r27)
lbl_80344444:
/* 80344444 003413A4 80 7C 00 10 */ lwz r3, 0x10(r28)
/* 80344448 003413A8 7F 5E 00 50 */ subf r26, r30, r0
/* 8034444C 003413AC 7C 1A 18 40 */ cmplw r26, r3
/* 80344450 003413B0 40 81 00 08 */ ble lbl_80344458
/* 80344454 003413B4 7C 7A 1B 78 */ mr r26, r3
lbl_80344458:
/* 80344458 003413B8 28 1A 00 00 */ cmplwi r26, 0
/* 8034445C 003413BC 41 82 00 10 */ beq lbl_8034446C
/* 80344460 003413C0 2C 1D FF FB */ cmpwi r29, -5
/* 80344464 003413C4 40 82 00 08 */ bne lbl_8034446C
/* 80344468 003413C8 3B A0 00 00 */ li r29, 0
lbl_8034446C:
/* 8034446C 003413CC 80 1C 00 10 */ lwz r0, 0x10(r28)
/* 80344470 003413D0 7C 1A 00 50 */ subf r0, r26, r0
/* 80344474 003413D4 90 1C 00 10 */ stw r0, 0x10(r28)
/* 80344478 003413D8 80 1C 00 14 */ lwz r0, 0x14(r28)
/* 8034447C 003413DC 7C 00 D2 14 */ add r0, r0, r26
/* 80344480 003413E0 90 1C 00 14 */ stw r0, 0x14(r28)
/* 80344484 003413E4 81 9B 00 38 */ lwz r12, 0x38(r27)
/* 80344488 003413E8 28 0C 00 00 */ cmplwi r12, 0
/* 8034448C 003413EC 41 82 00 20 */ beq lbl_803444AC
/* 80344490 003413F0 7F C4 F3 78 */ mr r4, r30
/* 80344494 003413F4 7F 45 D3 78 */ mr r5, r26
/* 80344498 003413F8 80 7B 00 3C */ lwz r3, 0x3c(r27)
/* 8034449C 003413FC 7D 89 03 A6 */ mtctr r12
2022-07-14 05:48:03 +00:00
/* 803444A0 00341400 4E 80 04 21 */ bctrl
2022-04-16 07:50:32 +00:00
/* 803444A4 00341404 90 7B 00 3C */ stw r3, 0x3c(r27)
/* 803444A8 00341408 90 7C 00 30 */ stw r3, 0x30(r28)
lbl_803444AC:
/* 803444AC 0034140C 7F E3 FB 78 */ mr r3, r31
/* 803444B0 00341410 7F C4 F3 78 */ mr r4, r30
/* 803444B4 00341414 7F 45 D3 78 */ mr r5, r26
/* 803444B8 00341418 4B CB EF D9 */ bl memcpy
/* 803444BC 0034141C 80 7B 00 2C */ lwz r3, 0x2c(r27)
/* 803444C0 00341420 7F DE D2 14 */ add r30, r30, r26
/* 803444C4 00341424 7F FF D2 14 */ add r31, r31, r26
/* 803444C8 00341428 7C 1E 18 40 */ cmplw r30, r3
/* 803444CC 0034142C 40 82 00 A0 */ bne lbl_8034456C
/* 803444D0 00341430 80 1B 00 34 */ lwz r0, 0x34(r27)
/* 803444D4 00341434 80 9B 00 28 */ lwz r4, 0x28(r27)
/* 803444D8 00341438 7C 00 18 40 */ cmplw r0, r3
/* 803444DC 0034143C 7C 9E 23 78 */ mr r30, r4
/* 803444E0 00341440 40 82 00 08 */ bne lbl_803444E8
/* 803444E4 00341444 90 9B 00 34 */ stw r4, 0x34(r27)
lbl_803444E8:
/* 803444E8 00341448 80 1B 00 34 */ lwz r0, 0x34(r27)
/* 803444EC 0034144C 80 7C 00 10 */ lwz r3, 0x10(r28)
/* 803444F0 00341450 7F 5E 00 50 */ subf r26, r30, r0
/* 803444F4 00341454 7C 1A 18 40 */ cmplw r26, r3
/* 803444F8 00341458 40 81 00 08 */ ble lbl_80344500
/* 803444FC 0034145C 7C 7A 1B 78 */ mr r26, r3
lbl_80344500:
/* 80344500 00341460 28 1A 00 00 */ cmplwi r26, 0
/* 80344504 00341464 41 82 00 10 */ beq lbl_80344514
/* 80344508 00341468 2C 1D FF FB */ cmpwi r29, -5
/* 8034450C 0034146C 40 82 00 08 */ bne lbl_80344514
/* 80344510 00341470 3B A0 00 00 */ li r29, 0
lbl_80344514:
/* 80344514 00341474 80 1C 00 10 */ lwz r0, 0x10(r28)
/* 80344518 00341478 7C 1A 00 50 */ subf r0, r26, r0
/* 8034451C 0034147C 90 1C 00 10 */ stw r0, 0x10(r28)
/* 80344520 00341480 80 1C 00 14 */ lwz r0, 0x14(r28)
/* 80344524 00341484 7C 00 D2 14 */ add r0, r0, r26
/* 80344528 00341488 90 1C 00 14 */ stw r0, 0x14(r28)
/* 8034452C 0034148C 81 9B 00 38 */ lwz r12, 0x38(r27)
/* 80344530 00341490 28 0C 00 00 */ cmplwi r12, 0
/* 80344534 00341494 41 82 00 20 */ beq lbl_80344554
/* 80344538 00341498 7F C4 F3 78 */ mr r4, r30
/* 8034453C 0034149C 7F 45 D3 78 */ mr r5, r26
/* 80344540 003414A0 80 7B 00 3C */ lwz r3, 0x3c(r27)
/* 80344544 003414A4 7D 89 03 A6 */ mtctr r12
2022-07-14 05:48:03 +00:00
/* 80344548 003414A8 4E 80 04 21 */ bctrl
2022-04-16 07:50:32 +00:00
/* 8034454C 003414AC 90 7B 00 3C */ stw r3, 0x3c(r27)
/* 80344550 003414B0 90 7C 00 30 */ stw r3, 0x30(r28)
lbl_80344554:
/* 80344554 003414B4 7F E3 FB 78 */ mr r3, r31
/* 80344558 003414B8 7F C4 F3 78 */ mr r4, r30
/* 8034455C 003414BC 7F 45 D3 78 */ mr r5, r26
/* 80344560 003414C0 4B CB EF 31 */ bl memcpy
/* 80344564 003414C4 7F FF D2 14 */ add r31, r31, r26
/* 80344568 003414C8 7F DE D2 14 */ add r30, r30, r26
lbl_8034456C:
/* 8034456C 003414CC 93 FC 00 0C */ stw r31, 0xc(r28)
/* 80344570 003414D0 7F A3 EB 78 */ mr r3, r29
/* 80344574 003414D4 93 DB 00 30 */ stw r30, 0x30(r27)
/* 80344578 003414D8 BB 41 00 08 */ lmw r26, 8(r1)
/* 8034457C 003414DC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80344580 003414E0 7C 08 03 A6 */ mtlr r0
/* 80344584 003414E4 38 21 00 20 */ addi r1, r1, 0x20
2022-07-14 05:48:03 +00:00
/* 80344588 003414E8 4E 80 00 20 */ blr