mirror of https://github.com/zeldaret/tp.git
				
				
				
			
		
			
				
	
	
		
			365 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			365 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| .include "macros.inc"
 | |
| 
 | |
| .section .text, "ax" # 80358c90
 | |
| 
 | |
| 
 | |
| .global UpdateIconOffsets
 | |
| UpdateIconOffsets:
 | |
| /* 80358C90 00355BD0  81 03 00 2C */	lwz r8, 0x2c(r3)
 | |
| /* 80358C94 00355BD4  3C 08 00 01 */	addis r0, r8, 1
 | |
| /* 80358C98 00355BD8  28 00 FF FF */	cmplwi r0, 0xffff
 | |
| /* 80358C9C 00355BDC  40 82 00 18 */	bne lbl_80358CB4
 | |
| /* 80358CA0 00355BE0  38 00 00 00 */	li r0, 0
 | |
| /* 80358CA4 00355BE4  98 04 00 2E */	stb r0, 0x2e(r4)
 | |
| /* 80358CA8 00355BE8  39 00 00 00 */	li r8, 0
 | |
| /* 80358CAC 00355BEC  B0 04 00 34 */	sth r0, 0x34(r4)
 | |
| /* 80358CB0 00355BF0  B0 04 00 36 */	sth r0, 0x36(r4)
 | |
| lbl_80358CB4:
 | |
| /* 80358CB4 00355BF4  88 03 00 07 */	lbz r0, 7(r3)
 | |
| /* 80358CB8 00355BF8  39 20 00 00 */	li r9, 0
 | |
| /* 80358CBC 00355BFC  54 00 07 BE */	clrlwi r0, r0, 0x1e
 | |
| /* 80358CC0 00355C00  2C 00 00 02 */	cmpwi r0, 2
 | |
| /* 80358CC4 00355C04  41 82 00 28 */	beq lbl_80358CEC
 | |
| /* 80358CC8 00355C08  40 80 00 38 */	bge lbl_80358D00
 | |
| /* 80358CCC 00355C0C  2C 00 00 01 */	cmpwi r0, 1
 | |
| /* 80358CD0 00355C10  40 80 00 08 */	bge lbl_80358CD8
 | |
| /* 80358CD4 00355C14  48 00 00 2C */	b lbl_80358D00
 | |
| lbl_80358CD8:
 | |
| /* 80358CD8 00355C18  91 04 00 3C */	stw r8, 0x3c(r4)
 | |
| /* 80358CDC 00355C1C  38 08 0C 00 */	addi r0, r8, 0xc00
 | |
| /* 80358CE0 00355C20  39 08 0E 00 */	addi r8, r8, 0xe00
 | |
| /* 80358CE4 00355C24  90 04 00 40 */	stw r0, 0x40(r4)
 | |
| /* 80358CE8 00355C28  48 00 00 24 */	b lbl_80358D0C
 | |
| lbl_80358CEC:
 | |
| /* 80358CEC 00355C2C  91 04 00 3C */	stw r8, 0x3c(r4)
 | |
| /* 80358CF0 00355C30  38 00 FF FF */	li r0, -1
 | |
| /* 80358CF4 00355C34  39 08 18 00 */	addi r8, r8, 0x1800
 | |
| /* 80358CF8 00355C38  90 04 00 40 */	stw r0, 0x40(r4)
 | |
| /* 80358CFC 00355C3C  48 00 00 10 */	b lbl_80358D0C
 | |
| lbl_80358D00:
 | |
| /* 80358D00 00355C40  38 00 FF FF */	li r0, -1
 | |
| /* 80358D04 00355C44  90 04 00 3C */	stw r0, 0x3c(r4)
 | |
| /* 80358D08 00355C48  90 04 00 40 */	stw r0, 0x40(r4)
 | |
| lbl_80358D0C:
 | |
| /* 80358D0C 00355C4C  38 00 00 02 */	li r0, 2
 | |
| /* 80358D10 00355C50  7C 09 03 A6 */	mtctr r0
 | |
| /* 80358D14 00355C54  38 E4 00 00 */	addi r7, r4, 0
 | |
| /* 80358D18 00355C58  39 40 00 00 */	li r10, 0
 | |
| /* 80358D1C 00355C5C  38 C0 00 00 */	li r6, 0
 | |
