.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global rfc_calc_fcs rfc_calc_fcs: /* 802E1608 002DD268 3C A0 80 40 */ lis r5, lbl_803FDE10@ha /* 802E160C 002DD26C 38 C0 00 FF */ li r6, 0xff /* 802E1610 002DD270 38 A5 DE 10 */ addi r5, r5, lbl_803FDE10@l /* 802E1614 002DD274 48 00 00 14 */ b lbl_802E1628 lbl_802E1618: /* 802E1618 002DD278 88 04 00 00 */ lbz r0, 0(r4) /* 802E161C 002DD27C 38 84 00 01 */ addi r4, r4, 1 /* 802E1620 002DD280 7C C0 02 78 */ xor r0, r6, r0 /* 802E1624 002DD284 7C C5 00 AE */ lbzx r6, r5, r0 lbl_802E1628: /* 802E1628 002DD288 54 60 04 3F */ clrlwi. r0, r3, 0x10 /* 802E162C 002DD28C 38 63 FF FF */ addi r3, r3, -1 /* 802E1630 002DD290 40 82 FF E8 */ bne lbl_802E1618 /* 802E1634 002DD294 20 06 00 FF */ subfic r0, r6, 0xff /* 802E1638 002DD298 54 03 06 3E */ clrlwi r3, r0, 0x18 /* 802E163C 002DD29C 4E 80 00 20 */ blr .global rfc_check_fcs rfc_check_fcs: /* 802E1640 002DD2A0 3C C0 80 40 */ lis r6, lbl_803FDE10@ha /* 802E1644 002DD2A4 38 E0 00 FF */ li r7, 0xff /* 802E1648 002DD2A8 38 C6 DE 10 */ addi r6, r6, lbl_803FDE10@l /* 802E164C 002DD2AC 48 00 00 14 */ b lbl_802E1660 lbl_802E1650: /* 802E1650 002DD2B0 88 04 00 00 */ lbz r0, 0(r4) /* 802E1654 002DD2B4 38 84 00 01 */ addi r4, r4, 1 /* 802E1658 002DD2B8 7C E0 02 78 */ xor r0, r7, r0 /* 802E165C 002DD2BC 7C E6 00 AE */ lbzx r7, r6, r0 lbl_802E1660: /* 802E1660 002DD2C0 54 60 04 3F */ clrlwi. r0, r3, 0x10 /* 802E1664 002DD2C4 38 63 FF FF */ addi r3, r3, -1 /* 802E1668 002DD2C8 40 82 FF E8 */ bne lbl_802E1650 /* 802E166C 002DD2CC 3C 60 80 40 */ lis r3, lbl_803FDE10@ha /* 802E1670 002DD2D0 7C E0 2A 78 */ xor r0, r7, r5 /* 802E1674 002DD2D4 38 63 DE 10 */ addi r3, r3, lbl_803FDE10@l /* 802E1678 002DD2D8 7C 63 00 AE */ lbzx r3, r3, r0 /* 802E167C 002DD2DC 38 03 FF 31 */ addi r0, r3, -207 /* 802E1680 002DD2E0 7C 00 00 34 */ cntlzw r0, r0 /* 802E1684 002DD2E4 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f /* 802E1688 002DD2E8 4E 80 00 20 */ blr .global rfc_alloc_multiplexer_channel rfc_alloc_multiplexer_channel: /* 802E168C 002DD2EC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802E1690 002DD2F0 7C 08 02 A6 */ mflr r0 /* 802E1694 002DD2F4 90 01 00 24 */ stw r0, 0x24(r1) /* 802E1698 002DD2F8 39 61 00 20 */ addi r11, r1, 0x20 /* 802E169C 002DD2FC 4B EE 5A 8D */ bl _savegpr_27 /* 802E16A0 002DD300 3C A0 80 57 */ lis r5, lbl_8056C428@ha /* 802E16A4 002DD304 7C 7B 1B 78 */ mr r27, r3 /* 802E16A8 002DD308 3B E5 C4 28 */ addi r31, r5, lbl_8056C428@l /* 802E16AC 002DD30C 7C 9C 23 78 */ mr r28, r4 /* 802E16B0 002DD310 88 1F 04 08 */ lbz r0, 0x408(r31) /* 802E16B4 002DD314 38 7F 03 FE */ addi r3, r31, 0x3fe /* 802E16B8 002DD318 3B C0 00 00 */ li r30, 0 /* 802E16BC 002DD31C 2C 00 00 00 */ cmpwi r0, 0 /* 802E16C0 002DD320 41 82 00 5C */ beq lbl_802E171C /* 802E16C4 002DD324 7F 64 DB 78 */ mr r4, r27 /* 802E16C8 002DD328 38 A0 00 06 */ li r5, 6 /* 802E16CC 002DD32C 4B EE 8C CD */ bl memcmp /* 802E16D0 002DD330 2C 03 00 00 */ cmpwi r3, 0 /* 802E16D4 002DD334 40 82 00 48 */ bne lbl_802E171C /* 802E16D8 002DD338 88 1F 04 14 */ lbz r0, 0x414(r31) /* 802E16DC 002DD33C 28 00 00 04 */ cmplwi r0, 4 /* 802E16E0 002DD340 41 80 00 18 */ blt lbl_802E16F8 /* 802E16E4 002DD344 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E16E8 002DD348 3C 80 80 44 */ lis r4, lbl_80444ED0@ha /* 802E16EC 002DD34C 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E16F0 002DD350 38 84 4E D0 */ addi r4, r4, lbl_80444ED0@l /* 802E16F4 002DD354 4B FD B8 1D */ bl LogMsg_0 lbl_802E16F8: /* 802E16F8 002DD358 1C 1E 00 78 */ mulli r0, r30, 0x78 /* 802E16FC 002DD35C 3C 60 80 57 */ lis r3, lbl_8056C428@ha /* 802E1700 002DD360 38 63 C4 28 */ addi r3, r3, lbl_8056C428@l /* 802E1704 002DD364 7C 63 02 14 */ add r3, r3, r0 /* 802E1708 002DD368 3B E3 03 9C */ addi r31, r3, 0x39c /* 802E170C 002DD36C 7F E3 FB 78 */ mr r3, r31 /* 802E1710 002DD370 4B FD BE 3D */ bl btu_stop_timer /* 802E1714 002DD374 7F E3 FB 78 */ mr r3, r31 /* 802E1718 002DD378 48 00 00 B4 */ b lbl_802E17CC lbl_802E171C: /* 802E171C 002DD37C 3F E0 80 57 */ lis r31, lbl_8056C428@ha /* 802E1720 002DD380 3B FF C4 28 */ addi r31, r31, lbl_8056C428@l /* 802E1724 002DD384 88 7F 00 65 */ lbz r3, 0x65(r31) /* 802E1728 002DD388 3B C3 00 01 */ addi r30, r3, 1 /* 802E172C 002DD38C 2C 1E 00 01 */ cmpwi r30, 1 /* 802E1730 002DD390 41 80 00 08 */ blt lbl_802E1738 /* 802E1734 002DD394 3B C0 00 00 */ li r30, 0 lbl_802E1738: /* 802E1738 002DD398 1C 1E 00 78 */ mulli r0, r30, 0x78 /* 802E173C 002DD39C 7C 7F 02 14 */ add r3, r31, r0 /* 802E1740 002DD3A0 88 03 04 08 */ lbz r0, 0x408(r3) /* 802E1744 002DD3A4 3B A3 03 9C */ addi r29, r3, 0x39c /* 802E1748 002DD3A8 2C 00 00 00 */ cmpwi r0, 0 /* 802E174C 002DD3AC 40 82 00 7C */ bne lbl_802E17C8 /* 802E1750 002DD3B0 7F A3 EB 78 */ mr r3, r29 /* 802E1754 002DD3B4 38 80 00 00 */ li r4, 0 /* 802E1758 002DD3B8 38 A0 00 78 */ li r5, 0x78 /* 802E175C 002DD3BC 4B D2 29 A9 */ bl memset /* 802E1760 002DD3C0 7F 64 DB 78 */ mr r4, r27 /* 802E1764 002DD3C4 38 7D 00 62 */ addi r3, r29, 0x62 /* 802E1768 002DD3C8 38 A0 00 06 */ li r5, 6 /* 802E176C 002DD3CC 4B D2 28 95 */ bl memcpy /* 802E1770 002DD3D0 38 7D 00 18 */ addi r3, r29, 0x18 /* 802E1774 002DD3D4 4B FD 83 25 */ bl GKI_init_q /* 802E1778 002DD3D8 9B 9D 00 6D */ stb r28, 0x6d(r29) /* 802E177C 002DD3DC 88 1F 04 14 */ lbz r0, 0x414(r31) /* 802E1780 002DD3E0 28 00 00 04 */ cmplwi r0, 4 /* 802E1784 002DD3E4 41 80 00 1C */ blt lbl_802E17A0 /* 802E1788 002DD3E8 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E178C 002DD3EC 3C 80 80 44 */ lis r4, lbl_80444EE0@ha /* 802E1790 002DD3F0 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E1794 002DD3F4 38 A0 00 3C */ li r5, 0x3c /* 802E1798 002DD3F8 38 84 4E E0 */ addi r4, r4, lbl_80444EE0@l /* 802E179C 002DD3FC 4B FD B7 8D */ bl LogMsg_1 lbl_802E17A0: /* 802E17A0 002DD400 93 BD 00 10 */ stw r29, 0x10(r29) /* 802E17A4 002DD404 7F A3 EB 78 */ mr r3, r29 /* 802E17A8 002DD408 38 80 00 0B */ li r4, 0xb /* 802E17AC 002DD40C 38 A0 00 3C */ li r5, 0x3c /* 802E17B0 002DD410 4B FD BD 2D */ bl btu_start_timer /* 802E17B4 002DD414 3C 80 80 57 */ lis r4, lbl_8056C428@ha /* 802E17B8 002DD418 7F A3 EB 78 */ mr r3, r29 /* 802E17BC 002DD41C 38 84 C4 28 */ addi r4, r4, lbl_8056C428@l /* 802E17C0 002DD420 9B C4 00 65 */ stb r30, 0x65(r4) /* 802E17C4 002DD424 48 00 00 08 */ b lbl_802E17CC lbl_802E17C8: /* 802E17C8 002DD428 38 60 00 00 */ li r3, 0 lbl_802E17CC: /* 802E17CC 002DD42C 39 61 00 20 */ addi r11, r1, 0x20 /* 802E17D0 002DD430 4B EE 59 A5 */ bl _restgpr_27 /* 802E17D4 002DD434 80 01 00 24 */ lwz r0, 0x24(r1) /* 802E17D8 002DD438 7C 08 03 A6 */ mtlr r0 /* 802E17DC 002DD43C 38 21 00 20 */ addi r1, r1, 0x20 /* 802E17E0 002DD440 4E 80 00 20 */ blr .global rfc_release_multiplexer_channel rfc_release_multiplexer_channel: /* 802E17E4 002DD444 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802E17E8 002DD448 7C 08 02 A6 */ mflr r0 /* 802E17EC 002DD44C 3C 80 80 57 */ lis r4, lbl_8056C428@ha /* 802E17F0 002DD450 90 01 00 14 */ stw r0, 0x14(r1) /* 802E17F4 002DD454 38 84 C4 28 */ addi r4, r4, lbl_8056C428@l /* 802E17F8 002DD458 93 E1 00 0C */ stw r31, 0xc(r1) /* 802E17FC 002DD45C 7C 7F 1B 78 */ mr r31, r3 /* 802E1800 002DD460 88 04 04 14 */ lbz r0, 0x414(r4) /* 802E1804 002DD464 28 00 00 04 */ cmplwi r0, 4 /* 802E1808 002DD468 41 80 00 18 */ blt lbl_802E1820 /* 802E180C 002DD46C 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E1810 002DD470 3C 80 80 44 */ lis r4, lbl_80444ED0@ha /* 802E1814 002DD474 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E1818 002DD478 38 84 4E D0 */ addi r4, r4, lbl_80444ED0@l /* 802E181C 002DD47C 4B FD B6 F5 */ bl LogMsg_0 lbl_802E1820: /* 802E1820 002DD480 7F E3 FB 78 */ mr r3, r31 /* 802E1824 002DD484 4B FD BD 29 */ bl btu_stop_timer /* 802E1828 002DD488 48 00 00 08 */ b lbl_802E1830 lbl_802E182C: /* 802E182C 002DD48C 4B FD 85 09 */ bl GKI_freebuf lbl_802E1830: /* 802E1830 002DD490 38 7F 00 18 */ addi r3, r31, 0x18 /* 802E1834 002DD494 4B FD 8B 9D */ bl GKI_dequeue /* 802E1838 002DD498 2C 03 00 00 */ cmpwi r3, 0 /* 802E183C 002DD49C 40 82 FF F0 */ bne lbl_802E182C /* 802E1840 002DD4A0 7F E3 FB 78 */ mr r3, r31 /* 802E1844 002DD4A4 38 80 00 00 */ li r4, 0 /* 802E1848 002DD4A8 38 A0 00 78 */ li r5, 0x78 /* 802E184C 002DD4AC 4B D2 28 B9 */ bl memset /* 802E1850 002DD4B0 38 00 00 00 */ li r0, 0 /* 802E1854 002DD4B4 98 1F 00 6C */ stb r0, 0x6c(r31) /* 802E1858 002DD4B8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802E185C 002DD4BC 80 01 00 14 */ lwz r0, 0x14(r1) /* 802E1860 002DD4C0 7C 08 03 A6 */ mtlr r0 /* 802E1864 002DD4C4 38 21 00 10 */ addi r1, r1, 0x10 /* 802E1868 002DD4C8 4E 80 00 20 */ blr .global rfc_timer_start rfc_timer_start: /* 802E186C 002DD4CC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802E1870 002DD4D0 7C 08 02 A6 */ mflr r0 /* 802E1874 002DD4D4 3C A0 80 57 */ lis r5, lbl_8056C428@ha /* 802E1878 002DD4D8 90 01 00 14 */ stw r0, 0x14(r1) /* 802E187C 002DD4DC 38 A5 C4 28 */ addi r5, r5, lbl_8056C428@l /* 802E1880 002DD4E0 93 E1 00 0C */ stw r31, 0xc(r1) /* 802E1884 002DD4E4 7C 9F 23 78 */ mr r31, r4 /* 802E1888 002DD4E8 93 C1 00 08 */ stw r30, 8(r1) /* 802E188C 002DD4EC 7C 7E 1B 78 */ mr r30, r3 /* 802E1890 002DD4F0 88 05 04 14 */ lbz r0, 0x414(r5) /* 802E1894 002DD4F4 28 00 00 04 */ cmplwi r0, 4 /* 802E1898 002DD4F8 41 80 00 1C */ blt lbl_802E18B4 /* 802E189C 002DD4FC 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E18A0 002DD500 3C 80 80 44 */ lis r4, lbl_80444EE0@ha /* 802E18A4 002DD504 7F E5 FB 78 */ mr r5, r31 /* 802E18A8 002DD508 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E18AC 002DD50C 38 84 4E E0 */ addi r4, r4, lbl_80444EE0@l /* 802E18B0 002DD510 4B FD B6 79 */ bl LogMsg_1 lbl_802E18B4: /* 802E18B4 002DD514 93 DE 00 10 */ stw r30, 0x10(r30) /* 802E18B8 002DD518 7F C3 F3 78 */ mr r3, r30 /* 802E18BC 002DD51C 7F E5 FB 78 */ mr r5, r31 /* 802E18C0 002DD520 38 80 00 0B */ li r4, 0xb /* 802E18C4 002DD524 4B FD BC 19 */ bl btu_start_timer /* 802E18C8 002DD528 80 01 00 14 */ lwz r0, 0x14(r1) /* 802E18CC 002DD52C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802E18D0 002DD530 83 C1 00 08 */ lwz r30, 8(r1) /* 802E18D4 002DD534 7C 08 03 A6 */ mtlr r0 /* 802E18D8 002DD538 38 21 00 10 */ addi r1, r1, 0x10 /* 802E18DC 002DD53C 4E 80 00 20 */ blr .global rfc_timer_stop rfc_timer_stop: /* 802E18E0 002DD540 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802E18E4 002DD544 7C 08 02 A6 */ mflr r0 /* 802E18E8 002DD548 3C 80 80 57 */ lis r4, lbl_8056C428@ha /* 802E18EC 002DD54C 90 01 00 14 */ stw r0, 0x14(r1) /* 802E18F0 002DD550 38 84 C4 28 */ addi r4, r4, lbl_8056C428@l /* 802E18F4 002DD554 93 E1 00 0C */ stw r31, 0xc(r1) /* 802E18F8 002DD558 7C 7F 1B 78 */ mr r31, r3 /* 802E18FC 002DD55C 88 04 04 14 */ lbz r0, 0x414(r4) /* 802E1900 002DD560 28 00 00 04 */ cmplwi r0, 4 /* 802E1904 002DD564 41 80 00 18 */ blt lbl_802E191C /* 802E1908 002DD568 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E190C 002DD56C 3C 80 80 44 */ lis r4, lbl_80444ED0@ha /* 802E1910 002DD570 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E1914 002DD574 38 84 4E D0 */ addi r4, r4, lbl_80444ED0@l /* 802E1918 002DD578 4B FD B5 F9 */ bl LogMsg_0 lbl_802E191C: /* 802E191C 002DD57C 7F E3 FB 78 */ mr r3, r31 /* 802E1920 002DD580 4B FD BC 2D */ bl btu_stop_timer /* 802E1924 002DD584 80 01 00 14 */ lwz r0, 0x14(r1) /* 802E1928 002DD588 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802E192C 002DD58C 7C 08 03 A6 */ mtlr r0 /* 802E1930 002DD590 38 21 00 10 */ addi r1, r1, 0x10 /* 802E1934 002DD594 4E 80 00 20 */ blr .global rfc_port_timer_start rfc_port_timer_start: /* 802E1938 002DD598 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802E193C 002DD59C 7C 08 02 A6 */ mflr r0 /* 802E1940 002DD5A0 3C A0 80 57 */ lis r5, lbl_8056C428@ha /* 802E1944 002DD5A4 90 01 00 24 */ stw r0, 0x24(r1) /* 802E1948 002DD5A8 38 A5 C4 28 */ addi r5, r5, lbl_8056C428@l /* 802E194C 002DD5AC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802E1950 002DD5B0 3B E3 00 70 */ addi r31, r3, 0x70 /* 802E1954 002DD5B4 93 C1 00 18 */ stw r30, 0x18(r1) /* 802E1958 002DD5B8 7C 9E 23 78 */ mr r30, r4 /* 802E195C 002DD5BC 93 A1 00 14 */ stw r29, 0x14(r1) /* 802E1960 002DD5C0 7C 7D 1B 78 */ mr r29, r3 /* 802E1964 002DD5C4 88 05 04 14 */ lbz r0, 0x414(r5) /* 802E1968 002DD5C8 28 00 00 04 */ cmplwi r0, 4 /* 802E196C 002DD5CC 41 80 00 1C */ blt lbl_802E1988 /* 802E1970 002DD5D0 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E1974 002DD5D4 3C 80 80 44 */ lis r4, lbl_80444F00@ha /* 802E1978 002DD5D8 7F C5 F3 78 */ mr r5, r30 /* 802E197C 002DD5DC 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E1980 002DD5E0 38 84 4F 00 */ addi r4, r4, lbl_80444F00@l /* 802E1984 002DD5E4 4B FD B5 A5 */ bl LogMsg_1 lbl_802E1988: /* 802E1988 002DD5E8 93 BF 00 10 */ stw r29, 0x10(r31) /* 802E198C 002DD5EC 7F E3 FB 78 */ mr r3, r31 /* 802E1990 002DD5F0 7F C5 F3 78 */ mr r5, r30 /* 802E1994 002DD5F4 38 80 00 0C */ li r4, 0xc /* 802E1998 002DD5F8 4B FD BB 45 */ bl btu_start_timer /* 802E199C 002DD5FC 80 01 00 24 */ lwz r0, 0x24(r1) /* 802E19A0 002DD600 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802E19A4 002DD604 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802E19A8 002DD608 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802E19AC 002DD60C 7C 08 03 A6 */ mtlr r0 /* 802E19B0 002DD610 38 21 00 20 */ addi r1, r1, 0x20 /* 802E19B4 002DD614 4E 80 00 20 */ blr .global rfc_port_timer_stop rfc_port_timer_stop: /* 802E19B8 002DD618 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802E19BC 002DD61C 7C 08 02 A6 */ mflr r0 /* 802E19C0 002DD620 3C 80 80 57 */ lis r4, lbl_8056C428@ha /* 802E19C4 002DD624 90 01 00 14 */ stw r0, 0x14(r1) /* 802E19C8 002DD628 38 84 C4 28 */ addi r4, r4, lbl_8056C428@l /* 802E19CC 002DD62C 93 E1 00 0C */ stw r31, 0xc(r1) /* 802E19D0 002DD630 7C 7F 1B 78 */ mr r31, r3 /* 802E19D4 002DD634 88 04 04 14 */ lbz r0, 0x414(r4) /* 802E19D8 002DD638 28 00 00 04 */ cmplwi r0, 4 /* 802E19DC 002DD63C 41 80 00 18 */ blt lbl_802E19F4 /* 802E19E0 002DD640 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E19E4 002DD644 3C 80 80 44 */ lis r4, lbl_80444F24@ha /* 802E19E8 002DD648 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E19EC 002DD64C 38 84 4F 24 */ addi r4, r4, lbl_80444F24@l /* 802E19F0 002DD650 4B FD B5 21 */ bl LogMsg_0 lbl_802E19F4: /* 802E19F4 002DD654 38 7F 00 70 */ addi r3, r31, 0x70 /* 802E19F8 002DD658 4B FD BB 55 */ bl btu_stop_timer /* 802E19FC 002DD65C 80 01 00 14 */ lwz r0, 0x14(r1) /* 802E1A00 002DD660 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802E1A04 002DD664 7C 08 03 A6 */ mtlr r0 /* 802E1A08 002DD668 38 21 00 10 */ addi r1, r1, 0x10 /* 802E1A0C 002DD66C 4E 80 00 20 */ blr .global rfc_check_mcb_active rfc_check_mcb_active: /* 802E1A10 002DD670 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802E1A14 002DD674 7C 08 02 A6 */ mflr r0 /* 802E1A18 002DD678 38 A0 00 00 */ li r5, 0 /* 802E1A1C 002DD67C 90 01 00 14 */ stw r0, 0x14(r1) /* 802E1A20 002DD680 38 00 00 3D */ li r0, 0x3d /* 802E1A24 002DD684 93 E1 00 0C */ stw r31, 0xc(r1) /* 802E1A28 002DD688 7C 7F 1B 78 */ mr r31, r3 /* 802E1A2C 002DD68C 7C 09 03 A6 */ mtctr r0 lbl_802E1A30: /* 802E1A30 002DD690 54 A0 04 3E */ clrlwi r0, r5, 0x10 /* 802E1A34 002DD694 7C 83 02 14 */ add r4, r3, r0 /* 802E1A38 002DD698 88 04 00 24 */ lbz r0, 0x24(r4) /* 802E1A3C 002DD69C 2C 00 00 00 */ cmpwi r0, 0 /* 802E1A40 002DD6A0 41 82 00 10 */ beq lbl_802E1A50 /* 802E1A44 002DD6A4 38 00 00 00 */ li r0, 0 /* 802E1A48 002DD6A8 98 03 00 74 */ stb r0, 0x74(r3) /* 802E1A4C 002DD6AC 48 00 00 74 */ b lbl_802E1AC0 lbl_802E1A50: /* 802E1A50 002DD6B0 38 A5 00 01 */ addi r5, r5, 1 /* 802E1A54 002DD6B4 42 00 FF DC */ bdnz lbl_802E1A30 /* 802E1A58 002DD6B8 88 03 00 74 */ lbz r0, 0x74(r3) /* 802E1A5C 002DD6BC 2C 00 00 00 */ cmpwi r0, 0 /* 802E1A60 002DD6C0 41 82 00 20 */ beq lbl_802E1A80 /* 802E1A64 002DD6C4 38 00 00 00 */ li r0, 0 /* 802E1A68 002DD6C8 38 80 00 08 */ li r4, 8 /* 802E1A6C 002DD6CC 98 03 00 74 */ stb r0, 0x74(r3) /* 802E1A70 002DD6D0 7F E3 FB 78 */ mr r3, r31 /* 802E1A74 002DD6D4 38 A0 00 00 */ li r5, 0 /* 802E1A78 002DD6D8 4B FF C2 39 */ bl rfc_mx_sm_execute /* 802E1A7C 002DD6DC 48 00 00 44 */ b lbl_802E1AC0 lbl_802E1A80: /* 802E1A80 002DD6E0 3C 60 80 57 */ lis r3, lbl_8056C428@ha /* 802E1A84 002DD6E4 38 63 C4 28 */ addi r3, r3, lbl_8056C428@l /* 802E1A88 002DD6E8 88 03 04 14 */ lbz r0, 0x414(r3) /* 802E1A8C 002DD6EC 28 00 00 04 */ cmplwi r0, 4 /* 802E1A90 002DD6F0 41 80 00 1C */ blt lbl_802E1AAC /* 802E1A94 002DD6F4 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E1A98 002DD6F8 3C 80 80 44 */ lis r4, lbl_80444EE0@ha /* 802E1A9C 002DD6FC 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E1AA0 002DD700 38 A0 00 02 */ li r5, 2 /* 802E1AA4 002DD704 38 84 4E E0 */ addi r4, r4, lbl_80444EE0@l /* 802E1AA8 002DD708 4B FD B4 81 */ bl LogMsg_1 lbl_802E1AAC: /* 802E1AAC 002DD70C 93 FF 00 10 */ stw r31, 0x10(r31) /* 802E1AB0 002DD710 7F E3 FB 78 */ mr r3, r31 /* 802E1AB4 002DD714 38 80 00 0B */ li r4, 0xb /* 802E1AB8 002DD718 38 A0 00 02 */ li r5, 2 /* 802E1ABC 002DD71C 4B FD BA 21 */ bl btu_start_timer lbl_802E1AC0: /* 802E1AC0 002DD720 80 01 00 14 */ lwz r0, 0x14(r1) /* 802E1AC4 002DD724 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802E1AC8 002DD728 7C 08 03 A6 */ mtlr r0 /* 802E1ACC 002DD72C 38 21 00 10 */ addi r1, r1, 0x10 /* 802E1AD0 002DD730 4E 80 00 20 */ blr .global rfcomm_process_timeout rfcomm_process_timeout: /* 802E1AD4 002DD734 A0 03 00 14 */ lhz r0, 0x14(r3) /* 802E1AD8 002DD738 2C 00 00 0C */ cmpwi r0, 0xc /* 802E1ADC 002DD73C 41 82 00 20 */ beq lbl_802E1AFC /* 802E1AE0 002DD740 4C 80 00 20 */ bgelr /* 802E1AE4 002DD744 2C 00 00 0B */ cmpwi r0, 0xb /* 802E1AE8 002DD748 4D 80 00 20 */ bltlr /* 802E1AEC 002DD74C 80 63 00 10 */ lwz r3, 0x10(r3) /* 802E1AF0 002DD750 38 80 00 05 */ li r4, 5 /* 802E1AF4 002DD754 38 A0 00 00 */ li r5, 0 /* 802E1AF8 002DD758 4B FF C1 B8 */ b rfc_mx_sm_execute lbl_802E1AFC: /* 802E1AFC 002DD75C 80 63 00 10 */ lwz r3, 0x10(r3) /* 802E1B00 002DD760 38 80 00 05 */ li r4, 5 /* 802E1B04 002DD764 38 A0 00 00 */ li r5, 0 /* 802E1B08 002DD768 4B FF CD EC */ b rfc_port_sm_execute /* 802E1B0C 002DD76C 4E 80 00 20 */ blr .global rfc_sec_check_complete rfc_sec_check_complete: /* 802E1B10 002DD770 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802E1B14 002DD774 7C 08 02 A6 */ mflr r0 /* 802E1B18 002DD778 90 01 00 14 */ stw r0, 0x14(r1) /* 802E1B1C 002DD77C 98 A1 00 08 */ stb r5, 8(r1) /* 802E1B20 002DD780 88 04 00 01 */ lbz r0, 1(r4) /* 802E1B24 002DD784 2C 00 00 00 */ cmpwi r0, 0 /* 802E1B28 002DD788 41 82 00 2C */ beq lbl_802E1B54 /* 802E1B2C 002DD78C 88 04 00 68 */ lbz r0, 0x68(r4) /* 802E1B30 002DD790 28 00 00 02 */ cmplwi r0, 2 /* 802E1B34 002DD794 41 82 00 10 */ beq lbl_802E1B44 /* 802E1B38 002DD798 28 00 00 03 */ cmplwi r0, 3 /* 802E1B3C 002DD79C 41 82 00 08 */ beq lbl_802E1B44 /* 802E1B40 002DD7A0 48 00 00 14 */ b lbl_802E1B54 lbl_802E1B44: /* 802E1B44 002DD7A4 7C 83 23 78 */ mr r3, r4 /* 802E1B48 002DD7A8 38 A1 00 08 */ addi r5, r1, 8 /* 802E1B4C 002DD7AC 38 80 00 0F */ li r4, 0xf /* 802E1B50 002DD7B0 4B FF CD A5 */ bl rfc_port_sm_execute lbl_802E1B54: /* 802E1B54 002DD7B4 80 01 00 14 */ lwz r0, 0x14(r1) /* 802E1B58 002DD7B8 7C 08 03 A6 */ mtlr r0 /* 802E1B5C 002DD7BC 38 21 00 10 */ addi r1, r1, 0x10 /* 802E1B60 002DD7C0 4E 80 00 20 */ blr .global rfc_port_closed rfc_port_closed: /* 802E1B64 002DD7C4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802E1B68 002DD7C8 7C 08 02 A6 */ mflr r0 /* 802E1B6C 002DD7CC 3C 80 80 57 */ lis r4, lbl_8056C428@ha /* 802E1B70 002DD7D0 90 01 00 24 */ stw r0, 0x24(r1) /* 802E1B74 002DD7D4 38 84 C4 28 */ addi r4, r4, lbl_8056C428@l /* 802E1B78 002DD7D8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802E1B7C 002DD7DC 3F E0 80 44 */ lis r31, lbl_80444ED0@ha /* 802E1B80 002DD7E0 3B FF 4E D0 */ addi r31, r31, lbl_80444ED0@l /* 802E1B84 002DD7E4 93 C1 00 18 */ stw r30, 0x18(r1) /* 802E1B88 002DD7E8 93 A1 00 14 */ stw r29, 0x14(r1) /* 802E1B8C 002DD7EC 7C 7D 1B 78 */ mr r29, r3 /* 802E1B90 002DD7F0 88 04 04 14 */ lbz r0, 0x414(r4) /* 802E1B94 002DD7F4 83 C3 00 6C */ lwz r30, 0x6c(r3) /* 802E1B98 002DD7F8 28 00 00 05 */ cmplwi r0, 5 /* 802E1B9C 002DD7FC 41 80 00 14 */ blt lbl_802E1BB0 /* 802E1BA0 002DD800 3C 60 00 09 */ lis r3, 0x00090004@ha /* 802E1BA4 002DD804 38 9F 00 68 */ addi r4, r31, 0x68 /* 802E1BA8 002DD808 38 63 00 04 */ addi r3, r3, 0x00090004@l /* 802E1BAC 002DD80C 4B FD B3 65 */ bl LogMsg_0 lbl_802E1BB0: /* 802E1BB0 002DD810 3C 60 80 57 */ lis r3, lbl_8056C428@ha /* 802E1BB4 002DD814 38 63 C4 28 */ addi r3, r3, lbl_8056C428@l /* 802E1BB8 002DD818 88 03 04 14 */ lbz r0, 0x414(r3) /* 802E1BBC 002DD81C 28 00 00 04 */ cmplwi r0, 4 /* 802E1BC0 002DD820 41 80 00 14 */ blt lbl_802E1BD4 /* 802E1BC4 002DD824 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E1BC8 002DD828 38 9F 00 54 */ addi r4, r31, 0x54 /* 802E1BCC 002DD82C 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E1BD0 002DD830 4B FD B3 41 */ bl LogMsg_0 lbl_802E1BD4: /* 802E1BD4 002DD834 38 7D 00 70 */ addi r3, r29, 0x70 /* 802E1BD8 002DD838 4B FD B9 75 */ bl btu_stop_timer /* 802E1BDC 002DD83C 38 80 00 00 */ li r4, 0 /* 802E1BE0 002DD840 2C 1E 00 00 */ cmpwi r30, 0 /* 802E1BE4 002DD844 98 9D 00 68 */ stb r4, 0x68(r29) /* 802E1BE8 002DD848 41 82 00 AC */ beq lbl_802E1C94 /* 802E1BEC 002DD84C 88 7D 00 0D */ lbz r3, 0xd(r29) /* 802E1BF0 002DD850 38 00 00 3D */ li r0, 0x3d /* 802E1BF4 002DD854 38 A0 00 00 */ li r5, 0 /* 802E1BF8 002DD858 7C 7E 1A 14 */ add r3, r30, r3 /* 802E1BFC 002DD85C 98 83 00 24 */ stb r4, 0x24(r3) /* 802E1C00 002DD860 98 9D 00 0D */ stb r4, 0xd(r29) /* 802E1C04 002DD864 7C 09 03 A6 */ mtctr r0 lbl_802E1C08: /* 802E1C08 002DD868 54 A0 04 3E */ clrlwi r0, r5, 0x10 /* 802E1C0C 002DD86C 7C 7E 02 14 */ add r3, r30, r0 /* 802E1C10 002DD870 88 03 00 24 */ lbz r0, 0x24(r3) /* 802E1C14 002DD874 2C 00 00 00 */ cmpwi r0, 0 /* 802E1C18 002DD878 41 82 00 10 */ beq lbl_802E1C28 /* 802E1C1C 002DD87C 38 00 00 00 */ li r0, 0 /* 802E1C20 002DD880 98 1E 00 74 */ stb r0, 0x74(r30) /* 802E1C24 002DD884 48 00 00 70 */ b lbl_802E1C94 lbl_802E1C28: /* 802E1C28 002DD888 38 A5 00 01 */ addi r5, r5, 1 /* 802E1C2C 002DD88C 42 00 FF DC */ bdnz lbl_802E1C08 /* 802E1C30 002DD890 88 1E 00 74 */ lbz r0, 0x74(r30) /* 802E1C34 002DD894 2C 00 00 00 */ cmpwi r0, 0 /* 802E1C38 002DD898 41 82 00 20 */ beq lbl_802E1C58 /* 802E1C3C 002DD89C 38 00 00 00 */ li r0, 0 /* 802E1C40 002DD8A0 7F C3 F3 78 */ mr r3, r30 /* 802E1C44 002DD8A4 98 1E 00 74 */ stb r0, 0x74(r30) /* 802E1C48 002DD8A8 38 80 00 08 */ li r4, 8 /* 802E1C4C 002DD8AC 38 A0 00 00 */ li r5, 0 /* 802E1C50 002DD8B0 4B FF C0 61 */ bl rfc_mx_sm_execute /* 802E1C54 002DD8B4 48 00 00 40 */ b lbl_802E1C94 lbl_802E1C58: /* 802E1C58 002DD8B8 3C 60 80 57 */ lis r3, lbl_8056C428@ha /* 802E1C5C 002DD8BC 38 63 C4 28 */ addi r3, r3, lbl_8056C428@l /* 802E1C60 002DD8C0 88 03 04 14 */ lbz r0, 0x414(r3) /* 802E1C64 002DD8C4 28 00 00 04 */ cmplwi r0, 4 /* 802E1C68 002DD8C8 41 80 00 18 */ blt lbl_802E1C80 /* 802E1C6C 002DD8CC 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E1C70 002DD8D0 38 9F 00 10 */ addi r4, r31, 0x10 /* 802E1C74 002DD8D4 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E1C78 002DD8D8 38 A0 00 02 */ li r5, 2 /* 802E1C7C 002DD8DC 4B FD B2 AD */ bl LogMsg_1 lbl_802E1C80: /* 802E1C80 002DD8E0 93 DE 00 10 */ stw r30, 0x10(r30) /* 802E1C84 002DD8E4 7F C3 F3 78 */ mr r3, r30 /* 802E1C88 002DD8E8 38 80 00 0B */ li r4, 0xb /* 802E1C8C 002DD8EC 38 A0 00 02 */ li r5, 2 /* 802E1C90 002DD8F0 4B FD B8 4D */ bl btu_start_timer lbl_802E1C94: /* 802E1C94 002DD8F4 7F A3 EB 78 */ mr r3, r29 /* 802E1C98 002DD8F8 38 80 00 13 */ li r4, 0x13 /* 802E1C9C 002DD8FC 4B FF AF 75 */ bl port_rfc_closed /* 802E1CA0 002DD900 80 01 00 24 */ lwz r0, 0x24(r1) /* 802E1CA4 002DD904 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802E1CA8 002DD908 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802E1CAC 002DD90C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802E1CB0 002DD910 7C 08 03 A6 */ mtlr r0 /* 802E1CB4 002DD914 38 21 00 20 */ addi r1, r1, 0x20 /* 802E1CB8 002DD918 4E 80 00 20 */ blr .global rfc_inc_credit rfc_inc_credit: /* 802E1CBC 002DD91C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802E1CC0 002DD920 7C 08 02 A6 */ mflr r0 /* 802E1CC4 002DD924 90 01 00 14 */ stw r0, 0x14(r1) /* 802E1CC8 002DD928 93 E1 00 0C */ stw r31, 0xc(r1) /* 802E1CCC 002DD92C 7C 7F 1B 78 */ mr r31, r3 /* 802E1CD0 002DD930 80 A3 00 6C */ lwz r5, 0x6c(r3) /* 802E1CD4 002DD934 88 05 00 72 */ lbz r0, 0x72(r5) /* 802E1CD8 002DD938 28 00 00 02 */ cmplwi r0, 2 /* 802E1CDC 002DD93C 40 82 00 58 */ bne lbl_802E1D34 /* 802E1CE0 002DD940 A0 03 00 98 */ lhz r0, 0x98(r3) /* 802E1CE4 002DD944 3C A0 80 57 */ lis r5, lbl_8056C428@ha /* 802E1CE8 002DD948 38 A5 C4 28 */ addi r5, r5, lbl_8056C428@l /* 802E1CEC 002DD94C 7C C0 22 14 */ add r6, r0, r4 /* 802E1CF0 002DD950 B0 C3 00 98 */ sth r6, 0x98(r3) /* 802E1CF4 002DD954 88 05 04 14 */ lbz r0, 0x414(r5) /* 802E1CF8 002DD958 28 00 00 04 */ cmplwi r0, 4 /* 802E1CFC 002DD95C 41 80 00 1C */ blt lbl_802E1D18 /* 802E1D00 002DD960 3C 60 00 09 */ lis r3, 0x00090003@ha /* 802E1D04 002DD964 3C 80 80 44 */ lis r4, lbl_80444F48@ha /* 802E1D08 002DD968 38 63 00 03 */ addi r3, r3, 0x00090003@l /* 802E1D0C 002DD96C 54 C5 04 3E */ clrlwi r5, r6, 0x10 /* 802E1D10 002DD970 38 84 4F 48 */ addi r4, r4, lbl_80444F48@l /* 802E1D14 002DD974 4B FD B2 15 */ bl LogMsg_1 lbl_802E1D18: /* 802E1D18 002DD978 88 1F 00 24 */ lbz r0, 0x24(r31) /* 802E1D1C 002DD97C 28 00 00 01 */ cmplwi r0, 1 /* 802E1D20 002DD980 40 82 00 14 */ bne lbl_802E1D34 /* 802E1D24 002DD984 80 7F 00 6C */ lwz r3, 0x6c(r31) /* 802E1D28 002DD988 38 A0 00 01 */ li r5, 1 /* 802E1D2C 002DD98C 88 9F 00 0D */ lbz r4, 0xd(r31) /* 802E1D30 002DD990 4B FF AC B9 */ bl PORT_FlowInd lbl_802E1D34: /* 802E1D34 002DD994 80 01 00 14 */ lwz r0, 0x14(r1) /* 802E1D38 002DD998 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802E1D3C 002DD99C 7C 08 03 A6 */ mtlr r0 /* 802E1D40 002DD9A0 38 21 00 10 */ addi r1, r1, 0x10 /* 802E1D44 002DD9A4 4E 80 00 20 */ blr .global rfc_dec_credit rfc_dec_credit: /* 802E1D48 002DD9A8 80 83 00 6C */ lwz r4, 0x6c(r3) /* 802E1D4C 002DD9AC 88 04 00 72 */ lbz r0, 0x72(r4) /* 802E1D50 002DD9B0 28 00 00 02 */ cmplwi r0, 2 /* 802E1D54 002DD9B4 4C 82 00 20 */ bnelr /* 802E1D58 002DD9B8 A0 83 00 98 */ lhz r4, 0x98(r3) /* 802E1D5C 002DD9BC 2C 04 00 00 */ cmpwi r4, 0 /* 802E1D60 002DD9C0 41 82 00 0C */ beq lbl_802E1D6C /* 802E1D64 002DD9C4 38 04 FF FF */ addi r0, r4, -1 /* 802E1D68 002DD9C8 B0 03 00 98 */ sth r0, 0x98(r3) lbl_802E1D6C: /* 802E1D6C 002DD9CC A0 03 00 98 */ lhz r0, 0x98(r3) /* 802E1D70 002DD9D0 2C 00 00 00 */ cmpwi r0, 0 /* 802E1D74 002DD9D4 4C 82 00 20 */ bnelr /* 802E1D78 002DD9D8 38 00 00 01 */ li r0, 1 /* 802E1D7C 002DD9DC 98 03 00 24 */ stb r0, 0x24(r3) /* 802E1D80 002DD9E0 4E 80 00 20 */ blr .global rfc_check_send_cmd rfc_check_send_cmd: /* 802E1D84 002DD9E4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802E1D88 002DD9E8 7C 08 02 A6 */ mflr r0 /* 802E1D8C 002DD9EC 2C 04 00 00 */ cmpwi r4, 0 /* 802E1D90 002DD9F0 90 01 00 14 */ stw r0, 0x14(r1) /* 802E1D94 002DD9F4 93 E1 00 0C */ stw r31, 0xc(r1) /* 802E1D98 002DD9F8 7C 7F 1B 78 */ mr r31, r3 /* 802E1D9C 002DD9FC 41 82 00 2C */ beq lbl_802E1DC8 /* 802E1DA0 002DDA00 38 63 00 18 */ addi r3, r3, 0x18 /* 802E1DA4 002DDA04 4B FD 83 B1 */ bl GKI_enqueue /* 802E1DA8 002DDA08 48 00 00 20 */ b lbl_802E1DC8 lbl_802E1DAC: /* 802E1DAC 002DDA0C 38 7F 00 18 */ addi r3, r31, 0x18 /* 802E1DB0 002DDA10 4B FD 86 21 */ bl GKI_dequeue /* 802E1DB4 002DDA14 2C 03 00 00 */ cmpwi r3, 0 /* 802E1DB8 002DDA18 7C 64 1B 78 */ mr r4, r3 /* 802E1DBC 002DDA1C 41 82 00 18 */ beq lbl_802E1DD4 /* 802E1DC0 002DDA20 A0 7F 00 68 */ lhz r3, 0x68(r31) /* 802E1DC4 002DDA24 4B FF 43 2D */ bl L2CA_DataWrite lbl_802E1DC8: /* 802E1DC8 002DDA28 88 1F 00 73 */ lbz r0, 0x73(r31) /* 802E1DCC 002DDA2C 2C 00 00 00 */ cmpwi r0, 0 /* 802E1DD0 002DDA30 41 82 FF DC */ beq lbl_802E1DAC lbl_802E1DD4: /* 802E1DD4 002DDA34 80 01 00 14 */ lwz r0, 0x14(r1) /* 802E1DD8 002DDA38 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802E1DDC 002DDA3C 7C 08 03 A6 */ mtlr r0 /* 802E1DE0 002DDA40 38 21 00 10 */ addi r1, r1, 0x10 /* 802E1DE4 002DDA44 4E 80 00 20 */ blr