.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global gpiResetProfile gpiResetProfile: /* 8033DD6C 003399CC 38 00 00 00 */ li r0, 0 /* 8033DD70 003399D0 38 60 00 01 */ li r3, 1 /* 8033DD74 003399D4 90 04 00 08 */ stw r0, 8(r4) /* 8033DD78 003399D8 90 04 00 10 */ stw r0, 0x10(r4) /* 8033DD7C 003399DC 90 04 00 14 */ stw r0, 0x14(r4) /* 8033DD80 003399E0 90 04 00 18 */ stw r0, 0x18(r4) /* 8033DD84 003399E4 4E 80 00 20 */ blr .global gpiReset gpiReset: /* 8033DD88 003399E8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8033DD8C 003399EC 7C 08 02 A6 */ mflr r0 /* 8033DD90 003399F0 90 01 00 24 */ stw r0, 0x24(r1) /* 8033DD94 003399F4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8033DD98 003399F8 3B E0 FF FF */ li r31, -1 /* 8033DD9C 003399FC 93 C1 00 18 */ stw r30, 0x18(r1) /* 8033DDA0 00339A00 3B C0 00 00 */ li r30, 0 /* 8033DDA4 00339A04 93 A1 00 14 */ stw r29, 0x14(r1) /* 8033DDA8 00339A08 93 81 00 10 */ stw r28, 0x10(r1) /* 8033DDAC 00339A0C 7C 7C 1B 78 */ mr r28, r3 /* 8033DDB0 00339A10 83 A3 00 00 */ lwz r29, 0(r3) /* 8033DDB4 00339A14 9B DD 01 10 */ stb r30, 0x110(r29) /* 8033DDB8 00339A18 9B DD 01 2F */ stb r30, 0x12f(r29) /* 8033DDBC 00339A1C 9B DD 01 44 */ stb r30, 0x144(r29) /* 8033DDC0 00339A20 93 FD 01 F0 */ stw r31, 0x1f0(r29) /* 8033DDC4 00339A24 93 DD 01 F4 */ stw r30, 0x1f4(r29) /* 8033DDC8 00339A28 93 DD 02 00 */ stw r30, 0x200(r29) /* 8033DDCC 00339A2C 93 DD 02 04 */ stw r30, 0x204(r29) /* 8033DDD0 00339A30 93 DD 01 FC */ stw r30, 0x1fc(r29) /* 8033DDD4 00339A34 80 7D 01 F8 */ lwz r3, 0x1f8(r29) /* 8033DDD8 00339A38 4B FF B5 61 */ bl gsifree /* 8033DDDC 00339A3C 93 DD 01 F8 */ stw r30, 0x1f8(r29) /* 8033DDE0 00339A40 93 DD 02 0C */ stw r30, 0x20c(r29) /* 8033DDE4 00339A44 80 7D 02 08 */ lwz r3, 0x208(r29) /* 8033DDE8 00339A48 4B FF B5 51 */ bl gsifree /* 8033DDEC 00339A4C 93 DD 02 08 */ stw r30, 0x208(r29) /* 8033DDF0 00339A50 93 DD 02 18 */ stw r30, 0x218(r29) /* 8033DDF4 00339A54 93 DD 02 1C */ stw r30, 0x21c(r29) /* 8033DDF8 00339A58 93 DD 02 14 */ stw r30, 0x214(r29) /* 8033DDFC 00339A5C 80 7D 02 10 */ lwz r3, 0x210(r29) /* 8033DE00 00339A60 4B FF B5 39 */ bl gsifree /* 8033DE04 00339A64 93 DD 02 10 */ stw r30, 0x210(r29) /* 8033DE08 00339A68 93 DD 04 64 */ stw r30, 0x464(r29) /* 8033DE0C 00339A6C 93 DD 04 68 */ stw r30, 0x468(r29) /* 8033DE10 00339A70 93 DD 04 60 */ stw r30, 0x460(r29) /* 8033DE14 00339A74 80 7D 04 5C */ lwz r3, 0x45c(r29) /* 8033DE18 00339A78 4B FF B5 21 */ bl gsifree /* 8033DE1C 00339A7C 93 DD 04 5C */ stw r30, 0x45c(r29) /* 8033DE20 00339A80 93 DD 04 74 */ stw r30, 0x474(r29) /* 8033DE24 00339A84 93 DD 04 78 */ stw r30, 0x478(r29) /* 8033DE28 00339A88 93 DD 04 70 */ stw r30, 0x470(r29) /* 8033DE2C 00339A8C 80 7D 04 6C */ lwz r3, 0x46c(r29) /* 8033DE30 00339A90 4B FF B5 09 */ bl gsifree /* 8033DE34 00339A94 93 DD 04 6C */ stw r30, 0x46c(r29) /* 8033DE38 00339A98 38 00 00 02 */ li r0, 2 /* 8033DE3C 00339A9C 93 FD 02 20 */ stw r31, 0x220(r29) /* 8033DE40 00339AA0 90 1D 02 28 */ stw r0, 0x228(r29) /* 8033DE44 00339AA4 48 00 00 0C */ b lbl_8033DE50 lbl_8033DE48: /* 8033DE48 00339AA8 7F 83 E3 78 */ mr r3, r28 /* 8033DE4C 00339AAC 48 00 62 11 */ bl gpiRemoveOperation lbl_8033DE50: /* 8033DE50 00339AB0 80 9D 04 40 */ lwz r4, 0x440(r29) /* 8033DE54 00339AB4 2C 04 00 00 */ cmpwi r4, 0 /* 8033DE58 00339AB8 40 82 FF F0 */ bne lbl_8033DE48 /* 8033DE5C 00339ABC 3B E0 00 00 */ li r31, 0 /* 8033DE60 00339AC0 3C 80 80 34 */ lis r4, gpiResetProfile@ha /* 8033DE64 00339AC4 93 FD 04 40 */ stw r31, 0x440(r29) /* 8033DE68 00339AC8 7F 83 E3 78 */ mr r3, r28 /* 8033DE6C 00339ACC 38 84 DD 6C */ addi r4, r4, gpiResetProfile@l /* 8033DE70 00339AD0 38 A0 00 00 */ li r5, 0 /* 8033DE74 00339AD4 93 FD 04 4C */ stw r31, 0x44c(r29) /* 8033DE78 00339AD8 48 00 7D 79 */ bl gpiProfileMap /* 8033DE7C 00339ADC 93 FD 01 9C */ stw r31, 0x19c(r29) /* 8033DE80 00339AE0 38 00 FF FF */ li r0, -1 /* 8033DE84 00339AE4 38 60 00 00 */ li r3, 0 /* 8033DE88 00339AE8 93 FD 01 A0 */ stw r31, 0x1a0(r29) /* 8033DE8C 00339AEC 93 FD 01 98 */ stw r31, 0x198(r29) /* 8033DE90 00339AF0 93 FD 02 2C */ stw r31, 0x22c(r29) /* 8033DE94 00339AF4 93 FD 04 38 */ stw r31, 0x438(r29) /* 8033DE98 00339AF8 93 FD 04 50 */ stw r31, 0x450(r29) /* 8033DE9C 00339AFC 90 1D 02 30 */ stw r0, 0x230(r29) /* 8033DEA0 00339B00 9B FD 02 34 */ stb r31, 0x234(r29) /* 8033DEA4 00339B04 9B FD 03 34 */ stb r31, 0x334(r29) /* 8033DEA8 00339B08 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8033DEAC 00339B0C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8033DEB0 00339B10 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8033DEB4 00339B14 83 81 00 10 */ lwz r28, 0x10(r1) /* 8033DEB8 00339B18 80 01 00 24 */ lwz r0, 0x24(r1) /* 8033DEBC 00339B1C 7C 08 03 A6 */ mtlr r0 /* 8033DEC0 00339B20 38 21 00 20 */ addi r1, r1, 0x20 /* 8033DEC4 00339B24 4E 80 00 20 */ blr .global gpiProcessConnectionManager gpiProcessConnectionManager: /* 8033DEC8 00339B28 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8033DECC 00339B2C 7C 08 02 A6 */ mflr r0 /* 8033DED0 00339B30 90 01 00 34 */ stw r0, 0x34(r1) /* 8033DED4 00339B34 39 61 00 30 */ addi r11, r1, 0x30 /* 8033DED8 00339B38 4B E8 92 51 */ bl _savegpr_27 /* 8033DEDC 00339B3C 3B E0 00 00 */ li r31, 0 /* 8033DEE0 00339B40 3F C0 80 45 */ lis r30, lbl_8044A688@ha /* 8033DEE4 00339B44 93 E1 00 08 */ stw r31, 8(r1) /* 8033DEE8 00339B48 7C 7C 1B 78 */ mr r28, r3 /* 8033DEEC 00339B4C 3B DE A6 88 */ addi r30, r30, lbl_8044A688@l /* 8033DEF0 00339B50 83 A3 00 00 */ lwz r29, 0(r3) lbl_8033DEF4: /* 8033DEF4 00339B54 7F 83 E3 78 */ mr r3, r28 /* 8033DEF8 00339B58 38 9D 02 10 */ addi r4, r29, 0x210 /* 8033DEFC 00339B5C 48 00 44 31 */ bl gpiAddLocalInfo /* 8033DF00 00339B60 80 9D 01 F0 */ lwz r4, 0x1f0(r29) /* 8033DF04 00339B64 7F 83 E3 78 */ mr r3, r28 /* 8033DF08 00339B68 38 BD 02 10 */ addi r5, r29, 0x210 /* 8033DF0C 00339B6C 38 C1 00 08 */ addi r6, r1, 8 /* 8033DF10 00339B70 38 E0 00 01 */ li r7, 1 /* 8033DF14 00339B74 39 0D 8F 50 */ addi r8, r13, lbl_8063E210-_SDA_BASE_ /* 8033DF18 00339B78 48 00 1A 7D */ bl gpiSendFromBuffer /* 8033DF1C 00339B7C 2C 03 00 00 */ cmpwi r3, 0 /* 8033DF20 00339B80 41 82 00 08 */ beq lbl_8033DF28 /* 8033DF24 00339B84 48 00 02 70 */ b lbl_8033E194 lbl_8033DF28: /* 8033DF28 00339B88 80 9D 01 F0 */ lwz r4, 0x1f0(r29) /* 8033DF2C 00339B8C 7F 83 E3 78 */ mr r3, r28 /* 8033DF30 00339B90 38 BD 01 F8 */ addi r5, r29, 0x1f8 /* 8033DF34 00339B94 38 C1 00 0C */ addi r6, r1, 0xc /* 8033DF38 00339B98 38 E1 00 08 */ addi r7, r1, 8 /* 8033DF3C 00339B9C 39 0D 8F 50 */ addi r8, r13, lbl_8063E210-_SDA_BASE_ /* 8033DF40 00339BA0 48 00 19 15 */ bl gpiRecvToBuffer /* 8033DF44 00339BA4 2C 03 00 00 */ cmpwi r3, 0 /* 8033DF48 00339BA8 41 82 01 C4 */ beq lbl_8033E10C /* 8033DF4C 00339BAC 2C 03 00 03 */ cmpwi r3, 3 /* 8033DF50 00339BB0 40 82 02 44 */ bne lbl_8033E194 /* 8033DF54 00339BB4 7F 83 E3 78 */ mr r3, r28 /* 8033DF58 00339BB8 38 BE 00 00 */ addi r5, r30, 0 /* 8033DF5C 00339BBC 38 80 00 05 */ li r4, 5 /* 8033DF60 00339BC0 48 00 A4 A9 */ bl gpiSetError /* 8033DF64 00339BC4 7F 83 E3 78 */ mr r3, r28 /* 8033DF68 00339BC8 38 80 00 03 */ li r4, 3 /* 8033DF6C 00339BCC 38 A0 00 01 */ li r5, 1 /* 8033DF70 00339BD0 48 00 1C F9 */ bl gpiCallErrorCallback /* 8033DF74 00339BD4 38 60 00 03 */ li r3, 3 /* 8033DF78 00339BD8 48 00 02 1C */ b lbl_8033E194 /* 8033DF7C 00339BDC 48 00 02 18 */ b lbl_8033E194 /* 8033DF80 00339BE0 48 00 01 8C */ b lbl_8033E10C lbl_8033DF84: /* 8033DF84 00339BE4 9B E3 00 00 */ stb r31, 0(r3) /* 8033DF88 00339BE8 80 1D 01 F8 */ lwz r0, 0x1f8(r29) /* 8033DF8C 00339BEC 7C 80 18 50 */ subf r4, r0, r3 /* 8033DF90 00339BF0 90 81 00 0C */ stw r4, 0xc(r1) /* 8033DF94 00339BF4 80 1D 02 0C */ lwz r0, 0x20c(r29) /* 8033DF98 00339BF8 7C 04 00 00 */ cmpw r4, r0 /* 8033DF9C 00339BFC 40 81 00 4C */ ble lbl_8033DFE8 /* 8033DFA0 00339C00 2C 04 40 00 */ cmpwi r4, 0x4000 /* 8033DFA4 00339C04 38 60 40 00 */ li r3, 0x4000 /* 8033DFA8 00339C08 41 80 00 08 */ blt lbl_8033DFB0 /* 8033DFAC 00339C0C 7C 83 23 78 */ mr r3, r4 lbl_8033DFB0: /* 8033DFB0 00339C10 80 1D 02 0C */ lwz r0, 0x20c(r29) /* 8033DFB4 00339C14 7C 60 1A 14 */ add r3, r0, r3 /* 8033DFB8 00339C18 90 7D 02 0C */ stw r3, 0x20c(r29) /* 8033DFBC 00339C1C 38 83 00 01 */ addi r4, r3, 1 /* 8033DFC0 00339C20 80 7D 02 08 */ lwz r3, 0x208(r29) /* 8033DFC4 00339C24 4B FF B3 61 */ bl gsirealloc /* 8033DFC8 00339C28 2C 03 00 00 */ cmpwi r3, 0 /* 8033DFCC 00339C2C 40 82 00 18 */ bne lbl_8033DFE4 /* 8033DFD0 00339C30 7F 83 E3 78 */ mr r3, r28 /* 8033DFD4 00339C34 38 9E 00 2C */ addi r4, r30, 0x2c /* 8033DFD8 00339C38 48 00 A4 81 */ bl gpiSetErrorString /* 8033DFDC 00339C3C 38 60 00 01 */ li r3, 1 /* 8033DFE0 00339C40 48 00 01 B4 */ b lbl_8033E194 lbl_8033DFE4: /* 8033DFE4 00339C44 90 7D 02 08 */ stw r3, 0x208(r29) lbl_8033DFE8: /* 8033DFE8 00339C48 80 A1 00 0C */ lwz r5, 0xc(r1) /* 8033DFEC 00339C4C 80 7D 02 08 */ lwz r3, 0x208(r29) /* 8033DFF0 00339C50 80 9D 01 F8 */ lwz r4, 0x1f8(r29) /* 8033DFF4 00339C54 38 A5 00 01 */ addi r5, r5, 1 /* 8033DFF8 00339C58 4B CC 60 09 */ bl memcpy /* 8033DFFC 00339C5C 80 7D 01 F8 */ lwz r3, 0x1f8(r29) /* 8033E000 00339C60 38 9B 00 07 */ addi r4, r27, 7 /* 8033E004 00339C64 80 1D 02 00 */ lwz r0, 0x200(r29) /* 8033E008 00339C68 7C 63 20 50 */ subf r3, r3, r4 /* 8033E00C 00339C6C 7C 63 00 50 */ subf r3, r3, r0 /* 8033E010 00339C70 90 7D 02 00 */ stw r3, 0x200(r29) /* 8033E014 00339C74 38 A3 00 01 */ addi r5, r3, 1 /* 8033E018 00339C78 80 7D 01 F8 */ lwz r3, 0x1f8(r29) /* 8033E01C 00339C7C 4B E8 C2 59 */ bl memmove /* 8033E020 00339C80 83 7D 02 08 */ lwz r27, 0x208(r29) /* 8033E024 00339C84 38 8D 8F 54 */ addi r4, r13, lbl_8063E214-_SDA_BASE_ /* 8033E028 00339C88 7F 63 DB 78 */ mr r3, r27 /* 8033E02C 00339C8C 4B E9 07 75 */ bl strstr /* 8033E030 00339C90 2C 03 00 00 */ cmpwi r3, 0 /* 8033E034 00339C94 41 82 00 40 */ beq lbl_8033E074 /* 8033E038 00339C98 38 63 00 04 */ addi r3, r3, 4 /* 8033E03C 00339C9C 4B E9 26 D1 */ bl atoi /* 8033E040 00339CA0 7C 65 1B 78 */ mr r5, r3 /* 8033E044 00339CA4 7F 83 E3 78 */ mr r3, r28 /* 8033E048 00339CA8 38 81 00 10 */ addi r4, r1, 0x10 /* 8033E04C 00339CAC 48 00 60 5D */ bl gpiFindOperationByID /* 8033E050 00339CB0 2C 03 00 00 */ cmpwi r3, 0 /* 8033E054 00339CB4 41 82 00 B8 */ beq lbl_8033E10C /* 8033E058 00339CB8 80 81 00 10 */ lwz r4, 0x10(r1) /* 8033E05C 00339CBC 7F 83 E3 78 */ mr r3, r28 /* 8033E060 00339CC0 80 BD 02 08 */ lwz r5, 0x208(r29) /* 8033E064 00339CC4 48 00 60 D5 */ bl gpiProcessOperation /* 8033E068 00339CC8 2C 03 00 00 */ cmpwi r3, 0 /* 8033E06C 00339CCC 41 82 00 A0 */ beq lbl_8033E10C /* 8033E070 00339CD0 48 00 01 24 */ b lbl_8033E194 lbl_8033E074: /* 8033E074 00339CD4 7F 83 E3 78 */ mr r3, r28 /* 8033E078 00339CD8 7F 64 DB 78 */ mr r4, r27 /* 8033E07C 00339CDC 38 A0 00 01 */ li r5, 1 /* 8033E080 00339CE0 48 00 9F 15 */ bl gpiCheckForError /* 8033E084 00339CE4 2C 03 00 00 */ cmpwi r3, 0 /* 8033E088 00339CE8 41 82 00 0C */ beq lbl_8033E094 /* 8033E08C 00339CEC 38 60 00 04 */ li r3, 4 /* 8033E090 00339CF0 48 00 01 04 */ b lbl_8033E194 lbl_8033E094: /* 8033E094 00339CF4 83 7D 02 08 */ lwz r27, 0x208(r29) /* 8033E098 00339CF8 38 8D 8F 5C */ addi r4, r13, lbl_8063E21C-_SDA_BASE_ /* 8033E09C 00339CFC 38 A0 00 04 */ li r5, 4 /* 8033E0A0 00339D00 7F 63 DB 78 */ mr r3, r27 /* 8033E0A4 00339D04 4B E9 04 C5 */ bl strncmp /* 8033E0A8 00339D08 2C 03 00 00 */ cmpwi r3, 0 /* 8033E0AC 00339D0C 40 82 00 1C */ bne lbl_8033E0C8 /* 8033E0B0 00339D10 7F 83 E3 78 */ mr r3, r28 /* 8033E0B4 00339D14 7F 64 DB 78 */ mr r4, r27 /* 8033E0B8 00339D18 48 00 02 99 */ bl gpiProcessRecvBuddyMessage /* 8033E0BC 00339D1C 2C 03 00 00 */ cmpwi r3, 0 /* 8033E0C0 00339D20 41 82 00 4C */ beq lbl_8033E10C /* 8033E0C4 00339D24 48 00 00 D0 */ b lbl_8033E194 lbl_8033E0C8: /* 8033E0C8 00339D28 7F 63 DB 78 */ mr r3, r27 /* 8033E0CC 00339D2C 38 8D 8F 64 */ addi r4, r13, lbl_8063E224-_SDA_BASE_ /* 8033E0D0 00339D30 38 A0 00 04 */ li r5, 4 /* 8033E0D4 00339D34 4B E9 04 95 */ bl strncmp /* 8033E0D8 00339D38 2C 03 00 00 */ cmpwi r3, 0 /* 8033E0DC 00339D3C 41 82 00 30 */ beq lbl_8033E10C /* 8033E0E0 00339D40 7F 63 DB 78 */ mr r3, r27 /* 8033E0E4 00339D44 38 8D 8F 6C */ addi r4, r13, lbl_8063E22C-_SDA_BASE_ /* 8033E0E8 00339D48 38 A0 00 04 */ li r5, 4 /* 8033E0EC 00339D4C 4B E9 04 7D */ bl strncmp /* 8033E0F0 00339D50 2C 03 00 00 */ cmpwi r3, 0 /* 8033E0F4 00339D54 40 82 00 18 */ bne lbl_8033E10C /* 8033E0F8 00339D58 7F 63 DB 78 */ mr r3, r27 /* 8033E0FC 00339D5C 38 BD 04 8C */ addi r5, r29, 0x48c /* 8033E100 00339D60 38 8D 8F 6C */ addi r4, r13, lbl_8063E22C-_SDA_BASE_ /* 8033E104 00339D64 38 C0 00 19 */ li r6, 0x19 /* 8033E108 00339D68 48 00 9F 85 */ bl gpiValueForKey lbl_8033E10C: /* 8033E10C 00339D6C 80 7D 01 F8 */ lwz r3, 0x1f8(r29) /* 8033E110 00339D70 38 8D 8F 78 */ addi r4, r13, lbl_8063E238-_SDA_BASE_ /* 8033E114 00339D74 4B E9 06 8D */ bl strstr /* 8033E118 00339D78 2C 03 00 00 */ cmpwi r3, 0 /* 8033E11C 00339D7C 7C 7B 1B 78 */ mr r27, r3 /* 8033E120 00339D80 40 82 FE 64 */ bne lbl_8033DF84 /* 8033E124 00339D84 80 01 00 08 */ lwz r0, 8(r1) /* 8033E128 00339D88 2C 00 00 00 */ cmpwi r0, 0 /* 8033E12C 00339D8C 41 82 00 40 */ beq lbl_8033E16C /* 8033E130 00339D90 80 1D 01 F4 */ lwz r0, 0x1f4(r29) /* 8033E134 00339D94 2C 00 00 05 */ cmpwi r0, 5 /* 8033E138 00339D98 41 82 00 34 */ beq lbl_8033E16C /* 8033E13C 00339D9C 38 00 00 04 */ li r0, 4 /* 8033E140 00339DA0 7F 83 E3 78 */ mr r3, r28 /* 8033E144 00339DA4 90 1D 01 F4 */ stw r0, 0x1f4(r29) /* 8033E148 00339DA8 38 BE 00 3C */ addi r5, r30, 0x3c /* 8033E14C 00339DAC 38 80 00 07 */ li r4, 7 /* 8033E150 00339DB0 48 00 A2 B9 */ bl gpiSetError /* 8033E154 00339DB4 7F 83 E3 78 */ mr r3, r28 /* 8033E158 00339DB8 38 80 00 03 */ li r4, 3 /* 8033E15C 00339DBC 38 A0 00 01 */ li r5, 1 /* 8033E160 00339DC0 48 00 1B 09 */ bl gpiCallErrorCallback /* 8033E164 00339DC4 38 60 00 00 */ li r3, 0 /* 8033E168 00339DC8 48 00 00 2C */ b lbl_8033E194 lbl_8033E16C: /* 8033E16C 00339DCC 7F 83 E3 78 */ mr r3, r28 /* 8033E170 00339DD0 48 00 5F 89 */ bl gpiOperationsAreBlocking /* 8033E174 00339DD4 2C 03 00 00 */ cmpwi r3, 0 /* 8033E178 00339DD8 7C 7B 1B 78 */ mr r27, r3 /* 8033E17C 00339DDC 41 82 00 0C */ beq lbl_8033E188 /* 8033E180 00339DE0 38 60 00 0A */ li r3, 0xa /* 8033E184 00339DE4 4B FF AE A1 */ bl msleep lbl_8033E188: /* 8033E188 00339DE8 2C 1B 00 00 */ cmpwi r27, 0 /* 8033E18C 00339DEC 40 82 FD 68 */ bne lbl_8033DEF4 /* 8033E190 00339DF0 38 60 00 00 */ li r3, 0 lbl_8033E194: /* 8033E194 00339DF4 39 61 00 30 */ addi r11, r1, 0x30 /* 8033E198 00339DF8 4B E8 8F DD */ bl _restgpr_27 /* 8033E19C 00339DFC 80 01 00 34 */ lwz r0, 0x34(r1) /* 8033E1A0 00339E00 7C 08 03 A6 */ mtlr r0 /* 8033E1A4 00339E04 38 21 00 30 */ addi r1, r1, 0x30 /* 8033E1A8 00339E08 4E 80 00 20 */ blr .global gpiProcess gpiProcess: /* 8033E1AC 00339E0C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8033E1B0 00339E10 7C 08 02 A6 */ mflr r0 /* 8033E1B4 00339E14 90 01 00 34 */ stw r0, 0x34(r1) /* 8033E1B8 00339E18 39 61 00 30 */ addi r11, r1, 0x30 /* 8033E1BC 00339E1C 4B E8 8F 6D */ bl _savegpr_27 /* 8033E1C0 00339E20 83 C3 00 00 */ lwz r30, 0(r3) /* 8033E1C4 00339E24 7C 7F 1B 78 */ mr r31, r3 /* 8033E1C8 00339E28 7C 9B 23 78 */ mr r27, r4 /* 8033E1CC 00339E2C 3B A0 00 00 */ li r29, 0 /* 8033E1D0 00339E30 80 1E 01 F4 */ lwz r0, 0x1f4(r30) /* 8033E1D4 00339E34 2C 00 00 01 */ cmpwi r0, 1 /* 8033E1D8 00339E38 40 82 00 80 */ bne lbl_8033E258 lbl_8033E1DC: /* 8033E1DC 00339E3C 7F E3 FB 78 */ mr r3, r31 /* 8033E1E0 00339E40 48 00 31 B1 */ bl gpiCheckConnect /* 8033E1E4 00339E44 2C 03 00 00 */ cmpwi r3, 0 /* 8033E1E8 00339E48 7C 7D 1B 78 */ mr r29, r3 /* 8033E1EC 00339E4C 38 60 00 00 */ li r3, 0 /* 8033E1F0 00339E50 40 82 00 1C */ bne lbl_8033E20C /* 8033E1F4 00339E54 2C 1B 00 00 */ cmpwi r27, 0 /* 8033E1F8 00339E58 41 82 00 14 */ beq lbl_8033E20C /* 8033E1FC 00339E5C 80 1E 01 F4 */ lwz r0, 0x1f4(r30) /* 8033E200 00339E60 2C 00 00 01 */ cmpwi r0, 1 /* 8033E204 00339E64 40 82 00 08 */ bne lbl_8033E20C /* 8033E208 00339E68 38 60 00 01 */ li r3, 1 lbl_8033E20C: /* 8033E20C 00339E6C 7C 03 00 D0 */ neg r0, r3 /* 8033E210 00339E70 7C 00 1B 78 */ or r0, r0, r3 /* 8033E214 00339E74 54 1C 0F FF */ rlwinm. r28, r0, 1, 0x1f, 0x1f /* 8033E218 00339E78 41 82 00 0C */ beq lbl_8033E224 /* 8033E21C 00339E7C 38 60 00 0A */ li r3, 0xa /* 8033E220 00339E80 4B FF AE 05 */ bl msleep lbl_8033E224: /* 8033E224 00339E84 2C 1C 00 00 */ cmpwi r28, 0 /* 8033E228 00339E88 40 82 FF B4 */ bne lbl_8033E1DC /* 8033E22C 00339E8C 2C 1D 00 00 */ cmpwi r29, 0 /* 8033E230 00339E90 41 82 00 28 */ beq lbl_8033E258 /* 8033E234 00339E94 7F E3 FB 78 */ mr r3, r31 /* 8033E238 00339E98 38 81 00 08 */ addi r4, r1, 8 /* 8033E23C 00339E9C 38 A0 00 01 */ li r5, 1 /* 8033E240 00339EA0 48 00 5E 69 */ bl gpiFindOperationByID /* 8033E244 00339EA4 2C 03 00 00 */ cmpwi r3, 0 /* 8033E248 00339EA8 41 82 00 10 */ beq lbl_8033E258 /* 8033E24C 00339EAC 80 61 00 08 */ lwz r3, 8(r1) /* 8033E250 00339EB0 38 00 00 04 */ li r0, 4 /* 8033E254 00339EB4 90 03 00 1C */ stw r0, 0x1c(r3) lbl_8033E258: /* 8033E258 00339EB8 80 1E 01 F4 */ lwz r0, 0x1f4(r30) /* 8033E25C 00339EBC 2C 00 00 03 */ cmpwi r0, 3 /* 8033E260 00339EC0 41 82 00 14 */ beq lbl_8033E274 /* 8033E264 00339EC4 2C 00 00 02 */ cmpwi r0, 2 /* 8033E268 00339EC8 41 82 00 0C */ beq lbl_8033E274 /* 8033E26C 00339ECC 2C 00 00 05 */ cmpwi r0, 5 /* 8033E270 00339ED0 40 82 00 2C */ bne lbl_8033E29C lbl_8033E274: /* 8033E274 00339ED4 2C 1D 00 00 */ cmpwi r29, 0 /* 8033E278 00339ED8 40 82 00 10 */ bne lbl_8033E288 /* 8033E27C 00339EDC 7F E3 FB 78 */ mr r3, r31 /* 8033E280 00339EE0 4B FF FC 49 */ bl gpiProcessConnectionManager /* 8033E284 00339EE4 7C 7D 1B 78 */ mr r29, r3 lbl_8033E288: /* 8033E288 00339EE8 2C 1D 00 00 */ cmpwi r29, 0 /* 8033E28C 00339EEC 40 82 00 10 */ bne lbl_8033E29C /* 8033E290 00339EF0 7F E3 FB 78 */ mr r3, r31 /* 8033E294 00339EF4 48 00 69 E9 */ bl gpiProcessPeers /* 8033E298 00339EF8 7C 7D 1B 78 */ mr r29, r3 lbl_8033E29C: /* 8033E29C 00339EFC 2C 1D 00 00 */ cmpwi r29, 0 /* 8033E2A0 00339F00 40 82 00 10 */ bne lbl_8033E2B0 /* 8033E2A4 00339F04 7F E3 FB 78 */ mr r3, r31 /* 8033E2A8 00339F08 48 00 99 45 */ bl gpiProcessSearches /* 8033E2AC 00339F0C 7C 7D 1B 78 */ mr r29, r3 lbl_8033E2B0: /* 8033E2B0 00339F10 80 1E 04 40 */ lwz r0, 0x440(r30) /* 8033E2B4 00339F14 90 01 00 08 */ stw r0, 8(r1) /* 8033E2B8 00339F18 48 00 00 38 */ b lbl_8033E2F0 lbl_8033E2BC: /* 8033E2BC 00339F1C 80 04 00 1C */ lwz r0, 0x1c(r4) /* 8033E2C0 00339F20 2C 00 00 00 */ cmpwi r0, 0 /* 8033E2C4 00339F24 41 82 00 24 */ beq lbl_8033E2E8 /* 8033E2C8 00339F28 7F E3 FB 78 */ mr r3, r31 /* 8033E2CC 00339F2C 48 00 58 99 */ bl gpiFailedOpCallback /* 8033E2D0 00339F30 80 81 00 08 */ lwz r4, 8(r1) /* 8033E2D4 00339F34 7F E3 FB 78 */ mr r3, r31 /* 8033E2D8 00339F38 80 04 00 20 */ lwz r0, 0x20(r4) /* 8033E2DC 00339F3C 90 01 00 08 */ stw r0, 8(r1) /* 8033E2E0 00339F40 48 00 5D 7D */ bl gpiRemoveOperation /* 8033E2E4 00339F44 48 00 00 0C */ b lbl_8033E2F0 lbl_8033E2E8: /* 8033E2E8 00339F48 80 04 00 20 */ lwz r0, 0x20(r4) /* 8033E2EC 00339F4C 90 01 00 08 */ stw r0, 8(r1) lbl_8033E2F0: /* 8033E2F0 00339F50 80 81 00 08 */ lwz r4, 8(r1) /* 8033E2F4 00339F54 2C 04 00 00 */ cmpwi r4, 0 /* 8033E2F8 00339F58 40 82 FF C4 */ bne lbl_8033E2BC /* 8033E2FC 00339F5C 7F E3 FB 78 */ mr r3, r31 /* 8033E300 00339F60 7F 64 DB 78 */ mr r4, r27 /* 8033E304 00339F64 48 00 1C FD */ bl gpiProcessCallbacks /* 8033E308 00339F68 2C 03 00 00 */ cmpwi r3, 0 /* 8033E30C 00339F6C 41 82 00 08 */ beq lbl_8033E314 /* 8033E310 00339F70 48 00 00 28 */ b lbl_8033E338 lbl_8033E314: /* 8033E314 00339F74 80 1E 04 38 */ lwz r0, 0x438(r30) /* 8033E318 00339F78 2C 00 00 00 */ cmpwi r0, 0 /* 8033E31C 00339F7C 41 82 00 18 */ beq lbl_8033E334 /* 8033E320 00339F80 7F E3 FB 78 */ mr r3, r31 /* 8033E324 00339F84 38 80 00 00 */ li r4, 0 /* 8033E328 00339F88 48 00 31 F9 */ bl gpiDisconnect /* 8033E32C 00339F8C 7F E3 FB 78 */ mr r3, r31 /* 8033E330 00339F90 4B FF FA 59 */ bl gpiReset lbl_8033E334: /* 8033E334 00339F94 7F A3 EB 78 */ mr r3, r29 lbl_8033E338: /* 8033E338 00339F98 39 61 00 30 */ addi r11, r1, 0x30 /* 8033E33C 00339F9C 4B E8 8E 39 */ bl _restgpr_27 /* 8033E340 00339FA0 80 01 00 34 */ lwz r0, 0x34(r1) /* 8033E344 00339FA4 7C 08 03 A6 */ mtlr r0 /* 8033E348 00339FA8 38 21 00 30 */ addi r1, r1, 0x30 /* 8033E34C 00339FAC 4E 80 00 20 */ blr