| /* 80358D20 00355C60  38 00 FF FF */	li r0, -1
 | |
| lbl_80358D24:
 | |
| /* 80358D24 00355C64  A0 A3 00 30 */	lhz r5, 0x30(r3)
 | |
| /* 80358D28 00355C68  7C A5 36 30 */	sraw r5, r5, r6
 | |
| /* 80358D2C 00355C6C  54 A5 07 BE */	clrlwi r5, r5, 0x1e
 | |
| /* 80358D30 00355C70  2C 05 00 02 */	cmpwi r5, 2
 | |
| /* 80358D34 00355C74  41 82 00 24 */	beq lbl_80358D58
 | |
| /* 80358D38 00355C78  40 80 00 2C */	bge lbl_80358D64
 | |
| /* 80358D3C 00355C7C  2C 05 00 01 */	cmpwi r5, 1
 | |
| /* 80358D40 00355C80  40 80 00 08 */	bge lbl_80358D48
 | |
| /* 80358D44 00355C84  48 00 00 20 */	b lbl_80358D64
 | |
| lbl_80358D48:
 | |
| /* 80358D48 00355C88  91 07 00 44 */	stw r8, 0x44(r7)
 | |
| /* 80358D4C 00355C8C  39 20 00 01 */	li r9, 1
 | |
| /* 80358D50 00355C90  39 08 04 00 */	addi r8, r8, 0x400
 | |
| /* 80358D54 00355C94  48 00 00 14 */	b lbl_80358D68
 | |
| lbl_80358D58:
 | |
| /* 80358D58 00355C98  91 07 00 44 */	stw r8, 0x44(r7)
 | |
| /* 80358D5C 00355C9C  39 08 08 00 */	addi r8, r8, 0x800
 | |
| /* 80358D60 00355CA0  48 00 00 08 */	b lbl_80358D68
 | |
| lbl_80358D64:
 | |
| /* 80358D64 00355CA4  90 07 00 44 */	stw r0, 0x44(r7)
 | |
| lbl_80358D68:
 | |
| /* 80358D68 00355CA8  A0 A3 00 30 */	lhz r5, 0x30(r3)
 | |
| /* 80358D6C 00355CAC  38 C6 00 02 */	addi r6, r6, 2
 | |
| /* 80358D70 00355CB0  38 E7 00 04 */	addi r7, r7, 4
 | |
| /* 80358D74 00355CB4  7C A5 36 30 */	sraw r5, r5, r6
 | |
| /* 80358D78 00355CB8  54 A5 07 BE */	clrlwi r5, r5, 0x1e
 | |
| /* 80358D7C 00355CBC  2C 05 00 02 */	cmpwi r5, 2
 | |
| /* 80358D80 00355CC0  41 82 00 24 */	beq lbl_80358DA4
 | |
| /* 80358D84 00355CC4  40 80 00 2C */	bge lbl_80358DB0
 | |
| /* 80358D88 00355CC8  2C 05 00 01 */	cmpwi r5, 1
 | |
| /* 80358D8C 00355CCC  40 80 00 08 */	bge lbl_80358D94
 | |
| /* 80358D90 00355CD0  48 00 00 20 */	b lbl_80358DB0
 | |
| lbl_80358D94:
 | |
| /* 80358D94 00355CD4  91 07 00 44 */	stw r8, 0x44(r7)
 | |
| /* 80358D98 00355CD8  39 20 00 01 */	li r9, 1
 | |
| /* 80358D9C 00355CDC  39 08 04 00 */	addi r8, r8, 0x400
 | |
| /* 80358DA0 00355CE0  48 00 00 14 */	b lbl_80358DB4
 | |
| lbl_80358DA4:
 | |
| /* 80358DA4 00355CE4  91 07 00 44 */	stw r8, 0x44(r7)
 | |
| /* 80358DA8 00355CE8  39 08 08 00 */	addi r8, r8, 0x800
 | |
| /* 80358DAC 00355CEC  48 00 00 08 */	b lbl_80358DB4
 | |
| lbl_80358DB0:
 | |
| /* 80358DB0 00355CF0  90 07 00 44 */	stw r0, 0x44(r7)
 | |
| lbl_80358DB4:
 | |
