.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global CompleteTransfer CompleteTransfer: /* 802762AC 00271F0C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802762B0 00271F10 7C 08 02 A6 */ mflr r0 /* 802762B4 00271F14 90 01 00 24 */ stw r0, 0x24(r1) /* 802762B8 00271F18 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802762BC 00271F1C 93 C1 00 18 */ stw r30, 0x18(r1) /* 802762C0 00271F20 3F C0 80 43 */ lis r30, lbl_80433FB8@ha /* 802762C4 00271F24 93 A1 00 14 */ stw r29, 0x14(r1) /* 802762C8 00271F28 3F A0 CD 00 */ lis r29, 0xCD006438@ha /* 802762CC 00271F2C 83 FD 64 38 */ lwz r31, 0xCD006438@l(r29) /* 802762D0 00271F30 80 1D 64 34 */ lwz r0, 0x6434(r29) /* 802762D4 00271F34 64 00 80 00 */ oris r0, r0, 0x8000 /* 802762D8 00271F38 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e /* 802762DC 00271F3C 90 1D 64 34 */ stw r0, 0x6434(r29) /* 802762E0 00271F40 80 1E 3F B8 */ lwz r0, lbl_80433FB8@l(r30) /* 802762E4 00271F44 2C 00 FF FF */ cmpwi r0, -1 /* 802762E8 00271F48 41 82 02 98 */ beq lbl_80276580 /* 802762EC 00271F4C 4B FF C4 ED */ bl __OSGetSystemTime /* 802762F0 00271F50 80 FE 3F B8 */ lwz r7, 0x3fb8(r30) /* 802762F4 00271F54 3C C0 80 51 */ lis r6, lbl_80515600@ha /* 802762F8 00271F58 38 BE 3F B8 */ addi r5, r30, 0x3fb8 /* 802762FC 00271F5C 54 E7 18 38 */ slwi r7, r7, 3 /* 80276300 00271F60 38 C6 56 00 */ addi r6, r6, lbl_80515600@l /* 80276304 00271F64 80 05 00 08 */ lwz r0, 8(r5) /* 80276308 00271F68 7C C6 3A 14 */ add r6, r6, r7 /* 8027630C 00271F6C 90 86 00 04 */ stw r4, 4(r6) /* 80276310 00271F70 38 E0 00 00 */ li r7, 0 /* 80276314 00271F74 54 08 F0 BF */ rlwinm. r8, r0, 0x1e, 2, 0x1f /* 80276318 00271F78 80 A5 00 0C */ lwz r5, 0xc(r5) /* 8027631C 00271F7C 90 66 00 00 */ stw r3, 0(r6) /* 80276320 00271F80 41 82 00 B0 */ beq lbl_802763D0 /* 80276324 00271F84 28 08 00 08 */ cmplwi r8, 8 /* 80276328 00271F88 38 68 FF F8 */ addi r3, r8, -8 /* 8027632C 00271F8C 40 81 00 6C */ ble lbl_80276398 /* 80276330 00271F90 38 03 00 07 */ addi r0, r3, 7 /* 80276334 00271F94 38 9D 64 00 */ addi r4, r29, 0x6400 /* 80276338 00271F98 54 00 E8 FE */ srwi r0, r0, 3 /* 8027633C 00271F9C 7C 09 03 A6 */ mtctr r0 /* 80276340 00271FA0 28 03 00 00 */ cmplwi r3, 0 /* 80276344 00271FA4 40 81 00 54 */ ble lbl_80276398 lbl_80276348: /* 80276348 00271FA8 80 04 00 80 */ lwz r0, 0x80(r4) /* 8027634C 00271FAC 38 E7 00 08 */ addi r7, r7, 8 /* 80276350 00271FB0 90 05 00 00 */ stw r0, 0(r5) /* 80276354 00271FB4 80 04 00 84 */ lwz r0, 0x84(r4) /* 80276358 00271FB8 90 05 00 04 */ stw r0, 4(r5) /* 8027635C 00271FBC 80 04 00 88 */ lwz r0, 0x88(r4) /* 80276360 00271FC0 90 05 00 08 */ stw r0, 8(r5) /* 80276364 00271FC4 80 04 00 8C */ lwz r0, 0x8c(r4) /* 80276368 00271FC8 90 05 00 0C */ stw r0, 0xc(r5) /* 8027636C 00271FCC 80 04 00 90 */ lwz r0, 0x90(r4) /* 80276370 00271FD0 90 05 00 10 */ stw r0, 0x10(r5) /* 80276374 00271FD4 80 04 00 94 */ lwz r0, 0x94(r4) /* 80276378 00271FD8 90 05 00 14 */ stw r0, 0x14(r5) /* 8027637C 00271FDC 80 04 00 98 */ lwz r0, 0x98(r4) /* 80276380 00271FE0 90 05 00 18 */ stw r0, 0x18(r5) /* 80276384 00271FE4 80 04 00 9C */ lwz r0, 0x9c(r4) /* 80276388 00271FE8 38 84 00 20 */ addi r4, r4, 0x20 /* 8027638C 00271FEC 90 05 00 1C */ stw r0, 0x1c(r5) /* 80276390 00271FF0 38 A5 00 20 */ addi r5, r5, 0x20 /* 80276394 00271FF4 42 00 FF B4 */ bdnz lbl_80276348 lbl_80276398: /* 80276398 00271FF8 54 E3 10 3A */ slwi r3, r7, 2 /* 8027639C 00271FFC 3C 00 CD 00 */ lis r0, 0xcd00 /* 802763A0 00272000 7C 60 1A 14 */ add r3, r0, r3 /* 802763A4 00272004 7C 07 40 50 */ subf r0, r7, r8 /* 802763A8 00272008 38 63 64 00 */ addi r3, r3, 0x6400 /* 802763AC 0027200C 7C 09 03 A6 */ mtctr r0 /* 802763B0 00272010 7C 07 40 40 */ cmplw r7, r8 /* 802763B4 00272014 40 80 00 1C */ bge lbl_802763D0 lbl_802763B8: /* 802763B8 00272018 80 03 00 80 */ lwz r0, 0x80(r3) /* 802763BC 0027201C 38 63 00 04 */ addi r3, r3, 4 /* 802763C0 00272020 38 E7 00 01 */ addi r7, r7, 1 /* 802763C4 00272024 90 05 00 00 */ stw r0, 0(r5) /* 802763C8 00272028 38 A5 00 04 */ addi r5, r5, 4 /* 802763CC 0027202C 42 00 FF EC */ bdnz lbl_802763B8 lbl_802763D0: /* 802763D0 00272030 3C 60 80 43 */ lis r3, lbl_80433FB8@ha /* 802763D4 00272034 38 63 3F B8 */ addi r3, r3, lbl_80433FB8@l /* 802763D8 00272038 80 03 00 08 */ lwz r0, 8(r3) /* 802763DC 0027203C 54 03 07 BF */ clrlwi. r3, r0, 0x1e /* 802763E0 00272040 41 82 01 0C */ beq lbl_802764EC /* 802763E4 00272044 54 E0 10 3A */ slwi r0, r7, 2 /* 802763E8 00272048 3C 80 CD 00 */ lis r4, 0xcd00 /* 802763EC 0027204C 7C C4 02 14 */ add r6, r4, r0 /* 802763F0 00272050 80 06 64 80 */ lwz r0, 0x6480(r6) /* 802763F4 00272054 38 80 00 00 */ li r4, 0 /* 802763F8 00272058 41 82 00 F4 */ beq lbl_802764EC /* 802763FC 0027205C 28 03 00 08 */ cmplwi r3, 8 /* 80276400 00272060 38 E3 FF F8 */ addi r7, r3, -8 /* 80276404 00272064 40 81 00 BC */ ble lbl_802764C0 /* 80276408 00272068 38 C7 00 07 */ addi r6, r7, 7 /* 8027640C 0027206C 54 C6 E8 FE */ srwi r6, r6, 3 /* 80276410 00272070 7C C9 03 A6 */ mtctr r6 /* 80276414 00272074 28 07 00 00 */ cmplwi r7, 0 /* 80276418 00272078 40 81 00 A8 */ ble lbl_802764C0 lbl_8027641C: /* 8027641C 0027207C 20 C4 00 03 */ subfic r6, r4, 3 /* 80276420 00272080 38 E4 00 01 */ addi r7, r4, 1 /* 80276424 00272084 54 C8 18 38 */ slwi r8, r6, 3 /* 80276428 00272088 7C 09 44 30 */ srw r9, r0, r8 /* 8027642C 0027208C 20 E7 00 03 */ subfic r7, r7, 3 /* 80276430 00272090 54 E8 18 38 */ slwi r8, r7, 3 /* 80276434 00272094 99 25 00 00 */ stb r9, 0(r5) /* 80276438 00272098 38 E4 00 02 */ addi r7, r4, 2 /* 8027643C 0027209C 7C C4 00 D0 */ neg r6, r4 /* 80276440 002720A0 7C 09 44 30 */ srw r9, r0, r8 /* 80276444 002720A4 54 C8 18 38 */ slwi r8, r6, 3 /* 80276448 002720A8 20 E7 00 03 */ subfic r7, r7, 3 /* 8027644C 002720AC 54 E6 18 38 */ slwi r6, r7, 3 /* 80276450 002720B0 99 25 00 01 */ stb r9, 1(r5) /* 80276454 002720B4 7C 09 34 30 */ srw r9, r0, r6 /* 80276458 002720B8 7C 08 44 30 */ srw r8, r0, r8 /* 8027645C 002720BC 38 C4 00 04 */ addi r6, r4, 4 /* 80276460 002720C0 99 25 00 02 */ stb r9, 2(r5) /* 80276464 002720C4 20 E6 00 03 */ subfic r7, r6, 3 /* 80276468 002720C8 38 C4 00 05 */ addi r6, r4, 5 /* 8027646C 002720CC 99 05 00 03 */ stb r8, 3(r5) /* 80276470 002720D0 54 E7 18 38 */ slwi r7, r7, 3 /* 80276474 002720D4 7C 09 3C 30 */ srw r9, r0, r7 /* 80276478 002720D8 20 C6 00 03 */ subfic r6, r6, 3 /* 8027647C 002720DC 54 C8 18 38 */ slwi r8, r6, 3 /* 80276480 002720E0 99 25 00 04 */ stb r9, 4(r5) /* 80276484 002720E4 38 C4 00 06 */ addi r6, r4, 6 /* 80276488 002720E8 20 E6 00 03 */ subfic r7, r6, 3 /* 8027648C 002720EC 7C 08 44 30 */ srw r8, r0, r8 /* 80276490 002720F0 38 C4 00 07 */ addi r6, r4, 7 /* 80276494 002720F4 99 05 00 05 */ stb r8, 5(r5) /* 80276498 002720F8 54 E7 18 38 */ slwi r7, r7, 3 /* 8027649C 002720FC 38 84 00 08 */ addi r4, r4, 8 /* 802764A0 00272100 20 C6 00 03 */ subfic r6, r6, 3 /* 802764A4 00272104 7C 07 3C 30 */ srw r7, r0, r7 /* 802764A8 00272108 54 C6 18 38 */ slwi r6, r6, 3 /* 802764AC 0027210C 98 E5 00 06 */ stb r7, 6(r5) /* 802764B0 00272110 7C 06 34 30 */ srw r6, r0, r6 /* 802764B4 00272114 98 C5 00 07 */ stb r6, 7(r5) /* 802764B8 00272118 38 A5 00 08 */ addi r5, r5, 8 /* 802764BC 0027211C 42 00 FF 60 */ bdnz lbl_8027641C lbl_802764C0: /* 802764C0 00272120 7C C4 18 50 */ subf r6, r4, r3 /* 802764C4 00272124 7C C9 03 A6 */ mtctr r6 /* 802764C8 00272128 7C 04 18 40 */ cmplw r4, r3 /* 802764CC 0027212C 40 80 00 20 */ bge lbl_802764EC lbl_802764D0: /* 802764D0 00272130 20 64 00 03 */ subfic r3, r4, 3 /* 802764D4 00272134 38 84 00 01 */ addi r4, r4, 1 /* 802764D8 00272138 54 63 18 38 */ slwi r3, r3, 3 /* 802764DC 0027213C 7C 03 1C 30 */ srw r3, r0, r3 /* 802764E0 00272140 98 65 00 00 */ stb r3, 0(r5) /* 802764E4 00272144 38 A5 00 01 */ addi r5, r5, 1 /* 802764E8 00272148 42 00 FF E8 */ bdnz lbl_802764D0 lbl_802764EC: /* 802764EC 0027214C 3C 60 CD 00 */ lis r3, 0xCD006434@ha /* 802764F0 00272150 80 03 64 34 */ lwz r0, 0xCD006434@l(r3) /* 802764F4 00272154 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2 /* 802764F8 00272158 41 82 00 54 */ beq lbl_8027654C /* 802764FC 0027215C 3C 60 80 43 */ lis r3, lbl_80433FB8@ha /* 80276500 00272160 80 83 3F B8 */ lwz r4, lbl_80433FB8@l(r3) /* 80276504 00272164 20 04 00 03 */ subfic r0, r4, 3 /* 80276508 00272168 54 00 18 38 */ slwi r0, r0, 3 /* 8027650C 0027216C 7F FF 04 30 */ srw r31, r31, r0 /* 80276510 00272170 57 FF 07 3E */ clrlwi r31, r31, 0x1c /* 80276514 00272174 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c /* 80276518 00272178 41 82 00 24 */ beq lbl_8027653C /* 8027651C 0027217C 3C 60 80 43 */ lis r3, lbl_80433FD0@ha /* 80276520 00272180 54 84 10 3A */ slwi r4, r4, 2 /* 80276524 00272184 38 63 3F D0 */ addi r3, r3, lbl_80433FD0@l /* 80276528 00272188 7C 03 20 2E */ lwzx r0, r3, r4 /* 8027652C 0027218C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 /* 80276530 00272190 40 82 00 0C */ bne lbl_8027653C /* 80276534 00272194 38 00 00 08 */ li r0, 8 /* 80276538 00272198 7C 03 21 2E */ stwx r0, r3, r4 lbl_8027653C: /* 8027653C 0027219C 2C 1F 00 00 */ cmpwi r31, 0 /* 80276540 002721A0 40 82 00 34 */ bne lbl_80276574 /* 80276544 002721A4 3B E0 00 04 */ li r31, 4 /* 80276548 002721A8 48 00 00 2C */ b lbl_80276574 lbl_8027654C: /* 8027654C 002721AC 4B FF C2 8D */ bl __OSGetSystemTime /* 80276550 002721B0 3C C0 80 43 */ lis r6, lbl_80433FB8@ha /* 80276554 002721B4 3C A0 80 51 */ lis r5, lbl_80515620@ha /* 80276558 002721B8 80 06 3F B8 */ lwz r0, lbl_80433FB8@l(r6) /* 8027655C 002721BC 38 A5 56 20 */ addi r5, r5, lbl_80515620@l /* 80276560 002721C0 3B E0 00 00 */ li r31, 0 /* 80276564 002721C4 54 00 18 38 */ slwi r0, r0, 3 /* 80276568 002721C8 7C A5 02 14 */ add r5, r5, r0 /* 8027656C 002721CC 90 85 00 04 */ stw r4, 4(r5) /* 80276570 002721D0 90 65 00 00 */ stw r3, 0(r5) lbl_80276574: /* 80276574 002721D4 38 00 FF FF */ li r0, -1 /* 80276578 002721D8 3C 60 80 43 */ lis r3, lbl_80433FB8@ha /* 8027657C 002721DC 90 03 3F B8 */ stw r0, lbl_80433FB8@l(r3) lbl_80276580: /* 80276580 002721E0 7F E3 FB 78 */ mr r3, r31 /* 80276584 002721E4 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80276588 002721E8 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8027658C 002721EC 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80276590 002721F0 80 01 00 24 */ lwz r0, 0x24(r1) /* 80276594 002721F4 7C 08 03 A6 */ mtlr r0 /* 80276598 002721F8 38 21 00 20 */ addi r1, r1, 0x20 /* 8027659C 002721FC 4E 80 00 20 */ blr .global SIInterruptHandler SIInterruptHandler: /* 802765A0 00272200 94 21 FF B0 */ stwu r1, -0x50(r1) /* 802765A4 00272204 7C 08 02 A6 */ mflr r0 /* 802765A8 00272208 90 01 00 54 */ stw r0, 0x54(r1) /* 802765AC 0027220C 39 61 00 50 */ addi r11, r1, 0x50 /* 802765B0 00272210 4B F5 0B 51 */ bl _savegpr_17 /* 802765B4 00272214 3C A0 CD 00 */ lis r5, 0xCD006434@ha /* 802765B8 00272218 3F 60 80 51 */ lis r27, lbl_80515580@ha /* 802765BC 0027221C 82 A5 64 34 */ lwz r21, 0xCD006434@l(r5) /* 802765C0 00272220 7C 7E 1B 78 */ mr r30, r3 /* 802765C4 00272224 7C 9F 23 78 */ mr r31, r4 /* 802765C8 00272228 3B 7B 55 80 */ addi r27, r27, lbl_80515580@l /* 802765CC 0027222C 56 A3 00 02 */ rlwinm r3, r21, 0, 0, 1 /* 802765D0 00272230 3C 03 40 00 */ addis r0, r3, 0x4000 /* 802765D4 00272234 28 00 00 00 */ cmplwi r0, 0 /* 802765D8 00272238 40 82 01 A4 */ bne lbl_8027677C /* 802765DC 0027223C 3E 20 80 43 */ lis r17, lbl_80433FB8@ha /* 802765E0 00272240 82 D1 3F B8 */ lwz r22, lbl_80433FB8@l(r17) /* 802765E4 00272244 4B FF FC C9 */ bl CompleteTransfer /* 802765E8 00272248 38 91 3F B8 */ addi r4, r17, 0x3fb8 /* 802765EC 0027224C 38 00 00 00 */ li r0, 0 /* 802765F0 00272250 83 04 00 10 */ lwz r24, 0x10(r4) /* 802765F4 00272254 7C 77 1B 78 */ mr r23, r3 /* 802765F8 00272258 7E DC B3 78 */ mr r28, r22 /* 802765FC 0027225C 3A 3B 00 00 */ addi r17, r27, 0 /* 80276600 00272260 90 04 00 10 */ stw r0, 0x10(r4) /* 80276604 00272264 3B 40 00 00 */ li r26, 0 lbl_80276608: /* 80276608 00272268 3B 9C 00 01 */ addi r28, r28, 1 /* 8027660C 0027226C 57 80 F0 02 */ slwi r0, r28, 0x1e /* 80276610 00272270 57 83 0F FE */ srwi r3, r28, 0x1f /* 80276614 00272274 7C 03 00 50 */ subf r0, r3, r0 /* 80276618 00272278 54 00 10 3E */ rotlwi r0, r0, 2 /* 8027661C 0027227C 7F 80 1A 14 */ add r28, r0, r3 /* 80276620 00272280 57 80 28 34 */ slwi r0, r28, 5 /* 80276624 00272284 7F B1 02 14 */ add r29, r17, r0 /* 80276628 00272288 7C 11 00 2E */ lwzx r0, r17, r0 /* 8027662C 0027228C 2C 00 FF FF */ cmpwi r0, -1 /* 80276630 00272290 41 82 00 6C */ beq lbl_8027669C /* 80276634 00272294 4B FF C1 A5 */ bl __OSGetSystemTime /* 80276638 00272298 80 BD 00 18 */ lwz r5, 0x18(r29) /* 8027663C 0027229C 6C 60 80 00 */ xoris r0, r3, 0x8000 /* 80276640 002722A0 80 7D 00 1C */ lwz r3, 0x1c(r29) /* 80276644 002722A4 6C A5 80 00 */ xoris r5, r5, 0x8000 /* 80276648 002722A8 7C 63 20 10 */ subfc r3, r3, r4 /* 8027664C 002722AC 7C A5 01 10 */ subfe r5, r5, r0 /* 80276650 002722B0 7C A0 01 10 */ subfe r5, r0, r0 /* 80276654 002722B4 7C A5 00 D1 */ neg. r5, r5 /* 80276658 002722B8 40 82 00 44 */ bne lbl_8027669C /* 8027665C 002722BC 80 7D 00 00 */ lwz r3, 0(r29) /* 80276660 002722C0 80 9D 00 04 */ lwz r4, 4(r29) /* 80276664 002722C4 80 BD 00 08 */ lwz r5, 8(r29) /* 80276668 002722C8 80 DD 00 0C */ lwz r6, 0xc(r29) /* 8027666C 002722CC 80 FD 00 10 */ lwz r7, 0x10(r29) /* 80276670 002722D0 81 1D 00 14 */ lwz r8, 0x14(r29) /* 80276674 002722D4 48 00 03 D9 */ bl __SITransfer /* 80276678 002722D8 2C 03 00 00 */ cmpwi r3, 0 /* 8027667C 002722DC 41 82 00 2C */ beq lbl_802766A8 /* 80276680 002722E0 1C 7C 00 30 */ mulli r3, r28, 0x30 /* 80276684 002722E4 38 1B 00 C0 */ addi r0, r27, 0xc0 /* 80276688 002722E8 7C 60 1A 14 */ add r3, r0, r3 /* 8027668C 002722EC 4B FF 33 ED */ bl OSCancelAlarm /* 80276690 002722F0 38 00 FF FF */ li r0, -1 /* 80276694 002722F4 90 1D 00 00 */ stw r0, 0(r29) /* 80276698 002722F8 48 00 00 10 */ b lbl_802766A8 lbl_8027669C: /* 8027669C 002722FC 3B 5A 00 01 */ addi r26, r26, 1 /* 802766A0 00272300 2C 1A 00 04 */ cmpwi r26, 4 /* 802766A4 00272304 41 80 FF 64 */ blt lbl_80276608 lbl_802766A8: /* 802766A8 00272308 2C 18 00 00 */ cmpwi r24, 0 /* 802766AC 0027230C 41 82 00 1C */ beq lbl_802766C8 /* 802766B0 00272310 7F 0C C3 78 */ mr r12, r24 /* 802766B4 00272314 7E C3 B3 78 */ mr r3, r22 /* 802766B8 00272318 7E E4 BB 78 */ mr r4, r23 /* 802766BC 0027231C 7F E5 FB 78 */ mr r5, r31 /* 802766C0 00272320 7D 89 03 A6 */ mtctr r12 /* 802766C4 00272324 4E 80 04 21 */ bctrl lbl_802766C8: /* 802766C8 00272328 3C A0 CD 00 */ lis r5, 0xCD006438@ha /* 802766CC 0027232C 3C 60 80 43 */ lis r3, lbl_80433FD0@ha /* 802766D0 00272330 56 C0 18 38 */ slwi r0, r22, 3 /* 802766D4 00272334 3C 80 0F 00 */ lis r4, 0xf00 /* 802766D8 00272338 7C 84 06 30 */ sraw r4, r4, r0 /* 802766DC 0027233C 80 C5 64 38 */ lwz r6, 0xCD006438@l(r5) /* 802766E0 00272340 56 C0 10 3A */ slwi r0, r22, 2 /* 802766E4 00272344 38 63 3F D0 */ addi r3, r3, lbl_80433FD0@l /* 802766E8 00272348 7C C6 20 38 */ and r6, r6, r4 /* 802766EC 0027234C 90 C5 64 38 */ stw r6, 0x6438(r5) /* 802766F0 00272350 7C C3 02 14 */ add r6, r3, r0 /* 802766F4 00272354 7C 03 00 2E */ lwzx r0, r3, r0 /* 802766F8 00272358 28 00 00 80 */ cmplwi r0, 0x80 /* 802766FC 0027235C 40 82 00 80 */ bne lbl_8027677C /* 80276700 00272360 56 C0 28 34 */ slwi r0, r22, 5 /* 80276704 00272364 38 7B 00 00 */ addi r3, r27, 0 /* 80276708 00272368 7C 03 00 2E */ lwzx r0, r3, r0 /* 8027670C 0027236C 38 80 00 00 */ li r4, 0 /* 80276710 00272370 2C 00 FF FF */ cmpwi r0, -1 /* 80276714 00272374 40 82 00 14 */ bne lbl_80276728 /* 80276718 00272378 3C 60 80 43 */ lis r3, lbl_80433FB8@ha /* 8027671C 0027237C 80 03 3F B8 */ lwz r0, lbl_80433FB8@l(r3) /* 80276720 00272380 7C 00 B0 00 */ cmpw r0, r22 /* 80276724 00272384 40 82 00 08 */ bne lbl_8027672C lbl_80276728: /* 80276728 00272388 38 80 00 01 */ li r4, 1 lbl_8027672C: /* 8027672C 0027238C 2C 04 00 00 */ cmpwi r4, 0 /* 80276730 00272390 40 82 00 4C */ bne lbl_8027677C /* 80276734 00272394 3C 80 80 00 */ lis r4, 0x800000F8@ha /* 80276738 00272398 3D 00 80 27 */ lis r8, GetTypeCallback@ha /* 8027673C 0027239C 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4) /* 80276740 002723A0 3C 60 43 1C */ lis r3, 0x431BDE83@ha /* 80276744 002723A4 38 83 DE 83 */ addi r4, r3, 0x431BDE83@l /* 80276748 002723A8 39 08 6E 50 */ addi r8, r8, GetTypeCallback@l /* 8027674C 002723AC 54 00 F0 BE */ srwi r0, r0, 2 /* 80276750 002723B0 7E C3 B3 78 */ mr r3, r22 /* 80276754 002723B4 7C 04 00 16 */ mulhwu r0, r4, r0 /* 80276758 002723B8 38 8D A8 A0 */ addi r4, r13, lbl_8063FB60-_SDA_BASE_ /* 8027675C 002723BC 38 A0 00 01 */ li r5, 1 /* 80276760 002723C0 38 E0 00 03 */ li r7, 3 /* 80276764 002723C4 39 20 00 00 */ li r9, 0 /* 80276768 002723C8 54 0A 8B FE */ srwi r10, r0, 0xf /* 8027676C 002723CC 54 00 BA 72 */ rlwinm r0, r0, 0x17, 9, 0x19 /* 80276770 002723D0 7C 00 52 14 */ add r0, r0, r10 /* 80276774 002723D4 54 0A E8 FE */ srwi r10, r0, 3 /* 80276778 002723D8 48 00 05 6D */ bl SITransfer lbl_8027677C: /* 8027677C 002723DC 56 A3 00 C8 */ rlwinm r3, r21, 0, 3, 4 /* 80276780 002723E0 3C 03 E8 00 */ addis r0, r3, 0xe800 /* 80276784 002723E4 28 00 00 00 */ cmplwi r0, 0 /* 80276788 002723E8 40 82 01 EC */ bne lbl_80276974 /* 8027678C 002723EC 48 00 31 B9 */ bl VIGetCurrentLine /* 80276790 002723F0 3C 80 80 43 */ lis r4, lbl_80433FB8@ha /* 80276794 002723F4 3F 20 80 43 */ lis r25, lbl_80433FD0@ha /* 80276798 002723F8 38 84 3F B8 */ addi r4, r4, lbl_80433FB8@l /* 8027679C 002723FC 3F 80 CD 00 */ lis r28, 0xCD006400@ha /* 802767A0 00272400 80 04 00 04 */ lwz r0, 4(r4) /* 802767A4 00272404 3A 63 00 01 */ addi r19, r3, 1 /* 802767A8 00272408 3B 39 3F D0 */ addi r25, r25, lbl_80433FD0@l /* 802767AC 0027240C 3B 1C 64 00 */ addi r24, r28, 0xCD006400@l /* 802767B0 00272410 54 12 85 BE */ rlwinm r18, r0, 0x10, 0x16, 0x1f /* 802767B4 00272414 3A FB 01 80 */ addi r23, r27, 0x180 /* 802767B8 00272418 3A DB 01 A0 */ addi r22, r27, 0x1a0 /* 802767BC 0027241C 3A BB 01 B0 */ addi r21, r27, 0x1b0 /* 802767C0 00272420 3A 80 00 00 */ li r20, 0 /* 802767C4 00272424 3B A0 00 08 */ li r29, 8 /* 802767C8 00272428 3A 20 00 01 */ li r17, 1 lbl_802767CC: /* 802767CC 0027242C 4B FF 7F 91 */ bl OSDisableInterrupts /* 802767D0 00272430 20 14 00 03 */ subfic r0, r20, 3 /* 802767D4 00272434 83 5C 64 38 */ lwz r26, 0x6438(r28) /* 802767D8 00272438 54 00 18 38 */ slwi r0, r0, 3 /* 802767DC 0027243C 7F 5A 04 30 */ srw r26, r26, r0 /* 802767E0 00272440 57 40 07 39 */ rlwinm. r0, r26, 0, 0x1c, 0x1c /* 802767E4 00272444 41 82 00 14 */ beq lbl_802767F8 /* 802767E8 00272448 80 19 00 00 */ lwz r0, 0(r25) /* 802767EC 0027244C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 /* 802767F0 00272450 40 82 00 08 */ bne lbl_802767F8 /* 802767F4 00272454 93 B9 00 00 */ stw r29, 0(r25) lbl_802767F8: /* 802767F8 00272458 4B FF 7F 8D */ bl OSRestoreInterrupts /* 802767FC 0027245C 57 40 06 B5 */ rlwinm. r0, r26, 0, 0x1a, 0x1a /* 80276800 00272460 41 82 00 20 */ beq lbl_80276820 /* 80276804 00272464 80 18 00 04 */ lwz r0, 4(r24) /* 80276808 00272468 38 60 00 01 */ li r3, 1 /* 8027680C 0027246C 90 17 00 00 */ stw r0, 0(r23) /* 80276810 00272470 80 18 00 08 */ lwz r0, 8(r24) /* 80276814 00272474 90 17 00 04 */ stw r0, 4(r23) /* 80276818 00272478 92 36 00 00 */ stw r17, 0(r22) /* 8027681C 0027247C 48 00 00 08 */ b lbl_80276824 lbl_80276820: /* 80276820 00272480 38 60 00 00 */ li r3, 0 lbl_80276824: /* 80276824 00272484 2C 03 00 00 */ cmpwi r3, 0 /* 80276828 00272488 41 82 00 08 */ beq lbl_80276830 /* 8027682C 0027248C 92 75 00 00 */ stw r19, 0(r21) lbl_80276830: /* 80276830 00272490 3A 94 00 01 */ addi r20, r20, 1 /* 80276834 00272494 3B 18 00 0C */ addi r24, r24, 0xc /* 80276838 00272498 2C 14 00 04 */ cmpwi r20, 4 /* 8027683C 0027249C 3A F7 00 08 */ addi r23, r23, 8 /* 80276840 002724A0 3A D6 00 04 */ addi r22, r22, 4 /* 80276844 002724A4 3A B5 00 04 */ addi r21, r21, 4 /* 80276848 002724A8 3B 39 00 04 */ addi r25, r25, 4 /* 8027684C 002724AC 41 80 FF 80 */ blt lbl_802767CC /* 80276850 002724B0 3C 80 80 43 */ lis r4, lbl_80433FB8@ha /* 80276854 002724B4 3C 60 80 00 */ lis r3, 0x8000 /* 80276858 002724B8 38 84 3F B8 */ addi r4, r4, lbl_80433FB8@l /* 8027685C 002724BC 38 00 00 18 */ li r0, 0x18 /* 80276860 002724C0 80 A4 00 04 */ lwz r5, 4(r4) /* 80276864 002724C4 7C 60 04 30 */ srw r0, r3, r0 /* 80276868 002724C8 38 9B 01 B0 */ addi r4, r27, 0x1b0 /* 8027686C 002724CC 56 46 F8 7E */ srwi r6, r18, 1 /* 80276870 002724D0 7C A0 00 39 */ and. r0, r5, r0 /* 80276874 002724D4 41 82 00 24 */ beq lbl_80276898 /* 80276878 002724D8 80 04 00 00 */ lwz r0, 0(r4) /* 8027687C 002724DC 2C 00 00 00 */ cmpwi r0, 0 /* 80276880 002724E0 41 82 00 F4 */ beq lbl_80276974 /* 80276884 002724E4 80 04 00 00 */ lwz r0, 0(r4) /* 80276888 002724E8 7C 06 02 14 */ add r0, r6, r0 /* 8027688C 002724EC 7C 00 98 40 */ cmplw r0, r19 /* 80276890 002724F0 40 80 00 08 */ bge lbl_80276898 /* 80276894 002724F4 48 00 00 E0 */ b lbl_80276974 lbl_80276898: /* 80276898 002724F8 38 00 00 19 */ li r0, 0x19 /* 8027689C 002724FC 7C 60 04 30 */ srw r0, r3, r0 /* 802768A0 00272500 7C A0 00 39 */ and. r0, r5, r0 /* 802768A4 00272504 41 82 00 24 */ beq lbl_802768C8 /* 802768A8 00272508 80 04 00 04 */ lwz r0, 4(r4) /* 802768AC 0027250C 2C 00 00 00 */ cmpwi r0, 0 /* 802768B0 00272510 41 82 00 C4 */ beq lbl_80276974 /* 802768B4 00272514 80 04 00 04 */ lwz r0, 4(r4) /* 802768B8 00272518 7C 06 02 14 */ add r0, r6, r0 /* 802768BC 0027251C 7C 00 98 40 */ cmplw r0, r19 /* 802768C0 00272520 40 80 00 08 */ bge lbl_802768C8 /* 802768C4 00272524 48 00 00 B0 */ b lbl_80276974 lbl_802768C8: /* 802768C8 00272528 38 00 00 1A */ li r0, 0x1a /* 802768CC 0027252C 7C 60 04 30 */ srw r0, r3, r0 /* 802768D0 00272530 7C A0 00 39 */ and. r0, r5, r0 /* 802768D4 00272534 41 82 00 24 */ beq lbl_802768F8 /* 802768D8 00272538 80 04 00 08 */ lwz r0, 8(r4) /* 802768DC 0027253C 2C 00 00 00 */ cmpwi r0, 0 /* 802768E0 00272540 41 82 00 94 */ beq lbl_80276974 /* 802768E4 00272544 80 04 00 08 */ lwz r0, 8(r4) /* 802768E8 00272548 7C 06 02 14 */ add r0, r6, r0 /* 802768EC 0027254C 7C 00 98 40 */ cmplw r0, r19 /* 802768F0 00272550 40 80 00 08 */ bge lbl_802768F8 /* 802768F4 00272554 48 00 00 80 */ b lbl_80276974 lbl_802768F8: /* 802768F8 00272558 38 00 00 1B */ li r0, 0x1b /* 802768FC 0027255C 7C 60 04 30 */ srw r0, r3, r0 /* 80276900 00272560 7C A0 00 39 */ and. r0, r5, r0 /* 80276904 00272564 41 82 00 24 */ beq lbl_80276928 /* 80276908 00272568 80 04 00 0C */ lwz r0, 0xc(r4) /* 8027690C 0027256C 2C 00 00 00 */ cmpwi r0, 0 /* 80276910 00272570 41 82 00 64 */ beq lbl_80276974 /* 80276914 00272574 80 04 00 0C */ lwz r0, 0xc(r4) /* 80276918 00272578 7C 06 02 14 */ add r0, r6, r0 /* 8027691C 0027257C 7C 00 98 40 */ cmplw r0, r19 /* 80276920 00272580 40 80 00 08 */ bge lbl_80276928 /* 80276924 00272584 48 00 00 50 */ b lbl_80276974 lbl_80276928: /* 80276928 00272588 38 00 00 00 */ li r0, 0 /* 8027692C 0027258C 38 7B 01 B0 */ addi r3, r27, 0x1b0 /* 80276930 00272590 90 03 00 00 */ stw r0, 0(r3) /* 80276934 00272594 3A 3B 01 C0 */ addi r17, r27, 0x1c0 /* 80276938 00272598 3A 40 00 00 */ li r18, 0 /* 8027693C 0027259C 90 03 00 04 */ stw r0, 4(r3) /* 80276940 002725A0 90 03 00 08 */ stw r0, 8(r3) /* 80276944 002725A4 90 03 00 0C */ stw r0, 0xc(r3) lbl_80276948: /* 80276948 002725A8 81 91 00 00 */ lwz r12, 0(r17) /* 8027694C 002725AC 2C 0C 00 00 */ cmpwi r12, 0 /* 80276950 002725B0 41 82 00 14 */ beq lbl_80276964 /* 80276954 002725B4 7F C3 F3 78 */ mr r3, r30 /* 80276958 002725B8 7F E4 FB 78 */ mr r4, r31 /* 8027695C 002725BC 7D 89 03 A6 */ mtctr r12 /* 80276960 002725C0 4E 80 04 21 */ bctrl lbl_80276964: /* 80276964 002725C4 3A 52 00 01 */ addi r18, r18, 1 /* 80276968 002725C8 3A 31 00 04 */ addi r17, r17, 4 /* 8027696C 002725CC 2C 12 00 04 */ cmpwi r18, 4 /* 80276970 002725D0 41 80 FF D8 */ blt lbl_80276948 lbl_80276974: /* 80276974 002725D4 39 61 00 50 */ addi r11, r1, 0x50 /* 80276978 002725D8 4B F5 07 D5 */ bl _restgpr_17 /* 8027697C 002725DC 80 01 00 54 */ lwz r0, 0x54(r1) /* 80276980 002725E0 7C 08 03 A6 */ mtlr r0 /* 80276984 002725E4 38 21 00 50 */ addi r1, r1, 0x50 /* 80276988 002725E8 4E 80 00 20 */ blr .global SIInit SIInit: /* 8027698C 002725EC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80276990 002725F0 7C 08 02 A6 */ mflr r0 /* 80276994 002725F4 90 01 00 14 */ stw r0, 0x14(r1) /* 80276998 002725F8 80 0D A8 A4 */ lwz r0, lbl_8063FB64-_SDA_BASE_(r13) /* 8027699C 002725FC 2C 00 00 00 */ cmpwi r0, 0 /* 802769A0 00272600 40 82 00 9C */ bne lbl_80276A3C /* 802769A4 00272604 80 6D 88 00 */ lwz r3, lbl_8063DAC0-_SDA_BASE_(r13) /* 802769A8 00272608 4B FF 2C A9 */ bl OSRegisterVersion /* 802769AC 0027260C 3C C0 80 51 */ lis r6, lbl_80515580@ha /* 802769B0 00272610 3C 80 80 43 */ lis r4, lbl_80433FB8@ha /* 802769B4 00272614 38 E0 FF FF */ li r7, -1 /* 802769B8 00272618 38 00 00 00 */ li r0, 0 /* 802769BC 0027261C 38 A6 55 80 */ addi r5, r6, lbl_80515580@l /* 802769C0 00272620 38 84 3F B8 */ addi r4, r4, lbl_80433FB8@l /* 802769C4 00272624 90 E5 00 60 */ stw r7, 0x60(r5) /* 802769C8 00272628 38 60 00 00 */ li r3, 0 /* 802769CC 0027262C 90 E5 00 40 */ stw r7, 0x40(r5) /* 802769D0 00272630 90 E5 00 20 */ stw r7, 0x20(r5) /* 802769D4 00272634 90 E6 55 80 */ stw r7, 0x5580(r6) /* 802769D8 00272638 90 04 00 04 */ stw r0, 4(r4) /* 802769DC 0027263C 48 00 08 D9 */ bl SISetSamplingRate /* 802769E0 00272640 3C 60 CD 00 */ lis r3, 0xCD006434@ha lbl_802769E4: /* 802769E4 00272644 80 03 64 34 */ lwz r0, 0xCD006434@l(r3) /* 802769E8 00272648 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 802769EC 0027264C 40 82 FF F8 */ bne lbl_802769E4 /* 802769F0 00272650 3C 00 80 00 */ lis r0, 0x8000 /* 802769F4 00272654 3C 60 CD 00 */ lis r3, 0xCD006434@ha /* 802769F8 00272658 3C 80 80 27 */ lis r4, SIInterruptHandler@ha /* 802769FC 0027265C 90 03 64 34 */ stw r0, 0xCD006434@l(r3) /* 80276A00 00272660 38 84 65 A0 */ addi r4, r4, SIInterruptHandler@l /* 80276A04 00272664 38 60 00 14 */ li r3, 0x14 /* 80276A08 00272668 4B FF 7D A1 */ bl __OSSetInterruptHandler /* 80276A0C 0027266C 38 60 08 00 */ li r3, 0x800 /* 80276A10 00272670 4B FF 81 5D */ bl __OSUnmaskInterrupts /* 80276A14 00272674 38 60 00 00 */ li r3, 0 /* 80276A18 00272678 48 00 06 E9 */ bl SIGetType /* 80276A1C 0027267C 38 60 00 01 */ li r3, 1 /* 80276A20 00272680 48 00 06 E1 */ bl SIGetType /* 80276A24 00272684 38 60 00 02 */ li r3, 2 /* 80276A28 00272688 48 00 06 D9 */ bl SIGetType /* 80276A2C 0027268C 38 60 00 03 */ li r3, 3 /* 80276A30 00272690 48 00 06 D1 */ bl SIGetType /* 80276A34 00272694 38 00 00 01 */ li r0, 1 /* 80276A38 00272698 90 0D A8 A4 */ stw r0, lbl_8063FB64-_SDA_BASE_(r13) lbl_80276A3C: /* 80276A3C 0027269C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80276A40 002726A0 7C 08 03 A6 */ mtlr r0 /* 80276A44 002726A4 38 21 00 10 */ addi r1, r1, 0x10 /* 80276A48 002726A8 4E 80 00 20 */ blr .global __SITransfer __SITransfer: /* 80276A4C 002726AC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80276A50 002726B0 7C 08 02 A6 */ mflr r0 /* 80276A54 002726B4 90 01 00 24 */ stw r0, 0x24(r1) /* 80276A58 002726B8 39 61 00 20 */ addi r11, r1, 0x20 /* 80276A5C 002726BC 4B F5 06 C9 */ bl _savegpr_26 /* 80276A60 002726C0 7C 7B 1B 78 */ mr r27, r3 /* 80276A64 002726C4 7C 9C 23 78 */ mr r28, r4 /* 80276A68 002726C8 7C BD 2B 78 */ mr r29, r5 /* 80276A6C 002726CC 7C DA 33 78 */ mr r26, r6 /* 80276A70 002726D0 7C FE 3B 78 */ mr r30, r7 /* 80276A74 002726D4 7D 1F 43 78 */ mr r31, r8 /* 80276A78 002726D8 4B FF 7C E5 */ bl OSDisableInterrupts /* 80276A7C 002726DC 3D 00 80 43 */ lis r8, lbl_80433FB8@ha /* 80276A80 002726E0 80 08 3F B8 */ lwz r0, lbl_80433FB8@l(r8) /* 80276A84 002726E4 2C 00 FF FF */ cmpwi r0, -1 /* 80276A88 002726E8 41 82 00 10 */ beq lbl_80276A98 /* 80276A8C 002726EC 4B FF 7C F9 */ bl OSRestoreInterrupts /* 80276A90 002726F0 38 60 00 00 */ li r3, 0 /* 80276A94 002726F4 48 00 01 50 */ b lbl_80276BE4 lbl_80276A98: /* 80276A98 002726F8 3C E0 CD 00 */ lis r7, 0xCD006438@ha /* 80276A9C 002726FC 57 64 18 38 */ slwi r4, r27, 3 /* 80276AA0 00272700 3C A0 0F 00 */ lis r5, 0xf00 /* 80276AA4 00272704 81 27 64 38 */ lwz r9, 0xCD006438@l(r7) /* 80276AA8 00272708 7C A5 26 30 */ sraw r5, r5, r4 /* 80276AAC 0027270C 38 1D 00 03 */ addi r0, r29, 3 /* 80276AB0 00272710 7D 29 28 38 */ and r9, r9, r5 /* 80276AB4 00272714 38 C8 3F B8 */ addi r6, r8, 0x3fb8 /* 80276AB8 00272718 91 27 64 38 */ stw r9, 0x6438(r7) /* 80276ABC 0027271C 54 04 F0 BF */ rlwinm. r4, r0, 0x1e, 2, 0x1f /* 80276AC0 00272720 38 A0 00 00 */ li r5, 0 /* 80276AC4 00272724 93 68 3F B8 */ stw r27, 0x3fb8(r8) /* 80276AC8 00272728 93 E6 00 10 */ stw r31, 0x10(r6) /* 80276ACC 0027272C 93 C6 00 08 */ stw r30, 8(r6) /* 80276AD0 00272730 93 46 00 0C */ stw r26, 0xc(r6) /* 80276AD4 00272734 41 82 00 B4 */ beq lbl_80276B88 /* 80276AD8 00272738 28 04 00 08 */ cmplwi r4, 8 /* 80276ADC 0027273C 38 C4 FF F8 */ addi r6, r4, -8 /* 80276AE0 00272740 40 81 00 70 */ ble lbl_80276B50 /* 80276AE4 00272744 38 06 00 07 */ addi r0, r6, 7 /* 80276AE8 00272748 7F 88 E3 78 */ mr r8, r28 /* 80276AEC 0027274C 54 00 E8 FE */ srwi r0, r0, 3 /* 80276AF0 00272750 38 E7 64 00 */ addi r7, r7, 0x6400 /* 80276AF4 00272754 7C 09 03 A6 */ mtctr r0 /* 80276AF8 00272758 28 06 00 00 */ cmplwi r6, 0 /* 80276AFC 0027275C 40 81 00 54 */ ble lbl_80276B50 lbl_80276B00: /* 80276B00 00272760 80 08 00 00 */ lwz r0, 0(r8) /* 80276B04 00272764 38 A5 00 08 */ addi r5, r5, 8 /* 80276B08 00272768 90 07 00 80 */ stw r0, 0x80(r7) /* 80276B0C 0027276C 80 08 00 04 */ lwz r0, 4(r8) /* 80276B10 00272770 90 07 00 84 */ stw r0, 0x84(r7) /* 80276B14 00272774 80 08 00 08 */ lwz r0, 8(r8) /* 80276B18 00272778 90 07 00 88 */ stw r0, 0x88(r7) /* 80276B1C 0027277C 80 08 00 0C */ lwz r0, 0xc(r8) /* 80276B20 00272780 90 07 00 8C */ stw r0, 0x8c(r7) /* 80276B24 00272784 80 08 00 10 */ lwz r0, 0x10(r8) /* 80276B28 00272788 90 07 00 90 */ stw r0, 0x90(r7) /* 80276B2C 0027278C 80 08 00 14 */ lwz r0, 0x14(r8) /* 80276B30 00272790 90 07 00 94 */ stw r0, 0x94(r7) /* 80276B34 00272794 80 08 00 18 */ lwz r0, 0x18(r8) /* 80276B38 00272798 90 07 00 98 */ stw r0, 0x98(r7) /* 80276B3C 0027279C 80 08 00 1C */ lwz r0, 0x1c(r8) /* 80276B40 002727A0 39 08 00 20 */ addi r8, r8, 0x20 /* 80276B44 002727A4 90 07 00 9C */ stw r0, 0x9c(r7) /* 80276B48 002727A8 38 E7 00 20 */ addi r7, r7, 0x20 /* 80276B4C 002727AC 42 00 FF B4 */ bdnz lbl_80276B00 lbl_80276B50: /* 80276B50 002727B0 54 A7 10 3A */ slwi r7, r5, 2 /* 80276B54 002727B4 3C 00 CD 00 */ lis r0, 0xcd00 /* 80276B58 002727B8 7C C0 3A 14 */ add r6, r0, r7 /* 80276B5C 002727BC 7C 05 20 50 */ subf r0, r5, r4 /* 80276B60 002727C0 7C FC 3A 14 */ add r7, r28, r7 /* 80276B64 002727C4 38 C6 64 00 */ addi r6, r6, 0x6400 /* 80276B68 002727C8 7C 09 03 A6 */ mtctr r0 /* 80276B6C 002727CC 7C 05 20 40 */ cmplw r5, r4 /* 80276B70 002727D0 40 80 00 18 */ bge lbl_80276B88 lbl_80276B74: /* 80276B74 002727D4 80 07 00 00 */ lwz r0, 0(r7) /* 80276B78 002727D8 38 E7 00 04 */ addi r7, r7, 4 /* 80276B7C 002727DC 90 06 00 80 */ stw r0, 0x80(r6) /* 80276B80 002727E0 38 C6 00 04 */ addi r6, r6, 4 /* 80276B84 002727E4 42 00 FF F0 */ bdnz lbl_80276B74 lbl_80276B88: /* 80276B88 002727E8 38 9D FF 80 */ addi r4, r29, -128 /* 80276B8C 002727EC 20 1D 00 80 */ subfic r0, r29, 0x80 /* 80276B90 002727F0 7C 80 00 F8 */ nor r0, r4, r0 /* 80276B94 002727F4 3D 20 CD 00 */ lis r9, 0xCD006434@ha /* 80276B98 002727F8 7C 05 FE 70 */ srawi r5, r0, 0x1f /* 80276B9C 002727FC 7C DF 00 D0 */ neg r6, r31 /* 80276BA0 00272800 38 9E FF 80 */ addi r4, r30, -128 /* 80276BA4 00272804 20 1E 00 80 */ subfic r0, r30, 0x80 /* 80276BA8 00272808 7C 80 00 F8 */ nor r0, r4, r0 /* 80276BAC 0027280C 81 09 64 34 */ lwz r8, 0xCD006434@l(r9) /* 80276BB0 00272810 7C 00 FE 70 */ srawi r0, r0, 0x1f /* 80276BB4 00272814 7C C7 FB 78 */ or r7, r6, r31 /* 80276BB8 00272818 7F A4 28 78 */ andc r4, r29, r5 /* 80276BBC 0027281C 65 06 80 00 */ oris r6, r8, 0x8000 /* 80276BC0 00272820 50 E6 F8 42 */ rlwimi r6, r7, 0x1f, 1, 1 /* 80276BC4 00272824 7F C0 00 78 */ andc r0, r30, r0 /* 80276BC8 00272828 50 86 82 5E */ rlwimi r6, r4, 0x10, 9, 0xf /* 80276BCC 0027282C 50 06 44 6E */ rlwimi r6, r0, 8, 0x11, 0x17 /* 80276BD0 00272830 53 66 0F 7C */ rlwimi r6, r27, 1, 0x1d, 0x1e /* 80276BD4 00272834 60 C0 00 01 */ ori r0, r6, 1 /* 80276BD8 00272838 90 09 64 34 */ stw r0, 0x6434(r9) /* 80276BDC 0027283C 4B FF 7B A9 */ bl OSRestoreInterrupts /* 80276BE0 00272840 38 60 00 01 */ li r3, 1 lbl_80276BE4: /* 80276BE4 00272844 39 61 00 20 */ addi r11, r1, 0x20 /* 80276BE8 00272848 4B F5 05 89 */ bl _restgpr_26 /* 80276BEC 0027284C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80276BF0 00272850 7C 08 03 A6 */ mtlr r0 /* 80276BF4 00272854 38 21 00 20 */ addi r1, r1, 0x20 /* 80276BF8 00272858 4E 80 00 20 */ blr .global SISetXY SISetXY: /* 80276BFC 0027285C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80276C00 00272860 7C 08 02 A6 */ mflr r0 /* 80276C04 00272864 90 01 00 14 */ stw r0, 0x14(r1) /* 80276C08 00272868 54 80 40 2E */ slwi r0, r4, 8 /* 80276C0C 0027286C 93 E1 00 0C */ stw r31, 0xc(r1) /* 80276C10 00272870 54 7F 80 1E */ slwi r31, r3, 0x10 /* 80276C14 00272874 7F FF 03 78 */ or r31, r31, r0 /* 80276C18 00272878 4B FF 7B 45 */ bl OSDisableInterrupts /* 80276C1C 0027287C 3C A0 80 43 */ lis r5, lbl_80433FB8@ha /* 80276C20 00272880 3C 80 CD 00 */ lis r4, 0xCD006430@ha /* 80276C24 00272884 38 A5 3F B8 */ addi r5, r5, lbl_80433FB8@l /* 80276C28 00272888 80 05 00 04 */ lwz r0, 4(r5) /* 80276C2C 0027288C 54 00 06 0A */ rlwinm r0, r0, 0, 0x18, 5 /* 80276C30 00272890 7C 1F FB 78 */ or r31, r0, r31 /* 80276C34 00272894 93 E5 00 04 */ stw r31, 4(r5) /* 80276C38 00272898 93 E4 64 30 */ stw r31, 0xCD006430@l(r4) /* 80276C3C 0027289C 4B FF 7B 49 */ bl OSRestoreInterrupts /* 80276C40 002728A0 7F E3 FB 78 */ mr r3, r31 /* 80276C44 002728A4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80276C48 002728A8 80 01 00 14 */ lwz r0, 0x14(r1) /* 80276C4C 002728AC 7C 08 03 A6 */ mtlr r0 /* 80276C50 002728B0 38 21 00 10 */ addi r1, r1, 0x10 /* 80276C54 002728B4 4E 80 00 20 */ blr .global AlarmHandler AlarmHandler: /* 80276C58 002728B8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80276C5C 002728BC 7C 08 02 A6 */ mflr r0 /* 80276C60 002728C0 3C C0 80 51 */ lis r6, lbl_80515640@ha /* 80276C64 002728C4 3C A0 2A AB */ lis r5, 0x2AAAAAAB@ha /* 80276C68 002728C8 90 01 00 14 */ stw r0, 0x14(r1) /* 80276C6C 002728CC 38 C6 56 40 */ addi r6, r6, lbl_80515640@l /* 80276C70 002728D0 7C 06 18 50 */ subf r0, r6, r3 /* 80276C74 002728D4 38 65 AA AB */ addi r3, r5, 0x2AAAAAAB@l /* 80276C78 002728D8 7C 03 00 96 */ mulhw r0, r3, r0 /* 80276C7C 002728DC 3C 80 80 51 */ lis r4, lbl_80515580@ha /* 80276C80 002728E0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80276C84 002728E4 38 84 55 80 */ addi r4, r4, lbl_80515580@l /* 80276C88 002728E8 7C 00 1E 70 */ srawi r0, r0, 3 /* 80276C8C 002728EC 54 03 0F FE */ srwi r3, r0, 0x1f /* 80276C90 002728F0 7C 00 1A 14 */ add r0, r0, r3 /* 80276C94 002728F4 54 00 28 34 */ slwi r0, r0, 5 /* 80276C98 002728F8 7C 64 00 2E */ lwzx r3, r4, r0 /* 80276C9C 002728FC 7F E4 02 14 */ add r31, r4, r0 /* 80276CA0 00272900 2C 03 FF FF */ cmpwi r3, -1 /* 80276CA4 00272904 41 82 00 2C */ beq lbl_80276CD0 /* 80276CA8 00272908 80 9F 00 04 */ lwz r4, 4(r31) /* 80276CAC 0027290C 80 BF 00 08 */ lwz r5, 8(r31) /* 80276CB0 00272910 80 DF 00 0C */ lwz r6, 0xc(r31) /* 80276CB4 00272914 80 FF 00 10 */ lwz r7, 0x10(r31) /* 80276CB8 00272918 81 1F 00 14 */ lwz r8, 0x14(r31) /* 80276CBC 0027291C 4B FF FD 91 */ bl __SITransfer /* 80276CC0 00272920 2C 03 00 00 */ cmpwi r3, 0 /* 80276CC4 00272924 41 82 00 0C */ beq lbl_80276CD0 /* 80276CC8 00272928 38 00 FF FF */ li r0, -1 /* 80276CCC 0027292C 90 1F 00 00 */ stw r0, 0(r31) lbl_80276CD0: /* 80276CD0 00272930 80 01 00 14 */ lwz r0, 0x14(r1) /* 80276CD4 00272934 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80276CD8 00272938 7C 08 03 A6 */ mtlr r0 /* 80276CDC 0027293C 38 21 00 10 */ addi r1, r1, 0x10 /* 80276CE0 00272940 4E 80 00 20 */ blr .global SITransfer SITransfer: /* 80276CE4 00272944 94 21 FF C0 */ stwu r1, -0x40(r1) /* 80276CE8 00272948 7C 08 02 A6 */ mflr r0 /* 80276CEC 0027294C 90 01 00 44 */ stw r0, 0x44(r1) /* 80276CF0 00272950 39 61 00 40 */ addi r11, r1, 0x40 /* 80276CF4 00272954 4B F5 04 1D */ bl _savegpr_21 /* 80276CF8 00272958 3F E0 80 51 */ lis r31, lbl_80515580@ha /* 80276CFC 0027295C 54 6B 28 34 */ slwi r11, r3, 5 /* 80276D00 00272960 3B FF 55 80 */ addi r31, r31, lbl_80515580@l /* 80276D04 00272964 7C 75 1B 78 */ mr r21, r3 /* 80276D08 00272968 38 1F 00 00 */ addi r0, r31, 0 /* 80276D0C 0027296C 7C 96 23 78 */ mr r22, r4 /* 80276D10 00272970 7C B7 2B 78 */ mr r23, r5 /* 80276D14 00272974 7C D8 33 78 */ mr r24, r6 /* 80276D18 00272978 7C F9 3B 78 */ mr r25, r7 /* 80276D1C 0027297C 7D 1A 43 78 */ mr r26, r8 /* 80276D20 00272980 7D 3B 4B 78 */ mr r27, r9 /* 80276D24 00272984 7D 5C 53 78 */ mr r28, r10 /* 80276D28 00272988 7F A0 5A 14 */ add r29, r0, r11 /* 80276D2C 0027298C 4B FF 7A 31 */ bl OSDisableInterrupts /* 80276D30 00272990 80 1D 00 00 */ lwz r0, 0(r29) /* 80276D34 00272994 7C 7E 1B 78 */ mr r30, r3 /* 80276D38 00272998 2C 00 FF FF */ cmpwi r0, -1 /* 80276D3C 0027299C 40 82 00 14 */ bne lbl_80276D50 /* 80276D40 002729A0 3C 60 80 43 */ lis r3, lbl_80433FB8@ha /* 80276D44 002729A4 80 03 3F B8 */ lwz r0, lbl_80433FB8@l(r3) /* 80276D48 002729A8 7C 00 A8 00 */ cmpw r0, r21 /* 80276D4C 002729AC 40 82 00 14 */ bne lbl_80276D60 lbl_80276D50: /* 80276D50 002729B0 7F C3 F3 78 */ mr r3, r30 /* 80276D54 002729B4 4B FF 7A 31 */ bl OSRestoreInterrupts /* 80276D58 002729B8 38 60 00 00 */ li r3, 0 /* 80276D5C 002729BC 48 00 00 DC */ b lbl_80276E38 lbl_80276D60: /* 80276D60 002729C0 4B FF BA 79 */ bl __OSGetSystemTime /* 80276D64 002729C4 7F 80 DB 79 */ or. r0, r28, r27 /* 80276D68 002729C8 7C 68 1B 78 */ mr r8, r3 /* 80276D6C 002729CC 40 82 00 10 */ bne lbl_80276D7C /* 80276D70 002729D0 7C 9C 23 78 */ mr r28, r4 /* 80276D74 002729D4 7D 1B 43 78 */ mr r27, r8 /* 80276D78 002729D8 48 00 00 20 */ b lbl_80276D98 lbl_80276D7C: /* 80276D7C 002729DC 56 A5 18 38 */ slwi r5, r21, 3 /* 80276D80 002729E0 38 1F 00 80 */ addi r0, r31, 0x80 /* 80276D84 002729E4 7C C0 2A 14 */ add r6, r0, r5 /* 80276D88 002729E8 80 A6 00 04 */ lwz r5, 4(r6) /* 80276D8C 002729EC 80 06 00 00 */ lwz r0, 0(r6) /* 80276D90 002729F0 7F 9C 28 14 */ addc r28, r28, r5 /* 80276D94 002729F4 7F 7B 01 14 */ adde r27, r27, r0 lbl_80276D98: /* 80276D98 002729F8 6C 60 80 00 */ xoris r0, r3, 0x8000 /* 80276D9C 002729FC 6F 65 80 00 */ xoris r5, r27, 0x8000 /* 80276DA0 00272A00 7C 7C 20 10 */ subfc r3, r28, r4 /* 80276DA4 00272A04 7C A5 01 10 */ subfe r5, r5, r0 /* 80276DA8 00272A08 7C A0 01 10 */ subfe r5, r0, r0 /* 80276DAC 00272A0C 7C A5 00 D1 */ neg. r5, r5 /* 80276DB0 00272A10 41 82 00 28 */ beq lbl_80276DD8 /* 80276DB4 00272A14 1C 75 00 30 */ mulli r3, r21, 0x30 /* 80276DB8 00272A18 38 1F 00 C0 */ addi r0, r31, 0xc0 /* 80276DBC 00272A1C 7C C4 E0 10 */ subfc r6, r4, r28 /* 80276DC0 00272A20 3C E0 80 27 */ lis r7, AlarmHandler@ha /* 80276DC4 00272A24 7C 60 1A 14 */ add r3, r0, r3 /* 80276DC8 00272A28 7C A8 D9 10 */ subfe r5, r8, r27 /* 80276DCC 00272A2C 38 E7 6C 58 */ addi r7, r7, AlarmHandler@l /* 80276DD0 00272A30 4B FF 2B B5 */ bl OSSetAlarm /* 80276DD4 00272A34 48 00 00 38 */ b lbl_80276E0C lbl_80276DD8: /* 80276DD8 00272A38 7E A3 AB 78 */ mr r3, r21 /* 80276DDC 00272A3C 7E C4 B3 78 */ mr r4, r22 /* 80276DE0 00272A40 7E E5 BB 78 */ mr r5, r23 /* 80276DE4 00272A44 7F 06 C3 78 */ mr r6, r24 /* 80276DE8 00272A48 7F 27 CB 78 */ mr r7, r25 /* 80276DEC 00272A4C 7F 48 D3 78 */ mr r8, r26 /* 80276DF0 00272A50 4B FF FC 5D */ bl __SITransfer /* 80276DF4 00272A54 2C 03 00 00 */ cmpwi r3, 0 /* 80276DF8 00272A58 41 82 00 14 */ beq lbl_80276E0C /* 80276DFC 00272A5C 7F C3 F3 78 */ mr r3, r30 /* 80276E00 00272A60 4B FF 79 85 */ bl OSRestoreInterrupts /* 80276E04 00272A64 38 60 00 01 */ li r3, 1 /* 80276E08 00272A68 48 00 00 30 */ b lbl_80276E38 lbl_80276E0C: /* 80276E0C 00272A6C 92 BD 00 00 */ stw r21, 0(r29) /* 80276E10 00272A70 7F C3 F3 78 */ mr r3, r30 /* 80276E14 00272A74 92 DD 00 04 */ stw r22, 4(r29) /* 80276E18 00272A78 92 FD 00 08 */ stw r23, 8(r29) /* 80276E1C 00272A7C 93 1D 00 0C */ stw r24, 0xc(r29) /* 80276E20 00272A80 93 3D 00 10 */ stw r25, 0x10(r29) /* 80276E24 00272A84 93 5D 00 14 */ stw r26, 0x14(r29) /* 80276E28 00272A88 93 9D 00 1C */ stw r28, 0x1c(r29) /* 80276E2C 00272A8C 93 7D 00 18 */ stw r27, 0x18(r29) /* 80276E30 00272A90 4B FF 79 55 */ bl OSRestoreInterrupts /* 80276E34 00272A94 38 60 00 01 */ li r3, 1 lbl_80276E38: /* 80276E38 00272A98 39 61 00 40 */ addi r11, r1, 0x40 /* 80276E3C 00272A9C 4B F5 03 21 */ bl _restgpr_21 /* 80276E40 00272AA0 80 01 00 44 */ lwz r0, 0x44(r1) /* 80276E44 00272AA4 7C 08 03 A6 */ mtlr r0 /* 80276E48 00272AA8 38 21 00 40 */ addi r1, r1, 0x40 /* 80276E4C 00272AAC 4E 80 00 20 */ blr .global GetTypeCallback GetTypeCallback: /* 80276E50 00272AB0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80276E54 00272AB4 7C 08 02 A6 */ mflr r0 /* 80276E58 00272AB8 90 01 00 24 */ stw r0, 0x24(r1) /* 80276E5C 00272ABC 39 61 00 20 */ addi r11, r1, 0x20 /* 80276E60 00272AC0 4B F5 02 C5 */ bl _savegpr_26 /* 80276E64 00272AC4 3F E0 80 43 */ lis r31, lbl_80433FD0@ha /* 80276E68 00272AC8 3F C0 80 51 */ lis r30, lbl_80515580@ha /* 80276E6C 00272ACC 54 7D 10 3A */ slwi r29, r3, 2 /* 80276E70 00272AD0 7C 7A 1B 78 */ mr r26, r3 /* 80276E74 00272AD4 3B FF 3F D0 */ addi r31, r31, lbl_80433FD0@l /* 80276E78 00272AD8 7C 9B 23 78 */ mr r27, r4 /* 80276E7C 00272ADC 7C 1F E8 2E */ lwzx r0, r31, r29 /* 80276E80 00272AE0 3B DE 55 80 */ addi r30, r30, lbl_80515580@l /* 80276E84 00272AE4 54 00 06 6E */ rlwinm r0, r0, 0, 0x19, 0x17 /* 80276E88 00272AE8 7C 00 23 78 */ or r0, r0, r4 /* 80276E8C 00272AEC 7C 1F E9 2E */ stwx r0, r31, r29 /* 80276E90 00272AF0 4B FF B9 49 */ bl __OSGetSystemTime /* 80276E94 00272AF4 57 45 18 38 */ slwi r5, r26, 3 /* 80276E98 00272AF8 38 1E 00 A0 */ addi r0, r30, 0xa0 /* 80276E9C 00272AFC 7C C0 2A 14 */ add r6, r0, r5 /* 80276EA0 00272B00 7F 9F E8 2E */ lwzx r28, r31, r29 /* 80276EA4 00272B04 90 86 00 04 */ stw r4, 4(r6) /* 80276EA8 00272B08 3C A0 80 00 */ lis r5, 0x8000 /* 80276EAC 00272B0C 57 60 07 3F */ clrlwi. r0, r27, 0x1c /* 80276EB0 00272B10 80 8D A8 AC */ lwz r4, lbl_8063FB6C-_SDA_BASE_(r13) /* 80276EB4 00272B14 7C A5 D4 30 */ srw r5, r5, r26 /* 80276EB8 00272B18 90 66 00 00 */ stw r3, 0(r6) /* 80276EBC 00272B1C 7C 80 28 78 */ andc r0, r4, r5 /* 80276EC0 00272B20 90 0D A8 AC */ stw r0, lbl_8063FB6C-_SDA_BASE_(r13) /* 80276EC4 00272B24 7C 9B 28 38 */ and r27, r4, r5 /* 80276EC8 00272B28 40 82 00 24 */ bne lbl_80276EEC /* 80276ECC 00272B2C 57 83 00 C8 */ rlwinm r3, r28, 0, 3, 4 /* 80276ED0 00272B30 3C 03 F8 00 */ addis r0, r3, 0xf800 /* 80276ED4 00272B34 28 00 00 00 */ cmplwi r0, 0 /* 80276ED8 00272B38 40 82 00 14 */ bne lbl_80276EEC /* 80276EDC 00272B3C 57 80 00 01 */ rlwinm. r0, r28, 0, 0, 0 /* 80276EE0 00272B40 41 82 00 0C */ beq lbl_80276EEC /* 80276EE4 00272B44 57 80 01 4B */ rlwinm. r0, r28, 0, 5, 5 /* 80276EE8 00272B48 41 82 00 5C */ beq lbl_80276F44 lbl_80276EEC: /* 80276EEC 00272B4C 7F 43 D3 78 */ mr r3, r26 /* 80276EF0 00272B50 38 80 00 00 */ li r4, 0 /* 80276EF4 00272B54 4B FF 9C AD */ bl OSSetWirelessID /* 80276EF8 00272B58 7F 9F E8 2E */ lwzx r28, r31, r29 /* 80276EFC 00272B5C 57 43 20 36 */ slwi r3, r26, 4 /* 80276F00 00272B60 38 1E 01 E0 */ addi r0, r30, 0x1e0 /* 80276F04 00272B64 3B A0 00 00 */ li r29, 0 /* 80276F08 00272B68 7F C0 1A 14 */ add r30, r0, r3 /* 80276F0C 00272B6C 3B 60 00 00 */ li r27, 0 lbl_80276F10: /* 80276F10 00272B70 81 9E 00 00 */ lwz r12, 0(r30) /* 80276F14 00272B74 2C 0C 00 00 */ cmpwi r12, 0 /* 80276F18 00272B78 41 82 00 18 */ beq lbl_80276F30 /* 80276F1C 00272B7C 7F 43 D3 78 */ mr r3, r26 /* 80276F20 00272B80 7F 84 E3 78 */ mr r4, r28 /* 80276F24 00272B84 93 7E 00 00 */ stw r27, 0(r30) /* 80276F28 00272B88 7D 89 03 A6 */ mtctr r12 /* 80276F2C 00272B8C 4E 80 04 21 */ bctrl lbl_80276F30: /* 80276F30 00272B90 3B BD 00 01 */ addi r29, r29, 1 /* 80276F34 00272B94 3B DE 00 04 */ addi r30, r30, 4 /* 80276F38 00272B98 2C 1D 00 04 */ cmpwi r29, 4 /* 80276F3C 00272B9C 41 80 FF D4 */ blt lbl_80276F10 /* 80276F40 00272BA0 48 00 01 A8 */ b lbl_802770E8 lbl_80276F44: /* 80276F44 00272BA4 7F 43 D3 78 */ mr r3, r26 /* 80276F48 00272BA8 4B FF 9B E1 */ bl OSGetWirelessID /* 80276F4C 00272BAC 2C 1B 00 00 */ cmpwi r27, 0 /* 80276F50 00272BB0 54 7B 42 2E */ rlwinm r27, r3, 8, 8, 0x17 /* 80276F54 00272BB4 41 82 00 54 */ beq lbl_80276FA8 /* 80276F58 00272BB8 57 60 02 D7 */ rlwinm. r0, r27, 0, 0xb, 0xb /* 80276F5C 00272BBC 41 82 00 4C */ beq lbl_80276FA8 /* 80276F60 00272BC0 3C 60 00 D0 */ lis r3, 0x00CFFF00@ha /* 80276F64 00272BC4 3D 00 80 27 */ lis r8, GetTypeCallback@ha /* 80276F68 00272BC8 38 03 FF 00 */ addi r0, r3, 0x00CFFF00@l /* 80276F6C 00272BCC 38 9E 01 D0 */ addi r4, r30, 0x1d0 /* 80276F70 00272BD0 7F 60 00 38 */ and r0, r27, r0 /* 80276F74 00272BD4 7C DF EA 14 */ add r6, r31, r29 /* 80276F78 00272BD8 64 03 4E 10 */ oris r3, r0, 0x4e10 /* 80276F7C 00272BDC 39 08 6E 50 */ addi r8, r8, GetTypeCallback@l /* 80276F80 00272BE0 38 00 00 80 */ li r0, 0x80 /* 80276F84 00272BE4 7C 64 E9 6E */ stwux r3, r4, r29 /* 80276F88 00272BE8 7F 43 D3 78 */ mr r3, r26 /* 80276F8C 00272BEC 38 A0 00 03 */ li r5, 3 /* 80276F90 00272BF0 7C 1F E9 2E */ stwx r0, r31, r29 /* 80276F94 00272BF4 38 E0 00 03 */ li r7, 3 /* 80276F98 00272BF8 39 40 00 00 */ li r10, 0 /* 80276F9C 00272BFC 39 20 00 00 */ li r9, 0 /* 80276FA0 00272C00 4B FF FD 45 */ bl SITransfer /* 80276FA4 00272C04 48 00 01 44 */ b lbl_802770E8 lbl_80276FA8: /* 80276FA8 00272C08 57 80 02 D7 */ rlwinm. r0, r28, 0, 0xb, 0xb /* 80276FAC 00272C0C 41 82 00 7C */ beq lbl_80277028 /* 80276FB0 00272C10 3C 60 00 D0 */ lis r3, 0x00CFFF00@ha /* 80276FB4 00272C14 38 03 FF 00 */ addi r0, r3, 0x00CFFF00@l /* 80276FB8 00272C18 7F 83 00 38 */ and r3, r28, r0 /* 80276FBC 00272C1C 7F 60 00 38 */ and r0, r27, r0 /* 80276FC0 00272C20 7C 00 18 40 */ cmplw r0, r3 /* 80276FC4 00272C24 41 82 00 DC */ beq lbl_802770A0 /* 80276FC8 00272C28 57 60 02 D7 */ rlwinm. r0, r27, 0, 0xb, 0xb /* 80276FCC 00272C2C 40 82 00 14 */ bne lbl_80276FE0 /* 80276FD0 00272C30 64 7B 00 10 */ oris r27, r3, 0x10 /* 80276FD4 00272C34 7F 43 D3 78 */ mr r3, r26 /* 80276FD8 00272C38 57 64 C4 3E */ rlwinm r4, r27, 0x18, 0x10, 0x1f /* 80276FDC 00272C3C 4B FF 9B C5 */ bl OSSetWirelessID lbl_80276FE0: /* 80276FE0 00272C40 3C 60 80 43 */ lis r3, lbl_80433FD0@ha /* 80276FE4 00272C44 38 1E 01 D0 */ addi r0, r30, 0x1d0 /* 80276FE8 00272C48 38 63 3F D0 */ addi r3, r3, lbl_80433FD0@l /* 80276FEC 00272C4C 3D 00 80 27 */ lis r8, GetTypeCallback@ha /* 80276FF0 00272C50 7C 80 EA 14 */ add r4, r0, r29 /* 80276FF4 00272C54 67 65 4E 00 */ oris r5, r27, 0x4e00 /* 80276FF8 00272C58 7C C3 EA 14 */ add r6, r3, r29 /* 80276FFC 00272C5C 38 00 00 80 */ li r0, 0x80 /* 80277000 00272C60 90 A4 00 00 */ stw r5, 0(r4) /* 80277004 00272C64 7F 43 D3 78 */ mr r3, r26 /* 80277008 00272C68 39 08 6E 50 */ addi r8, r8, GetTypeCallback@l /* 8027700C 00272C6C 38 A0 00 03 */ li r5, 3 /* 80277010 00272C70 90 06 00 00 */ stw r0, 0(r6) /* 80277014 00272C74 38 E0 00 03 */ li r7, 3 /* 80277018 00272C78 39 40 00 00 */ li r10, 0 /* 8027701C 00272C7C 39 20 00 00 */ li r9, 0 /* 80277020 00272C80 4B FF FC C5 */ bl SITransfer /* 80277024 00272C84 48 00 00 C4 */ b lbl_802770E8 lbl_80277028: /* 80277028 00272C88 57 80 00 43 */ rlwinm. r0, r28, 0, 1, 1 /* 8027702C 00272C8C 41 82 00 68 */ beq lbl_80277094 /* 80277030 00272C90 3C 80 00 D0 */ lis r4, 0x00CFFF00@ha /* 80277034 00272C94 7F 43 D3 78 */ mr r3, r26 /* 80277038 00272C98 38 04 FF 00 */ addi r0, r4, 0x00CFFF00@l /* 8027703C 00272C9C 7F 9B 00 38 */ and r27, r28, r0 /* 80277040 00272CA0 67 7B 00 10 */ oris r27, r27, 0x10 /* 80277044 00272CA4 57 64 C4 3E */ rlwinm r4, r27, 0x18, 0x10, 0x1f /* 80277048 00272CA8 4B FF 9B 59 */ bl OSSetWirelessID /* 8027704C 00272CAC 3C 60 80 43 */ lis r3, lbl_80433FD0@ha /* 80277050 00272CB0 38 1E 01 D0 */ addi r0, r30, 0x1d0 /* 80277054 00272CB4 38 63 3F D0 */ addi r3, r3, lbl_80433FD0@l /* 80277058 00272CB8 3D 00 80 27 */ lis r8, GetTypeCallback@ha /* 8027705C 00272CBC 7C 80 EA 14 */ add r4, r0, r29 /* 80277060 00272CC0 67 65 4E 00 */ oris r5, r27, 0x4e00 /* 80277064 00272CC4 7C C3 EA 14 */ add r6, r3, r29 /* 80277068 00272CC8 38 00 00 80 */ li r0, 0x80 /* 8027706C 00272CCC 90 A4 00 00 */ stw r5, 0(r4) /* 80277070 00272CD0 7F 43 D3 78 */ mr r3, r26 /* 80277074 00272CD4 39 08 6E 50 */ addi r8, r8, GetTypeCallback@l /* 80277078 00272CD8 38 A0 00 03 */ li r5, 3 /* 8027707C 00272CDC 90 06 00 00 */ stw r0, 0(r6) /* 80277080 00272CE0 38 E0 00 03 */ li r7, 3 /* 80277084 00272CE4 39 40 00 00 */ li r10, 0 /* 80277088 00272CE8 39 20 00 00 */ li r9, 0 /* 8027708C 00272CEC 4B FF FC 59 */ bl SITransfer /* 80277090 00272CF0 48 00 00 58 */ b lbl_802770E8 lbl_80277094: /* 80277094 00272CF4 7F 43 D3 78 */ mr r3, r26 /* 80277098 00272CF8 38 80 00 00 */ li r4, 0 /* 8027709C 00272CFC 4B FF 9B 05 */ bl OSSetWirelessID lbl_802770A0: /* 802770A0 00272D00 7F 9F E8 2E */ lwzx r28, r31, r29 /* 802770A4 00272D04 57 43 20 36 */ slwi r3, r26, 4 /* 802770A8 00272D08 38 1E 01 E0 */ addi r0, r30, 0x1e0 /* 802770AC 00272D0C 3B A0 00 00 */ li r29, 0 /* 802770B0 00272D10 7F C0 1A 14 */ add r30, r0, r3 /* 802770B4 00272D14 3B 60 00 00 */ li r27, 0 lbl_802770B8: /* 802770B8 00272D18 81 9E 00 00 */ lwz r12, 0(r30) /* 802770BC 00272D1C 2C 0C 00 00 */ cmpwi r12, 0 /* 802770C0 00272D20 41 82 00 18 */ beq lbl_802770D8 /* 802770C4 00272D24 7F 43 D3 78 */ mr r3, r26 /* 802770C8 00272D28 7F 84 E3 78 */ mr r4, r28 /* 802770CC 00272D2C 93 7E 00 00 */ stw r27, 0(r30) /* 802770D0 00272D30 7D 89 03 A6 */ mtctr r12 /* 802770D4 00272D34 4E 80 04 21 */ bctrl lbl_802770D8: /* 802770D8 00272D38 3B BD 00 01 */ addi r29, r29, 1 /* 802770DC 00272D3C 3B DE 00 04 */ addi r30, r30, 4 /* 802770E0 00272D40 2C 1D 00 04 */ cmpwi r29, 4 /* 802770E4 00272D44 41 80 FF D4 */ blt lbl_802770B8 lbl_802770E8: /* 802770E8 00272D48 39 61 00 20 */ addi r11, r1, 0x20 /* 802770EC 00272D4C 4B F5 00 85 */ bl _restgpr_26 /* 802770F0 00272D50 80 01 00 24 */ lwz r0, 0x24(r1) /* 802770F4 00272D54 7C 08 03 A6 */ mtlr r0 /* 802770F8 00272D58 38 21 00 20 */ addi r1, r1, 0x20 /* 802770FC 00272D5C 4E 80 00 20 */ blr .global SIGetType SIGetType: /* 80277100 00272D60 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80277104 00272D64 7C 08 02 A6 */ mflr r0 /* 80277108 00272D68 90 01 00 24 */ stw r0, 0x24(r1) /* 8027710C 00272D6C 39 61 00 20 */ addi r11, r1, 0x20 /* 80277110 00272D70 4B F5 00 19 */ bl _savegpr_27 /* 80277114 00272D74 7C 7B 1B 78 */ mr r27, r3 /* 80277118 00272D78 4B FF 76 45 */ bl OSDisableInterrupts /* 8027711C 00272D7C 3C A0 80 43 */ lis r5, lbl_80433FD0@ha /* 80277120 00272D80 3C 80 80 51 */ lis r4, lbl_80515620@ha /* 80277124 00272D84 57 66 10 3A */ slwi r6, r27, 2 /* 80277128 00272D88 57 60 18 38 */ slwi r0, r27, 3 /* 8027712C 00272D8C 38 A5 3F D0 */ addi r5, r5, lbl_80433FD0@l /* 80277130 00272D90 38 84 56 20 */ addi r4, r4, lbl_80515620@l /* 80277134 00272D94 7F 85 30 2E */ lwzx r28, r5, r6 /* 80277138 00272D98 7F C5 32 14 */ add r30, r5, r6 /* 8027713C 00272D9C 7C 7D 1B 78 */ mr r29, r3 /* 80277140 00272DA0 7F E4 02 14 */ add r31, r4, r0 /* 80277144 00272DA4 4B FF B6 95 */ bl __OSGetSystemTime /* 80277148 00272DA8 80 DF 00 04 */ lwz r6, 4(r31) /* 8027714C 00272DAC 3C A0 80 43 */ lis r5, lbl_80433FB8@ha /* 80277150 00272DB0 80 1F 00 00 */ lwz r0, 0(r31) /* 80277154 00272DB4 38 A5 3F B8 */ addi r5, r5, lbl_80433FB8@l /* 80277158 00272DB8 7D 06 20 10 */ subfc r8, r6, r4 /* 8027715C 00272DBC 80 85 00 04 */ lwz r4, 4(r5) /* 80277160 00272DC0 7C E0 19 10 */ subfe r7, r0, r3 /* 80277164 00272DC4 38 60 00 80 */ li r3, 0x80 /* 80277168 00272DC8 7C 60 DE 30 */ sraw r0, r3, r27 /* 8027716C 00272DCC 7C 80 00 39 */ and. r0, r4, r0 /* 80277170 00272DD0 41 82 00 34 */ beq lbl_802771A4 /* 80277174 00272DD4 28 1C 00 08 */ cmplwi r28, 8 /* 80277178 00272DD8 41 82 00 20 */ beq lbl_80277198 /* 8027717C 00272DDC 4B FF B6 5D */ bl __OSGetSystemTime /* 80277180 00272DE0 90 9F 00 04 */ stw r4, 4(r31) /* 80277184 00272DE4 90 7F 00 00 */ stw r3, 0(r31) /* 80277188 00272DE8 7F A3 EB 78 */ mr r3, r29 /* 8027718C 00272DEC 4B FF 75 F9 */ bl OSRestoreInterrupts /* 80277190 00272DF0 7F 83 E3 78 */ mr r3, r28 /* 80277194 00272DF4 48 00 01 08 */ b lbl_8027729C lbl_80277198: /* 80277198 00272DF8 90 7E 00 00 */ stw r3, 0(r30) /* 8027719C 00272DFC 3B 80 00 80 */ li r28, 0x80 /* 802771A0 00272E00 48 00 00 98 */ b lbl_80277238 lbl_802771A4: /* 802771A4 00272E04 3C 80 80 00 */ lis r4, 0x800000F8@ha /* 802771A8 00272E08 3C 60 10 62 */ lis r3, 0x10624DD3@ha /* 802771AC 00272E0C 80 A4 00 F8 */ lwz r5, 0x800000F8@l(r4) /* 802771B0 00272E10 38 C3 4D D3 */ addi r6, r3, 0x10624DD3@l /* 802771B4 00272E14 38 00 00 00 */ li r0, 0 /* 802771B8 00272E18 6C E4 80 00 */ xoris r4, r7, 0x8000 /* 802771BC 00272E1C 54 A3 F0 BE */ srwi r3, r5, 2 /* 802771C0 00272E20 7C 66 18 16 */ mulhwu r3, r6, r3 /* 802771C4 00272E24 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 802771C8 00272E28 54 65 D1 BE */ srwi r5, r3, 6 /* 802771CC 00272E2C 1C 65 00 32 */ mulli r3, r5, 0x32 /* 802771D0 00272E30 7C 68 18 10 */ subfc r3, r8, r3 /* 802771D4 00272E34 7C 84 01 10 */ subfe r4, r4, r0 /* 802771D8 00272E38 7C 80 01 10 */ subfe r4, r0, r0 /* 802771DC 00272E3C 7C 84 00 D1 */ neg. r4, r4 /* 802771E0 00272E40 40 82 00 1C */ bne lbl_802771FC /* 802771E4 00272E44 28 1C 00 08 */ cmplwi r28, 8 /* 802771E8 00272E48 41 82 00 14 */ beq lbl_802771FC /* 802771EC 00272E4C 7F A3 EB 78 */ mr r3, r29 /* 802771F0 00272E50 4B FF 75 95 */ bl OSRestoreInterrupts /* 802771F4 00272E54 7F 83 E3 78 */ mr r3, r28 /* 802771F8 00272E58 48 00 00 A4 */ b lbl_8027729C lbl_802771FC: /* 802771FC 00272E5C 1C 65 00 4B */ mulli r3, r5, 0x4b /* 80277200 00272E60 38 00 00 00 */ li r0, 0 /* 80277204 00272E64 6C E4 80 00 */ xoris r4, r7, 0x8000 /* 80277208 00272E68 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 8027720C 00272E6C 7C 68 18 10 */ subfc r3, r8, r3 /* 80277210 00272E70 7C 84 01 10 */ subfe r4, r4, r0 /* 80277214 00272E74 7C 80 01 10 */ subfe r4, r0, r0 /* 80277218 00272E78 7C 84 00 D1 */ neg. r4, r4 /* 8027721C 00272E7C 40 82 00 10 */ bne lbl_8027722C /* 80277220 00272E80 38 00 00 80 */ li r0, 0x80 /* 80277224 00272E84 90 1E 00 00 */ stw r0, 0(r30) /* 80277228 00272E88 48 00 00 10 */ b lbl_80277238 lbl_8027722C: /* 8027722C 00272E8C 38 00 00 80 */ li r0, 0x80 /* 80277230 00272E90 3B 80 00 80 */ li r28, 0x80 /* 80277234 00272E94 90 1E 00 00 */ stw r0, 0(r30) lbl_80277238: /* 80277238 00272E98 4B FF B5 A1 */ bl __OSGetSystemTime /* 8027723C 00272E9C 90 9F 00 04 */ stw r4, 4(r31) /* 80277240 00272EA0 3C 80 43 1C */ lis r4, 0x431BDE83@ha /* 80277244 00272EA4 39 24 DE 83 */ addi r9, r4, 0x431BDE83@l /* 80277248 00272EA8 3D 00 80 27 */ lis r8, GetTypeCallback@ha /* 8027724C 00272EAC 90 7F 00 00 */ stw r3, 0(r31) /* 80277250 00272EB0 3C A0 80 00 */ lis r5, 0x800000F8@ha /* 80277254 00272EB4 7F 63 DB 78 */ mr r3, r27 /* 80277258 00272EB8 7F C6 F3 78 */ mr r6, r30 /* 8027725C 00272EBC 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5) /* 80277260 00272EC0 39 08 6E 50 */ addi r8, r8, GetTypeCallback@l /* 80277264 00272EC4 38 8D A8 A8 */ addi r4, r13, lbl_8063FB68-_SDA_BASE_ /* 80277268 00272EC8 38 A0 00 01 */ li r5, 1 /* 8027726C 00272ECC 54 00 F0 BE */ srwi r0, r0, 2 /* 80277270 00272ED0 38 E0 00 03 */ li r7, 3 /* 80277274 00272ED4 7C 09 00 16 */ mulhwu r0, r9, r0 /* 80277278 00272ED8 39 20 00 00 */ li r9, 0 /* 8027727C 00272EDC 54 0A 8B FE */ srwi r10, r0, 0xf /* 80277280 00272EE0 54 00 BA 72 */ rlwinm r0, r0, 0x17, 9, 0x19 /* 80277284 00272EE4 7C 00 52 14 */ add r0, r0, r10 /* 80277288 00272EE8 54 0A E8 FE */ srwi r10, r0, 3 /* 8027728C 00272EEC 4B FF FA 59 */ bl SITransfer /* 80277290 00272EF0 7F A3 EB 78 */ mr r3, r29 /* 80277294 00272EF4 4B FF 74 F1 */ bl OSRestoreInterrupts /* 80277298 00272EF8 7F 83 E3 78 */ mr r3, r28 lbl_8027729C: /* 8027729C 00272EFC 39 61 00 20 */ addi r11, r1, 0x20 /* 802772A0 00272F00 4B F4 FE D5 */ bl _restgpr_27 /* 802772A4 00272F04 80 01 00 24 */ lwz r0, 0x24(r1) /* 802772A8 00272F08 7C 08 03 A6 */ mtlr r0 /* 802772AC 00272F0C 38 21 00 20 */ addi r1, r1, 0x20 /* 802772B0 00272F10 4E 80 00 20 */ blr