| /* 80358DB4 00355CF4  A0 A3 00 30 */	lhz r5, 0x30(r3)
 | |
| /* 80358DB8 00355CF8  38 C6 00 02 */	addi r6, r6, 2
 | |
| /* 80358DBC 00355CFC  39 4A 00 01 */	addi r10, r10, 1
 | |
| /* 80358DC0 00355D00  7C A5 36 30 */	sraw r5, r5, r6
 | |
| /* 80358DC4 00355D04  54 A5 07 BE */	clrlwi r5, r5, 0x1e
 | |
| /* 80358DC8 00355D08  2C 05 00 02 */	cmpwi r5, 2
 | |
| /* 80358DCC 00355D0C  38 E7 00 04 */	addi r7, r7, 4
 | |
| /* 80358DD0 00355D10  41 82 00 24 */	beq lbl_80358DF4
 | |
| /* 80358DD4 00355D14  40 80 00 2C */	bge lbl_80358E00
 | |
| /* 80358DD8 00355D18  2C 05 00 01 */	cmpwi r5, 1
 | |
| /* 80358DDC 00355D1C  40 80 00 08 */	bge lbl_80358DE4
 | |
| /* 80358DE0 00355D20  48 00 00 20 */	b lbl_80358E00
 | |
| lbl_80358DE4:
 | |
| /* 80358DE4 00355D24  91 07 00 44 */	stw r8, 0x44(r7)
 | |
| /* 80358DE8 00355D28  39 20 00 01 */	li r9, 1
 | |
| /* 80358DEC 00355D2C  39 08 04 00 */	addi r8, r8, 0x400
 | |
| /* 80358DF0 00355D30  48 00 00 14 */	b lbl_80358E04
 | |
| lbl_80358DF4:
 | |
| /* 80358DF4 00355D34  91 07 00 44 */	stw r8, 0x44(r7)
 | |
| /* 80358DF8 00355D38  39 08 08 00 */	addi r8, r8, 0x800
 | |
| /* 80358DFC 00355D3C  48 00 00 08 */	b lbl_80358E04
 | |
| lbl_80358E00:
 | |
| /* 80358E00 00355D40  90 07 00 44 */	stw r0, 0x44(r7)
 | |
| lbl_80358E04:
 | |
| /* 80358E04 00355D44  A0 A3 00 30 */	lhz r5, 0x30(r3)
 | |
| /* 80358E08 00355D48  38 C6 00 02 */	addi r6, r6, 2
 | |
| /* 80358E0C 00355D4C  39 4A 00 01 */	addi r10, r10, 1
 | |
| /* 80358E10 00355D50  7C A5 36 30 */	sraw r5, r5, r6
 | |
| /* 80358E14 00355D54  54 A5 07 BE */	clrlwi r5, r5, 0x1e
 | |
| /* 80358E18 00355D58  2C 05 00 02 */	cmpwi r5, 2
 | |
| /* 80358E1C 00355D5C  38 E7 00 04 */	addi r7, r7, 4
 | |
| /* 80358E20 00355D60  41 82 00 24 */	beq lbl_80358E44
 | |
| /* 80358E24 00355D64  40 80 00 2C */	bge lbl_80358E50
 | |
| /* 80358E28 00355D68  2C 05 00 01 */	cmpwi r5, 1
 | |
| /* 80358E2C 00355D6C  40 80 00 08 */	bge lbl_80358E34
 | |
| /* 80358E30 00355D70  48 00 00 20 */	b lbl_80358E50
 | |
| lbl_80358E34:
 | |
| /* 80358E34 00355D74  91 07 00 44 */	stw r8, 0x44(r7)
 | |
| /* 80358E38 00355D78  39 20 00 01 */	li r9, 1
 | |
| /* 80358E3C 00355D7C  39 08 04 00 */	addi r8, r8, 0x400
 | |
| /* 80358E40 00355D80  48 00 00 14 */	b lbl_80358E54
 | |
| lbl_80358E44:
 | |
| /* 80358E44 00355D84  91 07 00 44 */	stw r8, 0x44(r7)
 | |
| /* 80358E48 00355D88  39 08 08 00 */	addi r8, r8, 0x800
 | |
| /* 80358E4C 00355D8C  48 00 00 08 */	b lbl_80358E54
 | |
| lbl_80358E50:
 | |
| /* 80358E50 00355D90  90 07 00 44 */	stw r0, 0x44(r7)
 | |
| lbl_80358E54:
 | |
| /* 80358E54 00355D94  38 C6 00 02 */	addi r6, r6, 2
 | |
| /* 80358E58 00355D98  38 E7 00 04 */	addi r7, r7, 4
 | |
| /* 80358E5C 00355D9C  39 4A 00 01 */	addi r10, r10, 1
 | |
| /* 80358E60 00355DA0  42 00 FE C4 */	bdnz lbl_80358D24
 | |
| /* 80358E64 00355DA4  2C 09 00 00 */	cmpwi r9, 0
 | |
| /* 80358E68 00355DA8  41 82 00 10 */	beq lbl_80358E78
 | |
| /* 80358E6C 00355DAC  91 04 00 64 */	stw r8, 0x64(r4)
 | |
| /* 80358E70 00355DB0  39 08 02 00 */	addi r8, r8, 0x200
 | |
| /* 80358E74 00355DB4  48 00 00 0C */	b lbl_80358E80
 | |
| lbl_80358E78:
 | |
| /* 80358E78 00355DB8  38 00 FF FF */	li r0, -1
 | |
| /* 80358E7C 00355DBC  90 04 00 64 */	stw r0, 0x64(r4)
 | |
| lbl_80358E80:
 | |
| /* 80358E80 00355DC0  91 04 00 68 */	stw r8, 0x68(r4)
 | |
| /* 80358E84 00355DC4  4E 80 00 20 */	blr 
 | |
| 
 | |
| .global CARDGetStatus
 | |
| CARDGetStatus:
 | |
| /* 80358E88 00355DC8  7C 08 02 A6 */	mflr r0
 | |
| /* 80358E8C 00355DCC  90 01 00 04 */	stw r0, 4(r1)
 | |
| /* 80358E90 00355DD0  94 21 FF D8 */	stwu r1, -0x28(r1)
 | |
| /* 80358E94 00355DD4  93 E1 00 24 */	stw r31, 0x24(r1)
 | |
| /* 80358E98 00355DD8  3B E5 00 00 */	addi r31, r5, 0
 | |
| /* 80358E9C 00355DDC  93 C1 00 20 */	stw r30, 0x20(r1)
 | |
| /* 80358EA0 00355DE0  93 A1 00 1C */	stw r29, 0x1c(r1)
 | |
| /* 80358EA4 00355DE4  7C 9D 23 79 */	or. r29, r4, r4
 | |
| /* 80358EA8 00355DE8  41 80 00 0C */	blt lbl_80358EB4
 | |
| /* 80358EAC 00355DEC  2C 1D 00 7F */	cmpwi r29, 0x7f
 | |
| /* 80358EB0 00355DF0  41 80 00 0C */	blt lbl_80358EBC
 | |
| lbl_80358EB4:
 | |
| /* 80358EB4 00355DF4  38 60 FF 80 */	li r3, -128
 | |
| /* 80358EB8 00355DF8  48 00 00 C8 */	b lbl_80358F80
 | |
| lbl_80358EBC:
 | |
| /* 80358EBC 00355DFC  38 81 00 14 */	addi r4, r1, 0x14
 | |
| /* 80358EC0 00355E00  4B FF AC F5 */	bl __CARDGetControlBlock
 | |
| /* 80358EC4 00355E04  2C 03 00 00 */	cmpwi r3, 0
 | |
| /* 80358EC8 00355E08  40 80 00 08 */	bge lbl_80358ED0
 | |
| /* 80358ECC 00355E0C  48 00 00 B4 */	b lbl_80358F80
 | |
| lbl_80358ED0:
 | |
| /* 80358ED0 00355E10  80 61 00 14 */	lwz r3, 0x14(r1)
 | |
| /* 80358ED4 00355E14  4B FF C8 A9 */	bl __CARDGetDirBlock
 | |
| /* 80358ED8 00355E18  57 A0 30 32 */	slwi r0, r29, 6
 | |
| /* 80358EDC 00355E1C  7F A3 02 14 */	add r29, r3, r0
 | |
| /* 80358EE0 00355E20  80 61 00 14 */	lwz r3, 0x14(r1)
 | |
| /* 80358EE4 00355E24  7F A4 EB 78 */	mr r4, r29
 | |
| /* 80358EE8 00355E28  4B FF EF BD */	bl __CARDIsReadable
 | |
| /* 80358EEC 00355E2C  7C 7E 1B 79 */	or. r30, r3, r3
 | |
| /* 80358EF0 00355E30  41 80 00 84 */	blt lbl_80358F74
 | |
| /* 80358EF4 00355E34  38 9D 00 00 */	addi r4, r29, 0
 | |
| /* 80358EF8 00355E38  38 7F 00 28 */	addi r3, r31, 0x28
 | |
| /* 80358EFC 00355E3C  38 A0 00 04 */	li r5, 4
 | |
| /* 80358F00 00355E40  4B CA A6 41 */	bl memcpy
 | |
| /* 80358F04 00355E44  38 7F 00 2C */	addi r3, r31, 0x2c
 | |
| /* 80358F08 00355E48  38 9D 00 04 */	addi r4, r29, 4
 | |
| /* 80358F0C 00355E4C  38 A0 00 02 */	li r5, 2
 | |
| /* 80358F10 00355E50  4B CA A6 31 */	bl memcpy
 | |
| /* 80358F14 00355E54  80 A1 00 14 */	lwz r5, 0x14(r1)
 | |
| /* 80358F18 00355E58  7F E3 FB 78 */	mr r3, r31
 | |
| /* 80358F1C 00355E5C  A0 DD 00 38 */	lhz r6, 0x38(r29)
 | |
| /* 80358F20 00355E60  38 9D 00 08 */	addi r4, r29, 8
 | |
| /* 80358F24 00355E64  80 05 00 0C */	lwz r0, 0xc(r5)
 | |
| /* 80358F28 00355E68  38 A0 00 20 */	li r5, 0x20
 | |
| /* 80358F2C 00355E6C  7C 06 01 D6 */	mullw r0, r6, r0
 | |
| /* 80358F30 00355E70  90 1F 00 20 */	stw r0, 0x20(r31)
 | |
| /* 80358F34 00355E74  4B CA A6 0D */	bl memcpy
 | |
| /* 80358F38 00355E78  80 1D 00 28 */	lwz r0, 0x28(r29)
 | |
| /* 80358F3C 00355E7C  38 7D 00 00 */	addi r3, r29, 0
 | |
| /* 80358F40 00355E80  38 9F 00 00 */	addi r4, r31, 0
 | |
| /* 80358F44 00355E84  90 1F 00 24 */	stw r0, 0x24(r31)
 | |
| /* 80358F48 00355E88  88 1D 00 07 */	lbz r0, 7(r29)
 | |
| /* 80358F4C 00355E8C  98 1F 00 2E */	stb r0, 0x2e(r31)
 | |
| /* 80358F50 00355E90  80 1D 00 2C */	lwz r0, 0x2c(r29)
 | |
| /* 80358F54 00355E94  90 1F 00 30 */	stw r0, 0x30(r31)
 | |
| /* 80358F58 00355E98  A0 1D 00 30 */	lhz r0, 0x30(r29)
 | |
| /* 80358F5C 00355E9C  B0 1F 00 34 */	sth r0, 0x34(r31)
 | |
| /* 80358F60 00355EA0  A0 1D 00 32 */	lhz r0, 0x32(r29)
 | |
| /* 80358F64 00355EA4  B0 1F 00 36 */	sth r0, 0x36(r31)
 | |
| /* 80358F68 00355EA8  80 1D 00 3C */	lwz r0, 0x3c(r29)
 | |
| /* 80358F6C 00355EAC  90 1F 00 38 */	stw r0, 0x38(r31)
 | |
| /* 80358F70 00355EB0  4B FF FD 21 */	bl UpdateIconOffsets
 | |
| lbl_80358F74:
 | |
| /* 80358F74 00355EB4  80 61 00 14 */	lwz r3, 0x14(r1)
 | |
| /* 80358F78 00355EB8  7F C4 F3 78 */	mr r4, r30
 | |
| /* 80358F7C 00355EBC  4B FF AC F1 */	bl __CARDPutControlBlock
 | |
| lbl_80358F80:
 | |
| /* 80358F80 00355EC0  80 01 00 2C */	lwz r0, 0x2c(r1)
 | |
| /* 80358F84 00355EC4  83 E1 00 24 */	lwz r31, 0x24(r1)
 | |
| /* 80358F88 00355EC8  83 C1 00 20 */	lwz r30, 0x20(r1)
 | |
| /* 80358F8C 00355ECC  83 A1 00 1C */	lwz r29, 0x1c(r1)
 | |
| /* 80358F90 00355ED0  38 21 00 28 */	addi r1, r1, 0x28
 | |
| /* 80358F94 00355ED4  7C 08 03 A6 */	mtlr r0
 | |
| /* 80358F98 00355ED8  4E 80 00 20 */	blr 
 | |
| 
 | |
| .global CARDSetStatusAsync
 | |
| CARDSetStatusAsync:
 | |
| /* 80358F9C 00355EDC  7C 08 02 A6 */	mflr r0
 | |
| /* 80358FA0 00355EE0  90 01 00 04 */	stw r0, 4(r1)
 | |
| /* 80358FA4 00355EE4  94 21 FF D0 */	stwu r1, -0x30(r1)
 | |
| /* 80358FA8 00355EE8  93 E1 00 2C */	stw r31, 0x2c(r1)
 | |
| /* 80358FAC 00355EEC  7C 9F 23 79 */	or. r31, r4, r4
 | |
| /* 80358FB0 00355EF0  93 C1 00 28 */	stw r30, 0x28(r1)
 | |
| /* 80358FB4 00355EF4  3B C6 00 00 */	addi r30, r6, 0
 | |
| /* 80358FB8 00355EF8  93 A1 00 24 */	stw r29, 0x24(r1)
 | |
| /* 80358FBC 00355EFC  3B A5 00 00 */	addi r29, r5, 0
 | |
| /* 80358FC0 00355F00  93 81 00 20 */	stw r28, 0x20(r1)
 | |
| /* 80358FC4 00355F04  3B 83 00 00 */	addi r28, r3, 0
 | |
| /* 80358FC8 00355F08  41 80 00 40 */	blt lbl_80359008
 | |
| /* 80358FCC 00355F0C  2C 1F 00 7F */	cmpwi r31, 0x7f
 | |
| /* 80358FD0 00355F10  40 80 00 38 */	bge lbl_80359008
 | |
| /* 80358FD4 00355F14  80 7D 00 30 */	lwz r3, 0x30(r29)
 | |
| /* 80358FD8 00355F18  3C 03 00 01 */	addis r0, r3, 1
 | |
| /* 80358FDC 00355F1C  28 00 FF FF */	cmplwi r0, 0xffff
 | |
| /* 80358FE0 00355F20  41 82 00 0C */	beq lbl_80358FEC
 | |
| /* 80358FE4 00355F24  28 03 02 00 */	cmplwi r3, 0x200
 | |
| /* 80358FE8 00355F28  40 80 00 20 */	bge lbl_80359008
 | |
| lbl_80358FEC:
 | |
| /* 80358FEC 00355F2C  80 7D 00 38 */	lwz r3, 0x38(r29)
 | |
| /* 80358FF0 00355F30  3C 03 00 01 */	addis r0, r3, 1
 | |
| /* 80358FF4 00355F34  28 00 FF FF */	cmplwi r0, 0xffff
 | |
| /* 80358FF8 00355F38  41 82 00 18 */	beq lbl_80359010
 | |
| /* 80358FFC 00355F3C  54 60 04 FE */	clrlwi r0, r3, 0x13
 | |
| /* 80359000 00355F40  28 00 1F C0 */	cmplwi r0, 0x1fc0
 | |
| /* 80359004 00355F44  40 81 00 0C */	ble lbl_80359010
 | |
| lbl_80359008:
 | |
| /* 80359008 00355F48  38 60 FF 80 */	li r3, -128
 | |
| /* 8035900C 00355F4C  48 00 00 E4 */	b lbl_803590F0
 | |
| lbl_80359010:
 | |
| /* 80359010 00355F50  38 7C 00 00 */	addi r3, r28, 0
 | |
| /* 80359014 00355F54  38 81 00 18 */	addi r4, r1, 0x18
 | |
| /* 80359018 00355F58  4B FF AB 9D */	bl __CARDGetControlBlock
 | |
| /* 8035901C 00355F5C  2C 03 00 00 */	cmpwi r3, 0
 | |
| /* 80359020 00355F60  40 80 00 08 */	bge lbl_80359028
 | |
| /* 80359024 00355F64  48 00 00 CC */	b lbl_803590F0
 | |
| lbl_80359028:
 | |
| /* 80359028 00355F68  80 61 00 18 */	lwz r3, 0x18(r1)
 | |
| /* 8035902C 00355F6C  4B FF C7 51 */	bl __CARDGetDirBlock
 | |
| /* 80359030 00355F70  57 E0 30 32 */	slwi r0, r31, 6
 | |
| /* 80359034 00355F74  7F E3 02 14 */	add r31, r3, r0
 | |
| /* 80359038 00355F78  80 61 00 18 */	lwz r3, 0x18(r1)
 | |
| /* 8035903C 00355F7C  7F E4 FB 78 */	mr r4, r31
 | |
| /* 80359040 00355F80  4B FF ED 31 */	bl __CARDIsWritable
 | |
| /* 80359044 00355F84  7C 64 1B 79 */	or. r4, r3, r3
 | |
| /* 80359048 00355F88  40 80 00 10 */	bge lbl_80359058
 | |
| /* 8035904C 00355F8C  80 61 00 18 */	lwz r3, 0x18(r1)
 | |
| /* 80359050 00355F90  4B FF AC 1D */	bl __CARDPutControlBlock
 | |
| /* 80359054 00355F94  48 00 00 9C */	b lbl_803590F0
 | |
| lbl_80359058:
 | |
| /* 80359058 00355F98  88 1D 00 2E */	lbz r0, 0x2e(r29)
 | |
| /* 8035905C 00355F9C  38 7F 00 00 */	addi r3, r31, 0
 | |
| /* 80359060 00355FA0  38 9D 00 00 */	addi r4, r29, 0
 | |
| /* 80359064 00355FA4  98 1F 00 07 */	stb r0, 7(r31)
 | |
| /* 80359068 00355FA8  80 1D 00 30 */	lwz r0, 0x30(r29)
 | |
| /* 8035906C 00355FAC  90 1F 00 2C */	stw r0, 0x2c(r31)
 | |
| /* 80359070 00355FB0  A0 1D 00 34 */	lhz r0, 0x34(r29)
 | |
| /* 80359074 00355FB4  B0 1F 00 30 */	sth r0, 0x30(r31)
 | |
| /* 80359078 00355FB8  A0 1D 00 36 */	lhz r0, 0x36(r29)
 | |
| /* 8035907C 00355FBC  B0 1F 00 32 */	sth r0, 0x32(r31)
 | |
| /* 80359080 00355FC0  80 1D 00 38 */	lwz r0, 0x38(r29)
 | |
| /* 80359084 00355FC4  90 1F 00 3C */	stw r0, 0x3c(r31)
 | |
| /* 80359088 00355FC8  4B FF FC 09 */	bl UpdateIconOffsets
 | |
| /* 8035908C 00355FCC  80 7F 00 2C */	lwz r3, 0x2c(r31)
 | |
| /* 80359090 00355FD0  3C 03 00 01 */	addis r0, r3, 1
 | |
| /* 80359094 00355FD4  28 00 FF FF */	cmplwi r0, 0xffff
 | |
| /* 80359098 00355FD8  40 82 00 14 */	bne lbl_803590AC
 | |
| /* 8035909C 00355FDC  A0 1F 00 32 */	lhz r0, 0x32(r31)
 | |
| /* 803590A0 00355FE0  54 00 00 3A */	rlwinm r0, r0, 0, 0, 0x1d
 | |
| /* 803590A4 00355FE4  60 00 00 01 */	ori r0, r0, 1
 | |
| /* 803590A8 00355FE8  B0 1F 00 32 */	sth r0, 0x32(r31)
 | |
| lbl_803590AC:
 | |
| /* 803590AC 00355FEC  3C 60 80 00 */	lis r3, 0x800000F8@ha
 | |
| /* 803590B0 00355FF0  80 03 00 F8 */	lwz r0, 0x800000F8@l(r3)
 | |
| /* 803590B4 00355FF4  54 1D F0 BE */	srwi r29, r0, 2
 | |
| /* 803590B8 00355FF8  4B FE 96 45 */	bl OSGetTime
 | |
| /* 803590BC 00355FFC  38 DD 00 00 */	addi r6, r29, 0
 | |
| /* 803590C0 00356000  38 A0 00 00 */	li r5, 0
 | |
| /* 803590C4 00356004  48 00 92 61 */	bl func_80362324
 | |
| /* 803590C8 00356008  90 9F 00 28 */	stw r4, 0x28(r31)
 | |
| /* 803590CC 0035600C  38 7C 00 00 */	addi r3, r28, 0
 | |
| /* 803590D0 00356010  38 9E 00 00 */	addi r4, r30, 0
 | |
| /* 803590D4 00356014  4B FF C8 49 */	bl __CARDUpdateDir
 | |
| /* 803590D8 00356018  7C 7C 1B 79 */	or. r28, r3, r3
 | |
| /* 803590DC 0035601C  40 80 00 10 */	bge lbl_803590EC
 | |
| /* 803590E0 00356020  80 61 00 18 */	lwz r3, 0x18(r1)
 | |
| /* 803590E4 00356024  7F 84 E3 78 */	mr r4, r28
 | |
| /* 803590E8 00356028  4B FF AB 85 */	bl __CARDPutControlBlock
 | |
| lbl_803590EC:
 | |
| /* 803590EC 0035602C  7F 83 E3 78 */	mr r3, r28
 | |
| lbl_803590F0:
 | |
| /* 803590F0 00356030  80 01 00 34 */	lwz r0, 0x34(r1)
 | |
| /* 803590F4 00356034  83 E1 00 2C */	lwz r31, 0x2c(r1)
 | |
| /* 803590F8 00356038  83 C1 00 28 */	lwz r30, 0x28(r1)
 | |
| /* 803590FC 0035603C  83 A1 00 24 */	lwz r29, 0x24(r1)
 | |
| /* 80359100 00356040  83 81 00 20 */	lwz r28, 0x20(r1)
 | |
| /* 80359104 00356044  38 21 00 30 */	addi r1, r1, 0x30
 | |
| /* 80359108 00356048  7C 08 03 A6 */	mtlr r0
 | |
| /* 8035910C 0035604C  4E 80 00 20 */	blr 
 | |
| 
 | |
| .global CARDSetStatus
 | |
| CARDSetStatus:
 | |
| /* 80359110 00356050  7C 08 02 A6 */	mflr r0
 | |
| .global __CARDSyncCallback
 | |
| /* 80359114 00356054  3C C0 80 35 */	lis r6, __CARDSyncCallback@ha
 | |
| /* 80359118 00356058  90 01 00 04 */	stw r0, 4(r1)
 | |
| .global __CARDSyncCallback
 | |
| /* 8035911C 0035605C  38 C6 2A 34 */	addi r6, r6, __CARDSyncCallback@l
 | |
| /* 80359120 00356060  94 21 FF E0 */	stwu r1, -0x20(r1)
 | |
| /* 80359124 00356064  93 E1 00 1C */	stw r31, 0x1c(r1)
 | |
| /* 80359128 00356068  3B E3 00 00 */	addi r31, r3, 0
 | |
| /* 8035912C 0035606C  4B FF FE 71 */	bl CARDSetStatusAsync
 | |
| /* 80359130 00356070  2C 03 00 00 */	cmpwi r3, 0
 | |
| /* 80359134 00356074  40 80 00 08 */	bge lbl_8035913C
 | |
| /* 80359138 00356078  48 00 00 0C */	b lbl_80359144
 | |
| lbl_8035913C:
 | |
| /* 8035913C 0035607C  7F E3 FB 78 */	mr r3, r31
 | |
| /* 80359140 00356080  4B FF AC E1 */	bl __CARDSync
 | |
| lbl_80359144:
 | |
| /* 80359144 00356084  80 01 00 24 */	lwz r0, 0x24(r1)
 | |
| /* 80359148 00356088  83 E1 00 1C */	lwz r31, 0x1c(r1)
 | |
| /* 8035914C 0035608C  38 21 00 20 */	addi r1, r1, 0x20
 | |
| /* 80359150 00356090  7C 08 03 A6 */	mtlr r0
 | |
| /* 80359154 00356094  4E 80 00 20 */	blr 
 | |
| 
 |