diff --git a/asm/InitializeLink.s b/asm/InitializeLink.s index b631d0a5..a4bfe794 100644 --- a/asm/InitializeLink.s +++ b/asm/InitializeLink.s @@ -23,7 +23,7 @@ InitializeLink: @ 0x080524A8 adds r0, r4, #0 movs r1, #0x88 bl sub_0801D630 - ldr r0, _0805251C @ =gUnk_03000BF0 + ldr r0, _0805251C @ =gRoomControls str r4, [r0, #0x30] ldr r1, _08052520 @ =gUnk_080FCAC8 ldr r5, _08052524 @ =gUnk_030010A0 @@ -54,7 +54,7 @@ _080524FA: _08052510: .4byte gUnk_03000B80 _08052514: .4byte gUnk_03003F80 _08052518: .4byte gLinkEntity -_0805251C: .4byte gUnk_03000BF0 +_0805251C: .4byte gRoomControls _08052520: .4byte gUnk_080FCAC8 _08052524: .4byte gUnk_030010A0 _08052528: .4byte _0805252C diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s index 22faae7a..7593caad 100644 --- a/asm/code_080011C4.s +++ b/asm/code_080011C4.s @@ -1375,7 +1375,7 @@ _08002902: non_word_aligned_thumb_func_start sub_0800290E sub_0800290E: @ 0x0800290E push {r4, r5, r6, lr} - ldr r4, _080029A8 @ =gUnk_03000BF0 + ldr r4, _080029A8 @ =gRoomControls ldrh r5, [r4, #0xa] ldrh r6, [r4, #6] subs r5, r5, r6 @@ -1403,7 +1403,7 @@ _0800293A: non_word_aligned_thumb_func_start sub_0800293E sub_0800293E: @ 0x0800293E push {r4, r5, r6, r7, lr} - ldr r4, _080029AC @ =gUnk_03000BF0 + ldr r4, _080029AC @ =gRoomControls ldr r7, _080029B0 @ =gLinkEntity ldrh r6, [r4, #6] ldrh r5, [r7, #0x2e] @@ -1442,6 +1442,6 @@ _08002998: .4byte 0x0000E004 _0800299C: .4byte 0x00000E02 _080029A0: .4byte 0x0000E040 _080029A4: .4byte 0x00000E20 -_080029A8: .4byte gUnk_03000BF0 -_080029AC: .4byte gUnk_03000BF0 +_080029A8: .4byte gRoomControls +_080029AC: .4byte gRoomControls _080029B0: .4byte gLinkEntity diff --git a/asm/code_08003FC4.s b/asm/code_08003FC4.s index 4103d9df..469d2663 100644 --- a/asm/code_08003FC4.s +++ b/asm/code_08003FC4.s @@ -143,7 +143,7 @@ sub_080040A2: @ 0x080040A2 thumb_func_start sub_080040A8 sub_080040A8: @ 0x080040A8 - ldr r1, _08004368 @ =gUnk_03000BF0 + ldr r1, _08004368 @ =gRoomControls movs r2, #0x2e ldrsh r2, [r0, r2] ldrh r3, [r1, #0xa] @@ -567,7 +567,7 @@ _08004358: .4byte gUnk_081326EC _0800435C: .4byte gUnk_02024048 _08004360: .4byte gUnk_02021F20 _08004364: .4byte gUnk_02024048 -_08004368: .4byte gUnk_03000BF0 +_08004368: .4byte gRoomControls _0800436C: .4byte 0x0000016E _08004370: .4byte 0x0000011E _08004374: .4byte gUnk_03000BF6 diff --git a/asm/code_080041E8.s b/asm/code_080041E8.s index 0f40c15b..a2d1f18c 100644 --- a/asm/code_080041E8.s +++ b/asm/code_080041E8.s @@ -233,7 +233,7 @@ _08004358: .4byte gUnk_081326EC _0800435C: .4byte gUnk_02024048 _08004360: .4byte gUnk_02021F20 _08004364: .4byte gUnk_02024048 -_08004368: .4byte gUnk_03000BF0 +_08004368: .4byte gRoomControls _0800436C: .4byte 0x0000016E _08004370: .4byte 0x0000011E _08004374: .4byte gUnk_03000BF6 diff --git a/asm/code_0800857C.s b/asm/code_0800857C.s index 5ce5a009..81c07e97 100644 --- a/asm/code_0800857C.s +++ b/asm/code_0800857C.s @@ -306,7 +306,7 @@ sub_08008790: @ 0x08008790 sub_08008796: @ 0x08008796 push {r4, r5, r6, r7, lr} push {r2, r3} - ldr r2, _080088D4 @ =gUnk_03000BF0 + ldr r2, _080088D4 @ =gRoomControls ldrh r3, [r2] movs r2, #1 cmp r2, r3 @@ -389,7 +389,7 @@ _0800882C: strb r1, [r0, r3] bl sub_08016A04 _0800883A: - ldr r1, _080088E0 @ =gUnk_03000BF0 + ldr r1, _080088E0 @ =gRoomControls ldrh r0, [r1, #6] subs r2, r6, r0 lsrs r2, r2, #4 @@ -447,10 +447,10 @@ _080088C4: .4byte gUnk_08000248 _080088C8: .4byte gUnk_03003F80 _080088CC: .4byte gUnk_0800823C _080088D0: .4byte gUnk_08007DF4 -_080088D4: .4byte gUnk_03000BF0 +_080088D4: .4byte gRoomControls _080088D8: .4byte gUnk_080046A4 _080088DC: .4byte gUnk_080047F6 -_080088E0: .4byte gUnk_03000BF0 +_080088E0: .4byte gRoomControls _080088E4: .4byte 0x00004000 _080088E8: .4byte 0x0000FFFF _080088EC: @@ -4126,40 +4126,3 @@ sub_08016AD2: @ 0x08016AD2 bl sub_08016A04 pop {r0, r4, pc} - thumb_func_start sub_08016AE4 -sub_08016AE4: @ 0x08016AE4 - mov r3, lr - push {r3, r4} - adds r4, r0, #0 - ldrb r2, [r0, #0xc] - cmp r2, #0 - bne _08016AFC - bl sub_080A7D80 - cmp r0, #0 - bne _08016B0A - bl sub_0805E780 -_08016AFC: - bl sub_0805E3B0 - cmp r0, #0 - bne _08016B22 - adds r0, r4, #0 - bl sub_080028E0 -_08016B0A: - adds r0, r4, #0 - ldrb r1, [r0, #9] - lsls r1, r1, #2 - ldr r2, _08016B2C @ =gUnk_08129320 - ldr r1, [r2, r1] - bl _call_via_r1 - movs r1, #0x41 - movs r3, #0x7f - ldrb r2, [r4, r1] - ands r2, r3 - strb r2, [r4, r1] -_08016B22: - adds r0, r4, #0 - bl sub_0800404C - pop {r3, r4} - bx r3 - .align 2, 0 -_08016B2C: .4byte gUnk_08129320 diff --git a/asm/code_08016B30.s b/asm/code_08016B30.s index b6cd6dd5..14e2d43c 100644 --- a/asm/code_08016B30.s +++ b/asm/code_08016B30.s @@ -142,7 +142,7 @@ sub_08016C3C: @ 0x08016C3C ldrb r0, [r2] cmp r0, #0 beq _08016C6C - ldr r0, _08016C98 @ =gUnk_03000F50 + ldr r0, _08016C98 @ =gLCDControls ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #5 @@ -162,7 +162,7 @@ sub_08016C3C: @ 0x08016C3C str r0, [r1, #8] ldr r0, [r1, #8] _08016C6C: - ldr r4, _08016CA4 @ =gUnk_03000F58 + ldr r4, _08016CA4 @ =gBG0Settings adds r0, r4, #0 bl sub_08016CA8 adds r0, r4, #0 @@ -179,10 +179,10 @@ _08016C6C: bx r0 .align 2, 0 _08016C94: .4byte gUnk_03000000 -_08016C98: .4byte gUnk_03000F50 +_08016C98: .4byte gLCDControls _08016C9C: .4byte 0x040000D4 _08016CA0: .4byte 0x84000100 -_08016CA4: .4byte gUnk_03000F58 +_08016CA4: .4byte gBG0Settings thumb_func_start sub_08016CA8 sub_08016CA8: @ 0x08016CA8 diff --git a/asm/code_08016DF8.s b/asm/code_08016DF8.s index 4f2d1815..9d7150f4 100644 --- a/asm/code_08016DF8.s +++ b/asm/code_08016DF8.s @@ -357,7 +357,7 @@ _080170B4: beq _080170C0 b _080171EA _080170C0: - ldr r0, _08017124 @ =gUnk_02000050 + ldr r0, _08017124 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 @@ -410,7 +410,7 @@ _08017112: strh r1, [r0] b _0801715A .align 2, 0 -_08017124: .4byte gUnk_02000050 +_08017124: .4byte gTextBox _08017128: .4byte gUnk_02034350 _0801712C: .4byte gUnk_02002A40 _08017130: .4byte gUnk_0200AF00 @@ -1003,7 +1003,7 @@ _080175A4: lsls r0, r1, #4 subs r0, #0x10 adds r2, r0, r2 - ldr r3, _080175E4 @ =gUnk_03000BF0 + ldr r3, _080175E4 @ =gRoomControls ldrh r0, [r4, #0x2e] ldrh r1, [r3, #6] subs r0, r0, r1 @@ -1023,7 +1023,7 @@ _080175D2: _080175D8: .4byte gUnk_020342F8 _080175DC: .4byte gUnk_080B313C _080175E0: .4byte gUnk_02031EC0 -_080175E4: .4byte gUnk_03000BF0 +_080175E4: .4byte gRoomControls thumb_func_start sub_080175E8 sub_080175E8: @ 0x080175E8 diff --git a/asm/code_08018500.s b/asm/code_08018500.s index ddeafeb0..d2faa1da 100644 --- a/asm/code_08018500.s +++ b/asm/code_08018500.s @@ -320,7 +320,7 @@ sub_08018738: @ 0x08018738 lsls r0, r0, #2 ldr r1, _08018764 @ =gUnk_080FE320 adds r0, r0, r1 - ldr r1, _08018768 @ =gUnk_03000BF0 + ldr r1, _08018768 @ =gRoomControls ldrh r0, [r0, #2] ldrh r1, [r1, #4] cmp r0, r1 @@ -334,7 +334,7 @@ _08018760: pop {r4, pc} .align 2, 0 _08018764: .4byte gUnk_080FE320 -_08018768: .4byte gUnk_03000BF0 +_08018768: .4byte gRoomControls thumb_func_start sub_0801876C sub_0801876C: @ 0x0801876C @@ -553,7 +553,7 @@ _08018930: adds r2, r0, #0 cmp r2, #0 beq _08018958 - ldr r0, _08018978 @ =gUnk_03000BF0 + ldr r0, _08018978 @ =gRoomControls ldrh r1, [r0, #6] ldrh r3, [r5, #8] adds r1, r1, r3 @@ -579,7 +579,7 @@ _08018958: b _0801899C .align 2, 0 _08018974: .4byte gUnk_080FEE78 -_08018978: .4byte gUnk_03000BF0 +_08018978: .4byte gRoomControls _0801897C: ldrh r4, [r5, #8] lsrs r4, r4, #4 @@ -1715,7 +1715,7 @@ _0801920E: _0801921A: movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _08019288 @ =gUnk_03000BF0 + ldr r2, _08019288 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -1765,7 +1765,7 @@ _0801921A: bl sub_08004260 b _080192A2 .align 2, 0 -_08019288: .4byte gUnk_03000BF0 +_08019288: .4byte gRoomControls _0801928C: .4byte gLinkEntity _08019290: .4byte gUnk_08003E44 _08019294: @@ -2181,7 +2181,7 @@ sub_08019580: @ 0x08019580 _080195B0: movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _0801962C @ =gUnk_03000BF0 + ldr r2, _0801962C @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -2236,7 +2236,7 @@ _0801961A: bl sub_0805E780 b _0801963C .align 2, 0 -_0801962C: .4byte gUnk_03000BF0 +_0801962C: .4byte gRoomControls _08019630: .4byte gLinkEntity _08019634: .4byte gUnk_08003E44 _08019638: @@ -2309,7 +2309,7 @@ sub_08019698: @ 0x08019698 ldrh r0, [r4] ldrh r1, [r4, #2] bl sub_08052FD8 - ldr r5, _0801972C @ =gUnk_03000BF0 + ldr r5, _0801972C @ =gRoomControls ldrh r0, [r4, #6] ldrh r1, [r5, #0xa] adds r0, r0, r1 @@ -2322,7 +2322,7 @@ sub_08019698: @ 0x08019698 movs r0, #1 strb r0, [r1] bl sub_08000108 - ldr r2, _08019734 @ =gUnk_03000F50 + ldr r2, _08019734 @ =gLCDControls ldrh r1, [r2] ldr r0, _08019738 @ =0x0000FEFF ands r0, r1 @@ -2359,9 +2359,9 @@ _08019700: .align 2, 0 _08019724: .4byte gUnk_02032EC0 _08019728: .4byte gUnk_080B4410 -_0801972C: .4byte gUnk_03000BF0 +_0801972C: .4byte gRoomControls _08019730: .4byte gUnk_02000070 -_08019734: .4byte gUnk_03000F50 +_08019734: .4byte gLCDControls _08019738: .4byte 0x0000FEFF _0801973C: .4byte gUnk_02018EB0 @@ -2426,7 +2426,7 @@ sub_080197A0: @ 0x080197A0 thumb_func_start sub_080197AC sub_080197AC: @ 0x080197AC ldr r0, _080197C4 @ =gUnk_02025EB0 - ldr r1, _080197C8 @ =gUnk_03000F70 + ldr r1, _080197C8 @ =gBGAffSettings str r1, [r0] ldr r2, _080197CC @ =gUnk_080B77C0 ldrh r0, [r2] @@ -2439,7 +2439,7 @@ sub_080197AC: @ 0x080197AC bx lr .align 2, 0 _080197C4: .4byte gUnk_02025EB0 -_080197C8: .4byte gUnk_03000F70 +_080197C8: .4byte gBGAffSettings _080197CC: .4byte gUnk_080B77C0 _080197D0: .4byte gUnk_0200B650 @@ -2565,7 +2565,7 @@ _0801989E: adds r4, r0, #0 cmp r4, #0xff beq _0801997C - ldr r5, _08019960 @ =gUnk_03000BF0 + ldr r5, _08019960 @ =gRoomControls ldrb r1, [r5, #0xf] movs r0, #4 ands r0, r1 @@ -2646,7 +2646,7 @@ _0801995A: movs r0, #3 bl _0801A2A6 .align 2, 0 -_08019960: .4byte gUnk_03000BF0 +_08019960: .4byte gRoomControls _08019964: .4byte gUnk_080B4490 _08019968: .4byte 0x00010002 _0801996C: @@ -2675,7 +2675,7 @@ _0801997C: movs r2, #0 ldrsh r1, [r6, r2] adds r0, r0, r1 - ldr r3, _080199E4 @ =gUnk_03000BF0 + ldr r3, _080199E4 @ =gRoomControls ldrh r1, [r3, #6] subs r0, r0, r1 asrs r7, r0, #4 @@ -2706,7 +2706,7 @@ _0801997C: .align 2, 0 _080199DC: .4byte gLinkEntity _080199E0: .4byte gUnk_080B4468 -_080199E4: .4byte gUnk_03000BF0 +_080199E4: .4byte gRoomControls _080199E8: .4byte 0x00003FFF _080199EC: adds r4, r6, #0 @@ -3013,7 +3013,7 @@ _08019C02: adds r6, r0, r1 movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r4, _08019C58 @ =gUnk_03000BF0 + ldr r4, _08019C58 @ =gRoomControls ldrh r1, [r4, #6] subs r0, r0, r1 movs r2, #0 @@ -3046,7 +3046,7 @@ _08019C38: .align 2, 0 _08019C50: .4byte gUnk_03003F80 _08019C54: .4byte gUnk_080B4478 -_08019C58: .4byte gUnk_03000BF0 +_08019C58: .4byte gRoomControls _08019C5C: ldrh r0, [r2, #2] ldrh r4, [r4, #6] @@ -3560,7 +3560,7 @@ _0801A02A: ands r0, r1 lsls r0, r0, #4 adds r0, #8 - ldr r2, _0801A090 @ =gUnk_03000BF0 + ldr r2, _0801A090 @ =gRoomControls ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r5, #0x2e] @@ -3597,7 +3597,7 @@ _0801A080: .4byte 0x0000FFFF _0801A084: .4byte 0x00000FFF _0801A088: .4byte gUnk_03004040 _0801A08C: .4byte gLinkEntity -_0801A090: .4byte gUnk_03000BF0 +_0801A090: .4byte gRoomControls _0801A094: movs r0, #0xa0 strb r0, [r2, #6] @@ -3946,7 +3946,7 @@ _0801A32C: beq _0801A36C movs r1, #0x3f ands r1, r4 - ldr r0, _0801A368 @ =gUnk_03000BF0 + ldr r0, _0801A368 @ =gRoomControls lsls r1, r1, #4 ldrh r2, [r0, #6] adds r1, r1, r2 @@ -3967,7 +3967,7 @@ _0801A32C: b _0801A36E .align 2, 0 _0801A364: .4byte 0x00002004 -_0801A368: .4byte gUnk_03000BF0 +_0801A368: .4byte gRoomControls _0801A36C: movs r0, #0 _0801A36E: @@ -4146,7 +4146,7 @@ _0801A4B0: beq _0801A4F0 movs r1, #0x3f ands r1, r4 - ldr r0, _0801A4EC @ =gUnk_03000BF0 + ldr r0, _0801A4EC @ =gRoomControls lsls r1, r1, #4 ldrh r2, [r0, #6] adds r1, r1, r2 @@ -4167,7 +4167,7 @@ _0801A4B0: b _0801A4F2 .align 2, 0 _0801A4E8: .4byte 0x00002004 -_0801A4EC: .4byte gUnk_03000BF0 +_0801A4EC: .4byte gRoomControls _0801A4F0: movs r0, #0 _0801A4F2: @@ -4282,7 +4282,7 @@ _0801A5B6: _0801A5BC: movs r1, #0x2e ldrsh r0, [r6, r1] - ldr r2, _0801A66C @ =gUnk_03000BF0 + ldr r2, _0801A66C @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r4, r0, #4 @@ -4376,13 +4376,13 @@ _0801A65E: b _0801A8B4 .align 2, 0 _0801A668: .4byte 0x00005004 -_0801A66C: .4byte gUnk_03000BF0 +_0801A66C: .4byte gRoomControls _0801A670: .4byte 0xFFFFFC97 _0801A674: .4byte 0x00001FC4 _0801A678: movs r0, #0x2e ldrsh r1, [r6, r0] - ldr r3, _0801A730 @ =gUnk_03000BF0 + ldr r3, _0801A730 @ =gRoomControls ldrh r0, [r3, #6] subs r0, #0xa subs r1, r1, r0 @@ -4480,13 +4480,13 @@ _0801A722: beq _0801A71A b _0801A8B4 .align 2, 0 -_0801A730: .4byte gUnk_03000BF0 +_0801A730: .4byte gRoomControls _0801A734: .4byte 0x00000369 _0801A738: .4byte 0x00002004 _0801A73C: movs r1, #0x2e ldrsh r0, [r6, r1] - ldr r2, _0801A7E8 @ =gUnk_03000BF0 + ldr r2, _0801A7E8 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r4, r0, #4 @@ -4576,7 +4576,7 @@ _0801A7D6: beq _0801A7D6 b _0801A8B4 .align 2, 0 -_0801A7E8: .4byte gUnk_03000BF0 +_0801A7E8: .4byte gRoomControls _0801A7EC: .4byte 0x0000036F _0801A7F0: .4byte 0x00000372 _0801A7F4: .4byte 0x00000369 @@ -4584,7 +4584,7 @@ _0801A7F8: .4byte 0x00002004 _0801A7FC: movs r0, #0x2e ldrsh r1, [r6, r0] - ldr r3, _0801A890 @ =gUnk_03000BF0 + ldr r3, _0801A890 @ =gRoomControls ldrh r0, [r3, #6] adds r0, #0xa subs r1, r1, r0 @@ -4660,7 +4660,7 @@ _0801A87C: ldrb r0, [r1] b _0801A8B0 .align 2, 0 -_0801A890: .4byte gUnk_03000BF0 +_0801A890: .4byte gRoomControls _0801A894: .4byte 0x0000036F _0801A898: .4byte 0x00000372 _0801A89C: .4byte 0x00000369 @@ -4710,7 +4710,7 @@ sub_0801A8D0: @ 0x0801A8D0 bne _0801A92C movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r2, _0801A91C @ =gUnk_03000BF0 + ldr r2, _0801A91C @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r4, r0, #4 @@ -4734,7 +4734,7 @@ sub_0801A8D0: @ 0x0801A8D0 subs r0, r4, #1 b _0801A97A .align 2, 0 -_0801A91C: .4byte gUnk_03000BF0 +_0801A91C: .4byte gRoomControls _0801A920: .4byte 0x00004055 _0801A924: ldr r0, _0801A928 @ =0x00004056 @@ -4744,7 +4744,7 @@ _0801A928: .4byte 0x00004056 _0801A92C: movs r0, #0x2e ldrsh r1, [r5, r0] - ldr r3, _0801A960 @ =gUnk_03000BF0 + ldr r3, _0801A960 @ =gRoomControls ldrh r0, [r3, #6] adds r0, #8 subs r1, r1, r0 @@ -4769,7 +4769,7 @@ _0801A92C: subs r0, #0x40 b _0801A97A .align 2, 0 -_0801A960: .4byte gUnk_03000BF0 +_0801A960: .4byte gRoomControls _0801A964: .4byte 0x00004057 _0801A968: ldr r0, _0801A974 @ =0x00004058 @@ -4806,7 +4806,7 @@ sub_0801A980: @ 0x0801A980 movs r3, #0 ldrsh r1, [r2, r3] adds r0, r0, r1 - ldr r5, _0801A9E8 @ =gUnk_03000BF0 + ldr r5, _0801A9E8 @ =gRoomControls ldrh r1, [r5, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -4838,7 +4838,7 @@ _0801A9DC: .align 2, 0 _0801A9E0: .4byte gLinkEntity _0801A9E4: .4byte gUnk_080B44A8 -_0801A9E8: .4byte gUnk_03000BF0 +_0801A9E8: .4byte gRoomControls _0801A9EC: .4byte 0x00003FFF thumb_func_start sub_0801A9F0 @@ -4943,7 +4943,7 @@ _0801AA94: ands r0, r1 lsls r0, r0, #4 adds r0, #8 - ldr r2, _0801AAF8 @ =gUnk_03000BF0 + ldr r2, _0801AAF8 @ =gRoomControls ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r4, #0x2e] @@ -4977,7 +4977,7 @@ _0801AA94: .align 2, 0 _0801AAF0: .4byte gUnk_080B4488 _0801AAF4: .4byte 0x00002004 -_0801AAF8: .4byte gUnk_03000BF0 +_0801AAF8: .4byte gRoomControls _0801AAFC: .4byte gUnk_03003F80 _0801AB00: movs r0, #0 @@ -5208,7 +5208,7 @@ sub_0801AC98: @ 0x0801AC98 mov r5, r8 push {r5, r6, r7} sub sp, #8 - ldr r0, _0801ACD0 @ =gUnk_03000BF0 + ldr r0, _0801ACD0 @ =gRoomControls ldrh r1, [r0, #0x1e] lsrs r1, r1, #4 mov r8, r1 @@ -5233,7 +5233,7 @@ _0801ACC4: mov sb, r0 b _0801ACDA .align 2, 0 -_0801ACD0: .4byte gUnk_03000BF0 +_0801ACD0: .4byte gRoomControls _0801ACD4: .4byte gUnk_080B44C0 _0801ACD8: adds r5, #0xc @@ -5337,7 +5337,7 @@ sub_0801AD6C: @ 0x0801AD6C ands r0, r1 lsls r0, r0, #4 adds r0, #8 - ldr r2, _0801ADD4 @ =gUnk_03000BF0 + ldr r2, _0801ADD4 @ =gRoomControls ldrh r1, [r2, #6] adds r1, r1, r0 movs r3, #0 @@ -5363,7 +5363,7 @@ sub_0801AD6C: @ 0x0801AD6C bl sub_0805EA2C b _0801AE26 .align 2, 0 -_0801ADD4: .4byte gUnk_03000BF0 +_0801ADD4: .4byte gRoomControls _0801ADD8: .4byte gUnk_081091E4 _0801ADDC: bl sub_0805E8D4 @@ -5383,7 +5383,7 @@ _0801ADDC: ands r0, r1 lsls r0, r0, #4 adds r0, #8 - ldr r2, _0801AE28 @ =gUnk_03000BF0 + ldr r2, _0801AE28 @ =gRoomControls ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r3, #0x38] @@ -5404,7 +5404,7 @@ _0801ADDC: _0801AE26: pop {r4, r5, r6, pc} .align 2, 0 -_0801AE28: .4byte gUnk_03000BF0 +_0801AE28: .4byte gRoomControls _0801AE2C: .4byte gUnk_081091E4 thumb_func_start sub_0801AE30 @@ -5414,20 +5414,20 @@ sub_0801AE30: @ 0x0801AE30 thumb_func_start sub_0801AE34 sub_0801AE34: @ 0x0801AE34 - ldr r0, _0801AE40 @ =gUnk_03000BF0 + ldr r0, _0801AE40 @ =gRoomControls ldrb r0, [r0, #0xf] lsrs r0, r0, #1 movs r1, #1 ands r0, r1 bx lr .align 2, 0 -_0801AE40: .4byte gUnk_03000BF0 +_0801AE40: .4byte gRoomControls thumb_func_start sub_0801AE44 sub_0801AE44: @ 0x0801AE44 push {r4, lr} adds r4, r0, #0 - ldr r1, _0801AEE0 @ =gUnk_03000BF0 + ldr r1, _0801AEE0 @ =gRoomControls movs r0, #0 str r0, [r1, #0x34] bl sub_0807BFD0 @@ -5477,7 +5477,7 @@ _0801AE9A: ldr r0, [r0] bl _call_via_r1 _0801AEB6: - ldr r0, _0801AEE0 @ =gUnk_03000BF0 + ldr r0, _0801AEE0 @ =gRoomControls ldrb r1, [r0, #0xf] movs r0, #1 ands r0, r1 @@ -5498,7 +5498,7 @@ _0801AED0: bl sub_0801AB08 b _0801AF10 .align 2, 0 -_0801AEE0: .4byte gUnk_03000BF0 +_0801AEE0: .4byte gRoomControls _0801AEE4: .4byte gUnk_030010A0 _0801AEE8: .4byte gUnk_02033A90 _0801AEEC: .4byte 0x0600F000 @@ -5634,7 +5634,7 @@ sub_0801AFE4: @ 0x0801AFE4 mov r5, r8 push {r5, r6, r7} ldr r3, _0801B018 @ =gUnk_02027EB4 - ldr r0, _0801B01C @ =gUnk_03000BF0 + ldr r0, _0801B01C @ =gRoomControls ldrh r1, [r0, #0x1e] lsrs r1, r1, #4 mov sl, r1 @@ -5657,7 +5657,7 @@ _0801B00E: b _0801B026 .align 2, 0 _0801B018: .4byte gUnk_02027EB4 -_0801B01C: .4byte gUnk_03000BF0 +_0801B01C: .4byte gRoomControls _0801B020: .4byte gUnk_080B44D0 _0801B024: adds r1, #4 @@ -6614,7 +6614,7 @@ _0801B6DC: _0801B6FE: movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _0801B780 @ =gUnk_03000BF0 + ldr r2, _0801B780 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -6679,7 +6679,7 @@ _0801B76C: movs r0, #0x1e b _0801B792 .align 2, 0 -_0801B780: .4byte gUnk_03000BF0 +_0801B780: .4byte gRoomControls _0801B784: .4byte gLinkEntity _0801B788: .4byte gUnk_08003E44 _0801B78C: @@ -7631,7 +7631,7 @@ sub_0801BEF8: @ 0x0801BEF8 lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r0, r1 - ldr r4, _0801BFF8 @ =gUnk_03000BF0 + ldr r4, _0801BFF8 @ =gRoomControls ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -7695,7 +7695,7 @@ _0801BF62: lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r0, r1 - ldr r4, _0801BFF8 @ =gUnk_03000BF0 + ldr r4, _0801BFF8 @ =gRoomControls ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -7737,7 +7737,7 @@ _0801BFDA: .align 2, 0 _0801BFF0: .4byte gLinkEntity _0801BFF4: .4byte gUnk_080B7B6C -_0801BFF8: .4byte gUnk_03000BF0 +_0801BFF8: .4byte gRoomControls _0801BFFC: .4byte gUnk_03003F80 _0801C000: .4byte gUnk_03000FF0 _0801C004: @@ -7817,7 +7817,7 @@ _0801C074: lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r1, r1, r2 - ldr r5, _0801C1CC @ =gUnk_03000BF0 + ldr r5, _0801C1CC @ =gRoomControls ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -7865,7 +7865,7 @@ _0801C0D4: movs r2, #0 ldrsb r2, [r6, r2] adds r1, r1, r2 - ldr r5, _0801C1CC @ =gUnk_03000BF0 + ldr r5, _0801C1CC @ =gRoomControls ldrh r2, [r5, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -7970,7 +7970,7 @@ _0801C1BE: pop {r4, r5, r6, r7, pc} .align 2, 0 _0801C1C8: .4byte gUnk_080B7B6C -_0801C1CC: .4byte gUnk_03000BF0 +_0801C1CC: .4byte gRoomControls _0801C1D0: .4byte gUnk_03000FF0 thumb_func_start sub_0801C1D4 @@ -8224,7 +8224,7 @@ _0801C398: lsls r1, r1, #4 adds r0, r4, #0 bl sub_0801D630 - ldr r1, _0801C47C @ =gUnk_03000F50 + ldr r1, _0801C47C @ =gLCDControls str r4, [r1, #0x10] ldr r0, _0801C480 @ =0x00001F0C strh r0, [r1, #8] @@ -8298,7 +8298,7 @@ _0801C398: _0801C470: .4byte gUnk_0200AF00 _0801C474: .4byte gUnk_02002A40 _0801C478: .4byte gUnk_02034CB0 -_0801C47C: .4byte gUnk_03000F50 +_0801C47C: .4byte gLCDControls _0801C480: .4byte 0x00001F0C _0801C484: .4byte gUnk_03000000 _0801C488: .4byte 0x00000427 @@ -8307,12 +8307,12 @@ _0801C490: .4byte 0x0000042E thumb_func_start sub_0801C494 sub_0801C494: @ 0x0801C494 - ldr r1, _0801C49C @ =gUnk_03000F50 + ldr r1, _0801C49C @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] bx lr .align 2, 0 -_0801C49C: .4byte gUnk_03000F50 +_0801C49C: .4byte gLCDControls thumb_func_start sub_0801C4A0 sub_0801C4A0: @ 0x0801C4A0 @@ -8355,14 +8355,14 @@ _0801C4C8: strh r0, [r4, #4] strh r0, [r4, #6] strh r0, [r4, #8] - ldr r1, _0801C4F8 @ =gUnk_03000F50 + ldr r1, _0801C4F8 @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] b _0801C5D0 .align 2, 0 _0801C4F0: .4byte gUnk_0200AF00 _0801C4F4: .4byte gUnk_02035160 -_0801C4F8: .4byte gUnk_03000F50 +_0801C4F8: .4byte gLCDControls _0801C4FC: ldrb r0, [r6, #0xa] cmp r0, #0 @@ -8399,7 +8399,7 @@ _0801C4FC: strh r0, [r3, #8] adds r0, r1, #5 strh r0, [r4, #8] - ldr r1, _0801C55C @ =gUnk_03000F50 + ldr r1, _0801C55C @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] movs r4, #1 @@ -8409,7 +8409,7 @@ _0801C54C: .4byte gUnk_02035160 _0801C550: .4byte gUnk_080FD590 _0801C554: .4byte gUnk_02002A40 _0801C558: .4byte 0x0000F070 -_0801C55C: .4byte gUnk_03000F50 +_0801C55C: .4byte gLCDControls _0801C560: movs r4, #0 ldr r2, _0801C580 @ =gUnk_02002A40 @@ -8561,7 +8561,7 @@ sub_0801C66C: @ 0x0801C66C movs r2, #2 _0801C684: ldr r0, _0801C6A8 @ =gUnk_02034CF0 - ldr r3, _0801C6AC @ =gUnk_03000F50 + ldr r3, _0801C6AC @ =gLCDControls movs r1, #0 _0801C68A: str r1, [r0] @@ -8581,7 +8581,7 @@ _0801C6A2: .align 2, 0 _0801C6A4: .4byte gUnk_0200AF00 _0801C6A8: .4byte gUnk_02034CF0 -_0801C6AC: .4byte gUnk_03000F50 +_0801C6AC: .4byte gLCDControls thumb_func_start sub_0801C6B0 sub_0801C6B0: @ 0x0801C6B0 @@ -8764,7 +8764,7 @@ _0801C7EE: orrs r1, r2 strh r1, [r0, #2] _0801C7FC: - ldr r1, _0801C820 @ =gUnk_03000F50 + ldr r1, _0801C820 @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] _0801C802: @@ -8778,7 +8778,7 @@ _0801C810: .4byte 0x0000F010 _0801C814: .4byte 0x040000D4 _0801C818: .4byte gUnk_02034CF0 _0801C81C: .4byte 0xFFFFF000 -_0801C820: .4byte gUnk_03000F50 +_0801C820: .4byte gLCDControls thumb_func_start sub_0801C824 sub_0801C824: @ 0x0801C824 @@ -8801,7 +8801,7 @@ _0801C83C: str r2, [r1, #0xc] str r2, [r1, #0x10] str r2, [r1, #0x14] - ldr r1, _0801C858 @ =gUnk_03000F50 + ldr r1, _0801C858 @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] _0801C84E: @@ -8809,7 +8809,7 @@ _0801C84E: .align 2, 0 _0801C850: .4byte gUnk_0200AF00 _0801C854: .4byte gUnk_02034D30 -_0801C858: .4byte gUnk_03000F50 +_0801C858: .4byte gLCDControls thumb_func_start sub_0801C85C sub_0801C85C: @ 0x0801C85C @@ -8902,7 +8902,7 @@ _0801C8BA: orrs r0, r1 strh r0, [r2, #2] _0801C90C: - ldr r0, _0801C94C @ =gUnk_03000F50 + ldr r0, _0801C94C @ =gLCDControls strh r6, [r0, #0xe] _0801C910: ldr r0, _0801C930 @ =gUnk_03003F80 @@ -8928,7 +8928,7 @@ _0801C93C: .4byte 0x040000D4 _0801C940: .4byte gUnk_080C8F54 _0801C944: .4byte 0x8000000A _0801C948: .4byte 0x000003FF -_0801C94C: .4byte gUnk_03000F50 +_0801C94C: .4byte gLCDControls _0801C950: .4byte gUnk_0200AF00 _0801C954: adds r0, r1, #1 @@ -8999,14 +8999,14 @@ _0801C9B2: strh r0, [r1] adds r1, #2 strh r0, [r1] - ldr r1, _0801C9E8 @ =gUnk_03000F50 + ldr r1, _0801C9E8 @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] b _0801CA50 .align 2, 0 _0801C9E0: .4byte gUnk_0200AF00 _0801C9E4: .4byte gUnk_020350E2 -_0801C9E8: .4byte gUnk_03000F50 +_0801C9E8: .4byte gLCDControls _0801C9EC: ldrb r0, [r4, #0x10] cmp r0, #0 @@ -9030,7 +9030,7 @@ _0801C9EC: strh r0, [r2, #6] adds r0, r3, #3 strh r0, [r1, #6] - ldr r1, _0801CA5C @ =gUnk_03000F50 + ldr r1, _0801CA5C @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] _0801CA1E: @@ -9064,7 +9064,7 @@ _0801CA50: .align 2, 0 _0801CA54: .4byte gUnk_020350E2 _0801CA58: .4byte 0x0000F01C -_0801CA5C: .4byte gUnk_03000F50 +_0801CA5C: .4byte gLCDControls _0801CA60: .4byte gUnk_02002A40 _0801CA64: .4byte gUnk_02033A90 _0801CA68: .4byte 0x0000045C @@ -9284,7 +9284,7 @@ sub_0801CBC8: @ 0x0801CBC8 ands r0, r1 cmp r0, #0 bne _0801CBF6 - ldr r0, _0801CC0C @ =gUnk_02000050 + ldr r0, _0801CC0C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -9302,7 +9302,7 @@ _0801CBF6: b _0801CC1E .align 2, 0 _0801CC08: .4byte gUnk_0200AF00 -_0801CC0C: .4byte gUnk_02000050 +_0801CC0C: .4byte gTextBox _0801CC10: ldr r1, _0801CC7C @ =gUnk_0200AF00 ldrb r0, [r5, #1] @@ -9633,7 +9633,7 @@ sub_0801CE58: @ 0x0801CE58 ands r0, r1 cmp r0, #0 bne _0801CEB4 - ldr r0, _0801CEBC @ =gUnk_02000050 + ldr r0, _0801CEBC @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -9671,7 +9671,7 @@ _0801CEB4: pop {r4, pc} .align 2, 0 _0801CEB8: .4byte gUnk_0200AF00 -_0801CEBC: .4byte gUnk_02000050 +_0801CEBC: .4byte gTextBox thumb_func_start sub_0801CEC0 sub_0801CEC0: @ 0x0801CEC0 @@ -9766,7 +9766,7 @@ sub_0801CF60: @ 0x0801CF60 ldrb r0, [r5] cmp r0, #4 bhi _0801CF7C - ldr r0, _0801CF90 @ =gUnk_02000050 + ldr r0, _0801CF90 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -9782,7 +9782,7 @@ _0801CF7C: b _0801CFA4 .align 2, 0 _0801CF8C: .4byte gUnk_0200AF00 -_0801CF90: .4byte gUnk_02000050 +_0801CF90: .4byte gTextBox _0801CF94: adds r0, r4, #0 bl sub_0801CAD0 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 84296342..1f7c1e2f 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -29,14 +29,14 @@ sub_0801D7BC: @ 0x0801D7BC adds r2, r0, #0 cmp r1, #0 beq _0801D7D4 - ldr r1, _0801D7CC @ =gUnk_03000F50 + ldr r1, _0801D7CC @ =gLCDControls ldr r0, _0801D7D0 @ =0x0000E0FF b _0801D7D8 .align 2, 0 -_0801D7CC: .4byte gUnk_03000F50 +_0801D7CC: .4byte gLCDControls _0801D7D0: .4byte 0x0000E0FF _0801D7D4: - ldr r1, _0801D7E4 @ =gUnk_03000F50 + ldr r1, _0801D7E4 @ =gLCDControls ldr r0, _0801D7E8 @ =0x0000FFFF _0801D7D8: strh r0, [r1, #6] @@ -45,7 +45,7 @@ _0801D7D8: bl sub_0801D79C pop {pc} .align 2, 0 -_0801D7E4: .4byte gUnk_03000F50 +_0801D7E4: .4byte gLCDControls _0801D7E8: .4byte 0x0000FFFF thumb_func_start sub_0801D7EC @@ -436,7 +436,7 @@ sub_0801DA90: @ 0x0801DA90 strb r3, [r0] ldr r0, _0801DAF4 @ =gUnk_03000FD0 strb r3, [r0] - ldr r5, _0801DAF8 @ =gUnk_03000F50 + ldr r5, _0801DAF8 @ =gLCDControls adds r0, r5, #0 adds r0, #0x6d strb r3, [r0] @@ -470,7 +470,7 @@ sub_0801DA90: @ 0x0801DA90 _0801DAEC: .4byte gUnk_03001000 _0801DAF0: .4byte gUnk_03003DE0 _0801DAF4: .4byte gUnk_03000FD0 -_0801DAF8: .4byte gUnk_03000F50 +_0801DAF8: .4byte gLCDControls _0801DAFC: .4byte 0x040000B0 _0801DB00: .4byte 0x0000C5FF _0801DB04: .4byte 0x00007FFF @@ -502,7 +502,7 @@ _0801DB30: .4byte gUnk_03000020 thumb_func_start sub_0801DB34 sub_0801DB34: @ 0x0801DB34 push {r4, lr} - ldr r4, _0801DB6C @ =gUnk_03000F50 + ldr r4, _0801DB6C @ =gLCDControls adds r0, r4, #0 movs r1, #0x7c bl sub_0801D630 @@ -529,7 +529,7 @@ sub_0801DB34: @ 0x0801DB34 strh r0, [r4, #6] pop {r4, pc} .align 2, 0 -_0801DB6C: .4byte gUnk_03000F50 +_0801DB6C: .4byte gLCDControls _0801DB70: .4byte gUnk_02034CB0 _0801DB74: .4byte 0x00001F0C _0801DB78: .4byte gUnk_02021F30 @@ -1170,7 +1170,7 @@ _0801E040: .4byte gUnk_02022740 thumb_func_start sub_0801E044 sub_0801E044: @ 0x0801E044 push {lr} - ldr r0, _0801E06C @ =gUnk_02000050 + ldr r0, _0801E06C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -1189,7 +1189,7 @@ sub_0801E044: @ 0x0801E044 _0801E06A: pop {pc} .align 2, 0 -_0801E06C: .4byte gUnk_02000050 +_0801E06C: .4byte gTextBox _0801E070: .4byte gUnk_02022740 thumb_func_start sub_0801E074 @@ -1222,7 +1222,7 @@ _0801E09C: .4byte gUnk_02022740 thumb_func_start sub_0801E0A0 sub_0801E0A0: @ 0x0801E0A0 push {r4, lr} - ldr r0, _0801E0D8 @ =gUnk_02000050 + ldr r0, _0801E0D8 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -1252,7 +1252,7 @@ _0801E0D2: _0801E0D4: pop {r4, pc} .align 2, 0 -_0801E0D8: .4byte gUnk_02000050 +_0801E0D8: .4byte gTextBox _0801E0DC: .4byte gUnk_02022740 thumb_func_start sub_0801E0E0 @@ -1266,19 +1266,19 @@ sub_0801E0E0: @ 0x0801E0E0 cmp r1, #0 beq _0801E0FC adds r0, r2, #0 - bl sub_08056398 + bl TextboxNoOverlap b _0801E102 .align 2, 0 _0801E0F8: .4byte gUnk_02022740 _0801E0FC: adds r0, r2, #0 - bl sub_08056378 + bl TextboxTryNoOverlap _0801E102: pop {pc} thumb_func_start sub_0801E104 sub_0801E104: @ 0x0801E104 - ldr r1, _0801E118 @ =gUnk_03000F50 + ldr r1, _0801E118 @ =gLCDControls ldrh r2, [r1] ldr r0, _0801E11C @ =0x00009FFF ands r0, r2 @@ -1288,12 +1288,12 @@ sub_0801E104: @ 0x0801E104 strb r2, [r1] bx lr .align 2, 0 -_0801E118: .4byte gUnk_03000F50 +_0801E118: .4byte gLCDControls _0801E11C: .4byte 0x00009FFF thumb_func_start sub_0801E120 sub_0801E120: @ 0x0801E120 - ldr r3, _0801E14C @ =gUnk_03000F50 + ldr r3, _0801E14C @ =gLCDControls ldrh r1, [r3] movs r2, #0x80 lsls r2, r2, #6 @@ -1316,7 +1316,7 @@ sub_0801E120: @ 0x0801E120 strh r0, [r1] bx lr .align 2, 0 -_0801E14C: .4byte gUnk_03000F50 +_0801E14C: .4byte gLCDControls _0801E150: .4byte 0x00003F37 thumb_func_start sub_0801E154 @@ -1371,7 +1371,7 @@ _0801E1B4: .4byte 0xA2600001 thumb_func_start sub_0801E1B8 sub_0801E1B8: @ 0x0801E1B8 push {r4, lr} - ldr r2, _0801E1E8 @ =gUnk_03000F50 + ldr r2, _0801E1E8 @ =gLCDControls mov ip, r2 ldrh r3, [r2] movs r4, #0x80 @@ -1395,7 +1395,7 @@ sub_0801E1B8: @ 0x0801E1B8 strh r0, [r1] pop {r4, pc} .align 2, 0 -_0801E1E8: .4byte gUnk_03000F50 +_0801E1E8: .4byte gLCDControls thumb_func_start sub_0801E1EC sub_0801E1EC: @ 0x0801E1EC @@ -6894,7 +6894,7 @@ sub_08020AD0: @ 0x08020AD0 bne _08020B68 movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r3, _08020B5C @ =gUnk_03000BF0 + ldr r3, _08020B5C @ =gRoomControls ldrh r1, [r3, #6] subs r0, r0, r1 asrs r5, r0, #4 @@ -6950,7 +6950,7 @@ sub_08020AD0: @ 0x08020AD0 movs r0, #1 b _08020B6A .align 2, 0 -_08020B5C: .4byte gUnk_03000BF0 +_08020B5C: .4byte gRoomControls _08020B60: .4byte 0xFF8F0000 _08020B64: .4byte 0x00004034 _08020B68: @@ -9998,7 +9998,7 @@ sub_080221C0: @ 0x080221C0 adds r6, r0, #0 movs r0, #0x2e ldrsh r4, [r6, r0] - ldr r1, _08022220 @ =gUnk_03000BF0 + ldr r1, _08022220 @ =gRoomControls ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 @@ -10040,7 +10040,7 @@ sub_080221C0: @ 0x080221C0 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 -_08022220: .4byte gUnk_03000BF0 +_08022220: .4byte gRoomControls _08022224: .4byte gUnk_080B4488 _08022228: .4byte gUnk_080CB79C @@ -14694,7 +14694,7 @@ _08024530: bne _08024592 movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r2, _08024584 @ =gUnk_03000BF0 + ldr r2, _08024584 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -14727,7 +14727,7 @@ _08024530: strh r2, [r5, #0x24] b _08024924 .align 2, 0 -_08024584: .4byte gUnk_03000BF0 +_08024584: .4byte gRoomControls _08024588: movs r0, #0x30 strb r0, [r5, #0xe] @@ -14985,7 +14985,7 @@ _0802475E: ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] - ldr r3, _080247DC @ =gUnk_03000BF0 + ldr r3, _080247DC @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -15030,7 +15030,7 @@ _080247D0: str r4, [r5, #0x54] b _08024924 .align 2, 0 -_080247DC: .4byte gUnk_03000BF0 +_080247DC: .4byte gRoomControls _080247E0: adds r0, r5, #0 bl sub_08024C94 @@ -16463,7 +16463,7 @@ _08025290: strb r0, [r4, #0xe] movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _080252D4 @ =gUnk_03000BF0 + ldr r2, _080252D4 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -16482,7 +16482,7 @@ _08025290: strh r1, [r0] b _080252DC .align 2, 0 -_080252D4: .4byte gUnk_03000BF0 +_080252D4: .4byte gRoomControls _080252D8: subs r0, #1 strh r0, [r1] @@ -16512,7 +16512,7 @@ sub_080252E0: @ 0x080252E0 bl sub_08004274 movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r3, _08025348 @ =gUnk_03000BF0 + ldr r3, _08025348 @ =gRoomControls ldrh r1, [r3, #6] subs r0, r0, r1 asrs r5, r0, #4 @@ -16541,7 +16541,7 @@ sub_080252E0: @ 0x080252E0 bl sub_080256B4 b _08025352 .align 2, 0 -_08025348: .4byte gUnk_03000BF0 +_08025348: .4byte gRoomControls _0802534C: strh r5, [r0] movs r0, #0xf0 @@ -17050,7 +17050,7 @@ sub_0802571C: @ 0x0802571C push {r5, r6, r7} sub sp, #8 adds r7, r0, #0 - ldr r0, _080257B0 @ =gUnk_03000BF0 + ldr r0, _080257B0 @ =gRoomControls mov sb, r0 ldrh r0, [r7, #0x2e] mov r2, sb @@ -17118,7 +17118,7 @@ _08025764: movs r0, #1 b _080257E0 .align 2, 0 -_080257B0: .4byte gUnk_03000BF0 +_080257B0: .4byte gRoomControls _080257B4: .4byte gUnk_080CC020 _080257B8: adds r0, r4, #2 @@ -17350,7 +17350,7 @@ sub_0802594C: @ 0x0802594C adds r0, #0x38 ldrb r0, [r0] mov sb, r0 - ldr r3, _08025A24 @ =gUnk_03000BF0 + ldr r3, _08025A24 @ =gRoomControls mov r1, sl ldrh r0, [r1, #0x2e] ldrh r1, [r3, #6] @@ -17439,9 +17439,9 @@ _08025996: b _08025A44 .align 2, 0 _08025A20: .4byte gUnk_080CC090 -_08025A24: .4byte gUnk_03000BF0 +_08025A24: .4byte gRoomControls _08025A28: - ldr r2, _08025A50 @ =gUnk_03000BF0 + ldr r2, _08025A50 @ =gRoomControls ldrh r0, [r2, #6] ldr r1, [sp, #8] adds r0, r0, r1 @@ -17463,7 +17463,7 @@ _08025A44: mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 -_08025A50: .4byte gUnk_03000BF0 +_08025A50: .4byte gRoomControls thumb_func_start sub_08025A54 sub_08025A54: @ 0x08025A54 @@ -17475,7 +17475,7 @@ sub_08025A54: @ 0x08025A54 adds r1, #0x38 ldrb r1, [r1] mov sb, r1 - ldr r3, _08025AB0 @ =gUnk_03000BF0 + ldr r3, _08025AB0 @ =gRoomControls ldrh r2, [r0, #0x2e] ldrh r1, [r3, #6] subs r2, r2, r1 @@ -17514,7 +17514,7 @@ _08025A82: mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 -_08025AB0: .4byte gUnk_03000BF0 +_08025AB0: .4byte gRoomControls _08025AB4: .4byte gUnk_080CC0A0 thumb_func_start sub_08025AB8 @@ -17582,7 +17582,7 @@ sub_08025B18: @ 0x08025B18 adds r6, r0, #0 movs r0, #0x2e ldrsh r1, [r6, r0] - ldr r2, _08025BC8 @ =gUnk_03000BF0 + ldr r2, _08025BC8 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 str r1, [sp] @@ -17661,7 +17661,7 @@ _08025BB4: mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 -_08025BC8: .4byte gUnk_03000BF0 +_08025BC8: .4byte gRoomControls _08025BCC: .4byte gUnk_080CC0A8 _08025BD0: .4byte 0x0000FFFF @@ -18313,7 +18313,7 @@ sub_08026090: @ 0x08026090 strb r0, [r4, #0xd] movs r0, #0xfa strb r0, [r4, #0xe] - ldr r0, _080260D4 @ =gUnk_03000BF0 + ldr r0, _080260D4 @ =gRoomControls str r4, [r0, #0x30] _080260B8: ldr r0, [r4, #0x54] @@ -18330,7 +18330,7 @@ _080260B8: strb r1, [r0] b _080260E0 .align 2, 0 -_080260D4: .4byte gUnk_03000BF0 +_080260D4: .4byte gRoomControls _080260D8: adds r1, r4, #0 adds r1, #0x3f @@ -18350,14 +18350,14 @@ _080260EA: lsrs r0, r0, #0x18 cmp r0, #0xff bne _08026106 - ldr r1, _08026108 @ =gUnk_03000BF0 + ldr r1, _08026108 @ =gRoomControls ldr r0, _0802610C @ =gLinkEntity str r0, [r1, #0x30] bl sub_0805E780 _08026106: pop {r4, pc} .align 2, 0 -_08026108: .4byte gUnk_03000BF0 +_08026108: .4byte gRoomControls _0802610C: .4byte gLinkEntity thumb_func_start sub_08026110 @@ -18622,7 +18622,7 @@ _080262EC: strb r0, [r1, #3] ldr r0, _0802631C @ =gLinkEntity strb r6, [r0, #0x14] - ldr r0, _08026320 @ =gUnk_03000BF0 + ldr r0, _08026320 @ =gRoomControls str r4, [r0, #0x30] strb r5, [r0, #0xe] ldr r0, _08026324 @ =0x00004022 @@ -18634,7 +18634,7 @@ _0802631A: pop {r4, r5, r6, pc} .align 2, 0 _0802631C: .4byte gLinkEntity -_08026320: .4byte gUnk_03000BF0 +_08026320: .4byte gRoomControls _08026324: .4byte 0x00004022 thumb_func_start sub_08026328 @@ -18693,14 +18693,14 @@ sub_08026358: @ 0x08026358 adds r0, #1 strb r0, [r1, #3] strb r2, [r4, #0x14] - ldr r1, _0802639C @ =gUnk_03000BF0 + ldr r1, _0802639C @ =gRoomControls str r3, [r1, #0x30] movs r0, #1 strb r0, [r1, #0xe] b _080263B0 .align 2, 0 _08026398: .4byte gLinkEntity -_0802639C: .4byte gUnk_03000BF0 +_0802639C: .4byte gRoomControls _080263A0: cmp r2, #0x60 bhi _080263B0 @@ -18911,7 +18911,7 @@ sub_0802650C: @ 0x0802650C ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] - ldr r1, _08026534 @ =gUnk_03000BF0 + ldr r1, _08026534 @ =gRoomControls ldr r0, _08026538 @ =gLinkEntity str r0, [r1, #0x30] _0802652C: @@ -18919,7 +18919,7 @@ _0802652C: bl sub_08027870 pop {pc} .align 2, 0 -_08026534: .4byte gUnk_03000BF0 +_08026534: .4byte gRoomControls _08026538: .4byte gLinkEntity thumb_func_start sub_0802653C @@ -18927,7 +18927,7 @@ sub_0802653C: @ 0x0802653C push {r4, r5, lr} sub sp, #4 adds r4, r0, #0 - ldr r1, _08026578 @ =gUnk_03000BF0 + ldr r1, _08026578 @ =gRoomControls ldrh r5, [r1] cmp r5, #0 bne _08026572 @@ -18952,7 +18952,7 @@ _08026572: add sp, #4 pop {r4, r5, pc} .align 2, 0 -_08026578: .4byte gUnk_03000BF0 +_08026578: .4byte gRoomControls _0802657C: .4byte gUnk_02034490 thumb_func_start sub_08026580 @@ -20877,7 +20877,7 @@ _0802741C: _08027424: .4byte 0x00000127 _08027428: bl sub_08078B48 - ldr r0, _0802744C @ =gUnk_03000BF0 + ldr r0, _0802744C @ =gRoomControls ldr r2, [r6, #0x54] str r2, [r0, #0x30] ldr r1, _08027450 @ =gUnk_02034490 @@ -20893,7 +20893,7 @@ _08027444: bl sub_08027A60 b _08027484 .align 2, 0 -_0802744C: .4byte gUnk_03000BF0 +_0802744C: .4byte gRoomControls _08027450: .4byte gUnk_02034490 _08027454: ldr r5, [r6, #0x48] @@ -22710,7 +22710,7 @@ _080281CA: strb r1, [r0] movs r0, #0xaf lsls r0, r0, #3 - bl sub_08056378 + bl TextboxTryNoOverlap b _080281DE _080281D6: movs r0, #1 @@ -22761,7 +22761,7 @@ sub_08028224: @ 0x08028224 movs r2, #1 bl sub_080A7C18 ldr r0, _08028238 @ =0x00000579 - bl sub_08056378 + bl TextboxTryNoOverlap pop {pc} .align 2, 0 _08028238: .4byte 0x00000579 @@ -23808,7 +23808,7 @@ _080289FC: strb r5, [r4, #0xe] movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _08028A44 @ =gUnk_03000BF0 + ldr r2, _08028A44 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -23841,7 +23841,7 @@ _080289FC: _08028A42: pop {r4, r5, pc} .align 2, 0 -_08028A44: .4byte gUnk_03000BF0 +_08028A44: .4byte gRoomControls thumb_func_start sub_08028A48 sub_08028A48: @ 0x08028A48 @@ -24183,7 +24183,7 @@ sub_08028CE8: @ 0x08028CE8 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldr r6, [r5, #0x7c] - ldr r0, _08028D30 @ =gUnk_02000050 + ldr r0, _08028D30 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -24207,12 +24207,12 @@ sub_08028CE8: @ 0x08028CE8 cmp r0, #0 beq _08028D3C ldr r0, _08028D38 @ =0x00002904 - bl sub_08056378 + bl TextboxTryNoOverlap movs r0, #0 bl sub_08078A90 b _08028DCC .align 2, 0 -_08028D30: .4byte gUnk_02000050 +_08028D30: .4byte gTextBox _08028D34: .4byte gUnk_02002A40 _08028D38: .4byte 0x00002904 _08028D3C: @@ -24281,7 +24281,7 @@ _08028DB6: b _08028DE2 _08028DC0: ldr r0, _08028DE4 @ =0x00002903 - bl sub_08056378 + bl TextboxTryNoOverlap movs r0, #0 bl sub_08078A90 _08028DCC: @@ -24320,7 +24320,7 @@ sub_08028DE8: @ 0x08028DE8 _08028E08: .4byte gLinkEntity _08028E0C: ldr r0, _08028E3C @ =0x00002902 - bl sub_08056378 + bl TextboxTryNoOverlap movs r1, #0 movs r0, #4 strb r0, [r4, #0xc] @@ -24346,7 +24346,7 @@ _08028E3C: .4byte 0x00002902 sub_08028E40: @ 0x08028E40 push {r4, r5, lr} adds r4, r0, #0 - ldr r0, _08028E80 @ =gUnk_02000050 + ldr r0, _08028E80 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 @@ -24374,7 +24374,7 @@ _08028E72: bl sub_08004274 pop {r4, r5, pc} .align 2, 0 -_08028E80: .4byte gUnk_02000050 +_08028E80: .4byte gTextBox thumb_func_start sub_08028E84 sub_08028E84: @ 0x08028E84 @@ -24513,14 +24513,14 @@ _08028F7A: bl sub_08078A90 _08028F84: adds r0, r4, #0 - bl sub_08056378 - ldr r1, _08028F94 @ =gUnk_02000050 + bl TextboxTryNoOverlap + ldr r1, _08028F94 @ =gTextBox ldrh r0, [r6, #2] str r0, [r1, #0x10] _08028F90: pop {r4, r5, r6, pc} .align 2, 0 -_08028F94: .4byte gUnk_02000050 +_08028F94: .4byte gTextBox thumb_func_start sub_08028F98 sub_08028F98: @ 0x08028F98 @@ -26458,7 +26458,7 @@ sub_08029E0C: @ 0x08029E0C mov sb, r0 movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r3, _08029EE4 @ =gUnk_03000BF0 + ldr r3, _08029EE4 @ =gRoomControls ldrh r1, [r3, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -26535,7 +26535,7 @@ _08029ECA: pop {r4, r5, r6, r7, pc} .align 2, 0 _08029EE0: .4byte gUnk_080CCDC8 -_08029EE4: .4byte gUnk_03000BF0 +_08029EE4: .4byte gRoomControls _08029EE8: .4byte gUnk_080B4488 thumb_func_start sub_08029EEC @@ -27115,10 +27115,10 @@ sub_0802A334: @ 0x0802A334 adds r4, r0, #0 movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _0802A380 @ =gUnk_03000BF0 + ldr r2, _0802A380 @ =gRoomControls movs r3, #0xa ldrsh r0, [r2, r3] - ldr r3, _0802A384 @ =gUnk_03000F50 + ldr r3, _0802A384 @ =gLCDControls subs r1, r1, r0 ldrh r5, [r3, #0x16] adds r1, r1, r5 @@ -27150,8 +27150,8 @@ sub_0802A334: @ 0x0802A334 movs r0, #2 b _0802A392 .align 2, 0 -_0802A380: .4byte gUnk_03000BF0 -_0802A384: .4byte gUnk_03000F50 +_0802A380: .4byte gRoomControls +_0802A384: .4byte gLCDControls _0802A388: .4byte gUnk_02001A40 _0802A38C: adds r1, r4, #0 @@ -27170,10 +27170,10 @@ sub_0802A39C: @ 0x0802A39C ldr r4, _0802A3EC @ =gLinkEntity movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _0802A3F0 @ =gUnk_03000BF0 + ldr r2, _0802A3F0 @ =gRoomControls movs r3, #0xa ldrsh r0, [r2, r3] - ldr r3, _0802A3F4 @ =gUnk_03000F50 + ldr r3, _0802A3F4 @ =gLCDControls subs r1, r1, r0 ldrh r6, [r3, #0x16] adds r1, r1, r6 @@ -27207,8 +27207,8 @@ sub_0802A39C: @ 0x0802A39C b _0802A402 .align 2, 0 _0802A3EC: .4byte gLinkEntity -_0802A3F0: .4byte gUnk_03000BF0 -_0802A3F4: .4byte gUnk_03000F50 +_0802A3F0: .4byte gRoomControls +_0802A3F4: .4byte gLCDControls _0802A3F8: .4byte gUnk_02001A40 _0802A3FC: ldrb r1, [r5, #0x10] @@ -28007,7 +28007,7 @@ _0802A9B8: bl sub_0802ACDC b _0802AA38 _0802A9DE: - ldr r0, _0802AA14 @ =gUnk_03000BF0 + ldr r0, _0802AA14 @ =gRoomControls ldrh r1, [r0] adds r2, r0, #0 cmp r1, #0 @@ -28034,7 +28034,7 @@ _0802A9DE: movs r0, #8 b _0802AA26 .align 2, 0 -_0802AA14: .4byte gUnk_03000BF0 +_0802AA14: .4byte gRoomControls _0802AA18: movs r1, #0x80 lsls r1, r1, #1 @@ -28428,15 +28428,15 @@ sub_0802ACDC: @ 0x0802ACDC ldrb r0, [r0] cmp r0, #0 beq _0802ACF8 - ldr r0, _0802ACF4 @ =gUnk_03000BF0 + ldr r0, _0802ACF4 @ =gRoomControls movs r2, #0xa ldrsh r1, [r0, r2] adds r1, #0x20 b _0802AD00 .align 2, 0 -_0802ACF4: .4byte gUnk_03000BF0 +_0802ACF4: .4byte gRoomControls _0802ACF8: - ldr r0, _0802AD18 @ =gUnk_03000BF0 + ldr r0, _0802AD18 @ =gRoomControls movs r2, #0xa ldrsh r1, [r0, r2] adds r1, #0xd0 @@ -28452,7 +28452,7 @@ _0802AD00: strb r5, [r4, #0xf] pop {r4, r5, pc} .align 2, 0 -_0802AD18: .4byte gUnk_03000BF0 +_0802AD18: .4byte gRoomControls thumb_func_start sub_0802AD1C sub_0802AD1C: @ 0x0802AD1C @@ -28491,7 +28491,7 @@ sub_0802AD54: @ 0x0802AD54 ldrh r0, [r0] cmp r0, #0 beq _0802ADAE - ldr r4, _0802AD7C @ =gUnk_03000BF0 + ldr r4, _0802AD7C @ =gRoomControls ldrh r0, [r4] cmp r0, #0 beq _0802AD80 @@ -28504,7 +28504,7 @@ sub_0802AD54: @ 0x0802AD54 bl sub_0805E7BC b _0802ADD8 .align 2, 0 -_0802AD7C: .4byte gUnk_03000BF0 +_0802AD7C: .4byte gRoomControls _0802AD80: ldrh r1, [r4, #8] movs r0, #0x32 @@ -28904,7 +28904,7 @@ sub_0802B048: @ 0x0802B048 ldrb r0, [r0] cmp r0, #0 beq _0802B080 - ldr r0, _0802B074 @ =gUnk_03000BF0 + ldr r0, _0802B074 @ =gRoomControls ldrh r1, [r0, #8] movs r3, #0x32 ldrsh r2, [r4, r3] @@ -28921,7 +28921,7 @@ _0802B06A: ands r0, r1 b _0802B07E .align 2, 0 -_0802B074: .4byte gUnk_03000BF0 +_0802B074: .4byte gRoomControls _0802B078: ldrb r1, [r4, #0x10] movs r0, #0x80 @@ -31215,7 +31215,7 @@ _0802C0FC: ldr r7, _0802C184 @ =gUnk_0200D654 _0802C140: movs r5, #0 - ldr r1, _0802C188 @ =gUnk_03000BF0 + ldr r1, _0802C188 @ =gRoomControls ldrh r0, [r1, #6] subs r0, r6, r0 asrs r0, r0, #4 @@ -31247,7 +31247,7 @@ _0802C178: _0802C17C: .4byte gUnk_080CD45C _0802C180: .4byte gUnk_02027EB4 _0802C184: .4byte gUnk_0200D654 -_0802C188: .4byte gUnk_03000BF0 +_0802C188: .4byte gRoomControls thumb_func_start sub_0802C18C sub_0802C18C: @ 0x0802C18C @@ -31439,7 +31439,7 @@ _0802C29C: strh r2, [r0] movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _0802C314 @ =gUnk_03000BF0 + ldr r2, _0802C314 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -31463,7 +31463,7 @@ _0802C29C: pop {r4, r5, pc} .align 2, 0 _0802C310: .4byte 0x0000FFF0 -_0802C314: .4byte gUnk_03000BF0 +_0802C314: .4byte gRoomControls thumb_func_start sub_0802C318 sub_0802C318: @ 0x0802C318 @@ -31492,7 +31492,7 @@ sub_0802C334: @ 0x0802C334 ldrh r0, [r3] cmp r0, #0 bne _0802C36A - ldr r0, _0802C3C4 @ =gUnk_03000BF0 + ldr r0, _0802C3C4 @ =gRoomControls ldrh r1, [r0, #8] ldr r2, _0802C3C8 @ =gLinkEntity cmp r2, #0 @@ -31519,7 +31519,7 @@ _0802C36A: bl sub_08004274 movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _0802C3C4 @ =gUnk_03000BF0 + ldr r2, _0802C3C4 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -31557,7 +31557,7 @@ _0802C36A: bl sub_0802C4B0 b _0802C48C .align 2, 0 -_0802C3C4: .4byte gUnk_03000BF0 +_0802C3C4: .4byte gRoomControls _0802C3C8: .4byte gLinkEntity _0802C3CC: adds r0, r4, #0 @@ -31620,7 +31620,7 @@ _0802C420: strh r0, [r7] b _0802C4AA _0802C442: - ldr r0, _0802C45C @ =gUnk_03000BF0 + ldr r0, _0802C45C @ =gRoomControls ldrh r1, [r0, #8] ldrh r0, [r0, #0x20] adds r1, r1, r0 @@ -31633,7 +31633,7 @@ _0802C442: bl sub_080AEFB4 b _0802C48C .align 2, 0 -_0802C45C: .4byte gUnk_03000BF0 +_0802C45C: .4byte gRoomControls _0802C460: adds r0, r4, #0 bl sub_0806F69C @@ -33227,7 +33227,7 @@ _0802D04C: adds r0, r4, #0 adds r0, #0x75 strb r1, [r0] - ldr r1, _0802D088 @ =gUnk_03000F50 + ldr r1, _0802D088 @ =gLCDControls ldrb r2, [r2] adds r0, r1, #0 adds r0, #0x68 @@ -33239,7 +33239,7 @@ _0802D04C: bl sub_080A3268 b _0802D148 .align 2, 0 -_0802D088: .4byte gUnk_03000F50 +_0802D088: .4byte gLCDControls _0802D08C: .4byte 0x00001442 _0802D090: ldrb r0, [r4, #0xe] @@ -33259,7 +33259,7 @@ _0802D090: ldrb r0, [r1] subs r0, #1 strb r0, [r1] - ldr r2, _0802D0EC @ =gUnk_03000F50 + ldr r2, _0802D0EC @ =gLCDControls ldrb r1, [r1] ldrb r0, [r3] lsls r0, r0, #8 @@ -33286,7 +33286,7 @@ _0802D0D2: bl sub_080A3268 b _0802D148 .align 2, 0 -_0802D0EC: .4byte gUnk_03000F50 +_0802D0EC: .4byte gLCDControls _0802D0F0: .4byte gLinkEntity _0802D0F4: movs r0, #0x94 @@ -33379,7 +33379,7 @@ sub_0802D170: @ 0x0802D170 movs r0, #2 strb r0, [r5, #0xc] ldr r2, _0802D1F4 @ =gLinkEntity - ldr r4, _0802D1F8 @ =gUnk_03000BF0 + ldr r4, _0802D1F8 @ =gRoomControls ldrh r0, [r4, #6] adds r0, #0x98 movs r1, #0 @@ -33413,7 +33413,7 @@ sub_0802D170: @ 0x0802D170 .align 2, 0 _0802D1F0: .4byte gUnk_03000FD0 _0802D1F4: .4byte gLinkEntity -_0802D1F8: .4byte gUnk_03000BF0 +_0802D1F8: .4byte gRoomControls _0802D1FC: movs r0, #3 strb r0, [r5, #0xc] @@ -33656,7 +33656,7 @@ sub_0802D3B8: @ 0x0802D3B8 bl GetProgressFlag cmp r0, #0 beq _0802D3DE - ldr r2, _0802D3F4 @ =gUnk_03000F50 + ldr r2, _0802D3F4 @ =gLCDControls ldrh r1, [r2] ldr r0, _0802D3F8 @ =0x0000FDFF ands r0, r1 @@ -33678,7 +33678,7 @@ _0802D3EA: ldr r0, [r0] mov pc, r0 .align 2, 0 -_0802D3F4: .4byte gUnk_03000F50 +_0802D3F4: .4byte gLCDControls _0802D3F8: .4byte 0x0000FDFF _0802D3FC: .4byte gLinkEntity _0802D400: .4byte _0802D404 @@ -34012,7 +34012,7 @@ _0802D692: strb r7, [r4, #0xd] movs r0, #0x5a str r0, [r4, #0x7c] - ldr r0, _0802D6C0 @ =gUnk_03000BF0 + ldr r0, _0802D6C0 @ =gRoomControls str r4, [r0, #0x30] ldr r0, _0802D6BC @ =0x00000127 bl sub_080A3268 @@ -34021,7 +34021,7 @@ _0802D692: _0802D6B4: .4byte gUnk_02034490 _0802D6B8: .4byte gLinkEntity _0802D6BC: .4byte 0x00000127 -_0802D6C0: .4byte gUnk_03000BF0 +_0802D6C0: .4byte gRoomControls _0802D6C4: cmp r1, #0x3c bhi _0802D6DC @@ -34183,7 +34183,7 @@ sub_0802D7B4: @ 0x0802D7B4 ldr r1, [r0, #0x50] movs r0, #0x18 strb r0, [r1, #0xe] - ldr r1, _0802D800 @ =gUnk_03000BF0 + ldr r1, _0802D800 @ =gRoomControls ldr r0, _0802D804 @ =gLinkEntity str r0, [r1, #0x30] ldr r0, _0802D808 @ =gUnk_03003F80 @@ -34196,7 +34196,7 @@ sub_0802D7B4: @ 0x0802D7B4 b _0802D868 .align 2, 0 _0802D7FC: .4byte gUnk_080CD7F8 -_0802D800: .4byte gUnk_03000BF0 +_0802D800: .4byte gRoomControls _0802D804: .4byte gLinkEntity _0802D808: .4byte gUnk_03003F80 _0802D80C: .4byte gUnk_02034490 @@ -35539,7 +35539,7 @@ _0802E218: adds r2, #0x30 adds r7, r5, #0 adds r7, #0x7c - ldr r0, _0802E288 @ =gUnk_03000F50 + ldr r0, _0802E288 @ =gLCDControls mov sb, r0 movs r1, #0x66 add r1, sb @@ -35580,7 +35580,7 @@ _0802E23A: .align 2, 0 _0802E280: .4byte gLinkEntity _0802E284: .4byte gUnk_03003F80 -_0802E288: .4byte gUnk_03000F50 +_0802E288: .4byte gLCDControls _0802E28C: adds r4, r7, #0 strh r6, [r4] @@ -35685,7 +35685,7 @@ _0802E31E: ldrb r0, [r1] adds r0, #1 strb r0, [r1] - ldr r2, _0802E3A0 @ =gUnk_03000F50 + ldr r2, _0802E3A0 @ =gLCDControls ldrb r1, [r1] ldrb r0, [r3] lsls r0, r0, #8 @@ -35719,7 +35719,7 @@ _0802E364: ldrb r0, [r1] subs r0, #1 strb r0, [r1] - ldr r2, _0802E3A0 @ =gUnk_03000F50 + ldr r2, _0802E3A0 @ =gLCDControls ldrb r1, [r1] ldrb r0, [r3] lsls r0, r0, #8 @@ -35728,7 +35728,7 @@ _0802E364: strh r1, [r2] b _0802E428 .align 2, 0 -_0802E3A0: .4byte gUnk_03000F50 +_0802E3A0: .4byte gLCDControls _0802E3A4: ldrb r1, [r2] movs r0, #0x7f @@ -37002,7 +37002,7 @@ sub_0802ECC0: @ 0x0802ECC0 bics r0, r1 strb r0, [r2] _0802ECEE: - ldr r0, _0802ED04 @ =gUnk_03000BF0 + ldr r0, _0802ED04 @ =gRoomControls ldrb r0, [r0, #5] cmp r0, #0 bne _0802ED08 @@ -37012,7 +37012,7 @@ _0802ECEE: b _0802ED0E .align 2, 0 _0802ED00: .4byte gUnk_030010A0 -_0802ED04: .4byte gUnk_03000BF0 +_0802ED04: .4byte gRoomControls _0802ED08: ldrb r1, [r5] adds r0, r3, #0 @@ -37110,7 +37110,7 @@ sub_0802ED8C: @ 0x0802ED8C str r4, [r0, #0x50] movs r0, #1 strb r0, [r4, #0xc] - ldr r0, _0802EDD4 @ =gUnk_03000BF0 + ldr r0, _0802EDD4 @ =gRoomControls ldrb r0, [r0, #5] cmp r0, #0 bne _0802EDDC @@ -37119,7 +37119,7 @@ sub_0802ED8C: @ 0x0802ED8C b _0802EDE0 .align 2, 0 _0802EDD0: .4byte gUnk_03003DBC -_0802EDD4: .4byte gUnk_03000BF0 +_0802EDD4: .4byte gRoomControls _0802EDD8: .4byte gUnk_030010A0 _0802EDDC: ldr r0, _0802EE0C @ =gUnk_030010A0 @@ -37395,7 +37395,7 @@ _0802EFD2: _0802EFE0: movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _0802F020 @ =gUnk_03000BF0 + ldr r2, _0802F020 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -37424,7 +37424,7 @@ _0802EFE0: b _0802F044 .align 2, 0 _0802F01C: .4byte gLinkEntity -_0802F020: .4byte gUnk_03000BF0 +_0802F020: .4byte gRoomControls _0802F024: .4byte gUnk_080B4488 _0802F028: movs r1, #3 @@ -38555,7 +38555,7 @@ sub_0802F888: @ 0x0802F888 strb r0, [r4, #0x15] movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _0802F8DC @ =gUnk_03000BF0 + ldr r2, _0802F8DC @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -38585,7 +38585,7 @@ sub_0802F888: @ 0x0802F888 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 -_0802F8DC: .4byte gUnk_03000BF0 +_0802F8DC: .4byte gRoomControls _0802F8E0: .4byte 0x00004071 thumb_func_start sub_0802F8E4 @@ -38618,7 +38618,7 @@ sub_0802F8E4: @ 0x0802F8E4 mov r8, r2 movs r0, #8 mov sl, r0 - ldr r1, _0802F9BC @ =gUnk_03000BF0 + ldr r1, _0802F9BC @ =gRoomControls mov sb, r1 _0802F920: bl sub_08000E50 @@ -38694,7 +38694,7 @@ _0802F9AE: mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 -_0802F9BC: .4byte gUnk_03000BF0 +_0802F9BC: .4byte gRoomControls _0802F9C0: .4byte 0x00007FF0 _0802F9C4: .4byte 0x00004071 @@ -38785,7 +38785,7 @@ sub_0802FA48: @ 0x0802FA48 strb r0, [r2] adds r3, r4, #0 _0802FA66: - ldr r2, _0802FA84 @ =gUnk_03000BF0 + ldr r2, _0802FA84 @ =gRoomControls ldrh r0, [r3] ldrh r1, [r2, #6] adds r0, r0, r1 @@ -38800,7 +38800,7 @@ _0802FA66: pop {r4, pc} .align 2, 0 _0802FA80: .4byte 0x0000FFFF -_0802FA84: .4byte gUnk_03000BF0 +_0802FA84: .4byte gRoomControls thumb_func_start sub_0802FA88 sub_0802FA88: @ 0x0802FA88 @@ -39901,7 +39901,7 @@ _080302C6: ldrb r0, [r0] cmp r0, #2 bne _08030302 - ldr r0, _08030308 @ =gUnk_03000BF0 + ldr r0, _08030308 @ =gRoomControls ldrh r0, [r0, #8] adds r0, #0x80 movs r2, #0x32 @@ -39917,7 +39917,7 @@ _08030302: pop {r4, r5, pc} .align 2, 0 _08030304: .4byte 0x0000047D -_08030308: .4byte gUnk_03000BF0 +_08030308: .4byte gRoomControls thumb_func_start sub_0803030C sub_0803030C: @ 0x0803030C @@ -40418,7 +40418,7 @@ _08030698: ldr r0, [r0] movs r2, #0x2e ldrsh r1, [r0, r2] - ldr r0, _080306C0 @ =gUnk_03000BF0 + ldr r0, _080306C0 @ =gRoomControls ldrh r0, [r0, #6] adds r0, #0xa8 cmp r1, r0 @@ -40429,7 +40429,7 @@ _080306B8: pop {r4, pc} .align 2, 0 _080306BC: .4byte gUnk_020000B0 -_080306C0: .4byte gUnk_03000BF0 +_080306C0: .4byte gRoomControls thumb_func_start sub_080306C4 sub_080306C4: @ 0x080306C4 @@ -40589,7 +40589,7 @@ sub_080307EC: @ 0x080307EC adds r5, r0, #0 movs r0, #0x2e ldrsh r4, [r5, r0] - ldr r1, _0803082C @ =gUnk_03000BF0 + ldr r1, _0803082C @ =gRoomControls ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 @@ -40616,7 +40616,7 @@ sub_080307EC: @ 0x080307EC bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 -_0803082C: .4byte gUnk_03000BF0 +_0803082C: .4byte gRoomControls _08030830: .4byte 0x00004022 thumb_func_start sub_08030834 @@ -40627,7 +40627,7 @@ sub_08030834: @ 0x08030834 ldrh r5, [r1] movs r2, #0x2e ldrsh r1, [r0, r2] - ldr r3, _08030868 @ =gUnk_03000BF0 + ldr r3, _08030868 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -40647,7 +40647,7 @@ sub_08030834: @ 0x08030834 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 -_08030868: .4byte gUnk_03000BF0 +_08030868: .4byte gRoomControls thumb_func_start sub_0803086C sub_0803086C: @ 0x0803086C @@ -40670,7 +40670,7 @@ _08030880: bne _0803088E b _0803098A _0803088E: - ldr r0, _0803092C @ =gUnk_03000BF0 + ldr r0, _0803092C @ =gRoomControls mov sb, r0 ldrh r0, [r5, #0x2e] mov r2, sb @@ -40744,7 +40744,7 @@ _0803088E: b _0803099E .align 2, 0 _08030928: .4byte gUnk_03003F80 -_0803092C: .4byte gUnk_03000BF0 +_0803092C: .4byte gRoomControls _08030930: .4byte 0x00004049 _08030934: .4byte gLinkEntity _08030938: .4byte gUnk_030010A0 @@ -41543,7 +41543,7 @@ sub_08030F00: @ 0x08030F00 adds r5, r0, #0 movs r0, #0x2e ldrsh r4, [r5, r0] - ldr r1, _08030FAC @ =gUnk_03000BF0 + ldr r1, _08030FAC @ =gRoomControls ldrh r0, [r1, #6] adds r0, #8 subs r4, r4, r0 @@ -41614,7 +41614,7 @@ sub_08030F00: @ 0x08030F00 mov sl, r5 pop {r4, r5, r6, pc} .align 2, 0 -_08030FAC: .4byte gUnk_03000BF0 +_08030FAC: .4byte gRoomControls _08030FB0: .4byte 0x00004022 thumb_func_start sub_08030FB4 @@ -41623,7 +41623,7 @@ sub_08030FB4: @ 0x08030FB4 adds r6, r0, #0 movs r0, #0x2e ldrsh r4, [r6, r0] - ldr r1, _08031020 @ =gUnk_03000BF0 + ldr r1, _08031020 @ =gRoomControls ldrh r0, [r1, #6] adds r0, #8 subs r4, r4, r0 @@ -41669,7 +41669,7 @@ sub_08030FB4: @ 0x08030FB4 bl sub_0800015E pop {r4, r5, r6, pc} .align 2, 0 -_08031020: .4byte gUnk_03000BF0 +_08031020: .4byte gRoomControls thumb_func_start sub_08031024 sub_08031024: @ 0x08031024 @@ -47161,7 +47161,7 @@ sub_08033890: @ 0x08033890 strb r1, [r0] movs r0, #0x2e ldrsh r1, [r6, r0] - ldr r2, _08033950 @ =gUnk_03000BF0 + ldr r2, _08033950 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -47216,7 +47216,7 @@ _08033940: pop {r4, r5, r6, pc} .align 2, 0 _0803394C: .4byte 0xFFF00000 -_08033950: .4byte gUnk_03000BF0 +_08033950: .4byte gRoomControls _08033954: .4byte 0x00004022 thumb_func_start sub_08033958 @@ -47528,7 +47528,7 @@ _08033B76: movs r7, #0x76 adds r7, r7, r4 mov sl, r7 - ldr r0, _08033C20 @ =gUnk_03000BF0 + ldr r0, _08033C20 @ =gRoomControls mov sb, r0 _08033BB2: ldr r1, [r4, #0x2c] @@ -47586,7 +47586,7 @@ _08033BB2: add r8, r0 b _08033C68 .align 2, 0 -_08033C20: .4byte gUnk_03000BF0 +_08033C20: .4byte gRoomControls _08033C24: .4byte 0xFFF00000 _08033C28: .4byte 0x00004022 _08033C2C: @@ -47785,7 +47785,7 @@ sub_08033D78: @ 0x08033D78 movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r1 - ldr r4, _08033DE8 @ =gUnk_03000BF0 + ldr r4, _08033DE8 @ =gRoomControls ldrh r1, [r4, #6] subs r0, r0, r1 asrs r5, r0, #4 @@ -47827,7 +47827,7 @@ _08033DE2: pop {r4, r5, r6, pc} .align 2, 0 _08033DE4: .4byte gUnk_080CEC1C -_08033DE8: .4byte gUnk_03000BF0 +_08033DE8: .4byte gRoomControls _08033DEC: .4byte 0x000001C5 thumb_func_start sub_08033DF0 @@ -48192,7 +48192,7 @@ _08034090: strb r1, [r2, #0xd] ldr r2, [r2, #0x74] strb r0, [r2, #0xd] - ldr r1, _080340C0 @ =gUnk_03000F50 + ldr r1, _080340C0 @ =gLCDControls adds r2, r1, #0 adds r2, #0x66 movs r0, #0xf4 @@ -48203,14 +48203,14 @@ _08034090: strh r0, [r1] b _0803413E .align 2, 0 -_080340C0: .4byte gUnk_03000F50 +_080340C0: .4byte gLCDControls _080340C4: ldrb r1, [r3, #0xe] adds r1, #1 strb r1, [r3, #0xe] lsls r2, r1, #0x18 lsrs r2, r2, #0x19 - ldr r4, _08034110 @ =gUnk_03000F50 + ldr r4, _08034110 @ =gLCDControls movs r0, #0x10 subs r0, r0, r2 lsls r0, r0, #8 @@ -48244,7 +48244,7 @@ _080340C4: strh r0, [r1] b _0803413E .align 2, 0 -_08034110: .4byte gUnk_03000F50 +_08034110: .4byte gLCDControls _08034114: ldr r0, [r3, #0x74] ldrb r1, [r0, #0x10] @@ -48252,7 +48252,7 @@ _08034114: ands r0, r1 cmp r0, #0 beq _0803413E - ldr r1, _08034140 @ =gUnk_03000BF0 + ldr r1, _08034140 @ =gRoomControls ldr r0, _08034144 @ =gLinkEntity str r0, [r1, #0x30] adds r0, r3, #0 @@ -48267,7 +48267,7 @@ _08034114: _0803413E: pop {r4, pc} .align 2, 0 -_08034140: .4byte gUnk_03000BF0 +_08034140: .4byte gRoomControls _08034144: .4byte gLinkEntity _08034148: .4byte gUnk_03003F80 @@ -48275,7 +48275,7 @@ _08034148: .4byte gUnk_03003F80 sub_0803414C: @ 0x0803414C push {r4, r5, lr} adds r4, r0, #0 - ldr r1, _08034194 @ =gUnk_03000BF0 + ldr r1, _08034194 @ =gRoomControls ldrh r0, [r1, #6] adds r2, r0, #0 adds r2, #0xb8 @@ -48308,7 +48308,7 @@ sub_0803414C: @ 0x0803414C bl sub_0803442C b _080341B6 .align 2, 0 -_08034194: .4byte gUnk_03000BF0 +_08034194: .4byte gRoomControls _08034198: adds r0, r4, #0 movs r1, #0x5a @@ -49121,7 +49121,7 @@ _08034764: adds r2, r0, #0 adds r2, #0x60 _08034776: - ldr r0, _08034794 @ =gUnk_03000BF0 + ldr r0, _08034794 @ =gRoomControls ldrh r4, [r0, #6] subs r0, r2, #4 movs r5, #0x2e @@ -49136,7 +49136,7 @@ _08034776: b _080347A8 .align 2, 0 _08034790: .4byte gLinkEntity -_08034794: .4byte gUnk_03000BF0 +_08034794: .4byte gRoomControls _08034798: adds r0, r2, #4 cmp r0, r1 @@ -49161,7 +49161,7 @@ sub_080347B4: @ 0x080347B4 ldr r0, _080347D8 @ =gLinkEntity movs r1, #0x2e ldrsh r3, [r0, r1] - ldr r0, _080347DC @ =gUnk_03000BF0 + ldr r0, _080347DC @ =gRoomControls ldrh r4, [r0, #6] subs r0, r3, #4 movs r5, #0x2e @@ -49176,7 +49176,7 @@ sub_080347B4: @ 0x080347B4 b _080347F0 .align 2, 0 _080347D8: .4byte gLinkEntity -_080347DC: .4byte gUnk_03000BF0 +_080347DC: .4byte gRoomControls _080347E0: adds r0, r3, #4 cmp r0, r1 @@ -49766,7 +49766,7 @@ sub_08034C00: @ 0x08034C00 beq _08034C5A movs r1, #0x2e ldrsh r0, [r3, r1] - ldr r2, _08034C48 @ =gUnk_03000BF0 + ldr r2, _08034C48 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 movs r4, #0x32 @@ -49789,7 +49789,7 @@ sub_08034C00: @ 0x08034C00 b _08034C5A .align 2, 0 _08034C44: .4byte gUnk_03003F80 -_08034C48: .4byte gUnk_03000BF0 +_08034C48: .4byte gRoomControls _08034C4C: .4byte gUnk_030010A0 _08034C50: .4byte gUnk_080CED88 _08034C54: @@ -49887,7 +49887,7 @@ sub_08034CC4: @ 0x08034CC4 ldr r0, _08034D44 @ =0x00004022 movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _08034D48 @ =gUnk_03000BF0 + ldr r3, _08034D48 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -49919,7 +49919,7 @@ _08034D42: pop {r4, r5, r6, pc} .align 2, 0 _08034D44: .4byte 0x00004022 -_08034D48: .4byte gUnk_03000BF0 +_08034D48: .4byte gRoomControls thumb_func_start sub_08034D4C sub_08034D4C: @ 0x08034D4C @@ -49948,7 +49948,7 @@ sub_08034D4C: @ 0x08034D4C bl __modsi3 adds r0, #0xc strb r0, [r4, #0x15] - ldr r1, _08034DB8 @ =gUnk_03000BF0 + ldr r1, _08034DB8 @ =gRoomControls ldrh r0, [r1, #0x1e] lsrs r0, r0, #1 ldrh r2, [r1, #6] @@ -49972,7 +49972,7 @@ sub_08034D4C: @ 0x08034D4C strb r0, [r5, #0xf] b _08034DC4 .align 2, 0 -_08034DB8: .4byte gUnk_03000BF0 +_08034DB8: .4byte gRoomControls _08034DBC: adds r1, r5, #0 adds r1, #0x78 @@ -49997,7 +49997,7 @@ sub_08034DC8: @ 0x08034DC8 bl CreateFX movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _08034E14 @ =gUnk_03000BF0 + ldr r2, _08034E14 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -50020,7 +50020,7 @@ _08034E0E: pop {r4, r5, pc} .align 2, 0 _08034E10: .4byte gUnk_030010A0 -_08034E14: .4byte gUnk_03000BF0 +_08034E14: .4byte gRoomControls thumb_func_start sub_08034E18 sub_08034E18: @ 0x08034E18 @@ -50162,7 +50162,7 @@ sub_08034EE4: @ 0x08034EE4 ands r1, r0 lsls r1, r1, #1 adds r1, #1 - ldr r2, _08034F54 @ =gUnk_03000BF0 + ldr r2, _08034F54 @ =gRoomControls ldrh r0, [r2, #0xa] adds r0, r0, r1 strh r0, [r3, #0x2e] @@ -50186,7 +50186,7 @@ _08034F46: pop {r4, r5, pc} .align 2, 0 _08034F50: .4byte gUnk_080CEEC8 -_08034F54: .4byte gUnk_03000BF0 +_08034F54: .4byte gRoomControls thumb_func_start sub_08034F58 sub_08034F58: @ 0x08034F58 @@ -50261,7 +50261,7 @@ _08034FC0: bne _08035040 movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _08035004 @ =gUnk_03000BF0 + ldr r2, _08035004 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -50281,7 +50281,7 @@ _08034FC0: bl sub_0807BA8C b _08035040 .align 2, 0 -_08035004: .4byte gUnk_03000BF0 +_08035004: .4byte gRoomControls _08035008: adds r0, r4, #0 adds r0, #0x45 @@ -50388,7 +50388,7 @@ _080350A6: strb r0, [r2] movs r5, #0 ldr r4, _080350E0 @ =gUnk_080CEECC - ldr r7, _080350E4 @ =gUnk_03000BF0 + ldr r7, _080350E4 @ =gRoomControls _080350D0: cmp r5, r6 bne _080350E8 @@ -50398,7 +50398,7 @@ _080350D0: _080350D8: .4byte gUnk_030010D8 _080350DC: .4byte gUnk_030010A0 _080350E0: .4byte gUnk_080CEECC -_080350E4: .4byte gUnk_03000BF0 +_080350E4: .4byte gRoomControls _080350E8: movs r0, #0x37 movs r1, #1 @@ -50435,7 +50435,7 @@ sub_08035120: @ 0x08035120 push {r4, r5, r6, lr} movs r2, #0x2e ldrsh r1, [r0, r2] - ldr r3, _0803515C @ =gUnk_03000BF0 + ldr r3, _0803515C @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r4, r1, #4 @@ -50462,7 +50462,7 @@ _08035146: bls _08035146 pop {r4, r5, r6, pc} .align 2, 0 -_0803515C: .4byte gUnk_03000BF0 +_0803515C: .4byte gRoomControls _08035160: .4byte gUnk_080CEED8 thumb_func_start sub_08035164 @@ -50568,7 +50568,7 @@ sub_0803520C: @ 0x0803520C ldrb r0, [r4, #0xd] cmp r0, #3 beq _0803524C - ldr r2, _08035234 @ =gUnk_03000BF0 + ldr r2, _08035234 @ =gRoomControls adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] @@ -50579,7 +50579,7 @@ sub_0803520C: @ 0x0803520C bl sub_08078B48 b _0803524C .align 2, 0 -_08035234: .4byte gUnk_03000BF0 +_08035234: .4byte gRoomControls _08035238: adds r0, r4, #0 adds r0, #0x84 @@ -50708,7 +50708,7 @@ sub_080352FC: @ 0x080352FC subs r0, r2, #1 strb r0, [r1] _0803532C: - ldr r3, _0803538C @ =gUnk_03000BF0 + ldr r3, _0803538C @ =gRoomControls movs r0, #0x84 lsls r0, r0, #1 adds r1, r0, #0 @@ -50756,7 +50756,7 @@ _08035356: adds r7, #0x79 b _08035456 .align 2, 0 -_0803538C: .4byte gUnk_03000BF0 +_0803538C: .4byte gRoomControls _08035390: .4byte 0xFFFFFEF8 _08035394: ldrb r0, [r5, #0xb] @@ -50950,13 +50950,13 @@ _08035512: adds r1, #0x79 movs r0, #0x96 strb r0, [r1] - ldr r1, _08035524 @ =gUnk_03000BF0 + ldr r1, _08035524 @ =gRoomControls ldr r0, _08035528 @ =gLinkEntity str r0, [r1, #0x30] _08035522: pop {pc} .align 2, 0 -_08035524: .4byte gUnk_03000BF0 +_08035524: .4byte gRoomControls _08035528: .4byte gLinkEntity thumb_func_start sub_0803552C @@ -51011,12 +51011,12 @@ sub_08035578: @ 0x08035578 adds r1, r0, #0 cmp r1, #0 beq _08035592 - ldr r0, _08035594 @ =gUnk_03000BF0 + ldr r0, _08035594 @ =gRoomControls str r1, [r0, #0x30] _08035592: pop {pc} .align 2, 0 -_08035594: .4byte gUnk_03000BF0 +_08035594: .4byte gRoomControls thumb_func_start sub_08035598 sub_08035598: @ 0x08035598 @@ -51422,12 +51422,12 @@ _080358A0: ldrh r0, [r4, #0x32] subs r0, #0xa0 strh r0, [r1, #0x32] - ldr r0, _080358D4 @ =gUnk_03000BF0 + ldr r0, _080358D4 @ =gRoomControls str r4, [r0, #0x30] b _08035974 .align 2, 0 _080358D0: .4byte gLinkEntity -_080358D4: .4byte gUnk_03000BF0 +_080358D4: .4byte gRoomControls _080358D8: movs r1, #0 movs r0, #0x10 @@ -51669,14 +51669,14 @@ sub_08035A70: @ 0x08035A70 ands r0, r3 orrs r0, r1 strb r0, [r2, #0x18] - ldr r0, _08035AB0 @ =gUnk_03000BF0 + ldr r0, _08035AB0 @ =gRoomControls str r2, [r0, #0x30] strb r4, [r0, #0xe] _08035AA8: pop {r4, pc} .align 2, 0 _08035AAC: .4byte gLinkEntity -_08035AB0: .4byte gUnk_03000BF0 +_08035AB0: .4byte gRoomControls thumb_func_start sub_08035AB4 sub_08035AB4: @ 0x08035AB4 @@ -51767,7 +51767,7 @@ sub_08035B34: @ 0x08035B34 movs r0, #1 strb r0, [r3, #0xc] strb r4, [r3, #0xd] - ldr r0, _08035B74 @ =gUnk_03000BF0 + ldr r0, _08035B74 @ =gRoomControls strb r5, [r0, #0xe] adds r0, r3, #0 bl sub_08036C90 @@ -51778,7 +51778,7 @@ sub_08035B34: @ 0x08035B34 b _08035B92 .align 2, 0 _08035B70: .4byte gLinkEntity -_08035B74: .4byte gUnk_03000BF0 +_08035B74: .4byte gRoomControls _08035B78: .4byte gUnk_02034490 _08035B7C: adds r1, r3, #0 @@ -52955,7 +52955,7 @@ _0803640C: strb r0, [r7] movs r0, #2 strb r0, [r6] - ldr r2, _080364A0 @ =gUnk_03000BF0 + ldr r2, _080364A0 @ =gRoomControls ldrh r0, [r2, #6] movs r1, #0x84 lsls r1, r1, #1 @@ -52984,7 +52984,7 @@ _0803640C: .align 2, 0 _08036498: .4byte gLinkEntity _0803649C: .4byte gUnk_03003F80 -_080364A0: .4byte gUnk_03000BF0 +_080364A0: .4byte gRoomControls _080364A4: ldr r0, _080364C4 @ =0xFFFFF7FF ands r1, r0 @@ -54625,7 +54625,7 @@ sub_080370A4: @ 0x080370A4 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _0803710C @ =gUnk_03000BF0 + ldr r3, _0803710C @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -54645,7 +54645,7 @@ sub_080370A4: @ 0x080370A4 bl sub_0800015E b _0803711E .align 2, 0 -_0803710C: .4byte gUnk_03000BF0 +_0803710C: .4byte gRoomControls _08037110: movs r1, #0x36 ldrsh r0, [r5, r1] @@ -54734,7 +54734,7 @@ sub_0803718C: @ 0x0803718C ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _080371EC @ =gUnk_03000BF0 + ldr r3, _080371EC @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -54761,7 +54761,7 @@ _080371DA: bl sub_0806F3E4 b _080371F6 .align 2, 0 -_080371EC: .4byte gUnk_03000BF0 +_080371EC: .4byte gRoomControls _080371F0: adds r0, r5, #0 bl sub_08037408 @@ -54809,7 +54809,7 @@ sub_08037220: @ 0x08037220 strh r0, [r5, #0x32] movs r0, #0x2e ldrsh r4, [r5, r0] - ldr r1, _0803727C @ =gUnk_03000BF0 + ldr r1, _0803727C @ =gRoomControls ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 @@ -54841,7 +54841,7 @@ sub_08037220: @ 0x08037220 bl sub_08004260 pop {r4, r5, r6, pc} .align 2, 0 -_0803727C: .4byte gUnk_03000BF0 +_0803727C: .4byte gRoomControls thumb_func_start sub_08037280 sub_08037280: @ 0x08037280 @@ -54859,7 +54859,7 @@ sub_08037280: @ 0x08037280 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _080372E4 @ =gUnk_03000BF0 + ldr r3, _080372E4 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -54893,7 +54893,7 @@ _080372CC: _080372E2: pop {r4, r5, r6, pc} .align 2, 0 -_080372E4: .4byte gUnk_03000BF0 +_080372E4: .4byte gRoomControls thumb_func_start sub_080372E8 sub_080372E8: @ 0x080372E8 @@ -54944,7 +54944,7 @@ sub_080372E8: @ 0x080372E8 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _08037378 @ =gUnk_03000BF0 + ldr r3, _08037378 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -54967,7 +54967,7 @@ _0803736E: .align 2, 0 _08037370: .4byte gUnk_080CF290 _08037374: .4byte gUnk_080FD34C -_08037378: .4byte gUnk_03000BF0 +_08037378: .4byte gRoomControls thumb_func_start sub_0803737C sub_0803737C: @ 0x0803737C @@ -55065,7 +55065,7 @@ sub_08037418: @ 0x08037418 adds r5, r0, #0 movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r3, _08037464 @ =gUnk_03000BF0 + ldr r3, _08037464 @ =gRoomControls ldrh r1, [r3, #6] subs r0, r0, r1 asrs r4, r0, #4 @@ -55097,7 +55097,7 @@ sub_08037418: @ 0x08037418 _08037460: pop {r4, r5, r6, pc} .align 2, 0 -_08037464: .4byte gUnk_03000BF0 +_08037464: .4byte gRoomControls _08037468: .4byte 0x00004067 thumb_func_start sub_0803746C @@ -57689,7 +57689,7 @@ sub_080387F0: @ 0x080387F0 bne _08038890 movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _08038868 @ =gUnk_03000BF0 + ldr r2, _08038868 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -57738,7 +57738,7 @@ _0803885A: strb r0, [r4, #0x15] b _0803887E .align 2, 0 -_08038868: .4byte gUnk_03000BF0 +_08038868: .4byte gRoomControls _0803886C: .4byte gUnk_080CF520 _08038870: ldrh r0, [r4, #0x2a] @@ -58929,7 +58929,7 @@ sub_0803917C: @ 0x0803917C adds r2, r0, #0 movs r1, #0x2e ldrsh r0, [r2, r1] - ldr r3, _080391AC @ =gUnk_03000BF0 + ldr r3, _080391AC @ =gRoomControls movs r4, #0xa ldrsh r1, [r3, r4] adds r1, #0xc @@ -58949,7 +58949,7 @@ sub_0803917C: @ 0x0803917C movs r0, #0 b _080391B2 .align 2, 0 -_080391AC: .4byte gUnk_03000BF0 +_080391AC: .4byte gRoomControls _080391B0: movs r0, #1 _080391B2: @@ -58984,7 +58984,7 @@ sub_080391B4: @ 0x080391B4 lsls r1, r1, #2 ldr r0, _08039210 @ =gUnk_080CF7C4 adds r1, r1, r0 - ldr r2, _08039214 @ =gUnk_03000BF0 + ldr r2, _08039214 @ =gRoomControls ldrh r0, [r1] ldrh r3, [r2, #0xa] adds r0, r0, r3 @@ -59003,7 +59003,7 @@ _0803920C: pop {r4, r5, pc} .align 2, 0 _08039210: .4byte gUnk_080CF7C4 -_08039214: .4byte gUnk_03000BF0 +_08039214: .4byte gRoomControls thumb_func_start sub_08039218 sub_08039218: @ 0x08039218 @@ -60228,7 +60228,7 @@ sub_08039B28: @ 0x08039B28 movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r1 - ldr r4, _08039B8C @ =gUnk_03000BF0 + ldr r4, _08039B8C @ =gRoomControls ldrh r1, [r4, #6] subs r0, r0, r1 asrs r5, r0, #4 @@ -60265,7 +60265,7 @@ _08039B84: b _08039B9E .align 2, 0 _08039B88: .4byte gUnk_080CF930 -_08039B8C: .4byte gUnk_03000BF0 +_08039B8C: .4byte gRoomControls _08039B90: .4byte gUnk_080CF938 _08039B94: .4byte 0x0000FFFF _08039B98: @@ -60352,7 +60352,7 @@ sub_08039BF8: @ 0x08039BF8 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _08039C60 @ =gUnk_03000BF0 + ldr r3, _08039C60 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -60372,7 +60372,7 @@ sub_08039BF8: @ 0x08039BF8 bl sub_0800015E b _08039C72 .align 2, 0 -_08039C60: .4byte gUnk_03000BF0 +_08039C60: .4byte gRoomControls _08039C64: movs r1, #0x36 ldrsh r0, [r5, r1] @@ -60459,7 +60459,7 @@ sub_08039CE0: @ 0x08039CE0 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _08039D40 @ =gUnk_03000BF0 + ldr r3, _08039D40 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -60487,7 +60487,7 @@ _08039D2A: b _08039D4A .align 2, 0 _08039D3C: .4byte 0x0000FFFF -_08039D40: .4byte gUnk_03000BF0 +_08039D40: .4byte gRoomControls _08039D44: adds r0, r5, #0 bl sub_0803A0E0 @@ -60537,7 +60537,7 @@ sub_08039D74: @ 0x08039D74 strh r0, [r5, #0x32] movs r0, #0x2e ldrsh r4, [r5, r0] - ldr r1, _08039DD0 @ =gUnk_03000BF0 + ldr r1, _08039DD0 @ =gRoomControls ldrh r0, [r1, #6] subs r4, r4, r0 asrs r4, r4, #4 @@ -60568,7 +60568,7 @@ sub_08039D74: @ 0x08039D74 bl sub_08004260 pop {r4, r5, r6, pc} .align 2, 0 -_08039DD0: .4byte gUnk_03000BF0 +_08039DD0: .4byte gRoomControls _08039DD4: .4byte 0x00004060 thumb_func_start sub_08039DD8 @@ -60589,7 +60589,7 @@ sub_08039DD8: @ 0x08039DD8 ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _08039E34 @ =gUnk_03000BF0 + ldr r3, _08039E34 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -60615,7 +60615,7 @@ _08039E28: b _08039EC6 .align 2, 0 _08039E30: .4byte 0x00004073 -_08039E34: .4byte gUnk_03000BF0 +_08039E34: .4byte gRoomControls _08039E38: ldr r0, _08039E6C @ =gUnk_03003F80 ldr r0, [r0, #0x30] @@ -60662,7 +60662,7 @@ _08039E74: ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _08039EC8 @ =gUnk_03000BF0 + ldr r3, _08039EC8 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -60685,7 +60685,7 @@ _08039E74: _08039EC6: pop {r4, r5, r6, pc} .align 2, 0 -_08039EC8: .4byte gUnk_03000BF0 +_08039EC8: .4byte gRoomControls thumb_func_start sub_08039ECC sub_08039ECC: @ 0x08039ECC @@ -60726,7 +60726,7 @@ sub_08039EE4: @ 0x08039EE4 ldrh r0, [r0] movs r5, #0x2e ldrsh r1, [r3, r5] - ldr r3, _08039F48 @ =gUnk_03000BF0 + ldr r3, _08039F48 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -60749,7 +60749,7 @@ sub_08039EE4: @ 0x08039EE4 .align 2, 0 _08039F40: .4byte gUnk_080FD340 _08039F44: .4byte gLinkEntity -_08039F48: .4byte gUnk_03000BF0 +_08039F48: .4byte gRoomControls thumb_func_start sub_08039F4C sub_08039F4C: @ 0x08039F4C @@ -60861,7 +60861,7 @@ sub_08039FAC: @ 0x08039FAC ldrh r0, [r0] movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _0803A044 @ =gUnk_03000BF0 + ldr r3, _0803A044 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -60884,7 +60884,7 @@ _0803A03A: .align 2, 0 _0803A03C: .4byte gUnk_080CFBE4 _0803A040: .4byte gUnk_080FD34C -_0803A044: .4byte gUnk_03000BF0 +_0803A044: .4byte gRoomControls thumb_func_start sub_0803A048 sub_0803A048: @ 0x0803A048 @@ -60992,7 +60992,7 @@ sub_0803A100: @ 0x0803A100 adds r5, r0, #0 movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r3, _0803A14C @ =gUnk_03000BF0 + ldr r3, _0803A14C @ =gRoomControls ldrh r1, [r3, #6] subs r0, r0, r1 asrs r4, r0, #4 @@ -61024,7 +61024,7 @@ sub_0803A100: @ 0x0803A100 _0803A148: pop {r4, r5, r6, pc} .align 2, 0 -_0803A14C: .4byte gUnk_03000BF0 +_0803A14C: .4byte gRoomControls _0803A150: .4byte 0x00004067 thumb_func_start sub_0803A154 @@ -63962,7 +63962,7 @@ sub_0803B724: @ 0x0803B724 ands r2, r3 ldrb r1, [r1] adds r2, r2, r1 - ldr r3, _0803B794 @ =gUnk_03000BF0 + ldr r3, _0803B794 @ =gRoomControls ldrh r1, [r3, #6] adds r1, r1, r2 strh r1, [r4, #0x2e] @@ -63989,7 +63989,7 @@ _0803B78E: pop {r4, r5, r6, pc} .align 2, 0 _0803B790: .4byte gUnk_080CFD1B -_0803B794: .4byte gUnk_03000BF0 +_0803B794: .4byte gRoomControls thumb_func_start sub_0803B798 sub_0803B798: @ 0x0803B798 @@ -64853,16 +64853,16 @@ _0803BE06: beq _0803BE20 movs r0, #8 strb r0, [r4, #0x15] - ldr r1, _0803BE1C @ =gUnk_03000BF0 + ldr r1, _0803BE1C @ =gRoomControls ldrh r0, [r1, #0xa] subs r0, #0x20 b _0803BE30 .align 2, 0 -_0803BE1C: .4byte gUnk_03000BF0 +_0803BE1C: .4byte gRoomControls _0803BE20: movs r0, #0x18 strb r0, [r4, #0x15] - ldr r1, _0803BE78 @ =gUnk_03000BF0 + ldr r1, _0803BE78 @ =gRoomControls movs r2, #0x88 lsls r2, r2, #1 adds r0, r2, #0 @@ -64907,7 +64907,7 @@ _0803BE70: _0803BE76: pop {r4, pc} .align 2, 0 -_0803BE78: .4byte gUnk_03000BF0 +_0803BE78: .4byte gRoomControls thumb_func_start sub_0803BE7C sub_0803BE7C: @ 0x0803BE7C @@ -67113,7 +67113,7 @@ sub_0803CE98: @ 0x0803CE98 movs r1, #0x3f ands r1, r0 lsls r1, r1, #4 - ldr r2, _0803CF20 @ =gUnk_03000BF0 + ldr r2, _0803CF20 @ =gRoomControls ldrh r0, [r2, #6] adds r0, #8 adds r1, r1, r0 @@ -67147,7 +67147,7 @@ _0803CF18: pop {r4, r5, r6, pc} .align 2, 0 _0803CF1C: .4byte 0x00000FFF -_0803CF20: .4byte gUnk_03000BF0 +_0803CF20: .4byte gRoomControls thumb_func_start sub_0803CF24 sub_0803CF24: @ 0x0803CF24 @@ -67897,7 +67897,7 @@ _0803D478: lsls r1, r1, #2 ldr r0, _0803D4F4 @ =gUnk_080D04AC adds r1, r1, r0 - ldr r2, _0803D4F8 @ =gUnk_03000BF0 + ldr r2, _0803D4F8 @ =gRoomControls ldrh r0, [r1] ldrh r3, [r2, #6] adds r0, r0, r3 @@ -67926,7 +67926,7 @@ _0803D4D0: b _0803D558 .align 2, 0 _0803D4F4: .4byte gUnk_080D04AC -_0803D4F8: .4byte gUnk_03000BF0 +_0803D4F8: .4byte gRoomControls _0803D4FC: adds r0, r4, #0 adds r0, #0x5a @@ -69435,7 +69435,7 @@ _0803E046: ldrb r0, [r0] cmp r0, #1 bne _0803E080 - ldr r2, _0803E084 @ =gUnk_03000BF0 + ldr r2, _0803E084 @ =gRoomControls ldrh r0, [r2, #6] adds r1, r0, #0 adds r1, #0x58 @@ -69464,7 +69464,7 @@ _0803E080: _0803E082: pop {r4, r5, pc} .align 2, 0 -_0803E084: .4byte gUnk_03000BF0 +_0803E084: .4byte gRoomControls _0803E088: .4byte gLinkEntity thumb_func_start sub_0803E08C @@ -69885,7 +69885,7 @@ sub_0803E398: @ 0x0803E398 bl sub_0806F69C adds r0, r4, #0 bl sub_0803E4D8 - ldr r1, _0803E3CC @ =gUnk_03000BF0 + ldr r1, _0803E3CC @ =gRoomControls ldrh r0, [r1, #8] ldrh r1, [r1, #0x20] adds r0, r0, r1 @@ -69900,7 +69900,7 @@ sub_0803E398: @ 0x0803E398 _0803E3C8: pop {r4, pc} .align 2, 0 -_0803E3CC: .4byte gUnk_03000BF0 +_0803E3CC: .4byte gRoomControls _0803E3D0: .4byte gUnk_0813AB94 thumb_func_start sub_0803E3D4 @@ -70054,7 +70054,7 @@ sub_0803E4D8: @ 0x0803E4D8 push {r4, r5, lr} movs r2, #0x2e ldrsh r1, [r0, r2] - ldr r3, _0803E51C @ =gUnk_03000BF0 + ldr r3, _0803E51C @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r4, r1, #4 @@ -70084,7 +70084,7 @@ sub_0803E4D8: @ 0x0803E4D8 _0803E518: pop {r4, r5, pc} .align 2, 0 -_0803E51C: .4byte gUnk_03000BF0 +_0803E51C: .4byte gRoomControls _0803E520: .4byte gLinkEntity _0803E524: .4byte 0x00004074 @@ -74592,7 +74592,7 @@ sub_080406A0: @ 0x080406A0 adds r0, r5, #0 adds r0, #0x86 ldrb r6, [r0] - ldr r2, _080406F0 @ =gUnk_03000BF0 + ldr r2, _080406F0 @ =gRoomControls ldrh r3, [r2, #6] ldr r4, _080406F4 @ =gUnk_080D0B58 lsls r1, r6, #1 @@ -74618,7 +74618,7 @@ sub_080406A0: @ 0x080406A0 movs r6, #0 b _08040702 .align 2, 0 -_080406F0: .4byte gUnk_03000BF0 +_080406F0: .4byte gRoomControls _080406F4: .4byte gUnk_080D0B58 _080406F8: bl sub_08000E50 @@ -74626,7 +74626,7 @@ _080406F8: ands r1, r0 adds r6, r1, #1 _08040702: - ldr r2, _0804074C @ =gUnk_03000BF0 + ldr r2, _0804074C @ =gRoomControls ldrh r3, [r2, #6] ldr r4, _08040750 @ =gUnk_080D0B58 lsls r1, r6, #1 @@ -74663,7 +74663,7 @@ _0804071E: adds r0, r1, #1 b _08040758 .align 2, 0 -_0804074C: .4byte gUnk_03000BF0 +_0804074C: .4byte gRoomControls _08040750: .4byte gUnk_080D0B58 _08040754: adds r0, r1, #0 @@ -74698,7 +74698,7 @@ sub_08040770: @ 0x08040770 adds r0, r7, #0 adds r0, #0x86 ldrb r5, [r0] - ldr r2, _080407CC @ =gUnk_03000BF0 + ldr r2, _080407CC @ =gRoomControls ldrh r3, [r2, #6] ldr r4, _080407D0 @ =gUnk_080D0B64 lsls r1, r5, #1 @@ -74730,7 +74730,7 @@ sub_08040770: @ 0x08040770 adds r5, #1 b _080407D6 .align 2, 0 -_080407CC: .4byte gUnk_03000BF0 +_080407CC: .4byte gRoomControls _080407D0: .4byte gUnk_080D0B64 _080407D4: adds r5, #3 @@ -74831,7 +74831,7 @@ _0804087A: movs r0, #3 ands r5, r0 _0804087E: - ldr r2, _080408C8 @ =gUnk_03000BF0 + ldr r2, _080408C8 @ =gRoomControls ldrh r3, [r2, #6] ldr r4, _080408CC @ =gUnk_080D0B64 lsls r1, r5, #1 @@ -74868,7 +74868,7 @@ _0804089A: adds r0, r1, #1 b _080408D4 .align 2, 0 -_080408C8: .4byte gUnk_03000BF0 +_080408C8: .4byte gRoomControls _080408CC: .4byte gUnk_080D0B64 _080408D0: adds r0, r1, #0 @@ -76144,7 +76144,7 @@ sub_0804122C: @ 0x0804122C movs r0, #3 ands r5, r0 movs r7, #0 - ldr r3, _080412FC @ =gUnk_03000BF0 + ldr r3, _080412FC @ =gRoomControls mov sb, r3 _08041250: movs r0, #0x50 @@ -76211,7 +76211,7 @@ _080412C8: bls _08041250 lsls r1, r6, #1 add r1, r8 - ldr r2, _080412FC @ =gUnk_03000BF0 + ldr r2, _080412FC @ =gRoomControls ldrh r0, [r2, #6] ldrh r3, [r1] adds r0, r0, r3 @@ -76232,7 +76232,7 @@ _080412C8: mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 -_080412FC: .4byte gUnk_03000BF0 +_080412FC: .4byte gRoomControls thumb_func_start sub_08041300 sub_08041300: @ 0x08041300 @@ -76401,7 +76401,7 @@ _08041420: strb r0, [r2] ldr r0, _08041488 @ =0x0000FFB0 strh r0, [r4, #0x36] - ldr r0, _0804148C @ =gUnk_03000BF0 + ldr r0, _0804148C @ =gRoomControls str r4, [r0, #0x30] bl sub_080809D4 _0804144A: @@ -76438,7 +76438,7 @@ _08041486: pop {r4, r5, r6, r7, pc} .align 2, 0 _08041488: .4byte 0x0000FFB0 -_0804148C: .4byte gUnk_03000BF0 +_0804148C: .4byte gRoomControls thumb_func_start sub_08041490 sub_08041490: @ 0x08041490 @@ -76578,7 +76578,7 @@ _08041592: movs r0, #1 orrs r0, r2 strb r0, [r1] - ldr r1, _080415C0 @ =gUnk_03000BF0 + ldr r1, _080415C0 @ =gRoomControls ldr r0, _080415C4 @ =gLinkEntity str r0, [r1, #0x30] ldr r0, _080415C8 @ =gUnk_03003F80 @@ -76588,7 +76588,7 @@ _08041592: b _080415E6 .align 2, 0 _080415BC: .4byte gUnk_030010A0 -_080415C0: .4byte gUnk_03000BF0 +_080415C0: .4byte gRoomControls _080415C4: .4byte gLinkEntity _080415C8: .4byte gUnk_03003F80 _080415CC: @@ -76642,7 +76642,7 @@ sub_08041618: @ 0x08041618 bl sub_080042B8 adds r0, r4, #0 bl sub_080AEF88 - ldr r0, _0804165C @ =gUnk_03000BF0 + ldr r0, _0804165C @ =gRoomControls ldrh r2, [r0, #8] adds r0, r2, #0 adds r0, #0x90 @@ -76669,7 +76669,7 @@ _08041646: strb r0, [r4, #0xe] b _08041694 .align 2, 0 -_0804165C: .4byte gUnk_03000BF0 +_0804165C: .4byte gRoomControls _08041660: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 @@ -76814,7 +76814,7 @@ _08041748: str r5, [r2, #0x50] ldr r1, [r5, #0x64] str r2, [r1, #0x10] - ldr r0, _080417A0 @ =gUnk_03000BF0 + ldr r0, _080417A0 @ =gRoomControls str r2, [r0, #0x30] movs r0, #6 strb r0, [r5, #0xc] @@ -76830,7 +76830,7 @@ _08041748: b _080417AA .align 2, 0 _0804179C: .4byte gUnk_030010A0 -_080417A0: .4byte gUnk_03000BF0 +_080417A0: .4byte gRoomControls _080417A4: strb r2, [r5, #0xc] movs r0, #0x3c @@ -76909,7 +76909,7 @@ sub_08041828: @ 0x08041828 bl sub_08042004 adds r0, r4, #0 bl sub_080042B8 - ldr r2, _08041868 @ =gUnk_03000BF0 + ldr r2, _08041868 @ =gRoomControls ldrh r0, [r2, #8] adds r0, #0x48 movs r3, #0x32 @@ -76931,7 +76931,7 @@ _0804185C: bl sub_0806F69C b _0804187E .align 2, 0 -_08041868: .4byte gUnk_03000BF0 +_08041868: .4byte gRoomControls _0804186C: ldrb r0, [r4, #0xe] subs r0, #1 @@ -76953,7 +76953,7 @@ sub_08041880: @ 0x08041880 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F69C - ldr r0, _080418D4 @ =gUnk_03000BF0 + ldr r0, _080418D4 @ =gRoomControls ldrh r2, [r0, #6] adds r0, r2, #0 adds r0, #0x20 @@ -76988,7 +76988,7 @@ _080418BE: strb r0, [r4, #0xe] b _080418F8 .align 2, 0 -_080418D4: .4byte gUnk_03000BF0 +_080418D4: .4byte gRoomControls _080418D8: lsls r0, r1, #0x18 lsrs r0, r0, #0x18 @@ -77325,7 +77325,7 @@ _08041B70: _08041B82: adds r0, r4, #0 bl sub_0806F69C - ldr r0, _08041BBC @ =gUnk_03000BF0 + ldr r0, _08041BBC @ =gRoomControls ldrh r0, [r0, #8] adds r0, #0x48 movs r2, #0x32 @@ -77348,7 +77348,7 @@ _08041B82: bl sub_08004260 b _08041BCE .align 2, 0 -_08041BBC: .4byte gUnk_03000BF0 +_08041BBC: .4byte gRoomControls _08041BC0: movs r0, #0x80 ands r0, r1 @@ -77436,7 +77436,7 @@ sub_08041BE8: @ 0x08041BE8 bl sub_0805E7BC ldr r2, [r6, #0x64] str r5, [r2, #0x10] - ldr r1, _08041CC8 @ =gUnk_03000BF0 + ldr r1, _08041CC8 @ =gRoomControls ldr r0, _08041CCC @ =gLinkEntity str r0, [r1, #0x30] ldr r7, [r2, #0x1c] @@ -77472,7 +77472,7 @@ _08041CBA: .align 2, 0 _08041CC0: .4byte 0x000001F5 _08041CC4: .4byte 0x0000016B -_08041CC8: .4byte gUnk_03000BF0 +_08041CC8: .4byte gRoomControls _08041CCC: .4byte gLinkEntity thumb_func_start sub_08041CD0 @@ -77501,7 +77501,7 @@ _08041CF6: movs r0, #0x3c strb r0, [r4, #0xe] ldr r0, _08041D08 @ =0x00001651 - bl sub_08056378 + bl TextboxTryNoOverlap b _08041D12 .align 2, 0 _08041D08: .4byte 0x00001651 @@ -77518,7 +77518,7 @@ sub_08041D14: @ 0x08041D14 ldr r0, [r4, #0x64] ldr r0, [r0, #8] bl sub_08004274 - ldr r0, _08041D3C @ =gUnk_02000050 + ldr r0, _08041D3C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -77532,7 +77532,7 @@ sub_08041D14: @ 0x08041D14 strb r0, [r4, #0xe] b _08041D7C .align 2, 0 -_08041D3C: .4byte gUnk_02000050 +_08041D3C: .4byte gTextBox _08041D40: ldr r0, _08041D80 @ =gUnk_03003DBC ldrb r0, [r0] @@ -78024,14 +78024,14 @@ _080420E4: adds r2, r0, #0 cmp r1, #0x3f bgt _08042104 - ldr r0, _08042100 @ =gUnk_03000BF0 + ldr r0, _08042100 @ =gRoomControls ldrh r0, [r0, #8] adds r3, r0, #0 adds r3, #0x18 b _0804210C .align 2, 0 _080420FC: .4byte gLinkEntity -_08042100: .4byte gUnk_03000BF0 +_08042100: .4byte gRoomControls _08042104: movs r1, #0x32 ldrsh r0, [r2, r1] @@ -79579,7 +79579,7 @@ sub_08042C34: @ 0x08042C34 movs r0, #1 ldrsb r0, [r1, r0] adds r5, r2, r0 - ldr r3, _08042D1C @ =gUnk_03000BF0 + ldr r3, _08042D1C @ =gRoomControls ldrh r2, [r3, #6] adds r0, r2, #0 adds r0, #0x20 @@ -79667,7 +79667,7 @@ _08042D0C: .align 2, 0 _08042D14: .4byte gUnk_080D12F8 _08042D18: .4byte gLinkEntity -_08042D1C: .4byte gUnk_03000BF0 +_08042D1C: .4byte gRoomControls _08042D20: .4byte gUnk_080D1419 thumb_func_start sub_08042D24 @@ -79854,7 +79854,7 @@ _08042E4E: ldrsh r0, [r6, r1] movs r2, #0x32 ldrsh r1, [r6, r2] - ldr r3, _08042ED4 @ =gUnk_03000BF0 + ldr r3, _08042ED4 @ =gRoomControls ldrh r2, [r3, #6] movs r4, #0x88 lsls r4, r4, #1 @@ -79894,7 +79894,7 @@ _08042EB2: ldrsh r0, [r5, r4] b _08042EE6 .align 2, 0 -_08042ED4: .4byte gUnk_03000BF0 +_08042ED4: .4byte gRoomControls _08042ED8: .4byte gUnk_080D1304 _08042EDC: ldrb r0, [r5, #5] @@ -81916,7 +81916,7 @@ sub_08043DB0: @ 0x08043DB0 ldr r2, [r0, #0xc] movs r1, #0x2e ldrsh r0, [r2, r1] - ldr r6, _08043E4C @ =gUnk_03000BF0 + ldr r6, _08043E4C @ =gRoomControls ldrh r1, [r6, #6] subs r0, r0, r1 movs r3, #0x32 @@ -81979,7 +81979,7 @@ _08043DFE: b _08043E70 .align 2, 0 _08043E48: .4byte gUnk_03003F80 -_08043E4C: .4byte gUnk_03000BF0 +_08043E4C: .4byte gRoomControls _08043E50: .4byte gUnk_080D13EC _08043E54: .4byte gUnk_030010A0 _08043E58: @@ -82013,7 +82013,7 @@ _08043E70: _08043E8C: .4byte gUnk_030010A0 _08043E90: ldr r2, _08043EB0 @ =gUnk_030010A0 - ldr r3, _08043EB4 @ =gUnk_03000BF0 + ldr r3, _08043EB4 @ =gRoomControls movs r1, #0x88 lsls r1, r1, #1 adds r0, r1, #0 @@ -82030,7 +82030,7 @@ _08043EAC: pop {r4, r5, r6, pc} .align 2, 0 _08043EB0: .4byte gUnk_030010A0 -_08043EB4: .4byte gUnk_03000BF0 +_08043EB4: .4byte gRoomControls thumb_func_start sub_08043EB8 sub_08043EB8: @ 0x08043EB8 @@ -82831,7 +82831,7 @@ sub_08044498: @ 0x08044498 ldr r6, _08044538 @ =gLinkEntity movs r1, #0x2e ldrsh r0, [r6, r1] - ldr r3, _0804453C @ =gUnk_03000BF0 + ldr r3, _0804453C @ =gRoomControls ldrh r1, [r3, #6] subs r0, r0, r1 asrs r4, r0, #4 @@ -82908,7 +82908,7 @@ _0804450C: b _0804454C .align 2, 0 _08044538: .4byte gLinkEntity -_0804453C: .4byte gUnk_03000BF0 +_0804453C: .4byte gRoomControls _08044540: .4byte gUnk_03003F80 _08044544: adds r2, #5 @@ -84580,7 +84580,7 @@ sub_08045178: @ 0x08045178 adds r2, r0, r5 cmp r2, #0 blt _080451AE - ldr r0, _080451C8 @ =gUnk_03000BF0 + ldr r0, _080451C8 @ =gRoomControls ldrh r1, [r0, #6] ldrh r0, [r0, #0x1e] adds r1, r1, r0 @@ -84593,7 +84593,7 @@ _080451AE: adds r2, r0, r6 cmp r2, #0 blt _080451C6 - ldr r0, _080451C8 @ =gUnk_03000BF0 + ldr r0, _080451C8 @ =gRoomControls ldrh r1, [r0, #8] ldrh r0, [r0, #0x20] adds r1, r1, r0 @@ -84603,7 +84603,7 @@ _080451AE: _080451C6: pop {r4, r5, r6, pc} .align 2, 0 -_080451C8: .4byte gUnk_03000BF0 +_080451C8: .4byte gRoomControls thumb_func_start sub_080451CC sub_080451CC: @ 0x080451CC @@ -85424,7 +85424,7 @@ nullsub_173: @ 0x080457E0 sub_080457E4: @ 0x080457E4 push {r4, lr} adds r4, r0, #0 - ldr r0, _08045850 @ =gUnk_02000050 + ldr r0, _08045850 @ =gTextBox ldrb r0, [r0] movs r2, #0x7f ands r2, r0 @@ -85473,7 +85473,7 @@ sub_080457E4: @ 0x080457E4 bl sub_0806FA24 b _0804585A .align 2, 0 -_08045850: .4byte gUnk_02000050 +_08045850: .4byte gTextBox _08045854: adds r0, r4, #0 adds r0, #0x63 @@ -86590,7 +86590,7 @@ sub_08046078: @ 0x08046078 movs r1, #0 strb r1, [r0] ldr r4, _08046118 @ =gUnk_080D1A4E - ldr r6, _0804611C @ =gUnk_03000BF0 + ldr r6, _0804611C @ =gRoomControls movs r5, #4 _0804608A: adds r0, r7, #0 @@ -86657,7 +86657,7 @@ _0804610C: .align 2, 0 _08046114: .4byte gUnk_03003F80 _08046118: .4byte gUnk_080D1A4E -_0804611C: .4byte gUnk_03000BF0 +_0804611C: .4byte gRoomControls _08046120: .4byte 0x000007A2 _08046124: .4byte 0x000007A3 _08046128: .4byte 0x000007A5 @@ -87246,7 +87246,7 @@ sub_080465C8: @ 0x080465C8 ldr r3, _080465FC @ =gLinkEntity movs r0, #0x2e ldrsh r2, [r3, r0] - ldr r1, _08046600 @ =gUnk_03000BF0 + ldr r1, _08046600 @ =gRoomControls ldrh r0, [r1, #6] subs r2, r2, r0 asrs r2, r2, #3 @@ -87270,7 +87270,7 @@ _080465F8: pop {r4, pc} .align 2, 0 _080465FC: .4byte gLinkEntity -_08046600: .4byte gUnk_03000BF0 +_08046600: .4byte gRoomControls _08046604: .4byte gUnk_02019EE0 _08046608: .4byte gUnk_03003F80 @@ -87282,7 +87282,7 @@ sub_0804660C: @ 0x0804660C lsls r1, r1, #1 ldr r2, _0804662C @ =gUnk_080D1A84 adds r1, r1, r2 - ldr r3, _08046630 @ =gUnk_03000BF0 + ldr r3, _08046630 @ =gRoomControls ldrh r2, [r3, #6] ldrh r4, [r1] adds r2, r2, r4 @@ -87294,7 +87294,7 @@ sub_0804660C: @ 0x0804660C pop {r4, pc} .align 2, 0 _0804662C: .4byte gUnk_080D1A84 -_08046630: .4byte gUnk_03000BF0 +_08046630: .4byte gRoomControls thumb_func_start sub_08046634 sub_08046634: @ 0x08046634 @@ -87583,7 +87583,7 @@ _08046836: bne _08046878 movs r1, #0x32 ldrsh r0, [r4, r1] - ldr r1, _08046890 @ =gUnk_03000BF0 + ldr r1, _08046890 @ =gRoomControls movs r3, #0xc ldrsh r1, [r1, r3] subs r0, r0, r1 @@ -87608,7 +87608,7 @@ _08046878: pop {r4, r5, pc} .align 2, 0 _0804688C: .4byte gUnk_080D1AFC -_08046890: .4byte gUnk_03000BF0 +_08046890: .4byte gRoomControls _08046894: .4byte gLinkEntity thumb_func_start sub_08046898 @@ -87729,7 +87729,7 @@ sub_0804696C: @ 0x0804696C push {r4, r5, lr} adds r4, r0, #0 bl sub_08047E48 - ldr r5, _080469C8 @ =gUnk_03000BF0 + ldr r5, _080469C8 @ =gRoomControls ldrh r0, [r5, #8] movs r1, #0x98 lsls r1, r1, #1 @@ -87772,14 +87772,14 @@ _080469A6: _080469C6: pop {r4, r5, pc} .align 2, 0 -_080469C8: .4byte gUnk_03000BF0 +_080469C8: .4byte gRoomControls thumb_func_start sub_080469CC sub_080469CC: @ 0x080469CC push {r4, lr} adds r4, r0, #0 bl sub_08047E48 - ldr r0, _080469F0 @ =gUnk_03000BF0 + ldr r0, _080469F0 @ =gRoomControls ldrh r0, [r0, #8] movs r1, #0x84 lsls r1, r1, #2 @@ -87795,14 +87795,14 @@ sub_080469CC: @ 0x080469CC _080469EE: pop {r4, pc} .align 2, 0 -_080469F0: .4byte gUnk_03000BF0 +_080469F0: .4byte gRoomControls thumb_func_start sub_080469F4 sub_080469F4: @ 0x080469F4 push {r4, lr} adds r4, r0, #0 bl sub_08047E48 - ldr r0, _08046A2C @ =gUnk_03000BF0 + ldr r0, _08046A2C @ =gRoomControls ldrh r0, [r0, #8] movs r1, #0xa4 lsls r1, r1, #2 @@ -87827,7 +87827,7 @@ sub_080469F4: @ 0x080469F4 _08046A28: pop {r4, pc} .align 2, 0 -_08046A2C: .4byte gUnk_03000BF0 +_08046A2C: .4byte gRoomControls thumb_func_start sub_08046A30 sub_08046A30: @ 0x08046A30 @@ -87855,7 +87855,7 @@ sub_08046A54: @ 0x08046A54 push {r4, lr} adds r4, r0, #0 bl sub_08047E48 - ldr r0, _08046A74 @ =gUnk_03000BF0 + ldr r0, _08046A74 @ =gRoomControls ldrh r0, [r0, #6] movs r1, #0xe0 lsls r1, r1, #2 @@ -87869,7 +87869,7 @@ sub_08046A54: @ 0x08046A54 _08046A72: pop {r4, pc} .align 2, 0 -_08046A74: .4byte gUnk_03000BF0 +_08046A74: .4byte gRoomControls thumb_func_start sub_08046A78 sub_08046A78: @ 0x08046A78 @@ -88040,7 +88040,7 @@ sub_08046B8C: @ 0x08046B8C adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] - ldr r1, _08046BD4 @ =gUnk_03000BF0 + ldr r1, _08046BD4 @ =gRoomControls movs r2, #0x80 lsls r2, r2, #2 adds r0, r2, #0 @@ -88056,7 +88056,7 @@ sub_08046B8C: @ 0x08046B8C bl sub_08047D88 b _08046C02 .align 2, 0 -_08046BD4: .4byte gUnk_03000BF0 +_08046BD4: .4byte gRoomControls _08046BD8: ldrh r0, [r5] movs r3, #0x2e @@ -88261,7 +88261,7 @@ sub_08046D44: @ 0x08046D44 lsls r1, r1, #1 ldr r0, _08046D90 @ =gUnk_080D1B60 adds r1, r1, r0 - ldr r3, _08046D94 @ =gUnk_03000BF0 + ldr r3, _08046D94 @ =gRoomControls ldrh r0, [r3, #6] ldrh r2, [r1] adds r0, r0, r2 @@ -88284,7 +88284,7 @@ sub_08046D44: @ 0x08046D44 pop {pc} .align 2, 0 _08046D90: .4byte gUnk_080D1B60 -_08046D94: .4byte gUnk_03000BF0 +_08046D94: .4byte gRoomControls thumb_func_start sub_08046D98 sub_08046D98: @ 0x08046D98 @@ -88604,7 +88604,7 @@ sub_08046FE8: @ 0x08046FE8 adds r1, #0x7e movs r0, #0x1e strh r0, [r1] - ldr r2, _08047028 @ =gUnk_03000BF0 + ldr r2, _08047028 @ =gRoomControls movs r1, #0xa4 lsls r1, r1, #2 adds r0, r1, #0 @@ -88625,7 +88625,7 @@ sub_08046FE8: @ 0x08046FE8 bl sub_08047D88 pop {pc} .align 2, 0 -_08047028: .4byte gUnk_03000BF0 +_08047028: .4byte gRoomControls thumb_func_start sub_0804702C sub_0804702C: @ 0x0804702C @@ -88827,7 +88827,7 @@ _08047192: lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 - ldr r0, _080471C4 @ =gUnk_03000BF0 + ldr r0, _080471C4 @ =gRoomControls ldrh r0, [r0, #6] movs r1, #0x80 lsls r1, r1, #2 @@ -88842,7 +88842,7 @@ _080471BC: pop {r4, pc} .align 2, 0 _080471C0: .4byte 0x0000027F -_080471C4: .4byte gUnk_03000BF0 +_080471C4: .4byte gRoomControls thumb_func_start sub_080471C8 sub_080471C8: @ 0x080471C8 @@ -88874,7 +88874,7 @@ _080471EA: lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 - ldr r0, _0804722C @ =gUnk_03000BF0 + ldr r0, _0804722C @ =gRoomControls ldrh r0, [r0, #8] movs r1, #0xc8 lsls r1, r1, #1 @@ -88897,7 +88897,7 @@ _080471EA: movs r0, #6 b _08047236 .align 2, 0 -_0804722C: .4byte gUnk_03000BF0 +_0804722C: .4byte gRoomControls _08047230: strb r1, [r4, #0xd] b _08047238 @@ -89001,7 +89001,7 @@ _080472D2: lsls r1, r1, #8 adds r0, r4, #0 bl sub_08047DF0 - ldr r0, _0804730C @ =gUnk_03000BF0 + ldr r0, _0804730C @ =gRoomControls ldrh r0, [r0, #6] movs r1, #0xac lsls r1, r1, #2 @@ -89021,7 +89021,7 @@ _08047306: pop {r4, pc} .align 2, 0 _08047308: .4byte 0x000002FF -_0804730C: .4byte gUnk_03000BF0 +_0804730C: .4byte gRoomControls thumb_func_start sub_08047310 sub_08047310: @ 0x08047310 @@ -89118,7 +89118,7 @@ sub_080473B8: @ 0x080473B8 movs r1, #0x90 lsls r1, r1, #1 strh r1, [r0, #0x24] - ldr r3, _080473EC @ =gUnk_03000BF0 + ldr r3, _080473EC @ =gRoomControls movs r2, #0x80 lsls r2, r2, #2 adds r1, r2, #0 @@ -89138,7 +89138,7 @@ sub_080473B8: @ 0x080473B8 bl sub_08047D88 pop {pc} .align 2, 0 -_080473EC: .4byte gUnk_03000BF0 +_080473EC: .4byte gRoomControls thumb_func_start sub_080473F0 sub_080473F0: @ 0x080473F0 @@ -89293,7 +89293,7 @@ _08047504: sub_08047508: @ 0x08047508 push {r4, lr} adds r4, r0, #0 - ldr r2, _0804754C @ =gUnk_03000BF0 + ldr r2, _0804754C @ =gRoomControls ldrh r0, [r2, #6] movs r1, #0xd0 lsls r1, r1, #1 @@ -89326,7 +89326,7 @@ sub_08047508: @ 0x08047508 lsrs r0, r0, #8 b _08047598 .align 2, 0 -_0804754C: .4byte gUnk_03000BF0 +_0804754C: .4byte gRoomControls _08047550: adds r0, r4, #0 adds r0, #0x74 @@ -89370,7 +89370,7 @@ _08047598: _0804759A: adds r0, r4, #0 bl sub_08047E48 - ldr r0, _080475F0 @ =gUnk_03000BF0 + ldr r0, _080475F0 @ =gRoomControls ldrh r0, [r0, #6] movs r1, #0xa0 lsls r1, r1, #2 @@ -89411,7 +89411,7 @@ _080475CA: _080475EE: pop {r4, pc} .align 2, 0 -_080475F0: .4byte gUnk_03000BF0 +_080475F0: .4byte gRoomControls thumb_func_start sub_080475F4 sub_080475F4: @ 0x080475F4 @@ -89456,7 +89456,7 @@ _08047626: sub_0804763C: @ 0x0804763C push {r4, lr} adds r4, r0, #0 - ldr r2, _08047680 @ =gUnk_03000BF0 + ldr r2, _08047680 @ =gRoomControls ldrh r0, [r2, #6] movs r1, #0xf8 lsls r1, r1, #1 @@ -89489,7 +89489,7 @@ sub_0804763C: @ 0x0804763C lsrs r0, r0, #8 b _080476CE .align 2, 0 -_08047680: .4byte gUnk_03000BF0 +_08047680: .4byte gRoomControls _08047684: adds r0, r4, #0 adds r0, #0x74 @@ -89534,7 +89534,7 @@ _080476CE: _080476D0: adds r0, r4, #0 bl sub_08047E48 - ldr r0, _08047728 @ =gUnk_03000BF0 + ldr r0, _08047728 @ =gRoomControls ldrh r0, [r0, #6] movs r1, #0xc0 lsls r1, r1, #1 @@ -89575,7 +89575,7 @@ _08047700: _08047724: pop {r4, pc} .align 2, 0 -_08047728: .4byte gUnk_03000BF0 +_08047728: .4byte gRoomControls thumb_func_start sub_0804772C sub_0804772C: @ 0x0804772C @@ -89644,7 +89644,7 @@ sub_08047798: @ 0x08047798 strh r0, [r3, #0x24] movs r0, #0x2e ldrsh r1, [r3, r0] - ldr r2, _080477BC @ =gUnk_03000BF0 + ldr r2, _080477BC @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 ldr r0, _080477C0 @ =0x000001F7 @@ -89655,7 +89655,7 @@ sub_08047798: @ 0x08047798 movs r0, #0xa8 b _080477CC .align 2, 0 -_080477BC: .4byte gUnk_03000BF0 +_080477BC: .4byte gRoomControls _080477C0: .4byte 0x000001F7 _080477C4: adds r1, r3, #0 @@ -89745,7 +89745,7 @@ _0804780A: _08047868: .4byte 0x000002FF _0804786C: .4byte gLinkEntity _08047870: - ldr r5, _080478FC @ =gUnk_03000BF0 + ldr r5, _080478FC @ =gRoomControls ldrh r1, [r5, #6] movs r0, #0x80 lsls r0, r0, #2 @@ -89815,7 +89815,7 @@ _080478F4: strb r2, [r0] b _0804790C .align 2, 0 -_080478FC: .4byte gUnk_03000BF0 +_080478FC: .4byte gRoomControls _08047900: .4byte gUnk_080D1BF0 _08047904: ldr r0, [r2, #4] @@ -89993,7 +89993,7 @@ _08047A2C: lsrs r0, r0, #6 cmp r0, #1 bne _08047A80 - ldr r2, _08047A7C @ =gUnk_03000BF0 + ldr r2, _08047A7C @ =gRoomControls movs r1, #0xe0 lsls r1, r1, #1 adds r0, r1, #0 @@ -90012,9 +90012,9 @@ _08047A2C: b _08047B04 .align 2, 0 _08047A78: .4byte gLinkEntity -_08047A7C: .4byte gUnk_03000BF0 +_08047A7C: .4byte gRoomControls _08047A80: - ldr r2, _08047AA0 @ =gUnk_03000BF0 + ldr r2, _08047AA0 @ =gRoomControls movs r3, #0x90 lsls r3, r3, #2 adds r0, r3, #0 @@ -90030,9 +90030,9 @@ _08047A80: adds r1, #2 b _08047B04 .align 2, 0 -_08047AA0: .4byte gUnk_03000BF0 +_08047AA0: .4byte gRoomControls _08047AA4: - ldr r0, _08047AC4 @ =gUnk_03000BF0 + ldr r0, _08047AC4 @ =gRoomControls ldrh r1, [r0, #6] movs r2, #0x80 lsls r2, r2, #2 @@ -90048,7 +90048,7 @@ _08047AA4: lsls r0, r0, #1 b _08047AD0 .align 2, 0 -_08047AC4: .4byte gUnk_03000BF0 +_08047AC4: .4byte gRoomControls _08047AC8: adds r1, r4, #0 adds r1, #0x80 @@ -90179,7 +90179,7 @@ sub_08047BA4: @ 0x08047BA4 movs r2, #0x78 strb r2, [r4, #0xe] strb r1, [r4, #0xf] - ldr r0, _08047BD0 @ =gUnk_03000BF0 + ldr r0, _08047BD0 @ =gRoomControls ldrh r0, [r0, #6] movs r1, #0x80 lsls r1, r1, #2 @@ -90193,7 +90193,7 @@ sub_08047BA4: @ 0x08047BA4 strh r2, [r0] b _08047BDC .align 2, 0 -_08047BD0: .4byte gUnk_03000BF0 +_08047BD0: .4byte gRoomControls _08047BD4: adds r1, r4, #0 adds r1, #0x76 @@ -90284,7 +90284,7 @@ _08047C74: bl sub_08047E48 movs r2, #0x32 ldrsh r1, [r5, r2] - ldr r0, _08047CC0 @ =gUnk_03000BF0 + ldr r0, _08047CC0 @ =gRoomControls ldrh r0, [r0, #8] movs r6, #0x9c lsls r6, r6, #2 @@ -90306,7 +90306,7 @@ _08047C74: .align 2, 0 _08047CB8: .4byte gUnk_080D1C00 _08047CBC: .4byte 0x0000FFF1 -_08047CC0: .4byte gUnk_03000BF0 +_08047CC0: .4byte gRoomControls _08047CC4: subs r0, #1 strb r0, [r5, #0xe] @@ -90797,7 +90797,7 @@ _0804803A: bne _080480B0 movs r7, #0x2e ldrsh r2, [r6, r7] - ldr r1, _080480A8 @ =gUnk_03000BF0 + ldr r1, _080480A8 @ =gRoomControls ldrh r0, [r1, #6] subs r2, r2, r0 asrs r2, r2, #3 @@ -90838,7 +90838,7 @@ _08048086: b _08048138 .align 2, 0 _080480A4: .4byte gLinkEntity -_080480A8: .4byte gUnk_03000BF0 +_080480A8: .4byte gRoomControls _080480AC: .4byte gUnk_02019EE0 _080480B0: ldrb r1, [r5] @@ -90968,7 +90968,7 @@ _08048198: ldr r0, _080481B8 @ =gUnk_080D1C50 _0804819C: adds r3, r1, r0 - ldr r2, _080481BC @ =gUnk_03000BF0 + ldr r2, _080481BC @ =gRoomControls ldrh r0, [r2, #6] ldrh r1, [r3] adds r0, r0, r1 @@ -90983,7 +90983,7 @@ _0804819C: pop {r4, pc} .align 2, 0 _080481B8: .4byte gUnk_080D1C50 -_080481BC: .4byte gUnk_03000BF0 +_080481BC: .4byte gRoomControls thumb_func_start sub_080481C0 sub_080481C0: @ 0x080481C0 @@ -91810,16 +91810,16 @@ _080487BC: _080487C2: movs r2, #0x32 ldrsh r1, [r4, r2] - ldr r0, _080487D0 @ =gUnk_03000BF0 + ldr r0, _080487D0 @ =gRoomControls movs r2, #0xc ldrsh r0, [r0, r2] b _0804880E .align 2, 0 -_080487D0: .4byte gUnk_03000BF0 +_080487D0: .4byte gRoomControls _080487D4: movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r0, _080487E8 @ =gUnk_03000BF0 + ldr r0, _080487E8 @ =gRoomControls movs r2, #0xa ldrsh r0, [r0, r2] movs r2, #0x84 @@ -91827,11 +91827,11 @@ _080487D4: adds r0, r0, r2 b _080487F8 .align 2, 0 -_080487E8: .4byte gUnk_03000BF0 +_080487E8: .4byte gRoomControls _080487EC: movs r0, #0x32 ldrsh r1, [r4, r0] - ldr r0, _08048800 @ =gUnk_03000BF0 + ldr r0, _08048800 @ =gRoomControls movs r2, #0xc ldrsh r0, [r0, r2] adds r0, #0xb8 @@ -91840,11 +91840,11 @@ _080487F8: blt _08048824 b _08048814 .align 2, 0 -_08048800: .4byte gUnk_03000BF0 +_08048800: .4byte gRoomControls _08048804: movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r0, _08048828 @ =gUnk_03000BF0 + ldr r0, _08048828 @ =gRoomControls movs r2, #0xa ldrsh r0, [r0, r2] _0804880E: @@ -91863,7 +91863,7 @@ _08048814: _08048824: pop {r4, pc} .align 2, 0 -_08048828: .4byte gUnk_03000BF0 +_08048828: .4byte gRoomControls thumb_func_start sub_0804882C sub_0804882C: @ 0x0804882C @@ -91938,7 +91938,7 @@ _080488AE: ldrh r1, [r1, #0x2e] adds r0, r0, r1 strh r0, [r4, #0x2e] - ldr r1, _080488CC @ =gUnk_03000BF0 + ldr r1, _080488CC @ =gRoomControls adds r0, r4, #0 adds r0, #0x76 ldrh r0, [r0] @@ -91946,9 +91946,9 @@ _080488AE: b _080488E8 .align 2, 0 _080488C8: .4byte gLinkEntity -_080488CC: .4byte gUnk_03000BF0 +_080488CC: .4byte gRoomControls _080488D0: - ldr r1, _080488FC @ =gUnk_03000BF0 + ldr r1, _080488FC @ =gRoomControls adds r0, r4, #0 adds r0, #0x74 ldrh r0, [r0] @@ -91972,7 +91972,7 @@ _080488E8: _080488FA: pop {r4, pc} .align 2, 0 -_080488FC: .4byte gUnk_03000BF0 +_080488FC: .4byte gRoomControls _08048900: .4byte gLinkEntity thumb_func_start sub_08048904 @@ -91998,16 +91998,16 @@ _08048924: _0804892A: movs r0, #0x32 ldrsh r1, [r4, r0] - ldr r0, _08048938 @ =gUnk_03000BF0 + ldr r0, _08048938 @ =gRoomControls movs r2, #0xc ldrsh r0, [r0, r2] b _08048976 .align 2, 0 -_08048938: .4byte gUnk_03000BF0 +_08048938: .4byte gRoomControls _0804893C: movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r0, _08048950 @ =gUnk_03000BF0 + ldr r0, _08048950 @ =gRoomControls movs r2, #0xa ldrsh r0, [r0, r2] movs r2, #0x8c @@ -92015,11 +92015,11 @@ _0804893C: adds r0, r0, r2 b _08048960 .align 2, 0 -_08048950: .4byte gUnk_03000BF0 +_08048950: .4byte gRoomControls _08048954: movs r0, #0x32 ldrsh r1, [r4, r0] - ldr r0, _08048968 @ =gUnk_03000BF0 + ldr r0, _08048968 @ =gRoomControls movs r2, #0xc ldrsh r0, [r0, r2] adds r0, #0xc8 @@ -92028,11 +92028,11 @@ _08048960: blt _08048980 b _0804897C .align 2, 0 -_08048968: .4byte gUnk_03000BF0 +_08048968: .4byte gRoomControls _0804896C: movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r0, _08048984 @ =gUnk_03000BF0 + ldr r0, _08048984 @ =gRoomControls movs r2, #0xa ldrsh r0, [r0, r2] _08048976: @@ -92044,7 +92044,7 @@ _0804897C: _08048980: pop {r4, pc} .align 2, 0 -_08048984: .4byte gUnk_03000BF0 +_08048984: .4byte gRoomControls thumb_func_start sub_08048988 sub_08048988: @ 0x08048988 @@ -92510,7 +92510,7 @@ sub_08048D20: @ 0x08048D20 lsls r1, r1, #2 ldr r0, _08048D64 @ =gUnk_080D1F90 adds r1, r1, r0 - ldr r2, _08048D68 @ =gUnk_03000BF0 + ldr r2, _08048D68 @ =gRoomControls ldrh r0, [r2, #6] ldrh r5, [r1] adds r0, r0, r5 @@ -92530,7 +92530,7 @@ _08048D60: pop {r4, r5, pc} .align 2, 0 _08048D64: .4byte gUnk_080D1F90 -_08048D68: .4byte gUnk_03000BF0 +_08048D68: .4byte gRoomControls _08048D6C: .4byte gUnk_080D2010 thumb_func_start sub_08048D70 @@ -92875,7 +92875,7 @@ _08048FD4: ldr r3, _08049010 @ =gUnk_080D28CC lsls r1, r5, #1 adds r1, r1, r3 - ldr r2, _08049014 @ =gUnk_03000BF0 + ldr r2, _08049014 @ =gRoomControls ldrh r0, [r2, #6] ldrh r1, [r1] adds r0, r0, r1 @@ -92893,7 +92893,7 @@ _08048FD4: b _0804901E .align 2, 0 _08049010: .4byte gUnk_080D28CC -_08049014: .4byte gUnk_03000BF0 +_08049014: .4byte gRoomControls _08049018: adds r0, r4, #0 bl sub_08004274 @@ -92995,7 +92995,7 @@ _08049092: bne _080490F4 movs r1, #0x32 ldrsh r0, [r5, r1] - ldr r1, _080490FC @ =gUnk_03000BF0 + ldr r1, _080490FC @ =gRoomControls movs r3, #0xc ldrsh r1, [r1, r3] subs r0, r0, r1 @@ -93012,7 +93012,7 @@ _080490F4: pop {r4, r5, pc} .align 2, 0 _080490F8: .4byte gUnk_080D2974 -_080490FC: .4byte gUnk_03000BF0 +_080490FC: .4byte gRoomControls thumb_func_start sub_08049100 sub_08049100: @ 0x08049100 @@ -93161,7 +93161,7 @@ _0804921C: lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 - ldr r2, _0804926C @ =gUnk_03000BF0 + ldr r2, _0804926C @ =gRoomControls ldrh r0, [r2, #6] ldr r1, _08049270 @ =0xFFFFFF00 adds r0, r0, r1 @@ -93192,7 +93192,7 @@ _0804921C: _08049268: pop {r4, pc} .align 2, 0 -_0804926C: .4byte gUnk_03000BF0 +_0804926C: .4byte gRoomControls _08049270: .4byte 0xFFFFFF00 thumb_func_start sub_08049274 @@ -93208,7 +93208,7 @@ sub_08049274: @ 0x08049274 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 - ldr r0, _080492A4 @ =gUnk_03000BF0 + ldr r0, _080492A4 @ =gRoomControls ldrh r0, [r0, #8] adds r0, #0x40 movs r2, #0x32 @@ -93222,7 +93222,7 @@ sub_08049274: @ 0x08049274 _080492A2: pop {r4, pc} .align 2, 0 -_080492A4: .4byte gUnk_03000BF0 +_080492A4: .4byte gRoomControls thumb_func_start sub_080492A8 sub_080492A8: @ 0x080492A8 @@ -93256,7 +93256,7 @@ sub_080492C8: @ 0x080492C8 strb r1, [r0] movs r0, #0x2e ldrsh r1, [r3, r0] - ldr r2, _08049300 @ =gUnk_03000BF0 + ldr r2, _08049300 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 adds r5, r2, #0 @@ -93271,7 +93271,7 @@ sub_080492C8: @ 0x080492C8 adds r0, #0x28 b _08049314 .align 2, 0 -_08049300: .4byte gUnk_03000BF0 +_08049300: .4byte gRoomControls _08049304: adds r2, r3, #0 adds r2, #0x80 @@ -93414,7 +93414,7 @@ sub_080493E4: @ 0x080493E4 ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] - ldr r3, _08049458 @ =gUnk_03000BF0 + ldr r3, _08049458 @ =gRoomControls ldrh r2, [r3, #6] adds r2, #0xa8 ldrh r3, [r3, #8] @@ -93450,7 +93450,7 @@ _0804943A: bl sub_08047EA4 pop {r4, pc} .align 2, 0 -_08049458: .4byte gUnk_03000BF0 +_08049458: .4byte gRoomControls thumb_func_start sub_0804945C sub_0804945C: @ 0x0804945C @@ -93578,7 +93578,7 @@ sub_08049538: @ 0x08049538 lsls r1, r1, #8 adds r0, r4, #0 bl sub_08049998 - ldr r0, _08049570 @ =gUnk_03000BF0 + ldr r0, _08049570 @ =gRoomControls ldrh r1, [r0, #6] adds r1, #0xa8 ldrh r2, [r0, #8] @@ -93595,7 +93595,7 @@ sub_08049538: @ 0x08049538 _0804956E: pop {r4, pc} .align 2, 0 -_08049570: .4byte gUnk_03000BF0 +_08049570: .4byte gRoomControls thumb_func_start sub_08049574 sub_08049574: @ 0x08049574 @@ -93618,7 +93618,7 @@ _08049590: .4byte gUnk_080D29A8 sub_08049594: @ 0x08049594 push {r4, lr} adds r4, r0, #0 - ldr r2, _080495C8 @ =gUnk_03000BF0 + ldr r2, _080495C8 @ =gRoomControls ldrh r0, [r2, #6] movs r3, #0x2e ldrsh r1, [r4, r3] @@ -93642,7 +93642,7 @@ sub_08049594: @ 0x08049594 strb r0, [r4, #0x15] b _080495DC .align 2, 0 -_080495C8: .4byte gUnk_03000BF0 +_080495C8: .4byte gRoomControls _080495CC: adds r0, r2, #1 strb r0, [r4, #0x15] @@ -93671,7 +93671,7 @@ _080495DC: sub_080495F8: @ 0x080495F8 push {r4, lr} adds r4, r0, #0 - ldr r0, _08049654 @ =gUnk_03000BF0 + ldr r0, _08049654 @ =gRoomControls ldrh r1, [r0, #6] adds r1, #0xa8 ldrh r2, [r0, #8] @@ -93713,7 +93713,7 @@ _0804963C: bl sub_08049998 pop {r4, pc} .align 2, 0 -_08049654: .4byte gUnk_03000BF0 +_08049654: .4byte gRoomControls _08049658: .4byte gUnk_080D29B8 thumb_func_start sub_0804965C @@ -93985,7 +93985,7 @@ sub_08049804: @ 0x08049804 ands r3, r0 strb r3, [r4, #0x18] ldr r4, _08049880 @ =gLinkEntity - ldr r1, _08049884 @ =gUnk_03000BF0 + ldr r1, _08049884 @ =gRoomControls ldrh r0, [r1, #6] adds r0, #0xa8 movs r2, #0 @@ -94003,7 +94003,7 @@ _08049878: .align 2, 0 _0804987C: .4byte gUnk_03000FD0 _08049880: .4byte gLinkEntity -_08049884: .4byte gUnk_03000BF0 +_08049884: .4byte gRoomControls thumb_func_start sub_08049888 sub_08049888: @ 0x08049888 @@ -94626,7 +94626,7 @@ sub_08049D30: @ 0x08049D30 ldr r0, _08049D5C @ =gUnk_02024050 str r0, [r1] adds r5, r1, #0 - ldr r6, _08049D60 @ =gUnk_03000BF0 + ldr r6, _08049D60 @ =gRoomControls ldr r4, _08049D64 @ =0x0000FFFF _08049D3E: ldr r3, [r5] @@ -94644,7 +94644,7 @@ _08049D3E: .align 2, 0 _08049D58: .4byte gUnk_020354B0 _08049D5C: .4byte gUnk_02024050 -_08049D60: .4byte gUnk_03000BF0 +_08049D60: .4byte gRoomControls _08049D64: .4byte 0x0000FFFF _08049D68: adds r1, r3, #0 @@ -94668,7 +94668,7 @@ sub_08049D88: @ 0x08049D88 ldr r4, _08049DC0 @ =gUnk_02024050 adds r1, r4, #0 adds r1, #8 - ldr r3, _08049DC4 @ =gUnk_03000BF0 + ldr r3, _08049DC4 @ =gRoomControls adds r2, r4, #0 adds r2, #0x40 _08049D96: @@ -94695,7 +94695,7 @@ _08049DA0: pop {r4, r5, pc} .align 2, 0 _08049DC0: .4byte gUnk_02024050 -_08049DC4: .4byte gUnk_03000BF0 +_08049DC4: .4byte gRoomControls _08049DC8: .4byte 0x0000FFFF thumb_func_start sub_08049DCC @@ -95241,7 +95241,7 @@ sub_0804A168: @ 0x0804A168 bhi _0804A19E movs r7, #0xa _0804A19E: - ldr r3, _0804A240 @ =gUnk_03000BF0 + ldr r3, _0804A240 @ =gRoomControls mov r8, r3 ldrh r1, [r3, #6] subs r1, r2, r1 @@ -95322,7 +95322,7 @@ _0804A1EC: movs r0, #0x10 b _0804A30A .align 2, 0 -_0804A240: .4byte gUnk_03000BF0 +_0804A240: .4byte gRoomControls _0804A244: .4byte 0x00002004 _0804A248: movs r3, #0x2e @@ -95336,7 +95336,7 @@ _0804A248: bhi _0804A25C movs r7, #0xa _0804A25C: - ldr r3, _0804A300 @ =gUnk_03000BF0 + ldr r3, _0804A300 @ =gRoomControls mov r8, r3 ldrh r1, [r3, #6] subs r1, r2, r1 @@ -95416,7 +95416,7 @@ _0804A25C: movs r0, #0 b _0804A30A .align 2, 0 -_0804A300: .4byte gUnk_03000BF0 +_0804A300: .4byte gRoomControls _0804A304: .4byte 0x00002004 _0804A308: movs r0, #0xff @@ -95460,7 +95460,7 @@ sub_0804A318: @ 0x0804A318 _0804A34C: movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r2, _0804A3E8 @ =gUnk_03000BF0 + ldr r2, _0804A3E8 @ =gRoomControls mov sb, r2 ldrh r3, [r2, #6] adds r1, r3, #0 @@ -95536,7 +95536,7 @@ _0804A394: movs r0, #8 b _0804A4B2 .align 2, 0 -_0804A3E8: .4byte gUnk_03000BF0 +_0804A3E8: .4byte gRoomControls _0804A3EC: .4byte 0x00002004 _0804A3F0: movs r4, #0x32 @@ -95554,7 +95554,7 @@ _0804A3F0: _0804A408: movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r2, _0804A4A8 @ =gUnk_03000BF0 + ldr r2, _0804A4A8 @ =gRoomControls mov sb, r2 ldrh r3, [r2, #6] adds r1, r3, #0 @@ -95630,7 +95630,7 @@ _0804A408: movs r0, #0x18 b _0804A4B2 .align 2, 0 -_0804A4A8: .4byte gUnk_03000BF0 +_0804A4A8: .4byte gRoomControls _0804A4AC: .4byte 0x00002004 _0804A4B0: movs r0, #0xff @@ -96008,13 +96008,13 @@ _0804A754: adds r3, r1, #0 cmp r3, #0 beq _0804A774 - ldr r0, _0804A770 @ =gUnk_03000BF0 + ldr r0, _0804A770 @ =gRoomControls ldrh r0, [r0, #6] adds r0, r1, r0 b _0804A784 .align 2, 0 _0804A76C: .4byte gUnk_080D3D94 -_0804A770: .4byte gUnk_03000BF0 +_0804A770: .4byte gRoomControls _0804A774: ldrb r0, [r5] lsls r1, r0, #2 @@ -96038,12 +96038,12 @@ _0804A792: adds r3, r1, #0 cmp r3, #0 beq _0804A7A8 - ldr r0, _0804A7A4 @ =gUnk_03000BF0 + ldr r0, _0804A7A4 @ =gRoomControls ldrh r0, [r0, #8] adds r0, r1, r0 b _0804A7B8 .align 2, 0 -_0804A7A4: .4byte gUnk_03000BF0 +_0804A7A4: .4byte gRoomControls _0804A7A8: ldrb r0, [r6] lsls r1, r0, #2 diff --git a/asm/code_0804AA84.s b/asm/code_0804AA84.s index e3ebfa14..7d46bc3c 100644 --- a/asm/code_0804AA84.s +++ b/asm/code_0804AA84.s @@ -94,7 +94,7 @@ sub_0804AB24: @ 0x0804AB24 ldrb r1, [r5] cmp r1, #0 bne _0804AB46 - ldr r0, _0804AB4C @ =gUnk_03000F50 + ldr r0, _0804AB4C @ =gLCDControls movs r4, #0 strh r1, [r0] bl sub_0801E104 @@ -108,7 +108,7 @@ _0804AB46: pop {r4, r5, pc} .align 2, 0 _0804AB48: .4byte gUnk_03000FD0 -_0804AB4C: .4byte gUnk_03000F50 +_0804AB4C: .4byte gLCDControls _0804AB50: .4byte gUnk_02033A90 thumb_func_start sub_0804AB54 @@ -131,14 +131,14 @@ sub_0804AB70: @ 0x0804AB70 push {r4, r5, lr} movs r0, #0 bl sub_0801DA90 - ldr r1, _0804ABF8 @ =gUnk_03000F50 + ldr r1, _0804ABF8 @ =gLCDControls movs r2, #0 movs r0, #0x92 lsls r0, r0, #5 strh r0, [r1] ldr r0, _0804ABFC @ =0x00009E83 strh r0, [r1, #0x14] - ldr r0, _0804AC00 @ =gUnk_03000BF0 + ldr r0, _0804AC00 @ =gRoomControls strh r2, [r1, #0x16] strh r2, [r0, #0xa] strh r2, [r1, #0x18] @@ -189,9 +189,9 @@ _0804ABA4: bl sub_08050054 pop {r4, r5, pc} .align 2, 0 -_0804ABF8: .4byte gUnk_03000F50 +_0804ABF8: .4byte gLCDControls _0804ABFC: .4byte 0x00009E83 -_0804AC00: .4byte gUnk_03000BF0 +_0804AC00: .4byte gRoomControls _0804AC04: .4byte gUnk_02033A90 _0804AC08: .4byte gUnk_02032EC0 _0804AC0C: .4byte gUnk_080D4138 @@ -207,7 +207,7 @@ sub_0804AC1C: @ 0x0804AC1C ldr r2, [r0, #0x14] cmp r2, #0 beq _0804AC5E - ldr r3, _0804AC9C @ =gUnk_03000BF0 + ldr r3, _0804AC9C @ =gRoomControls movs r1, #0xc ldrsh r0, [r3, r1] movs r4, #0x32 @@ -235,8 +235,8 @@ _0804AC52: movs r0, #0x9f strh r0, [r3, #0xc] _0804AC5E: - ldr r2, _0804ACA0 @ =gUnk_03000F50 - ldr r1, _0804AC9C @ =gUnk_03000BF0 + ldr r2, _0804ACA0 @ =gLCDControls + ldr r1, _0804AC9C @ =gRoomControls ldrh r0, [r1, #0xa] strh r0, [r2, #0x16] ldrh r0, [r1, #0xc] @@ -263,8 +263,8 @@ _0804AC96: pop {r4, pc} .align 2, 0 _0804AC98: .4byte gUnk_02018EB0 -_0804AC9C: .4byte gUnk_03000BF0 -_0804ACA0: .4byte gUnk_03000F50 +_0804AC9C: .4byte gRoomControls +_0804ACA0: .4byte gLCDControls _0804ACA4: .4byte gUnk_02033A90 thumb_func_start sub_0804ACA8 @@ -314,7 +314,7 @@ sub_0804ACF8: @ 0x0804ACF8 bl sub_0804AD18 cmp r0, #0 beq _0804AD12 - ldr r0, _0804AD14 @ =gUnk_03000BF0 + ldr r0, _0804AD14 @ =gRoomControls bl sub_0804AD6C bl sub_0805E5A8 movs r0, #0xf8 @@ -322,7 +322,7 @@ sub_0804ACF8: @ 0x0804ACF8 _0804AD12: pop {pc} .align 2, 0 -_0804AD14: .4byte gUnk_03000BF0 +_0804AD14: .4byte gRoomControls thumb_func_start sub_0804AD18 sub_0804AD18: @ 0x0804AD18 diff --git a/asm/code_0804AEB0.s b/asm/code_0804AEB0.s index d2a6795e..e8838acb 100644 --- a/asm/code_0804AEB0.s +++ b/asm/code_0804AEB0.s @@ -74,7 +74,7 @@ _0804AF26: beq _0804AF64 b _0804AF88 _0804AF2C: - ldr r0, _0804AF3C @ =gUnk_03000BF0 + ldr r0, _0804AF3C @ =gRoomControls ldrh r1, [r0, #6] ldrh r3, [r2, #8] adds r1, r1, r3 @@ -82,7 +82,7 @@ _0804AF2C: ldrh r0, [r0, #8] b _0804AF58 .align 2, 0 -_0804AF3C: .4byte gUnk_03000BF0 +_0804AF3C: .4byte gRoomControls _0804AF40: adds r3, r4, #0 adds r3, #0x6d @@ -90,7 +90,7 @@ _0804AF40: movs r0, #0x20 orrs r0, r1 strb r0, [r3] - ldr r1, _0804AF60 @ =gUnk_03000BF0 + ldr r1, _0804AF60 @ =gRoomControls ldrh r0, [r1, #6] ldrh r3, [r2, #8] adds r0, r0, r3 @@ -102,9 +102,9 @@ _0804AF58: strh r0, [r4, #0x32] b _0804AF88 .align 2, 0 -_0804AF60: .4byte gUnk_03000BF0 +_0804AF60: .4byte gRoomControls _0804AF64: - ldr r1, _0804AF8C @ =gUnk_03000BF0 + ldr r1, _0804AF8C @ =gRoomControls ldrh r0, [r1, #6] ldrh r3, [r2, #8] adds r0, r0, r3 @@ -123,7 +123,7 @@ _0804AF64: _0804AF88: pop {r4, pc} .align 2, 0 -_0804AF8C: .4byte gUnk_03000BF0 +_0804AF8C: .4byte gRoomControls thumb_func_start sub_0804AF90 sub_0804AF90: @ 0x0804AF90 diff --git a/asm/code_0804B058.s b/asm/code_0804B058.s index 0eb4f493..d0fef08a 100644 --- a/asm/code_0804B058.s +++ b/asm/code_0804B058.s @@ -335,7 +335,7 @@ _0804B2A4: ands r0, r1 cmp r0, #0 beq _0804B2FC - ldr r0, _0804B2F0 @ =gUnk_03000BF0 + ldr r0, _0804B2F0 @ =gRoomControls ldrb r1, [r0, #0xf] movs r0, #2 ands r0, r1 @@ -356,7 +356,7 @@ _0804B2A4: b _0804B2FC .align 2, 0 _0804B2EC: .4byte gUnk_02017660 -_0804B2F0: .4byte gUnk_03000BF0 +_0804B2F0: .4byte gRoomControls _0804B2F4: adds r1, #1 adds r4, #8 @@ -811,7 +811,7 @@ sub_0804B580: @ 0x0804B580 ldr r0, _0804B5A0 @ =gLinkEntity movs r1, #0x32 ldrsh r0, [r0, r1] - ldr r1, _0804B5A4 @ =gUnk_03000BF0 + ldr r1, _0804B5A4 @ =gRoomControls ldrh r1, [r1, #8] subs r0, r0, r1 cmp r0, #0x40 @@ -822,7 +822,7 @@ _0804B59E: pop {pc} .align 2, 0 _0804B5A0: .4byte gLinkEntity -_0804B5A4: .4byte gUnk_03000BF0 +_0804B5A4: .4byte gRoomControls _0804B5A8: .4byte gUnk_080D6138 thumb_func_start sub_0804B5AC @@ -1120,7 +1120,7 @@ sub_0804B7E8: @ 0x0804B7E8 movs r0, #5 bl sub_08050054 ldr r2, _0804B820 @ =gLinkEntity - ldr r1, _0804B824 @ =gUnk_03000BF0 + ldr r1, _0804B824 @ =gRoomControls ldrh r0, [r1, #6] adds r0, #0x50 strh r0, [r2, #0x2e] @@ -1135,7 +1135,7 @@ _0804B81E: pop {pc} .align 2, 0 _0804B820: .4byte gLinkEntity -_0804B824: .4byte gUnk_03000BF0 +_0804B824: .4byte gRoomControls _0804B828: .4byte gUnk_08010A5C thumb_func_start sub_0804B82C @@ -1183,7 +1183,7 @@ sub_0804B86C: @ 0x0804B86C movs r0, #5 bl sub_08050054 ldr r2, _0804B8A4 @ =gLinkEntity - ldr r1, _0804B8A8 @ =gUnk_03000BF0 + ldr r1, _0804B8A8 @ =gRoomControls ldrh r0, [r1, #6] adds r0, #0x50 strh r0, [r2, #0x2e] @@ -1198,7 +1198,7 @@ _0804B8A2: pop {pc} .align 2, 0 _0804B8A4: .4byte gLinkEntity -_0804B8A8: .4byte gUnk_03000BF0 +_0804B8A8: .4byte gRoomControls _0804B8AC: .4byte gUnk_08010A5C thumb_func_start sub_0804B8B0 @@ -1246,7 +1246,7 @@ sub_0804B8F0: @ 0x0804B8F0 movs r0, #5 bl sub_08050054 ldr r2, _0804B928 @ =gLinkEntity - ldr r1, _0804B92C @ =gUnk_03000BF0 + ldr r1, _0804B92C @ =gRoomControls ldrh r0, [r1, #6] adds r0, #0x60 strh r0, [r2, #0x2e] @@ -1261,7 +1261,7 @@ _0804B926: pop {pc} .align 2, 0 _0804B928: .4byte gLinkEntity -_0804B92C: .4byte gUnk_03000BF0 +_0804B92C: .4byte gRoomControls _0804B930: .4byte gUnk_08010A5C thumb_func_start sub_0804B934 diff --git a/asm/code_0804B9F8.s b/asm/code_0804B9F8.s index 3d43e24a..1a1aafa1 100644 --- a/asm/code_0804B9F8.s +++ b/asm/code_0804B9F8.s @@ -351,7 +351,7 @@ sub_0804BC70: @ 0x0804BC70 movs r0, #5 bl sub_08050054 ldr r2, _0804BCB0 @ =gLinkEntity - ldr r1, _0804BCB4 @ =gUnk_03000BF0 + ldr r1, _0804BCB4 @ =gRoomControls ldrh r0, [r1, #6] adds r0, #0xb0 strh r0, [r2, #0x2e] @@ -371,7 +371,7 @@ _0804BCA0: b _0804BCD0 .align 2, 0 _0804BCB0: .4byte gLinkEntity -_0804BCB4: .4byte gUnk_03000BF0 +_0804BCB4: .4byte gRoomControls _0804BCB8: .4byte gUnk_08009E88 _0804BCBC: movs r0, #0x64 @@ -865,7 +865,7 @@ sub_0804BF38: @ 0x0804BF38 movs r5, #0 cmp r5, r8 bhs _0804BFE8 - ldr r7, _0804C004 @ =gUnk_03000BF0 + ldr r7, _0804C004 @ =gRoomControls movs r1, #0 mov sl, r1 movs r6, #0 @@ -940,7 +940,7 @@ _0804BFE8: pop {r4, r5, r6, r7, pc} .align 2, 0 _0804C000: .4byte gUnk_080D8E50 -_0804C004: .4byte gUnk_03000BF0 +_0804C004: .4byte gRoomControls _0804C008: .4byte 0x0000FFF4 thumb_func_start sub_0804C00C @@ -1105,7 +1105,7 @@ _0804C13A: _0804C15C: .4byte gUnk_02034350 _0804C160: .4byte gUnk_02033A90 _0804C164: - ldr r2, _0804C18C @ =gUnk_03000BF0 + ldr r2, _0804C18C @ =gRoomControls ldr r1, _0804C190 @ =gUnk_080D9338 lsls r4, r3, #0x1c lsrs r0, r4, #0x1d @@ -1126,7 +1126,7 @@ _0804C164: strb r1, [r5, #0xd] b _0804C19C .align 2, 0 -_0804C18C: .4byte gUnk_03000BF0 +_0804C18C: .4byte gRoomControls _0804C190: .4byte gUnk_080D9338 _0804C194: movs r0, #0xf @@ -1140,7 +1140,7 @@ _0804C19C: ands r0, r3 cmp r0, #0 bne _0804C1DE - ldr r2, _0804C1D0 @ =gUnk_03000BF0 + ldr r2, _0804C1D0 @ =gRoomControls ldr r1, _0804C1D4 @ =gUnk_080D9340 lsls r4, r3, #0x18 lsrs r0, r4, #0x1c @@ -1161,7 +1161,7 @@ _0804C19C: strb r1, [r5, #0xd] b _0804C1DE .align 2, 0 -_0804C1D0: .4byte gUnk_03000BF0 +_0804C1D0: .4byte gRoomControls _0804C1D4: .4byte gUnk_080D9340 _0804C1D8: movs r0, #0xf @@ -2875,7 +2875,7 @@ sub_0804CBB0: @ 0x0804CBB0 ldr r0, _0804CBD8 @ =gLinkEntity movs r2, #0x32 ldrsh r1, [r0, r2] - ldr r2, _0804CBDC @ =gUnk_03000BF0 + ldr r2, _0804CBDC @ =gRoomControls ldrh r0, [r2, #8] subs r1, r1, r0 ldrh r0, [r2, #0x20] @@ -2892,7 +2892,7 @@ _0804CBD6: pop {pc} .align 2, 0 _0804CBD8: .4byte gLinkEntity -_0804CBDC: .4byte gUnk_03000BF0 +_0804CBDC: .4byte gRoomControls _0804CBE0: .4byte gUnk_080DE4C8 thumb_func_start sub_0804CBE4 @@ -3495,7 +3495,7 @@ sub_0804CED8: @ 0x0804CED8 ldr r1, _0804CF04 @ =gUnk_0200B650 movs r0, #0 str r0, [r1] - ldr r2, _0804CF08 @ =gUnk_03000F50 + ldr r2, _0804CF08 @ =gLCDControls ldrh r1, [r2] ldr r0, _0804CF0C @ =0x0000FDFF ands r0, r1 @@ -3507,7 +3507,7 @@ sub_0804CED8: @ 0x0804CED8 b _0804CF2E .align 2, 0 _0804CF04: .4byte gUnk_0200B650 -_0804CF08: .4byte gUnk_03000F50 +_0804CF08: .4byte gLCDControls _0804CF0C: .4byte 0x0000FDFF _0804CF10: .4byte gLinkEntity _0804CF14: .4byte gUnk_080E1814 @@ -6516,7 +6516,7 @@ _0804DE5C: ldr r0, [r4] ldrh r5, [r0, #4] ldrh r6, [r0, #6] - ldr r1, _0804DEBC @ =gUnk_03000BF0 + ldr r1, _0804DEBC @ =gRoomControls movs r2, #0 movs r0, #0x15 strb r0, [r1, #4] @@ -6548,7 +6548,7 @@ _0804DE5C: .align 2, 0 _0804DEB4: .4byte gUnk_02033A90 _0804DEB8: .4byte 0x0000085C -_0804DEBC: .4byte gUnk_03000BF0 +_0804DEBC: .4byte gRoomControls _0804DEC0: .4byte gUnk_030010A0 _0804DEC4: movs r0, #6 @@ -7829,7 +7829,7 @@ _0804E860: .4byte gUnk_080F31D8 sub_0804E864: @ 0x0804E864 push {lr} ldr r2, _0804E888 @ =gLinkEntity - ldr r1, _0804E88C @ =gUnk_03000BF0 + ldr r1, _0804E88C @ =gRoomControls ldrh r0, [r1, #6] adds r0, #0x90 strh r0, [r2, #0x2e] @@ -7845,7 +7845,7 @@ sub_0804E864: @ 0x0804E864 pop {pc} .align 2, 0 _0804E888: .4byte gLinkEntity -_0804E88C: .4byte gUnk_03000BF0 +_0804E88C: .4byte gRoomControls _0804E890: .4byte gUnk_08009E58 thumb_func_start sub_0804E894 @@ -9738,7 +9738,7 @@ sub_0804F680: @ 0x0804F680 adds r2, r0, #0 cmp r2, #0 beq _0804F6A2 - ldr r0, _0804F6A4 @ =gUnk_03000BF0 + ldr r0, _0804F6A4 @ =gRoomControls ldrh r1, [r0, #6] adds r1, r1, r4 strh r1, [r2, #0x2e] @@ -9748,7 +9748,7 @@ sub_0804F680: @ 0x0804F680 _0804F6A2: pop {r4, r5, pc} .align 2, 0 -_0804F6A4: .4byte gUnk_03000BF0 +_0804F6A4: .4byte gRoomControls thumb_func_start sub_0804F6A8 sub_0804F6A8: @ 0x0804F6A8 @@ -9885,7 +9885,7 @@ sub_0804F79C: @ 0x0804F79C movs r0, #0x3f ands r0, r1 strb r0, [r2, #0x19] - ldr r1, _0804F804 @ =gUnk_03000BF0 + ldr r1, _0804F804 @ =gRoomControls movs r3, #0xdc lsls r3, r3, #1 adds r0, r3, #0 @@ -9910,7 +9910,7 @@ _0804F7D0: movs r0, #0x3f ands r0, r1 strb r0, [r2, #0x19] - ldr r1, _0804F804 @ =gUnk_03000BF0 + ldr r1, _0804F804 @ =gRoomControls movs r3, #0x8e lsls r3, r3, #2 adds r0, r3, #0 @@ -9926,7 +9926,7 @@ _0804F7D0: _0804F802: pop {r4, pc} .align 2, 0 -_0804F804: .4byte gUnk_03000BF0 +_0804F804: .4byte gRoomControls thumb_func_start sub_0804F808 sub_0804F808: @ 0x0804F808 diff --git a/asm/code_08050038.s b/asm/code_08050038.s index 8b269b7d..660fdc38 100644 --- a/asm/code_08050038.s +++ b/asm/code_08050038.s @@ -57,7 +57,7 @@ _0805007E: ldr r1, _080500E4 @ =gUnk_03000000 movs r0, #1 strb r0, [r1, #2] - ldr r2, _080500E8 @ =gUnk_03000F50 + ldr r2, _080500E8 @ =gLCDControls ldrh r0, [r2, #0x14] movs r1, #0x40 orrs r0, r1 @@ -100,7 +100,7 @@ _080500E0: pop {r4, r5, pc} .align 2, 0 _080500E4: .4byte gUnk_03000000 -_080500E8: .4byte gUnk_03000F50 +_080500E8: .4byte gLCDControls _080500EC: .4byte 0x0000FFFB _080500F0: .4byte gUnk_0200B644 @@ -296,7 +296,7 @@ sub_08050230: @ 0x08050230 movs r0, #0xf subs r2, r0, r2 _0805024A: - ldr r3, _08050264 @ =gUnk_03000F50 + ldr r3, _08050264 @ =gLCDControls ldr r1, _08050268 @ =gUnk_080FC3C4 lsls r0, r2, #1 adds r0, r0, r1 @@ -309,7 +309,7 @@ _0805024A: movs r0, #1 b _08050298 .align 2, 0 -_08050264: .4byte gUnk_03000F50 +_08050264: .4byte gLCDControls _08050268: .4byte gUnk_080FC3C4 _0805026C: ldr r1, _0805029C @ =gUnk_03000000 @@ -440,7 +440,7 @@ sub_08050318: @ 0x08050318 beq _08050368 bl sub_080A3268 _08050368: - ldr r1, _08050380 @ =gUnk_03000F50 + ldr r1, _08050380 @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] add sp, #0x18 @@ -449,7 +449,7 @@ _08050368: _08050374: .4byte gUnk_080FC844 _08050378: .4byte gUnk_020227E8 _0805037C: .4byte gUnk_080FC85C -_08050380: .4byte gUnk_03000F50 +_08050380: .4byte gLCDControls thumb_func_start sub_08050384 sub_08050384: @ 0x08050384 @@ -461,25 +461,25 @@ sub_08050384: @ 0x08050384 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 - ldr r1, _080503A4 @ =gUnk_03000F50 + ldr r1, _080503A4 @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] pop {pc} .align 2, 0 _080503A0: .4byte gUnk_02034CB0 -_080503A4: .4byte gUnk_03000F50 +_080503A4: .4byte gLCDControls thumb_func_start sub_080503A8 sub_080503A8: @ 0x080503A8 push {lr} bl sub_0801D7EC - ldr r1, _080503B8 @ =gUnk_03000F50 + ldr r1, _080503B8 @ =gLCDControls movs r0, #1 strh r0, [r1, #0x1a] strh r0, [r1, #0x26] pop {pc} .align 2, 0 -_080503B8: .4byte gUnk_03000F50 +_080503B8: .4byte gLCDControls thumb_func_start sub_080503BC sub_080503BC: @ 0x080503BC @@ -574,7 +574,7 @@ sub_08050450: @ 0x08050450 beq _0805048A movs r0, #0 strb r1, [r4, #2] - ldr r1, _080504E4 @ =gUnk_03000F50 + ldr r1, _080504E4 @ =gLCDControls strh r0, [r1, #0xa] strh r0, [r1, #0xc] strh r0, [r1, #0x16] @@ -618,7 +618,7 @@ _080504D4: _080504D8: .4byte gUnk_080FC8A4 _080504DC: .4byte gUnk_03001000 _080504E0: .4byte gUnk_02032EC0 -_080504E4: .4byte gUnk_03000F50 +_080504E4: .4byte gLCDControls _080504E8: .4byte gUnk_02000080 _080504EC: .4byte gUnk_080FC8B0 _080504F0: .4byte gUnk_02019EE0 @@ -691,7 +691,7 @@ _08050586: ldr r0, _080505EC @ =gUnk_080FC8D0 bl sub_080A70AC bl sub_080507FC - ldr r1, _080505F0 @ =gUnk_03000F50 + ldr r1, _080505F0 @ =gLCDControls ldrh r2, [r1] movs r3, #0xf8 lsls r3, r3, #5 @@ -724,7 +724,7 @@ _080505E0: .4byte gUnk_02019EE0 _080505E4: .4byte 0x00000E28 _080505E8: .4byte gUnk_02032EC0 _080505EC: .4byte gUnk_080FC8D0 -_080505F0: .4byte gUnk_03000F50 +_080505F0: .4byte gLCDControls _080505F4: .4byte 0x00001E0B _080505F8: .4byte 0x00000844 _080505FC: .4byte 0x00000A0F @@ -1400,14 +1400,14 @@ sub_08050AFC: @ 0x08050AFC adds r0, r5, r1 bl sub_08050B3C _08050B28: - ldr r1, _08050B38 @ =gUnk_03000F50 + ldr r1, _08050B38 @ =gLCDControls movs r0, #1 strh r0, [r1, #0x1a] pop {r4, r5, pc} .align 2, 0 _08050B30: .4byte gUnk_02021F30 _08050B34: .4byte gUnk_02019EE0 -_08050B38: .4byte gUnk_03000F50 +_08050B38: .4byte gLCDControls thumb_func_start sub_08050B3C sub_08050B3C: @ 0x08050B3C @@ -2100,7 +2100,7 @@ sub_08051090: @ 0x08051090 bl sub_08050790 bl sub_0805070C bl sub_08051458 - ldr r1, _080510B4 @ =gUnk_03000F50 + ldr r1, _080510B4 @ =gLCDControls movs r0, #0xff strh r0, [r1, #0x18] strh r0, [r1, #0x24] @@ -2108,7 +2108,7 @@ sub_08051090: @ 0x08051090 bl sub_080A7114 pop {pc} .align 2, 0 -_080510B4: .4byte gUnk_03000F50 +_080510B4: .4byte gLCDControls thumb_func_start sub_080510B8 sub_080510B8: @ 0x080510B8 @@ -3338,7 +3338,7 @@ sub_08051A14: @ 0x08051A14 movs r0, #1 bl sub_0801CFA8 bl sub_0806FD8C - ldr r2, _08051A80 @ =gUnk_03000BF0 + ldr r2, _08051A80 @ =gRoomControls ldr r1, _08051A84 @ =gUnk_030010A0 ldrb r0, [r1, #0xc] strb r0, [r2, #4] @@ -3357,7 +3357,7 @@ _08051A70: .4byte gUnk_03000FD0 _08051A74: .4byte gUnk_03000000 _08051A78: .4byte 0x00000B74 _08051A7C: .4byte gUnk_02032EC0 -_08051A80: .4byte gUnk_03000BF0 +_08051A80: .4byte gRoomControls _08051A84: .4byte gUnk_030010A0 _08051A88: .4byte gUnk_02024490 _08051A8C: .4byte gUnk_03001000 @@ -3381,7 +3381,7 @@ _08051AA8: .4byte gUnk_03001000 sub_08051AAC: @ 0x08051AAC push {lr} bl sub_0805E5A8 - ldr r1, _08051AE4 @ =gUnk_03000F50 + ldr r1, _08051AE4 @ =gLCDControls movs r2, #0 movs r0, #0xba lsls r0, r0, #5 @@ -3401,7 +3401,7 @@ sub_08051AAC: @ 0x08051AAC bl sub_0801855C pop {pc} .align 2, 0 -_08051AE4: .4byte gUnk_03000F50 +_08051AE4: .4byte gLCDControls _08051AE8: .4byte gUnk_03001000 _08051AEC: .4byte gUnk_030010A0 @@ -3427,7 +3427,7 @@ _08051B02: ldrb r0, [r0] cmp r0, #0 bne _08051BAE - ldr r0, _08051BB4 @ =gUnk_03000BF0 + ldr r0, _08051BB4 @ =gRoomControls ldrh r0, [r0] cmp r0, #0 bne _08051BAE @@ -3484,7 +3484,7 @@ _08051BAE: pop {r4, r5, pc} .align 2, 0 _08051BB0: .4byte gUnk_03000FD0 -_08051BB4: .4byte gUnk_03000BF0 +_08051BB4: .4byte gRoomControls _08051BB8: .4byte gUnk_02033A90 _08051BBC: .4byte 0x00000864 _08051BC0: .4byte 0x800B0000 @@ -3506,7 +3506,7 @@ sub_08051BD0: @ 0x08051BD0 ldrb r0, [r0, #4] cmp r0, #2 bne _08051C9C - ldr r0, _08051C60 @ =gUnk_02000050 + ldr r0, _08051C60 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -3537,7 +3537,7 @@ _08051C06: bl sub_080528B4 bl sub_080185F8 bl sub_080AD918 - ldr r0, _08051C68 @ =gUnk_03000BF0 + ldr r0, _08051C68 @ =gRoomControls ldrh r2, [r0] cmp r2, #1 beq _08051C6C @@ -3546,9 +3546,9 @@ _08051C06: b _08051C9C .align 2, 0 _08051C5C: .4byte gUnk_03001000 -_08051C60: .4byte gUnk_02000050 +_08051C60: .4byte gTextBox _08051C64: .4byte gUnk_03003DC0 -_08051C68: .4byte gUnk_03000BF0 +_08051C68: .4byte gRoomControls _08051C6C: ldr r0, _08051C80 @ =gUnk_03003F80 movs r1, #0x17 @@ -3696,7 +3696,7 @@ _08051DC8: .4byte gUnk_02034350 thumb_func_start sub_08051DCC sub_08051DCC: @ 0x08051DCC push {r4, lr} - ldr r1, _08051DFC @ =gUnk_03000BF0 + ldr r1, _08051DFC @ =gRoomControls ldr r4, _08051E00 @ =gUnk_030010A0 ldrb r0, [r4, #0xc] strb r0, [r1, #4] @@ -3713,7 +3713,7 @@ sub_08051DCC: @ 0x08051DCC bl sub_0805283C pop {r4, pc} .align 2, 0 -_08051DFC: .4byte gUnk_03000BF0 +_08051DFC: .4byte gRoomControls _08051E00: .4byte gUnk_030010A0 thumb_func_start sub_08051E04 @@ -3794,7 +3794,7 @@ sub_08051E84: @ 0x08051E84 lsls r4, r4, #3 ldr r0, _08051EF4 @ =gUnk_080FCA20 adds r4, r4, r0 - ldr r5, _08051EF8 @ =gUnk_03000BF0 + ldr r5, _08051EF8 @ =gRoomControls ldrb r0, [r4] strb r0, [r5, #4] ldrb r0, [r4, #1] @@ -3839,7 +3839,7 @@ sub_08051E84: @ 0x08051E84 .align 2, 0 _08051EF0: .4byte gUnk_02032EC0 _08051EF4: .4byte gUnk_080FCA20 -_08051EF8: .4byte gUnk_03000BF0 +_08051EF8: .4byte gRoomControls _08051EFC: .4byte gUnk_02033A90 _08051F00: .4byte gUnk_02000080 @@ -3920,13 +3920,13 @@ sub_08051F9C: @ 0x08051F9C push {r6} adds r6, r2, #0 mov r8, r3 - ldr r5, _08051FE0 @ =gUnk_03000F50 + ldr r5, _08051FE0 @ =gLCDControls ldrh r2, [r5] movs r4, #0xc0 lsls r4, r4, #7 ands r4, r2 bl sub_08052FF4 - ldr r1, _08051FE4 @ =gUnk_03000BF0 + ldr r1, _08051FE4 @ =gRoomControls ldrh r0, [r1, #6] adds r0, r0, r6 movs r6, #0 @@ -3947,8 +3947,8 @@ sub_08051F9C: @ 0x08051F9C mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 -_08051FE0: .4byte gUnk_03000F50 -_08051FE4: .4byte gUnk_03000BF0 +_08051FE0: .4byte gLCDControls +_08051FE4: .4byte gRoomControls _08051FE8: .4byte gUnk_02000070 _08051FEC: .4byte gUnk_0200B644 @@ -4003,7 +4003,7 @@ sub_08052010: @ 0x08052010 ldr r0, _08052084 @ =gUnk_02000080 movs r1, #0x30 bl sub_0801D630 - ldr r1, _08052088 @ =gUnk_03000F50 + ldr r1, _08052088 @ =gLCDControls ldrh r2, [r1] movs r3, #0x80 lsls r3, r3, #5 @@ -4022,7 +4022,7 @@ sub_08052010: @ 0x08052010 _0805207C: .4byte gUnk_02021F30 _08052080: .4byte gUnk_020344B0 _08052084: .4byte gUnk_02000080 -_08052088: .4byte gUnk_03000F50 +_08052088: .4byte gLCDControls _0805208C: .4byte 0x00001C01 _08052090: .4byte 0x00001D05 @@ -4130,7 +4130,7 @@ _08052158: movs r0, #0 movs r1, #0 bl sub_08052418 - ldr r2, _08052190 @ =gUnk_03000F50 + ldr r2, _08052190 @ =gLCDControls ldrh r0, [r2] movs r3, #0xc0 lsls r3, r3, #3 @@ -4144,7 +4144,7 @@ _08052158: bl sub_08050054 b _0805219C .align 2, 0 -_08052190: .4byte gUnk_03000F50 +_08052190: .4byte gLCDControls _08052194: .4byte 0x0000FFFF _08052198: subs r0, #1 @@ -4306,7 +4306,7 @@ _080522BC: .align 2, 0 _080522D0: .4byte gUnk_03000FF0 _080522D4: - ldr r2, _080522EC @ =gUnk_03000F50 + ldr r2, _080522EC @ =gLCDControls ldrh r1, [r2] ldr r0, _080522F0 @ =0x0000FDFF ands r0, r1 @@ -4317,7 +4317,7 @@ _080522D4: _080522E8: pop {r4, pc} .align 2, 0 -_080522EC: .4byte gUnk_03000F50 +_080522EC: .4byte gLCDControls _080522F0: .4byte 0x0000FDFF thumb_func_start sub_080522F4 @@ -4345,7 +4345,7 @@ sub_080522F4: @ 0x080522F4 .align 2, 0 _08052320: .4byte gUnk_02000080 _08052324: - ldr r2, _08052340 @ =gUnk_03000F50 + ldr r2, _08052340 @ =gLCDControls ldrh r1, [r2] movs r4, #0x80 lsls r4, r4, #2 @@ -4359,7 +4359,7 @@ _08052324: strh r0, [r3, #8] b _080523CC .align 2, 0 -_08052340: .4byte gUnk_03000F50 +_08052340: .4byte gLCDControls _08052344: ldrb r4, [r3, #3] ldr r0, _08052358 @ =gUnk_03000FF0 @@ -4468,70 +4468,3 @@ _08052408: .4byte gUnk_03001010 _0805240C: .4byte gUnk_02000080 _08052410: .4byte gUnk_080FCA84 _08052414: .4byte 0x000001FD - - thumb_func_start sub_08052418 -sub_08052418: @ 0x08052418 - push {r4, r5, r6, lr} - sub sp, #0x18 - adds r6, r0, #0 - adds r4, r1, #0 - ldr r0, _08052494 @ =gUnk_02021F30 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r0, _08052498 @ =gUnk_020227E8 - movs r1, #0xf - str r1, [r0] - str r1, [r0, #8] - str r1, [r0, #0x10] - str r1, [r0, #0x18] - lsls r4, r4, #3 - adds r0, #1 - adds r4, r4, r0 - movs r5, #1 - strb r5, [r4] - ldr r4, _0805249C @ =gUnk_080FCA8C - adds r0, r4, #0 - mov r1, sp - movs r2, #0x18 - bl sub_0801D66C - lsls r2, r6, #1 - adds r2, r2, r6 - lsls r2, r2, #2 - ldr r0, _080524A0 @ =gUnk_080FCAA4 - adds r2, r2, r0 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #7] - adds r1, r2, r1 - ldrb r0, [r2, #8] - lsls r0, r0, #5 - ldrb r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, [r4] - adds r1, r1, r0 - str r1, [sp] - mov r4, sp - ldrb r0, [r2, #9] - adds r1, r5, #0 - ands r1, r0 - ldrb r3, [r4, #0x13] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x13] - ldrh r0, [r2, #0xa] - mov r1, sp - bl sub_0805F46C - ldr r0, _080524A4 @ =gUnk_03000F50 - strh r5, [r0, #0x1a] - add sp, #0x18 - pop {r4, r5, r6, pc} - .align 2, 0 -_08052494: .4byte gUnk_02021F30 -_08052498: .4byte gUnk_020227E8 -_0805249C: .4byte gUnk_080FCA8C -_080524A0: .4byte gUnk_080FCAA4 -_080524A4: .4byte gUnk_03000F50 \ No newline at end of file diff --git a/asm/code_08052620.s b/asm/code_08052620.s deleted file mode 100644 index 908a5884..00000000 --- a/asm/code_08052620.s +++ /dev/null @@ -1,35 +0,0 @@ - .include "asm/macros.inc" - .text - .syntax unified - - thumb_func_start sub_08052620 -sub_08052620: @ 0x08052620 - push {lr} - movs r1, #0 - ldr r0, _08052634 @ =gUnk_02033A90 - ldrb r0, [r0] - cmp r0, #0x81 - bne _0805262E - movs r1, #1 -_0805262E: - adds r0, r1, #0 - pop {pc} - .align 2, 0 -_08052634: .4byte gUnk_02033A90 - - thumb_func_start sub_08052638 -sub_08052638: @ 0x08052638 - push {lr} - movs r2, #0 - ldr r1, _08052650 @ =gUnk_08127D30 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x81 - bne _0805264A - movs r2, #1 -_0805264A: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_08052650: .4byte gUnk_08127D30 diff --git a/asm/code_080526CC.s b/asm/code_080526CC.s index 01eb3e6c..6dcbdb46 100644 --- a/asm/code_080526CC.s +++ b/asm/code_080526CC.s @@ -206,7 +206,7 @@ sub_0805283C: @ 0x0805283C ldr r1, _0805286C @ =0x00000864 adds r4, r0, r1 ldr r1, _08052870 @ =gUnk_08127D30 - ldr r0, _08052874 @ =gUnk_03000BF0 + ldr r0, _08052874 @ =gRoomControls ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 @@ -226,7 +226,7 @@ _08052864: _08052868: .4byte gUnk_02033A90 _0805286C: .4byte 0x00000864 _08052870: .4byte gUnk_08127D30 -_08052874: .4byte gUnk_03000BF0 +_08052874: .4byte gRoomControls thumb_func_start sub_08052878 sub_08052878: @ 0x08052878 @@ -473,7 +473,7 @@ sub_08052A4C: @ 0x08052A4C movs r0, #1 strb r0, [r2, #8] ldr r5, _08052A8C @ =gLinkEntity - ldr r3, _08052A90 @ =gUnk_03000BF0 + ldr r3, _08052A90 @ =gRoomControls ldrh r0, [r5, #0x2e] ldrh r1, [r3, #6] subs r0, r0, r1 @@ -500,7 +500,7 @@ sub_08052A4C: @ 0x08052A4C .align 2, 0 _08052A88: .4byte gUnk_030010A0 _08052A8C: .4byte gLinkEntity -_08052A90: .4byte gUnk_03000BF0 +_08052A90: .4byte gRoomControls thumb_func_start sub_08052A94 sub_08052A94: @ 0x08052A94 @@ -655,7 +655,7 @@ sub_08052BB8: @ 0x08052BB8 ldr r0, _08052BE4 @ =gLinkEntity movs r2, #0x32 ldrsh r1, [r0, r2] - ldr r0, _08052BE8 @ =gUnk_03000BF0 + ldr r0, _08052BE8 @ =gRoomControls movs r2, #0xc ldrsh r0, [r0, r2] subs r1, r1, r0 @@ -667,7 +667,7 @@ sub_08052BB8: @ 0x08052BB8 .align 2, 0 _08052BE0: .4byte gUnk_030010A0 _08052BE4: .4byte gLinkEntity -_08052BE8: .4byte gUnk_03000BF0 +_08052BE8: .4byte gRoomControls _08052BEC: ldrb r2, [r2] _08052BEE: @@ -819,7 +819,7 @@ sub_08052CFC: @ 0x08052CFC ldr r1, _08052D48 @ =0x00000894 adds r0, r4, #0 bl sub_0801D630 - ldr r0, _08052D4C @ =gUnk_03000BF0 + ldr r0, _08052D4C @ =gRoomControls ldrb r1, [r0, #4] lsls r1, r1, #2 ldr r0, _08052D50 @ =gUnk_08127D30 @@ -849,7 +849,7 @@ sub_08052CFC: @ 0x08052CFC .align 2, 0 _08052D44: .4byte gUnk_02033A90 _08052D48: .4byte 0x00000894 -_08052D4C: .4byte gUnk_03000BF0 +_08052D4C: .4byte gRoomControls _08052D50: .4byte gUnk_08127D30 _08052D54: .4byte gUnk_0811E454 @@ -899,7 +899,7 @@ _08052DA4: .4byte 0x0000088C sub_08052DA8: @ 0x08052DA8 push {r4, r5, r6, r7, lr} ldr r1, _08052DF8 @ =gUnk_0811E214 - ldr r0, _08052DFC @ =gUnk_03000BF0 + ldr r0, _08052DFC @ =gRoomControls ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 @@ -915,7 +915,7 @@ _08052DC4: ldrh r0, [r4, #8] cmp r0, r6 beq _08052DD8 - ldr r0, _08052DFC @ =gUnk_03000BF0 + ldr r0, _08052DFC @ =gRoomControls ldrb r2, [r0, #4] adds r0, r7, #0 adds r1, r4, #0 @@ -939,7 +939,7 @@ _08052DE8: pop {r4, r5, r6, r7, pc} .align 2, 0 _08052DF8: .4byte gUnk_0811E214 -_08052DFC: .4byte gUnk_03000BF0 +_08052DFC: .4byte gRoomControls _08052E00: .4byte gUnk_02033ACC _08052E04: .4byte 0x0000FFFF _08052E08: .4byte gUnk_02033A90 @@ -1007,14 +1007,14 @@ _08052E88: .4byte gUnk_080D50FC thumb_func_start sub_08052E8C sub_08052E8C: @ 0x08052E8C - ldr r0, _08052E98 @ =gUnk_03000BF0 + ldr r0, _08052E98 @ =gRoomControls ldrb r0, [r0, #5] lsls r0, r0, #5 ldr r1, _08052E9C @ =gUnk_02033ACC adds r0, r0, r1 bx lr .align 2, 0 -_08052E98: .4byte gUnk_03000BF0 +_08052E98: .4byte gRoomControls _08052E9C: .4byte gUnk_02033ACC thumb_func_start sub_08052EA0 @@ -1033,7 +1033,7 @@ sub_08052EA0: @ 0x08052EA0 strh r0, [r4, #0xc] ldr r2, _08052EE8 @ =gUnk_02033A90 ldr r1, _08052EEC @ =gUnk_08127D30 - ldr r0, _08052EF0 @ =gUnk_03000BF0 + ldr r0, _08052EF0 @ =gRoomControls ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 @@ -1050,14 +1050,14 @@ sub_08052EA0: @ 0x08052EA0 _08052EE4: .4byte gUnk_02034350 _08052EE8: .4byte gUnk_02033A90 _08052EEC: .4byte gUnk_08127D30 -_08052EF0: .4byte gUnk_03000BF0 +_08052EF0: .4byte gRoomControls thumb_func_start sub_08052EF4 sub_08052EF4: @ 0x08052EF4 push {lr} cmp r0, #0 bge _08052EFE - ldr r0, _08052F10 @ =gUnk_03000BF0 + ldr r0, _08052F10 @ =gRoomControls ldrb r0, [r0, #4] _08052EFE: lsls r0, r0, #2 @@ -1070,7 +1070,7 @@ _08052EFE: ldrh r0, [r0] pop {pc} .align 2, 0 -_08052F10: .4byte gUnk_03000BF0 +_08052F10: .4byte gRoomControls _08052F14: .4byte gUnk_08127D30 _08052F18: .4byte gUnk_0811E454 @@ -1089,7 +1089,7 @@ sub_08052F1C: @ 0x08052F1C beq _08052FCC movs r5, #0 movs r4, #0 - ldr r0, _08052F54 @ =gUnk_03000BF0 + ldr r0, _08052F54 @ =gRoomControls ldrb r1, [r0, #0x10] adds r3, r0, #0 cmp r1, #1 @@ -1102,7 +1102,7 @@ sub_08052F1C: @ 0x08052F1C .align 2, 0 _08052F4C: .4byte gUnk_02033A90 _08052F50: .4byte gUnk_02034350 -_08052F54: .4byte gUnk_03000BF0 +_08052F54: .4byte gRoomControls _08052F58: cmp r1, #2 beq _08052F62 @@ -1179,14 +1179,14 @@ _08052FD4: .4byte gUnk_03003D70 sub_08052FD8: @ 0x08052FD8 push {lr} bl sub_08052FF4 - ldr r1, _08052FF0 @ =gUnk_03000BF0 + ldr r1, _08052FF0 @ =gRoomControls movs r0, #0 str r0, [r1, #0x30] bl sub_0807C860 bl sub_0807C740 pop {pc} .align 2, 0 -_08052FF0: .4byte gUnk_03000BF0 +_08052FF0: .4byte gRoomControls thumb_func_start sub_08052FF4 sub_08052FF4: @ 0x08052FF4 @@ -1195,10 +1195,10 @@ sub_08052FF4: @ 0x08052FF4 adds r4, r1, #0 bl sub_08080668 bl sub_080197AC - ldr r0, _0805306C @ =gUnk_03000BF0 + ldr r0, _0805306C @ =gRoomControls strb r6, [r0, #4] strb r4, [r0, #5] - ldr r1, _08053070 @ =gUnk_03000F50 + ldr r1, _08053070 @ =gLCDControls movs r0, #0xba lsls r0, r0, #5 strh r0, [r1] @@ -1247,8 +1247,8 @@ sub_08052FF4: @ 0x08052FF4 str r0, [r5, #0x14] pop {r4, r5, r6, pc} .align 2, 0 -_0805306C: .4byte gUnk_03000BF0 -_08053070: .4byte gUnk_03000F50 +_0805306C: .4byte gRoomControls +_08053070: .4byte gLCDControls _08053074: .4byte gUnk_020342CC _08053078: .4byte gUnk_0811E214 _0805307C: .4byte gUnk_0810246C @@ -1464,7 +1464,7 @@ sub_080531F8: @ 0x080531F8 beq _08053238 adds r1, r5, #0 subs r1, #0xc - ldr r2, _0805324C @ =gUnk_03000BF0 + ldr r2, _0805324C @ =gRoomControls ldrb r0, [r2, #4] strb r0, [r1, #0x16] ldrb r0, [r2, #5] @@ -1480,7 +1480,7 @@ _0805323C: .4byte gUnk_03003F80 _08053240: .4byte gLinkEntity _08053244: .4byte gUnk_030010AC _08053248: .4byte gUnk_02002AC8 -_0805324C: .4byte gUnk_03000BF0 +_0805324C: .4byte gRoomControls thumb_func_start sub_08053250 sub_08053250: @ 0x08053250 @@ -1489,7 +1489,7 @@ sub_08053250: @ 0x08053250 movs r1, #0 strb r1, [r0, #0xf] ldr r3, _08053290 @ =gLinkEntity - ldr r4, _08053294 @ =gUnk_03000BF0 + ldr r4, _08053294 @ =gRoomControls ldrh r1, [r3, #0x2e] ldrh r2, [r4, #6] subs r1, r1, r2 @@ -1515,7 +1515,7 @@ sub_08053250: @ 0x08053250 .align 2, 0 _0805328C: .4byte gUnk_030010A0 _08053290: .4byte gLinkEntity -_08053294: .4byte gUnk_03000BF0 +_08053294: .4byte gRoomControls _08053298: .4byte gUnk_02002AC8 thumb_func_start sub_0805329C @@ -1524,7 +1524,7 @@ sub_0805329C: @ 0x0805329C bl sub_08053144 cmp r0, #0 beq _080532E0 - ldr r0, _080532B8 @ =gUnk_03000BF0 + ldr r0, _080532B8 @ =gRoomControls ldrb r0, [r0, #4] cmp r0, #0x48 beq _080532C2 @@ -1534,7 +1534,7 @@ sub_0805329C: @ 0x0805329C beq _080532D6 b _080532DC .align 2, 0 -_080532B8: .4byte gUnk_03000BF0 +_080532B8: .4byte gRoomControls _080532BC: cmp r0, #0x50 beq _080532D0 @@ -1612,7 +1612,7 @@ sub_08053320: @ 0x08053320 bl sub_0801D7EC movs r0, #0x17 bl sub_0801D7EC - ldr r0, _0805338C @ =gUnk_03000BF0 + ldr r0, _0805338C @ =gRoomControls ldrb r0, [r0, #4] cmp r0, #4 bne _08053362 @@ -1633,7 +1633,7 @@ _0805337C: .4byte gUnk_02034CB0 _08053380: .4byte gUnk_02021F30 _08053384: .4byte gUnk_020344B0 _08053388: .4byte gUnk_02001A40 -_0805338C: .4byte gUnk_03000BF0 +_0805338C: .4byte gRoomControls thumb_func_start sub_08053390 sub_08053390: @ 0x08053390 @@ -1814,7 +1814,7 @@ _080534E0: .4byte 0x80100000 sub_080534E4: @ 0x080534E4 push {lr} adds r1, r0, #0 - ldr r0, _080534FC @ =gUnk_03000BF0 + ldr r0, _080534FC @ =gRoomControls ldrb r0, [r0, #4] cmp r0, #0x1a beq _080534FA @@ -1826,7 +1826,7 @@ sub_080534E4: @ 0x080534E4 _080534FA: pop {pc} .align 2, 0 -_080534FC: .4byte gUnk_03000BF0 +_080534FC: .4byte gRoomControls thumb_func_start sub_08053500 sub_08053500: @ 0x08053500 @@ -1928,7 +1928,7 @@ sub_080535AC: @ 0x080535AC strb r1, [r0, #6] ldr r0, _080535E4 @ =gUnk_02000070 strb r1, [r0] - ldr r2, _080535E8 @ =gUnk_03000F50 + ldr r2, _080535E8 @ =gLCDControls ldrh r1, [r2] ldr r0, _080535EC @ =0x0000FEFF ands r0, r1 @@ -1943,7 +1943,7 @@ sub_080535AC: @ 0x080535AC _080535DC: .4byte gUnk_02000080 _080535E0: .4byte gUnk_02032EC0 _080535E4: .4byte gUnk_02000070 -_080535E8: .4byte gUnk_03000F50 +_080535E8: .4byte gLCDControls _080535EC: .4byte 0x0000FEFF _080535F0: .4byte gUnk_080FCB94 @@ -2006,7 +2006,7 @@ sub_08053648: @ 0x08053648 adds r2, r0, #0 cmp r2, #0 beq _08053674 - ldr r0, _08053678 @ =gUnk_03000BF0 + ldr r0, _08053678 @ =gRoomControls movs r3, #0xb4 lsls r3, r3, #2 adds r1, r3, #0 @@ -2022,7 +2022,7 @@ sub_08053648: @ 0x08053648 _08053674: pop {pc} .align 2, 0 -_08053678: .4byte gUnk_03000BF0 +_08053678: .4byte gRoomControls thumb_func_start sub_0805367C sub_0805367C: @ 0x0805367C @@ -2160,14 +2160,14 @@ sub_08053758: @ 0x08053758 str r2, [r0] ldr r0, _080537E8 @ =gUnk_0200B650 str r2, [r0] - ldr r0, _080537EC @ =gUnk_03000BF0 + ldr r0, _080537EC @ =gRoomControls str r2, [r0, #0x30] strh r2, [r0, #0xc] strh r2, [r0, #0xa] bl sub_0801B170 movs r0, #0 bl sub_0801DA90 - ldr r2, _080537F0 @ =gUnk_03000F50 + ldr r2, _080537F0 @ =gLCDControls movs r0, #0x99 lsls r0, r0, #6 strh r0, [r2] @@ -2208,8 +2208,8 @@ _080537DC: .4byte gUnk_02000080 _080537E0: .4byte gUnk_02032EC0 _080537E4: .4byte gUnk_02025EB0 _080537E8: .4byte gUnk_0200B650 -_080537EC: .4byte gUnk_03000BF0 -_080537F0: .4byte gUnk_03000F50 +_080537EC: .4byte gRoomControls +_080537F0: .4byte gLCDControls _080537F4: .4byte 0x00002244 _080537F8: .4byte 0x00001C4E _080537FC: .4byte 0x00001DC1 @@ -2255,7 +2255,7 @@ sub_08053800: @ 0x08053800 ldr r1, [r4] adds r0, r5, #0 bl sub_0805F46C - ldr r2, _08053890 @ =gUnk_03000F50 + ldr r2, _08053890 @ =gLCDControls movs r0, #1 strh r0, [r2, #0x1a] adds r1, r2, #0 @@ -2280,7 +2280,7 @@ _08053880: .4byte gUnk_02000080 _08053884: .4byte gUnk_080FCCB4 _08053888: .4byte gUnk_02021F30 _0805388C: .4byte 0x00000F01 -_08053890: .4byte gUnk_03000F50 +_08053890: .4byte gLCDControls thumb_func_start sub_08053894 sub_08053894: @ 0x08053894 @@ -2316,7 +2316,7 @@ _080538BC: adds r1, #1 strb r1, [r4, #7] lsls r1, r1, #0x18 - ldr r3, _08053900 @ =gUnk_03000F50 + ldr r3, _08053900 @ =gLCDControls lsrs r2, r1, #0x10 lsrs r1, r1, #0x19 movs r0, #0x10 @@ -2338,7 +2338,7 @@ _080538F8: pop {r4, pc} .align 2, 0 _080538FC: .4byte gUnk_030010A0 -_08053900: .4byte gUnk_03000F50 +_08053900: .4byte gLCDControls thumb_func_start sub_08053904 sub_08053904: @ 0x08053904 @@ -2374,7 +2374,7 @@ _0805392C: adds r1, #1 strb r1, [r4, #7] lsls r1, r1, #0x18 - ldr r3, _08053970 @ =gUnk_03000F50 + ldr r3, _08053970 @ =gLCDControls lsrs r2, r1, #0x10 lsrs r1, r1, #0x19 movs r0, #0x10 @@ -2396,7 +2396,7 @@ _08053968: pop {r4, pc} .align 2, 0 _0805396C: .4byte gUnk_030010A0 -_08053970: .4byte gUnk_03000F50 +_08053970: .4byte gLCDControls thumb_func_start sub_08053974 sub_08053974: @ 0x08053974 @@ -2494,8 +2494,8 @@ sub_08053A1C: @ 0x08053A1C movs r0, #8 strh r0, [r1, #8] ldr r0, _08053A54 @ =0x00000F07 - bl sub_08056378 - ldr r1, _08053A58 @ =gUnk_02000050 + bl TextboxTryNoOverlap + ldr r1, _08053A58 @ =gTextBox movs r0, #1 strb r0, [r1, #6] strb r4, [r1, #7] @@ -2507,12 +2507,12 @@ _08053A4E: .align 2, 0 _08053A50: .4byte gUnk_02000080 _08053A54: .4byte 0x00000F07 -_08053A58: .4byte gUnk_02000050 +_08053A58: .4byte gTextBox thumb_func_start sub_08053A5C sub_08053A5C: @ 0x08053A5C push {lr} - ldr r0, _08053A88 @ =gUnk_02000050 + ldr r0, _08053A88 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -2534,7 +2534,7 @@ sub_08053A5C: @ 0x08053A5C _08053A86: pop {pc} .align 2, 0 -_08053A88: .4byte gUnk_02000050 +_08053A88: .4byte gTextBox _08053A8C: .4byte gUnk_02000080 thumb_func_start sub_08053A90 @@ -2851,7 +2851,7 @@ sub_08053CC8: @ 0x08053CC8 bl LoadRoomEntityList movs r5, #1 strb r5, [r6, #6] - ldr r2, _08053D28 @ =gUnk_03000F50 + ldr r2, _08053D28 @ =gLCDControls ldrh r1, [r2] ldr r0, _08053D2C @ =0x0000FEFF ands r0, r1 @@ -2870,7 +2870,7 @@ _08053D1E: .align 2, 0 _08053D20: .4byte gUnk_02000080 _08053D24: .4byte gUnk_080FCF04 -_08053D28: .4byte gUnk_03000F50 +_08053D28: .4byte gLCDControls _08053D2C: .4byte 0x0000FEFF _08053D30: .4byte gUnk_02000070 @@ -2957,7 +2957,7 @@ sub_08053DB4: @ 0x08053DB4 ldr r1, _08053E28 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] - ldr r1, _08053E2C @ =gUnk_03000BF0 + ldr r1, _08053E2C @ =gRoomControls movs r0, #6 ldrsb r0, [r4, r0] ldrh r2, [r1, #0xa] @@ -2993,7 +2993,7 @@ _08053E1C: _08053E20: .4byte gUnk_03000FD0 _08053E24: .4byte gUnk_02000080 _08053E28: .4byte gUnk_02000070 -_08053E2C: .4byte gUnk_03000BF0 +_08053E2C: .4byte gRoomControls thumb_func_start sub_08053E30 sub_08053E30: @ 0x08053E30 @@ -3048,7 +3048,7 @@ sub_08053E74: @ 0x08053E74 ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] - ldr r2, _08053EB8 @ =gUnk_03000F50 + ldr r2, _08053EB8 @ =gLCDControls ldrh r1, [r2] ldr r0, _08053EBC @ =0x0000FEFF ands r0, r1 @@ -3065,7 +3065,7 @@ sub_08053E74: @ 0x08053E74 .align 2, 0 _08053EB0: .4byte gUnk_080FCFB8 _08053EB4: .4byte gUnk_02000080 -_08053EB8: .4byte gUnk_03000F50 +_08053EB8: .4byte gLCDControls _08053EBC: .4byte 0x0000FEFF _08053EC0: .4byte gUnk_02000070 @@ -3135,7 +3135,7 @@ sub_08053F20: @ 0x08053F20 ldr r1, _08053F80 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] - ldr r1, _08053F84 @ =gUnk_03000BF0 + ldr r1, _08053F84 @ =gRoomControls movs r0, #0xa ldrsb r0, [r4, r0] ldrh r2, [r1, #0xa] @@ -3163,7 +3163,7 @@ _08053F74: _08053F78: .4byte gUnk_03000FD0 _08053F7C: .4byte gUnk_02000080 _08053F80: .4byte gUnk_02000070 -_08053F84: .4byte gUnk_03000BF0 +_08053F84: .4byte gRoomControls thumb_func_start sub_08053F88 sub_08053F88: @ 0x08053F88 @@ -3546,7 +3546,7 @@ sub_08054288: @ 0x08054288 lsls r0, r0, #3 adds r0, r0, r1 ldrh r0, [r0, #6] - bl sub_08056378 + bl TextboxTryNoOverlap pop {pc} .align 2, 0 _08054298: .4byte gUnk_080FD5B4 @@ -4490,7 +4490,7 @@ sub_08054974: @ 0x08054974 ldrb r0, [r6, #2] ldrb r1, [r6, #3] bl sub_0804B0C0 - ldr r4, _080549B4 @ =gUnk_03000BF0 + ldr r4, _080549B4 @ =gRoomControls ldrb r0, [r6, #2] strb r0, [r4, #4] ldrb r0, [r6, #3] @@ -4508,7 +4508,7 @@ sub_08054974: @ 0x08054974 b _080549CE .align 2, 0 _080549B0: .4byte gUnk_080FE320 -_080549B4: .4byte gUnk_03000BF0 +_080549B4: .4byte gRoomControls _080549B8: .4byte gUnk_02033A90 _080549BC: ldrb r0, [r6, #2] @@ -4519,12 +4519,12 @@ _080549BC: movs r0, #1 strb r0, [r1] _080549CE: - ldr r2, _08054A04 @ =gUnk_03000F50 + ldr r2, _08054A04 @ =gLCDControls ldrh r1, [r2] ldr r0, _08054A08 @ =0x00001FFF ands r0, r1 strh r0, [r2] - ldr r1, _08054A0C @ =gUnk_03000BF0 + ldr r1, _08054A0C @ =gRoomControls ldrh r0, [r6, #4] ldrh r2, [r1, #6] adds r0, r0, r2 @@ -4544,9 +4544,9 @@ _080549F4: pop {r4, r5, r6, pc} .align 2, 0 _08054A00: .4byte gUnk_02000070 -_08054A04: .4byte gUnk_03000F50 +_08054A04: .4byte gLCDControls _08054A08: .4byte 0x00001FFF -_08054A0C: .4byte gUnk_03000BF0 +_08054A0C: .4byte gRoomControls _08054A10: .4byte gUnk_02032EC0 thumb_func_start sub_08054A14 @@ -5163,7 +5163,7 @@ sub_08054EB8: @ 0x08054EB8 strb r0, [r3, #8] movs r0, #0x24 strb r0, [r3, #9] - ldr r2, _08054EF8 @ =gUnk_03000BF0 + ldr r2, _08054EF8 @ =gRoomControls ldrh r0, [r4, #0x2e] ldrh r1, [r2, #6] subs r0, r0, r1 @@ -5185,7 +5185,7 @@ sub_08054EB8: @ 0x08054EB8 _08054EF6: pop {r4, pc} .align 2, 0 -_08054EF8: .4byte gUnk_03000BF0 +_08054EF8: .4byte gRoomControls thumb_func_start sub_08054EFC sub_08054EFC: @ 0x08054EFC @@ -5193,7 +5193,7 @@ sub_08054EFC: @ 0x08054EFC adds r4, r0, #0 movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _08054F5C @ =gUnk_03000BF0 + ldr r2, _08054F5C @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -5234,7 +5234,7 @@ _08054F54: bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 -_08054F5C: .4byte gUnk_03000BF0 +_08054F5C: .4byte gRoomControls _08054F60: .4byte 0x00004074 thumb_func_start sub_08054F64 @@ -5536,7 +5536,7 @@ sub_08055184: @ 0x08055184 movs r1, #0 ldrsh r0, [r4, r1] bl sub_0801D7EC - ldr r2, _08055214 @ =gUnk_03000F50 + ldr r2, _08055214 @ =gLCDControls ldrh r0, [r4, #2] movs r6, #0 movs r3, #0 @@ -5587,7 +5587,7 @@ sub_08055184: @ 0x08055184 .align 2, 0 _0805520C: .4byte gUnk_02000080 _08055210: .4byte gUnk_080FF1D4 -_08055214: .4byte gUnk_03000F50 +_08055214: .4byte gLCDControls _08055218: .4byte 0x00001E05 _0805521C: .4byte 0x00003648 _08055220: .4byte gUnk_02000070 @@ -5649,7 +5649,7 @@ _08055274: ldr r0, _080552AC @ =0x0000FFFF cmp r1, r0 beq _080552B4 - ldr r1, _080552B0 @ =gUnk_03000F50 + ldr r1, _080552B0 @ =gLCDControls adds r0, r2, #1 strh r0, [r3, #0xa] lsls r0, r2, #1 @@ -5662,9 +5662,9 @@ _08055274: _080552A4: .4byte gUnk_030010A0 _080552A8: .4byte gUnk_080FF204 _080552AC: .4byte 0x0000FFFF -_080552B0: .4byte gUnk_03000F50 +_080552B0: .4byte gLCDControls _080552B4: - ldr r1, _080552D8 @ =gUnk_03000F50 + ldr r1, _080552D8 @ =gLCDControls ldrh r2, [r1] ldr r0, _080552DC @ =0x0000F7FF ands r0, r2 @@ -5683,7 +5683,7 @@ _080552B4: _080552D6: pop {r4, pc} .align 2, 0 -_080552D8: .4byte gUnk_03000F50 +_080552D8: .4byte gLCDControls _080552DC: .4byte 0x0000F7FF thumb_func_start sub_080552E0 @@ -5831,7 +5831,7 @@ sub_080553E0: @ 0x080553E0 adds r2, r0, #0 cmp r2, #0 beq _08055408 - ldr r0, _08055410 @ =gUnk_03000BF0 + ldr r0, _08055410 @ =gRoomControls ldrh r1, [r0, #6] ldrh r3, [r4, #8] adds r1, r1, r3 @@ -5844,7 +5844,7 @@ _08055408: pop {r4, pc} .align 2, 0 _0805540C: .4byte gUnk_02000080 -_08055410: .4byte gUnk_03000BF0 +_08055410: .4byte gRoomControls thumb_func_start sub_08055414 sub_08055414: @ 0x08055414 @@ -6133,7 +6133,7 @@ sub_08055634: @ 0x08055634 adds r2, r0, #0 cmp r2, #0 beq _0805565C - ldr r0, _08055670 @ =gUnk_03000BF0 + ldr r0, _08055670 @ =gRoomControls ldrh r1, [r5, #8] ldrh r3, [r0, #6] adds r1, r1, r3 @@ -6152,7 +6152,7 @@ _0805565C: pop {r4, r5, pc} .align 2, 0 _0805566C: .4byte gUnk_02000080 -_08055670: .4byte gUnk_03000BF0 +_08055670: .4byte gRoomControls thumb_func_start sub_08055674 sub_08055674: @ 0x08055674 @@ -6823,7 +6823,7 @@ sub_08055B70: @ 0x08055B70 cmp r3, #0 beq _08055BA2 ldrh r0, [r4, #8] - ldr r1, _08055BAC @ =gUnk_03000BF0 + ldr r1, _08055BAC @ =gRoomControls adds r0, r0, r5 ldrh r2, [r1, #6] adds r0, r0, r2 @@ -6838,7 +6838,7 @@ _08055BA2: .align 2, 0 _08055BA4: .4byte gUnk_02000080 _08055BA8: .4byte gUnk_080FF378 -_08055BAC: .4byte gUnk_03000BF0 +_08055BAC: .4byte gRoomControls thumb_func_start sub_08055BB0 sub_08055BB0: @ 0x08055BB0 @@ -7115,7 +7115,7 @@ sub_08055DC0: @ 0x08055DC0 cmp r0, #0 bne _08055DDC ldr r0, _08055DE4 @ =0x00000A01 - bl sub_08056378 + bl TextboxTryNoOverlap ldr r1, _08055DE8 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 diff --git a/asm/code_08055FF4.s b/asm/code_08055FF4.s index b966b795..e4e613ad 100644 --- a/asm/code_08055FF4.s +++ b/asm/code_08055FF4.s @@ -205,7 +205,7 @@ sub_0805616C: @ 0x0805616C push {lr} ldr r0, _080561E8 @ =0x80040000 bl sub_080A3268 - ldr r0, _080561EC @ =gUnk_03000F50 + ldr r0, _080561EC @ =gLCDControls adds r3, r0, #0 adds r3, #0x6c ldrb r2, [r3] @@ -273,7 +273,7 @@ _080561E6: pop {pc} .align 2, 0 _080561E8: .4byte 0x80040000 -_080561EC: .4byte gUnk_03000F50 +_080561EC: .4byte gLCDControls _080561F0: .4byte 0x040000B0 _080561F4: .4byte 0x0000C5FF _080561F8: .4byte 0x00007FFF @@ -286,7 +286,7 @@ sub_08056208: @ 0x08056208 push {lr} ldr r0, _08056224 @ =0x80060000 bl sub_080A3268 - ldr r0, _08056228 @ =gUnk_03000F50 + ldr r0, _08056228 @ =gLCDControls adds r3, r0, #0 adds r3, #0x6d ldrb r2, [r3] @@ -297,11 +297,11 @@ sub_08056208: @ 0x08056208 pop {pc} .align 2, 0 _08056224: .4byte 0x80060000 -_08056228: .4byte gUnk_03000F50 +_08056228: .4byte gLCDControls thumb_func_start sub_0805622C sub_0805622C: @ 0x0805622C - ldr r3, _08056248 @ =gUnk_03000F50 + ldr r3, _08056248 @ =gLCDControls str r0, [r3, #0x70] str r1, [r3, #0x74] str r2, [r3, #0x78] @@ -315,18 +315,18 @@ sub_0805622C: @ 0x0805622C strb r0, [r1] bx lr .align 2, 0 -_08056248: .4byte gUnk_03000F50 +_08056248: .4byte gLCDControls _0805624C: .4byte gUnk_03003DE4 thumb_func_start sub_08056250 sub_08056250: @ 0x08056250 - ldr r0, _0805625C @ =gUnk_03000F50 + ldr r0, _0805625C @ =gLCDControls adds r0, #0x6c movs r1, #0 strb r1, [r0] bx lr .align 2, 0 -_0805625C: .4byte gUnk_03000F50 +_0805625C: .4byte gLCDControls thumb_func_start sub_08056260 sub_08056260: @ 0x08056260 @@ -381,7 +381,7 @@ _080562C8: .4byte gUnk_03001000 thumb_func_start sub_080562CC sub_080562CC: @ 0x080562CC push {r4, r5, r6, lr} - ldr r6, _080562FC @ =gUnk_03000BF0 + ldr r6, _080562FC @ =gRoomControls movs r4, #0xa ldrsh r5, [r6, r4] ldrh r4, [r6, #6] @@ -406,7 +406,7 @@ _080562F8: adds r0, r1, #0 pop {r4, r5, r6, pc} .align 2, 0 -_080562FC: .4byte gUnk_03000BF0 +_080562FC: .4byte gRoomControls thumb_func_start sub_08056300 sub_08056300: @ 0x08056300 @@ -451,7 +451,7 @@ sub_08056338: @ 0x08056338 push {lr} movs r2, #1 rsbs r2, r2, #0 - ldr r0, _08056358 @ =gUnk_02000050 + ldr r0, _08056358 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -466,16589 +466,5 @@ _08056354: adds r0, r2, #0 pop {pc} .align 2, 0 -_08056358: .4byte gUnk_02000050 +_08056358: .4byte gTextBox _0805635C: .4byte gUnk_02000040 - - thumb_func_start sub_08056360 -sub_08056360: @ 0x08056360 - push {lr} - ldr r2, _08056374 @ =gUnk_02000050 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _08056372 - movs r0, #0x88 - strb r0, [r2] -_08056372: - pop {pc} - .align 2, 0 -_08056374: .4byte gUnk_02000050 - - thumb_func_start sub_08056378 -sub_08056378: @ 0x08056378 - push {lr} - adds r2, r0, #0 - ldr r0, _0805638C @ =gUnk_03000BF0 - ldr r1, [r0, #0x30] - cmp r1, #0 - beq _08056390 - adds r0, r2, #0 - bl sub_08056398 - b _08056396 - .align 2, 0 -_0805638C: .4byte gUnk_03000BF0 -_08056390: - adds r0, r2, #0 - bl sub_080563EC -_08056396: - pop {pc} - - thumb_func_start sub_08056398 -sub_08056398: @ 0x08056398 - push {r4, lr} - adds r4, r1, #0 - bl sub_080563EC - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r2, #0x36 - ldrsh r1, [r4, r2] - adds r0, r0, r1 - ldr r1, _080563C0 @ =gUnk_03000BF0 - movs r2, #0xc - ldrsh r1, [r1, r2] - subs r0, r0, r1 - cmp r0, #0x58 - ble _080563BC - ldr r1, _080563C4 @ =gUnk_02000050 - movs r0, #1 - strb r0, [r1, #7] -_080563BC: - pop {r4, pc} - .align 2, 0 -_080563C0: .4byte gUnk_03000BF0 -_080563C4: .4byte gUnk_02000050 - - thumb_func_start sub_080563C8 -sub_080563C8: @ 0x080563C8 - push {lr} - adds r2, r1, #0 - movs r1, #1 - bl sub_080563D4 - pop {pc} - - thumb_func_start sub_080563D4 -sub_080563D4: @ 0x080563D4 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - bl sub_080563EC - ldr r0, _080563E8 @ =gUnk_02000050 - strb r4, [r0, #6] - strb r5, [r0, #7] - pop {r4, r5, pc} - .align 2, 0 -_080563E8: .4byte gUnk_02000050 - - thumb_func_start sub_080563EC -sub_080563EC: @ 0x080563EC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08056414 @ =gUnk_02000050 - adds r0, r4, #0 - movs r1, #0x20 - bl sub_0801D630 - strh r5, [r4, #8] - movs r0, #0x63 - strb r0, [r4, #2] - movs r0, #0x1a - strb r0, [r4, #4] - movs r0, #4 - strb r0, [r4, #5] - movs r1, #1 - strb r1, [r4, #6] - movs r0, #0xc - strb r0, [r4, #7] - strb r1, [r4] - pop {r4, r5, pc} - .align 2, 0 -_08056414: .4byte gUnk_02000050 - - thumb_func_start sub_08056418 -sub_08056418: @ 0x08056418 - push {lr} - ldr r0, _08056444 @ =gUnk_02000050 - movs r1, #0x20 - bl sub_0801D630 - ldr r0, _08056448 @ =gUnk_02022780 - movs r1, #0xa8 - bl sub_0801D630 - ldr r0, _0805644C @ =gUnk_02036A40 - movs r1, #8 - bl sub_0801D630 - ldr r0, _08056450 @ =gUnk_02036A38 - movs r1, #8 - bl sub_0801D630 - ldr r0, _08056454 @ =gUnk_02000040 - movs r1, #4 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_08056444: .4byte gUnk_02000050 -_08056448: .4byte gUnk_02022780 -_0805644C: .4byte gUnk_02036A40 -_08056450: .4byte gUnk_02036A38 -_08056454: .4byte gUnk_02000040 - - thumb_func_start sub_08056458 -sub_08056458: @ 0x08056458 - push {r4, r5, lr} - ldr r0, _08056484 @ =gUnk_02000050 - ldrb r0, [r0] - cmp r0, #1 - bne _08056470 - ldr r0, _08056488 @ =gUnk_02022780 - movs r1, #0xa8 - bl sub_0801D630 - movs r0, #1 - bl sub_080564C8 -_08056470: - ldr r2, _08056488 @ =gUnk_02022780 - adds r1, r2, #0 - adds r1, #0x8a - ldrb r0, [r1] - cmp r0, #0 - beq _0805648C - subs r0, #1 - strb r0, [r1] - b _080564A2 - .align 2, 0 -_08056484: .4byte gUnk_02000050 -_08056488: .4byte gUnk_02022780 -_0805648C: - ldr r5, _080564C0 @ =gUnk_08107BC8 - adds r4, r2, #0 - adds r4, #0x88 -_08056492: - ldrb r0, [r4] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - bl _call_via_r0 - cmp r0, #0 - bne _08056492 -_080564A2: - ldr r0, _080564C4 @ =gUnk_02022780 - adds r1, r0, #0 - adds r1, #0x9d - ldrb r0, [r1] - cmp r0, #0 - beq _080564B6 - movs r0, #0 - strb r0, [r1] - bl sub_08056F70 -_080564B6: - bl sub_08056C68 - bl sub_08056D70 - pop {r4, r5, pc} - .align 2, 0 -_080564C0: .4byte gUnk_08107BC8 -_080564C4: .4byte gUnk_02022780 - - thumb_func_start sub_080564C8 -sub_080564C8: @ 0x080564C8 - ldr r1, _080564D8 @ =gUnk_02022780 - adds r2, r1, #0 - adds r2, #0x88 - movs r3, #0 - strb r0, [r2] - adds r1, #0x89 - strb r3, [r1] - bx lr - .align 2, 0 -_080564D8: .4byte gUnk_02022780 - - thumb_func_start sub_080564DC -sub_080564DC: @ 0x080564DC - ldr r0, _080564E8 @ =gUnk_02022780 - adds r0, #0x99 - movs r1, #0 - strb r1, [r0] - movs r0, #0 - bx lr - .align 2, 0 -_080564E8: .4byte gUnk_02022780 - - thumb_func_start sub_080564EC -sub_080564EC: @ 0x080564EC - push {r4, lr} - ldr r0, _08056598 @ =gUnk_02036A40 - movs r1, #8 - bl sub_0801D630 - ldr r0, _0805659C @ =gUnk_02024030 - movs r1, #0x18 - bl sub_0801D630 - ldr r4, _080565A0 @ =gUnk_02022780 - adds r0, r4, #0 - movs r1, #0xa8 - bl sub_0801D630 - ldr r0, _080565A4 @ =gUnk_02000050 - adds r1, r4, #0 - movs r2, #0x20 - bl sub_0801D66C - ldrb r0, [r4, #2] - cmp r0, #0x63 - bne _08056520 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #5] - strb r0, [r4, #2] -_08056520: - adds r1, r4, #0 - adds r1, #0x9c - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x20 - ldrh r1, [r4, #8] - bl sub_0805EEB4 - adds r3, r4, #0 - adds r3, #0x5c - movs r0, #2 - strb r0, [r3] - movs r0, #0xe - strb r0, [r3, #1] - adds r3, #2 - movs r2, #0 - ldr r0, _080565A8 @ =gUnk_02002A40 - adds r0, #0x80 - ldrb r1, [r0] - cmp r1, #0 - beq _08056560 - adds r4, r0, #0 -_0805654E: - strb r1, [r3] - adds r3, #1 - adds r2, #1 - cmp r2, #5 - bhi _08056560 - adds r0, r2, r4 - ldrb r1, [r0] - cmp r1, #0 - bne _0805654E -_08056560: - movs r0, #2 - strb r0, [r3] - movs r0, #0xf - strb r0, [r3, #1] - movs r0, #0 - strb r0, [r3, #2] - ldr r4, _080565A0 @ =gUnk_02022780 - adds r0, r4, #0 - bl sub_08056FBC - ldr r0, _080565AC @ =gUnk_08107BE0 - str r0, [r4, #0x2c] - ldr r0, _080565B0 @ =gUnk_02000D00 - str r0, [r4, #0x58] - adds r4, #0x54 - movs r0, #0xd0 - strh r0, [r4] - movs r0, #2 - bl sub_08056C54 - movs r0, #0 - bl sub_08056BDC - movs r0, #2 - bl sub_080564C8 - movs r0, #1 - pop {r4, pc} - .align 2, 0 -_08056598: .4byte gUnk_02036A40 -_0805659C: .4byte gUnk_02024030 -_080565A0: .4byte gUnk_02022780 -_080565A4: .4byte gUnk_02000050 -_080565A8: .4byte gUnk_02002A40 -_080565AC: .4byte gUnk_08107BE0 -_080565B0: .4byte gUnk_02000D00 - - thumb_func_start sub_080565B4 -sub_080565B4: @ 0x080565B4 - push {r4, lr} - ldr r4, _080565F4 @ =gUnk_02022780 - adds r1, r4, #0 - adds r1, #0x89 - ldrb r0, [r1] - cmp r0, #0 - bne _080565DA - movs r0, #1 - strb r0, [r1] - adds r1, #0x10 - strb r0, [r1] - ldrb r0, [r4, #3] - subs r1, #0x46 - ldrb r1, [r1] - bl sub_08056F88 - movs r0, #0x65 - bl sub_080A3268 -_080565DA: - movs r0, #1 - bl sub_08056CC0 - cmp r0, #0 - beq _080565F0 - adds r1, r4, #0 - adds r1, #0x99 - movs r0, #2 - strb r0, [r1] - bl sub_080564C8 -_080565F0: - movs r0, #0 - pop {r4, pc} - .align 2, 0 -_080565F4: .4byte gUnk_02022780 - - thumb_func_start sub_080565F8 -sub_080565F8: @ 0x080565F8 - push {r4, lr} - ldr r4, _0805663C @ =gUnk_02022780 - adds r1, r4, #0 - adds r1, #0x89 - ldrb r0, [r1] - cmp r0, #0 - bne _0805661C - movs r0, #1 - strb r0, [r1] - adds r1, #0x10 - movs r0, #3 - strb r0, [r1] - movs r0, #0 - bl sub_08056BDC - movs r0, #0x66 - bl sub_080A3268 -_0805661C: - movs r0, #1 - rsbs r0, r0, #0 - bl sub_08056CC0 - cmp r0, #0 - beq _08056636 - adds r1, r4, #0 - adds r1, #0x99 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - bl sub_080564C8 -_08056636: - movs r0, #0 - pop {r4, pc} - .align 2, 0 -_0805663C: .4byte gUnk_02022780 - - thumb_func_start sub_08056640 -sub_08056640: @ 0x08056640 - push {lr} - movs r0, #0 - bl sub_08056C54 - movs r0, #0 - bl sub_080564C8 - movs r0, #0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08056654 -sub_08056654: @ 0x08056654 - push {lr} - movs r0, #4 - bl sub_08056C54 - ldr r2, _0805667C @ =gUnk_08107BF4 - ldr r0, _08056680 @ =gUnk_02022780 - adds r1, r0, #0 - adds r1, #0x89 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - movs r0, #0 - bl sub_08056CC0 - movs r0, #0 - pop {pc} - .align 2, 0 -_0805667C: .4byte gUnk_08107BF4 -_08056680: .4byte gUnk_02022780 - - thumb_func_start sub_08056684 -sub_08056684: @ 0x08056684 - push {r4, lr} - adds r2, r0, #0 - ldr r4, _080566AC @ =gUnk_02022780 - adds r0, r4, #0 - adds r0, #0x20 - ldrb r1, [r0] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _080566B0 - adds r0, r4, #0 - adds r0, #0x99 - ldrb r0, [r0] - cmp r0, #0 - bne _080566B6 - movs r0, #5 - bl sub_080564C8 - b _080566B6 - .align 2, 0 -_080566AC: .4byte gUnk_02022780 -_080566B0: - adds r0, r2, #0 - adds r0, #0x89 - strb r3, [r0] -_080566B6: - pop {r4, pc} - - thumb_func_start sub_080566B8 -sub_080566B8: @ 0x080566B8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x95 - ldrb r0, [r1] - cmp r0, #0 - beq _080566CC - subs r0, #1 - strb r0, [r1] - b _0805674E -_080566CC: - ldr r0, _08056740 @ =gUnk_03000FF0 - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - movs r2, #1 - cmp r0, #0 - beq _080566DC - movs r2, #8 -_080566DC: - adds r1, r4, #0 - adds r1, #0x92 - ldrb r0, [r1] - subs r0, r0, r2 - strb r0, [r1] - lsls r0, r0, #0x18 - adds r7, r1, #0 - cmp r0, #0 - bgt _0805674E - movs r5, #0 - ldr r2, _08056744 @ =gUnk_08107C0C -_080566F2: - adds r5, #1 - ldrb r0, [r4, #2] - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r3, [r1] - adds r0, r0, r3 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - ble _080566F2 - movs r6, #0 -_08056708: - adds r0, r4, #0 - bl sub_08056750 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _08056732 - adds r0, r4, #0 - adds r0, #0x95 - ldrb r0, [r0] - cmp r0, #0 - bne _08056732 - adds r0, r4, #0 - adds r0, #0x8a - ldrb r0, [r0] - cmp r0, #0 - bne _08056732 - adds r6, r6, r1 - subs r5, #1 - cmp r5, #0 - bgt _08056708 -_08056732: - cmp r6, #0 - beq _0805674C - ldr r0, _08056748 @ =gUnk_02022780 - adds r0, #0x9d - movs r1, #1 - strb r1, [r0] - b _0805674E - .align 2, 0 -_08056740: .4byte gUnk_03000FF0 -_08056744: .4byte gUnk_08107C0C -_08056748: .4byte gUnk_02022780 -_0805674C: - strb r6, [r7] -_0805674E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08056750 -sub_08056750: @ 0x08056750 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrh r7, [r5, #0x24] - cmp r7, #0 - beq _0805675C - b _0805694C -_0805675C: - adds r4, r5, #0 - adds r4, #0x20 - adds r0, r4, #0 - bl sub_0805EFE8 - adds r7, r0, #0 - cmp r7, #0xe - bls _0805676E - b _08056942 -_0805676E: - lsls r0, r7, #2 - ldr r1, _08056778 @ =_0805677C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08056778: .4byte _0805677C -_0805677C: @ jump table - .4byte _080567B8 @ case 0 - .4byte _080567DE @ case 1 - .4byte _08056802 @ case 2 - .4byte _0805680A @ case 3 - .4byte _08056812 @ case 4 - .4byte _08056838 @ case 5 - .4byte _08056844 @ case 6 - .4byte _08056858 @ case 7 - .4byte _0805688C @ case 8 - .4byte _08056894 @ case 9 - .4byte _080568AC @ case 10 - .4byte _08056942 @ case 11 - .4byte _080568B2 @ case 12 - .4byte _08056914 @ case 13 - .4byte _0805693A @ case 14 -_080567B8: - ldr r0, _080567D4 @ =gUnk_02000040 - ldrb r0, [r0] - cmp r0, #1 - bne _080567D8 - adds r1, r5, #0 - adds r1, #0x89 - movs r0, #5 - strb r0, [r1] - movs r0, #0 - movs r1, #0 - bl sub_08056ABC - b _08056942 - .align 2, 0 -_080567D4: .4byte gUnk_02000040 -_080567D8: - adds r1, r5, #0 - adds r1, #0x89 - b _0805692C -_080567DE: - adds r1, r5, #0 - adds r1, #0x8a - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x98 - ldrb r0, [r0] - cmp r0, #0 - bne _080567F8 - movs r0, #1 - bl sub_08056BDC - b _08056942 -_080567F8: - adds r1, r5, #0 - adds r1, #0x89 - movs r0, #3 - strb r0, [r1] - b _08056942 -_08056802: - movs r0, #3 - bl sub_080564C8 - b _08056942 -_0805680A: - movs r0, #4 - bl sub_080564C8 - b _08056942 -_08056812: - adds r0, r4, #0 - movs r1, #0 - bl sub_0805F324 - adds r3, r0, #0 - adds r4, r5, #0 - adds r4, #0x56 - adds r0, r5, #0 - adds r0, #0x54 - ldrh r0, [r0] - ldrh r2, [r4] - subs r0, r0, r2 - subs r0, r0, r3 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r2, r2, r0 - strh r2, [r4] - b _08056942 -_08056838: - ldr r1, _08056840 @ =gUnk_02000050 - ldrh r0, [r5, #0x22] - strb r0, [r1, #1] - b _08056942 - .align 2, 0 -_08056840: .4byte gUnk_02000050 -_08056844: - ldr r0, _08056854 @ =gUnk_0200005C - ldrh r1, [r5, #0x22] - movs r2, #0x1f - ands r1, r2 - bl sub_0801D5BC - b _08056942 - .align 2, 0 -_08056854: .4byte gUnk_0200005C -_08056858: - ldrh r3, [r5, #0x22] - cmp r3, #0xe - beq _08056864 - cmp r3, #0xf - beq _08056874 - b _0805687A -_08056864: - adds r0, r5, #0 - adds r0, #0x8f - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x91 - strb r0, [r1] - movs r3, #2 - b _0805687A -_08056874: - adds r0, r5, #0 - adds r0, #0x91 - ldrb r3, [r0] -_0805687A: - adds r1, r5, #0 - adds r1, #0x90 - movs r0, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r1, r3, #0 - bl sub_080569C4 - b _08056942 -_0805688C: - ldrh r0, [r5, #0x22] - bl sub_080A3268 - b _08056942 -_08056894: - ldr r1, _080568A8 @ =gUnk_02022780 - ldrh r0, [r5, #0x22] - strb r0, [r1, #3] - ldrh r0, [r5, #0x22] - adds r1, r5, #0 - adds r1, #0x53 - ldrb r1, [r1] - bl sub_08056F88 - b _08056942 - .align 2, 0 -_080568A8: .4byte gUnk_02022780 -_080568AC: - ldrh r0, [r5, #0x22] - strb r0, [r5, #7] - b _08056942 -_080568B2: - ldr r6, _0805690C @ =gUnk_02000040 - ldrb r0, [r6] - cmp r0, #1 - beq _080568D2 - adds r0, r6, #0 - movs r1, #4 - bl sub_0801D630 - ldr r4, _08056910 @ =gUnk_02024030 - adds r0, r4, #0 - movs r1, #0x18 - bl sub_0801D630 - movs r0, #1 - strb r0, [r4] - strb r0, [r6] -_080568D2: - ldr r2, _08056910 @ =gUnk_02024030 - movs r0, #2 - ldrsb r0, [r2, r0] - cmp r0, #3 - bgt _08056942 - lsls r0, r0, #1 - adds r1, r2, #0 - adds r1, #0x10 - adds r0, r0, r1 - ldrh r1, [r5, #0x26] - strh r1, [r0] - movs r0, #2 - ldrsb r0, [r2, r0] - lsls r0, r0, #1 - adds r1, r2, #0 - adds r1, #8 - adds r0, r0, r1 - adds r3, r5, #0 - adds r3, #0x56 - ldrh r1, [r3] - strh r1, [r0] - ldrb r0, [r2, #2] - adds r0, #1 - strb r0, [r2, #2] - ldrh r0, [r3] - adds r0, #8 - strh r0, [r3] - b _08056942 - .align 2, 0 -_0805690C: .4byte gUnk_02000040 -_08056910: .4byte gUnk_02024030 -_08056914: - ldrh r3, [r5, #0x22] - cmp r3, #0xfe - beq _08056928 - cmp r3, #0xff - bne _08056932 - adds r1, r5, #0 - adds r1, #0x8e - movs r0, #1 - strb r0, [r1] - b _08056942 -_08056928: - adds r1, r5, #0 - adds r1, #0x8e -_0805692C: - movs r0, #2 - strb r0, [r1] - b _08056942 -_08056932: - adds r0, r5, #0 - adds r0, #0x95 - strb r3, [r0] - b _08056942 -_0805693A: - ldrh r1, [r5, #0x22] - adds r0, r5, #0 - adds r0, #0x94 - strb r1, [r0] -_08056942: - lsrs r0, r7, #8 - cmp r0, #0 - bne _0805694C - movs r0, #0 - b _080569C2 -_0805694C: - ldr r0, _08056960 @ =gUnk_02022780 - adds r0, #0x99 - ldrb r0, [r0] - cmp r0, #2 - beq _08056964 - movs r0, #3 - bl sub_080564C8 - movs r0, #0 - b _080569C2 - .align 2, 0 -_08056960: .4byte gUnk_02022780 -_08056964: - ldr r1, _08056994 @ =gUnk_02000050 - ldrb r0, [r1, #1] - cmp r0, #0 - bne _08056970 - movs r0, #0x80 - strb r0, [r1, #1] -_08056970: - movs r0, #0 - strh r0, [r5, #0x24] - lsrs r0, r7, #8 - cmp r0, #7 - bne _08056998 - adds r0, r5, #0 - adds r0, #0x8f - ldrb r0, [r0] - movs r1, #0x80 - adds r2, r5, #0 - adds r2, #0x90 - orrs r1, r0 - strb r1, [r2] - adds r0, r5, #0 - movs r1, #0 - bl sub_080569C4 - b _080569B4 - .align 2, 0 -_08056994: .4byte gUnk_02000050 -_08056998: - adds r2, r5, #0 - adds r2, #0x90 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080569B4 - ldrb r3, [r2] - movs r0, #0 - strb r0, [r2] - adds r0, r5, #0 - adds r1, r3, #0 - bl sub_080569C4 -_080569B4: - adds r1, r5, #0 - adds r1, #0x50 - adds r0, r7, #0 - bl sub_0805F7DC - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 -_080569C2: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080569C4 -sub_080569C4: @ 0x080569C4 - movs r2, #7 - ands r2, r1 - adds r1, r0, #0 - adds r1, #0x8f - strb r2, [r1] - adds r0, #0x52 - strb r2, [r0] - bx lr - - thumb_func_start sub_080569D4 -sub_080569D4: @ 0x080569D4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _080569F0 @ =gUnk_02024030 - movs r5, #3 - ldrsb r5, [r0, r5] - ldr r0, _080569F4 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #8 - beq _08056A02 - cmp r0, #8 - bgt _080569F8 - cmp r0, #1 - beq _08056A02 - b _08056A6A - .align 2, 0 -_080569F0: .4byte gUnk_02024030 -_080569F4: .4byte gUnk_03000FF0 -_080569F8: - cmp r0, #0x10 - beq _08056A68 - cmp r0, #0x20 - beq _08056A64 - b _08056A6A -_08056A02: - ldr r0, _08056A18 @ =gUnk_02024030 - lsls r1, r5, #1 - adds r0, #0x10 - adds r1, r1, r0 - ldrh r1, [r1] - cmp r1, #0 - bne _08056A20 - ldr r1, _08056A1C @ =gUnk_08107C14 - adds r0, r6, #0 - adds r0, #0x20 - b _08056A30 - .align 2, 0 -_08056A18: .4byte gUnk_02024030 -_08056A1C: .4byte gUnk_08107C14 -_08056A20: - strh r1, [r6, #8] - adds r4, r6, #0 - adds r4, #0x20 - adds r0, r4, #0 - bl sub_0805EEB4 - ldr r1, _08056A58 @ =gUnk_08107C0F - adds r0, r4, #0 -_08056A30: - bl sub_0805EF40 - ldr r2, _08056A5C @ =gUnk_02000040 - ldr r0, _08056A60 @ =gUnk_02024030 - ldrb r1, [r0, #3] - strb r1, [r2, #1] - movs r1, #3 - strb r1, [r2] - movs r1, #0x18 - bl sub_0801D630 - movs r0, #0x6a - bl sub_080A3268 - adds r1, r6, #0 - adds r1, #0x89 - movs r0, #1 - strb r0, [r1] - b _08056A6A - .align 2, 0 -_08056A58: .4byte gUnk_08107C0F -_08056A5C: .4byte gUnk_02000040 -_08056A60: .4byte gUnk_02024030 -_08056A64: - subs r5, #1 - b _08056A6A -_08056A68: - adds r5, #1 -_08056A6A: - ldr r4, _08056A8C @ =gUnk_02024030 - movs r1, #2 - ldrsb r1, [r4, r1] - adds r0, r5, r1 - bl __modsi3 - adds r5, r0, #0 - movs r6, #3 - ldrsb r6, [r4, r6] - cmp r5, r6 - beq _08056A90 - strb r5, [r4, #3] - movs r0, #0x69 - bl sub_080A3268 - movs r1, #1 - b _08056A92 - .align 2, 0 -_08056A8C: .4byte gUnk_02024030 -_08056A90: - movs r1, #0 -_08056A92: - ldr r2, _08056AB4 @ =gUnk_02000040 - ldrb r0, [r2] - cmp r0, #1 - bne _08056AA4 - ldr r1, _08056AB8 @ =gUnk_02024030 - movs r0, #2 - strb r0, [r2] - strb r0, [r1] - movs r1, #1 -_08056AA4: - cmp r1, #0 - beq _08056AB0 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08056ABC -_08056AB0: - pop {r4, r5, r6, pc} - .align 2, 0 -_08056AB4: .4byte gUnk_02000040 -_08056AB8: .4byte gUnk_02024030 - - thumb_func_start sub_08056ABC -sub_08056ABC: @ 0x08056ABC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - ldr r7, _08056B14 @ =gUnk_02022780 - movs r0, #0x56 - adds r0, r0, r7 - mov sb, r0 - ldrh r0, [r0] - mov r8, r0 - ldr r4, _08056B18 @ =gUnk_02024030 - lsls r1, r1, #1 - adds r4, #8 - adds r1, r1, r4 - ldrh r0, [r1] - mov r1, sb - strh r0, [r1] - adds r6, r7, #0 - adds r6, #0x50 - movs r0, #0 - adds r1, r6, #0 - bl sub_0805F8E4 - lsls r5, r5, #1 - adds r5, r5, r4 - ldrh r0, [r5] - mov r1, sb - strh r0, [r1] - movs r0, #1 - adds r1, r6, #0 - bl sub_0805F8E4 - mov r1, r8 - mov r0, sb - strh r1, [r0] - adds r1, r7, #0 - adds r1, #0x9d - movs r0, #1 - strb r0, [r1] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08056B14: .4byte gUnk_02022780 -_08056B18: .4byte gUnk_02024030 - - thumb_func_start sub_08056B1C -sub_08056B1C: @ 0x08056B1C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08056B44 @ =gUnk_02000050 - movs r0, #0 - strb r0, [r1, #1] - adds r1, r4, #0 - adds r1, #0x94 - ldrb r0, [r1] - adds r5, r0, #0 - cmp r5, #0 - beq _08056B48 - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08056B7A - subs r1, #0xb - movs r0, #4 - b _08056B78 - .align 2, 0 -_08056B44: .4byte gUnk_02000050 -_08056B48: - ldr r0, _08056B68 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - ldr r0, _08056B6C @ =0x000001F3 - ands r0, r1 - cmp r0, #0 - beq _08056B70 - movs r0, #0x68 - bl sub_080A3268 - adds r0, r4, #0 - adds r0, #0x9a - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x89 - movs r0, #4 - b _08056B78 - .align 2, 0 -_08056B68: .4byte gUnk_03000FF0 -_08056B6C: .4byte 0x000001F3 -_08056B70: - adds r1, r4, #0 - adds r1, #0x9a - ldrb r0, [r1] - adds r0, #1 -_08056B78: - strb r0, [r1] -_08056B7A: - pop {r4, r5, pc} - - thumb_func_start sub_08056B7C -sub_08056B7C: @ 0x08056B7C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl sub_08056BDC - adds r0, r4, #0 - adds r0, #0x8f - ldrb r0, [r0] - movs r1, #0x40 - orrs r1, r0 - adds r0, r4, #0 - bl sub_080569C4 - adds r4, #0x89 - movs r0, #1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08056BA0 -sub_08056BA0: @ 0x08056BA0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08056BD0 @ =gUnk_02000050 - movs r0, #0 - strb r0, [r1, #1] - movs r0, #7 - bl sub_08056C54 - adds r4, #0x8e - ldrb r0, [r4] - cmp r0, #1 - beq _08056BCE - cmp r0, #2 - beq _08056BC8 - ldr r0, _08056BD4 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - ldr r0, _08056BD8 @ =0x000001F3 - ands r0, r1 - cmp r0, #0 - beq _08056BCE -_08056BC8: - movs r0, #4 - bl sub_080564C8 -_08056BCE: - pop {r4, pc} - .align 2, 0 -_08056BD0: .4byte gUnk_02000050 -_08056BD4: .4byte gUnk_03000FF0 -_08056BD8: .4byte 0x000001F3 - - thumb_func_start sub_08056BDC -sub_08056BDC: @ 0x08056BDC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08056C24 @ =gUnk_02022780 - adds r0, r4, #0 - adds r0, #0x98 - strb r5, [r0] - cmp r5, #0 - bne _08056C30 - movs r0, #1 - rsbs r0, r0, #0 - ldr r1, _08056C28 @ =gUnk_02000D00 - movs r2, #0xd0 - lsls r2, r2, #4 - bl _DmaFill32 - bl sub_08056F70 - adds r1, r4, #0 - adds r1, #0x9e - ldr r0, _08056C2C @ =0x0000F082 - strh r0, [r1] - adds r1, #2 - adds r0, #1 - strh r0, [r1] - adds r1, #2 - adds r0, #0x33 - strh r0, [r1] - adds r1, #2 - adds r0, #1 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x56 - strh r5, [r0] - subs r1, #0x50 - movs r0, #0xd0 - b _08056C3C - .align 2, 0 -_08056C24: .4byte gUnk_02022780 -_08056C28: .4byte gUnk_02000D00 -_08056C2C: .4byte 0x0000F082 -_08056C30: - adds r1, r4, #0 - adds r1, #0x56 - movs r0, #0xd0 - strh r0, [r1] - subs r1, #2 - adds r0, #0xd0 -_08056C3C: - strh r0, [r1] - ldr r0, _08056C50 @ =gUnk_02022780 - adds r1, r0, #0 - adds r1, #0x8f - ldrb r2, [r1] - movs r1, #0x40 - orrs r1, r2 - bl sub_080569C4 - pop {r4, r5, pc} - .align 2, 0 -_08056C50: .4byte gUnk_02022780 - - thumb_func_start sub_08056C54 -sub_08056C54: @ 0x08056C54 - ldr r2, _08056C60 @ =gUnk_02000050 - ldr r1, _08056C64 @ =gUnk_02022780 - strb r0, [r1] - strb r0, [r2] - bx lr - .align 2, 0 -_08056C60: .4byte gUnk_02000050 -_08056C64: .4byte gUnk_02022780 - - thumb_func_start sub_08056C68 -sub_08056C68: @ 0x08056C68 - push {r4, r5, r6, lr} - ldr r5, _08056CB8 @ =gUnk_02036A38 - ldrb r0, [r5, #1] - cmp r0, #0 - beq _08056CB4 - movs r0, #0 - strb r0, [r5, #1] - ldrb r0, [r5, #5] - lsls r0, r0, #5 - ldrb r1, [r5, #4] - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _08056CBC @ =gUnk_02034CB0 - adds r1, r0, r1 - ldrb r0, [r5, #7] - adds r0, #2 - movs r6, #0 -_08056C8A: - movs r2, #0 - adds r4, r1, #0 - adds r4, #0x40 - subs r3, r0, #1 -_08056C92: - strh r6, [r1] - adds r1, #2 - adds r2, #1 - ldrb r0, [r5, #6] - adds r0, #2 - cmp r2, r0 - blt _08056C92 - adds r1, r4, #0 - adds r0, r3, #0 - cmp r0, #0 - bgt _08056C8A - ldrb r0, [r5, #5] - ldrb r1, [r5, #7] - bl sub_0801C4A0 - bl sub_0801C494 -_08056CB4: - pop {r4, r5, r6, pc} - .align 2, 0 -_08056CB8: .4byte gUnk_02036A38 -_08056CBC: .4byte gUnk_02034CB0 - - thumb_func_start sub_08056CC0 -sub_08056CC0: @ 0x08056CC0 - push {r4, r5, r6, r7, lr} - movs r7, #0 - ldr r2, _08056CE0 @ =gUnk_02022780 - adds r3, r2, #0 - adds r3, #0x9b - ldrb r1, [r3] - adds r1, r1, r0 - strb r1, [r3] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov ip, r2 - cmp r1, #0 - bgt _08056CE4 - strb r7, [r3] - b _08056CEC - .align 2, 0 -_08056CE0: .4byte gUnk_02022780 -_08056CE4: - cmp r1, #7 - ble _08056CEE - movs r0, #8 - strb r0, [r3] -_08056CEC: - movs r7, #1 -_08056CEE: - ldr r2, _08056D54 @ =gUnk_02036A40 - mov r4, ip - adds r1, r4, #0 - adds r1, #0x9b - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08056D58 - adds r5, r0, #0 - ldrb r0, [r4, #4] - lsls r0, r0, #1 - muls r0, r5, r0 - lsrs r3, r0, #4 - strb r3, [r2, #6] - movs r6, #1 - adds r0, r3, #0 - ands r0, r6 - ldrb r1, [r4, #4] - cmp r0, #0 - beq _08056D1A - adds r0, r3, #1 - strb r0, [r2, #6] -_08056D1A: - lsrs r1, r1, #1 - ldrb r0, [r4, #6] - adds r1, r1, r0 - ldrb r0, [r2, #6] - lsrs r0, r0, #1 - subs r1, r1, r0 - strb r1, [r2, #4] - ldrb r0, [r4, #5] - lsls r0, r0, #1 - muls r0, r5, r0 - lsrs r3, r0, #4 - strb r3, [r2, #7] - adds r0, r3, #0 - ands r0, r6 - ldrb r1, [r4, #5] - cmp r0, #0 - beq _08056D40 - adds r0, r3, #1 - strb r0, [r2, #7] -_08056D40: - lsrs r1, r1, #1 - mov r3, ip - ldrb r3, [r3, #7] - adds r1, r1, r3 - ldrb r0, [r2, #7] - lsrs r0, r0, #1 - subs r1, r1, r0 - strb r1, [r2, #5] - b _08056D66 - .align 2, 0 -_08056D54: .4byte gUnk_02036A40 -_08056D58: - movs r0, #0xff - strb r0, [r2, #5] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r2, #4] - strb r0, [r2, #7] - strb r0, [r2, #6] -_08056D66: - movs r0, #1 - strb r0, [r2, #1] - adds r0, r7, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08056D70 -sub_08056D70: @ 0x08056D70 - push {r4, lr} - ldr r0, _08056DB4 @ =gUnk_02022780 - adds r0, #0x9b - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08056DB0 - ldr r4, _08056DB8 @ =gUnk_02036A40 - ldrb r0, [r4, #5] - lsls r0, r0, #5 - ldrb r1, [r4, #4] - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _08056DBC @ =gUnk_02034CB0 - adds r0, r0, r1 - ldr r3, _08056DC0 @ =0x0000F07B - ldrb r1, [r4, #6] - ldrb r2, [r4, #7] - bl sub_08056DC8 - bl sub_08056EC0 - bl sub_08056F1C - ldr r2, _08056DC4 @ =gUnk_02036A38 - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r2] - str r1, [r2, #4] - bl sub_0801C494 -_08056DB0: - pop {r4, pc} - .align 2, 0 -_08056DB4: .4byte gUnk_02022780 -_08056DB8: .4byte gUnk_02036A40 -_08056DBC: .4byte gUnk_02034CB0 -_08056DC0: .4byte 0x0000F07B -_08056DC4: .4byte gUnk_02036A38 - - thumb_func_start sub_08056DC8 -sub_08056DC8: @ 0x08056DC8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov r8, r3 - adds r3, r7, #0 - lsls r0, r6, #6 - adds r0, #0x40 - adds r2, r3, r0 - mov r0, r8 - strh r0, [r3] - adds r3, #2 - movs r1, #0x80 - lsls r1, r1, #4 - mov sb, r1 - mov r0, r8 - mov r5, sb - orrs r0, r5 - strh r0, [r2] - adds r2, #2 - cmp r4, #0 - ble _08056E4C - mov r0, r8 - adds r0, #1 - strh r0, [r3] - adds r3, #2 - adds r1, r0, #0 - orrs r1, r5 - strh r1, [r2] - adds r2, #2 - subs r4, #2 - adds r1, r4, #0 - subs r4, #1 - mov ip, r0 - cmp r1, #0 - ble _08056E30 - mov r5, r8 - adds r5, #2 - adds r1, r5, #0 - mov r0, sb - orrs r1, r0 -_08056E20: - strh r5, [r3] - adds r3, #2 - strh r1, [r2] - adds r2, #2 - adds r0, r4, #0 - subs r4, #1 - cmp r0, #0 - bgt _08056E20 -_08056E30: - movs r1, #0x80 - lsls r1, r1, #3 - adds r0, r1, #0 - mov r1, ip - orrs r1, r0 - strh r1, [r3] - adds r3, #2 - movs r5, #0xc0 - lsls r5, r5, #4 - adds r0, r5, #0 - mov r1, ip - orrs r1, r0 - strh r1, [r2] - adds r2, #2 -_08056E4C: - movs r0, #0x80 - lsls r0, r0, #3 - adds r5, r0, #0 - mov r0, r8 - orrs r0, r5 - strh r0, [r3] - movs r0, #0xc0 - lsls r0, r0, #4 - adds r1, r0, #0 - mov r0, r8 - orrs r0, r1 - strh r0, [r2] - adds r7, #0x40 - adds r3, #0x40 - cmp r6, #0 - ble _08056EB6 - mov r0, r8 - adds r0, #3 - strh r0, [r7] - adds r1, r0, #0 - orrs r1, r5 - strh r1, [r3] - adds r7, #0x40 - adds r3, #0x40 - subs r6, #2 - adds r1, r6, #0 - subs r6, #1 - adds r2, r0, #0 - cmp r1, #0 - ble _08056EA0 - mov r4, r8 - adds r4, #4 - adds r1, r4, #0 - orrs r1, r5 -_08056E90: - strh r4, [r7] - strh r1, [r3] - adds r7, #0x40 - adds r3, #0x40 - adds r0, r6, #0 - subs r6, #1 - cmp r0, #0 - bgt _08056E90 -_08056EA0: - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r1, #0 - adds r1, r2, #0 - orrs r1, r0 - strh r1, [r7] - movs r5, #0xc0 - lsls r5, r5, #4 - adds r0, r5, #0 - orrs r2, r0 - strh r2, [r3] -_08056EB6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08056EC0 -sub_08056EC0: @ 0x08056EC0 - push {r4, r5, r6, r7, lr} - ldr r6, _08056F10 @ =gUnk_02036A40 - ldrb r0, [r6, #6] - cmp r0, #0 - beq _08056F0E - ldrb r0, [r6, #7] - cmp r0, #0 - beq _08056F0E - adds r4, r0, #0 - ldrb r0, [r6, #5] - lsls r0, r0, #5 - ldrb r1, [r6, #4] - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, _08056F14 @ =gUnk_02034CB2 - adds r5, r0, r1 - movs r0, #4 - subs r0, r0, r4 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r1, r0, #1 - ldr r7, _08056F18 @ =gUnk_0202281E -_08056EEC: - ldrb r3, [r6, #6] - lsls r0, r1, #1 - adds r0, r0, r7 - ldrh r2, [r0] - adds r5, #0x40 - adds r0, r1, #1 - subs r4, #1 - adds r1, r5, #0 -_08056EFC: - strh r2, [r1] - adds r1, #2 - adds r2, #2 - subs r3, #1 - cmp r3, #0 - bgt _08056EFC - adds r1, r0, #0 - cmp r4, #0 - bne _08056EEC -_08056F0E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08056F10: .4byte gUnk_02036A40 -_08056F14: .4byte gUnk_02034CB2 -_08056F18: .4byte gUnk_0202281E - - thumb_func_start sub_08056F1C -sub_08056F1C: @ 0x08056F1C - push {lr} - ldr r0, _08056F58 @ =gUnk_02022780 - adds r0, #0x98 - ldr r0, [r0] - ldr r1, _08056F5C @ =0x0010FF00 - ands r0, r1 - ldr r1, _08056F60 @ =0x00100200 - cmp r0, r1 - bne _08056F54 - ldr r2, _08056F64 @ =gUnk_02036A40 - ldrb r1, [r2, #5] - lsls r1, r1, #5 - ldrb r0, [r2, #4] - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _08056F68 @ =gUnk_02034CB0 - adds r1, r1, r0 - ldrb r0, [r2, #7] - adds r0, #1 - lsls r0, r0, #5 - subs r0, #2 - ldrb r2, [r2, #6] - adds r0, r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r2, _08056F6C @ =0x0000F080 - adds r0, r2, #0 - strh r0, [r1] -_08056F54: - pop {pc} - .align 2, 0 -_08056F58: .4byte gUnk_02022780 -_08056F5C: .4byte 0x0010FF00 -_08056F60: .4byte 0x00100200 -_08056F64: .4byte gUnk_02036A40 -_08056F68: .4byte gUnk_02034CB0 -_08056F6C: .4byte 0x0000F080 - - thumb_func_start sub_08056F70 -sub_08056F70: @ 0x08056F70 - push {lr} - ldr r0, _08056F80 @ =gUnk_02000D00 - ldr r1, _08056F84 @ =0x0600D040 - movs r2, #0xd0 - lsls r2, r2, #4 - bl sub_08000E96 - pop {pc} - .align 2, 0 -_08056F80: .4byte gUnk_02000D00 -_08056F84: .4byte 0x0600D040 - - thumb_func_start sub_08056F88 -sub_08056F88: @ 0x08056F88 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - cmp r3, #0xf - bls _08056F94 - movs r3, #0 -_08056F94: - lsls r2, r3, #4 - orrs r2, r4 - ldr r0, _08056FB4 @ =gUnk_02022780 - adds r1, r0, #0 - adds r1, #0x9c - ldrb r0, [r1] - cmp r0, r2 - beq _08056FB0 - strb r2, [r1] - ldr r2, _08056FB8 @ =0x0600CF60 - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_0805F918 -_08056FB0: - pop {r4, pc} - .align 2, 0 -_08056FB4: .4byte gUnk_02022780 -_08056FB8: .4byte 0x0600CF60 - - thumb_func_start sub_08056FBC -sub_08056FBC: @ 0x08056FBC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x68 - bl sub_08056FEC - ldr r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x70 - bl sub_08056FEC - ldr r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x78 - bl sub_08056FEC - ldr r0, [r4, #0x1c] - adds r1, r4, #0 - adds r1, #0x80 - bl sub_08056FEC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08056FEC -sub_08056FEC: @ 0x08056FEC - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r2, r0, #0 - adds r5, r1, #0 - bl sub_0801D51C - adds r2, r0, #0 - ldr r0, _08057040 @ =0x0FFFFFFF - ands r2, r0 - movs r4, #0 - movs r3, #0xf -_08057002: - mov r0, sp - adds r1, r0, r4 - adds r0, r2, #0 - ands r0, r3 - strb r0, [r1] - adds r4, #1 - lsrs r2, r2, #4 - cmp r2, #0 - bne _08057002 - movs r3, #0 - subs r2, r4, #1 - cmp r2, #0 - blt _08057032 - movs r6, #0x30 -_0805701E: - adds r1, r5, r3 - mov r7, sp - adds r0, r7, r2 - ldrb r0, [r0] - orrs r0, r6 - strb r0, [r1] - adds r3, #1 - subs r2, #1 - cmp r2, #0 - bge _0805701E -_08057032: - adds r1, r5, r3 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - add sp, #8 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08057040: .4byte 0x0FFFFFFF - - thumb_func_start sub_08057044 -sub_08057044: @ 0x08057044 - push {r4, r5, lr} - sub sp, #8 - adds r5, r1, #0 - adds r4, r2, #0 - mov r1, sp - bl sub_08056FEC - ldr r2, [sp] - movs r1, #3 - subs r1, r1, r0 - lsls r1, r1, #3 - lsls r2, r1 - orrs r2, r4 - str r2, [r5] - add sp, #8 - pop {r4, r5, pc} - - thumb_func_start sub_08057064 -sub_08057064: @ 0x08057064 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _080570AC @ =gUnk_08107C5C - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r1, _080570B0 @ =gUnk_08107C48 - adds r5, r4, #0 - adds r5, #0x21 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r1, _080570B4 @ =gUnk_08107C40 - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #0 - beq _080570AA - adds r2, r4, #0 - adds r2, #0x20 - ldrb r0, [r2] - cmp r0, r1 - beq _080570AA - strb r1, [r2] - adds r0, r1, #0 - bl sub_0801D7EC -_080570AA: - pop {r4, r5, pc} - .align 2, 0 -_080570AC: .4byte gUnk_08107C5C -_080570B0: .4byte gUnk_08107C48 -_080570B4: .4byte gUnk_08107C40 - - thumb_func_start sub_080570B8 -sub_080570B8: @ 0x080570B8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x20 - ldrb r0, [r0] - bl sub_0801D7EC - movs r0, #0 - str r0, [r4, #0x34] - adds r1, r4, #0 - adds r1, #0x21 - ldrb r0, [r1] - cmp r0, #3 - bne _080570E0 - ldr r1, _080570DC @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0x32] - b _080570F0 - .align 2, 0 -_080570DC: .4byte gUnk_03000F50 -_080570E0: - ldr r0, _080570F4 @ =gUnk_08107C48 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_080570F0: - pop {r4, pc} - .align 2, 0 -_080570F4: .4byte gUnk_08107C48 - - thumb_func_start sub_080570F8 -sub_080570F8: @ 0x080570F8 - push {lr} - ldr r1, _08057110 @ =gUnk_03000F50 - ldrh r2, [r1] - ldr r0, _08057114 @ =0x0000F7FF - ands r0, r2 - movs r2, #0 - strh r0, [r1] - adds r1, #0x66 - strh r2, [r1] - bl sub_08056250 - pop {pc} - .align 2, 0 -_08057110: .4byte gUnk_03000F50 -_08057114: .4byte 0x0000F7FF - - thumb_func_start sub_08057118 -sub_08057118: @ 0x08057118 - push {r4, lr} - adds r3, r0, #0 - movs r1, #0 - strb r1, [r3, #0xe] - adds r0, #0x20 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - movs r0, #1 - strb r0, [r3, #0xc] - ldr r1, _08057160 @ =gUnk_03000F50 - ldr r0, _08057164 @ =0x00001E04 - strh r0, [r1, #0x2c] - ldrh r0, [r1] - movs r4, #0x80 - lsls r4, r4, #4 - adds r2, r4, #0 - orrs r0, r2 - strh r0, [r1] - adds r2, r1, #0 - adds r2, #0x66 - ldr r0, _08057168 @ =0x00003648 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - ldr r1, _0805716C @ =sub_080570B8 - ldr r2, _08057170 @ =sub_080570F8 - adds r0, r3, #0 - bl sub_08052D74 - pop {r4, pc} - .align 2, 0 -_08057160: .4byte gUnk_03000F50 -_08057164: .4byte 0x00001E04 -_08057168: .4byte 0x00003648 -_0805716C: .4byte sub_080570B8 -_08057170: .4byte sub_080570F8 - - thumb_func_start sub_08057174 -sub_08057174: @ 0x08057174 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_0804B128 - adds r3, r0, #0 - ldrb r0, [r3] - cmp r0, #0xff - bne _08057188 - b _0805728A -_08057188: - ldr r1, _080571E8 @ =gLinkEntity - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - bge _08057194 - adds r0, #0xf -_08057194: - asrs r6, r0, #4 - movs r7, #0x32 - ldrsh r0, [r1, r7] - cmp r0, #0 - bge _080571A0 - adds r0, #0xf -_080571A0: - asrs r5, r0, #4 - movs r0, #0x21 - adds r0, r0, r4 - mov ip, r0 -_080571A8: - ldrb r0, [r3] - mov r1, ip - ldrb r1, [r1] - cmp r0, r1 - beq _08057282 - ldr r1, _080571EC @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - lsrs r0, r0, #4 - ldrb r7, [r3, #1] - adds r2, r0, r7 - ldrh r0, [r1, #8] - lsrs r0, r0, #4 - ldrb r1, [r3, #2] - adds r0, r0, r1 - subs r0, r5, r0 - ldrb r7, [r3, #4] - cmp r0, r7 - bhs _08057282 - subs r0, r6, r2 - ldrb r1, [r3, #3] - cmp r0, r1 - bhs _08057282 - ldrb r0, [r3] - subs r0, #1 - cmp r0, #5 - bhi _08057268 - lsls r0, r0, #2 - ldr r1, _080571F0 @ =_080571F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080571E8: .4byte gLinkEntity -_080571EC: .4byte gUnk_03000BF0 -_080571F0: .4byte _080571F4 -_080571F4: @ jump table - .4byte _0805720C @ case 0 - .4byte _08057220 @ case 1 - .4byte _08057258 @ case 2 - .4byte _08057246 @ case 3 - .4byte _08057216 @ case 4 - .4byte _08057236 @ case 5 -_0805720C: - mov r2, ip - ldrb r0, [r2] - cmp r0, #2 - bne _08057268 - b _08057260 -_08057216: - mov r7, ip - ldrb r0, [r7] - cmp r0, #6 - bne _08057268 - b _08057260 -_08057220: - mov r0, ip - ldrb r1, [r0] - cmp r1, #0 - bne _08057268 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x20 - strb r1, [r0] - b _08057268 -_08057236: - mov r2, ip - ldrb r1, [r2] - cmp r1, #0 - bne _08057268 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - b _08057268 -_08057246: - mov r7, ip - ldrb r1, [r7] - cmp r1, #0 - bne _08057268 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - str r1, [r4, #0x34] - b _08057268 -_08057258: - mov r1, ip - ldrb r0, [r1] - cmp r0, #4 - bne _08057268 -_08057260: - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #9 - strb r0, [r4, #0xe] -_08057268: - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08057282 - movs r0, #8 - strb r0, [r4, #0xf] - ldrb r0, [r3] - mov r2, ip - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #1 - strb r0, [r1] - b _0805728A -_08057282: - adds r3, #5 - ldrb r0, [r3] - cmp r0, #0xff - bne _080571A8 -_0805728A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805728C -sub_0805728C: @ 0x0805728C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080572CA - movs r0, #8 - strb r0, [r4, #0xf] - ldr r2, _080572CC @ =gUnk_03000F50 - ldr r3, _080572D0 @ =gUnk_08107C1C - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r3 - ldrh r0, [r0] - adds r2, #0x68 - strh r0, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xa - bne _080572CA - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #0 - strb r0, [r1] -_080572CA: - pop {r4, pc} - .align 2, 0 -_080572CC: .4byte gUnk_03000F50 -_080572D0: .4byte gUnk_08107C1C - - thumb_func_start sub_080572D4 -sub_080572D4: @ 0x080572D4 - push {r4, r5, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xf] - subs r0, #1 - strb r0, [r3, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08057320 - movs r0, #8 - strb r0, [r3, #0xf] - ldr r5, _08057324 @ =gUnk_03000F50 - ldr r2, _08057328 @ =gUnk_08107C1C - ldrb r0, [r3, #0xe] - adds r1, r0, #0 - adds r1, #0xff - strb r1, [r3, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r5, #0 - adds r0, #0x68 - movs r4, #0 - strh r2, [r0] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xff - bne _08057320 - movs r0, #1 - strb r0, [r3, #0xc] - adds r0, r3, #0 - adds r0, #0x22 - strb r4, [r0] - subs r0, #1 - strb r4, [r0] - adds r0, r5, #0 - adds r0, #0x6c - strb r4, [r0] -_08057320: - pop {r4, r5, pc} - .align 2, 0 -_08057324: .4byte gUnk_03000F50 -_08057328: .4byte gUnk_08107C1C - - thumb_func_start sub_0805732C -sub_0805732C: @ 0x0805732C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - adds r5, r1, #0 - ldr r2, _08057390 @ =gUnk_03003DE4 - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _08057394 @ =gUnk_02017AA0 - adds r4, r0, r1 - movs r3, #0 - mov ip, r2 - mov r8, r1 - ldr r0, _08057398 @ =gUnk_080C9160 - mov sb, r0 - movs r2, #0xff - ldr r1, _0805739C @ =gUnk_03000F50 -_08057354: - adds r0, r5, r3 - ands r0, r2 - lsls r0, r0, #1 - add r0, sb - movs r7, #0 - ldrsh r0, [r0, r7] - muls r0, r6, r0 - lsrs r0, r0, #8 - ldrh r7, [r1, #0x2e] - adds r0, r0, r7 - strh r0, [r4] - adds r4, #2 - adds r3, #1 - cmp r3, #0x9f - bls _08057354 - mov r0, ip - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - add r0, r8 - ldr r1, _080573A0 @ =0x0400001C - ldr r2, _080573A4 @ =0xA2600001 - bl sub_0805622C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08057390: .4byte gUnk_03003DE4 -_08057394: .4byte gUnk_02017AA0 -_08057398: .4byte gUnk_080C9160 -_0805739C: .4byte gUnk_03000F50 -_080573A0: .4byte 0x0400001C -_080573A4: .4byte 0xA2600001 - - thumb_func_start nullsub_494 -nullsub_494: @ 0x080573A8 - bx lr - .align 2, 0 - - thumb_func_start sub_080573AC -sub_080573AC: @ 0x080573AC - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r2, _08057434 @ =gUnk_03000BF0 - ldr r0, [r2, #0x28] - ldr r1, _08057438 @ =0xFFFFE000 - adds r0, r0, r1 - str r0, [r2, #0x28] - ldr r0, [r2, #0x2c] - ldr r1, _0805743C @ =0xFFFFF000 - adds r0, r0, r1 - str r0, [r2, #0x2c] - ldr r5, _08057440 @ =gUnk_03000F50 - movs r1, #0xa - ldrsh r0, [r2, r1] - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #1 - ldrh r1, [r2, #0x2a] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - movs r1, #0xc - ldrsh r0, [r2, r1] - ldrh r1, [r2, #8] - subs r0, r0, r1 - asrs r0, r0, #1 - ldrh r2, [r2, #0x2e] - adds r0, r0, r2 - strh r0, [r5, #0x30] - ldr r2, _08057444 @ =gUnk_080C9160 - ldr r4, _08057448 @ =gUnk_030010A0 - ldr r1, [r4] - ldrb r0, [r4] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - asrs r0, r0, #5 - adds r0, #0x10 - bl sub_0805732C - adds r0, r6, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0 - bne _08057430 - ldr r0, [r4] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _08057430 - adds r2, r6, #0 - adds r2, #0x24 - ldrb r0, [r2] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r2] - ldr r1, _0805744C @ =gUnk_08107C30 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] -_08057430: - pop {r4, r5, r6, pc} - .align 2, 0 -_08057434: .4byte gUnk_03000BF0 -_08057438: .4byte 0xFFFFE000 -_0805743C: .4byte 0xFFFFF000 -_08057440: .4byte gUnk_03000F50 -_08057444: .4byte gUnk_080C9160 -_08057448: .4byte gUnk_030010A0 -_0805744C: .4byte gUnk_08107C30 - - thumb_func_start sub_08057450 -sub_08057450: @ 0x08057450 - push {r4, r5, r6, lr} - adds r3, r0, #0 - ldr r4, _08057504 @ =gUnk_03000F50 - movs r0, #0x10 - strh r0, [r4, #0x2e] - ldr r0, _08057508 @ =gUnk_03000BF0 - movs r2, #0xc - ldrsh r1, [r0, r2] - ldrh r0, [r0, #8] - subs r1, r1, r0 - asrs r1, r1, #2 - movs r2, #0x3f - adds r0, r1, #0 - ands r0, r2 - strh r0, [r4, #0x30] - cmp r1, #0 - bge _08057474 - adds r1, #0x3f -_08057474: - asrs r0, r1, #6 - lsls r0, r0, #9 - ldr r1, _0805750C @ =gUnk_02001A40 - adds r1, r0, r1 - str r1, [r4, #0x34] - ldr r0, [r3, #0x34] - cmp r0, r1 - beq _0805748A - str r1, [r3, #0x34] - movs r0, #1 - strh r0, [r4, #0x32] -_0805748A: - adds r0, r3, #0 - adds r0, #0x22 - ldrb r0, [r0] - ldr r5, _08057510 @ =gUnk_030010A0 - cmp r0, #0 - bne _080574BE - ldr r0, [r5] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _080574BE - adds r2, r3, #0 - adds r2, #0x24 - ldrb r0, [r2] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r2] - ldr r1, _08057514 @ =gUnk_08107C30 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] -_080574BE: - ldr r0, [r5] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08057502 - adds r0, r3, #0 - adds r0, #0x23 - ldrb r1, [r0] - lsls r1, r1, #5 - ldr r2, _08057518 @ =gUnk_085B4180 - adds r1, r1, r2 - movs r5, #0 - adds r6, r0, #0 - adds r4, r1, #0 - adds r4, #0xe -_080574DC: - adds r0, r5, #0 - adds r0, #0x87 - ldrh r1, [r4] - bl sub_0801D79C - adds r0, r5, #0 - adds r0, #0x8c - ldrh r1, [r4, #0xa] - bl sub_0801D79C - adds r4, #2 - adds r5, #1 - cmp r5, #3 - bls _080574DC - ldrb r0, [r6] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r6] -_08057502: - pop {r4, r5, r6, pc} - .align 2, 0 -_08057504: .4byte gUnk_03000F50 -_08057508: .4byte gUnk_03000BF0 -_0805750C: .4byte gUnk_02001A40 -_08057510: .4byte gUnk_030010A0 -_08057514: .4byte gUnk_08107C30 -_08057518: .4byte gUnk_085B4180 - - thumb_func_start sub_0805751C -sub_0805751C: @ 0x0805751C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _0805753A - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _08057544 @ =gUnk_03000F50 - strh r1, [r0, #0x32] - strh r1, [r0, #0x1a] - ldr r1, _08057548 @ =sub_080576A0 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 -_0805753A: - adds r0, r4, #0 - bl sub_0805754C - pop {r4, pc} - .align 2, 0 -_08057544: .4byte gUnk_03000F50 -_08057548: .4byte sub_080576A0 - - thumb_func_start sub_0805754C -sub_0805754C: @ 0x0805754C - push {r4, r5, r6, lr} - adds r2, r0, #0 - ldr r3, _080575BC @ =gUnk_03000BF0 - movs r0, #0xc - ldrsh r1, [r3, r0] - ldrh r0, [r3, #8] - subs r1, r1, r0 - asrs r0, r1, #3 - adds r1, r1, r0 - ldr r4, _080575C0 @ =gUnk_03000F50 - movs r6, #0x3f - adds r0, r1, #0 - ands r0, r6 - strh r0, [r4, #0x30] - adds r0, r1, #0 - cmp r1, #0 - bge _08057570 - adds r0, #0x3f -_08057570: - asrs r0, r0, #6 - lsls r0, r0, #9 - ldr r5, _080575C4 @ =gUnk_02002F00 - adds r1, r0, r5 - str r1, [r4, #0x34] - ldr r0, [r2, #0x38] - cmp r0, r1 - beq _08057586 - str r1, [r2, #0x38] - movs r0, #1 - strh r0, [r4, #0x32] -_08057586: - movs r0, #0xc - ldrsh r1, [r3, r0] - ldrh r0, [r3, #8] - subs r1, r1, r0 - asrs r0, r1, #2 - adds r1, r1, r0 - adds r0, r1, #0 - ands r0, r6 - strh r0, [r4, #0x18] - adds r0, r1, #0 - cmp r0, #0 - bge _080575A0 - adds r0, #0x3f -_080575A0: - asrs r0, r0, #6 - lsls r0, r0, #9 - movs r3, #0x80 - lsls r3, r3, #6 - adds r1, r5, r3 - adds r1, r0, r1 - str r1, [r4, #0x1c] - ldr r0, [r2, #0x3c] - cmp r0, r1 - beq _080575BA - str r1, [r2, #0x3c] - movs r0, #1 - strh r0, [r4, #0x1a] -_080575BA: - pop {r4, r5, r6, pc} - .align 2, 0 -_080575BC: .4byte gUnk_03000BF0 -_080575C0: .4byte gUnk_03000F50 -_080575C4: .4byte gUnk_02002F00 - - thumb_func_start sub_080575C8 -sub_080575C8: @ 0x080575C8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _08057664 @ =gUnk_0200B650 - movs r5, #0 - str r5, [r0] - movs r0, #0x80 - lsls r0, r0, #0x13 - strh r5, [r0] - adds r0, r4, #0 - bl sub_0801D7EC - ldr r0, _08057668 @ =gUnk_02034350 - strb r4, [r0, #0x10] - ldr r3, _0805766C @ =gUnk_03000BF0 - movs r0, #0xc - ldrsh r1, [r3, r0] - ldrh r0, [r3, #8] - subs r1, r1, r0 - asrs r0, r1, #3 - adds r1, r1, r0 - ldr r2, _08057670 @ =gUnk_03000F50 - movs r7, #0x3f - adds r0, r1, #0 - ands r0, r7 - strh r0, [r2, #0x30] - strh r5, [r2, #0x2e] - adds r0, r1, #0 - cmp r1, #0 - bge _08057604 - adds r0, #0x3f -_08057604: - asrs r0, r0, #6 - lsls r0, r0, #9 - ldr r4, _08057674 @ =gUnk_02002F00 - adds r0, r0, r4 - str r0, [r2, #0x34] - ldr r0, _08057678 @ =0x00001D49 - strh r0, [r2, #0x2c] - movs r6, #1 - strh r6, [r2, #0x32] - movs r0, #0xc - ldrsh r1, [r3, r0] - ldrh r0, [r3, #8] - subs r1, r1, r0 - asrs r0, r1, #2 - adds r1, r1, r0 - adds r0, r1, #0 - ands r0, r7 - strh r0, [r2, #0x18] - strh r5, [r2, #0x16] - adds r0, r1, #0 - cmp r0, #0 - bge _08057632 - adds r0, #0x3f -_08057632: - asrs r0, r0, #6 - lsls r0, r0, #9 - movs r3, #0x80 - lsls r3, r3, #6 - adds r1, r4, r3 - adds r0, r0, r1 - str r0, [r2, #0x1c] - ldr r0, _0805767C @ =0x00001E49 - strh r0, [r2, #0x14] - strh r6, [r2, #0x1a] - adds r1, r2, #0 - adds r1, #0x66 - ldr r0, _08057680 @ =0x00003C48 - strh r0, [r1] - adds r1, #2 - ldr r0, _08057684 @ =0x00000609 - strh r0, [r1] - ldrh r0, [r2] - movs r3, #0xa0 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08057664: .4byte gUnk_0200B650 -_08057668: .4byte gUnk_02034350 -_0805766C: .4byte gUnk_03000BF0 -_08057670: .4byte gUnk_03000F50 -_08057674: .4byte gUnk_02002F00 -_08057678: .4byte 0x00001D49 -_0805767C: .4byte 0x00001E49 -_08057680: .4byte 0x00003C48 -_08057684: .4byte 0x00000609 - - thumb_func_start sub_08057688 -sub_08057688: @ 0x08057688 - ldr r0, _08057694 @ =gUnk_03000F50 - ldr r1, _08057698 @ =0x00001D48 - strh r1, [r0, #0x2c] - ldr r1, _0805769C @ =0x00001E48 - strh r1, [r0, #0x14] - bx lr - .align 2, 0 -_08057694: .4byte gUnk_03000F50 -_08057698: .4byte 0x00001D48 -_0805769C: .4byte 0x00001E48 - - thumb_func_start sub_080576A0 -sub_080576A0: @ 0x080576A0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080576BC @ =gUnk_02034350 - ldrb r0, [r0, #0x10] - bl sub_0801D7EC - movs r0, #0 - str r0, [r4, #0x38] - str r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_0805754C - pop {r4, pc} - .align 2, 0 -_080576BC: .4byte gUnk_02034350 - - thumb_func_start sub_080576C0 -sub_080576C0: @ 0x080576C0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080576EC - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x38] - ldr r2, _080576E8 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - subs r0, #0x20 - str r0, [r4, #0x20] - ldrh r0, [r4, #0x3a] - ldrh r1, [r2, #8] - adds r0, r0, r1 - subs r0, #0x20 - str r0, [r4, #0x24] - b _080577AA - .align 2, 0 -_080576E8: .4byte gUnk_03000BF0 -_080576EC: - ldr r0, [r4, #0x20] - ldr r1, [r4, #0x24] - movs r2, #0x40 - movs r3, #0x40 - bl sub_0806FBFC - cmp r0, #0 - beq _080577A8 - ldr r5, _08057738 @ =gUnk_02033A90 - ldr r0, [r4, #0x20] - adds r0, #0x20 - strh r0, [r5, #0x12] - ldr r1, [r4, #0x24] - ldr r2, _0805773C @ =gUnk_08107C6C - ldrb r0, [r4, #0xa] - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #0x20 - adds r1, r1, r0 - strh r1, [r5, #0x14] - adds r0, r4, #0 - adds r0, #0x34 - ldrb r0, [r0] - strb r0, [r5, #0x16] - ldrb r0, [r4, #0xa] - strb r0, [r5, #0x17] - movs r0, #0x14 - bl GetProgressFlag - cmp r0, #0 - bne _08057740 - movs r0, #1 - strb r0, [r5, #0x18] - movs r0, #5 - strb r0, [r5, #0x17] - b _080577AA - .align 2, 0 -_08057738: .4byte gUnk_02033A90 -_0805773C: .4byte gUnk_08107C6C -_08057740: - ldr r2, _08057758 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0805775C - ldrb r0, [r2, #2] - cmp r0, #0 - bne _0805775C - movs r0, #2 - strb r0, [r5, #0x18] - b _0805776A - .align 2, 0 -_08057758: .4byte gUnk_03003F80 -_0805775C: - bl sub_08057810 - cmp r0, #0 - beq _0805776A - ldr r1, _080577A0 @ =gUnk_02033A90 - movs r0, #3 - strb r0, [r1, #0x18] -_0805776A: - ldrh r0, [r4, #0x38] - ldrh r1, [r4, #0x3a] - ldrb r2, [r4, #0xe] - bl sub_080002C0 - cmp r0, #0x3d - bne _080577AA - ldrh r0, [r4, #0x38] - ldr r2, _080577A4 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - ldrh r1, [r4, #0x3a] - ldrh r2, [r2, #8] - adds r1, r1, r2 - ldrb r2, [r4, #0xe] - bl sub_080577AC - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080577AA - movs r0, #1 - strb r0, [r4, #0xf] - movs r0, #0xa9 - lsls r0, r0, #1 - bl sub_080A3268 - b _080577AA - .align 2, 0 -_080577A0: .4byte gUnk_02033A90 -_080577A4: .4byte gUnk_03000BF0 -_080577A8: - strb r0, [r4, #0xf] -_080577AA: - pop {r4, r5, pc} - - thumb_func_start sub_080577AC -sub_080577AC: @ 0x080577AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r7, r1, #0 - mov r8, r2 - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #7 - ands r0, r5 - cmp r0, #0 - bne _08057808 - movs r0, #0xf - movs r1, #0x26 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08057808 - lsrs r3, r5, #8 - movs r0, #0xf - ands r3, r0 - lsrs r2, r5, #0x10 - ands r2, r0 - cmp r2, #4 - ble _080577E6 - rsbs r2, r2, #0 -_080577E6: - lsrs r0, r5, #0x18 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080577F2 - rsbs r3, r3, #0 -_080577F2: - adds r0, r6, r3 - strh r0, [r4, #0x2e] - adds r0, r7, r2 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x38 - mov r1, r8 - strb r1, [r0] - adds r0, r4, #0 - bl sub_08016A04 -_08057808: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08057810 -sub_08057810: @ 0x08057810 - push {lr} - ldr r2, _08057848 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08057850 - adds r0, r2, #0 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, #0 - bne _08057850 - ldr r0, _0805784C @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - cmp r0, #6 - beq _08057850 - ldrb r0, [r2, #5] - cmp r0, #0 - bne _08057850 - adds r0, r2, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #1 - bgt _08057850 - cmp r0, #0 - blt _08057850 - movs r0, #1 - b _08057852 - .align 2, 0 -_08057848: .4byte gUnk_03003F80 -_0805784C: .4byte gUnk_02033A90 -_08057850: - movs r0, #0 -_08057852: - pop {pc} - - thumb_func_start sub_08057854 -sub_08057854: @ 0x08057854 - push {lr} - ldr r2, _08057868 @ =gUnk_08107C70 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08057868: .4byte gUnk_08107C70 - - thumb_func_start sub_0805786C -sub_0805786C: @ 0x0805786C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - bl sub_080805F8 - ldr r6, _080578D4 @ =gUnk_03004030 - ldrb r0, [r6, #8] - cmp r0, #0 - beq _08057914 - ldr r0, [r6] - cmp r0, #0 - bne _080578C0 - movs r0, #0xff - strb r0, [r6, #0xa] - ldr r0, _080578D8 @ =gUnk_03000BF0 - ldrb r5, [r0, #5] - ldr r7, _080578DC @ =gUnk_08107DC0 - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r4, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08057AA8 - adds r4, r0, #0 - cmp r4, #0 - beq _080578C0 - ldrb r5, [r4, #5] - ldrb r0, [r4, #4] - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r4, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08057AA8 - adds r4, r0, #0 - cmp r4, #0 - beq _080578C0 - str r4, [r6] -_080578C0: - ldr r0, _080578D8 @ =gUnk_03000BF0 - ldrb r5, [r0, #5] - ldr r1, _080578DC @ =gUnk_08107DC0 - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r6, #0x81 - lsls r6, r6, #7 - b _08057906 - .align 2, 0 -_080578D4: .4byte gUnk_03004030 -_080578D8: .4byte gUnk_03000BF0 -_080578DC: .4byte gUnk_08107DC0 -_080578E0: - ldrh r1, [r4] - adds r1, #0x3f - adds r0, r6, #0 - movs r2, #1 - bl sub_0800015E - ldrh r1, [r4] - adds r1, #0x40 - adds r0, r6, #0 - movs r2, #1 - bl sub_0800015E - ldrh r1, [r4] - adds r1, #0x41 - adds r0, r6, #0 - movs r2, #1 - bl sub_0800015E - adds r4, #8 -_08057906: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08057AA8 - adds r4, r0, #0 - cmp r4, #0 - bne _080578E0 -_08057914: - movs r0, #1 - mov r1, r8 - strb r0, [r1, #0xc] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08057920 -sub_08057920: @ 0x08057920 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _08057934 @ =gUnk_03000BF0 - ldrb r5, [r0, #5] - ldr r1, _08057938 @ =gUnk_08107DC0 - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - b _0805793E - .align 2, 0 -_08057934: .4byte gUnk_03000BF0 -_08057938: .4byte gUnk_08107DC0 -_0805793C: - adds r4, #8 -_0805793E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08057AA8 - adds r4, r0, #0 - cmp r4, #0 - beq _08057958 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0805795C - cmp r0, #0 - beq _0805793C -_08057958: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0805795C -sub_0805795C: @ 0x0805795C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r6, r1, #0 - ldr r0, _080579BC @ =gUnk_03004030 - ldrb r0, [r0, #8] - cmp r0, #0 - beq _080579C8 - ldr r1, _080579C0 @ =gLinkEntity - ldr r3, _080579C4 @ =gUnk_03000BF0 - ldrh r2, [r1, #0x2e] - ldrh r0, [r3, #6] - subs r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldrh r0, [r1, #0x32] - ldrh r1, [r3, #8] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldrh r3, [r6] - movs r1, #0x3f - ands r1, r3 - lsls r1, r1, #4 - adds r1, #8 - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r3 - lsls r0, r0, #0xe - movs r3, #0xc0 - lsls r3, r3, #0xd - adds r0, r0, r3 - lsrs r3, r0, #0x10 - subs r2, r2, r1 - adds r0, r2, #0 - adds r0, #0x18 - cmp r0, #0x30 - bhi _08057A14 - subs r0, r4, r3 - adds r0, #8 - cmp r0, #0x10 - bhi _08057A14 - cmp r4, r3 - bhs _08057A00 - adds r0, r2, #0 - adds r0, #0xc - cmp r0, #0x18 - bls _08057A14 - b _08057A00 - .align 2, 0 -_080579BC: .4byte gUnk_03004030 -_080579C0: .4byte gLinkEntity -_080579C4: .4byte gUnk_03000BF0 -_080579C8: - ldr r3, _08057A0C @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldr r2, _08057A10 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r1, #0x3f - ands r4, r1 - movs r0, #0x32 - ldrsh r5, [r3, r0] - ldrh r2, [r2, #8] - subs r0, r5, r2 - asrs r0, r0, #4 - ands r0, r1 - lsls r0, r0, #6 - orrs r4, r0 - ldrh r1, [r6] - cmp r4, r1 - bne _08057A14 - lsrs r0, r4, #6 - lsls r0, r0, #4 - adds r0, r2, r0 - adds r0, #6 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r5, r3 - bge _08057A14 -_08057A00: - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_08057A18 - movs r0, #1 - b _08057A16 - .align 2, 0 -_08057A0C: .4byte gLinkEntity -_08057A10: .4byte gUnk_03000BF0 -_08057A14: - movs r0, #0 -_08057A16: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08057A18 -sub_08057A18: @ 0x08057A18 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r5, r1, #0 - bl sub_0805E5A8 - ldr r6, _08057A94 @ =gUnk_03004030 - ldrb r0, [r6, #9] - strb r0, [r6, #0xa] - ldr r3, _08057A98 @ =gUnk_03000BF0 - ldrb r0, [r3, #4] - strb r0, [r6, #9] - ldr r1, _08057A9C @ =gUnk_030010A0 - ldrb r0, [r5, #4] - strb r0, [r1, #0xc] - ldrb r0, [r5, #5] - strb r0, [r1, #0xd] - ldrb r0, [r5, #4] - strb r0, [r3, #4] - ldrb r0, [r5, #5] - strb r0, [r3, #5] - str r5, [r6] - ldr r4, _08057AA0 @ =gLinkEntity - ldrh r1, [r4, #0x2e] - ldrh r0, [r3, #6] - subs r1, r1, r0 - ldrh r2, [r5] - movs r0, #0x3f - ands r0, r2 - lsls r0, r0, #4 - subs r1, r1, r0 - strh r1, [r6, #4] - ldrh r1, [r4, #0x32] - ldrh r0, [r3, #8] - subs r1, r1, r0 - ldrh r2, [r5] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r2 - lsrs r0, r0, #2 - subs r1, r1, r0 - strh r1, [r6, #6] - ldrb r1, [r6, #8] - cmp r1, #0 - bne _08057A86 - ldrb r0, [r5, #5] - movs r2, #0x80 - orrs r0, r2 - ldrb r3, [r6, #0xb] - cmp r0, r3 - beq _08057A80 - ldr r0, _08057AA4 @ =gUnk_02034480 - strh r1, [r0] -_08057A80: - ldrb r0, [r5, #5] - orrs r0, r2 - strb r0, [r6, #0xb] -_08057A86: - ldrb r0, [r5, #3] - bl sub_08080930 - adds r0, r7, #0 - bl sub_0805E900 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08057A94: .4byte gUnk_03004030 -_08057A98: .4byte gUnk_03000BF0 -_08057A9C: .4byte gUnk_030010A0 -_08057AA0: .4byte gLinkEntity -_08057AA4: .4byte gUnk_02034480 - - thumb_func_start sub_08057AA8 -sub_08057AA8: @ 0x08057AA8 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2] - ldr r3, _08057AC0 @ =0x0000FFFF - cmp r0, r3 - beq _08057ACC -_08057AB4: - ldrb r0, [r2, #2] - cmp r0, r1 - bne _08057AC4 - adds r0, r2, #0 - b _08057ACE - .align 2, 0 -_08057AC0: .4byte 0x0000FFFF -_08057AC4: - adds r2, #8 - ldrh r0, [r2] - cmp r0, r3 - bne _08057AB4 -_08057ACC: - movs r0, #0 -_08057ACE: - pop {pc} - - thumb_func_start sub_08057AD0 -sub_08057AD0: @ 0x08057AD0 - push {lr} - ldr r2, _08057AE4 @ =gUnk_08108044 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08057AE4: .4byte gUnk_08108044 - - thumb_func_start sub_08057AE8 -sub_08057AE8: @ 0x08057AE8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - ldrb r0, [r5, #0xe] - cmp r0, #1 - bne _08057B04 - ldr r0, _08057B00 @ =0x00000323 - strh r0, [r5, #0x30] - b _08057B12 - .align 2, 0 -_08057B00: .4byte 0x00000323 -_08057B04: - movs r0, #2 - ands r0, r1 - movs r2, #0x36 - cmp r0, #0 - beq _08057B10 - movs r2, #0x37 -_08057B10: - strh r2, [r5, #0x30] -_08057B12: - ldr r2, _08057B9C @ =gUnk_08108024 - lsls r3, r1, #1 - adds r0, r3, r2 - ldrh r0, [r0] - movs r4, #0 - strh r0, [r5, #0x28] - adds r1, #1 - lsls r1, r1, #1 - adds r2, r1, r2 - ldrh r0, [r2] - strh r0, [r5, #0x2a] - ldr r2, _08057BA0 @ =gUnk_08108034 - adds r3, r3, r2 - ldrh r0, [r3] - strh r0, [r5, #0x2c] - adds r1, r1, r2 - ldrh r0, [r1] - strh r0, [r5, #0x2e] - ldrb r2, [r5, #0xb] - lsrs r0, r2, #2 - movs r1, #0xf - ands r0, r1 - adds r0, #1 - strh r0, [r5, #0x32] - movs r0, #0x1c - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - movs r0, #0x80 - ands r0, r2 - movs r1, #1 - cmp r0, #0 - beq _08057B54 - movs r1, #2 -_08057B54: - strb r1, [r5, #0xc] - cmp r1, #2 - bne _08057B9A - ldrh r0, [r5, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08057B9A - ldrh r0, [r5, #0x32] - cmp r0, #0 - beq _08057B94 -_08057B6A: - ldrh r1, [r5, #0x28] - ldrh r2, [r5, #0x2a] - adds r0, r5, #0 - bl sub_08057CA4 - ldrh r0, [r5, #0x30] - movs r2, #0x38 - ldrsh r1, [r5, r2] - movs r3, #0x3a - ldrsh r2, [r5, r3] - lsls r2, r2, #6 - orrs r1, r2 - ldrh r2, [r5, #0x3c] - bl sub_0807B7D8 - ldrh r0, [r5, #0x32] - subs r0, #1 - strh r0, [r5, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08057B6A -_08057B94: - adds r0, r5, #0 - bl sub_0805E900 -_08057B9A: - pop {r4, r5, pc} - .align 2, 0 -_08057B9C: .4byte gUnk_08108024 -_08057BA0: .4byte gUnk_08108034 - - thumb_func_start sub_08057BA4 -sub_08057BA4: @ 0x08057BA4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08057C24 - movs r0, #8 - strb r0, [r4, #0xe] - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08057BF6 - ldrh r0, [r4, #0x32] - ldrb r1, [r4, #0xf] - cmp r0, r1 - beq _08057C24 - ldrh r1, [r4, #0x28] - ldrh r2, [r4, #0x2a] - adds r0, r4, #0 - bl sub_08057CA4 - ldrh r0, [r4, #0x30] - movs r2, #0x38 - ldrsh r1, [r4, r2] - movs r3, #0x3a - ldrsh r2, [r4, r3] - lsls r2, r2, #6 - orrs r1, r2 - ldrh r2, [r4, #0x3c] - bl sub_0807B7D8 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - movs r0, #0x71 - bl sub_080A3268 - b _08057C24 -_08057BF6: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08057C24 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r2, #0x3a - ldrsh r1, [r4, r2] - lsls r1, r1, #6 - orrs r0, r1 - ldrh r1, [r4, #0x3c] - bl sub_0807BA8C - ldrh r1, [r4, #0x2c] - ldrh r2, [r4, #0x2e] - adds r0, r4, #0 - bl sub_08057CA4 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r0, #0x71 - bl sub_080A3268 -_08057C24: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08057C28 -sub_08057C28: @ 0x08057C28 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08057C44 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08057C9C - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _08057C9C -_08057C44: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08057C9C - movs r0, #8 - strb r0, [r4, #0xe] - ldrh r0, [r4, #0x32] - ldrb r1, [r4, #0xf] - cmp r0, r1 - beq _08057C88 - ldrh r1, [r4, #0x28] - ldrh r2, [r4, #0x2a] - adds r0, r4, #0 - bl sub_08057CA4 - ldrh r0, [r4, #0x30] - movs r2, #0x38 - ldrsh r1, [r4, r2] - movs r3, #0x3a - ldrsh r2, [r4, r3] - lsls r2, r2, #6 - orrs r1, r2 - ldrh r2, [r4, #0x3c] - bl sub_0807B7D8 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - movs r0, #0x71 - bl sub_080A3268 - b _08057C9C -_08057C88: - ldrh r1, [r4, #0x30] - ldr r0, _08057CA0 @ =0x00000323 - cmp r1, r0 - beq _08057C96 - movs r0, #0x72 - bl sub_080A3268 -_08057C96: - adds r0, r4, #0 - bl sub_0805E900 -_08057C9C: - pop {r4, pc} - .align 2, 0 -_08057CA0: .4byte 0x00000323 - - thumb_func_start sub_08057CA4 -sub_08057CA4: @ 0x08057CA4 - ldrh r3, [r0, #0x38] - adds r3, r3, r1 - strh r3, [r0, #0x38] - ldrh r1, [r0, #0x3a] - adds r1, r1, r2 - strh r1, [r0, #0x3a] - bx lr - .align 2, 0 - - thumb_func_start sub_08057CB4 -sub_08057CB4: @ 0x08057CB4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08057CD6 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - bl sub_0804B128 - str r0, [r4, #0x20] - cmp r0, #0 - bne _08057CD6 - adds r0, r4, #0 - bl sub_0805E900 - b _08057D42 -_08057CD6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08057CE4 - ldr r0, _08057D44 @ =gUnk_03003F80 - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - bne _08057D42 -_08057CE4: - ldr r4, [r4, #0x20] - ldrh r0, [r4] - ldr r1, _08057D48 @ =0x0000FFFF - cmp r0, r1 - beq _08057D42 - ldr r5, _08057D4C @ =gLinkEntity - adds r6, r1, #0 -_08057CF2: - ldrb r2, [r4, #7] - movs r0, #3 - ands r0, r2 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08057D3A - ldr r0, _08057D44 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08057D18 - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _08057D3A -_08057D18: - ldrh r0, [r4] - ldrh r1, [r4, #2] - ldrb r2, [r4, #4] - ldrb r3, [r4, #5] - bl sub_0800293E - cmp r0, #0 - beq _08057D3A - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08057D3A - ldrb r0, [r4, #6] - bl sub_0804B128 - bl sub_08080840 -_08057D3A: - adds r4, #8 - ldrh r0, [r4] - cmp r0, r6 - bne _08057CF2 -_08057D42: - pop {r4, r5, r6, pc} - .align 2, 0 -_08057D44: .4byte gUnk_03003F80 -_08057D48: .4byte 0x0000FFFF -_08057D4C: .4byte gLinkEntity - - thumb_func_start sub_08057D50 -sub_08057D50: @ 0x08057D50 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08057D7C - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x20 - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r1, _08057DC0 @ =sub_08057E30 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 -_08057D7C: - adds r0, r4, #0 - bl sub_08057E40 - cmp r0, #0 - beq _08057D9A - ldr r0, _08057DC4 @ =gUnk_02034350 - ldrb r5, [r0, #0x10] - adds r1, r4, #0 - adds r1, #0x20 - ldrb r0, [r1] - cmp r0, r5 - beq _08057D9A - movs r0, #0 - strb r5, [r1] - strb r0, [r4, #0xe] -_08057D9A: - ldr r0, _08057DC8 @ =gUnk_03000BF0 - ldrh r3, [r0] - cmp r3, #0 - bne _08057E2A - adds r0, r4, #0 - adds r0, #0x20 - ldrb r5, [r0] - lsls r1, r5, #6 - ldr r0, _08057DCC @ =gUnk_081080A4 - adds r2, r1, r0 - ldrb r1, [r4, #0xe] - cmp r1, #7 - bgt _08057DD0 - cmp r1, #1 - bge _08057E04 - cmp r1, #0 - beq _08057DD6 - b _08057E2A - .align 2, 0 -_08057DC0: .4byte sub_08057E30 -_08057DC4: .4byte gUnk_02034350 -_08057DC8: .4byte gUnk_03000BF0 -_08057DCC: .4byte gUnk_081080A4 -_08057DD0: - cmp r1, #8 - beq _08057E20 - b _08057E2A -_08057DD6: - ldr r1, _08057DF8 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - ldr r0, [r2] - ldr r1, _08057DFC @ =gUnk_085A2E80 - adds r0, r0, r1 - ldr r1, [r2, #4] - movs r2, #0x80 - lsls r2, r2, #5 - bl sub_08000E96 - ldr r0, _08057E00 @ =gUnk_081081E4 - adds r0, r5, r0 - ldrb r0, [r0] - bl sub_0801D714 - b _08057E24 - .align 2, 0 -_08057DF8: .4byte gUnk_02034490 -_08057DFC: .4byte gUnk_085A2E80 -_08057E00: .4byte gUnk_081081E4 -_08057E04: - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, [r1] - ldr r2, _08057E1C @ =gUnk_085A2E80 - adds r0, r0, r2 - ldr r1, [r1, #4] - movs r2, #0x80 - lsls r2, r2, #5 - bl sub_08000E96 - b _08057E24 - .align 2, 0 -_08057E1C: .4byte gUnk_085A2E80 -_08057E20: - ldr r0, _08057E2C @ =gUnk_02034490 - strb r3, [r0] -_08057E24: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] -_08057E2A: - pop {r4, r5, pc} - .align 2, 0 -_08057E2C: .4byte gUnk_02034490 - - thumb_func_start sub_08057E30 -sub_08057E30: @ 0x08057E30 - push {lr} - ldr r0, _08057E3C @ =gUnk_02034350 - ldrb r0, [r0, #0x10] - bl sub_08057E7C - pop {pc} - .align 2, 0 -_08057E3C: .4byte gUnk_02034350 - - thumb_func_start sub_08057E40 -sub_08057E40: @ 0x08057E40 - push {lr} - ldr r0, _08057E54 @ =gUnk_08108050 - bl sub_08056300 - adds r1, r0, #0 - cmp r1, #0xff - bne _08057E58 - movs r0, #0 - b _08057E5E - .align 2, 0 -_08057E54: .4byte gUnk_08108050 -_08057E58: - ldr r0, _08057E60 @ =gUnk_02034350 - strb r1, [r0, #0x10] - movs r0, #1 -_08057E5E: - pop {pc} - .align 2, 0 -_08057E60: .4byte gUnk_02034350 - - thumb_func_start sub_08057E64 -sub_08057E64: @ 0x08057E64 - push {lr} - ldr r0, _08057E78 @ =gUnk_08108050 - bl sub_08056300 - cmp r0, #0xff - beq _08057E74 - bl sub_08057E7C -_08057E74: - pop {pc} - .align 2, 0 -_08057E78: .4byte gUnk_08108050 - - thumb_func_start sub_08057E7C -sub_08057E7C: @ 0x08057E7C - push {r4, r5, r6, lr} - adds r4, r0, #0 - cmp r4, #4 - bhi _08057EB6 - ldr r0, _08057EB8 @ =gUnk_081081E4 - adds r0, r4, r0 - ldrb r0, [r0] - bl sub_0801D714 - lsls r1, r4, #6 - ldr r0, _08057EBC @ =gUnk_081080A4 - adds r1, r1, r0 - movs r3, #0 - ldr r2, _08057EC0 @ =0x040000D4 - ldr r6, _08057EC4 @ =gUnk_085A2E80 - ldr r5, _08057EC8 @ =0x84000400 -_08057E9C: - ldr r0, [r1] - adds r0, r0, r6 - str r0, [r2] - ldr r0, [r1, #4] - str r0, [r2, #4] - str r5, [r2, #8] - ldr r0, [r2, #8] - adds r3, #1 - adds r1, #8 - cmp r3, #7 - bls _08057E9C - ldr r0, _08057ECC @ =gUnk_02034350 - strb r4, [r0, #0x10] -_08057EB6: - pop {r4, r5, r6, pc} - .align 2, 0 -_08057EB8: .4byte gUnk_081081E4 -_08057EBC: .4byte gUnk_081080A4 -_08057EC0: .4byte 0x040000D4 -_08057EC4: .4byte gUnk_085A2E80 -_08057EC8: .4byte 0x84000400 -_08057ECC: .4byte gUnk_02034350 - - thumb_func_start sub_08057ED0 -sub_08057ED0: @ 0x08057ED0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08057F20 - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _08057EF2 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _08057EF4 @ =gUnk_03000F50 - strh r1, [r0, #0x1a] - strh r1, [r0, #0x32] - ldr r1, _08057EF8 @ =sub_08057EFC - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 -_08057EF2: - pop {r4, pc} - .align 2, 0 -_08057EF4: .4byte gUnk_03000F50 -_08057EF8: .4byte sub_08057EFC - - thumb_func_start sub_08057EFC -sub_08057EFC: @ 0x08057EFC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08057F1C @ =gUnk_02034350 - ldrb r0, [r0, #0x10] - bl sub_0801D7EC - bl sub_08058034 - movs r0, #0 - str r0, [r4, #0x3c] - str r0, [r4, #0x38] - adds r0, r4, #0 - bl sub_08057F20 - pop {r4, pc} - .align 2, 0 -_08057F1C: .4byte gUnk_02034350 - - thumb_func_start sub_08057F20 -sub_08057F20: @ 0x08057F20 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - ldr r5, _08057FF4 @ =gUnk_03000BF0 - movs r0, #0xa - ldrsh r1, [r5, r0] - ldrh r0, [r5, #6] - subs r4, r1, r0 - lsrs r2, r4, #3 - adds r2, r4, r2 - ldrh r0, [r5, #0x1e] - movs r1, #0x80 - lsls r1, r1, #3 - subs r0, r1, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r4, r2, r0 - ldr r6, _08057FF8 @ =gUnk_03000F50 - adds r0, r4, #0 - movs r1, #0xf - ands r0, r1 - strh r0, [r6, #0x2e] - movs r1, #0xc - ldrsh r0, [r5, r1] - ldrh r1, [r5, #8] - subs r0, r0, r1 - movs r1, #0x30 - subs r0, r1, r0 - asrs r0, r0, #2 - mov sl, r1 - mov r1, sl - subs r0, r1, r0 - strh r0, [r6, #0x30] - ldr r0, _08057FFC @ =gUnk_02001A40 - mov r8, r0 - str r0, [r6, #0x34] - ldr r1, _08058000 @ =gUnk_02006F00 - mov sb, r1 - adds r0, r4, #0 - mov r2, r8 - bl sub_08058004 - lsrs r0, r4, #4 - lsls r4, r0, #1 - ldr r0, [r7, #0x38] - cmp r0, r4 - beq _08057F8C - str r4, [r7, #0x38] - movs r0, #1 - strh r0, [r6, #0x32] -_08057F8C: - movs r0, #0xa - ldrsh r1, [r5, r0] - ldrh r0, [r5, #6] - subs r4, r1, r0 - lsrs r2, r4, #2 - adds r2, r4, r2 - ldrh r0, [r5, #0x1e] - movs r1, #0x80 - lsls r1, r1, #3 - subs r0, r1, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r4, r2, r0 - adds r0, r4, #0 - movs r1, #0xf - ands r0, r1 - strh r0, [r6, #0x16] - movs r1, #0xc - ldrsh r0, [r5, r1] - ldrh r1, [r5, #8] - subs r0, r0, r1 - movs r1, #0x30 - subs r0, r1, r0 - asrs r0, r0, #1 - mov r1, sl - subs r0, r1, r0 - strh r0, [r6, #0x18] - movs r2, #0x80 - lsls r2, r2, #4 - add r2, r8 - str r2, [r6, #0x1c] - movs r1, #0x80 - lsls r1, r1, #6 - add r1, sb - adds r0, r4, #0 - bl sub_08058004 - lsrs r0, r4, #4 - lsls r4, r0, #1 - ldr r0, [r7, #0x3c] - cmp r0, r4 - beq _08057FE8 - str r4, [r7, #0x3c] - movs r0, #1 - strh r0, [r6, #0x1a] -_08057FE8: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08057FF4: .4byte gUnk_03000BF0 -_08057FF8: .4byte gUnk_03000F50 -_08057FFC: .4byte gUnk_02001A40 -_08058000: .4byte gUnk_02006F00 - - thumb_func_start sub_08058004 -sub_08058004: @ 0x08058004 - push {r4, r5, r6, lr} - movs r4, #0x20 - lsrs r0, r0, #4 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r3, _0805802C @ =0x040000D4 - ldr r6, _08058030 @ =0x80000020 - movs r5, #0x80 - lsls r5, r5, #1 -_08058016: - str r1, [r3] - str r2, [r3, #4] - str r6, [r3, #8] - ldr r0, [r3, #8] - adds r1, r1, r5 - adds r2, #0x40 - subs r4, #1 - cmp r4, #0 - bne _08058016 - pop {r4, r5, r6, pc} - .align 2, 0 -_0805802C: .4byte 0x040000D4 -_08058030: .4byte 0x80000020 - - thumb_func_start sub_08058034 -sub_08058034: @ 0x08058034 - push {r4, r5, r6, lr} - ldr r6, _08058080 @ =gUnk_02002F00 - movs r0, #0x80 - lsls r0, r0, #7 - adds r5, r6, r0 - movs r4, #0 -_08058040: - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_08058084 - movs r1, #0x80 - lsls r1, r1, #4 - adds r6, r6, r1 - adds r5, #0x40 - adds r4, #1 - cmp r4, #3 - bls _08058040 - ldr r0, _08058080 @ =gUnk_02002F00 - movs r1, #0x80 - lsls r1, r1, #6 - adds r6, r0, r1 - movs r1, #0xc0 - lsls r1, r1, #7 - adds r5, r0, r1 - movs r4, #0 -_08058066: - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_08058084 - movs r0, #0x80 - lsls r0, r0, #4 - adds r6, r6, r0 - adds r5, #0x40 - adds r4, #1 - cmp r4, #3 - bls _08058066 - pop {r4, r5, r6, pc} - .align 2, 0 -_08058080: .4byte gUnk_02002F00 - - thumb_func_start sub_08058084 -sub_08058084: @ 0x08058084 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r2, _080580A8 @ =0x040000D4 - ldr r6, _080580AC @ =0x80000020 - movs r5, #0x80 - lsls r5, r5, #1 -_08058092: - str r3, [r2] - str r1, [r2, #4] - str r6, [r2, #8] - ldr r0, [r2, #8] - adds r4, #1 - adds r3, #0x40 - adds r1, r1, r5 - cmp r4, #0x1f - bls _08058092 - pop {r4, r5, r6, pc} - .align 2, 0 -_080580A8: .4byte 0x040000D4 -_080580AC: .4byte 0x80000020 - - thumb_func_start sub_080580B0 -sub_080580B0: @ 0x080580B0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - ldr r0, _080581B0 @ =gUnk_0200B650 - movs r1, #0 - str r1, [r0] - movs r0, #0x80 - lsls r0, r0, #0x13 - strh r1, [r0] - adds r0, r4, #0 - bl sub_0801D7EC - ldr r0, _080581B4 @ =gUnk_02034350 - strb r4, [r0, #0x10] - bl sub_08058034 - ldr r5, _080581B8 @ =gUnk_03000BF0 - movs r0, #0xa - ldrsh r1, [r5, r0] - ldrh r0, [r5, #6] - subs r7, r1, r0 - asrs r2, r7, #3 - adds r2, r7, r2 - ldrh r0, [r5, #0x1e] - movs r4, #0x80 - lsls r4, r4, #3 - subs r0, r4, r0 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r7, r2, r0 - ldr r1, _080581BC @ =gUnk_02006F00 - mov sb, r1 - ldr r2, _080581C0 @ =gUnk_02001A40 - mov r8, r2 - adds r0, r7, #0 - bl sub_08058004 - ldr r0, _080581C4 @ =gUnk_03000F50 - mov sl, r0 - movs r1, #0xf - ands r7, r1 - strh r7, [r0, #0x2e] - movs r2, #0xc - ldrsh r0, [r5, r2] - ldrh r1, [r5, #8] - subs r0, r0, r1 - movs r6, #0x30 - subs r0, r6, r0 - asrs r0, r0, #1 - movs r3, #0x30 - subs r0, r3, r0 - mov r1, sl - strh r0, [r1, #0x30] - ldr r0, _080581C8 @ =0x00001D09 - strh r0, [r1, #0x2c] - mov r2, r8 - str r2, [r1, #0x34] - movs r0, #1 - strh r0, [r1, #0x32] - movs r2, #0xa - ldrsh r1, [r5, r2] - ldrh r0, [r5, #6] - subs r7, r1, r0 - asrs r1, r7, #2 - adds r1, r7, r1 - ldrh r0, [r5, #0x1e] - subs r4, r4, r0 - lsrs r0, r4, #0x1f - adds r4, r4, r0 - asrs r4, r4, #1 - adds r7, r1, r4 - movs r0, #0x80 - lsls r0, r0, #6 - add sb, r0 - movs r1, #0x80 - lsls r1, r1, #4 - add r8, r1 - adds r0, r7, #0 - mov r1, sb - mov r2, r8 - str r3, [sp] - bl sub_08058004 - movs r2, #0xf - ands r7, r2 - mov r0, sl - strh r7, [r0, #0x16] - movs r1, #0xc - ldrsh r0, [r5, r1] - ldrh r1, [r5, #8] - subs r0, r0, r1 - subs r6, r6, r0 - asrs r6, r6, #1 - ldr r3, [sp] - subs r3, r3, r6 - mov r2, sl - strh r3, [r2, #0x18] - ldr r0, _080581CC @ =0x00001E09 - strh r0, [r2, #0x14] - mov r0, r8 - str r0, [r2, #0x1c] - movs r1, #1 - strh r1, [r2, #0x1a] - mov r1, sl - adds r1, #0x66 - ldr r0, _080581D0 @ =0x00003C48 - strh r0, [r1] - adds r1, #2 - ldr r0, _080581D4 @ =0x00000609 - strh r0, [r1] - ldrh r1, [r2] - movs r2, #0xa0 - lsls r2, r2, #4 - adds r0, r2, #0 - orrs r0, r1 - mov r1, sl - strh r0, [r1] - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080581B0: .4byte gUnk_0200B650 -_080581B4: .4byte gUnk_02034350 -_080581B8: .4byte gUnk_03000BF0 -_080581BC: .4byte gUnk_02006F00 -_080581C0: .4byte gUnk_02001A40 -_080581C4: .4byte gUnk_03000F50 -_080581C8: .4byte 0x00001D09 -_080581CC: .4byte 0x00001E09 -_080581D0: .4byte 0x00003C48 -_080581D4: .4byte 0x00000609 - - thumb_func_start sub_080581D8 -sub_080581D8: @ 0x080581D8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08058210 - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _080581F8 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080581FC @ =gUnk_03000F50 - strh r1, [r0, #0x1a] - ldr r1, _08058200 @ =sub_08058204 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 -_080581F8: - pop {r4, pc} - .align 2, 0 -_080581FC: .4byte gUnk_03000F50 -_08058200: .4byte sub_08058204 - - thumb_func_start sub_08058204 -sub_08058204: @ 0x08058204 - push {lr} - ldrb r0, [r0, #0xa] - bl sub_08058324 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08058210 -sub_08058210: @ 0x08058210 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_08058244 - adds r3, r0, #0 - ldr r0, [r4, #0x3c] - cmp r0, r3 - beq _08058234 - str r3, [r4, #0x3c] - ldr r1, _08058238 @ =gUnk_02006F00 - ldr r2, _0805823C @ =gUnk_02001A40 - adds r0, r3, #0 - bl sub_080582A0 - ldr r1, _08058240 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0x1a] -_08058234: - pop {r4, pc} - .align 2, 0 -_08058238: .4byte gUnk_02006F00 -_0805823C: .4byte gUnk_02001A40 -_08058240: .4byte gUnk_03000F50 - - thumb_func_start sub_08058244 -sub_08058244: @ 0x08058244 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r6, r0, #0 - ldr r5, _08058294 @ =gUnk_03000BF0 - movs r1, #0xc - ldrsh r0, [r5, r1] - ldrh r4, [r5, #8] - subs r0, r0, r4 - lsls r0, r0, #5 - ldrh r1, [r5, #0x20] - subs r1, #0xa0 - bl __divsi3 - ldr r2, _08058298 @ =gUnk_03000F50 - mov r8, r2 - adds r4, r4, r0 - strh r4, [r2, #0x18] - movs r0, #0xa - ldrsh r1, [r5, r0] - ldrh r0, [r5, #6] - subs r1, r1, r0 - ldr r0, _0805829C @ =gUnk_081081EC - lsls r6, r6, #1 - adds r6, r6, r0 - ldrh r0, [r6] - muls r0, r1, r0 - ldrh r1, [r5, #0x1e] - subs r1, #0xf0 - bl __divsi3 - movs r2, #0xf - adds r1, r0, #0 - ands r1, r2 - mov r2, r8 - strh r1, [r2, #0x16] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_08058294: .4byte gUnk_03000BF0 -_08058298: .4byte gUnk_03000F50 -_0805829C: .4byte gUnk_081081EC - - thumb_func_start sub_080582A0 -sub_080582A0: @ 0x080582A0 - push {r4, r5, r6, lr} - movs r4, #0x20 - lsrs r0, r0, #4 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r3, _080582C8 @ =0x040000D4 - ldr r6, _080582CC @ =0x80000020 - movs r5, #0x80 - lsls r5, r5, #1 -_080582B2: - str r1, [r3] - str r2, [r3, #4] - str r6, [r3, #8] - ldr r0, [r3, #8] - adds r1, r1, r5 - adds r2, #0x40 - subs r4, #1 - cmp r4, #0 - bne _080582B2 - pop {r4, r5, r6, pc} - .align 2, 0 -_080582C8: .4byte 0x040000D4 -_080582CC: .4byte 0x80000020 - - thumb_func_start sub_080582D0 -sub_080582D0: @ 0x080582D0 - push {r4, r5, lr} - ldr r4, _080582F4 @ =gUnk_02002F00 - movs r0, #0x80 - lsls r0, r0, #7 - adds r5, r4, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080582F8 - movs r0, #0x80 - lsls r0, r0, #4 - adds r4, r4, r0 - adds r5, #0x40 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080582F8 - pop {r4, r5, pc} - .align 2, 0 -_080582F4: .4byte gUnk_02002F00 - - thumb_func_start sub_080582F8 -sub_080582F8: @ 0x080582F8 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r2, _0805831C @ =0x040000D4 - ldr r6, _08058320 @ =0x80000020 - movs r5, #0x80 - lsls r5, r5, #1 -_08058306: - str r3, [r2] - str r1, [r2, #4] - str r6, [r2, #8] - ldr r0, [r2, #8] - adds r4, #1 - adds r3, #0x40 - adds r1, r1, r5 - cmp r4, #0x1f - bls _08058306 - pop {r4, r5, r6, pc} - .align 2, 0 -_0805831C: .4byte 0x040000D4 -_08058320: .4byte 0x80000020 - - thumb_func_start sub_08058324 -sub_08058324: @ 0x08058324 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0805836C @ =gUnk_0200B650 - movs r0, #0 - str r0, [r1] - adds r0, r4, #0 - adds r0, #0x86 - bl sub_0801D714 - adds r0, r4, #0 - adds r0, #0x36 - bl sub_0801D7EC - bl sub_080582D0 - adds r0, r4, #0 - bl sub_08058244 - ldr r1, _08058370 @ =gUnk_02006F00 - ldr r4, _08058374 @ =gUnk_02001A40 - adds r2, r4, #0 - bl sub_080582A0 - ldr r1, _08058378 @ =gUnk_03000F50 - ldr r0, _0805837C @ =0x00001D47 - strh r0, [r1, #0x14] - str r4, [r1, #0x1c] - movs r0, #1 - strh r0, [r1, #0x1a] - ldrh r2, [r1] - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - orrs r0, r2 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_0805836C: .4byte gUnk_0200B650 -_08058370: .4byte gUnk_02006F00 -_08058374: .4byte gUnk_02001A40 -_08058378: .4byte gUnk_03000F50 -_0805837C: .4byte 0x00001D47 - - thumb_func_start sub_08058380 -sub_08058380: @ 0x08058380 - push {lr} - ldr r2, _08058394 @ =gUnk_081081F4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08058394: .4byte gUnk_081081F4 - - thumb_func_start sub_08058398 -sub_08058398: @ 0x08058398 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _080583AA - bl sub_0805E780 -_080583AA: - adds r0, r4, #0 - adds r0, #0x3a - ldrb r1, [r0] - lsls r1, r1, #3 - strh r1, [r4, #0x24] - adds r0, #1 - ldrb r2, [r0] - lsls r2, r2, #3 - strh r2, [r4, #0x26] - subs r0, #3 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r1, r1, r0 - strh r1, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r2, r2, r0 - strh r2, [r4, #0x22] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldrh r0, [r4, #0x3e] - cmp r0, #0 - bne _080583E4 - movs r0, #2 - b _080583E6 -_080583E4: - movs r0, #1 -_080583E6: - strb r0, [r4, #0xc] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080583EC -sub_080583EC: @ 0x080583EC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08058404 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08058408 -_08058404: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08058408 -sub_08058408: @ 0x08058408 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _0805843C @ =gUnk_03003F80 - ldr r5, [r6, #0x30] - movs r0, #8 - ands r5, r0 - cmp r5, #0 - bne _08058488 - ldrh r0, [r4, #0x20] - ldrh r1, [r4, #0x22] - ldrh r2, [r4, #0x24] - ldrh r3, [r4, #0x26] - bl sub_0800293E - cmp r0, #0 - beq _08058488 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _08058488 - cmp r0, #1 - ble _08058450 - cmp r0, #2 - beq _08058440 - cmp r0, #3 - beq _0805847C - b _08058450 - .align 2, 0 -_0805843C: .4byte gUnk_03003F80 -_08058440: - adds r0, r4, #0 - bl sub_080585DC - ldr r0, [r6, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08058488 -_08058450: - adds r0, r4, #0 - bl sub_080585DC - adds r0, r4, #0 - bl sub_0805848C - cmp r0, #0 - beq _08058488 - movs r0, #3 - bl sub_08078A90 - bl sub_08078B48 - bl sub_0805E544 - movs r0, #0 - movs r1, #3 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _08058488 -_0805847C: - movs r0, #4 - strb r0, [r4, #0xc] - strb r5, [r4, #0xd] - ldrh r0, [r4, #0x36] - bl sub_080186C0 -_08058488: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0805848C -sub_0805848C: @ 0x0805848C - push {lr} - ldr r0, _080584A4 @ =gUnk_03003F80 - adds r0, #0xa8 - ldrb r0, [r0] - subs r0, #5 - cmp r0, #0x17 - bhi _08058510 - lsls r0, r0, #2 - ldr r1, _080584A8 @ =_080584AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080584A4: .4byte gUnk_03003F80 -_080584A8: .4byte _080584AC -_080584AC: @ jump table - .4byte _0805850C @ case 0 - .4byte _08058510 @ case 1 - .4byte _0805850C @ case 2 - .4byte _0805850C @ case 3 - .4byte _08058510 @ case 4 - .4byte _0805850C @ case 5 - .4byte _0805850C @ case 6 - .4byte _0805850C @ case 7 - .4byte _0805850C @ case 8 - .4byte _0805850C @ case 9 - .4byte _0805850C @ case 10 - .4byte _0805850C @ case 11 - .4byte _0805850C @ case 12 - .4byte _0805850C @ case 13 - .4byte _0805850C @ case 14 - .4byte _0805850C @ case 15 - .4byte _0805850C @ case 16 - .4byte _0805850C @ case 17 - .4byte _0805850C @ case 18 - .4byte _0805850C @ case 19 - .4byte _08058510 @ case 20 - .4byte _08058510 @ case 21 - .4byte _0805850C @ case 22 - .4byte _0805850C @ case 23 -_0805850C: - movs r0, #0 - b _08058512 -_08058510: - movs r0, #1 -_08058512: - pop {pc} - - thumb_func_start sub_08058514 -sub_08058514: @ 0x08058514 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _08058532 - cmp r0, #1 - bgt _08058528 - cmp r0, #0 - beq _08058570 - b _080585A6 -_08058528: - cmp r0, #2 - beq _08058570 - cmp r0, #3 - beq _08058584 - b _080585A6 -_08058532: - ldr r2, _08058564 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08058568 @ =0x00001235 - ands r0, r1 - cmp r0, #0 - bne _080585A6 - ldr r0, _0805856C @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080585A6 - strb r0, [r2, #2] - ldrh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x35 - ldrb r1, [r1] - bl sub_08078AA8 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _080585A6 - .align 2, 0 -_08058564: .4byte gUnk_03003F80 -_08058568: .4byte 0x00001235 -_0805856C: .4byte gLinkEntity -_08058570: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080585A6 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _080585A6 -_08058584: - ldr r0, _080585A8 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #1 - beq _08058590 - cmp r0, #9 - bne _080585A6 -_08058590: - ldr r0, _080585AC @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bl sub_0805E564 - ldrh r0, [r4, #0x3c] - bl sub_0807CCC8 - bl sub_0805E780 -_080585A6: - pop {r4, pc} - .align 2, 0 -_080585A8: .4byte gLinkEntity -_080585AC: .4byte gUnk_03003F80 - - thumb_func_start sub_080585B0 -sub_080585B0: @ 0x080585B0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080585D8 @ =gUnk_02033A90 - adds r0, #0x28 - ldrb r0, [r0] - cmp r0, #0xff - beq _080585C2 - bl sub_0805E780 -_080585C2: - ldrh r0, [r4, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _080585D4 - bl sub_0801855C - bl sub_0805E780 -_080585D4: - pop {r4, pc} - .align 2, 0 -_080585D8: .4byte gUnk_02033A90 - - thumb_func_start sub_080585DC -sub_080585DC: @ 0x080585DC - push {lr} - ldrh r0, [r0, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _080585EC - bl sub_0805E780 -_080585EC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080585F0 -sub_080585F0: @ 0x080585F0 - push {lr} - ldr r2, _08058604 @ =gUnk_08108208 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08058604: .4byte gUnk_08108208 - - thumb_func_start sub_08058608 -sub_08058608: @ 0x08058608 - push {lr} - ldr r2, _0805861C @ =gUnk_08108210 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805861C: .4byte gUnk_08108210 - - thumb_func_start sub_08058620 -sub_08058620: @ 0x08058620 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - bne _08058648 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3c] - cmp r0, #0 - bne _0805863E - adds r0, r4, #0 - bl sub_080586EC -_0805863E: - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - b _0805864C -_08058648: - bl sub_0805E780 -_0805864C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08058650 -sub_08058650: @ 0x08058650 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _08058698 - adds r0, r4, #0 - bl sub_080586EC - adds r0, r4, #0 - adds r0, #0x35 - ldrb r0, [r0] - cmp r0, #0 - bne _08058692 - ldr r1, _0805869C @ =gUnk_02034350 - ldrb r0, [r1, #9] - movs r3, #0x33 - cmp r0, #0 - beq _0805867A - adds r3, r0, #0 -_0805867A: - ldr r0, _080586A0 @ =gUnk_02033A90 - movs r1, #0x86 - lsls r1, r1, #4 - adds r0, r0, r1 - ldr r2, [r0] - adds r1, r4, #0 - adds r1, #0x20 - strb r2, [r1] - str r3, [r0] - adds r0, r3, #0 - bl sub_080A3268 -_08058692: - ldr r0, _080586A4 @ =0x00000B0F - bl sub_080186C0 -_08058698: - pop {r4, pc} - .align 2, 0 -_0805869C: .4byte gUnk_02034350 -_080586A0: .4byte gUnk_02033A90 -_080586A4: .4byte 0x00000B0F - - thumb_func_start sub_080586A8 -sub_080586A8: @ 0x080586A8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080586E4 - ldrh r0, [r4, #0x3e] - bl sub_0807CCC8 - ldrh r0, [r4, #0x3c] - cmp r0, #0 - beq _080586E0 - adds r0, r4, #0 - adds r0, #0x35 - ldrb r0, [r0] - cmp r0, #0 - bne _080586E0 - ldr r1, _080586E8 @ =gUnk_02033A90 - movs r0, #0x86 - lsls r0, r0, #4 - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - str r0, [r1] - bl sub_080A3268 - bl sub_0801855C -_080586E0: - bl sub_0805E780 -_080586E4: - pop {r4, pc} - .align 2, 0 -_080586E8: .4byte gUnk_02033A90 - - thumb_func_start sub_080586EC -sub_080586EC: @ 0x080586EC - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r1, #0 - movs r0, #2 - strb r0, [r7, #0xc] - strb r1, [r7, #0xe] - movs r6, #0 - adds r0, r7, #0 - bl sub_08058760 - adds r5, r0, #0 - cmp r5, #0 - bne _0805870A - bl sub_0805E780 -_0805870A: - ldrb r0, [r7, #0xb] - bl sub_0804B128 - adds r4, r0, #0 - cmp r4, #0 - beq _0805875C - b _08058756 -_08058718: - adds r0, r4, #0 - adds r4, #0x10 - bl CreateEntity - adds r3, r0, #0 - cmp r3, #0 - beq _08058744 - ldrb r0, [r3, #8] - cmp r0, #3 - bne _08058744 - adds r2, r3, #0 - adds r2, #0x6d - ldrb r0, [r2] - movs r1, #0x40 - orrs r1, r0 - strb r1, [r2] - adds r2, r6, #0 - adds r6, #1 - adds r0, r5, #0 - adds r1, r3, #0 - bl sub_08058798 -_08058744: - cmp r6, #6 - bls _08058756 - movs r6, #0 - adds r0, r7, #0 - bl sub_08058760 - adds r5, r0, #0 - cmp r5, #0 - beq _0805875C -_08058756: - ldrb r0, [r4] - cmp r0, #0xff - bne _08058718 -_0805875C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08058760 -sub_08058760: @ 0x08058760 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0805E8D4 - adds r4, r0, #0 - cmp r4, #0 - beq _08058794 - movs r0, #9 - strb r0, [r4, #8] - movs r0, #0xb - strb r0, [r4, #9] - movs r0, #1 - strb r0, [r4, #0xa] - str r5, [r4, #0x14] - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - adds r0, r4, #0 - adds r0, #0x20 - movs r1, #0x20 - bl sub_0801D630 - adds r0, r4, #0 - movs r1, #8 - bl sub_0805EA2C -_08058794: - adds r0, r4, #0 - pop {r4, r5, pc} - - thumb_func_start sub_08058798 -sub_08058798: @ 0x08058798 - lsls r2, r2, #2 - adds r3, r0, #0 - adds r3, #0x20 - adds r3, r3, r2 - str r1, [r3] - ldrb r1, [r0, #0xe] - adds r1, #1 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_080587AC -sub_080587AC: @ 0x080587AC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080587C2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 -_080587C2: - movs r3, #0 - movs r2, #0 - adds r5, r4, #0 - adds r5, #0x20 -_080587CA: - lsls r0, r2, #2 - adds r1, r5, r0 - ldr r0, [r1] - cmp r0, #0 - beq _080587E0 - ldr r0, [r0, #4] - cmp r0, #0 - bne _080587DE - str r0, [r1] - b _080587E0 -_080587DE: - movs r3, #1 -_080587E0: - adds r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #7 - bls _080587CA - cmp r3, #0 - bne _080587FE - ldr r1, [r4, #0x14] - ldrb r0, [r1, #0xe] - cmp r0, #0 - beq _080587FA - subs r0, #1 - strb r0, [r1, #0xe] -_080587FA: - bl sub_0805E780 -_080587FE: - pop {r4, r5, pc} - - thumb_func_start sub_08058800 -sub_08058800: @ 0x08058800 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r6, _08058830 @ =gUnk_03003DB0 - ldr r3, [r6, #4] - cmp r3, r6 - beq _0805884A - ldr r0, _08058834 @ =0x0000FFFF - mov ip, r0 - ldr r7, _08058838 @ =0x00000B09 -_08058814: - ldrh r1, [r3, #8] - mov r0, ip - ands r0, r1 - cmp r0, r7 - bne _08058844 - movs r2, #0 - adds r1, r3, #0 - adds r1, #0x20 -_08058824: - ldr r0, [r1] - cmp r4, r0 - bne _0805883C - str r5, [r1] - b _0805884A - .align 2, 0 -_08058830: .4byte gUnk_03003DB0 -_08058834: .4byte 0x0000FFFF -_08058838: .4byte 0x00000B09 -_0805883C: - adds r1, #4 - adds r2, #1 - cmp r2, #7 - bls _08058824 -_08058844: - ldr r3, [r3, #4] - cmp r3, r6 - bne _08058814 -_0805884A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805884C -sub_0805884C: @ 0x0805884C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08058880 @ =gUnk_0810821C - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08058BC8 - ldr r0, _08058884 @ =gUnk_03003DE4 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _08058888 @ =gUnk_02017AA0 - adds r0, r0, r1 - ldr r1, _0805888C @ =0x04000020 - ldr r2, _08058890 @ =0xA2600008 - bl sub_0805622C - pop {r4, pc} - .align 2, 0 -_08058880: .4byte gUnk_0810821C -_08058884: .4byte gUnk_03003DE4 -_08058888: .4byte gUnk_02017AA0 -_0805888C: .4byte 0x04000020 -_08058890: .4byte 0xA2600008 - - thumb_func_start sub_08058894 -sub_08058894: @ 0x08058894 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080588C4 @ =0x00001234 - str r0, [r4, #0x28] - movs r0, #0x15 - movs r1, #2 - bl sub_0807CC60 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - strb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_08058CB0 - ldr r1, _080588C8 @ =sub_08058D34 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 - pop {r4, pc} - .align 2, 0 -_080588C4: .4byte 0x00001234 -_080588C8: .4byte sub_08058D34 - - thumb_func_start sub_080588CC -sub_080588CC: @ 0x080588CC - push {r4, lr} - adds r4, r0, #0 - bl sub_08058CFC - adds r0, r4, #0 - bl sub_08058A04 - ldr r0, _080588E8 @ =gUnk_030010A0 - ldrb r0, [r0, #8] - cmp r0, #0 - beq _080588EC - movs r0, #2 - strb r0, [r4, #0xc] - b _080588F2 - .align 2, 0 -_080588E8: .4byte gUnk_030010A0 -_080588EC: - adds r0, r4, #0 - bl sub_080588F8 -_080588F2: - pop {r4, pc} - - thumb_func_start nullsub_108 -nullsub_108: @ 0x080588F4 - bx lr - .align 2, 0 - - thumb_func_start sub_080588F8 -sub_080588F8: @ 0x080588F8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08058952 - movs r0, #0x26 - ldrsh r2, [r4, r0] - ldr r0, [r4, #0x28] - subs r1, r0, r2 - cmp r1, #0 - blt _08058914 - cmp r1, #8 - bhi _0805891A - b _08058968 -_08058914: - subs r0, r2, r0 - cmp r0, #8 - bls _08058968 -_0805891A: - ldr r0, _08058934 @ =0x00001234 - str r0, [r4, #0x28] - movs r2, #0x26 - ldrsh r1, [r4, r2] - ldr r0, _08058938 @ =0x0000FFFE - ands r1, r0 - cmp r1, #0xa0 - beq _08058940 - cmp r1, #0xa0 - bgt _0805893C - cmp r1, #0x48 - beq _08058940 - b _08058968 - .align 2, 0 -_08058934: .4byte 0x00001234 -_08058938: .4byte 0x0000FFFE -_0805893C: - cmp r1, #0xf0 - bne _08058968 -_08058940: - movs r3, #0x26 - ldrsh r0, [r4, r3] - str r0, [r4, #0x28] - movs r0, #0x2d - strb r0, [r4, #0xf] - movs r0, #0x8c - bl sub_080A3268 - b _08058968 -_08058952: - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x29 - bls _08058964 - ldr r0, [r4, #0x28] - subs r0, #2 - b _08058966 -_08058964: - ldr r0, [r4, #0x28] -_08058966: - strh r0, [r4, #0x26] -_08058968: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080589DE - ldr r0, _080589A4 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - ldr r0, _080589A8 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - subs r2, r1, r0 - adds r1, r2, #0 - subs r1, #0x50 - cmp r1, #0 - bge _08058986 - movs r1, #0x50 - subs r1, r1, r2 -_08058986: - lsrs r1, r1, #3 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0xc - movs r3, #0x80 - lsls r3, r3, #7 - adds r1, r0, r3 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080589DE - cmp r2, #0x48 - bgt _080589AC - ldr r0, [r4, #0x24] - subs r0, r0, r1 - b _080589B4 - .align 2, 0 -_080589A4: .4byte gLinkEntity -_080589A8: .4byte gUnk_03000BF0 -_080589AC: - cmp r2, #0x57 - ble _080589B6 - ldr r0, [r4, #0x24] - adds r0, r0, r1 -_080589B4: - str r0, [r4, #0x24] -_080589B6: - ldr r2, [r4, #0x2c] - ldr r0, [r4, #0x24] - subs r1, r2, r0 - adds r3, r0, #0 - cmp r1, #0 - blt _080589CC - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r1, r0 - bhi _080589D6 - b _080589DE -_080589CC: - subs r1, r3, r2 - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r1, r0 - bls _080589DE -_080589D6: - str r3, [r4, #0x2c] - movs r0, #0x8b - bl sub_080A3268 -_080589DE: - movs r0, #0x26 - ldrsh r1, [r4, r0] - str r1, [r4, #0x20] - cmp r1, #0 - bge _080589F0 - ldr r0, _080589EC @ =0x000001FF - b _080589F8 - .align 2, 0 -_080589EC: .4byte 0x000001FF -_080589F0: - ldr r0, _08058A00 @ =0x000001FF - cmp r1, r0 - ble _080589FC - movs r0, #0 -_080589F8: - str r0, [r4, #0x20] - strh r0, [r4, #0x26] -_080589FC: - pop {r4, pc} - .align 2, 0 -_08058A00: .4byte 0x000001FF - - thumb_func_start sub_08058A04 -sub_08058A04: @ 0x08058A04 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r6, _08058A68 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r7, _08058A6C @ =gUnk_03000BF0 - ldrh r0, [r7, #6] - subs r1, r1, r0 - mov r8, r1 - movs r0, #0x32 - ldrsh r1, [r6, r0] - ldrh r0, [r7, #8] - subs r5, r1, r0 - ldr r0, [r4, #0x20] - ldr r1, _08058A70 @ =0xFFFFFEE8 - adds r0, r0, r1 - cmp r0, #0xc - bhi _08058A78 - movs r0, #0x17 - bl GetProgressFlag - cmp r0, #0 - beq _08058A78 - mov r0, r8 - subs r0, #0x6d - cmp r0, #0x16 - bhi _08058A78 - adds r0, r5, #0 - subs r0, #0x45 - cmp r0, #0x16 - bhi _08058A78 - movs r0, #0x36 - ldrsh r2, [r6, r0] - cmp r2, #0 - bne _08058A78 - ldr r0, _08058A74 @ =gUnk_03003F80 - movs r1, #3 - strb r1, [r0, #0xc] - adds r0, #0x38 - strb r2, [r0] - ldrh r0, [r7, #6] - adds r0, #0x78 - strh r0, [r6, #0x2e] - ldrh r0, [r7, #8] - adds r0, #0x50 - strh r0, [r6, #0x32] - b _08058AFC - .align 2, 0 -_08058A68: .4byte gLinkEntity -_08058A6C: .4byte gUnk_03000BF0 -_08058A70: .4byte 0xFFFFFEE8 -_08058A74: .4byte gUnk_03003F80 -_08058A78: - mov r1, r8 - cmp r1, #0x77 - bgt _08058AC0 - cmp r5, #0x4f - bgt _08058AA0 - ldr r3, _08058A9C @ =gUnk_08108228 - adds r0, r4, #0 - movs r1, #0x88 - movs r2, #0xb0 - bl sub_08058B08 - cmp r0, #0 - beq _08058AFC - adds r0, r4, #0 - movs r1, #0 - bl sub_08058B5C - b _08058AFC - .align 2, 0 -_08058A9C: .4byte gUnk_08108228 -_08058AA0: - ldr r3, _08058ABC @ =gUnk_08108258 - adds r0, r4, #0 - movs r1, #0x38 - movs r2, #0x60 - bl sub_08058B08 - cmp r0, #0 - beq _08058AFC - adds r0, r4, #0 - movs r1, #1 - bl sub_08058B5C - b _08058AFC - .align 2, 0 -_08058ABC: .4byte gUnk_08108258 -_08058AC0: - cmp r5, #0x4f - bgt _08058AE4 - movs r2, #0x84 - lsls r2, r2, #1 - ldr r3, _08058AE0 @ =gUnk_08108288 - adds r0, r4, #0 - movs r1, #0xe0 - bl sub_08058B08 - cmp r0, #0 - beq _08058AFC - adds r0, r4, #0 - movs r1, #2 - bl sub_08058B5C - b _08058AFC - .align 2, 0 -_08058AE0: .4byte gUnk_08108288 -_08058AE4: - ldr r3, _08058B04 @ =gUnk_081082B8 - adds r0, r4, #0 - movs r1, #0x90 - movs r2, #0xb8 - bl sub_08058B08 - cmp r0, #0 - beq _08058AFC - adds r0, r4, #0 - movs r1, #3 - bl sub_08058B5C -_08058AFC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08058B04: .4byte gUnk_081082B8 - - thumb_func_start sub_08058B08 -sub_08058B08: @ 0x08058B08 - push {r4, r5, lr} - adds r4, r3, #0 - ldr r0, [r0, #0x20] - cmp r0, r1 - blo _08058B16 - cmp r0, r2 - bls _08058B1A -_08058B16: - movs r0, #0 - b _08058B50 -_08058B1A: - subs r0, r0, r1 - lsrs r0, r0, #3 - lsls r0, r0, #3 - adds r4, r4, r0 - ldr r3, _08058B54 @ =gLinkEntity - movs r0, #0x2e - ldrsh r2, [r3, r0] - ldr r1, _08058B58 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r2, r2, r0 - ldrh r0, [r4] - subs r2, r2, r0 - movs r5, #0x32 - ldrsh r0, [r3, r5] - ldrh r1, [r1, #8] - subs r0, r0, r1 - ldrh r1, [r4, #2] - subs r0, r0, r1 - movs r1, #0 - ldrh r3, [r4, #4] - cmp r2, r3 - bhs _08058B4E - ldrh r4, [r4, #6] - cmp r0, r4 - bhs _08058B4E - movs r1, #1 -_08058B4E: - adds r0, r1, #0 -_08058B50: - pop {r4, r5, pc} - .align 2, 0 -_08058B54: .4byte gLinkEntity -_08058B58: .4byte gUnk_03000BF0 - - thumb_func_start sub_08058B5C -sub_08058B5C: @ 0x08058B5C - push {r4, r5, lr} - ldr r3, _08058BB4 @ =gUnk_030010A0 - movs r0, #0 - movs r4, #1 - strb r4, [r3, #8] - strb r0, [r3, #9] - movs r5, #4 - movs r0, #4 - strb r0, [r3, #0xf] - ldr r0, _08058BB8 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - strb r0, [r3, #0xc] - movs r0, #6 - strb r0, [r3, #0xd] - adds r2, r1, #0 - ands r2, r4 - rsbs r0, r2, #0 - orrs r0, r2 - asrs r0, r0, #0x1f - ands r0, r5 - strb r0, [r3, #0xe] - ldr r4, _08058BBC @ =gUnk_081082E8 - lsls r2, r1, #1 - adds r2, r2, r1 - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r3, #0x10] - adds r0, r2, #1 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r3, #0x12] - ldr r1, _08058BC0 @ =gUnk_02002A40 - adds r2, #2 - lsls r2, r2, #1 - adds r2, r2, r4 - ldrh r0, [r2] - strb r0, [r1, #7] - ldr r0, _08058BC4 @ =0x00000121 - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_08058BB4: .4byte gUnk_030010A0 -_08058BB8: .4byte gUnk_03000BF0 -_08058BBC: .4byte gUnk_081082E8 -_08058BC0: .4byte gUnk_02002A40 -_08058BC4: .4byte 0x00000121 - - thumb_func_start sub_08058BC8 -sub_08058BC8: @ 0x08058BC8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x14 - mov sb, r0 - ldr r0, _08058C9C @ =gUnk_03003DE4 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _08058CA0 @ =gUnk_02017AA0 - adds r4, r0, r1 - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [sp] - mov r1, sp - movs r2, #0 - movs r0, #0x78 - strh r0, [r1, #8] - movs r0, #0x80 - strh r0, [r1, #0xa] - mov r0, sp - strh r2, [r0, #0x10] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0, #0xe] - strh r1, [r0, #0xc] - movs r5, #0 - mov r6, sp - ldr r0, _08058CA4 @ =gUnk_080C9160 - mov r8, r0 - adds r7, r1, #0 -_08058C0A: - lsls r0, r5, #7 - movs r1, #0xa0 - bl __divsi3 - movs r1, #0xff - ands r0, r1 - lsls r1, r0, #1 - add r1, r8 - movs r3, #0 - ldrsh r2, [r1, r3] - lsls r1, r2, #1 - adds r1, r1, r2 - asrs r1, r1, #2 - adds r1, r1, r7 - strh r1, [r6, #0xc] - lsls r0, r0, #2 - add r0, r8 - movs r1, #0 - ldrsh r0, [r0, r1] - asrs r0, r0, #4 - subs r0, r7, r0 - strh r0, [r6, #0xe] - mov r3, sb - ldr r0, [r3, #0x20] - adds r0, r0, r5 - lsls r0, r0, #8 - str r0, [sp, #4] - mov r0, sp - adds r1, r4, #0 - movs r2, #1 - bl BgAffineSet - adds r4, #0x10 - adds r5, #1 - cmp r5, #0x9f - bls _08058C0A - ldr r0, _08058C9C @ =gUnk_03003DE4 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _08058CA8 @ =gUnk_02017BA0 - adds r4, r0, r1 - ldr r2, _08058CAC @ =gUnk_03000F50 - ldrh r0, [r4] - strh r0, [r2, #0x38] - ldrh r0, [r4, #2] - strh r0, [r2, #0x3a] - ldrh r0, [r4, #4] - strh r0, [r2, #0x3c] - ldrh r0, [r4, #6] - strh r0, [r2, #0x3e] - ldrh r1, [r4, #8] - adds r0, r2, #0 - adds r0, #0x40 - strh r1, [r0] - ldrh r0, [r4, #0xa] - adds r1, r2, #0 - adds r1, #0x42 - strh r0, [r1] - ldrh r1, [r4, #0xc] - adds r0, r2, #0 - adds r0, #0x44 - strh r1, [r0] - ldrh r1, [r4, #0xe] - adds r0, #2 - strh r1, [r0] - add sp, #0x14 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08058C9C: .4byte gUnk_03003DE4 -_08058CA0: .4byte gUnk_02017AA0 -_08058CA4: .4byte gUnk_080C9160 -_08058CA8: .4byte gUnk_02017BA0 -_08058CAC: .4byte gUnk_03000F50 - - thumb_func_start sub_08058CB0 -sub_08058CB0: @ 0x08058CB0 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08058CD8 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r2, r0] - ldr r3, _08058CDC @ =gUnk_03000BF0 - ldrh r0, [r3, #6] - subs r1, r1, r0 - movs r0, #0x32 - ldrsh r2, [r2, r0] - ldrh r0, [r3, #8] - subs r2, r2, r0 - cmp r1, #0x77 - bhi _08058CE0 - movs r1, #1 - cmp r2, #0x4f - bhi _08058CE8 - movs r1, #0 - b _08058CE8 - .align 2, 0 -_08058CD8: .4byte gLinkEntity -_08058CDC: .4byte gUnk_03000BF0 -_08058CE0: - movs r1, #3 - cmp r2, #0x4f - bhi _08058CE8 - movs r1, #2 -_08058CE8: - ldr r0, _08058CF8 @ =gUnk_08108300 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - str r0, [r4, #0x20] - strh r0, [r4, #0x26] - pop {r4, pc} - .align 2, 0 -_08058CF8: .4byte gUnk_08108300 - - thumb_func_start sub_08058CFC -sub_08058CFC: @ 0x08058CFC - push {r4, r5, lr} - ldr r5, _08058D2C @ =gLinkEntity - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldr r1, _08058D30 @ =gUnk_03000BF0 - movs r2, #0xc - ldrsh r1, [r1, r2] - subs r4, r0, r1 - cmp r4, #0x4b - bhi _08058D1A - adds r0, r5, #0 - movs r1, #0xc0 - movs r2, #0x10 - bl sub_080044AE -_08058D1A: - cmp r4, #0x54 - bls _08058D28 - adds r0, r5, #0 - movs r1, #0xc0 - movs r2, #0 - bl sub_080044AE -_08058D28: - pop {r4, r5, pc} - .align 2, 0 -_08058D2C: .4byte gLinkEntity -_08058D30: .4byte gUnk_03000BF0 - - thumb_func_start sub_08058D34 -sub_08058D34: @ 0x08058D34 - push {r4, lr} - movs r0, #0x28 - bl sub_0801D714 - ldr r0, _08058DAC @ =gUnk_02017700 - movs r2, #0x90 - lsls r2, r2, #2 - adds r1, r0, r2 - movs r2, #0x20 - bl sub_0801D66C - ldr r2, _08058DB0 @ =gUnk_0200B644 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r2] - movs r0, #0x16 - bl sub_0801D7EC - ldr r1, _08058DB4 @ =gUnk_03000F50 - ldrh r0, [r1] - movs r3, #0 - movs r2, #1 - movs r4, #0 - orrs r0, r2 - strh r0, [r1] - ldr r0, _08058DB8 @ =0x0000BC82 - strh r0, [r1, #0x20] - ldr r0, _08058DBC @ =0x00005E86 - strh r0, [r1, #0x14] - strh r3, [r1, #0x16] - strh r3, [r1, #0x18] - adds r2, r1, #0 - adds r2, #0x66 - ldr r0, _08058DC0 @ =0x00003456 - strh r0, [r2] - adds r1, #0x68 - ldr r0, _08058DC4 @ =0x00000909 - strh r0, [r1] - ldr r0, _08058DC8 @ =gUnk_02033A90 - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - ldr r0, _08058DCC @ =gUnk_02000070 - strb r4, [r0] - movs r0, #0x17 - bl GetProgressFlag - cmp r0, #0 - beq _08058DA8 - movs r0, #0x4a - bl sub_0801D7EC -_08058DA8: - pop {r4, pc} - .align 2, 0 -_08058DAC: .4byte gUnk_02017700 -_08058DB0: .4byte gUnk_0200B644 -_08058DB4: .4byte gUnk_03000F50 -_08058DB8: .4byte 0x0000BC82 -_08058DBC: .4byte 0x00005E86 -_08058DC0: .4byte 0x00003456 -_08058DC4: .4byte 0x00000909 -_08058DC8: .4byte gUnk_02033A90 -_08058DCC: .4byte gUnk_02000070 - - thumb_func_start sub_08058DD0 -sub_08058DD0: @ 0x08058DD0 - push {lr} - ldr r2, _08058DE4 @ =gUnk_08108308 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08058DE4: .4byte gUnk_08108308 - - thumb_func_start sub_08058DE8 -sub_08058DE8: @ 0x08058DE8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08058DFC - bl sub_0805E780 - b _08058E14 -_08058DFC: - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3a] - bl sub_0808094C - ldrh r1, [r4, #0x38] - lsls r1, r1, #1 - adds r1, #4 - adds r0, r0, r1 - str r0, [r4, #0x30] - ldrh r0, [r0] - strh r0, [r4, #0x28] -_08058E14: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08058E18 -sub_08058E18: @ 0x08058E18 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x30] - ldrh r0, [r2, #0x28] - ldrh r1, [r1] - cmp r0, r1 - beq _08058E30 - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - movs r0, #0xf - strb r0, [r2, #0xe] -_08058E30: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08058E34 -sub_08058E34: @ 0x08058E34 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08058E5E - ldrh r0, [r4, #0x3e] - bl sub_0807CCC8 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08058E58 - bl sub_0804B128 - bl LoadRoomEntityList -_08058E58: - adds r0, r4, #0 - bl sub_0805E900 -_08058E5E: - pop {r4, pc} - - thumb_func_start sub_08058E60 -sub_08058E60: @ 0x08058E60 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08058E80 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08058E80 - adds r0, r4, #0 - bl sub_0805E900 - b _08058EC8 -_08058E80: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08058EC8 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08058E9E - movs r0, #0 - strb r0, [r4, #0xb] - movs r0, #0xff - bl sub_08078A90 - bl sub_08078B48 -_08058E9E: - ldrh r1, [r4, #0x3a] - movs r2, #0x3a - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08058EC4 - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08058EB4 - bl sub_080A3268 -_08058EB4: - ldrb r0, [r4, #0xa] - bl sub_0804B128 - bl LoadRoomEntityList - bl sub_0805E780 - b _08058EC8 -_08058EC4: - subs r0, r1, #1 - strh r0, [r4, #0x3a] -_08058EC8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08058ECC -sub_08058ECC: @ 0x08058ECC - push {lr} - ldr r2, _08058EE0 @ =gUnk_08108314 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08058EE0: .4byte gUnk_08108314 - - thumb_func_start sub_08058EE4 -sub_08058EE4: @ 0x08058EE4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xc] - cmp r0, #0 - bne _08058EF2 - movs r0, #1 - strb r0, [r6, #0xc] -_08058EF2: - ldrb r0, [r6, #0xb] - bl sub_0807CC3C - cmp r0, #0 - beq _08058F40 - movs r5, #0x94 - lsls r5, r5, #1 - ldrb r2, [r6, #0xb] - adds r2, #1 - adds r0, r5, #0 - movs r1, #0x68 - bl sub_08058F44 - movs r4, #0xac - lsls r4, r4, #1 - ldrb r2, [r6, #0xb] - adds r2, #2 - adds r0, r4, #0 - movs r1, #0x68 - bl sub_08058F44 - ldrb r2, [r6, #0xb] - adds r2, #3 - adds r0, r5, #0 - movs r1, #0x98 - bl sub_08058F44 - ldrb r2, [r6, #0xb] - adds r2, #4 - adds r0, r4, #0 - movs r1, #0x98 - bl sub_08058F44 - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_080A3268 - bl sub_0805E780 -_08058F40: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08058F44 -sub_08058F44: @ 0x08058F44 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r2, #0 - bl sub_0807CC3C - cmp r0, #0 - bne _08058F80 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_080002A8 - cmp r0, #0x61 - bne _08058F80 - lsrs r1, r4, #4 - movs r2, #0x3f - ands r1, r2 - lsrs r0, r5, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - movs r0, #0x26 - movs r2, #1 - bl sub_0807B314 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08058F84 -_08058F80: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08058F84 -sub_08058F84: @ 0x08058F84 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0x21 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08058FA8 - ldr r0, _08058FAC @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - adds r1, r1, r4 - strh r1, [r2, #0x2e] - ldrh r0, [r0, #8] - adds r0, r0, r5 - strh r0, [r2, #0x32] -_08058FA8: - pop {r4, r5, pc} - .align 2, 0 -_08058FAC: .4byte gUnk_03000BF0 - - thumb_func_start sub_08058FB0 -sub_08058FB0: @ 0x08058FB0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08058FF6 - cmp r0, #1 - bgt _08058FC4 - cmp r0, #0 - beq _08058FCA - b _08059050 -_08058FC4: - cmp r0, #2 - beq _08059018 - b _08059050 -_08058FCA: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _08058FDC - movs r0, #7 - strb r0, [r4, #0xd] - movs r0, #6 - b _08058FE2 -_08058FDC: - movs r0, #8 - strb r0, [r4, #0xd] - movs r0, #2 -_08058FE2: - strb r0, [r4, #0xf] - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08059060 - adds r0, r4, #0 - bl sub_0805E900 - b _08059060 -_08058FF6: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08059060 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0xf0 - bl sub_0805E4E0 - adds r0, r4, #0 - bl sub_08059064 - b _08059060 -_08059018: - ldrb r0, [r4, #0xe] - cmp r0, #0x5a - bne _08059028 - movs r0, #2 - bl sub_08078A90 - bl sub_08077B20 -_08059028: - ldrb r2, [r4, #0xe] - cmp r2, #0x3c - bne _08059034 - ldr r1, _0805904C @ =gLinkEntity - ldrb r0, [r4, #0xf] - strb r0, [r1, #0x14] -_08059034: - subs r0, r2, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08059060 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xd] - movs r0, #5 - bl sub_080A7138 - b _08059060 - .align 2, 0 -_0805904C: .4byte gLinkEntity -_08059050: - ldrh r0, [r4, #0x3e] - bl sub_0807CCC8 - movs r0, #1 - bl sub_08078A90 - bl sub_0805E780 -_08059060: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08059064 -sub_08059064: @ 0x08059064 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #0x53 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805908E - movs r0, #2 - strb r0, [r2, #0xe] - ldr r1, _08059090 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - ldrh r3, [r4, #0x38] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - ldrh r4, [r4, #0x3a] - adds r0, r0, r4 - strh r0, [r2, #0x32] -_0805908E: - pop {r4, pc} - .align 2, 0 -_08059090: .4byte gUnk_03000BF0 - - thumb_func_start sub_08059094 -sub_08059094: @ 0x08059094 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080590B6 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x60 - bl sub_0807CBD0 - cmp r0, #0 - bne _080590CC - movs r0, #0x5f - bl sub_0807CCB4 - b _080590C8 -_080590B6: - movs r0, #0x60 - bl sub_0807CBD0 - cmp r0, #0 - beq _080590C8 - movs r0, #0x5f - bl sub_0807CD34 - movs r5, #1 -_080590C8: - cmp r5, #0 - beq _080590D8 -_080590CC: - ldr r0, _080590DC @ =gUnk_080F4B88 - bl LoadRoomEntityList - adds r0, r4, #0 - bl sub_0805E900 -_080590D8: - pop {r4, r5, pc} - .align 2, 0 -_080590DC: .4byte gUnk_080F4B88 - - thumb_func_start sub_080590E0 -sub_080590E0: @ 0x080590E0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080590F6 - movs r0, #1 - strb r0, [r1, #0xc] - adds r0, r1, #0 - movs r1, #6 - bl sub_0805E3A0 -_080590F6: - movs r0, #0x6c - bl sub_0807CBD0 - cmp r0, #0 - beq _0805911A - movs r0, #0x4b - bl sub_0807CBD0 - cmp r0, #0 - beq _08059112 - movs r0, #0x4a - bl sub_0807CCB4 - b _08059120 -_08059112: - movs r0, #0x4a - bl sub_0807CD34 - b _08059120 -_0805911A: - movs r0, #0x4a - bl sub_0807CD34 -_08059120: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08059124 -sub_08059124: @ 0x08059124 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08059174 - cmp r0, #1 - beq _080591AC - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080591C8 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r2, #0x3a - ldrsh r1, [r4, r2] - ldrb r2, [r4, #0xb] - bl sub_080A29C8 - ldrh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - movs r2, #0x3f - ands r0, r2 - ldrh r1, [r4, #0x3a] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - ldrb r1, [r4, #0xb] - bl sub_0807BA8C - movs r0, #0xcd - bl sub_080A3268 - bl sub_0805E780 - b _080591C8 -_08059174: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08059182 - bl sub_0805E780 -_08059182: - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080591A8 @ =0x00000365 - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r3, #0x3f - ands r1, r3 - ldrh r2, [r4, #0x3a] - lsls r2, r2, #0x10 - asrs r2, r2, #0x14 - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r4, #0xb] - bl sub_0807B314 - b _080591C8 - .align 2, 0 -_080591A8: .4byte 0x00000365 -_080591AC: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _080591C8 - adds r0, r4, #0 - movs r1, #0x4b - bl sub_0805E4E0 - movs r0, #0x2d - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_080591C8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080591CC -sub_080591CC: @ 0x080591CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080591F4 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - strb r0, [r4, #0xb] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08059214 - ldr r1, _080591F0 @ =gUnk_02034350 - ldrh r0, [r4, #0x3a] - b _08059218 - .align 2, 0 -_080591F0: .4byte gUnk_02034350 -_080591F4: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - adds r1, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, r1 - beq _0805921A - strb r1, [r4, #0xb] - cmp r1, #0 - beq _08059214 - ldr r1, _08059210 @ =gUnk_02034350 - ldrh r0, [r4, #0x3a] - b _08059218 - .align 2, 0 -_08059210: .4byte gUnk_02034350 -_08059214: - ldr r1, _0805921C @ =gUnk_02034350 - ldrh r0, [r4, #0x38] -_08059218: - strh r0, [r1, #0xc] -_0805921A: - pop {r4, pc} - .align 2, 0 -_0805921C: .4byte gUnk_02034350 - - thumb_func_start sub_08059220 -sub_08059220: @ 0x08059220 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r2, _08059268 @ =gUnk_02034350 - movs r0, #0 - strh r0, [r2, #0xc] - ldr r4, _0805926C @ =gUnk_08108354 - ldrh r0, [r4] - ldr r1, _08059270 @ =0x0000FFFF - cmp r0, r1 - beq _08059254 - adds r7, r2, #0 - adds r6, r1, #0 -_08059238: - ldrh r0, [r4] - ldrh r1, [r4, #2] - ldrh r2, [r4, #4] - ldrh r3, [r4, #6] - bl sub_0800293E - cmp r0, #0 - beq _0805924C - ldrh r0, [r4, #8] - strh r0, [r7, #0xc] -_0805924C: - adds r4, #0xa - ldrh r0, [r4] - cmp r0, r6 - bne _08059238 -_08059254: - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08059266 - movs r0, #1 - strb r0, [r5, #0xc] - ldr r1, _08059274 @ =gUnk_02033A90 - ldr r0, _08059268 @ =gUnk_02034350 - ldrh r0, [r0, #0xc] - strh r0, [r1, #0xa] -_08059266: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08059268: .4byte gUnk_02034350 -_0805926C: .4byte gUnk_08108354 -_08059270: .4byte 0x0000FFFF -_08059274: .4byte gUnk_02033A90 - - thumb_func_start sub_08059278 -sub_08059278: @ 0x08059278 - push {lr} - movs r0, #9 - movs r1, #0xf - movs r2, #6 - bl sub_0805EB00 - cmp r0, #0 - beq _0805928C - bl sub_08058ECC -_0805928C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08059290 -sub_08059290: @ 0x08059290 - movs r1, #1 - strb r1, [r0, #0xc] - ldr r1, _0805929C @ =gUnk_03000BF0 - ldr r0, _080592A0 @ =gLinkEntity - str r0, [r1, #0x30] - bx lr - .align 2, 0 -_0805929C: .4byte gUnk_03000BF0 -_080592A0: .4byte gLinkEntity - - thumb_func_start sub_080592A4 -sub_080592A4: @ 0x080592A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080592C8 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _080592EA - adds r0, r4, #0 - bl sub_080592EC - bl sub_0805E780 - b _080592EA -_080592C8: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _080592EA - adds r0, r4, #0 - bl sub_080592EC - adds r0, r4, #0 - bl sub_0805930C - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_080A3268 - bl sub_0805E780 -_080592EA: - pop {r4, pc} - - thumb_func_start sub_080592EC -sub_080592EC: @ 0x080592EC - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - movs r2, #0x3f - ands r0, r2 - ldrh r1, [r1, #0x3a] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - bl sub_08059340 - pop {pc} - - thumb_func_start sub_0805930C -sub_0805930C: @ 0x0805930C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xf - movs r1, #0x43 - movs r2, #0x40 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805933A - ldr r1, _0805933C @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - ldrh r3, [r4, #0x38] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - ldrh r4, [r4, #0x3a] - adds r0, r0, r4 - strh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] -_0805933A: - pop {r4, pc} - .align 2, 0 -_0805933C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08059340 -sub_08059340: @ 0x08059340 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x1d - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0 - adds r1, r4, #0 - movs r2, #2 - bl sub_0807B314 - subs r4, #0x40 - movs r0, #0 - adds r1, r4, #0 - movs r2, #2 - bl sub_0807B314 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08059368 -sub_08059368: @ 0x08059368 - push {lr} - adds r2, r0, #0 - movs r0, #1 - strb r0, [r2, #0xc] - ldr r1, _08059388 @ =gUnk_02022780 - ldrh r0, [r2, #0x3c] - ldrh r1, [r1, #0x28] - cmp r0, r1 - bne _08059384 - ldrh r0, [r2, #0x3e] - bl sub_0807CCC8 - bl sub_0805E780 -_08059384: - pop {pc} - .align 2, 0 -_08059388: .4byte gUnk_02022780 - - thumb_func_start sub_0805938C -sub_0805938C: @ 0x0805938C - push {r4, lr} - adds r4, r0, #0 - bl sub_080593CC - cmp r0, #0 - beq _080593C8 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _080593CA - movs r1, #0x38 - ldrsh r0, [r4, r1] - ldr r2, _080593C4 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - movs r3, #0x3a - ldrsh r1, [r4, r3] - ldrh r2, [r2, #8] - subs r1, r1, r2 - movs r2, #0xff - movs r3, #0xa - bl sub_080806BC - b _080593CA - .align 2, 0 -_080593C4: .4byte gUnk_03000BF0 -_080593C8: - strb r0, [r4, #0xe] -_080593CA: - pop {r4, pc} - - thumb_func_start sub_080593CC -sub_080593CC: @ 0x080593CC - push {r4, lr} - adds r3, r0, #0 - ldr r2, _08059418 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08059420 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08059420 - ldr r4, _0805941C @ =gLinkEntity - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _08059420 - adds r0, r2, #0 - adds r0, #0x90 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #3 - cmp r0, r1 - bne _08059420 - movs r0, #0x38 - ldrsh r1, [r3, r0] - movs r0, #0x3a - ldrsh r2, [r3, r0] - adds r2, #0xc - adds r0, r4, #0 - movs r3, #6 - bl sub_0806FCB8 - b _08059422 - .align 2, 0 -_08059418: .4byte gUnk_03003F80 -_0805941C: .4byte gLinkEntity -_08059420: - movs r0, #0 -_08059422: - pop {r4, pc} - - thumb_func_start sub_08059424 -sub_08059424: @ 0x08059424 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _08059436 - bl sub_0805E780 -_08059436: - ldrh r0, [r4, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _08059476 - movs r0, #0xf - movs r1, #0x35 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08059476 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r1, _08059478 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - ldrh r3, [r4, #0x38] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - ldrh r4, [r4, #0x3a] - adds r0, r0, r4 - strh r0, [r2, #0x32] - movs r0, #0xd8 - lsls r0, r0, #1 - bl sub_08004488 - bl sub_0805E780 -_08059476: - pop {r4, pc} - .align 2, 0 -_08059478: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805947C -sub_0805947C: @ 0x0805947C - push {lr} - ldrh r0, [r0, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - bne _080594CE - movs r0, #3 - bl sub_08078A90 - ldr r1, _080594B0 @ =gUnk_03000BF0 - ldrh r0, [r1] - cmp r0, #0 - bne _080594D2 - ldr r0, _080594B4 @ =gUnk_02034350 - ldrb r0, [r0] - cmp r0, #0 - beq _080594BC - ldr r0, _080594B8 @ =gUnk_08108380 - ldrb r1, [r1, #0x10] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl sub_0807DB2C - b _080594CE - .align 2, 0 -_080594B0: .4byte gUnk_03000BF0 -_080594B4: .4byte gUnk_02034350 -_080594B8: .4byte gUnk_08108380 -_080594BC: - ldr r1, _080594D4 @ =gUnk_08108380 - ldr r0, _080594D8 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_0807DB2C -_080594CE: - bl sub_0805E780 -_080594D2: - pop {pc} - .align 2, 0 -_080594D4: .4byte gUnk_08108380 -_080594D8: .4byte gLinkEntity - - thumb_func_start sub_080594DC -sub_080594DC: @ 0x080594DC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080594F2 - cmp r0, #1 - bgt _0805951C - cmp r0, #0 - bne _0805951C - movs r0, #1 - strb r0, [r4, #0xc] -_080594F2: - movs r0, #6 - bl GetInventoryValue - cmp r0, #0 - beq _08059540 - movs r0, #0x8c - lsls r0, r0, #4 - movs r1, #0x85 - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _08059540 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r0, _08059518 @ =0x00000B0F - bl sub_080186C0 - b _08059540 - .align 2, 0 -_08059518: .4byte 0x00000B0F -_0805951C: - ldr r0, _08059544 @ =gUnk_02033A90 - adds r0, #0x28 - ldrb r0, [r0] - cmp r0, #0xff - beq _0805952A - bl sub_0805E780 -_0805952A: - movs r0, #0x8c - lsls r0, r0, #4 - movs r1, #0x85 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _08059540 - bl sub_0801855C - bl sub_0805E780 -_08059540: - pop {r4, pc} - .align 2, 0 -_08059544: .4byte gUnk_02033A90 - - thumb_func_start sub_08059548 -sub_08059548: @ 0x08059548 - push {lr} - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _08059568 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x16 - bne _0805955C - bl sub_0805E780 -_0805955C: - ldr r2, _0805956C @ =gUnk_03000FF0 - ldrh r1, [r2] - movs r0, #4 - orrs r0, r1 - strh r0, [r2] - pop {pc} - .align 2, 0 -_08059568: .4byte gLinkEntity -_0805956C: .4byte gUnk_03000FF0 - - thumb_func_start sub_08059570 -sub_08059570: @ 0x08059570 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _080595C8 - movs r6, #1 - strb r6, [r4, #0xc] - adds r0, #0x21 - strb r5, [r0] - adds r0, #2 - strb r5, [r0] - bl sub_0805986C - cmp r0, #0 - beq _080595A8 - adds r0, r4, #0 - adds r0, #0x20 - strb r6, [r0] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #2 - strb r0, [r1] - ldr r0, _080595A4 @ =gUnk_0200B650 - str r5, [r0] - b _080595B8 - .align 2, 0 -_080595A4: .4byte gUnk_0200B650 -_080595A8: - adds r0, r4, #0 - adds r0, #0x20 - movs r1, #0x1f - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #5 - strb r0, [r1] -_080595B8: - ldr r0, _080595DC @ =gUnk_02034350 - movs r1, #0xff - strb r1, [r0, #0x10] - ldr r1, _080595E0 @ =sub_080595E4 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 -_080595C8: - adds r0, r4, #0 - bl sub_08059608 - adds r0, r4, #0 - bl sub_08059690 - adds r0, r4, #0 - bl sub_080596E0 - pop {r4, r5, r6, pc} - .align 2, 0 -_080595DC: .4byte gUnk_02034350 -_080595E0: .4byte sub_080595E4 - - thumb_func_start sub_080595E4 -sub_080595E4: @ 0x080595E4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08059604 @ =gUnk_02034350 - movs r0, #0xff - strb r0, [r1, #0x10] - adds r0, r4, #0 - bl sub_08059690 - adds r0, r4, #0 - bl sub_080596E0 - movs r0, #0 - bl sub_0805B4D0 - pop {r4, pc} - .align 2, 0 -_08059604: .4byte gUnk_02034350 - - thumb_func_start sub_08059608 -sub_08059608: @ 0x08059608 - push {r4, lr} - adds r4, r0, #0 - adds r4, #0x23 - ldrb r0, [r4] - cmp r0, #0 - beq _08059638 - subs r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08059682 - ldr r0, _08059634 @ =gUnk_02033A90 - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - bl sub_080A3268 - b _08059682 - .align 2, 0 -_08059634: .4byte gUnk_02033A90 -_08059638: - bl sub_0805986C - cmp r0, #0 - beq _08059668 - ldr r0, _0805965C @ =gUnk_02033A90 - ldr r2, _08059660 @ =0x00000864 - adds r1, r0, r2 - ldr r0, [r1] - cmp r0, #0x1e - beq _08059682 - movs r0, #0x1e - str r0, [r1] - movs r0, #0x78 - strb r0, [r4] - ldr r0, _08059664 @ =0x800D0000 - bl sub_080A3268 - b _08059682 - .align 2, 0 -_0805965C: .4byte gUnk_02033A90 -_08059660: .4byte 0x00000864 -_08059664: .4byte 0x800D0000 -_08059668: - ldr r0, _08059684 @ =gUnk_02033A90 - ldr r2, _08059688 @ =0x00000864 - adds r1, r0, r2 - ldr r0, [r1] - cmp r0, #0x37 - beq _08059682 - movs r0, #0x37 - str r0, [r1] - movs r0, #0x78 - strb r0, [r4] - ldr r0, _0805968C @ =0x800D0000 - bl sub_080A3268 -_08059682: - pop {r4, pc} - .align 2, 0 -_08059684: .4byte gUnk_02033A90 -_08059688: .4byte 0x00000864 -_0805968C: .4byte 0x800D0000 - - thumb_func_start sub_08059690 -sub_08059690: @ 0x08059690 - push {r4, lr} - adds r4, r0, #0 - bl sub_08059844 - cmp r0, #0 - beq _080596BC - adds r4, #0x20 - ldrb r0, [r4] - cmp r0, #0 - beq _080596D8 - ldr r0, _080596B8 @ =gUnk_085A7320 - movs r2, #0xd0 - lsls r2, r2, #1 - adds r1, r0, r2 - ldrb r2, [r4] - bl sub_08059894 - ldrb r0, [r4] - subs r0, #1 - b _080596D6 - .align 2, 0 -_080596B8: .4byte gUnk_085A7320 -_080596BC: - adds r4, #0x20 - ldrb r0, [r4] - cmp r0, #0x1f - bhi _080596D8 - ldr r0, _080596DC @ =gUnk_085A7320 - movs r2, #0xd0 - lsls r2, r2, #1 - adds r1, r0, r2 - ldrb r2, [r4] - bl sub_08059894 - ldrb r0, [r4] - adds r0, #1 -_080596D6: - strb r0, [r4] -_080596D8: - pop {r4, pc} - .align 2, 0 -_080596DC: .4byte gUnk_085A7320 - - thumb_func_start sub_080596E0 -sub_080596E0: @ 0x080596E0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _08059730 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _080596FC - ldr r0, _08059734 @ =gUnk_03000F50 - ldrh r1, [r0, #0x16] - adds r1, #8 - movs r2, #0x1f - ands r1, r2 - strh r1, [r0, #0x16] -_080596FC: - bl sub_0805986C - cmp r0, #0 - beq _08059740 - adds r0, r4, #0 - adds r0, #0x21 - ldrb r1, [r0] - adds r5, r0, #0 - adds r2, r4, #0 - adds r2, #0x22 - cmp r1, #0 - bne _08059764 - ldrb r0, [r2] - cmp r0, #2 - beq _08059764 - movs r0, #1 - strb r0, [r5] - movs r0, #3 - strb r0, [r2] - ldr r0, _08059738 @ =gUnk_08108390 - ldrb r0, [r0, #3] - strb r0, [r4, #0xe] - ldr r0, _0805973C @ =gUnk_0200B650 - str r1, [r0] - b _08059764 - .align 2, 0 -_08059730: .4byte gUnk_030010A0 -_08059734: .4byte gUnk_03000F50 -_08059738: .4byte gUnk_08108390 -_0805973C: .4byte gUnk_0200B650 -_08059740: - adds r0, r4, #0 - adds r0, #0x21 - ldrb r1, [r0] - adds r5, r0, #0 - adds r2, r4, #0 - adds r2, #0x22 - cmp r1, #0 - bne _08059764 - ldrb r0, [r2] - cmp r0, #5 - beq _08059764 - movs r0, #2 - strb r0, [r5] - ldr r1, _08059774 @ =gUnk_08108390 - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] -_08059764: - adds r6, r5, #0 - ldrb r0, [r6] - cmp r0, #1 - beq _08059778 - cmp r0, #2 - beq _080597A8 - b _080597D0 - .align 2, 0 -_08059774: .4byte gUnk_08108390 -_08059778: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080597D0 - ldr r1, _080597A4 @ =gUnk_08108390 - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - ands r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - ldrb r0, [r2] - cmp r0, #2 - bne _080597D0 - strb r5, [r6] - b _080597D0 - .align 2, 0 -_080597A4: .4byte gUnk_08108390 -_080597A8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _080597D0 - ldr r1, _080597EC @ =gUnk_08108390 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ands r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - ldrb r0, [r2] - cmp r0, #5 - bne _080597D0 - strb r6, [r5] -_080597D0: - ldr r3, _080597F0 @ =gUnk_02034350 - ldrb r1, [r2] - ldrb r0, [r3, #0x10] - cmp r0, r1 - beq _08059838 - strb r1, [r3, #0x10] - ldrb r0, [r2] - cmp r0, #4 - beq _08059800 - cmp r0, #4 - ble _080597F4 - cmp r0, #5 - beq _08059824 - b _08059838 - .align 2, 0 -_080597EC: .4byte gUnk_08108390 -_080597F0: .4byte gUnk_02034350 -_080597F4: - cmp r0, #0 - blt _08059838 - adds r0, #0x2b - bl sub_0801D7EC - b _08059838 -_08059800: - ldr r4, _0805981C @ =gUnk_02001A40 - movs r5, #0x80 - lsls r5, r5, #4 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0801D630 - ldr r1, _08059820 @ =0x0600E800 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_08000E96 - b _08059838 - .align 2, 0 -_0805981C: .4byte gUnk_02001A40 -_08059820: .4byte 0x0600E800 -_08059824: - ldr r0, _0805983C @ =gUnk_0200B650 - ldr r1, _08059840 @ =gUnk_03000F64 - str r1, [r0] - subs r1, #0x14 - ldrh r2, [r1] - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - orrs r0, r2 - strh r0, [r1] -_08059838: - pop {r4, r5, r6, pc} - .align 2, 0 -_0805983C: .4byte gUnk_0200B650 -_08059840: .4byte gUnk_03000F64 - - thumb_func_start sub_08059844 -sub_08059844: @ 0x08059844 - push {lr} - movs r3, #0 - ldr r0, _08059864 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r2, _08059868 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - ldrh r0, [r2, #0x1e] - lsrs r0, r0, #1 - cmp r1, r0 - ble _0805985E - movs r3, #1 -_0805985E: - adds r0, r3, #0 - pop {pc} - .align 2, 0 -_08059864: .4byte gLinkEntity -_08059868: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805986C -sub_0805986C: @ 0x0805986C - push {lr} - movs r2, #0 - ldr r0, _0805988C @ =gLinkEntity - movs r3, #0x2e - ldrsh r1, [r0, r3] - ldr r0, _08059890 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - subs r1, r1, r0 - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - ble _08059886 - movs r2, #1 -_08059886: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0805988C: .4byte gLinkEntity -_08059890: .4byte gUnk_03000BF0 - - thumb_func_start sub_08059894 -sub_08059894: @ 0x08059894 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r0, _080598E8 @ =gUnk_020176E0 - mov sb, r0 - movs r6, #0 - lsls r2, r2, #0x18 - mov r8, r2 -_080598AA: - adds r0, r5, #0 - adds r1, r4, #0 - mov r2, sb - mov r7, r8 - lsrs r3, r7, #0x18 - bl sub_08059960 - adds r5, #0x20 - adds r4, #0x20 - movs r0, #0x20 - add sb, r0 - adds r6, #1 - cmp r6, #0xc - bls _080598AA - ldr r0, _080598EC @ =gUnk_02017700 - movs r2, #0x90 - lsls r2, r2, #2 - adds r1, r0, r2 - movs r2, #0x20 - bl sub_0801D66C - ldr r2, _080598F0 @ =gUnk_0200B644 - ldr r0, [r2] - ldr r1, _080598F4 @ =0x00207FFC - orrs r0, r1 - str r0, [r2] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080598E8: .4byte gUnk_020176E0 -_080598EC: .4byte gUnk_02017700 -_080598F0: .4byte gUnk_0200B644 -_080598F4: .4byte 0x00207FFC - - thumb_func_start sub_080598F8 -sub_080598F8: @ 0x080598F8 - push {r4, r5, r6, r7, lr} - movs r4, #0x1f - adds r3, r0, #0 - ands r3, r4 - lsls r6, r3, #8 - adds r3, r6, #0 - muls r3, r2, r3 - lsrs r6, r3, #5 - adds r3, r1, #0 - ands r3, r4 - lsls r3, r3, #8 - movs r4, #0x20 - subs r4, r4, r2 - muls r3, r4, r3 - lsrs r3, r3, #5 - adds r3, r6, r3 - lsrs r6, r3, #8 - movs r5, #0xf8 - lsls r5, r5, #2 - adds r3, r0, #0 - ands r3, r5 - lsls r7, r3, #3 - adds r3, r7, #0 - muls r3, r2, r3 - lsrs r7, r3, #5 - adds r3, r1, #0 - ands r3, r5 - lsls r3, r3, #3 - muls r3, r4, r3 - lsrs r3, r3, #5 - adds r3, r7, r3 - lsrs r7, r3, #8 - movs r3, #0xf8 - lsls r3, r3, #7 - ands r0, r3 - lsrs r5, r0, #2 - adds r0, r5, #0 - muls r0, r2, r0 - lsrs r5, r0, #5 - ands r1, r3 - lsrs r0, r1, #2 - muls r0, r4, r0 - lsrs r0, r0, #5 - adds r0, r5, r0 - lsrs r5, r0, #8 - lsls r0, r7, #5 - orrs r6, r0 - lsls r0, r5, #0xa - orrs r6, r0 - adds r0, r6, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08059960 -sub_08059960: @ 0x08059960 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - movs r7, #0 -_08059974: - ldrh r0, [r6] - adds r6, #2 - ldrh r1, [r5] - adds r5, #2 - mov r2, r8 - bl sub_080598F8 - strh r0, [r4] - adds r4, #2 - adds r7, #1 - cmp r7, #0xf - bls _08059974 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08059994 -sub_08059994: @ 0x08059994 - push {lr} - bl sub_0805986C - cmp r0, #0 - beq _080599AE - movs r0, #0x5b - bl sub_0801D714 - ldr r0, _080599B0 @ =gUnk_02033A90 - ldr r1, _080599B4 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x1e - str r1, [r0] -_080599AE: - pop {pc} - .align 2, 0 -_080599B0: .4byte gUnk_02033A90 -_080599B4: .4byte 0x00000864 - - thumb_func_start sub_080599B8 -sub_080599B8: @ 0x080599B8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080599D6 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _080599EA - bl sub_0805E780 - b _080599EA -_080599D6: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _080599EA - ldrh r0, [r4, #0x3c] - bl sub_0807CCC8 - bl sub_0805E780 -_080599EA: - pop {r4, pc} - - thumb_func_start sub_080599EC -sub_080599EC: @ 0x080599EC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08059A20 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #0xff - strb r0, [r1] - subs r1, #1 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - ldr r1, _08059A28 @ =sub_08059A2C - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 -_08059A20: - adds r0, r4, #0 - bl sub_08059A58 - pop {r4, pc} - .align 2, 0 -_08059A28: .4byte sub_08059A2C - - thumb_func_start sub_08059A2C -sub_08059A2C: @ 0x08059A2C - push {lr} - adds r2, r0, #0 - ldr r1, _08059A54 @ =gUnk_02034350 - movs r0, #0xff - strb r0, [r1, #0x12] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1, #0x11] - strb r0, [r1, #0x10] - adds r1, r2, #0 - adds r1, #0x22 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08059A58 - pop {pc} - .align 2, 0 -_08059A54: .4byte gUnk_02034350 - - thumb_func_start sub_08059A58 -sub_08059A58: @ 0x08059A58 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08059AC4 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #0x15 - beq _08059AD4 - adds r4, r5, #0 - adds r4, #0x20 - ldr r3, _08059AC8 @ =gUnk_08108398 - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_08059C8C - cmp r0, #0 - beq _08059A80 - ldrb r1, [r4] - movs r0, #0 - bl sub_08059CC0 -_08059A80: - adds r4, r5, #0 - adds r4, #0x21 - ldr r3, _08059ACC @ =gUnk_081083AE - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - bl sub_08059C8C - cmp r0, #0 - beq _08059AA6 - ldrb r1, [r4] - movs r0, #1 - bl sub_08059CC0 - ldrb r0, [r4] - cmp r0, #2 - bne _08059AA6 - bl sub_08059B18 -_08059AA6: - adds r4, r5, #0 - adds r4, #0x22 - ldr r3, _08059AD0 @ =gUnk_081083C4 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_08059C8C - cmp r0, #0 - beq _08059B0C - ldrb r1, [r4] - movs r0, #2 - bl sub_08059CC0 - b _08059B0C - .align 2, 0 -_08059AC4: .4byte gUnk_03000BF0 -_08059AC8: .4byte gUnk_08108398 -_08059ACC: .4byte gUnk_081083AE -_08059AD0: .4byte gUnk_081083C4 -_08059AD4: - adds r4, r5, #0 - adds r4, #0x20 - ldr r3, _08059B10 @ =gUnk_081083DA - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_08059C8C - cmp r0, #0 - beq _08059AF0 - ldrb r1, [r4] - movs r0, #0 - bl sub_08059CC0 -_08059AF0: - adds r4, r5, #0 - adds r4, #0x22 - ldr r3, _08059B14 @ =gUnk_081083F2 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_08059C8C - cmp r0, #0 - beq _08059B0C - ldrb r1, [r4] - movs r0, #2 - bl sub_08059CC0 -_08059B0C: - pop {r4, r5, pc} - .align 2, 0 -_08059B10: .4byte gUnk_081083DA -_08059B14: .4byte gUnk_081083F2 - - thumb_func_start sub_08059B18 -sub_08059B18: @ 0x08059B18 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #0x18 - bl GetProgressFlag - cmp r0, #0 - beq _08059BEC - movs r6, #0 - movs r0, #0x3f - mov sb, r0 - movs r2, #0xc4 - lsls r2, r2, #1 - mov r8, r2 -_08059B38: - movs r5, #0 - lsls r1, r6, #4 - mov r2, r8 - lsrs r0, r2, #4 - mov r2, sb - ands r0, r2 - lsls r3, r0, #6 - movs r7, #0x28 - ldr r0, _08059BD8 @ =0x000004AB - adds r4, r1, r0 -_08059B4C: - lsrs r1, r7, #4 - mov r2, sb - ands r1, r2 - orrs r1, r3 - adds r0, r4, #0 - movs r2, #1 - str r3, [sp] - bl sub_0807B9B8 - adds r7, #0x10 - adds r4, #1 - adds r5, #1 - ldr r3, [sp] - cmp r5, #3 - bls _08059B4C - movs r0, #0x10 - add r8, r0 - adds r6, #1 - cmp r6, #3 - bls _08059B38 - movs r6, #0 - movs r3, #0x3f -_08059B78: - movs r5, #0 - lsls r1, r6, #4 - adds r6, #1 - mov r8, r6 - movs r2, #0xc4 - lsls r2, r2, #1 - adds r0, r1, r2 - lsrs r0, r0, #4 - ands r0, r3 - lsls r7, r0, #6 - movs r6, #0x28 - movs r0, #0x88 - lsls r0, r0, #3 - adds r4, r1, r0 -_08059B94: - lsrs r1, r6, #4 - ands r1, r3 - orrs r1, r7 - adds r0, r4, #0 - movs r2, #2 - str r3, [sp] - bl sub_0807B9B8 - adds r6, #0x10 - adds r4, #1 - adds r5, #1 - ldr r3, [sp] - cmp r5, #3 - bls _08059B94 - mov r6, r8 - cmp r6, #2 - bls _08059B78 - ldr r1, _08059BDC @ =0x000005C2 - movs r0, #0xd6 - movs r2, #2 - bl sub_0807B9B8 - ldr r1, _08059BE0 @ =0x000005C3 - movs r0, #0xd7 - movs r2, #2 - bl sub_0807B9B8 - ldr r0, _08059BE4 @ =gUnk_086E8460 - ldr r1, _08059BE8 @ =0x06001800 - movs r2, #0x80 - lsls r2, r2, #4 - bl sub_08000E96 - b _08059C5E - .align 2, 0 -_08059BD8: .4byte 0x000004AB -_08059BDC: .4byte 0x000005C2 -_08059BE0: .4byte 0x000005C3 -_08059BE4: .4byte gUnk_086E8460 -_08059BE8: .4byte 0x06001800 -_08059BEC: - movs r0, #0x19 - bl GetProgressFlag - cmp r0, #0 - beq _08059C5E - movs r6, #0 - movs r3, #0x3f -_08059BFA: - movs r5, #0 - lsls r1, r6, #4 - adds r6, #1 - mov r8, r6 - movs r2, #0xc4 - lsls r2, r2, #1 - adds r0, r1, r2 - lsrs r0, r0, #4 - ands r0, r3 - lsls r7, r0, #6 - movs r6, #0x28 - ldr r0, _08059C68 @ =0x000004A6 - adds r4, r1, r0 -_08059C14: - lsrs r1, r6, #4 - ands r1, r3 - orrs r1, r7 - adds r0, r4, #0 - movs r2, #1 - str r3, [sp] - bl sub_0807B9B8 - adds r6, #0x10 - adds r4, #1 - adds r5, #1 - ldr r3, [sp] - cmp r5, #3 - bls _08059C14 - mov r6, r8 - cmp r6, #4 - bls _08059BFA - ldr r0, _08059C6C @ =0x00000444 - ldr r1, _08059C70 @ =0x00000602 - movs r2, #2 - bl sub_0807B9B8 - ldr r0, _08059C74 @ =0x00000445 - ldr r1, _08059C78 @ =0x00000605 - movs r2, #2 - bl sub_0807B9B8 - ldr r0, _08059C7C @ =0x00000454 - ldr r1, _08059C80 @ =0x00000642 - movs r2, #2 - bl sub_0807B9B8 - ldr r0, _08059C84 @ =0x00000455 - ldr r1, _08059C88 @ =0x00000645 - movs r2, #2 - bl sub_0807B9B8 -_08059C5E: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08059C68: .4byte 0x000004A6 -_08059C6C: .4byte 0x00000444 -_08059C70: .4byte 0x00000602 -_08059C74: .4byte 0x00000445 -_08059C78: .4byte 0x00000605 -_08059C7C: .4byte 0x00000454 -_08059C80: .4byte 0x00000642 -_08059C84: .4byte 0x00000455 -_08059C88: .4byte 0x00000645 - - thumb_func_start sub_08059C8C -sub_08059C8C: @ 0x08059C8C - push {r4, r5, lr} - adds r5, r1, #0 - adds r4, r2, #0 - adds r0, r3, #0 - bl sub_08056300 - adds r2, r0, #0 - strb r2, [r4] - lsls r0, r2, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xff - beq _08059CBC - ldr r0, _08059CB8 @ =gUnk_02034350 - adds r0, #0x10 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, r3 - beq _08059CBC - strb r2, [r1] - movs r0, #1 - b _08059CBE - .align 2, 0 -_08059CB8: .4byte gUnk_02034350 -_08059CBC: - movs r0, #0 -_08059CBE: - pop {r4, r5, pc} - - thumb_func_start sub_08059CC0 -sub_08059CC0: @ 0x08059CC0 - push {r4, r5, r6, lr} - adds r2, r1, #0 - ldr r1, _08059CDC @ =gUnk_02034350 - adds r1, #0x10 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, _08059CE0 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #0x15 - beq _08059CE8 - lsls r1, r2, #4 - ldr r0, _08059CE4 @ =gUnk_08108408 - b _08059CEC - .align 2, 0 -_08059CDC: .4byte gUnk_02034350 -_08059CE0: .4byte gUnk_03000BF0 -_08059CE4: .4byte gUnk_08108408 -_08059CE8: - lsls r1, r2, #4 - ldr r0, _08059D10 @ =gUnk_08108468 -_08059CEC: - adds r6, r1, r0 - ldr r0, [r6] - ldr r4, _08059D14 @ =gUnk_085A2E80 - adds r0, r0, r4 - ldr r1, [r6, #4] - movs r5, #0x80 - lsls r5, r5, #5 - adds r2, r5, #0 - bl sub_08000E96 - ldr r0, [r6, #8] - adds r0, r0, r4 - ldr r1, [r6, #0xc] - adds r2, r5, #0 - bl sub_08000E96 - pop {r4, r5, r6, pc} - .align 2, 0 -_08059D10: .4byte gUnk_08108468 -_08059D14: .4byte gUnk_085A2E80 - - thumb_func_start sub_08059D18 -sub_08059D18: @ 0x08059D18 - push {r4, lr} - ldr r0, _08059D68 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #0x15 - beq _08059D78 - ldr r0, _08059D6C @ =gUnk_08108398 - bl sub_08056300 - adds r4, r0, #0 - cmp r4, #0xff - beq _08059D36 - movs r0, #0 - adds r1, r4, #0 - bl sub_08059CC0 -_08059D36: - ldr r0, _08059D70 @ =gUnk_081083AE - bl sub_08056300 - adds r4, r0, #0 - cmp r4, #0xff - beq _08059D52 - movs r0, #1 - adds r1, r4, #0 - bl sub_08059CC0 - cmp r4, #2 - bne _08059D52 - bl sub_08059B18 -_08059D52: - ldr r0, _08059D74 @ =gUnk_081083C4 - bl sub_08056300 - adds r4, r0, #0 - cmp r4, #0xff - beq _08059DA0 - movs r0, #2 - adds r1, r4, #0 - bl sub_08059CC0 - b _08059DA0 - .align 2, 0 -_08059D68: .4byte gUnk_03000BF0 -_08059D6C: .4byte gUnk_08108398 -_08059D70: .4byte gUnk_081083AE -_08059D74: .4byte gUnk_081083C4 -_08059D78: - ldr r0, _08059DA4 @ =gUnk_081083DA - bl sub_08056300 - adds r4, r0, #0 - cmp r4, #0xff - beq _08059D8C - movs r0, #0 - adds r1, r4, #0 - bl sub_08059CC0 -_08059D8C: - ldr r0, _08059DA8 @ =gUnk_081083F2 - bl sub_08056300 - adds r4, r0, #0 - cmp r4, #0xff - beq _08059DA0 - movs r0, #2 - adds r1, r4, #0 - bl sub_08059CC0 -_08059DA0: - pop {r4, pc} - .align 2, 0 -_08059DA4: .4byte gUnk_081083DA -_08059DA8: .4byte gUnk_081083F2 - - thumb_func_start sub_08059DAC -sub_08059DAC: @ 0x08059DAC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08059DBE - movs r0, #1 - strb r0, [r5, #0xc] -_08059DBE: - ldr r1, _08059E4C @ =gUnk_03000BF0 - ldrb r0, [r1, #4] - ldr r4, _08059E50 @ =gUnk_081084C8 - cmp r0, #0x15 - bne _08059DCA - ldr r4, _08059E54 @ =gUnk_08108530 -_08059DCA: - movs r7, #0 - ldrh r0, [r4] - cmp r0, #0 - beq _08059E46 - mov r8, r1 -_08059DD4: - movs r6, #1 - lsls r6, r7 - ldr r0, [r5, #0x20] - ands r0, r6 - cmp r0, #0 - bne _08059E38 - ldrh r0, [r4] - ldrh r1, [r4, #2] - movs r2, #0x10 - movs r3, #0x10 - bl sub_0800290E - cmp r0, #0 - beq _08059E38 - ldrb r1, [r4, #4] - movs r0, #0x1c - adds r2, r7, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08059E38 - ldrb r0, [r4, #5] - strb r0, [r2, #0x1e] - ldrh r0, [r4] - mov r1, r8 - ldrh r1, [r1, #6] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - ldrh r0, [r4, #2] - mov r3, r8 - ldrh r3, [r3, #8] - adds r0, r0, r3 - strh r0, [r2, #0x32] - str r5, [r2, #0x50] - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x80 - strh r1, [r0] - ldrh r0, [r4, #2] - adds r1, r2, #0 - adds r1, #0x82 - strh r0, [r1] - ldrb r1, [r4, #6] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r0, [r5, #0x20] - orrs r0, r6 - str r0, [r5, #0x20] -_08059E38: - adds r4, #8 - adds r7, #1 - ldrh r0, [r4] - cmp r0, #0 - beq _08059E46 - cmp r7, #0x1f - bls _08059DD4 -_08059E46: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08059E4C: .4byte gUnk_03000BF0 -_08059E50: .4byte gUnk_081084C8 -_08059E54: .4byte gUnk_08108530 - - thumb_func_start sub_08059E58 -sub_08059E58: @ 0x08059E58 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - ldr r1, _08059E7C @ =gUnk_081085A4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0805A1D8 - pop {r4, pc} - .align 2, 0 -_08059E7C: .4byte gUnk_081085A4 - - thumb_func_start sub_08059E80 -sub_08059E80: @ 0x08059E80 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0805EABC - cmp r0, #0 - beq _08059E90 - bl sub_0805E780 -_08059E90: - adds r1, r4, #0 - adds r1, #0x22 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - movs r0, #0 - strh r2, [r4, #0x20] - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xf] - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r3, _08059EE4 @ =gUnk_03000F50 - ldr r0, _08059EE8 @ =0x00001E04 - strh r0, [r3, #0x2c] - ldrh r0, [r3] - movs r5, #0x80 - lsls r5, r5, #4 - adds r1, r5, #0 - orrs r0, r1 - strh r0, [r3] - adds r1, r3, #0 - adds r1, #0x66 - ldr r0, _08059EEC @ =0x00003E48 - strh r0, [r1] - adds r1, #2 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - movs r0, #0x80 - strh r0, [r3, #0x2e] - strh r2, [r3, #0x30] - ldr r1, _08059EF0 @ =nullsub_495 - ldr r2, _08059EF4 @ =sub_0805A25C - adds r0, r4, #0 - bl sub_08052D74 - pop {r4, r5, pc} - .align 2, 0 -_08059EE4: .4byte gUnk_03000F50 -_08059EE8: .4byte 0x00001E04 -_08059EEC: .4byte 0x00003E48 -_08059EF0: .4byte nullsub_495 -_08059EF4: .4byte sub_0805A25C - - thumb_func_start sub_08059EF8 -sub_08059EF8: @ 0x08059EF8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r6, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08059F90 - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08059F9C - cmp r0, #0 - beq _08059F64 - ldr r2, _08059F50 @ =gUnk_08108588 - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - ldr r0, _08059F54 @ =0x00000808 - cmp r1, r0 - beq _08059F5C - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x24 - strb r5, [r0] - ldr r1, _08059F58 @ =gUnk_03000F50 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ands r0, r6 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, #0x68 - strh r0, [r1] - b _08059F90 - .align 2, 0 -_08059F50: .4byte gUnk_08108588 -_08059F54: .4byte 0x00000808 -_08059F58: .4byte gUnk_03000F50 -_08059F5C: - adds r0, r4, #0 - adds r0, #0x22 - strb r5, [r0] - b _08059F90 -_08059F64: - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #1 - strb r0, [r1] - ldr r3, _08059F94 @ =gUnk_08108588 - ldrb r2, [r4, #0xe] - lsls r0, r2, #1 - adds r0, r0, r3 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #5 - cmp r1, r0 - beq _08059F90 - ldr r0, _08059F98 @ =gUnk_03000F50 - subs r1, r2, #1 - strb r1, [r4, #0xe] - ands r1, r6 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r1, [r1] - adds r0, #0x68 - strh r1, [r0] -_08059F90: - pop {r4, r5, r6, pc} - .align 2, 0 -_08059F94: .4byte gUnk_08108588 -_08059F98: .4byte gUnk_03000F50 - - thumb_func_start sub_08059F9C -sub_08059F9C: @ 0x08059F9C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08059FB4 @ =gUnk_03000BF0 - ldrb r0, [r0, #5] - cmp r0, #0x17 - bhi _0805A03A - lsls r0, r0, #2 - ldr r1, _08059FB8 @ =_08059FBC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08059FB4: .4byte gUnk_03000BF0 -_08059FB8: .4byte _08059FBC -_08059FBC: @ jump table - .4byte _0805A036 @ case 0 - .4byte _0805A01C @ case 1 - .4byte _0805A03A @ case 2 - .4byte _0805A03A @ case 3 - .4byte _0805A03A @ case 4 - .4byte _0805A03A @ case 5 - .4byte _0805A03A @ case 6 - .4byte _0805A02A @ case 7 - .4byte _0805A036 @ case 8 - .4byte _0805A036 @ case 9 - .4byte _0805A03A @ case 10 - .4byte _0805A03A @ case 11 - .4byte _0805A03A @ case 12 - .4byte _0805A03A @ case 13 - .4byte _0805A03A @ case 14 - .4byte _0805A03A @ case 15 - .4byte _0805A03A @ case 16 - .4byte _0805A03A @ case 17 - .4byte _0805A03A @ case 18 - .4byte _0805A03A @ case 19 - .4byte _0805A03A @ case 20 - .4byte _0805A03A @ case 21 - .4byte _0805A03A @ case 22 - .4byte _0805A036 @ case 23 -_0805A01C: - movs r0, #0x16 - bl sub_0807CBD0 - cmp r0, #0 - beq _0805A02A - movs r0, #0 - b _0805A03C -_0805A02A: - adds r0, r4, #0 - bl sub_0805A25C - bl sub_0805E780 - b _0805A03C -_0805A036: - movs r0, #1 - b _0805A03C -_0805A03A: - movs r0, #0 -_0805A03C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805A040 -sub_0805A040: @ 0x0805A040 - push {lr} - bl sub_0805A098 - pop {pc} - - thumb_func_start sub_0805A048 -sub_0805A048: @ 0x0805A048 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805A086 - movs r0, #4 - strb r0, [r4, #0xf] - ldr r2, _0805A090 @ =gUnk_03000F50 - ldr r3, _0805A094 @ =gUnk_08108588 - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r3 - ldrh r0, [r0] - adds r2, #0x68 - strh r0, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #9 - bne _0805A086 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #0 - strb r0, [r1] -_0805A086: - adds r0, r4, #0 - bl sub_0805A098 - pop {r4, pc} - .align 2, 0 -_0805A090: .4byte gUnk_03000F50 -_0805A094: .4byte gUnk_08108588 - - thumb_func_start sub_0805A098 -sub_0805A098: @ 0x0805A098 - push {lr} - adds r1, r0, #0 - ldr r0, _0805A0B0 @ =gUnk_03000BF0 - ldrb r0, [r0, #5] - cmp r0, #9 - bgt _0805A0B4 - cmp r0, #8 - bge _0805A0BC - cmp r0, #0 - beq _0805A0BC - b _0805A0B8 - .align 2, 0 -_0805A0B0: .4byte gUnk_03000BF0 -_0805A0B4: - cmp r0, #0x17 - beq _0805A0BC -_0805A0B8: - movs r0, #3 - strb r0, [r1, #0xc] -_0805A0BC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805A0C0 -sub_0805A0C0: @ 0x0805A0C0 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xf] - subs r0, #1 - strb r0, [r3, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805A106 - movs r0, #4 - strb r0, [r3, #0xf] - ldr r4, _0805A108 @ =gUnk_03000F50 - ldr r2, _0805A10C @ =gUnk_08108588 - ldrb r0, [r3, #0xe] - adds r1, r0, #0 - adds r1, #0xff - strb r1, [r3, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strh r2, [r0] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xff - bne _0805A106 - ldrh r1, [r4] - ldr r0, _0805A110 @ =0x0000F7FF - ands r0, r1 - strh r0, [r4] - bl sub_08056250 - bl sub_0805E780 -_0805A106: - pop {r4, pc} - .align 2, 0 -_0805A108: .4byte gUnk_03000F50 -_0805A10C: .4byte gUnk_08108588 -_0805A110: .4byte 0x0000F7FF - - thumb_func_start sub_0805A114 -sub_0805A114: @ 0x0805A114 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r6, r1, #0 - ldr r2, _0805A154 @ =gUnk_03003DE4 - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0805A158 @ =gUnk_02017AA0 - adds r4, r0, r1 - movs r5, #0 - mov r8, r2 - mov sb, r1 - ldr r2, _0805A15C @ =gUnk_03000F50 - ldr r0, _0805A160 @ =gUnk_080C9160 - mov ip, r0 -_0805A13A: - movs r1, #0x30 - ldrsh r0, [r2, r1] - adds r3, r5, r0 - asrs r1, r3, #3 - movs r0, #7 - ands r1, r0 - cmp r1, #7 - bhi _0805A190 - lsls r0, r1, #2 - ldr r1, _0805A164 @ =_0805A168 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805A154: .4byte gUnk_03003DE4 -_0805A158: .4byte gUnk_02017AA0 -_0805A15C: .4byte gUnk_03000F50 -_0805A160: .4byte gUnk_080C9160 -_0805A164: .4byte _0805A168 -_0805A168: @ jump table - .4byte _0805A190 @ case 0 - .4byte _0805A18C @ case 1 - .4byte _0805A190 @ case 2 - .4byte _0805A190 @ case 3 - .4byte _0805A188 @ case 4 - .4byte _0805A190 @ case 5 - .4byte _0805A190 @ case 6 - .4byte _0805A18C @ case 7 -_0805A188: - subs r3, #8 - b _0805A190 -_0805A18C: - movs r0, #0xf0 - b _0805A192 -_0805A190: - movs r0, #0xf8 -_0805A192: - ands r3, r0 - adds r0, r6, r3 - movs r1, #0xff - ands r0, r1 - lsls r0, r0, #1 - add r0, ip - movs r1, #0 - ldrsh r0, [r0, r1] - muls r0, r7, r0 - lsrs r0, r0, #8 - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r4] - adds r4, #2 - adds r5, #1 - cmp r5, #0x9f - ble _0805A13A - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - add r0, sb - ldr r1, _0805A1D0 @ =0x0400001C - ldr r2, _0805A1D4 @ =0xA2600001 - bl sub_0805622C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805A1D0: .4byte 0x0400001C -_0805A1D4: .4byte 0xA2600001 - - thumb_func_start sub_0805A1D8 -sub_0805A1D8: @ 0x0805A1D8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0805A244 @ =gUnk_03000BF0 - ldr r0, [r1, #0x28] - ldr r2, _0805A248 @ =0xFFFFF000 - adds r0, r0, r2 - str r0, [r1, #0x28] - ldr r5, _0805A24C @ =gUnk_03000F50 - ldrh r0, [r1, #0x2a] - strh r0, [r5, #0x2e] - ldr r0, [r1, #0x2c] - adds r0, r0, r2 - str r0, [r1, #0x2c] - ldrh r0, [r1, #0x2e] - strh r0, [r5, #0x30] - ldrh r1, [r5] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0805A240 - ldrh r1, [r4, #0x20] - lsrs r1, r1, #1 - movs r0, #6 - bl sub_0805A114 - adds r0, r4, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0 - bne _0805A240 - ldr r0, _0805A250 @ =gUnk_03001000 - ldrh r1, [r0, #0xc] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0805A240 - adds r2, r4, #0 - adds r2, #0x24 - ldrb r0, [r2] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r2] - ldr r1, _0805A254 @ =gUnk_0810859A - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] -_0805A240: - pop {r4, r5, pc} - .align 2, 0 -_0805A244: .4byte gUnk_03000BF0 -_0805A248: .4byte 0xFFFFF000 -_0805A24C: .4byte gUnk_03000F50 -_0805A250: .4byte gUnk_03001000 -_0805A254: .4byte gUnk_0810859A - - thumb_func_start nullsub_495 -nullsub_495: @ 0x0805A258 - bx lr - .align 2, 0 - - thumb_func_start sub_0805A25C -sub_0805A25C: @ 0x0805A25C - push {lr} - ldr r1, _0805A278 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0 - strh r0, [r2] - ldrh r2, [r1] - ldr r0, _0805A27C @ =0x0000F7FF - ands r0, r2 - strh r0, [r1] - bl sub_08056250 - pop {pc} - .align 2, 0 -_0805A278: .4byte gUnk_03000F50 -_0805A27C: .4byte 0x0000F7FF - - thumb_func_start sub_0805A280 -sub_0805A280: @ 0x0805A280 - push {lr} - ldr r2, _0805A294 @ =gUnk_081085D8 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805A294: .4byte gUnk_081085D8 - - thumb_func_start sub_0805A298 -sub_0805A298: @ 0x0805A298 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805A2D6 - adds r0, r4, #0 - bl sub_0805A89C - ldrh r0, [r4, #0x3e] - bl sub_0807CBD0 - cmp r0, #0 - bne _0805A2BA - adds r1, r4, #0 - adds r1, #0x23 - movs r0, #1 - b _0805A2C0 -_0805A2BA: - adds r1, r4, #0 - adds r1, #0x23 - movs r0, #2 -_0805A2C0: - strb r0, [r1] - ldrb r0, [r1] - bl sub_0805AAF0 - ldr r2, _0805A2E0 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x90 - lsls r3, r3, #7 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] -_0805A2D6: - adds r0, r4, #0 - bl sub_0805A8EC - pop {r4, pc} - .align 2, 0 -_0805A2E0: .4byte gUnk_03000F50 - - thumb_func_start sub_0805A2E4 -sub_0805A2E4: @ 0x0805A2E4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805A34C - adds r0, r4, #0 - bl sub_0805A89C - adds r0, r4, #0 - adds r0, #0x23 - movs r5, #1 - strb r5, [r0] - movs r0, #1 - bl sub_0805AAF0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBD0 - cmp r0, #0 - bne _0805A324 - strb r5, [r4, #0xc] - ldr r2, _0805A31C @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805A320 @ =0x0000B7FF - ands r0, r1 - strh r0, [r2] - b _0805A35C - .align 2, 0 -_0805A31C: .4byte gUnk_03000F50 -_0805A320: .4byte 0x0000B7FF -_0805A324: - movs r0, #0x48 - bl sub_0807CBD0 - cmp r0, #0 - beq _0805A332 - movs r0, #4 - b _0805A334 -_0805A332: - movs r0, #3 -_0805A334: - strb r0, [r4, #0xc] - ldr r2, _0805A348 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x90 - lsls r3, r3, #7 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - b _0805A35C - .align 2, 0 -_0805A348: .4byte gUnk_03000F50 -_0805A34C: - ldr r0, _0805A36C @ =gUnk_081085F8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0805A35C: - ldr r0, [r4, #4] - cmp r0, #0 - beq _0805A368 - adds r0, r4, #0 - bl sub_0805A8EC -_0805A368: - pop {r4, r5, pc} - .align 2, 0 -_0805A36C: .4byte gUnk_081085F8 - - thumb_func_start sub_0805A370 -sub_0805A370: @ 0x0805A370 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0805A38A - ldr r0, _0805A38C @ =gUnk_080E4C08 - bl LoadRoomEntityList - movs r0, #3 - strb r0, [r4, #0xc] - ldr r0, _0805A390 @ =0x80100000 - bl sub_080A3268 -_0805A38A: - pop {r4, pc} - .align 2, 0 -_0805A38C: .4byte gUnk_080E4C08 -_0805A390: .4byte 0x80100000 - - thumb_func_start sub_0805A394 -sub_0805A394: @ 0x0805A394 - push {lr} - movs r0, #3 - movs r1, #0x13 - movs r2, #4 - bl sub_0805EB00 - cmp r0, #0 - beq _0805A3AA - ldrb r0, [r0, #0xa] - cmp r0, #4 - bne _0805A3C4 -_0805A3AA: - movs r0, #0x48 - bl sub_0807CCB4 - movs r0, #0 - bl sub_0807CD8C - ldr r2, _0805A3C8 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805A3CC @ =0x0000B7FF - ands r0, r1 - strh r0, [r2] - bl sub_0805E780 -_0805A3C4: - pop {pc} - .align 2, 0 -_0805A3C8: .4byte gUnk_03000F50 -_0805A3CC: .4byte 0x0000B7FF - - thumb_func_start nullsub_496 -nullsub_496: @ 0x0805A3D0 - bx lr - .align 2, 0 - - thumb_func_start sub_0805A3D4 -sub_0805A3D4: @ 0x0805A3D4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805A448 - adds r0, r4, #0 - bl sub_0805A89C - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _0805A3F2 - adds r1, r4, #0 - adds r1, #0x23 - movs r0, #2 - b _0805A3F8 -_0805A3F2: - adds r1, r4, #0 - adds r1, #0x23 - movs r0, #1 -_0805A3F8: - strb r0, [r1] - ldrb r0, [r1] - bl sub_0805AAF0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBD0 - cmp r0, #0 - bne _0805A428 - ldrh r0, [r4, #0x3c] - bl sub_0807CD48 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _0805A420 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805A424 @ =0x0000B7FF - ands r0, r1 - strh r0, [r2] - b _0805A458 - .align 2, 0 -_0805A420: .4byte gUnk_03000F50 -_0805A424: .4byte 0x0000B7FF -_0805A428: - ldrh r0, [r4, #0x3c] - bl sub_0807CCC8 - movs r0, #3 - strb r0, [r4, #0xc] - ldr r2, _0805A444 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x90 - lsls r3, r3, #7 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - b _0805A458 - .align 2, 0 -_0805A444: .4byte gUnk_03000F50 -_0805A448: - ldr r0, _0805A460 @ =gUnk_0810860C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0805A458: - adds r0, r4, #0 - bl sub_0805A8EC - pop {r4, pc} - .align 2, 0 -_0805A460: .4byte gUnk_0810860C - - thumb_func_start sub_0805A464 -sub_0805A464: @ 0x0805A464 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBD0 - cmp r0, #0 - beq _0805A47E - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_0805A4CC -_0805A47E: - pop {r4, pc} - - thumb_func_start sub_0805A480 -sub_0805A480: @ 0x0805A480 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xd] - cmp r0, #0 - beq _0805A494 - movs r0, #3 - strb r0, [r1, #0xc] - ldrh r0, [r1, #0x3c] - bl sub_0807CCC8 -_0805A494: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805A498 -sub_0805A498: @ 0x0805A498 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBD0 - cmp r0, #0 - bne _0805A4B2 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_0805A4CC -_0805A4B2: - pop {r4, pc} - - thumb_func_start sub_0805A4B4 -sub_0805A4B4: @ 0x0805A4B4 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xd] - cmp r0, #0 - beq _0805A4C8 - movs r0, #1 - strb r0, [r1, #0xc] - ldrh r0, [r1, #0x3c] - bl sub_0807CD48 -_0805A4C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805A4CC -sub_0805A4CC: @ 0x0805A4CC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x8e - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805A4F8 - ldr r1, _0805A4FC @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - ldrh r2, [r4, #0x38] - adds r0, r0, r2 - movs r2, #0 - strh r0, [r3, #0x2e] - ldrh r0, [r1, #8] - ldrh r1, [r4, #0x3a] - adds r0, r0, r1 - subs r0, #0x30 - strh r0, [r3, #0x32] - str r4, [r3, #0x50] - strb r2, [r4, #0xd] -_0805A4F8: - pop {r4, pc} - .align 2, 0 -_0805A4FC: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805A500 -sub_0805A500: @ 0x0805A500 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _0805A588 - bl sub_0805A89C - str r5, [r4, #0x28] - movs r0, #0x36 - bl sub_0807CBD0 - cmp r0, #0 - beq _0805A538 - adds r3, r4, #0 - adds r3, #0x23 - movs r0, #3 - strb r0, [r3] - movs r0, #5 - strb r0, [r4, #0xc] - ldr r2, _0805A534 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r5, #0x90 - lsls r5, r5, #7 - adds r0, r5, #0 - orrs r0, r1 - b _0805A574 - .align 2, 0 -_0805A534: .4byte gUnk_03000F50 -_0805A538: - movs r0, #0x34 - bl sub_0807CBD0 - cmp r0, #0 - beq _0805A560 - adds r3, r4, #0 - adds r3, #0x23 - movs r0, #4 - strb r0, [r3] - movs r0, #3 - strb r0, [r4, #0xc] - ldr r2, _0805A55C @ =gUnk_03000F50 - ldrh r1, [r2] - movs r5, #0x90 - lsls r5, r5, #7 - adds r0, r5, #0 - orrs r0, r1 - b _0805A574 - .align 2, 0 -_0805A55C: .4byte gUnk_03000F50 -_0805A560: - adds r3, r4, #0 - adds r3, #0x23 - movs r0, #4 - strb r0, [r3] - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _0805A580 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805A584 @ =0x0000B7FF - ands r0, r1 -_0805A574: - strh r0, [r2] - ldrb r0, [r3] - bl sub_0805AAF0 - b _0805A598 - .align 2, 0 -_0805A580: .4byte gUnk_03000F50 -_0805A584: .4byte 0x0000B7FF -_0805A588: - ldr r0, _0805A5C0 @ =gUnk_08108620 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0805A598: - adds r0, r4, #0 - bl sub_0805AA58 - adds r0, r4, #0 - bl sub_0805A9CC - ldr r1, _0805A5C4 @ =gUnk_03000BF0 - ldrh r3, [r1] - cmp r3, #1 - bne _0805A5CC - ldr r2, _0805A5C8 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r5, #0x80 - lsls r5, r5, #7 - adds r0, r5, #0 - orrs r0, r1 - strh r0, [r2] - strb r3, [r4, #0xd] - b _0805A5F0 - .align 2, 0 -_0805A5C0: .4byte gUnk_08108620 -_0805A5C4: .4byte gUnk_03000BF0 -_0805A5C8: .4byte gUnk_03000F50 -_0805A5CC: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0805A5F0 - movs r0, #0 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - ldrb r1, [r1, #5] - cmp r0, r1 - beq _0805A5F0 - ldr r2, _0805A5F4 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805A5F8 @ =0x0000B7FF - ands r0, r1 - strh r0, [r2] - bl sub_0805E780 -_0805A5F0: - pop {r4, r5, pc} - .align 2, 0 -_0805A5F4: .4byte gUnk_03000F50 -_0805A5F8: .4byte 0x0000B7FF - - thumb_func_start sub_0805A5FC -sub_0805A5FC: @ 0x0805A5FC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x34 - bl sub_0807CBD0 - cmp r0, #0 - beq _0805A616 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805A4CC -_0805A616: - pop {r4, pc} - - thumb_func_start sub_0805A618 -sub_0805A618: @ 0x0805A618 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xd] - cmp r0, #0 - beq _0805A626 - movs r0, #3 - strb r0, [r1, #0xc] -_0805A626: - pop {pc} - - thumb_func_start sub_0805A628 -sub_0805A628: @ 0x0805A628 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x36 - bl sub_0807CBD0 - cmp r0, #0 - beq _0805A64A - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x23 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805A4CC -_0805A64A: - pop {r4, pc} - - thumb_func_start sub_0805A64C -sub_0805A64C: @ 0x0805A64C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xd] - cmp r0, #0 - beq _0805A65A - movs r0, #5 - strb r0, [r1, #0xc] -_0805A65A: - pop {pc} - - thumb_func_start sub_0805A65C -sub_0805A65C: @ 0x0805A65C - bx lr - .align 2, 0 - - thumb_func_start sub_0805A660 -sub_0805A660: @ 0x0805A660 - bx lr - .align 2, 0 - - thumb_func_start sub_0805A664 -sub_0805A664: @ 0x0805A664 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0805A688 @ =gUnk_08108638 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0805A8EC - adds r0, r4, #0 - bl sub_0805A68C - pop {r4, pc} - .align 2, 0 -_0805A688: .4byte gUnk_08108638 - - thumb_func_start sub_0805A68C -sub_0805A68C: @ 0x0805A68C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x38 - ldrsh r0, [r4, r1] - subs r0, #0x18 - movs r2, #0x3a - ldrsh r1, [r4, r2] - subs r1, #0x18 - movs r2, #0x30 - movs r3, #0x30 - bl sub_0806FBFC - cmp r0, #0 - beq _0805A6CC - ldrh r1, [r4, #0x2c] - ldr r0, _0805A6C4 @ =0x00001007 - cmp r1, r0 - bhi _0805A6E2 - ldr r0, _0805A6C8 @ =gUnk_03000F50 - adds r1, #1 - movs r2, #0 - strh r1, [r4, #0x2c] - adds r0, #0x68 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #0x22 - strb r2, [r0] - b _0805A6E2 - .align 2, 0 -_0805A6C4: .4byte 0x00001007 -_0805A6C8: .4byte gUnk_03000F50 -_0805A6CC: - ldrh r1, [r4, #0x2c] - movs r0, #0x80 - lsls r0, r0, #5 - cmp r1, r0 - bls _0805A6DA - subs r0, r1, #1 - strh r0, [r4, #0x2c] -_0805A6DA: - ldr r0, _0805A6E4 @ =gUnk_03000F50 - ldrh r1, [r4, #0x2c] - adds r0, #0x68 - strh r1, [r0] -_0805A6E2: - pop {r4, pc} - .align 2, 0 -_0805A6E4: .4byte gUnk_03000F50 - - thumb_func_start sub_0805A6E8 -sub_0805A6E8: @ 0x0805A6E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805A89C - adds r1, r4, #0 - adds r1, #0x23 - movs r0, #0 - strb r0, [r1] - bl sub_0805AAF0 - ldr r1, _0805A734 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - ldrh r2, [r4, #0x38] - adds r0, r0, r2 - strh r0, [r4, #0x38] - ldrh r0, [r1, #8] - ldrh r3, [r4, #0x3a] - adds r0, r0, r3 - strh r0, [r4, #0x3a] - adds r0, r4, #0 - bl sub_0805A73C - cmp r0, #0 - bne _0805A71E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0805A71E: - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r4, #0x2c] - ldr r2, _0805A738 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x90 - lsls r3, r3, #7 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - pop {r4, pc} - .align 2, 0 -_0805A734: .4byte gUnk_03000BF0 -_0805A738: .4byte gUnk_03000F50 - - thumb_func_start sub_0805A73C -sub_0805A73C: @ 0x0805A73C - push {lr} - adds r1, r0, #0 - movs r2, #0x38 - ldrsh r0, [r1, r2] - subs r0, #6 - movs r2, #0x3a - ldrsh r1, [r1, r2] - subs r1, #6 - movs r2, #0xc - movs r3, #0xc - bl sub_0806FBFC - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805A758 -sub_0805A758: @ 0x0805A758 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805A73C - cmp r0, #0 - bne _0805A76A - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0805A76A: - pop {r4, pc} - - thumb_func_start sub_0805A76C -sub_0805A76C: @ 0x0805A76C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _0805A7D4 @ =gLinkEntity - adds r0, r5, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0805A7D0 - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0805A7D0 - ldr r0, _0805A7D8 @ =gUnk_03003F80 - ldr r6, [r0, #0x2c] - cmp r6, #0 - bne _0805A7D0 - adds r0, #0xa9 - ldrb r0, [r0] - cmp r0, #1 - bgt _0805A7D0 - cmp r0, #0 - blt _0805A7D0 - adds r0, r4, #0 - bl sub_0805A73C - cmp r0, #0 - beq _0805A7D0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r5, #0 - bl sub_08004168 - movs r0, #4 - strb r0, [r5, #0x14] - movs r1, #0x96 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_0805E4E0 - movs r0, #0xff - bl sub_08078A90 - ldr r1, _0805A7DC @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - ldr r0, _0805A7E0 @ =gUnk_03000BF0 - str r6, [r0, #0x30] - bl sub_08077B20 -_0805A7D0: - pop {r4, r5, r6, pc} - .align 2, 0 -_0805A7D4: .4byte gLinkEntity -_0805A7D8: .4byte gUnk_03003F80 -_0805A7DC: .4byte gUnk_02034490 -_0805A7E0: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805A7E4 -sub_0805A7E4: @ 0x0805A7E4 - push {lr} - ldr r2, _0805A800 @ =gUnk_03003F80 - ldrb r0, [r2, #0xc] - cmp r0, #0x12 - beq _0805A7FE - movs r1, #0 - movs r0, #0x12 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] -_0805A7FE: - pop {pc} - .align 2, 0 -_0805A800: .4byte gUnk_03003F80 - - thumb_func_start sub_0805A804 -sub_0805A804: @ 0x0805A804 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #4 - bhi _0805A896 - lsls r0, r0, #2 - ldr r1, _0805A818 @ =_0805A81C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805A818: .4byte _0805A81C -_0805A81C: @ jump table - .4byte _0805A830 @ case 0 - .4byte _0805A858 @ case 1 - .4byte _0805A866 @ case 2 - .4byte _0805A872 @ case 3 - .4byte _0805A88A @ case 4 -_0805A830: - ldrh r0, [r4, #0x3e] - bl sub_0807CBD0 - cmp r0, #0 - beq _0805A83E - movs r0, #1 - b _0805A840 -_0805A83E: - movs r0, #2 -_0805A840: - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - b _0805A89A -_0805A858: - ldrh r0, [r4, #0x3e] - bl sub_0807CBD0 - cmp r0, #0 - bne _0805A89A - movs r0, #2 - b _0805A87E -_0805A866: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0805A89A - movs r0, #3 - strb r0, [r4, #0xc] - b _0805A89A -_0805A872: - ldrh r0, [r4, #0x3e] - bl sub_0807CBD0 - cmp r0, #0 - beq _0805A89A - movs r0, #4 -_0805A87E: - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #4 - bl sub_0805A4CC - b _0805A89A -_0805A88A: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0805A89A - movs r0, #1 - strb r0, [r4, #0xc] - b _0805A89A -_0805A896: - bl sub_0805E780 -_0805A89A: - pop {r4, pc} - - thumb_func_start sub_0805A89C -sub_0805A89C: @ 0x0805A89C - push {r4, lr} - adds r4, r0, #0 - movs r1, #6 - bl sub_0805E3A0 - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x21 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - ldr r1, _0805A8E4 @ =gUnk_03000BF0 - ldrb r2, [r1, #5] - subs r0, #2 - strb r2, [r0] - ldrh r0, [r1, #6] - strh r0, [r4, #0x24] - ldrh r0, [r1, #8] - strh r0, [r4, #0x26] - ldr r1, _0805A8E8 @ =sub_0805AAC8 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 - pop {r4, pc} - .align 2, 0 -_0805A8E4: .4byte gUnk_03000BF0 -_0805A8E8: .4byte sub_0805AAC8 - - thumb_func_start sub_0805A8EC -sub_0805A8EC: @ 0x0805A8EC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0805AA58 - adds r0, r4, #0 - bl sub_0805A94C - ldr r1, _0805A914 @ =gUnk_03000BF0 - ldrh r3, [r1] - cmp r3, #1 - bne _0805A91C - ldr r2, _0805A918 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r5, #0x80 - lsls r5, r5, #7 - adds r0, r5, #0 - orrs r0, r1 - strh r0, [r2] - strb r3, [r4, #0xd] - b _0805A940 - .align 2, 0 -_0805A914: .4byte gUnk_03000BF0 -_0805A918: .4byte gUnk_03000F50 -_0805A91C: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0805A940 - movs r0, #0 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x20 - ldrb r0, [r0] - ldrb r1, [r1, #5] - cmp r0, r1 - beq _0805A940 - ldr r2, _0805A944 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805A948 @ =0x0000B7FF - ands r0, r1 - strh r0, [r2] - bl sub_0805E780 -_0805A940: - pop {r4, r5, pc} - .align 2, 0 -_0805A944: .4byte gUnk_03000F50 -_0805A948: .4byte 0x0000B7FF - - thumb_func_start sub_0805A94C -sub_0805A94C: @ 0x0805A94C - push {r4, lr} - ldr r4, _0805A9C4 @ =gUnk_03000F50 - ldr r3, _0805A9C8 @ =gUnk_03000BF0 - ldrh r1, [r3, #0xa] - ldrh r2, [r0, #0x24] - subs r1, r1, r2 - ldrh r2, [r0, #0x34] - adds r1, r1, r2 - strh r1, [r4, #0x2e] - ldrh r1, [r3, #0xc] - ldrh r2, [r0, #0x26] - subs r1, r1, r2 - ldrh r0, [r0, #0x36] - adds r1, r1, r0 - strh r1, [r4, #0x30] - movs r1, #0x2e - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r0, r2 - cmp r0, #0 - bge _0805A97C - movs r0, #0 -_0805A97C: - cmp r0, #0xf0 - ble _0805A982 - movs r0, #0xf0 -_0805A982: - cmp r1, #0 - bge _0805A988 - movs r1, #0 -_0805A988: - cmp r1, #0xf0 - ble _0805A98E - movs r1, #0xf0 -_0805A98E: - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x5a - strh r0, [r1] - movs r1, #0x30 - ldrsh r0, [r4, r1] - rsbs r0, r0, #0 - adds r1, r0, r2 - cmp r0, #0 - bge _0805A9A6 - movs r0, #0 -_0805A9A6: - cmp r0, #0xa0 - ble _0805A9AC - movs r0, #0xa0 -_0805A9AC: - cmp r1, #0 - bge _0805A9B2 - movs r1, #0 -_0805A9B2: - cmp r1, #0xa0 - ble _0805A9B8 - movs r1, #0xa0 -_0805A9B8: - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x5e - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_0805A9C4: .4byte gUnk_03000F50 -_0805A9C8: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805A9CC -sub_0805A9CC: @ 0x0805A9CC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, _0805AA4C @ =gUnk_03000F50 - ldr r5, _0805AA50 @ =gUnk_03000BF0 - ldrh r0, [r5, #0xa] - ldrh r1, [r4, #0x24] - subs r0, r0, r1 - ldrh r1, [r4, #0x34] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r2, #0x2e - ldrsh r0, [r3, r2] - rsbs r2, r0, #0 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r2, r0 - cmp r2, #0 - bge _0805A9F2 - movs r2, #0 -_0805A9F2: - cmp r2, #0xf0 - ble _0805A9F8 - movs r2, #0xf0 -_0805A9F8: - cmp r1, #0 - bge _0805A9FE - movs r1, #0 -_0805A9FE: - cmp r1, #0xf0 - ble _0805AA04 - movs r1, #0xf0 -_0805AA04: - lsls r0, r2, #8 - orrs r0, r1 - adds r1, r3, #0 - adds r1, #0x5a - strh r0, [r1] - movs r1, #0xc - ldrsh r0, [r5, r1] - ldrh r1, [r4, #0x26] - subs r0, r0, r1 - movs r2, #0x36 - ldrsh r1, [r4, r2] - adds r2, r0, r1 - movs r1, #0x3f - adds r0, r2, #0 - ands r0, r1 - strh r0, [r3, #0x30] - adds r0, r2, #0 - cmp r0, #0 - bge _0805AA2C - adds r0, #0x3f -_0805AA2C: - asrs r0, r0, #6 - lsls r0, r0, #9 - ldr r1, _0805AA54 @ =gUnk_02001A40 - adds r1, r0, r1 - str r1, [r3, #0x34] - adds r2, r3, #0 - adds r2, #0x5e - movs r0, #0xa0 - strh r0, [r2] - ldr r0, [r4, #0x28] - cmp r0, r1 - beq _0805AA4A - str r1, [r4, #0x28] - movs r0, #1 - strh r0, [r3, #0x32] -_0805AA4A: - pop {r4, r5, pc} - .align 2, 0 -_0805AA4C: .4byte gUnk_03000F50 -_0805AA50: .4byte gUnk_03000BF0 -_0805AA54: .4byte gUnk_02001A40 - - thumb_func_start sub_0805AA58 -sub_0805AA58: @ 0x0805AA58 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805AA8C - movs r0, #8 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x21 - ldrb r0, [r2] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r2] - ldrb r0, [r2] - lsls r0, r0, #5 - ldr r1, _0805AABC @ =gUnk_085A97A0 - adds r0, r0, r1 - movs r1, #5 - movs r2, #1 - bl sub_0801D754 -_0805AA8C: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _0805AABA - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x22 - ldrb r0, [r2] - adds r0, #1 - movs r1, #0xf - ands r0, r1 - strb r0, [r2] - ldr r1, _0805AAC0 @ =gUnk_03000F50 - ldr r3, _0805AAC4 @ =gUnk_081085B8 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrh r0, [r0] - adds r1, #0x68 - strh r0, [r1] -_0805AABA: - pop {r4, r5, pc} - .align 2, 0 -_0805AABC: .4byte gUnk_085A97A0 -_0805AAC0: .4byte gUnk_03000F50 -_0805AAC4: .4byte gUnk_081085B8 - - thumb_func_start sub_0805AAC8 -sub_0805AAC8: @ 0x0805AAC8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x23 - ldrb r0, [r0] - bl sub_0805AAF0 - adds r0, r4, #0 - bl sub_0805A280 - pop {r4, pc} - - thumb_func_start sub_0805AADC -sub_0805AADC: @ 0x0805AADC - push {lr} - ldr r1, _0805AAEC @ =gUnk_08108648 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_0801D7EC - pop {pc} - .align 2, 0 -_0805AAEC: .4byte gUnk_08108648 - - thumb_func_start sub_0805AAF0 -sub_0805AAF0: @ 0x0805AAF0 - push {lr} - bl sub_0805AADC - ldr r3, _0805AB34 @ =gUnk_03000F50 - adds r1, r3, #0 - adds r1, #0x66 - movs r2, #0 - ldr r0, _0805AB38 @ =0x00003E48 - strh r0, [r1] - adds r1, #2 - ldr r0, _0805AB3C @ =0x00001008 - strh r0, [r1] - ldr r0, _0805AB40 @ =0x00001E04 - strh r0, [r3, #0x2c] - ldr r0, _0805AB44 @ =gUnk_02001A40 - str r0, [r3, #0x34] - strh r2, [r3, #0x2e] - strh r2, [r3, #0x30] - movs r0, #1 - strh r0, [r3, #0x32] - subs r1, #8 - ldr r0, _0805AB48 @ =0x00003F3F - strh r0, [r1] - adds r1, #2 - movs r0, #0x37 - strh r0, [r1] - subs r1, #8 - movs r0, #0xf0 - strh r0, [r1] - adds r1, #4 - movs r0, #0xa0 - strh r0, [r1] - pop {pc} - .align 2, 0 -_0805AB34: .4byte gUnk_03000F50 -_0805AB38: .4byte 0x00003E48 -_0805AB3C: .4byte 0x00001008 -_0805AB40: .4byte 0x00001E04 -_0805AB44: .4byte gUnk_02001A40 -_0805AB48: .4byte 0x00003F3F - - thumb_func_start sub_0805AB4C -sub_0805AB4C: @ 0x0805AB4C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - ldrb r0, [r6, #0xa] - bl sub_0804B128 - adds r4, r0, #0 - cmp r4, #0 - bne _0805AB68 - bl sub_0805E780 -_0805AB68: - ldrb r0, [r6, #0xc] - movs r1, #0x20 - adds r1, r1, r6 - mov r8, r1 - cmp r0, #0 - bne _0805ABC8 - adds r0, #1 - strb r0, [r6, #0xc] - ldr r0, _0805ABF0 @ =gUnk_02033A90 - ldrb r0, [r0, #8] - strb r0, [r1] - adds r0, r6, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r2, _0805ABF4 @ =gUnk_02031EC0 - ldrb r0, [r6, #0xb] - mov r3, r8 - ldrb r1, [r3] - adds r0, r0, r1 - lsls r0, r0, #4 - adds r2, r0, r2 - movs r5, #0 - mov sl, r5 - ldrb r0, [r4] - movs r7, #0x21 - adds r7, r7, r6 - mov ip, r7 - cmp r0, #0xff - beq _0805ABBE -_0805ABA4: - adds r1, r2, #0 - adds r0, r4, #0 - ldm r0!, {r3, r5, r7} - stm r1!, {r3, r5, r7} - ldr r0, [r0] - str r0, [r1] - movs r0, #1 - add sl, r0 - adds r4, #0x10 - adds r2, #0x10 - ldrb r0, [r4] - cmp r0, #0xff - bne _0805ABA4 -_0805ABBE: - movs r0, #0xff - strb r0, [r2] - mov r2, sl - mov r1, ip - strb r2, [r1] -_0805ABC8: - ldr r4, _0805ABF4 @ =gUnk_02031EC0 - ldrb r2, [r6, #0xb] - mov r3, r8 - ldrb r1, [r3] - adds r0, r2, r1 - lsls r0, r0, #4 - adds r4, r0, r4 - ldr r0, _0805ABF8 @ =gUnk_02002A40 - movs r5, #1 - mov sl, r5 - mov r7, sl - ldrb r0, [r0, #8] - lsls r7, r0 - mov sl, r7 - adds r0, r1, #7 - asrs r0, r0, #3 - ldr r1, _0805ABFC @ =gUnk_020342F8 - adds r7, r0, r1 - adds r5, r2, #0 - b _0805ACAA - .align 2, 0 -_0805ABF0: .4byte gUnk_02033A90 -_0805ABF4: .4byte gUnk_02031EC0 -_0805ABF8: .4byte gUnk_02002A40 -_0805ABFC: .4byte gUnk_020342F8 -_0805AC00: - ldrh r0, [r4, #4] - ldrh r1, [r4, #6] - movs r2, #0x18 - movs r3, #0x20 - bl sub_0800290E - cmp r0, #0 - bne _0805AC1A - adds r0, r7, #0 - adds r1, r5, #0 - bl sub_0801D5D4 - b _0805ACA6 -_0805AC1A: - ldrh r0, [r4, #0xe] - mov r1, sl - ands r0, r1 - cmp r0, #0 - beq _0805ACA6 - ldr r0, _0805AC5C @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bhi _0805ACA6 - adds r0, r7, #0 - adds r1, r5, #0 - bl sub_0801D5BC - cmp r0, #0 - bne _0805ACA6 - ldr r0, [r4, #8] - cmp r0, #0 - beq _0805AC48 - bl sub_0807DAA0 - mov sb, r0 - cmp r0, #0 - beq _0805ACA6 -_0805AC48: - ldrb r0, [r6, #0xe] - cmp r0, #0 - bne _0805AC60 - ldrb r0, [r4] - ldrb r1, [r4, #1] - ldrb r2, [r4, #2] - bl sub_0806ED50 - b _0805AC6A - .align 2, 0 -_0805AC5C: .4byte gUnk_03003DBC -_0805AC60: - ldrb r0, [r4] - ldrb r1, [r4, #1] - ldrb r2, [r4, #2] - bl CreateObject -_0805AC6A: - adds r3, r0, #0 - mov r2, r8 - ldrb r0, [r2] - adds r0, #1 - adds r0, r5, r0 - adds r1, r3, #0 - adds r1, #0x45 - strb r0, [r1] - ldrh r0, [r4, #0xc] - strb r0, [r3, #0xe] - ldr r1, _0805ACBC @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - ldrh r2, [r4, #4] - adds r0, r0, r2 - strh r0, [r3, #0x2e] - ldrh r0, [r1, #8] - ldrh r1, [r4, #6] - adds r0, r0, r1 - strh r0, [r3, #0x32] - ldrb r1, [r4, #3] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r2, [r4, #8] - cmp r2, #0 - beq _0805ACA6 - adds r0, r3, #0 - mov r1, sb - bl sub_0807DAF0 -_0805ACA6: - adds r4, #0x10 - adds r5, #1 -_0805ACAA: - ldrb r0, [r4] - cmp r0, #0xff - bne _0805AC00 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805ACBC: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805ACC0 -sub_0805ACC0: @ 0x0805ACC0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _0805ACF0 - b _0805AD32 -_0805ACD0: - ldrb r0, [r4, #0xb] - subs r0, r5, r0 - lsls r0, r0, #4 - adds r3, r3, r0 - ldrh r0, [r3, #4] - ldr r2, _0805ACEC @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldrh r1, [r3, #6] - orrs r0, r1 - ldrh r2, [r2, #8] - adds r0, r0, r2 - b _0805AD34 - .align 2, 0 -_0805ACEC: .4byte gUnk_03000BF0 -_0805ACF0: - movs r0, #0x7f - ands r0, r1 - subs r5, r0, #1 - ldr r6, _0805AD3C @ =gUnk_03003DA0 - ldr r4, [r6, #4] - cmp r4, r6 - beq _0805AD32 - ldr r0, _0805AD40 @ =0x00001609 - mov r8, r0 - ldr r0, _0805AD44 @ =0x0000FFFF - adds r7, r0, #0 -_0805AD06: - ldrh r0, [r4, #8] - ands r0, r7 - cmp r0, r8 - bne _0805AD2C - ldrb r1, [r4, #0xb] - cmp r1, r5 - bgt _0805AD2C - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - adds r0, r1, r0 - cmp r0, r5 - ble _0805AD2C - ldrb r0, [r4, #0xa] - bl sub_0804B128 - adds r3, r0, #0 - cmp r3, #0 - bne _0805ACD0 -_0805AD2C: - ldr r4, [r4, #4] - cmp r4, r6 - bne _0805AD06 -_0805AD32: - movs r0, #0 -_0805AD34: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805AD3C: .4byte gUnk_03003DA0 -_0805AD40: .4byte 0x00001609 -_0805AD44: .4byte 0x0000FFFF - - thumb_func_start sub_0805AD48 -sub_0805AD48: @ 0x0805AD48 - push {lr} - ldr r2, _0805AD5C @ =gUnk_08108654 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805AD5C: .4byte gUnk_08108654 - - thumb_func_start sub_0805AD60 -sub_0805AD60: @ 0x0805AD60 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805AD76 - bl sub_0805E780 -_0805AD76: - adds r0, r4, #0 - bl sub_0805AD80 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805AD80 -sub_0805AD80: @ 0x0805AD80 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805ADD0 - ldrb r1, [r4, #0xa] - ldrb r2, [r4, #0xb] - movs r0, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805ADCC - adds r0, r4, #0 - adds r0, #0x35 - ldrb r0, [r0] - strb r0, [r2, #0xe] - adds r0, r4, #0 - adds r0, #0x36 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, _0805ADD4 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - ldrh r3, [r4, #0x38] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - ldrh r1, [r4, #0x3a] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrh r1, [r4, #0x3c] - adds r0, r2, #0 - adds r0, #0x86 - strh r1, [r0] -_0805ADCC: - bl sub_0805E780 -_0805ADD0: - pop {r4, pc} - .align 2, 0 -_0805ADD4: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805ADD8 -sub_0805ADD8: @ 0x0805ADD8 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - bne _0805AE04 - ldr r0, _0805ADF8 @ =gUnk_02033A90 - ldr r1, _0805ADFC @ =0x0000088C - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0805AE00 @ =sub_0805AEDC - cmp r0, r1 - beq _0805AEC4 - movs r0, #0 - bl _call_via_r1 - b _0805AEC4 - .align 2, 0 -_0805ADF8: .4byte gUnk_02033A90 -_0805ADFC: .4byte 0x0000088C -_0805AE00: .4byte sub_0805AEDC -_0805AE04: - ldrb r2, [r4, #0xc] - cmp r2, #0 - bne _0805AE5E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - strb r2, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - ldr r0, _0805AE44 @ =gUnk_0810865C - ldrh r0, [r0] - strh r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _0805AE48 @ =gUnk_02033A90 - ldr r2, _0805AE4C @ =0x0000088C - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, #0 - bne _0805AE58 - ldr r1, _0805AE50 @ =sub_0805AEDC - ldr r2, _0805AE54 @ =sub_0805AF3C - adds r0, r4, #0 - bl sub_08052D74 - b _0805AEC4 - .align 2, 0 -_0805AE44: .4byte gUnk_0810865C -_0805AE48: .4byte gUnk_02033A90 -_0805AE4C: .4byte 0x0000088C -_0805AE50: .4byte sub_0805AEDC -_0805AE54: .4byte sub_0805AF3C -_0805AE58: - bl sub_0805E780 - b _0805AEC4 -_0805AE5E: - ldr r2, _0805AEC8 @ =gUnk_0810865C - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r3, _0805AECC @ =gUnk_03000F50 - cmp r0, #0 - beq _0805AEA2 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805AEA2 - movs r0, #4 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, #0 - beq _0805AEA2 - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - strh r1, [r4, #0x20] - adds r0, r3, #0 - adds r0, #0x68 - strh r1, [r0] -_0805AEA2: - ldr r1, _0805AED0 @ =gUnk_03000BF0 - ldr r0, [r1, #0x28] - ldr r2, _0805AED4 @ =0xFFFFE000 - adds r0, r0, r2 - str r0, [r1, #0x28] - ldr r0, [r1, #0x2c] - ldr r2, _0805AED8 @ =0xFFFFF000 - adds r0, r0, r2 - str r0, [r1, #0x2c] - ldrh r0, [r1, #0x2a] - ldrh r2, [r1, #0xa] - adds r0, r0, r2 - strh r0, [r3, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r3, #0x30] -_0805AEC4: - pop {r4, pc} - .align 2, 0 -_0805AEC8: .4byte gUnk_0810865C -_0805AECC: .4byte gUnk_03000F50 -_0805AED0: .4byte gUnk_03000BF0 -_0805AED4: .4byte 0xFFFFE000 -_0805AED8: .4byte 0xFFFFF000 - - thumb_func_start sub_0805AEDC -sub_0805AEDC: @ 0x0805AEDC - push {r4, lr} - adds r3, r0, #0 - ldr r2, _0805AF2C @ =gUnk_03000F50 - ldr r0, _0805AF30 @ =0x00001E05 - strh r0, [r2, #0x2c] - ldrh r0, [r2] - movs r4, #0x80 - lsls r4, r4, #4 - adds r1, r4, #0 - orrs r0, r1 - strh r0, [r2] - adds r1, r2, #0 - adds r1, #0x66 - ldr r0, _0805AF34 @ =0x00003648 - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #5 - adds r1, r0, #0 - cmp r3, #0 - beq _0805AF06 - ldrh r1, [r3, #0x20] -_0805AF06: - adds r0, r2, #0 - adds r0, #0x68 - strh r1, [r0] - ldr r1, _0805AF38 @ =gUnk_03000BF0 - ldrh r0, [r1, #0x2a] - ldrh r4, [r1, #0xa] - adds r0, r0, r4 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] - cmp r3, #0 - beq _0805AF28 - adds r0, r3, #0 - bl sub_0805ADD8 -_0805AF28: - pop {r4, pc} - .align 2, 0 -_0805AF2C: .4byte gUnk_03000F50 -_0805AF30: .4byte 0x00001E05 -_0805AF34: .4byte 0x00003648 -_0805AF38: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805AF3C -sub_0805AF3C: @ 0x0805AF3C - ldrb r2, [r0, #0x10] - movs r1, #0xdf - ands r1, r2 - movs r3, #0 - strb r1, [r0, #0x10] - ldr r1, _0805AF58 @ =gUnk_03000F50 - ldrh r2, [r1] - ldr r0, _0805AF5C @ =0x0000F7FF - ands r0, r2 - strh r0, [r1] - adds r1, #0x66 - strh r3, [r1] - bx lr - .align 2, 0 -_0805AF58: .4byte gUnk_03000F50 -_0805AF5C: .4byte 0x0000F7FF - - thumb_func_start sub_0805AF60 -sub_0805AF60: @ 0x0805AF60 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - bne _0805AF8C - ldr r0, _0805AF80 @ =gUnk_02033A90 - ldr r1, _0805AF84 @ =0x0000088C - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0805AF88 @ =sub_0805AFFC - cmp r0, r1 - beq _0805AFEE - movs r0, #0 - bl _call_via_r1 - b _0805AFEE - .align 2, 0 -_0805AF80: .4byte gUnk_02033A90 -_0805AF84: .4byte 0x0000088C -_0805AF88: .4byte sub_0805AFFC -_0805AF8C: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805AFD2 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _0805AFC0 @ =gUnk_02033A90 - ldr r2, _0805AFC4 @ =0x0000088C - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, #0 - bne _0805AFCC - ldr r1, _0805AFC8 @ =sub_0805AFFC - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 - b _0805AFEE - .align 2, 0 -_0805AFC0: .4byte gUnk_02033A90 -_0805AFC4: .4byte 0x0000088C -_0805AFC8: .4byte sub_0805AFFC -_0805AFCC: - bl sub_0805E780 - b _0805AFEE -_0805AFD2: - ldr r1, _0805AFF0 @ =gUnk_03000BF0 - ldr r0, [r1, #0x28] - ldr r3, _0805AFF4 @ =0xFFFFE000 - adds r0, r0, r3 - str r0, [r1, #0x28] - ldr r2, _0805AFF8 @ =gUnk_03000F50 - ldrh r0, [r1, #0x2a] - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] -_0805AFEE: - pop {r4, pc} - .align 2, 0 -_0805AFF0: .4byte gUnk_03000BF0 -_0805AFF4: .4byte 0xFFFFE000 -_0805AFF8: .4byte gUnk_03000F50 - - thumb_func_start sub_0805AFFC -sub_0805AFFC: @ 0x0805AFFC - ldr r2, _0805B024 @ =gUnk_03000F50 - ldr r0, _0805B028 @ =0x00001E03 - strh r0, [r2, #0x2c] - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _0805B02C @ =gUnk_03000BF0 - ldrh r0, [r1, #0x2a] - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] - bx lr - .align 2, 0 -_0805B024: .4byte gUnk_03000F50 -_0805B028: .4byte 0x00001E03 -_0805B02C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805B030 -sub_0805B030: @ 0x0805B030 - push {lr} - ldr r2, _0805B044 @ =gUnk_08108668 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805B044: .4byte gUnk_08108668 - - thumb_func_start sub_0805B048 -sub_0805B048: @ 0x0805B048 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - adds r0, #0x20 - movs r1, #0x20 - bl sub_0801D630 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _0805B08C @ =gUnk_03000BF0 - ldrb r0, [r2, #5] - adds r1, r4, #0 - adds r1, #0x3f - strb r0, [r1] - ldrb r1, [r4, #0xa] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805B090 @ =gUnk_08108764 - adds r5, r0, r1 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0805B094 - ldrh r0, [r2, #6] - strh r0, [r4, #0x20] - ldrh r0, [r2, #8] - strh r0, [r4, #0x22] - ldrh r0, [r2, #0x1e] - strh r0, [r4, #0x24] - ldrh r0, [r2, #0x20] - b _0805B0B2 - .align 2, 0 -_0805B08C: .4byte gUnk_03000BF0 -_0805B090: .4byte gUnk_08108764 -_0805B094: - ldrb r0, [r5, #8] - lsls r0, r0, #4 - ldrh r1, [r2, #6] - adds r0, r0, r1 - strh r0, [r4, #0x20] - ldrb r0, [r5, #9] - lsls r0, r0, #4 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] - ldrb r0, [r5, #0xa] - lsls r0, r0, #4 - strh r0, [r4, #0x24] - ldrb r0, [r5, #0xb] - lsls r0, r0, #4 -_0805B0B2: - strh r0, [r4, #0x26] - ldr r1, [r5, #0xc] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - strb r0, [r4, #0xb] - cmp r0, #0 - beq _0805B0FC - ldrb r0, [r4, #0x10] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r0, [r5, #0xc] - ldrh r0, [r0, #4] - strh r0, [r4, #0x34] - ldr r0, [r5, #0xc] - ldrh r0, [r0, #6] - strh r0, [r4, #0x36] - ldr r0, [r5, #0xc] - ldrh r0, [r0, #8] - strh r0, [r4, #0x30] - ldr r0, [r5, #0xc] - ldrh r0, [r0, #0xa] - strh r0, [r4, #0x32] - bl sub_0805BC4C - adds r0, r4, #0 - bl sub_0805B2B0 - adds r0, r4, #0 - bl sub_0805B328 - ldr r1, _0805B160 @ =sub_0805B328 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 -_0805B0FC: - ldr r0, [r5, #0x10] - cmp r0, #0 - beq _0805B15E - ldrb r1, [r0] - ldrb r2, [r0, #1] - movs r0, #0x28 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805B128 - ldr r1, [r5, #0x10] - ldr r2, _0805B164 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - ldrh r1, [r1, #4] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - ldr r1, [r5, #0x10] - ldrh r0, [r2, #8] - ldrh r1, [r1, #6] - adds r0, r0, r1 - strh r0, [r3, #0x32] -_0805B128: - ldrb r0, [r4, #0xa] - cmp r0, #0xa - bne _0805B15E - movs r0, #0x4b - bl sub_0807CBD0 - cmp r0, #0 - bne _0805B15E - movs r0, #0x28 - movs r1, #3 - movs r2, #3 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805B15E - ldr r1, [r5, #0x10] - ldr r2, _0805B164 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - ldrh r1, [r1, #4] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - ldr r1, [r5, #0x10] - ldrh r0, [r2, #8] - ldrh r1, [r1, #6] - adds r0, r0, r1 - strh r0, [r3, #0x32] -_0805B15E: - pop {r4, r5, pc} - .align 2, 0 -_0805B160: .4byte sub_0805B328 -_0805B164: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805B168 -sub_0805B168: @ 0x0805B168 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0805B1CC - adds r5, r0, #0 - cmp r5, #0 - beq _0805B182 - adds r0, r4, #0 - bl sub_0805B210 - bl sub_0805E780 - b _0805B1C0 -_0805B182: - adds r0, r4, #0 - bl sub_0805B2B0 - ldr r1, _0805B194 @ =gUnk_03000BF0 - ldrh r0, [r1] - cmp r0, #1 - bne _0805B198 - strb r0, [r4, #0xd] - b _0805B1C0 - .align 2, 0 -_0805B194: .4byte gUnk_03000BF0 -_0805B198: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0805B1C0 - strb r5, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - ldrb r1, [r1, #5] - cmp r0, r1 - beq _0805B1C0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0805B1BC - ldr r2, _0805B1C4 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805B1C8 @ =0x0000F7FF - ands r0, r1 - strh r0, [r2] -_0805B1BC: - bl sub_0805E780 -_0805B1C0: - pop {r4, r5, pc} - .align 2, 0 -_0805B1C4: .4byte gUnk_03000F50 -_0805B1C8: .4byte 0x0000F7FF - - thumb_func_start sub_0805B1CC -sub_0805B1CC: @ 0x0805B1CC - push {r4, r5, lr} - movs r5, #0 - movs r1, #0x20 - ldrsh r4, [r0, r1] - movs r2, #0x22 - ldrsh r1, [r0, r2] - ldrh r2, [r0, #0x24] - ldrh r3, [r0, #0x26] - adds r0, r4, #0 - bl sub_0806FBFC - cmp r0, #0 - beq _0805B20C - ldr r2, _0805B1FC @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #5 - ands r0, r1 - cmp r0, #5 - bne _0805B200 - movs r0, #0x80 - lsls r0, r0, #8 - orrs r1, r0 - str r1, [r2, #0x30] - b _0805B20C - .align 2, 0 -_0805B1FC: .4byte gUnk_03003F80 -_0805B200: - movs r0, #0x80 - lsls r0, r0, #8 - ands r1, r0 - cmp r1, #0 - beq _0805B20C - movs r5, #1 -_0805B20C: - adds r0, r5, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0805B210 -sub_0805B210: @ 0x0805B210 - push {r4, r5, lr} - ldr r2, _0805B248 @ =gUnk_030010A0 - movs r1, #1 - strb r1, [r2, #8] - strb r1, [r2, #9] - movs r1, #4 - strb r1, [r2, #0xe] - ldrb r1, [r0, #0xa] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805B24C @ =gUnk_08108764 - adds r4, r0, r1 - ldrb r0, [r4, #1] - strb r0, [r2, #0xc] - ldrb r0, [r4, #2] - strb r0, [r2, #0xd] - ldrb r0, [r4, #3] - strb r0, [r2, #0x14] - ldr r0, _0805B250 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - adds r5, r2, #0 - cmp r0, #0 - beq _0805B254 - movs r0, #6 - b _0805B256 - .align 2, 0 -_0805B248: .4byte gUnk_030010A0 -_0805B24C: .4byte gUnk_08108764 -_0805B250: .4byte gUnk_03003F80 -_0805B254: - movs r0, #2 -_0805B256: - strb r0, [r5, #0xf] - ldrb r0, [r4] - cmp r0, #1 - beq _0805B278 - cmp r0, #1 - bgt _0805B268 - cmp r0, #0 - beq _0805B26E - b _0805B2AC -_0805B268: - cmp r0, #2 - beq _0805B2A0 - b _0805B2AC -_0805B26E: - ldrh r0, [r4, #4] - strh r0, [r5, #0x10] - ldrh r0, [r4, #6] - strh r0, [r5, #0x12] - b _0805B2AC -_0805B278: - ldr r2, _0805B298 @ =gLinkEntity - ldr r3, _0805B29C @ =gUnk_03000BF0 - ldrh r0, [r2, #0x2e] - ldrh r1, [r3, #6] - subs r0, r0, r1 - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r5, #0x10] - ldrh r0, [r2, #0x32] - ldrh r1, [r3, #8] - subs r0, r0, r1 - ldrh r4, [r4, #6] - adds r0, r0, r4 - strh r0, [r5, #0x12] - b _0805B2AC - .align 2, 0 -_0805B298: .4byte gLinkEntity -_0805B29C: .4byte gUnk_03000BF0 -_0805B2A0: - ldrh r0, [r4, #4] - strh r0, [r5, #0x10] - ldrh r0, [r4, #6] - strh r0, [r5, #0x12] - movs r0, #6 - strb r0, [r5, #0xf] -_0805B2AC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0805B2B0 -sub_0805B2B0: @ 0x0805B2B0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0805B31E - ldrh r1, [r5, #0x30] - ldr r6, _0805B320 @ =gUnk_03000BF0 - movs r2, #0xa - ldrsh r0, [r6, r2] - subs r1, r1, r0 - cmp r1, #0 - bge _0805B2CA - adds r1, #3 -_0805B2CA: - asrs r4, r1, #2 - ldrh r1, [r5, #0x32] - movs r7, #0xc - ldrsh r0, [r6, r7] - subs r1, r1, r0 - cmp r1, #0 - bge _0805B2DA - adds r1, #3 -_0805B2DA: - asrs r3, r1, #2 - movs r0, #0xc - rsbs r0, r0, #0 - cmp r4, r0 - bge _0805B2E6 - adds r4, r0, #0 -_0805B2E6: - cmp r4, #0xc - ble _0805B2EC - movs r4, #0xc -_0805B2EC: - cmp r3, r0 - bge _0805B2F2 - adds r3, r0, #0 -_0805B2F2: - cmp r3, #0xc - ble _0805B2F8 - movs r3, #0xc -_0805B2F8: - ldr r2, _0805B324 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r7, #0x80 - lsls r7, r7, #4 - adds r0, r7, #0 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r5, #0x34] - ldrh r1, [r6, #0xa] - adds r0, r0, r1 - adds r0, r0, r4 - strh r0, [r6, #0x2a] - strh r0, [r2, #0x2e] - ldrh r0, [r5, #0x36] - ldrh r7, [r6, #0xc] - adds r0, r0, r7 - adds r0, r0, r3 - strh r0, [r6, #0x2e] - strh r0, [r2, #0x30] -_0805B31E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805B320: .4byte gUnk_03000BF0 -_0805B324: .4byte gUnk_03000F50 - - thumb_func_start sub_0805B328 -sub_0805B328: @ 0x0805B328 - push {r4, lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xb] - cmp r0, #0 - beq _0805B372 - ldrb r1, [r1, #0xa] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0805B374 @ =gUnk_08108764 - adds r0, r0, r1 - ldr r0, [r0, #0xc] - ldr r0, [r0] - ldr r1, _0805B378 @ =gUnk_085A2E80 - adds r0, r0, r1 - ldr r1, _0805B37C @ =0x0600F000 - movs r4, #0x80 - lsls r4, r4, #4 - adds r2, r4, #0 - bl sub_08000E96 - ldr r1, _0805B380 @ =gUnk_03000F50 - ldr r0, _0805B384 @ =0x00001E07 - strh r0, [r1, #0x2c] - ldrh r0, [r1] - orrs r4, r0 - strh r4, [r1] - ldr r2, _0805B388 @ =gUnk_03000BF0 - ldrh r0, [r2, #0x2a] - strh r0, [r1, #0x2e] - ldrh r0, [r2, #0x2e] - strh r0, [r1, #0x30] - adds r1, #0x66 - ldrh r2, [r1] - ldr r0, _0805B38C @ =0x0000FFF7 - ands r0, r2 - strh r0, [r1] -_0805B372: - pop {r4, pc} - .align 2, 0 -_0805B374: .4byte gUnk_08108764 -_0805B378: .4byte gUnk_085A2E80 -_0805B37C: .4byte 0x0600F000 -_0805B380: .4byte gUnk_03000F50 -_0805B384: .4byte 0x00001E07 -_0805B388: .4byte gUnk_03000BF0 -_0805B38C: .4byte 0x0000FFF7 - - thumb_func_start sub_0805B390 -sub_0805B390: @ 0x0805B390 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805E8D4 - adds r1, r0, #0 - cmp r1, #0 - beq _0805B3B0 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x1a - strb r0, [r1, #9] - strb r4, [r1, #0xa] - adds r0, r1, #0 - movs r1, #6 - bl sub_0805EA2C -_0805B3B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805B3B4 -sub_0805B3B4: @ 0x0805B3B4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0805EABC - cmp r0, #0 - beq _0805B3C4 - bl sub_0805E780 -_0805B3C4: - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - ldr r1, _0805B438 @ =gUnk_08108C28 - adds r5, r0, r1 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805B41E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0805B3F6 - ldr r1, _0805B43C @ =sub_0805B4B4 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 -_0805B3F6: - ldr r0, _0805B440 @ =gUnk_03000BF0 - ldrh r1, [r0, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - subs r1, r0, r1 - cmp r1, #0 - bge _0805B406 - movs r1, #0 -_0805B406: - movs r0, #2 - ldrsb r0, [r5, r0] - adds r0, r1, r0 - str r0, [r4, #0x20] - ldr r1, _0805B444 @ =gUnk_08108C54 - ldrb r0, [r5, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_0805B41E: - ldr r0, _0805B440 @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #0 - bne _0805B436 - ldr r0, _0805B444 @ =gUnk_08108C54 - ldrb r1, [r5, #1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0805B436: - pop {r4, r5, pc} - .align 2, 0 -_0805B438: .4byte gUnk_08108C28 -_0805B43C: .4byte sub_0805B4B4 -_0805B440: .4byte gUnk_03000BF0 -_0805B444: .4byte gUnk_08108C54 - - thumb_func_start sub_0805B448 -sub_0805B448: @ 0x0805B448 - push {r4, lr} - ldr r4, _0805B46C @ =gUnk_03000F50 - ldr r3, _0805B470 @ =gUnk_03000BF0 - movs r2, #0xa - ldrsh r1, [r3, r2] - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #2 - strh r1, [r4, #0x2e] - movs r2, #0xc - ldrsh r1, [r3, r2] - ldrh r2, [r3, #8] - subs r1, r1, r2 - asrs r1, r1, #1 - ldr r0, [r0, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x30] - pop {r4, pc} - .align 2, 0 -_0805B46C: .4byte gUnk_03000F50 -_0805B470: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805B474 -sub_0805B474: @ 0x0805B474 - push {r4, r5, lr} - ldr r5, _0805B4A8 @ =gUnk_03000BF0 - movs r0, #0xc - ldrsh r1, [r5, r0] - ldrh r4, [r5, #8] - subs r1, r1, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #5 - ldrh r1, [r5, #0x20] - subs r1, #0xa0 - bl __divsi3 - ldr r2, _0805B4AC @ =gUnk_03000F50 - adds r4, r4, r0 - strh r4, [r2, #0x30] - ldrh r0, [r5, #0x1e] - ldr r1, _0805B4B0 @ =0xFFFFFF00 - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - ldrh r1, [r5, #0xa] - subs r1, r1, r0 - strh r1, [r2, #0x2e] - pop {r4, r5, pc} - .align 2, 0 -_0805B4A8: .4byte gUnk_03000BF0 -_0805B4AC: .4byte gUnk_03000F50 -_0805B4B0: .4byte 0xFFFFFF00 - - thumb_func_start sub_0805B4B4 -sub_0805B4B4: @ 0x0805B4B4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_0805B4D0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _0805B4C8 - bl sub_0806D0F8 -_0805B4C8: - adds r0, r4, #0 - bl sub_0805B3B4 - pop {r4, pc} - - thumb_func_start sub_0805B4D0 -sub_0805B4D0: @ 0x0805B4D0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0805B528 @ =gUnk_08108C5C - adds r0, r5, r0 - ldrb r0, [r0] - bl sub_0801D7EC - ldr r4, _0805B52C @ =gUnk_03000F50 - ldr r0, _0805B530 @ =0x00001E07 - strh r0, [r4, #0x2c] - ldrh r1, [r4] - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r4] - ldr r2, _0805B534 @ =gUnk_03000BF0 - movs r1, #0xa - ldrsh r0, [r2, r1] - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #2 - strh r0, [r4, #0x2e] - movs r1, #0xc - ldrsh r0, [r2, r1] - ldrh r1, [r2, #8] - subs r0, r0, r1 - asrs r3, r0, #1 - ldrh r1, [r2, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - subs r2, r0, r1 - cmp r2, #0 - bge _0805B516 - movs r2, #0 -_0805B516: - ldr r0, _0805B538 @ =gUnk_08108C44 - lsls r1, r5, #1 - adds r1, r1, r0 - adds r0, r3, r2 - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x30] - pop {r4, r5, pc} - .align 2, 0 -_0805B528: .4byte gUnk_08108C5C -_0805B52C: .4byte gUnk_03000F50 -_0805B530: .4byte 0x00001E07 -_0805B534: .4byte gUnk_03000BF0 -_0805B538: .4byte gUnk_08108C44 - - thumb_func_start sub_0805B53C -sub_0805B53C: @ 0x0805B53C - push {lr} - ldr r2, _0805B550 @ =gUnk_08108C64 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805B550: .4byte gUnk_08108C64 - - thumb_func_start sub_0805B554 -sub_0805B554: @ 0x0805B554 - movs r1, #1 - strb r1, [r0, #0xc] - strb r1, [r0, #0xe] - bx lr - - thumb_func_start sub_0805B55C -sub_0805B55C: @ 0x0805B55C - push {r4, r5, lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805B5B4 - movs r0, #0xf - strb r0, [r1, #0xe] - movs r0, #0x19 - movs r1, #0 - bl CreateEnemy - adds r5, r0, #0 - cmp r5, #0 - beq _0805B5B4 - bl sub_08000E50 - ldr r4, _0805B5B8 @ =gUnk_03000BF0 - ldr r2, _0805B5BC @ =gUnk_08108C6C - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #0x78 - ldrh r1, [r4, #0xa] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - bl sub_08000E50 - ldr r2, _0805B5C0 @ =gUnk_08108C7C - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r0, #0x50 - ldrh r4, [r4, #0xc] - adds r0, r0, r4 - strh r0, [r5, #0x32] - ldr r0, _0805B5C4 @ =0x0000FF38 - strh r0, [r5, #0x36] -_0805B5B4: - pop {r4, r5, pc} - .align 2, 0 -_0805B5B8: .4byte gUnk_03000BF0 -_0805B5BC: .4byte gUnk_08108C6C -_0805B5C0: .4byte gUnk_08108C7C -_0805B5C4: .4byte 0x0000FF38 - - thumb_func_start sub_0805B5C8 -sub_0805B5C8: @ 0x0805B5C8 - push {lr} - ldr r2, _0805B5DC @ =gUnk_08108C80 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805B5DC: .4byte gUnk_08108C80 - - thumb_func_start sub_0805B5E0 -sub_0805B5E0: @ 0x0805B5E0 - push {r4, r5, lr} - movs r4, #0 - movs r1, #1 - strb r1, [r0, #0xc] - ldr r3, _0805B618 @ =gUnk_03000F50 - ldrh r2, [r3] - movs r5, #0x80 - lsls r5, r5, #4 - adds r1, r5, #0 - orrs r1, r2 - strh r1, [r3] - ldr r2, _0805B61C @ =gUnk_08108C88 - ldrb r1, [r0, #0xa] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - strh r1, [r3, #0x2c] - ldr r1, _0805B620 @ =gUnk_03000BF0 - str r4, [r1, #0x2c] - str r4, [r1, #0x28] - ldrb r0, [r0, #0xa] - cmp r0, #0 - beq _0805B612 - cmp r0, #1 - beq _0805B624 -_0805B612: - strh r4, [r3, #0x30] - strh r4, [r3, #0x2e] - b _0805B634 - .align 2, 0 -_0805B618: .4byte gUnk_03000F50 -_0805B61C: .4byte gUnk_08108C88 -_0805B620: .4byte gUnk_03000BF0 -_0805B624: - ldrh r0, [r1, #0x2a] - ldrh r2, [r1, #0xa] - adds r0, r0, r2 - strh r0, [r3, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r3, #0x30] -_0805B634: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0805B638 -sub_0805B638: @ 0x0805B638 - push {lr} - ldrb r0, [r0, #0xa] - cmp r0, #1 - bne _0805B65E - ldr r1, _0805B660 @ =gUnk_03000BF0 - ldr r0, [r1, #0x28] - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r0, r2 - str r0, [r1, #0x28] - ldr r2, _0805B664 @ =gUnk_03000F50 - ldrh r0, [r1, #0x2a] - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] -_0805B65E: - pop {pc} - .align 2, 0 -_0805B660: .4byte gUnk_03000BF0 -_0805B664: .4byte gUnk_03000F50 - - thumb_func_start sub_0805B668 -sub_0805B668: @ 0x0805B668 - push {lr} - ldr r2, _0805B67C @ =gUnk_08108C8C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805B67C: .4byte gUnk_08108C8C - - thumb_func_start sub_0805B680 -sub_0805B680: @ 0x0805B680 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r1, [r4, #0x34] - lsrs r1, r1, #1 - strh r1, [r4, #0x34] - ldrh r0, [r4, #0x38] - adds r0, r0, r1 - strh r0, [r4, #0x38] - ldrh r1, [r4, #0x36] - lsrs r1, r1, #1 - strh r1, [r4, #0x36] - ldrh r0, [r4, #0x3a] - adds r0, r0, r1 - strh r0, [r4, #0x3a] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0805B6B8 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805B6B8 - adds r0, r4, #0 - bl sub_0805E900 - b _0805B6BE -_0805B6B8: - adds r0, r4, #0 - bl sub_0805B6C0 -_0805B6BE: - pop {r4, pc} - - thumb_func_start sub_0805B6C0 -sub_0805B6C0: @ 0x0805B6C0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r2, #0x3a - ldrsh r1, [r4, r2] - ldrh r2, [r4, #0x34] - ldrh r3, [r4, #0x36] - bl sub_0800293E - cmp r0, #0 - beq _0805B6EC - ldrh r0, [r4, #0x3e] - bl sub_0807CCC8 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0805B6F2 - adds r0, r4, #0 - bl sub_0805E900 - b _0805B6F2 -_0805B6EC: - ldrh r0, [r4, #0x3e] - bl sub_0807CD48 -_0805B6F2: - pop {r4, pc} - - thumb_func_start sub_0805B6F4 -sub_0805B6F4: @ 0x0805B6F4 - push {lr} - ldr r2, _0805B708 @ =gUnk_08108C94 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805B708: .4byte gUnk_08108C94 - - thumb_func_start sub_0805B70C -sub_0805B70C: @ 0x0805B70C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805B71E - movs r0, #1 - strb r0, [r4, #0xb] -_0805B71E: - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4, #0x38] - adds r0, r4, #0 - bl sub_0805B778 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805B744 -sub_0805B744: @ 0x0805B744 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - adds r1, r0, #0 - cmp r1, #0 - beq _0805B766 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0805B774 - movs r0, #1 - strb r0, [r4, #0xb] - adds r0, r4, #0 - bl sub_0805B778 - b _0805B774 -_0805B766: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0805B774 - strb r1, [r4, #0xb] - adds r0, r4, #0 - bl sub_0805B778 -_0805B774: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805B778 -sub_0805B778: @ 0x0805B778 - push {lr} - ldr r2, _0805B79C @ =gUnk_08108C9C - ldrb r1, [r0, #0xa] - lsls r1, r1, #1 - ldrb r3, [r0, #0xb] - adds r1, r1, r3 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r3, [r1] - movs r2, #0x38 - ldrsh r1, [r0, r2] - adds r0, #0x36 - ldrb r2, [r0] - adds r0, r3, #0 - bl sub_0807B314 - pop {pc} - .align 2, 0 -_0805B79C: .4byte gUnk_08108C9C - - thumb_func_start sub_0805B7A0 -sub_0805B7A0: @ 0x0805B7A0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - ldrb r1, [r5, #0xa] - ldrb r2, [r5, #0xb] - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0805B81A - ldrh r0, [r5, #0x3e] - adds r1, r4, #0 - adds r1, #0x86 - strh r0, [r1] - ldrh r0, [r5, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805B7EC - adds r0, r5, #0 - adds r0, #0x36 - ldrb r1, [r0] - adds r0, #1 - ldrb r2, [r0] - movs r0, #0xf - ands r0, r2 - lsls r0, r0, #8 - orrs r1, r0 - strh r1, [r4, #0x2e] - ldrh r1, [r5, #0x3c] - ldr r0, _0805B7E8 @ =0x00000FFF - ands r0, r1 - strh r0, [r4, #0x32] - ldrh r0, [r5, #0x3c] - lsrs r0, r0, #0xc - b _0805B7FC - .align 2, 0 -_0805B7E8: .4byte 0x00000FFF -_0805B7EC: - ldrh r0, [r5, #0x38] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x3a] - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r0, #0x37 - ldrb r0, [r0] - lsrs r0, r0, #4 -_0805B7FC: - adds r1, r4, #0 - adds r1, #0x38 - strb r0, [r1] - ldr r0, _0805B81C @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - ldrh r2, [r4, #0x2e] - adds r1, r1, r2 - strh r1, [r4, #0x2e] - ldrh r0, [r0, #8] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r5, #0 - bl sub_0805E900 -_0805B81A: - pop {r4, r5, pc} - .align 2, 0 -_0805B81C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805B820 -sub_0805B820: @ 0x0805B820 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r1, [r5, #0xc] - cmp r1, #0 - bne _0805B834 - movs r0, #1 - strb r0, [r5, #0xc] - str r1, [r5, #0x20] -_0805B834: - ldrb r0, [r5, #0xa] - bl sub_0804B128 - adds r4, r0, #0 - movs r7, #0 - ldrh r0, [r4] - cmp r0, #0 - beq _0805B8C4 - ldr r0, _0805B8A8 @ =gUnk_03000BF0 - mov r8, r0 -_0805B848: - ldrh r0, [r4] - ldrh r1, [r4, #2] - movs r2, #4 - movs r3, #4 - bl sub_0800290E - cmp r0, #0 - beq _0805B8AC - movs r6, #1 - lsls r6, r7 - ldr r0, [r5, #0x20] - ands r0, r6 - cmp r0, #0 - bne _0805B8B6 - ldrh r0, [r4, #4] - bl sub_0805B8CC - cmp r0, #0 - beq _0805B8B6 - movs r0, #0x4e - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0805B8B6 - ldrh r0, [r4, #6] - strb r0, [r1, #0xe] - strb r7, [r1, #0xf] - ldrh r0, [r4] - mov r2, r8 - ldrh r2, [r2, #6] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldrh r0, [r4, #2] - mov r3, r8 - ldrh r3, [r3, #8] - adds r0, r0, r3 - strh r0, [r1, #0x32] - str r5, [r1, #0x50] - adds r0, r1, #0 - bl sub_08016A30 - ldr r0, [r5, #0x20] - orrs r0, r6 - b _0805B8B4 - .align 2, 0 -_0805B8A8: .4byte gUnk_03000BF0 -_0805B8AC: - movs r1, #1 - lsls r1, r7 - ldr r0, [r5, #0x20] - bics r0, r1 -_0805B8B4: - str r0, [r5, #0x20] -_0805B8B6: - adds r4, #8 - adds r7, #1 - ldrh r0, [r4] - cmp r0, #0 - beq _0805B8C4 - cmp r7, #0x1f - bls _0805B848 -_0805B8C4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0805B8CC -sub_0805B8CC: @ 0x0805B8CC - push {lr} - cmp r0, #4 - bne _0805B8DA - movs r0, #0x18 - bl GetProgressFlag - b _0805B8E8 -_0805B8DA: - cmp r0, #4 - bls _0805B8E6 - cmp r0, #6 - bhi _0805B8E6 - movs r0, #0 - b _0805B8E8 -_0805B8E6: - movs r0, #1 -_0805B8E8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805B8EC -sub_0805B8EC: @ 0x0805B8EC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0805B964 @ =gUnk_02033A90 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805B90A - bl sub_0801E104 - ldr r2, _0805B968 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805B96C @ =0x0000D7FF - ands r0, r1 - strh r0, [r2] - bl sub_0805E780 -_0805B90A: - ldrb r2, [r5, #0xc] - cmp r2, #0 - bne _0805B934 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r5, #0x10] - movs r0, #0x11 - strb r0, [r5, #0xe] - str r2, [r5, #0x20] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - bl sub_0801E120 - ldrb r0, [r5, #0xe] - bl sub_0801E154 -_0805B934: - ldr r0, _0805B970 @ =gUnk_03001000 - ldrb r0, [r0, #4] - cmp r0, #2 - bne _0805B952 - ldr r2, _0805B968 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - bl sub_0805BA78 - bl sub_0805BAD4 -_0805B952: - ldrb r0, [r4, #0xc] - cmp r0, #2 - bne _0805B978 - ldr r2, _0805B968 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805B974 @ =0x0000DFFF - ands r0, r1 - strh r0, [r2] - b _0805BA6C - .align 2, 0 -_0805B964: .4byte gUnk_02033A90 -_0805B968: .4byte gUnk_03000F50 -_0805B96C: .4byte 0x0000D7FF -_0805B970: .4byte gUnk_03001000 -_0805B974: .4byte 0x0000DFFF -_0805B978: - ldr r3, _0805B9A8 @ =gLinkEntity - movs r4, #0x2e - ldrsh r0, [r3, r4] - ldr r2, _0805B9AC @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - movs r6, #0x32 - ldrsh r1, [r3, r6] - ldrh r2, [r2, #8] - subs r1, r1, r2 - movs r2, #0 - movs r3, #0 - bl sub_0800290E - cmp r0, #0 - beq _0805B9B4 - ldr r2, _0805B9B0 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #6 - adds r0, r3, #0 - orrs r0, r1 - b _0805B9BC - .align 2, 0 -_0805B9A8: .4byte gLinkEntity -_0805B9AC: .4byte gUnk_03000BF0 -_0805B9B0: .4byte gUnk_03000F50 -_0805B9B4: - ldr r2, _0805B9E8 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805B9EC @ =0x0000DFFF - ands r0, r1 -_0805B9BC: - strh r0, [r2] - ldrb r4, [r5, #0xe] - ldr r0, _0805B9F0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0805BA2C - ldr r0, _0805B9F4 @ =gUnk_02033A90 - ldrb r0, [r0, #0xc] - cmp r0, #0 - beq _0805BA2C - cmp r4, #0x47 - bhi _0805B9F8 - adds r4, #4 - adds r0, r4, #0 - bl sub_0801E154 - movs r0, #0 - str r0, [r5, #0x20] - b _0805BA42 - .align 2, 0 -_0805B9E8: .4byte gUnk_03000F50 -_0805B9EC: .4byte 0x0000DFFF -_0805B9F0: .4byte gUnk_03003F80 -_0805B9F4: .4byte gUnk_02033A90 -_0805B9F8: - ldr r0, _0805BA24 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0805BA42 - ldrb r0, [r5, #0xf] - adds r0, #0x10 - strb r0, [r5, #0xf] - ldr r1, _0805BA28 @ =gUnk_080C9160 - ldrb r0, [r5, #0xf] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r6, #0 - ldrsh r0, [r0, r6] - asrs r0, r0, #7 - str r0, [r5, #0x20] - adds r0, r4, r0 - bl sub_0801E154 - b _0805BA42 - .align 2, 0 -_0805BA24: .4byte gUnk_030010A0 -_0805BA28: .4byte gUnk_080C9160 -_0805BA2C: - movs r0, #0 - str r0, [r5, #0x20] - cmp r4, #0x11 - bls _0805BA42 - subs r4, #4 - cmp r4, #0x10 - bhi _0805BA3C - movs r4, #0x11 -_0805BA3C: - adds r0, r4, #0 - bl sub_0801E154 -_0805BA42: - strb r4, [r5, #0xe] - ldr r3, _0805BA70 @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldr r2, _0805BA74 @ =gUnk_03000BF0 - movs r6, #0xa - ldrsh r1, [r2, r6] - subs r0, r0, r1 - movs r6, #0x32 - ldrsh r1, [r3, r6] - movs r6, #0xc - ldrsh r2, [r2, r6] - subs r1, r1, r2 - movs r6, #0x36 - ldrsh r2, [r3, r6] - subs r2, #9 - adds r1, r1, r2 - ldr r2, [r5, #0x20] - adds r2, r4, r2 - bl sub_0801E160 -_0805BA6C: - pop {r4, r5, r6, pc} - .align 2, 0 -_0805BA70: .4byte gLinkEntity -_0805BA74: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805BA78 -sub_0805BA78: @ 0x0805BA78 - push {r4, lr} - ldr r1, _0805BAA8 @ =gUnk_02033A90 - movs r0, #0xa - ldrsh r3, [r1, r0] - ldr r0, _0805BAAC @ =gUnk_02034350 - movs r4, #0xc - ldrsh r2, [r0, r4] - cmp r2, #0 - bge _0805BA8C - movs r2, #0 -_0805BA8C: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r2, r0 - ble _0805BA96 - adds r2, r0, #0 -_0805BA96: - cmp r3, r2 - beq _0805BACE - subs r0, r2, r3 - cmp r0, #0 - blt _0805BAB0 - cmp r0, #4 - bls _0805BAB6 - b _0805BABA - .align 2, 0 -_0805BAA8: .4byte gUnk_02033A90 -_0805BAAC: .4byte gUnk_02034350 -_0805BAB0: - subs r0, r3, r2 - cmp r0, #4 - bhi _0805BABA -_0805BAB6: - adds r3, r2, #0 - b _0805BAC8 -_0805BABA: - cmp r2, r3 - bge _0805BAC2 - subs r3, #4 - b _0805BAC8 -_0805BAC2: - cmp r2, r3 - ble _0805BAC8 - adds r3, #4 -_0805BAC8: - strh r3, [r1, #0xa] - movs r0, #1 - b _0805BAD0 -_0805BACE: - movs r0, #0 -_0805BAD0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BAD4 -sub_0805BAD4: @ 0x0805BAD4 - push {lr} - ldr r3, _0805BAF4 @ =gUnk_02033A90 - ldrb r0, [r3, #0xc] - cmp r0, #0 - beq _0805BAF2 - ldr r1, _0805BAF8 @ =gUnk_03000F50 - ldr r2, _0805BAFC @ =gUnk_08108CA8 - ldrh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, #0x68 - strh r0, [r1] -_0805BAF2: - pop {pc} - .align 2, 0 -_0805BAF4: .4byte gUnk_02033A90 -_0805BAF8: .4byte gUnk_03000F50 -_0805BAFC: .4byte gUnk_08108CA8 - - thumb_func_start sub_0805BB00 -sub_0805BB00: @ 0x0805BB00 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _0805BB50 @ =gUnk_02033A90 - ldrb r0, [r0, #0xc] - cmp r0, #0 - bne _0805BB28 - bl sub_0805E8D4 - adds r1, r0, #0 - cmp r1, #0 - beq _0805BB28 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x22 - strb r0, [r1, #9] - adds r0, r1, #0 - movs r1, #0 - bl sub_0805EA2C -_0805BB28: - ldr r1, _0805BB54 @ =0x0600F000 - movs r2, #0x80 - lsls r2, r2, #4 - movs r0, #0xf - bl sub_0801D5EC - ldr r0, _0805BB58 @ =gUnk_03000F50 - ldr r1, _0805BB5C @ =0x00001E0C - strh r1, [r0, #0x2c] - adds r0, #0x66 - ldr r1, _0805BB60 @ =0x00003E48 - strh r1, [r0] - ldr r0, _0805BB64 @ =gUnk_02034350 - strh r4, [r0, #0xc] - cmp r5, #0 - beq _0805BB68 - ldr r1, _0805BB50 @ =gUnk_02033A90 - movs r0, #1 - b _0805BB6C - .align 2, 0 -_0805BB50: .4byte gUnk_02033A90 -_0805BB54: .4byte 0x0600F000 -_0805BB58: .4byte gUnk_03000F50 -_0805BB5C: .4byte 0x00001E0C -_0805BB60: .4byte 0x00003E48 -_0805BB64: .4byte gUnk_02034350 -_0805BB68: - ldr r1, _0805BB70 @ =gUnk_02033A90 - movs r0, #2 -_0805BB6C: - strb r0, [r1, #0xc] - pop {r4, r5, pc} - .align 2, 0 -_0805BB70: .4byte gUnk_02033A90 - - thumb_func_start sub_0805BB74 -sub_0805BB74: @ 0x0805BB74 - push {lr} - adds r1, r0, #0 - ldr r2, _0805BBB0 @ =gUnk_02034350 - cmp r1, #0 - bge _0805BB82 - movs r0, #0xc - ldrsh r1, [r2, r0] -_0805BB82: - ldr r0, _0805BBB4 @ =gUnk_02033A90 - strh r1, [r0, #0xa] - strh r1, [r2, #0xc] - movs r0, #9 - movs r1, #0x22 - bl sub_0805EB9C - cmp r0, #0 - beq _0805BBAE - bl sub_0805B8EC - ldr r0, _0805BBB8 @ =gUnk_03000F50 - ldrh r1, [r0] - movs r3, #0x80 - lsls r3, r3, #4 - adds r2, r3, #0 - orrs r1, r2 - strh r1, [r0] - bl sub_0805BA78 - bl sub_0805BAD4 -_0805BBAE: - pop {pc} - .align 2, 0 -_0805BBB0: .4byte gUnk_02034350 -_0805BBB4: .4byte gUnk_02033A90 -_0805BBB8: .4byte gUnk_03000F50 - - thumb_func_start sub_0805BBBC -sub_0805BBBC: @ 0x0805BBBC - push {r4, lr} - movs r4, #0 - ldr r2, _0805BBF8 @ =gUnk_02033A90 - ldrb r0, [r2, #0xc] - cmp r0, #0 - beq _0805BBF2 - ldr r0, _0805BBFC @ =gUnk_02034350 - movs r3, #0xc - ldrsh r1, [r0, r3] - movs r3, #0xa - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _0805BBF2 - ldr r2, _0805BC00 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - bl sub_0805BA78 - adds r4, r0, #0 - cmp r4, #0 - beq _0805BBF2 - bl sub_0805BAD4 -_0805BBF2: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0805BBF8: .4byte gUnk_02033A90 -_0805BBFC: .4byte gUnk_02034350 -_0805BC00: .4byte gUnk_03000F50 - - thumb_func_start sub_0805BC04 -sub_0805BC04: @ 0x0805BC04 - push {r4, lr} - movs r4, #0 - ldr r2, _0805BC40 @ =gUnk_02033A90 - ldrb r0, [r2, #0xc] - cmp r0, #0 - beq _0805BC3A - ldr r0, _0805BC44 @ =gUnk_02034350 - movs r3, #0xc - ldrsh r1, [r0, r3] - movs r3, #0xa - ldrsh r0, [r2, r3] - cmp r1, r0 - ble _0805BC3A - ldr r2, _0805BC48 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - bl sub_0805BA78 - adds r4, r0, #0 - cmp r4, #0 - beq _0805BC3A - bl sub_0805BAD4 -_0805BC3A: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0805BC40: .4byte gUnk_02033A90 -_0805BC44: .4byte gUnk_02034350 -_0805BC48: .4byte gUnk_03000F50 - - thumb_func_start sub_0805BC4C -sub_0805BC4C: @ 0x0805BC4C - push {lr} - ldr r1, _0805BC68 @ =gUnk_02033A90 - ldrb r0, [r1, #0xc] - cmp r0, #0 - beq _0805BC64 - movs r0, #0 - strb r0, [r1, #0xc] - ldr r2, _0805BC6C @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805BC70 @ =0x0000D7FF - ands r0, r1 - strh r0, [r2] -_0805BC64: - pop {pc} - .align 2, 0 -_0805BC68: .4byte gUnk_02033A90 -_0805BC6C: .4byte gUnk_03000F50 -_0805BC70: .4byte 0x0000D7FF - - thumb_func_start sub_0805BC74 -sub_0805BC74: @ 0x0805BC74 - push {lr} - ldr r2, _0805BC88 @ =gUnk_08108CCC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805BC88: .4byte gUnk_08108CCC - - thumb_func_start sub_0805BC8C -sub_0805BC8C: @ 0x0805BC8C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805BCAE - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xf] - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805BCAE - adds r0, r4, #0 - bl sub_0805BE94 -_0805BCAE: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805BCD0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805BCD0 - adds r0, r4, #0 - bl sub_0805BEC4 - adds r0, r4, #0 - bl sub_0805BE94 -_0805BCD0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BCD4 -sub_0805BCD4: @ 0x0805BCD4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0805BD0E - cmp r0, #1 - bgt _0805BCE8 - cmp r0, #0 - beq _0805BCEE - b _0805BD5A -_0805BCE8: - cmp r0, #2 - beq _0805BD38 - b _0805BD5A -_0805BCEE: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xf] - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805BD5A - adds r0, r4, #0 - movs r1, #0x75 - bl sub_0805BE70 - movs r0, #2 - strb r0, [r4, #0xc] - b _0805BD5A -_0805BD0E: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805BD5A - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805BD5A - movs r0, #0x1e - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0805BEC4 - adds r0, r4, #0 - movs r1, #0x76 - bl sub_0805BE70 - b _0805BD5A -_0805BD38: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - bne _0805BD5A - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805BD5A - movs r0, #0x1e - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x75 - bl sub_0805BE70 -_0805BD5A: - pop {r4, pc} - - thumb_func_start sub_0805BD5C -sub_0805BD5C: @ 0x0805BD5C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805BD94 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805BD76 - adds r0, r4, #0 - bl sub_0805BE94 -_0805BD76: - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4, #0x20] - movs r0, #1 - strb r0, [r4, #0xc] - b _0805BDB0 -_0805BD94: - ldrh r0, [r4, #0x20] - ldrb r1, [r4, #0xb] - bl sub_080002B0 - cmp r0, #0x76 - bne _0805BDB0 - ldrh r0, [r4, #0x3e] - bl sub_0807CCC8 - ldrb r0, [r4, #0xe] - bl sub_0805308C - bl sub_0805E780 -_0805BDB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BDB4 -sub_0805BDB4: @ 0x0805BDB4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0805BDF4 - cmp r0, #1 - beq _0805BE2C - ldrh r0, [r4, #0x22] - subs r0, #1 - strh r0, [r4, #0x22] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805BE58 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r2, #0x3a - ldrsh r1, [r4, r2] - ldrb r2, [r4, #0xb] - bl sub_080A29C8 - ldrh r0, [r4, #0x3e] - bl sub_0807CD48 - ldrh r0, [r4, #0x20] - ldrb r1, [r4, #0xb] - bl sub_0807BA8C - ldrb r0, [r4, #0xe] - rsbs r0, r0, #0 - bl sub_0805308C - b _0805BE26 -_0805BDF4: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - bne _0805BE08 - ldrh r0, [r4, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805BE0E -_0805BE08: - adds r0, r4, #0 - bl sub_0805BE94 -_0805BE0E: - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4, #0x20] -_0805BE26: - movs r0, #1 - strb r0, [r4, #0xc] - b _0805BE6C -_0805BE2C: - ldrh r0, [r4, #0x20] - ldrb r1, [r4, #0xb] - bl sub_080002B0 - cmp r0, #0x76 - bne _0805BE6C - ldrh r0, [r4, #0x3e] - bl sub_0807CCC8 - ldrb r0, [r4, #0xe] - bl sub_0805308C - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x36 - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - strh r0, [r4, #0x22] - b _0805BE6C -_0805BE58: - ldrh r0, [r4, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805BE6C - adds r0, r4, #0 - bl sub_0805BEC4 - bl sub_0805E780 -_0805BE6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BE70 -sub_0805BE70: @ 0x0805BE70 - push {r4, lr} - adds r4, r1, #0 - ldrh r1, [r0, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r3, #0x3f - ands r1, r3 - ldrh r2, [r0, #0x3a] - lsls r2, r2, #0x10 - asrs r2, r2, #0x14 - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r0, #0xb] - adds r0, r4, #0 - bl sub_0807B314 - pop {r4, pc} - - thumb_func_start sub_0805BE94 -sub_0805BE94: @ 0x0805BE94 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - ldrb r2, [r4, #0xb] - movs r0, #0x76 - bl sub_0807B314 - ldrb r0, [r4, #0xe] - bl sub_0805308C - bl sub_0805E780 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BEC4 -sub_0805BEC4: @ 0x0805BEC4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2a - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805BF10 - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x11] - ldr r1, _0805BF14 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - ldrh r3, [r4, #0x38] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - ldrh r1, [r4, #0x3a] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrb r1, [r4, #0xb] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] -_0805BF10: - pop {r4, pc} - .align 2, 0 -_0805BF14: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805BF18 -sub_0805BF18: @ 0x0805BF18 - push {lr} - ldr r2, _0805BF2C @ =gUnk_08108CDC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805BF2C: .4byte gUnk_08108CDC - - thumb_func_start sub_0805BF30 -sub_0805BF30: @ 0x0805BF30 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4, #0x3c] - ldrh r0, [r4, #0x3c] - adds r1, r4, #0 - adds r1, #0x35 - ldrb r1, [r1] - bl sub_0805BFC4 - strb r0, [r4, #0xa] - ldrh r0, [r4, #0x3e] - bl sub_0807CBD0 - cmp r0, #0 - beq _0805BF74 - adds r0, r4, #0 - bl sub_0805C02C - adds r0, r4, #0 - bl sub_0805E900 -_0805BF74: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BF78 -sub_0805BF78: @ 0x0805BF78 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - adds r1, r4, #0 - adds r1, #0x35 - ldrb r1, [r1] - bl sub_080002C8 - cmp r0, #0x2e - beq _0805BFA0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0805C02C - ldrh r0, [r4, #0x3e] - bl sub_0807CCB4 -_0805BFA0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BFA4 -sub_0805BFA4: @ 0x0805BFA4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805BFC0 - movs r0, #0x72 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_0805E900 -_0805BFC0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BFC4 -sub_0805BFC4: @ 0x0805BFC4 - push {lr} - bl sub_080002B0 - adds r1, r0, #0 - cmp r1, #0xec - beq _0805C018 - cmp r1, #0xec - bhi _0805BFEC - cmp r1, #0xbf - beq _0805C024 - cmp r1, #0xbf - bhi _0805BFE2 - cmp r1, #0xaf - beq _0805C014 - b _0805C028 -_0805BFE2: - cmp r1, #0xcc - beq _0805C01C - cmp r1, #0xdf - beq _0805C020 - b _0805C028 -_0805BFEC: - movs r0, #0x84 - lsls r0, r0, #1 - cmp r1, r0 - beq _0805C01C - cmp r1, r0 - bhi _0805C004 - cmp r1, #0xff - beq _0805C014 - subs r0, #3 - cmp r1, r0 - beq _0805C024 - b _0805C028 -_0805C004: - movs r0, #0x88 - lsls r0, r0, #1 - cmp r1, r0 - beq _0805C020 - adds r0, #5 - cmp r1, r0 - beq _0805C018 - b _0805C028 -_0805C014: - movs r0, #0 - b _0805C02A -_0805C018: - movs r0, #1 - b _0805C02A -_0805C01C: - movs r0, #2 - b _0805C02A -_0805C020: - movs r0, #3 - b _0805C02A -_0805C024: - movs r0, #4 - b _0805C02A -_0805C028: - movs r0, #0xff -_0805C02A: - pop {pc} - - thumb_func_start sub_0805C02C -sub_0805C02C: @ 0x0805C02C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0xff - beq _0805C04A - ldr r0, _0805C04C @ =gUnk_08108CE8 - ldrb r2, [r1, #0xa] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrh r0, [r1, #0x3c] - adds r1, #0x35 - ldrb r1, [r1] - ldr r2, [r2] - bl _call_via_r2 -_0805C04A: - pop {pc} - .align 2, 0 -_0805C04C: .4byte gUnk_08108CE8 - - thumb_func_start sub_0805C050 -sub_0805C050: @ 0x0805C050 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xb1 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xb2 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xb3 - adds r2, r4, #0 - bl sub_0807B314 - subs r1, r5, #1 - movs r0, #0xb4 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #1 - movs r0, #0xb7 - adds r2, r4, #0 - bl sub_0807B314 - cmp r4, #1 - bne _0805C11C - bl sub_08052670 - cmp r0, #0 - beq _0805C0D8 - movs r0, #0x4f - movs r1, #0xe - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C0E0 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C0D0 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - ldr r1, _0805C0D4 @ =0x0000FFF8 - adds r0, r0, r1 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - b _0805C0E0 - .align 2, 0 -_0805C0D0: .4byte gUnk_03000BF0 -_0805C0D4: .4byte 0x0000FFF8 -_0805C0D8: - bl sub_08052660 - cmp r0, #0 - beq _0805C0EC -_0805C0E0: - movs r0, #0xb5 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - b _0805C0F6 -_0805C0EC: - movs r0, #0xb6 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 -_0805C0F6: - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xb8 - movs r2, #2 - bl sub_0807B314 - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xb9 - movs r2, #2 - bl sub_0807B314 - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xba - movs r2, #2 - bl sub_0807B314 - b _0805C16E -_0805C11C: - movs r0, #0xb5 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - bl sub_08052660 - cmp r0, #0 - beq _0805C16E - bl sub_0805C608 - adds r1, r0, #0 - movs r0, #0x4f - movs r2, #6 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C16E - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C170 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - ldr r1, _0805C174 @ =0x0000FFF0 - adds r0, r0, r1 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_0805C16E: - pop {r4, r5, pc} - .align 2, 0 -_0805C170: .4byte gUnk_03000BF0 -_0805C174: .4byte 0x0000FFF0 - - thumb_func_start sub_0805C178 -sub_0805C178: @ 0x0805C178 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xf1 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xf5 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #1 - movs r0, #0xf6 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0xf4 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x41 - movs r0, #0xf7 - adds r2, r4, #0 - bl sub_0807B314 - cmp r4, #1 - bne _0805C23E - bl sub_08052670 - cmp r0, #0 - beq _0805C1FC - movs r0, #0x4f - movs r1, #0xe - movs r2, #1 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805C204 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - ldr r1, _0805C1F8 @ =gUnk_03000BF0 - adds r0, #0x18 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r1, #8] - adds r1, r1, r0 - strh r1, [r2, #0x32] - b _0805C204 - .align 2, 0 -_0805C1F8: .4byte gUnk_03000BF0 -_0805C1FC: - bl sub_08052660 - cmp r0, #0 - beq _0805C210 -_0805C204: - movs r0, #0xf2 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - b _0805C21A -_0805C210: - movs r0, #0xf3 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 -_0805C21A: - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xf8 - movs r2, #2 - bl sub_0807B314 - adds r1, r5, #1 - movs r0, #0xf9 - movs r2, #2 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x41 - movs r0, #0xfa - movs r2, #2 - bl sub_0807B314 - b _0805C28E -_0805C23E: - movs r0, #0xf2 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - bl sub_08052660 - cmp r0, #0 - beq _0805C28E - bl sub_0805C608 - adds r1, r0, #0 - movs r0, #0x4f - movs r2, #7 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805C28E - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - ldr r1, _0805C290 @ =gUnk_03000BF0 - adds r0, #0x20 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r1, #8] - adds r1, r1, r0 - strh r1, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_0805C28E: - pop {r4, r5, pc} - .align 2, 0 -_0805C290: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805C294 -sub_0805C294: @ 0x0805C294 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - subs r1, r5, #1 - movs r0, #0xd1 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #1 - movs r0, #0xd4 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xd5 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0xd6 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x41 - movs r0, #0xd7 - adds r2, r4, #0 - bl sub_0807B314 - cmp r4, #1 - bne _0805C35C - bl sub_08052670 - cmp r0, #0 - beq _0805C318 - movs r0, #0x4f - movs r1, #0xe - movs r2, #2 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C320 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C314 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #0x20 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - b _0805C320 - .align 2, 0 -_0805C314: .4byte gUnk_03000BF0 -_0805C318: - bl sub_08052660 - cmp r0, #0 - beq _0805C32C -_0805C320: - movs r0, #0xd2 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - b _0805C336 -_0805C32C: - movs r0, #0xd3 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 -_0805C336: - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xd8 - movs r2, #2 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0xd9 - movs r2, #2 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x41 - movs r0, #0xda - movs r2, #2 - bl sub_0807B314 - b _0805C3AC -_0805C35C: - movs r0, #0xd2 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - bl sub_08052660 - cmp r0, #0 - beq _0805C3AC - bl sub_0805C608 - adds r1, r0, #0 - movs r0, #0x4f - movs r2, #8 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C3AC - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C3B0 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #0x20 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_0805C3AC: - pop {r4, r5, pc} - .align 2, 0 -_0805C3B0: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805C3B4 -sub_0805C3B4: @ 0x0805C3B4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xe1 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xe4 - adds r2, r4, #0 - bl sub_0807B314 - subs r1, r5, #1 - movs r0, #0xe2 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xe3 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0xe7 - adds r2, r4, #0 - bl sub_0807B314 - cmp r4, #1 - bne _0805C482 - bl sub_08052670 - cmp r0, #0 - beq _0805C440 - movs r0, #0x4f - movs r1, #0xe - movs r2, #3 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805C448 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - ldr r1, _0805C438 @ =gUnk_03000BF0 - ldr r3, _0805C43C @ =0x0000FFF0 - adds r0, r0, r3 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r1, #8] - adds r1, r1, r0 - strh r1, [r2, #0x32] - b _0805C448 - .align 2, 0 -_0805C438: .4byte gUnk_03000BF0 -_0805C43C: .4byte 0x0000FFF0 -_0805C440: - bl sub_08052660 - cmp r0, #0 - beq _0805C454 -_0805C448: - movs r0, #0xe5 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - b _0805C45E -_0805C454: - movs r0, #0xe6 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 -_0805C45E: - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xe8 - movs r2, #2 - bl sub_0807B314 - subs r1, r5, #1 - movs r0, #0xe9 - movs r2, #2 - bl sub_0807B314 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xea - movs r2, #2 - bl sub_0807B314 - b _0805C4D4 -_0805C482: - movs r0, #0xe5 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - bl sub_08052660 - cmp r0, #0 - beq _0805C4D4 - bl sub_0805C608 - adds r1, r0, #0 - movs r0, #0x4f - movs r2, #9 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805C4D4 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - ldr r1, _0805C4D8 @ =gUnk_03000BF0 - ldr r3, _0805C4DC @ =0x0000FFF0 - adds r0, r0, r3 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r1, #8] - adds r1, r1, r0 - strh r1, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_0805C4D4: - pop {r4, r5, pc} - .align 2, 0 -_0805C4D8: .4byte gUnk_03000BF0 -_0805C4DC: .4byte 0x0000FFF0 - - thumb_func_start sub_0805C4E0 -sub_0805C4E0: @ 0x0805C4E0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xc1 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xc2 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xc3 - adds r2, r4, #0 - bl sub_0807B314 - subs r1, r5, #1 - movs r0, #0xc4 - adds r2, r4, #0 - bl sub_0807B314 - adds r1, r5, #1 - movs r0, #0xc7 - adds r2, r4, #0 - bl sub_0807B314 - cmp r4, #1 - bne _0805C5AC - bl sub_08052670 - cmp r0, #0 - beq _0805C568 - movs r0, #0x4f - movs r1, #0xe - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C570 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C560 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - ldr r1, _0805C564 @ =0x0000FFF0 - adds r0, r0, r1 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - b _0805C570 - .align 2, 0 -_0805C560: .4byte gUnk_03000BF0 -_0805C564: .4byte 0x0000FFF0 -_0805C568: - bl sub_08052660 - cmp r0, #0 - beq _0805C57C -_0805C570: - movs r0, #0xc5 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - b _0805C586 -_0805C57C: - movs r0, #0xc6 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 -_0805C586: - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xc8 - movs r2, #2 - bl sub_0807B314 - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xc9 - movs r2, #2 - bl sub_0807B314 - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xca - movs r2, #2 - bl sub_0807B314 - b _0805C5FE -_0805C5AC: - movs r0, #0xc5 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - bl sub_08052660 - cmp r0, #0 - beq _0805C5FE - bl sub_0805C608 - adds r1, r0, #0 - movs r0, #0x4f - movs r2, #6 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C5FE - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C600 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - ldr r1, _0805C604 @ =0x0000FFF0 - adds r0, r0, r1 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_0805C5FE: - pop {r4, r5, pc} - .align 2, 0 -_0805C600: .4byte gUnk_03000BF0 -_0805C604: .4byte 0x0000FFF0 - - thumb_func_start sub_0805C608 -sub_0805C608: @ 0x0805C608 - ldr r1, _0805C614 @ =gUnk_08108CFC - ldr r0, _0805C618 @ =gUnk_02033A90 - ldrb r0, [r0, #3] - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0805C614: .4byte gUnk_08108CFC -_0805C618: .4byte gUnk_02033A90 - - thumb_func_start sub_0805C61C -sub_0805C61C: @ 0x0805C61C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805C674 - movs r0, #0x38 - ldrsh r1, [r4, r0] - ldr r2, _0805C668 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x3a - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4, #0x38] - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #2 - bl sub_080002B0 - cmp r0, #0x75 - bne _0805C670 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0805C66C @ =0x0000406A - movs r2, #0x38 - ldrsh r1, [r4, r2] - movs r2, #1 - bl sub_0800015E - b _0805C674 - .align 2, 0 -_0805C668: .4byte gUnk_03000BF0 -_0805C66C: .4byte 0x0000406A -_0805C670: - bl sub_0805E780 -_0805C674: - movs r5, #0x38 - ldrsh r0, [r4, r5] - movs r1, #1 - bl sub_080002B0 - ldr r5, _0805C6B4 @ =0x0000406B - cmp r0, r5 - bne _0805C694 - movs r0, #0x38 - ldrsh r1, [r4, r0] - movs r0, #0x76 - movs r2, #2 - bl sub_0807B7D8 - bl sub_0805E780 -_0805C694: - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #2 - bl sub_080002B0 - cmp r0, #0x76 - bne _0805C6B2 - movs r2, #0x38 - ldrsh r1, [r4, r2] - adds r0, r5, #0 - movs r2, #1 - bl sub_0800015E - bl sub_0805E780 -_0805C6B2: - pop {r4, r5, pc} - .align 2, 0 -_0805C6B4: .4byte 0x0000406B - - thumb_func_start sub_0805C6B8 -sub_0805C6B8: @ 0x0805C6B8 - push {lr} - ldr r2, _0805C6CC @ =gUnk_08108D04 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805C6CC: .4byte gUnk_08108D04 - - thumb_func_start sub_0805C6D0 -sub_0805C6D0: @ 0x0805C6D0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - bl sub_0804B128 - adds r4, r0, #0 - cmp r4, #0 - bne _0805C6EA - adds r0, r5, #0 - bl sub_0805E900 - b _0805C79A -_0805C6EA: - ldr r3, _0805C784 @ =gUnk_03000BF0 - ldrh r0, [r3, #8] - ldrb r1, [r5, #0xe] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r5, #0x2a] - strb r1, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x28 - strb r1, [r0] - adds r2, r5, #0 - adds r2, #0x29 - strb r1, [r2] - ldrb r0, [r4] - cmp r0, #0xff - beq _0805C778 - ldrb r0, [r5, #0xe] - cmp r0, #0x1f - bhi _0805C778 - adds r7, r3, #0 - movs r3, #1 - adds r6, r2, #0 -_0805C716: - ldrb r1, [r4, #1] - ldrb r2, [r4, #2] - movs r0, #0x4c - str r3, [sp] - bl CreateObject - adds r2, r0, #0 - ldr r3, [sp] - cmp r2, #0 - beq _0805C762 - ldrb r0, [r4, #3] - strb r0, [r2, #0xe] - ldrh r0, [r4, #4] - ldrh r1, [r7, #6] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - ldrh r0, [r4, #6] - ldrh r1, [r7, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] - str r5, [r2, #0x50] - adds r0, r2, #0 - adds r0, #0x38 - strb r3, [r0] - ldrb r0, [r5, #0xe] - adds r1, r2, #0 - adds r1, #0x83 - strb r0, [r1] - ldrb r1, [r4] - adds r0, r2, #0 - adds r0, #0x82 - strb r1, [r0] - adds r0, r3, #0 - ldrb r1, [r5, #0xe] - lsls r0, r1 - ldrb r1, [r6] - orrs r0, r1 - strb r0, [r6] -_0805C762: - adds r4, #8 - ldrb r0, [r5, #0xe] - adds r1, r0, #1 - strb r1, [r5, #0xe] - ldrb r0, [r4] - cmp r0, #0xff - beq _0805C778 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _0805C716 -_0805C778: - ldrb r0, [r5, #0xb] - cmp r0, #0xff - bne _0805C788 - movs r0, #2 - b _0805C798 - .align 2, 0 -_0805C784: .4byte gUnk_03000BF0 -_0805C788: - ldrb r0, [r5, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - beq _0805C796 - movs r0, #2 - b _0805C798 -_0805C796: - movs r0, #1 -_0805C798: - strb r0, [r5, #0xc] -_0805C79A: - add sp, #4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0805C7A0 -sub_0805C7A0: @ 0x0805C7A0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x28 - adds r1, r4, #0 - adds r1, #0x29 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _0805C7BC - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - bl sub_0807CCB4 -_0805C7BC: - adds r0, r4, #0 - bl sub_0805C7CC - pop {r4, pc} - - thumb_func_start sub_0805C7C4 -sub_0805C7C4: @ 0x0805C7C4 - push {lr} - bl sub_0805C7CC - pop {pc} - - thumb_func_start sub_0805C7CC -sub_0805C7CC: @ 0x0805C7CC - push {lr} - adds r2, r0, #0 - ldr r0, _0805C7F0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0805C7FC - ldr r0, _0805C7F4 @ =gLinkEntity - movs r3, #0x32 - ldrsh r1, [r0, r3] - ldrh r0, [r2, #0x2a] - adds r0, #0x10 - cmp r1, r0 - bge _0805C7F8 - movs r0, #1 - b _0805C816 - .align 2, 0 -_0805C7F0: .4byte gUnk_03003F80 -_0805C7F4: .4byte gLinkEntity -_0805C7F8: - movs r0, #0 - b _0805C816 -_0805C7FC: - ldr r0, _0805C810 @ =gLinkEntity - movs r3, #0x32 - ldrsh r1, [r0, r3] - ldrh r0, [r2, #0x2a] - adds r0, #0x28 - cmp r1, r0 - bge _0805C814 - movs r0, #3 - b _0805C816 - .align 2, 0 -_0805C810: .4byte gLinkEntity -_0805C814: - movs r0, #2 -_0805C816: - strb r0, [r2, #0xd] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805C81C -sub_0805C81C: @ 0x0805C81C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0805C854 @ =gUnk_08108D10 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r0, #0xc0 - lsls r0, r0, #2 - ldrb r1, [r4, #0xa] - adds r1, #0x67 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _0805C85C - ldr r0, _0805C858 @ =gUnk_030010A0 - adds r0, #0xac - movs r1, #1 - ldrb r4, [r4, #0xa] - lsls r1, r4 - ldrh r2, [r0] - orrs r1, r2 - strh r1, [r0] - b _0805C86C - .align 2, 0 -_0805C854: .4byte gUnk_08108D10 -_0805C858: .4byte gUnk_030010A0 -_0805C85C: - ldr r2, _0805C870 @ =gUnk_030010A0 - adds r2, #0xac - movs r1, #1 - ldrb r4, [r4, #0xa] - lsls r1, r4 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] -_0805C86C: - pop {r4, pc} - .align 2, 0 -_0805C870: .4byte gUnk_030010A0 - - thumb_func_start sub_0805C874 -sub_0805C874: @ 0x0805C874 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805C920 - cmp r0, #0 - beq _0805C884 - movs r0, #2 - b _0805C886 -_0805C884: - movs r0, #1 -_0805C886: - strb r0, [r4, #0xc] - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805C894 -sub_0805C894: @ 0x0805C894 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805C920 - cmp r0, #0 - beq _0805C8B0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x8d - lsls r0, r0, #1 - bl sub_080A3268 -_0805C8B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805C8B4 -sub_0805C8B4: @ 0x0805C8B4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0805C8F4 - movs r0, #0x14 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - ands r0, r2 - cmp r0, #5 - bls _0805C8DA - strb r1, [r4, #0xf] -_0805C8DA: - ldr r1, _0805C904 @ =gUnk_08108D20 - ldrb r0, [r4, #0xf] - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_0801D714 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0805C8F4 - movs r0, #0x8d - lsls r0, r0, #1 - bl sub_080A3268 -_0805C8F4: - adds r0, r4, #0 - bl sub_0805C920 - cmp r0, #0 - bne _0805C902 - movs r0, #3 - strb r0, [r4, #0xc] -_0805C902: - pop {r4, pc} - .align 2, 0 -_0805C904: .4byte gUnk_08108D20 - - thumb_func_start sub_0805C908 -sub_0805C908: @ 0x0805C908 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xf] - cmp r0, #0 - bne _0805C918 - movs r0, #1 - strb r0, [r1, #0xc] - b _0805C91E -_0805C918: - adds r0, r1, #0 - bl sub_0805C8B4 -_0805C91E: - pop {pc} - - thumb_func_start sub_0805C920 -sub_0805C920: @ 0x0805C920 - push {lr} - movs r2, #0xc0 - lsls r2, r2, #2 - ldrb r1, [r0, #0xa] - adds r1, #0x67 - adds r0, r2, #0 - bl GetProgressFlagWithOffset - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805C934 -sub_0805C934: @ 0x0805C934 - push {lr} - ldr r2, _0805C948 @ =gUnk_08108D28 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805C948: .4byte gUnk_08108D28 - - thumb_func_start sub_0805C94C -sub_0805C94C: @ 0x0805C94C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0805C9B0 - adds r6, r4, #0 - adds r6, #0x20 - adds r1, r6, #0 - movs r2, #0 - adds r0, r4, #0 - adds r0, #0x3c -_0805C962: - str r2, [r0] - subs r0, #4 - cmp r0, r1 - bge _0805C962 - adds r0, r4, #0 - bl sub_0805CA6C - adds r5, r0, #0 - cmp r5, #1 - ble _0805C9A8 - bl sub_0805E8D4 - adds r2, r0, #0 - cmp r2, #0 - beq _0805C9A8 - movs r0, #9 - strb r0, [r2, #8] - movs r0, #0x28 - strb r0, [r2, #9] - movs r0, #1 - strb r0, [r2, #0xa] - strb r5, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x20 - adds r0, r6, #0 - ldm r0!, {r3, r5, r6} - stm r1!, {r3, r5, r6} - ldm r0!, {r3, r5, r6} - stm r1!, {r3, r5, r6} - ldm r0!, {r3, r5} - stm r1!, {r3, r5} - adds r0, r2, #0 - movs r1, #6 - bl sub_0805EA2C -_0805C9A8: - adds r0, r4, #0 - bl sub_0805E900 - b _0805C9B8 -_0805C9B0: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xf] -_0805C9B8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0805C9BC -sub_0805C9BC: @ 0x0805C9BC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r6, r0, #0 - bl sub_0805CB48 - ldrb r0, [r6, #0xe] - subs r0, #1 - mov sb, r0 - ldrb r1, [r6, #0xf] - adds r0, r1, #1 - strb r0, [r6, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805CA22 - movs r2, #0 - cmp r2, sb - bge _0805CA62 - movs r0, #0x20 - adds r0, r0, r6 - mov r8, r0 -_0805C9EC: - lsls r1, r2, #2 - adds r0, r6, #0 - adds r0, #0x20 - adds r0, r0, r1 - ldr r3, [r0] - adds r4, r2, #1 - adds r5, r4, #0 - ldrb r1, [r6, #0xe] - cmp r5, r1 - bge _0805CA1A - lsls r0, r5, #2 - mov r1, r8 - adds r7, r0, r1 -_0805CA06: - ldm r7!, {r1} - adds r0, r3, #0 - str r3, [sp] - bl sub_08004484 - adds r4, #1 - ldr r3, [sp] - ldrb r0, [r6, #0xe] - cmp r4, r0 - blt _0805CA06 -_0805CA1A: - adds r2, r5, #0 - cmp r2, sb - blt _0805C9EC - b _0805CA62 -_0805CA22: - movs r2, #0 - cmp r2, sb - bge _0805CA62 - movs r1, #0x20 - adds r1, r1, r6 - mov r8, r1 -_0805CA2E: - lsls r1, r2, #2 - adds r0, r6, #0 - adds r0, #0x20 - adds r0, r0, r1 - ldr r3, [r0] - adds r4, r2, #1 - adds r5, r4, #0 - ldrb r0, [r6, #0xe] - cmp r5, r0 - bge _0805CA5C - lsls r0, r5, #2 - mov r1, r8 - adds r7, r0, r1 -_0805CA48: - ldm r7!, {r0} - adds r1, r3, #0 - str r3, [sp] - bl sub_08004484 - adds r4, #1 - ldr r3, [sp] - ldrb r0, [r6, #0xe] - cmp r4, r0 - blt _0805CA48 -_0805CA5C: - adds r2, r5, #0 - cmp r2, sb - blt _0805CA2E -_0805CA62: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805CA6C -sub_0805CA6C: @ 0x0805CA6C - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 - ldrb r0, [r6, #0xb] - bl sub_0804B128 - adds r4, r0, #0 - cmp r4, #0 - bne _0805CACE - movs r0, #0 - b _0805CAE4 -_0805CA82: - movs r0, #8 - b _0805CAE4 -_0805CA86: - movs r0, #0xf - ands r0, r2 - cmp r0, #3 - bne _0805CACC - adds r0, r4, #0 - bl sub_0805CAF0 - adds r2, r0, #0 - cmp r2, #0 - beq _0805CACC - movs r3, #0 - cmp r3, r5 - bhs _0805CAB8 - ldr r0, [r6, #0x20] - cmp r0, r2 - beq _0805CAB8 - adds r1, r6, #0 - adds r1, #0x20 -_0805CAAA: - adds r1, #4 - adds r3, #1 - cmp r3, r5 - bhs _0805CAB8 - ldr r0, [r1] - cmp r0, r2 - bne _0805CAAA -_0805CAB8: - cmp r3, r5 - bne _0805CACC - lsls r1, r5, #2 - adds r0, r6, #0 - adds r0, #0x20 - adds r0, r0, r1 - str r2, [r0] - adds r5, #1 - cmp r5, #8 - beq _0805CA82 -_0805CACC: - adds r4, #0x10 -_0805CACE: - ldrb r2, [r4] - adds r0, r2, #0 - cmp r0, #0xff - beq _0805CAE2 - ldr r0, [r4] - ldr r1, _0805CAE8 @ =0x00FF000F - ands r0, r1 - ldr r1, _0805CAEC @ =0x00280009 - cmp r0, r1 - bne _0805CA86 -_0805CAE2: - adds r0, r5, #0 -_0805CAE4: - pop {r4, r5, r6, pc} - .align 2, 0 -_0805CAE8: .4byte 0x00FF000F -_0805CAEC: .4byte 0x00280009 - - thumb_func_start sub_0805CAF0 -sub_0805CAF0: @ 0x0805CAF0 - push {r4, r5, r6, lr} - adds r3, r0, #0 - ldrh r1, [r3, #8] - ldr r2, _0805CB34 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - adds r5, r1, r0 - ldrh r1, [r3, #0xa] - ldrh r0, [r2, #8] - adds r4, r1, r0 - ldr r1, _0805CB38 @ =gUnk_03003D90 - ldr r2, [r1, #4] - cmp r2, r1 - beq _0805CB42 -_0805CB0A: - movs r6, #0x2e - ldrsh r0, [r2, r6] - cmp r5, r0 - bne _0805CB3C - movs r6, #0x32 - ldrsh r0, [r2, r6] - cmp r4, r0 - bne _0805CB3C - ldrb r0, [r3, #2] - ldrb r6, [r2, #9] - cmp r0, r6 - bne _0805CB3C - ldrb r0, [r2, #8] - cmp r0, #3 - bne _0805CB3C - ldrb r0, [r3, #3] - ldrb r6, [r2, #0xa] - cmp r0, r6 - bne _0805CB3C - adds r0, r2, #0 - b _0805CB44 - .align 2, 0 -_0805CB34: .4byte gUnk_03000BF0 -_0805CB38: .4byte gUnk_03003D90 -_0805CB3C: - ldr r2, [r2, #4] - cmp r2, r1 - bne _0805CB0A -_0805CB42: - movs r0, #0 -_0805CB44: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0805CB48 -sub_0805CB48: @ 0x0805CB48 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r5, #0 - ldrb r1, [r4, #0xe] - cmp r5, r1 - bge _0805CB84 - adds r3, r4, #0 - adds r3, #0x20 - adds r6, r3, #0 -_0805CB5A: - ldr r0, [r3] - ldr r2, [r0, #4] - cmp r2, #0 - bne _0805CB7A - subs r0, r1, #1 - cmp r0, r5 - bne _0805CB6C - str r2, [r3] - b _0805CB74 -_0805CB6C: - lsls r0, r0, #2 - adds r0, r6, r0 - ldr r0, [r0] - str r0, [r3] -_0805CB74: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] -_0805CB7A: - adds r3, #4 - adds r5, #1 - ldrb r1, [r4, #0xe] - cmp r5, r1 - blt _0805CB5A -_0805CB84: - ldrb r0, [r4, #0xe] - cmp r0, #1 - bhi _0805CB8E - bl sub_0805E780 -_0805CB8E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0805CB90 -sub_0805CB90: @ 0x0805CB90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805CBB8 - adds r0, r4, #0 - bl sub_0805CBD0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805CBCE - adds r0, r4, #0 - bl sub_0805CC3C - adds r0, r4, #0 - bl sub_0805E900 - b _0805CBCE -_0805CBB8: - adds r0, r4, #0 - bl sub_0805CF80 - cmp r0, #0 - beq _0805CBCE - ldrh r0, [r4, #0x3e] - bl sub_0807CCC8 - adds r0, r4, #0 - bl sub_0805E900 -_0805CBCE: - pop {r4, pc} - - thumb_func_start sub_0805CBD0 -sub_0805CBD0: @ 0x0805CBD0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldrh r1, [r5, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r3, #0x3f - ands r1, r3 - ldrh r0, [r5, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r5, #0x38] - ldrh r2, [r5, #0x3c] - lsrs r2, r2, #4 - ands r2, r3 - adds r0, r5, #0 - adds r0, #0x36 - ldrb r1, [r0] - adds r0, #1 - ldrb r0, [r0] - lsls r0, r0, #8 - adds r1, r1, r0 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r2, r1 - strh r2, [r5, #0x3a] - movs r1, #0x38 - ldrsh r0, [r5, r1] - adds r4, r5, #0 - adds r4, #0x34 - ldrb r1, [r4] - bl sub_080002B0 - strh r0, [r5, #0x3c] - ldrb r0, [r4] - bl sub_0808094C - ldr r2, _0805CC38 @ =0x00005004 - adds r1, r0, r2 - str r1, [r5, #0x28] - movs r2, #0x3a - ldrsh r1, [r5, r2] - lsls r1, r1, #1 - adds r1, #4 - adds r0, r0, r1 - str r0, [r5, #0x2c] - pop {r4, r5, pc} - .align 2, 0 -_0805CC38: .4byte 0x00005004 - - thumb_func_start sub_0805CC3C -sub_0805CC3C: @ 0x0805CC3C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - movs r0, #0x38 - ldrsh r5, [r4, r0] - movs r0, #0x3a - ldrsh r1, [r4, r0] - mov r8, r1 - adds r7, r4, #0 - adds r7, #0x34 - ldrb r0, [r7] - ldr r6, _0805CC6C @ =0x00000322 - cmp r0, #1 - bne _0805CC5C - subs r6, #1 -_0805CC5C: - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _0805CCF4 - cmp r0, #2 - bgt _0805CC70 - cmp r0, #1 - beq _0805CC94 - b _0805CC76 - .align 2, 0 -_0805CC6C: .4byte 0x00000322 -_0805CC70: - cmp r0, #3 - bne _0805CC76 - b _0805CDE4 -_0805CC76: - adds r4, #0x34 - ldrb r2, [r4] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0807B7D8 - ldr r0, _0805CC90 @ =0x00000365 - ldrb r2, [r4] - mov r1, r8 - bl sub_0807B7D8 - b _0805CF68 - .align 2, 0 -_0805CC90: .4byte 0x00000365 -_0805CC94: - ldrb r2, [r7] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0807B7D8 - adds r1, r5, #1 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x40 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x41 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - ldrh r0, [r4, #0x3c] - ldrb r2, [r7] - mov r1, r8 - bl sub_0807B7D8 - ldr r0, _0805CCEC @ =0x0000036F - mov r1, r8 - adds r1, #1 - ldrb r2, [r7] - bl sub_0807B7D8 - movs r0, #0xdc - lsls r0, r0, #2 - mov r1, r8 - adds r1, #0x40 - ldrb r2, [r7] - bl sub_0807B7D8 - ldr r0, _0805CCF0 @ =0x00000371 - mov r1, r8 - adds r1, #0x41 - b _0805CDC2 - .align 2, 0 -_0805CCEC: .4byte 0x0000036F -_0805CCF0: .4byte 0x00000371 -_0805CCF4: - ldrb r2, [r7] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0807B7D8 - adds r1, r5, #1 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #2 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x40 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x41 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x42 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x80 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x81 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x82 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - ldrh r0, [r4, #0x3c] - ldrb r2, [r7] - mov r1, r8 - bl sub_0807B7D8 - ldr r0, _0805CDCC @ =0x00000372 - mov r1, r8 - adds r1, #1 - ldrb r2, [r7] - bl sub_0807B7D8 - ldr r0, _0805CDD0 @ =0x0000036F - mov r1, r8 - adds r1, #2 - ldrb r2, [r7] - bl sub_0807B7D8 - movs r0, #0xdd - lsls r0, r0, #2 - mov r1, r8 - adds r1, #0x40 - ldrb r2, [r7] - bl sub_0807B7D8 - ldr r0, _0805CDD4 @ =0x00000376 - mov r1, r8 - adds r1, #0x41 - ldrb r2, [r7] - bl sub_0807B7D8 - ldr r0, _0805CDD8 @ =0x00000375 - mov r1, r8 - adds r1, #0x42 - ldrb r2, [r7] - bl sub_0807B7D8 - movs r0, #0xdc - lsls r0, r0, #2 - mov r1, r8 - adds r1, #0x80 - ldrb r2, [r7] - bl sub_0807B7D8 - ldr r0, _0805CDDC @ =0x00000373 - mov r1, r8 - adds r1, #0x81 - ldrb r2, [r7] - bl sub_0807B7D8 - ldr r0, _0805CDE0 @ =0x00000371 - mov r1, r8 - adds r1, #0x82 -_0805CDC2: - ldrb r2, [r7] - bl sub_0807B7D8 - b _0805CF68 - .align 2, 0 -_0805CDCC: .4byte 0x00000372 -_0805CDD0: .4byte 0x0000036F -_0805CDD4: .4byte 0x00000376 -_0805CDD8: .4byte 0x00000375 -_0805CDDC: .4byte 0x00000373 -_0805CDE0: .4byte 0x00000371 -_0805CDE4: - ldrb r2, [r7] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0807B7D8 - adds r1, r5, #1 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #2 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #3 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x40 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x41 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x42 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x43 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x80 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x81 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x82 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0x83 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0xc0 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0xc1 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0xc2 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r5, #0 - adds r1, #0xc3 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - ldrh r0, [r4, #0x3c] - ldrb r2, [r7] - mov r1, r8 - bl sub_0807B7D8 - ldr r4, _0805CF70 @ =0x00000372 - mov r1, r8 - adds r1, #1 - ldrb r2, [r7] - adds r0, r4, #0 - bl sub_0807B7D8 - mov r1, r8 - adds r1, #2 - ldrb r2, [r7] - adds r0, r4, #0 - bl sub_0807B7D8 - ldr r0, _0805CF74 @ =0x0000036F - mov r1, r8 - adds r1, #3 - ldrb r2, [r7] - bl sub_0807B7D8 - movs r6, #0xdd - lsls r6, r6, #2 - mov r1, r8 - adds r1, #0x40 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r4, #4 - mov r1, r8 - adds r1, #0x41 - ldrb r2, [r7] - adds r0, r4, #0 - bl sub_0807B7D8 - mov r1, r8 - adds r1, #0x42 - ldrb r2, [r7] - adds r0, r4, #0 - bl sub_0807B7D8 - ldr r5, _0805CF78 @ =0x00000375 - mov r1, r8 - adds r1, #0x43 - ldrb r2, [r7] - adds r0, r5, #0 - bl sub_0807B7D8 - mov r1, r8 - adds r1, #0x80 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0807B7D8 - mov r1, r8 - adds r1, #0x81 - ldrb r2, [r7] - adds r0, r4, #0 - bl sub_0807B7D8 - mov r1, r8 - adds r1, #0x82 - ldrb r2, [r7] - adds r0, r4, #0 - bl sub_0807B7D8 - mov r1, r8 - adds r1, #0x83 - ldrb r2, [r7] - adds r0, r5, #0 - bl sub_0807B7D8 - movs r0, #0xdc - lsls r0, r0, #2 - mov r1, r8 - adds r1, #0xc0 - ldrb r2, [r7] - bl sub_0807B7D8 - subs r4, #3 - mov r1, r8 - adds r1, #0xc1 - ldrb r2, [r7] - adds r0, r4, #0 - bl sub_0807B7D8 - mov r1, r8 - adds r1, #0xc2 - ldrb r2, [r7] - adds r0, r4, #0 - bl sub_0807B7D8 - ldr r0, _0805CF7C @ =0x00000371 - mov r1, r8 - adds r1, #0xc3 - ldrb r2, [r7] - bl sub_0807B7D8 -_0805CF68: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805CF70: .4byte 0x00000372 -_0805CF74: .4byte 0x0000036F -_0805CF78: .4byte 0x00000375 -_0805CF7C: .4byte 0x00000371 - - thumb_func_start sub_0805CF80 -sub_0805CF80: @ 0x0805CF80 - push {lr} - ldr r1, [r0, #0x2c] - ldrh r1, [r1] - ldr r0, [r0, #0x28] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - movs r2, #0 - ldr r0, _0805CFBC @ =0x00000365 - cmp r1, r0 - beq _0805CFB4 - adds r0, #4 - cmp r1, r0 - beq _0805CFB4 - adds r0, #1 - cmp r1, r0 - beq _0805CFB4 - adds r0, #1 - cmp r1, r0 - beq _0805CFB4 - adds r0, #2 - cmp r1, r0 - beq _0805CFB4 - subs r0, #1 - cmp r1, r0 - bne _0805CFB6 -_0805CFB4: - movs r2, #1 -_0805CFB6: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0805CFBC: .4byte 0x00000365 - - thumb_func_start sub_0805CFC0 -sub_0805CFC0: @ 0x0805CFC0 - push {r4, lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _0805CFCE - adds r0, #1 - strb r0, [r1, #0xc] -_0805CFCE: - movs r0, #3 - bl sub_0804B128 - adds r4, r0, #0 - cmp r4, #0 - beq _0805CFEE - b _0805CFE8 -_0805CFDC: - cmp r0, #0xa - bne _0805CFE6 - adds r0, r4, #0 - bl sub_0805CFF0 -_0805CFE6: - adds r4, #8 -_0805CFE8: - ldrb r0, [r4] - cmp r0, #0 - bne _0805CFDC -_0805CFEE: - pop {r4, pc} - - thumb_func_start sub_0805CFF0 -sub_0805CFF0: @ 0x0805CFF0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #2] - bl sub_0807CBD0 - cmp r0, #0 - bne _0805D012 - ldrh r0, [r4, #4] - ldrb r1, [r4, #1] - bl sub_080002B0 - ldrh r1, [r4, #6] - cmp r1, r0 - bne _0805D012 - ldrh r0, [r4, #2] - bl sub_0807CCB4 -_0805D012: - pop {r4, pc} - - thumb_func_start sub_0805D014 -sub_0805D014: @ 0x0805D014 - push {lr} - ldr r2, _0805D028 @ =gUnk_08108D30 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805D028: .4byte gUnk_08108D30 - - thumb_func_start sub_0805D02C -sub_0805D02C: @ 0x0805D02C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - ldrh r0, [r6, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805D046 - bl sub_0805E780 -_0805D046: - ldr r0, _0805D0BC @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x43 - bhi _0805D0B0 - ldrb r0, [r6, #0xa] - bl sub_0804B128 - adds r5, r0, #0 - movs r7, #0 - movs r0, #0x36 - adds r0, r0, r6 - mov sl, r0 - ldr r1, _0805D0C0 @ =gUnk_03000BF0 - mov r8, r1 - movs r0, #0x20 - adds r0, r0, r6 - mov sb, r0 -_0805D068: - ldrh r1, [r5, #4] - movs r0, #0xa0 - adds r2, r7, #0 - bl CreateObject - adds r4, r0, #0 - mov r1, r8 - ldrh r0, [r1, #6] - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - mov r1, r8 - ldrh r0, [r1, #8] - ldrh r1, [r5, #2] - adds r0, r0, r1 - strh r0, [r4, #0x32] - str r6, [r4, #0x50] - adds r0, r4, #0 - bl sub_08016A30 - mov r0, sb - adds r0, #4 - mov sb, r0 - subs r0, #4 - stm r0!, {r4} - adds r7, #1 - adds r5, #6 - cmp r7, #3 - bls _0805D068 - movs r0, #0 - movs r1, #1 - strb r1, [r6, #0xc] - movs r1, #0x3c - strb r1, [r6, #0xf] - mov r1, sl - strb r0, [r1] -_0805D0B0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805D0BC: .4byte gUnk_03003DBC -_0805D0C0: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805D0C4 -sub_0805D0C4: @ 0x0805D0C4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D0D8 - movs r0, #0xb4 - strb r0, [r4, #0xf] -_0805D0D8: - adds r5, r4, #0 - adds r5, #0x36 - ldrb r0, [r5] - cmp r0, #0xf - bne _0805D0F6 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0x72 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_0805D11C -_0805D0F6: - movs r0, #0 - strb r0, [r5] - pop {r4, r5, pc} - - thumb_func_start sub_0805D0FC -sub_0805D0FC: @ 0x0805D0FC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D118 - ldrh r0, [r4, #0x3e] - bl sub_0807CCC8 - adds r0, r4, #0 - bl sub_0805E900 -_0805D118: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805D11C -sub_0805D11C: @ 0x0805D11C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r6, #0 - ldr r1, _0805D170 @ =gUnk_03000BF0 - mov r8, r1 - movs r7, #0x3f - adds r5, r0, #0 - adds r5, #0x20 -_0805D12E: - ldr r4, [r5] - movs r0, #0 - stm r5!, {r0} - movs r2, #0x2e - ldrsh r0, [r4, r2] - mov r3, r8 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r7 - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r3, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r7 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - adds r0, r4, #0 - bl sub_0805E7BC - adds r6, #1 - cmp r6, #3 - bls _0805D12E - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805D170: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805D174 -sub_0805D174: @ 0x0805D174 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xc] - cmp r1, #0 - bne _0805D184 - movs r0, #1 - strb r0, [r5, #0xc] - strh r1, [r5, #0x3a] -_0805D184: - movs r1, #0x38 - ldrsh r0, [r5, r1] - movs r2, #0x3a - ldrsh r1, [r5, r2] - movs r2, #0x14 - movs r3, #0x40 - bl sub_0800293E - cmp r0, #0 - beq _0805D1EE - ldr r0, _0805D1F0 @ =gLinkEntity - movs r4, #0x32 - ldrsh r1, [r0, r4] - ldr r3, _0805D1F4 @ =gUnk_03000BF0 - ldrh r2, [r3, #8] - subs r1, r1, r2 - movs r4, #0x36 - ldrsh r0, [r0, r4] - adds r1, r1, r0 - cmp r1, #0 - bge _0805D1EE - movs r1, #0xc - ldrsh r0, [r3, r1] - cmp r0, r2 - bne _0805D1EE - ldr r4, _0805D1F8 @ =gUnk_030010AC - adds r0, r4, #0 - movs r1, #0x20 - bl sub_0801D630 - subs r4, #0xc - movs r1, #0 - movs r0, #1 - strb r0, [r4, #8] - strb r1, [r4, #9] - movs r0, #0xb - strb r0, [r4, #0xf] - ldrb r0, [r5, #0xb] - strb r0, [r4, #0xc] - ldrb r0, [r5, #0xe] - strb r0, [r4, #0xd] - adds r0, r5, #0 - adds r0, #0x37 - ldrb r0, [r0] - strb r0, [r4, #0xe] - ldrh r0, [r5, #0x3c] - strh r0, [r4, #0x10] - ldrh r0, [r5, #0x3e] - strh r0, [r4, #0x12] - adds r0, r5, #0 - adds r0, #0x36 - ldrb r0, [r0] - strb r0, [r4, #0x14] -_0805D1EE: - pop {r4, r5, pc} - .align 2, 0 -_0805D1F0: .4byte gLinkEntity -_0805D1F4: .4byte gUnk_03000BF0 -_0805D1F8: .4byte gUnk_030010AC - - thumb_func_start sub_0805D1FC -sub_0805D1FC: @ 0x0805D1FC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0805D240 @ =0x00004014 - ldr r1, _0805D244 @ =0x000005C3 - movs r2, #1 - bl sub_0800015E - ldr r3, _0805D248 @ =gUnk_03000BF0 - ldrh r0, [r3, #8] - adds r0, #0xc8 - ldr r2, _0805D24C @ =gLinkEntity - movs r5, #0x32 - ldrsh r1, [r2, r5] - cmp r0, r1 - bge _0805D236 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldrh r1, [r3, #6] - subs r0, r0, r1 - subs r0, #0x30 - cmp r0, #0x10 - bhi _0805D236 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08016A04 -_0805D236: - adds r0, r4, #0 - bl sub_0805E900 - pop {r4, r5, pc} - .align 2, 0 -_0805D240: .4byte 0x00004014 -_0805D244: .4byte 0x000005C3 -_0805D248: .4byte gUnk_03000BF0 -_0805D24C: .4byte gLinkEntity - - thumb_func_start sub_0805D250 -sub_0805D250: @ 0x0805D250 - push {lr} - ldr r2, _0805D264 @ =gUnk_08108D3C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805D264: .4byte gUnk_08108D3C - - thumb_func_start sub_0805D268 -sub_0805D268: @ 0x0805D268 - push {lr} - ldr r2, _0805D27C @ =gUnk_08108D44 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805D27C: .4byte gUnk_08108D44 - - thumb_func_start sub_0805D280 -sub_0805D280: @ 0x0805D280 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805D292 - bl sub_0805E780 -_0805D292: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805D2A6 - ldrh r0, [r4, #0x3c] - bl sub_0807CCC8 - bl sub_0805E780 -_0805D2A6: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0805D2B4 - movs r0, #0x1e - strb r0, [r4, #0xe] -_0805D2B4: - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805D2C0 -sub_0805D2C0: @ 0x0805D2C0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805D2EE - ldr r0, _0805D2F0 @ =gUnk_03003DC0 - ldrh r0, [r0, #8] - cmp r0, #1 - bhi _0805D2EE - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _0805D2E6 - adds r0, r4, #0 - bl sub_0805D2F4 -_0805D2E6: - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_0805E4E0 -_0805D2EE: - pop {r4, pc} - .align 2, 0 -_0805D2F0: .4byte gUnk_03003DC0 - - thumb_func_start sub_0805D2F4 -sub_0805D2F4: @ 0x0805D2F4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0805D310 @ =gUnk_03003DC0 - ldrh r0, [r0, #8] - cmp r0, #0 - bne _0805D328 - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0805D314 - bl sub_080A3268 - b _0805D31A - .align 2, 0 -_0805D310: .4byte gUnk_03003DC0 -_0805D314: - movs r0, #0x72 - bl sub_080A3268 -_0805D31A: - ldrh r0, [r4, #0x3c] - cmp r0, #0 - beq _0805D324 - bl sub_0807CCC8 -_0805D324: - bl sub_0805E780 -_0805D328: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805D32C -sub_0805D32C: @ 0x0805D32C - push {lr} - ldr r2, _0805D340 @ =gUnk_08108D50 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805D340: .4byte gUnk_08108D50 - - thumb_func_start sub_0805D344 -sub_0805D344: @ 0x0805D344 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0805D35C - movs r0, #0x1e - strb r0, [r4, #0xe] -_0805D35C: - ldrb r0, [r4, #0xe] - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805D36C -sub_0805D36C: @ 0x0805D36C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805D382 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xf] - strb r0, [r4, #0xe] -_0805D382: - pop {r4, pc} - - thumb_func_start sub_0805D384 -sub_0805D384: @ 0x0805D384 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0805D3B2 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D3C6 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0x72 - cmp r0, #0 - beq _0805D3A4 - adds r1, r0, #0 -_0805D3A4: - adds r0, r1, #0 - bl sub_080A3268 - ldrh r0, [r4, #0x3c] - bl sub_0807CCC8 - b _0805D3C6 -_0805D3B2: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - bne _0805D3C6 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3c] - bl sub_0807CD48 -_0805D3C6: - pop {r4, pc} - - thumb_func_start sub_0805D3C8 -sub_0805D3C8: @ 0x0805D3C8 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - bne _0805D3F4 - ldr r0, _0805D3E8 @ =gUnk_02033A90 - ldr r1, _0805D3EC @ =0x0000088C - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0805D3F0 @ =sub_0805D470 - cmp r0, r1 - beq _0805D45E - movs r0, #0 - bl _call_via_r1 - b _0805D45E - .align 2, 0 -_0805D3E8: .4byte gUnk_02033A90 -_0805D3EC: .4byte 0x0000088C -_0805D3F0: .4byte sub_0805D470 -_0805D3F4: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805D43A - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _0805D428 @ =gUnk_02033A90 - ldr r2, _0805D42C @ =0x0000088C - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, #0 - bne _0805D434 - ldr r1, _0805D430 @ =sub_0805D470 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 - b _0805D45E - .align 2, 0 -_0805D428: .4byte gUnk_02033A90 -_0805D42C: .4byte 0x0000088C -_0805D430: .4byte sub_0805D470 -_0805D434: - bl sub_0805E780 - b _0805D45E -_0805D43A: - ldr r1, _0805D460 @ =gUnk_03000BF0 - ldr r0, [r1, #0x28] - ldr r3, _0805D464 @ =0xFFFFC000 - adds r0, r0, r3 - str r0, [r1, #0x28] - ldr r0, [r1, #0x2c] - ldr r2, _0805D468 @ =0xFFFFE000 - adds r0, r0, r2 - str r0, [r1, #0x2c] - ldr r2, _0805D46C @ =gUnk_03000F50 - ldrh r0, [r1, #0x2a] - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] -_0805D45E: - pop {r4, pc} - .align 2, 0 -_0805D460: .4byte gUnk_03000BF0 -_0805D464: .4byte 0xFFFFC000 -_0805D468: .4byte 0xFFFFE000 -_0805D46C: .4byte gUnk_03000F50 - - thumb_func_start sub_0805D470 -sub_0805D470: @ 0x0805D470 - push {lr} - movs r0, #0x4c - bl sub_0801D7EC - ldr r2, _0805D4A0 @ =gUnk_03000F50 - ldr r0, _0805D4A4 @ =0x00001E07 - strh r0, [r2, #0x2c] - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _0805D4A8 @ =gUnk_03000BF0 - ldrh r0, [r1, #0x2a] - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] - pop {pc} - .align 2, 0 -_0805D4A0: .4byte gUnk_03000F50 -_0805D4A4: .4byte 0x00001E07 -_0805D4A8: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805D4AC -sub_0805D4AC: @ 0x0805D4AC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldrb r0, [r6, #0xc] - cmp r0, #1 - beq _0805D520 - cmp r0, #1 - bgt _0805D4C6 - cmp r0, #0 - beq _0805D4D2 - b _0805D628 -_0805D4C6: - cmp r0, #2 - beq _0805D5A4 - cmp r0, #3 - bne _0805D4D0 - b _0805D604 -_0805D4D0: - b _0805D628 -_0805D4D2: - movs r0, #1 - strb r0, [r6, #0xc] - ldrb r0, [r6, #0xe] - strb r0, [r6, #0xf] - ldrh r1, [r6, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r3, #0x3f - ands r1, r3 - ldrh r0, [r6, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r6, #0x28] - ldr r4, _0805D518 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0805D51C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r6, #0x2e] - strh r1, [r6, #0x2c] - b _0805D628 - .align 2, 0 -_0805D518: .4byte gLinkEntity -_0805D51C: .4byte gUnk_03000BF0 -_0805D520: - ldr r4, _0805D568 @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _0805D56C @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - strh r5, [r6, #0x2e] - ldrh r2, [r6, #0x2c] - cmp r5, r2 - beq _0805D5A4 - strh r5, [r6, #0x2c] - ldrh r0, [r6, #0x2e] - ldrb r1, [r6, #0xb] - bl sub_080002B0 - adds r1, r0, #0 - ldr r3, _0805D570 @ =0x00000317 - cmp r1, r3 - beq _0805D574 - movs r0, #0xc6 - lsls r0, r0, #2 - cmp r1, r0 - beq _0805D580 - b _0805D5A4 - .align 2, 0 -_0805D568: .4byte gLinkEntity -_0805D56C: .4byte gUnk_03000BF0 -_0805D570: .4byte 0x00000317 -_0805D574: - movs r0, #2 - strb r0, [r6, #0xc] - movs r0, #0x6d - bl sub_080A3268 - b _0805D5A4 -_0805D580: - ldrh r1, [r6, #0x2e] - ldrb r2, [r6, #0xb] - adds r0, r3, #0 - bl sub_0807B7D8 - movs r0, #0x6b - bl sub_080A3268 - ldrb r0, [r6, #0xe] - subs r0, #1 - strb r0, [r6, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D5A4 - movs r0, #3 - strb r0, [r6, #0xc] - movs r0, #0x40 - strb r0, [r6, #0xe] -_0805D5A4: - ldrh r0, [r6, #0x3e] - cmp r0, #0 - beq _0805D628 - bl sub_0807CBE4 - cmp r0, #0 - beq _0805D628 - ldrh r0, [r6, #0x3e] - bl sub_0807CD48 - movs r0, #1 - strb r0, [r6, #0xc] - ldrb r0, [r6, #0xf] - strb r0, [r6, #0xe] - movs r1, #0 - adds r0, r6, #0 - adds r0, #0x37 - mov sb, r0 - ldrb r5, [r0] - cmp r1, r5 - bhs _0805D628 - movs r0, #0x36 - adds r0, r0, r6 - mov r8, r0 -_0805D5D4: - lsls r0, r1, #6 - ldrh r2, [r6, #0x28] - adds r5, r0, r2 - movs r4, #0 - adds r7, r1, #1 - mov r0, r8 - ldrb r0, [r0] - cmp r4, r0 - bhs _0805D5F8 -_0805D5E6: - adds r0, r5, r4 - ldrb r1, [r6, #0xb] - bl sub_0807BA8C - adds r4, #1 - mov r1, r8 - ldrb r1, [r1] - cmp r4, r1 - blo _0805D5E6 -_0805D5F8: - adds r1, r7, #0 - mov r2, sb - ldrb r2, [r2] - cmp r1, r2 - blo _0805D5D4 - b _0805D628 -_0805D604: - ldrb r0, [r6, #0xe] - cmp r0, #0 - beq _0805D628 - subs r0, #1 - strb r0, [r6, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0805D622 - cmp r0, #0x20 - bne _0805D628 - ldrh r0, [r6, #0x3c] - bl sub_0807CCC8 - b _0805D628 -_0805D622: - movs r0, #0x72 - bl sub_080A3268 -_0805D628: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805D630 -sub_0805D630: @ 0x0805D630 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldrb r0, [r6, #0xc] - cmp r0, #0 - beq _0805D642 - b _0805D768 -_0805D642: - adds r0, #1 - strb r0, [r6, #0xc] - movs r0, #0x42 - bl GetProgressFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x43 - bl GetProgressFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x44 - bl GetProgressFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x3e - bl GetProgressFlag - cmp r0, #0 - bne _0805D680 - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x3e - bl sub_0807CD04 - b _0805D6D2 -_0805D680: - movs r0, #0x3f - bl GetProgressFlag - cmp r0, #0 - bne _0805D69C - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x3f - bl sub_0807CD04 - b _0805D6D2 -_0805D69C: - movs r0, #0x40 - bl GetProgressFlag - cmp r0, #0 - bne _0805D6B8 - movs r0, #4 - bl GetProgressFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x40 - bl sub_0807CD04 - b _0805D6D2 -_0805D6B8: - movs r0, #0x41 - bl GetProgressFlag - cmp r0, #0 - bne _0805D6E4 - movs r0, #5 - bl GetProgressFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x41 - bl sub_0807CD04 -_0805D6D2: - movs r0, #0x42 - bl sub_0807CD80 - movs r0, #0x43 - bl sub_0807CD80 - movs r0, #0x44 - bl sub_0807CD80 -_0805D6E4: - adds r1, r6, #0 - adds r1, #0x22 - movs r0, #0 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - ldr r4, _0805D79C @ =gUnk_08108D5C - movs r5, #0 - mov sb, r1 - movs r7, #1 - ldr r0, _0805D7A0 @ =gUnk_03000BF0 - mov r8, r0 -_0805D700: - adds r0, r5, #0 - adds r0, #0x42 - bl GetProgressFlag - cmp r0, #0 - bne _0805D760 - bl sub_08000E50 - ldrh r1, [r4, #2] - bl __modsi3 - adds r2, r0, #0 - ldrh r0, [r4] - adds r2, r2, r0 - movs r0, #2 - movs r1, #0x5c - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805D760 - strb r7, [r2, #0xe] - strb r5, [r2, #0xf] - mov r1, r8 - ldrh r0, [r1, #6] - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - mov r1, r8 - ldrh r0, [r1, #8] - ldrh r1, [r4, #6] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrh r1, [r4, #4] - adds r0, r2, #0 - adds r0, #0x80 - strh r1, [r0] - ldrh r0, [r4, #6] - adds r1, r2, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x38 - strb r7, [r0] - str r6, [r2, #0x50] - mov r1, sb - adds r0, r1, r5 - strb r7, [r0] -_0805D760: - adds r5, #1 - adds r4, #8 - cmp r5, #2 - ble _0805D700 -_0805D768: - movs r5, #0 -_0805D76A: - adds r4, r5, #0 - adds r4, #0x42 - adds r0, r4, #0 - bl GetProgressFlag - cmp r0, #0 - bne _0805D78E - adds r0, r6, #0 - adds r0, #0x20 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _0805D78E - adds r0, r4, #0 - bl sub_0807CD04 -_0805D78E: - adds r5, #1 - cmp r5, #2 - ble _0805D76A - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805D79C: .4byte gUnk_08108D5C -_0805D7A0: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805D7A4 -sub_0805D7A4: @ 0x0805D7A4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0805D7D4 @ =gUnk_08108D7C - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, _0805D7D8 @ =gUnk_030010A0 - ldr r0, [r0] - lsls r0, r0, #4 - str r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0805D9D8 - ldr r0, [r4, #0x20] - ldr r1, [r4, #0x28] - ldr r2, [r4, #0x24] - bl sub_0805DA08 - pop {r4, pc} - .align 2, 0 -_0805D7D4: .4byte gUnk_08108D7C -_0805D7D8: .4byte gUnk_030010A0 - - thumb_func_start sub_0805D7DC -sub_0805D7DC: @ 0x0805D7DC - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - movs r2, #2 - cmp r0, #0 - bne _0805D7EA - movs r2, #1 -_0805D7EA: - movs r0, #0 - strb r2, [r1, #0xc] - str r0, [r1, #0x20] - str r0, [r1, #0x24] - ldr r0, _0805D80C @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #0x78 - beq _0805D83C - cmp r0, #0x78 - bgt _0805D816 - cmp r0, #7 - beq _0805D828 - cmp r0, #7 - bgt _0805D810 - cmp r0, #3 - beq _0805D82C - b _0805D828 - .align 2, 0 -_0805D80C: .4byte gUnk_03000BF0 -_0805D810: - cmp r0, #0x38 - beq _0805D840 - b _0805D828 -_0805D816: - cmp r0, #0x81 - beq _0805D830 - cmp r0, #0x81 - bgt _0805D824 - cmp r0, #0x80 - beq _0805D834 - b _0805D828 -_0805D824: - cmp r0, #0x88 - beq _0805D838 -_0805D828: - movs r1, #0 - b _0805D842 -_0805D82C: - movs r1, #1 - b _0805D842 -_0805D830: - movs r1, #2 - b _0805D842 -_0805D834: - movs r1, #3 - b _0805D842 -_0805D838: - movs r1, #4 - b _0805D842 -_0805D83C: - movs r1, #5 - b _0805D842 -_0805D840: - movs r1, #6 -_0805D842: - ldr r0, _0805D854 @ =gUnk_08108D74 - adds r0, r1, r0 - ldrb r0, [r0] - bl sub_0801D7EC - ldr r1, _0805D858 @ =gUnk_03000F50 - ldr r0, _0805D85C @ =0x00001E04 - strh r0, [r1, #0x2c] - pop {pc} - .align 2, 0 -_0805D854: .4byte gUnk_08108D74 -_0805D858: .4byte gUnk_03000F50 -_0805D85C: .4byte 0x00001E04 - - thumb_func_start sub_0805D860 -sub_0805D860: @ 0x0805D860 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xd] - cmp r0, #1 - beq _0805D89C - cmp r0, #1 - bgt _0805D874 - cmp r0, #0 - beq _0805D87E - b _0805D8D6 -_0805D874: - cmp r0, #2 - beq _0805D8B0 - cmp r0, #3 - beq _0805D8C2 - b _0805D8D6 -_0805D87E: - movs r0, #1 - strb r0, [r1, #0xd] - movs r0, #0x80 - str r0, [r1, #0x20] - ldr r2, _0805D898 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - b _0805D8F4 - .align 2, 0 -_0805D898: .4byte gUnk_03000F50 -_0805D89C: - ldr r0, [r1, #0x20] - subs r0, #1 - str r0, [r1, #0x20] - cmp r0, #0x10 - bne _0805D8F4 - movs r0, #2 - strb r0, [r1, #0xd] - movs r0, #0x2d - strb r0, [r1, #0xe] - b _0805D8F4 -_0805D8B0: - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D8F4 - movs r0, #3 - strb r0, [r1, #0xd] - b _0805D8F4 -_0805D8C2: - ldr r0, [r1, #0x20] - subs r0, #1 - str r0, [r1, #0x20] - cmp r0, #0 - bne _0805D8F4 - movs r0, #4 - strb r0, [r1, #0xd] - movs r0, #0x3c - strb r0, [r1, #0xe] - b _0805D8F4 -_0805D8D6: - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D8F4 - bl sub_0801E104 - ldr r2, _0805D8F8 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805D8FC @ =0x0000F7FF - ands r0, r1 - strh r0, [r2] - bl sub_0805E780 -_0805D8F4: - pop {pc} - .align 2, 0 -_0805D8F8: .4byte gUnk_03000F50 -_0805D8FC: .4byte 0x0000F7FF - - thumb_func_start sub_0805D900 -sub_0805D900: @ 0x0805D900 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #1 - beq _0805D938 - cmp r0, #1 - bgt _0805D914 - cmp r0, #0 - beq _0805D91A - b _0805D966 -_0805D914: - cmp r0, #2 - beq _0805D94E - b _0805D966 -_0805D91A: - movs r1, #1 - strb r1, [r2, #0xd] - movs r0, #0x2d - strb r0, [r2, #0xe] - str r1, [r2, #0x20] - ldr r2, _0805D934 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - b _0805D982 - .align 2, 0 -_0805D934: .4byte gUnk_03000F50 -_0805D938: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D982 - movs r0, #2 - strb r0, [r2, #0xd] - movs r0, #0x14 - strb r0, [r2, #0xe] - b _0805D982 -_0805D94E: - ldr r0, [r2, #0x20] - adds r0, #1 - str r0, [r2, #0x20] - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D982 - movs r0, #3 - strb r0, [r2, #0xd] - b _0805D982 -_0805D966: - ldr r0, [r2, #0x20] - adds r0, #4 - str r0, [r2, #0x20] - cmp r0, #0x80 - bls _0805D982 - bl sub_0801E104 - ldr r2, _0805D984 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805D988 @ =0x0000F7FF - ands r0, r1 - strh r0, [r2] - bl sub_0805E780 -_0805D982: - pop {pc} - .align 2, 0 -_0805D984: .4byte gUnk_03000F50 -_0805D988: .4byte 0x0000F7FF - - thumb_func_start sub_0805D98C -sub_0805D98C: @ 0x0805D98C - push {lr} - adds r2, r0, #0 - ldr r3, _0805D9D4 @ =gUnk_03000FF0 - ldrh r1, [r3] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0805D9A2 - ldr r0, [r2, #0x20] - subs r0, #1 - str r0, [r2, #0x20] -_0805D9A2: - ldrh r1, [r3] - movs r0, #0x80 - ands r0, r1 - adds r3, r1, #0 - cmp r0, #0 - beq _0805D9B4 - ldr r0, [r2, #0x20] - adds r0, #1 - str r0, [r2, #0x20] -_0805D9B4: - movs r0, #0x20 - ands r0, r3 - cmp r0, #0 - beq _0805D9C2 - ldr r0, [r2, #0x28] - subs r0, #1 - str r0, [r2, #0x28] -_0805D9C2: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0805D9D0 - ldr r0, [r2, #0x28] - adds r0, #1 - str r0, [r2, #0x28] -_0805D9D0: - pop {pc} - .align 2, 0 -_0805D9D4: .4byte gUnk_03000FF0 - - thumb_func_start sub_0805D9D8 -sub_0805D9D8: @ 0x0805D9D8 - push {r4, lr} - ldr r4, [r0, #0x14] - cmp r4, #0 - beq _0805D9FC - ldr r3, _0805DA00 @ =gUnk_03000F50 - ldr r2, _0805DA04 @ =gUnk_03000BF0 - ldrh r1, [r4, #0x2e] - ldrh r0, [r2, #0xa] - subs r1, r1, r0 - movs r0, #0x80 - subs r0, r0, r1 - strh r0, [r3, #0x2e] - ldrh r1, [r4, #0x32] - ldrh r0, [r2, #0xc] - subs r1, r1, r0 - movs r0, #0x8c - subs r0, r0, r1 - strh r0, [r3, #0x30] -_0805D9FC: - pop {r4, pc} - .align 2, 0 -_0805DA00: .4byte gUnk_03000F50 -_0805DA04: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805DA08 -sub_0805DA08: @ 0x0805DA08 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r2, _0805DA78 @ =gUnk_03003DE4 - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0805DA7C @ =gUnk_02017AA0 - adds r4, r0, r1 - movs r3, #0 - mov r8, r2 - mov sb, r1 - ldr r0, _0805DA80 @ =gUnk_080C9160 - mov ip, r0 - movs r2, #0xff - ldr r1, _0805DA84 @ =gUnk_03000F50 -_0805DA34: - adds r0, r6, r3 - adds r0, r0, r5 - ands r0, r2 - lsls r0, r0, #1 - add r0, ip - movs r7, #0 - ldrsh r0, [r0, r7] - mov r7, sl - muls r7, r0, r7 - adds r0, r7, #0 - lsrs r0, r0, #8 - ldrh r7, [r1, #0x2e] - adds r0, r0, r7 - strh r0, [r4] - adds r4, #2 - adds r3, #1 - adds r5, #0x17 - cmp r3, #0x9f - bls _0805DA34 - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - add r0, sb - ldr r1, _0805DA88 @ =0x0400001C - ldr r2, _0805DA8C @ =0xA2600001 - bl sub_0805622C - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805DA78: .4byte gUnk_03003DE4 -_0805DA7C: .4byte gUnk_02017AA0 -_0805DA80: .4byte gUnk_080C9160 -_0805DA84: .4byte gUnk_03000F50 -_0805DA88: .4byte 0x0400001C -_0805DA8C: .4byte 0xA2600001 - - thumb_func_start sub_0805DA90 -sub_0805DA90: @ 0x0805DA90 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_0805E8D4 - adds r1, r0, #0 - cmp r1, #0 - beq _0805DAB4 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x32 - strb r0, [r1, #9] - strb r4, [r1, #0xa] - str r5, [r1, #0x14] - adds r0, r1, #0 - movs r1, #8 - bl sub_0805EA2C -_0805DAB4: - ldr r0, _0805DAD8 @ =gUnk_02033A90 - ldr r1, _0805DADC @ =0x0000088C - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, #0 - beq _0805DAD4 - ldr r2, _0805DAE0 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0805DAE4 @ =0x0000F7FF - ands r0, r1 - strh r0, [r2] - bl sub_080528F0 - ldr r0, [r4] - bl sub_0805E900 -_0805DAD4: - pop {r4, r5, pc} - .align 2, 0 -_0805DAD8: .4byte gUnk_02033A90 -_0805DADC: .4byte 0x0000088C -_0805DAE0: .4byte gUnk_03000F50 -_0805DAE4: .4byte 0x0000F7FF - - thumb_func_start sub_0805DAE8 -sub_0805DAE8: @ 0x0805DAE8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r2, r0, #0 - ldr r5, _0805DB4C @ =gUnk_03000BF0 - ldrh r0, [r5, #6] - movs r1, #0xfc - lsls r1, r1, #1 - mov r8, r1 - add r0, r8 - ldr r3, _0805DB50 @ =gLinkEntity - movs r4, #0x2e - ldrsh r1, [r3, r4] - subs r0, r0, r1 - adds r4, r0, #0 - adds r4, #0x10 - ldrh r0, [r5, #8] - movs r7, #0xa0 - lsls r7, r7, #1 - adds r0, r0, r7 - movs r6, #0x32 - ldrsh r1, [r3, r6] - subs r0, r0, r1 - adds r0, #0x10 - ldrb r6, [r2, #0xc] - cmp r6, #0 - bne _0805DB58 - cmp r4, #0x1f - bhi _0805DB88 - cmp r0, #0x1f - bhi _0805DB88 - movs r0, #0x36 - ldrsh r1, [r3, r0] - movs r0, #0x18 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0805DB88 - ldr r0, _0805DB54 @ =gUnk_03003F80 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x14 - bne _0805DB88 - adds r0, r6, #1 - strb r0, [r2, #0xc] - movs r0, #0x5a - strb r0, [r2, #0xe] - adds r0, #0xb0 - bl sub_080A3268 - b _0805DB88 - .align 2, 0 -_0805DB4C: .4byte gUnk_03000BF0 -_0805DB50: .4byte gLinkEntity -_0805DB54: .4byte gUnk_03003F80 -_0805DB58: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DB88 - movs r0, #0x96 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0805DB84 - ldrh r0, [r5, #6] - add r0, r8 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #8] - adds r0, r0, r7 - strh r0, [r1, #0x32] - ldr r0, _0805DB90 @ =0x0000FFE8 - strh r0, [r1, #0x36] -_0805DB84: - bl sub_0805E780 -_0805DB88: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805DB90: .4byte 0x0000FFE8 - - thumb_func_start sub_0805DB94 -sub_0805DB94: @ 0x0805DB94 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0805DBB0 @ =gUnk_08108D8C - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0805DBF0 - pop {r4, pc} - .align 2, 0 -_0805DBB0: .4byte gUnk_08108D8C - - thumb_func_start sub_0805DBB4 -sub_0805DBB4: @ 0x0805DBB4 - movs r1, #1 - strb r1, [r0, #0xc] - ldr r1, _0805DBC8 @ =gUnk_030010A0 - adds r1, #0x3d - ldrb r2, [r1] - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #2 - strh r1, [r0, #0x20] - bx lr - .align 2, 0 -_0805DBC8: .4byte gUnk_030010A0 - - thumb_func_start sub_0805DBCC -sub_0805DBCC: @ 0x0805DBCC - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x14] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0805DBE6 - movs r0, #2 - strb r0, [r1, #0xc] - ldrh r0, [r1, #0x20] - ldr r2, _0805DBE8 @ =0x0000012D - cmp r0, r2 - bls _0805DBE6 - strh r2, [r1, #0x20] -_0805DBE6: - pop {pc} - .align 2, 0 -_0805DBE8: .4byte 0x0000012D - - thumb_func_start nullsub_498 -nullsub_498: @ 0x0805DBEC - bx lr - .align 2, 0 - - thumb_func_start sub_0805DBF0 -sub_0805DBF0: @ 0x0805DBF0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - subs r1, r0, #1 - strh r1, [r4, #0x20] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _0805DC06 - bl sub_0805DC70 - b _0805DC6C -_0805DC06: - lsls r0, r1, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x78 - bne _0805DC18 - movs r0, #0x78 - movs r1, #2 - bl sub_08080964 - b _0805DC36 -_0805DC18: - cmp r1, #0xd2 - bne _0805DC26 - movs r0, #0x5a - movs r1, #1 - bl sub_08080964 - b _0805DC36 -_0805DC26: - movs r0, #0x96 - lsls r0, r0, #1 - cmp r1, r0 - bne _0805DC36 - movs r0, #0x5a - movs r1, #0 - bl sub_08080964 -_0805DC36: - ldrh r1, [r4, #0x20] - adds r0, r1, #0 - cmp r0, #0x77 - bhi _0805DC42 - movs r0, #0xf - b _0805DC48 -_0805DC42: - cmp r0, #0xd1 - bhi _0805DC58 - movs r0, #0x1f -_0805DC48: - ands r0, r1 - cmp r0, #0 - bne _0805DC6C - movs r0, #0x93 - lsls r0, r0, #1 - bl sub_080A3268 - b _0805DC6C -_0805DC58: - cmp r0, #0xc7 - bhi _0805DC6C - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _0805DC6C - movs r0, #0x93 - lsls r0, r0, #1 - bl sub_080A3268 -_0805DC6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805DC70 -sub_0805DC70: @ 0x0805DC70 - push {lr} - bl sub_0805E5A8 - ldr r0, _0805DC80 @ =gUnk_0813AC48 - bl sub_08080840 - pop {pc} - .align 2, 0 -_0805DC80: .4byte gUnk_0813AC48 - - thumb_func_start sub_0805DC84 -sub_0805DC84: @ 0x0805DC84 - push {lr} - ldr r2, _0805DC98 @ =gUnk_08108D98 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805DC98: .4byte gUnk_08108D98 - - thumb_func_start sub_0805DC9C -sub_0805DC9C: @ 0x0805DC9C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805DCAE - bl sub_0805E780 -_0805DCAE: - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805DCC2 - ldrh r0, [r4, #0x3c] - bl sub_0807CCC8 - bl sub_0805E780 -_0805DCC2: - movs r0, #1 - strb r0, [r4, #0xc] - pop {r4, pc} - - thumb_func_start sub_0805DCC8 -sub_0805DCC8: @ 0x0805DCC8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl sub_0807CBE4 - cmp r0, #0 - beq _0805DD1E - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x35 - ldrb r0, [r0] - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DCEC - movs r0, #0x1e - strb r0, [r4, #0xe] -_0805DCEC: - ldr r5, _0805DD20 @ =gUnk_03000BF0 - ldr r0, [r5, #0x30] - str r0, [r4, #0x14] - movs r0, #0x69 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0805DD1E - ldrh r0, [r5, #6] - ldrh r2, [r4, #0x38] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #8] - ldrh r2, [r4, #0x3a] - adds r0, r0, r2 - strh r0, [r1, #0x32] - str r1, [r4, #0x18] - str r1, [r5, #0x30] - adds r0, r1, #0 - movs r1, #0x1e - bl sub_0805E4E0 -_0805DD1E: - pop {r4, r5, pc} - .align 2, 0 -_0805DD20: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805DD24 -sub_0805DD24: @ 0x0805DD24 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #8 - bl sub_0805E4E0 - ldr r0, _0805DD64 @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0805DD60 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DD60 - movs r0, #3 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3c] - bl sub_0807CCC8 - adds r1, r4, #0 - adds r1, #0x36 - ldrb r0, [r1] - cmp r0, #0 - bne _0805DD60 - movs r0, #1 - strb r0, [r1] -_0805DD60: - pop {r4, pc} - .align 2, 0 -_0805DD64: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805DD68 -sub_0805DD68: @ 0x0805DD68 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #8 - bl sub_0805E4E0 - adds r1, r4, #0 - adds r1, #0x36 - ldrb r0, [r1] - cmp r0, #0 - beq _0805DD94 - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DDAE - ldr r1, _0805DD90 @ =gUnk_03000BF0 - ldr r0, [r4, #0x14] - str r0, [r1, #0x30] - b _0805DDAE - .align 2, 0 -_0805DD90: .4byte gUnk_03000BF0 -_0805DD94: - ldr r0, _0805DDB0 @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0805DDAE - ldr r0, [r4, #0x18] - cmp r0, #0 - beq _0805DDAA - bl sub_0805E7BC -_0805DDAA: - bl sub_0805E780 -_0805DDAE: - pop {r4, pc} - .align 2, 0 -_0805DDB0: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805DDB4 -sub_0805DDB4: @ 0x0805DDB4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - lsls r0, r0, #2 - ldr r1, _0805DDE0 @ =gUnk_08108DA8 - adds r3, r0, r1 - ldrb r0, [r2, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _0805DDCE - adds r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xe] -_0805DDCE: - ldrb r0, [r2, #0xe] - cmp r0, #0 - bne _0805DDE4 - ldrh r0, [r3] - strb r0, [r2, #0xe] - ldrh r0, [r3, #2] - bl sub_080A3268 - b _0805DDE8 - .align 2, 0 -_0805DDE0: .4byte gUnk_08108DA8 -_0805DDE4: - subs r0, #1 - strb r0, [r2, #0xe] -_0805DDE8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805DDEC -sub_0805DDEC: @ 0x0805DDEC - push {r4, r5, lr} - adds r5, r1, #0 - bl sub_0805E8D4 - adds r4, r0, #0 - cmp r4, #0 - beq _0805DE16 - movs r0, #9 - strb r0, [r4, #8] - movs r0, #0x36 - strb r0, [r4, #9] - ldr r0, [r5, #4] - strb r0, [r4, #0xa] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805EA2C - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 -_0805DE16: - pop {r4, r5, pc} - - thumb_func_start sub_0805DE18 -sub_0805DE18: @ 0x0805DE18 - push {lr} - sub sp, #4 - ldr r3, [r1, #4] - movs r0, #0 - str r0, [sp] - movs r0, #9 - movs r1, #0x36 - movs r2, #6 - bl sub_0805EB2C - cmp r0, #0 - beq _0805DE34 - bl sub_0805E79C -_0805DE34: - add sp, #4 - pop {pc} - - thumb_func_start sub_0805DE38 -sub_0805DE38: @ 0x0805DE38 - push {lr} - ldr r2, _0805DE4C @ =gUnk_08108DBC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805DE4C: .4byte gUnk_08108DBC - - thumb_func_start sub_0805DE50 -sub_0805DE50: @ 0x0805DE50 - push {lr} - ldr r2, _0805DE64 @ =gUnk_08108DC4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805DE64: .4byte gUnk_08108DC4 - - thumb_func_start sub_0805DE68 -sub_0805DE68: @ 0x0805DE68 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x7b - bl sub_0807CBD0 - cmp r0, #0 - bne _0805DE7A - bl sub_0805E780 -_0805DE7A: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _0805DEAC @ =gUnk_030010A0 - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x39 - movs r0, #0xf - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3a - movs r1, #0x20 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - ldr r0, _0805DEB0 @ =gUnk_02002A40 - movs r1, #0x93 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r1, _0805DEB4 @ =0x00001194 - str r1, [r0] - pop {r4, pc} - .align 2, 0 -_0805DEAC: .4byte gUnk_030010A0 -_0805DEB0: .4byte gUnk_02002A40 -_0805DEB4: .4byte 0x00001194 - - thumb_func_start sub_0805DEB8 -sub_0805DEB8: @ 0x0805DEB8 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r5, _0805DF44 @ =gLinkEntity - movs r0, #0x2e - ldrsh r2, [r5, r0] - subs r2, #0x88 - ldr r4, _0805DF48 @ =gUnk_03000BF0 - ldrh r0, [r4, #6] - subs r2, r2, r0 - movs r1, #0x32 - ldrsh r0, [r5, r1] - subs r0, #0x40 - ldrh r1, [r4, #8] - subs r0, r0, r1 - adds r1, r2, #0 - muls r1, r2, r1 - adds r2, r0, #0 - muls r2, r0, r2 - adds r0, r2, #0 - adds r1, r1, r0 - movs r0, #0x90 - lsls r0, r0, #4 - cmp r1, r0 - bgt _0805DF42 - movs r0, #0 - movs r1, #2 - strb r1, [r3, #0xc] - strb r0, [r3, #0xd] - movs r0, #0x78 - strb r0, [r3, #0xe] - movs r0, #2 - bl sub_08078A90 - bl sub_08078B48 - movs r0, #0x64 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805DF1A - ldrh r0, [r4, #6] - adds r0, #0x88 - strh r0, [r2, #0x2e] - ldrh r0, [r4, #8] - adds r0, #0x48 - strh r0, [r2, #0x32] -_0805DF1A: - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #8 - bl sub_080A2CFC - adds r2, r0, #0 - cmp r2, #0 - beq _0805DF3C - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] -_0805DF3C: - movs r0, #0x32 - bl sub_080A3268 -_0805DF42: - pop {r4, r5, pc} - .align 2, 0 -_0805DF44: .4byte gLinkEntity -_0805DF48: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805DF4C -sub_0805DF4C: @ 0x0805DF4C - push {lr} - adds r1, r0, #0 - ldr r2, _0805DF70 @ =gLinkEntity - movs r0, #0 - strb r0, [r2, #0x14] - movs r3, #0x36 - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _0805DF78 - movs r1, #0x32 - ldrsh r0, [r2, r1] - ldr r1, _0805DF74 @ =gUnk_03000BF0 - ldrh r1, [r1, #8] - adds r1, #0x48 - cmp r0, r1 - bge _0805DF92 - strh r1, [r2, #0x32] - b _0805DF92 - .align 2, 0 -_0805DF70: .4byte gLinkEntity -_0805DF74: .4byte gUnk_03000BF0 -_0805DF78: - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DF92 - movs r0, #3 - strb r0, [r1, #0xc] - movs r0, #0x1e - strb r0, [r1, #0xe] - ldr r0, _0805DF94 @ =0x0000164F - bl sub_08056378 -_0805DF92: - pop {pc} - .align 2, 0 -_0805DF94: .4byte 0x0000164F - - thumb_func_start sub_0805DF98 -sub_0805DF98: @ 0x0805DF98 - push {lr} - adds r2, r0, #0 - ldr r0, _0805DFB4 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0805DFCA - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _0805DFB8 - subs r0, #1 - strb r0, [r2, #0xe] - b _0805DFCA - .align 2, 0 -_0805DFB4: .4byte gUnk_02000050 -_0805DFB8: - movs r0, #4 - strb r0, [r2, #0xc] - movs r0, #7 - movs r1, #4 - bl sub_08050054 - movs r0, #0xf6 - bl sub_080A3268 -_0805DFCA: - pop {pc} - - thumb_func_start sub_0805DFCC -sub_0805DFCC: @ 0x0805DFCC - push {lr} - ldr r0, _0805DFE4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _0805DFE0 - movs r0, #0x1c - bl sub_0807CD80 - bl sub_0805E094 -_0805DFE0: - pop {pc} - .align 2, 0 -_0805DFE4: .4byte gUnk_03000FD0 - - thumb_func_start sub_0805DFE8 -sub_0805DFE8: @ 0x0805DFE8 - push {lr} - ldr r2, _0805DFFC @ =gUnk_08108DD8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805DFFC: .4byte gUnk_08108DD8 - - thumb_func_start sub_0805E000 -sub_0805E000: @ 0x0805E000 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x51 - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0805E062 - ldr r1, _0805E064 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #0xb0 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #8] - adds r0, #0x48 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x38 - movs r5, #1 - strb r5, [r0] - adds r0, r4, #0 - bl sub_08016A04 - ldr r0, _0805E068 @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0805E040 - bl sub_0805E780 -_0805E040: - str r4, [r6, #0x18] - strb r5, [r6, #0xc] - movs r0, #3 - bl sub_08078A90 - ldr r0, _0805E06C @ =gUnk_02033A90 - ldr r1, _0805E070 @ =0x00000864 - adds r0, r0, r1 - ldr r1, _0805E074 @ =0x80010000 - str r1, [r0] - movs r0, #6 - movs r1, #4 - bl sub_08050054 - movs r0, #0xf7 - bl sub_080A3268 -_0805E062: - pop {r4, r5, r6, pc} - .align 2, 0 -_0805E064: .4byte gUnk_03000BF0 -_0805E068: .4byte gUnk_030010A0 -_0805E06C: .4byte gUnk_02033A90 -_0805E070: .4byte 0x00000864 -_0805E074: .4byte 0x80010000 - - thumb_func_start sub_0805E078 -sub_0805E078: @ 0x0805E078 - push {lr} - adds r1, r0, #0 - ldr r0, _0805E090 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _0805E08E - ldr r1, [r1, #0x18] - movs r0, #1 - strb r0, [r1, #0xd] - bl sub_0805E780 -_0805E08E: - pop {pc} - .align 2, 0 -_0805E090: .4byte gUnk_03000FD0 - - thumb_func_start sub_0805E094 -sub_0805E094: @ 0x0805E094 - push {lr} - bl sub_0805E5A8 - ldr r0, _0805E0A4 @ =gUnk_0813AC34 - movs r1, #7 - bl sub_0808091C - pop {pc} - .align 2, 0 -_0805E0A4: .4byte gUnk_0813AC34 - - thumb_func_start sub_0805E0A8 -sub_0805E0A8: @ 0x0805E0A8 - push {lr} - ldr r2, _0805E0BC @ =gUnk_08108DE0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805E0BC: .4byte gUnk_08108DE0 - - thumb_func_start sub_0805E0C0 -sub_0805E0C0: @ 0x0805E0C0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0 - movs r1, #1 - strb r1, [r5, #0xc] - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xa] - bl sub_0804B128 - adds r4, r0, #0 - cmp r4, #0 - bne _0805E0EC - bl sub_0805E780 - b _0805E0EC -_0805E0DE: - adds r0, r4, #0 - adds r4, #0x10 - bl CreateEntity - str r5, [r0, #0x50] - movs r1, #0xff - strb r1, [r0, #0xe] -_0805E0EC: - ldrb r0, [r4] - cmp r0, #0xff - bne _0805E0DE - pop {r4, r5, pc} - - thumb_func_start sub_0805E0F4 -sub_0805E0F4: @ 0x0805E0F4 - movs r1, #0 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_0805E0FC -sub_0805E0FC: @ 0x0805E0FC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0805E134 @ =gUnk_08108E28 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, _0805E138 @ =gUnk_03000BF0 - adds r1, r4, #0 - adds r1, #0x20 - ldrb r0, [r0, #5] - ldrb r1, [r1] - cmp r0, r1 - bne _0805E12A - ldr r0, _0805E13C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0805E130 -_0805E12A: - adds r0, r4, #0 - bl sub_0805E1D8 -_0805E130: - pop {r4, pc} - .align 2, 0 -_0805E134: .4byte gUnk_08108E28 -_0805E138: .4byte gUnk_03000BF0 -_0805E13C: .4byte gUnk_02000050 - - thumb_func_start sub_0805E140 -sub_0805E140: @ 0x0805E140 - push {r4, lr} - ldrb r2, [r0, #0x10] - movs r1, #0x20 - orrs r1, r2 - strb r1, [r0, #0x10] - movs r1, #1 - strb r1, [r0, #0xc] - ldr r1, _0805E180 @ =gUnk_03000BF0 - ldrb r2, [r1, #5] - adds r1, r0, #0 - adds r1, #0x20 - strb r2, [r1] - movs r1, #0x78 - strb r1, [r0, #0xe] - movs r1, #0x3c - strb r1, [r0, #0xf] - movs r1, #7 - bl sub_0805E3A0 - ldr r1, _0805E184 @ =gUnk_08108DE8 - ldr r0, _0805E188 @ =gUnk_02033A90 - ldrb r0, [r0, #1] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r4, [r0] - bl sub_08052660 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0805E1F8 - pop {r4, pc} - .align 2, 0 -_0805E180: .4byte gUnk_03000BF0 -_0805E184: .4byte gUnk_08108DE8 -_0805E188: .4byte gUnk_02033A90 - - thumb_func_start sub_0805E18C -sub_0805E18C: @ 0x0805E18C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0805E1D0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _0805E1CC - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0805E1BA - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0805E1BA - strb r0, [r4, #0xb] - ldr r0, _0805E1D4 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bl sub_0805E5B4 -_0805E1BA: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805E1CC - adds r0, r4, #0 - bl sub_0805E1D8 -_0805E1CC: - pop {r4, pc} - .align 2, 0 -_0805E1D0: .4byte gUnk_03000FD0 -_0805E1D4: .4byte gUnk_03003F80 - - thumb_func_start sub_0805E1D8 -sub_0805E1D8: @ 0x0805E1D8 - push {lr} - ldr r0, _0805E1F0 @ =gUnk_02034DF0 - movs r1, #0x80 - bl sub_0801D630 - ldr r1, _0805E1F4 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0xe] - bl sub_0805E780 - pop {pc} - .align 2, 0 -_0805E1F0: .4byte gUnk_02034DF0 -_0805E1F4: .4byte gUnk_03000F50 - - thumb_func_start sub_0805E1F8 -sub_0805E1F8: @ 0x0805E1F8 - push {r4, r5, lr} - sub sp, #0xc - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _0805E234 @ =gUnk_02034DF0 - movs r1, #0x80 - bl sub_0801D630 - ldr r0, _0805E238 @ =gUnk_08108E60 - mov r1, sp - movs r2, #9 - bl sub_0801D66C - mov r1, sp - lsrs r0, r4, #8 - strb r0, [r1, #4] - mov r0, sp - strb r4, [r0, #5] - ldr r1, _0805E23C @ =gUnk_08108E48 - cmp r5, #0 - bne _0805E224 - ldr r1, _0805E240 @ =gUnk_08108E30 -_0805E224: - mov r0, sp - bl sub_0805F46C - ldr r1, _0805E244 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0xe] - add sp, #0xc - pop {r4, r5, pc} - .align 2, 0 -_0805E234: .4byte gUnk_02034DF0 -_0805E238: .4byte gUnk_08108E60 -_0805E23C: .4byte gUnk_08108E48 -_0805E240: .4byte gUnk_08108E30 -_0805E244: .4byte gUnk_03000F50 - - thumb_func_start sub_0805E248 -sub_0805E248: @ 0x0805E248 - push {r4, r5, lr} - ldr r0, _0805E2C8 @ =gUnk_03004030 - ldr r0, [r0] - ldrh r5, [r0, #6] - ldr r0, _0805E2CC @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #0xa - beq _0805E25C - cmp r0, #0x16 - bne _0805E2E8 -_0805E25C: - movs r0, #0x9f - lsls r0, r0, #2 - adds r4, r5, #0 - subs r4, #0x41 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0805E2D0 @ =0x00000283 - adds r1, r4, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0805E2D4 @ =0x0000027D - adds r4, #1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xa1 - lsls r0, r0, #2 - adds r1, r4, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0805E2D8 @ =0x0000027E - adds r4, #1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0805E2DC @ =0x00000285 - adds r1, r4, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0805E2E0 @ =0x0000027F - subs r1, r5, #1 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xa0 - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0805E2E4 @ =0x00000282 - adds r1, r5, #1 - movs r2, #1 - bl sub_0807B314 - b _0805E350 - .align 2, 0 -_0805E2C8: .4byte gUnk_03004030 -_0805E2CC: .4byte gUnk_03000BF0 -_0805E2D0: .4byte 0x00000283 -_0805E2D4: .4byte 0x0000027D -_0805E2D8: .4byte 0x0000027E -_0805E2DC: .4byte 0x00000285 -_0805E2E0: .4byte 0x0000027F -_0805E2E4: .4byte 0x00000282 -_0805E2E8: - movs r0, #0x9b - lsls r0, r0, #2 - adds r4, r5, #0 - subs r4, #0x41 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0805E358 @ =0x00000273 - adds r1, r4, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0805E35C @ =0x0000026D - adds r4, #1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0x9d - lsls r0, r0, #2 - adds r1, r4, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0805E360 @ =0x0000026E - adds r4, #1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0805E364 @ =0x00000275 - adds r1, r4, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0805E368 @ =0x0000026F - subs r1, r5, #1 - movs r2, #1 - bl sub_0807B314 - movs r0, #0x9c - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0805E36C @ =0x00000272 - adds r1, r5, #1 - movs r2, #1 - bl sub_0807B314 -_0805E350: - ldr r1, _0805E370 @ =gUnk_02000070 - movs r0, #0 - strb r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_0805E358: .4byte 0x00000273 -_0805E35C: .4byte 0x0000026D -_0805E360: .4byte 0x0000026E -_0805E364: .4byte 0x00000275 -_0805E368: .4byte 0x0000026F -_0805E36C: .4byte 0x00000272 -_0805E370: .4byte gUnk_02000070 diff --git a/asm/code_08056418.s b/asm/code_08056418.s new file mode 100644 index 00000000..e26b7170 --- /dev/null +++ b/asm/code_08056418.s @@ -0,0 +1,16461 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_08056458 +sub_08056458: @ 0x08056458 + push {r4, r5, lr} + ldr r0, _08056484 @ =gTextBox + ldrb r0, [r0] + cmp r0, #1 + bne _08056470 + ldr r0, _08056488 @ =gUnk_02022780 + movs r1, #0xa8 + bl sub_0801D630 + movs r0, #1 + bl sub_080564C8 +_08056470: + ldr r2, _08056488 @ =gUnk_02022780 + adds r1, r2, #0 + adds r1, #0x8a + ldrb r0, [r1] + cmp r0, #0 + beq _0805648C + subs r0, #1 + strb r0, [r1] + b _080564A2 + .align 2, 0 +_08056484: .4byte gTextBox +_08056488: .4byte gUnk_02022780 +_0805648C: + ldr r5, _080564C0 @ =gUnk_08107BC8 + adds r4, r2, #0 + adds r4, #0x88 +_08056492: + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + bl _call_via_r0 + cmp r0, #0 + bne _08056492 +_080564A2: + ldr r0, _080564C4 @ =gUnk_02022780 + adds r1, r0, #0 + adds r1, #0x9d + ldrb r0, [r1] + cmp r0, #0 + beq _080564B6 + movs r0, #0 + strb r0, [r1] + bl sub_08056F70 +_080564B6: + bl sub_08056C68 + bl sub_08056D70 + pop {r4, r5, pc} + .align 2, 0 +_080564C0: .4byte gUnk_08107BC8 +_080564C4: .4byte gUnk_02022780 + + thumb_func_start sub_080564C8 +sub_080564C8: @ 0x080564C8 + ldr r1, _080564D8 @ =gUnk_02022780 + adds r2, r1, #0 + adds r2, #0x88 + movs r3, #0 + strb r0, [r2] + adds r1, #0x89 + strb r3, [r1] + bx lr + .align 2, 0 +_080564D8: .4byte gUnk_02022780 + + thumb_func_start sub_080564DC +sub_080564DC: @ 0x080564DC + ldr r0, _080564E8 @ =gUnk_02022780 + adds r0, #0x99 + movs r1, #0 + strb r1, [r0] + movs r0, #0 + bx lr + .align 2, 0 +_080564E8: .4byte gUnk_02022780 + + thumb_func_start sub_080564EC +sub_080564EC: @ 0x080564EC + push {r4, lr} + ldr r0, _08056598 @ =gUnk_02036A40 + movs r1, #8 + bl sub_0801D630 + ldr r0, _0805659C @ =gUnk_02024030 + movs r1, #0x18 + bl sub_0801D630 + ldr r4, _080565A0 @ =gUnk_02022780 + adds r0, r4, #0 + movs r1, #0xa8 + bl sub_0801D630 + ldr r0, _080565A4 @ =gTextBox + adds r1, r4, #0 + movs r2, #0x20 + bl sub_0801D66C + ldrb r0, [r4, #2] + cmp r0, #0x63 + bne _08056520 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #5] + strb r0, [r4, #2] +_08056520: + adds r1, r4, #0 + adds r1, #0x9c + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x20 + ldrh r1, [r4, #8] + bl sub_0805EEB4 + adds r3, r4, #0 + adds r3, #0x5c + movs r0, #2 + strb r0, [r3] + movs r0, #0xe + strb r0, [r3, #1] + adds r3, #2 + movs r2, #0 + ldr r0, _080565A8 @ =gUnk_02002A40 + adds r0, #0x80 + ldrb r1, [r0] + cmp r1, #0 + beq _08056560 + adds r4, r0, #0 +_0805654E: + strb r1, [r3] + adds r3, #1 + adds r2, #1 + cmp r2, #5 + bhi _08056560 + adds r0, r2, r4 + ldrb r1, [r0] + cmp r1, #0 + bne _0805654E +_08056560: + movs r0, #2 + strb r0, [r3] + movs r0, #0xf + strb r0, [r3, #1] + movs r0, #0 + strb r0, [r3, #2] + ldr r4, _080565A0 @ =gUnk_02022780 + adds r0, r4, #0 + bl sub_08056FBC + ldr r0, _080565AC @ =gUnk_08107BE0 + str r0, [r4, #0x2c] + ldr r0, _080565B0 @ =gUnk_02000D00 + str r0, [r4, #0x58] + adds r4, #0x54 + movs r0, #0xd0 + strh r0, [r4] + movs r0, #2 + bl sub_08056C54 + movs r0, #0 + bl sub_08056BDC + movs r0, #2 + bl sub_080564C8 + movs r0, #1 + pop {r4, pc} + .align 2, 0 +_08056598: .4byte gUnk_02036A40 +_0805659C: .4byte gUnk_02024030 +_080565A0: .4byte gUnk_02022780 +_080565A4: .4byte gTextBox +_080565A8: .4byte gUnk_02002A40 +_080565AC: .4byte gUnk_08107BE0 +_080565B0: .4byte gUnk_02000D00 + + thumb_func_start sub_080565B4 +sub_080565B4: @ 0x080565B4 + push {r4, lr} + ldr r4, _080565F4 @ =gUnk_02022780 + adds r1, r4, #0 + adds r1, #0x89 + ldrb r0, [r1] + cmp r0, #0 + bne _080565DA + movs r0, #1 + strb r0, [r1] + adds r1, #0x10 + strb r0, [r1] + ldrb r0, [r4, #3] + subs r1, #0x46 + ldrb r1, [r1] + bl sub_08056F88 + movs r0, #0x65 + bl sub_080A3268 +_080565DA: + movs r0, #1 + bl sub_08056CC0 + cmp r0, #0 + beq _080565F0 + adds r1, r4, #0 + adds r1, #0x99 + movs r0, #2 + strb r0, [r1] + bl sub_080564C8 +_080565F0: + movs r0, #0 + pop {r4, pc} + .align 2, 0 +_080565F4: .4byte gUnk_02022780 + + thumb_func_start sub_080565F8 +sub_080565F8: @ 0x080565F8 + push {r4, lr} + ldr r4, _0805663C @ =gUnk_02022780 + adds r1, r4, #0 + adds r1, #0x89 + ldrb r0, [r1] + cmp r0, #0 + bne _0805661C + movs r0, #1 + strb r0, [r1] + adds r1, #0x10 + movs r0, #3 + strb r0, [r1] + movs r0, #0 + bl sub_08056BDC + movs r0, #0x66 + bl sub_080A3268 +_0805661C: + movs r0, #1 + rsbs r0, r0, #0 + bl sub_08056CC0 + cmp r0, #0 + beq _08056636 + adds r1, r4, #0 + adds r1, #0x99 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + bl sub_080564C8 +_08056636: + movs r0, #0 + pop {r4, pc} + .align 2, 0 +_0805663C: .4byte gUnk_02022780 + + thumb_func_start sub_08056640 +sub_08056640: @ 0x08056640 + push {lr} + movs r0, #0 + bl sub_08056C54 + movs r0, #0 + bl sub_080564C8 + movs r0, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08056654 +sub_08056654: @ 0x08056654 + push {lr} + movs r0, #4 + bl sub_08056C54 + ldr r2, _0805667C @ =gUnk_08107BF4 + ldr r0, _08056680 @ =gUnk_02022780 + adds r1, r0, #0 + adds r1, #0x89 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + movs r0, #0 + bl sub_08056CC0 + movs r0, #0 + pop {pc} + .align 2, 0 +_0805667C: .4byte gUnk_08107BF4 +_08056680: .4byte gUnk_02022780 + + thumb_func_start sub_08056684 +sub_08056684: @ 0x08056684 + push {r4, lr} + adds r2, r0, #0 + ldr r4, _080566AC @ =gUnk_02022780 + adds r0, r4, #0 + adds r0, #0x20 + ldrb r1, [r0] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _080566B0 + adds r0, r4, #0 + adds r0, #0x99 + ldrb r0, [r0] + cmp r0, #0 + bne _080566B6 + movs r0, #5 + bl sub_080564C8 + b _080566B6 + .align 2, 0 +_080566AC: .4byte gUnk_02022780 +_080566B0: + adds r0, r2, #0 + adds r0, #0x89 + strb r3, [r0] +_080566B6: + pop {r4, pc} + + thumb_func_start sub_080566B8 +sub_080566B8: @ 0x080566B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x95 + ldrb r0, [r1] + cmp r0, #0 + beq _080566CC + subs r0, #1 + strb r0, [r1] + b _0805674E +_080566CC: + ldr r0, _08056740 @ =gUnk_03000FF0 + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + movs r2, #1 + cmp r0, #0 + beq _080566DC + movs r2, #8 +_080566DC: + adds r1, r4, #0 + adds r1, #0x92 + ldrb r0, [r1] + subs r0, r0, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + adds r7, r1, #0 + cmp r0, #0 + bgt _0805674E + movs r5, #0 + ldr r2, _08056744 @ =gUnk_08107C0C +_080566F2: + adds r5, #1 + ldrb r0, [r4, #2] + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r3, [r1] + adds r0, r0, r3 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + ble _080566F2 + movs r6, #0 +_08056708: + adds r0, r4, #0 + bl sub_08056750 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _08056732 + adds r0, r4, #0 + adds r0, #0x95 + ldrb r0, [r0] + cmp r0, #0 + bne _08056732 + adds r0, r4, #0 + adds r0, #0x8a + ldrb r0, [r0] + cmp r0, #0 + bne _08056732 + adds r6, r6, r1 + subs r5, #1 + cmp r5, #0 + bgt _08056708 +_08056732: + cmp r6, #0 + beq _0805674C + ldr r0, _08056748 @ =gUnk_02022780 + adds r0, #0x9d + movs r1, #1 + strb r1, [r0] + b _0805674E + .align 2, 0 +_08056740: .4byte gUnk_03000FF0 +_08056744: .4byte gUnk_08107C0C +_08056748: .4byte gUnk_02022780 +_0805674C: + strb r6, [r7] +_0805674E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08056750 +sub_08056750: @ 0x08056750 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrh r7, [r5, #0x24] + cmp r7, #0 + beq _0805675C + b _0805694C +_0805675C: + adds r4, r5, #0 + adds r4, #0x20 + adds r0, r4, #0 + bl sub_0805EFE8 + adds r7, r0, #0 + cmp r7, #0xe + bls _0805676E + b _08056942 +_0805676E: + lsls r0, r7, #2 + ldr r1, _08056778 @ =_0805677C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08056778: .4byte _0805677C +_0805677C: @ jump table + .4byte _080567B8 @ case 0 + .4byte _080567DE @ case 1 + .4byte _08056802 @ case 2 + .4byte _0805680A @ case 3 + .4byte _08056812 @ case 4 + .4byte _08056838 @ case 5 + .4byte _08056844 @ case 6 + .4byte _08056858 @ case 7 + .4byte _0805688C @ case 8 + .4byte _08056894 @ case 9 + .4byte _080568AC @ case 10 + .4byte _08056942 @ case 11 + .4byte _080568B2 @ case 12 + .4byte _08056914 @ case 13 + .4byte _0805693A @ case 14 +_080567B8: + ldr r0, _080567D4 @ =gUnk_02000040 + ldrb r0, [r0] + cmp r0, #1 + bne _080567D8 + adds r1, r5, #0 + adds r1, #0x89 + movs r0, #5 + strb r0, [r1] + movs r0, #0 + movs r1, #0 + bl sub_08056ABC + b _08056942 + .align 2, 0 +_080567D4: .4byte gUnk_02000040 +_080567D8: + adds r1, r5, #0 + adds r1, #0x89 + b _0805692C +_080567DE: + adds r1, r5, #0 + adds r1, #0x8a + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x98 + ldrb r0, [r0] + cmp r0, #0 + bne _080567F8 + movs r0, #1 + bl sub_08056BDC + b _08056942 +_080567F8: + adds r1, r5, #0 + adds r1, #0x89 + movs r0, #3 + strb r0, [r1] + b _08056942 +_08056802: + movs r0, #3 + bl sub_080564C8 + b _08056942 +_0805680A: + movs r0, #4 + bl sub_080564C8 + b _08056942 +_08056812: + adds r0, r4, #0 + movs r1, #0 + bl sub_0805F324 + adds r3, r0, #0 + adds r4, r5, #0 + adds r4, #0x56 + adds r0, r5, #0 + adds r0, #0x54 + ldrh r0, [r0] + ldrh r2, [r4] + subs r0, r0, r2 + subs r0, r0, r3 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r2, r2, r0 + strh r2, [r4] + b _08056942 +_08056838: + ldr r1, _08056840 @ =gTextBox + ldrh r0, [r5, #0x22] + strb r0, [r1, #1] + b _08056942 + .align 2, 0 +_08056840: .4byte gTextBox +_08056844: + ldr r0, _08056854 @ =gUnk_0200005C + ldrh r1, [r5, #0x22] + movs r2, #0x1f + ands r1, r2 + bl sub_0801D5BC + b _08056942 + .align 2, 0 +_08056854: .4byte gUnk_0200005C +_08056858: + ldrh r3, [r5, #0x22] + cmp r3, #0xe + beq _08056864 + cmp r3, #0xf + beq _08056874 + b _0805687A +_08056864: + adds r0, r5, #0 + adds r0, #0x8f + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x91 + strb r0, [r1] + movs r3, #2 + b _0805687A +_08056874: + adds r0, r5, #0 + adds r0, #0x91 + ldrb r3, [r0] +_0805687A: + adds r1, r5, #0 + adds r1, #0x90 + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_080569C4 + b _08056942 +_0805688C: + ldrh r0, [r5, #0x22] + bl sub_080A3268 + b _08056942 +_08056894: + ldr r1, _080568A8 @ =gUnk_02022780 + ldrh r0, [r5, #0x22] + strb r0, [r1, #3] + ldrh r0, [r5, #0x22] + adds r1, r5, #0 + adds r1, #0x53 + ldrb r1, [r1] + bl sub_08056F88 + b _08056942 + .align 2, 0 +_080568A8: .4byte gUnk_02022780 +_080568AC: + ldrh r0, [r5, #0x22] + strb r0, [r5, #7] + b _08056942 +_080568B2: + ldr r6, _0805690C @ =gUnk_02000040 + ldrb r0, [r6] + cmp r0, #1 + beq _080568D2 + adds r0, r6, #0 + movs r1, #4 + bl sub_0801D630 + ldr r4, _08056910 @ =gUnk_02024030 + adds r0, r4, #0 + movs r1, #0x18 + bl sub_0801D630 + movs r0, #1 + strb r0, [r4] + strb r0, [r6] +_080568D2: + ldr r2, _08056910 @ =gUnk_02024030 + movs r0, #2 + ldrsb r0, [r2, r0] + cmp r0, #3 + bgt _08056942 + lsls r0, r0, #1 + adds r1, r2, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldrh r1, [r5, #0x26] + strh r1, [r0] + movs r0, #2 + ldrsb r0, [r2, r0] + lsls r0, r0, #1 + adds r1, r2, #0 + adds r1, #8 + adds r0, r0, r1 + adds r3, r5, #0 + adds r3, #0x56 + ldrh r1, [r3] + strh r1, [r0] + ldrb r0, [r2, #2] + adds r0, #1 + strb r0, [r2, #2] + ldrh r0, [r3] + adds r0, #8 + strh r0, [r3] + b _08056942 + .align 2, 0 +_0805690C: .4byte gUnk_02000040 +_08056910: .4byte gUnk_02024030 +_08056914: + ldrh r3, [r5, #0x22] + cmp r3, #0xfe + beq _08056928 + cmp r3, #0xff + bne _08056932 + adds r1, r5, #0 + adds r1, #0x8e + movs r0, #1 + strb r0, [r1] + b _08056942 +_08056928: + adds r1, r5, #0 + adds r1, #0x8e +_0805692C: + movs r0, #2 + strb r0, [r1] + b _08056942 +_08056932: + adds r0, r5, #0 + adds r0, #0x95 + strb r3, [r0] + b _08056942 +_0805693A: + ldrh r1, [r5, #0x22] + adds r0, r5, #0 + adds r0, #0x94 + strb r1, [r0] +_08056942: + lsrs r0, r7, #8 + cmp r0, #0 + bne _0805694C + movs r0, #0 + b _080569C2 +_0805694C: + ldr r0, _08056960 @ =gUnk_02022780 + adds r0, #0x99 + ldrb r0, [r0] + cmp r0, #2 + beq _08056964 + movs r0, #3 + bl sub_080564C8 + movs r0, #0 + b _080569C2 + .align 2, 0 +_08056960: .4byte gUnk_02022780 +_08056964: + ldr r1, _08056994 @ =gTextBox + ldrb r0, [r1, #1] + cmp r0, #0 + bne _08056970 + movs r0, #0x80 + strb r0, [r1, #1] +_08056970: + movs r0, #0 + strh r0, [r5, #0x24] + lsrs r0, r7, #8 + cmp r0, #7 + bne _08056998 + adds r0, r5, #0 + adds r0, #0x8f + ldrb r0, [r0] + movs r1, #0x80 + adds r2, r5, #0 + adds r2, #0x90 + orrs r1, r0 + strb r1, [r2] + adds r0, r5, #0 + movs r1, #0 + bl sub_080569C4 + b _080569B4 + .align 2, 0 +_08056994: .4byte gTextBox +_08056998: + adds r2, r5, #0 + adds r2, #0x90 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080569B4 + ldrb r3, [r2] + movs r0, #0 + strb r0, [r2] + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_080569C4 +_080569B4: + adds r1, r5, #0 + adds r1, #0x50 + adds r0, r7, #0 + bl sub_0805F7DC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080569C2: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080569C4 +sub_080569C4: @ 0x080569C4 + movs r2, #7 + ands r2, r1 + adds r1, r0, #0 + adds r1, #0x8f + strb r2, [r1] + adds r0, #0x52 + strb r2, [r0] + bx lr + + thumb_func_start sub_080569D4 +sub_080569D4: @ 0x080569D4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _080569F0 @ =gUnk_02024030 + movs r5, #3 + ldrsb r5, [r0, r5] + ldr r0, _080569F4 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #8 + beq _08056A02 + cmp r0, #8 + bgt _080569F8 + cmp r0, #1 + beq _08056A02 + b _08056A6A + .align 2, 0 +_080569F0: .4byte gUnk_02024030 +_080569F4: .4byte gUnk_03000FF0 +_080569F8: + cmp r0, #0x10 + beq _08056A68 + cmp r0, #0x20 + beq _08056A64 + b _08056A6A +_08056A02: + ldr r0, _08056A18 @ =gUnk_02024030 + lsls r1, r5, #1 + adds r0, #0x10 + adds r1, r1, r0 + ldrh r1, [r1] + cmp r1, #0 + bne _08056A20 + ldr r1, _08056A1C @ =gUnk_08107C14 + adds r0, r6, #0 + adds r0, #0x20 + b _08056A30 + .align 2, 0 +_08056A18: .4byte gUnk_02024030 +_08056A1C: .4byte gUnk_08107C14 +_08056A20: + strh r1, [r6, #8] + adds r4, r6, #0 + adds r4, #0x20 + adds r0, r4, #0 + bl sub_0805EEB4 + ldr r1, _08056A58 @ =gUnk_08107C0F + adds r0, r4, #0 +_08056A30: + bl sub_0805EF40 + ldr r2, _08056A5C @ =gUnk_02000040 + ldr r0, _08056A60 @ =gUnk_02024030 + ldrb r1, [r0, #3] + strb r1, [r2, #1] + movs r1, #3 + strb r1, [r2] + movs r1, #0x18 + bl sub_0801D630 + movs r0, #0x6a + bl sub_080A3268 + adds r1, r6, #0 + adds r1, #0x89 + movs r0, #1 + strb r0, [r1] + b _08056A6A + .align 2, 0 +_08056A58: .4byte gUnk_08107C0F +_08056A5C: .4byte gUnk_02000040 +_08056A60: .4byte gUnk_02024030 +_08056A64: + subs r5, #1 + b _08056A6A +_08056A68: + adds r5, #1 +_08056A6A: + ldr r4, _08056A8C @ =gUnk_02024030 + movs r1, #2 + ldrsb r1, [r4, r1] + adds r0, r5, r1 + bl __modsi3 + adds r5, r0, #0 + movs r6, #3 + ldrsb r6, [r4, r6] + cmp r5, r6 + beq _08056A90 + strb r5, [r4, #3] + movs r0, #0x69 + bl sub_080A3268 + movs r1, #1 + b _08056A92 + .align 2, 0 +_08056A8C: .4byte gUnk_02024030 +_08056A90: + movs r1, #0 +_08056A92: + ldr r2, _08056AB4 @ =gUnk_02000040 + ldrb r0, [r2] + cmp r0, #1 + bne _08056AA4 + ldr r1, _08056AB8 @ =gUnk_02024030 + movs r0, #2 + strb r0, [r2] + strb r0, [r1] + movs r1, #1 +_08056AA4: + cmp r1, #0 + beq _08056AB0 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08056ABC +_08056AB0: + pop {r4, r5, r6, pc} + .align 2, 0 +_08056AB4: .4byte gUnk_02000040 +_08056AB8: .4byte gUnk_02024030 + + thumb_func_start sub_08056ABC +sub_08056ABC: @ 0x08056ABC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldr r7, _08056B14 @ =gUnk_02022780 + movs r0, #0x56 + adds r0, r0, r7 + mov sb, r0 + ldrh r0, [r0] + mov r8, r0 + ldr r4, _08056B18 @ =gUnk_02024030 + lsls r1, r1, #1 + adds r4, #8 + adds r1, r1, r4 + ldrh r0, [r1] + mov r1, sb + strh r0, [r1] + adds r6, r7, #0 + adds r6, #0x50 + movs r0, #0 + adds r1, r6, #0 + bl sub_0805F8E4 + lsls r5, r5, #1 + adds r5, r5, r4 + ldrh r0, [r5] + mov r1, sb + strh r0, [r1] + movs r0, #1 + adds r1, r6, #0 + bl sub_0805F8E4 + mov r1, r8 + mov r0, sb + strh r1, [r0] + adds r1, r7, #0 + adds r1, #0x9d + movs r0, #1 + strb r0, [r1] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08056B14: .4byte gUnk_02022780 +_08056B18: .4byte gUnk_02024030 + + thumb_func_start sub_08056B1C +sub_08056B1C: @ 0x08056B1C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08056B44 @ =gTextBox + movs r0, #0 + strb r0, [r1, #1] + adds r1, r4, #0 + adds r1, #0x94 + ldrb r0, [r1] + adds r5, r0, #0 + cmp r5, #0 + beq _08056B48 + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08056B7A + subs r1, #0xb + movs r0, #4 + b _08056B78 + .align 2, 0 +_08056B44: .4byte gTextBox +_08056B48: + ldr r0, _08056B68 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + ldr r0, _08056B6C @ =0x000001F3 + ands r0, r1 + cmp r0, #0 + beq _08056B70 + movs r0, #0x68 + bl sub_080A3268 + adds r0, r4, #0 + adds r0, #0x9a + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x89 + movs r0, #4 + b _08056B78 + .align 2, 0 +_08056B68: .4byte gUnk_03000FF0 +_08056B6C: .4byte 0x000001F3 +_08056B70: + adds r1, r4, #0 + adds r1, #0x9a + ldrb r0, [r1] + adds r0, #1 +_08056B78: + strb r0, [r1] +_08056B7A: + pop {r4, r5, pc} + + thumb_func_start sub_08056B7C +sub_08056B7C: @ 0x08056B7C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_08056BDC + adds r0, r4, #0 + adds r0, #0x8f + ldrb r0, [r0] + movs r1, #0x40 + orrs r1, r0 + adds r0, r4, #0 + bl sub_080569C4 + adds r4, #0x89 + movs r0, #1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08056BA0 +sub_08056BA0: @ 0x08056BA0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08056BD0 @ =gTextBox + movs r0, #0 + strb r0, [r1, #1] + movs r0, #7 + bl sub_08056C54 + adds r4, #0x8e + ldrb r0, [r4] + cmp r0, #1 + beq _08056BCE + cmp r0, #2 + beq _08056BC8 + ldr r0, _08056BD4 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + ldr r0, _08056BD8 @ =0x000001F3 + ands r0, r1 + cmp r0, #0 + beq _08056BCE +_08056BC8: + movs r0, #4 + bl sub_080564C8 +_08056BCE: + pop {r4, pc} + .align 2, 0 +_08056BD0: .4byte gTextBox +_08056BD4: .4byte gUnk_03000FF0 +_08056BD8: .4byte 0x000001F3 + + thumb_func_start sub_08056BDC +sub_08056BDC: @ 0x08056BDC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08056C24 @ =gUnk_02022780 + adds r0, r4, #0 + adds r0, #0x98 + strb r5, [r0] + cmp r5, #0 + bne _08056C30 + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _08056C28 @ =gUnk_02000D00 + movs r2, #0xd0 + lsls r2, r2, #4 + bl _DmaFill32 + bl sub_08056F70 + adds r1, r4, #0 + adds r1, #0x9e + ldr r0, _08056C2C @ =0x0000F082 + strh r0, [r1] + adds r1, #2 + adds r0, #1 + strh r0, [r1] + adds r1, #2 + adds r0, #0x33 + strh r0, [r1] + adds r1, #2 + adds r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x56 + strh r5, [r0] + subs r1, #0x50 + movs r0, #0xd0 + b _08056C3C + .align 2, 0 +_08056C24: .4byte gUnk_02022780 +_08056C28: .4byte gUnk_02000D00 +_08056C2C: .4byte 0x0000F082 +_08056C30: + adds r1, r4, #0 + adds r1, #0x56 + movs r0, #0xd0 + strh r0, [r1] + subs r1, #2 + adds r0, #0xd0 +_08056C3C: + strh r0, [r1] + ldr r0, _08056C50 @ =gUnk_02022780 + adds r1, r0, #0 + adds r1, #0x8f + ldrb r2, [r1] + movs r1, #0x40 + orrs r1, r2 + bl sub_080569C4 + pop {r4, r5, pc} + .align 2, 0 +_08056C50: .4byte gUnk_02022780 + + thumb_func_start sub_08056C54 +sub_08056C54: @ 0x08056C54 + ldr r2, _08056C60 @ =gTextBox + ldr r1, _08056C64 @ =gUnk_02022780 + strb r0, [r1] + strb r0, [r2] + bx lr + .align 2, 0 +_08056C60: .4byte gTextBox +_08056C64: .4byte gUnk_02022780 + + thumb_func_start sub_08056C68 +sub_08056C68: @ 0x08056C68 + push {r4, r5, r6, lr} + ldr r5, _08056CB8 @ =gUnk_02036A38 + ldrb r0, [r5, #1] + cmp r0, #0 + beq _08056CB4 + movs r0, #0 + strb r0, [r5, #1] + ldrb r0, [r5, #5] + lsls r0, r0, #5 + ldrb r1, [r5, #4] + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08056CBC @ =gUnk_02034CB0 + adds r1, r0, r1 + ldrb r0, [r5, #7] + adds r0, #2 + movs r6, #0 +_08056C8A: + movs r2, #0 + adds r4, r1, #0 + adds r4, #0x40 + subs r3, r0, #1 +_08056C92: + strh r6, [r1] + adds r1, #2 + adds r2, #1 + ldrb r0, [r5, #6] + adds r0, #2 + cmp r2, r0 + blt _08056C92 + adds r1, r4, #0 + adds r0, r3, #0 + cmp r0, #0 + bgt _08056C8A + ldrb r0, [r5, #5] + ldrb r1, [r5, #7] + bl sub_0801C4A0 + bl sub_0801C494 +_08056CB4: + pop {r4, r5, r6, pc} + .align 2, 0 +_08056CB8: .4byte gUnk_02036A38 +_08056CBC: .4byte gUnk_02034CB0 + + thumb_func_start sub_08056CC0 +sub_08056CC0: @ 0x08056CC0 + push {r4, r5, r6, r7, lr} + movs r7, #0 + ldr r2, _08056CE0 @ =gUnk_02022780 + adds r3, r2, #0 + adds r3, #0x9b + ldrb r1, [r3] + adds r1, r1, r0 + strb r1, [r3] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov ip, r2 + cmp r1, #0 + bgt _08056CE4 + strb r7, [r3] + b _08056CEC + .align 2, 0 +_08056CE0: .4byte gUnk_02022780 +_08056CE4: + cmp r1, #7 + ble _08056CEE + movs r0, #8 + strb r0, [r3] +_08056CEC: + movs r7, #1 +_08056CEE: + ldr r2, _08056D54 @ =gUnk_02036A40 + mov r4, ip + adds r1, r4, #0 + adds r1, #0x9b + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08056D58 + adds r5, r0, #0 + ldrb r0, [r4, #4] + lsls r0, r0, #1 + muls r0, r5, r0 + lsrs r3, r0, #4 + strb r3, [r2, #6] + movs r6, #1 + adds r0, r3, #0 + ands r0, r6 + ldrb r1, [r4, #4] + cmp r0, #0 + beq _08056D1A + adds r0, r3, #1 + strb r0, [r2, #6] +_08056D1A: + lsrs r1, r1, #1 + ldrb r0, [r4, #6] + adds r1, r1, r0 + ldrb r0, [r2, #6] + lsrs r0, r0, #1 + subs r1, r1, r0 + strb r1, [r2, #4] + ldrb r0, [r4, #5] + lsls r0, r0, #1 + muls r0, r5, r0 + lsrs r3, r0, #4 + strb r3, [r2, #7] + adds r0, r3, #0 + ands r0, r6 + ldrb r1, [r4, #5] + cmp r0, #0 + beq _08056D40 + adds r0, r3, #1 + strb r0, [r2, #7] +_08056D40: + lsrs r1, r1, #1 + mov r3, ip + ldrb r3, [r3, #7] + adds r1, r1, r3 + ldrb r0, [r2, #7] + lsrs r0, r0, #1 + subs r1, r1, r0 + strb r1, [r2, #5] + b _08056D66 + .align 2, 0 +_08056D54: .4byte gUnk_02036A40 +_08056D58: + movs r0, #0xff + strb r0, [r2, #5] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r2, #4] + strb r0, [r2, #7] + strb r0, [r2, #6] +_08056D66: + movs r0, #1 + strb r0, [r2, #1] + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08056D70 +sub_08056D70: @ 0x08056D70 + push {r4, lr} + ldr r0, _08056DB4 @ =gUnk_02022780 + adds r0, #0x9b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08056DB0 + ldr r4, _08056DB8 @ =gUnk_02036A40 + ldrb r0, [r4, #5] + lsls r0, r0, #5 + ldrb r1, [r4, #4] + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08056DBC @ =gUnk_02034CB0 + adds r0, r0, r1 + ldr r3, _08056DC0 @ =0x0000F07B + ldrb r1, [r4, #6] + ldrb r2, [r4, #7] + bl sub_08056DC8 + bl sub_08056EC0 + bl sub_08056F1C + ldr r2, _08056DC4 @ =gUnk_02036A38 + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r2] + str r1, [r2, #4] + bl sub_0801C494 +_08056DB0: + pop {r4, pc} + .align 2, 0 +_08056DB4: .4byte gUnk_02022780 +_08056DB8: .4byte gUnk_02036A40 +_08056DBC: .4byte gUnk_02034CB0 +_08056DC0: .4byte 0x0000F07B +_08056DC4: .4byte gUnk_02036A38 + + thumb_func_start sub_08056DC8 +sub_08056DC8: @ 0x08056DC8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov r8, r3 + adds r3, r7, #0 + lsls r0, r6, #6 + adds r0, #0x40 + adds r2, r3, r0 + mov r0, r8 + strh r0, [r3] + adds r3, #2 + movs r1, #0x80 + lsls r1, r1, #4 + mov sb, r1 + mov r0, r8 + mov r5, sb + orrs r0, r5 + strh r0, [r2] + adds r2, #2 + cmp r4, #0 + ble _08056E4C + mov r0, r8 + adds r0, #1 + strh r0, [r3] + adds r3, #2 + adds r1, r0, #0 + orrs r1, r5 + strh r1, [r2] + adds r2, #2 + subs r4, #2 + adds r1, r4, #0 + subs r4, #1 + mov ip, r0 + cmp r1, #0 + ble _08056E30 + mov r5, r8 + adds r5, #2 + adds r1, r5, #0 + mov r0, sb + orrs r1, r0 +_08056E20: + strh r5, [r3] + adds r3, #2 + strh r1, [r2] + adds r2, #2 + adds r0, r4, #0 + subs r4, #1 + cmp r0, #0 + bgt _08056E20 +_08056E30: + movs r1, #0x80 + lsls r1, r1, #3 + adds r0, r1, #0 + mov r1, ip + orrs r1, r0 + strh r1, [r3] + adds r3, #2 + movs r5, #0xc0 + lsls r5, r5, #4 + adds r0, r5, #0 + mov r1, ip + orrs r1, r0 + strh r1, [r2] + adds r2, #2 +_08056E4C: + movs r0, #0x80 + lsls r0, r0, #3 + adds r5, r0, #0 + mov r0, r8 + orrs r0, r5 + strh r0, [r3] + movs r0, #0xc0 + lsls r0, r0, #4 + adds r1, r0, #0 + mov r0, r8 + orrs r0, r1 + strh r0, [r2] + adds r7, #0x40 + adds r3, #0x40 + cmp r6, #0 + ble _08056EB6 + mov r0, r8 + adds r0, #3 + strh r0, [r7] + adds r1, r0, #0 + orrs r1, r5 + strh r1, [r3] + adds r7, #0x40 + adds r3, #0x40 + subs r6, #2 + adds r1, r6, #0 + subs r6, #1 + adds r2, r0, #0 + cmp r1, #0 + ble _08056EA0 + mov r4, r8 + adds r4, #4 + adds r1, r4, #0 + orrs r1, r5 +_08056E90: + strh r4, [r7] + strh r1, [r3] + adds r7, #0x40 + adds r3, #0x40 + adds r0, r6, #0 + subs r6, #1 + cmp r0, #0 + bgt _08056E90 +_08056EA0: + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r1, #0 + adds r1, r2, #0 + orrs r1, r0 + strh r1, [r7] + movs r5, #0xc0 + lsls r5, r5, #4 + adds r0, r5, #0 + orrs r2, r0 + strh r2, [r3] +_08056EB6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08056EC0 +sub_08056EC0: @ 0x08056EC0 + push {r4, r5, r6, r7, lr} + ldr r6, _08056F10 @ =gUnk_02036A40 + ldrb r0, [r6, #6] + cmp r0, #0 + beq _08056F0E + ldrb r0, [r6, #7] + cmp r0, #0 + beq _08056F0E + adds r4, r0, #0 + ldrb r0, [r6, #5] + lsls r0, r0, #5 + ldrb r1, [r6, #4] + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08056F14 @ =gUnk_02034CB2 + adds r5, r0, r1 + movs r0, #4 + subs r0, r0, r4 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r1, r0, #1 + ldr r7, _08056F18 @ =gUnk_0202281E +_08056EEC: + ldrb r3, [r6, #6] + lsls r0, r1, #1 + adds r0, r0, r7 + ldrh r2, [r0] + adds r5, #0x40 + adds r0, r1, #1 + subs r4, #1 + adds r1, r5, #0 +_08056EFC: + strh r2, [r1] + adds r1, #2 + adds r2, #2 + subs r3, #1 + cmp r3, #0 + bgt _08056EFC + adds r1, r0, #0 + cmp r4, #0 + bne _08056EEC +_08056F0E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08056F10: .4byte gUnk_02036A40 +_08056F14: .4byte gUnk_02034CB2 +_08056F18: .4byte gUnk_0202281E + + thumb_func_start sub_08056F1C +sub_08056F1C: @ 0x08056F1C + push {lr} + ldr r0, _08056F58 @ =gUnk_02022780 + adds r0, #0x98 + ldr r0, [r0] + ldr r1, _08056F5C @ =0x0010FF00 + ands r0, r1 + ldr r1, _08056F60 @ =0x00100200 + cmp r0, r1 + bne _08056F54 + ldr r2, _08056F64 @ =gUnk_02036A40 + ldrb r1, [r2, #5] + lsls r1, r1, #5 + ldrb r0, [r2, #4] + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _08056F68 @ =gUnk_02034CB0 + adds r1, r1, r0 + ldrb r0, [r2, #7] + adds r0, #1 + lsls r0, r0, #5 + subs r0, #2 + ldrb r2, [r2, #6] + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r2, _08056F6C @ =0x0000F080 + adds r0, r2, #0 + strh r0, [r1] +_08056F54: + pop {pc} + .align 2, 0 +_08056F58: .4byte gUnk_02022780 +_08056F5C: .4byte 0x0010FF00 +_08056F60: .4byte 0x00100200 +_08056F64: .4byte gUnk_02036A40 +_08056F68: .4byte gUnk_02034CB0 +_08056F6C: .4byte 0x0000F080 + + thumb_func_start sub_08056F70 +sub_08056F70: @ 0x08056F70 + push {lr} + ldr r0, _08056F80 @ =gUnk_02000D00 + ldr r1, _08056F84 @ =0x0600D040 + movs r2, #0xd0 + lsls r2, r2, #4 + bl sub_08000E96 + pop {pc} + .align 2, 0 +_08056F80: .4byte gUnk_02000D00 +_08056F84: .4byte 0x0600D040 + + thumb_func_start sub_08056F88 +sub_08056F88: @ 0x08056F88 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + cmp r3, #0xf + bls _08056F94 + movs r3, #0 +_08056F94: + lsls r2, r3, #4 + orrs r2, r4 + ldr r0, _08056FB4 @ =gUnk_02022780 + adds r1, r0, #0 + adds r1, #0x9c + ldrb r0, [r1] + cmp r0, r2 + beq _08056FB0 + strb r2, [r1] + ldr r2, _08056FB8 @ =0x0600CF60 + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_0805F918 +_08056FB0: + pop {r4, pc} + .align 2, 0 +_08056FB4: .4byte gUnk_02022780 +_08056FB8: .4byte 0x0600CF60 + + thumb_func_start sub_08056FBC +sub_08056FBC: @ 0x08056FBC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x68 + bl sub_08056FEC + ldr r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x70 + bl sub_08056FEC + ldr r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x78 + bl sub_08056FEC + ldr r0, [r4, #0x1c] + adds r1, r4, #0 + adds r1, #0x80 + bl sub_08056FEC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08056FEC +sub_08056FEC: @ 0x08056FEC + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r2, r0, #0 + adds r5, r1, #0 + bl sub_0801D51C + adds r2, r0, #0 + ldr r0, _08057040 @ =0x0FFFFFFF + ands r2, r0 + movs r4, #0 + movs r3, #0xf +_08057002: + mov r0, sp + adds r1, r0, r4 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + adds r4, #1 + lsrs r2, r2, #4 + cmp r2, #0 + bne _08057002 + movs r3, #0 + subs r2, r4, #1 + cmp r2, #0 + blt _08057032 + movs r6, #0x30 +_0805701E: + adds r1, r5, r3 + mov r7, sp + adds r0, r7, r2 + ldrb r0, [r0] + orrs r0, r6 + strb r0, [r1] + adds r3, #1 + subs r2, #1 + cmp r2, #0 + bge _0805701E +_08057032: + adds r1, r5, r3 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + add sp, #8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057040: .4byte 0x0FFFFFFF + + thumb_func_start sub_08057044 +sub_08057044: @ 0x08057044 + push {r4, r5, lr} + sub sp, #8 + adds r5, r1, #0 + adds r4, r2, #0 + mov r1, sp + bl sub_08056FEC + ldr r2, [sp] + movs r1, #3 + subs r1, r1, r0 + lsls r1, r1, #3 + lsls r2, r1 + orrs r2, r4 + str r2, [r5] + add sp, #8 + pop {r4, r5, pc} + + thumb_func_start sub_08057064 +sub_08057064: @ 0x08057064 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _080570AC @ =gUnk_08107C5C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r1, _080570B0 @ =gUnk_08107C48 + adds r5, r4, #0 + adds r5, #0x21 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r1, _080570B4 @ =gUnk_08107C40 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0 + beq _080570AA + adds r2, r4, #0 + adds r2, #0x20 + ldrb r0, [r2] + cmp r0, r1 + beq _080570AA + strb r1, [r2] + adds r0, r1, #0 + bl sub_0801D7EC +_080570AA: + pop {r4, r5, pc} + .align 2, 0 +_080570AC: .4byte gUnk_08107C5C +_080570B0: .4byte gUnk_08107C48 +_080570B4: .4byte gUnk_08107C40 + + thumb_func_start sub_080570B8 +sub_080570B8: @ 0x080570B8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x20 + ldrb r0, [r0] + bl sub_0801D7EC + movs r0, #0 + str r0, [r4, #0x34] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r0, [r1] + cmp r0, #3 + bne _080570E0 + ldr r1, _080570DC @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0x32] + b _080570F0 + .align 2, 0 +_080570DC: .4byte gLCDControls +_080570E0: + ldr r0, _080570F4 @ =gUnk_08107C48 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080570F0: + pop {r4, pc} + .align 2, 0 +_080570F4: .4byte gUnk_08107C48 + + thumb_func_start sub_080570F8 +sub_080570F8: @ 0x080570F8 + push {lr} + ldr r1, _08057110 @ =gLCDControls + ldrh r2, [r1] + ldr r0, _08057114 @ =0x0000F7FF + ands r0, r2 + movs r2, #0 + strh r0, [r1] + adds r1, #0x66 + strh r2, [r1] + bl sub_08056250 + pop {pc} + .align 2, 0 +_08057110: .4byte gLCDControls +_08057114: .4byte 0x0000F7FF + + thumb_func_start sub_08057118 +sub_08057118: @ 0x08057118 + push {r4, lr} + adds r3, r0, #0 + movs r1, #0 + strb r1, [r3, #0xe] + adds r0, #0x20 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + movs r0, #1 + strb r0, [r3, #0xc] + ldr r1, _08057160 @ =gLCDControls + ldr r0, _08057164 @ =0x00001E04 + strh r0, [r1, #0x2c] + ldrh r0, [r1] + movs r4, #0x80 + lsls r4, r4, #4 + adds r2, r4, #0 + orrs r0, r2 + strh r0, [r1] + adds r2, r1, #0 + adds r2, #0x66 + ldr r0, _08057168 @ =0x00003648 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + ldr r1, _0805716C @ =sub_080570B8 + ldr r2, _08057170 @ =sub_080570F8 + adds r0, r3, #0 + bl sub_08052D74 + pop {r4, pc} + .align 2, 0 +_08057160: .4byte gLCDControls +_08057164: .4byte 0x00001E04 +_08057168: .4byte 0x00003648 +_0805716C: .4byte sub_080570B8 +_08057170: .4byte sub_080570F8 + + thumb_func_start sub_08057174 +sub_08057174: @ 0x08057174 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_0804B128 + adds r3, r0, #0 + ldrb r0, [r3] + cmp r0, #0xff + bne _08057188 + b _0805728A +_08057188: + ldr r1, _080571E8 @ =gLinkEntity + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + bge _08057194 + adds r0, #0xf +_08057194: + asrs r6, r0, #4 + movs r7, #0x32 + ldrsh r0, [r1, r7] + cmp r0, #0 + bge _080571A0 + adds r0, #0xf +_080571A0: + asrs r5, r0, #4 + movs r0, #0x21 + adds r0, r0, r4 + mov ip, r0 +_080571A8: + ldrb r0, [r3] + mov r1, ip + ldrb r1, [r1] + cmp r0, r1 + beq _08057282 + ldr r1, _080571EC @ =gRoomControls + ldrh r0, [r1, #6] + lsrs r0, r0, #4 + ldrb r7, [r3, #1] + adds r2, r0, r7 + ldrh r0, [r1, #8] + lsrs r0, r0, #4 + ldrb r1, [r3, #2] + adds r0, r0, r1 + subs r0, r5, r0 + ldrb r7, [r3, #4] + cmp r0, r7 + bhs _08057282 + subs r0, r6, r2 + ldrb r1, [r3, #3] + cmp r0, r1 + bhs _08057282 + ldrb r0, [r3] + subs r0, #1 + cmp r0, #5 + bhi _08057268 + lsls r0, r0, #2 + ldr r1, _080571F0 @ =_080571F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080571E8: .4byte gLinkEntity +_080571EC: .4byte gRoomControls +_080571F0: .4byte _080571F4 +_080571F4: @ jump table + .4byte _0805720C @ case 0 + .4byte _08057220 @ case 1 + .4byte _08057258 @ case 2 + .4byte _08057246 @ case 3 + .4byte _08057216 @ case 4 + .4byte _08057236 @ case 5 +_0805720C: + mov r2, ip + ldrb r0, [r2] + cmp r0, #2 + bne _08057268 + b _08057260 +_08057216: + mov r7, ip + ldrb r0, [r7] + cmp r0, #6 + bne _08057268 + b _08057260 +_08057220: + mov r0, ip + ldrb r1, [r0] + cmp r1, #0 + bne _08057268 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x20 + strb r1, [r0] + b _08057268 +_08057236: + mov r2, ip + ldrb r1, [r2] + cmp r1, #0 + bne _08057268 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _08057268 +_08057246: + mov r7, ip + ldrb r1, [r7] + cmp r1, #0 + bne _08057268 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + str r1, [r4, #0x34] + b _08057268 +_08057258: + mov r1, ip + ldrb r0, [r1] + cmp r0, #4 + bne _08057268 +_08057260: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #9 + strb r0, [r4, #0xe] +_08057268: + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08057282 + movs r0, #8 + strb r0, [r4, #0xf] + ldrb r0, [r3] + mov r2, ip + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #1 + strb r0, [r1] + b _0805728A +_08057282: + adds r3, #5 + ldrb r0, [r3] + cmp r0, #0xff + bne _080571A8 +_0805728A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805728C +sub_0805728C: @ 0x0805728C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080572CA + movs r0, #8 + strb r0, [r4, #0xf] + ldr r2, _080572CC @ =gLCDControls + ldr r3, _080572D0 @ =gUnk_08107C1C + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r3 + ldrh r0, [r0] + adds r2, #0x68 + strh r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xa + bne _080572CA + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #0 + strb r0, [r1] +_080572CA: + pop {r4, pc} + .align 2, 0 +_080572CC: .4byte gLCDControls +_080572D0: .4byte gUnk_08107C1C + + thumb_func_start sub_080572D4 +sub_080572D4: @ 0x080572D4 + push {r4, r5, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xf] + subs r0, #1 + strb r0, [r3, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08057320 + movs r0, #8 + strb r0, [r3, #0xf] + ldr r5, _08057324 @ =gLCDControls + ldr r2, _08057328 @ =gUnk_08107C1C + ldrb r0, [r3, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r3, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r5, #0 + adds r0, #0x68 + movs r4, #0 + strh r2, [r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xff + bne _08057320 + movs r0, #1 + strb r0, [r3, #0xc] + adds r0, r3, #0 + adds r0, #0x22 + strb r4, [r0] + subs r0, #1 + strb r4, [r0] + adds r0, r5, #0 + adds r0, #0x6c + strb r4, [r0] +_08057320: + pop {r4, r5, pc} + .align 2, 0 +_08057324: .4byte gLCDControls +_08057328: .4byte gUnk_08107C1C + + thumb_func_start sub_0805732C +sub_0805732C: @ 0x0805732C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldr r2, _08057390 @ =gUnk_03003DE4 + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _08057394 @ =gUnk_02017AA0 + adds r4, r0, r1 + movs r3, #0 + mov ip, r2 + mov r8, r1 + ldr r0, _08057398 @ =gUnk_080C9160 + mov sb, r0 + movs r2, #0xff + ldr r1, _0805739C @ =gLCDControls +_08057354: + adds r0, r5, r3 + ands r0, r2 + lsls r0, r0, #1 + add r0, sb + movs r7, #0 + ldrsh r0, [r0, r7] + muls r0, r6, r0 + lsrs r0, r0, #8 + ldrh r7, [r1, #0x2e] + adds r0, r0, r7 + strh r0, [r4] + adds r4, #2 + adds r3, #1 + cmp r3, #0x9f + bls _08057354 + mov r0, ip + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + add r0, r8 + ldr r1, _080573A0 @ =0x0400001C + ldr r2, _080573A4 @ =0xA2600001 + bl sub_0805622C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057390: .4byte gUnk_03003DE4 +_08057394: .4byte gUnk_02017AA0 +_08057398: .4byte gUnk_080C9160 +_0805739C: .4byte gLCDControls +_080573A0: .4byte 0x0400001C +_080573A4: .4byte 0xA2600001 + + thumb_func_start nullsub_494 +nullsub_494: @ 0x080573A8 + bx lr + .align 2, 0 + + thumb_func_start sub_080573AC +sub_080573AC: @ 0x080573AC + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r2, _08057434 @ =gRoomControls + ldr r0, [r2, #0x28] + ldr r1, _08057438 @ =0xFFFFE000 + adds r0, r0, r1 + str r0, [r2, #0x28] + ldr r0, [r2, #0x2c] + ldr r1, _0805743C @ =0xFFFFF000 + adds r0, r0, r1 + str r0, [r2, #0x2c] + ldr r5, _08057440 @ =gLCDControls + movs r1, #0xa + ldrsh r0, [r2, r1] + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #1 + ldrh r1, [r2, #0x2a] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + movs r1, #0xc + ldrsh r0, [r2, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r0, r0, #1 + ldrh r2, [r2, #0x2e] + adds r0, r0, r2 + strh r0, [r5, #0x30] + ldr r2, _08057444 @ =gUnk_080C9160 + ldr r4, _08057448 @ =gUnk_030010A0 + ldr r1, [r4] + ldrb r0, [r4] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r0, r0, #5 + adds r0, #0x10 + bl sub_0805732C + adds r0, r6, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0 + bne _08057430 + ldr r0, [r4] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08057430 + adds r2, r6, #0 + adds r2, #0x24 + ldrb r0, [r2] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r2] + ldr r1, _0805744C @ =gUnk_08107C30 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] +_08057430: + pop {r4, r5, r6, pc} + .align 2, 0 +_08057434: .4byte gRoomControls +_08057438: .4byte 0xFFFFE000 +_0805743C: .4byte 0xFFFFF000 +_08057440: .4byte gLCDControls +_08057444: .4byte gUnk_080C9160 +_08057448: .4byte gUnk_030010A0 +_0805744C: .4byte gUnk_08107C30 + + thumb_func_start sub_08057450 +sub_08057450: @ 0x08057450 + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldr r4, _08057504 @ =gLCDControls + movs r0, #0x10 + strh r0, [r4, #0x2e] + ldr r0, _08057508 @ =gRoomControls + movs r2, #0xc + ldrsh r1, [r0, r2] + ldrh r0, [r0, #8] + subs r1, r1, r0 + asrs r1, r1, #2 + movs r2, #0x3f + adds r0, r1, #0 + ands r0, r2 + strh r0, [r4, #0x30] + cmp r1, #0 + bge _08057474 + adds r1, #0x3f +_08057474: + asrs r0, r1, #6 + lsls r0, r0, #9 + ldr r1, _0805750C @ =gUnk_02001A40 + adds r1, r0, r1 + str r1, [r4, #0x34] + ldr r0, [r3, #0x34] + cmp r0, r1 + beq _0805748A + str r1, [r3, #0x34] + movs r0, #1 + strh r0, [r4, #0x32] +_0805748A: + adds r0, r3, #0 + adds r0, #0x22 + ldrb r0, [r0] + ldr r5, _08057510 @ =gUnk_030010A0 + cmp r0, #0 + bne _080574BE + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _080574BE + adds r2, r3, #0 + adds r2, #0x24 + ldrb r0, [r2] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r2] + ldr r1, _08057514 @ =gUnk_08107C30 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] +_080574BE: + ldr r0, [r5] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08057502 + adds r0, r3, #0 + adds r0, #0x23 + ldrb r1, [r0] + lsls r1, r1, #5 + ldr r2, _08057518 @ =gUnk_085B4180 + adds r1, r1, r2 + movs r5, #0 + adds r6, r0, #0 + adds r4, r1, #0 + adds r4, #0xe +_080574DC: + adds r0, r5, #0 + adds r0, #0x87 + ldrh r1, [r4] + bl sub_0801D79C + adds r0, r5, #0 + adds r0, #0x8c + ldrh r1, [r4, #0xa] + bl sub_0801D79C + adds r4, #2 + adds r5, #1 + cmp r5, #3 + bls _080574DC + ldrb r0, [r6] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r6] +_08057502: + pop {r4, r5, r6, pc} + .align 2, 0 +_08057504: .4byte gLCDControls +_08057508: .4byte gRoomControls +_0805750C: .4byte gUnk_02001A40 +_08057510: .4byte gUnk_030010A0 +_08057514: .4byte gUnk_08107C30 +_08057518: .4byte gUnk_085B4180 + + thumb_func_start sub_0805751C +sub_0805751C: @ 0x0805751C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _0805753A + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08057544 @ =gLCDControls + strh r1, [r0, #0x32] + strh r1, [r0, #0x1a] + ldr r1, _08057548 @ =sub_080576A0 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_0805753A: + adds r0, r4, #0 + bl sub_0805754C + pop {r4, pc} + .align 2, 0 +_08057544: .4byte gLCDControls +_08057548: .4byte sub_080576A0 + + thumb_func_start sub_0805754C +sub_0805754C: @ 0x0805754C + push {r4, r5, r6, lr} + adds r2, r0, #0 + ldr r3, _080575BC @ =gRoomControls + movs r0, #0xc + ldrsh r1, [r3, r0] + ldrh r0, [r3, #8] + subs r1, r1, r0 + asrs r0, r1, #3 + adds r1, r1, r0 + ldr r4, _080575C0 @ =gLCDControls + movs r6, #0x3f + adds r0, r1, #0 + ands r0, r6 + strh r0, [r4, #0x30] + adds r0, r1, #0 + cmp r1, #0 + bge _08057570 + adds r0, #0x3f +_08057570: + asrs r0, r0, #6 + lsls r0, r0, #9 + ldr r5, _080575C4 @ =gUnk_02002F00 + adds r1, r0, r5 + str r1, [r4, #0x34] + ldr r0, [r2, #0x38] + cmp r0, r1 + beq _08057586 + str r1, [r2, #0x38] + movs r0, #1 + strh r0, [r4, #0x32] +_08057586: + movs r0, #0xc + ldrsh r1, [r3, r0] + ldrh r0, [r3, #8] + subs r1, r1, r0 + asrs r0, r1, #2 + adds r1, r1, r0 + adds r0, r1, #0 + ands r0, r6 + strh r0, [r4, #0x18] + adds r0, r1, #0 + cmp r0, #0 + bge _080575A0 + adds r0, #0x3f +_080575A0: + asrs r0, r0, #6 + lsls r0, r0, #9 + movs r3, #0x80 + lsls r3, r3, #6 + adds r1, r5, r3 + adds r1, r0, r1 + str r1, [r4, #0x1c] + ldr r0, [r2, #0x3c] + cmp r0, r1 + beq _080575BA + str r1, [r2, #0x3c] + movs r0, #1 + strh r0, [r4, #0x1a] +_080575BA: + pop {r4, r5, r6, pc} + .align 2, 0 +_080575BC: .4byte gRoomControls +_080575C0: .4byte gLCDControls +_080575C4: .4byte gUnk_02002F00 + + thumb_func_start sub_080575C8 +sub_080575C8: @ 0x080575C8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _08057664 @ =gUnk_0200B650 + movs r5, #0 + str r5, [r0] + movs r0, #0x80 + lsls r0, r0, #0x13 + strh r5, [r0] + adds r0, r4, #0 + bl sub_0801D7EC + ldr r0, _08057668 @ =gUnk_02034350 + strb r4, [r0, #0x10] + ldr r3, _0805766C @ =gRoomControls + movs r0, #0xc + ldrsh r1, [r3, r0] + ldrh r0, [r3, #8] + subs r1, r1, r0 + asrs r0, r1, #3 + adds r1, r1, r0 + ldr r2, _08057670 @ =gLCDControls + movs r7, #0x3f + adds r0, r1, #0 + ands r0, r7 + strh r0, [r2, #0x30] + strh r5, [r2, #0x2e] + adds r0, r1, #0 + cmp r1, #0 + bge _08057604 + adds r0, #0x3f +_08057604: + asrs r0, r0, #6 + lsls r0, r0, #9 + ldr r4, _08057674 @ =gUnk_02002F00 + adds r0, r0, r4 + str r0, [r2, #0x34] + ldr r0, _08057678 @ =0x00001D49 + strh r0, [r2, #0x2c] + movs r6, #1 + strh r6, [r2, #0x32] + movs r0, #0xc + ldrsh r1, [r3, r0] + ldrh r0, [r3, #8] + subs r1, r1, r0 + asrs r0, r1, #2 + adds r1, r1, r0 + adds r0, r1, #0 + ands r0, r7 + strh r0, [r2, #0x18] + strh r5, [r2, #0x16] + adds r0, r1, #0 + cmp r0, #0 + bge _08057632 + adds r0, #0x3f +_08057632: + asrs r0, r0, #6 + lsls r0, r0, #9 + movs r3, #0x80 + lsls r3, r3, #6 + adds r1, r4, r3 + adds r0, r0, r1 + str r0, [r2, #0x1c] + ldr r0, _0805767C @ =0x00001E49 + strh r0, [r2, #0x14] + strh r6, [r2, #0x1a] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _08057680 @ =0x00003C48 + strh r0, [r1] + adds r1, #2 + ldr r0, _08057684 @ =0x00000609 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0xa0 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057664: .4byte gUnk_0200B650 +_08057668: .4byte gUnk_02034350 +_0805766C: .4byte gRoomControls +_08057670: .4byte gLCDControls +_08057674: .4byte gUnk_02002F00 +_08057678: .4byte 0x00001D49 +_0805767C: .4byte 0x00001E49 +_08057680: .4byte 0x00003C48 +_08057684: .4byte 0x00000609 + + thumb_func_start sub_08057688 +sub_08057688: @ 0x08057688 + ldr r0, _08057694 @ =gLCDControls + ldr r1, _08057698 @ =0x00001D48 + strh r1, [r0, #0x2c] + ldr r1, _0805769C @ =0x00001E48 + strh r1, [r0, #0x14] + bx lr + .align 2, 0 +_08057694: .4byte gLCDControls +_08057698: .4byte 0x00001D48 +_0805769C: .4byte 0x00001E48 + + thumb_func_start sub_080576A0 +sub_080576A0: @ 0x080576A0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080576BC @ =gUnk_02034350 + ldrb r0, [r0, #0x10] + bl sub_0801D7EC + movs r0, #0 + str r0, [r4, #0x38] + str r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_0805754C + pop {r4, pc} + .align 2, 0 +_080576BC: .4byte gUnk_02034350 + + thumb_func_start sub_080576C0 +sub_080576C0: @ 0x080576C0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080576EC + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x38] + ldr r2, _080576E8 @ =gRoomControls + ldrh r1, [r2, #6] + adds r0, r0, r1 + subs r0, #0x20 + str r0, [r4, #0x20] + ldrh r0, [r4, #0x3a] + ldrh r1, [r2, #8] + adds r0, r0, r1 + subs r0, #0x20 + str r0, [r4, #0x24] + b _080577AA + .align 2, 0 +_080576E8: .4byte gRoomControls +_080576EC: + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x24] + movs r2, #0x40 + movs r3, #0x40 + bl sub_0806FBFC + cmp r0, #0 + beq _080577A8 + ldr r5, _08057738 @ =gUnk_02033A90 + ldr r0, [r4, #0x20] + adds r0, #0x20 + strh r0, [r5, #0x12] + ldr r1, [r4, #0x24] + ldr r2, _0805773C @ =gUnk_08107C6C + ldrb r0, [r4, #0xa] + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #0x20 + adds r1, r1, r0 + strh r1, [r5, #0x14] + adds r0, r4, #0 + adds r0, #0x34 + ldrb r0, [r0] + strb r0, [r5, #0x16] + ldrb r0, [r4, #0xa] + strb r0, [r5, #0x17] + movs r0, #0x14 + bl GetProgressFlag + cmp r0, #0 + bne _08057740 + movs r0, #1 + strb r0, [r5, #0x18] + movs r0, #5 + strb r0, [r5, #0x17] + b _080577AA + .align 2, 0 +_08057738: .4byte gUnk_02033A90 +_0805773C: .4byte gUnk_08107C6C +_08057740: + ldr r2, _08057758 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0805775C + ldrb r0, [r2, #2] + cmp r0, #0 + bne _0805775C + movs r0, #2 + strb r0, [r5, #0x18] + b _0805776A + .align 2, 0 +_08057758: .4byte gUnk_03003F80 +_0805775C: + bl sub_08057810 + cmp r0, #0 + beq _0805776A + ldr r1, _080577A0 @ =gUnk_02033A90 + movs r0, #3 + strb r0, [r1, #0x18] +_0805776A: + ldrh r0, [r4, #0x38] + ldrh r1, [r4, #0x3a] + ldrb r2, [r4, #0xe] + bl sub_080002C0 + cmp r0, #0x3d + bne _080577AA + ldrh r0, [r4, #0x38] + ldr r2, _080577A4 @ =gRoomControls + ldrh r1, [r2, #6] + adds r0, r0, r1 + ldrh r1, [r4, #0x3a] + ldrh r2, [r2, #8] + adds r1, r1, r2 + ldrb r2, [r4, #0xe] + bl sub_080577AC + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080577AA + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0xa9 + lsls r0, r0, #1 + bl sub_080A3268 + b _080577AA + .align 2, 0 +_080577A0: .4byte gUnk_02033A90 +_080577A4: .4byte gRoomControls +_080577A8: + strb r0, [r4, #0xf] +_080577AA: + pop {r4, r5, pc} + + thumb_func_start sub_080577AC +sub_080577AC: @ 0x080577AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r7, r1, #0 + mov r8, r2 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #7 + ands r0, r5 + cmp r0, #0 + bne _08057808 + movs r0, #0xf + movs r1, #0x26 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08057808 + lsrs r3, r5, #8 + movs r0, #0xf + ands r3, r0 + lsrs r2, r5, #0x10 + ands r2, r0 + cmp r2, #4 + ble _080577E6 + rsbs r2, r2, #0 +_080577E6: + lsrs r0, r5, #0x18 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080577F2 + rsbs r3, r3, #0 +_080577F2: + adds r0, r6, r3 + strh r0, [r4, #0x2e] + adds r0, r7, r2 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x38 + mov r1, r8 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08016A04 +_08057808: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08057810 +sub_08057810: @ 0x08057810 + push {lr} + ldr r2, _08057848 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08057850 + adds r0, r2, #0 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #0 + bne _08057850 + ldr r0, _0805784C @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #6 + beq _08057850 + ldrb r0, [r2, #5] + cmp r0, #0 + bne _08057850 + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #1 + bgt _08057850 + cmp r0, #0 + blt _08057850 + movs r0, #1 + b _08057852 + .align 2, 0 +_08057848: .4byte gUnk_03003F80 +_0805784C: .4byte gUnk_02033A90 +_08057850: + movs r0, #0 +_08057852: + pop {pc} + + thumb_func_start sub_08057854 +sub_08057854: @ 0x08057854 + push {lr} + ldr r2, _08057868 @ =gUnk_08107C70 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08057868: .4byte gUnk_08107C70 + + thumb_func_start sub_0805786C +sub_0805786C: @ 0x0805786C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + bl sub_080805F8 + ldr r6, _080578D4 @ =gUnk_03004030 + ldrb r0, [r6, #8] + cmp r0, #0 + beq _08057914 + ldr r0, [r6] + cmp r0, #0 + bne _080578C0 + movs r0, #0xff + strb r0, [r6, #0xa] + ldr r0, _080578D8 @ =gRoomControls + ldrb r5, [r0, #5] + ldr r7, _080578DC @ =gUnk_08107DC0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r4, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08057AA8 + adds r4, r0, #0 + cmp r4, #0 + beq _080578C0 + ldrb r5, [r4, #5] + ldrb r0, [r4, #4] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r4, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08057AA8 + adds r4, r0, #0 + cmp r4, #0 + beq _080578C0 + str r4, [r6] +_080578C0: + ldr r0, _080578D8 @ =gRoomControls + ldrb r5, [r0, #5] + ldr r1, _080578DC @ =gUnk_08107DC0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r6, #0x81 + lsls r6, r6, #7 + b _08057906 + .align 2, 0 +_080578D4: .4byte gUnk_03004030 +_080578D8: .4byte gRoomControls +_080578DC: .4byte gUnk_08107DC0 +_080578E0: + ldrh r1, [r4] + adds r1, #0x3f + adds r0, r6, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r4] + adds r1, #0x40 + adds r0, r6, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r4] + adds r1, #0x41 + adds r0, r6, #0 + movs r2, #1 + bl sub_0800015E + adds r4, #8 +_08057906: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08057AA8 + adds r4, r0, #0 + cmp r4, #0 + bne _080578E0 +_08057914: + movs r0, #1 + mov r1, r8 + strb r0, [r1, #0xc] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08057920 +sub_08057920: @ 0x08057920 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08057934 @ =gRoomControls + ldrb r5, [r0, #5] + ldr r1, _08057938 @ =gUnk_08107DC0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + b _0805793E + .align 2, 0 +_08057934: .4byte gRoomControls +_08057938: .4byte gUnk_08107DC0 +_0805793C: + adds r4, #8 +_0805793E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08057AA8 + adds r4, r0, #0 + cmp r4, #0 + beq _08057958 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0805795C + cmp r0, #0 + beq _0805793C +_08057958: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805795C +sub_0805795C: @ 0x0805795C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + ldr r0, _080579BC @ =gUnk_03004030 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _080579C8 + ldr r1, _080579C0 @ =gLinkEntity + ldr r3, _080579C4 @ =gRoomControls + ldrh r2, [r1, #0x2e] + ldrh r0, [r3, #6] + subs r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldrh r0, [r1, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldrh r3, [r6] + movs r1, #0x3f + ands r1, r3 + lsls r1, r1, #4 + adds r1, #8 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r3 + lsls r0, r0, #0xe + movs r3, #0xc0 + lsls r3, r3, #0xd + adds r0, r0, r3 + lsrs r3, r0, #0x10 + subs r2, r2, r1 + adds r0, r2, #0 + adds r0, #0x18 + cmp r0, #0x30 + bhi _08057A14 + subs r0, r4, r3 + adds r0, #8 + cmp r0, #0x10 + bhi _08057A14 + cmp r4, r3 + bhs _08057A00 + adds r0, r2, #0 + adds r0, #0xc + cmp r0, #0x18 + bls _08057A14 + b _08057A00 + .align 2, 0 +_080579BC: .4byte gUnk_03004030 +_080579C0: .4byte gLinkEntity +_080579C4: .4byte gRoomControls +_080579C8: + ldr r3, _08057A0C @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r2, _08057A10 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r1, #0x3f + ands r4, r1 + movs r0, #0x32 + ldrsh r5, [r3, r0] + ldrh r2, [r2, #8] + subs r0, r5, r2 + asrs r0, r0, #4 + ands r0, r1 + lsls r0, r0, #6 + orrs r4, r0 + ldrh r1, [r6] + cmp r4, r1 + bne _08057A14 + lsrs r0, r4, #6 + lsls r0, r0, #4 + adds r0, r2, r0 + adds r0, #6 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r5, r3 + bge _08057A14 +_08057A00: + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_08057A18 + movs r0, #1 + b _08057A16 + .align 2, 0 +_08057A0C: .4byte gLinkEntity +_08057A10: .4byte gRoomControls +_08057A14: + movs r0, #0 +_08057A16: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08057A18 +sub_08057A18: @ 0x08057A18 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r5, r1, #0 + bl sub_0805E5A8 + ldr r6, _08057A94 @ =gUnk_03004030 + ldrb r0, [r6, #9] + strb r0, [r6, #0xa] + ldr r3, _08057A98 @ =gRoomControls + ldrb r0, [r3, #4] + strb r0, [r6, #9] + ldr r1, _08057A9C @ =gUnk_030010A0 + ldrb r0, [r5, #4] + strb r0, [r1, #0xc] + ldrb r0, [r5, #5] + strb r0, [r1, #0xd] + ldrb r0, [r5, #4] + strb r0, [r3, #4] + ldrb r0, [r5, #5] + strb r0, [r3, #5] + str r5, [r6] + ldr r4, _08057AA0 @ =gLinkEntity + ldrh r1, [r4, #0x2e] + ldrh r0, [r3, #6] + subs r1, r1, r0 + ldrh r2, [r5] + movs r0, #0x3f + ands r0, r2 + lsls r0, r0, #4 + subs r1, r1, r0 + strh r1, [r6, #4] + ldrh r1, [r4, #0x32] + ldrh r0, [r3, #8] + subs r1, r1, r0 + ldrh r2, [r5] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r2 + lsrs r0, r0, #2 + subs r1, r1, r0 + strh r1, [r6, #6] + ldrb r1, [r6, #8] + cmp r1, #0 + bne _08057A86 + ldrb r0, [r5, #5] + movs r2, #0x80 + orrs r0, r2 + ldrb r3, [r6, #0xb] + cmp r0, r3 + beq _08057A80 + ldr r0, _08057AA4 @ =gUnk_02034480 + strh r1, [r0] +_08057A80: + ldrb r0, [r5, #5] + orrs r0, r2 + strb r0, [r6, #0xb] +_08057A86: + ldrb r0, [r5, #3] + bl sub_08080930 + adds r0, r7, #0 + bl sub_0805E900 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057A94: .4byte gUnk_03004030 +_08057A98: .4byte gRoomControls +_08057A9C: .4byte gUnk_030010A0 +_08057AA0: .4byte gLinkEntity +_08057AA4: .4byte gUnk_02034480 + + thumb_func_start sub_08057AA8 +sub_08057AA8: @ 0x08057AA8 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2] + ldr r3, _08057AC0 @ =0x0000FFFF + cmp r0, r3 + beq _08057ACC +_08057AB4: + ldrb r0, [r2, #2] + cmp r0, r1 + bne _08057AC4 + adds r0, r2, #0 + b _08057ACE + .align 2, 0 +_08057AC0: .4byte 0x0000FFFF +_08057AC4: + adds r2, #8 + ldrh r0, [r2] + cmp r0, r3 + bne _08057AB4 +_08057ACC: + movs r0, #0 +_08057ACE: + pop {pc} + + thumb_func_start sub_08057AD0 +sub_08057AD0: @ 0x08057AD0 + push {lr} + ldr r2, _08057AE4 @ =gUnk_08108044 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08057AE4: .4byte gUnk_08108044 + + thumb_func_start sub_08057AE8 +sub_08057AE8: @ 0x08057AE8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + ldrb r0, [r5, #0xe] + cmp r0, #1 + bne _08057B04 + ldr r0, _08057B00 @ =0x00000323 + strh r0, [r5, #0x30] + b _08057B12 + .align 2, 0 +_08057B00: .4byte 0x00000323 +_08057B04: + movs r0, #2 + ands r0, r1 + movs r2, #0x36 + cmp r0, #0 + beq _08057B10 + movs r2, #0x37 +_08057B10: + strh r2, [r5, #0x30] +_08057B12: + ldr r2, _08057B9C @ =gUnk_08108024 + lsls r3, r1, #1 + adds r0, r3, r2 + ldrh r0, [r0] + movs r4, #0 + strh r0, [r5, #0x28] + adds r1, #1 + lsls r1, r1, #1 + adds r2, r1, r2 + ldrh r0, [r2] + strh r0, [r5, #0x2a] + ldr r2, _08057BA0 @ =gUnk_08108034 + adds r3, r3, r2 + ldrh r0, [r3] + strh r0, [r5, #0x2c] + adds r1, r1, r2 + ldrh r0, [r1] + strh r0, [r5, #0x2e] + ldrb r2, [r5, #0xb] + lsrs r0, r2, #2 + movs r1, #0xf + ands r0, r1 + adds r0, #1 + strh r0, [r5, #0x32] + movs r0, #0x1c + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + movs r0, #0x80 + ands r0, r2 + movs r1, #1 + cmp r0, #0 + beq _08057B54 + movs r1, #2 +_08057B54: + strb r1, [r5, #0xc] + cmp r1, #2 + bne _08057B9A + ldrh r0, [r5, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08057B9A + ldrh r0, [r5, #0x32] + cmp r0, #0 + beq _08057B94 +_08057B6A: + ldrh r1, [r5, #0x28] + ldrh r2, [r5, #0x2a] + adds r0, r5, #0 + bl sub_08057CA4 + ldrh r0, [r5, #0x30] + movs r2, #0x38 + ldrsh r1, [r5, r2] + movs r3, #0x3a + ldrsh r2, [r5, r3] + lsls r2, r2, #6 + orrs r1, r2 + ldrh r2, [r5, #0x3c] + bl sub_0807B7D8 + ldrh r0, [r5, #0x32] + subs r0, #1 + strh r0, [r5, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08057B6A +_08057B94: + adds r0, r5, #0 + bl sub_0805E900 +_08057B9A: + pop {r4, r5, pc} + .align 2, 0 +_08057B9C: .4byte gUnk_08108024 +_08057BA0: .4byte gUnk_08108034 + + thumb_func_start sub_08057BA4 +sub_08057BA4: @ 0x08057BA4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08057C24 + movs r0, #8 + strb r0, [r4, #0xe] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08057BF6 + ldrh r0, [r4, #0x32] + ldrb r1, [r4, #0xf] + cmp r0, r1 + beq _08057C24 + ldrh r1, [r4, #0x28] + ldrh r2, [r4, #0x2a] + adds r0, r4, #0 + bl sub_08057CA4 + ldrh r0, [r4, #0x30] + movs r2, #0x38 + ldrsh r1, [r4, r2] + movs r3, #0x3a + ldrsh r2, [r4, r3] + lsls r2, r2, #6 + orrs r1, r2 + ldrh r2, [r4, #0x3c] + bl sub_0807B7D8 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x71 + bl sub_080A3268 + b _08057C24 +_08057BF6: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08057C24 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + lsls r1, r1, #6 + orrs r0, r1 + ldrh r1, [r4, #0x3c] + bl sub_0807BA8C + ldrh r1, [r4, #0x2c] + ldrh r2, [r4, #0x2e] + adds r0, r4, #0 + bl sub_08057CA4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x71 + bl sub_080A3268 +_08057C24: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08057C28 +sub_08057C28: @ 0x08057C28 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08057C44 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08057C9C + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _08057C9C +_08057C44: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08057C9C + movs r0, #8 + strb r0, [r4, #0xe] + ldrh r0, [r4, #0x32] + ldrb r1, [r4, #0xf] + cmp r0, r1 + beq _08057C88 + ldrh r1, [r4, #0x28] + ldrh r2, [r4, #0x2a] + adds r0, r4, #0 + bl sub_08057CA4 + ldrh r0, [r4, #0x30] + movs r2, #0x38 + ldrsh r1, [r4, r2] + movs r3, #0x3a + ldrsh r2, [r4, r3] + lsls r2, r2, #6 + orrs r1, r2 + ldrh r2, [r4, #0x3c] + bl sub_0807B7D8 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x71 + bl sub_080A3268 + b _08057C9C +_08057C88: + ldrh r1, [r4, #0x30] + ldr r0, _08057CA0 @ =0x00000323 + cmp r1, r0 + beq _08057C96 + movs r0, #0x72 + bl sub_080A3268 +_08057C96: + adds r0, r4, #0 + bl sub_0805E900 +_08057C9C: + pop {r4, pc} + .align 2, 0 +_08057CA0: .4byte 0x00000323 + + thumb_func_start sub_08057CA4 +sub_08057CA4: @ 0x08057CA4 + ldrh r3, [r0, #0x38] + adds r3, r3, r1 + strh r3, [r0, #0x38] + ldrh r1, [r0, #0x3a] + adds r1, r1, r2 + strh r1, [r0, #0x3a] + bx lr + .align 2, 0 + + thumb_func_start sub_08057CB4 +sub_08057CB4: @ 0x08057CB4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08057CD6 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + bl sub_0804B128 + str r0, [r4, #0x20] + cmp r0, #0 + bne _08057CD6 + adds r0, r4, #0 + bl sub_0805E900 + b _08057D42 +_08057CD6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08057CE4 + ldr r0, _08057D44 @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _08057D42 +_08057CE4: + ldr r4, [r4, #0x20] + ldrh r0, [r4] + ldr r1, _08057D48 @ =0x0000FFFF + cmp r0, r1 + beq _08057D42 + ldr r5, _08057D4C @ =gLinkEntity + adds r6, r1, #0 +_08057CF2: + ldrb r2, [r4, #7] + movs r0, #3 + ands r0, r2 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08057D3A + ldr r0, _08057D44 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08057D18 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _08057D3A +_08057D18: + ldrh r0, [r4] + ldrh r1, [r4, #2] + ldrb r2, [r4, #4] + ldrb r3, [r4, #5] + bl sub_0800293E + cmp r0, #0 + beq _08057D3A + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08057D3A + ldrb r0, [r4, #6] + bl sub_0804B128 + bl sub_08080840 +_08057D3A: + adds r4, #8 + ldrh r0, [r4] + cmp r0, r6 + bne _08057CF2 +_08057D42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08057D44: .4byte gUnk_03003F80 +_08057D48: .4byte 0x0000FFFF +_08057D4C: .4byte gLinkEntity + + thumb_func_start sub_08057D50 +sub_08057D50: @ 0x08057D50 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08057D7C + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x20 + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r1, _08057DC0 @ =sub_08057E30 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_08057D7C: + adds r0, r4, #0 + bl sub_08057E40 + cmp r0, #0 + beq _08057D9A + ldr r0, _08057DC4 @ =gUnk_02034350 + ldrb r5, [r0, #0x10] + adds r1, r4, #0 + adds r1, #0x20 + ldrb r0, [r1] + cmp r0, r5 + beq _08057D9A + movs r0, #0 + strb r5, [r1] + strb r0, [r4, #0xe] +_08057D9A: + ldr r0, _08057DC8 @ =gRoomControls + ldrh r3, [r0] + cmp r3, #0 + bne _08057E2A + adds r0, r4, #0 + adds r0, #0x20 + ldrb r5, [r0] + lsls r1, r5, #6 + ldr r0, _08057DCC @ =gUnk_081080A4 + adds r2, r1, r0 + ldrb r1, [r4, #0xe] + cmp r1, #7 + bgt _08057DD0 + cmp r1, #1 + bge _08057E04 + cmp r1, #0 + beq _08057DD6 + b _08057E2A + .align 2, 0 +_08057DC0: .4byte sub_08057E30 +_08057DC4: .4byte gUnk_02034350 +_08057DC8: .4byte gRoomControls +_08057DCC: .4byte gUnk_081080A4 +_08057DD0: + cmp r1, #8 + beq _08057E20 + b _08057E2A +_08057DD6: + ldr r1, _08057DF8 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + ldr r0, [r2] + ldr r1, _08057DFC @ =gUnk_085A2E80 + adds r0, r0, r1 + ldr r1, [r2, #4] + movs r2, #0x80 + lsls r2, r2, #5 + bl sub_08000E96 + ldr r0, _08057E00 @ =gUnk_081081E4 + adds r0, r5, r0 + ldrb r0, [r0] + bl sub_0801D714 + b _08057E24 + .align 2, 0 +_08057DF8: .4byte gUnk_02034490 +_08057DFC: .4byte gUnk_085A2E80 +_08057E00: .4byte gUnk_081081E4 +_08057E04: + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, [r1] + ldr r2, _08057E1C @ =gUnk_085A2E80 + adds r0, r0, r2 + ldr r1, [r1, #4] + movs r2, #0x80 + lsls r2, r2, #5 + bl sub_08000E96 + b _08057E24 + .align 2, 0 +_08057E1C: .4byte gUnk_085A2E80 +_08057E20: + ldr r0, _08057E2C @ =gUnk_02034490 + strb r3, [r0] +_08057E24: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08057E2A: + pop {r4, r5, pc} + .align 2, 0 +_08057E2C: .4byte gUnk_02034490 + + thumb_func_start sub_08057E30 +sub_08057E30: @ 0x08057E30 + push {lr} + ldr r0, _08057E3C @ =gUnk_02034350 + ldrb r0, [r0, #0x10] + bl sub_08057E7C + pop {pc} + .align 2, 0 +_08057E3C: .4byte gUnk_02034350 + + thumb_func_start sub_08057E40 +sub_08057E40: @ 0x08057E40 + push {lr} + ldr r0, _08057E54 @ =gUnk_08108050 + bl sub_08056300 + adds r1, r0, #0 + cmp r1, #0xff + bne _08057E58 + movs r0, #0 + b _08057E5E + .align 2, 0 +_08057E54: .4byte gUnk_08108050 +_08057E58: + ldr r0, _08057E60 @ =gUnk_02034350 + strb r1, [r0, #0x10] + movs r0, #1 +_08057E5E: + pop {pc} + .align 2, 0 +_08057E60: .4byte gUnk_02034350 + + thumb_func_start sub_08057E64 +sub_08057E64: @ 0x08057E64 + push {lr} + ldr r0, _08057E78 @ =gUnk_08108050 + bl sub_08056300 + cmp r0, #0xff + beq _08057E74 + bl sub_08057E7C +_08057E74: + pop {pc} + .align 2, 0 +_08057E78: .4byte gUnk_08108050 + + thumb_func_start sub_08057E7C +sub_08057E7C: @ 0x08057E7C + push {r4, r5, r6, lr} + adds r4, r0, #0 + cmp r4, #4 + bhi _08057EB6 + ldr r0, _08057EB8 @ =gUnk_081081E4 + adds r0, r4, r0 + ldrb r0, [r0] + bl sub_0801D714 + lsls r1, r4, #6 + ldr r0, _08057EBC @ =gUnk_081080A4 + adds r1, r1, r0 + movs r3, #0 + ldr r2, _08057EC0 @ =0x040000D4 + ldr r6, _08057EC4 @ =gUnk_085A2E80 + ldr r5, _08057EC8 @ =0x84000400 +_08057E9C: + ldr r0, [r1] + adds r0, r0, r6 + str r0, [r2] + ldr r0, [r1, #4] + str r0, [r2, #4] + str r5, [r2, #8] + ldr r0, [r2, #8] + adds r3, #1 + adds r1, #8 + cmp r3, #7 + bls _08057E9C + ldr r0, _08057ECC @ =gUnk_02034350 + strb r4, [r0, #0x10] +_08057EB6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08057EB8: .4byte gUnk_081081E4 +_08057EBC: .4byte gUnk_081080A4 +_08057EC0: .4byte 0x040000D4 +_08057EC4: .4byte gUnk_085A2E80 +_08057EC8: .4byte 0x84000400 +_08057ECC: .4byte gUnk_02034350 + + thumb_func_start sub_08057ED0 +sub_08057ED0: @ 0x08057ED0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08057F20 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _08057EF2 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08057EF4 @ =gLCDControls + strh r1, [r0, #0x1a] + strh r1, [r0, #0x32] + ldr r1, _08057EF8 @ =sub_08057EFC + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_08057EF2: + pop {r4, pc} + .align 2, 0 +_08057EF4: .4byte gLCDControls +_08057EF8: .4byte sub_08057EFC + + thumb_func_start sub_08057EFC +sub_08057EFC: @ 0x08057EFC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08057F1C @ =gUnk_02034350 + ldrb r0, [r0, #0x10] + bl sub_0801D7EC + bl sub_08058034 + movs r0, #0 + str r0, [r4, #0x3c] + str r0, [r4, #0x38] + adds r0, r4, #0 + bl sub_08057F20 + pop {r4, pc} + .align 2, 0 +_08057F1C: .4byte gUnk_02034350 + + thumb_func_start sub_08057F20 +sub_08057F20: @ 0x08057F20 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r5, _08057FF4 @ =gRoomControls + movs r0, #0xa + ldrsh r1, [r5, r0] + ldrh r0, [r5, #6] + subs r4, r1, r0 + lsrs r2, r4, #3 + adds r2, r4, r2 + ldrh r0, [r5, #0x1e] + movs r1, #0x80 + lsls r1, r1, #3 + subs r0, r1, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r4, r2, r0 + ldr r6, _08057FF8 @ =gLCDControls + adds r0, r4, #0 + movs r1, #0xf + ands r0, r1 + strh r0, [r6, #0x2e] + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r1, [r5, #8] + subs r0, r0, r1 + movs r1, #0x30 + subs r0, r1, r0 + asrs r0, r0, #2 + mov sl, r1 + mov r1, sl + subs r0, r1, r0 + strh r0, [r6, #0x30] + ldr r0, _08057FFC @ =gUnk_02001A40 + mov r8, r0 + str r0, [r6, #0x34] + ldr r1, _08058000 @ =gUnk_02006F00 + mov sb, r1 + adds r0, r4, #0 + mov r2, r8 + bl sub_08058004 + lsrs r0, r4, #4 + lsls r4, r0, #1 + ldr r0, [r7, #0x38] + cmp r0, r4 + beq _08057F8C + str r4, [r7, #0x38] + movs r0, #1 + strh r0, [r6, #0x32] +_08057F8C: + movs r0, #0xa + ldrsh r1, [r5, r0] + ldrh r0, [r5, #6] + subs r4, r1, r0 + lsrs r2, r4, #2 + adds r2, r4, r2 + ldrh r0, [r5, #0x1e] + movs r1, #0x80 + lsls r1, r1, #3 + subs r0, r1, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r4, r2, r0 + adds r0, r4, #0 + movs r1, #0xf + ands r0, r1 + strh r0, [r6, #0x16] + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r1, [r5, #8] + subs r0, r0, r1 + movs r1, #0x30 + subs r0, r1, r0 + asrs r0, r0, #1 + mov r1, sl + subs r0, r1, r0 + strh r0, [r6, #0x18] + movs r2, #0x80 + lsls r2, r2, #4 + add r2, r8 + str r2, [r6, #0x1c] + movs r1, #0x80 + lsls r1, r1, #6 + add r1, sb + adds r0, r4, #0 + bl sub_08058004 + lsrs r0, r4, #4 + lsls r4, r0, #1 + ldr r0, [r7, #0x3c] + cmp r0, r4 + beq _08057FE8 + str r4, [r7, #0x3c] + movs r0, #1 + strh r0, [r6, #0x1a] +_08057FE8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057FF4: .4byte gRoomControls +_08057FF8: .4byte gLCDControls +_08057FFC: .4byte gUnk_02001A40 +_08058000: .4byte gUnk_02006F00 + + thumb_func_start sub_08058004 +sub_08058004: @ 0x08058004 + push {r4, r5, r6, lr} + movs r4, #0x20 + lsrs r0, r0, #4 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r3, _0805802C @ =0x040000D4 + ldr r6, _08058030 @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_08058016: + str r1, [r3] + str r2, [r3, #4] + str r6, [r3, #8] + ldr r0, [r3, #8] + adds r1, r1, r5 + adds r2, #0x40 + subs r4, #1 + cmp r4, #0 + bne _08058016 + pop {r4, r5, r6, pc} + .align 2, 0 +_0805802C: .4byte 0x040000D4 +_08058030: .4byte 0x80000020 + + thumb_func_start sub_08058034 +sub_08058034: @ 0x08058034 + push {r4, r5, r6, lr} + ldr r6, _08058080 @ =gUnk_02002F00 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r6, r0 + movs r4, #0 +_08058040: + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_08058084 + movs r1, #0x80 + lsls r1, r1, #4 + adds r6, r6, r1 + adds r5, #0x40 + adds r4, #1 + cmp r4, #3 + bls _08058040 + ldr r0, _08058080 @ =gUnk_02002F00 + movs r1, #0x80 + lsls r1, r1, #6 + adds r6, r0, r1 + movs r1, #0xc0 + lsls r1, r1, #7 + adds r5, r0, r1 + movs r4, #0 +_08058066: + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_08058084 + movs r0, #0x80 + lsls r0, r0, #4 + adds r6, r6, r0 + adds r5, #0x40 + adds r4, #1 + cmp r4, #3 + bls _08058066 + pop {r4, r5, r6, pc} + .align 2, 0 +_08058080: .4byte gUnk_02002F00 + + thumb_func_start sub_08058084 +sub_08058084: @ 0x08058084 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r2, _080580A8 @ =0x040000D4 + ldr r6, _080580AC @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_08058092: + str r3, [r2] + str r1, [r2, #4] + str r6, [r2, #8] + ldr r0, [r2, #8] + adds r4, #1 + adds r3, #0x40 + adds r1, r1, r5 + cmp r4, #0x1f + bls _08058092 + pop {r4, r5, r6, pc} + .align 2, 0 +_080580A8: .4byte 0x040000D4 +_080580AC: .4byte 0x80000020 + + thumb_func_start sub_080580B0 +sub_080580B0: @ 0x080580B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _080581B0 @ =gUnk_0200B650 + movs r1, #0 + str r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x13 + strh r1, [r0] + adds r0, r4, #0 + bl sub_0801D7EC + ldr r0, _080581B4 @ =gUnk_02034350 + strb r4, [r0, #0x10] + bl sub_08058034 + ldr r5, _080581B8 @ =gRoomControls + movs r0, #0xa + ldrsh r1, [r5, r0] + ldrh r0, [r5, #6] + subs r7, r1, r0 + asrs r2, r7, #3 + adds r2, r7, r2 + ldrh r0, [r5, #0x1e] + movs r4, #0x80 + lsls r4, r4, #3 + subs r0, r4, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r7, r2, r0 + ldr r1, _080581BC @ =gUnk_02006F00 + mov sb, r1 + ldr r2, _080581C0 @ =gUnk_02001A40 + mov r8, r2 + adds r0, r7, #0 + bl sub_08058004 + ldr r0, _080581C4 @ =gLCDControls + mov sl, r0 + movs r1, #0xf + ands r7, r1 + strh r7, [r0, #0x2e] + movs r2, #0xc + ldrsh r0, [r5, r2] + ldrh r1, [r5, #8] + subs r0, r0, r1 + movs r6, #0x30 + subs r0, r6, r0 + asrs r0, r0, #1 + movs r3, #0x30 + subs r0, r3, r0 + mov r1, sl + strh r0, [r1, #0x30] + ldr r0, _080581C8 @ =0x00001D09 + strh r0, [r1, #0x2c] + mov r2, r8 + str r2, [r1, #0x34] + movs r0, #1 + strh r0, [r1, #0x32] + movs r2, #0xa + ldrsh r1, [r5, r2] + ldrh r0, [r5, #6] + subs r7, r1, r0 + asrs r1, r7, #2 + adds r1, r7, r1 + ldrh r0, [r5, #0x1e] + subs r4, r4, r0 + lsrs r0, r4, #0x1f + adds r4, r4, r0 + asrs r4, r4, #1 + adds r7, r1, r4 + movs r0, #0x80 + lsls r0, r0, #6 + add sb, r0 + movs r1, #0x80 + lsls r1, r1, #4 + add r8, r1 + adds r0, r7, #0 + mov r1, sb + mov r2, r8 + str r3, [sp] + bl sub_08058004 + movs r2, #0xf + ands r7, r2 + mov r0, sl + strh r7, [r0, #0x16] + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r1, [r5, #8] + subs r0, r0, r1 + subs r6, r6, r0 + asrs r6, r6, #1 + ldr r3, [sp] + subs r3, r3, r6 + mov r2, sl + strh r3, [r2, #0x18] + ldr r0, _080581CC @ =0x00001E09 + strh r0, [r2, #0x14] + mov r0, r8 + str r0, [r2, #0x1c] + movs r1, #1 + strh r1, [r2, #0x1a] + mov r1, sl + adds r1, #0x66 + ldr r0, _080581D0 @ =0x00003C48 + strh r0, [r1] + adds r1, #2 + ldr r0, _080581D4 @ =0x00000609 + strh r0, [r1] + ldrh r1, [r2] + movs r2, #0xa0 + lsls r2, r2, #4 + adds r0, r2, #0 + orrs r0, r1 + mov r1, sl + strh r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080581B0: .4byte gUnk_0200B650 +_080581B4: .4byte gUnk_02034350 +_080581B8: .4byte gRoomControls +_080581BC: .4byte gUnk_02006F00 +_080581C0: .4byte gUnk_02001A40 +_080581C4: .4byte gLCDControls +_080581C8: .4byte 0x00001D09 +_080581CC: .4byte 0x00001E09 +_080581D0: .4byte 0x00003C48 +_080581D4: .4byte 0x00000609 + + thumb_func_start sub_080581D8 +sub_080581D8: @ 0x080581D8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08058210 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _080581F8 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080581FC @ =gLCDControls + strh r1, [r0, #0x1a] + ldr r1, _08058200 @ =sub_08058204 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_080581F8: + pop {r4, pc} + .align 2, 0 +_080581FC: .4byte gLCDControls +_08058200: .4byte sub_08058204 + + thumb_func_start sub_08058204 +sub_08058204: @ 0x08058204 + push {lr} + ldrb r0, [r0, #0xa] + bl sub_08058324 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08058210 +sub_08058210: @ 0x08058210 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_08058244 + adds r3, r0, #0 + ldr r0, [r4, #0x3c] + cmp r0, r3 + beq _08058234 + str r3, [r4, #0x3c] + ldr r1, _08058238 @ =gUnk_02006F00 + ldr r2, _0805823C @ =gUnk_02001A40 + adds r0, r3, #0 + bl sub_080582A0 + ldr r1, _08058240 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0x1a] +_08058234: + pop {r4, pc} + .align 2, 0 +_08058238: .4byte gUnk_02006F00 +_0805823C: .4byte gUnk_02001A40 +_08058240: .4byte gLCDControls + + thumb_func_start sub_08058244 +sub_08058244: @ 0x08058244 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r0, #0 + ldr r5, _08058294 @ =gRoomControls + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r4, [r5, #8] + subs r0, r0, r4 + lsls r0, r0, #5 + ldrh r1, [r5, #0x20] + subs r1, #0xa0 + bl __divsi3 + ldr r2, _08058298 @ =gLCDControls + mov r8, r2 + adds r4, r4, r0 + strh r4, [r2, #0x18] + movs r0, #0xa + ldrsh r1, [r5, r0] + ldrh r0, [r5, #6] + subs r1, r1, r0 + ldr r0, _0805829C @ =gUnk_081081EC + lsls r6, r6, #1 + adds r6, r6, r0 + ldrh r0, [r6] + muls r0, r1, r0 + ldrh r1, [r5, #0x1e] + subs r1, #0xf0 + bl __divsi3 + movs r2, #0xf + adds r1, r0, #0 + ands r1, r2 + mov r2, r8 + strh r1, [r2, #0x16] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_08058294: .4byte gRoomControls +_08058298: .4byte gLCDControls +_0805829C: .4byte gUnk_081081EC + + thumb_func_start sub_080582A0 +sub_080582A0: @ 0x080582A0 + push {r4, r5, r6, lr} + movs r4, #0x20 + lsrs r0, r0, #4 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r3, _080582C8 @ =0x040000D4 + ldr r6, _080582CC @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_080582B2: + str r1, [r3] + str r2, [r3, #4] + str r6, [r3, #8] + ldr r0, [r3, #8] + adds r1, r1, r5 + adds r2, #0x40 + subs r4, #1 + cmp r4, #0 + bne _080582B2 + pop {r4, r5, r6, pc} + .align 2, 0 +_080582C8: .4byte 0x040000D4 +_080582CC: .4byte 0x80000020 + + thumb_func_start sub_080582D0 +sub_080582D0: @ 0x080582D0 + push {r4, r5, lr} + ldr r4, _080582F4 @ =gUnk_02002F00 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080582F8 + movs r0, #0x80 + lsls r0, r0, #4 + adds r4, r4, r0 + adds r5, #0x40 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080582F8 + pop {r4, r5, pc} + .align 2, 0 +_080582F4: .4byte gUnk_02002F00 + + thumb_func_start sub_080582F8 +sub_080582F8: @ 0x080582F8 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r2, _0805831C @ =0x040000D4 + ldr r6, _08058320 @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_08058306: + str r3, [r2] + str r1, [r2, #4] + str r6, [r2, #8] + ldr r0, [r2, #8] + adds r4, #1 + adds r3, #0x40 + adds r1, r1, r5 + cmp r4, #0x1f + bls _08058306 + pop {r4, r5, r6, pc} + .align 2, 0 +_0805831C: .4byte 0x040000D4 +_08058320: .4byte 0x80000020 + + thumb_func_start sub_08058324 +sub_08058324: @ 0x08058324 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805836C @ =gUnk_0200B650 + movs r0, #0 + str r0, [r1] + adds r0, r4, #0 + adds r0, #0x86 + bl sub_0801D714 + adds r0, r4, #0 + adds r0, #0x36 + bl sub_0801D7EC + bl sub_080582D0 + adds r0, r4, #0 + bl sub_08058244 + ldr r1, _08058370 @ =gUnk_02006F00 + ldr r4, _08058374 @ =gUnk_02001A40 + adds r2, r4, #0 + bl sub_080582A0 + ldr r1, _08058378 @ =gLCDControls + ldr r0, _0805837C @ =0x00001D47 + strh r0, [r1, #0x14] + str r4, [r1, #0x1c] + movs r0, #1 + strh r0, [r1, #0x1a] + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_0805836C: .4byte gUnk_0200B650 +_08058370: .4byte gUnk_02006F00 +_08058374: .4byte gUnk_02001A40 +_08058378: .4byte gLCDControls +_0805837C: .4byte 0x00001D47 + + thumb_func_start sub_08058380 +sub_08058380: @ 0x08058380 + push {lr} + ldr r2, _08058394 @ =gUnk_081081F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08058394: .4byte gUnk_081081F4 + + thumb_func_start sub_08058398 +sub_08058398: @ 0x08058398 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _080583AA + bl sub_0805E780 +_080583AA: + adds r0, r4, #0 + adds r0, #0x3a + ldrb r1, [r0] + lsls r1, r1, #3 + strh r1, [r4, #0x24] + adds r0, #1 + ldrb r2, [r0] + lsls r2, r2, #3 + strh r2, [r4, #0x26] + subs r0, #3 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r1, r1, r0 + strh r1, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r2, r2, r0 + strh r2, [r4, #0x22] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldrh r0, [r4, #0x3e] + cmp r0, #0 + bne _080583E4 + movs r0, #2 + b _080583E6 +_080583E4: + movs r0, #1 +_080583E6: + strb r0, [r4, #0xc] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080583EC +sub_080583EC: @ 0x080583EC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08058404 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08058408 +_08058404: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08058408 +sub_08058408: @ 0x08058408 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _0805843C @ =gUnk_03003F80 + ldr r5, [r6, #0x30] + movs r0, #8 + ands r5, r0 + cmp r5, #0 + bne _08058488 + ldrh r0, [r4, #0x20] + ldrh r1, [r4, #0x22] + ldrh r2, [r4, #0x24] + ldrh r3, [r4, #0x26] + bl sub_0800293E + cmp r0, #0 + beq _08058488 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _08058488 + cmp r0, #1 + ble _08058450 + cmp r0, #2 + beq _08058440 + cmp r0, #3 + beq _0805847C + b _08058450 + .align 2, 0 +_0805843C: .4byte gUnk_03003F80 +_08058440: + adds r0, r4, #0 + bl sub_080585DC + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08058488 +_08058450: + adds r0, r4, #0 + bl sub_080585DC + adds r0, r4, #0 + bl sub_0805848C + cmp r0, #0 + beq _08058488 + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + bl sub_0805E544 + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08058488 +_0805847C: + movs r0, #4 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] + ldrh r0, [r4, #0x36] + bl sub_080186C0 +_08058488: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805848C +sub_0805848C: @ 0x0805848C + push {lr} + ldr r0, _080584A4 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + subs r0, #5 + cmp r0, #0x17 + bhi _08058510 + lsls r0, r0, #2 + ldr r1, _080584A8 @ =_080584AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080584A4: .4byte gUnk_03003F80 +_080584A8: .4byte _080584AC +_080584AC: @ jump table + .4byte _0805850C @ case 0 + .4byte _08058510 @ case 1 + .4byte _0805850C @ case 2 + .4byte _0805850C @ case 3 + .4byte _08058510 @ case 4 + .4byte _0805850C @ case 5 + .4byte _0805850C @ case 6 + .4byte _0805850C @ case 7 + .4byte _0805850C @ case 8 + .4byte _0805850C @ case 9 + .4byte _0805850C @ case 10 + .4byte _0805850C @ case 11 + .4byte _0805850C @ case 12 + .4byte _0805850C @ case 13 + .4byte _0805850C @ case 14 + .4byte _0805850C @ case 15 + .4byte _0805850C @ case 16 + .4byte _0805850C @ case 17 + .4byte _0805850C @ case 18 + .4byte _0805850C @ case 19 + .4byte _08058510 @ case 20 + .4byte _08058510 @ case 21 + .4byte _0805850C @ case 22 + .4byte _0805850C @ case 23 +_0805850C: + movs r0, #0 + b _08058512 +_08058510: + movs r0, #1 +_08058512: + pop {pc} + + thumb_func_start sub_08058514 +sub_08058514: @ 0x08058514 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _08058532 + cmp r0, #1 + bgt _08058528 + cmp r0, #0 + beq _08058570 + b _080585A6 +_08058528: + cmp r0, #2 + beq _08058570 + cmp r0, #3 + beq _08058584 + b _080585A6 +_08058532: + ldr r2, _08058564 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08058568 @ =0x00001235 + ands r0, r1 + cmp r0, #0 + bne _080585A6 + ldr r0, _0805856C @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080585A6 + strb r0, [r2, #2] + ldrh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x35 + ldrb r1, [r1] + bl sub_08078AA8 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _080585A6 + .align 2, 0 +_08058564: .4byte gUnk_03003F80 +_08058568: .4byte 0x00001235 +_0805856C: .4byte gLinkEntity +_08058570: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080585A6 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _080585A6 +_08058584: + ldr r0, _080585A8 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #1 + beq _08058590 + cmp r0, #9 + bne _080585A6 +_08058590: + ldr r0, _080585AC @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0805E564 + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + bl sub_0805E780 +_080585A6: + pop {r4, pc} + .align 2, 0 +_080585A8: .4byte gLinkEntity +_080585AC: .4byte gUnk_03003F80 + + thumb_func_start sub_080585B0 +sub_080585B0: @ 0x080585B0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080585D8 @ =gUnk_02033A90 + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #0xff + beq _080585C2 + bl sub_0805E780 +_080585C2: + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _080585D4 + bl sub_0801855C + bl sub_0805E780 +_080585D4: + pop {r4, pc} + .align 2, 0 +_080585D8: .4byte gUnk_02033A90 + + thumb_func_start sub_080585DC +sub_080585DC: @ 0x080585DC + push {lr} + ldrh r0, [r0, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _080585EC + bl sub_0805E780 +_080585EC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080585F0 +sub_080585F0: @ 0x080585F0 + push {lr} + ldr r2, _08058604 @ =gUnk_08108208 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08058604: .4byte gUnk_08108208 + + thumb_func_start sub_08058608 +sub_08058608: @ 0x08058608 + push {lr} + ldr r2, _0805861C @ =gUnk_08108210 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805861C: .4byte gUnk_08108210 + + thumb_func_start sub_08058620 +sub_08058620: @ 0x08058620 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + bne _08058648 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3c] + cmp r0, #0 + bne _0805863E + adds r0, r4, #0 + bl sub_080586EC +_0805863E: + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + b _0805864C +_08058648: + bl sub_0805E780 +_0805864C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08058650 +sub_08058650: @ 0x08058650 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _08058698 + adds r0, r4, #0 + bl sub_080586EC + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0 + bne _08058692 + ldr r1, _0805869C @ =gUnk_02034350 + ldrb r0, [r1, #9] + movs r3, #0x33 + cmp r0, #0 + beq _0805867A + adds r3, r0, #0 +_0805867A: + ldr r0, _080586A0 @ =gUnk_02033A90 + movs r1, #0x86 + lsls r1, r1, #4 + adds r0, r0, r1 + ldr r2, [r0] + adds r1, r4, #0 + adds r1, #0x20 + strb r2, [r1] + str r3, [r0] + adds r0, r3, #0 + bl sub_080A3268 +_08058692: + ldr r0, _080586A4 @ =0x00000B0F + bl sub_080186C0 +_08058698: + pop {r4, pc} + .align 2, 0 +_0805869C: .4byte gUnk_02034350 +_080586A0: .4byte gUnk_02033A90 +_080586A4: .4byte 0x00000B0F + + thumb_func_start sub_080586A8 +sub_080586A8: @ 0x080586A8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080586E4 + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + ldrh r0, [r4, #0x3c] + cmp r0, #0 + beq _080586E0 + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0 + bne _080586E0 + ldr r1, _080586E8 @ =gUnk_02033A90 + movs r0, #0x86 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + str r0, [r1] + bl sub_080A3268 + bl sub_0801855C +_080586E0: + bl sub_0805E780 +_080586E4: + pop {r4, pc} + .align 2, 0 +_080586E8: .4byte gUnk_02033A90 + + thumb_func_start sub_080586EC +sub_080586EC: @ 0x080586EC + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r1, #0 + movs r0, #2 + strb r0, [r7, #0xc] + strb r1, [r7, #0xe] + movs r6, #0 + adds r0, r7, #0 + bl sub_08058760 + adds r5, r0, #0 + cmp r5, #0 + bne _0805870A + bl sub_0805E780 +_0805870A: + ldrb r0, [r7, #0xb] + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + beq _0805875C + b _08058756 +_08058718: + adds r0, r4, #0 + adds r4, #0x10 + bl CreateEntity + adds r3, r0, #0 + cmp r3, #0 + beq _08058744 + ldrb r0, [r3, #8] + cmp r0, #3 + bne _08058744 + adds r2, r3, #0 + adds r2, #0x6d + ldrb r0, [r2] + movs r1, #0x40 + orrs r1, r0 + strb r1, [r2] + adds r2, r6, #0 + adds r6, #1 + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_08058798 +_08058744: + cmp r6, #6 + bls _08058756 + movs r6, #0 + adds r0, r7, #0 + bl sub_08058760 + adds r5, r0, #0 + cmp r5, #0 + beq _0805875C +_08058756: + ldrb r0, [r4] + cmp r0, #0xff + bne _08058718 +_0805875C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08058760 +sub_08058760: @ 0x08058760 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0805E8D4 + adds r4, r0, #0 + cmp r4, #0 + beq _08058794 + movs r0, #9 + strb r0, [r4, #8] + movs r0, #0xb + strb r0, [r4, #9] + movs r0, #1 + strb r0, [r4, #0xa] + str r5, [r4, #0x14] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + adds r0, r4, #0 + adds r0, #0x20 + movs r1, #0x20 + bl sub_0801D630 + adds r0, r4, #0 + movs r1, #8 + bl sub_0805EA2C +_08058794: + adds r0, r4, #0 + pop {r4, r5, pc} + + thumb_func_start sub_08058798 +sub_08058798: @ 0x08058798 + lsls r2, r2, #2 + adds r3, r0, #0 + adds r3, #0x20 + adds r3, r3, r2 + str r1, [r3] + ldrb r1, [r0, #0xe] + adds r1, #1 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_080587AC +sub_080587AC: @ 0x080587AC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080587C2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 +_080587C2: + movs r3, #0 + movs r2, #0 + adds r5, r4, #0 + adds r5, #0x20 +_080587CA: + lsls r0, r2, #2 + adds r1, r5, r0 + ldr r0, [r1] + cmp r0, #0 + beq _080587E0 + ldr r0, [r0, #4] + cmp r0, #0 + bne _080587DE + str r0, [r1] + b _080587E0 +_080587DE: + movs r3, #1 +_080587E0: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _080587CA + cmp r3, #0 + bne _080587FE + ldr r1, [r4, #0x14] + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _080587FA + subs r0, #1 + strb r0, [r1, #0xe] +_080587FA: + bl sub_0805E780 +_080587FE: + pop {r4, r5, pc} + + thumb_func_start sub_08058800 +sub_08058800: @ 0x08058800 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r6, _08058830 @ =gUnk_03003DB0 + ldr r3, [r6, #4] + cmp r3, r6 + beq _0805884A + ldr r0, _08058834 @ =0x0000FFFF + mov ip, r0 + ldr r7, _08058838 @ =0x00000B09 +_08058814: + ldrh r1, [r3, #8] + mov r0, ip + ands r0, r1 + cmp r0, r7 + bne _08058844 + movs r2, #0 + adds r1, r3, #0 + adds r1, #0x20 +_08058824: + ldr r0, [r1] + cmp r4, r0 + bne _0805883C + str r5, [r1] + b _0805884A + .align 2, 0 +_08058830: .4byte gUnk_03003DB0 +_08058834: .4byte 0x0000FFFF +_08058838: .4byte 0x00000B09 +_0805883C: + adds r1, #4 + adds r2, #1 + cmp r2, #7 + bls _08058824 +_08058844: + ldr r3, [r3, #4] + cmp r3, r6 + bne _08058814 +_0805884A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805884C +sub_0805884C: @ 0x0805884C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08058880 @ =gUnk_0810821C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08058BC8 + ldr r0, _08058884 @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _08058888 @ =gUnk_02017AA0 + adds r0, r0, r1 + ldr r1, _0805888C @ =0x04000020 + ldr r2, _08058890 @ =0xA2600008 + bl sub_0805622C + pop {r4, pc} + .align 2, 0 +_08058880: .4byte gUnk_0810821C +_08058884: .4byte gUnk_03003DE4 +_08058888: .4byte gUnk_02017AA0 +_0805888C: .4byte 0x04000020 +_08058890: .4byte 0xA2600008 + + thumb_func_start sub_08058894 +sub_08058894: @ 0x08058894 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080588C4 @ =0x00001234 + str r0, [r4, #0x28] + movs r0, #0x15 + movs r1, #2 + bl sub_0807CC60 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + strb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_08058CB0 + ldr r1, _080588C8 @ =sub_08058D34 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + pop {r4, pc} + .align 2, 0 +_080588C4: .4byte 0x00001234 +_080588C8: .4byte sub_08058D34 + + thumb_func_start sub_080588CC +sub_080588CC: @ 0x080588CC + push {r4, lr} + adds r4, r0, #0 + bl sub_08058CFC + adds r0, r4, #0 + bl sub_08058A04 + ldr r0, _080588E8 @ =gUnk_030010A0 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _080588EC + movs r0, #2 + strb r0, [r4, #0xc] + b _080588F2 + .align 2, 0 +_080588E8: .4byte gUnk_030010A0 +_080588EC: + adds r0, r4, #0 + bl sub_080588F8 +_080588F2: + pop {r4, pc} + + thumb_func_start nullsub_108 +nullsub_108: @ 0x080588F4 + bx lr + .align 2, 0 + + thumb_func_start sub_080588F8 +sub_080588F8: @ 0x080588F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08058952 + movs r0, #0x26 + ldrsh r2, [r4, r0] + ldr r0, [r4, #0x28] + subs r1, r0, r2 + cmp r1, #0 + blt _08058914 + cmp r1, #8 + bhi _0805891A + b _08058968 +_08058914: + subs r0, r2, r0 + cmp r0, #8 + bls _08058968 +_0805891A: + ldr r0, _08058934 @ =0x00001234 + str r0, [r4, #0x28] + movs r2, #0x26 + ldrsh r1, [r4, r2] + ldr r0, _08058938 @ =0x0000FFFE + ands r1, r0 + cmp r1, #0xa0 + beq _08058940 + cmp r1, #0xa0 + bgt _0805893C + cmp r1, #0x48 + beq _08058940 + b _08058968 + .align 2, 0 +_08058934: .4byte 0x00001234 +_08058938: .4byte 0x0000FFFE +_0805893C: + cmp r1, #0xf0 + bne _08058968 +_08058940: + movs r3, #0x26 + ldrsh r0, [r4, r3] + str r0, [r4, #0x28] + movs r0, #0x2d + strb r0, [r4, #0xf] + movs r0, #0x8c + bl sub_080A3268 + b _08058968 +_08058952: + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x29 + bls _08058964 + ldr r0, [r4, #0x28] + subs r0, #2 + b _08058966 +_08058964: + ldr r0, [r4, #0x28] +_08058966: + strh r0, [r4, #0x26] +_08058968: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080589DE + ldr r0, _080589A4 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r0, r2] + ldr r0, _080589A8 @ =gRoomControls + ldrh r0, [r0, #8] + subs r2, r1, r0 + adds r1, r2, #0 + subs r1, #0x50 + cmp r1, #0 + bge _08058986 + movs r1, #0x50 + subs r1, r1, r2 +_08058986: + lsrs r1, r1, #3 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0xc + movs r3, #0x80 + lsls r3, r3, #7 + adds r1, r0, r3 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080589DE + cmp r2, #0x48 + bgt _080589AC + ldr r0, [r4, #0x24] + subs r0, r0, r1 + b _080589B4 + .align 2, 0 +_080589A4: .4byte gLinkEntity +_080589A8: .4byte gRoomControls +_080589AC: + cmp r2, #0x57 + ble _080589B6 + ldr r0, [r4, #0x24] + adds r0, r0, r1 +_080589B4: + str r0, [r4, #0x24] +_080589B6: + ldr r2, [r4, #0x2c] + ldr r0, [r4, #0x24] + subs r1, r2, r0 + adds r3, r0, #0 + cmp r1, #0 + blt _080589CC + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r1, r0 + bhi _080589D6 + b _080589DE +_080589CC: + subs r1, r3, r2 + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r1, r0 + bls _080589DE +_080589D6: + str r3, [r4, #0x2c] + movs r0, #0x8b + bl sub_080A3268 +_080589DE: + movs r0, #0x26 + ldrsh r1, [r4, r0] + str r1, [r4, #0x20] + cmp r1, #0 + bge _080589F0 + ldr r0, _080589EC @ =0x000001FF + b _080589F8 + .align 2, 0 +_080589EC: .4byte 0x000001FF +_080589F0: + ldr r0, _08058A00 @ =0x000001FF + cmp r1, r0 + ble _080589FC + movs r0, #0 +_080589F8: + str r0, [r4, #0x20] + strh r0, [r4, #0x26] +_080589FC: + pop {r4, pc} + .align 2, 0 +_08058A00: .4byte 0x000001FF + + thumb_func_start sub_08058A04 +sub_08058A04: @ 0x08058A04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r6, _08058A68 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r7, _08058A6C @ =gRoomControls + ldrh r0, [r7, #6] + subs r1, r1, r0 + mov r8, r1 + movs r0, #0x32 + ldrsh r1, [r6, r0] + ldrh r0, [r7, #8] + subs r5, r1, r0 + ldr r0, [r4, #0x20] + ldr r1, _08058A70 @ =0xFFFFFEE8 + adds r0, r0, r1 + cmp r0, #0xc + bhi _08058A78 + movs r0, #0x17 + bl GetProgressFlag + cmp r0, #0 + beq _08058A78 + mov r0, r8 + subs r0, #0x6d + cmp r0, #0x16 + bhi _08058A78 + adds r0, r5, #0 + subs r0, #0x45 + cmp r0, #0x16 + bhi _08058A78 + movs r0, #0x36 + ldrsh r2, [r6, r0] + cmp r2, #0 + bne _08058A78 + ldr r0, _08058A74 @ =gUnk_03003F80 + movs r1, #3 + strb r1, [r0, #0xc] + adds r0, #0x38 + strb r2, [r0] + ldrh r0, [r7, #6] + adds r0, #0x78 + strh r0, [r6, #0x2e] + ldrh r0, [r7, #8] + adds r0, #0x50 + strh r0, [r6, #0x32] + b _08058AFC + .align 2, 0 +_08058A68: .4byte gLinkEntity +_08058A6C: .4byte gRoomControls +_08058A70: .4byte 0xFFFFFEE8 +_08058A74: .4byte gUnk_03003F80 +_08058A78: + mov r1, r8 + cmp r1, #0x77 + bgt _08058AC0 + cmp r5, #0x4f + bgt _08058AA0 + ldr r3, _08058A9C @ =gUnk_08108228 + adds r0, r4, #0 + movs r1, #0x88 + movs r2, #0xb0 + bl sub_08058B08 + cmp r0, #0 + beq _08058AFC + adds r0, r4, #0 + movs r1, #0 + bl sub_08058B5C + b _08058AFC + .align 2, 0 +_08058A9C: .4byte gUnk_08108228 +_08058AA0: + ldr r3, _08058ABC @ =gUnk_08108258 + adds r0, r4, #0 + movs r1, #0x38 + movs r2, #0x60 + bl sub_08058B08 + cmp r0, #0 + beq _08058AFC + adds r0, r4, #0 + movs r1, #1 + bl sub_08058B5C + b _08058AFC + .align 2, 0 +_08058ABC: .4byte gUnk_08108258 +_08058AC0: + cmp r5, #0x4f + bgt _08058AE4 + movs r2, #0x84 + lsls r2, r2, #1 + ldr r3, _08058AE0 @ =gUnk_08108288 + adds r0, r4, #0 + movs r1, #0xe0 + bl sub_08058B08 + cmp r0, #0 + beq _08058AFC + adds r0, r4, #0 + movs r1, #2 + bl sub_08058B5C + b _08058AFC + .align 2, 0 +_08058AE0: .4byte gUnk_08108288 +_08058AE4: + ldr r3, _08058B04 @ =gUnk_081082B8 + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb8 + bl sub_08058B08 + cmp r0, #0 + beq _08058AFC + adds r0, r4, #0 + movs r1, #3 + bl sub_08058B5C +_08058AFC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08058B04: .4byte gUnk_081082B8 + + thumb_func_start sub_08058B08 +sub_08058B08: @ 0x08058B08 + push {r4, r5, lr} + adds r4, r3, #0 + ldr r0, [r0, #0x20] + cmp r0, r1 + blo _08058B16 + cmp r0, r2 + bls _08058B1A +_08058B16: + movs r0, #0 + b _08058B50 +_08058B1A: + subs r0, r0, r1 + lsrs r0, r0, #3 + lsls r0, r0, #3 + adds r4, r4, r0 + ldr r3, _08058B54 @ =gLinkEntity + movs r0, #0x2e + ldrsh r2, [r3, r0] + ldr r1, _08058B58 @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + ldrh r0, [r4] + subs r2, r2, r0 + movs r5, #0x32 + ldrsh r0, [r3, r5] + ldrh r1, [r1, #8] + subs r0, r0, r1 + ldrh r1, [r4, #2] + subs r0, r0, r1 + movs r1, #0 + ldrh r3, [r4, #4] + cmp r2, r3 + bhs _08058B4E + ldrh r4, [r4, #6] + cmp r0, r4 + bhs _08058B4E + movs r1, #1 +_08058B4E: + adds r0, r1, #0 +_08058B50: + pop {r4, r5, pc} + .align 2, 0 +_08058B54: .4byte gLinkEntity +_08058B58: .4byte gRoomControls + + thumb_func_start sub_08058B5C +sub_08058B5C: @ 0x08058B5C + push {r4, r5, lr} + ldr r3, _08058BB4 @ =gUnk_030010A0 + movs r0, #0 + movs r4, #1 + strb r4, [r3, #8] + strb r0, [r3, #9] + movs r5, #4 + movs r0, #4 + strb r0, [r3, #0xf] + ldr r0, _08058BB8 @ =gRoomControls + ldrb r0, [r0, #4] + strb r0, [r3, #0xc] + movs r0, #6 + strb r0, [r3, #0xd] + adds r2, r1, #0 + ands r2, r4 + rsbs r0, r2, #0 + orrs r0, r2 + asrs r0, r0, #0x1f + ands r0, r5 + strb r0, [r3, #0xe] + ldr r4, _08058BBC @ =gUnk_081082E8 + lsls r2, r1, #1 + adds r2, r2, r1 + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r3, #0x10] + adds r0, r2, #1 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r3, #0x12] + ldr r1, _08058BC0 @ =gUnk_02002A40 + adds r2, #2 + lsls r2, r2, #1 + adds r2, r2, r4 + ldrh r0, [r2] + strb r0, [r1, #7] + ldr r0, _08058BC4 @ =0x00000121 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_08058BB4: .4byte gUnk_030010A0 +_08058BB8: .4byte gRoomControls +_08058BBC: .4byte gUnk_081082E8 +_08058BC0: .4byte gUnk_02002A40 +_08058BC4: .4byte 0x00000121 + + thumb_func_start sub_08058BC8 +sub_08058BC8: @ 0x08058BC8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + mov sb, r0 + ldr r0, _08058C9C @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _08058CA0 @ =gUnk_02017AA0 + adds r4, r0, r1 + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [sp] + mov r1, sp + movs r2, #0 + movs r0, #0x78 + strh r0, [r1, #8] + movs r0, #0x80 + strh r0, [r1, #0xa] + mov r0, sp + strh r2, [r0, #0x10] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0, #0xe] + strh r1, [r0, #0xc] + movs r5, #0 + mov r6, sp + ldr r0, _08058CA4 @ =gUnk_080C9160 + mov r8, r0 + adds r7, r1, #0 +_08058C0A: + lsls r0, r5, #7 + movs r1, #0xa0 + bl __divsi3 + movs r1, #0xff + ands r0, r1 + lsls r1, r0, #1 + add r1, r8 + movs r3, #0 + ldrsh r2, [r1, r3] + lsls r1, r2, #1 + adds r1, r1, r2 + asrs r1, r1, #2 + adds r1, r1, r7 + strh r1, [r6, #0xc] + lsls r0, r0, #2 + add r0, r8 + movs r1, #0 + ldrsh r0, [r0, r1] + asrs r0, r0, #4 + subs r0, r7, r0 + strh r0, [r6, #0xe] + mov r3, sb + ldr r0, [r3, #0x20] + adds r0, r0, r5 + lsls r0, r0, #8 + str r0, [sp, #4] + mov r0, sp + adds r1, r4, #0 + movs r2, #1 + bl BgAffineSet + adds r4, #0x10 + adds r5, #1 + cmp r5, #0x9f + bls _08058C0A + ldr r0, _08058C9C @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _08058CA8 @ =gUnk_02017BA0 + adds r4, r0, r1 + ldr r2, _08058CAC @ =gLCDControls + ldrh r0, [r4] + strh r0, [r2, #0x38] + ldrh r0, [r4, #2] + strh r0, [r2, #0x3a] + ldrh r0, [r4, #4] + strh r0, [r2, #0x3c] + ldrh r0, [r4, #6] + strh r0, [r2, #0x3e] + ldrh r1, [r4, #8] + adds r0, r2, #0 + adds r0, #0x40 + strh r1, [r0] + ldrh r0, [r4, #0xa] + adds r1, r2, #0 + adds r1, #0x42 + strh r0, [r1] + ldrh r1, [r4, #0xc] + adds r0, r2, #0 + adds r0, #0x44 + strh r1, [r0] + ldrh r1, [r4, #0xe] + adds r0, #2 + strh r1, [r0] + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08058C9C: .4byte gUnk_03003DE4 +_08058CA0: .4byte gUnk_02017AA0 +_08058CA4: .4byte gUnk_080C9160 +_08058CA8: .4byte gUnk_02017BA0 +_08058CAC: .4byte gLCDControls + + thumb_func_start sub_08058CB0 +sub_08058CB0: @ 0x08058CB0 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08058CD8 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r2, r0] + ldr r3, _08058CDC @ =gRoomControls + ldrh r0, [r3, #6] + subs r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + ldrh r0, [r3, #8] + subs r2, r2, r0 + cmp r1, #0x77 + bhi _08058CE0 + movs r1, #1 + cmp r2, #0x4f + bhi _08058CE8 + movs r1, #0 + b _08058CE8 + .align 2, 0 +_08058CD8: .4byte gLinkEntity +_08058CDC: .4byte gRoomControls +_08058CE0: + movs r1, #3 + cmp r2, #0x4f + bhi _08058CE8 + movs r1, #2 +_08058CE8: + ldr r0, _08058CF8 @ =gUnk_08108300 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + str r0, [r4, #0x20] + strh r0, [r4, #0x26] + pop {r4, pc} + .align 2, 0 +_08058CF8: .4byte gUnk_08108300 + + thumb_func_start sub_08058CFC +sub_08058CFC: @ 0x08058CFC + push {r4, r5, lr} + ldr r5, _08058D2C @ =gLinkEntity + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldr r1, _08058D30 @ =gRoomControls + movs r2, #0xc + ldrsh r1, [r1, r2] + subs r4, r0, r1 + cmp r4, #0x4b + bhi _08058D1A + adds r0, r5, #0 + movs r1, #0xc0 + movs r2, #0x10 + bl sub_080044AE +_08058D1A: + cmp r4, #0x54 + bls _08058D28 + adds r0, r5, #0 + movs r1, #0xc0 + movs r2, #0 + bl sub_080044AE +_08058D28: + pop {r4, r5, pc} + .align 2, 0 +_08058D2C: .4byte gLinkEntity +_08058D30: .4byte gRoomControls + + thumb_func_start sub_08058D34 +sub_08058D34: @ 0x08058D34 + push {r4, lr} + movs r0, #0x28 + bl sub_0801D714 + ldr r0, _08058DAC @ =gUnk_02017700 + movs r2, #0x90 + lsls r2, r2, #2 + adds r1, r0, r2 + movs r2, #0x20 + bl sub_0801D66C + ldr r2, _08058DB0 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r2] + movs r0, #0x16 + bl sub_0801D7EC + ldr r1, _08058DB4 @ =gLCDControls + ldrh r0, [r1] + movs r3, #0 + movs r2, #1 + movs r4, #0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _08058DB8 @ =0x0000BC82 + strh r0, [r1, #0x20] + ldr r0, _08058DBC @ =0x00005E86 + strh r0, [r1, #0x14] + strh r3, [r1, #0x16] + strh r3, [r1, #0x18] + adds r2, r1, #0 + adds r2, #0x66 + ldr r0, _08058DC0 @ =0x00003456 + strh r0, [r2] + adds r1, #0x68 + ldr r0, _08058DC4 @ =0x00000909 + strh r0, [r1] + ldr r0, _08058DC8 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + ldr r0, _08058DCC @ =gUnk_02000070 + strb r4, [r0] + movs r0, #0x17 + bl GetProgressFlag + cmp r0, #0 + beq _08058DA8 + movs r0, #0x4a + bl sub_0801D7EC +_08058DA8: + pop {r4, pc} + .align 2, 0 +_08058DAC: .4byte gUnk_02017700 +_08058DB0: .4byte gUnk_0200B644 +_08058DB4: .4byte gLCDControls +_08058DB8: .4byte 0x0000BC82 +_08058DBC: .4byte 0x00005E86 +_08058DC0: .4byte 0x00003456 +_08058DC4: .4byte 0x00000909 +_08058DC8: .4byte gUnk_02033A90 +_08058DCC: .4byte gUnk_02000070 + + thumb_func_start sub_08058DD0 +sub_08058DD0: @ 0x08058DD0 + push {lr} + ldr r2, _08058DE4 @ =gUnk_08108308 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08058DE4: .4byte gUnk_08108308 + + thumb_func_start sub_08058DE8 +sub_08058DE8: @ 0x08058DE8 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08058DFC + bl sub_0805E780 + b _08058E14 +_08058DFC: + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3a] + bl sub_0808094C + ldrh r1, [r4, #0x38] + lsls r1, r1, #1 + adds r1, #4 + adds r0, r0, r1 + str r0, [r4, #0x30] + ldrh r0, [r0] + strh r0, [r4, #0x28] +_08058E14: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08058E18 +sub_08058E18: @ 0x08058E18 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x30] + ldrh r0, [r2, #0x28] + ldrh r1, [r1] + cmp r0, r1 + beq _08058E30 + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + movs r0, #0xf + strb r0, [r2, #0xe] +_08058E30: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08058E34 +sub_08058E34: @ 0x08058E34 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08058E5E + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08058E58 + bl sub_0804B128 + bl LoadRoomEntityList +_08058E58: + adds r0, r4, #0 + bl sub_0805E900 +_08058E5E: + pop {r4, pc} + + thumb_func_start sub_08058E60 +sub_08058E60: @ 0x08058E60 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08058E80 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08058E80 + adds r0, r4, #0 + bl sub_0805E900 + b _08058EC8 +_08058E80: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08058EC8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08058E9E + movs r0, #0 + strb r0, [r4, #0xb] + movs r0, #0xff + bl sub_08078A90 + bl sub_08078B48 +_08058E9E: + ldrh r1, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08058EC4 + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08058EB4 + bl sub_080A3268 +_08058EB4: + ldrb r0, [r4, #0xa] + bl sub_0804B128 + bl LoadRoomEntityList + bl sub_0805E780 + b _08058EC8 +_08058EC4: + subs r0, r1, #1 + strh r0, [r4, #0x3a] +_08058EC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08058ECC +sub_08058ECC: @ 0x08058ECC + push {lr} + ldr r2, _08058EE0 @ =gUnk_08108314 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08058EE0: .4byte gUnk_08108314 + + thumb_func_start sub_08058EE4 +sub_08058EE4: @ 0x08058EE4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _08058EF2 + movs r0, #1 + strb r0, [r6, #0xc] +_08058EF2: + ldrb r0, [r6, #0xb] + bl sub_0807CC3C + cmp r0, #0 + beq _08058F40 + movs r5, #0x94 + lsls r5, r5, #1 + ldrb r2, [r6, #0xb] + adds r2, #1 + adds r0, r5, #0 + movs r1, #0x68 + bl sub_08058F44 + movs r4, #0xac + lsls r4, r4, #1 + ldrb r2, [r6, #0xb] + adds r2, #2 + adds r0, r4, #0 + movs r1, #0x68 + bl sub_08058F44 + ldrb r2, [r6, #0xb] + adds r2, #3 + adds r0, r5, #0 + movs r1, #0x98 + bl sub_08058F44 + ldrb r2, [r6, #0xb] + adds r2, #4 + adds r0, r4, #0 + movs r1, #0x98 + bl sub_08058F44 + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 + bl sub_0805E780 +_08058F40: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08058F44 +sub_08058F44: @ 0x08058F44 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r2, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _08058F80 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_080002A8 + cmp r0, #0x61 + bne _08058F80 + lsrs r1, r4, #4 + movs r2, #0x3f + ands r1, r2 + lsrs r0, r5, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0x26 + movs r2, #1 + bl sub_0807B314 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08058F84 +_08058F80: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08058F84 +sub_08058F84: @ 0x08058F84 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0x21 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08058FA8 + ldr r0, _08058FAC @ =gRoomControls + ldrh r1, [r0, #6] + adds r1, r1, r4 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, r0, r5 + strh r0, [r2, #0x32] +_08058FA8: + pop {r4, r5, pc} + .align 2, 0 +_08058FAC: .4byte gRoomControls + + thumb_func_start sub_08058FB0 +sub_08058FB0: @ 0x08058FB0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08058FF6 + cmp r0, #1 + bgt _08058FC4 + cmp r0, #0 + beq _08058FCA + b _08059050 +_08058FC4: + cmp r0, #2 + beq _08059018 + b _08059050 +_08058FCA: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08058FDC + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #6 + b _08058FE2 +_08058FDC: + movs r0, #8 + strb r0, [r4, #0xd] + movs r0, #2 +_08058FE2: + strb r0, [r4, #0xf] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08059060 + adds r0, r4, #0 + bl sub_0805E900 + b _08059060 +_08058FF6: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08059060 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0xf0 + bl sub_0805E4E0 + adds r0, r4, #0 + bl sub_08059064 + b _08059060 +_08059018: + ldrb r0, [r4, #0xe] + cmp r0, #0x5a + bne _08059028 + movs r0, #2 + bl sub_08078A90 + bl sub_08077B20 +_08059028: + ldrb r2, [r4, #0xe] + cmp r2, #0x3c + bne _08059034 + ldr r1, _0805904C @ =gLinkEntity + ldrb r0, [r4, #0xf] + strb r0, [r1, #0x14] +_08059034: + subs r0, r2, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08059060 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xd] + movs r0, #5 + bl sub_080A7138 + b _08059060 + .align 2, 0 +_0805904C: .4byte gLinkEntity +_08059050: + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + movs r0, #1 + bl sub_08078A90 + bl sub_0805E780 +_08059060: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08059064 +sub_08059064: @ 0x08059064 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #0x53 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805908E + movs r0, #2 + strb r0, [r2, #0xe] + ldr r1, _08059090 @ =gRoomControls + ldrh r0, [r1, #6] + ldrh r3, [r4, #0x38] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + ldrh r4, [r4, #0x3a] + adds r0, r0, r4 + strh r0, [r2, #0x32] +_0805908E: + pop {r4, pc} + .align 2, 0 +_08059090: .4byte gRoomControls + + thumb_func_start sub_08059094 +sub_08059094: @ 0x08059094 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080590B6 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x60 + bl sub_0807CBD0 + cmp r0, #0 + bne _080590CC + movs r0, #0x5f + bl sub_0807CCB4 + b _080590C8 +_080590B6: + movs r0, #0x60 + bl sub_0807CBD0 + cmp r0, #0 + beq _080590C8 + movs r0, #0x5f + bl sub_0807CD34 + movs r5, #1 +_080590C8: + cmp r5, #0 + beq _080590D8 +_080590CC: + ldr r0, _080590DC @ =gUnk_080F4B88 + bl LoadRoomEntityList + adds r0, r4, #0 + bl sub_0805E900 +_080590D8: + pop {r4, r5, pc} + .align 2, 0 +_080590DC: .4byte gUnk_080F4B88 + + thumb_func_start sub_080590E0 +sub_080590E0: @ 0x080590E0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080590F6 + movs r0, #1 + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #6 + bl sub_0805E3A0 +_080590F6: + movs r0, #0x6c + bl sub_0807CBD0 + cmp r0, #0 + beq _0805911A + movs r0, #0x4b + bl sub_0807CBD0 + cmp r0, #0 + beq _08059112 + movs r0, #0x4a + bl sub_0807CCB4 + b _08059120 +_08059112: + movs r0, #0x4a + bl sub_0807CD34 + b _08059120 +_0805911A: + movs r0, #0x4a + bl sub_0807CD34 +_08059120: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08059124 +sub_08059124: @ 0x08059124 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08059174 + cmp r0, #1 + beq _080591AC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080591C8 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + ldrb r2, [r4, #0xb] + bl sub_080A29C8 + ldrh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + movs r2, #0x3f + ands r0, r2 + ldrh r1, [r4, #0x3a] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r4, #0xb] + bl sub_0807BA8C + movs r0, #0xcd + bl sub_080A3268 + bl sub_0805E780 + b _080591C8 +_08059174: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08059182 + bl sub_0805E780 +_08059182: + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080591A8 @ =0x00000365 + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r4, #0x3a] + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4, #0xb] + bl sub_0807B314 + b _080591C8 + .align 2, 0 +_080591A8: .4byte 0x00000365 +_080591AC: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _080591C8 + adds r0, r4, #0 + movs r1, #0x4b + bl sub_0805E4E0 + movs r0, #0x2d + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_080591C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080591CC +sub_080591CC: @ 0x080591CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080591F4 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + strb r0, [r4, #0xb] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08059214 + ldr r1, _080591F0 @ =gUnk_02034350 + ldrh r0, [r4, #0x3a] + b _08059218 + .align 2, 0 +_080591F0: .4byte gUnk_02034350 +_080591F4: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + adds r1, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, r1 + beq _0805921A + strb r1, [r4, #0xb] + cmp r1, #0 + beq _08059214 + ldr r1, _08059210 @ =gUnk_02034350 + ldrh r0, [r4, #0x3a] + b _08059218 + .align 2, 0 +_08059210: .4byte gUnk_02034350 +_08059214: + ldr r1, _0805921C @ =gUnk_02034350 + ldrh r0, [r4, #0x38] +_08059218: + strh r0, [r1, #0xc] +_0805921A: + pop {r4, pc} + .align 2, 0 +_0805921C: .4byte gUnk_02034350 + + thumb_func_start sub_08059220 +sub_08059220: @ 0x08059220 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r2, _08059268 @ =gUnk_02034350 + movs r0, #0 + strh r0, [r2, #0xc] + ldr r4, _0805926C @ =gUnk_08108354 + ldrh r0, [r4] + ldr r1, _08059270 @ =0x0000FFFF + cmp r0, r1 + beq _08059254 + adds r7, r2, #0 + adds r6, r1, #0 +_08059238: + ldrh r0, [r4] + ldrh r1, [r4, #2] + ldrh r2, [r4, #4] + ldrh r3, [r4, #6] + bl sub_0800293E + cmp r0, #0 + beq _0805924C + ldrh r0, [r4, #8] + strh r0, [r7, #0xc] +_0805924C: + adds r4, #0xa + ldrh r0, [r4] + cmp r0, r6 + bne _08059238 +_08059254: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08059266 + movs r0, #1 + strb r0, [r5, #0xc] + ldr r1, _08059274 @ =gUnk_02033A90 + ldr r0, _08059268 @ =gUnk_02034350 + ldrh r0, [r0, #0xc] + strh r0, [r1, #0xa] +_08059266: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08059268: .4byte gUnk_02034350 +_0805926C: .4byte gUnk_08108354 +_08059270: .4byte 0x0000FFFF +_08059274: .4byte gUnk_02033A90 + + thumb_func_start sub_08059278 +sub_08059278: @ 0x08059278 + push {lr} + movs r0, #9 + movs r1, #0xf + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + beq _0805928C + bl sub_08058ECC +_0805928C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08059290 +sub_08059290: @ 0x08059290 + movs r1, #1 + strb r1, [r0, #0xc] + ldr r1, _0805929C @ =gRoomControls + ldr r0, _080592A0 @ =gLinkEntity + str r0, [r1, #0x30] + bx lr + .align 2, 0 +_0805929C: .4byte gRoomControls +_080592A0: .4byte gLinkEntity + + thumb_func_start sub_080592A4 +sub_080592A4: @ 0x080592A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080592C8 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _080592EA + adds r0, r4, #0 + bl sub_080592EC + bl sub_0805E780 + b _080592EA +_080592C8: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _080592EA + adds r0, r4, #0 + bl sub_080592EC + adds r0, r4, #0 + bl sub_0805930C + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_080A3268 + bl sub_0805E780 +_080592EA: + pop {r4, pc} + + thumb_func_start sub_080592EC +sub_080592EC: @ 0x080592EC + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + movs r2, #0x3f + ands r0, r2 + ldrh r1, [r1, #0x3a] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_08059340 + pop {pc} + + thumb_func_start sub_0805930C +sub_0805930C: @ 0x0805930C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xf + movs r1, #0x43 + movs r2, #0x40 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805933A + ldr r1, _0805933C @ =gRoomControls + ldrh r0, [r1, #6] + ldrh r3, [r4, #0x38] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + ldrh r4, [r4, #0x3a] + adds r0, r0, r4 + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] +_0805933A: + pop {r4, pc} + .align 2, 0 +_0805933C: .4byte gRoomControls + + thumb_func_start sub_08059340 +sub_08059340: @ 0x08059340 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1d + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + subs r4, #0x40 + movs r0, #0 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08059368 +sub_08059368: @ 0x08059368 + push {lr} + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldr r1, _08059388 @ =gUnk_02022780 + ldrh r0, [r2, #0x3c] + ldrh r1, [r1, #0x28] + cmp r0, r1 + bne _08059384 + ldrh r0, [r2, #0x3e] + bl sub_0807CCC8 + bl sub_0805E780 +_08059384: + pop {pc} + .align 2, 0 +_08059388: .4byte gUnk_02022780 + + thumb_func_start sub_0805938C +sub_0805938C: @ 0x0805938C + push {r4, lr} + adds r4, r0, #0 + bl sub_080593CC + cmp r0, #0 + beq _080593C8 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _080593CA + movs r1, #0x38 + ldrsh r0, [r4, r1] + ldr r2, _080593C4 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r3, #0x3a + ldrsh r1, [r4, r3] + ldrh r2, [r2, #8] + subs r1, r1, r2 + movs r2, #0xff + movs r3, #0xa + bl sub_080806BC + b _080593CA + .align 2, 0 +_080593C4: .4byte gRoomControls +_080593C8: + strb r0, [r4, #0xe] +_080593CA: + pop {r4, pc} + + thumb_func_start sub_080593CC +sub_080593CC: @ 0x080593CC + push {r4, lr} + adds r3, r0, #0 + ldr r2, _08059418 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08059420 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08059420 + ldr r4, _0805941C @ =gLinkEntity + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08059420 + adds r0, r2, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #3 + cmp r0, r1 + bne _08059420 + movs r0, #0x38 + ldrsh r1, [r3, r0] + movs r0, #0x3a + ldrsh r2, [r3, r0] + adds r2, #0xc + adds r0, r4, #0 + movs r3, #6 + bl sub_0806FCB8 + b _08059422 + .align 2, 0 +_08059418: .4byte gUnk_03003F80 +_0805941C: .4byte gLinkEntity +_08059420: + movs r0, #0 +_08059422: + pop {r4, pc} + + thumb_func_start sub_08059424 +sub_08059424: @ 0x08059424 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08059436 + bl sub_0805E780 +_08059436: + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _08059476 + movs r0, #0xf + movs r1, #0x35 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08059476 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, _08059478 @ =gRoomControls + ldrh r0, [r1, #6] + ldrh r3, [r4, #0x38] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + ldrh r4, [r4, #0x3a] + adds r0, r0, r4 + strh r0, [r2, #0x32] + movs r0, #0xd8 + lsls r0, r0, #1 + bl sub_08004488 + bl sub_0805E780 +_08059476: + pop {r4, pc} + .align 2, 0 +_08059478: .4byte gRoomControls + + thumb_func_start sub_0805947C +sub_0805947C: @ 0x0805947C + push {lr} + ldrh r0, [r0, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + bne _080594CE + movs r0, #3 + bl sub_08078A90 + ldr r1, _080594B0 @ =gRoomControls + ldrh r0, [r1] + cmp r0, #0 + bne _080594D2 + ldr r0, _080594B4 @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + beq _080594BC + ldr r0, _080594B8 @ =gUnk_08108380 + ldrb r1, [r1, #0x10] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl sub_0807DB2C + b _080594CE + .align 2, 0 +_080594B0: .4byte gRoomControls +_080594B4: .4byte gUnk_02034350 +_080594B8: .4byte gUnk_08108380 +_080594BC: + ldr r1, _080594D4 @ =gUnk_08108380 + ldr r0, _080594D8 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_0807DB2C +_080594CE: + bl sub_0805E780 +_080594D2: + pop {pc} + .align 2, 0 +_080594D4: .4byte gUnk_08108380 +_080594D8: .4byte gLinkEntity + + thumb_func_start sub_080594DC +sub_080594DC: @ 0x080594DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080594F2 + cmp r0, #1 + bgt _0805951C + cmp r0, #0 + bne _0805951C + movs r0, #1 + strb r0, [r4, #0xc] +_080594F2: + movs r0, #6 + bl GetInventoryValue + cmp r0, #0 + beq _08059540 + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x85 + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _08059540 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, _08059518 @ =0x00000B0F + bl sub_080186C0 + b _08059540 + .align 2, 0 +_08059518: .4byte 0x00000B0F +_0805951C: + ldr r0, _08059544 @ =gUnk_02033A90 + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #0xff + beq _0805952A + bl sub_0805E780 +_0805952A: + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x85 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _08059540 + bl sub_0801855C + bl sub_0805E780 +_08059540: + pop {r4, pc} + .align 2, 0 +_08059544: .4byte gUnk_02033A90 + + thumb_func_start sub_08059548 +sub_08059548: @ 0x08059548 + push {lr} + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _08059568 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x16 + bne _0805955C + bl sub_0805E780 +_0805955C: + ldr r2, _0805956C @ =gUnk_03000FF0 + ldrh r1, [r2] + movs r0, #4 + orrs r0, r1 + strh r0, [r2] + pop {pc} + .align 2, 0 +_08059568: .4byte gLinkEntity +_0805956C: .4byte gUnk_03000FF0 + + thumb_func_start sub_08059570 +sub_08059570: @ 0x08059570 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _080595C8 + movs r6, #1 + strb r6, [r4, #0xc] + adds r0, #0x21 + strb r5, [r0] + adds r0, #2 + strb r5, [r0] + bl sub_0805986C + cmp r0, #0 + beq _080595A8 + adds r0, r4, #0 + adds r0, #0x20 + strb r6, [r0] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #2 + strb r0, [r1] + ldr r0, _080595A4 @ =gUnk_0200B650 + str r5, [r0] + b _080595B8 + .align 2, 0 +_080595A4: .4byte gUnk_0200B650 +_080595A8: + adds r0, r4, #0 + adds r0, #0x20 + movs r1, #0x1f + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #5 + strb r0, [r1] +_080595B8: + ldr r0, _080595DC @ =gUnk_02034350 + movs r1, #0xff + strb r1, [r0, #0x10] + ldr r1, _080595E0 @ =sub_080595E4 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_080595C8: + adds r0, r4, #0 + bl sub_08059608 + adds r0, r4, #0 + bl sub_08059690 + adds r0, r4, #0 + bl sub_080596E0 + pop {r4, r5, r6, pc} + .align 2, 0 +_080595DC: .4byte gUnk_02034350 +_080595E0: .4byte sub_080595E4 + + thumb_func_start sub_080595E4 +sub_080595E4: @ 0x080595E4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08059604 @ =gUnk_02034350 + movs r0, #0xff + strb r0, [r1, #0x10] + adds r0, r4, #0 + bl sub_08059690 + adds r0, r4, #0 + bl sub_080596E0 + movs r0, #0 + bl sub_0805B4D0 + pop {r4, pc} + .align 2, 0 +_08059604: .4byte gUnk_02034350 + + thumb_func_start sub_08059608 +sub_08059608: @ 0x08059608 + push {r4, lr} + adds r4, r0, #0 + adds r4, #0x23 + ldrb r0, [r4] + cmp r0, #0 + beq _08059638 + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08059682 + ldr r0, _08059634 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + bl sub_080A3268 + b _08059682 + .align 2, 0 +_08059634: .4byte gUnk_02033A90 +_08059638: + bl sub_0805986C + cmp r0, #0 + beq _08059668 + ldr r0, _0805965C @ =gUnk_02033A90 + ldr r2, _08059660 @ =0x00000864 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, #0x1e + beq _08059682 + movs r0, #0x1e + str r0, [r1] + movs r0, #0x78 + strb r0, [r4] + ldr r0, _08059664 @ =0x800D0000 + bl sub_080A3268 + b _08059682 + .align 2, 0 +_0805965C: .4byte gUnk_02033A90 +_08059660: .4byte 0x00000864 +_08059664: .4byte 0x800D0000 +_08059668: + ldr r0, _08059684 @ =gUnk_02033A90 + ldr r2, _08059688 @ =0x00000864 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, #0x37 + beq _08059682 + movs r0, #0x37 + str r0, [r1] + movs r0, #0x78 + strb r0, [r4] + ldr r0, _0805968C @ =0x800D0000 + bl sub_080A3268 +_08059682: + pop {r4, pc} + .align 2, 0 +_08059684: .4byte gUnk_02033A90 +_08059688: .4byte 0x00000864 +_0805968C: .4byte 0x800D0000 + + thumb_func_start sub_08059690 +sub_08059690: @ 0x08059690 + push {r4, lr} + adds r4, r0, #0 + bl sub_08059844 + cmp r0, #0 + beq _080596BC + adds r4, #0x20 + ldrb r0, [r4] + cmp r0, #0 + beq _080596D8 + ldr r0, _080596B8 @ =gUnk_085A7320 + movs r2, #0xd0 + lsls r2, r2, #1 + adds r1, r0, r2 + ldrb r2, [r4] + bl sub_08059894 + ldrb r0, [r4] + subs r0, #1 + b _080596D6 + .align 2, 0 +_080596B8: .4byte gUnk_085A7320 +_080596BC: + adds r4, #0x20 + ldrb r0, [r4] + cmp r0, #0x1f + bhi _080596D8 + ldr r0, _080596DC @ =gUnk_085A7320 + movs r2, #0xd0 + lsls r2, r2, #1 + adds r1, r0, r2 + ldrb r2, [r4] + bl sub_08059894 + ldrb r0, [r4] + adds r0, #1 +_080596D6: + strb r0, [r4] +_080596D8: + pop {r4, pc} + .align 2, 0 +_080596DC: .4byte gUnk_085A7320 + + thumb_func_start sub_080596E0 +sub_080596E0: @ 0x080596E0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _08059730 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080596FC + ldr r0, _08059734 @ =gLCDControls + ldrh r1, [r0, #0x16] + adds r1, #8 + movs r2, #0x1f + ands r1, r2 + strh r1, [r0, #0x16] +_080596FC: + bl sub_0805986C + cmp r0, #0 + beq _08059740 + adds r0, r4, #0 + adds r0, #0x21 + ldrb r1, [r0] + adds r5, r0, #0 + adds r2, r4, #0 + adds r2, #0x22 + cmp r1, #0 + bne _08059764 + ldrb r0, [r2] + cmp r0, #2 + beq _08059764 + movs r0, #1 + strb r0, [r5] + movs r0, #3 + strb r0, [r2] + ldr r0, _08059738 @ =gUnk_08108390 + ldrb r0, [r0, #3] + strb r0, [r4, #0xe] + ldr r0, _0805973C @ =gUnk_0200B650 + str r1, [r0] + b _08059764 + .align 2, 0 +_08059730: .4byte gUnk_030010A0 +_08059734: .4byte gLCDControls +_08059738: .4byte gUnk_08108390 +_0805973C: .4byte gUnk_0200B650 +_08059740: + adds r0, r4, #0 + adds r0, #0x21 + ldrb r1, [r0] + adds r5, r0, #0 + adds r2, r4, #0 + adds r2, #0x22 + cmp r1, #0 + bne _08059764 + ldrb r0, [r2] + cmp r0, #5 + beq _08059764 + movs r0, #2 + strb r0, [r5] + ldr r1, _08059774 @ =gUnk_08108390 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] +_08059764: + adds r6, r5, #0 + ldrb r0, [r6] + cmp r0, #1 + beq _08059778 + cmp r0, #2 + beq _080597A8 + b _080597D0 + .align 2, 0 +_08059774: .4byte gUnk_08108390 +_08059778: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080597D0 + ldr r1, _080597A4 @ =gUnk_08108390 + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + ands r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + ldrb r0, [r2] + cmp r0, #2 + bne _080597D0 + strb r5, [r6] + b _080597D0 + .align 2, 0 +_080597A4: .4byte gUnk_08108390 +_080597A8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080597D0 + ldr r1, _080597EC @ =gUnk_08108390 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ands r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + ldrb r0, [r2] + cmp r0, #5 + bne _080597D0 + strb r6, [r5] +_080597D0: + ldr r3, _080597F0 @ =gUnk_02034350 + ldrb r1, [r2] + ldrb r0, [r3, #0x10] + cmp r0, r1 + beq _08059838 + strb r1, [r3, #0x10] + ldrb r0, [r2] + cmp r0, #4 + beq _08059800 + cmp r0, #4 + ble _080597F4 + cmp r0, #5 + beq _08059824 + b _08059838 + .align 2, 0 +_080597EC: .4byte gUnk_08108390 +_080597F0: .4byte gUnk_02034350 +_080597F4: + cmp r0, #0 + blt _08059838 + adds r0, #0x2b + bl sub_0801D7EC + b _08059838 +_08059800: + ldr r4, _0805981C @ =gUnk_02001A40 + movs r5, #0x80 + lsls r5, r5, #4 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0801D630 + ldr r1, _08059820 @ =0x0600E800 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_08000E96 + b _08059838 + .align 2, 0 +_0805981C: .4byte gUnk_02001A40 +_08059820: .4byte 0x0600E800 +_08059824: + ldr r0, _0805983C @ =gUnk_0200B650 + ldr r1, _08059840 @ =gBG1Settings + str r1, [r0] + subs r1, #0x14 + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] +_08059838: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805983C: .4byte gUnk_0200B650 +_08059840: .4byte gBG1Settings + + thumb_func_start sub_08059844 +sub_08059844: @ 0x08059844 + push {lr} + movs r3, #0 + ldr r0, _08059864 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r2, _08059868 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + ldrh r0, [r2, #0x1e] + lsrs r0, r0, #1 + cmp r1, r0 + ble _0805985E + movs r3, #1 +_0805985E: + adds r0, r3, #0 + pop {pc} + .align 2, 0 +_08059864: .4byte gLinkEntity +_08059868: .4byte gRoomControls + + thumb_func_start sub_0805986C +sub_0805986C: @ 0x0805986C + push {lr} + movs r2, #0 + ldr r0, _0805988C @ =gLinkEntity + movs r3, #0x2e + ldrsh r1, [r0, r3] + ldr r0, _08059890 @ =gRoomControls + ldrh r0, [r0, #6] + subs r1, r1, r0 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + ble _08059886 + movs r2, #1 +_08059886: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0805988C: .4byte gLinkEntity +_08059890: .4byte gRoomControls + + thumb_func_start sub_08059894 +sub_08059894: @ 0x08059894 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, _080598E8 @ =gUnk_020176E0 + mov sb, r0 + movs r6, #0 + lsls r2, r2, #0x18 + mov r8, r2 +_080598AA: + adds r0, r5, #0 + adds r1, r4, #0 + mov r2, sb + mov r7, r8 + lsrs r3, r7, #0x18 + bl sub_08059960 + adds r5, #0x20 + adds r4, #0x20 + movs r0, #0x20 + add sb, r0 + adds r6, #1 + cmp r6, #0xc + bls _080598AA + ldr r0, _080598EC @ =gUnk_02017700 + movs r2, #0x90 + lsls r2, r2, #2 + adds r1, r0, r2 + movs r2, #0x20 + bl sub_0801D66C + ldr r2, _080598F0 @ =gUnk_0200B644 + ldr r0, [r2] + ldr r1, _080598F4 @ =0x00207FFC + orrs r0, r1 + str r0, [r2] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080598E8: .4byte gUnk_020176E0 +_080598EC: .4byte gUnk_02017700 +_080598F0: .4byte gUnk_0200B644 +_080598F4: .4byte 0x00207FFC + + thumb_func_start sub_080598F8 +sub_080598F8: @ 0x080598F8 + push {r4, r5, r6, r7, lr} + movs r4, #0x1f + adds r3, r0, #0 + ands r3, r4 + lsls r6, r3, #8 + adds r3, r6, #0 + muls r3, r2, r3 + lsrs r6, r3, #5 + adds r3, r1, #0 + ands r3, r4 + lsls r3, r3, #8 + movs r4, #0x20 + subs r4, r4, r2 + muls r3, r4, r3 + lsrs r3, r3, #5 + adds r3, r6, r3 + lsrs r6, r3, #8 + movs r5, #0xf8 + lsls r5, r5, #2 + adds r3, r0, #0 + ands r3, r5 + lsls r7, r3, #3 + adds r3, r7, #0 + muls r3, r2, r3 + lsrs r7, r3, #5 + adds r3, r1, #0 + ands r3, r5 + lsls r3, r3, #3 + muls r3, r4, r3 + lsrs r3, r3, #5 + adds r3, r7, r3 + lsrs r7, r3, #8 + movs r3, #0xf8 + lsls r3, r3, #7 + ands r0, r3 + lsrs r5, r0, #2 + adds r0, r5, #0 + muls r0, r2, r0 + lsrs r5, r0, #5 + ands r1, r3 + lsrs r0, r1, #2 + muls r0, r4, r0 + lsrs r0, r0, #5 + adds r0, r5, r0 + lsrs r5, r0, #8 + lsls r0, r7, #5 + orrs r6, r0 + lsls r0, r5, #0xa + orrs r6, r0 + adds r0, r6, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08059960 +sub_08059960: @ 0x08059960 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + movs r7, #0 +_08059974: + ldrh r0, [r6] + adds r6, #2 + ldrh r1, [r5] + adds r5, #2 + mov r2, r8 + bl sub_080598F8 + strh r0, [r4] + adds r4, #2 + adds r7, #1 + cmp r7, #0xf + bls _08059974 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08059994 +sub_08059994: @ 0x08059994 + push {lr} + bl sub_0805986C + cmp r0, #0 + beq _080599AE + movs r0, #0x5b + bl sub_0801D714 + ldr r0, _080599B0 @ =gUnk_02033A90 + ldr r1, _080599B4 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1e + str r1, [r0] +_080599AE: + pop {pc} + .align 2, 0 +_080599B0: .4byte gUnk_02033A90 +_080599B4: .4byte 0x00000864 + + thumb_func_start sub_080599B8 +sub_080599B8: @ 0x080599B8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080599D6 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _080599EA + bl sub_0805E780 + b _080599EA +_080599D6: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _080599EA + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + bl sub_0805E780 +_080599EA: + pop {r4, pc} + + thumb_func_start sub_080599EC +sub_080599EC: @ 0x080599EC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08059A20 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + ldr r1, _08059A28 @ =sub_08059A2C + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 +_08059A20: + adds r0, r4, #0 + bl sub_08059A58 + pop {r4, pc} + .align 2, 0 +_08059A28: .4byte sub_08059A2C + + thumb_func_start sub_08059A2C +sub_08059A2C: @ 0x08059A2C + push {lr} + adds r2, r0, #0 + ldr r1, _08059A54 @ =gUnk_02034350 + movs r0, #0xff + strb r0, [r1, #0x12] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1, #0x11] + strb r0, [r1, #0x10] + adds r1, r2, #0 + adds r1, #0x22 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08059A58 + pop {pc} + .align 2, 0 +_08059A54: .4byte gUnk_02034350 + + thumb_func_start sub_08059A58 +sub_08059A58: @ 0x08059A58 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08059AC4 @ =gRoomControls + ldrb r0, [r0, #4] + cmp r0, #0x15 + beq _08059AD4 + adds r4, r5, #0 + adds r4, #0x20 + ldr r3, _08059AC8 @ =gUnk_08108398 + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_08059C8C + cmp r0, #0 + beq _08059A80 + ldrb r1, [r4] + movs r0, #0 + bl sub_08059CC0 +_08059A80: + adds r4, r5, #0 + adds r4, #0x21 + ldr r3, _08059ACC @ =gUnk_081083AE + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + bl sub_08059C8C + cmp r0, #0 + beq _08059AA6 + ldrb r1, [r4] + movs r0, #1 + bl sub_08059CC0 + ldrb r0, [r4] + cmp r0, #2 + bne _08059AA6 + bl sub_08059B18 +_08059AA6: + adds r4, r5, #0 + adds r4, #0x22 + ldr r3, _08059AD0 @ =gUnk_081083C4 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_08059C8C + cmp r0, #0 + beq _08059B0C + ldrb r1, [r4] + movs r0, #2 + bl sub_08059CC0 + b _08059B0C + .align 2, 0 +_08059AC4: .4byte gRoomControls +_08059AC8: .4byte gUnk_08108398 +_08059ACC: .4byte gUnk_081083AE +_08059AD0: .4byte gUnk_081083C4 +_08059AD4: + adds r4, r5, #0 + adds r4, #0x20 + ldr r3, _08059B10 @ =gUnk_081083DA + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_08059C8C + cmp r0, #0 + beq _08059AF0 + ldrb r1, [r4] + movs r0, #0 + bl sub_08059CC0 +_08059AF0: + adds r4, r5, #0 + adds r4, #0x22 + ldr r3, _08059B14 @ =gUnk_081083F2 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_08059C8C + cmp r0, #0 + beq _08059B0C + ldrb r1, [r4] + movs r0, #2 + bl sub_08059CC0 +_08059B0C: + pop {r4, r5, pc} + .align 2, 0 +_08059B10: .4byte gUnk_081083DA +_08059B14: .4byte gUnk_081083F2 + + thumb_func_start sub_08059B18 +sub_08059B18: @ 0x08059B18 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #0x18 + bl GetProgressFlag + cmp r0, #0 + beq _08059BEC + movs r6, #0 + movs r0, #0x3f + mov sb, r0 + movs r2, #0xc4 + lsls r2, r2, #1 + mov r8, r2 +_08059B38: + movs r5, #0 + lsls r1, r6, #4 + mov r2, r8 + lsrs r0, r2, #4 + mov r2, sb + ands r0, r2 + lsls r3, r0, #6 + movs r7, #0x28 + ldr r0, _08059BD8 @ =0x000004AB + adds r4, r1, r0 +_08059B4C: + lsrs r1, r7, #4 + mov r2, sb + ands r1, r2 + orrs r1, r3 + adds r0, r4, #0 + movs r2, #1 + str r3, [sp] + bl sub_0807B9B8 + adds r7, #0x10 + adds r4, #1 + adds r5, #1 + ldr r3, [sp] + cmp r5, #3 + bls _08059B4C + movs r0, #0x10 + add r8, r0 + adds r6, #1 + cmp r6, #3 + bls _08059B38 + movs r6, #0 + movs r3, #0x3f +_08059B78: + movs r5, #0 + lsls r1, r6, #4 + adds r6, #1 + mov r8, r6 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r1, r2 + lsrs r0, r0, #4 + ands r0, r3 + lsls r7, r0, #6 + movs r6, #0x28 + movs r0, #0x88 + lsls r0, r0, #3 + adds r4, r1, r0 +_08059B94: + lsrs r1, r6, #4 + ands r1, r3 + orrs r1, r7 + adds r0, r4, #0 + movs r2, #2 + str r3, [sp] + bl sub_0807B9B8 + adds r6, #0x10 + adds r4, #1 + adds r5, #1 + ldr r3, [sp] + cmp r5, #3 + bls _08059B94 + mov r6, r8 + cmp r6, #2 + bls _08059B78 + ldr r1, _08059BDC @ =0x000005C2 + movs r0, #0xd6 + movs r2, #2 + bl sub_0807B9B8 + ldr r1, _08059BE0 @ =0x000005C3 + movs r0, #0xd7 + movs r2, #2 + bl sub_0807B9B8 + ldr r0, _08059BE4 @ =gUnk_086E8460 + ldr r1, _08059BE8 @ =0x06001800 + movs r2, #0x80 + lsls r2, r2, #4 + bl sub_08000E96 + b _08059C5E + .align 2, 0 +_08059BD8: .4byte 0x000004AB +_08059BDC: .4byte 0x000005C2 +_08059BE0: .4byte 0x000005C3 +_08059BE4: .4byte gUnk_086E8460 +_08059BE8: .4byte 0x06001800 +_08059BEC: + movs r0, #0x19 + bl GetProgressFlag + cmp r0, #0 + beq _08059C5E + movs r6, #0 + movs r3, #0x3f +_08059BFA: + movs r5, #0 + lsls r1, r6, #4 + adds r6, #1 + mov r8, r6 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r1, r2 + lsrs r0, r0, #4 + ands r0, r3 + lsls r7, r0, #6 + movs r6, #0x28 + ldr r0, _08059C68 @ =0x000004A6 + adds r4, r1, r0 +_08059C14: + lsrs r1, r6, #4 + ands r1, r3 + orrs r1, r7 + adds r0, r4, #0 + movs r2, #1 + str r3, [sp] + bl sub_0807B9B8 + adds r6, #0x10 + adds r4, #1 + adds r5, #1 + ldr r3, [sp] + cmp r5, #3 + bls _08059C14 + mov r6, r8 + cmp r6, #4 + bls _08059BFA + ldr r0, _08059C6C @ =0x00000444 + ldr r1, _08059C70 @ =0x00000602 + movs r2, #2 + bl sub_0807B9B8 + ldr r0, _08059C74 @ =0x00000445 + ldr r1, _08059C78 @ =0x00000605 + movs r2, #2 + bl sub_0807B9B8 + ldr r0, _08059C7C @ =0x00000454 + ldr r1, _08059C80 @ =0x00000642 + movs r2, #2 + bl sub_0807B9B8 + ldr r0, _08059C84 @ =0x00000455 + ldr r1, _08059C88 @ =0x00000645 + movs r2, #2 + bl sub_0807B9B8 +_08059C5E: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08059C68: .4byte 0x000004A6 +_08059C6C: .4byte 0x00000444 +_08059C70: .4byte 0x00000602 +_08059C74: .4byte 0x00000445 +_08059C78: .4byte 0x00000605 +_08059C7C: .4byte 0x00000454 +_08059C80: .4byte 0x00000642 +_08059C84: .4byte 0x00000455 +_08059C88: .4byte 0x00000645 + + thumb_func_start sub_08059C8C +sub_08059C8C: @ 0x08059C8C + push {r4, r5, lr} + adds r5, r1, #0 + adds r4, r2, #0 + adds r0, r3, #0 + bl sub_08056300 + adds r2, r0, #0 + strb r2, [r4] + lsls r0, r2, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xff + beq _08059CBC + ldr r0, _08059CB8 @ =gUnk_02034350 + adds r0, #0x10 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, r3 + beq _08059CBC + strb r2, [r1] + movs r0, #1 + b _08059CBE + .align 2, 0 +_08059CB8: .4byte gUnk_02034350 +_08059CBC: + movs r0, #0 +_08059CBE: + pop {r4, r5, pc} + + thumb_func_start sub_08059CC0 +sub_08059CC0: @ 0x08059CC0 + push {r4, r5, r6, lr} + adds r2, r1, #0 + ldr r1, _08059CDC @ =gUnk_02034350 + adds r1, #0x10 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, _08059CE0 @ =gRoomControls + ldrb r0, [r0, #4] + cmp r0, #0x15 + beq _08059CE8 + lsls r1, r2, #4 + ldr r0, _08059CE4 @ =gUnk_08108408 + b _08059CEC + .align 2, 0 +_08059CDC: .4byte gUnk_02034350 +_08059CE0: .4byte gRoomControls +_08059CE4: .4byte gUnk_08108408 +_08059CE8: + lsls r1, r2, #4 + ldr r0, _08059D10 @ =gUnk_08108468 +_08059CEC: + adds r6, r1, r0 + ldr r0, [r6] + ldr r4, _08059D14 @ =gUnk_085A2E80 + adds r0, r0, r4 + ldr r1, [r6, #4] + movs r5, #0x80 + lsls r5, r5, #5 + adds r2, r5, #0 + bl sub_08000E96 + ldr r0, [r6, #8] + adds r0, r0, r4 + ldr r1, [r6, #0xc] + adds r2, r5, #0 + bl sub_08000E96 + pop {r4, r5, r6, pc} + .align 2, 0 +_08059D10: .4byte gUnk_08108468 +_08059D14: .4byte gUnk_085A2E80 + + thumb_func_start sub_08059D18 +sub_08059D18: @ 0x08059D18 + push {r4, lr} + ldr r0, _08059D68 @ =gRoomControls + ldrb r0, [r0, #4] + cmp r0, #0x15 + beq _08059D78 + ldr r0, _08059D6C @ =gUnk_08108398 + bl sub_08056300 + adds r4, r0, #0 + cmp r4, #0xff + beq _08059D36 + movs r0, #0 + adds r1, r4, #0 + bl sub_08059CC0 +_08059D36: + ldr r0, _08059D70 @ =gUnk_081083AE + bl sub_08056300 + adds r4, r0, #0 + cmp r4, #0xff + beq _08059D52 + movs r0, #1 + adds r1, r4, #0 + bl sub_08059CC0 + cmp r4, #2 + bne _08059D52 + bl sub_08059B18 +_08059D52: + ldr r0, _08059D74 @ =gUnk_081083C4 + bl sub_08056300 + adds r4, r0, #0 + cmp r4, #0xff + beq _08059DA0 + movs r0, #2 + adds r1, r4, #0 + bl sub_08059CC0 + b _08059DA0 + .align 2, 0 +_08059D68: .4byte gRoomControls +_08059D6C: .4byte gUnk_08108398 +_08059D70: .4byte gUnk_081083AE +_08059D74: .4byte gUnk_081083C4 +_08059D78: + ldr r0, _08059DA4 @ =gUnk_081083DA + bl sub_08056300 + adds r4, r0, #0 + cmp r4, #0xff + beq _08059D8C + movs r0, #0 + adds r1, r4, #0 + bl sub_08059CC0 +_08059D8C: + ldr r0, _08059DA8 @ =gUnk_081083F2 + bl sub_08056300 + adds r4, r0, #0 + cmp r4, #0xff + beq _08059DA0 + movs r0, #2 + adds r1, r4, #0 + bl sub_08059CC0 +_08059DA0: + pop {r4, pc} + .align 2, 0 +_08059DA4: .4byte gUnk_081083DA +_08059DA8: .4byte gUnk_081083F2 + + thumb_func_start sub_08059DAC +sub_08059DAC: @ 0x08059DAC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08059DBE + movs r0, #1 + strb r0, [r5, #0xc] +_08059DBE: + ldr r1, _08059E4C @ =gRoomControls + ldrb r0, [r1, #4] + ldr r4, _08059E50 @ =gUnk_081084C8 + cmp r0, #0x15 + bne _08059DCA + ldr r4, _08059E54 @ =gUnk_08108530 +_08059DCA: + movs r7, #0 + ldrh r0, [r4] + cmp r0, #0 + beq _08059E46 + mov r8, r1 +_08059DD4: + movs r6, #1 + lsls r6, r7 + ldr r0, [r5, #0x20] + ands r0, r6 + cmp r0, #0 + bne _08059E38 + ldrh r0, [r4] + ldrh r1, [r4, #2] + movs r2, #0x10 + movs r3, #0x10 + bl sub_0800290E + cmp r0, #0 + beq _08059E38 + ldrb r1, [r4, #4] + movs r0, #0x1c + adds r2, r7, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08059E38 + ldrb r0, [r4, #5] + strb r0, [r2, #0x1e] + ldrh r0, [r4] + mov r1, r8 + ldrh r1, [r1, #6] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #2] + mov r3, r8 + ldrh r3, [r3, #8] + adds r0, r0, r3 + strh r0, [r2, #0x32] + str r5, [r2, #0x50] + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r0, [r4, #2] + adds r1, r2, #0 + adds r1, #0x82 + strh r0, [r1] + ldrb r1, [r4, #6] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r0, [r5, #0x20] + orrs r0, r6 + str r0, [r5, #0x20] +_08059E38: + adds r4, #8 + adds r7, #1 + ldrh r0, [r4] + cmp r0, #0 + beq _08059E46 + cmp r7, #0x1f + bls _08059DD4 +_08059E46: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08059E4C: .4byte gRoomControls +_08059E50: .4byte gUnk_081084C8 +_08059E54: .4byte gUnk_08108530 + + thumb_func_start sub_08059E58 +sub_08059E58: @ 0x08059E58 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + ldr r1, _08059E7C @ =gUnk_081085A4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0805A1D8 + pop {r4, pc} + .align 2, 0 +_08059E7C: .4byte gUnk_081085A4 + + thumb_func_start sub_08059E80 +sub_08059E80: @ 0x08059E80 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0805EABC + cmp r0, #0 + beq _08059E90 + bl sub_0805E780 +_08059E90: + adds r1, r4, #0 + adds r1, #0x22 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + movs r0, #0 + strh r2, [r4, #0x20] + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xf] + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r3, _08059EE4 @ =gLCDControls + ldr r0, _08059EE8 @ =0x00001E04 + strh r0, [r3, #0x2c] + ldrh r0, [r3] + movs r5, #0x80 + lsls r5, r5, #4 + adds r1, r5, #0 + orrs r0, r1 + strh r0, [r3] + adds r1, r3, #0 + adds r1, #0x66 + ldr r0, _08059EEC @ =0x00003E48 + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + movs r0, #0x80 + strh r0, [r3, #0x2e] + strh r2, [r3, #0x30] + ldr r1, _08059EF0 @ =nullsub_495 + ldr r2, _08059EF4 @ =sub_0805A25C + adds r0, r4, #0 + bl sub_08052D74 + pop {r4, r5, pc} + .align 2, 0 +_08059EE4: .4byte gLCDControls +_08059EE8: .4byte 0x00001E04 +_08059EEC: .4byte 0x00003E48 +_08059EF0: .4byte nullsub_495 +_08059EF4: .4byte sub_0805A25C + + thumb_func_start sub_08059EF8 +sub_08059EF8: @ 0x08059EF8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r6, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08059F90 + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08059F9C + cmp r0, #0 + beq _08059F64 + ldr r2, _08059F50 @ =gUnk_08108588 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + ldr r0, _08059F54 @ =0x00000808 + cmp r1, r0 + beq _08059F5C + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x24 + strb r5, [r0] + ldr r1, _08059F58 @ =gLCDControls + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ands r0, r6 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] + b _08059F90 + .align 2, 0 +_08059F50: .4byte gUnk_08108588 +_08059F54: .4byte 0x00000808 +_08059F58: .4byte gLCDControls +_08059F5C: + adds r0, r4, #0 + adds r0, #0x22 + strb r5, [r0] + b _08059F90 +_08059F64: + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #1 + strb r0, [r1] + ldr r3, _08059F94 @ =gUnk_08108588 + ldrb r2, [r4, #0xe] + lsls r0, r2, #1 + adds r0, r0, r3 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + beq _08059F90 + ldr r0, _08059F98 @ =gLCDControls + subs r1, r2, #1 + strb r1, [r4, #0xe] + ands r1, r6 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r1, [r1] + adds r0, #0x68 + strh r1, [r0] +_08059F90: + pop {r4, r5, r6, pc} + .align 2, 0 +_08059F94: .4byte gUnk_08108588 +_08059F98: .4byte gLCDControls + + thumb_func_start sub_08059F9C +sub_08059F9C: @ 0x08059F9C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08059FB4 @ =gRoomControls + ldrb r0, [r0, #5] + cmp r0, #0x17 + bhi _0805A03A + lsls r0, r0, #2 + ldr r1, _08059FB8 @ =_08059FBC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08059FB4: .4byte gRoomControls +_08059FB8: .4byte _08059FBC +_08059FBC: @ jump table + .4byte _0805A036 @ case 0 + .4byte _0805A01C @ case 1 + .4byte _0805A03A @ case 2 + .4byte _0805A03A @ case 3 + .4byte _0805A03A @ case 4 + .4byte _0805A03A @ case 5 + .4byte _0805A03A @ case 6 + .4byte _0805A02A @ case 7 + .4byte _0805A036 @ case 8 + .4byte _0805A036 @ case 9 + .4byte _0805A03A @ case 10 + .4byte _0805A03A @ case 11 + .4byte _0805A03A @ case 12 + .4byte _0805A03A @ case 13 + .4byte _0805A03A @ case 14 + .4byte _0805A03A @ case 15 + .4byte _0805A03A @ case 16 + .4byte _0805A03A @ case 17 + .4byte _0805A03A @ case 18 + .4byte _0805A03A @ case 19 + .4byte _0805A03A @ case 20 + .4byte _0805A03A @ case 21 + .4byte _0805A03A @ case 22 + .4byte _0805A036 @ case 23 +_0805A01C: + movs r0, #0x16 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A02A + movs r0, #0 + b _0805A03C +_0805A02A: + adds r0, r4, #0 + bl sub_0805A25C + bl sub_0805E780 + b _0805A03C +_0805A036: + movs r0, #1 + b _0805A03C +_0805A03A: + movs r0, #0 +_0805A03C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805A040 +sub_0805A040: @ 0x0805A040 + push {lr} + bl sub_0805A098 + pop {pc} + + thumb_func_start sub_0805A048 +sub_0805A048: @ 0x0805A048 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805A086 + movs r0, #4 + strb r0, [r4, #0xf] + ldr r2, _0805A090 @ =gLCDControls + ldr r3, _0805A094 @ =gUnk_08108588 + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r3 + ldrh r0, [r0] + adds r2, #0x68 + strh r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #9 + bne _0805A086 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #0 + strb r0, [r1] +_0805A086: + adds r0, r4, #0 + bl sub_0805A098 + pop {r4, pc} + .align 2, 0 +_0805A090: .4byte gLCDControls +_0805A094: .4byte gUnk_08108588 + + thumb_func_start sub_0805A098 +sub_0805A098: @ 0x0805A098 + push {lr} + adds r1, r0, #0 + ldr r0, _0805A0B0 @ =gRoomControls + ldrb r0, [r0, #5] + cmp r0, #9 + bgt _0805A0B4 + cmp r0, #8 + bge _0805A0BC + cmp r0, #0 + beq _0805A0BC + b _0805A0B8 + .align 2, 0 +_0805A0B0: .4byte gRoomControls +_0805A0B4: + cmp r0, #0x17 + beq _0805A0BC +_0805A0B8: + movs r0, #3 + strb r0, [r1, #0xc] +_0805A0BC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805A0C0 +sub_0805A0C0: @ 0x0805A0C0 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xf] + subs r0, #1 + strb r0, [r3, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805A106 + movs r0, #4 + strb r0, [r3, #0xf] + ldr r4, _0805A108 @ =gLCDControls + ldr r2, _0805A10C @ =gUnk_08108588 + ldrb r0, [r3, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r3, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strh r2, [r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xff + bne _0805A106 + ldrh r1, [r4] + ldr r0, _0805A110 @ =0x0000F7FF + ands r0, r1 + strh r0, [r4] + bl sub_08056250 + bl sub_0805E780 +_0805A106: + pop {r4, pc} + .align 2, 0 +_0805A108: .4byte gLCDControls +_0805A10C: .4byte gUnk_08108588 +_0805A110: .4byte 0x0000F7FF + + thumb_func_start sub_0805A114 +sub_0805A114: @ 0x0805A114 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r6, r1, #0 + ldr r2, _0805A154 @ =gUnk_03003DE4 + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0805A158 @ =gUnk_02017AA0 + adds r4, r0, r1 + movs r5, #0 + mov r8, r2 + mov sb, r1 + ldr r2, _0805A15C @ =gLCDControls + ldr r0, _0805A160 @ =gUnk_080C9160 + mov ip, r0 +_0805A13A: + movs r1, #0x30 + ldrsh r0, [r2, r1] + adds r3, r5, r0 + asrs r1, r3, #3 + movs r0, #7 + ands r1, r0 + cmp r1, #7 + bhi _0805A190 + lsls r0, r1, #2 + ldr r1, _0805A164 @ =_0805A168 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805A154: .4byte gUnk_03003DE4 +_0805A158: .4byte gUnk_02017AA0 +_0805A15C: .4byte gLCDControls +_0805A160: .4byte gUnk_080C9160 +_0805A164: .4byte _0805A168 +_0805A168: @ jump table + .4byte _0805A190 @ case 0 + .4byte _0805A18C @ case 1 + .4byte _0805A190 @ case 2 + .4byte _0805A190 @ case 3 + .4byte _0805A188 @ case 4 + .4byte _0805A190 @ case 5 + .4byte _0805A190 @ case 6 + .4byte _0805A18C @ case 7 +_0805A188: + subs r3, #8 + b _0805A190 +_0805A18C: + movs r0, #0xf0 + b _0805A192 +_0805A190: + movs r0, #0xf8 +_0805A192: + ands r3, r0 + adds r0, r6, r3 + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #1 + add r0, ip + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r7, r0 + lsrs r0, r0, #8 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r4] + adds r4, #2 + adds r5, #1 + cmp r5, #0x9f + ble _0805A13A + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + add r0, sb + ldr r1, _0805A1D0 @ =0x0400001C + ldr r2, _0805A1D4 @ =0xA2600001 + bl sub_0805622C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805A1D0: .4byte 0x0400001C +_0805A1D4: .4byte 0xA2600001 + + thumb_func_start sub_0805A1D8 +sub_0805A1D8: @ 0x0805A1D8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0805A244 @ =gRoomControls + ldr r0, [r1, #0x28] + ldr r2, _0805A248 @ =0xFFFFF000 + adds r0, r0, r2 + str r0, [r1, #0x28] + ldr r5, _0805A24C @ =gLCDControls + ldrh r0, [r1, #0x2a] + strh r0, [r5, #0x2e] + ldr r0, [r1, #0x2c] + adds r0, r0, r2 + str r0, [r1, #0x2c] + ldrh r0, [r1, #0x2e] + strh r0, [r5, #0x30] + ldrh r1, [r5] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0805A240 + ldrh r1, [r4, #0x20] + lsrs r1, r1, #1 + movs r0, #6 + bl sub_0805A114 + adds r0, r4, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0 + bne _0805A240 + ldr r0, _0805A250 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0805A240 + adds r2, r4, #0 + adds r2, #0x24 + ldrb r0, [r2] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r2] + ldr r1, _0805A254 @ =gUnk_0810859A + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] +_0805A240: + pop {r4, r5, pc} + .align 2, 0 +_0805A244: .4byte gRoomControls +_0805A248: .4byte 0xFFFFF000 +_0805A24C: .4byte gLCDControls +_0805A250: .4byte gUnk_03001000 +_0805A254: .4byte gUnk_0810859A + + thumb_func_start nullsub_495 +nullsub_495: @ 0x0805A258 + bx lr + .align 2, 0 + + thumb_func_start sub_0805A25C +sub_0805A25C: @ 0x0805A25C + push {lr} + ldr r1, _0805A278 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0 + strh r0, [r2] + ldrh r2, [r1] + ldr r0, _0805A27C @ =0x0000F7FF + ands r0, r2 + strh r0, [r1] + bl sub_08056250 + pop {pc} + .align 2, 0 +_0805A278: .4byte gLCDControls +_0805A27C: .4byte 0x0000F7FF + + thumb_func_start sub_0805A280 +sub_0805A280: @ 0x0805A280 + push {lr} + ldr r2, _0805A294 @ =gUnk_081085D8 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805A294: .4byte gUnk_081085D8 + + thumb_func_start sub_0805A298 +sub_0805A298: @ 0x0805A298 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805A2D6 + adds r0, r4, #0 + bl sub_0805A89C + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805A2BA + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #1 + b _0805A2C0 +_0805A2BA: + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #2 +_0805A2C0: + strb r0, [r1] + ldrb r0, [r1] + bl sub_0805AAF0 + ldr r2, _0805A2E0 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] +_0805A2D6: + adds r0, r4, #0 + bl sub_0805A8EC + pop {r4, pc} + .align 2, 0 +_0805A2E0: .4byte gLCDControls + + thumb_func_start sub_0805A2E4 +sub_0805A2E4: @ 0x0805A2E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805A34C + adds r0, r4, #0 + bl sub_0805A89C + adds r0, r4, #0 + adds r0, #0x23 + movs r5, #1 + strb r5, [r0] + movs r0, #1 + bl sub_0805AAF0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805A324 + strb r5, [r4, #0xc] + ldr r2, _0805A31C @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805A320 @ =0x0000B7FF + ands r0, r1 + strh r0, [r2] + b _0805A35C + .align 2, 0 +_0805A31C: .4byte gLCDControls +_0805A320: .4byte 0x0000B7FF +_0805A324: + movs r0, #0x48 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A332 + movs r0, #4 + b _0805A334 +_0805A332: + movs r0, #3 +_0805A334: + strb r0, [r4, #0xc] + ldr r2, _0805A348 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0805A35C + .align 2, 0 +_0805A348: .4byte gLCDControls +_0805A34C: + ldr r0, _0805A36C @ =gUnk_081085F8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0805A35C: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0805A368 + adds r0, r4, #0 + bl sub_0805A8EC +_0805A368: + pop {r4, r5, pc} + .align 2, 0 +_0805A36C: .4byte gUnk_081085F8 + + thumb_func_start sub_0805A370 +sub_0805A370: @ 0x0805A370 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805A38A + ldr r0, _0805A38C @ =gUnk_080E4C08 + bl LoadRoomEntityList + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0805A390 @ =0x80100000 + bl sub_080A3268 +_0805A38A: + pop {r4, pc} + .align 2, 0 +_0805A38C: .4byte gUnk_080E4C08 +_0805A390: .4byte 0x80100000 + + thumb_func_start sub_0805A394 +sub_0805A394: @ 0x0805A394 + push {lr} + movs r0, #3 + movs r1, #0x13 + movs r2, #4 + bl sub_0805EB00 + cmp r0, #0 + beq _0805A3AA + ldrb r0, [r0, #0xa] + cmp r0, #4 + bne _0805A3C4 +_0805A3AA: + movs r0, #0x48 + bl sub_0807CCB4 + movs r0, #0 + bl sub_0807CD8C + ldr r2, _0805A3C8 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805A3CC @ =0x0000B7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805A3C4: + pop {pc} + .align 2, 0 +_0805A3C8: .4byte gLCDControls +_0805A3CC: .4byte 0x0000B7FF + + thumb_func_start nullsub_496 +nullsub_496: @ 0x0805A3D0 + bx lr + .align 2, 0 + + thumb_func_start sub_0805A3D4 +sub_0805A3D4: @ 0x0805A3D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805A448 + adds r0, r4, #0 + bl sub_0805A89C + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _0805A3F2 + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #2 + b _0805A3F8 +_0805A3F2: + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #1 +_0805A3F8: + strb r0, [r1] + ldrb r0, [r1] + bl sub_0805AAF0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805A428 + ldrh r0, [r4, #0x3c] + bl sub_0807CD48 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0805A420 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805A424 @ =0x0000B7FF + ands r0, r1 + strh r0, [r2] + b _0805A458 + .align 2, 0 +_0805A420: .4byte gLCDControls +_0805A424: .4byte 0x0000B7FF +_0805A428: + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + movs r0, #3 + strb r0, [r4, #0xc] + ldr r2, _0805A444 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0805A458 + .align 2, 0 +_0805A444: .4byte gLCDControls +_0805A448: + ldr r0, _0805A460 @ =gUnk_0810860C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0805A458: + adds r0, r4, #0 + bl sub_0805A8EC + pop {r4, pc} + .align 2, 0 +_0805A460: .4byte gUnk_0810860C + + thumb_func_start sub_0805A464 +sub_0805A464: @ 0x0805A464 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A47E + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_0805A4CC +_0805A47E: + pop {r4, pc} + + thumb_func_start sub_0805A480 +sub_0805A480: @ 0x0805A480 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _0805A494 + movs r0, #3 + strb r0, [r1, #0xc] + ldrh r0, [r1, #0x3c] + bl sub_0807CCC8 +_0805A494: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805A498 +sub_0805A498: @ 0x0805A498 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805A4B2 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_0805A4CC +_0805A4B2: + pop {r4, pc} + + thumb_func_start sub_0805A4B4 +sub_0805A4B4: @ 0x0805A4B4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _0805A4C8 + movs r0, #1 + strb r0, [r1, #0xc] + ldrh r0, [r1, #0x3c] + bl sub_0807CD48 +_0805A4C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805A4CC +sub_0805A4CC: @ 0x0805A4CC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x8e + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0805A4F8 + ldr r1, _0805A4FC @ =gRoomControls + ldrh r0, [r1, #6] + ldrh r2, [r4, #0x38] + adds r0, r0, r2 + movs r2, #0 + strh r0, [r3, #0x2e] + ldrh r0, [r1, #8] + ldrh r1, [r4, #0x3a] + adds r0, r0, r1 + subs r0, #0x30 + strh r0, [r3, #0x32] + str r4, [r3, #0x50] + strb r2, [r4, #0xd] +_0805A4F8: + pop {r4, pc} + .align 2, 0 +_0805A4FC: .4byte gRoomControls + + thumb_func_start sub_0805A500 +sub_0805A500: @ 0x0805A500 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _0805A588 + bl sub_0805A89C + str r5, [r4, #0x28] + movs r0, #0x36 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A538 + adds r3, r4, #0 + adds r3, #0x23 + movs r0, #3 + strb r0, [r3] + movs r0, #5 + strb r0, [r4, #0xc] + ldr r2, _0805A534 @ =gLCDControls + ldrh r1, [r2] + movs r5, #0x90 + lsls r5, r5, #7 + adds r0, r5, #0 + orrs r0, r1 + b _0805A574 + .align 2, 0 +_0805A534: .4byte gLCDControls +_0805A538: + movs r0, #0x34 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A560 + adds r3, r4, #0 + adds r3, #0x23 + movs r0, #4 + strb r0, [r3] + movs r0, #3 + strb r0, [r4, #0xc] + ldr r2, _0805A55C @ =gLCDControls + ldrh r1, [r2] + movs r5, #0x90 + lsls r5, r5, #7 + adds r0, r5, #0 + orrs r0, r1 + b _0805A574 + .align 2, 0 +_0805A55C: .4byte gLCDControls +_0805A560: + adds r3, r4, #0 + adds r3, #0x23 + movs r0, #4 + strb r0, [r3] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0805A580 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805A584 @ =0x0000B7FF + ands r0, r1 +_0805A574: + strh r0, [r2] + ldrb r0, [r3] + bl sub_0805AAF0 + b _0805A598 + .align 2, 0 +_0805A580: .4byte gLCDControls +_0805A584: .4byte 0x0000B7FF +_0805A588: + ldr r0, _0805A5C0 @ =gUnk_08108620 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0805A598: + adds r0, r4, #0 + bl sub_0805AA58 + adds r0, r4, #0 + bl sub_0805A9CC + ldr r1, _0805A5C4 @ =gRoomControls + ldrh r3, [r1] + cmp r3, #1 + bne _0805A5CC + ldr r2, _0805A5C8 @ =gLCDControls + ldrh r1, [r2] + movs r5, #0x80 + lsls r5, r5, #7 + adds r0, r5, #0 + orrs r0, r1 + strh r0, [r2] + strb r3, [r4, #0xd] + b _0805A5F0 + .align 2, 0 +_0805A5C0: .4byte gUnk_08108620 +_0805A5C4: .4byte gRoomControls +_0805A5C8: .4byte gLCDControls +_0805A5CC: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805A5F0 + movs r0, #0 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + ldrb r1, [r1, #5] + cmp r0, r1 + beq _0805A5F0 + ldr r2, _0805A5F4 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805A5F8 @ =0x0000B7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805A5F0: + pop {r4, r5, pc} + .align 2, 0 +_0805A5F4: .4byte gLCDControls +_0805A5F8: .4byte 0x0000B7FF + + thumb_func_start sub_0805A5FC +sub_0805A5FC: @ 0x0805A5FC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x34 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A616 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805A4CC +_0805A616: + pop {r4, pc} + + thumb_func_start sub_0805A618 +sub_0805A618: @ 0x0805A618 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _0805A626 + movs r0, #3 + strb r0, [r1, #0xc] +_0805A626: + pop {pc} + + thumb_func_start sub_0805A628 +sub_0805A628: @ 0x0805A628 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x36 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A64A + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805A4CC +_0805A64A: + pop {r4, pc} + + thumb_func_start sub_0805A64C +sub_0805A64C: @ 0x0805A64C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _0805A65A + movs r0, #5 + strb r0, [r1, #0xc] +_0805A65A: + pop {pc} + + thumb_func_start sub_0805A65C +sub_0805A65C: @ 0x0805A65C + bx lr + .align 2, 0 + + thumb_func_start sub_0805A660 +sub_0805A660: @ 0x0805A660 + bx lr + .align 2, 0 + + thumb_func_start sub_0805A664 +sub_0805A664: @ 0x0805A664 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805A688 @ =gUnk_08108638 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0805A8EC + adds r0, r4, #0 + bl sub_0805A68C + pop {r4, pc} + .align 2, 0 +_0805A688: .4byte gUnk_08108638 + + thumb_func_start sub_0805A68C +sub_0805A68C: @ 0x0805A68C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x38 + ldrsh r0, [r4, r1] + subs r0, #0x18 + movs r2, #0x3a + ldrsh r1, [r4, r2] + subs r1, #0x18 + movs r2, #0x30 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _0805A6CC + ldrh r1, [r4, #0x2c] + ldr r0, _0805A6C4 @ =0x00001007 + cmp r1, r0 + bhi _0805A6E2 + ldr r0, _0805A6C8 @ =gLCDControls + adds r1, #1 + movs r2, #0 + strh r1, [r4, #0x2c] + adds r0, #0x68 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x22 + strb r2, [r0] + b _0805A6E2 + .align 2, 0 +_0805A6C4: .4byte 0x00001007 +_0805A6C8: .4byte gLCDControls +_0805A6CC: + ldrh r1, [r4, #0x2c] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + bls _0805A6DA + subs r0, r1, #1 + strh r0, [r4, #0x2c] +_0805A6DA: + ldr r0, _0805A6E4 @ =gLCDControls + ldrh r1, [r4, #0x2c] + adds r0, #0x68 + strh r1, [r0] +_0805A6E2: + pop {r4, pc} + .align 2, 0 +_0805A6E4: .4byte gLCDControls + + thumb_func_start sub_0805A6E8 +sub_0805A6E8: @ 0x0805A6E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805A89C + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #0 + strb r0, [r1] + bl sub_0805AAF0 + ldr r1, _0805A734 @ =gRoomControls + ldrh r0, [r1, #6] + ldrh r2, [r4, #0x38] + adds r0, r0, r2 + strh r0, [r4, #0x38] + ldrh r0, [r1, #8] + ldrh r3, [r4, #0x3a] + adds r0, r0, r3 + strh r0, [r4, #0x3a] + adds r0, r4, #0 + bl sub_0805A73C + cmp r0, #0 + bne _0805A71E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0805A71E: + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r4, #0x2c] + ldr r2, _0805A738 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + pop {r4, pc} + .align 2, 0 +_0805A734: .4byte gRoomControls +_0805A738: .4byte gLCDControls + + thumb_func_start sub_0805A73C +sub_0805A73C: @ 0x0805A73C + push {lr} + adds r1, r0, #0 + movs r2, #0x38 + ldrsh r0, [r1, r2] + subs r0, #6 + movs r2, #0x3a + ldrsh r1, [r1, r2] + subs r1, #6 + movs r2, #0xc + movs r3, #0xc + bl sub_0806FBFC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805A758 +sub_0805A758: @ 0x0805A758 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805A73C + cmp r0, #0 + bne _0805A76A + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0805A76A: + pop {r4, pc} + + thumb_func_start sub_0805A76C +sub_0805A76C: @ 0x0805A76C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _0805A7D4 @ =gLinkEntity + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0805A7D0 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0805A7D0 + ldr r0, _0805A7D8 @ =gUnk_03003F80 + ldr r6, [r0, #0x2c] + cmp r6, #0 + bne _0805A7D0 + adds r0, #0xa9 + ldrb r0, [r0] + cmp r0, #1 + bgt _0805A7D0 + cmp r0, #0 + blt _0805A7D0 + adds r0, r4, #0 + bl sub_0805A73C + cmp r0, #0 + beq _0805A7D0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r5, #0 + bl sub_08004168 + movs r0, #4 + strb r0, [r5, #0x14] + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0805E4E0 + movs r0, #0xff + bl sub_08078A90 + ldr r1, _0805A7DC @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + ldr r0, _0805A7E0 @ =gRoomControls + str r6, [r0, #0x30] + bl sub_08077B20 +_0805A7D0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805A7D4: .4byte gLinkEntity +_0805A7D8: .4byte gUnk_03003F80 +_0805A7DC: .4byte gUnk_02034490 +_0805A7E0: .4byte gRoomControls + + thumb_func_start sub_0805A7E4 +sub_0805A7E4: @ 0x0805A7E4 + push {lr} + ldr r2, _0805A800 @ =gUnk_03003F80 + ldrb r0, [r2, #0xc] + cmp r0, #0x12 + beq _0805A7FE + movs r1, #0 + movs r0, #0x12 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] +_0805A7FE: + pop {pc} + .align 2, 0 +_0805A800: .4byte gUnk_03003F80 + + thumb_func_start sub_0805A804 +sub_0805A804: @ 0x0805A804 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bhi _0805A896 + lsls r0, r0, #2 + ldr r1, _0805A818 @ =_0805A81C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805A818: .4byte _0805A81C +_0805A81C: @ jump table + .4byte _0805A830 @ case 0 + .4byte _0805A858 @ case 1 + .4byte _0805A866 @ case 2 + .4byte _0805A872 @ case 3 + .4byte _0805A88A @ case 4 +_0805A830: + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A83E + movs r0, #1 + b _0805A840 +_0805A83E: + movs r0, #2 +_0805A840: + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + b _0805A89A +_0805A858: + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805A89A + movs r0, #2 + b _0805A87E +_0805A866: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805A89A + movs r0, #3 + strb r0, [r4, #0xc] + b _0805A89A +_0805A872: + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A89A + movs r0, #4 +_0805A87E: + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_0805A4CC + b _0805A89A +_0805A88A: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805A89A + movs r0, #1 + strb r0, [r4, #0xc] + b _0805A89A +_0805A896: + bl sub_0805E780 +_0805A89A: + pop {r4, pc} + + thumb_func_start sub_0805A89C +sub_0805A89C: @ 0x0805A89C + push {r4, lr} + adds r4, r0, #0 + movs r1, #6 + bl sub_0805E3A0 + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x21 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + ldr r1, _0805A8E4 @ =gRoomControls + ldrb r2, [r1, #5] + subs r0, #2 + strb r2, [r0] + ldrh r0, [r1, #6] + strh r0, [r4, #0x24] + ldrh r0, [r1, #8] + strh r0, [r4, #0x26] + ldr r1, _0805A8E8 @ =sub_0805AAC8 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + pop {r4, pc} + .align 2, 0 +_0805A8E4: .4byte gRoomControls +_0805A8E8: .4byte sub_0805AAC8 + + thumb_func_start sub_0805A8EC +sub_0805A8EC: @ 0x0805A8EC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0805AA58 + adds r0, r4, #0 + bl sub_0805A94C + ldr r1, _0805A914 @ =gRoomControls + ldrh r3, [r1] + cmp r3, #1 + bne _0805A91C + ldr r2, _0805A918 @ =gLCDControls + ldrh r1, [r2] + movs r5, #0x80 + lsls r5, r5, #7 + adds r0, r5, #0 + orrs r0, r1 + strh r0, [r2] + strb r3, [r4, #0xd] + b _0805A940 + .align 2, 0 +_0805A914: .4byte gRoomControls +_0805A918: .4byte gLCDControls +_0805A91C: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805A940 + movs r0, #0 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + ldrb r1, [r1, #5] + cmp r0, r1 + beq _0805A940 + ldr r2, _0805A944 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805A948 @ =0x0000B7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805A940: + pop {r4, r5, pc} + .align 2, 0 +_0805A944: .4byte gLCDControls +_0805A948: .4byte 0x0000B7FF + + thumb_func_start sub_0805A94C +sub_0805A94C: @ 0x0805A94C + push {r4, lr} + ldr r4, _0805A9C4 @ =gLCDControls + ldr r3, _0805A9C8 @ =gRoomControls + ldrh r1, [r3, #0xa] + ldrh r2, [r0, #0x24] + subs r1, r1, r2 + ldrh r2, [r0, #0x34] + adds r1, r1, r2 + strh r1, [r4, #0x2e] + ldrh r1, [r3, #0xc] + ldrh r2, [r0, #0x26] + subs r1, r1, r2 + ldrh r0, [r0, #0x36] + adds r1, r1, r0 + strh r1, [r4, #0x30] + movs r1, #0x2e + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r0, r2 + cmp r0, #0 + bge _0805A97C + movs r0, #0 +_0805A97C: + cmp r0, #0xf0 + ble _0805A982 + movs r0, #0xf0 +_0805A982: + cmp r1, #0 + bge _0805A988 + movs r1, #0 +_0805A988: + cmp r1, #0xf0 + ble _0805A98E + movs r1, #0xf0 +_0805A98E: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x5a + strh r0, [r1] + movs r1, #0x30 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + adds r1, r0, r2 + cmp r0, #0 + bge _0805A9A6 + movs r0, #0 +_0805A9A6: + cmp r0, #0xa0 + ble _0805A9AC + movs r0, #0xa0 +_0805A9AC: + cmp r1, #0 + bge _0805A9B2 + movs r1, #0 +_0805A9B2: + cmp r1, #0xa0 + ble _0805A9B8 + movs r1, #0xa0 +_0805A9B8: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x5e + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_0805A9C4: .4byte gLCDControls +_0805A9C8: .4byte gRoomControls + + thumb_func_start sub_0805A9CC +sub_0805A9CC: @ 0x0805A9CC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _0805AA4C @ =gLCDControls + ldr r5, _0805AA50 @ =gRoomControls + ldrh r0, [r5, #0xa] + ldrh r1, [r4, #0x24] + subs r0, r0, r1 + ldrh r1, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r2, #0x2e + ldrsh r0, [r3, r2] + rsbs r2, r0, #0 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r2, r0 + cmp r2, #0 + bge _0805A9F2 + movs r2, #0 +_0805A9F2: + cmp r2, #0xf0 + ble _0805A9F8 + movs r2, #0xf0 +_0805A9F8: + cmp r1, #0 + bge _0805A9FE + movs r1, #0 +_0805A9FE: + cmp r1, #0xf0 + ble _0805AA04 + movs r1, #0xf0 +_0805AA04: + lsls r0, r2, #8 + orrs r0, r1 + adds r1, r3, #0 + adds r1, #0x5a + strh r0, [r1] + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r1, [r4, #0x26] + subs r0, r0, r1 + movs r2, #0x36 + ldrsh r1, [r4, r2] + adds r2, r0, r1 + movs r1, #0x3f + adds r0, r2, #0 + ands r0, r1 + strh r0, [r3, #0x30] + adds r0, r2, #0 + cmp r0, #0 + bge _0805AA2C + adds r0, #0x3f +_0805AA2C: + asrs r0, r0, #6 + lsls r0, r0, #9 + ldr r1, _0805AA54 @ =gUnk_02001A40 + adds r1, r0, r1 + str r1, [r3, #0x34] + adds r2, r3, #0 + adds r2, #0x5e + movs r0, #0xa0 + strh r0, [r2] + ldr r0, [r4, #0x28] + cmp r0, r1 + beq _0805AA4A + str r1, [r4, #0x28] + movs r0, #1 + strh r0, [r3, #0x32] +_0805AA4A: + pop {r4, r5, pc} + .align 2, 0 +_0805AA4C: .4byte gLCDControls +_0805AA50: .4byte gRoomControls +_0805AA54: .4byte gUnk_02001A40 + + thumb_func_start sub_0805AA58 +sub_0805AA58: @ 0x0805AA58 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805AA8C + movs r0, #8 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r2] + lsls r0, r0, #5 + ldr r1, _0805AABC @ =gUnk_085A97A0 + adds r0, r0, r1 + movs r1, #5 + movs r2, #1 + bl sub_0801D754 +_0805AA8C: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _0805AABA + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x22 + ldrb r0, [r2] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + strb r0, [r2] + ldr r1, _0805AAC0 @ =gLCDControls + ldr r3, _0805AAC4 @ =gUnk_081085B8 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] +_0805AABA: + pop {r4, r5, pc} + .align 2, 0 +_0805AABC: .4byte gUnk_085A97A0 +_0805AAC0: .4byte gLCDControls +_0805AAC4: .4byte gUnk_081085B8 + + thumb_func_start sub_0805AAC8 +sub_0805AAC8: @ 0x0805AAC8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x23 + ldrb r0, [r0] + bl sub_0805AAF0 + adds r0, r4, #0 + bl sub_0805A280 + pop {r4, pc} + + thumb_func_start sub_0805AADC +sub_0805AADC: @ 0x0805AADC + push {lr} + ldr r1, _0805AAEC @ =gUnk_08108648 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_0801D7EC + pop {pc} + .align 2, 0 +_0805AAEC: .4byte gUnk_08108648 + + thumb_func_start sub_0805AAF0 +sub_0805AAF0: @ 0x0805AAF0 + push {lr} + bl sub_0805AADC + ldr r3, _0805AB34 @ =gLCDControls + adds r1, r3, #0 + adds r1, #0x66 + movs r2, #0 + ldr r0, _0805AB38 @ =0x00003E48 + strh r0, [r1] + adds r1, #2 + ldr r0, _0805AB3C @ =0x00001008 + strh r0, [r1] + ldr r0, _0805AB40 @ =0x00001E04 + strh r0, [r3, #0x2c] + ldr r0, _0805AB44 @ =gUnk_02001A40 + str r0, [r3, #0x34] + strh r2, [r3, #0x2e] + strh r2, [r3, #0x30] + movs r0, #1 + strh r0, [r3, #0x32] + subs r1, #8 + ldr r0, _0805AB48 @ =0x00003F3F + strh r0, [r1] + adds r1, #2 + movs r0, #0x37 + strh r0, [r1] + subs r1, #8 + movs r0, #0xf0 + strh r0, [r1] + adds r1, #4 + movs r0, #0xa0 + strh r0, [r1] + pop {pc} + .align 2, 0 +_0805AB34: .4byte gLCDControls +_0805AB38: .4byte 0x00003E48 +_0805AB3C: .4byte 0x00001008 +_0805AB40: .4byte 0x00001E04 +_0805AB44: .4byte gUnk_02001A40 +_0805AB48: .4byte 0x00003F3F + + thumb_func_start sub_0805AB4C +sub_0805AB4C: @ 0x0805AB4C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xa] + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + bne _0805AB68 + bl sub_0805E780 +_0805AB68: + ldrb r0, [r6, #0xc] + movs r1, #0x20 + adds r1, r1, r6 + mov r8, r1 + cmp r0, #0 + bne _0805ABC8 + adds r0, #1 + strb r0, [r6, #0xc] + ldr r0, _0805ABF0 @ =gUnk_02033A90 + ldrb r0, [r0, #8] + strb r0, [r1] + adds r0, r6, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r2, _0805ABF4 @ =gUnk_02031EC0 + ldrb r0, [r6, #0xb] + mov r3, r8 + ldrb r1, [r3] + adds r0, r0, r1 + lsls r0, r0, #4 + adds r2, r0, r2 + movs r5, #0 + mov sl, r5 + ldrb r0, [r4] + movs r7, #0x21 + adds r7, r7, r6 + mov ip, r7 + cmp r0, #0xff + beq _0805ABBE +_0805ABA4: + adds r1, r2, #0 + adds r0, r4, #0 + ldm r0!, {r3, r5, r7} + stm r1!, {r3, r5, r7} + ldr r0, [r0] + str r0, [r1] + movs r0, #1 + add sl, r0 + adds r4, #0x10 + adds r2, #0x10 + ldrb r0, [r4] + cmp r0, #0xff + bne _0805ABA4 +_0805ABBE: + movs r0, #0xff + strb r0, [r2] + mov r2, sl + mov r1, ip + strb r2, [r1] +_0805ABC8: + ldr r4, _0805ABF4 @ =gUnk_02031EC0 + ldrb r2, [r6, #0xb] + mov r3, r8 + ldrb r1, [r3] + adds r0, r2, r1 + lsls r0, r0, #4 + adds r4, r0, r4 + ldr r0, _0805ABF8 @ =gUnk_02002A40 + movs r5, #1 + mov sl, r5 + mov r7, sl + ldrb r0, [r0, #8] + lsls r7, r0 + mov sl, r7 + adds r0, r1, #7 + asrs r0, r0, #3 + ldr r1, _0805ABFC @ =gUnk_020342F8 + adds r7, r0, r1 + adds r5, r2, #0 + b _0805ACAA + .align 2, 0 +_0805ABF0: .4byte gUnk_02033A90 +_0805ABF4: .4byte gUnk_02031EC0 +_0805ABF8: .4byte gUnk_02002A40 +_0805ABFC: .4byte gUnk_020342F8 +_0805AC00: + ldrh r0, [r4, #4] + ldrh r1, [r4, #6] + movs r2, #0x18 + movs r3, #0x20 + bl sub_0800290E + cmp r0, #0 + bne _0805AC1A + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_0801D5D4 + b _0805ACA6 +_0805AC1A: + ldrh r0, [r4, #0xe] + mov r1, sl + ands r0, r1 + cmp r0, #0 + beq _0805ACA6 + ldr r0, _0805AC5C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _0805ACA6 + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_0801D5BC + cmp r0, #0 + bne _0805ACA6 + ldr r0, [r4, #8] + cmp r0, #0 + beq _0805AC48 + bl sub_0807DAA0 + mov sb, r0 + cmp r0, #0 + beq _0805ACA6 +_0805AC48: + ldrb r0, [r6, #0xe] + cmp r0, #0 + bne _0805AC60 + ldrb r0, [r4] + ldrb r1, [r4, #1] + ldrb r2, [r4, #2] + bl CreateNPC + b _0805AC6A + .align 2, 0 +_0805AC5C: .4byte gUnk_03003DBC +_0805AC60: + ldrb r0, [r4] + ldrb r1, [r4, #1] + ldrb r2, [r4, #2] + bl CreateObject +_0805AC6A: + adds r3, r0, #0 + mov r2, r8 + ldrb r0, [r2] + adds r0, #1 + adds r0, r5, r0 + adds r1, r3, #0 + adds r1, #0x45 + strb r0, [r1] + ldrh r0, [r4, #0xc] + strb r0, [r3, #0xe] + ldr r1, _0805ACBC @ =gRoomControls + ldrh r0, [r1, #6] + ldrh r2, [r4, #4] + adds r0, r0, r2 + strh r0, [r3, #0x2e] + ldrh r0, [r1, #8] + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r3, #0x32] + ldrb r1, [r4, #3] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r2, [r4, #8] + cmp r2, #0 + beq _0805ACA6 + adds r0, r3, #0 + mov r1, sb + bl sub_0807DAF0 +_0805ACA6: + adds r4, #0x10 + adds r5, #1 +_0805ACAA: + ldrb r0, [r4] + cmp r0, #0xff + bne _0805AC00 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805ACBC: .4byte gRoomControls + + thumb_func_start sub_0805ACC0 +sub_0805ACC0: @ 0x0805ACC0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _0805ACF0 + b _0805AD32 +_0805ACD0: + ldrb r0, [r4, #0xb] + subs r0, r5, r0 + lsls r0, r0, #4 + adds r3, r3, r0 + ldrh r0, [r3, #4] + ldr r2, _0805ACEC @ =gRoomControls + ldrh r1, [r2, #6] + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldrh r1, [r3, #6] + orrs r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + b _0805AD34 + .align 2, 0 +_0805ACEC: .4byte gRoomControls +_0805ACF0: + movs r0, #0x7f + ands r0, r1 + subs r5, r0, #1 + ldr r6, _0805AD3C @ =gUnk_03003DA0 + ldr r4, [r6, #4] + cmp r4, r6 + beq _0805AD32 + ldr r0, _0805AD40 @ =0x00001609 + mov r8, r0 + ldr r0, _0805AD44 @ =0x0000FFFF + adds r7, r0, #0 +_0805AD06: + ldrh r0, [r4, #8] + ands r0, r7 + cmp r0, r8 + bne _0805AD2C + ldrb r1, [r4, #0xb] + cmp r1, r5 + bgt _0805AD2C + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + adds r0, r1, r0 + cmp r0, r5 + ble _0805AD2C + ldrb r0, [r4, #0xa] + bl sub_0804B128 + adds r3, r0, #0 + cmp r3, #0 + bne _0805ACD0 +_0805AD2C: + ldr r4, [r4, #4] + cmp r4, r6 + bne _0805AD06 +_0805AD32: + movs r0, #0 +_0805AD34: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805AD3C: .4byte gUnk_03003DA0 +_0805AD40: .4byte 0x00001609 +_0805AD44: .4byte 0x0000FFFF + + thumb_func_start sub_0805AD48 +sub_0805AD48: @ 0x0805AD48 + push {lr} + ldr r2, _0805AD5C @ =gUnk_08108654 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805AD5C: .4byte gUnk_08108654 + + thumb_func_start sub_0805AD60 +sub_0805AD60: @ 0x0805AD60 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805AD76 + bl sub_0805E780 +_0805AD76: + adds r0, r4, #0 + bl sub_0805AD80 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805AD80 +sub_0805AD80: @ 0x0805AD80 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805ADD0 + ldrb r1, [r4, #0xa] + ldrb r2, [r4, #0xb] + movs r0, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805ADCC + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + strb r0, [r2, #0xe] + adds r0, r4, #0 + adds r0, #0x36 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, _0805ADD4 @ =gRoomControls + ldrh r0, [r1, #6] + ldrh r3, [r4, #0x38] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + ldrh r1, [r4, #0x3a] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrh r1, [r4, #0x3c] + adds r0, r2, #0 + adds r0, #0x86 + strh r1, [r0] +_0805ADCC: + bl sub_0805E780 +_0805ADD0: + pop {r4, pc} + .align 2, 0 +_0805ADD4: .4byte gRoomControls + + thumb_func_start sub_0805ADD8 +sub_0805ADD8: @ 0x0805ADD8 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #0 + bne _0805AE04 + ldr r0, _0805ADF8 @ =gUnk_02033A90 + ldr r1, _0805ADFC @ =0x0000088C + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0805AE00 @ =sub_0805AEDC + cmp r0, r1 + beq _0805AEC4 + movs r0, #0 + bl _call_via_r1 + b _0805AEC4 + .align 2, 0 +_0805ADF8: .4byte gUnk_02033A90 +_0805ADFC: .4byte 0x0000088C +_0805AE00: .4byte sub_0805AEDC +_0805AE04: + ldrb r2, [r4, #0xc] + cmp r2, #0 + bne _0805AE5E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + strb r2, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + ldr r0, _0805AE44 @ =gUnk_0810865C + ldrh r0, [r0] + strh r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _0805AE48 @ =gUnk_02033A90 + ldr r2, _0805AE4C @ =0x0000088C + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, #0 + bne _0805AE58 + ldr r1, _0805AE50 @ =sub_0805AEDC + ldr r2, _0805AE54 @ =sub_0805AF3C + adds r0, r4, #0 + bl sub_08052D74 + b _0805AEC4 + .align 2, 0 +_0805AE44: .4byte gUnk_0810865C +_0805AE48: .4byte gUnk_02033A90 +_0805AE4C: .4byte 0x0000088C +_0805AE50: .4byte sub_0805AEDC +_0805AE54: .4byte sub_0805AF3C +_0805AE58: + bl sub_0805E780 + b _0805AEC4 +_0805AE5E: + ldr r2, _0805AEC8 @ =gUnk_0810865C + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldr r3, _0805AECC @ =gLCDControls + cmp r0, #0 + beq _0805AEA2 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805AEA2 + movs r0, #4 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, #0 + beq _0805AEA2 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + strh r1, [r4, #0x20] + adds r0, r3, #0 + adds r0, #0x68 + strh r1, [r0] +_0805AEA2: + ldr r1, _0805AED0 @ =gRoomControls + ldr r0, [r1, #0x28] + ldr r2, _0805AED4 @ =0xFFFFE000 + adds r0, r0, r2 + str r0, [r1, #0x28] + ldr r0, [r1, #0x2c] + ldr r2, _0805AED8 @ =0xFFFFF000 + adds r0, r0, r2 + str r0, [r1, #0x2c] + ldrh r0, [r1, #0x2a] + ldrh r2, [r1, #0xa] + adds r0, r0, r2 + strh r0, [r3, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r3, #0x30] +_0805AEC4: + pop {r4, pc} + .align 2, 0 +_0805AEC8: .4byte gUnk_0810865C +_0805AECC: .4byte gLCDControls +_0805AED0: .4byte gRoomControls +_0805AED4: .4byte 0xFFFFE000 +_0805AED8: .4byte 0xFFFFF000 + + thumb_func_start sub_0805AEDC +sub_0805AEDC: @ 0x0805AEDC + push {r4, lr} + adds r3, r0, #0 + ldr r2, _0805AF2C @ =gLCDControls + ldr r0, _0805AF30 @ =0x00001E05 + strh r0, [r2, #0x2c] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _0805AF34 @ =0x00003648 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #5 + adds r1, r0, #0 + cmp r3, #0 + beq _0805AF06 + ldrh r1, [r3, #0x20] +_0805AF06: + adds r0, r2, #0 + adds r0, #0x68 + strh r1, [r0] + ldr r1, _0805AF38 @ =gRoomControls + ldrh r0, [r1, #0x2a] + ldrh r4, [r1, #0xa] + adds r0, r0, r4 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] + cmp r3, #0 + beq _0805AF28 + adds r0, r3, #0 + bl sub_0805ADD8 +_0805AF28: + pop {r4, pc} + .align 2, 0 +_0805AF2C: .4byte gLCDControls +_0805AF30: .4byte 0x00001E05 +_0805AF34: .4byte 0x00003648 +_0805AF38: .4byte gRoomControls + + thumb_func_start sub_0805AF3C +sub_0805AF3C: @ 0x0805AF3C + ldrb r2, [r0, #0x10] + movs r1, #0xdf + ands r1, r2 + movs r3, #0 + strb r1, [r0, #0x10] + ldr r1, _0805AF58 @ =gLCDControls + ldrh r2, [r1] + ldr r0, _0805AF5C @ =0x0000F7FF + ands r0, r2 + strh r0, [r1] + adds r1, #0x66 + strh r3, [r1] + bx lr + .align 2, 0 +_0805AF58: .4byte gLCDControls +_0805AF5C: .4byte 0x0000F7FF + + thumb_func_start sub_0805AF60 +sub_0805AF60: @ 0x0805AF60 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #0 + bne _0805AF8C + ldr r0, _0805AF80 @ =gUnk_02033A90 + ldr r1, _0805AF84 @ =0x0000088C + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0805AF88 @ =sub_0805AFFC + cmp r0, r1 + beq _0805AFEE + movs r0, #0 + bl _call_via_r1 + b _0805AFEE + .align 2, 0 +_0805AF80: .4byte gUnk_02033A90 +_0805AF84: .4byte 0x0000088C +_0805AF88: .4byte sub_0805AFFC +_0805AF8C: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805AFD2 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _0805AFC0 @ =gUnk_02033A90 + ldr r2, _0805AFC4 @ =0x0000088C + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, #0 + bne _0805AFCC + ldr r1, _0805AFC8 @ =sub_0805AFFC + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + b _0805AFEE + .align 2, 0 +_0805AFC0: .4byte gUnk_02033A90 +_0805AFC4: .4byte 0x0000088C +_0805AFC8: .4byte sub_0805AFFC +_0805AFCC: + bl sub_0805E780 + b _0805AFEE +_0805AFD2: + ldr r1, _0805AFF0 @ =gRoomControls + ldr r0, [r1, #0x28] + ldr r3, _0805AFF4 @ =0xFFFFE000 + adds r0, r0, r3 + str r0, [r1, #0x28] + ldr r2, _0805AFF8 @ =gLCDControls + ldrh r0, [r1, #0x2a] + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] +_0805AFEE: + pop {r4, pc} + .align 2, 0 +_0805AFF0: .4byte gRoomControls +_0805AFF4: .4byte 0xFFFFE000 +_0805AFF8: .4byte gLCDControls + + thumb_func_start sub_0805AFFC +sub_0805AFFC: @ 0x0805AFFC + ldr r2, _0805B024 @ =gLCDControls + ldr r0, _0805B028 @ =0x00001E03 + strh r0, [r2, #0x2c] + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0805B02C @ =gRoomControls + ldrh r0, [r1, #0x2a] + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] + bx lr + .align 2, 0 +_0805B024: .4byte gLCDControls +_0805B028: .4byte 0x00001E03 +_0805B02C: .4byte gRoomControls + + thumb_func_start sub_0805B030 +sub_0805B030: @ 0x0805B030 + push {lr} + ldr r2, _0805B044 @ =gUnk_08108668 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805B044: .4byte gUnk_08108668 + + thumb_func_start sub_0805B048 +sub_0805B048: @ 0x0805B048 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r0, #0x20 + movs r1, #0x20 + bl sub_0801D630 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0805B08C @ =gRoomControls + ldrb r0, [r2, #5] + adds r1, r4, #0 + adds r1, #0x3f + strb r0, [r1] + ldrb r1, [r4, #0xa] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805B090 @ =gUnk_08108764 + adds r5, r0, r1 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0805B094 + ldrh r0, [r2, #6] + strh r0, [r4, #0x20] + ldrh r0, [r2, #8] + strh r0, [r4, #0x22] + ldrh r0, [r2, #0x1e] + strh r0, [r4, #0x24] + ldrh r0, [r2, #0x20] + b _0805B0B2 + .align 2, 0 +_0805B08C: .4byte gRoomControls +_0805B090: .4byte gUnk_08108764 +_0805B094: + ldrb r0, [r5, #8] + lsls r0, r0, #4 + ldrh r1, [r2, #6] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrb r0, [r5, #9] + lsls r0, r0, #4 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrb r0, [r5, #0xa] + lsls r0, r0, #4 + strh r0, [r4, #0x24] + ldrb r0, [r5, #0xb] + lsls r0, r0, #4 +_0805B0B2: + strh r0, [r4, #0x26] + ldr r1, [r5, #0xc] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + strb r0, [r4, #0xb] + cmp r0, #0 + beq _0805B0FC + ldrb r0, [r4, #0x10] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r0, [r5, #0xc] + ldrh r0, [r0, #4] + strh r0, [r4, #0x34] + ldr r0, [r5, #0xc] + ldrh r0, [r0, #6] + strh r0, [r4, #0x36] + ldr r0, [r5, #0xc] + ldrh r0, [r0, #8] + strh r0, [r4, #0x30] + ldr r0, [r5, #0xc] + ldrh r0, [r0, #0xa] + strh r0, [r4, #0x32] + bl sub_0805BC4C + adds r0, r4, #0 + bl sub_0805B2B0 + adds r0, r4, #0 + bl sub_0805B328 + ldr r1, _0805B160 @ =sub_0805B328 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_0805B0FC: + ldr r0, [r5, #0x10] + cmp r0, #0 + beq _0805B15E + ldrb r1, [r0] + ldrb r2, [r0, #1] + movs r0, #0x28 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0805B128 + ldr r1, [r5, #0x10] + ldr r2, _0805B164 @ =gRoomControls + ldrh r0, [r2, #6] + ldrh r1, [r1, #4] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + ldr r1, [r5, #0x10] + ldrh r0, [r2, #8] + ldrh r1, [r1, #6] + adds r0, r0, r1 + strh r0, [r3, #0x32] +_0805B128: + ldrb r0, [r4, #0xa] + cmp r0, #0xa + bne _0805B15E + movs r0, #0x4b + bl sub_0807CBD0 + cmp r0, #0 + bne _0805B15E + movs r0, #0x28 + movs r1, #3 + movs r2, #3 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0805B15E + ldr r1, [r5, #0x10] + ldr r2, _0805B164 @ =gRoomControls + ldrh r0, [r2, #6] + ldrh r1, [r1, #4] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + ldr r1, [r5, #0x10] + ldrh r0, [r2, #8] + ldrh r1, [r1, #6] + adds r0, r0, r1 + strh r0, [r3, #0x32] +_0805B15E: + pop {r4, r5, pc} + .align 2, 0 +_0805B160: .4byte sub_0805B328 +_0805B164: .4byte gRoomControls + + thumb_func_start sub_0805B168 +sub_0805B168: @ 0x0805B168 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0805B1CC + adds r5, r0, #0 + cmp r5, #0 + beq _0805B182 + adds r0, r4, #0 + bl sub_0805B210 + bl sub_0805E780 + b _0805B1C0 +_0805B182: + adds r0, r4, #0 + bl sub_0805B2B0 + ldr r1, _0805B194 @ =gRoomControls + ldrh r0, [r1] + cmp r0, #1 + bne _0805B198 + strb r0, [r4, #0xd] + b _0805B1C0 + .align 2, 0 +_0805B194: .4byte gRoomControls +_0805B198: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805B1C0 + strb r5, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + ldrb r1, [r1, #5] + cmp r0, r1 + beq _0805B1C0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0805B1BC + ldr r2, _0805B1C4 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805B1C8 @ =0x0000F7FF + ands r0, r1 + strh r0, [r2] +_0805B1BC: + bl sub_0805E780 +_0805B1C0: + pop {r4, r5, pc} + .align 2, 0 +_0805B1C4: .4byte gLCDControls +_0805B1C8: .4byte 0x0000F7FF + + thumb_func_start sub_0805B1CC +sub_0805B1CC: @ 0x0805B1CC + push {r4, r5, lr} + movs r5, #0 + movs r1, #0x20 + ldrsh r4, [r0, r1] + movs r2, #0x22 + ldrsh r1, [r0, r2] + ldrh r2, [r0, #0x24] + ldrh r3, [r0, #0x26] + adds r0, r4, #0 + bl sub_0806FBFC + cmp r0, #0 + beq _0805B20C + ldr r2, _0805B1FC @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #5 + ands r0, r1 + cmp r0, #5 + bne _0805B200 + movs r0, #0x80 + lsls r0, r0, #8 + orrs r1, r0 + str r1, [r2, #0x30] + b _0805B20C + .align 2, 0 +_0805B1FC: .4byte gUnk_03003F80 +_0805B200: + movs r0, #0x80 + lsls r0, r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0805B20C + movs r5, #1 +_0805B20C: + adds r0, r5, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0805B210 +sub_0805B210: @ 0x0805B210 + push {r4, r5, lr} + ldr r2, _0805B248 @ =gUnk_030010A0 + movs r1, #1 + strb r1, [r2, #8] + strb r1, [r2, #9] + movs r1, #4 + strb r1, [r2, #0xe] + ldrb r1, [r0, #0xa] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805B24C @ =gUnk_08108764 + adds r4, r0, r1 + ldrb r0, [r4, #1] + strb r0, [r2, #0xc] + ldrb r0, [r4, #2] + strb r0, [r2, #0xd] + ldrb r0, [r4, #3] + strb r0, [r2, #0x14] + ldr r0, _0805B250 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _0805B254 + movs r0, #6 + b _0805B256 + .align 2, 0 +_0805B248: .4byte gUnk_030010A0 +_0805B24C: .4byte gUnk_08108764 +_0805B250: .4byte gUnk_03003F80 +_0805B254: + movs r0, #2 +_0805B256: + strb r0, [r5, #0xf] + ldrb r0, [r4] + cmp r0, #1 + beq _0805B278 + cmp r0, #1 + bgt _0805B268 + cmp r0, #0 + beq _0805B26E + b _0805B2AC +_0805B268: + cmp r0, #2 + beq _0805B2A0 + b _0805B2AC +_0805B26E: + ldrh r0, [r4, #4] + strh r0, [r5, #0x10] + ldrh r0, [r4, #6] + strh r0, [r5, #0x12] + b _0805B2AC +_0805B278: + ldr r2, _0805B298 @ =gLinkEntity + ldr r3, _0805B29C @ =gRoomControls + ldrh r0, [r2, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r5, #0x10] + ldrh r0, [r2, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + ldrh r4, [r4, #6] + adds r0, r0, r4 + strh r0, [r5, #0x12] + b _0805B2AC + .align 2, 0 +_0805B298: .4byte gLinkEntity +_0805B29C: .4byte gRoomControls +_0805B2A0: + ldrh r0, [r4, #4] + strh r0, [r5, #0x10] + ldrh r0, [r4, #6] + strh r0, [r5, #0x12] + movs r0, #6 + strb r0, [r5, #0xf] +_0805B2AC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805B2B0 +sub_0805B2B0: @ 0x0805B2B0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0805B31E + ldrh r1, [r5, #0x30] + ldr r6, _0805B320 @ =gRoomControls + movs r2, #0xa + ldrsh r0, [r6, r2] + subs r1, r1, r0 + cmp r1, #0 + bge _0805B2CA + adds r1, #3 +_0805B2CA: + asrs r4, r1, #2 + ldrh r1, [r5, #0x32] + movs r7, #0xc + ldrsh r0, [r6, r7] + subs r1, r1, r0 + cmp r1, #0 + bge _0805B2DA + adds r1, #3 +_0805B2DA: + asrs r3, r1, #2 + movs r0, #0xc + rsbs r0, r0, #0 + cmp r4, r0 + bge _0805B2E6 + adds r4, r0, #0 +_0805B2E6: + cmp r4, #0xc + ble _0805B2EC + movs r4, #0xc +_0805B2EC: + cmp r3, r0 + bge _0805B2F2 + adds r3, r0, #0 +_0805B2F2: + cmp r3, #0xc + ble _0805B2F8 + movs r3, #0xc +_0805B2F8: + ldr r2, _0805B324 @ =gLCDControls + ldrh r1, [r2] + movs r7, #0x80 + lsls r7, r7, #4 + adds r0, r7, #0 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r5, #0x34] + ldrh r1, [r6, #0xa] + adds r0, r0, r1 + adds r0, r0, r4 + strh r0, [r6, #0x2a] + strh r0, [r2, #0x2e] + ldrh r0, [r5, #0x36] + ldrh r7, [r6, #0xc] + adds r0, r0, r7 + adds r0, r0, r3 + strh r0, [r6, #0x2e] + strh r0, [r2, #0x30] +_0805B31E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805B320: .4byte gRoomControls +_0805B324: .4byte gLCDControls + + thumb_func_start sub_0805B328 +sub_0805B328: @ 0x0805B328 + push {r4, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _0805B372 + ldrb r1, [r1, #0xa] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805B374 @ =gUnk_08108764 + adds r0, r0, r1 + ldr r0, [r0, #0xc] + ldr r0, [r0] + ldr r1, _0805B378 @ =gUnk_085A2E80 + adds r0, r0, r1 + ldr r1, _0805B37C @ =0x0600F000 + movs r4, #0x80 + lsls r4, r4, #4 + adds r2, r4, #0 + bl sub_08000E96 + ldr r1, _0805B380 @ =gLCDControls + ldr r0, _0805B384 @ =0x00001E07 + strh r0, [r1, #0x2c] + ldrh r0, [r1] + orrs r4, r0 + strh r4, [r1] + ldr r2, _0805B388 @ =gRoomControls + ldrh r0, [r2, #0x2a] + strh r0, [r1, #0x2e] + ldrh r0, [r2, #0x2e] + strh r0, [r1, #0x30] + adds r1, #0x66 + ldrh r2, [r1] + ldr r0, _0805B38C @ =0x0000FFF7 + ands r0, r2 + strh r0, [r1] +_0805B372: + pop {r4, pc} + .align 2, 0 +_0805B374: .4byte gUnk_08108764 +_0805B378: .4byte gUnk_085A2E80 +_0805B37C: .4byte 0x0600F000 +_0805B380: .4byte gLCDControls +_0805B384: .4byte 0x00001E07 +_0805B388: .4byte gRoomControls +_0805B38C: .4byte 0x0000FFF7 + + thumb_func_start sub_0805B390 +sub_0805B390: @ 0x0805B390 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0805B3B0 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x1a + strb r0, [r1, #9] + strb r4, [r1, #0xa] + adds r0, r1, #0 + movs r1, #6 + bl sub_0805EA2C +_0805B3B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805B3B4 +sub_0805B3B4: @ 0x0805B3B4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0805EABC + cmp r0, #0 + beq _0805B3C4 + bl sub_0805E780 +_0805B3C4: + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + ldr r1, _0805B438 @ =gUnk_08108C28 + adds r5, r0, r1 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805B41E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0805B3F6 + ldr r1, _0805B43C @ =sub_0805B4B4 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_0805B3F6: + ldr r0, _0805B440 @ =gRoomControls + ldrh r1, [r0, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + subs r1, r0, r1 + cmp r1, #0 + bge _0805B406 + movs r1, #0 +_0805B406: + movs r0, #2 + ldrsb r0, [r5, r0] + adds r0, r1, r0 + str r0, [r4, #0x20] + ldr r1, _0805B444 @ =gUnk_08108C54 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_0805B41E: + ldr r0, _0805B440 @ =gRoomControls + ldrh r0, [r0] + cmp r0, #0 + bne _0805B436 + ldr r0, _0805B444 @ =gUnk_08108C54 + ldrb r1, [r5, #1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0805B436: + pop {r4, r5, pc} + .align 2, 0 +_0805B438: .4byte gUnk_08108C28 +_0805B43C: .4byte sub_0805B4B4 +_0805B440: .4byte gRoomControls +_0805B444: .4byte gUnk_08108C54 + + thumb_func_start sub_0805B448 +sub_0805B448: @ 0x0805B448 + push {r4, lr} + ldr r4, _0805B46C @ =gLCDControls + ldr r3, _0805B470 @ =gRoomControls + movs r2, #0xa + ldrsh r1, [r3, r2] + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #2 + strh r1, [r4, #0x2e] + movs r2, #0xc + ldrsh r1, [r3, r2] + ldrh r2, [r3, #8] + subs r1, r1, r2 + asrs r1, r1, #1 + ldr r0, [r0, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x30] + pop {r4, pc} + .align 2, 0 +_0805B46C: .4byte gLCDControls +_0805B470: .4byte gRoomControls + + thumb_func_start sub_0805B474 +sub_0805B474: @ 0x0805B474 + push {r4, r5, lr} + ldr r5, _0805B4A8 @ =gRoomControls + movs r0, #0xc + ldrsh r1, [r5, r0] + ldrh r4, [r5, #8] + subs r1, r1, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #5 + ldrh r1, [r5, #0x20] + subs r1, #0xa0 + bl __divsi3 + ldr r2, _0805B4AC @ =gLCDControls + adds r4, r4, r0 + strh r4, [r2, #0x30] + ldrh r0, [r5, #0x1e] + ldr r1, _0805B4B0 @ =0xFFFFFF00 + adds r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + ldrh r1, [r5, #0xa] + subs r1, r1, r0 + strh r1, [r2, #0x2e] + pop {r4, r5, pc} + .align 2, 0 +_0805B4A8: .4byte gRoomControls +_0805B4AC: .4byte gLCDControls +_0805B4B0: .4byte 0xFFFFFF00 + + thumb_func_start sub_0805B4B4 +sub_0805B4B4: @ 0x0805B4B4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_0805B4D0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _0805B4C8 + bl sub_0806D0F8 +_0805B4C8: + adds r0, r4, #0 + bl sub_0805B3B4 + pop {r4, pc} + + thumb_func_start sub_0805B4D0 +sub_0805B4D0: @ 0x0805B4D0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0805B528 @ =gUnk_08108C5C + adds r0, r5, r0 + ldrb r0, [r0] + bl sub_0801D7EC + ldr r4, _0805B52C @ =gLCDControls + ldr r0, _0805B530 @ =0x00001E07 + strh r0, [r4, #0x2c] + ldrh r1, [r4] + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r4] + ldr r2, _0805B534 @ =gRoomControls + movs r1, #0xa + ldrsh r0, [r2, r1] + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #2 + strh r0, [r4, #0x2e] + movs r1, #0xc + ldrsh r0, [r2, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r3, r0, #1 + ldrh r1, [r2, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + subs r2, r0, r1 + cmp r2, #0 + bge _0805B516 + movs r2, #0 +_0805B516: + ldr r0, _0805B538 @ =gUnk_08108C44 + lsls r1, r5, #1 + adds r1, r1, r0 + adds r0, r3, r2 + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x30] + pop {r4, r5, pc} + .align 2, 0 +_0805B528: .4byte gUnk_08108C5C +_0805B52C: .4byte gLCDControls +_0805B530: .4byte 0x00001E07 +_0805B534: .4byte gRoomControls +_0805B538: .4byte gUnk_08108C44 + + thumb_func_start sub_0805B53C +sub_0805B53C: @ 0x0805B53C + push {lr} + ldr r2, _0805B550 @ =gUnk_08108C64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805B550: .4byte gUnk_08108C64 + + thumb_func_start sub_0805B554 +sub_0805B554: @ 0x0805B554 + movs r1, #1 + strb r1, [r0, #0xc] + strb r1, [r0, #0xe] + bx lr + + thumb_func_start sub_0805B55C +sub_0805B55C: @ 0x0805B55C + push {r4, r5, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805B5B4 + movs r0, #0xf + strb r0, [r1, #0xe] + movs r0, #0x19 + movs r1, #0 + bl CreateEnemy + adds r5, r0, #0 + cmp r5, #0 + beq _0805B5B4 + bl sub_08000E50 + ldr r4, _0805B5B8 @ =gRoomControls + ldr r2, _0805B5BC @ =gUnk_08108C6C + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #0x78 + ldrh r1, [r4, #0xa] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + bl sub_08000E50 + ldr r2, _0805B5C0 @ =gUnk_08108C7C + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, #0x50 + ldrh r4, [r4, #0xc] + adds r0, r0, r4 + strh r0, [r5, #0x32] + ldr r0, _0805B5C4 @ =0x0000FF38 + strh r0, [r5, #0x36] +_0805B5B4: + pop {r4, r5, pc} + .align 2, 0 +_0805B5B8: .4byte gRoomControls +_0805B5BC: .4byte gUnk_08108C6C +_0805B5C0: .4byte gUnk_08108C7C +_0805B5C4: .4byte 0x0000FF38 + + thumb_func_start sub_0805B5C8 +sub_0805B5C8: @ 0x0805B5C8 + push {lr} + ldr r2, _0805B5DC @ =gUnk_08108C80 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805B5DC: .4byte gUnk_08108C80 + + thumb_func_start sub_0805B5E0 +sub_0805B5E0: @ 0x0805B5E0 + push {r4, r5, lr} + movs r4, #0 + movs r1, #1 + strb r1, [r0, #0xc] + ldr r3, _0805B618 @ =gLCDControls + ldrh r2, [r3] + movs r5, #0x80 + lsls r5, r5, #4 + adds r1, r5, #0 + orrs r1, r2 + strh r1, [r3] + ldr r2, _0805B61C @ =gUnk_08108C88 + ldrb r1, [r0, #0xa] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + strh r1, [r3, #0x2c] + ldr r1, _0805B620 @ =gRoomControls + str r4, [r1, #0x2c] + str r4, [r1, #0x28] + ldrb r0, [r0, #0xa] + cmp r0, #0 + beq _0805B612 + cmp r0, #1 + beq _0805B624 +_0805B612: + strh r4, [r3, #0x30] + strh r4, [r3, #0x2e] + b _0805B634 + .align 2, 0 +_0805B618: .4byte gLCDControls +_0805B61C: .4byte gUnk_08108C88 +_0805B620: .4byte gRoomControls +_0805B624: + ldrh r0, [r1, #0x2a] + ldrh r2, [r1, #0xa] + adds r0, r0, r2 + strh r0, [r3, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r3, #0x30] +_0805B634: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805B638 +sub_0805B638: @ 0x0805B638 + push {lr} + ldrb r0, [r0, #0xa] + cmp r0, #1 + bne _0805B65E + ldr r1, _0805B660 @ =gRoomControls + ldr r0, [r1, #0x28] + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r0, r2 + str r0, [r1, #0x28] + ldr r2, _0805B664 @ =gLCDControls + ldrh r0, [r1, #0x2a] + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] +_0805B65E: + pop {pc} + .align 2, 0 +_0805B660: .4byte gRoomControls +_0805B664: .4byte gLCDControls + + thumb_func_start sub_0805B668 +sub_0805B668: @ 0x0805B668 + push {lr} + ldr r2, _0805B67C @ =gUnk_08108C8C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805B67C: .4byte gUnk_08108C8C + + thumb_func_start sub_0805B680 +sub_0805B680: @ 0x0805B680 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r1, [r4, #0x34] + lsrs r1, r1, #1 + strh r1, [r4, #0x34] + ldrh r0, [r4, #0x38] + adds r0, r0, r1 + strh r0, [r4, #0x38] + ldrh r1, [r4, #0x36] + lsrs r1, r1, #1 + strh r1, [r4, #0x36] + ldrh r0, [r4, #0x3a] + adds r0, r0, r1 + strh r0, [r4, #0x3a] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0805B6B8 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805B6B8 + adds r0, r4, #0 + bl sub_0805E900 + b _0805B6BE +_0805B6B8: + adds r0, r4, #0 + bl sub_0805B6C0 +_0805B6BE: + pop {r4, pc} + + thumb_func_start sub_0805B6C0 +sub_0805B6C0: @ 0x0805B6C0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + ldrh r2, [r4, #0x34] + ldrh r3, [r4, #0x36] + bl sub_0800293E + cmp r0, #0 + beq _0805B6EC + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0805B6F2 + adds r0, r4, #0 + bl sub_0805E900 + b _0805B6F2 +_0805B6EC: + ldrh r0, [r4, #0x3e] + bl sub_0807CD48 +_0805B6F2: + pop {r4, pc} + + thumb_func_start sub_0805B6F4 +sub_0805B6F4: @ 0x0805B6F4 + push {lr} + ldr r2, _0805B708 @ =gUnk_08108C94 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805B708: .4byte gUnk_08108C94 + + thumb_func_start sub_0805B70C +sub_0805B70C: @ 0x0805B70C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805B71E + movs r0, #1 + strb r0, [r4, #0xb] +_0805B71E: + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4, #0x38] + adds r0, r4, #0 + bl sub_0805B778 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805B744 +sub_0805B744: @ 0x0805B744 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + adds r1, r0, #0 + cmp r1, #0 + beq _0805B766 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0805B774 + movs r0, #1 + strb r0, [r4, #0xb] + adds r0, r4, #0 + bl sub_0805B778 + b _0805B774 +_0805B766: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0805B774 + strb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_0805B778 +_0805B774: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805B778 +sub_0805B778: @ 0x0805B778 + push {lr} + ldr r2, _0805B79C @ =gUnk_08108C9C + ldrb r1, [r0, #0xa] + lsls r1, r1, #1 + ldrb r3, [r0, #0xb] + adds r1, r1, r3 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r3, [r1] + movs r2, #0x38 + ldrsh r1, [r0, r2] + adds r0, #0x36 + ldrb r2, [r0] + adds r0, r3, #0 + bl sub_0807B314 + pop {pc} + .align 2, 0 +_0805B79C: .4byte gUnk_08108C9C + + thumb_func_start sub_0805B7A0 +sub_0805B7A0: @ 0x0805B7A0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + ldrb r1, [r5, #0xa] + ldrb r2, [r5, #0xb] + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0805B81A + ldrh r0, [r5, #0x3e] + adds r1, r4, #0 + adds r1, #0x86 + strh r0, [r1] + ldrh r0, [r5, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805B7EC + adds r0, r5, #0 + adds r0, #0x36 + ldrb r1, [r0] + adds r0, #1 + ldrb r2, [r0] + movs r0, #0xf + ands r0, r2 + lsls r0, r0, #8 + orrs r1, r0 + strh r1, [r4, #0x2e] + ldrh r1, [r5, #0x3c] + ldr r0, _0805B7E8 @ =0x00000FFF + ands r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r5, #0x3c] + lsrs r0, r0, #0xc + b _0805B7FC + .align 2, 0 +_0805B7E8: .4byte 0x00000FFF +_0805B7EC: + ldrh r0, [r5, #0x38] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x3a] + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x37 + ldrb r0, [r0] + lsrs r0, r0, #4 +_0805B7FC: + adds r1, r4, #0 + adds r1, #0x38 + strb r0, [r1] + ldr r0, _0805B81C @ =gRoomControls + ldrh r1, [r0, #6] + ldrh r2, [r4, #0x2e] + adds r1, r1, r2 + strh r1, [r4, #0x2e] + ldrh r0, [r0, #8] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r5, #0 + bl sub_0805E900 +_0805B81A: + pop {r4, r5, pc} + .align 2, 0 +_0805B81C: .4byte gRoomControls + + thumb_func_start sub_0805B820 +sub_0805B820: @ 0x0805B820 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r1, [r5, #0xc] + cmp r1, #0 + bne _0805B834 + movs r0, #1 + strb r0, [r5, #0xc] + str r1, [r5, #0x20] +_0805B834: + ldrb r0, [r5, #0xa] + bl sub_0804B128 + adds r4, r0, #0 + movs r7, #0 + ldrh r0, [r4] + cmp r0, #0 + beq _0805B8C4 + ldr r0, _0805B8A8 @ =gRoomControls + mov r8, r0 +_0805B848: + ldrh r0, [r4] + ldrh r1, [r4, #2] + movs r2, #4 + movs r3, #4 + bl sub_0800290E + cmp r0, #0 + beq _0805B8AC + movs r6, #1 + lsls r6, r7 + ldr r0, [r5, #0x20] + ands r0, r6 + cmp r0, #0 + bne _0805B8B6 + ldrh r0, [r4, #4] + bl sub_0805B8CC + cmp r0, #0 + beq _0805B8B6 + movs r0, #0x4e + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0805B8B6 + ldrh r0, [r4, #6] + strb r0, [r1, #0xe] + strb r7, [r1, #0xf] + ldrh r0, [r4] + mov r2, r8 + ldrh r2, [r2, #6] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #2] + mov r3, r8 + ldrh r3, [r3, #8] + adds r0, r0, r3 + strh r0, [r1, #0x32] + str r5, [r1, #0x50] + adds r0, r1, #0 + bl sub_08016A30 + ldr r0, [r5, #0x20] + orrs r0, r6 + b _0805B8B4 + .align 2, 0 +_0805B8A8: .4byte gRoomControls +_0805B8AC: + movs r1, #1 + lsls r1, r7 + ldr r0, [r5, #0x20] + bics r0, r1 +_0805B8B4: + str r0, [r5, #0x20] +_0805B8B6: + adds r4, #8 + adds r7, #1 + ldrh r0, [r4] + cmp r0, #0 + beq _0805B8C4 + cmp r7, #0x1f + bls _0805B848 +_0805B8C4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0805B8CC +sub_0805B8CC: @ 0x0805B8CC + push {lr} + cmp r0, #4 + bne _0805B8DA + movs r0, #0x18 + bl GetProgressFlag + b _0805B8E8 +_0805B8DA: + cmp r0, #4 + bls _0805B8E6 + cmp r0, #6 + bhi _0805B8E6 + movs r0, #0 + b _0805B8E8 +_0805B8E6: + movs r0, #1 +_0805B8E8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805B8EC +sub_0805B8EC: @ 0x0805B8EC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0805B964 @ =gUnk_02033A90 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805B90A + bl sub_0801E104 + ldr r2, _0805B968 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805B96C @ =0x0000D7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805B90A: + ldrb r2, [r5, #0xc] + cmp r2, #0 + bne _0805B934 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r5, #0x10] + movs r0, #0x11 + strb r0, [r5, #0xe] + str r2, [r5, #0x20] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + bl sub_0801E120 + ldrb r0, [r5, #0xe] + bl sub_0801E154 +_0805B934: + ldr r0, _0805B970 @ =gUnk_03001000 + ldrb r0, [r0, #4] + cmp r0, #2 + bne _0805B952 + ldr r2, _0805B968 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + bl sub_0805BA78 + bl sub_0805BAD4 +_0805B952: + ldrb r0, [r4, #0xc] + cmp r0, #2 + bne _0805B978 + ldr r2, _0805B968 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805B974 @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + b _0805BA6C + .align 2, 0 +_0805B964: .4byte gUnk_02033A90 +_0805B968: .4byte gLCDControls +_0805B96C: .4byte 0x0000D7FF +_0805B970: .4byte gUnk_03001000 +_0805B974: .4byte 0x0000DFFF +_0805B978: + ldr r3, _0805B9A8 @ =gLinkEntity + movs r4, #0x2e + ldrsh r0, [r3, r4] + ldr r2, _0805B9AC @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r6, #0x32 + ldrsh r1, [r3, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + movs r2, #0 + movs r3, #0 + bl sub_0800290E + cmp r0, #0 + beq _0805B9B4 + ldr r2, _0805B9B0 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #6 + adds r0, r3, #0 + orrs r0, r1 + b _0805B9BC + .align 2, 0 +_0805B9A8: .4byte gLinkEntity +_0805B9AC: .4byte gRoomControls +_0805B9B0: .4byte gLCDControls +_0805B9B4: + ldr r2, _0805B9E8 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805B9EC @ =0x0000DFFF + ands r0, r1 +_0805B9BC: + strh r0, [r2] + ldrb r4, [r5, #0xe] + ldr r0, _0805B9F0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0805BA2C + ldr r0, _0805B9F4 @ =gUnk_02033A90 + ldrb r0, [r0, #0xc] + cmp r0, #0 + beq _0805BA2C + cmp r4, #0x47 + bhi _0805B9F8 + adds r4, #4 + adds r0, r4, #0 + bl sub_0801E154 + movs r0, #0 + str r0, [r5, #0x20] + b _0805BA42 + .align 2, 0 +_0805B9E8: .4byte gLCDControls +_0805B9EC: .4byte 0x0000DFFF +_0805B9F0: .4byte gUnk_03003F80 +_0805B9F4: .4byte gUnk_02033A90 +_0805B9F8: + ldr r0, _0805BA24 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0805BA42 + ldrb r0, [r5, #0xf] + adds r0, #0x10 + strb r0, [r5, #0xf] + ldr r1, _0805BA28 @ =gUnk_080C9160 + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r6, #0 + ldrsh r0, [r0, r6] + asrs r0, r0, #7 + str r0, [r5, #0x20] + adds r0, r4, r0 + bl sub_0801E154 + b _0805BA42 + .align 2, 0 +_0805BA24: .4byte gUnk_030010A0 +_0805BA28: .4byte gUnk_080C9160 +_0805BA2C: + movs r0, #0 + str r0, [r5, #0x20] + cmp r4, #0x11 + bls _0805BA42 + subs r4, #4 + cmp r4, #0x10 + bhi _0805BA3C + movs r4, #0x11 +_0805BA3C: + adds r0, r4, #0 + bl sub_0801E154 +_0805BA42: + strb r4, [r5, #0xe] + ldr r3, _0805BA70 @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r2, _0805BA74 @ =gRoomControls + movs r6, #0xa + ldrsh r1, [r2, r6] + subs r0, r0, r1 + movs r6, #0x32 + ldrsh r1, [r3, r6] + movs r6, #0xc + ldrsh r2, [r2, r6] + subs r1, r1, r2 + movs r6, #0x36 + ldrsh r2, [r3, r6] + subs r2, #9 + adds r1, r1, r2 + ldr r2, [r5, #0x20] + adds r2, r4, r2 + bl sub_0801E160 +_0805BA6C: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805BA70: .4byte gLinkEntity +_0805BA74: .4byte gRoomControls + + thumb_func_start sub_0805BA78 +sub_0805BA78: @ 0x0805BA78 + push {r4, lr} + ldr r1, _0805BAA8 @ =gUnk_02033A90 + movs r0, #0xa + ldrsh r3, [r1, r0] + ldr r0, _0805BAAC @ =gUnk_02034350 + movs r4, #0xc + ldrsh r2, [r0, r4] + cmp r2, #0 + bge _0805BA8C + movs r2, #0 +_0805BA8C: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + ble _0805BA96 + adds r2, r0, #0 +_0805BA96: + cmp r3, r2 + beq _0805BACE + subs r0, r2, r3 + cmp r0, #0 + blt _0805BAB0 + cmp r0, #4 + bls _0805BAB6 + b _0805BABA + .align 2, 0 +_0805BAA8: .4byte gUnk_02033A90 +_0805BAAC: .4byte gUnk_02034350 +_0805BAB0: + subs r0, r3, r2 + cmp r0, #4 + bhi _0805BABA +_0805BAB6: + adds r3, r2, #0 + b _0805BAC8 +_0805BABA: + cmp r2, r3 + bge _0805BAC2 + subs r3, #4 + b _0805BAC8 +_0805BAC2: + cmp r2, r3 + ble _0805BAC8 + adds r3, #4 +_0805BAC8: + strh r3, [r1, #0xa] + movs r0, #1 + b _0805BAD0 +_0805BACE: + movs r0, #0 +_0805BAD0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BAD4 +sub_0805BAD4: @ 0x0805BAD4 + push {lr} + ldr r3, _0805BAF4 @ =gUnk_02033A90 + ldrb r0, [r3, #0xc] + cmp r0, #0 + beq _0805BAF2 + ldr r1, _0805BAF8 @ =gLCDControls + ldr r2, _0805BAFC @ =gUnk_08108CA8 + ldrh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] +_0805BAF2: + pop {pc} + .align 2, 0 +_0805BAF4: .4byte gUnk_02033A90 +_0805BAF8: .4byte gLCDControls +_0805BAFC: .4byte gUnk_08108CA8 + + thumb_func_start sub_0805BB00 +sub_0805BB00: @ 0x0805BB00 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _0805BB50 @ =gUnk_02033A90 + ldrb r0, [r0, #0xc] + cmp r0, #0 + bne _0805BB28 + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0805BB28 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x22 + strb r0, [r1, #9] + adds r0, r1, #0 + movs r1, #0 + bl sub_0805EA2C +_0805BB28: + ldr r1, _0805BB54 @ =0x0600F000 + movs r2, #0x80 + lsls r2, r2, #4 + movs r0, #0xf + bl sub_0801D5EC + ldr r0, _0805BB58 @ =gLCDControls + ldr r1, _0805BB5C @ =0x00001E0C + strh r1, [r0, #0x2c] + adds r0, #0x66 + ldr r1, _0805BB60 @ =0x00003E48 + strh r1, [r0] + ldr r0, _0805BB64 @ =gUnk_02034350 + strh r4, [r0, #0xc] + cmp r5, #0 + beq _0805BB68 + ldr r1, _0805BB50 @ =gUnk_02033A90 + movs r0, #1 + b _0805BB6C + .align 2, 0 +_0805BB50: .4byte gUnk_02033A90 +_0805BB54: .4byte 0x0600F000 +_0805BB58: .4byte gLCDControls +_0805BB5C: .4byte 0x00001E0C +_0805BB60: .4byte 0x00003E48 +_0805BB64: .4byte gUnk_02034350 +_0805BB68: + ldr r1, _0805BB70 @ =gUnk_02033A90 + movs r0, #2 +_0805BB6C: + strb r0, [r1, #0xc] + pop {r4, r5, pc} + .align 2, 0 +_0805BB70: .4byte gUnk_02033A90 + + thumb_func_start sub_0805BB74 +sub_0805BB74: @ 0x0805BB74 + push {lr} + adds r1, r0, #0 + ldr r2, _0805BBB0 @ =gUnk_02034350 + cmp r1, #0 + bge _0805BB82 + movs r0, #0xc + ldrsh r1, [r2, r0] +_0805BB82: + ldr r0, _0805BBB4 @ =gUnk_02033A90 + strh r1, [r0, #0xa] + strh r1, [r2, #0xc] + movs r0, #9 + movs r1, #0x22 + bl sub_0805EB9C + cmp r0, #0 + beq _0805BBAE + bl sub_0805B8EC + ldr r0, _0805BBB8 @ =gLCDControls + ldrh r1, [r0] + movs r3, #0x80 + lsls r3, r3, #4 + adds r2, r3, #0 + orrs r1, r2 + strh r1, [r0] + bl sub_0805BA78 + bl sub_0805BAD4 +_0805BBAE: + pop {pc} + .align 2, 0 +_0805BBB0: .4byte gUnk_02034350 +_0805BBB4: .4byte gUnk_02033A90 +_0805BBB8: .4byte gLCDControls + + thumb_func_start sub_0805BBBC +sub_0805BBBC: @ 0x0805BBBC + push {r4, lr} + movs r4, #0 + ldr r2, _0805BBF8 @ =gUnk_02033A90 + ldrb r0, [r2, #0xc] + cmp r0, #0 + beq _0805BBF2 + ldr r0, _0805BBFC @ =gUnk_02034350 + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r3, #0xa + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _0805BBF2 + ldr r2, _0805BC00 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + bl sub_0805BA78 + adds r4, r0, #0 + cmp r4, #0 + beq _0805BBF2 + bl sub_0805BAD4 +_0805BBF2: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0805BBF8: .4byte gUnk_02033A90 +_0805BBFC: .4byte gUnk_02034350 +_0805BC00: .4byte gLCDControls + + thumb_func_start sub_0805BC04 +sub_0805BC04: @ 0x0805BC04 + push {r4, lr} + movs r4, #0 + ldr r2, _0805BC40 @ =gUnk_02033A90 + ldrb r0, [r2, #0xc] + cmp r0, #0 + beq _0805BC3A + ldr r0, _0805BC44 @ =gUnk_02034350 + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r3, #0xa + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _0805BC3A + ldr r2, _0805BC48 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + bl sub_0805BA78 + adds r4, r0, #0 + cmp r4, #0 + beq _0805BC3A + bl sub_0805BAD4 +_0805BC3A: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0805BC40: .4byte gUnk_02033A90 +_0805BC44: .4byte gUnk_02034350 +_0805BC48: .4byte gLCDControls + + thumb_func_start sub_0805BC4C +sub_0805BC4C: @ 0x0805BC4C + push {lr} + ldr r1, _0805BC68 @ =gUnk_02033A90 + ldrb r0, [r1, #0xc] + cmp r0, #0 + beq _0805BC64 + movs r0, #0 + strb r0, [r1, #0xc] + ldr r2, _0805BC6C @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805BC70 @ =0x0000D7FF + ands r0, r1 + strh r0, [r2] +_0805BC64: + pop {pc} + .align 2, 0 +_0805BC68: .4byte gUnk_02033A90 +_0805BC6C: .4byte gLCDControls +_0805BC70: .4byte 0x0000D7FF + + thumb_func_start sub_0805BC74 +sub_0805BC74: @ 0x0805BC74 + push {lr} + ldr r2, _0805BC88 @ =gUnk_08108CCC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805BC88: .4byte gUnk_08108CCC + + thumb_func_start sub_0805BC8C +sub_0805BC8C: @ 0x0805BC8C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805BCAE + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BCAE + adds r0, r4, #0 + bl sub_0805BE94 +_0805BCAE: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BCD0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805BCD0 + adds r0, r4, #0 + bl sub_0805BEC4 + adds r0, r4, #0 + bl sub_0805BE94 +_0805BCD0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BCD4 +sub_0805BCD4: @ 0x0805BCD4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0805BD0E + cmp r0, #1 + bgt _0805BCE8 + cmp r0, #0 + beq _0805BCEE + b _0805BD5A +_0805BCE8: + cmp r0, #2 + beq _0805BD38 + b _0805BD5A +_0805BCEE: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BD5A + adds r0, r4, #0 + movs r1, #0x75 + bl sub_0805BE70 + movs r0, #2 + strb r0, [r4, #0xc] + b _0805BD5A +_0805BD0E: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BD5A + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805BD5A + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0805BEC4 + adds r0, r4, #0 + movs r1, #0x76 + bl sub_0805BE70 + b _0805BD5A +_0805BD38: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + bne _0805BD5A + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805BD5A + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x75 + bl sub_0805BE70 +_0805BD5A: + pop {r4, pc} + + thumb_func_start sub_0805BD5C +sub_0805BD5C: @ 0x0805BD5C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805BD94 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BD76 + adds r0, r4, #0 + bl sub_0805BE94 +_0805BD76: + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4, #0x20] + movs r0, #1 + strb r0, [r4, #0xc] + b _0805BDB0 +_0805BD94: + ldrh r0, [r4, #0x20] + ldrb r1, [r4, #0xb] + bl sub_080002B0 + cmp r0, #0x76 + bne _0805BDB0 + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + ldrb r0, [r4, #0xe] + bl sub_0805308C + bl sub_0805E780 +_0805BDB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BDB4 +sub_0805BDB4: @ 0x0805BDB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0805BDF4 + cmp r0, #1 + beq _0805BE2C + ldrh r0, [r4, #0x22] + subs r0, #1 + strh r0, [r4, #0x22] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805BE58 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + ldrb r2, [r4, #0xb] + bl sub_080A29C8 + ldrh r0, [r4, #0x3e] + bl sub_0807CD48 + ldrh r0, [r4, #0x20] + ldrb r1, [r4, #0xb] + bl sub_0807BA8C + ldrb r0, [r4, #0xe] + rsbs r0, r0, #0 + bl sub_0805308C + b _0805BE26 +_0805BDF4: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + bne _0805BE08 + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BE0E +_0805BE08: + adds r0, r4, #0 + bl sub_0805BE94 +_0805BE0E: + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4, #0x20] +_0805BE26: + movs r0, #1 + strb r0, [r4, #0xc] + b _0805BE6C +_0805BE2C: + ldrh r0, [r4, #0x20] + ldrb r1, [r4, #0xb] + bl sub_080002B0 + cmp r0, #0x76 + bne _0805BE6C + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + ldrb r0, [r4, #0xe] + bl sub_0805308C + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x36 + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + strh r0, [r4, #0x22] + b _0805BE6C +_0805BE58: + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BE6C + adds r0, r4, #0 + bl sub_0805BEC4 + bl sub_0805E780 +_0805BE6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BE70 +sub_0805BE70: @ 0x0805BE70 + push {r4, lr} + adds r4, r1, #0 + ldrh r1, [r0, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r0, #0x3a] + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r0, #0xb] + adds r0, r4, #0 + bl sub_0807B314 + pop {r4, pc} + + thumb_func_start sub_0805BE94 +sub_0805BE94: @ 0x0805BE94 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + ldrb r2, [r4, #0xb] + movs r0, #0x76 + bl sub_0807B314 + ldrb r0, [r4, #0xe] + bl sub_0805308C + bl sub_0805E780 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BEC4 +sub_0805BEC4: @ 0x0805BEC4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2a + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805BF10 + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x11] + ldr r1, _0805BF14 @ =gRoomControls + ldrh r0, [r1, #6] + ldrh r3, [r4, #0x38] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + ldrh r1, [r4, #0x3a] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrb r1, [r4, #0xb] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] +_0805BF10: + pop {r4, pc} + .align 2, 0 +_0805BF14: .4byte gRoomControls + + thumb_func_start sub_0805BF18 +sub_0805BF18: @ 0x0805BF18 + push {lr} + ldr r2, _0805BF2C @ =gUnk_08108CDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805BF2C: .4byte gUnk_08108CDC + + thumb_func_start sub_0805BF30 +sub_0805BF30: @ 0x0805BF30 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4, #0x3c] + ldrh r0, [r4, #0x3c] + adds r1, r4, #0 + adds r1, #0x35 + ldrb r1, [r1] + bl sub_0805BFC4 + strb r0, [r4, #0xa] + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + beq _0805BF74 + adds r0, r4, #0 + bl sub_0805C02C + adds r0, r4, #0 + bl sub_0805E900 +_0805BF74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BF78 +sub_0805BF78: @ 0x0805BF78 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + adds r1, r4, #0 + adds r1, #0x35 + ldrb r1, [r1] + bl sub_080002C8 + cmp r0, #0x2e + beq _0805BFA0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805C02C + ldrh r0, [r4, #0x3e] + bl sub_0807CCB4 +_0805BFA0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BFA4 +sub_0805BFA4: @ 0x0805BFA4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805BFC0 + movs r0, #0x72 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0805E900 +_0805BFC0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BFC4 +sub_0805BFC4: @ 0x0805BFC4 + push {lr} + bl sub_080002B0 + adds r1, r0, #0 + cmp r1, #0xec + beq _0805C018 + cmp r1, #0xec + bhi _0805BFEC + cmp r1, #0xbf + beq _0805C024 + cmp r1, #0xbf + bhi _0805BFE2 + cmp r1, #0xaf + beq _0805C014 + b _0805C028 +_0805BFE2: + cmp r1, #0xcc + beq _0805C01C + cmp r1, #0xdf + beq _0805C020 + b _0805C028 +_0805BFEC: + movs r0, #0x84 + lsls r0, r0, #1 + cmp r1, r0 + beq _0805C01C + cmp r1, r0 + bhi _0805C004 + cmp r1, #0xff + beq _0805C014 + subs r0, #3 + cmp r1, r0 + beq _0805C024 + b _0805C028 +_0805C004: + movs r0, #0x88 + lsls r0, r0, #1 + cmp r1, r0 + beq _0805C020 + adds r0, #5 + cmp r1, r0 + beq _0805C018 + b _0805C028 +_0805C014: + movs r0, #0 + b _0805C02A +_0805C018: + movs r0, #1 + b _0805C02A +_0805C01C: + movs r0, #2 + b _0805C02A +_0805C020: + movs r0, #3 + b _0805C02A +_0805C024: + movs r0, #4 + b _0805C02A +_0805C028: + movs r0, #0xff +_0805C02A: + pop {pc} + + thumb_func_start sub_0805C02C +sub_0805C02C: @ 0x0805C02C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0xff + beq _0805C04A + ldr r0, _0805C04C @ =gUnk_08108CE8 + ldrb r2, [r1, #0xa] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrh r0, [r1, #0x3c] + adds r1, #0x35 + ldrb r1, [r1] + ldr r2, [r2] + bl _call_via_r2 +_0805C04A: + pop {pc} + .align 2, 0 +_0805C04C: .4byte gUnk_08108CE8 + + thumb_func_start sub_0805C050 +sub_0805C050: @ 0x0805C050 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xb1 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xb2 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xb3 + adds r2, r4, #0 + bl sub_0807B314 + subs r1, r5, #1 + movs r0, #0xb4 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #1 + movs r0, #0xb7 + adds r2, r4, #0 + bl sub_0807B314 + cmp r4, #1 + bne _0805C11C + bl sub_08052670 + cmp r0, #0 + beq _0805C0D8 + movs r0, #0x4f + movs r1, #0xe + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0805C0E0 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C0D0 @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + ldr r1, _0805C0D4 @ =0x0000FFF8 + adds r0, r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + b _0805C0E0 + .align 2, 0 +_0805C0D0: .4byte gRoomControls +_0805C0D4: .4byte 0x0000FFF8 +_0805C0D8: + bl sub_08052660 + cmp r0, #0 + beq _0805C0EC +_0805C0E0: + movs r0, #0xb5 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0805C0F6 +_0805C0EC: + movs r0, #0xb6 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0805C0F6: + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xb8 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xb9 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xba + movs r2, #2 + bl sub_0807B314 + b _0805C16E +_0805C11C: + movs r0, #0xb5 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + bl sub_08052660 + cmp r0, #0 + beq _0805C16E + bl sub_0805C608 + adds r1, r0, #0 + movs r0, #0x4f + movs r2, #6 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0805C16E + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C170 @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + ldr r1, _0805C174 @ =0x0000FFF0 + adds r0, r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_0805C16E: + pop {r4, r5, pc} + .align 2, 0 +_0805C170: .4byte gRoomControls +_0805C174: .4byte 0x0000FFF0 + + thumb_func_start sub_0805C178 +sub_0805C178: @ 0x0805C178 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xf1 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xf5 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #1 + movs r0, #0xf6 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0xf4 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x41 + movs r0, #0xf7 + adds r2, r4, #0 + bl sub_0807B314 + cmp r4, #1 + bne _0805C23E + bl sub_08052670 + cmp r0, #0 + beq _0805C1FC + movs r0, #0x4f + movs r1, #0xe + movs r2, #1 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805C204 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldr r1, _0805C1F8 @ =gRoomControls + adds r0, #0x18 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r1, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] + b _0805C204 + .align 2, 0 +_0805C1F8: .4byte gRoomControls +_0805C1FC: + bl sub_08052660 + cmp r0, #0 + beq _0805C210 +_0805C204: + movs r0, #0xf2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0805C21A +_0805C210: + movs r0, #0xf3 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0805C21A: + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xf8 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #1 + movs r0, #0xf9 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x41 + movs r0, #0xfa + movs r2, #2 + bl sub_0807B314 + b _0805C28E +_0805C23E: + movs r0, #0xf2 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + bl sub_08052660 + cmp r0, #0 + beq _0805C28E + bl sub_0805C608 + adds r1, r0, #0 + movs r0, #0x4f + movs r2, #7 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805C28E + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldr r1, _0805C290 @ =gRoomControls + adds r0, #0x20 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r1, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_0805C28E: + pop {r4, r5, pc} + .align 2, 0 +_0805C290: .4byte gRoomControls + + thumb_func_start sub_0805C294 +sub_0805C294: @ 0x0805C294 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + subs r1, r5, #1 + movs r0, #0xd1 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #1 + movs r0, #0xd4 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xd5 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0xd6 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x41 + movs r0, #0xd7 + adds r2, r4, #0 + bl sub_0807B314 + cmp r4, #1 + bne _0805C35C + bl sub_08052670 + cmp r0, #0 + beq _0805C318 + movs r0, #0x4f + movs r1, #0xe + movs r2, #2 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0805C320 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C314 @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #0x20 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + b _0805C320 + .align 2, 0 +_0805C314: .4byte gRoomControls +_0805C318: + bl sub_08052660 + cmp r0, #0 + beq _0805C32C +_0805C320: + movs r0, #0xd2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0805C336 +_0805C32C: + movs r0, #0xd3 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0805C336: + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xd8 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0xd9 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x41 + movs r0, #0xda + movs r2, #2 + bl sub_0807B314 + b _0805C3AC +_0805C35C: + movs r0, #0xd2 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + bl sub_08052660 + cmp r0, #0 + beq _0805C3AC + bl sub_0805C608 + adds r1, r0, #0 + movs r0, #0x4f + movs r2, #8 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0805C3AC + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C3B0 @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #0x20 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_0805C3AC: + pop {r4, r5, pc} + .align 2, 0 +_0805C3B0: .4byte gRoomControls + + thumb_func_start sub_0805C3B4 +sub_0805C3B4: @ 0x0805C3B4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xe1 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xe4 + adds r2, r4, #0 + bl sub_0807B314 + subs r1, r5, #1 + movs r0, #0xe2 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xe3 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0xe7 + adds r2, r4, #0 + bl sub_0807B314 + cmp r4, #1 + bne _0805C482 + bl sub_08052670 + cmp r0, #0 + beq _0805C440 + movs r0, #0x4f + movs r1, #0xe + movs r2, #3 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805C448 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldr r1, _0805C438 @ =gRoomControls + ldr r3, _0805C43C @ =0x0000FFF0 + adds r0, r0, r3 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r1, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] + b _0805C448 + .align 2, 0 +_0805C438: .4byte gRoomControls +_0805C43C: .4byte 0x0000FFF0 +_0805C440: + bl sub_08052660 + cmp r0, #0 + beq _0805C454 +_0805C448: + movs r0, #0xe5 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0805C45E +_0805C454: + movs r0, #0xe6 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0805C45E: + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xe8 + movs r2, #2 + bl sub_0807B314 + subs r1, r5, #1 + movs r0, #0xe9 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xea + movs r2, #2 + bl sub_0807B314 + b _0805C4D4 +_0805C482: + movs r0, #0xe5 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + bl sub_08052660 + cmp r0, #0 + beq _0805C4D4 + bl sub_0805C608 + adds r1, r0, #0 + movs r0, #0x4f + movs r2, #9 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805C4D4 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldr r1, _0805C4D8 @ =gRoomControls + ldr r3, _0805C4DC @ =0x0000FFF0 + adds r0, r0, r3 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r1, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_0805C4D4: + pop {r4, r5, pc} + .align 2, 0 +_0805C4D8: .4byte gRoomControls +_0805C4DC: .4byte 0x0000FFF0 + + thumb_func_start sub_0805C4E0 +sub_0805C4E0: @ 0x0805C4E0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xc1 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xc2 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xc3 + adds r2, r4, #0 + bl sub_0807B314 + subs r1, r5, #1 + movs r0, #0xc4 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #1 + movs r0, #0xc7 + adds r2, r4, #0 + bl sub_0807B314 + cmp r4, #1 + bne _0805C5AC + bl sub_08052670 + cmp r0, #0 + beq _0805C568 + movs r0, #0x4f + movs r1, #0xe + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0805C570 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C560 @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + ldr r1, _0805C564 @ =0x0000FFF0 + adds r0, r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + b _0805C570 + .align 2, 0 +_0805C560: .4byte gRoomControls +_0805C564: .4byte 0x0000FFF0 +_0805C568: + bl sub_08052660 + cmp r0, #0 + beq _0805C57C +_0805C570: + movs r0, #0xc5 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0805C586 +_0805C57C: + movs r0, #0xc6 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0805C586: + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xc8 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xc9 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xca + movs r2, #2 + bl sub_0807B314 + b _0805C5FE +_0805C5AC: + movs r0, #0xc5 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + bl sub_08052660 + cmp r0, #0 + beq _0805C5FE + bl sub_0805C608 + adds r1, r0, #0 + movs r0, #0x4f + movs r2, #6 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0805C5FE + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C600 @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + ldr r1, _0805C604 @ =0x0000FFF0 + adds r0, r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_0805C5FE: + pop {r4, r5, pc} + .align 2, 0 +_0805C600: .4byte gRoomControls +_0805C604: .4byte 0x0000FFF0 + + thumb_func_start sub_0805C608 +sub_0805C608: @ 0x0805C608 + ldr r1, _0805C614 @ =gUnk_08108CFC + ldr r0, _0805C618 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0805C614: .4byte gUnk_08108CFC +_0805C618: .4byte gUnk_02033A90 + + thumb_func_start sub_0805C61C +sub_0805C61C: @ 0x0805C61C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805C674 + movs r0, #0x38 + ldrsh r1, [r4, r0] + ldr r2, _0805C668 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x3a + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4, #0x38] + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #2 + bl sub_080002B0 + cmp r0, #0x75 + bne _0805C670 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0805C66C @ =0x0000406A + movs r2, #0x38 + ldrsh r1, [r4, r2] + movs r2, #1 + bl sub_0800015E + b _0805C674 + .align 2, 0 +_0805C668: .4byte gRoomControls +_0805C66C: .4byte 0x0000406A +_0805C670: + bl sub_0805E780 +_0805C674: + movs r5, #0x38 + ldrsh r0, [r4, r5] + movs r1, #1 + bl sub_080002B0 + ldr r5, _0805C6B4 @ =0x0000406B + cmp r0, r5 + bne _0805C694 + movs r0, #0x38 + ldrsh r1, [r4, r0] + movs r0, #0x76 + movs r2, #2 + bl sub_0807B7D8 + bl sub_0805E780 +_0805C694: + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #2 + bl sub_080002B0 + cmp r0, #0x76 + bne _0805C6B2 + movs r2, #0x38 + ldrsh r1, [r4, r2] + adds r0, r5, #0 + movs r2, #1 + bl sub_0800015E + bl sub_0805E780 +_0805C6B2: + pop {r4, r5, pc} + .align 2, 0 +_0805C6B4: .4byte 0x0000406B + + thumb_func_start sub_0805C6B8 +sub_0805C6B8: @ 0x0805C6B8 + push {lr} + ldr r2, _0805C6CC @ =gUnk_08108D04 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805C6CC: .4byte gUnk_08108D04 + + thumb_func_start sub_0805C6D0 +sub_0805C6D0: @ 0x0805C6D0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + bne _0805C6EA + adds r0, r5, #0 + bl sub_0805E900 + b _0805C79A +_0805C6EA: + ldr r3, _0805C784 @ =gRoomControls + ldrh r0, [r3, #8] + ldrb r1, [r5, #0xe] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r5, #0x2a] + strb r1, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x28 + strb r1, [r0] + adds r2, r5, #0 + adds r2, #0x29 + strb r1, [r2] + ldrb r0, [r4] + cmp r0, #0xff + beq _0805C778 + ldrb r0, [r5, #0xe] + cmp r0, #0x1f + bhi _0805C778 + adds r7, r3, #0 + movs r3, #1 + adds r6, r2, #0 +_0805C716: + ldrb r1, [r4, #1] + ldrb r2, [r4, #2] + movs r0, #0x4c + str r3, [sp] + bl CreateObject + adds r2, r0, #0 + ldr r3, [sp] + cmp r2, #0 + beq _0805C762 + ldrb r0, [r4, #3] + strb r0, [r2, #0xe] + ldrh r0, [r4, #4] + ldrh r1, [r7, #6] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #6] + ldrh r1, [r7, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + str r5, [r2, #0x50] + adds r0, r2, #0 + adds r0, #0x38 + strb r3, [r0] + ldrb r0, [r5, #0xe] + adds r1, r2, #0 + adds r1, #0x83 + strb r0, [r1] + ldrb r1, [r4] + adds r0, r2, #0 + adds r0, #0x82 + strb r1, [r0] + adds r0, r3, #0 + ldrb r1, [r5, #0xe] + lsls r0, r1 + ldrb r1, [r6] + orrs r0, r1 + strb r0, [r6] +_0805C762: + adds r4, #8 + ldrb r0, [r5, #0xe] + adds r1, r0, #1 + strb r1, [r5, #0xe] + ldrb r0, [r4] + cmp r0, #0xff + beq _0805C778 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _0805C716 +_0805C778: + ldrb r0, [r5, #0xb] + cmp r0, #0xff + bne _0805C788 + movs r0, #2 + b _0805C798 + .align 2, 0 +_0805C784: .4byte gRoomControls +_0805C788: + ldrb r0, [r5, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + beq _0805C796 + movs r0, #2 + b _0805C798 +_0805C796: + movs r0, #1 +_0805C798: + strb r0, [r5, #0xc] +_0805C79A: + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0805C7A0 +sub_0805C7A0: @ 0x0805C7A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x28 + adds r1, r4, #0 + adds r1, #0x29 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _0805C7BC + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + bl sub_0807CCB4 +_0805C7BC: + adds r0, r4, #0 + bl sub_0805C7CC + pop {r4, pc} + + thumb_func_start sub_0805C7C4 +sub_0805C7C4: @ 0x0805C7C4 + push {lr} + bl sub_0805C7CC + pop {pc} + + thumb_func_start sub_0805C7CC +sub_0805C7CC: @ 0x0805C7CC + push {lr} + adds r2, r0, #0 + ldr r0, _0805C7F0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0805C7FC + ldr r0, _0805C7F4 @ =gLinkEntity + movs r3, #0x32 + ldrsh r1, [r0, r3] + ldrh r0, [r2, #0x2a] + adds r0, #0x10 + cmp r1, r0 + bge _0805C7F8 + movs r0, #1 + b _0805C816 + .align 2, 0 +_0805C7F0: .4byte gUnk_03003F80 +_0805C7F4: .4byte gLinkEntity +_0805C7F8: + movs r0, #0 + b _0805C816 +_0805C7FC: + ldr r0, _0805C810 @ =gLinkEntity + movs r3, #0x32 + ldrsh r1, [r0, r3] + ldrh r0, [r2, #0x2a] + adds r0, #0x28 + cmp r1, r0 + bge _0805C814 + movs r0, #3 + b _0805C816 + .align 2, 0 +_0805C810: .4byte gLinkEntity +_0805C814: + movs r0, #2 +_0805C816: + strb r0, [r2, #0xd] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805C81C +sub_0805C81C: @ 0x0805C81C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805C854 @ =gUnk_08108D10 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r0, #0xc0 + lsls r0, r0, #2 + ldrb r1, [r4, #0xa] + adds r1, #0x67 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _0805C85C + ldr r0, _0805C858 @ =gUnk_030010A0 + adds r0, #0xac + movs r1, #1 + ldrb r4, [r4, #0xa] + lsls r1, r4 + ldrh r2, [r0] + orrs r1, r2 + strh r1, [r0] + b _0805C86C + .align 2, 0 +_0805C854: .4byte gUnk_08108D10 +_0805C858: .4byte gUnk_030010A0 +_0805C85C: + ldr r2, _0805C870 @ =gUnk_030010A0 + adds r2, #0xac + movs r1, #1 + ldrb r4, [r4, #0xa] + lsls r1, r4 + ldrh r0, [r2] + bics r0, r1 + strh r0, [r2] +_0805C86C: + pop {r4, pc} + .align 2, 0 +_0805C870: .4byte gUnk_030010A0 + + thumb_func_start sub_0805C874 +sub_0805C874: @ 0x0805C874 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805C920 + cmp r0, #0 + beq _0805C884 + movs r0, #2 + b _0805C886 +_0805C884: + movs r0, #1 +_0805C886: + strb r0, [r4, #0xc] + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805C894 +sub_0805C894: @ 0x0805C894 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805C920 + cmp r0, #0 + beq _0805C8B0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x8d + lsls r0, r0, #1 + bl sub_080A3268 +_0805C8B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805C8B4 +sub_0805C8B4: @ 0x0805C8B4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0805C8F4 + movs r0, #0x14 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #5 + bls _0805C8DA + strb r1, [r4, #0xf] +_0805C8DA: + ldr r1, _0805C904 @ =gUnk_08108D20 + ldrb r0, [r4, #0xf] + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_0801D714 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0805C8F4 + movs r0, #0x8d + lsls r0, r0, #1 + bl sub_080A3268 +_0805C8F4: + adds r0, r4, #0 + bl sub_0805C920 + cmp r0, #0 + bne _0805C902 + movs r0, #3 + strb r0, [r4, #0xc] +_0805C902: + pop {r4, pc} + .align 2, 0 +_0805C904: .4byte gUnk_08108D20 + + thumb_func_start sub_0805C908 +sub_0805C908: @ 0x0805C908 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + cmp r0, #0 + bne _0805C918 + movs r0, #1 + strb r0, [r1, #0xc] + b _0805C91E +_0805C918: + adds r0, r1, #0 + bl sub_0805C8B4 +_0805C91E: + pop {pc} + + thumb_func_start sub_0805C920 +sub_0805C920: @ 0x0805C920 + push {lr} + movs r2, #0xc0 + lsls r2, r2, #2 + ldrb r1, [r0, #0xa] + adds r1, #0x67 + adds r0, r2, #0 + bl GetProgressFlagWithOffset + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805C934 +sub_0805C934: @ 0x0805C934 + push {lr} + ldr r2, _0805C948 @ =gUnk_08108D28 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805C948: .4byte gUnk_08108D28 + + thumb_func_start sub_0805C94C +sub_0805C94C: @ 0x0805C94C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0805C9B0 + adds r6, r4, #0 + adds r6, #0x20 + adds r1, r6, #0 + movs r2, #0 + adds r0, r4, #0 + adds r0, #0x3c +_0805C962: + str r2, [r0] + subs r0, #4 + cmp r0, r1 + bge _0805C962 + adds r0, r4, #0 + bl sub_0805CA6C + adds r5, r0, #0 + cmp r5, #1 + ble _0805C9A8 + bl sub_0805E8D4 + adds r2, r0, #0 + cmp r2, #0 + beq _0805C9A8 + movs r0, #9 + strb r0, [r2, #8] + movs r0, #0x28 + strb r0, [r2, #9] + movs r0, #1 + strb r0, [r2, #0xa] + strb r5, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x20 + adds r0, r6, #0 + ldm r0!, {r3, r5, r6} + stm r1!, {r3, r5, r6} + ldm r0!, {r3, r5, r6} + stm r1!, {r3, r5, r6} + ldm r0!, {r3, r5} + stm r1!, {r3, r5} + adds r0, r2, #0 + movs r1, #6 + bl sub_0805EA2C +_0805C9A8: + adds r0, r4, #0 + bl sub_0805E900 + b _0805C9B8 +_0805C9B0: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xf] +_0805C9B8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805C9BC +sub_0805C9BC: @ 0x0805C9BC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r6, r0, #0 + bl sub_0805CB48 + ldrb r0, [r6, #0xe] + subs r0, #1 + mov sb, r0 + ldrb r1, [r6, #0xf] + adds r0, r1, #1 + strb r0, [r6, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805CA22 + movs r2, #0 + cmp r2, sb + bge _0805CA62 + movs r0, #0x20 + adds r0, r0, r6 + mov r8, r0 +_0805C9EC: + lsls r1, r2, #2 + adds r0, r6, #0 + adds r0, #0x20 + adds r0, r0, r1 + ldr r3, [r0] + adds r4, r2, #1 + adds r5, r4, #0 + ldrb r1, [r6, #0xe] + cmp r5, r1 + bge _0805CA1A + lsls r0, r5, #2 + mov r1, r8 + adds r7, r0, r1 +_0805CA06: + ldm r7!, {r1} + adds r0, r3, #0 + str r3, [sp] + bl sub_08004484 + adds r4, #1 + ldr r3, [sp] + ldrb r0, [r6, #0xe] + cmp r4, r0 + blt _0805CA06 +_0805CA1A: + adds r2, r5, #0 + cmp r2, sb + blt _0805C9EC + b _0805CA62 +_0805CA22: + movs r2, #0 + cmp r2, sb + bge _0805CA62 + movs r1, #0x20 + adds r1, r1, r6 + mov r8, r1 +_0805CA2E: + lsls r1, r2, #2 + adds r0, r6, #0 + adds r0, #0x20 + adds r0, r0, r1 + ldr r3, [r0] + adds r4, r2, #1 + adds r5, r4, #0 + ldrb r0, [r6, #0xe] + cmp r5, r0 + bge _0805CA5C + lsls r0, r5, #2 + mov r1, r8 + adds r7, r0, r1 +_0805CA48: + ldm r7!, {r0} + adds r1, r3, #0 + str r3, [sp] + bl sub_08004484 + adds r4, #1 + ldr r3, [sp] + ldrb r0, [r6, #0xe] + cmp r4, r0 + blt _0805CA48 +_0805CA5C: + adds r2, r5, #0 + cmp r2, sb + blt _0805CA2E +_0805CA62: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805CA6C +sub_0805CA6C: @ 0x0805CA6C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 + ldrb r0, [r6, #0xb] + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + bne _0805CACE + movs r0, #0 + b _0805CAE4 +_0805CA82: + movs r0, #8 + b _0805CAE4 +_0805CA86: + movs r0, #0xf + ands r0, r2 + cmp r0, #3 + bne _0805CACC + adds r0, r4, #0 + bl sub_0805CAF0 + adds r2, r0, #0 + cmp r2, #0 + beq _0805CACC + movs r3, #0 + cmp r3, r5 + bhs _0805CAB8 + ldr r0, [r6, #0x20] + cmp r0, r2 + beq _0805CAB8 + adds r1, r6, #0 + adds r1, #0x20 +_0805CAAA: + adds r1, #4 + adds r3, #1 + cmp r3, r5 + bhs _0805CAB8 + ldr r0, [r1] + cmp r0, r2 + bne _0805CAAA +_0805CAB8: + cmp r3, r5 + bne _0805CACC + lsls r1, r5, #2 + adds r0, r6, #0 + adds r0, #0x20 + adds r0, r0, r1 + str r2, [r0] + adds r5, #1 + cmp r5, #8 + beq _0805CA82 +_0805CACC: + adds r4, #0x10 +_0805CACE: + ldrb r2, [r4] + adds r0, r2, #0 + cmp r0, #0xff + beq _0805CAE2 + ldr r0, [r4] + ldr r1, _0805CAE8 @ =0x00FF000F + ands r0, r1 + ldr r1, _0805CAEC @ =0x00280009 + cmp r0, r1 + bne _0805CA86 +_0805CAE2: + adds r0, r5, #0 +_0805CAE4: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805CAE8: .4byte 0x00FF000F +_0805CAEC: .4byte 0x00280009 + + thumb_func_start sub_0805CAF0 +sub_0805CAF0: @ 0x0805CAF0 + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldrh r1, [r3, #8] + ldr r2, _0805CB34 @ =gRoomControls + ldrh r0, [r2, #6] + adds r5, r1, r0 + ldrh r1, [r3, #0xa] + ldrh r0, [r2, #8] + adds r4, r1, r0 + ldr r1, _0805CB38 @ =gUnk_03003D90 + ldr r2, [r1, #4] + cmp r2, r1 + beq _0805CB42 +_0805CB0A: + movs r6, #0x2e + ldrsh r0, [r2, r6] + cmp r5, r0 + bne _0805CB3C + movs r6, #0x32 + ldrsh r0, [r2, r6] + cmp r4, r0 + bne _0805CB3C + ldrb r0, [r3, #2] + ldrb r6, [r2, #9] + cmp r0, r6 + bne _0805CB3C + ldrb r0, [r2, #8] + cmp r0, #3 + bne _0805CB3C + ldrb r0, [r3, #3] + ldrb r6, [r2, #0xa] + cmp r0, r6 + bne _0805CB3C + adds r0, r2, #0 + b _0805CB44 + .align 2, 0 +_0805CB34: .4byte gRoomControls +_0805CB38: .4byte gUnk_03003D90 +_0805CB3C: + ldr r2, [r2, #4] + cmp r2, r1 + bne _0805CB0A +_0805CB42: + movs r0, #0 +_0805CB44: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805CB48 +sub_0805CB48: @ 0x0805CB48 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #0 + ldrb r1, [r4, #0xe] + cmp r5, r1 + bge _0805CB84 + adds r3, r4, #0 + adds r3, #0x20 + adds r6, r3, #0 +_0805CB5A: + ldr r0, [r3] + ldr r2, [r0, #4] + cmp r2, #0 + bne _0805CB7A + subs r0, r1, #1 + cmp r0, r5 + bne _0805CB6C + str r2, [r3] + b _0805CB74 +_0805CB6C: + lsls r0, r0, #2 + adds r0, r6, r0 + ldr r0, [r0] + str r0, [r3] +_0805CB74: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] +_0805CB7A: + adds r3, #4 + adds r5, #1 + ldrb r1, [r4, #0xe] + cmp r5, r1 + blt _0805CB5A +_0805CB84: + ldrb r0, [r4, #0xe] + cmp r0, #1 + bhi _0805CB8E + bl sub_0805E780 +_0805CB8E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0805CB90 +sub_0805CB90: @ 0x0805CB90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805CBB8 + adds r0, r4, #0 + bl sub_0805CBD0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805CBCE + adds r0, r4, #0 + bl sub_0805CC3C + adds r0, r4, #0 + bl sub_0805E900 + b _0805CBCE +_0805CBB8: + adds r0, r4, #0 + bl sub_0805CF80 + cmp r0, #0 + beq _0805CBCE + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + adds r0, r4, #0 + bl sub_0805E900 +_0805CBCE: + pop {r4, pc} + + thumb_func_start sub_0805CBD0 +sub_0805CBD0: @ 0x0805CBD0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrh r1, [r5, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r3, #0x3f + ands r1, r3 + ldrh r0, [r5, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r5, #0x38] + ldrh r2, [r5, #0x3c] + lsrs r2, r2, #4 + ands r2, r3 + adds r0, r5, #0 + adds r0, #0x36 + ldrb r1, [r0] + adds r0, #1 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, r1, r0 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r2, r1 + strh r2, [r5, #0x3a] + movs r1, #0x38 + ldrsh r0, [r5, r1] + adds r4, r5, #0 + adds r4, #0x34 + ldrb r1, [r4] + bl sub_080002B0 + strh r0, [r5, #0x3c] + ldrb r0, [r4] + bl sub_0808094C + ldr r2, _0805CC38 @ =0x00005004 + adds r1, r0, r2 + str r1, [r5, #0x28] + movs r2, #0x3a + ldrsh r1, [r5, r2] + lsls r1, r1, #1 + adds r1, #4 + adds r0, r0, r1 + str r0, [r5, #0x2c] + pop {r4, r5, pc} + .align 2, 0 +_0805CC38: .4byte 0x00005004 + + thumb_func_start sub_0805CC3C +sub_0805CC3C: @ 0x0805CC3C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r0, #0x38 + ldrsh r5, [r4, r0] + movs r0, #0x3a + ldrsh r1, [r4, r0] + mov r8, r1 + adds r7, r4, #0 + adds r7, #0x34 + ldrb r0, [r7] + ldr r6, _0805CC6C @ =0x00000322 + cmp r0, #1 + bne _0805CC5C + subs r6, #1 +_0805CC5C: + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0805CCF4 + cmp r0, #2 + bgt _0805CC70 + cmp r0, #1 + beq _0805CC94 + b _0805CC76 + .align 2, 0 +_0805CC6C: .4byte 0x00000322 +_0805CC70: + cmp r0, #3 + bne _0805CC76 + b _0805CDE4 +_0805CC76: + adds r4, #0x34 + ldrb r2, [r4] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0807B7D8 + ldr r0, _0805CC90 @ =0x00000365 + ldrb r2, [r4] + mov r1, r8 + bl sub_0807B7D8 + b _0805CF68 + .align 2, 0 +_0805CC90: .4byte 0x00000365 +_0805CC94: + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0807B7D8 + adds r1, r5, #1 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x40 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x41 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + ldrh r0, [r4, #0x3c] + ldrb r2, [r7] + mov r1, r8 + bl sub_0807B7D8 + ldr r0, _0805CCEC @ =0x0000036F + mov r1, r8 + adds r1, #1 + ldrb r2, [r7] + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + mov r1, r8 + adds r1, #0x40 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CCF0 @ =0x00000371 + mov r1, r8 + adds r1, #0x41 + b _0805CDC2 + .align 2, 0 +_0805CCEC: .4byte 0x0000036F +_0805CCF0: .4byte 0x00000371 +_0805CCF4: + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0807B7D8 + adds r1, r5, #1 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #2 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x40 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x41 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x42 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x80 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x81 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x82 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + ldrh r0, [r4, #0x3c] + ldrb r2, [r7] + mov r1, r8 + bl sub_0807B7D8 + ldr r0, _0805CDCC @ =0x00000372 + mov r1, r8 + adds r1, #1 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CDD0 @ =0x0000036F + mov r1, r8 + adds r1, #2 + ldrb r2, [r7] + bl sub_0807B7D8 + movs r0, #0xdd + lsls r0, r0, #2 + mov r1, r8 + adds r1, #0x40 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CDD4 @ =0x00000376 + mov r1, r8 + adds r1, #0x41 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CDD8 @ =0x00000375 + mov r1, r8 + adds r1, #0x42 + ldrb r2, [r7] + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + mov r1, r8 + adds r1, #0x80 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CDDC @ =0x00000373 + mov r1, r8 + adds r1, #0x81 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CDE0 @ =0x00000371 + mov r1, r8 + adds r1, #0x82 +_0805CDC2: + ldrb r2, [r7] + bl sub_0807B7D8 + b _0805CF68 + .align 2, 0 +_0805CDCC: .4byte 0x00000372 +_0805CDD0: .4byte 0x0000036F +_0805CDD4: .4byte 0x00000376 +_0805CDD8: .4byte 0x00000375 +_0805CDDC: .4byte 0x00000373 +_0805CDE0: .4byte 0x00000371 +_0805CDE4: + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0807B7D8 + adds r1, r5, #1 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #2 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #3 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x40 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x41 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x42 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x43 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x80 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x81 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x82 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0xc0 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0xc1 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0xc2 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0xc3 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + ldrh r0, [r4, #0x3c] + ldrb r2, [r7] + mov r1, r8 + bl sub_0807B7D8 + ldr r4, _0805CF70 @ =0x00000372 + mov r1, r8 + adds r1, #1 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #2 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + ldr r0, _0805CF74 @ =0x0000036F + mov r1, r8 + adds r1, #3 + ldrb r2, [r7] + bl sub_0807B7D8 + movs r6, #0xdd + lsls r6, r6, #2 + mov r1, r8 + adds r1, #0x40 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r4, #4 + mov r1, r8 + adds r1, #0x41 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0x42 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + ldr r5, _0805CF78 @ =0x00000375 + mov r1, r8 + adds r1, #0x43 + ldrb r2, [r7] + adds r0, r5, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0x80 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0x81 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0x82 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0x83 + ldrb r2, [r7] + adds r0, r5, #0 + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + mov r1, r8 + adds r1, #0xc0 + ldrb r2, [r7] + bl sub_0807B7D8 + subs r4, #3 + mov r1, r8 + adds r1, #0xc1 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0xc2 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + ldr r0, _0805CF7C @ =0x00000371 + mov r1, r8 + adds r1, #0xc3 + ldrb r2, [r7] + bl sub_0807B7D8 +_0805CF68: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805CF70: .4byte 0x00000372 +_0805CF74: .4byte 0x0000036F +_0805CF78: .4byte 0x00000375 +_0805CF7C: .4byte 0x00000371 + + thumb_func_start sub_0805CF80 +sub_0805CF80: @ 0x0805CF80 + push {lr} + ldr r1, [r0, #0x2c] + ldrh r1, [r1] + ldr r0, [r0, #0x28] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + movs r2, #0 + ldr r0, _0805CFBC @ =0x00000365 + cmp r1, r0 + beq _0805CFB4 + adds r0, #4 + cmp r1, r0 + beq _0805CFB4 + adds r0, #1 + cmp r1, r0 + beq _0805CFB4 + adds r0, #1 + cmp r1, r0 + beq _0805CFB4 + adds r0, #2 + cmp r1, r0 + beq _0805CFB4 + subs r0, #1 + cmp r1, r0 + bne _0805CFB6 +_0805CFB4: + movs r2, #1 +_0805CFB6: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0805CFBC: .4byte 0x00000365 + + thumb_func_start sub_0805CFC0 +sub_0805CFC0: @ 0x0805CFC0 + push {r4, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _0805CFCE + adds r0, #1 + strb r0, [r1, #0xc] +_0805CFCE: + movs r0, #3 + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + beq _0805CFEE + b _0805CFE8 +_0805CFDC: + cmp r0, #0xa + bne _0805CFE6 + adds r0, r4, #0 + bl sub_0805CFF0 +_0805CFE6: + adds r4, #8 +_0805CFE8: + ldrb r0, [r4] + cmp r0, #0 + bne _0805CFDC +_0805CFEE: + pop {r4, pc} + + thumb_func_start sub_0805CFF0 +sub_0805CFF0: @ 0x0805CFF0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #2] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805D012 + ldrh r0, [r4, #4] + ldrb r1, [r4, #1] + bl sub_080002B0 + ldrh r1, [r4, #6] + cmp r1, r0 + bne _0805D012 + ldrh r0, [r4, #2] + bl sub_0807CCB4 +_0805D012: + pop {r4, pc} + + thumb_func_start sub_0805D014 +sub_0805D014: @ 0x0805D014 + push {lr} + ldr r2, _0805D028 @ =gUnk_08108D30 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805D028: .4byte gUnk_08108D30 + + thumb_func_start sub_0805D02C +sub_0805D02C: @ 0x0805D02C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + ldrh r0, [r6, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D046 + bl sub_0805E780 +_0805D046: + ldr r0, _0805D0BC @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bhi _0805D0B0 + ldrb r0, [r6, #0xa] + bl sub_0804B128 + adds r5, r0, #0 + movs r7, #0 + movs r0, #0x36 + adds r0, r0, r6 + mov sl, r0 + ldr r1, _0805D0C0 @ =gRoomControls + mov r8, r1 + movs r0, #0x20 + adds r0, r0, r6 + mov sb, r0 +_0805D068: + ldrh r1, [r5, #4] + movs r0, #0xa0 + adds r2, r7, #0 + bl CreateObject + adds r4, r0, #0 + mov r1, r8 + ldrh r0, [r1, #6] + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + mov r1, r8 + ldrh r0, [r1, #8] + ldrh r1, [r5, #2] + adds r0, r0, r1 + strh r0, [r4, #0x32] + str r6, [r4, #0x50] + adds r0, r4, #0 + bl sub_08016A30 + mov r0, sb + adds r0, #4 + mov sb, r0 + subs r0, #4 + stm r0!, {r4} + adds r7, #1 + adds r5, #6 + cmp r7, #3 + bls _0805D068 + movs r0, #0 + movs r1, #1 + strb r1, [r6, #0xc] + movs r1, #0x3c + strb r1, [r6, #0xf] + mov r1, sl + strb r0, [r1] +_0805D0B0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805D0BC: .4byte gUnk_03003DBC +_0805D0C0: .4byte gRoomControls + + thumb_func_start sub_0805D0C4 +sub_0805D0C4: @ 0x0805D0C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D0D8 + movs r0, #0xb4 + strb r0, [r4, #0xf] +_0805D0D8: + adds r5, r4, #0 + adds r5, #0x36 + ldrb r0, [r5] + cmp r0, #0xf + bne _0805D0F6 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0x72 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0805D11C +_0805D0F6: + movs r0, #0 + strb r0, [r5] + pop {r4, r5, pc} + + thumb_func_start sub_0805D0FC +sub_0805D0FC: @ 0x0805D0FC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D118 + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + adds r0, r4, #0 + bl sub_0805E900 +_0805D118: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805D11C +sub_0805D11C: @ 0x0805D11C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r6, #0 + ldr r1, _0805D170 @ =gRoomControls + mov r8, r1 + movs r7, #0x3f + adds r5, r0, #0 + adds r5, #0x20 +_0805D12E: + ldr r4, [r5] + movs r0, #0 + stm r5!, {r0} + movs r2, #0x2e + ldrsh r0, [r4, r2] + mov r3, r8 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r7 + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r3, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r7 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + adds r0, r4, #0 + bl sub_0805E7BC + adds r6, #1 + cmp r6, #3 + bls _0805D12E + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805D170: .4byte gRoomControls + + thumb_func_start sub_0805D174 +sub_0805D174: @ 0x0805D174 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xc] + cmp r1, #0 + bne _0805D184 + movs r0, #1 + strb r0, [r5, #0xc] + strh r1, [r5, #0x3a] +_0805D184: + movs r1, #0x38 + ldrsh r0, [r5, r1] + movs r2, #0x3a + ldrsh r1, [r5, r2] + movs r2, #0x14 + movs r3, #0x40 + bl sub_0800293E + cmp r0, #0 + beq _0805D1EE + ldr r0, _0805D1F0 @ =gLinkEntity + movs r4, #0x32 + ldrsh r1, [r0, r4] + ldr r3, _0805D1F4 @ =gRoomControls + ldrh r2, [r3, #8] + subs r1, r1, r2 + movs r4, #0x36 + ldrsh r0, [r0, r4] + adds r1, r1, r0 + cmp r1, #0 + bge _0805D1EE + movs r1, #0xc + ldrsh r0, [r3, r1] + cmp r0, r2 + bne _0805D1EE + ldr r4, _0805D1F8 @ =gUnk_030010AC + adds r0, r4, #0 + movs r1, #0x20 + bl sub_0801D630 + subs r4, #0xc + movs r1, #0 + movs r0, #1 + strb r0, [r4, #8] + strb r1, [r4, #9] + movs r0, #0xb + strb r0, [r4, #0xf] + ldrb r0, [r5, #0xb] + strb r0, [r4, #0xc] + ldrb r0, [r5, #0xe] + strb r0, [r4, #0xd] + adds r0, r5, #0 + adds r0, #0x37 + ldrb r0, [r0] + strb r0, [r4, #0xe] + ldrh r0, [r5, #0x3c] + strh r0, [r4, #0x10] + ldrh r0, [r5, #0x3e] + strh r0, [r4, #0x12] + adds r0, r5, #0 + adds r0, #0x36 + ldrb r0, [r0] + strb r0, [r4, #0x14] +_0805D1EE: + pop {r4, r5, pc} + .align 2, 0 +_0805D1F0: .4byte gLinkEntity +_0805D1F4: .4byte gRoomControls +_0805D1F8: .4byte gUnk_030010AC + + thumb_func_start sub_0805D1FC +sub_0805D1FC: @ 0x0805D1FC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0805D240 @ =0x00004014 + ldr r1, _0805D244 @ =0x000005C3 + movs r2, #1 + bl sub_0800015E + ldr r3, _0805D248 @ =gRoomControls + ldrh r0, [r3, #8] + adds r0, #0xc8 + ldr r2, _0805D24C @ =gLinkEntity + movs r5, #0x32 + ldrsh r1, [r2, r5] + cmp r0, r1 + bge _0805D236 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldrh r1, [r3, #6] + subs r0, r0, r1 + subs r0, #0x30 + cmp r0, #0x10 + bhi _0805D236 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A04 +_0805D236: + adds r0, r4, #0 + bl sub_0805E900 + pop {r4, r5, pc} + .align 2, 0 +_0805D240: .4byte 0x00004014 +_0805D244: .4byte 0x000005C3 +_0805D248: .4byte gRoomControls +_0805D24C: .4byte gLinkEntity + + thumb_func_start sub_0805D250 +sub_0805D250: @ 0x0805D250 + push {lr} + ldr r2, _0805D264 @ =gUnk_08108D3C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805D264: .4byte gUnk_08108D3C + + thumb_func_start sub_0805D268 +sub_0805D268: @ 0x0805D268 + push {lr} + ldr r2, _0805D27C @ =gUnk_08108D44 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805D27C: .4byte gUnk_08108D44 + + thumb_func_start sub_0805D280 +sub_0805D280: @ 0x0805D280 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D292 + bl sub_0805E780 +_0805D292: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D2A6 + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + bl sub_0805E780 +_0805D2A6: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0805D2B4 + movs r0, #0x1e + strb r0, [r4, #0xe] +_0805D2B4: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805D2C0 +sub_0805D2C0: @ 0x0805D2C0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D2EE + ldr r0, _0805D2F0 @ =gUnk_03003DC0 + ldrh r0, [r0, #8] + cmp r0, #1 + bhi _0805D2EE + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _0805D2E6 + adds r0, r4, #0 + bl sub_0805D2F4 +_0805D2E6: + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805E4E0 +_0805D2EE: + pop {r4, pc} + .align 2, 0 +_0805D2F0: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805D2F4 +sub_0805D2F4: @ 0x0805D2F4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0805D310 @ =gUnk_03003DC0 + ldrh r0, [r0, #8] + cmp r0, #0 + bne _0805D328 + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0805D314 + bl sub_080A3268 + b _0805D31A + .align 2, 0 +_0805D310: .4byte gUnk_03003DC0 +_0805D314: + movs r0, #0x72 + bl sub_080A3268 +_0805D31A: + ldrh r0, [r4, #0x3c] + cmp r0, #0 + beq _0805D324 + bl sub_0807CCC8 +_0805D324: + bl sub_0805E780 +_0805D328: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805D32C +sub_0805D32C: @ 0x0805D32C + push {lr} + ldr r2, _0805D340 @ =gUnk_08108D50 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805D340: .4byte gUnk_08108D50 + + thumb_func_start sub_0805D344 +sub_0805D344: @ 0x0805D344 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0805D35C + movs r0, #0x1e + strb r0, [r4, #0xe] +_0805D35C: + ldrb r0, [r4, #0xe] + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805D36C +sub_0805D36C: @ 0x0805D36C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D382 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xf] + strb r0, [r4, #0xe] +_0805D382: + pop {r4, pc} + + thumb_func_start sub_0805D384 +sub_0805D384: @ 0x0805D384 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0805D3B2 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D3C6 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0x72 + cmp r0, #0 + beq _0805D3A4 + adds r1, r0, #0 +_0805D3A4: + adds r0, r1, #0 + bl sub_080A3268 + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + b _0805D3C6 +_0805D3B2: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + bne _0805D3C6 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3c] + bl sub_0807CD48 +_0805D3C6: + pop {r4, pc} + + thumb_func_start sub_0805D3C8 +sub_0805D3C8: @ 0x0805D3C8 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #0 + bne _0805D3F4 + ldr r0, _0805D3E8 @ =gUnk_02033A90 + ldr r1, _0805D3EC @ =0x0000088C + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0805D3F0 @ =sub_0805D470 + cmp r0, r1 + beq _0805D45E + movs r0, #0 + bl _call_via_r1 + b _0805D45E + .align 2, 0 +_0805D3E8: .4byte gUnk_02033A90 +_0805D3EC: .4byte 0x0000088C +_0805D3F0: .4byte sub_0805D470 +_0805D3F4: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805D43A + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _0805D428 @ =gUnk_02033A90 + ldr r2, _0805D42C @ =0x0000088C + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, #0 + bne _0805D434 + ldr r1, _0805D430 @ =sub_0805D470 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + b _0805D45E + .align 2, 0 +_0805D428: .4byte gUnk_02033A90 +_0805D42C: .4byte 0x0000088C +_0805D430: .4byte sub_0805D470 +_0805D434: + bl sub_0805E780 + b _0805D45E +_0805D43A: + ldr r1, _0805D460 @ =gRoomControls + ldr r0, [r1, #0x28] + ldr r3, _0805D464 @ =0xFFFFC000 + adds r0, r0, r3 + str r0, [r1, #0x28] + ldr r0, [r1, #0x2c] + ldr r2, _0805D468 @ =0xFFFFE000 + adds r0, r0, r2 + str r0, [r1, #0x2c] + ldr r2, _0805D46C @ =gLCDControls + ldrh r0, [r1, #0x2a] + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] +_0805D45E: + pop {r4, pc} + .align 2, 0 +_0805D460: .4byte gRoomControls +_0805D464: .4byte 0xFFFFC000 +_0805D468: .4byte 0xFFFFE000 +_0805D46C: .4byte gLCDControls + + thumb_func_start sub_0805D470 +sub_0805D470: @ 0x0805D470 + push {lr} + movs r0, #0x4c + bl sub_0801D7EC + ldr r2, _0805D4A0 @ =gLCDControls + ldr r0, _0805D4A4 @ =0x00001E07 + strh r0, [r2, #0x2c] + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0805D4A8 @ =gRoomControls + ldrh r0, [r1, #0x2a] + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] + pop {pc} + .align 2, 0 +_0805D4A0: .4byte gLCDControls +_0805D4A4: .4byte 0x00001E07 +_0805D4A8: .4byte gRoomControls + + thumb_func_start sub_0805D4AC +sub_0805D4AC: @ 0x0805D4AC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #1 + beq _0805D520 + cmp r0, #1 + bgt _0805D4C6 + cmp r0, #0 + beq _0805D4D2 + b _0805D628 +_0805D4C6: + cmp r0, #2 + beq _0805D5A4 + cmp r0, #3 + bne _0805D4D0 + b _0805D604 +_0805D4D0: + b _0805D628 +_0805D4D2: + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r0, [r6, #0xe] + strb r0, [r6, #0xf] + ldrh r1, [r6, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r3, #0x3f + ands r1, r3 + ldrh r0, [r6, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r6, #0x28] + ldr r4, _0805D518 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0805D51C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r6, #0x2e] + strh r1, [r6, #0x2c] + b _0805D628 + .align 2, 0 +_0805D518: .4byte gLinkEntity +_0805D51C: .4byte gRoomControls +_0805D520: + ldr r4, _0805D568 @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0805D56C @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + strh r5, [r6, #0x2e] + ldrh r2, [r6, #0x2c] + cmp r5, r2 + beq _0805D5A4 + strh r5, [r6, #0x2c] + ldrh r0, [r6, #0x2e] + ldrb r1, [r6, #0xb] + bl sub_080002B0 + adds r1, r0, #0 + ldr r3, _0805D570 @ =0x00000317 + cmp r1, r3 + beq _0805D574 + movs r0, #0xc6 + lsls r0, r0, #2 + cmp r1, r0 + beq _0805D580 + b _0805D5A4 + .align 2, 0 +_0805D568: .4byte gLinkEntity +_0805D56C: .4byte gRoomControls +_0805D570: .4byte 0x00000317 +_0805D574: + movs r0, #2 + strb r0, [r6, #0xc] + movs r0, #0x6d + bl sub_080A3268 + b _0805D5A4 +_0805D580: + ldrh r1, [r6, #0x2e] + ldrb r2, [r6, #0xb] + adds r0, r3, #0 + bl sub_0807B7D8 + movs r0, #0x6b + bl sub_080A3268 + ldrb r0, [r6, #0xe] + subs r0, #1 + strb r0, [r6, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D5A4 + movs r0, #3 + strb r0, [r6, #0xc] + movs r0, #0x40 + strb r0, [r6, #0xe] +_0805D5A4: + ldrh r0, [r6, #0x3e] + cmp r0, #0 + beq _0805D628 + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D628 + ldrh r0, [r6, #0x3e] + bl sub_0807CD48 + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r0, [r6, #0xf] + strb r0, [r6, #0xe] + movs r1, #0 + adds r0, r6, #0 + adds r0, #0x37 + mov sb, r0 + ldrb r5, [r0] + cmp r1, r5 + bhs _0805D628 + movs r0, #0x36 + adds r0, r0, r6 + mov r8, r0 +_0805D5D4: + lsls r0, r1, #6 + ldrh r2, [r6, #0x28] + adds r5, r0, r2 + movs r4, #0 + adds r7, r1, #1 + mov r0, r8 + ldrb r0, [r0] + cmp r4, r0 + bhs _0805D5F8 +_0805D5E6: + adds r0, r5, r4 + ldrb r1, [r6, #0xb] + bl sub_0807BA8C + adds r4, #1 + mov r1, r8 + ldrb r1, [r1] + cmp r4, r1 + blo _0805D5E6 +_0805D5F8: + adds r1, r7, #0 + mov r2, sb + ldrb r2, [r2] + cmp r1, r2 + blo _0805D5D4 + b _0805D628 +_0805D604: + ldrb r0, [r6, #0xe] + cmp r0, #0 + beq _0805D628 + subs r0, #1 + strb r0, [r6, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0805D622 + cmp r0, #0x20 + bne _0805D628 + ldrh r0, [r6, #0x3c] + bl sub_0807CCC8 + b _0805D628 +_0805D622: + movs r0, #0x72 + bl sub_080A3268 +_0805D628: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805D630 +sub_0805D630: @ 0x0805D630 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + beq _0805D642 + b _0805D768 +_0805D642: + adds r0, #1 + strb r0, [r6, #0xc] + movs r0, #0x42 + bl GetProgressFlag + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x43 + bl GetProgressFlag + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x44 + bl GetProgressFlag + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x3e + bl GetProgressFlag + cmp r0, #0 + bne _0805D680 + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x3e + bl sub_0807CD04 + b _0805D6D2 +_0805D680: + movs r0, #0x3f + bl GetProgressFlag + cmp r0, #0 + bne _0805D69C + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x3f + bl sub_0807CD04 + b _0805D6D2 +_0805D69C: + movs r0, #0x40 + bl GetProgressFlag + cmp r0, #0 + bne _0805D6B8 + movs r0, #4 + bl GetProgressFlag + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x40 + bl sub_0807CD04 + b _0805D6D2 +_0805D6B8: + movs r0, #0x41 + bl GetProgressFlag + cmp r0, #0 + bne _0805D6E4 + movs r0, #5 + bl GetProgressFlag + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x41 + bl sub_0807CD04 +_0805D6D2: + movs r0, #0x42 + bl sub_0807CD80 + movs r0, #0x43 + bl sub_0807CD80 + movs r0, #0x44 + bl sub_0807CD80 +_0805D6E4: + adds r1, r6, #0 + adds r1, #0x22 + movs r0, #0 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + ldr r4, _0805D79C @ =gUnk_08108D5C + movs r5, #0 + mov sb, r1 + movs r7, #1 + ldr r0, _0805D7A0 @ =gRoomControls + mov r8, r0 +_0805D700: + adds r0, r5, #0 + adds r0, #0x42 + bl GetProgressFlag + cmp r0, #0 + bne _0805D760 + bl sub_08000E50 + ldrh r1, [r4, #2] + bl __modsi3 + adds r2, r0, #0 + ldrh r0, [r4] + adds r2, r2, r0 + movs r0, #2 + movs r1, #0x5c + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805D760 + strb r7, [r2, #0xe] + strb r5, [r2, #0xf] + mov r1, r8 + ldrh r0, [r1, #6] + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + mov r1, r8 + ldrh r0, [r1, #8] + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrh r1, [r4, #4] + adds r0, r2, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r0, [r4, #6] + adds r1, r2, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x38 + strb r7, [r0] + str r6, [r2, #0x50] + mov r1, sb + adds r0, r1, r5 + strb r7, [r0] +_0805D760: + adds r5, #1 + adds r4, #8 + cmp r5, #2 + ble _0805D700 +_0805D768: + movs r5, #0 +_0805D76A: + adds r4, r5, #0 + adds r4, #0x42 + adds r0, r4, #0 + bl GetProgressFlag + cmp r0, #0 + bne _0805D78E + adds r0, r6, #0 + adds r0, #0x20 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _0805D78E + adds r0, r4, #0 + bl sub_0807CD04 +_0805D78E: + adds r5, #1 + cmp r5, #2 + ble _0805D76A + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805D79C: .4byte gUnk_08108D5C +_0805D7A0: .4byte gRoomControls + + thumb_func_start sub_0805D7A4 +sub_0805D7A4: @ 0x0805D7A4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805D7D4 @ =gUnk_08108D7C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _0805D7D8 @ =gUnk_030010A0 + ldr r0, [r0] + lsls r0, r0, #4 + str r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0805D9D8 + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x28] + ldr r2, [r4, #0x24] + bl sub_0805DA08 + pop {r4, pc} + .align 2, 0 +_0805D7D4: .4byte gUnk_08108D7C +_0805D7D8: .4byte gUnk_030010A0 + + thumb_func_start sub_0805D7DC +sub_0805D7DC: @ 0x0805D7DC + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + movs r2, #2 + cmp r0, #0 + bne _0805D7EA + movs r2, #1 +_0805D7EA: + movs r0, #0 + strb r2, [r1, #0xc] + str r0, [r1, #0x20] + str r0, [r1, #0x24] + ldr r0, _0805D80C @ =gRoomControls + ldrb r0, [r0, #4] + cmp r0, #0x78 + beq _0805D83C + cmp r0, #0x78 + bgt _0805D816 + cmp r0, #7 + beq _0805D828 + cmp r0, #7 + bgt _0805D810 + cmp r0, #3 + beq _0805D82C + b _0805D828 + .align 2, 0 +_0805D80C: .4byte gRoomControls +_0805D810: + cmp r0, #0x38 + beq _0805D840 + b _0805D828 +_0805D816: + cmp r0, #0x81 + beq _0805D830 + cmp r0, #0x81 + bgt _0805D824 + cmp r0, #0x80 + beq _0805D834 + b _0805D828 +_0805D824: + cmp r0, #0x88 + beq _0805D838 +_0805D828: + movs r1, #0 + b _0805D842 +_0805D82C: + movs r1, #1 + b _0805D842 +_0805D830: + movs r1, #2 + b _0805D842 +_0805D834: + movs r1, #3 + b _0805D842 +_0805D838: + movs r1, #4 + b _0805D842 +_0805D83C: + movs r1, #5 + b _0805D842 +_0805D840: + movs r1, #6 +_0805D842: + ldr r0, _0805D854 @ =gUnk_08108D74 + adds r0, r1, r0 + ldrb r0, [r0] + bl sub_0801D7EC + ldr r1, _0805D858 @ =gLCDControls + ldr r0, _0805D85C @ =0x00001E04 + strh r0, [r1, #0x2c] + pop {pc} + .align 2, 0 +_0805D854: .4byte gUnk_08108D74 +_0805D858: .4byte gLCDControls +_0805D85C: .4byte 0x00001E04 + + thumb_func_start sub_0805D860 +sub_0805D860: @ 0x0805D860 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xd] + cmp r0, #1 + beq _0805D89C + cmp r0, #1 + bgt _0805D874 + cmp r0, #0 + beq _0805D87E + b _0805D8D6 +_0805D874: + cmp r0, #2 + beq _0805D8B0 + cmp r0, #3 + beq _0805D8C2 + b _0805D8D6 +_0805D87E: + movs r0, #1 + strb r0, [r1, #0xd] + movs r0, #0x80 + str r0, [r1, #0x20] + ldr r2, _0805D898 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0805D8F4 + .align 2, 0 +_0805D898: .4byte gLCDControls +_0805D89C: + ldr r0, [r1, #0x20] + subs r0, #1 + str r0, [r1, #0x20] + cmp r0, #0x10 + bne _0805D8F4 + movs r0, #2 + strb r0, [r1, #0xd] + movs r0, #0x2d + strb r0, [r1, #0xe] + b _0805D8F4 +_0805D8B0: + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D8F4 + movs r0, #3 + strb r0, [r1, #0xd] + b _0805D8F4 +_0805D8C2: + ldr r0, [r1, #0x20] + subs r0, #1 + str r0, [r1, #0x20] + cmp r0, #0 + bne _0805D8F4 + movs r0, #4 + strb r0, [r1, #0xd] + movs r0, #0x3c + strb r0, [r1, #0xe] + b _0805D8F4 +_0805D8D6: + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D8F4 + bl sub_0801E104 + ldr r2, _0805D8F8 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805D8FC @ =0x0000F7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805D8F4: + pop {pc} + .align 2, 0 +_0805D8F8: .4byte gLCDControls +_0805D8FC: .4byte 0x0000F7FF + + thumb_func_start sub_0805D900 +sub_0805D900: @ 0x0805D900 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #1 + beq _0805D938 + cmp r0, #1 + bgt _0805D914 + cmp r0, #0 + beq _0805D91A + b _0805D966 +_0805D914: + cmp r0, #2 + beq _0805D94E + b _0805D966 +_0805D91A: + movs r1, #1 + strb r1, [r2, #0xd] + movs r0, #0x2d + strb r0, [r2, #0xe] + str r1, [r2, #0x20] + ldr r2, _0805D934 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0805D982 + .align 2, 0 +_0805D934: .4byte gLCDControls +_0805D938: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D982 + movs r0, #2 + strb r0, [r2, #0xd] + movs r0, #0x14 + strb r0, [r2, #0xe] + b _0805D982 +_0805D94E: + ldr r0, [r2, #0x20] + adds r0, #1 + str r0, [r2, #0x20] + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D982 + movs r0, #3 + strb r0, [r2, #0xd] + b _0805D982 +_0805D966: + ldr r0, [r2, #0x20] + adds r0, #4 + str r0, [r2, #0x20] + cmp r0, #0x80 + bls _0805D982 + bl sub_0801E104 + ldr r2, _0805D984 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805D988 @ =0x0000F7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805D982: + pop {pc} + .align 2, 0 +_0805D984: .4byte gLCDControls +_0805D988: .4byte 0x0000F7FF + + thumb_func_start sub_0805D98C +sub_0805D98C: @ 0x0805D98C + push {lr} + adds r2, r0, #0 + ldr r3, _0805D9D4 @ =gUnk_03000FF0 + ldrh r1, [r3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0805D9A2 + ldr r0, [r2, #0x20] + subs r0, #1 + str r0, [r2, #0x20] +_0805D9A2: + ldrh r1, [r3] + movs r0, #0x80 + ands r0, r1 + adds r3, r1, #0 + cmp r0, #0 + beq _0805D9B4 + ldr r0, [r2, #0x20] + adds r0, #1 + str r0, [r2, #0x20] +_0805D9B4: + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + beq _0805D9C2 + ldr r0, [r2, #0x28] + subs r0, #1 + str r0, [r2, #0x28] +_0805D9C2: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0805D9D0 + ldr r0, [r2, #0x28] + adds r0, #1 + str r0, [r2, #0x28] +_0805D9D0: + pop {pc} + .align 2, 0 +_0805D9D4: .4byte gUnk_03000FF0 + + thumb_func_start sub_0805D9D8 +sub_0805D9D8: @ 0x0805D9D8 + push {r4, lr} + ldr r4, [r0, #0x14] + cmp r4, #0 + beq _0805D9FC + ldr r3, _0805DA00 @ =gLCDControls + ldr r2, _0805DA04 @ =gRoomControls + ldrh r1, [r4, #0x2e] + ldrh r0, [r2, #0xa] + subs r1, r1, r0 + movs r0, #0x80 + subs r0, r0, r1 + strh r0, [r3, #0x2e] + ldrh r1, [r4, #0x32] + ldrh r0, [r2, #0xc] + subs r1, r1, r0 + movs r0, #0x8c + subs r0, r0, r1 + strh r0, [r3, #0x30] +_0805D9FC: + pop {r4, pc} + .align 2, 0 +_0805DA00: .4byte gLCDControls +_0805DA04: .4byte gRoomControls + + thumb_func_start sub_0805DA08 +sub_0805DA08: @ 0x0805DA08 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r2, _0805DA78 @ =gUnk_03003DE4 + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0805DA7C @ =gUnk_02017AA0 + adds r4, r0, r1 + movs r3, #0 + mov r8, r2 + mov sb, r1 + ldr r0, _0805DA80 @ =gUnk_080C9160 + mov ip, r0 + movs r2, #0xff + ldr r1, _0805DA84 @ =gLCDControls +_0805DA34: + adds r0, r6, r3 + adds r0, r0, r5 + ands r0, r2 + lsls r0, r0, #1 + add r0, ip + movs r7, #0 + ldrsh r0, [r0, r7] + mov r7, sl + muls r7, r0, r7 + adds r0, r7, #0 + lsrs r0, r0, #8 + ldrh r7, [r1, #0x2e] + adds r0, r0, r7 + strh r0, [r4] + adds r4, #2 + adds r3, #1 + adds r5, #0x17 + cmp r3, #0x9f + bls _0805DA34 + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + add r0, sb + ldr r1, _0805DA88 @ =0x0400001C + ldr r2, _0805DA8C @ =0xA2600001 + bl sub_0805622C + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805DA78: .4byte gUnk_03003DE4 +_0805DA7C: .4byte gUnk_02017AA0 +_0805DA80: .4byte gUnk_080C9160 +_0805DA84: .4byte gLCDControls +_0805DA88: .4byte 0x0400001C +_0805DA8C: .4byte 0xA2600001 + + thumb_func_start sub_0805DA90 +sub_0805DA90: @ 0x0805DA90 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0805DAB4 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x32 + strb r0, [r1, #9] + strb r4, [r1, #0xa] + str r5, [r1, #0x14] + adds r0, r1, #0 + movs r1, #8 + bl sub_0805EA2C +_0805DAB4: + ldr r0, _0805DAD8 @ =gUnk_02033A90 + ldr r1, _0805DADC @ =0x0000088C + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, #0 + beq _0805DAD4 + ldr r2, _0805DAE0 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0805DAE4 @ =0x0000F7FF + ands r0, r1 + strh r0, [r2] + bl sub_080528F0 + ldr r0, [r4] + bl sub_0805E900 +_0805DAD4: + pop {r4, r5, pc} + .align 2, 0 +_0805DAD8: .4byte gUnk_02033A90 +_0805DADC: .4byte 0x0000088C +_0805DAE0: .4byte gLCDControls +_0805DAE4: .4byte 0x0000F7FF + + thumb_func_start sub_0805DAE8 +sub_0805DAE8: @ 0x0805DAE8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r2, r0, #0 + ldr r5, _0805DB4C @ =gRoomControls + ldrh r0, [r5, #6] + movs r1, #0xfc + lsls r1, r1, #1 + mov r8, r1 + add r0, r8 + ldr r3, _0805DB50 @ =gLinkEntity + movs r4, #0x2e + ldrsh r1, [r3, r4] + subs r0, r0, r1 + adds r4, r0, #0 + adds r4, #0x10 + ldrh r0, [r5, #8] + movs r7, #0xa0 + lsls r7, r7, #1 + adds r0, r0, r7 + movs r6, #0x32 + ldrsh r1, [r3, r6] + subs r0, r0, r1 + adds r0, #0x10 + ldrb r6, [r2, #0xc] + cmp r6, #0 + bne _0805DB58 + cmp r4, #0x1f + bhi _0805DB88 + cmp r0, #0x1f + bhi _0805DB88 + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0x18 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0805DB88 + ldr r0, _0805DB54 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x14 + bne _0805DB88 + adds r0, r6, #1 + strb r0, [r2, #0xc] + movs r0, #0x5a + strb r0, [r2, #0xe] + adds r0, #0xb0 + bl sub_080A3268 + b _0805DB88 + .align 2, 0 +_0805DB4C: .4byte gRoomControls +_0805DB50: .4byte gLinkEntity +_0805DB54: .4byte gUnk_03003F80 +_0805DB58: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DB88 + movs r0, #0x96 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0805DB84 + ldrh r0, [r5, #6] + add r0, r8 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #8] + adds r0, r0, r7 + strh r0, [r1, #0x32] + ldr r0, _0805DB90 @ =0x0000FFE8 + strh r0, [r1, #0x36] +_0805DB84: + bl sub_0805E780 +_0805DB88: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805DB90: .4byte 0x0000FFE8 + + thumb_func_start sub_0805DB94 +sub_0805DB94: @ 0x0805DB94 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805DBB0 @ =gUnk_08108D8C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0805DBF0 + pop {r4, pc} + .align 2, 0 +_0805DBB0: .4byte gUnk_08108D8C + + thumb_func_start sub_0805DBB4 +sub_0805DBB4: @ 0x0805DBB4 + movs r1, #1 + strb r1, [r0, #0xc] + ldr r1, _0805DBC8 @ =gUnk_030010A0 + adds r1, #0x3d + ldrb r2, [r1] + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #2 + strh r1, [r0, #0x20] + bx lr + .align 2, 0 +_0805DBC8: .4byte gUnk_030010A0 + + thumb_func_start sub_0805DBCC +sub_0805DBCC: @ 0x0805DBCC + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x14] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0805DBE6 + movs r0, #2 + strb r0, [r1, #0xc] + ldrh r0, [r1, #0x20] + ldr r2, _0805DBE8 @ =0x0000012D + cmp r0, r2 + bls _0805DBE6 + strh r2, [r1, #0x20] +_0805DBE6: + pop {pc} + .align 2, 0 +_0805DBE8: .4byte 0x0000012D + + thumb_func_start nullsub_498 +nullsub_498: @ 0x0805DBEC + bx lr + .align 2, 0 + + thumb_func_start sub_0805DBF0 +sub_0805DBF0: @ 0x0805DBF0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + subs r1, r0, #1 + strh r1, [r4, #0x20] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _0805DC06 + bl sub_0805DC70 + b _0805DC6C +_0805DC06: + lsls r0, r1, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x78 + bne _0805DC18 + movs r0, #0x78 + movs r1, #2 + bl sub_08080964 + b _0805DC36 +_0805DC18: + cmp r1, #0xd2 + bne _0805DC26 + movs r0, #0x5a + movs r1, #1 + bl sub_08080964 + b _0805DC36 +_0805DC26: + movs r0, #0x96 + lsls r0, r0, #1 + cmp r1, r0 + bne _0805DC36 + movs r0, #0x5a + movs r1, #0 + bl sub_08080964 +_0805DC36: + ldrh r1, [r4, #0x20] + adds r0, r1, #0 + cmp r0, #0x77 + bhi _0805DC42 + movs r0, #0xf + b _0805DC48 +_0805DC42: + cmp r0, #0xd1 + bhi _0805DC58 + movs r0, #0x1f +_0805DC48: + ands r0, r1 + cmp r0, #0 + bne _0805DC6C + movs r0, #0x93 + lsls r0, r0, #1 + bl sub_080A3268 + b _0805DC6C +_0805DC58: + cmp r0, #0xc7 + bhi _0805DC6C + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _0805DC6C + movs r0, #0x93 + lsls r0, r0, #1 + bl sub_080A3268 +_0805DC6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805DC70 +sub_0805DC70: @ 0x0805DC70 + push {lr} + bl sub_0805E5A8 + ldr r0, _0805DC80 @ =gUnk_0813AC48 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0805DC80: .4byte gUnk_0813AC48 + + thumb_func_start sub_0805DC84 +sub_0805DC84: @ 0x0805DC84 + push {lr} + ldr r2, _0805DC98 @ =gUnk_08108D98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805DC98: .4byte gUnk_08108D98 + + thumb_func_start sub_0805DC9C +sub_0805DC9C: @ 0x0805DC9C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805DCAE + bl sub_0805E780 +_0805DCAE: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805DCC2 + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + bl sub_0805E780 +_0805DCC2: + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_0805DCC8 +sub_0805DCC8: @ 0x0805DCC8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805DD1E + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DCEC + movs r0, #0x1e + strb r0, [r4, #0xe] +_0805DCEC: + ldr r5, _0805DD20 @ =gRoomControls + ldr r0, [r5, #0x30] + str r0, [r4, #0x14] + movs r0, #0x69 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0805DD1E + ldrh r0, [r5, #6] + ldrh r2, [r4, #0x38] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #8] + ldrh r2, [r4, #0x3a] + adds r0, r0, r2 + strh r0, [r1, #0x32] + str r1, [r4, #0x18] + str r1, [r5, #0x30] + adds r0, r1, #0 + movs r1, #0x1e + bl sub_0805E4E0 +_0805DD1E: + pop {r4, r5, pc} + .align 2, 0 +_0805DD20: .4byte gRoomControls + + thumb_func_start sub_0805DD24 +sub_0805DD24: @ 0x0805DD24 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #8 + bl sub_0805E4E0 + ldr r0, _0805DD64 @ =gRoomControls + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0805DD60 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DD60 + movs r0, #3 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + adds r1, r4, #0 + adds r1, #0x36 + ldrb r0, [r1] + cmp r0, #0 + bne _0805DD60 + movs r0, #1 + strb r0, [r1] +_0805DD60: + pop {r4, pc} + .align 2, 0 +_0805DD64: .4byte gRoomControls + + thumb_func_start sub_0805DD68 +sub_0805DD68: @ 0x0805DD68 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #8 + bl sub_0805E4E0 + adds r1, r4, #0 + adds r1, #0x36 + ldrb r0, [r1] + cmp r0, #0 + beq _0805DD94 + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DDAE + ldr r1, _0805DD90 @ =gRoomControls + ldr r0, [r4, #0x14] + str r0, [r1, #0x30] + b _0805DDAE + .align 2, 0 +_0805DD90: .4byte gRoomControls +_0805DD94: + ldr r0, _0805DDB0 @ =gRoomControls + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0805DDAE + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _0805DDAA + bl sub_0805E7BC +_0805DDAA: + bl sub_0805E780 +_0805DDAE: + pop {r4, pc} + .align 2, 0 +_0805DDB0: .4byte gRoomControls + + thumb_func_start sub_0805DDB4 +sub_0805DDB4: @ 0x0805DDB4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + lsls r0, r0, #2 + ldr r1, _0805DDE0 @ =gUnk_08108DA8 + adds r3, r0, r1 + ldrb r0, [r2, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _0805DDCE + adds r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xe] +_0805DDCE: + ldrb r0, [r2, #0xe] + cmp r0, #0 + bne _0805DDE4 + ldrh r0, [r3] + strb r0, [r2, #0xe] + ldrh r0, [r3, #2] + bl sub_080A3268 + b _0805DDE8 + .align 2, 0 +_0805DDE0: .4byte gUnk_08108DA8 +_0805DDE4: + subs r0, #1 + strb r0, [r2, #0xe] +_0805DDE8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805DDEC +sub_0805DDEC: @ 0x0805DDEC + push {r4, r5, lr} + adds r5, r1, #0 + bl sub_0805E8D4 + adds r4, r0, #0 + cmp r4, #0 + beq _0805DE16 + movs r0, #9 + strb r0, [r4, #8] + movs r0, #0x36 + strb r0, [r4, #9] + ldr r0, [r5, #4] + strb r0, [r4, #0xa] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EA2C + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 +_0805DE16: + pop {r4, r5, pc} + + thumb_func_start sub_0805DE18 +sub_0805DE18: @ 0x0805DE18 + push {lr} + sub sp, #4 + ldr r3, [r1, #4] + movs r0, #0 + str r0, [sp] + movs r0, #9 + movs r1, #0x36 + movs r2, #6 + bl sub_0805EB2C + cmp r0, #0 + beq _0805DE34 + bl sub_0805E79C +_0805DE34: + add sp, #4 + pop {pc} + + thumb_func_start sub_0805DE38 +sub_0805DE38: @ 0x0805DE38 + push {lr} + ldr r2, _0805DE4C @ =gUnk_08108DBC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805DE4C: .4byte gUnk_08108DBC + + thumb_func_start sub_0805DE50 +sub_0805DE50: @ 0x0805DE50 + push {lr} + ldr r2, _0805DE64 @ =gUnk_08108DC4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805DE64: .4byte gUnk_08108DC4 + + thumb_func_start sub_0805DE68 +sub_0805DE68: @ 0x0805DE68 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + bne _0805DE7A + bl sub_0805E780 +_0805DE7A: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0805DEAC @ =gUnk_030010A0 + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x39 + movs r0, #0xf + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3a + movs r1, #0x20 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + ldr r0, _0805DEB0 @ =gUnk_02002A40 + movs r1, #0x93 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r1, _0805DEB4 @ =0x00001194 + str r1, [r0] + pop {r4, pc} + .align 2, 0 +_0805DEAC: .4byte gUnk_030010A0 +_0805DEB0: .4byte gUnk_02002A40 +_0805DEB4: .4byte 0x00001194 + + thumb_func_start sub_0805DEB8 +sub_0805DEB8: @ 0x0805DEB8 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r5, _0805DF44 @ =gLinkEntity + movs r0, #0x2e + ldrsh r2, [r5, r0] + subs r2, #0x88 + ldr r4, _0805DF48 @ =gRoomControls + ldrh r0, [r4, #6] + subs r2, r2, r0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + subs r0, #0x40 + ldrh r1, [r4, #8] + subs r0, r0, r1 + adds r1, r2, #0 + muls r1, r2, r1 + adds r2, r0, #0 + muls r2, r0, r2 + adds r0, r2, #0 + adds r1, r1, r0 + movs r0, #0x90 + lsls r0, r0, #4 + cmp r1, r0 + bgt _0805DF42 + movs r0, #0 + movs r1, #2 + strb r1, [r3, #0xc] + strb r0, [r3, #0xd] + movs r0, #0x78 + strb r0, [r3, #0xe] + movs r0, #2 + bl sub_08078A90 + bl sub_08078B48 + movs r0, #0x64 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805DF1A + ldrh r0, [r4, #6] + adds r0, #0x88 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #8] + adds r0, #0x48 + strh r0, [r2, #0x32] +_0805DF1A: + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #8 + bl sub_080A2CFC + adds r2, r0, #0 + cmp r2, #0 + beq _0805DF3C + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_0805DF3C: + movs r0, #0x32 + bl sub_080A3268 +_0805DF42: + pop {r4, r5, pc} + .align 2, 0 +_0805DF44: .4byte gLinkEntity +_0805DF48: .4byte gRoomControls + + thumb_func_start sub_0805DF4C +sub_0805DF4C: @ 0x0805DF4C + push {lr} + adds r1, r0, #0 + ldr r2, _0805DF70 @ =gLinkEntity + movs r0, #0 + strb r0, [r2, #0x14] + movs r3, #0x36 + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _0805DF78 + movs r1, #0x32 + ldrsh r0, [r2, r1] + ldr r1, _0805DF74 @ =gRoomControls + ldrh r1, [r1, #8] + adds r1, #0x48 + cmp r0, r1 + bge _0805DF92 + strh r1, [r2, #0x32] + b _0805DF92 + .align 2, 0 +_0805DF70: .4byte gLinkEntity +_0805DF74: .4byte gRoomControls +_0805DF78: + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DF92 + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #0x1e + strb r0, [r1, #0xe] + ldr r0, _0805DF94 @ =0x0000164F + bl TextboxTryNoOverlap +_0805DF92: + pop {pc} + .align 2, 0 +_0805DF94: .4byte 0x0000164F + + thumb_func_start sub_0805DF98 +sub_0805DF98: @ 0x0805DF98 + push {lr} + adds r2, r0, #0 + ldr r0, _0805DFB4 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0805DFCA + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0805DFB8 + subs r0, #1 + strb r0, [r2, #0xe] + b _0805DFCA + .align 2, 0 +_0805DFB4: .4byte gTextBox +_0805DFB8: + movs r0, #4 + strb r0, [r2, #0xc] + movs r0, #7 + movs r1, #4 + bl sub_08050054 + movs r0, #0xf6 + bl sub_080A3268 +_0805DFCA: + pop {pc} + + thumb_func_start sub_0805DFCC +sub_0805DFCC: @ 0x0805DFCC + push {lr} + ldr r0, _0805DFE4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805DFE0 + movs r0, #0x1c + bl sub_0807CD80 + bl sub_0805E094 +_0805DFE0: + pop {pc} + .align 2, 0 +_0805DFE4: .4byte gUnk_03000FD0 + + thumb_func_start sub_0805DFE8 +sub_0805DFE8: @ 0x0805DFE8 + push {lr} + ldr r2, _0805DFFC @ =gUnk_08108DD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805DFFC: .4byte gUnk_08108DD8 + + thumb_func_start sub_0805E000 +sub_0805E000: @ 0x0805E000 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x51 + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0805E062 + ldr r1, _0805E064 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0xb0 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x48 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x38 + movs r5, #1 + strb r5, [r0] + adds r0, r4, #0 + bl sub_08016A04 + ldr r0, _0805E068 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0805E040 + bl sub_0805E780 +_0805E040: + str r4, [r6, #0x18] + strb r5, [r6, #0xc] + movs r0, #3 + bl sub_08078A90 + ldr r0, _0805E06C @ =gUnk_02033A90 + ldr r1, _0805E070 @ =0x00000864 + adds r0, r0, r1 + ldr r1, _0805E074 @ =0x80010000 + str r1, [r0] + movs r0, #6 + movs r1, #4 + bl sub_08050054 + movs r0, #0xf7 + bl sub_080A3268 +_0805E062: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805E064: .4byte gRoomControls +_0805E068: .4byte gUnk_030010A0 +_0805E06C: .4byte gUnk_02033A90 +_0805E070: .4byte 0x00000864 +_0805E074: .4byte 0x80010000 + + thumb_func_start sub_0805E078 +sub_0805E078: @ 0x0805E078 + push {lr} + adds r1, r0, #0 + ldr r0, _0805E090 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805E08E + ldr r1, [r1, #0x18] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0805E08E: + pop {pc} + .align 2, 0 +_0805E090: .4byte gUnk_03000FD0 + + thumb_func_start sub_0805E094 +sub_0805E094: @ 0x0805E094 + push {lr} + bl sub_0805E5A8 + ldr r0, _0805E0A4 @ =gUnk_0813AC34 + movs r1, #7 + bl sub_0808091C + pop {pc} + .align 2, 0 +_0805E0A4: .4byte gUnk_0813AC34 + + thumb_func_start sub_0805E0A8 +sub_0805E0A8: @ 0x0805E0A8 + push {lr} + ldr r2, _0805E0BC @ =gUnk_08108DE0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805E0BC: .4byte gUnk_08108DE0 + + thumb_func_start sub_0805E0C0 +sub_0805E0C0: @ 0x0805E0C0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0 + movs r1, #1 + strb r1, [r5, #0xc] + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xa] + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + bne _0805E0EC + bl sub_0805E780 + b _0805E0EC +_0805E0DE: + adds r0, r4, #0 + adds r4, #0x10 + bl CreateEntity + str r5, [r0, #0x50] + movs r1, #0xff + strb r1, [r0, #0xe] +_0805E0EC: + ldrb r0, [r4] + cmp r0, #0xff + bne _0805E0DE + pop {r4, r5, pc} + + thumb_func_start sub_0805E0F4 +sub_0805E0F4: @ 0x0805E0F4 + movs r1, #0 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_0805E0FC +sub_0805E0FC: @ 0x0805E0FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805E134 @ =gUnk_08108E28 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _0805E138 @ =gRoomControls + adds r1, r4, #0 + adds r1, #0x20 + ldrb r0, [r0, #5] + ldrb r1, [r1] + cmp r0, r1 + bne _0805E12A + ldr r0, _0805E13C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0805E130 +_0805E12A: + adds r0, r4, #0 + bl sub_0805E1D8 +_0805E130: + pop {r4, pc} + .align 2, 0 +_0805E134: .4byte gUnk_08108E28 +_0805E138: .4byte gRoomControls +_0805E13C: .4byte gTextBox + + thumb_func_start sub_0805E140 +sub_0805E140: @ 0x0805E140 + push {r4, lr} + ldrb r2, [r0, #0x10] + movs r1, #0x20 + orrs r1, r2 + strb r1, [r0, #0x10] + movs r1, #1 + strb r1, [r0, #0xc] + ldr r1, _0805E180 @ =gRoomControls + ldrb r2, [r1, #5] + adds r1, r0, #0 + adds r1, #0x20 + strb r2, [r1] + movs r1, #0x78 + strb r1, [r0, #0xe] + movs r1, #0x3c + strb r1, [r0, #0xf] + movs r1, #7 + bl sub_0805E3A0 + ldr r1, _0805E184 @ =gUnk_08108DE8 + ldr r0, _0805E188 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + bl sub_08052660 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0805E1F8 + pop {r4, pc} + .align 2, 0 +_0805E180: .4byte gRoomControls +_0805E184: .4byte gUnk_08108DE8 +_0805E188: .4byte gUnk_02033A90 + + thumb_func_start sub_0805E18C +sub_0805E18C: @ 0x0805E18C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0805E1D0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805E1CC + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0805E1BA + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0805E1BA + strb r0, [r4, #0xb] + ldr r0, _0805E1D4 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0805E5B4 +_0805E1BA: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805E1CC + adds r0, r4, #0 + bl sub_0805E1D8 +_0805E1CC: + pop {r4, pc} + .align 2, 0 +_0805E1D0: .4byte gUnk_03000FD0 +_0805E1D4: .4byte gUnk_03003F80 + + thumb_func_start sub_0805E1D8 +sub_0805E1D8: @ 0x0805E1D8 + push {lr} + ldr r0, _0805E1F0 @ =gUnk_02034DF0 + movs r1, #0x80 + bl sub_0801D630 + ldr r1, _0805E1F4 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] + bl sub_0805E780 + pop {pc} + .align 2, 0 +_0805E1F0: .4byte gUnk_02034DF0 +_0805E1F4: .4byte gLCDControls + + thumb_func_start sub_0805E1F8 +sub_0805E1F8: @ 0x0805E1F8 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _0805E234 @ =gUnk_02034DF0 + movs r1, #0x80 + bl sub_0801D630 + ldr r0, _0805E238 @ =gUnk_08108E60 + mov r1, sp + movs r2, #9 + bl sub_0801D66C + mov r1, sp + lsrs r0, r4, #8 + strb r0, [r1, #4] + mov r0, sp + strb r4, [r0, #5] + ldr r1, _0805E23C @ =gUnk_08108E48 + cmp r5, #0 + bne _0805E224 + ldr r1, _0805E240 @ =gUnk_08108E30 +_0805E224: + mov r0, sp + bl sub_0805F46C + ldr r1, _0805E244 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_0805E234: .4byte gUnk_02034DF0 +_0805E238: .4byte gUnk_08108E60 +_0805E23C: .4byte gUnk_08108E48 +_0805E240: .4byte gUnk_08108E30 +_0805E244: .4byte gLCDControls + + thumb_func_start sub_0805E248 +sub_0805E248: @ 0x0805E248 + push {r4, r5, lr} + ldr r0, _0805E2C8 @ =gUnk_03004030 + ldr r0, [r0] + ldrh r5, [r0, #6] + ldr r0, _0805E2CC @ =gRoomControls + ldrb r0, [r0, #4] + cmp r0, #0xa + beq _0805E25C + cmp r0, #0x16 + bne _0805E2E8 +_0805E25C: + movs r0, #0x9f + lsls r0, r0, #2 + adds r4, r5, #0 + subs r4, #0x41 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E2D0 @ =0x00000283 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E2D4 @ =0x0000027D + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa1 + lsls r0, r0, #2 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E2D8 @ =0x0000027E + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E2DC @ =0x00000285 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E2E0 @ =0x0000027F + subs r1, r5, #1 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa0 + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E2E4 @ =0x00000282 + adds r1, r5, #1 + movs r2, #1 + bl sub_0807B314 + b _0805E350 + .align 2, 0 +_0805E2C8: .4byte gUnk_03004030 +_0805E2CC: .4byte gRoomControls +_0805E2D0: .4byte 0x00000283 +_0805E2D4: .4byte 0x0000027D +_0805E2D8: .4byte 0x0000027E +_0805E2DC: .4byte 0x00000285 +_0805E2E0: .4byte 0x0000027F +_0805E2E4: .4byte 0x00000282 +_0805E2E8: + movs r0, #0x9b + lsls r0, r0, #2 + adds r4, r5, #0 + subs r4, #0x41 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E358 @ =0x00000273 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E35C @ =0x0000026D + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0x9d + lsls r0, r0, #2 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E360 @ =0x0000026E + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E364 @ =0x00000275 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E368 @ =0x0000026F + subs r1, r5, #1 + movs r2, #1 + bl sub_0807B314 + movs r0, #0x9c + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E36C @ =0x00000272 + adds r1, r5, #1 + movs r2, #1 + bl sub_0807B314 +_0805E350: + ldr r1, _0805E370 @ =gUnk_02000070 + movs r0, #0 + strb r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_0805E358: .4byte 0x00000273 +_0805E35C: .4byte 0x0000026D +_0805E360: .4byte 0x0000026E +_0805E364: .4byte 0x00000275 +_0805E368: .4byte 0x0000026F +_0805E36C: .4byte 0x00000272 +_0805E370: .4byte gUnk_02000070 \ No newline at end of file diff --git a/asm/code_0805E3B0.s b/asm/code_0805E3B0.s index 86b15413..59358fd7 100644 --- a/asm/code_0805E3B0.s +++ b/asm/code_0805E3B0.s @@ -35,7 +35,7 @@ _0805E3DC: .4byte gUnk_03003DC0 _0805E3E0: ldrb r2, [r1, #1] _0805E3E2: - ldr r0, _0805E408 @ =gUnk_02000050 + ldr r0, _0805E408 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -57,7 +57,7 @@ _0805E402: _0805E404: pop {pc} .align 2, 0 -_0805E408: .4byte gUnk_02000050 +_0805E408: .4byte gTextBox thumb_func_start sub_0805E40C sub_0805E40C: @ 0x0805E40C diff --git a/asm/code_0805E744.s b/asm/code_0805E744.s index 3580ea16..4ce92876 100644 --- a/asm/code_0805E744.s +++ b/asm/code_0805E744.s @@ -2567,7 +2567,7 @@ sub_0805FA04: @ 0x0805FA04 movs r1, #0x80 lsls r1, r1, #5 bl sub_0801D630 - ldr r0, _0805FA80 @ =gUnk_03000F50 + ldr r0, _0805FA80 @ =gLCDControls movs r2, #0 movs r1, #0x94 lsls r1, r1, #4 @@ -2606,7 +2606,7 @@ sub_0805FA04: @ 0x0805FA04 .align 2, 0 _0805FA78: .4byte gUnk_02034CB0 _0805FA7C: .4byte gUnk_02001A40 -_0805FA80: .4byte gUnk_03000F50 +_0805FA80: .4byte gLCDControls _0805FA84: .4byte 0x00001E0F _0805FA88: .4byte gUnk_02032EC0 _0805FA8C: .4byte gUnk_02000080 @@ -2664,7 +2664,7 @@ _0805FAE8: strb r1, [r0, #0x10] cmp r1, #0 bne _0805FB10 - ldr r0, _0805FB08 @ =gUnk_03000F50 + ldr r0, _0805FB08 @ =gLCDControls ldr r1, _0805FB0C @ =0x00001F0C strh r1, [r0, #8] subs r1, #0xfd @@ -2672,17 +2672,17 @@ _0805FAE8: b _0805FBA4 .align 2, 0 _0805FB04: .4byte gUnk_02000080 -_0805FB08: .4byte gUnk_03000F50 +_0805FB08: .4byte gLCDControls _0805FB0C: .4byte 0x00001F0C _0805FB10: - ldr r0, _0805FB1C @ =gUnk_03000F50 + ldr r0, _0805FB1C @ =gLCDControls ldr r1, _0805FB20 @ =0x00001F0F strh r1, [r0, #8] ldr r1, _0805FB24 @ =0x00001E0C strh r1, [r0, #0x2c] b _0805FBA4 .align 2, 0 -_0805FB1C: .4byte gUnk_03000F50 +_0805FB1C: .4byte gLCDControls _0805FB20: .4byte 0x00001F0F _0805FB24: .4byte 0x00001E0C _0805FB28: @@ -2695,7 +2695,7 @@ _0805FB28: lsls r0, r0, #8 ldrb r1, [r1, #0x15] adds r0, r0, r1 - bl sub_08056378 + bl TextboxTryNoOverlap b _0805FBA4 .align 2, 0 _0805FB40: .4byte gUnk_02000080 @@ -2759,13 +2759,13 @@ _0805FBA4: movs r1, #3 bl __modsi3 strb r0, [r4, #0x11] - ldr r1, _0805FBC0 @ =gUnk_03000F50 + ldr r1, _0805FBC0 @ =gLCDControls movs r0, #1 strh r0, [r1, #0x32] pop {r4, pc} .align 2, 0 _0805FBBC: .4byte gUnk_02000080 -_0805FBC0: .4byte gUnk_03000F50 +_0805FBC0: .4byte gLCDControls thumb_func_start sub_0805FBC4 sub_0805FBC4: @ 0x0805FBC4 @@ -2879,7 +2879,7 @@ sub_0805FC74: @ 0x0805FC74 _0805FCA4: movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _0805FD10 @ =gUnk_03000BF0 + ldr r2, _0805FD10 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -2927,7 +2927,7 @@ _0805FCF6: bl sub_0805E780 b _0805FD20 .align 2, 0 -_0805FD10: .4byte gUnk_03000BF0 +_0805FD10: .4byte gRoomControls _0805FD14: .4byte gLinkEntity _0805FD18: .4byte gUnk_08003E44 _0805FD1C: @@ -3587,7 +3587,7 @@ _080601F2: adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _08060204: .4byte gUnk_0810A354 @@ -3681,7 +3681,7 @@ _080602A8: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _080602B8: .4byte gUnk_0810A35A @@ -3719,7 +3719,7 @@ _080602F0: adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _08060300: .4byte gUnk_02002A40 @@ -3925,7 +3925,7 @@ sub_0806045C: @ 0x0806045C movs r0, #2 strb r0, [r4, #0xc] movs r0, #0 - bl sub_08056378 + bl TextboxTryNoOverlap b _080604C0 _08060488: adds r0, r4, #0 @@ -4112,7 +4112,7 @@ _080605EC: _080605F6: adds r0, r4, #0 bl sub_080042B8 - ldr r0, _08060614 @ =gUnk_02000050 + ldr r0, _08060614 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -4124,7 +4124,7 @@ _080605F6: bne _08060634 b _08060630 .align 2, 0 -_08060614: .4byte gUnk_02000050 +_08060614: .4byte gTextBox _08060618: adds r0, r4, #0 bl sub_080042B8 @@ -4266,7 +4266,7 @@ sub_08060700: @ 0x08060700 lsls r3, r3, #2 ldr r2, _08060750 @ =gUnk_0810A66C adds r3, r3, r2 - ldr r4, _08060754 @ =gUnk_03000BF0 + ldr r4, _08060754 @ =gRoomControls movs r5, #0 ldrsh r2, [r3, r5] ldrh r5, [r4, #6] @@ -4285,7 +4285,7 @@ sub_08060700: @ 0x08060700 .align 2, 0 _0806074C: .4byte gUnk_0810A918 _08060750: .4byte gUnk_0810A66C -_08060754: .4byte gUnk_03000BF0 +_08060754: .4byte gRoomControls _08060758: .4byte gUnk_02033280 thumb_func_start sub_0806075C @@ -4419,7 +4419,7 @@ _08060846: movs r2, #0 cmp r2, r5 bhs _080608B8 - ldr r0, _080608C0 @ =gUnk_03000BF0 + ldr r0, _080608C0 @ =gRoomControls mov sb, r0 _08060864: ldr r1, [sp, #4] @@ -4468,7 +4468,7 @@ _080608B8: strb r0, [r1] b _080608D8 .align 2, 0 -_080608C0: .4byte gUnk_03000BF0 +_080608C0: .4byte gRoomControls _080608C4: .4byte gUnk_0810A918 _080608C8: .4byte gUnk_0810A66C _080608CC: @@ -4603,7 +4603,7 @@ sub_080609AC: @ 0x080609AC movs r0, #0x2e movs r1, #0 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _080609E0 @@ -4701,7 +4701,7 @@ _08060A62: _08060A76: adds r2, r5, #0 adds r2, #0x74 - ldr r4, _08060ADC @ =gUnk_03000BF0 + ldr r4, _08060ADC @ =gRoomControls ldrb r1, [r4, #5] ldrh r0, [r2] cmp r0, r1 @@ -4746,7 +4746,7 @@ _08060ACE: _08060AD0: .4byte gUnk_03003F80 _08060AD4: .4byte gLinkEntity _08060AD8: .4byte gUnk_0810AC2C -_08060ADC: .4byte gUnk_03000BF0 +_08060ADC: .4byte gRoomControls thumb_func_start sub_08060AE0 sub_08060AE0: @ 0x08060AE0 @@ -4800,7 +4800,7 @@ sub_08060AE0: @ 0x08060AE0 movs r0, #5 movs r1, #2 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC cmp r0, #0 beq _08060B54 str r4, [r0, #0x50] @@ -6912,7 +6912,7 @@ sub_08061B18: @ 0x08061B18 _08061B4C: ldrh r0, [r2] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap _08061B54: pop {r4, pc} .align 2, 0 @@ -7049,7 +7049,7 @@ _08061C32: ldrb r0, [r4, #0xb] ldr r1, _08061C5C @ =0x00000A01 adds r0, r0, r1 - bl sub_08056378 + bl TextboxTryNoOverlap _08061C58: pop {r4, pc} .align 2, 0 @@ -7280,7 +7280,7 @@ sub_08061E24: @ 0x08061E24 push {r4, lr} adds r4, r0, #0 bl sub_08004274 - ldr r0, _08061E4C @ =gUnk_02000050 + ldr r0, _08061E4C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -7296,7 +7296,7 @@ sub_08061E24: @ 0x08061E24 _08061E48: pop {r4, pc} .align 2, 0 -_08061E4C: .4byte gUnk_02000050 +_08061E4C: .4byte gTextBox thumb_func_start sub_08061E50 sub_08061E50: @ 0x08061E50 @@ -7542,7 +7542,7 @@ sub_08061FF4: @ 0x08061FF4 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _08062008: .4byte gUnk_0810B790 @@ -7572,7 +7572,7 @@ _08062034: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08062044: .4byte gUnk_0810B7BA @@ -7606,7 +7606,7 @@ _08062078: .4byte gUnk_0810B7C0 _0806207C: movs r0, #0 adds r1, r3, #0 - bl sub_08056398 + bl TextboxNoOverlap _08062084: pop {pc} .align 2, 0 @@ -7759,7 +7759,7 @@ sub_08062194: @ 0x08062194 push {r4, lr} adds r4, r0, #0 movs r0, #0 - bl sub_08056378 + bl TextboxTryNoOverlap movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] @@ -7919,7 +7919,7 @@ _080622C8: .4byte gLinkEntity _080622CC: adds r0, r4, #0 bl sub_08004274 - ldr r0, _080622E0 @ =gUnk_02000050 + ldr r0, _080622E0 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -7927,7 +7927,7 @@ _080622CC: bne _080622F2 b _080622EE .align 2, 0 -_080622E0: .4byte gUnk_02000050 +_080622E0: .4byte gTextBox _080622E4: adds r0, r4, #0 bl sub_0806F148 @@ -8377,7 +8377,7 @@ sub_08062634: @ 0x08062634 adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08062658: .4byte gUnk_0810BDE8 @@ -8392,7 +8392,7 @@ sub_0806265C: @ 0x0806265C bne _08062678 movs r0, #0 adds r1, r2, #0 - bl sub_08056398 + bl TextboxNoOverlap b _08062690 .align 2, 0 _08062674: .4byte gUnk_02002A40 @@ -8474,7 +8474,7 @@ sub_080626E0: @ 0x080626E0 orrs r0, r1 str r0, [r4, #8] ldrh r2, [r4, #4] - ldr r1, _08062778 @ =gUnk_03000BF0 + ldr r1, _08062778 @ =gRoomControls ldrh r0, [r4, #6] ldrh r3, [r1, #6] adds r0, r0, r3 @@ -8534,7 +8534,7 @@ _0806274A: strh r0, [r5, #0x2e] b _08062782 .align 2, 0 -_08062778: .4byte gUnk_03000BF0 +_08062778: .4byte gRoomControls _0806277C: ldr r1, _08062784 @ =gUnk_02033280 movs r0, #0 @@ -9028,7 +9028,7 @@ sub_08062B48: @ 0x08062B48 cmp r0, #0 beq _08062B6A ldr r0, _08062B6C @ =0x00000A01 - bl sub_08056378 + bl TextboxTryNoOverlap ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] @@ -9041,7 +9041,7 @@ _08062B6C: .4byte 0x00000A01 sub_08062B70: @ 0x08062B70 push {r4, lr} adds r4, r0, #0 - ldr r0, _08062B94 @ =gUnk_02000050 + ldr r0, _08062B94 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -9057,7 +9057,7 @@ sub_08062B70: @ 0x08062B70 _08062B92: pop {r4, pc} .align 2, 0 -_08062B94: .4byte gUnk_02000050 +_08062B94: .4byte gTextBox thumb_func_start sub_08062B98 sub_08062B98: @ 0x08062B98 @@ -9149,7 +9149,7 @@ sub_08062C24: @ 0x08062C24 movs r1, #4 bl sub_08004260 ldr r0, _08062C50 @ =0x00000A01 - bl sub_08056378 + bl TextboxTryNoOverlap ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] @@ -9162,7 +9162,7 @@ _08062C50: .4byte 0x00000A01 sub_08062C54: @ 0x08062C54 push {r4, lr} adds r4, r0, #0 - ldr r0, _08062C78 @ =gUnk_02000050 + ldr r0, _08062C78 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -9178,7 +9178,7 @@ sub_08062C54: @ 0x08062C54 _08062C76: pop {r4, pc} .align 2, 0 -_08062C78: .4byte gUnk_02000050 +_08062C78: .4byte gTextBox thumb_func_start sub_08062C7C sub_08062C7C: @ 0x08062C7C @@ -9369,7 +9369,7 @@ _08062DF0: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap cmp r4, #0 bne _08062E0C movs r0, #1 @@ -9539,7 +9539,7 @@ _08062F24: bl sub_080A7C18 ldr r0, _08062F64 @ =0x00003C05 adds r1, r6, #0 - bl sub_08056398 + bl TextboxNoOverlap movs r0, #1 b _08062F6A .align 2, 0 @@ -9957,7 +9957,7 @@ sub_08063254: @ 0x08063254 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0 - bl sub_08056378 + bl TextboxTryNoOverlap _08063274: pop {r4, pc} .align 2, 0 @@ -10083,7 +10083,7 @@ _08063342: ldrb r0, [r4, #0xe] ldr r1, _08063368 @ =0x00000A01 adds r0, r0, r1 - bl sub_08056378 + bl TextboxTryNoOverlap ldrb r0, [r4, #0xc] adds r0, #1 strb r0, [r4, #0xc] @@ -10098,7 +10098,7 @@ _08063368: .4byte 0x00000A01 sub_0806336C: @ 0x0806336C push {lr} adds r2, r0, #0 - ldr r0, _0806338C @ =gUnk_02000050 + ldr r0, _0806338C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -10113,7 +10113,7 @@ sub_0806336C: @ 0x0806336C _0806338A: pop {pc} .align 2, 0 -_0806338C: .4byte gUnk_02000050 +_0806338C: .4byte gTextBox thumb_func_start sub_08063390 sub_08063390: @ 0x08063390 @@ -10437,7 +10437,7 @@ _080635D0: ldrb r0, [r4, #0xe] ldr r1, _08063604 @ =0x00000A01 adds r0, r0, r1 - bl sub_08056378 + bl TextboxTryNoOverlap _080635FC: adds r0, r4, #0 bl sub_0806ED78 @@ -10449,7 +10449,7 @@ _08063604: .4byte 0x00000A01 sub_08063608: @ 0x08063608 push {lr} adds r2, r0, #0 - ldr r0, _08063628 @ =gUnk_02000050 + ldr r0, _08063628 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 @@ -10464,7 +10464,7 @@ sub_08063608: @ 0x08063608 _08063626: pop {pc} .align 2, 0 -_08063628: .4byte gUnk_02000050 +_08063628: .4byte gTextBox thumb_func_start sub_0806362C sub_0806362C: @ 0x0806362C @@ -10831,7 +10831,7 @@ _080638E2: adds r0, r0, r2 ldrh r0, [r0] adds r1, r6, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, r6, pc} .align 2, 0 _080638F8: .4byte gUnk_02002B0E @@ -10863,7 +10863,7 @@ _0806392E: adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08063940: .4byte gUnk_0810CC04 @@ -11120,7 +11120,7 @@ _08063B0C: ldrb r0, [r4, #0xe] ldr r1, _08063B40 @ =0x00000A01 adds r0, r0, r1 - bl sub_08056378 + bl TextboxTryNoOverlap _08063B38: adds r0, r4, #0 bl sub_0806ED78 @@ -11132,7 +11132,7 @@ _08063B40: .4byte 0x00000A01 sub_08063B44: @ 0x08063B44 push {lr} adds r2, r0, #0 - ldr r0, _08063B64 @ =gUnk_02000050 + ldr r0, _08063B64 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 @@ -11147,7 +11147,7 @@ sub_08063B44: @ 0x08063B44 _08063B62: pop {pc} .align 2, 0 -_08063B64: .4byte gUnk_02000050 +_08063B64: .4byte gTextBox thumb_func_start sub_08063B68 sub_08063B68: @ 0x08063B68 @@ -11551,7 +11551,7 @@ _08063E68: sub_08063E6C: @ 0x08063E6C push {lr} adds r2, r0, #0 - ldr r0, _08063E8C @ =gUnk_02000050 + ldr r0, _08063E8C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -11566,7 +11566,7 @@ sub_08063E6C: @ 0x08063E6C _08063E8A: pop {pc} .align 2, 0 -_08063E8C: .4byte gUnk_02000050 +_08063E8C: .4byte gTextBox thumb_func_start sub_08063E90 sub_08063E90: @ 0x08063E90 @@ -11687,7 +11687,7 @@ _08063F74: .4byte gLinkEntity sub_08063F78: @ 0x08063F78 push {lr} adds r2, r0, #0 - ldr r0, _08063FA8 @ =gUnk_02000050 + ldr r0, _08063FA8 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -11710,7 +11710,7 @@ sub_08063F78: @ 0x08063F78 _08063FA6: pop {pc} .align 2, 0 -_08063FA8: .4byte gUnk_02000050 +_08063FA8: .4byte gTextBox thumb_func_start sub_08063FAC sub_08063FAC: @ 0x08063FAC @@ -12311,7 +12311,7 @@ _08064406: adds r1, r1, r2 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _08064424: .4byte gUnk_0810F6D4 @@ -12416,7 +12416,7 @@ sub_080644C8: @ 0x080644C8 adds r2, r0, #0 movs r1, #0x2e ldrsh r0, [r2, r1] - ldr r3, _08064500 @ =gUnk_03000BF0 + ldr r3, _08064500 @ =gRoomControls movs r4, #0xa ldrsh r1, [r3, r4] subs r1, r0, r1 @@ -12441,7 +12441,7 @@ sub_080644C8: @ 0x080644C8 movs r0, #1 b _08064506 .align 2, 0 -_08064500: .4byte gUnk_03000BF0 +_08064500: .4byte gRoomControls _08064504: movs r0, #0 _08064506: @@ -12597,7 +12597,7 @@ _080645EA: .align 2, 0 _08064628: .4byte gLinkEntity _0806462C: - ldr r0, _08064640 @ =gUnk_02000050 + ldr r0, _08064640 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -12608,7 +12608,7 @@ _0806462C: _0806463C: pop {r4, r5, pc} .align 2, 0 -_08064640: .4byte gUnk_02000050 +_08064640: .4byte gTextBox thumb_func_start sub_08064644 sub_08064644: @ 0x08064644 @@ -12644,7 +12644,7 @@ _08064674: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08064684: .4byte gUnk_0810F88C @@ -13390,7 +13390,7 @@ _08064C28: sub_08064C2C: @ 0x08064C2C push {lr} adds r2, r0, #0 - ldr r0, _08064C4C @ =gUnk_02000050 + ldr r0, _08064C4C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -13404,7 +13404,7 @@ sub_08064C2C: @ 0x08064C2C _08064C48: pop {pc} .align 2, 0 -_08064C4C: .4byte gUnk_02000050 +_08064C4C: .4byte gTextBox thumb_func_start sub_08064C50 sub_08064C50: @ 0x08064C50 @@ -13498,7 +13498,7 @@ _08064CF4: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08064D04: .4byte gUnk_0810FA54 @@ -13611,7 +13611,7 @@ sub_08064DA0: @ 0x08064DA0 movs r1, #6 bl sub_080042AC movs r0, #0 - bl sub_08056378 + bl TextboxTryNoOverlap _08064DC8: pop {r4, pc} .align 2, 0 @@ -13895,10 +13895,10 @@ _08064FD2: adds r0, r0, r2 ldrh r0, [r0] adds r1, r6, #0 - bl sub_08056398 + bl TextboxNoOverlap cmp r4, #0 ble _08064FF4 - ldr r1, _0806500C @ =gUnk_02000050 + ldr r1, _0806500C @ =gTextBox lsls r0, r4, #0x10 lsrs r0, r0, #0x10 str r0, [r1, #0x10] @@ -13912,7 +13912,7 @@ _08064FF4: b _08065016 .align 2, 0 _08065008: .4byte gUnk_0810FC08 -_0806500C: .4byte gUnk_02000050 +_0806500C: .4byte gTextBox _08065010: adds r0, r7, #0 bl sub_0807CD8C @@ -14083,8 +14083,8 @@ _0806513C: _0806515E: adds r0, r7, #0 adds r1, r5, #0 - bl sub_08056398 - ldr r1, _08065178 @ =gUnk_02000050 + bl TextboxNoOverlap + ldr r1, _08065178 @ =gTextBox mov r2, r8 lsls r0, r2, #0x10 lsrs r0, r0, #0x10 @@ -14092,7 +14092,7 @@ _0806515E: b _080651A6 .align 2, 0 _08065174: .4byte gUnk_08014384 -_08065178: .4byte gUnk_02000050 +_08065178: .4byte gTextBox _0806517C: ldrb r1, [r2] movs r0, #0x40 @@ -14123,7 +14123,7 @@ sub_080651AC: @ 0x080651AC push {r4, lr} adds r4, r0, #0 bl sub_08004274 - ldr r0, _080651D4 @ =gUnk_02000050 + ldr r0, _080651D4 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 @@ -14140,7 +14140,7 @@ sub_080651AC: @ 0x080651AC _080651D2: pop {r4, pc} .align 2, 0 -_080651D4: .4byte gUnk_02000050 +_080651D4: .4byte gTextBox thumb_func_start sub_080651D8 sub_080651D8: @ 0x080651D8 @@ -14199,7 +14199,7 @@ sub_0806522C: @ 0x0806522C adds r0, #1 strb r0, [r1, #0xd] ldr r0, _0806524C @ =0x00002C16 - bl sub_08056398 + bl TextboxNoOverlap _08065248: pop {pc} .align 2, 0 @@ -14253,7 +14253,7 @@ sub_0806528C: @ 0x0806528C adds r0, #1 strb r0, [r1, #0xd] ldr r0, _080652AC @ =0x00002C18 - bl sub_08056398 + bl TextboxNoOverlap _080652A8: pop {pc} .align 2, 0 @@ -14263,7 +14263,7 @@ _080652AC: .4byte 0x00002C18 sub_080652B0: @ 0x080652B0 push {lr} adds r2, r0, #0 - ldr r0, _080652DC @ =gUnk_02000050 + ldr r0, _080652DC @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -14284,7 +14284,7 @@ sub_080652B0: @ 0x080652B0 _080652DA: pop {pc} .align 2, 0 -_080652DC: .4byte gUnk_02000050 +_080652DC: .4byte gTextBox _080652E0: .4byte gUnk_02034350 thumb_func_start sub_080652E4 @@ -14306,7 +14306,7 @@ _080652F4: adds r0, #1 strb r0, [r1, #0xd] ldr r0, _08065310 @ =0x00002C19 - bl sub_08056398 + bl TextboxNoOverlap _08065308: pop {pc} .align 2, 0 @@ -14317,7 +14317,7 @@ _08065310: .4byte 0x00002C19 sub_08065314: @ 0x08065314 push {lr} adds r2, r0, #0 - ldr r0, _08065334 @ =gUnk_02000050 + ldr r0, _08065334 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -14332,13 +14332,13 @@ sub_08065314: @ 0x08065314 _08065332: pop {pc} .align 2, 0 -_08065334: .4byte gUnk_02000050 +_08065334: .4byte gTextBox thumb_func_start sub_08065338 sub_08065338: @ 0x08065338 push {lr} adds r2, r0, #0 - ldr r0, _08065360 @ =gUnk_02000050 + ldr r0, _08065360 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 @@ -14356,7 +14356,7 @@ sub_08065338: @ 0x08065338 _0806535C: pop {pc} .align 2, 0 -_08065360: .4byte gUnk_02000050 +_08065360: .4byte gTextBox _08065364: .4byte gUnk_02034350 thumb_func_start sub_08065368 @@ -14469,7 +14469,7 @@ _08065426: bls _0806543C ldr r0, _0806549C @ =0x00002C0E adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap movs r6, #0 _0806543C: cmp r6, #0 @@ -14539,7 +14539,7 @@ _080654C0: ldr r0, _080654D8 @ =0x00002C0D _080654C2: adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap _080654C8: movs r0, #0 mov r1, r8 @@ -14807,7 +14807,7 @@ _080656A0: sub_080656A4: @ 0x080656A4 push {r4, lr} adds r4, r0, #0 - ldr r0, _080656D0 @ =gUnk_02000050 + ldr r0, _080656D0 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -14827,7 +14827,7 @@ _080656C8: bl sub_080042B8 pop {r4, pc} .align 2, 0 -_080656D0: .4byte gUnk_02000050 +_080656D0: .4byte gTextBox thumb_func_start sub_080656D4 sub_080656D4: @ 0x080656D4 @@ -14877,7 +14877,7 @@ _0806571C: ldr r0, [r0] ldr r0, [r0, #4] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap _08065738: adds r0, r4, #0 bl sub_0806574C @@ -15263,7 +15263,7 @@ sub_08065A00: @ 0x08065A00 sub_08065A10: @ 0x08065A10 push {lr} adds r2, r0, #0 - ldr r0, _08065A30 @ =gUnk_02000050 + ldr r0, _08065A30 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -15278,7 +15278,7 @@ sub_08065A10: @ 0x08065A10 _08065A2E: pop {pc} .align 2, 0 -_08065A30: .4byte gUnk_02000050 +_08065A30: .4byte gTextBox thumb_func_start sub_08065A34 sub_08065A34: @ 0x08065A34 @@ -15606,7 +15606,7 @@ _08065C8A: ldr r0, _08065CB4 @ =0x0000FFFF cmp r2, r0 beq _08065CBC - ldr r0, _08065CB8 @ =gUnk_03000F50 + ldr r0, _08065CB8 @ =gLCDControls adds r0, #0x68 strh r2, [r0] adds r1, #2 @@ -15617,7 +15617,7 @@ _08065C8A: b _08065CCA .align 2, 0 _08065CB4: .4byte 0x0000FFFF -_08065CB8: .4byte gUnk_03000F50 +_08065CB8: .4byte gLCDControls _08065CBC: ldrb r0, [r4, #0x18] movs r1, #4 @@ -15644,7 +15644,7 @@ sub_08065CCC: @ 0x08065CCC strb r1, [r0, #0x19] ldr r1, _08065CF8 @ =gUnk_0811022E str r1, [r0, #0x6c] - ldr r1, _08065CFC @ =gUnk_03000F50 + ldr r1, _08065CFC @ =gLCDControls adds r2, r1, #0 adds r2, #0x66 movs r0, #0xfd @@ -15656,7 +15656,7 @@ sub_08065CCC: @ 0x08065CCC bx lr .align 2, 0 _08065CF8: .4byte gUnk_0811022E -_08065CFC: .4byte gUnk_03000F50 +_08065CFC: .4byte gLCDControls thumb_func_start sub_08065D00 sub_08065D00: @ 0x08065D00 @@ -15702,7 +15702,7 @@ sub_08065D18: @ 0x08065D18 adds r0, r4, #0 movs r1, #2 bl sub_080042AC - ldr r1, _08065D70 @ =gUnk_03000F50 + ldr r1, _08065D70 @ =gLCDControls adds r2, r1, #0 adds r2, #0x66 movs r0, #0xfd @@ -15715,7 +15715,7 @@ sub_08065D18: @ 0x08065D18 pop {r4, pc} .align 2, 0 _08065D6C: .4byte gUnk_08110188 -_08065D70: .4byte gUnk_03000F50 +_08065D70: .4byte gLCDControls thumb_func_start sub_08065D74 sub_08065D74: @ 0x08065D74 @@ -15732,7 +15732,7 @@ sub_08065D74: @ 0x08065D74 ldr r0, _08065DA0 @ =0x0000FFFF cmp r3, r0 beq _08065DA8 - ldr r0, _08065DA4 @ =gUnk_03000F50 + ldr r0, _08065DA4 @ =gLCDControls adds r0, #0x68 strh r3, [r0] ldrh r0, [r2, #2] @@ -15742,13 +15742,13 @@ sub_08065D74: @ 0x08065D74 b _08065DB4 .align 2, 0 _08065DA0: .4byte 0x0000FFFF -_08065DA4: .4byte gUnk_03000F50 +_08065DA4: .4byte gLCDControls _08065DA8: ldrb r0, [r1, #0xc] adds r0, #1 strb r0, [r1, #0xc] movs r0, #0 - bl sub_08056378 + bl TextboxTryNoOverlap _08065DB4: pop {pc} .align 2, 0 @@ -15774,7 +15774,7 @@ _08065DD0: @ jump table .4byte _08065E34 @ case 3 .4byte _08065E4E @ case 4 _08065DE4: - ldr r0, _08065E04 @ =gUnk_02000050 + ldr r0, _08065E04 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -15790,7 +15790,7 @@ _08065DE4: bl sub_080042AC b _08065EB0 .align 2, 0 -_08065E04: .4byte gUnk_02000050 +_08065E04: .4byte gTextBox _08065E08: ldrb r0, [r4, #0xe] subs r0, #1 @@ -15821,13 +15821,13 @@ _08065E34: cmp r0, #0 bne _08065EB0 movs r0, #0 - bl sub_08056378 + bl TextboxTryNoOverlap ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] b _08065EB0 _08065E4E: - ldr r0, _08065E6C @ =gUnk_02000050 + ldr r0, _08065E6C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -15842,7 +15842,7 @@ _08065E4E: str r0, [r4, #0x6c] b _08065EB0 .align 2, 0 -_08065E6C: .4byte gUnk_02000050 +_08065E6C: .4byte gTextBox _08065E70: .4byte gUnk_0811022E _08065E74: ldrb r0, [r4, #0xe] @@ -15856,7 +15856,7 @@ _08065E74: ldr r0, _08065E9C @ =0x0000FFFF cmp r2, r0 beq _08065EA4 - ldr r0, _08065EA0 @ =gUnk_03000F50 + ldr r0, _08065EA0 @ =gLCDControls adds r0, #0x68 strh r2, [r0] ldrh r0, [r1, #2] @@ -15866,7 +15866,7 @@ _08065E74: b _08065EB0 .align 2, 0 _08065E9C: .4byte 0x0000FFFF -_08065EA0: .4byte gUnk_03000F50 +_08065EA0: .4byte gLCDControls _08065EA4: ldr r1, _08065EB8 @ =gUnk_02018EB0 ldrb r0, [r1] @@ -15912,7 +15912,7 @@ sub_08065EDC: @ 0x08065EDC ldr r0, _08065F08 @ =0x0000FFFF cmp r3, r0 beq _08065F10 - ldr r0, _08065F0C @ =gUnk_03000F50 + ldr r0, _08065F0C @ =gLCDControls adds r0, #0x68 strh r3, [r0] adds r1, #2 @@ -15923,7 +15923,7 @@ sub_08065EDC: @ 0x08065EDC b _08065F1C .align 2, 0 _08065F08: .4byte 0x0000FFFF -_08065F0C: .4byte gUnk_03000F50 +_08065F0C: .4byte gLCDControls _08065F10: ldrb r0, [r2, #0xc] adds r0, #1 @@ -15947,7 +15947,7 @@ sub_08065F20: @ 0x08065F20 beq _08065F5E movs r0, #0 strb r0, [r1] - bl sub_08056378 + bl TextboxTryNoOverlap adds r2, r4, #0 adds r2, #0x58 ldrb r0, [r2] @@ -16234,7 +16234,7 @@ _08066154: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0 - bl sub_08056378 + bl TextboxTryNoOverlap _0806616C: pop {r4, pc} .align 2, 0 @@ -16516,7 +16516,7 @@ sub_08066358: @ 0x08066358 movs r5, #0 strb r5, [r1] movs r0, #0 - bl sub_08056378 + bl TextboxTryNoOverlap ldrb r1, [r4, #0xb] movs r0, #0x10 ands r0, r1 @@ -16632,7 +16632,7 @@ sub_0806643C: @ 0x0806643C bne _08066462 movs r0, #5 strb r0, [r5, #0xc] - ldr r0, _0806646C @ =gUnk_03000BF0 + ldr r0, _0806646C @ =gRoomControls str r4, [r0, #0x30] movs r0, #0x40 movs r1, #0 @@ -16646,7 +16646,7 @@ _08066462: bl sub_08004274 pop {r4, r5, pc} .align 2, 0 -_0806646C: .4byte gUnk_03000BF0 +_0806646C: .4byte gRoomControls _08066470: .4byte gLinkEntity thumb_func_start sub_08066474 @@ -17066,7 +17066,7 @@ _0806676A: adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _0806677C: .4byte gUnk_081104F8 @@ -17310,7 +17310,7 @@ _08066932: adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _08066944: .4byte gUnk_08110650 @@ -17930,7 +17930,7 @@ sub_08066D94: @ 0x08066D94 movs r0, #0x2e movs r1, #0 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _08066DD6 @@ -17944,7 +17944,7 @@ sub_08066D94: @ 0x08066D94 adds r0, r5, #0 bl sub_0806EDC4 strb r0, [r4, #0x14] - ldr r0, _08066DE0 @ =gUnk_03000BF0 + ldr r0, _08066DE0 @ =gRoomControls ldrb r1, [r0, #5] adds r0, r4, #0 adds r0, #0x74 @@ -17957,7 +17957,7 @@ _08066DD6: pop {r4, r5, pc} .align 2, 0 _08066DDC: .4byte gLinkEntity -_08066DE0: .4byte gUnk_03000BF0 +_08066DE0: .4byte gRoomControls thumb_func_start sub_08066DE4 sub_08066DE4: @ 0x08066DE4 @@ -18348,7 +18348,7 @@ _080670D0: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _080670E0: .4byte gUnk_08110C0C @@ -18615,7 +18615,7 @@ _080672E4: adds r1, r1, r3 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08067300: .4byte gUnk_08110CE8 @@ -18781,7 +18781,7 @@ sub_08067418: @ 0x08067418 strb r0, [r6, #0xc] movs r0, #0x2e ldrsh r1, [r6, r0] - ldr r2, _08067488 @ =gUnk_03000BF0 + ldr r2, _08067488 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -18827,7 +18827,7 @@ sub_08067418: @ 0x08067418 bl sub_0800015E b _080674F8 .align 2, 0 -_08067488: .4byte gUnk_03000BF0 +_08067488: .4byte gRoomControls _0806748C: .4byte gUnk_08110E94 _08067490: .4byte 0x00004022 _08067494: @@ -19501,7 +19501,7 @@ sub_0806799C: @ 0x0806799C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 - ldr r0, _080679C0 @ =gUnk_02000050 + ldr r0, _080679C0 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -19515,7 +19515,7 @@ sub_0806799C: @ 0x0806799C _080679BE: pop {r4, pc} .align 2, 0 -_080679C0: .4byte gUnk_02000050 +_080679C0: .4byte gTextBox thumb_func_start sub_080679C4 sub_080679C4: @ 0x080679C4 @@ -20213,7 +20213,7 @@ _08067EC4: movs r1, #0x90 lsls r1, r1, #5 adds r0, r0, r1 - bl sub_08056378 + bl TextboxTryNoOverlap _08067EE4: pop {r4, pc} .align 2, 0 @@ -20338,7 +20338,7 @@ _08067F98: .align 2, 0 _08067FD8: .4byte gLinkEntity _08067FDC: - ldr r0, _08067FFC @ =gUnk_02000050 + ldr r0, _08067FFC @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -20354,7 +20354,7 @@ _08067FF2: bl sub_08004260 b _0806801A .align 2, 0 -_08067FFC: .4byte gUnk_02000050 +_08067FFC: .4byte gTextBox _08068000: adds r0, r5, #0 bl sub_0806F148 @@ -20584,7 +20584,7 @@ _080681C0: adds r0, r0, r2 ldrh r0, [r0] adds r1, r6, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, r6, pc} .align 2, 0 _080681D4: .4byte gUnk_0811130E @@ -21325,7 +21325,7 @@ _08068762: movs r1, #0x90 lsls r1, r1, #5 adds r0, r0, r1 - bl sub_08056378 + bl TextboxTryNoOverlap _0806877E: pop {r4, pc} @@ -21736,7 +21736,7 @@ _08068A88: movs r0, #2 strb r0, [r4, #0xc] movs r0, #0 - bl sub_08056378 + bl TextboxTryNoOverlap _08068AA2: pop {r4, pc} @@ -22162,7 +22162,7 @@ sub_08068DB8: @ 0x08068DB8 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _08068DCC: .4byte gUnk_08111664 @@ -22176,7 +22176,7 @@ sub_08068DD0: @ 0x08068DD0 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _08068DE4: .4byte gUnk_0811167A @@ -22190,7 +22190,7 @@ sub_08068DE8: @ 0x08068DE8 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _08068DFC: .4byte gUnk_08111690 @@ -22204,7 +22204,7 @@ sub_08068E00: @ 0x08068E00 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _08068E14: .4byte gUnk_081116A6 @@ -22218,7 +22218,7 @@ sub_08068E18: @ 0x08068E18 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _08068E2C: .4byte gUnk_081116BC @@ -22232,7 +22232,7 @@ sub_08068E30: @ 0x08068E30 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _08068E44: .4byte gUnk_081116D2 @@ -22246,7 +22246,7 @@ sub_08068E48: @ 0x08068E48 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _08068E5C: .4byte gUnk_081116E8 @@ -22260,7 +22260,7 @@ sub_08068E60: @ 0x08068E60 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _08068E74: .4byte gUnk_081116FE @@ -22274,7 +22274,7 @@ sub_08068E78: @ 0x08068E78 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _08068E8C: .4byte gUnk_08111714 @@ -22964,7 +22964,7 @@ _08069362: movs r1, #0x90 lsls r1, r1, #5 adds r0, r0, r1 - bl sub_08056378 + bl TextboxTryNoOverlap _0806938E: pop {r4, pc} @@ -22973,7 +22973,7 @@ sub_08069390: @ 0x08069390 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 - ldr r0, _080693C0 @ =gUnk_02000050 + ldr r0, _080693C0 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 @@ -22992,7 +22992,7 @@ sub_08069390: @ 0x08069390 _080693BC: pop {r4, pc} .align 2, 0 -_080693C0: .4byte gUnk_02000050 +_080693C0: .4byte gTextBox thumb_func_start sub_080693C4 sub_080693C4: @ 0x080693C4 @@ -23294,7 +23294,7 @@ sub_080695E8: @ 0x080695E8 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 - ldr r0, _08069618 @ =gUnk_02000050 + ldr r0, _08069618 @ =gTextBox ldrb r0, [r0] movs r1, #0x7f ands r1, r0 @@ -23313,7 +23313,7 @@ sub_080695E8: @ 0x080695E8 _08069614: pop {r4, pc} .align 2, 0 -_08069618: .4byte gUnk_02000050 +_08069618: .4byte gTextBox thumb_func_start sub_0806961C sub_0806961C: @ 0x0806961C @@ -23361,17 +23361,17 @@ sub_08069660: @ 0x08069660 adds r4, r0, #0 ldr r0, _0806967C @ =0x00002C1C adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap adds r0, r4, #0 bl sub_080696BC - ldr r1, _08069680 @ =gUnk_02000050 + ldr r1, _08069680 @ =gTextBox lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [r1, #0x10] pop {r4, pc} .align 2, 0 _0806967C: .4byte 0x00002C1C -_08069680: .4byte gUnk_02000050 +_08069680: .4byte gTextBox thumb_func_start sub_08069684 sub_08069684: @ 0x08069684 @@ -23494,7 +23494,7 @@ _08069764: ldr r0, _0806977C @ =0x00002C1E _08069766: adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap movs r0, #0 _0806976E: str r0, [r7, #0x14] @@ -23710,7 +23710,7 @@ _08069906: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _08069918: .4byte gUnk_08111C50 @@ -23735,7 +23735,7 @@ sub_0806991C: @ 0x0806991C lsls r1, r1, #2 ldr r0, _0806999C @ =gUnk_08111C5C adds r1, r1, r0 - ldr r2, _080699A0 @ =gUnk_03000BF0 + ldr r2, _080699A0 @ =gRoomControls ldrh r0, [r1] ldrh r6, [r2, #6] adds r0, r0, r6 @@ -23781,7 +23781,7 @@ sub_0806991C: @ 0x0806991C pop {r4, r5, r6, pc} .align 2, 0 _0806999C: .4byte gUnk_08111C5C -_080699A0: .4byte gUnk_03000BF0 +_080699A0: .4byte gRoomControls _080699A4: .4byte gUnk_08111C74 _080699A8: .4byte gUnk_02033280 @@ -23805,7 +23805,7 @@ sub_080699AC: @ 0x080699AC lsls r1, r1, #2 ldr r0, _08069A2C @ =gUnk_08111C84 adds r1, r1, r0 - ldr r2, _08069A30 @ =gUnk_03000BF0 + ldr r2, _08069A30 @ =gRoomControls ldrh r0, [r1] ldrh r6, [r2, #6] adds r0, r0, r6 @@ -23851,7 +23851,7 @@ sub_080699AC: @ 0x080699AC pop {r4, r5, r6, pc} .align 2, 0 _08069A2C: .4byte gUnk_08111C84 -_08069A30: .4byte gUnk_03000BF0 +_08069A30: .4byte gRoomControls _08069A34: .4byte gUnk_08111C8C _08069A38: .4byte gUnk_02033280 @@ -24095,7 +24095,7 @@ _08069BF2: ldr r0, _08069C38 @ =0x00004072 movs r6, #0x2e ldrsh r1, [r5, r6] - ldr r3, _08069C3C @ =gUnk_03000BF0 + ldr r3, _08069C3C @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -24119,7 +24119,7 @@ _08069C30: .align 2, 0 _08069C34: .4byte gUnk_03003F80 _08069C38: .4byte 0x00004072 -_08069C3C: .4byte gUnk_03000BF0 +_08069C3C: .4byte gRoomControls thumb_func_start sub_08069C40 sub_08069C40: @ 0x08069C40 @@ -24731,7 +24731,7 @@ sub_0806A0A4: @ 0x0806A0A4 bl sub_0807CCB4 movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _0806A0FC @ =gUnk_03000BF0 + ldr r2, _0806A0FC @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -24753,7 +24753,7 @@ sub_0806A0A4: @ 0x0806A0A4 b _0806A120 .align 2, 0 _0806A0F8: .4byte gUnk_03003F80 -_0806A0FC: .4byte gUnk_03000BF0 +_0806A0FC: .4byte gRoomControls _0806A100: movs r5, #2 movs r0, #0xcf @@ -24779,7 +24779,7 @@ _0806A120: adds r0, r0, r2 ldrh r0, [r0] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, r6, pc} .align 2, 0 _0806A13C: .4byte gUnk_08111F74 @@ -24817,7 +24817,7 @@ _0806A17A: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806A18C: .4byte gUnk_03003F80 @@ -25731,7 +25731,7 @@ _0806A860: movs r0, #0x37 movs r1, #5 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r1, r0, #0 cmp r1, #0 beq _0806A88A @@ -25782,7 +25782,7 @@ sub_0806A8C8: @ 0x0806A8C8 movs r0, #0x37 movs r1, #2 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _0806A8F0 @@ -25794,7 +25794,7 @@ _0806A8F0: movs r0, #0x37 movs r1, #3 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _0806A910 @@ -25816,7 +25816,7 @@ sub_0806A914: @ 0x0806A914 movs r0, #0x37 movs r1, #1 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _0806A938 @@ -25931,7 +25931,7 @@ sub_0806A9E8: @ 0x0806A9E8 movs r0, #0x37 movs r1, #4 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _0806AA0C @@ -25975,7 +25975,7 @@ _0806AA2C: _0806AA3C: adds r0, r1, #0 adds r1, r2, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _0806AA48: .4byte gUnk_030010A0 @@ -26039,7 +26039,7 @@ _0806AA9A: _0806AAB6: adds r0, r7, #0 adds r1, r6, #0 - bl sub_08056398 + bl TextboxNoOverlap ldr r0, [r5, #4] cmp r0, #1 beq _0806AAEE @@ -26144,7 +26144,7 @@ sub_0806AB74: @ 0x0806AB74 strb r0, [r1, #3] movs r1, #0x32 ldrsh r0, [r2, r1] - ldr r1, _0806AB98 @ =gUnk_03000BF0 + ldr r1, _0806AB98 @ =gRoomControls ldrh r1, [r1, #8] subs r0, r0, r1 cmp r0, #0xa7 @@ -26156,7 +26156,7 @@ _0806AB92: pop {pc} .align 2, 0 _0806AB94: .4byte gUnk_02034350 -_0806AB98: .4byte gUnk_03000BF0 +_0806AB98: .4byte gRoomControls thumb_func_start sub_0806AB9C sub_0806AB9C: @ 0x0806AB9C @@ -26432,7 +26432,7 @@ _0806ADAC: .4byte gLinkEntity _0806ADB0: .4byte gUnk_081126E4 _0806ADB4: .4byte gUnk_081126D4 _0806ADB8: - ldr r0, _0806ADD8 @ =gUnk_02000050 + ldr r0, _0806ADD8 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -26448,7 +26448,7 @@ _0806ADCE: bl sub_08004260 b _0806ADEA .align 2, 0 -_0806ADD8: .4byte gUnk_02000050 +_0806ADD8: .4byte gTextBox _0806ADDC: adds r0, r4, #0 bl sub_0806F148 @@ -26792,7 +26792,7 @@ _0806B050: adds r1, r1, r0 ldrh r0, [r1] adds r1, r6, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, r6, pc} .align 2, 0 _0806B060: .4byte gUnk_08112C40 @@ -26818,7 +26818,7 @@ _0806B082: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806B094: .4byte gUnk_08112C4A @@ -26853,7 +26853,7 @@ _0806B0C0: adds r0, r0, r2 ldrh r0, [r0] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806B0DC: .4byte gUnk_08112C50 @@ -26894,7 +26894,7 @@ _0806B120: adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806B130: .4byte gUnk_08112C5C @@ -26932,7 +26932,7 @@ _0806B16A: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806B17C: .4byte gUnk_02002A40 @@ -27088,7 +27088,7 @@ _0806B2A0: adds r1, r1, r0 ldrh r0, [r1] adds r1, r6, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, r6, pc} .align 2, 0 _0806B2B0: .4byte gUnk_08112D48 @@ -27144,7 +27144,7 @@ _0806B316: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806B328: .4byte gUnk_08112D50 @@ -27262,7 +27262,7 @@ _0806B3F4: beq _0806B40E movs r0, #0 strb r0, [r1] - bl sub_08056378 + bl TextboxTryNoOverlap _0806B40E: adds r0, r4, #0 bl sub_0806ED78 @@ -27412,7 +27412,7 @@ _0806B52A: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806B53C: .4byte gUnk_08112E54 @@ -27440,7 +27440,7 @@ _0806B558: _0806B562: ldr r0, _0806B584 @ =0x00002312 adds r1, r2, #0 - bl sub_08056398 + bl TextboxNoOverlap movs r0, #0x3f bl sub_0807CBD0 cmp r0, #0 @@ -27454,7 +27454,7 @@ _0806B562: .align 2, 0 _0806B584: .4byte 0x00002312 _0806B588: - ldr r0, _0806B5A4 @ =gUnk_02000050 + ldr r0, _0806B5A4 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -27464,13 +27464,13 @@ _0806B588: strb r0, [r4, #0x18] ldr r0, _0806B5A8 @ =0x00002315 adds r1, r2, #0 - bl sub_08056398 + bl TextboxNoOverlap b _0806B600 .align 2, 0 -_0806B5A4: .4byte gUnk_02000050 +_0806B5A4: .4byte gTextBox _0806B5A8: .4byte 0x00002315 _0806B5AC: - ldr r0, _0806B5D4 @ =gUnk_02000050 + ldr r0, _0806B5D4 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -27489,7 +27489,7 @@ _0806B5AC: bl sub_080A7C18 b _0806B5E6 .align 2, 0 -_0806B5D4: .4byte gUnk_02000050 +_0806B5D4: .4byte gTextBox _0806B5D8: .4byte gUnk_02002A40 _0806B5DC: movs r0, #0x3f @@ -27623,7 +27623,7 @@ _0806B6CE: movs r0, #0x3b movs r1, #2 adds r2, r5, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _0806B6E0 @@ -27635,7 +27635,7 @@ _0806B6E0: movs r0, #0x3b movs r1, #1 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 str r6, [r4, #0x50] adds r1, r4, #0 @@ -27671,7 +27671,7 @@ _0806B726: movs r0, #0x3b movs r1, #4 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _0806B76C @@ -27701,7 +27701,7 @@ _0806B76C: movs r0, #0x3b movs r1, #5 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _0806B7A6 @@ -27776,7 +27776,7 @@ _0806B7E6: movs r0, #0x3b movs r1, #3 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 bne _0806B80C @@ -27786,7 +27786,7 @@ _0806B80C: adds r1, r4, #0 bl sub_0806FA24 ldr r0, _0806B828 @ =0x00001634 - bl sub_08056378 + bl TextboxTryNoOverlap ldrb r0, [r5, #0xd] adds r0, #1 strb r0, [r5, #0xd] @@ -28168,7 +28168,7 @@ _0806BAF8: _0806BB06: mov r0, r8 mov r1, sb - bl sub_08056398 + bl TextboxNoOverlap pop {r3, r4} mov r8, r3 mov sb, r4 @@ -28274,7 +28274,7 @@ _0806BBCE: adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _0806BBE0: .4byte gUnk_08113078 @@ -28662,7 +28662,7 @@ _0806BEB2: adds r1, r1, r0 ldrh r0, [r1] adds r1, r6, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, r6, pc} .align 2, 0 _0806BEC4: .4byte gUnk_08113344 @@ -28691,7 +28691,7 @@ _0806BEE8: adds r1, r1, r0 ldrh r0, [r1] adds r1, r6, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, r6, pc} .align 2, 0 _0806BEF8: .4byte gUnk_0811334A @@ -28735,7 +28735,7 @@ sub_0806BF44: @ 0x0806BF44 str r0, [r4, #0x14] movs r1, #0x2e ldrsh r0, [r2, r1] - ldr r3, _0806BF78 @ =gUnk_03000BF0 + ldr r3, _0806BF78 @ =gRoomControls movs r5, #0xa ldrsh r1, [r3, r5] subs r0, r0, r1 @@ -28756,7 +28756,7 @@ sub_0806BF44: @ 0x0806BF44 _0806BF76: pop {r4, r5, pc} .align 2, 0 -_0806BF78: .4byte gUnk_03000BF0 +_0806BF78: .4byte gRoomControls _0806BF7C: .4byte 0x0000010F thumb_func_start sub_0806BF80 @@ -28902,7 +28902,7 @@ _0806C086: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806C098: .4byte gUnk_081133A4 @@ -28944,7 +28944,7 @@ sub_0806C0B0: @ 0x0806C0B0 bl sub_0805E3A0 adds r0, r4, #0 bl sub_0807DD50 - ldr r1, _0806C100 @ =gUnk_03000F50 + ldr r1, _0806C100 @ =gLCDControls adds r2, r1, #0 adds r2, #0x66 movs r0, #0xfd @@ -28958,7 +28958,7 @@ sub_0806C0B0: @ 0x0806C0B0 str r5, [r4, #0x20] b _0806C134 .align 2, 0 -_0806C100: .4byte gUnk_03000F50 +_0806C100: .4byte gLCDControls _0806C104: adds r0, r4, #0 movs r1, #0 @@ -28977,7 +28977,7 @@ _0806C11E: bgt _0806C124 movs r3, #4 _0806C124: - ldr r2, _0806C138 @ =gUnk_03000F50 + ldr r2, _0806C138 @ =gLCDControls lsls r1, r3, #8 movs r0, #0x10 subs r0, r0, r3 @@ -28988,7 +28988,7 @@ _0806C124: _0806C134: pop {r4, r5, pc} .align 2, 0 -_0806C138: .4byte gUnk_03000F50 +_0806C138: .4byte gLCDControls thumb_func_start sub_0806C13C sub_0806C13C: @ 0x0806C13C @@ -29134,7 +29134,7 @@ sub_0806C23C: @ 0x0806C23C bl sub_080A2988 movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _0806C27C @ =gUnk_03000BF0 + ldr r2, _0806C27C @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -29156,7 +29156,7 @@ sub_0806C23C: @ 0x0806C23C bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 -_0806C27C: .4byte gUnk_03000BF0 +_0806C27C: .4byte gRoomControls thumb_func_start sub_0806C280 sub_0806C280: @ 0x0806C280 @@ -29907,7 +29907,7 @@ _0806C830: .4byte gUnk_08014A80 sub_0806C834: @ 0x0806C834 push {lr} adds r2, r0, #0 - ldr r0, _0806C858 @ =gUnk_02000050 + ldr r0, _0806C858 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -29924,7 +29924,7 @@ sub_0806C834: @ 0x0806C834 _0806C856: pop {pc} .align 2, 0 -_0806C858: .4byte gUnk_02000050 +_0806C858: .4byte gTextBox thumb_func_start sub_0806C85C sub_0806C85C: @ 0x0806C85C @@ -30067,7 +30067,7 @@ _0806C964: adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _0806C974: .4byte gUnk_08113B0C @@ -30086,7 +30086,7 @@ sub_0806C978: @ 0x0806C978 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _0806C998: .4byte gUnk_08113B12 @@ -30113,7 +30113,7 @@ _0806C9BC: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806C9CC: .4byte gUnk_08113B16 @@ -30134,7 +30134,7 @@ _0806C9E2: adds r1, r1, r0 ldrh r0, [r1] adds r1, r5, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806C9F4: .4byte gUnk_08113B1E @@ -30153,7 +30153,7 @@ sub_0806C9F8: @ 0x0806C9F8 adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, pc} .align 2, 0 _0806CA18: .4byte gUnk_08113B22 @@ -30163,7 +30163,7 @@ sub_0806CA1C: @ 0x0806CA1C push {lr} adds r1, r0, #0 ldr r0, _0806CA28 @ =0x0000251B - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _0806CA28: .4byte 0x0000251B @@ -30173,7 +30173,7 @@ sub_0806CA2C: @ 0x0806CA2C push {lr} adds r1, r0, #0 ldr r0, _0806CA38 @ =0x00002527 - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _0806CA38: .4byte 0x00002527 @@ -30292,7 +30292,7 @@ sub_0806CAF4: @ 0x0806CAF4 movs r0, #0x4a movs r1, #1 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _0806CB2C @@ -30307,7 +30307,7 @@ _0806CB2C: movs r0, #0x4a movs r1, #2 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _0806CB4E @@ -30971,7 +30971,7 @@ _0806D028: sub_0806D02C: @ 0x0806D02C push {lr} bl sub_0806D164 - ldr r2, _0806D0A8 @ =gUnk_03000F50 + ldr r2, _0806D0A8 @ =gLCDControls ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #7 @@ -31039,7 +31039,7 @@ _0806D09C: strh r0, [r1] pop {pc} .align 2, 0 -_0806D0A8: .4byte gUnk_03000F50 +_0806D0A8: .4byte gLCDControls _0806D0AC: .4byte 0x00003F3F thumb_func_start sub_0806D0B0 @@ -31062,7 +31062,7 @@ sub_0806D0B0: @ 0x0806D0B0 adds r0, r4, #0 bl sub_0806D164 _0806D0DA: - ldr r0, _0806D0F0 @ =gUnk_03000F50 + ldr r0, _0806D0F0 @ =gLCDControls ldr r1, _0806D0F4 @ =0x00001D47 strh r1, [r0, #0x14] str r5, [r0, #0x1c] @@ -31072,7 +31072,7 @@ _0806D0DA: .align 2, 0 _0806D0E8: .4byte gUnk_0200B650 _0806D0EC: .4byte gUnk_02002F00 -_0806D0F0: .4byte gUnk_03000F50 +_0806D0F0: .4byte gLCDControls _0806D0F4: .4byte 0x00001D47 thumb_func_start sub_0806D0F8 @@ -31137,14 +31137,14 @@ _0806D160: .4byte 0x80000020 thumb_func_start sub_0806D164 sub_0806D164: @ 0x0806D164 push {r4, r5, r6, r7, lr} - ldr r5, _0806D1B8 @ =gUnk_03000BF0 + ldr r5, _0806D1B8 @ =gRoomControls movs r1, #0xa ldrsh r2, [r5, r1] movs r3, #0x2e ldrsh r1, [r0, r3] subs r2, r2, r1 adds r2, #0xa0 - ldr r4, _0806D1BC @ =gUnk_03000F50 + ldr r4, _0806D1BC @ =gLCDControls movs r3, #0xf adds r1, r2, #0 ands r1, r3 @@ -31180,8 +31180,8 @@ _0806D1A0: strh r0, [r7, #0x1a] pop {r4, r5, r6, r7, pc} .align 2, 0 -_0806D1B8: .4byte gUnk_03000BF0 -_0806D1BC: .4byte gUnk_03000F50 +_0806D1B8: .4byte gRoomControls +_0806D1BC: .4byte gLCDControls _0806D1C0: .4byte gUnk_02006F00 _0806D1C4: .4byte 0xFFFFC000 _0806D1C8: .4byte 0x040000D4 @@ -31313,7 +31313,7 @@ _0806D28C: movs r0, #0x4c movs r1, #3 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC cmp r0, #0 beq _0806D2CA str r4, [r0, #0x54] @@ -31335,7 +31335,7 @@ _0806D2E0: @ jump table .4byte _0806D334 @ case 3 .4byte _0806D338 @ case 4 _0806D2F4: - ldr r0, _0806D318 @ =gUnk_02000050 + ldr r0, _0806D318 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -31354,7 +31354,7 @@ _0806D2F4: eors r0, r1 b _0806D33A .align 2, 0 -_0806D318: .4byte gUnk_02000050 +_0806D318: .4byte gTextBox _0806D31C: ldrb r0, [r4, #0xe] subs r0, #1 @@ -31581,7 +31581,7 @@ sub_0806D4C0: @ 0x0806D4C0 adds r1, #6 movs r0, #0x4c movs r2, #0 - bl sub_0806ED50 + bl CreateNPC adds r4, r0, #0 cmp r4, #0 beq _0806D4EE @@ -32817,7 +32817,7 @@ _0806DDC4: ldrsh r4, [r7, r1] ldr r2, _0806DEC0 @ =0x00004072 mov sl, r2 - ldr r0, _0806DEC4 @ =gUnk_03000BF0 + ldr r0, _0806DEC4 @ =gRoomControls mov r8, r0 ldrh r1, [r0, #6] adds r1, #0x18 @@ -32929,7 +32929,7 @@ _0806DDC4: pop {r4, r5, r6, r7, pc} .align 2, 0 _0806DEC0: .4byte 0x00004072 -_0806DEC4: .4byte gUnk_03000BF0 +_0806DEC4: .4byte gRoomControls thumb_func_start sub_0806DEC8 sub_0806DEC8: @ 0x0806DEC8 @@ -32974,19 +32974,19 @@ sub_0806DF00: @ 0x0806DF00 movs r0, #0x51 movs r1, #1 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC str r0, [r4, #0x68] str r4, [r0, #0x50] movs r0, #0x51 movs r1, #1 movs r2, #1 - bl sub_0806ED50 + bl CreateNPC str r0, [r4, #0x6c] str r4, [r0, #0x50] movs r0, #0x51 movs r1, #1 movs r2, #2 - bl sub_0806ED50 + bl CreateNPC str r0, [r4, #0x70] str r4, [r0, #0x50] adds r0, r4, #0 @@ -33215,7 +33215,7 @@ sub_0806E0DC: @ 0x0806E0DC strb r0, [r4, #0xc] movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _0806E134 @ =gUnk_03000BF0 + ldr r2, _0806E134 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -33246,7 +33246,7 @@ _0806E120: bl sub_0807B7D8 b _0806E13C .align 2, 0 -_0806E134: .4byte gUnk_03000BF0 +_0806E134: .4byte gRoomControls _0806E138: movs r0, #3 strb r0, [r4, #0xc] @@ -33293,21 +33293,21 @@ _0806E172: movs r0, #0 str r0, [r5, #0x14] ldr r0, _0806E190 @ =0x0000421B - bl sub_08056378 + bl TextboxTryNoOverlap b _0806E1C0 .align 2, 0 _0806E18C: .4byte 0x000003E7 _0806E190: .4byte 0x0000421B _0806E194: ldr r0, _0806E1A4 @ =0x00004218 - bl sub_08056378 - ldr r1, _0806E1A8 @ =gUnk_02000050 + bl TextboxTryNoOverlap + ldr r1, _0806E1A8 @ =gTextBox ldrh r0, [r4] str r0, [r1, #0x10] b _0806E1C0 .align 2, 0 _0806E1A4: .4byte 0x00004218 -_0806E1A8: .4byte gUnk_02000050 +_0806E1A8: .4byte gTextBox _0806E1AC: str r1, [r5, #0x14] adds r0, r3, #0 @@ -33317,7 +33317,7 @@ _0806E1AC: adds r4, #0x76 strh r1, [r4] ldr r0, _0806E1D4 @ =0x0000421C - bl sub_08056378 + bl TextboxTryNoOverlap _0806E1C0: ldr r1, _0806E1D8 @ =gUnk_030010A0 ldrh r0, [r4] @@ -33363,18 +33363,18 @@ sub_0806E20C: @ 0x0806E20C cmp r0, #0 beq _0806E230 ldr r0, _0806E228 @ =0x0000421F - bl sub_08056378 - ldr r1, _0806E22C @ =gUnk_02000050 + bl TextboxTryNoOverlap + ldr r1, _0806E22C @ =gTextBox ldrh r0, [r4, #6] str r0, [r1, #0x10] b _0806E236 .align 2, 0 _0806E224: .4byte gUnk_030010A0 _0806E228: .4byte 0x0000421F -_0806E22C: .4byte gUnk_02000050 +_0806E22C: .4byte gTextBox _0806E230: ldr r0, _0806E238 @ =0x00004220 - bl sub_08056378 + bl TextboxTryNoOverlap _0806E236: pop {r4, pc} .align 2, 0 @@ -33978,7 +33978,7 @@ _0806E6C2: adds r1, r1, r0 ldrh r0, [r1] adds r1, r4, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 _0806E6D4: .4byte gUnk_02002A40 @@ -34212,7 +34212,7 @@ sub_0806E884: @ 0x0806E884 push {lr} adds r1, r0, #0 ldr r0, _0806E890 @ =0x00000DB6 - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 _0806E890: .4byte 0x00000DB6 @@ -34527,7 +34527,7 @@ sub_0806EABC: @ 0x0806EABC ldr r0, _0806EAE8 @ =0x00003302 ldr r1, _0806EAEC @ =gUnk_081146B8 bl sub_0805F46C - ldr r1, _0806EAF0 @ =gUnk_03000F50 + ldr r1, _0806EAF0 @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] pop {r4, pc} @@ -34536,7 +34536,7 @@ _0806EAE0: .4byte gUnk_020227E8 _0806EAE4: .4byte 0x00202020 _0806EAE8: .4byte 0x00003302 _0806EAEC: .4byte gUnk_081146B8 -_0806EAF0: .4byte gUnk_03000F50 +_0806EAF0: .4byte gLCDControls thumb_func_start sub_0806EAF4 sub_0806EAF4: @ 0x0806EAF4 @@ -34687,7 +34687,7 @@ sub_0806EC20: @ 0x0806EC20 movs r0, #0x58 movs r1, #0 movs r2, #0 - bl sub_0806ED50 + bl CreateNPC cmp r0, #0 beq _0806EC34 str r4, [r0, #0x50] @@ -34842,1768 +34842,3 @@ _0806ED4A: pop {r4, r5, pc} .align 2, 0 _0806ED4C: .4byte gUnk_08114EE4 - - thumb_func_start sub_0806ED50 -sub_0806ED50: @ 0x0806ED50 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - bl GetEmptyEntity - adds r4, r0, #0 - cmp r4, #0 - beq _0806ED74 - movs r0, #7 - strb r0, [r4, #8] - strb r5, [r4, #9] - strb r6, [r4, #0xa] - strb r7, [r4, #0xb] - adds r0, r4, #0 - movs r1, #7 - bl sub_0805EA2C -_0806ED74: - adds r0, r4, #0 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0806ED78 -sub_0806ED78: @ 0x0806ED78 - push {r4, lr} - bl sub_0800445C - adds r4, r0, #0 - cmp r4, #0 - beq _0806ED94 - ldr r0, _0806ED98 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806ED94 - bl sub_08077B20 -_0806ED94: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0806ED98: .4byte gUnk_03003F80 - - thumb_func_start sub_0806ED9C -sub_0806ED9C: @ 0x0806ED9C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r2, #0 - movs r6, #1 - rsbs r6, r6, #0 - ldr r1, _0806EDC0 @ =gLinkEntity - adds r2, r4, #0 - bl sub_080041A0 - cmp r0, #0 - beq _0806EDBC - adds r0, r5, #0 - bl sub_0806EDC4 - adds r6, r0, #0 -_0806EDBC: - adds r0, r6, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806EDC0: .4byte gLinkEntity - - thumb_func_start sub_0806EDC4 -sub_0806EDC4: @ 0x0806EDC4 - push {lr} - ldr r1, _0806EDD4 @ =gLinkEntity - bl sub_080045C4 - bl sub_0806F5A4 - pop {pc} - .align 2, 0 -_0806EDD4: .4byte gLinkEntity - - thumb_func_start sub_0806EDD8 -sub_0806EDD8: @ 0x0806EDD8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r2, #0 - movs r7, #1 - rsbs r7, r7, #0 - ldr r6, _0806EE00 @ =gLinkEntity - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080041A0 - cmp r0, #0 - beq _0806EDFC - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080045C4 - adds r7, r0, #0 -_0806EDFC: - adds r0, r7, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806EE00: .4byte gLinkEntity - - thumb_func_start sub_0806EE04 -sub_0806EE04: @ 0x0806EE04 - adds r3, r0, #0 - str r1, [r3, #0x54] - adds r0, #0x3c - movs r1, #0 - strb r2, [r0] - adds r0, #3 - strb r1, [r0] - adds r2, r3, #0 - adds r2, #0x46 - movs r0, #0 - strh r1, [r2] - strb r0, [r3, #0x16] - bx lr - .align 2, 0 - - thumb_func_start sub_0806EE20 -sub_0806EE20: @ 0x0806EE20 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0806EE4C - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0806EE66 - ldr r1, _0806EE48 @ =gUnk_08114EFC - ldrb r0, [r4, #0x16] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - b _0806EE68 - .align 2, 0 -_0806EE48: .4byte gUnk_08114EFC -_0806EE4C: - adds r1, r4, #0 - adds r1, #0x46 - movs r0, #8 - strh r0, [r1] - ldr r1, _0806EE6C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] -_0806EE66: - movs r0, #0 -_0806EE68: - pop {r4, pc} - .align 2, 0 -_0806EE6C: .4byte gLinkEntity - - thumb_func_start sub_0806EE70 -sub_0806EE70: @ 0x0806EE70 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - bls _0806EE92 - movs r0, #0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_0806EF14 -_0806EE92: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - mov r1, sp - bl sub_0806EF4C - mov r0, sp - ldrh r1, [r0] - ldrh r2, [r0, #2] - adds r0, r4, #0 - bl sub_080041DC - adds r1, r0, #0 - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0 - bge _0806EEB8 - rsbs r0, r0, #0 -_0806EEB8: - lsrs r0, r0, #3 - cmp r0, r1 - bhi _0806EEC2 - movs r0, #0 - b _0806EECA -_0806EEC2: - adds r0, r4, #0 - movs r1, #3 - bl sub_0806EF74 -_0806EECA: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806EED0 -sub_0806EED0: @ 0x0806EED0 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x46 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0806EEE8 - movs r0, #0 - b _0806EEF0 -_0806EEE8: - adds r0, r2, #0 - movs r1, #2 - bl sub_0806EF74 -_0806EEF0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EEF4 -sub_0806EEF4: @ 0x0806EEF4 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0806EF08 - movs r0, #0 - b _0806EF10 -_0806EF08: - adds r0, r2, #0 - movs r1, #1 - bl sub_0806EF74 -_0806EF10: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EF14 -sub_0806EF14: @ 0x0806EF14 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - mov r1, sp - bl sub_0806EF4C - mov r0, sp - ldrh r1, [r0] - ldrh r2, [r0, #2] - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x3c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806EF48 - ldrb r0, [r4, #0x15] - bl sub_0806F5A4 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] -_0806EF48: - add sp, #4 - pop {r4, pc} - - thumb_func_start sub_0806EF4C -sub_0806EF4C: @ 0x0806EF4C - push {r4, lr} - adds r2, r0, #0 - adds r2, #0x3f - ldrb r2, [r2] - lsls r2, r2, #1 - ldr r3, [r0, #0x54] - adds r3, r3, r2 - ldr r2, _0806EF70 @ =gUnk_03000BF0 - ldrh r0, [r3, #2] - ldrh r4, [r2, #6] - adds r0, r0, r4 - strh r0, [r1] - ldrh r0, [r3, #4] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r1, #2] - pop {r4, pc} - .align 2, 0 -_0806EF70: .4byte gUnk_03000BF0 - - thumb_func_start sub_0806EF74 -sub_0806EF74: @ 0x0806EF74 - push {lr} - adds r3, r0, #0 - adds r3, #0x3f - ldrb r2, [r3] - adds r2, r2, r1 - strb r2, [r3] - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EF88 -sub_0806EF88: @ 0x0806EF88 - push {lr} - adds r1, r0, #0 - adds r1, #0x3f - ldrb r2, [r1] - lsls r2, r2, #1 - ldr r1, [r0, #0x54] - adds r1, r1, r2 - ldr r3, _0806EFA8 @ =gUnk_08114F0C - ldrb r2, [r1] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0806EFA8: .4byte gUnk_08114F0C - - thumb_func_start sub_0806EFAC -sub_0806EFAC: @ 0x0806EFAC - push {lr} - adds r2, r0, #0 - adds r2, #0x3f - movs r1, #0 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - - thumb_func_start sub_0806EFBC -sub_0806EFBC: @ 0x0806EFBC - movs r1, #1 - strb r1, [r0, #0x16] - adds r0, #0x46 - movs r1, #8 - strh r1, [r0] - movs r0, #0 - bx lr - .align 2, 0 - - thumb_func_start sub_0806EFCC -sub_0806EFCC: @ 0x0806EFCC - movs r2, #2 - strb r2, [r0, #0x16] - ldrh r1, [r1, #2] - adds r0, #0x46 - strh r1, [r0] - movs r0, #0 - bx lr - .align 2, 0 - - thumb_func_start sub_0806EFDC -sub_0806EFDC: @ 0x0806EFDC - push {lr} - adds r3, r0, #0 - ldrh r0, [r1] - lsrs r0, r0, #8 - cmp r0, #0 - beq _0806EFF4 - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - b _0806EFFE -_0806EFF4: - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #1 - orrs r0, r1 -_0806EFFE: - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x3f - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r3, #0 - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F014 -sub_0806F014: @ 0x0806F014 - push {lr} - ldrh r1, [r1, #2] - strh r1, [r0, #0x24] - adds r2, r0, #0 - adds r2, #0x3f - ldrb r1, [r2] - adds r1, #2 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F02C -sub_0806F02C: @ 0x0806F02C - push {lr} - ldrh r1, [r1] - lsrs r1, r1, #8 - adds r2, r0, #0 - adds r2, #0x3e - strb r1, [r2] - adds r2, #1 - ldrb r1, [r2] - adds r1, #1 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F048 -sub_0806F048: @ 0x0806F048 - movs r1, #3 - strb r1, [r0, #0x16] - movs r0, #0 - bx lr - - thumb_func_start sub_0806F050 -sub_0806F050: @ 0x0806F050 - push {lr} - adds r1, #2 - str r1, [r0, #0x54] - adds r2, r0, #0 - adds r2, #0x3f - movs r1, #0 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - - thumb_func_start sub_0806F064 -sub_0806F064: @ 0x0806F064 - movs r2, #0 - strb r2, [r0, #0x16] - adds r0, #0x3f - ldrb r2, [r0] - adds r2, #1 - strb r2, [r0] - ldrh r0, [r1] - lsrs r0, r0, #8 - bx lr - .align 2, 0 - - thumb_func_start sub_0806F078 -sub_0806F078: @ 0x0806F078 - push {lr} - adds r2, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _0806F0A0 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _0806F096 - adds r0, r2, #0 - bl sub_080042AC - b _0806F09C -_0806F096: - adds r0, r2, #0 - bl sub_08004260 -_0806F09C: - movs r0, #1 - b _0806F0A2 -_0806F0A0: - movs r0, #0 -_0806F0A2: - pop {pc} - - thumb_func_start sub_0806F0A4 -sub_0806F0A4: @ 0x0806F0A4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r7, _0806F114 @ =gUnk_03003DA8 - ldr r5, [r7, #4] - movs r0, #0 - cmp r5, r7 - beq _0806F0BA -_0806F0B2: - adds r0, #1 - ldr r5, [r5, #4] - cmp r5, r7 - bne _0806F0B2 -_0806F0BA: - cmp r0, #1 - bls _0806F10E - ldr r5, [r7, #4] - cmp r5, r7 - beq _0806F10E - movs r2, #1 -_0806F0C6: - ldrb r1, [r5, #0x10] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F108 - ldrb r1, [r5, #0x17] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F108 - ldr r4, [r5, #4] - cmp r4, r7 - beq _0806F108 - movs r6, #1 -_0806F0E2: - ldrb r1, [r4, #0x10] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F102 - ldrb r1, [r4, #0x17] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F102 - adds r0, r5, #0 - adds r1, r4, #0 - str r2, [sp] - bl sub_08004484 - ldr r2, [sp] -_0806F102: - ldr r4, [r4, #4] - cmp r4, r7 - bne _0806F0E2 -_0806F108: - ldr r5, [r5, #4] - cmp r5, r7 - bne _0806F0C6 -_0806F10E: - add sp, #4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806F114: .4byte gUnk_03003DA8 - - thumb_func_start sub_0806F118 -sub_0806F118: @ 0x0806F118 - push {r4, lr} - adds r4, r0, #0 - bl sub_08002632 - ldr r1, _0806F140 @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r0, #2] - ldrh r3, [r0, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0806F144 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - pop {r4, pc} - .align 2, 0 -_0806F140: .4byte gUnk_08001A7C -_0806F144: .4byte gUnk_03003F80 - - thumb_func_start sub_0806F148 -sub_0806F148: @ 0x0806F148 - push {r4, lr} - bl sub_0801E00C - movs r4, #1 - rsbs r4, r4, #0 - ldr r0, _0806F164 @ =gUnk_02022740 - ldrb r0, [r0] - cmp r0, #1 - beq _0806F172 - cmp r0, #2 - beq _0806F168 - movs r4, #0 - b _0806F17E - .align 2, 0 -_0806F164: .4byte gUnk_02022740 -_0806F168: - ldr r0, _0806F184 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - movs r4, #1 -_0806F172: - bl sub_0807919C - ldr r0, _0806F184 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] -_0806F17E: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0806F184: .4byte gUnk_03003F80 - - thumb_func_start sub_0806F188 -sub_0806F188: @ 0x0806F188 - push {lr} - bl sub_08002632 - adds r1, r0, #0 - cmp r1, #0 - beq _0806F1A0 - ldr r0, _0806F1A4 @ =gUnk_02002A40 - ldr r2, _0806F1A8 @ =0x000001C1 - adds r0, r0, r2 - adds r0, r1, r0 - movs r1, #0xf3 - strb r1, [r0] -_0806F1A0: - pop {pc} - .align 2, 0 -_0806F1A4: .4byte gUnk_02002A40 -_0806F1A8: .4byte 0x000001C1 - - thumb_func_start sub_0806F1AC -sub_0806F1AC: @ 0x0806F1AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r6, r1, #0 - ldrh r1, [r6, #2] - asrs r7, r1, #4 - movs r0, #1 - ands r7, r0 - movs r0, #0xf - ands r1, r0 - cmp r1, #6 - bls _0806F1C8 - b _0806F332 -_0806F1C8: - lsls r0, r1, #2 - ldr r1, _0806F1D4 @ =_0806F1D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806F1D4: .4byte _0806F1D8 -_0806F1D8: @ jump table - .4byte _0806F332 @ case 0 - .4byte _0806F342 @ case 1 - .4byte _0806F1F4 @ case 2 - .4byte _0806F24E @ case 3 - .4byte _0806F2BA @ case 4 - .4byte _0806F324 @ case 5 - .4byte _0806F336 @ case 6 -_0806F1F4: - ldr r4, [r6] - asrs r1, r4, #0xc - movs r0, #0xf - ands r1, r0 - ldr r0, _0806F210 @ =0x00000FFF - ands r4, r0 - movs r5, #0 - cmp r1, #1 - beq _0806F22A - cmp r1, #1 - bgt _0806F214 - cmp r1, #0 - beq _0806F21A - b _0806F248 - .align 2, 0 -_0806F210: .4byte 0x00000FFF -_0806F214: - cmp r1, #2 - beq _0806F23A - b _0806F248 -_0806F21A: - adds r0, r4, #0 - bl sub_0807CC3C - adds r5, r0, #0 -_0806F222: - adds r0, r4, #0 - bl sub_0807CD10 - b _0806F248 -_0806F22A: - adds r0, r4, #0 - bl sub_0807CBD0 - adds r5, r0, #0 -_0806F232: - adds r0, r4, #0 - bl sub_0807CCB4 - b _0806F248 -_0806F23A: - adds r0, r4, #0 - bl GetProgressFlag - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_0807CD04 -_0806F248: - cmp r5, #0 - beq _0806F342 - b _0806F34C -_0806F24E: - ldr r4, [r6] - asrs r1, r4, #0xc - movs r0, #0xf - ands r1, r0 - ldr r0, _0806F26C @ =0x00000FFF - ands r4, r0 - movs r5, #0 - cmp r1, #1 - beq _0806F28A - cmp r1, #1 - bgt _0806F270 - cmp r1, #0 - beq _0806F276 - b _0806F248 - .align 2, 0 -_0806F26C: .4byte 0x00000FFF -_0806F270: - cmp r1, #2 - beq _0806F29E - b _0806F248 -_0806F276: - adds r0, r4, #0 - bl sub_0807CC3C - adds r5, r0, #0 - cmp r5, #0 - beq _0806F222 - adds r0, r4, #0 - bl sub_0807CD8C - b _0806F248 -_0806F28A: - adds r0, r4, #0 - bl sub_0807CBD0 - adds r5, r0, #0 - cmp r5, #0 - beq _0806F232 - adds r0, r4, #0 - bl sub_0807CD34 - b _0806F248 -_0806F29E: - adds r0, r4, #0 - bl GetProgressFlag - adds r5, r0, #0 - cmp r5, #0 - bne _0806F2B2 - adds r0, r4, #0 - bl sub_0807CD04 - b _0806F248 -_0806F2B2: - adds r0, r4, #0 - bl sub_0807CD80 - b _0806F248 -_0806F2BA: - ldr r4, [r6] - asrs r1, r4, #0xc - movs r0, #0xf - ands r1, r0 - ldr r0, _0806F2D8 @ =0x00000FFF - ands r4, r0 - movs r5, #0 - cmp r1, #4 - bhi _0806F248 - lsls r0, r1, #2 - ldr r1, _0806F2DC @ =_0806F2E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806F2D8: .4byte 0x00000FFF -_0806F2DC: .4byte _0806F2E0 -_0806F2E0: @ jump table - .4byte _0806F2F4 @ case 0 - .4byte _0806F2FC @ case 1 - .4byte _0806F304 @ case 2 - .4byte _0806F30C @ case 3 - .4byte _0806F314 @ case 4 -_0806F2F4: - adds r0, r4, #0 - bl sub_0807CC3C - b _0806F320 -_0806F2FC: - adds r0, r4, #0 - bl sub_0807CBD0 - b _0806F320 -_0806F304: - adds r0, r4, #0 - bl GetProgressFlag - b _0806F320 -_0806F30C: - adds r0, r4, #0 - bl sub_0801E7F4 - b _0806F320 -_0806F314: - adds r0, r4, #0 - bl GetInventoryValue - cmp r0, #0 - beq _0806F320 - movs r0, #1 -_0806F320: - adds r5, r0, #0 - b _0806F248 -_0806F324: - ldr r1, [r6, #4] - cmp r1, #0 - beq _0806F332 - mov r0, r8 - bl _call_via_r1 - b _0806F35E -_0806F332: - movs r0, #0 - b _0806F34E -_0806F336: - ldr r0, _0806F348 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806F34C -_0806F342: - ldrh r0, [r6, #6] - b _0806F34E - .align 2, 0 -_0806F348: .4byte gUnk_03003F80 -_0806F34C: - ldrh r0, [r6, #4] -_0806F34E: - cmp r7, #0 - beq _0806F35A - mov r1, r8 - bl sub_08056398 - b _0806F35E -_0806F35A: - bl sub_08056378 -_0806F35E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0806F364 -sub_0806F364: @ 0x0806F364 - push {lr} - ldr r2, _0806F384 @ =gUnk_02033A90 - ldrb r0, [r2, #8] - movs r1, #0x80 - eors r0, r1 - strb r0, [r2, #8] - ldrb r1, [r2, #8] - adds r0, r1, #7 - asrs r0, r0, #3 - ldr r3, _0806F388 @ =0x00000868 - adds r1, r2, r3 - adds r0, r0, r1 - movs r1, #0x10 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_0806F384: .4byte gUnk_02033A90 -_0806F388: .4byte 0x00000868 - - thumb_func_start sub_0806F38C -sub_0806F38C: @ 0x0806F38C - ldr r0, _0806F398 @ =gUnk_02033A90 - ldrb r1, [r0, #8] - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #8] - bx lr - .align 2, 0 -_0806F398: .4byte gUnk_02033A90 - - thumb_func_start sub_0806F39C -sub_0806F39C: @ 0x0806F39C - push {r4, lr} - adds r3, r0, #0 - ldr r2, _0806F3B8 @ =gLinkEntity - ldrb r1, [r2, #0x14] - movs r0, #2 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _0806F3BC - movs r0, #0x2e - ldrsh r1, [r3, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - b _0806F3C4 - .align 2, 0 -_0806F3B8: .4byte gLinkEntity -_0806F3BC: - movs r0, #0x32 - ldrsh r1, [r3, r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] -_0806F3C4: - subs r1, r1, r0 - cmp r1, #0 - bge _0806F3CC - rsbs r1, r1, #0 -_0806F3CC: - cmp r1, #0x40 - bgt _0806F3D4 - movs r0, #0 - b _0806F3E2 -_0806F3D4: - movs r0, #0x24 - ldrsh r1, [r3, r0] - ldrb r2, [r3, #0x15] - adds r0, r4, #0 - bl sub_080027EA - movs r0, #1 -_0806F3E2: - pop {r4, pc} - - thumb_func_start sub_0806F3E4 -sub_0806F3E4: @ 0x0806F3E4 - push {r4, r5, r6, lr} - sub sp, #0x88 - adds r5, r0, #0 - ldr r2, _0806F408 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1c] - movs r0, #0x7f - ands r0, r1 - cmp r0, #1 - bne _0806F4E0 - ldrb r0, [r2, #0x1d] - cmp r0, #2 - beq _0806F420 - cmp r0, #2 - bgt _0806F40C - cmp r0, #1 - beq _0806F416 - b _0806F410 - .align 2, 0 -_0806F408: .4byte gUnk_03003F80 -_0806F40C: - cmp r0, #3 - beq _0806F42A -_0806F410: - adds r3, r5, #0 - adds r3, #0x46 - b _0806F436 -_0806F416: - adds r1, r5, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #0x40 - b _0806F432 -_0806F420: - adds r1, r5, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #0x80 - b _0806F432 -_0806F42A: - adds r1, r5, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #0xc0 -_0806F432: - strh r0, [r1] - adds r3, r1, #0 -_0806F436: - adds r2, r3, #0 - ldrh r0, [r2] - movs r1, #0xa0 - lsls r1, r1, #3 - cmp r0, r1 - bls _0806F444 - strh r1, [r2] -_0806F444: - ldr r6, _0806F4BC @ =gLinkEntity - ldrb r0, [r6, #0x14] - movs r1, #0xe - ands r1, r0 - ldr r0, _0806F4C0 @ =gUnk_08126EE4 - adds r1, r1, r0 - mov r2, sp - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r4, [r6, #0x2e] - adds r0, r0, r4 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrh r4, [r3] - adds r0, r5, #0 - mov r1, sp - bl sub_080045C4 - adds r2, r0, #0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806F5BC - mov r0, sp - adds r1, r5, #0 - movs r2, #4 - movs r3, #4 - bl sub_0800419C - cmp r0, #0 - beq _0806F4E0 - ldrb r0, [r5, #0x1c] - movs r1, #0xf - ands r1, r0 - cmp r1, #2 - bne _0806F4C8 - movs r0, #3 - strb r0, [r5, #0xd] - str r5, [r6, #0x70] - ldr r1, _0806F4C4 @ =gUnk_03003F80 - movs r0, #7 - strb r0, [r1, #0x1c] - movs r0, #0x11 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08077CB8 - cmp r0, #0 - beq _0806F4B4 - str r5, [r0, #0x54] - str r0, [r5, #0x50] -_0806F4B4: - movs r0, #0xed - bl sub_080A3268 - b _0806F4D8 - .align 2, 0 -_0806F4BC: .4byte gLinkEntity -_0806F4C0: .4byte gUnk_08126EE4 -_0806F4C4: .4byte gUnk_03003F80 -_0806F4C8: - cmp r1, #1 - bne _0806F4D8 - ldr r0, _0806F4DC @ =gUnk_03003F80 - ldr r0, [r0, #0x2c] - strb r1, [r0, #0xa] - movs r0, #0xef - bl sub_080A3268 -_0806F4D8: - movs r0, #1 - b _0806F4E2 - .align 2, 0 -_0806F4DC: .4byte gUnk_03003F80 -_0806F4E0: - movs r0, #0 -_0806F4E2: - add sp, #0x88 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F4E8 -sub_0806F4E8: @ 0x0806F4E8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0x1d] - movs r2, #3 - ands r2, r0 - cmp r2, #1 - beq _0806F516 - cmp r2, #1 - bgt _0806F500 - cmp r2, #0 - beq _0806F510 - b _0806F51C -_0806F500: - cmp r2, #2 - beq _0806F50A - cmp r2, #3 - beq _0806F516 - b _0806F51C -_0806F50A: - adds r1, #0x62 - movs r0, #0xfe - b _0806F51A -_0806F510: - adds r1, #0x62 - movs r0, #2 - b _0806F51A -_0806F516: - adds r1, #0x62 - movs r0, #0 -_0806F51A: - strb r0, [r1] -_0806F51C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F520 -sub_0806F520: @ 0x0806F520 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x93 - beq _0806F544 - adds r3, r2, #0 - adds r3, #0x3a - ldrb r1, [r3] - movs r0, #0xfb - ands r0, r1 - movs r1, #0 - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x63 - strb r1, [r0] - movs r0, #0 - b _0806F546 -_0806F544: - movs r0, #1 -_0806F546: - pop {pc} - - thumb_func_start sub_0806F548 -sub_0806F548: @ 0x0806F548 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_080041A0 - cmp r0, #0 - bne _0806F55A - movs r0, #0 - b _0806F562 -_0806F55A: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806F58C -_0806F562: - pop {r4, r5, pc} - - thumb_func_start sub_0806F564 -sub_0806F564: @ 0x0806F564 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r5, #0 - bl sub_080045D4 - bl sub_0806F5A4 - movs r2, #0 - ldrb r1, [r4, #0x14] - cmp r1, r0 - bne _0806F588 - movs r2, #1 -_0806F588: - adds r0, r2, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0806F58C -sub_0806F58C: @ 0x0806F58C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FCA0 - movs r2, #0 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - cmp r1, r0 - bne _0806F5A0 - movs r2, #1 -_0806F5A0: - adds r0, r2, #0 - pop {r4, pc} - - thumb_func_start sub_0806F5A4 -sub_0806F5A4: @ 0x0806F5A4 - ldr r1, _0806F5AC @ =gUnk_08114F38 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0806F5AC: .4byte gUnk_08114F38 - - thumb_func_start sub_0806F5B0 -sub_0806F5B0: @ 0x0806F5B0 - ldr r1, _0806F5B8 @ =gUnk_08114F58 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0806F5B8: .4byte gUnk_08114F58 - - thumb_func_start sub_0806F5BC -sub_0806F5BC: @ 0x0806F5BC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _0806F620 - ldr r0, _0806F628 @ =gUnk_080C9160 - mov r8, r0 - lsls r4, r2, #3 - lsls r0, r2, #4 - add r0, r8 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r5, r1, #0x10 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r6, #0x80 - lsls r6, r6, #1 - adds r1, r6, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r7, #0x2c] - adds r1, r1, r0 - str r1, [r7, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, r8 - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r6, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r7, #0x30] - subs r1, r1, r0 - str r1, [r7, #0x30] -_0806F620: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806F628: .4byte gUnk_080C9160 - - thumb_func_start sub_0806F62C -sub_0806F62C: @ 0x0806F62C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - ldr r0, _0806F698 @ =gUnk_080C9160 - mov sb, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - mov r8, r1 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x2c] - adds r1, r1, r0 - str r1, [r6, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, sb - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, r8 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x30] - subs r1, r1, r0 - str r1, [r6, #0x30] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806F698: .4byte gUnk_080C9160 - - thumb_func_start sub_0806F69C -sub_0806F69C: @ 0x0806F69C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r1, [r6, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0806F6FE - ldr r5, _0806F700 @ =gUnk_080C9160 - ldrb r0, [r6, #0x15] - lsls r0, r0, #4 - adds r0, r0, r5 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0x24 - ldrsh r1, [r6, r2] - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x2c] - adds r1, r1, r0 - str r1, [r6, #0x2c] - ldrb r0, [r6, #0x15] - lsls r0, r0, #4 - adds r0, #0x80 - adds r0, r0, r5 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0x24 - ldrsh r1, [r6, r2] - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x30] - subs r1, r1, r0 - str r1, [r6, #0x30] -_0806F6FE: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806F700: .4byte gUnk_080C9160 - - thumb_func_start sub_0806F704 -sub_0806F704: @ 0x0806F704 - push {r4, r5, r6, lr} - lsls r3, r1, #4 - movs r2, #0xfc - lsls r2, r2, #2 - adds r6, r2, #0 - ands r3, r6 - movs r5, #8 - orrs r3, r5 - ldr r4, _0806F72C @ =gUnk_03000BF0 - ldrh r2, [r4, #6] - adds r2, r2, r3 - strh r2, [r0, #0x2e] - lsrs r1, r1, #2 - ands r1, r6 - orrs r1, r5 - ldrh r2, [r4, #8] - adds r2, r2, r1 - strh r2, [r0, #0x32] - pop {r4, r5, r6, pc} - .align 2, 0 -_0806F72C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0806F730 -sub_0806F730: @ 0x0806F730 - push {r4, r5, r6, lr} - movs r6, #0x3f - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r4, [r0, #0x48] - movs r1, #0 - ldrsb r1, [r4, r1] - adds r2, r2, r1 - ldr r3, _0806F764 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r5, r2, r1 - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #1 - ldrsb r2, [r4, r2] - adds r1, r1, r2 - ldrh r2, [r3, #8] - subs r1, r1, r2 - ldrb r0, [r0, #0x14] - cmp r0, #2 - beq _0806F77E - cmp r0, #2 - bgt _0806F768 - cmp r0, #0 - beq _0806F772 - b _0806F788 - .align 2, 0 -_0806F764: .4byte gUnk_03000BF0 -_0806F768: - cmp r0, #4 - beq _0806F778 - cmp r0, #6 - beq _0806F784 - b _0806F788 -_0806F772: - ldrb r0, [r4, #5] - subs r1, r1, r0 - b _0806F788 -_0806F778: - ldrb r0, [r4, #5] - adds r1, r1, r0 - b _0806F788 -_0806F77E: - ldrb r0, [r4, #2] - adds r5, r5, r0 - b _0806F788 -_0806F784: - ldrb r0, [r4, #2] - subs r5, r5, r0 -_0806F788: - lsrs r0, r5, #4 - ands r0, r6 - lsrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - adds r0, r0, r1 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F798 -sub_0806F798: @ 0x0806F798 - push {r4, r5, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r4, [r2, #0x48] - movs r1, #0 - ldrsb r1, [r4, r1] - adds r0, r0, r1 - ldr r3, _0806F7CC @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - movs r5, #0x32 - ldrsh r1, [r2, r5] - movs r2, #1 - ldrsb r2, [r4, r2] - adds r1, r1, r2 - ldrh r2, [r3, #8] - subs r1, r1, r2 - movs r2, #0x3f - lsrs r0, r0, #4 - ands r0, r2 - lsrs r1, r1, #4 - ands r1, r2 - lsls r1, r1, #6 - adds r0, r0, r1 - pop {r4, r5, pc} - .align 2, 0 -_0806F7CC: .4byte gUnk_03000BF0 - - thumb_func_start sub_0806F7D0 -sub_0806F7D0: @ 0x0806F7D0 - push {r4, lr} - ldr r4, _0806F7E4 @ =gUnk_02025EB0 - bl sub_0806F730 - ldr r1, _0806F7E8 @ =0x00002004 - adds r4, r4, r1 - adds r0, r0, r4 - ldrb r0, [r0] - pop {r4, pc} - .align 2, 0 -_0806F7E4: .4byte gUnk_02025EB0 -_0806F7E8: .4byte 0x00002004 - - thumb_func_start sub_0806F7EC -sub_0806F7EC: @ 0x0806F7EC - push {r4, lr} - ldr r4, _0806F800 @ =gUnk_02025EB0 - bl sub_0806F730 - lsls r0, r0, #1 - adds r4, #4 - adds r0, r0, r4 - ldrh r0, [r0] - pop {r4, pc} - .align 2, 0 -_0806F800: .4byte gUnk_02025EB0 - - thumb_func_start sub_0806F804 -sub_0806F804: @ 0x0806F804 - lsrs r0, r0, #4 - movs r2, #0x3f - ands r0, r2 - movs r2, #0xfc - lsls r2, r2, #2 - ands r2, r1 - lsls r2, r2, #2 - adds r0, r0, r2 - ldr r1, _0806F820 @ =gUnk_02025EB0 - lsls r0, r0, #1 - adds r1, #4 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0806F820: .4byte gUnk_02025EB0 - - thumb_func_start sub_0806F824 -sub_0806F824: @ 0x0806F824 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r2, #0 - adds r5, r3, #0 - movs r2, #0x2e - ldrsh r6, [r0, r2] - movs r2, #0x32 - ldrsh r3, [r0, r2] - mov r8, r3 - movs r3, #0x2e - ldrsh r2, [r1, r3] - adds r2, r2, r4 - movs r0, #0x32 - ldrsh r3, [r1, r0] - adds r3, r3, r5 - adds r0, r6, #0 - mov r1, r8 - bl sub_080045D4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F854 -sub_0806F854: @ 0x0806F854 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r6, r2, #0 - ldr r0, [r4, #0x34] - cmp r0, #0 - beq _0806F8D6 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806F8D6 - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r0, r0, r3 - ldr r2, _0806F8BC @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r5, #0x3f - ands r0, r5 - movs r3, #0x32 - ldrsh r1, [r4, r3] - adds r1, r1, r6 - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #2 - movs r2, #8 - bl sub_080002F0 - cmp r0, #0 - beq _0806F8C0 - ldrb r1, [r4, #0x19] - adds r0, r5, #0 - ands r0, r1 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r1, [r4, #0x1b] - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1b] - movs r0, #1 - b _0806F8D8 - .align 2, 0 -_0806F8BC: .4byte gUnk_03000BF0 -_0806F8C0: - ldrb r1, [r4, #0x19] - adds r0, r5, #0 - ands r0, r1 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r1, [r4, #0x1b] - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1b] -_0806F8D6: - movs r0, #0 -_0806F8D8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F8DC -sub_0806F8DC: @ 0x0806F8DC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806F942 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #4 - movs r2, #2 - bl sub_080002A4 - cmp r0, #0 - beq _0806F91C - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - movs r0, #1 - b _0806F944 -_0806F91C: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #4 - ldrb r2, [r5] - bl sub_080002A4 - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] -_0806F942: - movs r0, #0 -_0806F944: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806F948 -sub_0806F948: @ 0x0806F948 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806F974 @ =gUnk_03003F80 - ldrb r0, [r1, #0xd] - cmp r0, #0xff - beq _0806F994 - ldrb r0, [r1, #0xd] - lsrs r3, r0, #2 - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _0806F978 - ldrb r2, [r4, #0x14] - subs r0, r2, #1 - subs r0, r3, r0 - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _0806F978 - adds r0, r2, #0 - b _0806F996 - .align 2, 0 -_0806F974: .4byte gUnk_03003F80 -_0806F978: - movs r2, #0 - cmp r3, #4 - bls _0806F980 - movs r2, #1 -_0806F980: - lsls r2, r2, #6 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #6 - ands r3, r0 - strb r3, [r4, #0x14] -_0806F994: - ldrb r0, [r4, #0x14] -_0806F996: - pop {r4, pc} - - thumb_func_start sub_0806F998 -sub_0806F998: @ 0x0806F998 - push {r4, lr} - adds r2, r0, #0 - ldrb r4, [r2, #0x14] - ldrb r1, [r2, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0806F9E6 - movs r0, #0x1c - ands r0, r1 - lsrs r3, r0, #2 - movs r1, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F9C4 - subs r0, r3, r4 - adds r0, #1 - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _0806F9E6 -_0806F9C4: - ldrb r0, [r2, #0x15] - lsrs r0, r0, #2 - movs r1, #0x7e - ands r0, r1 - strb r0, [r2, #0x14] - adds r4, r0, #0 - cmp r4, #4 - bhi _0806F9DE - ldrb r1, [r2, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0806F9E4 -_0806F9DE: - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0806F9E4: - strb r0, [r2, #0x18] -_0806F9E6: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 - diff --git a/asm/code_0806ED78.s b/asm/code_0806ED78.s new file mode 100644 index 00000000..f8d36403 --- /dev/null +++ b/asm/code_0806ED78.s @@ -0,0 +1,1749 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0806ED78 +sub_0806ED78: @ 0x0806ED78 + push {r4, lr} + bl sub_0800445C + adds r4, r0, #0 + cmp r4, #0 + beq _0806ED94 + ldr r0, _0806ED98 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806ED94 + bl sub_08077B20 +_0806ED94: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0806ED98: .4byte gUnk_03003F80 + + thumb_func_start sub_0806ED9C +sub_0806ED9C: @ 0x0806ED9C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r3, r2, #0 + movs r6, #1 + rsbs r6, r6, #0 + ldr r1, _0806EDC0 @ =gLinkEntity + adds r2, r4, #0 + bl sub_080041A0 + cmp r0, #0 + beq _0806EDBC + adds r0, r5, #0 + bl sub_0806EDC4 + adds r6, r0, #0 +_0806EDBC: + adds r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806EDC0: .4byte gLinkEntity + + thumb_func_start sub_0806EDC4 +sub_0806EDC4: @ 0x0806EDC4 + push {lr} + ldr r1, _0806EDD4 @ =gLinkEntity + bl sub_080045C4 + bl sub_0806F5A4 + pop {pc} + .align 2, 0 +_0806EDD4: .4byte gLinkEntity + + thumb_func_start sub_0806EDD8 +sub_0806EDD8: @ 0x0806EDD8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r3, r2, #0 + movs r7, #1 + rsbs r7, r7, #0 + ldr r6, _0806EE00 @ =gLinkEntity + adds r1, r6, #0 + adds r2, r4, #0 + bl sub_080041A0 + cmp r0, #0 + beq _0806EDFC + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080045C4 + adds r7, r0, #0 +_0806EDFC: + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806EE00: .4byte gLinkEntity + + thumb_func_start sub_0806EE04 +sub_0806EE04: @ 0x0806EE04 + adds r3, r0, #0 + str r1, [r3, #0x54] + adds r0, #0x3c + movs r1, #0 + strb r2, [r0] + adds r0, #3 + strb r1, [r0] + adds r2, r3, #0 + adds r2, #0x46 + movs r0, #0 + strh r1, [r2] + strb r0, [r3, #0x16] + bx lr + .align 2, 0 + + thumb_func_start sub_0806EE20 +sub_0806EE20: @ 0x0806EE20 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0806EE4C + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0806EE66 + ldr r1, _0806EE48 @ =gUnk_08114EFC + ldrb r0, [r4, #0x16] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + b _0806EE68 + .align 2, 0 +_0806EE48: .4byte gUnk_08114EFC +_0806EE4C: + adds r1, r4, #0 + adds r1, #0x46 + movs r0, #8 + strh r0, [r1] + ldr r1, _0806EE6C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] +_0806EE66: + movs r0, #0 +_0806EE68: + pop {r4, pc} + .align 2, 0 +_0806EE6C: .4byte gLinkEntity + + thumb_func_start sub_0806EE70 +sub_0806EE70: @ 0x0806EE70 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + bls _0806EE92 + movs r0, #0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_0806EF14 +_0806EE92: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + mov r1, sp + bl sub_0806EF4C + mov r0, sp + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r4, #0 + bl sub_080041DC + adds r1, r0, #0 + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + bge _0806EEB8 + rsbs r0, r0, #0 +_0806EEB8: + lsrs r0, r0, #3 + cmp r0, r1 + bhi _0806EEC2 + movs r0, #0 + b _0806EECA +_0806EEC2: + adds r0, r4, #0 + movs r1, #3 + bl sub_0806EF74 +_0806EECA: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806EED0 +sub_0806EED0: @ 0x0806EED0 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x46 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0806EEE8 + movs r0, #0 + b _0806EEF0 +_0806EEE8: + adds r0, r2, #0 + movs r1, #2 + bl sub_0806EF74 +_0806EEF0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EEF4 +sub_0806EEF4: @ 0x0806EEF4 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806EF08 + movs r0, #0 + b _0806EF10 +_0806EF08: + adds r0, r2, #0 + movs r1, #1 + bl sub_0806EF74 +_0806EF10: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EF14 +sub_0806EF14: @ 0x0806EF14 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + mov r1, sp + bl sub_0806EF4C + mov r0, sp + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x3c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806EF48 + ldrb r0, [r4, #0x15] + bl sub_0806F5A4 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] +_0806EF48: + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_0806EF4C +sub_0806EF4C: @ 0x0806EF4C + push {r4, lr} + adds r2, r0, #0 + adds r2, #0x3f + ldrb r2, [r2] + lsls r2, r2, #1 + ldr r3, [r0, #0x54] + adds r3, r3, r2 + ldr r2, _0806EF70 @ =gRoomControls + ldrh r0, [r3, #2] + ldrh r4, [r2, #6] + adds r0, r0, r4 + strh r0, [r1] + ldrh r0, [r3, #4] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r1, #2] + pop {r4, pc} + .align 2, 0 +_0806EF70: .4byte gRoomControls + + thumb_func_start sub_0806EF74 +sub_0806EF74: @ 0x0806EF74 + push {lr} + adds r3, r0, #0 + adds r3, #0x3f + ldrb r2, [r3] + adds r2, r2, r1 + strb r2, [r3] + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EF88 +sub_0806EF88: @ 0x0806EF88 + push {lr} + adds r1, r0, #0 + adds r1, #0x3f + ldrb r2, [r1] + lsls r2, r2, #1 + ldr r1, [r0, #0x54] + adds r1, r1, r2 + ldr r3, _0806EFA8 @ =gUnk_08114F0C + ldrb r2, [r1] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806EFA8: .4byte gUnk_08114F0C + + thumb_func_start sub_0806EFAC +sub_0806EFAC: @ 0x0806EFAC + push {lr} + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + + thumb_func_start sub_0806EFBC +sub_0806EFBC: @ 0x0806EFBC + movs r1, #1 + strb r1, [r0, #0x16] + adds r0, #0x46 + movs r1, #8 + strh r1, [r0] + movs r0, #0 + bx lr + .align 2, 0 + + thumb_func_start sub_0806EFCC +sub_0806EFCC: @ 0x0806EFCC + movs r2, #2 + strb r2, [r0, #0x16] + ldrh r1, [r1, #2] + adds r0, #0x46 + strh r1, [r0] + movs r0, #0 + bx lr + .align 2, 0 + + thumb_func_start sub_0806EFDC +sub_0806EFDC: @ 0x0806EFDC + push {lr} + adds r3, r0, #0 + ldrh r0, [r1] + lsrs r0, r0, #8 + cmp r0, #0 + beq _0806EFF4 + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + b _0806EFFE +_0806EFF4: + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #1 + orrs r0, r1 +_0806EFFE: + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r3, #0 + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F014 +sub_0806F014: @ 0x0806F014 + push {lr} + ldrh r1, [r1, #2] + strh r1, [r0, #0x24] + adds r2, r0, #0 + adds r2, #0x3f + ldrb r1, [r2] + adds r1, #2 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F02C +sub_0806F02C: @ 0x0806F02C + push {lr} + ldrh r1, [r1] + lsrs r1, r1, #8 + adds r2, r0, #0 + adds r2, #0x3e + strb r1, [r2] + adds r2, #1 + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F048 +sub_0806F048: @ 0x0806F048 + movs r1, #3 + strb r1, [r0, #0x16] + movs r0, #0 + bx lr + + thumb_func_start sub_0806F050 +sub_0806F050: @ 0x0806F050 + push {lr} + adds r1, #2 + str r1, [r0, #0x54] + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + + thumb_func_start sub_0806F064 +sub_0806F064: @ 0x0806F064 + movs r2, #0 + strb r2, [r0, #0x16] + adds r0, #0x3f + ldrb r2, [r0] + adds r2, #1 + strb r2, [r0] + ldrh r0, [r1] + lsrs r0, r0, #8 + bx lr + .align 2, 0 + + thumb_func_start sub_0806F078 +sub_0806F078: @ 0x0806F078 + push {lr} + adds r2, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _0806F0A0 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _0806F096 + adds r0, r2, #0 + bl sub_080042AC + b _0806F09C +_0806F096: + adds r0, r2, #0 + bl sub_08004260 +_0806F09C: + movs r0, #1 + b _0806F0A2 +_0806F0A0: + movs r0, #0 +_0806F0A2: + pop {pc} + + thumb_func_start sub_0806F0A4 +sub_0806F0A4: @ 0x0806F0A4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r7, _0806F114 @ =gUnk_03003DA8 + ldr r5, [r7, #4] + movs r0, #0 + cmp r5, r7 + beq _0806F0BA +_0806F0B2: + adds r0, #1 + ldr r5, [r5, #4] + cmp r5, r7 + bne _0806F0B2 +_0806F0BA: + cmp r0, #1 + bls _0806F10E + ldr r5, [r7, #4] + cmp r5, r7 + beq _0806F10E + movs r2, #1 +_0806F0C6: + ldrb r1, [r5, #0x10] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F108 + ldrb r1, [r5, #0x17] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F108 + ldr r4, [r5, #4] + cmp r4, r7 + beq _0806F108 + movs r6, #1 +_0806F0E2: + ldrb r1, [r4, #0x10] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F102 + ldrb r1, [r4, #0x17] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F102 + adds r0, r5, #0 + adds r1, r4, #0 + str r2, [sp] + bl sub_08004484 + ldr r2, [sp] +_0806F102: + ldr r4, [r4, #4] + cmp r4, r7 + bne _0806F0E2 +_0806F108: + ldr r5, [r5, #4] + cmp r5, r7 + bne _0806F0C6 +_0806F10E: + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806F114: .4byte gUnk_03003DA8 + + thumb_func_start sub_0806F118 +sub_0806F118: @ 0x0806F118 + push {r4, lr} + adds r4, r0, #0 + bl sub_08002632 + ldr r1, _0806F140 @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r0, #2] + ldrh r3, [r0, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806F144 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + pop {r4, pc} + .align 2, 0 +_0806F140: .4byte gUnk_08001A7C +_0806F144: .4byte gUnk_03003F80 + + thumb_func_start sub_0806F148 +sub_0806F148: @ 0x0806F148 + push {r4, lr} + bl sub_0801E00C + movs r4, #1 + rsbs r4, r4, #0 + ldr r0, _0806F164 @ =gUnk_02022740 + ldrb r0, [r0] + cmp r0, #1 + beq _0806F172 + cmp r0, #2 + beq _0806F168 + movs r4, #0 + b _0806F17E + .align 2, 0 +_0806F164: .4byte gUnk_02022740 +_0806F168: + ldr r0, _0806F184 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + movs r4, #1 +_0806F172: + bl sub_0807919C + ldr r0, _0806F184 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] +_0806F17E: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0806F184: .4byte gUnk_03003F80 + + thumb_func_start sub_0806F188 +sub_0806F188: @ 0x0806F188 + push {lr} + bl sub_08002632 + adds r1, r0, #0 + cmp r1, #0 + beq _0806F1A0 + ldr r0, _0806F1A4 @ =gUnk_02002A40 + ldr r2, _0806F1A8 @ =0x000001C1 + adds r0, r0, r2 + adds r0, r1, r0 + movs r1, #0xf3 + strb r1, [r0] +_0806F1A0: + pop {pc} + .align 2, 0 +_0806F1A4: .4byte gUnk_02002A40 +_0806F1A8: .4byte 0x000001C1 + + thumb_func_start sub_0806F1AC +sub_0806F1AC: @ 0x0806F1AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r6, r1, #0 + ldrh r1, [r6, #2] + asrs r7, r1, #4 + movs r0, #1 + ands r7, r0 + movs r0, #0xf + ands r1, r0 + cmp r1, #6 + bls _0806F1C8 + b _0806F332 +_0806F1C8: + lsls r0, r1, #2 + ldr r1, _0806F1D4 @ =_0806F1D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806F1D4: .4byte _0806F1D8 +_0806F1D8: @ jump table + .4byte _0806F332 @ case 0 + .4byte _0806F342 @ case 1 + .4byte _0806F1F4 @ case 2 + .4byte _0806F24E @ case 3 + .4byte _0806F2BA @ case 4 + .4byte _0806F324 @ case 5 + .4byte _0806F336 @ case 6 +_0806F1F4: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F210 @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #1 + beq _0806F22A + cmp r1, #1 + bgt _0806F214 + cmp r1, #0 + beq _0806F21A + b _0806F248 + .align 2, 0 +_0806F210: .4byte 0x00000FFF +_0806F214: + cmp r1, #2 + beq _0806F23A + b _0806F248 +_0806F21A: + adds r0, r4, #0 + bl sub_0807CC3C + adds r5, r0, #0 +_0806F222: + adds r0, r4, #0 + bl sub_0807CD10 + b _0806F248 +_0806F22A: + adds r0, r4, #0 + bl sub_0807CBD0 + adds r5, r0, #0 +_0806F232: + adds r0, r4, #0 + bl sub_0807CCB4 + b _0806F248 +_0806F23A: + adds r0, r4, #0 + bl GetProgressFlag + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_0807CD04 +_0806F248: + cmp r5, #0 + beq _0806F342 + b _0806F34C +_0806F24E: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F26C @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #1 + beq _0806F28A + cmp r1, #1 + bgt _0806F270 + cmp r1, #0 + beq _0806F276 + b _0806F248 + .align 2, 0 +_0806F26C: .4byte 0x00000FFF +_0806F270: + cmp r1, #2 + beq _0806F29E + b _0806F248 +_0806F276: + adds r0, r4, #0 + bl sub_0807CC3C + adds r5, r0, #0 + cmp r5, #0 + beq _0806F222 + adds r0, r4, #0 + bl sub_0807CD8C + b _0806F248 +_0806F28A: + adds r0, r4, #0 + bl sub_0807CBD0 + adds r5, r0, #0 + cmp r5, #0 + beq _0806F232 + adds r0, r4, #0 + bl sub_0807CD34 + b _0806F248 +_0806F29E: + adds r0, r4, #0 + bl GetProgressFlag + adds r5, r0, #0 + cmp r5, #0 + bne _0806F2B2 + adds r0, r4, #0 + bl sub_0807CD04 + b _0806F248 +_0806F2B2: + adds r0, r4, #0 + bl sub_0807CD80 + b _0806F248 +_0806F2BA: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F2D8 @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #4 + bhi _0806F248 + lsls r0, r1, #2 + ldr r1, _0806F2DC @ =_0806F2E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806F2D8: .4byte 0x00000FFF +_0806F2DC: .4byte _0806F2E0 +_0806F2E0: @ jump table + .4byte _0806F2F4 @ case 0 + .4byte _0806F2FC @ case 1 + .4byte _0806F304 @ case 2 + .4byte _0806F30C @ case 3 + .4byte _0806F314 @ case 4 +_0806F2F4: + adds r0, r4, #0 + bl sub_0807CC3C + b _0806F320 +_0806F2FC: + adds r0, r4, #0 + bl sub_0807CBD0 + b _0806F320 +_0806F304: + adds r0, r4, #0 + bl GetProgressFlag + b _0806F320 +_0806F30C: + adds r0, r4, #0 + bl sub_0801E7F4 + b _0806F320 +_0806F314: + adds r0, r4, #0 + bl GetInventoryValue + cmp r0, #0 + beq _0806F320 + movs r0, #1 +_0806F320: + adds r5, r0, #0 + b _0806F248 +_0806F324: + ldr r1, [r6, #4] + cmp r1, #0 + beq _0806F332 + mov r0, r8 + bl _call_via_r1 + b _0806F35E +_0806F332: + movs r0, #0 + b _0806F34E +_0806F336: + ldr r0, _0806F348 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806F34C +_0806F342: + ldrh r0, [r6, #6] + b _0806F34E + .align 2, 0 +_0806F348: .4byte gUnk_03003F80 +_0806F34C: + ldrh r0, [r6, #4] +_0806F34E: + cmp r7, #0 + beq _0806F35A + mov r1, r8 + bl TextboxNoOverlap + b _0806F35E +_0806F35A: + bl TextboxTryNoOverlap +_0806F35E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806F364 +sub_0806F364: @ 0x0806F364 + push {lr} + ldr r2, _0806F384 @ =gUnk_02033A90 + ldrb r0, [r2, #8] + movs r1, #0x80 + eors r0, r1 + strb r0, [r2, #8] + ldrb r1, [r2, #8] + adds r0, r1, #7 + asrs r0, r0, #3 + ldr r3, _0806F388 @ =0x00000868 + adds r1, r2, r3 + adds r0, r0, r1 + movs r1, #0x10 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_0806F384: .4byte gUnk_02033A90 +_0806F388: .4byte 0x00000868 + + thumb_func_start sub_0806F38C +sub_0806F38C: @ 0x0806F38C + ldr r0, _0806F398 @ =gUnk_02033A90 + ldrb r1, [r0, #8] + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #8] + bx lr + .align 2, 0 +_0806F398: .4byte gUnk_02033A90 + + thumb_func_start sub_0806F39C +sub_0806F39C: @ 0x0806F39C + push {r4, lr} + adds r3, r0, #0 + ldr r2, _0806F3B8 @ =gLinkEntity + ldrb r1, [r2, #0x14] + movs r0, #2 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0806F3BC + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + b _0806F3C4 + .align 2, 0 +_0806F3B8: .4byte gLinkEntity +_0806F3BC: + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] +_0806F3C4: + subs r1, r1, r0 + cmp r1, #0 + bge _0806F3CC + rsbs r1, r1, #0 +_0806F3CC: + cmp r1, #0x40 + bgt _0806F3D4 + movs r0, #0 + b _0806F3E2 +_0806F3D4: + movs r0, #0x24 + ldrsh r1, [r3, r0] + ldrb r2, [r3, #0x15] + adds r0, r4, #0 + bl sub_080027EA + movs r0, #1 +_0806F3E2: + pop {r4, pc} + + thumb_func_start sub_0806F3E4 +sub_0806F3E4: @ 0x0806F3E4 + push {r4, r5, r6, lr} + sub sp, #0x88 + adds r5, r0, #0 + ldr r2, _0806F408 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1c] + movs r0, #0x7f + ands r0, r1 + cmp r0, #1 + bne _0806F4E0 + ldrb r0, [r2, #0x1d] + cmp r0, #2 + beq _0806F420 + cmp r0, #2 + bgt _0806F40C + cmp r0, #1 + beq _0806F416 + b _0806F410 + .align 2, 0 +_0806F408: .4byte gUnk_03003F80 +_0806F40C: + cmp r0, #3 + beq _0806F42A +_0806F410: + adds r3, r5, #0 + adds r3, #0x46 + b _0806F436 +_0806F416: + adds r1, r5, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #0x40 + b _0806F432 +_0806F420: + adds r1, r5, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #0x80 + b _0806F432 +_0806F42A: + adds r1, r5, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #0xc0 +_0806F432: + strh r0, [r1] + adds r3, r1, #0 +_0806F436: + adds r2, r3, #0 + ldrh r0, [r2] + movs r1, #0xa0 + lsls r1, r1, #3 + cmp r0, r1 + bls _0806F444 + strh r1, [r2] +_0806F444: + ldr r6, _0806F4BC @ =gLinkEntity + ldrb r0, [r6, #0x14] + movs r1, #0xe + ands r1, r0 + ldr r0, _0806F4C0 @ =gUnk_08126EE4 + adds r1, r1, r0 + mov r2, sp + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r4, [r6, #0x2e] + adds r0, r0, r4 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrh r4, [r3] + adds r0, r5, #0 + mov r1, sp + bl sub_080045C4 + adds r2, r0, #0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806F5BC + mov r0, sp + adds r1, r5, #0 + movs r2, #4 + movs r3, #4 + bl sub_0800419C + cmp r0, #0 + beq _0806F4E0 + ldrb r0, [r5, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #2 + bne _0806F4C8 + movs r0, #3 + strb r0, [r5, #0xd] + str r5, [r6, #0x70] + ldr r1, _0806F4C4 @ =gUnk_03003F80 + movs r0, #7 + strb r0, [r1, #0x1c] + movs r0, #0x11 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + cmp r0, #0 + beq _0806F4B4 + str r5, [r0, #0x54] + str r0, [r5, #0x50] +_0806F4B4: + movs r0, #0xed + bl sub_080A3268 + b _0806F4D8 + .align 2, 0 +_0806F4BC: .4byte gLinkEntity +_0806F4C0: .4byte gUnk_08126EE4 +_0806F4C4: .4byte gUnk_03003F80 +_0806F4C8: + cmp r1, #1 + bne _0806F4D8 + ldr r0, _0806F4DC @ =gUnk_03003F80 + ldr r0, [r0, #0x2c] + strb r1, [r0, #0xa] + movs r0, #0xef + bl sub_080A3268 +_0806F4D8: + movs r0, #1 + b _0806F4E2 + .align 2, 0 +_0806F4DC: .4byte gUnk_03003F80 +_0806F4E0: + movs r0, #0 +_0806F4E2: + add sp, #0x88 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F4E8 +sub_0806F4E8: @ 0x0806F4E8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0x1d] + movs r2, #3 + ands r2, r0 + cmp r2, #1 + beq _0806F516 + cmp r2, #1 + bgt _0806F500 + cmp r2, #0 + beq _0806F510 + b _0806F51C +_0806F500: + cmp r2, #2 + beq _0806F50A + cmp r2, #3 + beq _0806F516 + b _0806F51C +_0806F50A: + adds r1, #0x62 + movs r0, #0xfe + b _0806F51A +_0806F510: + adds r1, #0x62 + movs r0, #2 + b _0806F51A +_0806F516: + adds r1, #0x62 + movs r0, #0 +_0806F51A: + strb r0, [r1] +_0806F51C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F520 +sub_0806F520: @ 0x0806F520 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x93 + beq _0806F544 + adds r3, r2, #0 + adds r3, #0x3a + ldrb r1, [r3] + movs r0, #0xfb + ands r0, r1 + movs r1, #0 + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x63 + strb r1, [r0] + movs r0, #0 + b _0806F546 +_0806F544: + movs r0, #1 +_0806F546: + pop {pc} + + thumb_func_start sub_0806F548 +sub_0806F548: @ 0x0806F548 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_080041A0 + cmp r0, #0 + bne _0806F55A + movs r0, #0 + b _0806F562 +_0806F55A: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806F58C +_0806F562: + pop {r4, r5, pc} + + thumb_func_start sub_0806F564 +sub_0806F564: @ 0x0806F564 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r5, #0 + bl sub_080045D4 + bl sub_0806F5A4 + movs r2, #0 + ldrb r1, [r4, #0x14] + cmp r1, r0 + bne _0806F588 + movs r2, #1 +_0806F588: + adds r0, r2, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0806F58C +sub_0806F58C: @ 0x0806F58C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FCA0 + movs r2, #0 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + cmp r1, r0 + bne _0806F5A0 + movs r2, #1 +_0806F5A0: + adds r0, r2, #0 + pop {r4, pc} + + thumb_func_start sub_0806F5A4 +sub_0806F5A4: @ 0x0806F5A4 + ldr r1, _0806F5AC @ =gUnk_08114F38 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0806F5AC: .4byte gUnk_08114F38 + + thumb_func_start sub_0806F5B0 +sub_0806F5B0: @ 0x0806F5B0 + ldr r1, _0806F5B8 @ =gUnk_08114F58 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0806F5B8: .4byte gUnk_08114F58 + + thumb_func_start sub_0806F5BC +sub_0806F5BC: @ 0x0806F5BC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _0806F620 + ldr r0, _0806F628 @ =gUnk_080C9160 + mov r8, r0 + lsls r4, r2, #3 + lsls r0, r2, #4 + add r0, r8 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r5, r1, #0x10 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r6, #0x80 + lsls r6, r6, #1 + adds r1, r6, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r7, #0x2c] + adds r1, r1, r0 + str r1, [r7, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, r8 + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r6, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r7, #0x30] + subs r1, r1, r0 + str r1, [r7, #0x30] +_0806F620: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806F628: .4byte gUnk_080C9160 + + thumb_func_start sub_0806F62C +sub_0806F62C: @ 0x0806F62C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + ldr r0, _0806F698 @ =gUnk_080C9160 + mov sb, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + mov r8, r1 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x2c] + adds r1, r1, r0 + str r1, [r6, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, sb + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, r8 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x30] + subs r1, r1, r0 + str r1, [r6, #0x30] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806F698: .4byte gUnk_080C9160 + + thumb_func_start sub_0806F69C +sub_0806F69C: @ 0x0806F69C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r1, [r6, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806F6FE + ldr r5, _0806F700 @ =gUnk_080C9160 + ldrb r0, [r6, #0x15] + lsls r0, r0, #4 + adds r0, r0, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0x24 + ldrsh r1, [r6, r2] + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x2c] + adds r1, r1, r0 + str r1, [r6, #0x2c] + ldrb r0, [r6, #0x15] + lsls r0, r0, #4 + adds r0, #0x80 + adds r0, r0, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0x24 + ldrsh r1, [r6, r2] + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x30] + subs r1, r1, r0 + str r1, [r6, #0x30] +_0806F6FE: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806F700: .4byte gUnk_080C9160 + + thumb_func_start sub_0806F704 +sub_0806F704: @ 0x0806F704 + push {r4, r5, r6, lr} + lsls r3, r1, #4 + movs r2, #0xfc + lsls r2, r2, #2 + adds r6, r2, #0 + ands r3, r6 + movs r5, #8 + orrs r3, r5 + ldr r4, _0806F72C @ =gRoomControls + ldrh r2, [r4, #6] + adds r2, r2, r3 + strh r2, [r0, #0x2e] + lsrs r1, r1, #2 + ands r1, r6 + orrs r1, r5 + ldrh r2, [r4, #8] + adds r2, r2, r1 + strh r2, [r0, #0x32] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806F72C: .4byte gRoomControls + + thumb_func_start sub_0806F730 +sub_0806F730: @ 0x0806F730 + push {r4, r5, r6, lr} + movs r6, #0x3f + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r4, [r0, #0x48] + movs r1, #0 + ldrsb r1, [r4, r1] + adds r2, r2, r1 + ldr r3, _0806F764 @ =gRoomControls + ldrh r1, [r3, #6] + subs r5, r2, r1 + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #1 + ldrsb r2, [r4, r2] + adds r1, r1, r2 + ldrh r2, [r3, #8] + subs r1, r1, r2 + ldrb r0, [r0, #0x14] + cmp r0, #2 + beq _0806F77E + cmp r0, #2 + bgt _0806F768 + cmp r0, #0 + beq _0806F772 + b _0806F788 + .align 2, 0 +_0806F764: .4byte gRoomControls +_0806F768: + cmp r0, #4 + beq _0806F778 + cmp r0, #6 + beq _0806F784 + b _0806F788 +_0806F772: + ldrb r0, [r4, #5] + subs r1, r1, r0 + b _0806F788 +_0806F778: + ldrb r0, [r4, #5] + adds r1, r1, r0 + b _0806F788 +_0806F77E: + ldrb r0, [r4, #2] + adds r5, r5, r0 + b _0806F788 +_0806F784: + ldrb r0, [r4, #2] + subs r5, r5, r0 +_0806F788: + lsrs r0, r5, #4 + ands r0, r6 + lsrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + adds r0, r0, r1 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F798 +sub_0806F798: @ 0x0806F798 + push {r4, r5, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r4, [r2, #0x48] + movs r1, #0 + ldrsb r1, [r4, r1] + adds r0, r0, r1 + ldr r3, _0806F7CC @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + movs r5, #0x32 + ldrsh r1, [r2, r5] + movs r2, #1 + ldrsb r2, [r4, r2] + adds r1, r1, r2 + ldrh r2, [r3, #8] + subs r1, r1, r2 + movs r2, #0x3f + lsrs r0, r0, #4 + ands r0, r2 + lsrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + adds r0, r0, r1 + pop {r4, r5, pc} + .align 2, 0 +_0806F7CC: .4byte gRoomControls + + thumb_func_start sub_0806F7D0 +sub_0806F7D0: @ 0x0806F7D0 + push {r4, lr} + ldr r4, _0806F7E4 @ =gUnk_02025EB0 + bl sub_0806F730 + ldr r1, _0806F7E8 @ =0x00002004 + adds r4, r4, r1 + adds r0, r0, r4 + ldrb r0, [r0] + pop {r4, pc} + .align 2, 0 +_0806F7E4: .4byte gUnk_02025EB0 +_0806F7E8: .4byte 0x00002004 + + thumb_func_start sub_0806F7EC +sub_0806F7EC: @ 0x0806F7EC + push {r4, lr} + ldr r4, _0806F800 @ =gUnk_02025EB0 + bl sub_0806F730 + lsls r0, r0, #1 + adds r4, #4 + adds r0, r0, r4 + ldrh r0, [r0] + pop {r4, pc} + .align 2, 0 +_0806F800: .4byte gUnk_02025EB0 + + thumb_func_start sub_0806F804 +sub_0806F804: @ 0x0806F804 + lsrs r0, r0, #4 + movs r2, #0x3f + ands r0, r2 + movs r2, #0xfc + lsls r2, r2, #2 + ands r2, r1 + lsls r2, r2, #2 + adds r0, r0, r2 + ldr r1, _0806F820 @ =gUnk_02025EB0 + lsls r0, r0, #1 + adds r1, #4 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_0806F820: .4byte gUnk_02025EB0 + + thumb_func_start sub_0806F824 +sub_0806F824: @ 0x0806F824 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r2, #0 + adds r5, r3, #0 + movs r2, #0x2e + ldrsh r6, [r0, r2] + movs r2, #0x32 + ldrsh r3, [r0, r2] + mov r8, r3 + movs r3, #0x2e + ldrsh r2, [r1, r3] + adds r2, r2, r4 + movs r0, #0x32 + ldrsh r3, [r1, r0] + adds r3, r3, r5 + adds r0, r6, #0 + mov r1, r8 + bl sub_080045D4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F854 +sub_0806F854: @ 0x0806F854 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r6, r2, #0 + ldr r0, [r4, #0x34] + cmp r0, #0 + beq _0806F8D6 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806F8D6 + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r0, r0, r3 + ldr r2, _0806F8BC @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r5, #0x3f + ands r0, r5 + movs r3, #0x32 + ldrsh r1, [r4, r3] + adds r1, r1, r6 + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + movs r2, #8 + bl sub_080002F0 + cmp r0, #0 + beq _0806F8C0 + ldrb r1, [r4, #0x19] + adds r0, r5, #0 + ands r0, r1 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r1, [r4, #0x1b] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1b] + movs r0, #1 + b _0806F8D8 + .align 2, 0 +_0806F8BC: .4byte gRoomControls +_0806F8C0: + ldrb r1, [r4, #0x19] + adds r0, r5, #0 + ands r0, r1 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r1, [r4, #0x1b] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1b] +_0806F8D6: + movs r0, #0 +_0806F8D8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F8DC +sub_0806F8DC: @ 0x0806F8DC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806F942 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #4 + movs r2, #2 + bl sub_080002A4 + cmp r0, #0 + beq _0806F91C + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + movs r0, #1 + b _0806F944 +_0806F91C: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #4 + ldrb r2, [r5] + bl sub_080002A4 + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] +_0806F942: + movs r0, #0 +_0806F944: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806F948 +sub_0806F948: @ 0x0806F948 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806F974 @ =gUnk_03003F80 + ldrb r0, [r1, #0xd] + cmp r0, #0xff + beq _0806F994 + ldrb r0, [r1, #0xd] + lsrs r3, r0, #2 + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _0806F978 + ldrb r2, [r4, #0x14] + subs r0, r2, #1 + subs r0, r3, r0 + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _0806F978 + adds r0, r2, #0 + b _0806F996 + .align 2, 0 +_0806F974: .4byte gUnk_03003F80 +_0806F978: + movs r2, #0 + cmp r3, #4 + bls _0806F980 + movs r2, #1 +_0806F980: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #6 + ands r3, r0 + strb r3, [r4, #0x14] +_0806F994: + ldrb r0, [r4, #0x14] +_0806F996: + pop {r4, pc} + + thumb_func_start sub_0806F998 +sub_0806F998: @ 0x0806F998 + push {r4, lr} + adds r2, r0, #0 + ldrb r4, [r2, #0x14] + ldrb r1, [r2, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806F9E6 + movs r0, #0x1c + ands r0, r1 + lsrs r3, r0, #2 + movs r1, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F9C4 + subs r0, r3, r4 + adds r0, #1 + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0806F9E6 +_0806F9C4: + ldrb r0, [r2, #0x15] + lsrs r0, r0, #2 + movs r1, #0x7e + ands r0, r1 + strb r0, [r2, #0x14] + adds r4, r0, #0 + cmp r4, #4 + bhi _0806F9DE + ldrb r1, [r2, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0806F9E4 +_0806F9DE: + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806F9E4: + strb r0, [r2, #0x18] +_0806F9E6: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 diff --git a/asm/code_0806FA6C.s b/asm/code_0806FA6C.s index 75fb9209..78f6769b 100644 --- a/asm/code_0806FA6C.s +++ b/asm/code_0806FA6C.s @@ -1130,7 +1130,7 @@ _08070268: _08070280: movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r7, _08070354 @ =gUnk_03000BF0 + ldr r7, _08070354 @ =gRoomControls ldrh r1, [r7, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -1229,7 +1229,7 @@ _08070280: bl sub_0800015E b _0807037A .align 2, 0 -_08070354: .4byte gUnk_03000BF0 +_08070354: .4byte gRoomControls _08070358: .4byte gLinkEntity _0807035C: .4byte gUnk_08003E44 _08070360: .4byte 0x00004020 @@ -1288,7 +1288,7 @@ sub_080703BC: @ 0x080703BC bl sub_08004274 movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _08070404 @ =gUnk_03000BF0 + ldr r2, _08070404 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -1317,7 +1317,7 @@ sub_080703BC: @ 0x080703BC beq _08070420 b _08070412 .align 2, 0 -_08070404: .4byte gUnk_03000BF0 +_08070404: .4byte gRoomControls _08070408: .4byte 0x00004021 _0807040C: ldr r0, _08070418 @ =0x00004070 @@ -1381,7 +1381,7 @@ sub_08070458: @ 0x08070458 beq _0807049E movs r0, #0x2e ldrsh r1, [r4, r0] - ldr r2, _080704B4 @ =gUnk_03000BF0 + ldr r2, _080704B4 @ =gRoomControls ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 @@ -1410,7 +1410,7 @@ _0807049E: bl sub_080A3268 pop {r4, r5, r6, pc} .align 2, 0 -_080704B4: .4byte gUnk_03000BF0 +_080704B4: .4byte gRoomControls _080704B8: .4byte 0x00000199 thumb_func_start sub_080704BC @@ -1558,7 +1558,7 @@ sub_080705AC: @ 0x080705AC ldrb r0, [r0] cmp r0, #0 bne _08070674 - ldr r0, _08070620 @ =gUnk_02000050 + ldr r0, _08070620 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -1598,7 +1598,7 @@ sub_080705AC: @ 0x080705AC _08070614: .4byte gUnk_03000FF0 _08070618: .4byte gUnk_03000FD0 _0807061C: .4byte gUnk_02034490 -_08070620: .4byte gUnk_02000050 +_08070620: .4byte gTextBox _08070624: .4byte gUnk_02002A40 _08070628: .4byte gUnk_03003F80 _0807062C: .4byte gUnk_03003DC0 @@ -2695,7 +2695,7 @@ sub_08070EDC: @ 0x08070EDC movs r1, #2 orrs r0, r1 strb r0, [r2, #0x11] - ldr r0, _08070F10 @ =gUnk_02000050 + ldr r0, _08070F10 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -2713,7 +2713,7 @@ _08070EFE: bl sub_08079938 b _08070F1C .align 2, 0 -_08070F10: .4byte gUnk_02000050 +_08070F10: .4byte gTextBox _08070F14: .4byte gUnk_03003F80 _08070F18: ldr r0, _08070F20 @ =0x00000C18 @@ -2728,7 +2728,7 @@ sub_08070F24: @ 0x08070F24 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 - ldr r0, _08070F4C @ =gUnk_02000050 + ldr r0, _08070F4C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -2745,7 +2745,7 @@ sub_08070F24: @ 0x08070F24 _08070F4A: pop {r4, pc} .align 2, 0 -_08070F4C: .4byte gUnk_02000050 +_08070F4C: .4byte gTextBox thumb_func_start sub_08070F50 sub_08070F50: @ 0x08070F50 @@ -2873,7 +2873,7 @@ sub_08071038: @ 0x08071038 bl sub_08078EFC cmp r0, #0 bne _08071078 - ldr r0, _0807107C @ =gUnk_02000050 + ldr r0, _0807107C @ =gTextBox ldrb r0, [r0] movs r2, #0x7f ands r2, r0 @@ -2899,7 +2899,7 @@ sub_08071038: @ 0x08071038 _08071078: pop {r4, pc} .align 2, 0 -_0807107C: .4byte gUnk_02000050 +_0807107C: .4byte gTextBox _08071080: .4byte gUnk_03003F80 thumb_func_start sub_08071084 @@ -3543,7 +3543,7 @@ _0807156A: thumb_func_start sub_0807156C sub_0807156C: @ 0x0807156C push {lr} - ldr r2, _080715A0 @ =gUnk_03000BF0 + ldr r2, _080715A0 @ =gRoomControls movs r1, #0 str r1, [r2, #0x30] ldr r2, _080715A4 @ =gUnk_02034490 @@ -3565,7 +3565,7 @@ sub_0807156C: @ 0x0807156C bl sub_0805E544 pop {pc} .align 2, 0 -_080715A0: .4byte gUnk_03000BF0 +_080715A0: .4byte gRoomControls _080715A4: .4byte gUnk_02034490 _080715A8: .4byte gUnk_03003F80 @@ -4095,7 +4095,7 @@ _0807198C: .4byte 0x000003C7 sub_08071990: @ 0x08071990 push {r4, lr} adds r2, r0, #0 - ldr r0, _080719C0 @ =gUnk_02000050 + ldr r0, _080719C0 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -4117,7 +4117,7 @@ sub_08071990: @ 0x08071990 strh r0, [r3, #8] b _08071A4A .align 2, 0 -_080719C0: .4byte gUnk_02000050 +_080719C0: .4byte gTextBox _080719C4: .4byte gUnk_03003F80 _080719C8: .4byte 0x000003CD _080719CC: @@ -5598,7 +5598,7 @@ sub_080724DC: @ 0x080724DC adds r0, r4, #0 bl sub_0807AE20 _08072512: - ldr r0, _08072534 @ =gUnk_03000BF0 + ldr r0, _08072534 @ =gRoomControls ldrh r0, [r0] cmp r0, #0 bne _08072538 @@ -5614,7 +5614,7 @@ _08072512: b _08072588 .align 2, 0 _08072530: .4byte gUnk_03003F80 -_08072534: .4byte gUnk_03000BF0 +_08072534: .4byte gRoomControls _08072538: ldr r0, _08072548 @ =gUnk_03003F80 ldrb r0, [r0, #0x1c] @@ -5664,7 +5664,7 @@ _08072588: sub_0807258C: @ 0x0807258C push {r4, lr} adds r4, r0, #0 - ldr r0, _080725D0 @ =gUnk_03000BF0 + ldr r0, _080725D0 @ =gRoomControls ldrh r0, [r0] cmp r0, #0 bne _08072604 @@ -5693,7 +5693,7 @@ sub_0807258C: @ 0x0807258C bl sub_080728AC b _08072604 .align 2, 0 -_080725D0: .4byte gUnk_03000BF0 +_080725D0: .4byte gRoomControls _080725D4: .4byte gUnk_03003F80 _080725D8: .4byte gLinkEntity _080725DC: @@ -6118,7 +6118,7 @@ _080728F6: orrs r0, r1 strb r0, [r2] _08072910: - ldr r0, _08072948 @ =gUnk_03000BF0 + ldr r0, _08072948 @ =gRoomControls ldrb r1, [r0, #0xf] movs r0, #4 ands r0, r1 @@ -6145,7 +6145,7 @@ _0807293C: .align 2, 0 _08072940: .4byte gUnk_03003F80 _08072944: .4byte gLinkEntity -_08072948: .4byte gUnk_03000BF0 +_08072948: .4byte gRoomControls thumb_func_start sub_0807294C sub_0807294C: @ 0x0807294C @@ -6226,7 +6226,7 @@ _080729DC: strh r0, [r2, #8] movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r2, _08072A54 @ =gUnk_03000BF0 + ldr r2, _08072A54 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -6253,7 +6253,7 @@ _08072A14: ldr r0, _08072A5C @ =0x00004070 movs r7, #0x2e ldrsh r1, [r5, r7] - ldr r3, _08072A54 @ =gUnk_03000BF0 + ldr r3, _08072A54 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -6278,7 +6278,7 @@ _08072A4C: pop {r4, r5, r6, r7, pc} .align 2, 0 _08072A50: .4byte 0x0000061C -_08072A54: .4byte gUnk_03000BF0 +_08072A54: .4byte gRoomControls _08072A58: .4byte 0x00004020 _08072A5C: .4byte 0x00004070 @@ -6385,7 +6385,7 @@ _08072AE4: bl sub_0807921C movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _08072B4C @ =gUnk_03000BF0 + ldr r2, _08072B4C @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -6405,7 +6405,7 @@ _08072AE4: bl sub_0807BA8C b _08072B58 .align 2, 0 -_08072B4C: .4byte gUnk_03000BF0 +_08072B4C: .4byte gRoomControls _08072B50: lsrs r0, r2, #0x1a strb r0, [r4, #0x14] @@ -6439,7 +6439,7 @@ _08072B82: ldr r0, _08072C04 @ =0x00004021 movs r2, #0x2e ldrsh r1, [r5, r2] - ldr r3, _08072C08 @ =gUnk_03000BF0 + ldr r3, _08072C08 @ =gRoomControls ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 @@ -6498,7 +6498,7 @@ _08072B82: b _08072C40 .align 2, 0 _08072C04: .4byte 0x00004021 -_08072C08: .4byte gUnk_03000BF0 +_08072C08: .4byte gRoomControls _08072C0C: .4byte gUnk_03003F80 _08072C10: bl sub_08052620 @@ -7345,14 +7345,14 @@ _080732B4: lsls r0, r0, #1 _080732B8: strh r0, [r2, #8] - ldr r1, _080732CC @ =gUnk_03000BF0 + ldr r1, _080732CC @ =gRoomControls movs r0, #0 str r0, [r1, #0x30] bl sub_0807A108 bl sub_08077B2C pop {r4, r5, r6, r7, pc} .align 2, 0 -_080732CC: .4byte gUnk_03000BF0 +_080732CC: .4byte gRoomControls thumb_func_start sub_080732D0 sub_080732D0: @ 0x080732D0 @@ -7453,13 +7453,13 @@ _08073386: ldrb r0, [r0] cmp r0, #0 beq _080733A4 - ldr r0, _080733A0 @ =gUnk_03000BF0 + ldr r0, _080733A0 @ =gRoomControls str r4, [r0, #0x30] bl sub_080791BC b _080733B6 .align 2, 0 _0807339C: .4byte gUnk_03003F80 -_080733A0: .4byte gUnk_03000BF0 +_080733A0: .4byte gRoomControls _080733A4: ldr r0, _080733B8 @ =gUnk_03001000 movs r1, #3 @@ -7515,13 +7515,13 @@ _080733FC: ldrsh r0, [r4, r2] cmp r1, r0 bne _08073418 - ldr r0, _0807341C @ =gUnk_03000BF0 + ldr r0, _0807341C @ =gRoomControls str r4, [r0, #0x30] bl sub_0807921C _08073418: pop {r4, pc} .align 2, 0 -_0807341C: .4byte gUnk_03000BF0 +_0807341C: .4byte gRoomControls thumb_func_start sub_08073420 sub_08073420: @ 0x08073420 @@ -8691,7 +8691,7 @@ sub_08073C80: @ 0x08073C80 movs r1, #1 movs r2, #2 bl sub_080AE008 - ldr r0, _08073D0C @ =gUnk_03000BF0 + ldr r0, _08073D0C @ =gRoomControls str r4, [r0, #0x30] bl sub_080809D4 ldr r1, _08073D10 @ =gUnk_030010A0 @@ -8709,7 +8709,7 @@ sub_08073C80: @ 0x08073C80 _08073D00: .4byte gUnk_03003F80 _08073D04: .4byte 0x00000C18 _08073D08: .4byte gUnk_0811BC80 -_08073D0C: .4byte gUnk_03000BF0 +_08073D0C: .4byte gRoomControls _08073D10: .4byte gUnk_030010A0 _08073D14: movs r0, #4 @@ -9232,14 +9232,14 @@ _080740FE: movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 - ldr r3, _08074124 @ =gUnk_03000BF0 + ldr r3, _08074124 @ =gRoomControls ldrh r0, [r3, #6] subs r6, r1, r0 movs r1, #0x32 ldrsh r0, [r4, r1] b _08074182 .align 2, 0 -_08074124: .4byte gUnk_03000BF0 +_08074124: .4byte gRoomControls _08074128: ldr r2, [r4, #0x48] movs r1, #0x2e @@ -9249,14 +9249,14 @@ _08074128: movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r1 - ldr r3, _08074144 @ =gUnk_03000BF0 + ldr r3, _08074144 @ =gRoomControls ldrh r1, [r3, #6] subs r6, r0, r1 movs r1, #0x32 ldrsh r0, [r4, r1] b _08074182 .align 2, 0 -_08074144: .4byte gUnk_03000BF0 +_08074144: .4byte gRoomControls _08074148: movs r0, #0x2e ldrsh r1, [r4, r0] @@ -9264,7 +9264,7 @@ _08074148: movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 - ldr r3, _08074164 @ =gUnk_03000BF0 + ldr r3, _08074164 @ =gRoomControls ldrh r0, [r3, #6] subs r6, r1, r0 movs r1, #0x32 @@ -9273,7 +9273,7 @@ _08074148: adds r0, r0, r1 b _08074182 .align 2, 0 -_08074164: .4byte gUnk_03000BF0 +_08074164: .4byte gRoomControls _08074168: movs r0, #0x2e ldrsh r1, [r4, r0] @@ -9281,7 +9281,7 @@ _08074168: movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 - ldr r3, _080741A4 @ =gUnk_03000BF0 + ldr r3, _080741A4 @ =gRoomControls ldrh r0, [r3, #6] subs r6, r1, r0 movs r1, #0x32 @@ -9305,7 +9305,7 @@ _0807418C: bl sub_0806F69C b _080741B0 .align 2, 0 -_080741A4: .4byte gUnk_03000BF0 +_080741A4: .4byte gRoomControls _080741A8: .4byte gUnk_080082DC _080741AC: movs r0, #1 @@ -12824,7 +12824,7 @@ _08075BB8: movs r1, #0 ldrsb r1, [r7, r1] adds r0, r0, r1 - ldr r4, _08075C94 @ =gUnk_03000BF0 + ldr r4, _08075C94 @ =gRoomControls ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -12906,7 +12906,7 @@ _08075C80: _08075C88: .4byte gUnk_03003F80 _08075C8C: .4byte gLinkEntity _08075C90: .4byte gUnk_08126EEC -_08075C94: .4byte gUnk_03000BF0 +_08075C94: .4byte gRoomControls _08075C98: .4byte 0x0000060C thumb_func_start sub_08075C9C @@ -16020,7 +16020,7 @@ sub_080774A0: @ 0x080774A0 lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r2, r0 - ldr r4, _08077504 @ =gUnk_03000BF0 + ldr r4, _08077504 @ =gRoomControls ldrh r0, [r4, #6] subs r2, r2, r0 asrs r6, r2, #4 @@ -16055,7 +16055,7 @@ _080774F6: .align 2, 0 _080774FC: .4byte gLinkEntity _08077500: .4byte gUnk_0811BE1E -_08077504: .4byte gUnk_03000BF0 +_08077504: .4byte gRoomControls _08077508: adds r0, r6, #0 ldrb r1, [r4] @@ -20271,7 +20271,7 @@ _080794A0: adds r1, r2, #0 adds r1, #0x38 strb r0, [r1] - ldr r3, _080794E0 @ =gUnk_03000BF0 + ldr r3, _080794E0 @ =gRoomControls ldr r0, [r4] movs r1, #0x3f ands r0, r1 @@ -20296,7 +20296,7 @@ _080794A0: b _08079514 .align 2, 0 _080794DC: .4byte gLinkEntity -_080794E0: .4byte gUnk_03000BF0 +_080794E0: .4byte gRoomControls _080794E4: movs r5, #0 ldr r1, [r2, #0x40] @@ -20433,7 +20433,7 @@ _080795BE: movs r0, #0 ldrsb r0, [r1, r0] adds r2, r2, r0 - ldr r4, _08079618 @ =gUnk_03000BF0 + ldr r4, _08079618 @ =gRoomControls ldrh r0, [r4, #6] subs r2, r2, r0 asrs r2, r2, #4 @@ -20461,7 +20461,7 @@ _080795BE: .align 2, 0 _08079610: .4byte gLinkEntity _08079614: .4byte gUnk_0811C100 -_08079618: .4byte gUnk_03000BF0 +_08079618: .4byte gRoomControls _0807961C: mov r6, r8 movs r0, #0x2e @@ -20470,7 +20470,7 @@ _0807961C: ldrb r0, [r0, #4] mov ip, r0 adds r0, r2, r0 - ldr r4, _080796EC @ =gUnk_03000BF0 + ldr r4, _080796EC @ =gRoomControls ldrh r3, [r4, #6] mov sb, r3 subs r0, r0, r3 @@ -20564,7 +20564,7 @@ _080796C8: movs r0, #1 b _080796FE .align 2, 0 -_080796EC: .4byte gUnk_03000BF0 +_080796EC: .4byte gRoomControls _080796F0: .4byte gUnk_0811C1E8 _080796F4: .4byte gUnk_03003F80 _080796F8: .4byte gLinkEntity @@ -21756,7 +21756,7 @@ sub_08079FD4: @ 0x08079FD4 adds r5, r0, #0 movs r0, #0x2e ldrsh r2, [r5, r0] - ldr r3, _0807A008 @ =gUnk_03000BF0 + ldr r3, _0807A008 @ =gRoomControls ldrh r0, [r3, #6] subs r2, r2, r0 asrs r2, r2, #4 @@ -21779,7 +21779,7 @@ _0807A004: movs r4, #0 b _0807A028 .align 2, 0 -_0807A008: .4byte gUnk_03000BF0 +_0807A008: .4byte gRoomControls _0807A00C: .4byte gUnk_02027EB4 _0807A010: .4byte gUnk_0200D654 _0807A014: @@ -21822,7 +21822,7 @@ sub_0807A050: @ 0x0807A050 ldrb r2, [r3, #0xf] cmp r2, #0 beq _0807A06A - ldr r0, _0807A08C @ =gUnk_02000050 + ldr r0, _0807A08C @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -21846,7 +21846,7 @@ _0807A084: pop {pc} .align 2, 0 _0807A088: .4byte gUnk_03003F80 -_0807A08C: .4byte gUnk_02000050 +_0807A08C: .4byte gTextBox _0807A090: .4byte gLinkEntity thumb_func_start sub_0807A094 @@ -22042,7 +22042,7 @@ sub_0807A1E8: @ 0x0807A1E8 movs r1, #0x2e ldrsh r0, [r5, r1] adds r0, r0, r6 - ldr r2, _0807A288 @ =gUnk_03000BF0 + ldr r2, _0807A288 @ =gRoomControls ldrh r1, [r2, #6] subs r1, r0, r1 lsrs r4, r1, #4 @@ -22115,7 +22115,7 @@ _0807A26A: mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 -_0807A288: .4byte gUnk_03000BF0 +_0807A288: .4byte gRoomControls _0807A28C: .4byte gLinkEntity _0807A290: .4byte gUnk_03003F80 _0807A294: .4byte gUnk_08007CAC @@ -22181,7 +22181,7 @@ sub_0807A2F8: @ 0x0807A2F8 push {r5, r6, r7} sub sp, #4 adds r4, r0, #0 - ldr r0, _0807A364 @ =gUnk_03000BF0 + ldr r0, _0807A364 @ =gRoomControls mov r8, r0 ldrb r0, [r0, #4] cmp r0, #8 @@ -22229,7 +22229,7 @@ _0807A31E: lsls r6, r2, #1 b _0807A3A2 .align 2, 0 -_0807A364: .4byte gUnk_03000BF0 +_0807A364: .4byte gRoomControls _0807A368: .4byte gLinkEntity _0807A36C: movs r1, #0x2e @@ -22454,7 +22454,7 @@ _0807A51C: _0807A526: movs r1, #0x2e ldrsh r0, [r6, r1] - ldr r5, _0807A550 @ =gUnk_03000BF0 + ldr r5, _0807A550 @ =gRoomControls ldrh r1, [r5, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -22474,11 +22474,11 @@ _0807A526: ands r1, r4 b _0807A5AA .align 2, 0 -_0807A550: .4byte gUnk_03000BF0 +_0807A550: .4byte gRoomControls _0807A554: movs r5, #0x2e ldrsh r0, [r6, r5] - ldr r4, _0807A570 @ =gUnk_03000BF0 + ldr r4, _0807A570 @ =gRoomControls ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -22491,7 +22491,7 @@ _0807A554: adds r1, r1, r5 b _0807A59A .align 2, 0 -_0807A570: .4byte gUnk_03000BF0 +_0807A570: .4byte gRoomControls _0807A574: ldr r2, [r6, #0x48] movs r1, #0x2e @@ -22506,7 +22506,7 @@ _0807A580: ldrb r1, [r2, #2] subs r0, r0, r1 _0807A58A: - ldr r4, _0807A5B0 @ =gUnk_03000BF0 + ldr r4, _0807A5B0 @ =gRoomControls ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -22528,7 +22528,7 @@ _0807A5AA: orrs r0, r1 b _0807A5B6 .align 2, 0 -_0807A5B0: .4byte gUnk_03000BF0 +_0807A5B0: .4byte gRoomControls _0807A5B4: movs r0, #0 _0807A5B6: @@ -22621,7 +22621,7 @@ _0807A63A: movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r1 - ldr r1, _0807A74C @ =gUnk_03000BF0 + ldr r1, _0807A74C @ =gRoomControls mov r8, r1 ldrh r1, [r1, #6] subs r5, r0, r1 @@ -22680,7 +22680,7 @@ _0807A6B8: movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 - ldr r3, _0807A74C @ =gUnk_03000BF0 + ldr r3, _0807A74C @ =gRoomControls mov r8, r3 ldrh r0, [r3, #6] subs r5, r1, r0 @@ -22737,7 +22737,7 @@ _0807A736: _0807A740: .4byte gUnk_080082DC _0807A744: .4byte gUnk_0800851C _0807A748: .4byte gLinkEntity -_0807A74C: .4byte gUnk_03000BF0 +_0807A74C: .4byte gRoomControls thumb_func_start sub_0807A750 sub_0807A750: @ 0x0807A750 @@ -22988,7 +22988,7 @@ sub_0807A8D8: @ 0x0807A8D8 _0807A8F0: movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r7, _0807AA60 @ =gUnk_03000BF0 + ldr r7, _0807AA60 @ =gRoomControls ldrh r1, [r7, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -23116,7 +23116,7 @@ _0807A9A2: _0807A9F6: movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r7, _0807AA60 @ =gUnk_03000BF0 + ldr r7, _0807AA60 @ =gRoomControls ldrh r1, [r7, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -23165,7 +23165,7 @@ _0807AA4C: b _0807AA76 .align 2, 0 _0807AA5C: .4byte gUnk_03003F80 -_0807AA60: .4byte gUnk_03000BF0 +_0807AA60: .4byte gRoomControls _0807AA64: .4byte gLinkEntity _0807AA68: movs r0, #4 @@ -23305,7 +23305,7 @@ sub_0807AB44: @ 0x0807AB44 movs r1, #0x2e ldrsh r0, [r6, r1] adds r0, r0, r7 - ldr r2, _0807ABF0 @ =gUnk_03000BF0 + ldr r2, _0807ABF0 @ =gRoomControls mov sb, r2 ldrh r1, [r2, #6] subs r0, r0, r1 @@ -23374,7 +23374,7 @@ sub_0807AB44: @ 0x0807AB44 bl sub_0807B7D8 b _0807AC44 .align 2, 0 -_0807ABF0: .4byte gUnk_03000BF0 +_0807ABF0: .4byte gRoomControls _0807ABF4: movs r0, #0x2a movs r1, #2 @@ -23681,7 +23681,7 @@ sub_0807AE20: @ 0x0807AE20 cmp r0, #0 bne _0807AE74 _0807AE32: - ldr r0, _0807AE5C @ =gUnk_03000BF0 + ldr r0, _0807AE5C @ =gRoomControls ldrh r0, [r0] cmp r0, #0 bne _0807AE74 @@ -23701,7 +23701,7 @@ _0807AE32: b _0807AE64 .align 2, 0 _0807AE58: .4byte gUnk_03003F80 -_0807AE5C: .4byte gUnk_03000BF0 +_0807AE5C: .4byte gRoomControls _0807AE60: movs r0, #0xc0 lsls r0, r0, #1 @@ -24370,7 +24370,7 @@ sub_0807B314: @ 0x0807B314 adds r0, r2, r1 adds r0, r0, r4 strb r3, [r0] - ldr r7, _0807B3B0 @ =gUnk_03000BF0 + ldr r7, _0807B3B0 @ =gRoomControls ldrb r1, [r7, #0xf] movs r0, #2 ands r0, r1 @@ -24412,7 +24412,7 @@ _0807B3A0: .4byte 0x000007FF _0807B3A4: .4byte 0x00006004 _0807B3A8: .4byte gUnk_080B3E80 _0807B3AC: .4byte 0x00002004 -_0807B3B0: .4byte gUnk_03000BF0 +_0807B3B0: .4byte gRoomControls _0807B3B4: .4byte gUnk_02025EB0 _0807B3B8: .4byte 0x0000B004 _0807B3BC: .4byte gUnk_080B37A0 @@ -24441,7 +24441,7 @@ _0807B3C8: adds r1, r3, r2 ldrh r0, [r0, #6] strh r0, [r1] - ldr r0, _0807B408 @ =gUnk_03000BF0 + ldr r0, _0807B408 @ =gRoomControls ldrh r0, [r0] cmp r0, #1 beq _0807B430 @@ -24452,7 +24452,7 @@ _0807B3C8: .align 2, 0 _0807B400: .4byte gUnk_02002F00 _0807B404: .4byte 0x00007004 -_0807B408: .4byte gUnk_03000BF0 +_0807B408: .4byte gRoomControls _0807B40C: .4byte gUnk_02000070 _0807B410: ldr r0, _0807B424 @ =0x00003FFF @@ -24681,7 +24681,7 @@ sub_0807B5B0: @ 0x0807B5B0 movs r4, #0 ldrsh r1, [r1, r4] adds r0, r0, r1 - ldr r5, _0807B5FC @ =gUnk_03000BF0 + ldr r5, _0807B5FC @ =gRoomControls ldrh r1, [r5, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -24705,7 +24705,7 @@ sub_0807B5B0: @ 0x0807B5B0 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807B5F8: .4byte gUnk_0811C456 -_0807B5FC: .4byte gUnk_03000BF0 +_0807B5FC: .4byte gRoomControls thumb_func_start sub_0807B600 sub_0807B600: @ 0x0807B600 @@ -24925,2228 +24925,3 @@ _0807B7D0: pop {r4, r5, r6, pc} .align 2, 0 _0807B7D4: .4byte gUnk_0811C466 - - thumb_func_start sub_0807B7D8 -sub_0807B7D8: @ 0x0807B7D8 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - cmp r0, #0x35 - bne _0807B816 - movs r0, #0x35 - bl sub_08000152 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807B778 - adds r0, r4, #1 - adds r1, r5, #0 - bl sub_0807B778 - subs r0, r4, #1 - adds r1, r5, #0 - bl sub_0807B778 - adds r0, r4, #0 - adds r0, #0x40 - adds r1, r5, #0 - bl sub_0807B778 - adds r0, r4, #0 - subs r0, #0x40 - adds r1, r5, #0 - bl sub_0807B778 - b _0807B81E -_0807B816: - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0807B314 -_0807B81E: - pop {r4, r5, pc} - - thumb_func_start sub_0807B820 -sub_0807B820: @ 0x0807B820 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x9b - lsls r0, r0, #2 - adds r5, r4, #0 - subs r5, #0x41 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B890 @ =0x00000273 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B894 @ =0x0000026D - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0x9d - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B898 @ =0x0000026E - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B89C @ =0x00000275 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B8A0 @ =0x0000026F - subs r1, r4, #1 - movs r2, #1 - bl sub_0807B314 - movs r0, #0x9c - lsls r0, r0, #2 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B8A4 @ =0x00000272 - adds r4, #1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, r5, pc} - .align 2, 0 -_0807B890: .4byte 0x00000273 -_0807B894: .4byte 0x0000026D -_0807B898: .4byte 0x0000026E -_0807B89C: .4byte 0x00000275 -_0807B8A0: .4byte 0x0000026F -_0807B8A4: .4byte 0x00000272 - - thumb_func_start sub_0807B8A8 -sub_0807B8A8: @ 0x0807B8A8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x9f - lsls r0, r0, #2 - adds r5, r4, #0 - subs r5, #0x41 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B918 @ =0x00000283 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B91C @ =0x0000027D - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xa1 - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B920 @ =0x0000027E - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B924 @ =0x00000285 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B928 @ =0x0000027F - subs r1, r4, #1 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xa0 - lsls r0, r0, #2 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B92C @ =0x00000282 - adds r4, #1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, r5, pc} - .align 2, 0 -_0807B918: .4byte 0x00000283 -_0807B91C: .4byte 0x0000027D -_0807B920: .4byte 0x0000027E -_0807B924: .4byte 0x00000285 -_0807B928: .4byte 0x0000027F -_0807B92C: .4byte 0x00000282 - - thumb_func_start sub_0807B930 -sub_0807B930: @ 0x0807B930 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa3 - lsls r0, r0, #2 - adds r5, r4, #0 - subs r5, #0x41 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B9A0 @ =0x00000293 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B9A4 @ =0x0000028D - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xa5 - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B9A8 @ =0x0000028E - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B9AC @ =0x00000295 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B9B0 @ =0x0000028F - subs r1, r4, #1 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xa4 - lsls r0, r0, #2 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B9B4 @ =0x00000292 - adds r4, #1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, r5, pc} - .align 2, 0 -_0807B9A0: .4byte 0x00000293 -_0807B9A4: .4byte 0x0000028D -_0807B9A8: .4byte 0x0000028E -_0807B9AC: .4byte 0x00000295 -_0807B9B0: .4byte 0x0000028F -_0807B9B4: .4byte 0x00000292 - - thumb_func_start sub_0807B9B8 -sub_0807B9B8: @ 0x0807B9B8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0801AF8C - adds r0, r6, #0 - bl sub_0808094C - adds r5, r0, #0 - lsls r1, r4, #1 - adds r0, r5, #4 - adds r0, r0, r1 - strh r7, [r0] - lsls r1, r7, #1 - ldr r2, _0807BA24 @ =0x00005004 - adds r0, r5, r2 - adds r0, r0, r1 - ldrh r2, [r0] - ldr r0, _0807BA28 @ =0x00002004 - adds r1, r5, r0 - adds r1, r1, r4 - ldr r0, _0807BA2C @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0807BA30 @ =0x0000B004 - adds r1, r5, r0 - adds r1, r1, r4 - ldr r0, _0807BA34 @ =gUnk_080B37A0 - adds r2, r2, r0 - ldrb r0, [r2] - strb r0, [r1] - ldr r0, _0807BA38 @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0807BA78 - movs r1, #0x3f - ands r1, r4 - lsls r1, r1, #1 - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - cmp r6, #2 - beq _0807BA40 - lsls r1, r1, #1 - ldr r0, _0807BA3C @ =gUnk_02019EE0 - b _0807BA44 - .align 2, 0 -_0807BA24: .4byte 0x00005004 -_0807BA28: .4byte 0x00002004 -_0807BA2C: .4byte gUnk_080B3E80 -_0807BA30: .4byte 0x0000B004 -_0807BA34: .4byte gUnk_080B37A0 -_0807BA38: .4byte gUnk_03000BF0 -_0807BA3C: .4byte gUnk_02019EE0 -_0807BA40: - lsls r1, r1, #1 - ldr r0, _0807BA7C @ =gUnk_02002F00 -_0807BA44: - adds r3, r1, r0 - lsls r0, r7, #3 - ldr r1, _0807BA80 @ =0x00007004 - adds r0, r0, r1 - adds r0, r5, r0 - ldrh r1, [r0] - strh r1, [r3] - ldrh r1, [r0, #2] - strh r1, [r3, #2] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r3, r1 - ldrh r1, [r0, #4] - strh r1, [r2] - movs r2, #0x81 - lsls r2, r2, #1 - adds r1, r3, r2 - ldrh r0, [r0, #6] - strh r0, [r1] - ldr r0, _0807BA84 @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #1 - beq _0807BA78 - ldr r1, _0807BA88 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] -_0807BA78: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BA7C: .4byte gUnk_02002F00 -_0807BA80: .4byte 0x00007004 -_0807BA84: .4byte gUnk_03000BF0 -_0807BA88: .4byte gUnk_02000070 - - thumb_func_start sub_0807BA8C -sub_0807BA8C: @ 0x0807BA8C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r1, #0 - bl sub_0801AF8C - adds r0, r7, #0 - bl sub_0808094C - adds r5, r0, #0 - lsls r2, r4, #1 - adds r1, r5, #4 - adds r1, r1, r2 - ldr r3, _0807BAFC @ =0x00003004 - adds r0, r5, r3 - adds r0, r0, r2 - ldrh r6, [r0] - strh r6, [r1] - lsls r1, r6, #1 - ldr r2, _0807BB00 @ =0x00005004 - adds r0, r5, r2 - adds r0, r0, r1 - ldrh r2, [r0] - ldr r3, _0807BB04 @ =0x00002004 - adds r1, r5, r3 - adds r1, r1, r4 - ldr r0, _0807BB08 @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0807BB0C @ =0x0000B004 - adds r1, r5, r0 - adds r1, r1, r4 - ldr r0, _0807BB10 @ =gUnk_080B37A0 - adds r2, r2, r0 - ldrb r0, [r2] - strb r0, [r1] - ldr r0, _0807BB14 @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0807BB54 - movs r1, #0x3f - ands r1, r4 - lsls r1, r1, #1 - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - cmp r7, #2 - beq _0807BB1C - lsls r1, r1, #1 - ldr r0, _0807BB18 @ =gUnk_02019EE0 - b _0807BB20 - .align 2, 0 -_0807BAFC: .4byte 0x00003004 -_0807BB00: .4byte 0x00005004 -_0807BB04: .4byte 0x00002004 -_0807BB08: .4byte gUnk_080B3E80 -_0807BB0C: .4byte 0x0000B004 -_0807BB10: .4byte gUnk_080B37A0 -_0807BB14: .4byte gUnk_03000BF0 -_0807BB18: .4byte gUnk_02019EE0 -_0807BB1C: - lsls r1, r1, #1 - ldr r0, _0807BB58 @ =gUnk_02002F00 -_0807BB20: - adds r3, r1, r0 - lsls r0, r6, #3 - ldr r1, _0807BB5C @ =0x00007004 - adds r0, r0, r1 - adds r0, r5, r0 - ldrh r1, [r0] - strh r1, [r3] - ldrh r1, [r0, #2] - strh r1, [r3, #2] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r3, r1 - ldrh r1, [r0, #4] - strh r1, [r2] - movs r2, #0x81 - lsls r2, r2, #1 - adds r1, r3, r2 - ldrh r0, [r0, #6] - strh r0, [r1] - ldr r0, _0807BB60 @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #1 - beq _0807BB54 - ldr r1, _0807BB64 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] -_0807BB54: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BB58: .4byte gUnk_02002F00 -_0807BB5C: .4byte 0x00007004 -_0807BB60: .4byte gUnk_03000BF0 -_0807BB64: .4byte gUnk_02000070 - - thumb_func_start sub_0807BB68 -sub_0807BB68: @ 0x0807BB68 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - movs r1, #0 - ldrsh r0, [r4, r1] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0807BB96 - adds r7, r1, #0 -_0807BB7E: - ldrh r0, [r4] - movs r2, #2 - ldrsh r1, [r4, r2] - adds r1, r6, r1 - adds r2, r5, #0 - bl sub_0807B314 - adds r4, #4 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, r7 - bne _0807BB7E -_0807BB96: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0807BB98 -sub_0807BB98: @ 0x0807BB98 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - mov sl, r1 - mov r8, r2 - mov sb, r3 - movs r0, #0 - cmp r0, sb - bhs _0807BBD4 -_0807BBB0: - movs r4, #0 - adds r7, r5, #0 - adds r7, #0x40 - adds r6, r0, #1 - cmp r4, r8 - bhs _0807BBCC -_0807BBBC: - adds r1, r5, r4 - ldr r0, _0807BBE0 @ =0x00004072 - mov r2, sl - bl sub_0800015E - adds r4, #1 - cmp r4, r8 - blo _0807BBBC -_0807BBCC: - adds r5, r7, #0 - adds r0, r6, #0 - cmp r0, sb - blo _0807BBB0 -_0807BBD4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BBE0: .4byte 0x00004072 - - thumb_func_start sub_0807BBE4 -sub_0807BBE4: @ 0x0807BBE4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _0807BC28 @ =gUnk_0202AEB4 - mov sl, r0 - ldr r0, _0807BC2C @ =gUnk_02010654 - mov sb, r0 - ldr r5, _0807BC30 @ =0xFFFFB000 - add r5, sl - ldr r4, _0807BC30 @ =0xFFFFB000 - add r4, sb - ldr r2, _0807BC34 @ =0xFFFFD000 - add r2, sl - ldr r1, _0807BC34 @ =0xFFFFD000 - add r1, sb - movs r3, #0 - ldr r0, _0807BC38 @ =0x00003FFF - mov r8, r0 - ldr r0, _0807BC3C @ =gUnk_080B3E80 - mov ip, r0 - ldr r7, _0807BC40 @ =gUnk_080B79A7 - ldr r6, _0807BC44 @ =0xFFFFC000 -_0807BC14: - ldrh r0, [r5] - adds r5, #2 - cmp r0, r8 - bhi _0807BC48 - lsls r0, r0, #1 - add r0, sl - ldrh r0, [r0] - add r0, ip - b _0807BC4C - .align 2, 0 -_0807BC28: .4byte gUnk_0202AEB4 -_0807BC2C: .4byte gUnk_02010654 -_0807BC30: .4byte 0xFFFFB000 -_0807BC34: .4byte 0xFFFFD000 -_0807BC38: .4byte 0x00003FFF -_0807BC3C: .4byte gUnk_080B3E80 -_0807BC40: .4byte gUnk_080B79A7 -_0807BC44: .4byte 0xFFFFC000 -_0807BC48: - adds r0, r0, r6 - adds r0, r0, r7 -_0807BC4C: - ldrb r0, [r0] - strb r0, [r2] - adds r2, #1 - ldrh r0, [r4] - adds r4, #2 - cmp r0, r8 - bhi _0807BC64 - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - add r0, ip - b _0807BC68 -_0807BC64: - adds r0, r0, r6 - adds r0, r0, r7 -_0807BC68: - ldrb r0, [r0] - strb r0, [r1] - adds r1, #1 - adds r3, #1 - ldr r0, _0807BC80 @ =0x00000FFF - cmp r3, r0 - bls _0807BC14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BC80: .4byte 0x00000FFF - - thumb_func_start sub_0807BC84 -sub_0807BC84: @ 0x0807BC84 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _0807BD04 @ =gUnk_03000BF0 - ldrh r0, [r1, #0x1e] - lsrs r2, r0, #4 - mov r8, r1 - cmp r2, #0x40 - bne _0807BC98 - movs r2, #0x3f -_0807BC98: - ldr r1, _0807BD08 @ =gUnk_02027EB4 - adds r3, r2, r1 - adds r6, r1, #0 - adds r6, #0x3f - ldr r0, _0807BD0C @ =gUnk_0200D654 - adds r2, r2, r0 - adds r5, r0, #0 - adds r5, #0x3f - movs r4, #0 - adds r7, r1, #0 - mov ip, r0 - movs r0, #0xff -_0807BCB0: - strb r0, [r3] - strb r0, [r6] - strb r0, [r2] - strb r0, [r5] - adds r3, #0x40 - adds r6, #0x40 - adds r2, #0x40 - adds r5, #0x40 - adds r4, #1 - cmp r4, #0x3f - bls _0807BCB0 - mov r0, r8 - ldrh r1, [r0, #0x20] - ldr r0, _0807BD10 @ =0x0000FFF0 - ands r0, r1 - lsls r0, r0, #2 - adds r3, r0, r7 - movs r1, #0xfc - lsls r1, r1, #4 - adds r6, r7, r1 - mov r1, ip - adds r2, r0, r1 - movs r5, #0xfc - lsls r5, r5, #4 - add r5, ip - movs r4, #0 - movs r0, #0xff -_0807BCE6: - strb r0, [r3] - adds r3, #1 - strb r0, [r6] - adds r6, #1 - strb r0, [r2] - adds r2, #1 - strb r0, [r5] - adds r5, #1 - adds r4, #1 - cmp r4, #0x3f - bls _0807BCE6 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BD04: .4byte gUnk_03000BF0 -_0807BD08: .4byte gUnk_02027EB4 -_0807BD0C: .4byte gUnk_0200D654 -_0807BD10: .4byte 0x0000FFF0 - - thumb_func_start sub_0807BD14 -sub_0807BD14: @ 0x0807BD14 - push {r4, r5, lr} - adds r5, r1, #0 - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r3, #0x32 - ldrsh r1, [r0, r3] - adds r0, r2, #0 - adds r2, r5, #0 - bl sub_0807BEEC - adds r3, r0, #0 - cmp r3, #0xff - beq _0807BDB4 - ldr r1, _0807BD68 @ =gUnk_03000BF0 - movs r2, #0 - movs r0, #2 - strb r0, [r1, #2] - strb r2, [r1, #3] - movs r4, #1 - strh r4, [r1] - strb r3, [r1, #5] - strb r5, [r1, #0x10] - bl sub_08052E8C - adds r2, r0, #0 - ldr r1, _0807BD6C @ =gUnk_02033A90 - ldr r3, _0807BD70 @ =0x0000085C - adds r0, r1, r3 - str r2, [r0] - ldrb r0, [r1, #0xd] - ands r4, r0 - cmp r4, #0 - beq _0807BD98 - cmp r5, #1 - beq _0807BD7E - cmp r5, #1 - blo _0807BD74 - cmp r5, #2 - beq _0807BD86 - cmp r5, #3 - beq _0807BD90 - b _0807BD98 - .align 2, 0 -_0807BD68: .4byte gUnk_03000BF0 -_0807BD6C: .4byte gUnk_02033A90 -_0807BD70: .4byte 0x0000085C -_0807BD74: - ldrh r0, [r2, #6] - ldrh r1, [r2, #2] - subs r0, r0, r1 - strh r0, [r2, #6] - b _0807BD98 -_0807BD7E: - ldrh r0, [r2] - ldrh r1, [r2, #4] - adds r0, r0, r1 - b _0807BD96 -_0807BD86: - ldrh r0, [r2, #2] - ldrh r3, [r2, #6] - adds r0, r0, r3 - strh r0, [r2, #6] - b _0807BD98 -_0807BD90: - ldrh r0, [r2, #4] - ldrh r1, [r2] - subs r0, r0, r1 -_0807BD96: - strh r0, [r2, #4] -_0807BD98: - ldr r2, _0807BDB0 @ =gLinkEntity - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2, #0x11] - bl sub_0805E5A8 - movs r0, #1 - b _0807BDB6 - .align 2, 0 -_0807BDB0: .4byte gLinkEntity -_0807BDB4: - movs r0, #0 -_0807BDB6: - pop {r4, r5, pc} - - thumb_func_start sub_0807BDB8 -sub_0807BDB8: @ 0x0807BDB8 - push {r4, r5, lr} - adds r3, r0, #0 - movs r5, #0xff - movs r0, #7 - ands r1, r0 - cmp r1, #7 - bls _0807BDC8 - b _0807BEE2 -_0807BDC8: - lsls r0, r1, #2 - ldr r1, _0807BDD4 @ =_0807BDD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807BDD4: .4byte _0807BDD8 -_0807BDD8: @ jump table - .4byte _0807BDF8 @ case 0 - .4byte _0807BE10 @ case 1 - .4byte _0807BE30 @ case 2 - .4byte _0807BE4C @ case 3 - .4byte _0807BE78 @ case 4 - .4byte _0807BE94 @ case 5 - .4byte _0807BEB4 @ case 6 - .4byte _0807BEC4 @ case 7 -_0807BDF8: - movs r1, #0x32 - ldrsh r0, [r3, r1] - ldr r1, _0807BE0C @ =gUnk_03000BF0 - ldrh r1, [r1, #8] - subs r0, r0, r1 - cmp r0, #9 - bhi _0807BEE2 - movs r5, #0 - b _0807BEE2 - .align 2, 0 -_0807BE0C: .4byte gUnk_03000BF0 -_0807BE10: - movs r2, #0x32 - ldrsh r0, [r3, r2] - ldr r2, _0807BE2C @ =gUnk_03000BF0 - ldrh r1, [r2, #8] - subs r0, r0, r1 - cmp r0, #9 - bhi _0807BE20 - movs r5, #0 -_0807BE20: - ldrh r0, [r2, #0x1e] - subs r0, #0xa - movs r4, #0x2e - ldrsh r1, [r3, r4] - ldrh r2, [r2, #6] - b _0807BE6A - .align 2, 0 -_0807BE2C: .4byte gUnk_03000BF0 -_0807BE30: - ldr r1, _0807BE48 @ =gUnk_03000BF0 - ldrh r2, [r1, #0x1e] - subs r2, #0xa - movs r4, #0x2e - ldrsh r0, [r3, r4] - ldrh r1, [r1, #6] - subs r0, r0, r1 - cmp r2, r0 - bhs _0807BEE2 - movs r5, #1 - b _0807BEE2 - .align 2, 0 -_0807BE48: .4byte gUnk_03000BF0 -_0807BE4C: - ldr r4, _0807BE74 @ =gUnk_03000BF0 - ldrh r0, [r4, #0x20] - subs r0, #0xa - movs r2, #0x32 - ldrsh r1, [r3, r2] - ldrh r2, [r4, #8] - subs r1, r1, r2 - cmp r0, r1 - bhs _0807BE60 - movs r5, #2 -_0807BE60: - ldrh r0, [r4, #0x1e] - subs r0, #0xa - movs r2, #0x2e - ldrsh r1, [r3, r2] - ldrh r2, [r4, #6] -_0807BE6A: - subs r1, r1, r2 - cmp r0, r1 - bhs _0807BEE2 - movs r5, #1 - b _0807BEE2 - .align 2, 0 -_0807BE74: .4byte gUnk_03000BF0 -_0807BE78: - ldr r1, _0807BE90 @ =gUnk_03000BF0 - ldrh r2, [r1, #0x20] - subs r2, #0xa - movs r4, #0x32 - ldrsh r0, [r3, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - cmp r2, r0 - bhs _0807BEE2 - movs r5, #2 - b _0807BEE2 - .align 2, 0 -_0807BE90: .4byte gUnk_03000BF0 -_0807BE94: - ldr r4, _0807BEB0 @ =gUnk_03000BF0 - ldrh r0, [r4, #0x20] - subs r0, #0xa - movs r2, #0x32 - ldrsh r1, [r3, r2] - ldrh r2, [r4, #8] - subs r1, r1, r2 - cmp r0, r1 - bhs _0807BEA8 - movs r5, #2 -_0807BEA8: - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldrh r1, [r4, #6] - b _0807BEDA - .align 2, 0 -_0807BEB0: .4byte gUnk_03000BF0 -_0807BEB4: - movs r2, #0x2e - ldrsh r0, [r3, r2] - ldr r1, _0807BEC0 @ =gUnk_03000BF0 - ldrh r1, [r1, #6] - b _0807BEDA - .align 2, 0 -_0807BEC0: .4byte gUnk_03000BF0 -_0807BEC4: - movs r4, #0x32 - ldrsh r0, [r3, r4] - ldr r2, _0807BEE8 @ =gUnk_03000BF0 - ldrh r1, [r2, #8] - subs r0, r0, r1 - cmp r0, #9 - bhi _0807BED4 - movs r5, #0 -_0807BED4: - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldrh r1, [r2, #6] -_0807BEDA: - subs r0, r0, r1 - cmp r0, #9 - bhi _0807BEE2 - movs r5, #3 -_0807BEE2: - adds r0, r5, #0 - pop {r4, r5, pc} - .align 2, 0 -_0807BEE8: .4byte gUnk_03000BF0 - - thumb_func_start sub_0807BEEC -sub_0807BEEC: @ 0x0807BEEC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - ldr r0, _0807BF04 @ =gUnk_02033A90 - ldrb r1, [r0, #0xd] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0807BF0C - ldr r0, _0807BF08 @ =gUnk_03000BF0 - ldrb r0, [r0, #5] - b _0807BF7C - .align 2, 0 -_0807BF04: .4byte gUnk_02033A90 -_0807BF08: .4byte gUnk_03000BF0 -_0807BF0C: - cmp r2, #1 - beq _0807BF2C - cmp r2, #1 - blo _0807BF1E - cmp r2, #2 - beq _0807BF40 - cmp r2, #3 - beq _0807BF58 - b _0807BF7A -_0807BF1E: - ldr r0, _0807BF28 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - adds r7, r0, #0 - subs r7, #0x10 - b _0807BF60 - .align 2, 0 -_0807BF28: .4byte gUnk_03000BF0 -_0807BF2C: - ldr r0, _0807BF3C @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - ldrh r0, [r0, #0x1e] - adds r1, r1, r0 - adds r6, r1, #0 - adds r6, #0x10 - b _0807BF60 - .align 2, 0 -_0807BF3C: .4byte gUnk_03000BF0 -_0807BF40: - ldr r0, _0807BF50 @ =gUnk_03000BF0 - ldrh r1, [r0, #8] - ldrh r0, [r0, #0x20] - adds r1, r1, r0 - adds r7, r1, #0 - adds r7, #0x10 - b _0807BF60 - .align 2, 0 -_0807BF50: .4byte gUnk_03000BF0 -_0807BF54: - adds r0, r4, #0 - b _0807BF7C -_0807BF58: - ldr r0, _0807BF80 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - adds r6, r0, #0 - subs r6, #0x10 -_0807BF60: - ldr r5, _0807BF84 @ =gUnk_02033ACC - movs r4, #0 -_0807BF64: - adds r0, r6, #0 - adds r1, r7, #0 - adds r2, r5, #0 - bl sub_0807BF88 - cmp r0, #0 - bne _0807BF54 - adds r4, #1 - adds r5, #0x20 - cmp r4, #0x3f - bls _0807BF64 -_0807BF7A: - movs r0, #0xff -_0807BF7C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BF80: .4byte gUnk_03000BF0 -_0807BF84: .4byte gUnk_02033ACC - - thumb_func_start sub_0807BF88 -sub_0807BF88: @ 0x0807BF88 - push {r4, lr} - adds r3, r2, #0 - ldrh r2, [r3, #4] - subs r0, r0, r2 - ldrh r2, [r3, #6] - subs r1, r1, r2 - movs r2, #0 - ldrh r4, [r3] - cmp r0, r4 - bhs _0807BFA4 - ldrh r3, [r3, #2] - cmp r1, r3 - bhs _0807BFA4 - movs r2, #1 -_0807BFA4: - adds r0, r2, #0 - pop {r4, pc} - - thumb_func_start sub_0807BFA8 -sub_0807BFA8: @ 0x0807BFA8 - ldr r2, _0807BFC4 @ =gUnk_03000BF0 - ldr r0, _0807BFC8 @ =gUnk_02033A90 - ldr r1, _0807BFCC @ =0x0000085C - adds r0, r0, r1 - ldr r1, [r0] - ldrh r0, [r1, #4] - strh r0, [r2, #6] - ldrh r0, [r1, #6] - strh r0, [r2, #8] - ldrh r0, [r1] - strh r0, [r2, #0x1e] - ldrh r0, [r1, #2] - strh r0, [r2, #0x20] - bx lr - .align 2, 0 -_0807BFC4: .4byte gUnk_03000BF0 -_0807BFC8: .4byte gUnk_02033A90 -_0807BFCC: .4byte 0x0000085C - - thumb_func_start sub_0807BFD0 -sub_0807BFD0: @ 0x0807BFD0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl sub_0801B170 - bl sub_0807BFA8 - ldr r7, _0807C0B8 @ =0x0000FFFF - ldr r6, _0807C0BC @ =gUnk_0202AEB4 - movs r0, #0x80 - lsls r0, r0, #5 - mov r8, r0 - adds r0, r7, #0 - adds r1, r6, #0 - mov r2, r8 - bl sub_0801D5EC - movs r5, #0 - strh r5, [r6] - ldr r4, _0807C0C0 @ =gUnk_02010654 - adds r0, r7, #0 - adds r1, r4, #0 - mov r2, r8 - bl sub_0801D5EC - strh r5, [r4] - ldr r2, _0807C0C4 @ =gUnk_03000BF0 - ldr r0, _0807C0C8 @ =gUnk_02033A90 - ldr r1, _0807C0CC @ =0x0000085C - adds r4, r0, r1 - ldr r0, [r4] - ldr r1, [r2, #0x34] - ldr r0, [r0, #8] - cmp r1, r0 - beq _0807C01C - str r0, [r2, #0x34] - bl sub_080197D4 -_0807C01C: - ldr r0, [r4] - ldr r0, [r0, #0x10] - bl sub_080197D4 - ldr r1, _0807C0D0 @ =gUnk_020176A0 - adds r0, r1, #0 - adds r0, #0x60 - movs r2, #0xa8 - lsls r2, r2, #2 - adds r1, r1, r2 - movs r2, #0x20 - bl sub_0801D66C - ldr r2, _0807C0D4 @ =gUnk_0200B644 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r2] - ldr r0, [r4] - ldr r0, [r0, #0x14] - cmp r0, #0 - beq _0807C04E - bl sub_0801B130 -_0807C04E: - adds r5, r6, #0 - movs r0, #0x80 - lsls r0, r0, #5 - adds r6, r5, r0 - adds r0, r7, #0 - adds r1, r6, #0 - mov r2, r8 - bl sub_0801D5EC - movs r2, #0 - ldr r3, _0807C0D8 @ =0x000007FF - adds r4, r7, #0 -_0807C066: - ldrh r0, [r5] - cmp r0, r3 - bhi _0807C078 - lsls r0, r0, #1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, r4 - bne _0807C078 - strh r2, [r1] -_0807C078: - adds r2, #1 - adds r5, #2 - cmp r2, r3 - ble _0807C066 - movs r2, #0x80 - lsls r2, r2, #5 - ldr r5, _0807C0C0 @ =gUnk_02010654 - adds r6, r5, r2 - ldr r4, _0807C0B8 @ =0x0000FFFF - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0801D5EC - movs r2, #0 - ldr r3, _0807C0D8 @ =0x000007FF -_0807C096: - ldrh r0, [r5] - cmp r0, r3 - bhi _0807C0A8 - lsls r0, r0, #1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, r4 - bne _0807C0A8 - strh r2, [r1] -_0807C0A8: - adds r2, #1 - adds r5, #2 - cmp r2, r3 - ble _0807C096 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807C0B8: .4byte 0x0000FFFF -_0807C0BC: .4byte gUnk_0202AEB4 -_0807C0C0: .4byte gUnk_02010654 -_0807C0C4: .4byte gUnk_03000BF0 -_0807C0C8: .4byte gUnk_02033A90 -_0807C0CC: .4byte 0x0000085C -_0807C0D0: .4byte gUnk_020176A0 -_0807C0D4: .4byte gUnk_0200B644 -_0807C0D8: .4byte 0x000007FF - - thumb_func_start sub_0807C0DC -sub_0807C0DC: @ 0x0807C0DC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - bl sub_0807BFA8 - ldr r7, _0807C158 @ =gUnk_03000BF0 - ldrb r1, [r7, #0xf] - movs r0, #0xfc - ands r0, r1 - strb r0, [r7, #0xf] - ldr r5, _0807C15C @ =gUnk_0200B654 - movs r6, #0x80 - lsls r6, r6, #6 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D630 - adds r0, r5, r6 - movs r1, #0x80 - lsls r1, r1, #5 - bl sub_0801D630 - ldr r0, _0807C160 @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _0807C164 @ =gUnk_02002F00 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _0807C168 @ =gUnk_02033A90 - ldr r1, _0807C16C @ =0x0000085C - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0, #0xc] - bl sub_080197D4 - ldr r2, _0807C170 @ =gUnk_02025EB0 - ldrh r1, [r2, #4] - ldr r0, _0807C174 @ =0x0000FFFF - cmp r1, r0 - beq _0807C178 - adds r0, r2, #4 - ldrh r1, [r7, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r7, #0x20] - lsrs r2, r2, #4 - bl sub_0807C8B0 - ldrh r1, [r7, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r7, #0x20] - lsrs r2, r2, #4 - adds r0, r5, #0 - bl sub_0807C8B0 - movs r2, #0 - mov sb, r2 - b _0807C184 - .align 2, 0 -_0807C158: .4byte gUnk_03000BF0 -_0807C15C: .4byte gUnk_0200B654 -_0807C160: .4byte gUnk_02019EE0 -_0807C164: .4byte gUnk_02002F00 -_0807C168: .4byte gUnk_02033A90 -_0807C16C: .4byte 0x0000085C -_0807C170: .4byte gUnk_02025EB0 -_0807C174: .4byte 0x0000FFFF -_0807C178: - adds r0, r2, #4 - adds r1, r6, #0 - bl sub_0801D630 - movs r3, #1 - mov sb, r3 -_0807C184: - ldr r0, _0807C1B0 @ =gUnk_030010A0 - adds r0, #0x2d - ldrb r0, [r0] - cmp r0, #0 - bne _0807C1BC - ldr r0, _0807C1B4 @ =gUnk_02025EB4 - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r0, r2 - movs r4, #0x80 - lsls r4, r4, #6 - adds r2, r4, #0 - bl sub_0801D66C - ldr r0, _0807C1B8 @ =gUnk_0200B654 - movs r3, #0xc0 - lsls r3, r3, #6 - adds r1, r0, r3 - adds r2, r4, #0 - bl sub_0801D66C - b _0807C26C - .align 2, 0 -_0807C1B0: .4byte gUnk_030010A0 -_0807C1B4: .4byte gUnk_02025EB4 -_0807C1B8: .4byte gUnk_0200B654 -_0807C1BC: - cmp r0, #2 - bne _0807C26C - ldr r4, _0807C278 @ =gUnk_02025EB4 - movs r0, #0xb0 - lsls r0, r0, #8 - adds r0, r0, r4 - mov r8, r0 - movs r5, #0x80 - lsls r5, r5, #5 - adds r0, r4, #0 - mov r1, r8 - adds r2, r5, #0 - bl sub_0801D66C - movs r1, #0xc0 - lsls r1, r1, #6 - adds r6, r4, r1 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0801D66C - mov r0, r8 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_0801D66C - adds r6, r4, r5 - adds r0, r6, #0 - mov r1, r8 - adds r2, r5, #0 - bl sub_0801D66C - movs r2, #0x80 - lsls r2, r2, #7 - adds r4, r4, r2 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_0801D66C - mov r0, r8 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0801D66C - ldr r4, _0807C27C @ =gUnk_0200B654 - movs r3, #0xb0 - lsls r3, r3, #8 - adds r3, r3, r4 - mov r8, r3 - adds r0, r4, #0 - mov r1, r8 - adds r2, r5, #0 - bl sub_0801D66C - movs r0, #0xc0 - lsls r0, r0, #6 - adds r6, r4, r0 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0801D66C - mov r0, r8 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_0801D66C - adds r6, r4, r5 - adds r0, r6, #0 - mov r1, r8 - adds r2, r5, #0 - bl sub_0801D66C - movs r1, #0x80 - lsls r1, r1, #7 - adds r4, r4, r1 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_0801D66C - mov r0, r8 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0801D66C -_0807C26C: - mov r2, sb - cmp r2, #0 - bne _0807C280 - bl sub_0807BBE4 - b _0807C2A0 - .align 2, 0 -_0807C278: .4byte gUnk_02025EB4 -_0807C27C: .4byte gUnk_0200B654 -_0807C280: - ldr r0, _0807C2CC @ =gUnk_02027EB4 - ldrh r1, [r7, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r7, #0x20] - lsrs r2, r2, #4 - bl sub_0807C69C - ldr r0, _0807C2D0 @ =gUnk_0200D654 - ldrh r1, [r7, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r7, #0x20] - lsrs r2, r2, #4 - bl sub_0807C69C - bl sub_0807C460 -_0807C2A0: - bl sub_0807BC84 - ldr r4, _0807C2D4 @ =gUnk_02025EB0 - adds r0, r4, #0 - bl sub_08080B60 - ldr r5, _0807C2D8 @ =gUnk_0200B650 - adds r0, r5, #0 - bl sub_08080B60 - mov r3, sb - cmp r3, #0 - bne _0807C2E4 - ldr r0, _0807C2DC @ =gUnk_02019EE0 - adds r1, r4, #0 - bl sub_0801AB08 - ldr r0, _0807C2E0 @ =gUnk_02002F00 - adds r1, r5, #0 - bl sub_0801AB08 - b _0807C326 - .align 2, 0 -_0807C2CC: .4byte gUnk_02027EB4 -_0807C2D0: .4byte gUnk_0200D654 -_0807C2D4: .4byte gUnk_02025EB0 -_0807C2D8: .4byte gUnk_0200B650 -_0807C2DC: .4byte gUnk_02019EE0 -_0807C2E0: .4byte gUnk_02002F00 -_0807C2E4: - ldr r4, _0807C34C @ =gUnk_02019EE0 - movs r0, #0x80 - lsls r0, r0, #7 - adds r5, r4, r0 - adds r6, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0801D66C - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807C5F4 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D630 - ldr r4, _0807C350 @ =gUnk_02002F00 - adds r5, r4, r6 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0801D66C - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807C5F4 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D630 -_0807C326: - mov r1, sb - cmp r1, #0 - bne _0807C332 - ldrb r0, [r7, #4] - cmp r0, #0x71 - bne _0807C33A -_0807C332: - ldrb r1, [r7, #0xf] - movs r0, #1 - orrs r0, r1 - strb r0, [r7, #0xf] -_0807C33A: - ldrb r0, [r7, #4] - subs r0, #0x20 - cmp r0, #0x18 - bhi _0807C400 - lsls r0, r0, #2 - ldr r1, _0807C354 @ =_0807C358 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807C34C: .4byte gUnk_02019EE0 -_0807C350: .4byte gUnk_02002F00 -_0807C354: .4byte _0807C358 -_0807C358: @ jump table - .4byte _0807C3BC @ case 0 - .4byte _0807C3E4 @ case 1 - .4byte _0807C3E4 @ case 2 - .4byte _0807C3E4 @ case 3 - .4byte _0807C3E4 @ case 4 - .4byte _0807C3E4 @ case 5 - .4byte _0807C400 @ case 6 - .4byte _0807C3E4 @ case 7 - .4byte _0807C3E4 @ case 8 - .4byte _0807C400 @ case 9 - .4byte _0807C400 @ case 10 - .4byte _0807C400 @ case 11 - .4byte _0807C400 @ case 12 - .4byte _0807C3BC @ case 13 - .4byte _0807C400 @ case 14 - .4byte _0807C400 @ case 15 - .4byte _0807C3E4 @ case 16 - .4byte _0807C400 @ case 17 - .4byte _0807C400 @ case 18 - .4byte _0807C400 @ case 19 - .4byte _0807C400 @ case 20 - .4byte _0807C400 @ case 21 - .4byte _0807C400 @ case 22 - .4byte _0807C400 @ case 23 - .4byte _0807C3E4 @ case 24 -_0807C3BC: - ldr r0, _0807C3D8 @ =gUnk_02025EB0 - ldr r2, [r0] - cmp r2, #0 - beq _0807C3CC - ldrh r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strh r0, [r2] -_0807C3CC: - ldr r2, _0807C3DC @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0807C3E0 @ =0x0000FDFF - ands r0, r1 - strh r0, [r2] - b _0807C444 - .align 2, 0 -_0807C3D8: .4byte gUnk_02025EB0 -_0807C3DC: .4byte gUnk_03000F50 -_0807C3E0: .4byte 0x0000FDFF -_0807C3E4: - ldr r0, _0807C3F8 @ =gUnk_0200B650 - ldr r1, [r0] - cmp r1, #0 - beq _0807C3F2 - ldr r0, _0807C3FC @ =gUnk_080B77C0 - ldrh r0, [r0, #4] - strh r0, [r1] -_0807C3F2: - bl sub_0807C5B0 - b _0807C444 - .align 2, 0 -_0807C3F8: .4byte gUnk_0200B650 -_0807C3FC: .4byte gUnk_080B77C0 -_0807C400: - ldr r0, _0807C44C @ =gUnk_02025EB0 - ldr r1, [r0] - cmp r1, #0 - beq _0807C40E - ldr r0, _0807C450 @ =gUnk_080B77C0 - ldrh r0, [r0] - strh r0, [r1] -_0807C40E: - ldr r0, _0807C454 @ =gUnk_0200B650 - ldr r1, [r0] - cmp r1, #0 - beq _0807C41C - ldr r0, _0807C450 @ =gUnk_080B77C0 - ldrh r0, [r0, #2] - strh r0, [r1] -_0807C41C: - ldr r2, _0807C458 @ =gUnk_03000F50 - ldrh r0, [r2] - movs r1, #0x80 - lsls r1, r1, #4 - ands r1, r0 - movs r3, #0xba - lsls r3, r3, #5 - adds r0, r3, #0 - movs r3, #0 - orrs r1, r0 - strh r1, [r2] - ldr r0, _0807C45C @ =gUnk_02033A90 - ldrb r0, [r0, #0xc] - cmp r0, #0 - beq _0807C444 - movs r3, #0xa0 - lsls r3, r3, #8 - adds r0, r3, #0 - orrs r1, r0 - strh r1, [r2] -_0807C444: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807C44C: .4byte gUnk_02025EB0 -_0807C450: .4byte gUnk_080B77C0 -_0807C454: .4byte gUnk_0200B650 -_0807C458: .4byte gUnk_03000F50 -_0807C45C: .4byte gUnk_02033A90 - - thumb_func_start sub_0807C460 -sub_0807C460: @ 0x0807C460 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r7, _0807C4E8 @ =gUnk_02025EB4 - ldr r6, _0807C4EC @ =gUnk_0200B654 - ldr r0, _0807C4F0 @ =gUnk_03000BF0 - ldrh r1, [r0, #0x1e] - lsrs r3, r1, #4 - ldrh r0, [r0, #0x20] - lsrs r0, r0, #4 - str r0, [sp] - movs r4, #0 - movs r1, #0 - cmp r1, r0 - bhs _0807C4DC - movs r0, #0x40 - subs r0, r0, r3 - lsls r0, r0, #1 - mov sb, r0 -_0807C48C: - movs r5, #0 - adds r1, #1 - mov sl, r1 - cmp r5, r3 - bhs _0807C4CA - ldr r0, _0807C4F4 @ =0x00003FFF - mov r8, r0 -_0807C49A: - ldrh r0, [r7] - cmp r0, r8 - bls _0807C4AC - adds r1, r4, #0 - movs r2, #1 - str r3, [sp, #4] - bl sub_0800015E - ldr r3, [sp, #4] -_0807C4AC: - ldrh r0, [r6] - cmp r0, r8 - bls _0807C4BE - adds r1, r4, #0 - movs r2, #2 - str r3, [sp, #4] - bl sub_0800015E - ldr r3, [sp, #4] -_0807C4BE: - adds r7, #2 - adds r6, #2 - adds r4, #1 - adds r5, #1 - cmp r5, r3 - blo _0807C49A -_0807C4CA: - add r7, sb - add r6, sb - adds r0, r4, #0 - adds r0, #0x40 - subs r4, r0, r3 - mov r1, sl - ldr r0, [sp] - cmp r1, r0 - blo _0807C48C -_0807C4DC: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807C4E8: .4byte gUnk_02025EB4 -_0807C4EC: .4byte gUnk_0200B654 -_0807C4F0: .4byte gUnk_03000BF0 -_0807C4F4: .4byte 0x00003FFF - - thumb_func_start sub_0807C4F8 -sub_0807C4F8: @ 0x0807C4F8 - push {r4, r5, r6, lr} - ldr r0, _0807C594 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #0x71 - beq _0807C592 - ldr r0, _0807C598 @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _0807C59C @ =gUnk_02002F00 - adds r1, r4, #0 - bl sub_0801D630 - ldr r5, _0807C5A0 @ =gUnk_02022830 - ldr r0, _0807C5A4 @ =gUnk_02033A90 - ldr r1, _0807C5A8 @ =0x0000085C - adds r0, r0, r1 - ldr r0, [r0] - ldr r4, [r0, #0xc] - subs r4, #0xc -_0807C524: - adds r4, #0xc - ldr r1, [r4, #4] - ldr r0, _0807C598 @ =gUnk_02019EE0 - cmp r1, r0 - beq _0807C534 - ldr r0, _0807C59C @ =gUnk_02002F00 - cmp r1, r0 - bne _0807C54A -_0807C534: - ldr r0, [r4] - ldr r1, _0807C5AC @ =0x7FFFFFFF - ands r0, r1 - str r0, [r5] - ldr r0, [r4, #4] - str r0, [r5, #4] - ldr r0, [r4, #8] - str r0, [r5, #8] - adds r0, r5, #0 - bl sub_080197D4 -_0807C54A: - ldr r0, [r4] - cmp r0, #0 - blt _0807C524 - ldr r4, _0807C598 @ =gUnk_02019EE0 - movs r0, #0x80 - lsls r0, r0, #7 - adds r5, r4, r0 - adds r6, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0801D66C - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807C5F4 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D630 - ldr r4, _0807C59C @ =gUnk_02002F00 - adds r5, r4, r6 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0801D66C - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807C5F4 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D630 -_0807C592: - pop {r4, r5, r6, pc} - .align 2, 0 -_0807C594: .4byte gUnk_03000BF0 -_0807C598: .4byte gUnk_02019EE0 -_0807C59C: .4byte gUnk_02002F00 -_0807C5A0: .4byte gUnk_02022830 -_0807C5A4: .4byte gUnk_02033A90 -_0807C5A8: .4byte 0x0000085C -_0807C5AC: .4byte 0x7FFFFFFF - - thumb_func_start sub_0807C5B0 -sub_0807C5B0: @ 0x0807C5B0 - push {r4, r5, r6, lr} - ldr r5, _0807C5E8 @ =gUnk_0200D654 - movs r4, #0x80 - lsls r4, r4, #5 - movs r3, #0 - ldr r6, _0807C5EC @ =gUnk_03000BF0 - ldr r2, _0807C5F0 @ =gUnk_02027EB4 -_0807C5BE: - adds r0, r5, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _0807C5D4 - cmp r0, #0xf - bhi _0807C5D2 - ldrb r1, [r2] - cmp r1, #0xf - bhi _0807C5D4 - orrs r0, r1 -_0807C5D2: - strb r0, [r2] -_0807C5D4: - adds r2, #1 - adds r3, #1 - cmp r3, r4 - blo _0807C5BE - ldrb r1, [r6, #0xf] - movs r0, #2 - orrs r0, r1 - strb r0, [r6, #0xf] - pop {r4, r5, r6, pc} - .align 2, 0 -_0807C5E8: .4byte gUnk_0200D654 -_0807C5EC: .4byte gUnk_03000BF0 -_0807C5F0: .4byte gUnk_02027EB4 - - thumb_func_start sub_0807C5F4 -sub_0807C5F4: @ 0x0807C5F4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - movs r0, #0x20 - ldr r6, _0807C698 @ =gUnk_03000BF0 -_0807C5FE: - movs r3, #0 - subs r4, r0, #1 -_0807C602: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - adds r3, #1 - cmp r3, #0x1f - bls _0807C602 - adds r2, #0xc0 - adds r0, r4, #0 - cmp r0, #0 - bne _0807C5FE - ldrh r0, [r6, #0x1e] - cmp r0, #0xff - bls _0807C63E - adds r2, r5, #0 - adds r2, #0x40 - movs r0, #0x20 -_0807C624: - movs r3, #0 - subs r4, r0, #1 -_0807C628: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - adds r3, #1 - cmp r3, #0x1f - bls _0807C628 - adds r2, #0xc0 - adds r0, r4, #0 - cmp r0, #0 - bne _0807C624 -_0807C63E: - ldrh r0, [r6, #0x20] - cmp r0, #0xff - bls _0807C666 - movs r0, #0x80 - lsls r0, r0, #6 - adds r2, r5, r0 - movs r0, #0x20 -_0807C64C: - movs r3, #0 - subs r4, r0, #1 -_0807C650: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - adds r3, #1 - cmp r3, #0x1f - bls _0807C650 - adds r2, #0xc0 - adds r0, r4, #0 - cmp r0, #0 - bne _0807C64C -_0807C666: - ldrh r0, [r6, #0x1e] - cmp r0, #0xff - bls _0807C694 - ldrh r0, [r6, #0x20] - cmp r0, #0xff - bls _0807C694 - movs r0, #0x81 - lsls r0, r0, #6 - adds r2, r5, r0 - movs r0, #0x20 -_0807C67A: - movs r3, #0 - subs r4, r0, #1 -_0807C67E: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - adds r3, #1 - cmp r3, #0x1f - bls _0807C67E - adds r2, #0xc0 - adds r0, r4, #0 - cmp r0, #0 - bne _0807C67A -_0807C694: - pop {r4, r5, r6, pc} - .align 2, 0 -_0807C698: .4byte gUnk_03000BF0 - - thumb_func_start sub_0807C69C -sub_0807C69C: @ 0x0807C69C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r6, r1, #0 - mov r8, r2 - mov r0, r8 - muls r0, r6, r0 - add r0, sb - subs r2, r0, #1 - mov r0, r8 - subs r0, #1 - lsls r0, r0, #6 - add r0, sb - subs r1, r6, #1 - adds r4, r0, r1 - movs r5, #0 - cmp r5, r8 - bhs _0807C6EA -_0807C6C4: - movs r3, #0 - adds r7, r4, #0 - subs r7, #0x40 - subs r0, r2, r6 - mov ip, r0 - cmp r3, r6 - bhs _0807C6E0 -_0807C6D2: - subs r0, r4, r3 - subs r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, #1 - cmp r3, r6 - blo _0807C6D2 -_0807C6E0: - adds r4, r7, #0 - mov r2, ip - adds r5, #1 - cmp r5, r8 - blo _0807C6C4 -_0807C6EA: - movs r0, #0x40 - subs r7, r0, r6 - movs r5, #0 - mov r1, r8 - lsls r2, r1, #6 - mov r0, sb - adds r1, r0, r6 -_0807C6F8: - lsls r0, r5, #6 - adds r4, r1, r0 - movs r3, #0 - adds r6, r5, #1 - cmp r3, r7 - bhs _0807C710 - movs r5, #0 -_0807C706: - adds r0, r4, r3 - strb r5, [r0] - adds r3, #1 - cmp r3, r7 - blo _0807C706 -_0807C710: - adds r5, r6, #0 - cmp r5, #0x3f - bls _0807C6F8 - movs r0, #0x40 - mov r1, r8 - subs r7, r0, r1 - mov r0, sb - adds r4, r0, r2 - movs r5, #0 - cmp r5, r7 - bhs _0807C736 -_0807C726: - adds r0, r4, #0 - movs r1, #0x40 - bl sub_0801D630 - adds r4, #0x40 - adds r5, #1 - cmp r5, r7 - blo _0807C726 -_0807C736: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807C740 -sub_0807C740: @ 0x0807C740 - push {r4, r5, lr} - bl sub_0807BFD0 - bl sub_0807C0DC - ldr r4, _0807C780 @ =gUnk_03000BF0 - ldr r2, [r4, #0x30] - cmp r2, #0 - beq _0807C788 - ldrh r1, [r2, #0x2e] - lsls r0, r1, #0x10 - cmp r0, #0 - bge _0807C764 - ldr r0, _0807C784 @ =0x00007FFF - ands r0, r1 - ldrh r1, [r4, #6] - subs r0, r0, r1 - strh r0, [r2, #0x2e] -_0807C764: - movs r0, #0x2e - ldrsh r3, [r2, r0] - ldrh r1, [r2, #0x32] - lsls r0, r1, #0x10 - cmp r0, #0 - bge _0807C77A - ldr r0, _0807C784 @ =0x00007FFF - ands r0, r1 - ldrh r1, [r4, #8] - subs r0, r0, r1 - strh r0, [r2, #0x32] -_0807C77A: - movs r0, #0x32 - ldrsh r5, [r2, r0] - b _0807C78C - .align 2, 0 -_0807C780: .4byte gUnk_03000BF0 -_0807C784: .4byte 0x00007FFF -_0807C788: - movs r3, #0 - movs r5, #0 -_0807C78C: - cmp r3, #0x77 - bgt _0807C794 - movs r0, #0 - b _0807C7A2 -_0807C794: - ldrh r1, [r4, #0x1e] - adds r0, r1, #0 - subs r0, #0x78 - cmp r0, r3 - blt _0807C7A0 - adds r0, r3, #0 -_0807C7A0: - subs r0, #0x78 -_0807C7A2: - strh r0, [r4, #0xa] - ldrh r1, [r4, #6] - ldrh r2, [r4, #0xa] - adds r0, r1, r2 - strh r0, [r4, #0xa] - cmp r5, #0x4f - bgt _0807C7B4 - movs r0, #0 - b _0807C7C2 -_0807C7B4: - ldrh r2, [r4, #0x20] - adds r0, r2, #0 - subs r0, #0x50 - cmp r0, r5 - blt _0807C7C0 - adds r0, r5, #0 -_0807C7C0: - subs r0, #0x50 -_0807C7C2: - strh r0, [r4, #0xc] - ldrh r0, [r4, #8] - ldrh r3, [r4, #0xc] - adds r0, r0, r3 - strh r0, [r4, #0xc] - ldr r2, [r4, #0x30] - cmp r2, #0 - beq _0807C7FC - ldrh r3, [r2, #0x2e] - adds r0, r1, r3 - strh r0, [r2, #0x2e] - ldr r1, [r4, #0x30] - ldrh r0, [r4, #8] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] - ldr r0, _0807C80C @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807C7FC - ldr r0, [r4, #0x30] - adds r0, #0x38 - movs r1, #1 - strb r1, [r0] - ldr r0, [r4, #0x30] - bl sub_08016A04 -_0807C7FC: - ldrb r1, [r4, #0xf] - movs r0, #0xfb - ands r0, r1 - strb r0, [r4, #0xf] - bl sub_08080BC4 - pop {r4, r5, pc} - .align 2, 0 -_0807C80C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0807C810 -sub_0807C810: @ 0x0807C810 - push {r4, r5, r6, lr} - bl sub_0807BFD0 - ldr r2, _0807C850 @ =gUnk_03004030 - ldr r6, _0807C854 @ =gLinkEntity - ldr r4, _0807C858 @ =gUnk_03000BF0 - ldr r3, [r2] - ldrh r1, [r3, #6] - movs r0, #0x3f - ands r0, r1 - lsls r0, r0, #4 - ldrh r1, [r4, #6] - adds r0, r0, r1 - ldrh r1, [r2, #4] - adds r1, r1, r0 - movs r5, #0 - strh r1, [r6, #0x2e] - ldrh r1, [r3, #6] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r1 - lsrs r0, r0, #2 - ldrh r4, [r4, #8] - adds r0, r0, r4 - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r6, #0x32] - bl sub_080809D4 - ldr r0, _0807C85C @ =gUnk_02000070 - strb r5, [r0] - pop {r4, r5, r6, pc} - .align 2, 0 -_0807C850: .4byte gUnk_03004030 -_0807C854: .4byte gLinkEntity -_0807C858: .4byte gUnk_03000BF0 -_0807C85C: .4byte gUnk_02000070 - - thumb_func_start sub_0807C860 -sub_0807C860: @ 0x0807C860 - push {r4, lr} - ldr r0, _0807C88C @ =gUnk_030010A0 - adds r0, #0x2d - movs r1, #1 - strb r1, [r0] - ldr r0, _0807C890 @ =gUnk_02025EB4 - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r0, r2 - movs r4, #0x80 - lsls r4, r4, #6 - adds r2, r4, #0 - bl sub_0801D66C - ldr r0, _0807C894 @ =gUnk_0200B654 - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r0, r2 - adds r2, r4, #0 - bl sub_0801D66C - pop {r4, pc} - .align 2, 0 -_0807C88C: .4byte gUnk_030010A0 -_0807C890: .4byte gUnk_02025EB4 -_0807C894: .4byte gUnk_0200B654 - - thumb_func_start sub_0807C898 -sub_0807C898: @ 0x0807C898 - push {r4, r5, lr} - ldr r4, _0807C8AC @ =gUnk_030010A0 - adds r4, #0x2d - movs r5, #0 - movs r0, #2 - strb r0, [r4] - bl sub_0807C0DC - strb r5, [r4] - pop {r4, r5, pc} - .align 2, 0 -_0807C8AC: .4byte gUnk_030010A0 - - thumb_func_start sub_0807C8B0 -sub_0807C8B0: @ 0x0807C8B0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - adds r4, r1, #0 - mov ip, r2 - mov r0, ip - muls r0, r4, r0 - lsls r0, r0, #1 - add r0, r8 - subs r7, r0, #2 - mov r0, ip - subs r0, #1 - lsls r0, r0, #7 - add r0, r8 - lsls r3, r4, #1 - subs r1, r3, #2 - adds r0, r0, r1 - movs r5, #0 - cmp r5, ip - bhs _0807C906 - mov sb, r3 -_0807C8DE: - movs r2, #0 - adds r6, r0, #0 - subs r6, #0x80 - cmp r2, r4 - bhs _0807C8FA - adds r1, r7, #0 - adds r3, r0, #0 -_0807C8EC: - ldrh r0, [r1] - strh r0, [r3] - subs r1, #2 - subs r3, #2 - adds r2, #1 - cmp r2, r4 - blo _0807C8EC -_0807C8FA: - adds r0, r6, #0 - mov r1, sb - subs r7, r7, r1 - adds r5, #1 - cmp r5, ip - blo _0807C8DE -_0807C906: - movs r0, #0x40 - subs r6, r0, r4 - movs r5, #0 - lsls r0, r4, #1 - mov r2, ip - lsls r7, r2, #7 - mov r2, r8 - adds r1, r2, r0 -_0807C916: - lsls r0, r5, #7 - adds r0, r1, r0 - movs r2, #0 - adds r3, r5, #1 - cmp r2, r6 - bhs _0807C92E - movs r4, #0 -_0807C924: - strh r4, [r0] - adds r0, #2 - adds r2, #1 - cmp r2, r6 - blo _0807C924 -_0807C92E: - adds r5, r3, #0 - cmp r5, #0x3f - bls _0807C916 - movs r0, #0x40 - mov r1, ip - subs r6, r0, r1 - mov r2, r8 - adds r0, r2, r7 - movs r5, #0 - cmp r5, r6 - bhs _0807C956 - adds r4, r0, #0 -_0807C946: - adds r0, r4, #0 - movs r1, #0x80 - bl sub_0801D630 - adds r4, #0x80 - adds r5, #1 - cmp r5, r6 - blo _0807C946 -_0807C956: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807C960 -sub_0807C960: @ 0x0807C960 - push {lr} - adds r2, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0807C994 - ldr r0, _0807C984 @ =0x7FFFFFFF - ands r0, r1 - ldr r1, _0807C988 @ =gUnk_08324AE4 - adds r1, r0, r1 - lsrs r0, r2, #0x18 - cmp r0, #6 - bne _0807C98C - adds r0, r1, #0 - adds r1, r2, #0 - bl LZ77UnCompVram - b _0807C994 - .align 2, 0 -_0807C984: .4byte 0x7FFFFFFF -_0807C988: .4byte gUnk_08324AE4 -_0807C98C: - adds r0, r1, #0 - adds r1, r2, #0 - bl LZ77UnCompWram -_0807C994: - pop {pc} - .align 2, 0 \ No newline at end of file diff --git a/asm/code_0807B9B8.s b/asm/code_0807B9B8.s new file mode 100644 index 00000000..e95050b1 --- /dev/null +++ b/asm/code_0807B9B8.s @@ -0,0 +1,2028 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0807B9B8 +sub_0807B9B8: @ 0x0807B9B8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0801AF8C + adds r0, r6, #0 + bl sub_0808094C + adds r5, r0, #0 + lsls r1, r4, #1 + adds r0, r5, #4 + adds r0, r0, r1 + strh r7, [r0] + lsls r1, r7, #1 + ldr r2, _0807BA24 @ =0x00005004 + adds r0, r5, r2 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r0, _0807BA28 @ =0x00002004 + adds r1, r5, r0 + adds r1, r1, r4 + ldr r0, _0807BA2C @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0807BA30 @ =0x0000B004 + adds r1, r5, r0 + adds r1, r1, r4 + ldr r0, _0807BA34 @ =gUnk_080B37A0 + adds r2, r2, r0 + ldrb r0, [r2] + strb r0, [r1] + ldr r0, _0807BA38 @ =gRoomControls + ldrb r1, [r0, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807BA78 + movs r1, #0x3f + ands r1, r4 + lsls r1, r1, #1 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + cmp r6, #2 + beq _0807BA40 + lsls r1, r1, #1 + ldr r0, _0807BA3C @ =gUnk_02019EE0 + b _0807BA44 + .align 2, 0 +_0807BA24: .4byte 0x00005004 +_0807BA28: .4byte 0x00002004 +_0807BA2C: .4byte gUnk_080B3E80 +_0807BA30: .4byte 0x0000B004 +_0807BA34: .4byte gUnk_080B37A0 +_0807BA38: .4byte gRoomControls +_0807BA3C: .4byte gUnk_02019EE0 +_0807BA40: + lsls r1, r1, #1 + ldr r0, _0807BA7C @ =gUnk_02002F00 +_0807BA44: + adds r3, r1, r0 + lsls r0, r7, #3 + ldr r1, _0807BA80 @ =0x00007004 + adds r0, r0, r1 + adds r0, r5, r0 + ldrh r1, [r0] + strh r1, [r3] + ldrh r1, [r0, #2] + strh r1, [r3, #2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r3, r1 + ldrh r1, [r0, #4] + strh r1, [r2] + movs r2, #0x81 + lsls r2, r2, #1 + adds r1, r3, r2 + ldrh r0, [r0, #6] + strh r0, [r1] + ldr r0, _0807BA84 @ =gRoomControls + ldrh r0, [r0] + cmp r0, #1 + beq _0807BA78 + ldr r1, _0807BA88 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807BA78: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BA7C: .4byte gUnk_02002F00 +_0807BA80: .4byte 0x00007004 +_0807BA84: .4byte gRoomControls +_0807BA88: .4byte gUnk_02000070 + + thumb_func_start sub_0807BA8C +sub_0807BA8C: @ 0x0807BA8C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + bl sub_0801AF8C + adds r0, r7, #0 + bl sub_0808094C + adds r5, r0, #0 + lsls r2, r4, #1 + adds r1, r5, #4 + adds r1, r1, r2 + ldr r3, _0807BAFC @ =0x00003004 + adds r0, r5, r3 + adds r0, r0, r2 + ldrh r6, [r0] + strh r6, [r1] + lsls r1, r6, #1 + ldr r2, _0807BB00 @ =0x00005004 + adds r0, r5, r2 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r3, _0807BB04 @ =0x00002004 + adds r1, r5, r3 + adds r1, r1, r4 + ldr r0, _0807BB08 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0807BB0C @ =0x0000B004 + adds r1, r5, r0 + adds r1, r1, r4 + ldr r0, _0807BB10 @ =gUnk_080B37A0 + adds r2, r2, r0 + ldrb r0, [r2] + strb r0, [r1] + ldr r0, _0807BB14 @ =gRoomControls + ldrb r1, [r0, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807BB54 + movs r1, #0x3f + ands r1, r4 + lsls r1, r1, #1 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + cmp r7, #2 + beq _0807BB1C + lsls r1, r1, #1 + ldr r0, _0807BB18 @ =gUnk_02019EE0 + b _0807BB20 + .align 2, 0 +_0807BAFC: .4byte 0x00003004 +_0807BB00: .4byte 0x00005004 +_0807BB04: .4byte 0x00002004 +_0807BB08: .4byte gUnk_080B3E80 +_0807BB0C: .4byte 0x0000B004 +_0807BB10: .4byte gUnk_080B37A0 +_0807BB14: .4byte gRoomControls +_0807BB18: .4byte gUnk_02019EE0 +_0807BB1C: + lsls r1, r1, #1 + ldr r0, _0807BB58 @ =gUnk_02002F00 +_0807BB20: + adds r3, r1, r0 + lsls r0, r6, #3 + ldr r1, _0807BB5C @ =0x00007004 + adds r0, r0, r1 + adds r0, r5, r0 + ldrh r1, [r0] + strh r1, [r3] + ldrh r1, [r0, #2] + strh r1, [r3, #2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r3, r1 + ldrh r1, [r0, #4] + strh r1, [r2] + movs r2, #0x81 + lsls r2, r2, #1 + adds r1, r3, r2 + ldrh r0, [r0, #6] + strh r0, [r1] + ldr r0, _0807BB60 @ =gRoomControls + ldrh r0, [r0] + cmp r0, #1 + beq _0807BB54 + ldr r1, _0807BB64 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807BB54: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BB58: .4byte gUnk_02002F00 +_0807BB5C: .4byte 0x00007004 +_0807BB60: .4byte gRoomControls +_0807BB64: .4byte gUnk_02000070 + + thumb_func_start sub_0807BB68 +sub_0807BB68: @ 0x0807BB68 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0807BB96 + adds r7, r1, #0 +_0807BB7E: + ldrh r0, [r4] + movs r2, #2 + ldrsh r1, [r4, r2] + adds r1, r6, r1 + adds r2, r5, #0 + bl sub_0807B314 + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r7 + bne _0807BB7E +_0807BB96: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807BB98 +sub_0807BB98: @ 0x0807BB98 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + mov sl, r1 + mov r8, r2 + mov sb, r3 + movs r0, #0 + cmp r0, sb + bhs _0807BBD4 +_0807BBB0: + movs r4, #0 + adds r7, r5, #0 + adds r7, #0x40 + adds r6, r0, #1 + cmp r4, r8 + bhs _0807BBCC +_0807BBBC: + adds r1, r5, r4 + ldr r0, _0807BBE0 @ =0x00004072 + mov r2, sl + bl sub_0800015E + adds r4, #1 + cmp r4, r8 + blo _0807BBBC +_0807BBCC: + adds r5, r7, #0 + adds r0, r6, #0 + cmp r0, sb + blo _0807BBB0 +_0807BBD4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BBE0: .4byte 0x00004072 + + thumb_func_start sub_0807BBE4 +sub_0807BBE4: @ 0x0807BBE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _0807BC28 @ =gUnk_0202AEB4 + mov sl, r0 + ldr r0, _0807BC2C @ =gUnk_02010654 + mov sb, r0 + ldr r5, _0807BC30 @ =0xFFFFB000 + add r5, sl + ldr r4, _0807BC30 @ =0xFFFFB000 + add r4, sb + ldr r2, _0807BC34 @ =0xFFFFD000 + add r2, sl + ldr r1, _0807BC34 @ =0xFFFFD000 + add r1, sb + movs r3, #0 + ldr r0, _0807BC38 @ =0x00003FFF + mov r8, r0 + ldr r0, _0807BC3C @ =gUnk_080B3E80 + mov ip, r0 + ldr r7, _0807BC40 @ =gUnk_080B79A7 + ldr r6, _0807BC44 @ =0xFFFFC000 +_0807BC14: + ldrh r0, [r5] + adds r5, #2 + cmp r0, r8 + bhi _0807BC48 + lsls r0, r0, #1 + add r0, sl + ldrh r0, [r0] + add r0, ip + b _0807BC4C + .align 2, 0 +_0807BC28: .4byte gUnk_0202AEB4 +_0807BC2C: .4byte gUnk_02010654 +_0807BC30: .4byte 0xFFFFB000 +_0807BC34: .4byte 0xFFFFD000 +_0807BC38: .4byte 0x00003FFF +_0807BC3C: .4byte gUnk_080B3E80 +_0807BC40: .4byte gUnk_080B79A7 +_0807BC44: .4byte 0xFFFFC000 +_0807BC48: + adds r0, r0, r6 + adds r0, r0, r7 +_0807BC4C: + ldrb r0, [r0] + strb r0, [r2] + adds r2, #1 + ldrh r0, [r4] + adds r4, #2 + cmp r0, r8 + bhi _0807BC64 + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + add r0, ip + b _0807BC68 +_0807BC64: + adds r0, r0, r6 + adds r0, r0, r7 +_0807BC68: + ldrb r0, [r0] + strb r0, [r1] + adds r1, #1 + adds r3, #1 + ldr r0, _0807BC80 @ =0x00000FFF + cmp r3, r0 + bls _0807BC14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BC80: .4byte 0x00000FFF + + thumb_func_start sub_0807BC84 +sub_0807BC84: @ 0x0807BC84 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _0807BD04 @ =gRoomControls + ldrh r0, [r1, #0x1e] + lsrs r2, r0, #4 + mov r8, r1 + cmp r2, #0x40 + bne _0807BC98 + movs r2, #0x3f +_0807BC98: + ldr r1, _0807BD08 @ =gUnk_02027EB4 + adds r3, r2, r1 + adds r6, r1, #0 + adds r6, #0x3f + ldr r0, _0807BD0C @ =gUnk_0200D654 + adds r2, r2, r0 + adds r5, r0, #0 + adds r5, #0x3f + movs r4, #0 + adds r7, r1, #0 + mov ip, r0 + movs r0, #0xff +_0807BCB0: + strb r0, [r3] + strb r0, [r6] + strb r0, [r2] + strb r0, [r5] + adds r3, #0x40 + adds r6, #0x40 + adds r2, #0x40 + adds r5, #0x40 + adds r4, #1 + cmp r4, #0x3f + bls _0807BCB0 + mov r0, r8 + ldrh r1, [r0, #0x20] + ldr r0, _0807BD10 @ =0x0000FFF0 + ands r0, r1 + lsls r0, r0, #2 + adds r3, r0, r7 + movs r1, #0xfc + lsls r1, r1, #4 + adds r6, r7, r1 + mov r1, ip + adds r2, r0, r1 + movs r5, #0xfc + lsls r5, r5, #4 + add r5, ip + movs r4, #0 + movs r0, #0xff +_0807BCE6: + strb r0, [r3] + adds r3, #1 + strb r0, [r6] + adds r6, #1 + strb r0, [r2] + adds r2, #1 + strb r0, [r5] + adds r5, #1 + adds r4, #1 + cmp r4, #0x3f + bls _0807BCE6 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BD04: .4byte gRoomControls +_0807BD08: .4byte gUnk_02027EB4 +_0807BD0C: .4byte gUnk_0200D654 +_0807BD10: .4byte 0x0000FFF0 + + thumb_func_start sub_0807BD14 +sub_0807BD14: @ 0x0807BD14 + push {r4, r5, lr} + adds r5, r1, #0 + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r3, #0x32 + ldrsh r1, [r0, r3] + adds r0, r2, #0 + adds r2, r5, #0 + bl sub_0807BEEC + adds r3, r0, #0 + cmp r3, #0xff + beq _0807BDB4 + ldr r1, _0807BD68 @ =gRoomControls + movs r2, #0 + movs r0, #2 + strb r0, [r1, #2] + strb r2, [r1, #3] + movs r4, #1 + strh r4, [r1] + strb r3, [r1, #5] + strb r5, [r1, #0x10] + bl sub_08052E8C + adds r2, r0, #0 + ldr r1, _0807BD6C @ =gUnk_02033A90 + ldr r3, _0807BD70 @ =0x0000085C + adds r0, r1, r3 + str r2, [r0] + ldrb r0, [r1, #0xd] + ands r4, r0 + cmp r4, #0 + beq _0807BD98 + cmp r5, #1 + beq _0807BD7E + cmp r5, #1 + blo _0807BD74 + cmp r5, #2 + beq _0807BD86 + cmp r5, #3 + beq _0807BD90 + b _0807BD98 + .align 2, 0 +_0807BD68: .4byte gRoomControls +_0807BD6C: .4byte gUnk_02033A90 +_0807BD70: .4byte 0x0000085C +_0807BD74: + ldrh r0, [r2, #6] + ldrh r1, [r2, #2] + subs r0, r0, r1 + strh r0, [r2, #6] + b _0807BD98 +_0807BD7E: + ldrh r0, [r2] + ldrh r1, [r2, #4] + adds r0, r0, r1 + b _0807BD96 +_0807BD86: + ldrh r0, [r2, #2] + ldrh r3, [r2, #6] + adds r0, r0, r3 + strh r0, [r2, #6] + b _0807BD98 +_0807BD90: + ldrh r0, [r2, #4] + ldrh r1, [r2] + subs r0, r0, r1 +_0807BD96: + strh r0, [r2, #4] +_0807BD98: + ldr r2, _0807BDB0 @ =gLinkEntity + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2, #0x11] + bl sub_0805E5A8 + movs r0, #1 + b _0807BDB6 + .align 2, 0 +_0807BDB0: .4byte gLinkEntity +_0807BDB4: + movs r0, #0 +_0807BDB6: + pop {r4, r5, pc} + + thumb_func_start sub_0807BDB8 +sub_0807BDB8: @ 0x0807BDB8 + push {r4, r5, lr} + adds r3, r0, #0 + movs r5, #0xff + movs r0, #7 + ands r1, r0 + cmp r1, #7 + bls _0807BDC8 + b _0807BEE2 +_0807BDC8: + lsls r0, r1, #2 + ldr r1, _0807BDD4 @ =_0807BDD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807BDD4: .4byte _0807BDD8 +_0807BDD8: @ jump table + .4byte _0807BDF8 @ case 0 + .4byte _0807BE10 @ case 1 + .4byte _0807BE30 @ case 2 + .4byte _0807BE4C @ case 3 + .4byte _0807BE78 @ case 4 + .4byte _0807BE94 @ case 5 + .4byte _0807BEB4 @ case 6 + .4byte _0807BEC4 @ case 7 +_0807BDF8: + movs r1, #0x32 + ldrsh r0, [r3, r1] + ldr r1, _0807BE0C @ =gRoomControls + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BEE2 + movs r5, #0 + b _0807BEE2 + .align 2, 0 +_0807BE0C: .4byte gRoomControls +_0807BE10: + movs r2, #0x32 + ldrsh r0, [r3, r2] + ldr r2, _0807BE2C @ =gRoomControls + ldrh r1, [r2, #8] + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BE20 + movs r5, #0 +_0807BE20: + ldrh r0, [r2, #0x1e] + subs r0, #0xa + movs r4, #0x2e + ldrsh r1, [r3, r4] + ldrh r2, [r2, #6] + b _0807BE6A + .align 2, 0 +_0807BE2C: .4byte gRoomControls +_0807BE30: + ldr r1, _0807BE48 @ =gRoomControls + ldrh r2, [r1, #0x1e] + subs r2, #0xa + movs r4, #0x2e + ldrsh r0, [r3, r4] + ldrh r1, [r1, #6] + subs r0, r0, r1 + cmp r2, r0 + bhs _0807BEE2 + movs r5, #1 + b _0807BEE2 + .align 2, 0 +_0807BE48: .4byte gRoomControls +_0807BE4C: + ldr r4, _0807BE74 @ =gRoomControls + ldrh r0, [r4, #0x20] + subs r0, #0xa + movs r2, #0x32 + ldrsh r1, [r3, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + cmp r0, r1 + bhs _0807BE60 + movs r5, #2 +_0807BE60: + ldrh r0, [r4, #0x1e] + subs r0, #0xa + movs r2, #0x2e + ldrsh r1, [r3, r2] + ldrh r2, [r4, #6] +_0807BE6A: + subs r1, r1, r2 + cmp r0, r1 + bhs _0807BEE2 + movs r5, #1 + b _0807BEE2 + .align 2, 0 +_0807BE74: .4byte gRoomControls +_0807BE78: + ldr r1, _0807BE90 @ =gRoomControls + ldrh r2, [r1, #0x20] + subs r2, #0xa + movs r4, #0x32 + ldrsh r0, [r3, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r2, r0 + bhs _0807BEE2 + movs r5, #2 + b _0807BEE2 + .align 2, 0 +_0807BE90: .4byte gRoomControls +_0807BE94: + ldr r4, _0807BEB0 @ =gRoomControls + ldrh r0, [r4, #0x20] + subs r0, #0xa + movs r2, #0x32 + ldrsh r1, [r3, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + cmp r0, r1 + bhs _0807BEA8 + movs r5, #2 +_0807BEA8: + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldrh r1, [r4, #6] + b _0807BEDA + .align 2, 0 +_0807BEB0: .4byte gRoomControls +_0807BEB4: + movs r2, #0x2e + ldrsh r0, [r3, r2] + ldr r1, _0807BEC0 @ =gRoomControls + ldrh r1, [r1, #6] + b _0807BEDA + .align 2, 0 +_0807BEC0: .4byte gRoomControls +_0807BEC4: + movs r4, #0x32 + ldrsh r0, [r3, r4] + ldr r2, _0807BEE8 @ =gRoomControls + ldrh r1, [r2, #8] + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BED4 + movs r5, #0 +_0807BED4: + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldrh r1, [r2, #6] +_0807BEDA: + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BEE2 + movs r5, #3 +_0807BEE2: + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_0807BEE8: .4byte gRoomControls + + thumb_func_start sub_0807BEEC +sub_0807BEEC: @ 0x0807BEEC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + ldr r0, _0807BF04 @ =gUnk_02033A90 + ldrb r1, [r0, #0xd] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807BF0C + ldr r0, _0807BF08 @ =gRoomControls + ldrb r0, [r0, #5] + b _0807BF7C + .align 2, 0 +_0807BF04: .4byte gUnk_02033A90 +_0807BF08: .4byte gRoomControls +_0807BF0C: + cmp r2, #1 + beq _0807BF2C + cmp r2, #1 + blo _0807BF1E + cmp r2, #2 + beq _0807BF40 + cmp r2, #3 + beq _0807BF58 + b _0807BF7A +_0807BF1E: + ldr r0, _0807BF28 @ =gRoomControls + ldrh r0, [r0, #8] + adds r7, r0, #0 + subs r7, #0x10 + b _0807BF60 + .align 2, 0 +_0807BF28: .4byte gRoomControls +_0807BF2C: + ldr r0, _0807BF3C @ =gRoomControls + ldrh r1, [r0, #6] + ldrh r0, [r0, #0x1e] + adds r1, r1, r0 + adds r6, r1, #0 + adds r6, #0x10 + b _0807BF60 + .align 2, 0 +_0807BF3C: .4byte gRoomControls +_0807BF40: + ldr r0, _0807BF50 @ =gRoomControls + ldrh r1, [r0, #8] + ldrh r0, [r0, #0x20] + adds r1, r1, r0 + adds r7, r1, #0 + adds r7, #0x10 + b _0807BF60 + .align 2, 0 +_0807BF50: .4byte gRoomControls +_0807BF54: + adds r0, r4, #0 + b _0807BF7C +_0807BF58: + ldr r0, _0807BF80 @ =gRoomControls + ldrh r0, [r0, #6] + adds r6, r0, #0 + subs r6, #0x10 +_0807BF60: + ldr r5, _0807BF84 @ =gUnk_02033ACC + movs r4, #0 +_0807BF64: + adds r0, r6, #0 + adds r1, r7, #0 + adds r2, r5, #0 + bl sub_0807BF88 + cmp r0, #0 + bne _0807BF54 + adds r4, #1 + adds r5, #0x20 + cmp r4, #0x3f + bls _0807BF64 +_0807BF7A: + movs r0, #0xff +_0807BF7C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BF80: .4byte gRoomControls +_0807BF84: .4byte gUnk_02033ACC + + thumb_func_start sub_0807BF88 +sub_0807BF88: @ 0x0807BF88 + push {r4, lr} + adds r3, r2, #0 + ldrh r2, [r3, #4] + subs r0, r0, r2 + ldrh r2, [r3, #6] + subs r1, r1, r2 + movs r2, #0 + ldrh r4, [r3] + cmp r0, r4 + bhs _0807BFA4 + ldrh r3, [r3, #2] + cmp r1, r3 + bhs _0807BFA4 + movs r2, #1 +_0807BFA4: + adds r0, r2, #0 + pop {r4, pc} + + thumb_func_start sub_0807BFA8 +sub_0807BFA8: @ 0x0807BFA8 + ldr r2, _0807BFC4 @ =gRoomControls + ldr r0, _0807BFC8 @ =gUnk_02033A90 + ldr r1, _0807BFCC @ =0x0000085C + adds r0, r0, r1 + ldr r1, [r0] + ldrh r0, [r1, #4] + strh r0, [r2, #6] + ldrh r0, [r1, #6] + strh r0, [r2, #8] + ldrh r0, [r1] + strh r0, [r2, #0x1e] + ldrh r0, [r1, #2] + strh r0, [r2, #0x20] + bx lr + .align 2, 0 +_0807BFC4: .4byte gRoomControls +_0807BFC8: .4byte gUnk_02033A90 +_0807BFCC: .4byte 0x0000085C + + thumb_func_start sub_0807BFD0 +sub_0807BFD0: @ 0x0807BFD0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_0801B170 + bl sub_0807BFA8 + ldr r7, _0807C0B8 @ =0x0000FFFF + ldr r6, _0807C0BC @ =gUnk_0202AEB4 + movs r0, #0x80 + lsls r0, r0, #5 + mov r8, r0 + adds r0, r7, #0 + adds r1, r6, #0 + mov r2, r8 + bl sub_0801D5EC + movs r5, #0 + strh r5, [r6] + ldr r4, _0807C0C0 @ =gUnk_02010654 + adds r0, r7, #0 + adds r1, r4, #0 + mov r2, r8 + bl sub_0801D5EC + strh r5, [r4] + ldr r2, _0807C0C4 @ =gRoomControls + ldr r0, _0807C0C8 @ =gUnk_02033A90 + ldr r1, _0807C0CC @ =0x0000085C + adds r4, r0, r1 + ldr r0, [r4] + ldr r1, [r2, #0x34] + ldr r0, [r0, #8] + cmp r1, r0 + beq _0807C01C + str r0, [r2, #0x34] + bl sub_080197D4 +_0807C01C: + ldr r0, [r4] + ldr r0, [r0, #0x10] + bl sub_080197D4 + ldr r1, _0807C0D0 @ =gUnk_020176A0 + adds r0, r1, #0 + adds r0, #0x60 + movs r2, #0xa8 + lsls r2, r2, #2 + adds r1, r1, r2 + movs r2, #0x20 + bl sub_0801D66C + ldr r2, _0807C0D4 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r2] + ldr r0, [r4] + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _0807C04E + bl sub_0801B130 +_0807C04E: + adds r5, r6, #0 + movs r0, #0x80 + lsls r0, r0, #5 + adds r6, r5, r0 + adds r0, r7, #0 + adds r1, r6, #0 + mov r2, r8 + bl sub_0801D5EC + movs r2, #0 + ldr r3, _0807C0D8 @ =0x000007FF + adds r4, r7, #0 +_0807C066: + ldrh r0, [r5] + cmp r0, r3 + bhi _0807C078 + lsls r0, r0, #1 + adds r1, r0, r6 + ldrh r0, [r1] + cmp r0, r4 + bne _0807C078 + strh r2, [r1] +_0807C078: + adds r2, #1 + adds r5, #2 + cmp r2, r3 + ble _0807C066 + movs r2, #0x80 + lsls r2, r2, #5 + ldr r5, _0807C0C0 @ =gUnk_02010654 + adds r6, r5, r2 + ldr r4, _0807C0B8 @ =0x0000FFFF + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0801D5EC + movs r2, #0 + ldr r3, _0807C0D8 @ =0x000007FF +_0807C096: + ldrh r0, [r5] + cmp r0, r3 + bhi _0807C0A8 + lsls r0, r0, #1 + adds r1, r0, r6 + ldrh r0, [r1] + cmp r0, r4 + bne _0807C0A8 + strh r2, [r1] +_0807C0A8: + adds r2, #1 + adds r5, #2 + cmp r2, r3 + ble _0807C096 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807C0B8: .4byte 0x0000FFFF +_0807C0BC: .4byte gUnk_0202AEB4 +_0807C0C0: .4byte gUnk_02010654 +_0807C0C4: .4byte gRoomControls +_0807C0C8: .4byte gUnk_02033A90 +_0807C0CC: .4byte 0x0000085C +_0807C0D0: .4byte gUnk_020176A0 +_0807C0D4: .4byte gUnk_0200B644 +_0807C0D8: .4byte 0x000007FF + + thumb_func_start sub_0807C0DC +sub_0807C0DC: @ 0x0807C0DC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + bl sub_0807BFA8 + ldr r7, _0807C158 @ =gRoomControls + ldrb r1, [r7, #0xf] + movs r0, #0xfc + ands r0, r1 + strb r0, [r7, #0xf] + ldr r5, _0807C15C @ =gUnk_0200B654 + movs r6, #0x80 + lsls r6, r6, #6 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 + adds r0, r5, r6 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + ldr r0, _0807C160 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _0807C164 @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _0807C168 @ =gUnk_02033A90 + ldr r1, _0807C16C @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0, #0xc] + bl sub_080197D4 + ldr r2, _0807C170 @ =gUnk_02025EB0 + ldrh r1, [r2, #4] + ldr r0, _0807C174 @ =0x0000FFFF + cmp r1, r0 + beq _0807C178 + adds r0, r2, #4 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + bl sub_0807C8B0 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + adds r0, r5, #0 + bl sub_0807C8B0 + movs r2, #0 + mov sb, r2 + b _0807C184 + .align 2, 0 +_0807C158: .4byte gRoomControls +_0807C15C: .4byte gUnk_0200B654 +_0807C160: .4byte gUnk_02019EE0 +_0807C164: .4byte gUnk_02002F00 +_0807C168: .4byte gUnk_02033A90 +_0807C16C: .4byte 0x0000085C +_0807C170: .4byte gUnk_02025EB0 +_0807C174: .4byte 0x0000FFFF +_0807C178: + adds r0, r2, #4 + adds r1, r6, #0 + bl sub_0801D630 + movs r3, #1 + mov sb, r3 +_0807C184: + ldr r0, _0807C1B0 @ =gUnk_030010A0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #0 + bne _0807C1BC + ldr r0, _0807C1B4 @ =gUnk_02025EB4 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + movs r4, #0x80 + lsls r4, r4, #6 + adds r2, r4, #0 + bl sub_0801D66C + ldr r0, _0807C1B8 @ =gUnk_0200B654 + movs r3, #0xc0 + lsls r3, r3, #6 + adds r1, r0, r3 + adds r2, r4, #0 + bl sub_0801D66C + b _0807C26C + .align 2, 0 +_0807C1B0: .4byte gUnk_030010A0 +_0807C1B4: .4byte gUnk_02025EB4 +_0807C1B8: .4byte gUnk_0200B654 +_0807C1BC: + cmp r0, #2 + bne _0807C26C + ldr r4, _0807C278 @ =gUnk_02025EB4 + movs r0, #0xb0 + lsls r0, r0, #8 + adds r0, r0, r4 + mov r8, r0 + movs r5, #0x80 + lsls r5, r5, #5 + adds r0, r4, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r1, #0xc0 + lsls r1, r1, #6 + adds r6, r4, r1 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r6, r4, r5 + adds r0, r6, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r2, #0x80 + lsls r2, r2, #7 + adds r4, r4, r2 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + ldr r4, _0807C27C @ =gUnk_0200B654 + movs r3, #0xb0 + lsls r3, r3, #8 + adds r3, r3, r4 + mov r8, r3 + adds r0, r4, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r0, #0xc0 + lsls r0, r0, #6 + adds r6, r4, r0 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r6, r4, r5 + adds r0, r6, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r1, #0x80 + lsls r1, r1, #7 + adds r4, r4, r1 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C +_0807C26C: + mov r2, sb + cmp r2, #0 + bne _0807C280 + bl sub_0807BBE4 + b _0807C2A0 + .align 2, 0 +_0807C278: .4byte gUnk_02025EB4 +_0807C27C: .4byte gUnk_0200B654 +_0807C280: + ldr r0, _0807C2CC @ =gUnk_02027EB4 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + bl sub_0807C69C + ldr r0, _0807C2D0 @ =gUnk_0200D654 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + bl sub_0807C69C + bl sub_0807C460 +_0807C2A0: + bl sub_0807BC84 + ldr r4, _0807C2D4 @ =gUnk_02025EB0 + adds r0, r4, #0 + bl sub_08080B60 + ldr r5, _0807C2D8 @ =gUnk_0200B650 + adds r0, r5, #0 + bl sub_08080B60 + mov r3, sb + cmp r3, #0 + bne _0807C2E4 + ldr r0, _0807C2DC @ =gUnk_02019EE0 + adds r1, r4, #0 + bl sub_0801AB08 + ldr r0, _0807C2E0 @ =gUnk_02002F00 + adds r1, r5, #0 + bl sub_0801AB08 + b _0807C326 + .align 2, 0 +_0807C2CC: .4byte gUnk_02027EB4 +_0807C2D0: .4byte gUnk_0200D654 +_0807C2D4: .4byte gUnk_02025EB0 +_0807C2D8: .4byte gUnk_0200B650 +_0807C2DC: .4byte gUnk_02019EE0 +_0807C2E0: .4byte gUnk_02002F00 +_0807C2E4: + ldr r4, _0807C34C @ =gUnk_02019EE0 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r6, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 + ldr r4, _0807C350 @ =gUnk_02002F00 + adds r5, r4, r6 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 +_0807C326: + mov r1, sb + cmp r1, #0 + bne _0807C332 + ldrb r0, [r7, #4] + cmp r0, #0x71 + bne _0807C33A +_0807C332: + ldrb r1, [r7, #0xf] + movs r0, #1 + orrs r0, r1 + strb r0, [r7, #0xf] +_0807C33A: + ldrb r0, [r7, #4] + subs r0, #0x20 + cmp r0, #0x18 + bhi _0807C400 + lsls r0, r0, #2 + ldr r1, _0807C354 @ =_0807C358 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807C34C: .4byte gUnk_02019EE0 +_0807C350: .4byte gUnk_02002F00 +_0807C354: .4byte _0807C358 +_0807C358: @ jump table + .4byte _0807C3BC @ case 0 + .4byte _0807C3E4 @ case 1 + .4byte _0807C3E4 @ case 2 + .4byte _0807C3E4 @ case 3 + .4byte _0807C3E4 @ case 4 + .4byte _0807C3E4 @ case 5 + .4byte _0807C400 @ case 6 + .4byte _0807C3E4 @ case 7 + .4byte _0807C3E4 @ case 8 + .4byte _0807C400 @ case 9 + .4byte _0807C400 @ case 10 + .4byte _0807C400 @ case 11 + .4byte _0807C400 @ case 12 + .4byte _0807C3BC @ case 13 + .4byte _0807C400 @ case 14 + .4byte _0807C400 @ case 15 + .4byte _0807C3E4 @ case 16 + .4byte _0807C400 @ case 17 + .4byte _0807C400 @ case 18 + .4byte _0807C400 @ case 19 + .4byte _0807C400 @ case 20 + .4byte _0807C400 @ case 21 + .4byte _0807C400 @ case 22 + .4byte _0807C400 @ case 23 + .4byte _0807C3E4 @ case 24 +_0807C3BC: + ldr r0, _0807C3D8 @ =gUnk_02025EB0 + ldr r2, [r0] + cmp r2, #0 + beq _0807C3CC + ldrh r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strh r0, [r2] +_0807C3CC: + ldr r2, _0807C3DC @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0807C3E0 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + b _0807C444 + .align 2, 0 +_0807C3D8: .4byte gUnk_02025EB0 +_0807C3DC: .4byte gLCDControls +_0807C3E0: .4byte 0x0000FDFF +_0807C3E4: + ldr r0, _0807C3F8 @ =gUnk_0200B650 + ldr r1, [r0] + cmp r1, #0 + beq _0807C3F2 + ldr r0, _0807C3FC @ =gUnk_080B77C0 + ldrh r0, [r0, #4] + strh r0, [r1] +_0807C3F2: + bl sub_0807C5B0 + b _0807C444 + .align 2, 0 +_0807C3F8: .4byte gUnk_0200B650 +_0807C3FC: .4byte gUnk_080B77C0 +_0807C400: + ldr r0, _0807C44C @ =gUnk_02025EB0 + ldr r1, [r0] + cmp r1, #0 + beq _0807C40E + ldr r0, _0807C450 @ =gUnk_080B77C0 + ldrh r0, [r0] + strh r0, [r1] +_0807C40E: + ldr r0, _0807C454 @ =gUnk_0200B650 + ldr r1, [r0] + cmp r1, #0 + beq _0807C41C + ldr r0, _0807C450 @ =gUnk_080B77C0 + ldrh r0, [r0, #2] + strh r0, [r1] +_0807C41C: + ldr r2, _0807C458 @ =gLCDControls + ldrh r0, [r2] + movs r1, #0x80 + lsls r1, r1, #4 + ands r1, r0 + movs r3, #0xba + lsls r3, r3, #5 + adds r0, r3, #0 + movs r3, #0 + orrs r1, r0 + strh r1, [r2] + ldr r0, _0807C45C @ =gUnk_02033A90 + ldrb r0, [r0, #0xc] + cmp r0, #0 + beq _0807C444 + movs r3, #0xa0 + lsls r3, r3, #8 + adds r0, r3, #0 + orrs r1, r0 + strh r1, [r2] +_0807C444: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807C44C: .4byte gUnk_02025EB0 +_0807C450: .4byte gUnk_080B77C0 +_0807C454: .4byte gUnk_0200B650 +_0807C458: .4byte gLCDControls +_0807C45C: .4byte gUnk_02033A90 + + thumb_func_start sub_0807C460 +sub_0807C460: @ 0x0807C460 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r7, _0807C4E8 @ =gUnk_02025EB4 + ldr r6, _0807C4EC @ =gUnk_0200B654 + ldr r0, _0807C4F0 @ =gRoomControls + ldrh r1, [r0, #0x1e] + lsrs r3, r1, #4 + ldrh r0, [r0, #0x20] + lsrs r0, r0, #4 + str r0, [sp] + movs r4, #0 + movs r1, #0 + cmp r1, r0 + bhs _0807C4DC + movs r0, #0x40 + subs r0, r0, r3 + lsls r0, r0, #1 + mov sb, r0 +_0807C48C: + movs r5, #0 + adds r1, #1 + mov sl, r1 + cmp r5, r3 + bhs _0807C4CA + ldr r0, _0807C4F4 @ =0x00003FFF + mov r8, r0 +_0807C49A: + ldrh r0, [r7] + cmp r0, r8 + bls _0807C4AC + adds r1, r4, #0 + movs r2, #1 + str r3, [sp, #4] + bl sub_0800015E + ldr r3, [sp, #4] +_0807C4AC: + ldrh r0, [r6] + cmp r0, r8 + bls _0807C4BE + adds r1, r4, #0 + movs r2, #2 + str r3, [sp, #4] + bl sub_0800015E + ldr r3, [sp, #4] +_0807C4BE: + adds r7, #2 + adds r6, #2 + adds r4, #1 + adds r5, #1 + cmp r5, r3 + blo _0807C49A +_0807C4CA: + add r7, sb + add r6, sb + adds r0, r4, #0 + adds r0, #0x40 + subs r4, r0, r3 + mov r1, sl + ldr r0, [sp] + cmp r1, r0 + blo _0807C48C +_0807C4DC: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807C4E8: .4byte gUnk_02025EB4 +_0807C4EC: .4byte gUnk_0200B654 +_0807C4F0: .4byte gRoomControls +_0807C4F4: .4byte 0x00003FFF + + thumb_func_start sub_0807C4F8 +sub_0807C4F8: @ 0x0807C4F8 + push {r4, r5, r6, lr} + ldr r0, _0807C594 @ =gRoomControls + ldrb r0, [r0, #4] + cmp r0, #0x71 + beq _0807C592 + ldr r0, _0807C598 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _0807C59C @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + ldr r5, _0807C5A0 @ =gUnk_02022830 + ldr r0, _0807C5A4 @ =gUnk_02033A90 + ldr r1, _0807C5A8 @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r4, [r0, #0xc] + subs r4, #0xc +_0807C524: + adds r4, #0xc + ldr r1, [r4, #4] + ldr r0, _0807C598 @ =gUnk_02019EE0 + cmp r1, r0 + beq _0807C534 + ldr r0, _0807C59C @ =gUnk_02002F00 + cmp r1, r0 + bne _0807C54A +_0807C534: + ldr r0, [r4] + ldr r1, _0807C5AC @ =0x7FFFFFFF + ands r0, r1 + str r0, [r5] + ldr r0, [r4, #4] + str r0, [r5, #4] + ldr r0, [r4, #8] + str r0, [r5, #8] + adds r0, r5, #0 + bl sub_080197D4 +_0807C54A: + ldr r0, [r4] + cmp r0, #0 + blt _0807C524 + ldr r4, _0807C598 @ =gUnk_02019EE0 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r6, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 + ldr r4, _0807C59C @ =gUnk_02002F00 + adds r5, r4, r6 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 +_0807C592: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C594: .4byte gRoomControls +_0807C598: .4byte gUnk_02019EE0 +_0807C59C: .4byte gUnk_02002F00 +_0807C5A0: .4byte gUnk_02022830 +_0807C5A4: .4byte gUnk_02033A90 +_0807C5A8: .4byte 0x0000085C +_0807C5AC: .4byte 0x7FFFFFFF + + thumb_func_start sub_0807C5B0 +sub_0807C5B0: @ 0x0807C5B0 + push {r4, r5, r6, lr} + ldr r5, _0807C5E8 @ =gUnk_0200D654 + movs r4, #0x80 + lsls r4, r4, #5 + movs r3, #0 + ldr r6, _0807C5EC @ =gRoomControls + ldr r2, _0807C5F0 @ =gUnk_02027EB4 +_0807C5BE: + adds r0, r5, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _0807C5D4 + cmp r0, #0xf + bhi _0807C5D2 + ldrb r1, [r2] + cmp r1, #0xf + bhi _0807C5D4 + orrs r0, r1 +_0807C5D2: + strb r0, [r2] +_0807C5D4: + adds r2, #1 + adds r3, #1 + cmp r3, r4 + blo _0807C5BE + ldrb r1, [r6, #0xf] + movs r0, #2 + orrs r0, r1 + strb r0, [r6, #0xf] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C5E8: .4byte gUnk_0200D654 +_0807C5EC: .4byte gRoomControls +_0807C5F0: .4byte gUnk_02027EB4 + + thumb_func_start sub_0807C5F4 +sub_0807C5F4: @ 0x0807C5F4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + movs r0, #0x20 + ldr r6, _0807C698 @ =gRoomControls +_0807C5FE: + movs r3, #0 + subs r4, r0, #1 +_0807C602: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C602 + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C5FE + ldrh r0, [r6, #0x1e] + cmp r0, #0xff + bls _0807C63E + adds r2, r5, #0 + adds r2, #0x40 + movs r0, #0x20 +_0807C624: + movs r3, #0 + subs r4, r0, #1 +_0807C628: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C628 + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C624 +_0807C63E: + ldrh r0, [r6, #0x20] + cmp r0, #0xff + bls _0807C666 + movs r0, #0x80 + lsls r0, r0, #6 + adds r2, r5, r0 + movs r0, #0x20 +_0807C64C: + movs r3, #0 + subs r4, r0, #1 +_0807C650: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C650 + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C64C +_0807C666: + ldrh r0, [r6, #0x1e] + cmp r0, #0xff + bls _0807C694 + ldrh r0, [r6, #0x20] + cmp r0, #0xff + bls _0807C694 + movs r0, #0x81 + lsls r0, r0, #6 + adds r2, r5, r0 + movs r0, #0x20 +_0807C67A: + movs r3, #0 + subs r4, r0, #1 +_0807C67E: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C67E + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C67A +_0807C694: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C698: .4byte gRoomControls + + thumb_func_start sub_0807C69C +sub_0807C69C: @ 0x0807C69C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r6, r1, #0 + mov r8, r2 + mov r0, r8 + muls r0, r6, r0 + add r0, sb + subs r2, r0, #1 + mov r0, r8 + subs r0, #1 + lsls r0, r0, #6 + add r0, sb + subs r1, r6, #1 + adds r4, r0, r1 + movs r5, #0 + cmp r5, r8 + bhs _0807C6EA +_0807C6C4: + movs r3, #0 + adds r7, r4, #0 + subs r7, #0x40 + subs r0, r2, r6 + mov ip, r0 + cmp r3, r6 + bhs _0807C6E0 +_0807C6D2: + subs r0, r4, r3 + subs r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r3, #1 + cmp r3, r6 + blo _0807C6D2 +_0807C6E0: + adds r4, r7, #0 + mov r2, ip + adds r5, #1 + cmp r5, r8 + blo _0807C6C4 +_0807C6EA: + movs r0, #0x40 + subs r7, r0, r6 + movs r5, #0 + mov r1, r8 + lsls r2, r1, #6 + mov r0, sb + adds r1, r0, r6 +_0807C6F8: + lsls r0, r5, #6 + adds r4, r1, r0 + movs r3, #0 + adds r6, r5, #1 + cmp r3, r7 + bhs _0807C710 + movs r5, #0 +_0807C706: + adds r0, r4, r3 + strb r5, [r0] + adds r3, #1 + cmp r3, r7 + blo _0807C706 +_0807C710: + adds r5, r6, #0 + cmp r5, #0x3f + bls _0807C6F8 + movs r0, #0x40 + mov r1, r8 + subs r7, r0, r1 + mov r0, sb + adds r4, r0, r2 + movs r5, #0 + cmp r5, r7 + bhs _0807C736 +_0807C726: + adds r0, r4, #0 + movs r1, #0x40 + bl sub_0801D630 + adds r4, #0x40 + adds r5, #1 + cmp r5, r7 + blo _0807C726 +_0807C736: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807C740 +sub_0807C740: @ 0x0807C740 + push {r4, r5, lr} + bl sub_0807BFD0 + bl sub_0807C0DC + ldr r4, _0807C780 @ =gRoomControls + ldr r2, [r4, #0x30] + cmp r2, #0 + beq _0807C788 + ldrh r1, [r2, #0x2e] + lsls r0, r1, #0x10 + cmp r0, #0 + bge _0807C764 + ldr r0, _0807C784 @ =0x00007FFF + ands r0, r1 + ldrh r1, [r4, #6] + subs r0, r0, r1 + strh r0, [r2, #0x2e] +_0807C764: + movs r0, #0x2e + ldrsh r3, [r2, r0] + ldrh r1, [r2, #0x32] + lsls r0, r1, #0x10 + cmp r0, #0 + bge _0807C77A + ldr r0, _0807C784 @ =0x00007FFF + ands r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + strh r0, [r2, #0x32] +_0807C77A: + movs r0, #0x32 + ldrsh r5, [r2, r0] + b _0807C78C + .align 2, 0 +_0807C780: .4byte gRoomControls +_0807C784: .4byte 0x00007FFF +_0807C788: + movs r3, #0 + movs r5, #0 +_0807C78C: + cmp r3, #0x77 + bgt _0807C794 + movs r0, #0 + b _0807C7A2 +_0807C794: + ldrh r1, [r4, #0x1e] + adds r0, r1, #0 + subs r0, #0x78 + cmp r0, r3 + blt _0807C7A0 + adds r0, r3, #0 +_0807C7A0: + subs r0, #0x78 +_0807C7A2: + strh r0, [r4, #0xa] + ldrh r1, [r4, #6] + ldrh r2, [r4, #0xa] + adds r0, r1, r2 + strh r0, [r4, #0xa] + cmp r5, #0x4f + bgt _0807C7B4 + movs r0, #0 + b _0807C7C2 +_0807C7B4: + ldrh r2, [r4, #0x20] + adds r0, r2, #0 + subs r0, #0x50 + cmp r0, r5 + blt _0807C7C0 + adds r0, r5, #0 +_0807C7C0: + subs r0, #0x50 +_0807C7C2: + strh r0, [r4, #0xc] + ldrh r0, [r4, #8] + ldrh r3, [r4, #0xc] + adds r0, r0, r3 + strh r0, [r4, #0xc] + ldr r2, [r4, #0x30] + cmp r2, #0 + beq _0807C7FC + ldrh r3, [r2, #0x2e] + adds r0, r1, r3 + strh r0, [r2, #0x2e] + ldr r1, [r4, #0x30] + ldrh r0, [r4, #8] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldr r0, _0807C80C @ =gRoomControls + ldrb r1, [r0, #0xf] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807C7FC + ldr r0, [r4, #0x30] + adds r0, #0x38 + movs r1, #1 + strb r1, [r0] + ldr r0, [r4, #0x30] + bl sub_08016A04 +_0807C7FC: + ldrb r1, [r4, #0xf] + movs r0, #0xfb + ands r0, r1 + strb r0, [r4, #0xf] + bl sub_08080BC4 + pop {r4, r5, pc} + .align 2, 0 +_0807C80C: .4byte gRoomControls + + thumb_func_start sub_0807C810 +sub_0807C810: @ 0x0807C810 + push {r4, r5, r6, lr} + bl sub_0807BFD0 + ldr r2, _0807C850 @ =gUnk_03004030 + ldr r6, _0807C854 @ =gLinkEntity + ldr r4, _0807C858 @ =gRoomControls + ldr r3, [r2] + ldrh r1, [r3, #6] + movs r0, #0x3f + ands r0, r1 + lsls r0, r0, #4 + ldrh r1, [r4, #6] + adds r0, r0, r1 + ldrh r1, [r2, #4] + adds r1, r1, r0 + movs r5, #0 + strh r1, [r6, #0x2e] + ldrh r1, [r3, #6] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r4, [r4, #8] + adds r0, r0, r4 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r6, #0x32] + bl sub_080809D4 + ldr r0, _0807C85C @ =gUnk_02000070 + strb r5, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C850: .4byte gUnk_03004030 +_0807C854: .4byte gLinkEntity +_0807C858: .4byte gRoomControls +_0807C85C: .4byte gUnk_02000070 + + thumb_func_start sub_0807C860 +sub_0807C860: @ 0x0807C860 + push {r4, lr} + ldr r0, _0807C88C @ =gUnk_030010A0 + adds r0, #0x2d + movs r1, #1 + strb r1, [r0] + ldr r0, _0807C890 @ =gUnk_02025EB4 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + movs r4, #0x80 + lsls r4, r4, #6 + adds r2, r4, #0 + bl sub_0801D66C + ldr r0, _0807C894 @ =gUnk_0200B654 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + adds r2, r4, #0 + bl sub_0801D66C + pop {r4, pc} + .align 2, 0 +_0807C88C: .4byte gUnk_030010A0 +_0807C890: .4byte gUnk_02025EB4 +_0807C894: .4byte gUnk_0200B654 + + thumb_func_start sub_0807C898 +sub_0807C898: @ 0x0807C898 + push {r4, r5, lr} + ldr r4, _0807C8AC @ =gUnk_030010A0 + adds r4, #0x2d + movs r5, #0 + movs r0, #2 + strb r0, [r4] + bl sub_0807C0DC + strb r5, [r4] + pop {r4, r5, pc} + .align 2, 0 +_0807C8AC: .4byte gUnk_030010A0 + + thumb_func_start sub_0807C8B0 +sub_0807C8B0: @ 0x0807C8B0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + adds r4, r1, #0 + mov ip, r2 + mov r0, ip + muls r0, r4, r0 + lsls r0, r0, #1 + add r0, r8 + subs r7, r0, #2 + mov r0, ip + subs r0, #1 + lsls r0, r0, #7 + add r0, r8 + lsls r3, r4, #1 + subs r1, r3, #2 + adds r0, r0, r1 + movs r5, #0 + cmp r5, ip + bhs _0807C906 + mov sb, r3 +_0807C8DE: + movs r2, #0 + adds r6, r0, #0 + subs r6, #0x80 + cmp r2, r4 + bhs _0807C8FA + adds r1, r7, #0 + adds r3, r0, #0 +_0807C8EC: + ldrh r0, [r1] + strh r0, [r3] + subs r1, #2 + subs r3, #2 + adds r2, #1 + cmp r2, r4 + blo _0807C8EC +_0807C8FA: + adds r0, r6, #0 + mov r1, sb + subs r7, r7, r1 + adds r5, #1 + cmp r5, ip + blo _0807C8DE +_0807C906: + movs r0, #0x40 + subs r6, r0, r4 + movs r5, #0 + lsls r0, r4, #1 + mov r2, ip + lsls r7, r2, #7 + mov r2, r8 + adds r1, r2, r0 +_0807C916: + lsls r0, r5, #7 + adds r0, r1, r0 + movs r2, #0 + adds r3, r5, #1 + cmp r2, r6 + bhs _0807C92E + movs r4, #0 +_0807C924: + strh r4, [r0] + adds r0, #2 + adds r2, #1 + cmp r2, r6 + blo _0807C924 +_0807C92E: + adds r5, r3, #0 + cmp r5, #0x3f + bls _0807C916 + movs r0, #0x40 + mov r1, ip + subs r6, r0, r1 + mov r2, r8 + adds r0, r2, r7 + movs r5, #0 + cmp r5, r6 + bhs _0807C956 + adds r4, r0, #0 +_0807C946: + adds r0, r4, #0 + movs r1, #0x80 + bl sub_0801D630 + adds r4, #0x80 + adds r5, #1 + cmp r5, r6 + blo _0807C946 +_0807C956: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807C960 +sub_0807C960: @ 0x0807C960 + push {lr} + adds r2, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0807C994 + ldr r0, _0807C984 @ =0x7FFFFFFF + ands r0, r1 + ldr r1, _0807C988 @ =gUnk_08324AE4 + adds r1, r0, r1 + lsrs r0, r2, #0x18 + cmp r0, #6 + bne _0807C98C + adds r0, r1, #0 + adds r1, r2, #0 + bl LZ77UnCompVram + b _0807C994 + .align 2, 0 +_0807C984: .4byte 0x7FFFFFFF +_0807C988: .4byte gUnk_08324AE4 +_0807C98C: + adds r0, r1, #0 + adds r1, r2, #0 + bl LZ77UnCompWram +_0807C994: + pop {pc} + .align 2, 0 + \ No newline at end of file diff --git a/asm/code_0807CC3C.s b/asm/code_0807CC3C.s index 1e4238db..2be9a36d 100644 --- a/asm/code_0807CC3C.s +++ b/asm/code_0807CC3C.s @@ -899,7 +899,7 @@ sub_0807D280: @ 0x0807D280 push {r6, r7} adds r6, r0, #0 adds r5, r1, #0 - ldr r1, _0807D2B0 @ =gUnk_03000BF0 + ldr r1, _0807D2B0 @ =gRoomControls movs r0, #0xa ldrsh r2, [r1, r0] ldrh r0, [r1, #6] @@ -918,7 +918,7 @@ sub_0807D280: @ 0x0807D280 beq _0807D2BA b _0807D404 .align 2, 0 -_0807D2B0: .4byte gUnk_03000BF0 +_0807D2B0: .4byte gRoomControls _0807D2B4: cmp r0, #2 beq _0807D3A0 @@ -1161,7 +1161,7 @@ sub_0807D46C: @ 0x0807D46C sub sp, #8 str r0, [sp] str r1, [sp, #4] - ldr r0, _0807D494 @ =gUnk_03000BF0 + ldr r0, _0807D494 @ =gRoomControls ldrb r2, [r0, #0x10] mov sb, r0 cmp r2, #1 @@ -1174,7 +1174,7 @@ _0807D488: beq _0807D4A4 b _0807D6CC .align 2, 0 -_0807D494: .4byte gUnk_03000BF0 +_0807D494: .4byte gRoomControls _0807D498: cmp r2, #2 beq _0807D4A4 @@ -1503,7 +1503,7 @@ sub_0807D6D8: @ 0x0807D6D8 sub sp, #0x44 str r0, [sp] str r1, [sp, #4] - ldr r5, _0807D8BC @ =gUnk_03000BF0 + ldr r5, _0807D8BC @ =gRoomControls ldrh r0, [r5, #0x18] cmp r0, #0 bne _0807D6F2 @@ -1744,7 +1744,7 @@ _0807D88E: mov ip, r0 b _0807D8C4 .align 2, 0 -_0807D8BC: .4byte gUnk_03000BF0 +_0807D8BC: .4byte gRoomControls _0807D8C0: ldr r1, [sp, #0x3c] adds r7, r7, r1 @@ -1781,7 +1781,7 @@ _0807D8D8: ble _0807D902 b _0807DA62 _0807D902: - ldr r0, _0807DA40 @ =gUnk_03000BF0 + ldr r0, _0807DA40 @ =gRoomControls mov sl, r0 ldr r1, [sp, #0x10] adds r0, r6, r1 @@ -1944,7 +1944,7 @@ _0807DA12: mov ip, r0 b _0807DA48 .align 2, 0 -_0807DA40: .4byte gUnk_03000BF0 +_0807DA40: .4byte gRoomControls _0807DA44: ldr r2, [sp, #0x34] adds r7, r7, r2 @@ -3149,7 +3149,7 @@ sub_0807E2A8: @ 0x0807E2A8 lsrs r3, r3, #8 movs r1, #0x2e ldrsh r0, [r5, r1] - ldr r4, _0807E2DC @ =gUnk_03000BF0 + ldr r4, _0807E2DC @ =gRoomControls ldrh r1, [r4, #6] subs r0, r0, r1 movs r7, #0x32 @@ -3165,7 +3165,7 @@ sub_0807E2A8: @ 0x0807E2A8 strb r0, [r2, #7] pop {r4, r5, r6, r7, pc} .align 2, 0 -_0807E2DC: .4byte gUnk_03000BF0 +_0807E2DC: .4byte gRoomControls _0807E2E0: .4byte gUnk_02033280 thumb_func_start sub_0807E2E4 @@ -3783,7 +3783,7 @@ _0807E728: .4byte gUnk_02033280 thumb_func_start sub_0807E72C sub_0807E72C: @ 0x0807E72C push {lr} - ldr r0, _0807E744 @ =gUnk_03000BF0 + ldr r0, _0807E744 @ =gRoomControls ldrb r1, [r0, #0xf] movs r0, #4 ands r0, r1 @@ -3794,7 +3794,7 @@ sub_0807E72C: @ 0x0807E72C strb r0, [r1, #6] b _0807E756 .align 2, 0 -_0807E744: .4byte gUnk_03000BF0 +_0807E744: .4byte gRoomControls _0807E748: .4byte gUnk_02033280 _0807E74C: ldr r2, _0807E758 @ =gUnk_02033280 @@ -3923,7 +3923,7 @@ sub_0807E80C: @ 0x0807E80C sub_0807E818: @ 0x0807E818 push {r4, r5, lr} adds r5, r0, #0 - ldr r2, _0807E83C @ =gUnk_03000BF0 + ldr r2, _0807E83C @ =gRoomControls ldr r3, [r2, #0x30] cmp r3, #0 beq _0807E840 @@ -3939,7 +3939,7 @@ sub_0807E818: @ 0x0807E818 subs r1, r1, r0 b _0807E844 .align 2, 0 -_0807E83C: .4byte gUnk_03000BF0 +_0807E83C: .4byte gRoomControls _0807E840: movs r4, #0x78 movs r1, #0x50 @@ -4149,10 +4149,10 @@ _0807E990: strb r0, [r2, #0x18] ldr r0, [r2] ldrh r0, [r0, #2] - bl sub_08056378 + bl TextboxTryNoOverlap b _0807E9C2 _0807E9AE: - ldr r0, _0807E9CC @ =gUnk_02000050 + ldr r0, _0807E9CC @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -4169,7 +4169,7 @@ _0807E9C2: _0807E9C8: pop {pc} .align 2, 0 -_0807E9CC: .4byte gUnk_02000050 +_0807E9CC: .4byte gTextBox _0807E9D0: .4byte gUnk_02033280 thumb_func_start sub_0807E9D4 @@ -4284,7 +4284,7 @@ sub_0807EA88: @ 0x0807EA88 thumb_func_start sub_0807EA94 sub_0807EA94: @ 0x0807EA94 push {lr} - ldr r0, _0807EAAC @ =gUnk_02000050 + ldr r0, _0807EAAC @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -4296,7 +4296,7 @@ sub_0807EA94: @ 0x0807EA94 _0807EAA8: pop {pc} .align 2, 0 -_0807EAAC: .4byte gUnk_02000050 +_0807EAAC: .4byte gTextBox _0807EAB0: .4byte gUnk_02033280 thumb_func_start sub_0807EAB4 @@ -4304,7 +4304,7 @@ sub_0807EAB4: @ 0x0807EAB4 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] - bl sub_08056378 + bl TextboxTryNoOverlap pop {pc} thumb_func_start sub_0807EAC0 @@ -4314,7 +4314,7 @@ sub_0807EAC0: @ 0x0807EAC0 ldr r0, [r1] ldrh r0, [r0, #2] adds r1, r2, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {pc} thumb_func_start sub_0807EAD0 @@ -4323,8 +4323,8 @@ sub_0807EAD0: @ 0x0807EAD0 adds r4, r1, #0 ldr r0, [r4] ldrh r0, [r0, #2] - bl sub_08056378 - ldr r1, _0807EAEC @ =gUnk_02000050 + bl TextboxTryNoOverlap + ldr r1, _0807EAEC @ =gTextBox movs r0, #1 strb r0, [r1, #6] ldr r0, [r4] @@ -4332,7 +4332,7 @@ sub_0807EAD0: @ 0x0807EAD0 strb r0, [r1, #7] pop {r4, pc} .align 2, 0 -_0807EAEC: .4byte gUnk_02000050 +_0807EAEC: .4byte gTextBox thumb_func_start sub_0807EAF0 sub_0807EAF0: @ 0x0807EAF0 @@ -4346,13 +4346,13 @@ sub_0807EAF0: @ 0x0807EAF0 ldr r1, [r1] adds r1, r1, r0 ldrh r0, [r1, #2] - bl sub_08056378 + bl TextboxTryNoOverlap b _0807EB16 .align 2, 0 _0807EB0C: .4byte gUnk_02033280 _0807EB10: movs r0, #0 - bl sub_08056378 + bl TextboxTryNoOverlap _0807EB16: pop {pc} @@ -4362,7 +4362,7 @@ sub_0807EB18: @ 0x0807EB18 adds r2, r0, #0 ldr r0, [r1, #4] adds r1, r2, #0 - bl sub_08056398 + bl TextboxNoOverlap pop {pc} .align 2, 0 @@ -4398,7 +4398,7 @@ sub_0807EB4C: @ 0x0807EB4C adds r4, r0, #0 ldr r2, [r1] ldrh r1, [r2, #2] - ldr r3, _0807EB70 @ =gUnk_03000BF0 + ldr r3, _0807EB70 @ =gRoomControls ldrh r0, [r3, #6] adds r1, r1, r0 ldrh r2, [r2, #4] @@ -4410,7 +4410,7 @@ sub_0807EB4C: @ 0x0807EB4C strb r0, [r4, #0x14] pop {r4, pc} .align 2, 0 -_0807EB70: .4byte gUnk_03000BF0 +_0807EB70: .4byte gRoomControls thumb_func_start sub_0807EB74 sub_0807EB74: @ 0x0807EB74 @@ -4477,7 +4477,7 @@ sub_0807EBC8: @ 0x0807EBC8 thumb_func_start sub_0807EBD8 sub_0807EBD8: @ 0x0807EBD8 push {r4, lr} - ldr r3, _0807EBF0 @ =gUnk_03000BF0 + ldr r3, _0807EBF0 @ =gRoomControls ldr r2, [r1] ldrh r1, [r2, #2] ldrh r4, [r3, #6] @@ -4489,7 +4489,7 @@ sub_0807EBD8: @ 0x0807EBD8 strh r1, [r0, #0x32] pop {r4, pc} .align 2, 0 -_0807EBF0: .4byte gUnk_03000BF0 +_0807EBF0: .4byte gRoomControls thumb_func_start sub_0807EBF4 sub_0807EBF4: @ 0x0807EBF4 @@ -4685,7 +4685,7 @@ sub_0807ED24: @ 0x0807ED24 ldrh r2, [r4, #2] movs r1, #0x2e ldrsh r0, [r7, r1] - ldr r5, _0807ED8C @ =gUnk_03000BF0 + ldr r5, _0807ED8C @ =gRoomControls ldrh r1, [r5, #6] subs r0, r0, r1 subs r0, r2, r0 @@ -4719,7 +4719,7 @@ sub_0807ED24: @ 0x0807ED24 str r0, [r6, #8] b _0807EDC8 .align 2, 0 -_0807ED8C: .4byte gUnk_03000BF0 +_0807ED8C: .4byte gRoomControls _0807ED90: ldrh r0, [r6, #0x12] subs r0, #1 @@ -4728,7 +4728,7 @@ _0807ED90: cmp r0, #0 bne _0807EDB8 ldr r2, [r6] - ldr r1, _0807EDB4 @ =gUnk_03000BF0 + ldr r1, _0807EDB4 @ =gRoomControls ldrh r0, [r1, #6] ldrh r3, [r2, #2] adds r0, r0, r3 @@ -4739,7 +4739,7 @@ _0807ED90: strh r0, [r7, #0x32] b _0807EDCE .align 2, 0 -_0807EDB4: .4byte gUnk_03000BF0 +_0807EDB4: .4byte gRoomControls _0807EDB8: ldr r0, [r7, #0x2c] ldr r1, [r6, #0x1c] @@ -4789,7 +4789,7 @@ sub_0807EE04: @ 0x0807EE04 push {r4, r5, lr} ldr r5, [r1] ldrh r2, [r5, #2] - ldr r4, _0807EE28 @ =gUnk_03000BF0 + ldr r4, _0807EE28 @ =gRoomControls ldrh r3, [r4, #6] adds r2, r2, r3 ldrh r3, [r5, #4] @@ -4803,7 +4803,7 @@ sub_0807EE04: @ 0x0807EE04 strb r0, [r2, #7] pop {r4, r5, pc} .align 2, 0 -_0807EE28: .4byte gUnk_03000BF0 +_0807EE28: .4byte gRoomControls _0807EE2C: .4byte gUnk_02033280 thumb_func_start sub_0807EE30 @@ -5156,25 +5156,25 @@ sub_0807F088: @ 0x0807F088 thumb_func_start sub_0807F098 sub_0807F098: @ 0x0807F098 - ldr r1, _0807F0A0 @ =gUnk_03000BF0 + ldr r1, _0807F0A0 @ =gRoomControls str r0, [r1, #0x30] bx lr .align 2, 0 -_0807F0A0: .4byte gUnk_03000BF0 +_0807F0A0: .4byte gRoomControls thumb_func_start sub_0807F0A4 sub_0807F0A4: @ 0x0807F0A4 - ldr r1, _0807F0AC @ =gUnk_03000BF0 + ldr r1, _0807F0AC @ =gRoomControls ldr r0, _0807F0B0 @ =gLinkEntity str r0, [r1, #0x30] bx lr .align 2, 0 -_0807F0AC: .4byte gUnk_03000BF0 +_0807F0AC: .4byte gRoomControls _0807F0B0: .4byte gLinkEntity thumb_func_start sub_0807F0B4 sub_0807F0B4: @ 0x0807F0B4 - ldr r2, _0807F0C4 @ =gUnk_03000BF0 + ldr r2, _0807F0C4 @ =gRoomControls ldr r0, [r1] ldrb r1, [r0, #2] movs r0, #7 @@ -5182,7 +5182,7 @@ sub_0807F0B4: @ 0x0807F0B4 strb r0, [r2, #0xe] bx lr .align 2, 0 -_0807F0C4: .4byte gUnk_03000BF0 +_0807F0C4: .4byte gRoomControls thumb_func_start sub_0807F0C8 sub_0807F0C8: @ 0x0807F0C8 @@ -5723,7 +5723,7 @@ sub_0807F464: @ 0x0807F464 orrs r0, r1 str r0, [r5, #8] ldr r2, [r5, #4] - ldr r1, _0807F4A8 @ =gUnk_03000BF0 + ldr r1, _0807F4A8 @ =gRoomControls ldrh r0, [r1, #6] adds r0, r0, r2 strh r0, [r5, #0x1e] @@ -5743,7 +5743,7 @@ sub_0807F464: @ 0x0807F464 movs r1, #2 b _0807F4B8 .align 2, 0 -_0807F4A8: .4byte gUnk_03000BF0 +_0807F4A8: .4byte gRoomControls _0807F4AC: movs r0, #0xc0 strb r0, [r4, #0x15] @@ -5803,7 +5803,7 @@ sub_0807F4F8: @ 0x0807F4F8 ldr r2, [r5, #4] ldrh r0, [r4, #0x2e] strh r0, [r5, #0x1e] - ldr r1, _0807F538 @ =gUnk_03000BF0 + ldr r1, _0807F538 @ =gRoomControls ldrh r0, [r1, #8] adds r0, r0, r2 strh r0, [r5, #0x22] @@ -5821,7 +5821,7 @@ sub_0807F4F8: @ 0x0807F4F8 orrs r0, r1 b _0807F546 .align 2, 0 -_0807F538: .4byte gUnk_03000BF0 +_0807F538: .4byte gRoomControls _0807F53C: movs r0, #0 strb r0, [r4, #0x15] @@ -5902,7 +5902,7 @@ _0807F5BC: .4byte gUnk_03003F80 thumb_func_start sub_0807F5C0 sub_0807F5C0: @ 0x0807F5C0 push {r4, lr} - ldr r4, _0807F620 @ =gUnk_03000BF0 + ldr r4, _0807F620 @ =gRoomControls ldr r1, [r4, #0x30] cmp r1, #0 beq _0807F62E @@ -5953,7 +5953,7 @@ _0807F602: strb r0, [r2, #7] b _0807F62E .align 2, 0 -_0807F620: .4byte gUnk_03000BF0 +_0807F620: .4byte gRoomControls _0807F624: .4byte gUnk_02033280 _0807F628: ldr r1, _0807F630 @ =gUnk_02033280 @@ -6011,7 +6011,7 @@ sub_0807F680: @ 0x0807F680 ldr r0, _0807F6A8 @ =gLinkEntity movs r1, #0x2e ldrsh r0, [r0, r1] - ldr r1, _0807F6AC @ =gUnk_03000BF0 + ldr r1, _0807F6AC @ =gRoomControls ldrh r1, [r1, #6] subs r0, r0, r1 ldrh r1, [r2, #4] @@ -6028,7 +6028,7 @@ _0807F69A: pop {pc} .align 2, 0 _0807F6A8: .4byte gLinkEntity -_0807F6AC: .4byte gUnk_03000BF0 +_0807F6AC: .4byte gRoomControls _0807F6B0: .4byte gUnk_02033280 thumb_func_start sub_0807F6B4 @@ -6039,7 +6039,7 @@ sub_0807F6B4: @ 0x0807F6B4 ldr r0, _0807F6DC @ =gLinkEntity movs r1, #0x32 ldrsh r0, [r0, r1] - ldr r1, _0807F6E0 @ =gUnk_03000BF0 + ldr r1, _0807F6E0 @ =gRoomControls ldrh r1, [r1, #8] subs r0, r0, r1 ldrh r1, [r2, #4] @@ -6056,7 +6056,7 @@ _0807F6CE: pop {pc} .align 2, 0 _0807F6DC: .4byte gLinkEntity -_0807F6E0: .4byte gUnk_03000BF0 +_0807F6E0: .4byte gRoomControls _0807F6E4: .4byte gUnk_02033280 thumb_func_start sub_0807F6E8 @@ -6134,7 +6134,7 @@ sub_0807F75C: @ 0x0807F75C push {r4, lr} ldr r2, [r1, #4] ldr r3, _0807F774 @ =gLinkEntity - ldr r1, _0807F778 @ =gUnk_03000BF0 + ldr r1, _0807F778 @ =gRoomControls asrs r0, r2, #0x10 ldrh r4, [r1, #6] adds r0, r0, r4 @@ -6145,7 +6145,7 @@ sub_0807F75C: @ 0x0807F75C pop {r4, pc} .align 2, 0 _0807F774: .4byte gLinkEntity -_0807F778: .4byte gUnk_03000BF0 +_0807F778: .4byte gRoomControls thumb_func_start sub_0807F77C sub_0807F77C: @ 0x0807F77C @@ -6177,15 +6177,15 @@ _0807F79A: adds r5, r0, #0 adds r0, r4, #0 adds r1, r6, #0 - bl sub_08056398 - ldr r0, _0807F7C0 @ =gUnk_02000050 + bl TextboxNoOverlap + ldr r0, _0807F7C0 @ =gTextBox lsls r5, r5, #0x10 lsrs r5, r5, #0x10 str r5, [r0, #0x10] pop {r4, r5, r6, pc} .align 2, 0 _0807F7BC: .4byte gUnk_02034350 -_0807F7C0: .4byte gUnk_02000050 +_0807F7C0: .4byte gTextBox thumb_func_start sub_0807F7C4 sub_0807F7C4: @ 0x0807F7C4 @@ -6257,12 +6257,12 @@ sub_0807F83C: @ 0x0807F83C thumb_func_start sub_0807F844 sub_0807F844: @ 0x0807F844 push {lr} - ldr r1, _0807F850 @ =gUnk_03000BF0 + ldr r1, _0807F850 @ =gRoomControls str r0, [r1, #0x30] bl sub_080809D4 pop {pc} .align 2, 0 -_0807F850: .4byte gUnk_03000BF0 +_0807F850: .4byte gRoomControls thumb_func_start sub_0807F854 sub_0807F854: @ 0x0807F854 @@ -6290,30 +6290,30 @@ _0807F878: @ jump table .4byte _0807F8A4 @ case 3 .4byte _0807F8B0 @ case 4 _0807F88C: - ldr r0, _0807F894 @ =gUnk_02000050 + ldr r0, _0807F894 @ =gTextBox str r3, [r0, #0x10] b _0807F8B4 .align 2, 0 -_0807F894: .4byte gUnk_02000050 +_0807F894: .4byte gTextBox _0807F898: - ldr r0, _0807F8A0 @ =gUnk_02000050 + ldr r0, _0807F8A0 @ =gTextBox str r3, [r0, #0x14] b _0807F8B4 .align 2, 0 -_0807F8A0: .4byte gUnk_02000050 +_0807F8A0: .4byte gTextBox _0807F8A4: - ldr r0, _0807F8AC @ =gUnk_02000050 + ldr r0, _0807F8AC @ =gTextBox str r3, [r0, #0x18] b _0807F8B4 .align 2, 0 -_0807F8AC: .4byte gUnk_02000050 +_0807F8AC: .4byte gTextBox _0807F8B0: - ldr r0, _0807F8B8 @ =gUnk_02000050 + ldr r0, _0807F8B8 @ =gTextBox str r3, [r0, #0x1c] _0807F8B4: pop {pc} .align 2, 0 -_0807F8B8: .4byte gUnk_02000050 +_0807F8B8: .4byte gTextBox thumb_func_start sub_0807F8BC sub_0807F8BC: @ 0x0807F8BC @@ -6694,7 +6694,7 @@ sub_0807FB94: @ 0x0807FB94 thumb_func_start sub_0807FBA0 sub_0807FBA0: @ 0x0807FBA0 - ldr r2, _0807FBB0 @ =gUnk_03000BF0 + ldr r2, _0807FBB0 @ =gRoomControls ldrh r1, [r2, #0xa] adds r1, #0x78 strh r1, [r0, #0x2e] @@ -6703,7 +6703,7 @@ sub_0807FBA0: @ 0x0807FBA0 strh r1, [r0, #0x32] bx lr .align 2, 0 -_0807FBB0: .4byte gUnk_03000BF0 +_0807FBB0: .4byte gRoomControls thumb_func_start sub_0807FBB4 sub_0807FBB4: @ 0x0807FBB4 @@ -6774,7 +6774,7 @@ _0807FC20: .4byte gUnk_02002A40 thumb_func_start sub_0807FC24 sub_0807FC24: @ 0x0807FC24 push {lr} - ldr r0, _0807FC3C @ =gUnk_03000BF0 + ldr r0, _0807FC3C @ =gRoomControls ldrb r0, [r0, #5] movs r1, #0xd1 cmp r0, #1 @@ -6785,12 +6785,12 @@ _0807FC32: bl sub_0807CCB4 pop {pc} .align 2, 0 -_0807FC3C: .4byte gUnk_03000BF0 +_0807FC3C: .4byte gRoomControls thumb_func_start sub_0807FC40 sub_0807FC40: @ 0x0807FC40 push {lr} - ldr r0, _0807FC5C @ =gUnk_03000BF0 + ldr r0, _0807FC5C @ =gRoomControls ldrb r2, [r0, #0xf] movs r1, #0xfb ands r1, r2 @@ -6803,7 +6803,7 @@ sub_0807FC40: @ 0x0807FC40 bl _call_via_r1 pop {pc} .align 2, 0 -_0807FC5C: .4byte gUnk_03000BF0 +_0807FC5C: .4byte gRoomControls _0807FC60: .4byte gUnk_0811E768 thumb_func_start sub_0807FC64 @@ -7236,7 +7236,7 @@ sub_0807FF6C: @ 0x0807FF6C push {r4, lr} movs r1, #1 strb r1, [r0, #3] - ldr r3, _0807FFC8 @ =gUnk_03000F50 + ldr r3, _0807FFC8 @ =gLCDControls ldrh r1, [r3] movs r2, #0x80 lsls r2, r2, #7 @@ -7277,7 +7277,7 @@ sub_0807FF6C: @ 0x0807FF6C strb r0, [r1, #0x14] b _0807FFD8 .align 2, 0 -_0807FFC8: .4byte gUnk_03000F50 +_0807FFC8: .4byte gLCDControls _0807FFCC: .4byte gUnk_03004030 _0807FFD0: .4byte gLinkEntity _0807FFD4: @@ -7386,7 +7386,7 @@ _0808009C: ble _080800A8 movs r3, #0xa0 _080800A8: - ldr r2, _080800F0 @ =gUnk_03000F50 + ldr r2, _080800F0 @ =gLCDControls movs r1, #0xff ands r7, r1 lsls r0, r7, #8 @@ -7420,7 +7420,7 @@ _080800C6: bl sub_08080C80 b _08080102 .align 2, 0 -_080800F0: .4byte gUnk_03000F50 +_080800F0: .4byte gLCDControls _080800F4: .4byte gUnk_08109194 _080800F8: .4byte gUnk_03004030 _080800FC: @@ -7555,7 +7555,7 @@ _0808020C: ble _08080214 movs r3, #0xa0 _08080214: - ldr r2, _08080260 @ =gUnk_03000F50 + ldr r2, _08080260 @ =gLCDControls movs r1, #0xff ands r7, r1 lsls r0, r7, #8 @@ -7577,7 +7577,7 @@ _08080232: strb r0, [r5, #2] strh r0, [r5] bl sub_0805E5B4 - ldr r1, _08080260 @ =gUnk_03000F50 + ldr r1, _08080260 @ =gLCDControls ldrh r2, [r1] ldr r0, _08080264 @ =0x0000BFFF ands r0, r2 @@ -7594,7 +7594,7 @@ _08080232: strh r0, [r1] b _08080272 .align 2, 0 -_08080260: .4byte gUnk_03000F50 +_08080260: .4byte gLCDControls _08080264: .4byte 0x0000BFFF _08080268: ldr r0, _08080274 @ =gUnk_02000070 @@ -7617,7 +7617,7 @@ sub_08080278: @ 0x08080278 sub sp, #8 ldr r0, _08080344 @ =gUnk_02022830 mov ip, r0 - ldr r1, _08080348 @ =gUnk_03000BF0 + ldr r1, _08080348 @ =gRoomControls ldrh r0, [r1, #0x1e] lsrs r0, r0, #4 str r0, [sp] @@ -7719,7 +7719,7 @@ _08080336: pop {r4, r5, r6, r7, pc} .align 2, 0 _08080344: .4byte gUnk_02022830 -_08080348: .4byte gUnk_03000BF0 +_08080348: .4byte gRoomControls _0808034C: .4byte gUnk_0200B654 _08080350: .4byte gUnk_0200E654 _08080354: .4byte gUnk_02025EB4 @@ -7732,7 +7732,7 @@ _08080364: .4byte 0x000007FF sub_08080368: @ 0x08080368 push {r4, r5, r6, r7, lr} ldr r0, _08080384 @ =gUnk_03004030 - ldr r1, _08080388 @ =gUnk_03000BF0 + ldr r1, _08080388 @ =gRoomControls ldrb r0, [r0, #0xa] ldrb r1, [r1, #4] cmp r0, r1 @@ -7745,7 +7745,7 @@ sub_08080368: @ 0x08080368 b _080803BE .align 2, 0 _08080384: .4byte gUnk_03004030 -_08080388: .4byte gUnk_03000BF0 +_08080388: .4byte gRoomControls _0808038C: .4byte gUnk_02034480 _08080390: ldr r5, _080803C0 @ =gUnk_020246B0 @@ -7788,7 +7788,7 @@ sub_080803D0: @ 0x080803D0 mov r5, r8 push {r5, r6, r7} sub sp, #0x38 - ldr r1, _080804F0 @ =gUnk_03000BF0 + ldr r1, _080804F0 @ =gRoomControls movs r2, #0xa ldrsh r0, [r1, r2] ldrh r2, [r1, #6] @@ -7929,7 +7929,7 @@ _080804C4: ldr r3, [sp, #0x30] b _080804F6 .align 2, 0 -_080804F0: .4byte gUnk_03000BF0 +_080804F0: .4byte gRoomControls _080804F4: adds r4, r4, r3 _080804F6: @@ -8074,7 +8074,7 @@ _080805EA: thumb_func_start sub_080805F8 sub_080805F8: @ 0x080805F8 push {lr} - ldr r0, _08080610 @ =gUnk_03000BF0 + ldr r0, _08080610 @ =gRoomControls ldrb r0, [r0, #4] subs r0, #0xc cmp r0, #0xd @@ -8085,7 +8085,7 @@ sub_080805F8: @ 0x080805F8 ldr r0, [r0] mov pc, r0 .align 2, 0 -_08080610: .4byte gUnk_03000BF0 +_08080610: .4byte gRoomControls _08080614: .4byte _08080618 _08080618: @ jump table .4byte _08080650 @ case 0 @@ -8120,7 +8120,7 @@ _08080664: .4byte gUnk_03004030 thumb_func_start sub_08080668 sub_08080668: @ 0x08080668 push {r4, r5, lr} - ldr r5, _080806A4 @ =gUnk_03000BF0 + ldr r5, _080806A4 @ =gRoomControls adds r0, r5, #0 movs r1, #0x38 bl sub_0801D630 @@ -8145,7 +8145,7 @@ sub_08080668: @ 0x08080668 bl sub_0801D630 pop {r4, r5, pc} .align 2, 0 -_080806A4: .4byte gUnk_03000BF0 +_080806A4: .4byte gRoomControls _080806A8: .4byte gUnk_03004030 _080806AC: .4byte 0x0000FFFF _080806B0: .4byte gUnk_02034480 @@ -8282,7 +8282,7 @@ _080807A8: movs r0, #0 b _08080800 _080807AC: - ldr r0, _080807BC @ =gUnk_03000BF0 + ldr r0, _080807BC @ =gRoomControls ldrh r0, [r0, #0x1e] lsrs r0, r0, #1 movs r3, #1 @@ -8291,9 +8291,9 @@ _080807AC: movs r3, #2 b _080807F6 .align 2, 0 -_080807BC: .4byte gUnk_03000BF0 +_080807BC: .4byte gRoomControls _080807C0: - ldr r0, _080807D0 @ =gUnk_03000BF0 + ldr r0, _080807D0 @ =gRoomControls ldrh r0, [r0, #0x20] lsrs r0, r0, #1 movs r3, #4 @@ -8302,9 +8302,9 @@ _080807C0: movs r3, #8 b _080807F6 .align 2, 0 -_080807D0: .4byte gUnk_03000BF0 +_080807D0: .4byte gRoomControls _080807D4: - ldr r0, _080807E4 @ =gUnk_03000BF0 + ldr r0, _080807E4 @ =gRoomControls ldrh r0, [r0, #0x1e] lsrs r0, r0, #1 movs r3, #0x10 @@ -8313,9 +8313,9 @@ _080807D4: movs r3, #0x20 b _080807F6 .align 2, 0 -_080807E4: .4byte gUnk_03000BF0 +_080807E4: .4byte gRoomControls _080807E8: - ldr r0, _08080804 @ =gUnk_03000BF0 + ldr r0, _08080804 @ =gRoomControls ldrh r0, [r0, #0x20] lsrs r0, r0, #1 movs r3, #0x40 @@ -8331,7 +8331,7 @@ _080807F6: _08080800: pop {r4, pc} .align 2, 0 -_08080804: .4byte gUnk_03000BF0 +_08080804: .4byte gRoomControls thumb_func_start sub_08080808 sub_08080808: @ 0x08080808 @@ -8384,7 +8384,7 @@ sub_08080840: @ 0x08080840 _0808085C: .4byte gUnk_030010A0 _08080860: .4byte 0x000003FF _08080864: - ldr r0, _08080880 @ =gUnk_03000BF0 + ldr r0, _08080880 @ =gRoomControls ldr r0, [r0, #0x30] ldrh r1, [r0, #0x2e] ldr r3, _08080884 @ =0xFFFF8000 @@ -8399,11 +8399,11 @@ _08080872: strh r1, [r2, #6] b _0808089A .align 2, 0 -_08080880: .4byte gUnk_03000BF0 +_08080880: .4byte gRoomControls _08080884: .4byte 0xFFFF8000 _08080888: .4byte 0x000003FF _0808088C: - ldr r0, _080808CC @ =gUnk_03000BF0 + ldr r0, _080808CC @ =gRoomControls ldr r0, [r0, #0x30] ldrh r1, [r0, #0x32] ldr r3, _080808D0 @ =0xFFFF8000 @@ -8435,7 +8435,7 @@ _080808B8: bl _call_via_r1 pop {r4, pc} .align 2, 0 -_080808CC: .4byte gUnk_03000BF0 +_080808CC: .4byte gRoomControls _080808D0: .4byte 0xFFFF8000 _080808D4: .4byte gUnk_0811E7C4 @@ -8499,7 +8499,7 @@ _0808092C: .4byte gUnk_030010A0 thumb_func_start sub_08080930 sub_08080930: @ 0x08080930 push {lr} - ldr r1, _08080948 @ =gUnk_03000BF0 + ldr r1, _08080948 @ =gRoomControls movs r2, #0 movs r0, #5 strb r0, [r1, #2] @@ -8510,7 +8510,7 @@ sub_08080930: @ 0x08080930 bl sub_0805E5A8 pop {pc} .align 2, 0 -_08080948: .4byte gUnk_03000BF0 +_08080948: .4byte gRoomControls thumb_func_start sub_0808094C sub_0808094C: @ 0x0808094C @@ -8530,71165 +8530,11 @@ _08080960: .4byte gUnk_0200B650 thumb_func_start sub_08080964 sub_08080964: @ 0x08080964 - ldr r2, _08080970 @ =gUnk_03000BF0 + ldr r2, _08080970 @ =gRoomControls strh r0, [r2, #0x16] movs r0, #7 ands r1, r0 strb r1, [r2, #0x14] bx lr .align 2, 0 -_08080970: .4byte gUnk_03000BF0 - - thumb_func_start sub_08080974 -sub_08080974: @ 0x08080974 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldr r1, _0808098C @ =gUnk_03000BF0 - ldrh r2, [r1, #6] - adds r0, r2, #0 - adds r0, #0x78 - cmp r3, r0 - bhi _08080990 - strh r2, [r1, #0xa] - b _080809A2 - .align 2, 0 -_0808098C: .4byte gUnk_03000BF0 -_08080990: - ldrh r0, [r1, #0x1e] - adds r2, r2, r0 - adds r0, r2, #0 - subs r0, #0x78 - cmp r3, r0 - bhs _0808099E - adds r0, r3, #0 -_0808099E: - subs r0, #0x78 - strh r0, [r1, #0xa] -_080809A2: - ldrh r2, [r1, #8] - adds r0, r2, #0 - adds r0, #0x50 - cmp r4, r0 - bhi _080809B0 - strh r2, [r1, #0xc] - b _080809C2 -_080809B0: - ldrh r0, [r1, #0x20] - adds r2, r2, r0 - adds r0, r2, #0 - subs r0, #0x50 - cmp r4, r0 - bhs _080809BE - adds r0, r4, #0 -_080809BE: - subs r0, #0x50 - strh r0, [r1, #0xc] -_080809C2: - bl sub_080809D4 - ldr r1, _080809D0 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_080809D0: .4byte gUnk_02000070 - - thumb_func_start sub_080809D4 -sub_080809D4: @ 0x080809D4 - push {r4, lr} - ldr r2, _080809F4 @ =gUnk_03000BF0 - ldrb r0, [r2, #0xf] - movs r1, #0xfb - ands r1, r0 - strb r1, [r2, #0xf] - ldr r4, [r2, #0x30] - movs r0, #0x2e - ldrsh r3, [r4, r0] - ldrh r1, [r2, #6] - adds r0, r1, #0 - adds r0, #0x78 - cmp r3, r0 - bgt _080809F8 - strh r1, [r2, #0xa] - b _08080A0A - .align 2, 0 -_080809F4: .4byte gUnk_03000BF0 -_080809F8: - ldrh r0, [r2, #0x1e] - adds r1, r1, r0 - adds r0, r1, #0 - subs r0, #0x78 - cmp r3, r0 - bge _08080A06 - ldrh r0, [r4, #0x2e] -_08080A06: - subs r0, #0x78 - strh r0, [r2, #0xa] -_08080A0A: - ldr r4, [r2, #0x30] - movs r0, #0x32 - ldrsh r3, [r4, r0] - ldrh r1, [r2, #8] - adds r0, r1, #0 - adds r0, #0x50 - cmp r3, r0 - bgt _08080A1E - strh r1, [r2, #0xc] - b _08080A30 -_08080A1E: - ldrh r0, [r2, #0x20] - adds r1, r1, r0 - adds r0, r1, #0 - subs r0, #0x50 - cmp r3, r0 - bge _08080A2C - ldrh r0, [r4, #0x32] -_08080A2C: - subs r0, #0x50 - strh r0, [r2, #0xc] -_08080A30: - bl sub_08080BC4 - ldr r1, _08080A3C @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_08080A3C: .4byte gUnk_02000070 - - thumb_func_start sub_08080A40 -sub_08080A40: @ 0x08080A40 - push {r4, r5, r6, r7, lr} - ldr r7, _08080A70 @ =gUnk_03000BF0 - ldr r1, [r7, #0x30] - ldr r0, _08080A74 @ =gLinkEntity - adds r2, r7, #0 - cmp r1, r0 - beq _08080A50 - b _08080B5C -_08080A50: - ldr r0, _08080A78 @ =gUnk_03003F80 - ldrb r0, [r0, #2] - cmp r0, #0 - beq _08080A5A - b _08080B5C -_08080A5A: - ldrb r0, [r1, #0xc] - subs r0, #1 - cmp r0, #0x1c - bls _08080A64 - b _08080B5C -_08080A64: - lsls r0, r0, #2 - ldr r1, _08080A7C @ =_08080A80 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08080A70: .4byte gUnk_03000BF0 -_08080A74: .4byte gLinkEntity -_08080A78: .4byte gUnk_03003F80 -_08080A7C: .4byte _08080A80 -_08080A80: @ jump table - .4byte _08080AFA @ case 0 - .4byte _08080B5C @ case 1 - .4byte _08080B5C @ case 2 - .4byte _08080B5C @ case 3 - .4byte _08080B5C @ case 4 - .4byte _08080B5C @ case 5 - .4byte _08080B5C @ case 6 - .4byte _08080B5C @ case 7 - .4byte _08080AFA @ case 8 - .4byte _08080B5C @ case 9 - .4byte _08080B5C @ case 10 - .4byte _08080B5C @ case 11 - .4byte _08080B5C @ case 12 - .4byte _08080B5C @ case 13 - .4byte _08080AF4 @ case 14 - .4byte _08080B5C @ case 15 - .4byte _08080B5C @ case 16 - .4byte _08080B5C @ case 17 - .4byte _08080B5C @ case 18 - .4byte _08080B5C @ case 19 - .4byte _08080B5C @ case 20 - .4byte _08080B5C @ case 21 - .4byte _08080B5C @ case 22 - .4byte _08080AFA @ case 23 - .4byte _08080B5C @ case 24 - .4byte _08080B5C @ case 25 - .4byte _08080B5C @ case 26 - .4byte _08080B5C @ case 27 - .4byte _08080AFA @ case 28 -_08080AF4: - ldrb r0, [r2, #4] - cmp r0, #0x48 - beq _08080B5C -_08080AFA: - ldr r3, [r7, #0x30] - movs r0, #0x32 - ldrsh r1, [r3, r0] - ldrh r0, [r7, #8] - subs r6, r1, r0 - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldrh r0, [r7, #6] - subs r5, r1, r0 - asrs r0, r5, #4 - movs r2, #0x3f - ands r0, r2 - asrs r1, r6, #4 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - adds r3, #0x38 - ldrb r1, [r3] - bl sub_080002C8 - adds r4, r0, #0 - ldr r0, [r7, #0x30] - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080002A8 - ldr r1, _08080B48 @ =gUnk_030010A0 - strh r0, [r1, #0xa] - cmp r4, #0x3f - beq _08080B50 - cmp r4, #0x3f - bhi _08080B4C - cmp r4, #0x29 - bhi _08080B5C - cmp r4, #0x28 - blo _08080B5C - b _08080B50 - .align 2, 0 -_08080B48: .4byte gUnk_030010A0 -_08080B4C: - cmp r4, #0xf1 - bne _08080B5C -_08080B50: - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0xff - movs r3, #0xa - bl sub_080806BC -_08080B5C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08080B60 -sub_08080B60: @ 0x08080B60 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _08080B90 @ =0x00005004 - adds r4, r0, r1 - ldr r2, _08080B94 @ =gUnk_080B37A0 - mov r8, r2 - movs r3, #0 - ldr r1, _08080B98 @ =0x00003FFF - mov ip, r1 - ldr r7, _08080B9C @ =gUnk_080B7910 - ldr r2, _08080BA0 @ =0x0000B004 - adds r1, r0, r2 - adds r2, r0, #4 - ldr r6, _08080BA4 @ =0xFFFFC000 - ldr r5, _08080BA8 @ =0x00000FFF -_08080B80: - ldrh r0, [r2] - cmp r0, ip - bhi _08080BAC - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - add r0, r8 - b _08080BB0 - .align 2, 0 -_08080B90: .4byte 0x00005004 -_08080B94: .4byte gUnk_080B37A0 -_08080B98: .4byte 0x00003FFF -_08080B9C: .4byte gUnk_080B7910 -_08080BA0: .4byte 0x0000B004 -_08080BA4: .4byte 0xFFFFC000 -_08080BA8: .4byte 0x00000FFF -_08080BAC: - adds r0, r0, r6 - adds r0, r0, r7 -_08080BB0: - ldrb r0, [r0] - strb r0, [r1] - adds r1, #1 - adds r2, #2 - adds r3, #1 - cmp r3, r5 - bls _08080B80 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08080BC4 -sub_08080BC4: @ 0x08080BC4 - push {r4, r5, r6, lr} - ldr r3, _08080C40 @ =gUnk_03000BF0 - movs r0, #0xa - ldrsh r1, [r3, r0] - ldrh r0, [r3, #6] - subs r5, r1, r0 - movs r2, #0xf - ands r5, r2 - movs r1, #0xc - ldrsh r0, [r3, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - ands r0, r2 - adds r6, r0, #0 - adds r6, #8 - ldrh r2, [r3, #0x16] - adds r4, r2, #0 - cmp r4, #0 - beq _08080C50 - subs r2, #1 - strh r2, [r3, #0x16] - ldrb r0, [r3, #0x14] - lsls r0, r0, #4 - movs r1, #0xe - ands r2, r1 - adds r0, r0, r2 - ldr r1, _08080C44 @ =gUnk_080169A4 - adds r2, r0, r1 - ldr r4, _08080C48 @ =gUnk_02025EB0 - ldr r1, [r4] - cmp r1, #0 - beq _08080C16 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r0, r0, r5 - strh r0, [r1, #2] - ldr r1, [r4] - movs r0, #1 - ldrsb r0, [r2, r0] - adds r0, r0, r6 - strh r0, [r1, #4] -_08080C16: - ldr r4, _08080C4C @ =gUnk_0200B650 - ldr r1, [r4] - cmp r1, #0 - beq _08080C30 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r0, r0, r5 - strh r0, [r1, #2] - ldr r1, [r4] - movs r0, #1 - ldrsb r0, [r2, r0] - adds r0, r0, r6 - strh r0, [r1, #4] -_08080C30: - ldrb r1, [r2] - adds r0, r3, #0 - adds r0, #0x24 - strb r1, [r0] - ldrb r1, [r2, #1] - adds r0, #1 - strb r1, [r0] - b _08080C76 - .align 2, 0 -_08080C40: .4byte gUnk_03000BF0 -_08080C44: .4byte gUnk_080169A4 -_08080C48: .4byte gUnk_02025EB0 -_08080C4C: .4byte gUnk_0200B650 -_08080C50: - ldr r0, _08080C78 @ =gUnk_02025EB0 - ldr r1, [r0] - cmp r1, #0 - beq _08080C5E - strh r5, [r1, #2] - ldr r0, [r0] - strh r6, [r0, #4] -_08080C5E: - ldr r0, _08080C7C @ =gUnk_0200B650 - ldr r1, [r0] - cmp r1, #0 - beq _08080C6C - strh r5, [r1, #2] - ldr r0, [r0] - strh r6, [r0, #4] -_08080C6C: - adds r0, r3, #0 - adds r0, #0x24 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] -_08080C76: - pop {r4, r5, r6, pc} - .align 2, 0 -_08080C78: .4byte gUnk_02025EB0 -_08080C7C: .4byte gUnk_0200B650 - - thumb_func_start sub_08080C80 -sub_08080C80: @ 0x08080C80 - push {r4, lr} - bl sub_080197D4 - ldr r0, _08080CA8 @ =gUnk_02025EB4 - ldr r4, _08080CAC @ =gUnk_03000BF0 - ldrh r1, [r4, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r4, #0x20] - lsrs r2, r2, #4 - bl sub_0807C8B0 - ldr r0, _08080CB0 @ =gUnk_0200B654 - ldrh r1, [r4, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r4, #0x20] - lsrs r2, r2, #4 - bl sub_0807C8B0 - pop {r4, pc} - .align 2, 0 -_08080CA8: .4byte gUnk_02025EB4 -_08080CAC: .4byte gUnk_03000BF0 -_08080CB0: .4byte gUnk_0200B654 - - thumb_func_start sub_08080CB4 -sub_08080CB4: @ 0x08080CB4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x58 - ldrb r0, [r4, #0xa] - ldrb r1, [r1] - cmp r0, r1 - beq _08080CF0 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - ldrb r0, [r4, #0xa] - cmp r0, #0x5c - beq _08080CD4 - b _08080E00 -_08080CD4: - ldrb r0, [r4, #0xb] - lsls r0, r0, #3 - ldr r1, _08080CEC @ =gUnk_080C9CBC - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - lsls r0, r0, #4 - orrs r0, r1 - strb r0, [r4, #0x1a] - b _08080E00 - .align 2, 0 -_08080CEC: .4byte gUnk_080C9CBC -_08080CF0: - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _08080D00 - b _08080E00 -_08080D00: - ldrb r0, [r4, #0xa] - subs r0, #0x40 - cmp r0, #0x22 - bhi _08080E00 - lsls r0, r0, #2 - ldr r1, _08080D14 @ =_08080D18 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08080D14: .4byte _08080D18 -_08080D18: @ jump table - .4byte _08080DEE @ case 0 - .4byte _08080DEE @ case 1 - .4byte _08080DEE @ case 2 - .4byte _08080DEE @ case 3 - .4byte _08080E00 @ case 4 - .4byte _08080E00 @ case 5 - .4byte _08080E00 @ case 6 - .4byte _08080E00 @ case 7 - .4byte _08080E00 @ case 8 - .4byte _08080E00 @ case 9 - .4byte _08080E00 @ case 10 - .4byte _08080E00 @ case 11 - .4byte _08080E00 @ case 12 - .4byte _08080E00 @ case 13 - .4byte _08080E00 @ case 14 - .4byte _08080E00 @ case 15 - .4byte _08080E00 @ case 16 - .4byte _08080E00 @ case 17 - .4byte _08080E00 @ case 18 - .4byte _08080E00 @ case 19 - .4byte _08080E00 @ case 20 - .4byte _08080E00 @ case 21 - .4byte _08080E00 @ case 22 - .4byte _08080E00 @ case 23 - .4byte _08080E00 @ case 24 - .4byte _08080E00 @ case 25 - .4byte _08080E00 @ case 26 - .4byte _08080E00 @ case 27 - .4byte _08080DEE @ case 28 - .4byte _08080E00 @ case 29 - .4byte _08080E00 @ case 30 - .4byte _08080E00 @ case 31 - .4byte _08080DA4 @ case 32 - .4byte _08080E00 @ case 33 - .4byte _08080DEE @ case 34 -_08080DA4: - adds r5, r4, #0 - adds r5, #0x6a - ldrb r0, [r5] - cmp r0, #0 - beq _08080DB4 - subs r0, #1 - strb r0, [r5] - b _08080E00 -_08080DB4: - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0xa - strb r0, [r5] - adds r0, r4, #0 - movs r1, #7 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08080E00 - adds r0, r4, #0 - adds r0, #0x62 - ldrb r0, [r0] - adds r2, r1, #0 - adds r2, #0x62 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x63 - ldrb r0, [r0] - adds r2, #1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806FAB0 - b _08080E00 -_08080DEE: - ldr r0, _08080E04 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08080E00 - adds r0, r4, #0 - bl sub_080A2B80 -_08080E00: - pop {r4, r5, pc} - .align 2, 0 -_08080E04: .4byte gUnk_030010A0 - - thumb_func_start sub_08080E08 -sub_08080E08: @ 0x08080E08 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08080EDE - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1e - bhi _08080EDE - lsls r0, r0, #2 - ldr r1, _08080E2C @ =_08080E30 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08080E2C: .4byte _08080E30 -_08080E30: @ jump table - .4byte _08080ED8 @ case 0 - .4byte _08080ED8 @ case 1 - .4byte _08080EDE @ case 2 - .4byte _08080EDE @ case 3 - .4byte _08080ED8 @ case 4 - .4byte _08080ED8 @ case 5 - .4byte _08080ED8 @ case 6 - .4byte _08080EDE @ case 7 - .4byte _08080ED8 @ case 8 - .4byte _08080ED8 @ case 9 - .4byte _08080ED8 @ case 10 - .4byte _08080ED8 @ case 11 - .4byte _08080ED8 @ case 12 - .4byte _08080EDE @ case 13 - .4byte _08080EDE @ case 14 - .4byte _08080EDE @ case 15 - .4byte _08080EDE @ case 16 - .4byte _08080EDE @ case 17 - .4byte _08080EDE @ case 18 - .4byte _08080EDE @ case 19 - .4byte _08080EAC @ case 20 - .4byte _08080EDE @ case 21 - .4byte _08080EDE @ case 22 - .4byte _08080EDE @ case 23 - .4byte _08080EDE @ case 24 - .4byte _08080EDE @ case 25 - .4byte _08080EDE @ case 26 - .4byte _08080EDE @ case 27 - .4byte _08080EDE @ case 28 - .4byte _08080EDE @ case 29 - .4byte _08080ED8 @ case 30 -_08080EAC: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4, #0x4c] - str r0, [r4, #0x54] - b _08080EDE -_08080ED8: - adds r0, r4, #0 - bl sub_08081598 -_08080EDE: - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08080EF0 - adds r0, r4, #0 - bl sub_080813BC - b _08080F00 -_08080EF0: - ldr r0, _08080F18 @ =gUnk_0811E7D4 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08080F00: - ldrb r0, [r4, #0xa] - cmp r0, #0x5c - bne _08080F0E - ldr r1, _08080F1C @ =gUnk_02034350 - ldrb r0, [r1, #4] - adds r0, #1 - strb r0, [r1, #4] -_08080F0E: - adds r0, r4, #0 - bl sub_08080CB4 - pop {r4, pc} - .align 2, 0 -_08080F18: .4byte gUnk_0811E7D4 -_08080F1C: .4byte gUnk_02034350 - - thumb_func_start sub_08080F20 -sub_08080F20: @ 0x08080F20 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08080F3A - bl sub_0807CBE4 - cmp r0, #0 - beq _08080F3A - bl sub_0805E780 -_08080F3A: - ldrb r0, [r4, #0xa] - cmp r0, #0x60 - bne _08080F42 - b _0808107C -_08080F42: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #7 - strb r0, [r1] - subs r1, #3 - movs r0, #0x47 - strb r0, [r1] - adds r1, #4 - movs r0, #0x44 - strb r0, [r1] - adds r1, #5 - movs r0, #0xff - strb r0, [r1] - ldr r0, _08080F9C @ =gUnk_080FD1A8 - str r0, [r4, #0x48] - ldrb r0, [r4, #0xa] - subs r0, #0x3f - cmp r0, #0x20 - bhi _08081030 - lsls r0, r0, #2 - ldr r1, _08080FA0 @ =_08080FA4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08080F9C: .4byte gUnk_080FD1A8 -_08080FA0: .4byte _08080FA4 -_08080FA4: @ jump table - .4byte _08081028 @ case 0 - .4byte _08081030 @ case 1 - .4byte _08081030 @ case 2 - .4byte _08081030 @ case 3 - .4byte _08081030 @ case 4 - .4byte _08081030 @ case 5 - .4byte _08081030 @ case 6 - .4byte _08081030 @ case 7 - .4byte _08081030 @ case 8 - .4byte _08081030 @ case 9 - .4byte _08081030 @ case 10 - .4byte _08081030 @ case 11 - .4byte _08081030 @ case 12 - .4byte _08081030 @ case 13 - .4byte _08081030 @ case 14 - .4byte _08081030 @ case 15 - .4byte _08081030 @ case 16 - .4byte _08081030 @ case 17 - .4byte _08081030 @ case 18 - .4byte _08081030 @ case 19 - .4byte _08081030 @ case 20 - .4byte _08081028 @ case 21 - .4byte _08081028 @ case 22 - .4byte _08081028 @ case 23 - .4byte _08081028 @ case 24 - .4byte _08081028 @ case 25 - .4byte _08081030 @ case 26 - .4byte _08081030 @ case 27 - .4byte _08081030 @ case 28 - .4byte _08081028 @ case 29 - .4byte _08081028 @ case 30 - .4byte _08081028 @ case 31 - .4byte _08081028 @ case 32 -_08081028: - adds r1, r4, #0 - adds r1, #0x3b - movs r0, #0x17 - b _08081036 -_08081030: - adds r1, r4, #0 - adds r1, #0x3b - movs r0, #0x11 -_08081036: - strb r0, [r1] - ldrb r0, [r4, #0xe] - adds r5, r4, #0 - adds r5, #0x69 - movs r2, #0 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x6a - strb r2, [r0] - adds r0, #2 - movs r1, #0 - strh r2, [r0] - subs r0, #4 - strb r1, [r0] - strb r1, [r4, #0xe] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r0, [r4, #0xa] - bl sub_0808147C - strb r0, [r4, #0x1c] - ldr r1, _08081078 @ =gUnk_0811E7E8 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - b _080810A4 - .align 2, 0 -_08081078: .4byte gUnk_0811E7E8 -_0808107C: - movs r0, #0x40 - movs r1, #0x60 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080810A4 - movs r0, #0 - strb r0, [r1, #0xe] - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _0808109A - movs r0, #2 - strb r0, [r1, #0xb] -_0808109A: - adds r0, r4, #0 - bl sub_0806FA24 - bl sub_0805E780 -_080810A4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080810A8 -sub_080810A8: @ 0x080810A8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080814A4 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080810D6 - movs r0, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080810DC - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _080810DC -_080810D6: - movs r0, #0xff - orrs r0, r1 - strb r0, [r4, #0x15] -_080810DC: - ldr r0, [r4, #0x20] - cmp r0, #0 - bne _080810E8 - movs r0, #0xf0 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_080810E8: - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _080810F8 - adds r0, r4, #0 - bl sub_08016A30 -_080810F8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080810FC -sub_080810FC: @ 0x080810FC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0x5f - beq _0808110E - adds r0, r2, #0 - bl sub_08081598 - b _0808112E -_0808110E: - movs r1, #0 - movs r0, #2 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r1, r2, #0 - adds r1, #0x3b - movs r0, #0x11 - strb r0, [r1] - ldr r0, _08081130 @ =gLinkEntity - adds r1, r2, #0 - bl sub_0806FA24 -_0808112E: - pop {pc} - .align 2, 0 -_08081130: .4byte gLinkEntity - - thumb_func_start sub_08081134 -sub_08081134: @ 0x08081134 - push {r4, lr} - adds r4, r0, #0 - bl sub_080814A4 - adds r1, r4, #0 - adds r1, #0x6c - ldrh r0, [r1] - adds r0, #0x50 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08081150 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08081150 -sub_08081150: @ 0x08081150 - push {lr} - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - ldr r1, _08081180 @ =0x0000FF80 - strh r1, [r0, #0x36] - ldrb r3, [r0, #0x1b] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r3 - movs r3, #0x40 - orrs r1, r3 - strb r1, [r0, #0x1b] - ldrb r1, [r0, #0x19] - ands r2, r1 - orrs r2, r3 - strb r2, [r0, #0x19] - ldr r0, _08081184 @ =0x0000012D - bl sub_080A3268 - pop {pc} - .align 2, 0 -_08081180: .4byte 0x0000FF80 -_08081184: .4byte 0x0000012D - - thumb_func_start sub_08081188 -sub_08081188: @ 0x08081188 - push {lr} - adds r2, r0, #0 - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _080811A8 - adds r0, r2, #0 - bl sub_08016A30 -_080811A8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080811AC -sub_080811AC: @ 0x080811AC - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_080002A0 - adds r4, #0x6e - strh r0, [r4] - pop {r4, pc} - - thumb_func_start sub_080811C8 -sub_080811C8: @ 0x080811C8 - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #6 - ands r1, r2 - strb r1, [r0, #0x18] - bx lr - .align 2, 0 - - thumb_func_start sub_080811D8 -sub_080811D8: @ 0x080811D8 - push {lr} - bl sub_08081188 - ldr r0, _080811E8 @ =0x00000215 - bl sub_080A3268 - pop {pc} - .align 2, 0 -_080811E8: .4byte 0x00000215 - - thumb_func_start sub_080811EC -sub_080811EC: @ 0x080811EC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x69 - ldrb r0, [r0] - cmp r0, #6 - beq _08081200 - adds r0, r4, #0 - bl sub_080AEFE0 - b _08081206 -_08081200: - adds r0, r4, #0 - bl sub_0806F69C -_08081206: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _08081228 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_080814A4 -_08081228: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808122C -sub_0808122C: @ 0x0808122C - push {lr} - ldr r2, _08081244 @ =gUnk_0811E814 - adds r1, r0, #0 - adds r1, #0x69 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08081244: .4byte gUnk_0811E814 - - thumb_func_start sub_08081248 -sub_08081248: @ 0x08081248 - push {r4, lr} - adds r4, r0, #0 - bl sub_08081500 - adds r0, r4, #0 - bl sub_080814C0 - cmp r0, #0 - beq _08081264 - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 - b _0808126A -_08081264: - adds r0, r4, #0 - bl sub_0800442E -_0808126A: - pop {r4, pc} - - thumb_func_start sub_0808126C -sub_0808126C: @ 0x0808126C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0808153C - pop {r4, pc} - - thumb_func_start sub_0808127C -sub_0808127C: @ 0x0808127C - push {r4, lr} - adds r4, r0, #0 - bl sub_080814C0 - cmp r0, #0 - beq _08081292 - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 - b _08081298 -_08081292: - adds r0, r4, #0 - bl sub_0808153C -_08081298: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_113 -nullsub_113: @ 0x0808129C - bx lr - .align 2, 0 - - thumb_func_start sub_080812A0 -sub_080812A0: @ 0x080812A0 - push {lr} - bl sub_08081500 - pop {pc} - - thumb_func_start sub_080812A8 -sub_080812A8: @ 0x080812A8 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080002D0 - cmp r0, #0xf - beq _080812E4 - adds r0, r5, #0 - adds r0, #0x6e - ldrh r4, [r0] - adds r0, r5, #0 - bl sub_080002A0 - cmp r4, r0 - beq _080812E4 - movs r0, #0 - strb r0, [r5, #0x15] - movs r2, #0 - strh r0, [r5, #0x24] - ldrb r1, [r5, #0x18] - subs r0, #4 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - adds r0, #0x69 - strb r2, [r0] - adds r0, r5, #0 - bl sub_080810A8 -_080812E4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080812E8 -sub_080812E8: @ 0x080812E8 - push {r4, lr} - adds r4, r0, #0 - ldr r3, _0808131C @ =gUnk_03003F80 - adds r0, r3, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08081318 - ldr r0, [r3, #0x30] - ands r0, r2 - cmp r0, #0 - bne _08081318 - ldr r1, _08081320 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _08081318 - adds r0, r4, #0 - bl sub_080810FC -_08081318: - pop {r4, pc} - .align 2, 0 -_0808131C: .4byte gUnk_03003F80 -_08081320: .4byte gLinkEntity - - thumb_func_start nullsub_510 -nullsub_510: @ 0x08081324 - bx lr - .align 2, 0 - - thumb_func_start sub_08081328 -sub_08081328: @ 0x08081328 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x54] - ldrh r1, [r2, #8] - movs r0, #0xc2 - lsls r0, r0, #2 - cmp r1, r0 - beq _08081342 - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 - b _08081364 -_08081342: - adds r0, r2, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - ldr r2, _08081368 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080177A0 - cmp r0, #0 - beq _08081364 - adds r0, r4, #0 - bl sub_080810FC -_08081364: - pop {r4, pc} - .align 2, 0 -_08081368: .4byte gLinkEntity - - thumb_func_start sub_0808136C -sub_0808136C: @ 0x0808136C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080813B2 - ldr r3, [r5, #0x54] - ldr r0, [r3, #0x2c] - str r0, [r5, #0x2c] - ldr r0, [r3, #0x30] - str r0, [r5, #0x30] - ldrb r2, [r3, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r4, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r3, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x19] - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_08003FC4 - b _080813BA -_080813B2: - adds r0, r5, #0 - movs r1, #1 - bl sub_08081404 -_080813BA: - pop {r4, r5, pc} - - thumb_func_start sub_080813BC -sub_080813BC: @ 0x080813BC - push {lr} - ldr r2, _080813D0 @ =gUnk_0811E840 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080813D0: .4byte gUnk_0811E840 - - thumb_func_start sub_080813D4 -sub_080813D4: @ 0x080813D4 - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xd] - strb r1, [r0, #0x1d] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - bx lr - - thumb_func_start sub_080813E8 -sub_080813E8: @ 0x080813E8 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080813F0 -sub_080813F0: @ 0x080813F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08081402 - adds r0, r4, #0 - bl sub_080810FC -_08081402: - pop {r4, pc} - - thumb_func_start sub_08081404 -sub_08081404: @ 0x08081404 - push {lr} - cmp r1, #0 - beq _08081418 - adds r1, r0, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08081418 - bl sub_0807CCC8 -_08081418: - bl sub_0805E780 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08081420 -sub_08081420: @ 0x08081420 - push {r4, lr} - adds r4, r0, #0 - bl sub_08081450 - cmp r0, #0 - bne _08081438 - ldrb r0, [r4, #0xa] - ldrb r1, [r4, #0xb] - bl sub_08053FF0 - movs r0, #0 - b _0808144C -_08081438: - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldrb r0, [r4, #0xa] - ldrb r1, [r4, #0xb] - movs r2, #0 - bl sub_080A7C00 - movs r0, #1 -_0808144C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08081450 -sub_08081450: @ 0x08081450 - push {r4, lr} - movs r4, #0 - ldr r1, _08081478 @ =gUnk_080FD5B4 - ldrb r2, [r0, #0xa] - lsls r0, r2, #3 - adds r0, r0, r1 - ldrb r1, [r0, #3] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08081470 - adds r0, r2, #0 - bl GetInventoryValue - cmp r0, #0 - bne _08081472 -_08081470: - movs r4, #1 -_08081472: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_08081478: .4byte gUnk_080FD5B4 - - thumb_func_start sub_0808147C -sub_0808147C: @ 0x0808147C - lsls r0, r0, #3 - ldr r1, _08081488 @ =gUnk_0811E84C - adds r0, r0, r1 - ldrb r0, [r0, #4] - bx lr - .align 2, 0 -_08081488: .4byte gUnk_0811E84C - - thumb_func_start sub_0808148C -sub_0808148C: @ 0x0808148C - push {lr} - lsls r0, r0, #3 - ldr r1, _080814A0 @ =gUnk_0811E84C - adds r1, r0, r1 - ldrh r0, [r1, #2] - cmp r0, #0 - beq _0808149E - bl sub_080A3268 -_0808149E: - pop {pc} - .align 2, 0 -_080814A0: .4byte gUnk_0811E84C - - thumb_func_start sub_080814A4 -sub_080814A4: @ 0x080814A4 - push {lr} - adds r1, r0, #0 - adds r0, #0x69 - ldrb r0, [r0] - cmp r0, #0xa - bne _080814B6 - adds r1, #0x6c - movs r0, #0x78 - b _080814BC -_080814B6: - adds r1, #0x6c - movs r0, #0x96 - lsls r0, r0, #2 -_080814BC: - strh r0, [r1] - pop {pc} - - thumb_func_start sub_080814C0 -sub_080814C0: @ 0x080814C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805E40C - cmp r0, #0 - bne _080814FA - adds r0, r4, #0 - adds r0, #0x6c - ldrh r1, [r0] - subs r1, #1 - strh r1, [r0] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _080814E0 - movs r0, #1 - b _080814FC -_080814E0: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x59 - bhi _080814FA - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080814FA: - movs r0, #0 -_080814FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08081500 -sub_08081500: @ 0x08081500 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x68 - ldrb r0, [r5] - cmp r0, #0 - bne _08081538 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - bne _08081522 - movs r0, #1 - strb r0, [r5] - b _08081538 -_08081522: - cmp r0, #1 - bne _08081532 - ldrb r0, [r4, #0xa] - bl sub_0808148C - adds r0, r4, #0 - bl sub_08016A04 -_08081532: - adds r0, r4, #0 - bl sub_080AEFE0 -_08081538: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808153C -sub_0808153C: @ 0x0808153C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x68 - ldrb r0, [r5] - cmp r0, #1 - bhi _08081596 - cmp r0, #0 - bne _0808157E - movs r1, #0x80 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08081596 - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _08081596 - movs r0, #1 - strb r0, [r5] - movs r0, #0xf0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - ldrb r0, [r4, #0xa] - bl sub_0808148C - adds r0, r4, #0 - bl sub_08016A04 - b _08081596 -_0808157E: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08081596 - movs r0, #2 - strb r0, [r5] - ldrb r0, [r4, #0xa] - bl sub_0808148C -_08081596: - pop {r4, r5, pc} - - thumb_func_start sub_08081598 -sub_08081598: @ 0x08081598 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080815AC - adds r0, r4, #0 - movs r1, #1 - bl sub_08081404 -_080815AC: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xe - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - movs r1, #8 - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08081618 @ =gLinkEntity - str r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x36] - subs r0, #4 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xa] - cmp r0, #0x5f - beq _08081614 - adds r0, r4, #0 - bl sub_08081420 - cmp r0, #0 - beq _08081614 - adds r0, r4, #0 - movs r1, #1 - bl sub_08081404 -_08081614: - pop {r4, pc} - .align 2, 0 -_08081618: .4byte gLinkEntity - - thumb_func_start sub_0808161C -sub_0808161C: @ 0x0808161C - push {lr} - ldr r2, _08081630 @ =gUnk_0811EBFC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08081630: .4byte gUnk_0811EBFC - - thumb_func_start sub_08081634 -sub_08081634: @ 0x08081634 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x6c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808169C - movs r5, #0 - movs r0, #0x65 - strh r0, [r4, #0x12] - movs r1, #2 - strb r1, [r4, #0xc] - strb r5, [r4, #0x15] - movs r0, #0x40 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r4, #0 - bl sub_08016A04 - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0xe] - movs r2, #0x80 - cmp r0, #0 - beq _08081674 - adds r2, r0, #0 - strb r5, [r4, #0xe] -_08081674: - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl sub_080AE008 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - ldr r0, _08081698 @ =0x00000129 - bl sub_080A3268 - b _0808170C - .align 2, 0 -_08081698: .4byte 0x00000129 -_0808169C: - movs r0, #0xc - ands r0, r1 - cmp r0, #0 - beq _080816B2 - adds r0, r4, #0 - bl sub_08081790 - adds r0, r4, #0 - bl sub_0808180C - b _08081702 -_080816B2: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080816C4 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _08081702 -_080816C4: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08081718 @ =gUnk_0811EC08 - ldrb r0, [r4, #0xa] - lsrs r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0] - ldrb r0, [r4, #0xa] - movs r1, #3 - ands r0, r1 - lsls r0, r0, #1 - asrs r2, r0 - ands r2, r1 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080816FA - ldr r0, _0808171C @ =gUnk_0811EC20 - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r1, #0xe] -_080816FA: - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08004260 -_08081702: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - bl sub_08004488 -_0808170C: - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - pop {r4, r5, pc} - .align 2, 0 -_08081718: .4byte gUnk_0811EC08 -_0808171C: .4byte gUnk_0811EC20 - - thumb_func_start sub_08081720 -sub_08081720: @ 0x08081720 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08081744 - adds r0, r4, #0 - bl sub_08081790 - adds r0, r4, #0 - bl sub_0808180C - b _0808175E -_08081744: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808175E - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_0808175E: - pop {r4, pc} - - thumb_func_start sub_08081760 -sub_08081760: @ 0x08081760 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808177E - adds r0, r4, #0 - bl sub_0808180C - b _0808178C -_0808177E: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808178C - adds r0, r4, #0 - bl sub_0806F69C -_0808178C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08081790 -sub_08081790: @ 0x08081790 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x6d - ldrb r0, [r1] - cmp r0, #0xef - bhi _080817B4 - ldr r0, _080817B0 @ =gUnk_0811EC64 - ldrb r1, [r1] - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r2, #0 - bl sub_0805457C - b _080817C6 - .align 2, 0 -_080817B0: .4byte gUnk_0811EC64 -_080817B4: - ldr r0, _080817C8 @ =gUnk_0811EC24 - ldrb r1, [r1] - subs r1, #0xf0 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080817C6: - pop {pc} - .align 2, 0 -_080817C8: .4byte gUnk_0811EC24 - - thumb_func_start sub_080817CC -sub_080817CC: @ 0x080817CC - push {lr} - movs r1, #9 - bl sub_0805457C - pop {pc} - .align 2, 0 - - thumb_func_start sub_080817D8 -sub_080817D8: @ 0x080817D8 - push {lr} - movs r1, #0xd - bl sub_0805457C - pop {pc} - .align 2, 0 - - thumb_func_start sub_080817E4 -sub_080817E4: @ 0x080817E4 - push {lr} - movs r1, #0xe - bl sub_0805457C - pop {pc} - .align 2, 0 - - thumb_func_start sub_080817F0 -sub_080817F0: @ 0x080817F0 - push {lr} - movs r1, #1 - bl sub_0805457C - pop {pc} - .align 2, 0 - - thumb_func_start sub_080817FC -sub_080817FC: @ 0x080817FC - push {lr} - adds r1, r0, #0 - adds r1, #0x6e - ldrb r1, [r1] - movs r2, #0 - bl sub_08054754 - pop {pc} - - thumb_func_start sub_0808180C -sub_0808180C: @ 0x0808180C - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_08081814 -sub_08081814: @ 0x08081814 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08081850 @ =gUnk_0811EE28 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - beq _08081838 - adds r0, r4, #0 - bl sub_08080CB4 -_08081838: - ldrb r0, [r4, #0xe] - cmp r0, #2 - bgt _0808184E - cmp r0, #1 - blt _0808184E - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _0808184E - adds r0, r4, #0 - bl sub_0800445C -_0808184E: - pop {r4, pc} - .align 2, 0 -_08081850: .4byte gUnk_0811EE28 - - thumb_func_start sub_08081854 -sub_08081854: @ 0x08081854 - push {r4, lr} - adds r4, r0, #0 - movs r3, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - strb r3, [r4, #0x16] - str r4, [r4, #0x54] - adds r0, r4, #0 - bl sub_08081A5C - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0808188E - cmp r0, #1 - beq _08081898 - b _0808189C -_0808188E: - ldr r0, _08081894 @ =gUnk_080FD328 - b _0808189A - .align 2, 0 -_08081894: .4byte gUnk_080FD328 -_08081898: - ldr r0, _080818A0 @ =gUnk_080FD198 -_0808189A: - str r0, [r4, #0x48] -_0808189C: - pop {r4, pc} - .align 2, 0 -_080818A0: .4byte gUnk_080FD198 - - thumb_func_start sub_080818A4 -sub_080818A4: @ 0x080818A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xd] - cmp r2, #0 - beq _080818C0 - movs r1, #2 - strb r1, [r4, #0xc] - ldr r0, _080818BC @ =gUnk_0200AF00 - adds r0, #0x2f - strb r1, [r0] - b _08081920 - .align 2, 0 -_080818BC: .4byte gUnk_0200AF00 -_080818C0: - ldrb r0, [r4, #0xa] - cmp r0, #0x36 - bne _080818F0 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08081920 - strb r2, [r1] - movs r0, #3 - strb r0, [r4, #0xc] - ldr r1, _080818E8 @ =gUnk_02034350 - movs r0, #1 - str r0, [r1, #0x68] - ldr r1, _080818EC @ =gUnk_03003F80 - movs r0, #7 - strb r0, [r1, #0xc] - b _08081920 - .align 2, 0 -_080818E8: .4byte gUnk_02034350 -_080818EC: .4byte gUnk_03003F80 -_080818F0: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08081920 - strb r2, [r1] - movs r0, #1 - strb r0, [r4, #0xd] - bl sub_08078B48 - bl sub_08077B2C - ldr r1, _08081924 @ =gUnk_03003F80 - movs r0, #4 - strb r0, [r1, #5] - ldr r0, _08081928 @ =gLinkEntity - str r4, [r0, #0x74] - ldr r0, _0808192C @ =gUnk_0200AF00 - adds r0, #0x2f - movs r1, #2 - strb r1, [r0] - bl sub_08056360 -_08081920: - pop {r4, pc} - .align 2, 0 -_08081924: .4byte gUnk_03003F80 -_08081928: .4byte gLinkEntity -_0808192C: .4byte gUnk_0200AF00 - - thumb_func_start sub_08081930 -sub_08081930: @ 0x08081930 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _08081968 @ =gUnk_0200AF00 - adds r6, r0, #0 - adds r6, #0x2f - movs r0, #2 - strb r0, [r6] - ldr r3, _0808196C @ =gLinkEntity - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - subs r0, #6 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r5, _08081970 @ =gUnk_03003F80 - ldrb r0, [r5, #5] - cmp r0, #0 - beq _0808195E - ldr r0, [r3, #0x74] - cmp r4, r0 - beq _08081974 -_0808195E: - adds r0, r4, #0 - bl sub_080819B4 - b _080819AC - .align 2, 0 -_08081968: .4byte gUnk_0200AF00 -_0808196C: .4byte gLinkEntity -_08081970: .4byte gUnk_03003F80 -_08081974: - bl sub_080784E4 - adds r1, r0, #0 - ldr r0, [r1, #8] - cmp r0, #0 - beq _08081998 - ldrb r0, [r1, #1] - cmp r0, #1 - bne _08081998 - movs r0, #7 - strb r0, [r6] - adds r0, r5, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - bne _080819AC -_08081998: - ldr r0, _080819B0 @ =gUnk_03003F80 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x98 - ands r0, r1 - cmp r0, #0 - beq _080819AC - adds r0, r4, #0 - bl sub_080819B4 -_080819AC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080819B0: .4byte gUnk_03003F80 - - thumb_func_start sub_080819B4 -sub_080819B4: @ 0x080819B4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _08081A48 @ =gUnk_02034350 - ldrb r0, [r0, #6] - cmp r0, #0 - bne _080819D4 - ldr r0, [r5, #0x50] - cmp r0, #0 - beq _080819D0 - adds r0, #0x20 - ldrb r1, [r5, #0xf] - adds r0, r0, r1 - movs r1, #0xff - strb r1, [r0] -_080819D0: - bl sub_0805E780 -_080819D4: - ldr r0, _08081A4C @ =gUnk_03003F80 - movs r2, #0 - strb r2, [r0, #5] - ldr r4, _08081A50 @ =gLinkEntity - str r2, [r4, #0x74] - ldr r1, _08081A54 @ =gUnk_0200AF00 - ldr r3, _08081A48 @ =gUnk_02034350 - strb r2, [r3, #6] - adds r0, r1, #0 - adds r0, #0x2c - strb r2, [r0] - adds r1, #0x2f - strb r2, [r1] - strb r2, [r3, #7] - adds r1, r5, #0 - adds r1, #0x80 - ldr r3, _08081A58 @ =gUnk_03000BF0 - ldrh r0, [r3, #6] - ldrh r1, [r1] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r5, #0x2e] - movs r6, #0x82 - ldrh r0, [r3, #8] - ldrh r3, [r6, r5] - adds r0, r0, r3 - strh r0, [r5, #0x32] - str r2, [r5, #0x34] - movs r3, #1 - strb r3, [r5, #0xc] - strb r1, [r5, #0xd] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x1b] - adds r0, r5, #0 - adds r0, #0x38 - strb r3, [r0] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl sub_08016A04 - adds r0, r5, #0 - bl sub_08081A5C - pop {r4, r5, r6, pc} - .align 2, 0 -_08081A48: .4byte gUnk_02034350 -_08081A4C: .4byte gUnk_03003F80 -_08081A50: .4byte gLinkEntity -_08081A54: .4byte gUnk_0200AF00 -_08081A58: .4byte gUnk_03000BF0 - - thumb_func_start sub_08081A5C -sub_08081A5C: @ 0x08081A5C - push {r4, lr} - adds r4, r0, #0 - bl sub_080787D8 - adds r2, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _08081A7A - ldr r0, _08081A7C @ =gUnk_03003DF0 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1, #0xa] -_08081A7A: - pop {r4, pc} - .align 2, 0 -_08081A7C: .4byte gUnk_03003DF0 - - thumb_func_start sub_08081A80 -sub_08081A80: @ 0x08081A80 - push {lr} - adds r2, r0, #0 - ldr r0, _08081A98 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - cmp r0, #0 - bne _08081A9C - bl sub_08081AB0 - bl sub_0805E780 - b _08081AAC - .align 2, 0 -_08081A98: .4byte gUnk_02034350 -_08081A9C: - cmp r0, #2 - bne _08081AAC - movs r1, #0 - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - bl sub_08081AB0 -_08081AAC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08081AB0 -sub_08081AB0: @ 0x08081AB0 - push {lr} - ldr r1, _08081AC4 @ =gUnk_02034350 - movs r0, #0 - str r0, [r1, #0x68] - strb r0, [r1, #6] - strb r0, [r1, #7] - bl sub_08078A90 - pop {pc} - .align 2, 0 -_08081AC4: .4byte gUnk_02034350 - - thumb_func_start sub_08081AC8 -sub_08081AC8: @ 0x08081AC8 - push {lr} - ldr r2, _08081ADC @ =gUnk_0811EE38 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08081ADC: .4byte gUnk_0811EE38 - - thumb_func_start sub_08081AE0 -sub_08081AE0: @ 0x08081AE0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x84 - ldrh r1, [r0] - cmp r1, #0 - beq _08081B0E - subs r0, #0x4c - strb r1, [r0] -_08081B0E: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08081B6C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x74 - strh r1, [r5] - ldrh r0, [r5] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080002B0 - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08081B70 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08081B70 - movs r0, #5 - strb r0, [r4, #0xc] - ldrh r1, [r5] - ldrb r2, [r6] - movs r0, #0x7a - bl sub_0807B314 - b _08081B82 - .align 2, 0 -_08081B6C: .4byte gUnk_03000BF0 -_08081B70: - adds r0, r4, #0 - bl sub_08081E3C - cmp r0, #0 - beq _08081B7E - movs r0, #2 - b _08081B80 -_08081B7E: - movs r0, #1 -_08081B80: - strb r0, [r4, #0xc] -_08081B82: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08081B84 -sub_08081B84: @ 0x08081B84 - push {r4, lr} - adds r4, r0, #0 - bl sub_08081E3C - cmp r0, #0 - beq _08081BAA - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] -_08081BAA: - pop {r4, pc} - - thumb_func_start sub_08081BAC -sub_08081BAC: @ 0x08081BAC - push {r4, lr} - adds r4, r0, #0 - bl sub_08081CB0 - cmp r0, #0 - beq _08081BDC - movs r0, #0 - strb r0, [r4, #0xd] - movs r0, #0xa - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0xa - bl sub_0805E4E0 - adds r0, r4, #0 - bl sub_08081FF8 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _08081BD8 - movs r0, #3 - b _08081BDA -_08081BD8: - movs r0, #5 -_08081BDA: - strb r0, [r4, #0xc] -_08081BDC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08081BE0 -sub_08081BE0: @ 0x08081BE0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x78 - bl sub_08081F7C - cmp r0, #0 - beq _08081C2C - adds r0, r4, #0 - bl sub_08081D28 - cmp r0, #0 - bne _08081C26 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xf] - ldr r1, _08081C1C @ =gUnk_03003F80 - ldrb r0, [r1, #5] - cmp r0, #2 - beq _08081C16 - adds r0, r1, #0 - adds r0, #0x35 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08081C20 -_08081C16: - movs r0, #0x18 - strb r0, [r4, #0xe] - b _08081C2C - .align 2, 0 -_08081C1C: .4byte gUnk_03003F80 -_08081C20: - movs r0, #8 - strb r0, [r4, #0xe] - b _08081C2C -_08081C26: - adds r0, r4, #0 - bl sub_08081E6C -_08081C2C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08081C30 -sub_08081C30: @ 0x08081C30 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08081C70 - subs r0, #1 - movs r5, #0 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08081C5A - strb r5, [r4, #0xf] - ldr r0, _08081C6C @ =0x00004035 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_08081C5A: - adds r0, r4, #0 - bl sub_08081CB0 - cmp r0, #0 - beq _08081C96 - movs r0, #3 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - b _08081C96 - .align 2, 0 -_08081C6C: .4byte 0x00004035 -_08081C70: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - subs r0, #0x3c - ldrb r2, [r0] - movs r0, #0x77 - bl sub_0807B314 - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_080A3268 -_08081C96: - pop {r4, r5, pc} - - thumb_func_start sub_08081C98 -sub_08081C98: @ 0x08081C98 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x7a - bl sub_08081F7C - cmp r0, #0 - beq _08081CAC - adds r0, r4, #0 - bl sub_08081E6C -_08081CAC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08081CB0 -sub_08081CB0: @ 0x08081CB0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08081D74 - cmp r0, #0 - beq _08081CEC - adds r1, r4, #0 - adds r1, #0x70 - ldr r0, _08081CE4 @ =0x0000FFFF - strh r0, [r1] - adds r5, r4, #0 - adds r5, #0x74 - ldrh r0, [r5] - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080002B0 - ldr r1, _08081CE8 @ =0x00004035 - cmp r0, r1 - bne _08081D1C - ldrh r1, [r5] - ldrb r2, [r4] - movs r0, #0x78 - bl sub_0807B7D8 - b _08081D1C - .align 2, 0 -_08081CE4: .4byte 0x0000FFFF -_08081CE8: .4byte 0x00004035 -_08081CEC: - adds r6, r4, #0 - adds r6, #0x74 - ldrh r0, [r6] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x77 - beq _08081D24 - cmp r1, #0x79 - beq _08081D24 - ldr r0, _08081D20 @ =0x00004035 - cmp r1, r0 - beq _08081D24 - ldrh r0, [r6] - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] -_08081D1C: - movs r0, #1 - b _08081D26 - .align 2, 0 -_08081D20: .4byte 0x00004035 -_08081D24: - movs r0, #0 -_08081D26: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08081D28 -sub_08081D28: @ 0x08081D28 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08081D74 - cmp r0, #0 - beq _08081D44 - adds r1, r4, #0 - adds r1, #0x70 - ldr r0, _08081D40 @ =0x0000FFFF - strh r0, [r1] - movs r0, #1 - b _08081D72 - .align 2, 0 -_08081D40: .4byte 0x0000FFFF -_08081D44: - adds r5, r4, #0 - adds r5, #0x70 - ldrh r1, [r5] - ldr r0, _08081D6C @ =0x0000FFFF - cmp r1, r0 - beq _08081D70 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - ldrh r5, [r5] - cmp r0, r5 - bne _08081D70 - movs r0, #1 - b _08081D72 - .align 2, 0 -_08081D6C: .4byte 0x0000FFFF -_08081D70: - movs r0, #0 -_08081D72: - pop {r4, r5, pc} - - thumb_func_start sub_08081D74 -sub_08081D74: @ 0x08081D74 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - cmp r0, #0xf - bne _08081D8E - movs r0, #0 - b _08081E0A -_08081D8E: - movs r6, #0 - adds r0, r4, #0 - bl sub_08081E0C - cmp r0, #0 - beq _08081DB4 - ldr r0, _08081DAC @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x90 - ands r0, r1 - cmp r0, #0 - bne _08081E06 - ldr r6, _08081DB0 @ =gLinkEntity - b _08081E06 - .align 2, 0 -_08081DAC: .4byte gUnk_03003F80 -_08081DB0: .4byte gLinkEntity -_08081DB4: - ldr r0, _08081DD8 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _08081E06 - ldr r5, _08081DDC @ =gUnk_03004040 - ldr r1, [r5] - adds r0, r4, #0 - movs r2, #5 - movs r3, #6 - bl sub_080041A0 - cmp r0, #0 - beq _08081DE0 - ldr r6, [r5] - b _08081E06 - .align 2, 0 -_08081DD8: .4byte gUnk_03003F80 -_08081DDC: .4byte gUnk_03004040 -_08081DE0: - ldr r1, [r5, #4] - adds r0, r4, #0 - movs r2, #5 - movs r3, #6 - bl sub_080041A0 - cmp r0, #0 - beq _08081DF4 - ldr r6, [r5, #4] - b _08081E06 -_08081DF4: - ldr r1, [r5, #8] - adds r0, r4, #0 - movs r2, #5 - movs r3, #6 - bl sub_080041A0 - cmp r0, #0 - beq _08081E06 - ldr r6, [r5, #8] -_08081E06: - str r6, [r4, #0x54] - adds r0, r6, #0 -_08081E0A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08081E0C -sub_08081E0C: @ 0x08081E0C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08081E28 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08081E22 - bl sub_08079F8C - cmp r0, #0 - bne _08081E2C -_08081E22: - movs r0, #0 - b _08081E38 - .align 2, 0 -_08081E28: .4byte gLinkEntity -_08081E2C: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #5 - movs r3, #6 - bl sub_080041A0 -_08081E38: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08081E3C -sub_08081E3C: @ 0x08081E3C - push {lr} - adds r1, r0, #0 - adds r1, #0x74 - ldrh r2, [r1] - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - bl sub_080002B0 - adds r2, r0, #0 - ldr r1, _08081E64 @ =gUnk_0811EE50 -_08081E52: - ldrh r0, [r1] - cmp r0, r2 - beq _08081E68 - adds r1, #2 - ldrh r0, [r1] - cmp r0, #0 - bne _08081E52 - movs r0, #0 - b _08081E6A - .align 2, 0 -_08081E64: .4byte gUnk_0811EE50 -_08081E68: - movs r0, #1 -_08081E6A: - pop {pc} - - thumb_func_start sub_08081E6C -sub_08081E6C: @ 0x08081E6C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x74 - ldrh r6, [r0] - subs r0, #0x3c - ldrb r5, [r0] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080002B0 - adds r7, r0, #0 - ldr r0, _08081EEC @ =0x00003FFF - cmp r7, r0 - bls _08081EE8 - adds r0, r5, #0 - bl sub_0808094C - adds r1, r0, #0 - ldrb r0, [r4, #0xa] - movs r4, #0x78 - cmp r0, #0 - bne _08081E9A - movs r4, #0x7a -_08081E9A: - ldr r0, _08081EF0 @ =0x00007004 - adds r3, r1, r0 - lsls r0, r4, #1 - ldr r2, _08081EF4 @ =0x00006004 - adds r1, r1, r2 - adds r1, r1, r0 - ldrh r0, [r1] - lsls r0, r0, #3 - adds r3, r3, r0 - ldr r2, _08081EF8 @ =gUnk_02019EE0 - cmp r5, #2 - bne _08081EB4 - ldr r2, _08081EFC @ =gUnk_02002F00 -_08081EB4: - movs r0, #0x3f - ands r0, r6 - lsls r0, r0, #1 - movs r1, #0xfc - lsls r1, r1, #4 - ands r1, r6 - lsls r1, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r2, r2, r0 - adds r0, r2, #0 - adds r1, r3, #0 - bl sub_08081F00 - cmp r0, #0 - bne _08081EE8 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_0807B314 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_0800015E -_08081EE8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08081EEC: .4byte 0x00003FFF -_08081EF0: .4byte 0x00007004 -_08081EF4: .4byte 0x00006004 -_08081EF8: .4byte gUnk_02019EE0 -_08081EFC: .4byte gUnk_02002F00 - - thumb_func_start sub_08081F00 -sub_08081F00: @ 0x08081F00 - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - ldr r1, [r2] - ldr r0, [r3] - cmp r1, r0 - bne _08081F20 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r2, r1 - ldr r1, [r0] - ldr r0, [r3, #4] - cmp r1, r0 - bne _08081F20 - movs r0, #1 - b _08081F22 -_08081F20: - movs r0, #0 -_08081F22: - pop {pc} - - thumb_func_start sub_08081F24 -sub_08081F24: @ 0x08081F24 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08081F50 - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x11] - ldrh r0, [r2, #0x2e] - adds r0, #7 - strh r0, [r2, #0x2e] - ldrh r0, [r2, #0x32] - adds r0, #5 - strh r0, [r2, #0x32] -_08081F50: - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08081F7A - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x11] - ldrh r0, [r2, #0x2e] - subs r0, #7 - strh r0, [r2, #0x2e] - ldrh r0, [r2, #0x32] - adds r0, #5 - strh r0, [r2, #0x32] -_08081F7A: - pop {r4, pc} - - thumb_func_start sub_08081F7C -sub_08081F7C: @ 0x08081F7C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r1, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08081FF4 - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bls _08081FA4 - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _08081FF4 - adds r1, r0, #0 - adds r1, #0x63 - movs r0, #0xfc - strb r0, [r1] - b _08081FF4 -_08081FA4: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bne _08081FF4 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - adds r6, r4, #0 - adds r6, #0x74 - ldrh r1, [r6] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r2, [r5] - adds r0, r7, #0 - bl sub_0807B314 - adds r0, r4, #0 - bl sub_08081F24 - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_080A3268 - adds r2, r4, #0 - adds r2, #0x70 - ldrh r1, [r2] - ldr r0, _08081FF0 @ =0x0000FFFF - cmp r1, r0 - beq _08081FEC - adds r0, r1, #0 - ldrh r1, [r6] - ldrb r2, [r5] - bl sub_0800015E -_08081FEC: - movs r0, #0 - b _08081FF6 - .align 2, 0 -_08081FF0: .4byte 0x0000FFFF -_08081FF4: - movs r0, #1 -_08081FF6: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08081FF8 -sub_08081FF8: @ 0x08081FF8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x54] - ldr r0, _08082038 @ =gLinkEntity - cmp r1, r0 - bne _08082036 - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r6, r0, #0 - ldr r0, [r4, #0x54] - movs r1, #0x80 - lsls r1, r1, #2 - adds r2, r6, #0 - bl sub_080044AE - movs r5, #0 - ldr r4, _0808203C @ =gUnk_03004040 -_0808201E: - ldr r0, [r4] - cmp r0, #0 - beq _0808202E - movs r1, #0x80 - lsls r1, r1, #2 - adds r2, r6, #0 - bl sub_080044AE -_0808202E: - adds r4, #4 - adds r5, #1 - cmp r5, #2 - bls _0808201E -_08082036: - pop {r4, r5, r6, pc} - .align 2, 0 -_08082038: .4byte gLinkEntity -_0808203C: .4byte gUnk_03004040 - - thumb_func_start sub_08082040 -sub_08082040: @ 0x08082040 - push {lr} - ldr r2, _08082054 @ =gUnk_0811EE5C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08082054: .4byte gUnk_0811EE5C - - thumb_func_start sub_08082058 -sub_08082058: @ 0x08082058 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_08082098 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08082098 -sub_08082098: @ 0x08082098 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _08082100 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080820AC - bl sub_0805E780 -_080820AC: - ldr r5, _08082104 @ =gLinkEntity - adds r0, r4, #0 - bl sub_08079BD8 - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r1, [r5, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r1, [r5, #0x14] - movs r0, #0xe - ands r0, r1 - strb r0, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0x14] - lsrs r3, r0, #1 - adds r7, r3, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0x14 - beq _08082122 - cmp r0, #0x14 - bgt _08082108 - cmp r0, #0xa - beq _0808212A - b _0808212E - .align 2, 0 -_08082100: .4byte gUnk_03003F80 -_08082104: .4byte gLinkEntity -_08082108: - cmp r0, #0x16 - beq _08082112 - cmp r0, #0x18 - beq _08082126 - b _0808212E -_08082112: - ldrb r0, [r4, #0x14] - movs r3, #0xd - adds r5, r4, #0 - adds r5, #0x58 - cmp r0, #2 - bne _080821F2 - movs r3, #0xe - b _080821F2 -_08082122: - movs r3, #0xc - b _080821EE -_08082126: - adds r3, #0xf - b _080821EE -_0808212A: - movs r3, #0x13 - b _080821EE -_0808212E: - adds r0, r5, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _0808213E - adds r3, r7, #0 - adds r3, #8 - b _080821EE -_0808213E: - ldr r2, _0808215C @ =gUnk_03003F80 - ldrb r1, [r2, #2] - adds r6, r1, #0 - cmp r6, #0 - beq _08082160 - movs r0, #0x10 - ands r0, r1 - adds r5, r4, #0 - adds r5, #0x58 - cmp r0, #0 - bne _080821F2 - adds r3, r7, #0 - adds r3, #0x19 - b _080821F2 - .align 2, 0 -_0808215C: .4byte gUnk_03003F80 -_08082160: - adds r0, r2, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #1 - beq _0808216E - cmp r0, #0x19 - bne _080821C8 -_0808216E: - adds r3, r7, #4 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, r3 - beq _08082180 - str r6, [r4, #0x34] - b _080821BA -_08082180: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r7, #0xff - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080821F2 - adds r2, r4, #0 - adds r2, #0x63 - movs r1, #0 - ldrsb r1, [r2, r1] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080821C0 - cmp r1, r0 - bgt _080821AC - subs r0, #1 - cmp r1, r0 - beq _080821B4 - b _080821F2 -_080821AC: - cmp r1, #0 - bne _080821F2 - movs r0, #0xfe - b _080821B8 -_080821B4: - ldrb r0, [r2] - orrs r0, r7 -_080821B8: - strb r0, [r2] -_080821BA: - movs r0, #6 - strb r0, [r4, #0xe] - b _080821F2 -_080821C0: - strb r6, [r2] - movs r0, #3 - strb r0, [r4, #0xe] - b _080821F2 -_080821C8: - adds r0, r2, #0 - adds r0, #0x26 - ldrb r2, [r0] - adds r1, r2, #0 - cmp r1, #0 - beq _080821E8 - movs r0, #0x80 - ands r0, r2 - adds r3, r7, #0 - adds r3, #0x14 - adds r5, r4, #0 - adds r5, #0x58 - cmp r0, #0 - beq _080821F2 - movs r3, #0x18 - b _080821F2 -_080821E8: - adds r0, r4, #0 - adds r0, #0x63 - strb r1, [r0] -_080821EE: - adds r5, r4, #0 - adds r5, #0x58 -_080821F2: - ldrb r0, [r5] - cmp r0, r3 - beq _08082202 - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_080042AC - b _08082208 -_08082202: - adds r0, r4, #0 - bl sub_080042B8 -_08082208: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0808220C -sub_0808220C: @ 0x0808220C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08082228 @ =gUnk_0811F090 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r4, #0x41 - movs r0, #0 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08082228: .4byte gUnk_0811F090 - - thumb_func_start sub_0808222C -sub_0808222C: @ 0x0808222C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0808224C - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808224C - bl sub_0805E780 -_0808224C: - movs r2, #1 - strb r2, [r4, #0xc] - ldr r0, _08082308 @ =gUnk_080FD338 - str r0, [r4, #0x48] - movs r1, #0 - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrh r0, [r4, #0x32] - adds r0, #3 - strh r0, [r4, #0x32] - strb r1, [r4, #0x16] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x45 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x6e - strb r0, [r1] - subs r1, #4 - movs r0, #0x84 - strb r0, [r1] - movs r0, #0x12 - strb r0, [r4, #0x1c] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r0, [r5] - cmp r0, #0 - bne _08082298 - adds r0, r4, #0 - bl sub_08016A30 -_08082298: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r7, _0808230C @ =gUnk_03000BF0 - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r6, #0x3f - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #7 - mov r8, r1 - cmp r0, r8 - bne _080822D6 - bl sub_0805E780 -_080822D6: - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldrh r0, [r7, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r2, [r7, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - ldrb r2, [r5] - mov r0, r8 - bl sub_0800015E - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08082308: .4byte gUnk_080FD338 -_0808230C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08082310 -sub_08082310: @ 0x08082310 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r6, #0x7f - adds r1, r6, #0 - ands r1, r0 - cmp r1, #0x13 - beq _08082342 - cmp r1, #0x1d - beq _0808234C - adds r0, r5, #0 - bl sub_080002A0 - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #7 - cmp r4, r0 - bne _08082338 - b _080824F0 -_08082338: - adds r0, #1 - cmp r4, r0 - bhs _08082340 - b _08082484 -_08082340: - b _080823C4 -_08082342: - movs r1, #0 - movs r0, #3 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - b _080824F6 -_0808234C: - adds r0, r5, #0 - adds r0, #0x70 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080823C0 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r7, #0x32 - ldrsh r2, [r5, r7] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r1, #0 - movs r0, #5 - strb r0, [r5, #0xc] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - adds r0, r5, #0 - adds r0, #0x63 - strb r1, [r0] - ldrb r1, [r5, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r5, #0x10] - adds r0, r6, #0 - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - bl sub_08082824 - b _080824F6 - .align 2, 0 -_080823C0: .4byte gUnk_03000BF0 -_080823C4: - ldr r0, _080823D4 @ =0x00004004 - cmp r4, r0 - bls _080823D8 - adds r0, #0x63 - cmp r4, r0 - beq _08082448 - b _08082484 - .align 2, 0 -_080823D4: .4byte 0x00004004 -_080823D8: - ldr r1, _08082438 @ =0xFFFFBFFF - adds r0, r4, r1 - lsls r0, r0, #3 - strb r0, [r5, #0x15] - movs r0, #0x20 - strb r0, [r5, #0xe] - movs r0, #4 - strb r0, [r5, #0xc] - ldr r0, _0808243C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08082400 - ldrh r0, [r5, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r5, #0x24] - movs r0, #0x40 - strb r0, [r5, #0xe] -_08082400: - adds r0, r5, #0 - adds r0, #0x70 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08082440 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldr r0, _08082444 @ =0x0000010F - bl sub_08004488 - b _080824F6 - .align 2, 0 -_08082438: .4byte 0xFFFFBFFF -_0808243C: .4byte gUnk_03003F80 -_08082440: .4byte gUnk_03000BF0 -_08082444: .4byte 0x0000010F -_08082448: - adds r0, r5, #0 - adds r0, #0x70 - ldrh r0, [r0] - movs r7, #0x2e - ldrsh r1, [r5, r7] - ldr r3, _08082480 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - bl sub_0805E780 - b _080824F6 - .align 2, 0 -_08082480: .4byte gUnk_03000BF0 -_08082484: - adds r0, r5, #0 - bl sub_080002B8 - cmp r0, #0xd - bne _0808249A - adds r0, r5, #0 - movs r1, #0 - movs r2, #0 - bl CreateFX - b _080824D8 -_0808249A: - ldr r0, _080824E4 @ =0x00004005 - cmp r4, r0 - bne _080824D8 - ldr r0, _080824E8 @ =gUnk_03003F80 - adds r0, #0xab - movs r1, #4 - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x70 - ldrh r0, [r0] - movs r7, #0x2e - ldrsh r1, [r5, r7] - ldr r3, _080824EC @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_080824D8: - adds r0, r5, #0 - movs r1, #0 - bl sub_08082850 - b _080824F6 - .align 2, 0 -_080824E4: .4byte 0x00004005 -_080824E8: .4byte gUnk_03003F80 -_080824EC: .4byte gUnk_03000BF0 -_080824F0: - adds r0, r5, #0 - bl sub_08078930 -_080824F6: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080824F8 -sub_080824F8: @ 0x080824F8 - push {lr} - ldr r2, _0808250C @ =gUnk_0811F0A8 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808250C: .4byte gUnk_0811F0A8 - - thumb_func_start sub_08082510 -sub_08082510: @ 0x08082510 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - movs r2, #0 - orrs r0, r1 - strb r0, [r5, #0x10] - ldr r0, _08082578 @ =gUnk_080FD340 - str r0, [r5, #0x48] - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #1 - strb r0, [r1] - ldr r0, _0808257C @ =gLinkEntity - adds r0, #0x3b - ldrb r0, [r0] - subs r1, #4 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x63 - strb r2, [r0] - adds r0, #0xd - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08082580 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - pop {r4, r5, r6, pc} - .align 2, 0 -_08082578: .4byte gUnk_080FD340 -_0808257C: .4byte gLinkEntity -_08082580: .4byte gUnk_03000BF0 - - thumb_func_start nullsub_511 -nullsub_511: @ 0x08082584 - bx lr - .align 2, 0 - - thumb_func_start sub_08082588 -sub_08082588: @ 0x08082588 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x18 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0808259C -sub_0808259C: @ 0x0808259C - push {r4, lr} - adds r4, r0, #0 - bl sub_080043E8 - cmp r0, #2 - beq _080825B8 - cmp r0, #2 - bhi _080825B2 - cmp r0, #1 - beq _080825BE - b _080825D0 -_080825B2: - cmp r0, #3 - beq _080825C4 - b _080825D0 -_080825B8: - adds r0, r4, #0 - movs r1, #0xb - b _080825C8 -_080825BE: - adds r0, r4, #0 - movs r1, #0 - b _080825C8 -_080825C4: - adds r0, r4, #0 - movs r1, #0xc -_080825C8: - movs r2, #0 - bl CreateFX - b _080825E0 -_080825D0: - ldr r1, _080825DC @ =gLinkEntity - adds r0, r4, #0 - bl sub_08082850 - b _080825E4 - .align 2, 0 -_080825DC: .4byte gLinkEntity -_080825E0: - bl sub_0805E780 -_080825E4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080825E8 -sub_080825E8: @ 0x080825E8 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080825F0 -sub_080825F0: @ 0x080825F0 - push {lr} - adds r1, r0, #0 - ldr r0, _08082604 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08082602 - adds r0, r1, #0 - bl sub_08082608 -_08082602: - pop {pc} - .align 2, 0 -_08082604: .4byte gUnk_03003F80 - - thumb_func_start sub_08082608 -sub_08082608: @ 0x08082608 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_08082614 -sub_08082614: @ 0x08082614 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_0800445C - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08082638 - adds r0, r5, #0 - bl sub_0806F69C - adds r0, r5, #0 - bl sub_08016A6C - b _080826DC -_08082638: - adds r0, r5, #0 - bl sub_0800442E - cmp r0, #0 - bne _080826DC - movs r0, #1 - strb r0, [r5, #0xc] - ldr r0, _080826A4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08082658 - ldrh r0, [r5, #0x24] - lsls r0, r0, #1 - strh r0, [r5, #0x24] -_08082658: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _080826A8 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r4, #0x32 - ldrsh r1, [r5, r4] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r4, r5, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x70 - strh r0, [r1] - adds r0, r5, #0 - bl sub_080002A0 - adds r6, r4, #0 - cmp r0, #0x72 - bhi _080826AC - cmp r0, #0x71 - blo _080826AC - adds r0, r5, #0 - movs r1, #0 - bl sub_08082850 - b _080826DC - .align 2, 0 -_080826A4: .4byte gUnk_03003F80 -_080826A8: .4byte gUnk_03000BF0 -_080826AC: - movs r0, #0x80 - lsls r0, r0, #7 - movs r7, #0x2e - ldrsh r1, [r5, r7] - ldr r3, _080826E0 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r7, #0x32 - ldrsh r2, [r5, r7] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r6] - bl sub_0800015E - adds r0, r5, #0 - bl sub_08078930 -_080826DC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080826E0: .4byte gUnk_03000BF0 - - thumb_func_start sub_080826E4 -sub_080826E4: @ 0x080826E4 - push {lr} - ldr r2, _080826F8 @ =gUnk_0811F0C4 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080826F8: .4byte gUnk_0811F0C4 - - thumb_func_start sub_080826FC -sub_080826FC: @ 0x080826FC - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x30 - strb r1, [r0, #0x1d] - strb r2, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_0808270C -sub_0808270C: @ 0x0808270C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _08082768 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0808272A - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _08082770 -_0808272A: - adds r1, r5, #0 - adds r1, #0x62 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x80 - lsls r0, r0, #7 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808276C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _08082776 - .align 2, 0 -_08082768: .4byte gUnk_03003F80 -_0808276C: .4byte gUnk_03000BF0 -_08082770: - adds r0, r5, #0 - bl sub_0806F4E8 -_08082776: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08082778 -sub_08082778: @ 0x08082778 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xe] - cmp r1, #0 - bne _080827C4 - movs r0, #1 - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x62 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #0xfe - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x70 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080827E8 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_080827C4: - ldr r0, _080827EC @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _080827DE - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _080827F0 -_080827DE: - adds r0, r5, #0 - movs r1, #0 - bl sub_08082850 - b _080827F6 - .align 2, 0 -_080827E8: .4byte gUnk_03000BF0 -_080827EC: .4byte gUnk_03003F80 -_080827F0: - adds r0, r5, #0 - bl sub_0806F3E4 -_080827F6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080827F8 -sub_080827F8: @ 0x080827F8 - push {lr} - adds r1, r0, #0 - ldr r0, _08082810 @ =gUnk_03003F80 - ldrb r0, [r0, #0x1c] - cmp r0, #0 - bne _0808280C - adds r0, r1, #0 - movs r1, #0 - bl sub_08082850 -_0808280C: - pop {pc} - .align 2, 0 -_08082810: .4byte gUnk_03003F80 - - thumb_func_start nullsub_512 -nullsub_512: @ 0x08082814 - bx lr - .align 2, 0 - - thumb_func_start sub_08082818 -sub_08082818: @ 0x08082818 - push {lr} - movs r1, #0 - bl sub_08082850 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08082824 -sub_08082824: @ 0x08082824 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08082836 - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_08082836: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0808284C - adds r0, r4, #0 - movs r1, #0 - bl sub_08082850 -_0808284C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08082850 -sub_08082850: @ 0x08082850 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r1, [r4, #0xa] - adds r0, #0x7d - ldrb r2, [r0] - ldrb r3, [r4, #0xb] - adds r0, r4, #0 - bl sub_0808288C - adds r2, r0, #0 - adds r0, r4, #0 - movs r1, #5 - bl CreateFX - cmp r0, #0 - beq _08082874 - str r5, [r0, #0x50] -_08082874: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _08082884 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_08082884: - bl sub_0805E780 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808288C -sub_0808288C: @ 0x0808288C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - mov r8, r3 - movs r6, #0 - cmp r4, #0 - beq _080828A6 - cmp r4, #0xff - bne _080828AA - b _080828D6 -_080828A6: - movs r6, #0x80 - b _080828D6 -_080828AA: - adds r0, r7, #0 - movs r1, #0 - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _080828D6 - mov r0, r8 - cmp r0, #2 - bne _080828D4 - movs r0, #5 - strb r0, [r2, #0xe] - adds r0, r7, #0 - adds r0, #0x86 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x86 - strh r1, [r0] - b _080828D6 -_080828D4: - strb r6, [r2, #0xe] -_080828D6: - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080828E0 -sub_080828E0: @ 0x080828E0 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080828F8 - ldr r0, _080828F4 @ =gUnk_0811F15C - b _08082900 - .align 2, 0 -_080828F4: .4byte gUnk_0811F15C -_080828F8: - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08082914 - ldr r0, _08082910 @ =gUnk_0811F14C -_08082900: - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08082924 - .align 2, 0 -_08082910: .4byte gUnk_0811F14C -_08082914: - ldr r0, _08082928 @ =gUnk_0811F154 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_08082924: - pop {pc} - .align 2, 0 -_08082928: .4byte gUnk_0811F154 - - thumb_func_start sub_0808292C -sub_0808292C: @ 0x0808292C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x11] - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - ldr r5, _080829C8 @ =gLinkEntity - ldrb r1, [r5, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - movs r0, #7 - ands r1, r0 - mov r0, ip - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r0, [r5, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r1, [r4, #0x1a] - ands r3, r1 - orrs r3, r0 - strb r3, [r4, #0x1a] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r5, #0x14] - cmp r0, #2 - bne _080829A4 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_080829A4: - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080829CC - movs r0, #7 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - movs r0, #0xf3 - bl sub_080A3268 - b _080829E2 - .align 2, 0 -_080829C8: .4byte gLinkEntity -_080829CC: - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #0xa - strb r0, [r4, #0xf] - ldrh r0, [r4, #0x32] - subs r0, #0xe - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0x14 - bl sub_080042AC -_080829E2: - pop {r4, r5, pc} - - thumb_func_start sub_080829E4 -sub_080829E4: @ 0x080829E4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08082A10 @ =gLinkEntity - ldrb r1, [r0, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r5, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x1a] - ldr r3, _08082A14 @ =gUnk_02000050 - ldrb r0, [r3] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _08082A18 - adds r0, r5, #0 - bl sub_0805E7BC - b _08082AB4 - .align 2, 0 -_08082A10: .4byte gLinkEntity -_08082A14: .4byte gUnk_02000050 -_08082A18: - cmp r1, #5 - beq _08082A9C - ldrb r1, [r3, #1] - adds r0, r1, #0 - cmp r0, #0xa - beq _08082A30 - cmp r0, #0 - beq _08082A30 - movs r0, #0xf - ands r0, r1 - cmp r0, #9 - bls _08082A4A -_08082A30: - adds r1, r5, #0 - adds r1, #0x58 - ldrb r2, [r5, #0xf] - movs r0, #3 - ldrb r1, [r1] - orrs r2, r0 - cmp r1, r2 - beq _08082A9C - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_080042AC - b _08082AB4 -_08082A4A: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08082A78 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x90 - ands r0, r1 - cmp r0, #0 - beq _08082A9C - bl sub_08000E50 - ldr r4, _08082A74 @ =gUnk_0811F16C - movs r1, #9 - bl __modsi3 - adds r0, r0, r4 - ldrb r0, [r0] - strb r0, [r5, #0xf] - b _08082A8C - .align 2, 0 -_08082A74: .4byte gUnk_0811F16C -_08082A78: - adds r2, r5, #0 - adds r2, #0x58 - ldr r1, _08082A98 @ =gUnk_0811F16C - ldrb r0, [r3, #1] - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r0, [r2] - cmp r0, r1 - beq _08082A9C - strb r1, [r5, #0xf] -_08082A8C: - ldrb r1, [r5, #0xf] - adds r0, r5, #0 - bl sub_080042AC - b _08082AB4 - .align 2, 0 -_08082A98: .4byte gUnk_0811F16C -_08082A9C: - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #7 - bls _08082AAA - movs r0, #1 - b _08082AAC -_08082AAA: - movs r0, #0 -_08082AAC: - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_080042B8 -_08082AB4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08082AB8 -sub_08082AB8: @ 0x08082AB8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08082B10 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r5, #0x80 - ands r0, r5 - cmp r0, #0 - beq _08082ACC - bl sub_0805E780 -_08082ACC: - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08082B5C - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08082B98 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xa - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xe] - subs r5, r0, #1 - adds r0, r4, #0 - movs r1, #0x79 - adds r2, r5, #0 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08082B18 - cmp r5, #0 - bne _08082B14 - str r1, [r4, #0x50] - b _08082B18 - .align 2, 0 -_08082B10: .4byte gUnk_03003F80 -_08082B14: - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] -_08082B18: - ldrb r0, [r4, #0xe] - cmp r0, #6 - bne _08082B36 - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xb] - adds r0, r4, #0 - movs r1, #0x1c - bl sub_080042AC - b _08082B98 -_08082B36: - ldr r1, _08082B58 @ =gUnk_0811F178 - ldrb r0, [r4, #0xe] - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080042AC - ldrb r0, [r4, #0xe] - cmp r0, #2 - bls _08082B98 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08082B98 - .align 2, 0 -_08082B58: .4byte gUnk_0811F178 -_08082B5C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08082B98 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0xe] - cmp r0, #0 - beq _08082B98 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0xe] - adds r1, #0x1b - adds r0, r4, #0 - bl sub_080042AC -_08082B98: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08082B9C -sub_08082B9C: @ 0x08082B9C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r1, [r6, #0x11] - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r6, #0x11] - ldr r5, _08082C34 @ =gLinkEntity - ldrb r0, [r5, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r1, [r6, #0x1a] - ands r2, r1 - orrs r2, r0 - strb r2, [r6, #0x1a] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r6, #0 - adds r0, #0x38 - movs r4, #0 - strb r1, [r0] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r6, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r6, #0x18] - movs r0, #1 - strb r0, [r6, #0xc] - adds r0, r6, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r6, #0 - movs r1, #0xc - bl sub_080042AC - adds r0, r6, #0 - adds r0, #0x82 - strh r4, [r0] - adds r4, r6, #0 - adds r4, #0x84 - ldr r1, [r4] - adds r0, r6, #0 - bl sub_0807DF74 - ldr r1, [r4] - adds r0, r6, #0 - bl sub_08082D20 - ldrb r0, [r5, #0x14] - cmp r0, #2 - bne _08082C2C - ldrb r0, [r6, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r6, #0x18] -_08082C2C: - adds r0, r6, #0 - bl sub_08082C5C - pop {r4, r5, r6, pc} - .align 2, 0 -_08082C34: .4byte gLinkEntity - - thumb_func_start sub_08082C38 -sub_08082C38: @ 0x08082C38 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x84 - ldr r1, [r4] - bl sub_0807DF74 - ldr r1, [r4] - adds r0, r5, #0 - bl sub_08082D20 - ldrb r0, [r5, #0xc] - cmp r0, #1 - bhi _08082C5A - adds r0, r5, #0 - bl sub_08082C5C -_08082C5A: - pop {r4, r5, pc} - - thumb_func_start sub_08082C5C -sub_08082C5C: @ 0x08082C5C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #4 - bhi _08082D0C - lsls r0, r0, #2 - ldr r1, _08082C70 @ =_08082C74 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08082C70: .4byte _08082C74 -_08082C74: @ jump table - .4byte _08082C88 @ case 0 - .4byte _08082C9C @ case 1 - .4byte _08082CB0 @ case 2 - .4byte _08082CE4 @ case 3 - .4byte _08082CF8 @ case 4 -_08082C88: - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x17 - beq _08082D0C - adds r0, r5, #0 - movs r1, #0x17 - bl sub_080042AC - b _08082D1C -_08082C9C: - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x18 - beq _08082D0C - adds r0, r5, #0 - movs r1, #0x18 - bl sub_080042AC - b _08082D1C -_08082CB0: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08082D0C - bl sub_08000E50 - adds r4, r0, #0 - bl sub_08000E50 - adds r1, r0, #0 - ldr r2, _08082CE0 @ =gUnk_0811F18C - movs r0, #3 - ands r4, r0 - adds r4, r4, r2 - ands r1, r0 - ldrb r4, [r4] - adds r1, r1, r4 - adds r0, r5, #0 - bl sub_080042AC - b _08082D1C - .align 2, 0 -_08082CE0: .4byte gUnk_0811F18C -_08082CE4: - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x13 - beq _08082D0C - adds r0, r5, #0 - movs r1, #0x13 - bl sub_080042AC - b _08082D1C -_08082CF8: - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x1a - beq _08082D0C - adds r0, r5, #0 - movs r1, #0x1a - bl sub_080042AC - b _08082D1C -_08082D0C: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_08003FC4 - adds r0, r5, #0 - bl sub_080042B8 -_08082D1C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08082D20 -sub_08082D20: @ 0x08082D20 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldr r0, [r3, #8] - cmp r0, #0 - beq _08082E10 - movs r6, #0 - movs r5, #1 - movs r0, #4 - rsbs r0, r0, #0 - mov ip, r0 -_08082D36: - ldr r1, [r3, #8] - mvns r0, r1 - adds r2, r0, #1 - ands r2, r1 - eors r1, r2 - str r1, [r3, #8] - cmp r2, #0x80 - beq _08082DB4 - cmp r2, #0x80 - bhi _08082D66 - cmp r2, #4 - beq _08082D9E - cmp r2, #4 - bhi _08082D5C - cmp r2, #1 - beq _08082D96 - cmp r2, #2 - beq _08082D9A - b _08082E0A -_08082D5C: - cmp r2, #8 - beq _08082DA4 - cmp r2, #0x40 - beq _08082DDA - b _08082E0A -_08082D66: - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r2, r0 - beq _08082DDE - cmp r2, r0 - bhi _08082D84 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r2, r0 - beq _08082DAA - movs r0, #0x80 - lsls r0, r0, #0xa - cmp r2, r0 - beq _08082DC0 - b _08082E0A -_08082D84: - movs r0, #0x80 - lsls r0, r0, #0xe - cmp r2, r0 - beq _08082DE6 - movs r0, #0x80 - lsls r0, r0, #0xf - cmp r2, r0 - beq _08082DF2 - b _08082E0A -_08082D96: - strb r6, [r4, #0xd] - b _08082E0A -_08082D9A: - strb r5, [r4, #0xd] - b _08082E0A -_08082D9E: - movs r0, #2 - strb r0, [r4, #0xd] - b _08082E0A -_08082DA4: - movs r0, #3 - strb r0, [r4, #0xd] - b _08082E0A -_08082DAA: - ldrb r0, [r4, #0x18] - mov r1, ip - ands r0, r1 - strb r0, [r4, #0x18] - b _08082E0A -_08082DB4: - ldrb r0, [r4, #0x18] - mov r7, ip - ands r0, r7 - orrs r0, r5 - strb r0, [r4, #0x18] - b _08082E0A -_08082DC0: - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r5 - ands r1, r5 - lsls r1, r1, #6 - movs r7, #0x41 - rsbs r7, r7, #0 - adds r2, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08082E0A -_08082DDA: - bl sub_0805E780 -_08082DDE: - movs r0, #2 - strb r0, [r4, #0xc] - strb r6, [r4, #0xd] - b _08082E10 -_08082DE6: - movs r0, #4 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - b _08082E0A -_08082DF2: - movs r0, #3 - strb r0, [r4, #0xc] - strb r6, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x62 - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x1b - bl sub_080042AC - b _08082E10 -_08082E0A: - ldr r0, [r3, #8] - cmp r0, #0 - bne _08082D36 -_08082E10: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08082E14 -sub_08082E14: @ 0x08082E14 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0807DF74 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08082E38 - cmp r0, #1 - beq _08082E44 - b _08082E5E -_08082E38: - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08082E5E - movs r0, #1 - strb r0, [r4, #0xd] - b _08082E5E -_08082E44: - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0xa - rsbs r0, r0, #0 - cmp r1, r0 - ble _08082E5E - ldr r0, _08082E68 @ =gUnk_02033280 - ldr r1, [r0] - movs r2, #2 - orrs r1, r2 - str r1, [r0] - bl sub_0805E780 -_08082E5E: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08082E68: .4byte gUnk_02033280 - - thumb_func_start sub_08082E6C -sub_08082E6C: @ 0x08082E6C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08082E98 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0x17 - bl sub_080042AC -_08082E98: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08082E9C -sub_08082E9C: @ 0x08082E9C - push {lr} - ldr r2, _08082EB0 @ =gUnk_0811F624 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08082EB0: .4byte gUnk_0811F624 - - thumb_func_start sub_08082EB4 -sub_08082EB4: @ 0x08082EB4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _08082EE0 @ =gUnk_03000BF0 - ldrb r1, [r0, #4] - adds r6, r0, #0 - cmp r1, #0x11 - bne _08082EF6 - adds r0, r4, #0 - bl sub_080AE068 - ldr r1, _08082EE4 @ =0x000001C1 - adds r0, r4, #0 - bl sub_080ADF80 - cmp r0, #0 - bne _08082EE8 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0808308E - .align 2, 0 -_08082EE0: .4byte gUnk_03000BF0 -_08082EE4: .4byte 0x000001C1 -_08082EE8: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] -_08082EF6: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x20 - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x88 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldrh r1, [r6, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r6, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - ldrh r0, [r4, #0x2e] - adds r0, r1, r0 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r1, r1, r0 - strh r1, [r4, #0x32] - ldr r1, _08082F6C @ =gUnk_0811F64C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_080002B0 - str r0, [r4, #0x68] - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _08082F7A - cmp r0, #1 - bgt _08082F70 - cmp r0, #0 - beq _08082F76 - b _08082FF0 - .align 2, 0 -_08082F6C: .4byte gUnk_0811F64C -_08082F70: - cmp r0, #2 - beq _08082F9A - b _08082FF0 -_08082F76: - adds r0, r5, #0 - b _08082FE8 -_08082F7A: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #1 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x40 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x41 - b _08082FE8 -_08082F9A: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #1 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #2 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x40 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x41 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x42 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x80 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x81 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x82 -_08082FE8: - adds r1, r4, #0 - bl sub_080832D8 - b _08083088 -_08082FF0: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #1 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #2 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #3 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x40 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x41 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x42 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x43 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x80 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x81 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x82 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0x83 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0xc0 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0xc1 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0xc2 - adds r1, r4, #0 - bl sub_080832D8 - adds r0, r5, #0 - adds r0, #0xc3 - adds r1, r4, #0 - bl sub_080832D8 -_08083088: - ldr r0, _08083090 @ =0x0000010F - bl sub_08004488 -_0808308E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08083090: .4byte 0x0000010F - - thumb_func_start sub_08083094 -sub_08083094: @ 0x08083094 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0800445C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080830B4 - adds r0, r4, #0 - bl sub_080830B8 -_080830B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080830B8 -sub_080830B8: @ 0x080830B8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - ldrb r5, [r0, #0xa] - lsls r4, r5, #3 - movs r1, #0x2e - ldrsh r0, [r0, r1] - subs r0, r0, r4 - ldr r3, _080830FC @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r7, r0, #4 - movs r2, #0x3f - ands r7, r2 - mov r6, sb - movs r1, #0x32 - ldrsh r0, [r6, r1] - subs r0, r0, r4 - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r7, r0 - cmp r5, #1 - beq _08083128 - cmp r5, #1 - bgt _08083100 - cmp r5, #0 - beq _08083106 - b _080831EC - .align 2, 0 -_080830FC: .4byte gUnk_03000BF0 -_08083100: - cmp r5, #2 - beq _08083160 - b _080831EC -_08083106: - mov r0, sb - bl sub_0800442E - cmp r0, #0 - beq _08083112 - b _080832C0 -_08083112: - ldr r0, _08083124 @ =0x00000365 - mov r1, sb - adds r1, #0x38 - ldrb r2, [r1] - adds r1, r7, #0 - bl sub_0807B7D8 - b _080832BA - .align 2, 0 -_08083124: .4byte 0x00000365 -_08083128: - mov r2, sb - ldr r0, [r2, #0x68] - mov r4, sb - adds r4, #0x38 - ldrb r2, [r4] - adds r1, r7, #0 - bl sub_0807B7D8 - ldr r0, _08083158 @ =0x0000036F - adds r1, r7, #1 - ldrb r2, [r4] - bl sub_0807B7D8 - movs r0, #0xdc - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0807B7D8 - ldr r0, _0808315C @ =0x00000371 - adds r1, r7, #0 - adds r1, #0x41 - b _080831CA - .align 2, 0 -_08083158: .4byte 0x0000036F -_0808315C: .4byte 0x00000371 -_08083160: - mov r6, sb - ldr r0, [r6, #0x68] - mov r4, sb - adds r4, #0x38 - ldrb r2, [r4] - adds r1, r7, #0 - bl sub_0807B7D8 - ldr r0, _080831D4 @ =0x00000372 - adds r1, r7, #1 - ldrb r2, [r4] - bl sub_0807B7D8 - ldr r0, _080831D8 @ =0x0000036F - adds r1, r7, #2 - ldrb r2, [r4] - bl sub_0807B7D8 - movs r0, #0xdd - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0807B7D8 - ldr r0, _080831DC @ =0x00000376 - adds r1, r7, #0 - adds r1, #0x41 - ldrb r2, [r4] - bl sub_0807B7D8 - ldr r0, _080831E0 @ =0x00000375 - adds r1, r7, #0 - adds r1, #0x42 - ldrb r2, [r4] - bl sub_0807B7D8 - movs r0, #0xdc - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0x80 - ldrb r2, [r4] - bl sub_0807B7D8 - ldr r0, _080831E4 @ =0x00000373 - adds r1, r7, #0 - adds r1, #0x81 - ldrb r2, [r4] - bl sub_0807B7D8 - ldr r0, _080831E8 @ =0x00000371 - adds r1, r7, #0 - adds r1, #0x82 -_080831CA: - ldrb r2, [r4] - bl sub_0807B7D8 - b _080832BA - .align 2, 0 -_080831D4: .4byte 0x00000372 -_080831D8: .4byte 0x0000036F -_080831DC: .4byte 0x00000376 -_080831E0: .4byte 0x00000375 -_080831E4: .4byte 0x00000373 -_080831E8: .4byte 0x00000371 -_080831EC: - mov r1, sb - ldr r0, [r1, #0x68] - mov r4, sb - adds r4, #0x38 - ldrb r2, [r4] - adds r1, r7, #0 - bl sub_0807B7D8 - ldr r5, _080832C8 @ =0x00000372 - adds r1, r7, #1 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0807B7D8 - adds r1, r7, #2 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0807B7D8 - ldr r0, _080832CC @ =0x0000036F - adds r1, r7, #3 - ldrb r2, [r4] - bl sub_0807B7D8 - movs r2, #0xdd - lsls r2, r2, #2 - mov r8, r2 - adds r1, r7, #0 - adds r1, #0x40 - ldrb r2, [r4] - mov r0, r8 - bl sub_0807B7D8 - adds r5, #4 - adds r1, r7, #0 - adds r1, #0x41 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0807B7D8 - adds r1, r7, #0 - adds r1, #0x42 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0807B7D8 - ldr r6, _080832D0 @ =0x00000375 - adds r1, r7, #0 - adds r1, #0x43 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0807B7D8 - adds r1, r7, #0 - adds r1, #0x80 - ldrb r2, [r4] - mov r0, r8 - bl sub_0807B7D8 - adds r1, r7, #0 - adds r1, #0x81 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0807B7D8 - adds r1, r7, #0 - adds r1, #0x82 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0807B7D8 - adds r1, r7, #0 - adds r1, #0x83 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0807B7D8 - movs r0, #0xdc - lsls r0, r0, #2 - adds r1, r7, #0 - adds r1, #0xc0 - ldrb r2, [r4] - bl sub_0807B7D8 - subs r5, #3 - adds r1, r7, #0 - adds r1, #0xc1 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0807B7D8 - adds r1, r7, #0 - adds r1, #0xc2 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0807B7D8 - ldr r0, _080832D4 @ =0x00000371 - adds r1, r7, #0 - adds r1, #0xc3 - ldrb r2, [r4] - bl sub_0807B7D8 -_080832BA: - mov r0, sb - bl sub_0805E7BC -_080832C0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080832C8: .4byte 0x00000372 -_080832CC: .4byte 0x0000036F -_080832D0: .4byte 0x00000375 -_080832D4: .4byte 0x00000371 - - thumb_func_start sub_080832D8 -sub_080832D8: @ 0x080832D8 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - adds r2, #0x38 - ldrb r0, [r2] - cmp r0, #2 - beq _080832FC - ldrb r1, [r1, #0x15] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080832F6 - ldrb r2, [r2] - movs r0, #0x21 - b _0808330A -_080832F6: - ldrb r2, [r2] - movs r0, #0x20 - b _0808330A -_080832FC: - ldrb r1, [r1, #0x15] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08083312 - ldrb r2, [r2] - movs r0, #0x2f -_0808330A: - adds r1, r3, #0 - bl sub_0807B7D8 - b _0808331C -_08083312: - ldrb r2, [r2] - movs r0, #0x2e - adds r1, r3, #0 - bl sub_0807B7D8 -_0808331C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08083320 -sub_08083320: @ 0x08083320 - push {lr} - ldr r2, _08083334 @ =gUnk_0811F65C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08083334: .4byte gUnk_0811F65C - - thumb_func_start sub_08083338 -sub_08083338: @ 0x08083338 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x84 - ldrh r1, [r2] - ldr r0, _08083400 @ =0x0000FFFF - cmp r1, r0 - beq _08083356 - adds r0, r1, #0 - bl sub_0807CBE4 - cmp r0, #0 - beq _08083356 - bl sub_0805E780 -_08083356: - adds r0, r4, #0 - bl sub_080837B0 - cmp r0, #0 - bne _08083362 - b _080834B2 -_08083362: - ldrb r2, [r4, #0xa] - lsrs r0, r2, #2 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0xb] - movs r7, #3 - adds r0, r7, #0 - ands r0, r2 - strb r0, [r4, #0x1e] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - ldrb r1, [r4, #0xa] - adds r0, r7, #0 - ands r0, r1 - adds r6, r4, #0 - adds r6, #0x7e - strb r0, [r6] - ldr r0, _08083404 @ =gUnk_080FD170 - str r0, [r4, #0x48] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0xa] - movs r0, #0xf - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x5a - strb r0, [r1] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08083408 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x76 - strh r1, [r5] - ldrh r0, [r5] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _08083438 - cmp r0, #1 - bgt _0808340C - cmp r0, #0 - beq _08083412 - b _080834AE - .align 2, 0 -_08083400: .4byte 0x0000FFFF -_08083404: .4byte gUnk_080FD170 -_08083408: .4byte gUnk_03000BF0 -_0808340C: - cmp r0, #2 - beq _08083456 - b _080834AE -_08083412: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _0808342E - ldrb r1, [r4, #0xa] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0808344E - strb r7, [r4, #0xc] - b _080834B2 -_0808342E: - ldrb r1, [r4, #0xa] - movs r0, #0xef - ands r0, r1 - strb r0, [r4, #0xa] - b _08083446 -_08083438: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _0808344E -_08083446: - adds r0, r4, #0 - bl sub_08083638 - b _080834B2 -_0808344E: - adds r0, r4, #0 - bl sub_080836A0 - b _080834B2 -_08083456: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _080834A8 - ldrb r0, [r4, #0x1e] - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x1e] - ldrb r1, [r6] - ldrh r2, [r5] - adds r0, r4, #0 - bl sub_080836DC - bl sub_08052660 - cmp r0, #0 - bne _08083484 - movs r0, #5 - strb r0, [r4, #0xc] - b _080834B2 -_08083484: - movs r0, #8 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080787CC - ldr r1, _080834A4 @ =gUnk_0811F740 - ldrb r0, [r6] - adds r0, r0, r1 - ldrb r2, [r0] - adds r0, r4, #0 - movs r1, #0 - movs r3, #0 - bl sub_08078850 - b _080834B2 - .align 2, 0 -_080834A4: .4byte gUnk_0811F740 -_080834A8: - bl sub_0805E780 - b _080834B2 -_080834AE: - bl sub_0805E780 -_080834B2: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080834B4 -sub_080834B4: @ 0x080834B4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080834E6 - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #7 - strb r0, [r2, #0xe] - adds r0, r2, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r2, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldr r0, _080834E8 @ =0x0000010B - bl sub_08004488 -_080834E6: - pop {pc} - .align 2, 0 -_080834E8: .4byte 0x0000010B - - thumb_func_start sub_080834EC -sub_080834EC: @ 0x080834EC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08083516 - ldrb r1, [r4, #0xa] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08083512 - adds r0, r4, #0 - bl sub_08083638 - b _08083516 -_08083512: - bl sub_0805E780 -_08083516: - pop {r4, pc} - - thumb_func_start sub_08083518 -sub_08083518: @ 0x08083518 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7e - ldrb r1, [r5] - bl sub_08083734 - cmp r0, #0 - beq _0808353C - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r5] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r2, [r0] - adds r0, r4, #0 - bl sub_080836DC -_0808353C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08083540 -sub_08083540: @ 0x08083540 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808358C - ldrb r1, [r4, #0xa] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08083566 - movs r0, #0xef - ands r0, r1 - strb r0, [r4, #0xa] - b _0808356E -_08083566: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08083576 -_0808356E: - adds r0, r4, #0 - bl sub_080836A0 - b _0808357A -_08083576: - movs r0, #5 - strb r0, [r4, #0xc] -_0808357A: - adds r0, r4, #0 - adds r0, #0x7e - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08083814 - ldr r0, _08083590 @ =0x0000010B - bl sub_08004488 -_0808358C: - pop {r4, pc} - .align 2, 0 -_08083590: .4byte 0x0000010B - - thumb_func_start nullsub_513 -nullsub_513: @ 0x08083594 - bx lr - .align 2, 0 - - thumb_func_start sub_08083598 -sub_08083598: @ 0x08083598 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080835B2 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080835C6 - b _080835C0 -_080835B2: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _080835C6 -_080835C0: - adds r0, r4, #0 - bl sub_08083658 -_080835C6: - pop {r4, pc} - - thumb_func_start sub_080835C8 -sub_080835C8: @ 0x080835C8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080835E2 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _080835F4 - b _080835F0 -_080835E2: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080835F4 -_080835F0: - movs r0, #3 - strb r0, [r4, #0xc] -_080835F4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080835F8 -sub_080835F8: @ 0x080835F8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _08083616 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08083636 -_08083616: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x14 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08083658 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - movs r0, #1 - rsbs r0, r0, #0 - bl sub_080526F8 -_08083636: - pop {r4, pc} - - thumb_func_start sub_08083638 -sub_08083638: @ 0x08083638 - adds r2, r0, #0 - movs r0, #7 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #0xb - ands r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r2, #0x32] - bx lr - - thumb_func_start sub_08083658 -sub_08083658: @ 0x08083658 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x14 - strb r1, [r0, #0xe] - adds r2, r0, #0 - adds r2, #0x7e - ldrb r1, [r2] - lsls r1, r1, #3 - strb r1, [r0, #0x15] - ldrb r2, [r2] - lsls r2, r2, #1 - ldr r1, _08083698 @ =gUnk_0811F680 - adds r2, r2, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrh r3, [r0, #0x2e] - adds r1, r1, r3 - strh r1, [r0, #0x2e] - movs r1, #1 - ldrsb r1, [r2, r1] - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] - movs r1, #0x3c - bl sub_0805E4E0 - ldr r0, _0808369C @ =0x0000010B - bl sub_080A3268 - pop {pc} - .align 2, 0 -_08083698: .4byte gUnk_0811F680 -_0808369C: .4byte 0x0000010B - - thumb_func_start sub_080836A0 -sub_080836A0: @ 0x080836A0 - push {lr} - adds r2, r0, #0 - movs r0, #6 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #0xa - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r2, #0x32] - ldr r0, _080836D8 @ =0x00004022 - adds r1, r2, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - pop {pc} - .align 2, 0 -_080836D8: .4byte 0x00004022 - - thumb_func_start sub_080836DC -sub_080836DC: @ 0x080836DC - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r1, r2, #0 - ldr r0, _0808372C @ =0x00004022 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #7 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x18] - subs r0, #0xb - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - lsls r0, r4, #3 - movs r1, #0x10 - eors r0, r1 - strb r0, [r5, #0x15] - lsls r4, r4, #1 - ldr r0, _08083730 @ =gUnk_0811F688 - adds r4, r4, r0 - ldrb r0, [r5, #0xb] - cmp r0, #2 - beq _08083728 - movs r0, #0 - ldrsb r0, [r4, r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] -_08083728: - pop {r4, r5, pc} - .align 2, 0 -_0808372C: .4byte 0x00004022 -_08083730: .4byte gUnk_0811F688 - - thumb_func_start sub_08083734 -sub_08083734: @ 0x08083734 - push {lr} - adds r2, r0, #0 - cmp r1, #1 - beq _08083760 - cmp r1, #1 - blo _0808374A - cmp r1, #2 - beq _08083774 - cmp r1, #3 - beq _08083790 - b _080837AC -_0808374A: - adds r0, r2, #0 - adds r0, #0x72 - ldrh r1, [r0] - ldr r0, _0808375C @ =gLinkEntity - movs r2, #0x32 - ldrsh r0, [r0, r2] - subs r0, #0xd - b _0808379E - .align 2, 0 -_0808375C: .4byte gLinkEntity -_08083760: - ldr r0, _08083770 @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r0, r1] - adds r0, #0xb - adds r1, r2, #0 - adds r1, #0x70 - b _08083780 - .align 2, 0 -_08083770: .4byte gLinkEntity -_08083774: - ldr r0, _0808378C @ =gLinkEntity - movs r1, #0x32 - ldrsh r0, [r0, r1] - adds r0, #8 - adds r1, r2, #0 - adds r1, #0x72 -_08083780: - ldrh r1, [r1] - subs r0, r0, r1 - cmp r0, #0 - bge _080837AC - movs r0, #1 - b _080837AE - .align 2, 0 -_0808378C: .4byte gLinkEntity -_08083790: - adds r0, r2, #0 - adds r0, #0x70 - ldrh r1, [r0] - ldr r0, _080837A8 @ =gLinkEntity - movs r2, #0x2e - ldrsh r0, [r0, r2] - subs r0, #0xa -_0808379E: - subs r1, r1, r0 - cmp r1, #0 - bge _080837AC - movs r0, #1 - b _080837AE - .align 2, 0 -_080837A8: .4byte gLinkEntity -_080837AC: - movs r0, #0 -_080837AE: - pop {pc} - - thumb_func_start sub_080837B0 -sub_080837B0: @ 0x080837B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _080837C8 @ =gUnk_03000BF0 - ldrb r2, [r0, #4] - cmp r2, #0x3f - bhi _080837DC - cmp r2, #0x25 - beq _080837CC - cmp r2, #0x35 - beq _080837D4 - movs r5, #0xa - b _080837E8 - .align 2, 0 -_080837C8: .4byte gUnk_03000BF0 -_080837CC: - ldr r5, _080837D0 @ =0x000001E7 - b _080837E8 - .align 2, 0 -_080837D0: .4byte 0x000001E7 -_080837D4: - ldr r5, _080837D8 @ =0x000001C3 - b _080837E8 - .align 2, 0 -_080837D8: .4byte 0x000001C3 -_080837DC: - ldr r1, _080837F8 @ =gUnk_0811F690 - adds r0, r2, #0 - subs r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r5, [r0] -_080837E8: - cmp r2, #0x68 - bne _080837FC - adds r0, r4, #0 - movs r1, #0 - bl sub_0801D2B4 - b _08083808 - .align 2, 0 -_080837F8: .4byte gUnk_0811F690 -_080837FC: - cmp r2, #0x88 - bne _08083808 - adds r0, r4, #0 - movs r1, #1 - bl sub_0801D2B4 -_08083808: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080ADF80 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08083814 -sub_08083814: @ 0x08083814 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #2 - ldr r0, _08083868 @ =gUnk_0811F730 - adds r4, r1, r0 - adds r0, r5, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08083842 - movs r0, #0 - ldrsb r0, [r4, r0] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_08083842: - adds r0, r5, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08083866 - movs r0, #2 - ldrsb r0, [r4, r0] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - movs r0, #3 - ldrsb r0, [r4, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_08083866: - pop {r4, r5, pc} - .align 2, 0 -_08083868: .4byte gUnk_0811F730 - - thumb_func_start sub_0808386C -sub_0808386C: @ 0x0808386C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080838C8 @ =gUnk_03003F80 - adds r0, #0x27 - ldrb r1, [r0] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r2, r0, #0x1f - ldr r0, _080838CC @ =gUnk_02022740 - ldrb r0, [r0] - cmp r0, #2 - bgt _08083894 - cmp r0, #0 - blt _08083894 - ldr r0, _080838D0 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _080838AC -_08083894: - ldr r0, _080838D4 @ =gUnk_03003DF0 - ldr r0, [r0, #4] - ldrb r0, [r0, #3] - cmp r0, #0x32 - bne _080838AA - movs r0, #0x32 - bl sub_0801E7F4 - movs r2, #0 - cmp r0, #0 - beq _080838AC -_080838AA: - movs r2, #1 -_080838AC: - cmp r2, #0 - beq _080838B6 - adds r0, r4, #0 - bl sub_080838DC -_080838B6: - ldr r0, _080838D8 @ =gUnk_0811F754 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080838C8: .4byte gUnk_03003F80 -_080838CC: .4byte gUnk_02022740 -_080838D0: .4byte gUnk_02000050 -_080838D4: .4byte gUnk_03003DF0 -_080838D8: .4byte gUnk_0811F754 - - thumb_func_start sub_080838DC -sub_080838DC: @ 0x080838DC - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0, #0x18] - ldrb r2, [r0, #0x1b] - movs r3, #0x3f - adds r1, r3, #0 - ands r1, r2 - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0, #0x1b] - ldrb r1, [r0, #0x19] - ands r3, r1 - strb r3, [r0, #0x19] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r3] - movs r2, #0 - movs r1, #4 - strb r1, [r0, #0xe] - str r2, [r0, #0x54] - strb r2, [r0, #0xc] - bx lr - - thumb_func_start sub_08083914 -sub_08083914: @ 0x08083914 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #1 - beq _08083942 - adds r0, r4, #0 - movs r1, #1 - movs r2, #1 - bl sub_080AE008 - adds r0, r4, #0 - adds r0, #0x60 - ldrh r1, [r0] - subs r1, #0x10 - strh r1, [r0] - ldr r1, _08083958 @ =0x01027820 - movs r0, #1 - bl sub_080ADDD8 - adds r0, r4, #0 - bl sub_080838DC -_08083942: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - pop {r4, pc} - .align 2, 0 -_08083958: .4byte 0x01027820 - - thumb_func_start sub_0808395C -sub_0808395C: @ 0x0808395C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _0808396C - subs r0, #1 - strb r0, [r2, #0xe] - b _08083992 -_0808396C: - ldr r3, _08083994 @ =gUnk_03003DF0 - ldr r0, [r3, #4] - ldr r1, [r0, #8] - cmp r1, #0 - beq _08083992 - ldrb r0, [r0, #3] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x63 - bhi _08083992 - str r1, [r2, #0x54] - ldrb r0, [r3, #3] - adds r1, r2, #0 - adds r1, #0x39 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08083A40 -_08083992: - pop {pc} - .align 2, 0 -_08083994: .4byte gUnk_03003DF0 - - thumb_func_start sub_08083998 -sub_08083998: @ 0x08083998 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _080839C8 - ldr r0, _080839C4 @ =gUnk_03003DF0 - ldr r2, [r0, #4] - ldrb r0, [r2, #3] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x63 - bhi _080839BA - ldr r1, [r4, #0x54] - ldr r0, [r2, #8] - cmp r1, r0 - beq _080839C8 -_080839BA: - adds r0, r4, #0 - bl sub_080838DC - b _08083A32 - .align 2, 0 -_080839C4: .4byte gUnk_03003DF0 -_080839C8: - ldr r1, [r4, #0x54] - ldr r0, [r1, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r1, #0x30] - str r0, [r4, #0x30] - ldr r0, [r1, #0x34] - str r0, [r4, #0x34] - adds r1, r4, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _08083A2C - movs r0, #0 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080839F8 - ldr r0, _080839F4 @ =gUnk_03003DF0 - ldr r0, [r0, #4] - ldrb r0, [r0, #3] - b _080839FA - .align 2, 0 -_080839F4: .4byte gUnk_03003DF0 -_080839F8: - ldrb r0, [r4, #0xb] -_080839FA: - lsls r0, r0, #3 - ldr r1, _08083A34 @ =gUnk_080C9CBC - adds r0, r0, r1 - ldrb r2, [r0, #6] - movs r1, #1 - ands r1, r2 - ldrb r3, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldr r0, _08083A38 @ =gUnk_0811F744 - lsls r2, r2, #2 - adds r2, r2, r0 - ldr r1, [r2] - lsrs r2, r1, #0x1f - ldr r0, _08083A3C @ =0x00FFFFFF - ands r1, r0 - orrs r1, r2 - adds r0, #1 - orrs r1, r0 - movs r0, #0 - bl sub_080ADDD8 -_08083A2C: - adds r0, r4, #0 - bl sub_08004274 -_08083A32: - pop {r4, pc} - .align 2, 0 -_08083A34: .4byte gUnk_080C9CBC -_08083A38: .4byte gUnk_0811F744 -_08083A3C: .4byte 0x00FFFFFF - - thumb_func_start sub_08083A40 -sub_08083A40: @ 0x08083A40 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #2 - strb r0, [r4, #0xc] - ldr r0, [r4, #0x54] - ldr r1, _08083A70 @ =gLinkEntity - movs r3, #0x2e - ldrsh r2, [r0, r3] - movs r3, #0x2e - ldrsh r0, [r1, r3] - cmp r2, r0 - ble _08083A74 - movs r1, #0 - adds r2, r4, #0 - adds r2, #0x62 - movs r0, #8 - b _08083A7C - .align 2, 0 -_08083A70: .4byte gLinkEntity -_08083A74: - movs r1, #1 - adds r2, r4, #0 - adds r2, #0x62 - movs r0, #0xf8 -_08083A7C: - strb r0, [r2] - adds r2, r4, #0 - adds r2, #0x63 - movs r0, #0xee - strb r0, [r2] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08083998 - pop {r4, pc} - - thumb_func_start sub_08083A94 -sub_08083A94: @ 0x08083A94 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldrb r0, [r6, #0xc] - cmp r0, #0 - bne _08083B24 - movs r0, #1 - mov r8, r0 - mov r2, r8 - strb r2, [r6, #0xc] - ldr r0, _08083B10 @ =gUnk_080FD170 - str r0, [r6, #0x48] - adds r7, r6, #0 - adds r7, #0x38 - ldrb r0, [r7] - movs r1, #0x34 - cmp r0, #1 - bne _08083ABC - movs r1, #0x26 -_08083ABC: - adds r4, r6, #0 - adds r4, #0x70 - strh r1, [r4] - adds r0, r6, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08083B1C - ldrh r0, [r4] - movs r3, #0x2e - ldrsh r1, [r6, r3] - ldr r5, _08083B14 @ =gUnk_03000BF0 - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r7] - bl sub_0807B314 - ldrh r1, [r5] - mov r0, r8 - ands r0, r1 - cmp r0, #0 - beq _08083B08 - ldr r1, _08083B18 @ =gUnk_02000070 - movs r0, #0 - strb r0, [r1] -_08083B08: - bl sub_0805E780 - b _08083B7E - .align 2, 0 -_08083B10: .4byte gUnk_080FD170 -_08083B14: .4byte gUnk_03000BF0 -_08083B18: .4byte gUnk_02000070 -_08083B1C: - adds r0, r6, #0 - bl sub_080787CC - b _08083B7E -_08083B24: - adds r0, r6, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08083B7E - adds r0, r6, #0 - adds r0, #0x70 - ldrh r0, [r0] - movs r5, #0x2e - ldrsh r1, [r6, r5] - ldr r3, _08083B84 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r5, #0x32 - ldrsh r2, [r6, r5] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B314 - adds r0, r6, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - adds r0, r6, #0 - bl sub_080A29BC - movs r0, #1 - rsbs r0, r0, #0 - bl sub_080526F8 - bl sub_0805E780 -_08083B7E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08083B84: .4byte gUnk_03000BF0 - - thumb_func_start sub_08083B88 -sub_08083B88: @ 0x08083B88 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08083BDC @ =gUnk_0811F7D8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, [r4, #0x50] - adds r0, #0x5a - ldrb r1, [r0] - lsrs r1, r1, #6 - movs r0, #1 - ands r1, r0 - ldrb r2, [r4, #0x18] - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08080CB4 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x1b] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r2, r0 - strb r2, [r4, #0x19] - pop {r4, pc} - .align 2, 0 -_08083BDC: .4byte gUnk_0811F7D8 - - thumb_func_start sub_08083BE0 -sub_08083BE0: @ 0x08083BE0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #6 - bl sub_0805E3A0 - movs r0, #1 - strb r0, [r4, #0xc] - pop {r4, pc} - - thumb_func_start sub_08083BF0 -sub_08083BF0: @ 0x08083BF0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0x41 - bne _08083C98 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _08083C98 - lsls r0, r0, #2 - ldr r1, _08083C14 @ =_08083C18 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08083C14: .4byte _08083C18 -_08083C18: @ jump table - .4byte _08083C30 @ case 0 - .4byte _08083C30 @ case 1 - .4byte _08083C4A @ case 2 - .4byte _08083C98 @ case 3 - .4byte _08083C98 @ case 4 - .4byte _08083C74 @ case 5 -_08083C30: - ldrb r0, [r4, #0xa] - ldrb r1, [r4, #0xb] - bl sub_08053FF0 - adds r1, r4, #0 - adds r1, #0x68 - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0x43 - bgt _08083C62 - cmp r0, #0x40 - bge _08083C98 - b _08083C62 -_08083C4A: - ldrb r0, [r4, #0xa] - ldrb r1, [r4, #0xb] - bl sub_08053FF0 - ldr r1, _08083C6C @ =gUnk_080FD964 - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0, #6] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] -_08083C62: - ldr r0, _08083C70 @ =0x00000109 - bl sub_080A3268 - b _08083C98 - .align 2, 0 -_08083C6C: .4byte gUnk_080FD964 -_08083C70: .4byte 0x00000109 -_08083C74: - ldrb r0, [r4, #0xa] - bl GetInventoryValue - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - ldr r2, _08083C8C @ =gUnk_080FD5B4 - adds r1, r1, r2 - cmp r0, #0 - bne _08083C90 - ldrh r1, [r1, #4] - b _08083C92 - .align 2, 0 -_08083C8C: .4byte gUnk_080FD5B4 -_08083C90: - ldrh r1, [r1, #6] -_08083C92: - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] -_08083C98: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08083C9C -sub_08083C9C: @ 0x08083C9C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0x42 - bne _08083D22 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _08083D22 - lsls r0, r0, #2 - ldr r1, _08083CC0 @ =_08083CC4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08083CC0: .4byte _08083CC4 -_08083CC4: @ jump table - .4byte _08083CDC @ case 0 - .4byte _08083D22 @ case 1 - .4byte _08083CDC @ case 2 - .4byte _08083D22 @ case 3 - .4byte _08083D22 @ case 4 - .4byte _08083CDC @ case 5 -_08083CDC: - adds r0, r4, #0 - adds r0, #0x68 - ldrh r1, [r0] - cmp r1, #0 - beq _08083D22 - ldrb r0, [r4, #0xa] - cmp r0, #0x3f - beq _08083D00 - cmp r0, #0x63 - bne _08083D16 - ldr r0, _08083CFC @ =gUnk_02002A40 - adds r0, #0xa9 - ldrb r0, [r0] - adds r1, r1, r0 - b _08083D16 - .align 2, 0 -_08083CFC: .4byte gUnk_02002A40 -_08083D00: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bls _08083D16 - ldr r0, _08083D10 @ =0x00000577 - cmp r1, r0 - bne _08083D14 - subs r1, #1 - b _08083D16 - .align 2, 0 -_08083D10: .4byte 0x00000577 -_08083D14: - adds r1, #1 -_08083D16: - adds r0, r1, #0 - bl sub_08056378 - ldr r1, _08083D24 @ =gUnk_02000050 - ldrb r0, [r4, #0xb] - str r0, [r1, #0x10] -_08083D22: - pop {r4, pc} - .align 2, 0 -_08083D24: .4byte gUnk_02000050 - - thumb_func_start sub_08083D28 -sub_08083D28: @ 0x08083D28 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #8 - beq _08083DD4 - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _08083DD0 - lsls r0, r0, #2 - ldr r1, _08083D44 @ =_08083D48 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08083D44: .4byte _08083D48 -_08083D48: @ jump table - .4byte _08083D60 @ case 0 - .4byte _08083D60 @ case 1 - .4byte _08083D60 @ case 2 - .4byte _08083DAC @ case 3 - .4byte _08083DD0 @ case 4 - .4byte _08083DD0 @ case 5 -_08083D60: - ldrb r0, [r4, #0xa] - cmp r0, #0x62 - beq _08083D88 - cmp r0, #0x63 - bne _08083DD0 - movs r0, #0xa0 - bl ModHealth - ldr r0, _08083DA8 @ =gUnk_02002A40 - adds r1, r0, #0 - adds r1, #0xa9 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08083DD0 - movs r0, #0 - strb r0, [r1] -_08083D88: - ldr r0, _08083DA8 @ =gUnk_02002A40 - adds r1, r0, #0 - adds r1, #0xab - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa0 - bls _08083DA0 - movs r0, #0xa0 - strb r0, [r1] -_08083DA0: - movs r0, #0xa0 - bl ModHealth - b _08083DD0 - .align 2, 0 -_08083DA8: .4byte gUnk_02002A40 -_08083DAC: - ldrb r0, [r4, #0xa] - bl sub_080544DC - adds r1, r0, #0 - cmp r1, #0 - beq _08083DC8 - ldr r0, _08083DC4 @ =gUnk_02002A40 - adds r0, r0, r1 - adds r0, #0xb5 - movs r1, #0x20 - strb r1, [r0] - b _08083DD0 - .align 2, 0 -_08083DC4: .4byte gUnk_02002A40 -_08083DC8: - ldrb r0, [r4, #0xa] - movs r1, #2 - bl sub_0807CAA0 -_08083DD0: - bl sub_0805E780 -_08083DD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08083DD8 -sub_08083DD8: @ 0x08083DD8 - push {lr} - ldr r2, _08083DEC @ =gUnk_0811F7E8 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08083DEC: .4byte gUnk_0811F7E8 - - thumb_func_start sub_08083DF0 -sub_08083DF0: @ 0x08083DF0 - push {lr} - ldr r2, _08083E04 @ =gUnk_0811F808 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08083E04: .4byte gUnk_0811F808 - - thumb_func_start sub_08083E08 -sub_08083E08: @ 0x08083E08 - push {lr} - ldr r2, _08083E1C @ =gUnk_0811F818 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08083E1C: .4byte gUnk_0811F818 - - thumb_func_start sub_08083E20 -sub_08083E20: @ 0x08083E20 - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_080842D8 - adds r0, r4, #0 - bl sub_08078828 - pop {r4, pc} - - thumb_func_start sub_08083E4C -sub_08083E4C: @ 0x08083E4C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08083E80 @ =gUnk_0811F8B0 - str r0, [r4, #0x48] - ldrb r0, [r4, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - beq _08083E84 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080842D8 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _08083EAC - .align 2, 0 -_08083E80: .4byte gUnk_0811F8B0 -_08083E84: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _08083E98 - ldrb r0, [r4, #0xa] - cmp r0, #4 - bne _08083EA0 -_08083E98: - adds r0, r4, #0 - bl sub_08083E20 - b _08083EA4 -_08083EA0: - movs r0, #1 - strb r0, [r4, #0xc] -_08083EA4: - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08083EAC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08083EB0 -sub_08083EB0: @ 0x08083EB0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08083F0A - ldr r1, _08083F0C @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r3, #0 - movs r0, #0xf4 - lsls r0, r0, #4 - strh r0, [r2] - adds r1, #0x68 - adds r0, #0xc0 - strh r0, [r1] - ldr r1, _08083F10 @ =gUnk_02034490 - movs r2, #1 - movs r0, #1 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - strb r3, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x18] - subs r0, #0x22 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0805E4E0 - bl sub_0805BC4C -_08083F0A: - pop {r4, pc} - .align 2, 0 -_08083F0C: .4byte gUnk_03000F50 -_08083F10: .4byte gUnk_02034490 - - thumb_func_start sub_08083F14 -sub_08083F14: @ 0x08083F14 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x1e - bl sub_0805E510 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08083F78 - cmp r0, #1 - beq _08083FA4 - adds r0, r4, #0 - bl sub_0800445C - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #2 - bl sub_080577AC - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08083FE6 - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - ands r2, r0 - ldr r3, _08083F74 @ =gUnk_03000F50 - movs r0, #0x10 - subs r0, r0, r2 - lsls r0, r0, #8 - movs r5, #0xff - lsls r5, r5, #8 - adds r1, r5, #0 - ands r0, r1 - orrs r0, r2 - adds r1, r3, #0 - adds r1, #0x68 - strh r0, [r1] - cmp r0, #0x10 - bne _08083FE6 - b _08083FCC - .align 2, 0 -_08083F74: .4byte gUnk_03000F50 -_08083F78: - ldr r5, _08083FA0 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x10 - movs r3, #8 - bl sub_080041A0 - cmp r0, #0 - beq _08083F98 - movs r0, #0x10 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - movs r0, #0x10 - strb r0, [r5, #0x15] -_08083F98: - movs r0, #1 - strb r0, [r4, #0xd] - b _08083FE6 - .align 2, 0 -_08083FA0: .4byte gLinkEntity -_08083FA4: - ldrb r0, [r4, #0xa] - cmp r0, #5 - beq _08083FB2 - ldr r0, _08083FC8 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #1 - bne _08083FE6 -_08083FB2: - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #8 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - movs r0, #0xa5 - lsls r0, r0, #1 - bl sub_080A3268 - b _08083FE6 - .align 2, 0 -_08083FC8: .4byte gLinkEntity -_08083FCC: - ldr r1, _08083FE8 @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] - adds r1, r3, #0 - adds r1, #0x66 - movs r0, #0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08083E20 - movs r0, #0x73 - bl sub_080A3268 -_08083FE6: - pop {r4, r5, pc} - .align 2, 0 -_08083FE8: .4byte gUnk_02034490 - - thumb_func_start sub_08083FEC -sub_08083FEC: @ 0x08083FEC - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0808401E - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080788E0 - adds r0, r4, #0 - movs r1, #0x3c - bl sub_0805E4E0 - ldr r0, _08084020 @ =0x0000011B - bl sub_080A3268 -_0808401E: - pop {r4, pc} - .align 2, 0 -_08084020: .4byte 0x0000011B - - thumb_func_start sub_08084024 -sub_08084024: @ 0x08084024 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08084070 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808406A - ldrb r0, [r4, #0xe] - cmp r0, #0x18 - bne _08084060 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - b _0808406A -_08084060: - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - bl sub_08084074 -_0808406A: - ldrb r0, [r4, #0xb] - bl sub_0807CCB4 -_08084070: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08084074 -sub_08084074: @ 0x08084074 - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - bl sub_0804B128 - adds r1, r0, #0 - cmp r1, #0 - beq _080840A4 - b _0808409E -_08084086: - cmp r0, #3 - bne _0808409C - ldrb r0, [r1, #1] - cmp r4, r0 - bne _0808409C - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - movs r2, #0 - bl sub_080A7C00 - b _080840A4 -_0808409C: - adds r1, #8 -_0808409E: - ldrb r0, [r1] - cmp r0, #0 - bne _08084086 -_080840A4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080840A8 -sub_080840A8: @ 0x080840A8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - ldr r4, _0808413C @ =gUnk_0811F838 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] - movs r0, #0 - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _08084138 - movs r0, #6 - strb r0, [r5, #0xe] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - adds r0, #0xc - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x15] - bl sub_08000E50 - movs r1, #0xf - ands r1, r0 - lsls r1, r1, #1 - adds r1, #0x20 - strh r1, [r5, #0x24] - bl sub_08000E50 - ldr r1, _08084140 @ =gUnk_0811F840 - movs r4, #3 - ands r0, r4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r5, #0x20] - bl sub_08000E50 - ldr r1, _08084144 @ =gUnk_0811F850 - ands r0, r4 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r6 - strh r0, [r5, #0x2e] - adds r0, r7, #1 - strh r0, [r5, #0x32] - ldr r0, _08084148 @ =0x0000FFF8 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl sub_08016A30 - adds r0, r5, #0 - movs r1, #0x11 - movs r2, #0 - bl CreateFX - adds r5, r0, #0 - cmp r5, #0 - beq _08084138 - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_080A3268 -_08084138: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808413C: .4byte gUnk_0811F838 -_08084140: .4byte gUnk_0811F840 -_08084144: .4byte gUnk_0811F850 -_08084148: .4byte 0x0000FFF8 - - thumb_func_start sub_0808414C -sub_0808414C: @ 0x0808414C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08084180 - movs r0, #8 - strb r0, [r1, #0xe] - ldrb r0, [r1, #0xf] - subs r0, #1 - strb r0, [r1, #0xf] - ands r0, r2 - cmp r0, #0 - beq _0808417C - movs r2, #0x2e - ldrsh r0, [r1, r2] - movs r2, #0x32 - ldrsh r1, [r1, r2] - bl sub_080840A8 - b _08084180 -_0808417C: - movs r0, #5 - strb r0, [r1, #0xc] -_08084180: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08084184 -sub_08084184: @ 0x08084184 - push {lr} - bl sub_0800445C - pop {pc} - - thumb_func_start nullsub_114 -nullsub_114: @ 0x0808418C - bx lr - .align 2, 0 - - thumb_func_start sub_08084190 -sub_08084190: @ 0x08084190 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08084204 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x70 - strh r1, [r5] - ldr r0, _08084208 @ =gUnk_0811F8A8 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_080002A0 - cmp r0, #0x74 - bne _080841D2 - bl sub_0805E780 -_080841D2: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08084200 - movs r0, #3 - strb r0, [r4, #0xc] - ldrh r1, [r5] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0x73 - bl sub_0807B7D8 - ldrb r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08084200 - bl sub_0805E780 -_08084200: - pop {r4, r5, pc} - .align 2, 0 -_08084204: .4byte gUnk_03000BF0 -_08084208: .4byte gUnk_0811F8A8 - - thumb_func_start sub_0808420C -sub_0808420C: @ 0x0808420C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08084220 - movs r0, #2 - strb r0, [r4, #0xc] -_08084220: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08084224 -sub_08084224: @ 0x08084224 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x70 - ldrh r1, [r0] - subs r0, #0x38 - ldrb r2, [r0] - movs r0, #0x73 - bl sub_0807B7D8 - ldrb r0, [r4, #0xa] - cmp r0, #7 - bgt _0808424C - cmp r0, #6 - blt _0808424C - ldr r0, _08084248 @ =0x00000215 - bl sub_080A3268 - b _08084258 - .align 2, 0 -_08084248: .4byte 0x00000215 -_0808424C: - movs r0, #0x72 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_080A29BC -_08084258: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xe] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - ldrb r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08084278 - bl sub_0805E780 -_08084278: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808427C -sub_0808427C: @ 0x0808427C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0808428A - cmp r0, #7 - bne _080842D4 -_0808428A: - adds r0, r4, #0 - bl sub_080002A0 - cmp r0, #0x74 - bne _0808429C - adds r0, r4, #0 - bl sub_0805E7BC - b _080842D4 -_0808429C: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _080842D4 - adds r1, r4, #0 - adds r1, #0x72 - ldrh r0, [r1] - cmp r0, #0 - beq _080842BA - subs r0, #1 - strh r0, [r1] - b _080842D4 -_080842BA: - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - adds r0, r4, #0 - bl sub_080A29BC -_080842D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080842D8 -sub_080842D8: @ 0x080842D8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r2, [r5, #0x2e] - movs r1, #8 - adds r0, r1, #0 - ands r0, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - rsbs r0, r0, #0 - lsrs r2, r0, #0x1f - ldrh r0, [r5, #0x32] - ands r1, r0 - cmp r1, #0 - beq _080842F6 - adds r2, #2 -_080842F6: - ldr r1, _0808432C @ =gUnk_0811F898 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08084330 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0801AF18 - pop {r4, r5, r6, pc} - .align 2, 0 -_0808432C: .4byte gUnk_0811F898 -_08084330: .4byte gUnk_03000BF0 - - thumb_func_start sub_08084334 -sub_08084334: @ 0x08084334 - push {lr} - ldr r2, _08084348 @ =gUnk_0811F908 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08084348: .4byte gUnk_0811F908 - - thumb_func_start sub_0808434C -sub_0808434C: @ 0x0808434C - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r2, #1 - movs r3, #1 - strb r3, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x3f - strb r3, [r0] - adds r1, #4 - movs r0, #0x47 - strb r0, [r1] - subs r1, #5 - movs r0, #2 - strb r0, [r1] - ldr r0, _080843E0 @ =gUnk_080FD188 - str r0, [r5, #0x48] - ldr r0, _080843E4 @ =0x00004050 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080843E8 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _080843C8 - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080843EC -_080843C8: - movs r0, #3 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - adds r0, r5, #0 - movs r1, #1 - bl sub_08004260 - b _080843F4 - .align 2, 0 -_080843E0: .4byte gUnk_080FD188 -_080843E4: .4byte 0x00004050 -_080843E8: .4byte gUnk_03000BF0 -_080843EC: - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl sub_08004260 -_080843F4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080843F8 -sub_080843F8: @ 0x080843F8 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9c - bne _08084420 - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - movs r1, #0xd - movs r2, #0 - bl CreateFX - ldr r0, _08084424 @ =0x0000010D - bl sub_08004488 -_08084420: - pop {pc} - .align 2, 0 -_08084424: .4byte 0x0000010D - - thumb_func_start sub_08084428 -sub_08084428: @ 0x08084428 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08084454 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 -_08084454: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08084458 -sub_08084458: @ 0x08084458 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08084472 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x14 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08004168 - b _080844C2 -_08084472: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080844C2 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080844C4 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0x35 - bl sub_0807B7D8 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x40 - bl CreateFX - movs r0, #0x93 - lsls r0, r0, #1 - bl sub_080A3268 - bl sub_0805E780 -_080844C2: - pop {r4, r5, pc} - .align 2, 0 -_080844C4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080844C8 -sub_080844C8: @ 0x080844C8 - push {lr} - ldr r2, _080844DC @ =gUnk_0811FAC0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080844DC: .4byte gUnk_0811FAC0 - - thumb_func_start sub_080844E0 -sub_080844E0: @ 0x080844E0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08084516 - adds r0, r5, #0 - bl sub_08016A30 -_08084516: - ldrb r0, [r5, #0xa] - cmp r0, #0x20 - bne _08084524 - ldrb r0, [r5, #0x10] - movs r1, #0x20 - orrs r0, r1 - strb r0, [r5, #0x10] -_08084524: - ldrb r4, [r5, #0xa] - cmp r4, #3 - bne _08084538 - bl sub_08000E50 - ldr r1, _080845AC @ =gUnk_0811FAC8 - ands r4, r0 - adds r1, r4, r1 - ldrb r0, [r1] - strb r0, [r5, #0xa] -_08084538: - ldrb r0, [r5, #0xa] - cmp r0, #0x17 - bne _0808454E - bl sub_08000E50 - ldr r2, _080845B0 @ =gUnk_0811FACC - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r5, #0xa] -_0808454E: - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl sub_08004260 - ldrb r0, [r5, #0xa] - lsls r0, r0, #2 - ldr r1, _080845B4 @ =gUnk_0811F960 - adds r4, r0, r1 - ldrb r1, [r4] - movs r0, #0xf - ands r0, r1 - cmp r0, #6 - bne _0808456C - movs r0, #0x40 - strh r0, [r5, #0x24] -_0808456C: - ldrh r0, [r4, #2] - cmp r0, #0 - beq _08084582 - ldrb r1, [r5, #0xb] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08084582 - ldrh r0, [r4, #2] - bl sub_08004488 -_08084582: - ldrb r1, [r5, #0xb] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08084594 - ldrb r1, [r4, #1] - adds r0, r5, #0 - bl sub_0805457C -_08084594: - ldrb r1, [r5, #0xb] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080845AA - ldrb r0, [r5, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r5, #0x19] -_080845AA: - pop {r4, r5, pc} - .align 2, 0 -_080845AC: .4byte gUnk_0811FAC8 -_080845B0: .4byte gUnk_0811FACC -_080845B4: .4byte gUnk_0811F960 - - thumb_func_start sub_080845B8 -sub_080845B8: @ 0x080845B8 - push {lr} - ldr r3, _080845D4 @ =gUnk_0811FAD0 - ldr r2, _080845D8 @ =gUnk_0811F960 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1a - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080845D4: .4byte gUnk_0811FAD0 -_080845D8: .4byte gUnk_0811F960 - - thumb_func_start sub_080845DC -sub_080845DC: @ 0x080845DC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080845F4 - bl sub_0805E780 -_080845F4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080845F8 -sub_080845F8: @ 0x080845F8 - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x2e] - movs r1, #0xf - adds r0, r1, #0 - ands r0, r2 - movs r2, #8 - subs r3, r2, r0 - ldrh r0, [r4, #0x32] - ands r1, r0 - subs r1, r2, r1 - adds r0, r3, #0 - orrs r0, r1 - cmp r0, #0 - beq _08084626 - adds r0, r3, #0 - bl sub_080045DA - lsrs r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C -_08084626: - adds r0, r4, #0 - bl sub_08084630 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08084630 -sub_08084630: @ 0x08084630 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808467E - ldrb r1, [r4, #0xb] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0808467A - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _0808467A - adds r1, #0x6a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - ldr r0, [r4, #0x68] - cmp r0, #0 - beq _0808467A - ldr r2, [r4, #0x54] - adds r2, #0x6c - subs r0, #1 - movs r1, #0x1f - ands r0, r1 - adds r1, r3, #0 - lsls r1, r0 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] -_0808467A: - bl sub_0805E780 -_0808467E: - pop {r4, pc} - - thumb_func_start sub_08084680 -sub_08084680: @ 0x08084680 - push {lr} - ldr r1, [r0, #0x34] - movs r2, #0x80 - lsls r2, r2, #7 - adds r1, r1, r2 - str r1, [r0, #0x34] - bl sub_080845DC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08084694 -sub_08084694: @ 0x08084694 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _080846A4 - ldr r0, [r0, #4] - cmp r0, #0 - bne _080846A8 -_080846A4: - bl sub_0805E780 -_080846A8: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080846B0 -sub_080846B0: @ 0x080846B0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080846D8 - ldrh r1, [r4, #0x24] - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _080846CA - adds r0, r1, #0 - subs r0, #0x10 - strh r0, [r4, #0x24] -_080846CA: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080845DC - b _08084718 -_080846D8: - movs r0, #1 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x14] - movs r0, #2 - orrs r0, r1 - cmp r0, #2 - bne _080846EA - movs r0, #0x1e - b _080846EC -_080846EA: - movs r0, #2 -_080846EC: - strb r0, [r4, #0x15] - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08084712 - adds r1, r4, #0 - adds r1, #0x60 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldrb r0, [r4, #0x15] - movs r1, #1 - cmp r0, #0x17 - bls _08084708 - subs r1, #2 -_08084708: - adds r0, r0, r1 - strb r0, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - b _08084716 -_08084712: - movs r0, #0xc0 - lsls r0, r0, #2 -_08084716: - strh r0, [r4, #0x24] -_08084718: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808471C -sub_0808471C: @ 0x0808471C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08084768 - movs r4, #0 -_08084734: - adds r0, r5, #0 - movs r1, #0x24 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0808475E - lsls r1, r4, #1 - ldr r0, _0808476C @ =gUnk_0811FB08 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_0808475E: - adds r4, #1 - cmp r4, #3 - bls _08084734 - bl sub_0805E780 -_08084768: - pop {r4, r5, pc} - .align 2, 0 -_0808476C: .4byte gUnk_0811FB08 - - thumb_func_start sub_08084770 -sub_08084770: @ 0x08084770 - push {lr} - ldr r1, [r0, #0x34] - ldr r2, _08084780 @ =0xFFFFC000 - adds r1, r1, r2 - str r1, [r0, #0x34] - bl sub_080845DC - pop {pc} - .align 2, 0 -_08084780: .4byte 0xFFFFC000 - - thumb_func_start sub_08084784 -sub_08084784: @ 0x08084784 - push {lr} - ldr r1, [r0, #0x34] - movs r2, #0x80 - lsls r2, r2, #7 - adds r1, r1, r2 - str r1, [r0, #0x34] - bl sub_080845DC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08084798 -sub_08084798: @ 0x08084798 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080847B6 - ldr r0, [r4, #0x54] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080847BA -_080847B6: - bl sub_0805E780 -_080847BA: - pop {r4, pc} - - thumb_func_start sub_080847BC -sub_080847BC: @ 0x080847BC - push {lr} - ldr r1, [r0, #0x34] - ldr r2, _080847CC @ =0xFFFFE000 - adds r1, r1, r2 - str r1, [r0, #0x34] - bl sub_080845DC - pop {pc} - .align 2, 0 -_080847CC: .4byte 0xFFFFE000 - - thumb_func_start sub_080847D0 -sub_080847D0: @ 0x080847D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080845DC - pop {r4, pc} - - thumb_func_start sub_080847E0 -sub_080847E0: @ 0x080847E0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08084814 @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #1 - bne _080847F0 - bl sub_0805E780 -_080847F0: - ldr r4, _08084818 @ =gLinkEntity - ldr r3, _0808481C @ =0xFFFD0000 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - ldr r0, _08084820 @ =0x0000FFFD - strh r0, [r5, #0x36] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FAB0 - adds r0, r5, #0 - bl sub_080845DC - pop {r4, r5, pc} - .align 2, 0 -_08084814: .4byte gUnk_03000BF0 -_08084818: .4byte gLinkEntity -_0808481C: .4byte 0xFFFD0000 -_08084820: .4byte 0x0000FFFD - - thumb_func_start sub_08084824 -sub_08084824: @ 0x08084824 - push {lr} - ldr r2, _08084838 @ =gUnk_08120560 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08084838: .4byte gUnk_08120560 - - thumb_func_start sub_0808483C -sub_0808483C: @ 0x0808483C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrh r2, [r4, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - ands r1, r0 - orrs r1, r2 - strh r1, [r4, #0x32] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080848C0 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x74 - strh r1, [r5] - adds r0, r4, #0 - movs r1, #8 - bl sub_08004260 - ldr r0, _080848C4 @ =0x00004016 - ldrh r1, [r5] - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - movs r0, #0x89 - lsls r0, r0, #1 - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_080848C0: .4byte gUnk_03000BF0 -_080848C4: .4byte 0x00004016 - - thumb_func_start sub_080848C8 -sub_080848C8: @ 0x080848C8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08084980 @ =gUnk_03003F80 - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #5 - bne _08084994 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x45 - movs r5, #1 - strb r5, [r0] - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x11] - subs r0, #0x12 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - ldr r0, _08084984 @ =gUnk_08120574 - str r0, [r4, #0x48] - ldrb r1, [r4, #0xa] - adds r1, #1 - lsls r0, r1, #4 - subs r0, r0, r1 - strb r0, [r4, #0xf] - ldr r2, _08084988 @ =gLinkEntity - ldrh r0, [r4, #0x2e] - ldrh r1, [r2, #0x2e] - subs r0, r0, r1 - adds r3, r4, #0 - adds r3, #0x78 - strh r0, [r3] - ldrh r1, [r4, #0x32] - ldrh r0, [r2, #0x32] - subs r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x7a - strh r1, [r0] - ldrh r0, [r3] - cmp r0, #0 - beq _0808493C - lsls r0, r1, #0x10 - cmp r0, #0 - beq _0808493C - ldr r0, _0808498C @ =gUnk_03004040 - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r5, [r0, #0x70] -_0808493C: - ldr r0, _08084990 @ =0x00000315 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_08000152 - ldrb r1, [r4, #0xa] - adds r1, #1 - ldr r0, _08084980 @ =gUnk_03003F80 - ldr r0, [r0, #0x2c] - adds r0, #0x68 - ldrb r3, [r0] - movs r0, #1 - movs r2, #0 - bl sub_08077CF8 - str r0, [r4, #0x54] - cmp r0, #0 - beq _0808496A - str r4, [r0, #0x50] -_0808496A: - adds r0, r4, #0 - bl sub_0801766C - adds r0, r4, #0 - bl sub_0806FDA0 - adds r0, r4, #0 - bl sub_080849D8 - b _080849D6 - .align 2, 0 -_08084980: .4byte gUnk_03003F80 -_08084984: .4byte gUnk_08120574 -_08084988: .4byte gLinkEntity -_0808498C: .4byte gUnk_03004040 -_08084990: .4byte 0x00000315 -_08084994: - cmp r0, #4 - beq _080849C4 - ldr r0, _080849BC @ =0x00000315 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_08000152 - ldr r1, _080849C0 @ =gUnk_03004040 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - bl sub_0805E780 - b _080849D6 - .align 2, 0 -_080849BC: .4byte 0x00000315 -_080849C0: .4byte gUnk_03004040 -_080849C4: - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080849D6: - pop {r4, r5, pc} - - thumb_func_start sub_080849D8 -sub_080849D8: @ 0x080849D8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r1, r0, #0 - cmp r1, #1 - bne _080849EE - movs r0, #0x76 - bl sub_080A3268 - ldrb r0, [r4, #0xf] - b _080849F2 -_080849EE: - cmp r1, #0 - beq _080849F6 -_080849F2: - subs r0, #1 - strb r0, [r4, #0xf] -_080849F6: - ldr r2, _08084A3C @ =gUnk_03003F80 - adds r3, r2, #0 - adds r3, #0xa0 - ldrb r0, [r3] - cmp r0, #5 - beq _08084A04 - b _08084AF8 -_08084A04: - ldr r0, _08084A40 @ =gUnk_03004040 - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - cmp r0, #0 - beq _08084AF8 - adds r0, r2, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x13 - beq _08084AF8 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _08084AF8 - ldr r5, _08084A44 @ =gLinkEntity - adds r0, r5, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08084A48 - movs r0, #1 - strb r0, [r3] - b _08084AF8 - .align 2, 0 -_08084A3C: .4byte gUnk_03003F80 -_08084A40: .4byte gUnk_03004040 -_08084A44: .4byte gLinkEntity -_08084A48: - adds r0, r4, #0 - bl sub_080002B8 - adds r0, r4, #0 - bl sub_08084B1C - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - ldrh r5, [r5, #0x32] - adds r0, r0, r5 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_08084CAC - adds r0, r4, #0 - bl sub_080085B0 - ldrh r2, [r4, #0x2a] - ldr r1, _08084AB8 @ =0x00006666 - adds r0, r1, #0 - ands r0, r2 - cmp r0, r1 - beq _08084AEA - movs r3, #0 - ldr r5, _08084ABC @ =gUnk_0812056C - ldrh r1, [r5] - adds r0, r1, #0 - ands r0, r2 - cmp r1, r0 - beq _08084AA6 - adds r2, r5, #0 -_08084A94: - adds r2, #2 - adds r3, #1 - cmp r3, #3 - bhi _08084AA6 - ldrh r1, [r2] - ldrh r0, [r4, #0x2a] - ands r0, r1 - cmp r1, r0 - bne _08084A94 -_08084AA6: - cmp r3, #4 - bne _08084AC0 - movs r0, #0 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #4 - ands r0, r1 - movs r1, #1 - b _08084ADE - .align 2, 0 -_08084AB8: .4byte 0x00006666 -_08084ABC: .4byte gUnk_0812056C -_08084AC0: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08084AE4 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08084AEA - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 -_08084ADE: - orrs r0, r1 - strb r0, [r4, #0x18] - b _08084B16 -_08084AE4: - movs r0, #0x1e - strb r0, [r4, #0xe] - b _08084B16 -_08084AEA: - ldr r0, _08084AF4 @ =gUnk_03003F80 - adds r0, #0xa0 - movs r1, #1 - strb r1, [r0] - b _08084B16 - .align 2, 0 -_08084AF4: .4byte gUnk_03003F80 -_08084AF8: - bl sub_0807A108 - adds r0, r4, #0 - movs r1, #0x30 - movs r2, #0 - bl CreateFX - ldr r0, [r4, #0x54] - bl sub_0805E7BC - ldr r0, _08084B18 @ =0x0000018F - bl sub_080A3268 - bl sub_0805E780 -_08084B16: - pop {r4, r5, pc} - .align 2, 0 -_08084B18: .4byte 0x0000018F - - thumb_func_start sub_08084B1C -sub_08084B1C: @ 0x08084B1C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - ldr r3, _08084CA4 @ =gLinkEntity - ldrb r0, [r3, #0x10] - strb r0, [r4, #0x10] - adds r0, r3, #0 - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x60 - strh r1, [r0] - ldrb r0, [r3, #0x1e] - strb r0, [r4, #0x1e] - adds r0, r3, #0 - adds r0, #0x5b - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x5b - strb r0, [r1] - ldrh r0, [r3, #0x12] - strh r0, [r4, #0x12] - ldrb r0, [r3, #0x15] - strb r0, [r4, #0x15] - ldrb r0, [r3, #0x14] - strb r0, [r4, #0x14] - ldrb r0, [r3, #0x18] - movs r1, #1 - mov r8, r1 - movs r1, #0x40 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - mov sb, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r3, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r7, #0x3f - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r3, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - movs r6, #7 - lsrs r1, r1, #0x1d - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - mov sl, r0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r3, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - adds r0, r3, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r3, #0 - adds r0, #0x3b - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x3b - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3f - ldrb r0, [r0] - adds r1, #4 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3c - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x3c - strb r1, [r0] - adds r0, r3, #0 - adds r0, #0x40 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x40 - strb r1, [r0] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 - ldr r5, _08084CA8 @ =gUnk_03003F80 - ldrb r0, [r5, #4] - cmp r0, #0 - beq _08084C6A - ldr r1, [r4, #0x54] - ldr r0, [r5, #0x2c] - adds r0, #0x44 - ldrb r0, [r0] - adds r1, #0x44 - strb r0, [r1] - ldr r1, [r4, #0x54] - ldr r0, [r5, #0x2c] - ldrb r0, [r0, #0x1e] - strb r0, [r1, #0x1e] - ldr r3, [r4, #0x54] - ldr r0, [r5, #0x2c] - ldrb r1, [r0, #0x18] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - mov r0, r8 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r3, #0x18] - mov r0, sb - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - ldr r3, [r4, #0x54] - ldr r0, [r5, #0x2c] - ldrb r1, [r0, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - ldr r2, [r4, #0x54] - ldr r0, [r5, #0x2c] - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - adds r2, #0x29 - ands r6, r0 - ldrb r1, [r2] - mov r0, sl - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r1, [r4, #0x54] - ldrb r0, [r1, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _08084C6A - ldr r1, [r1, #0x48] - ldrb r0, [r1] - rsbs r0, r0, #0 - strb r0, [r1] -_08084C6A: - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_0806FEBC - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FEBC - adds r0, r4, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FEBC - adds r0, r4, #0 - movs r1, #3 - movs r2, #0 - bl sub_0806FEBC - ldr r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_08078E84 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08084CA4: .4byte gLinkEntity -_08084CA8: .4byte gUnk_03003F80 - - thumb_func_start sub_08084CAC -sub_08084CAC: @ 0x08084CAC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, _08084D18 @ =gUnk_03004040 - ldrb r0, [r5, #0xa] - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r0, [r0] - ldr r0, [r0, #0x70] - cmp r0, #0 - bne _08084D32 - ldrb r0, [r5, #0x14] - movs r2, #6 - ands r2, r0 - lsls r2, r2, #1 - ldr r0, _08084D1C @ =gUnk_080B4468 - adds r2, r2, r0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r3, #0 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - ldr r4, _08084D20 @ =gUnk_03000BF0 - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r7, #0x32 - ldrsh r1, [r5, r7] - movs r7, #2 - ldrsh r2, [r2, r7] - adds r1, r1, r2 - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - bl sub_080002E4 - cmp r0, #0x72 - bne _08084D24 - ldr r2, [r6] - movs r1, #1 - ldrb r5, [r5, #0xa] - lsls r1, r5 - ldr r0, [r2, #0x6c] - orrs r0, r1 - b _08084D30 - .align 2, 0 -_08084D18: .4byte gUnk_03004040 -_08084D1C: .4byte gUnk_080B4468 -_08084D20: .4byte gUnk_03000BF0 -_08084D24: - ldr r2, [r6] - movs r1, #1 - ldrb r5, [r5, #0xa] - lsls r1, r5 - ldr r0, [r2, #0x6c] - bics r0, r1 -_08084D30: - str r0, [r2, #0x6c] -_08084D32: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08084D34 -sub_08084D34: @ 0x08084D34 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805E3B0 - cmp r0, #0 - bne _08084D50 - ldr r0, _08084D54 @ =gUnk_0812057C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08084D50: - pop {r4, pc} - .align 2, 0 -_08084D54: .4byte gUnk_0812057C - - thumb_func_start sub_08084D58 -sub_08084D58: @ 0x08084D58 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldrb r0, [r7, #0xa] - cmp r0, #3 - bne _08084D6C - adds r0, r7, #0 - bl sub_08084F8C -_08084D6C: - adds r0, r7, #0 - bl sub_08004168 - ldrb r0, [r7, #0xa] - cmp r0, #4 - bne _08084D7E - adds r0, r7, #0 - bl sub_08084F8C -_08084D7E: - movs r0, #2 - strb r0, [r7, #0xc] - ldrb r0, [r7, #0x10] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r7, #0x10] - ldrb r1, [r7, #0x19] - movs r5, #0x3f - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r7, #0x19] - ldr r0, _08084E48 @ =gUnk_08120588 - mov r8, r0 - ldrb r0, [r7, #0xa] - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #1] - strb r0, [r7, #0x1d] - ldrb r0, [r7, #0xa] - lsls r0, r0, #2 - add r0, r8 - ldrb r0, [r0, #2] - strb r0, [r7, #0x1c] - movs r2, #0 - movs r0, #0x80 - strh r0, [r7, #0x24] - ldr r0, _08084E4C @ =gLinkEntity - adds r0, #0x38 - ldrb r0, [r0] - adds r6, r7, #0 - adds r6, #0x38 - strb r0, [r6] - adds r1, r7, #0 - adds r1, #0x45 - movs r0, #1 - strb r0, [r1] - subs r1, #9 - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x6e - strb r0, [r1] - subs r1, #4 - movs r0, #4 - strb r0, [r1] - ldr r0, _08084E50 @ =gUnk_081205B4 - str r0, [r7, #0x48] - adds r0, r7, #0 - adds r0, #0x72 - strb r2, [r0] - movs r1, #0x2e - ldrsh r0, [r7, r1] - ldr r4, _08084E54 @ =gUnk_03000BF0 - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r5 - movs r2, #0x32 - ldrsh r1, [r7, r2] - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - lsls r1, r1, #6 - orrs r0, r1 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r7, #0 - adds r1, #0x70 - strh r0, [r1] - ldr r0, _08084E58 @ =0x00004022 - movs r3, #0x2e - ldrsh r1, [r7, r3] - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - movs r3, #0x32 - ldrsh r2, [r7, r3] - ldrh r3, [r4, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r6] - bl sub_0800015E - ldrb r0, [r7, #0xa] - lsls r0, r0, #2 - add r0, r8 - ldrb r1, [r0] - adds r0, r7, #0 - bl sub_08004260 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08084E48: .4byte gUnk_08120588 -_08084E4C: .4byte gLinkEntity -_08084E50: .4byte gUnk_081205B4 -_08084E54: .4byte gUnk_03000BF0 -_08084E58: .4byte 0x00004022 - - thumb_func_start sub_08084E5C -sub_08084E5C: @ 0x08084E5C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08084EAC @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _08084E7A - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _08084EA8 -_08084E7A: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08084EB0 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - bl sub_0805E780 -_08084EA8: - pop {r4, r5, pc} - .align 2, 0 -_08084EAC: .4byte gUnk_03003F80 -_08084EB0: .4byte gUnk_03000BF0 - - thumb_func_start sub_08084EB4 -sub_08084EB4: @ 0x08084EB4 - push {lr} - ldr r2, _08084EC8 @ =gUnk_0812059C - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08084EC8: .4byte gUnk_0812059C - - thumb_func_start sub_08084ECC -sub_08084ECC: @ 0x08084ECC - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - bl sub_08084ED8 - pop {pc} - - thumb_func_start sub_08084ED8 -sub_08084ED8: @ 0x08084ED8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08084E5C - adds r0, r4, #0 - bl sub_0806F4E8 - ldrb r0, [r4, #0x1d] - cmp r0, #0 - beq _08084EFA - subs r0, #1 - strb r0, [r4, #0x1d] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08084EFA - movs r0, #2 - strb r0, [r4, #0xd] -_08084EFA: - pop {r4, pc} - - thumb_func_start sub_08084EFC -sub_08084EFC: @ 0x08084EFC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x72 - ldrb r1, [r2] - cmp r1, #0 - bne _08084F42 - movs r0, #1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x62 - strb r1, [r0] - adds r0, #0xe - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08084F7C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B9B8 -_08084F42: - ldr r0, _08084F80 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _08084F5C - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _08084F62 -_08084F5C: - adds r0, r5, #0 - bl sub_08084F8C -_08084F62: - adds r0, r5, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08084F7A - ldrb r1, [r5, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _08084F7A - bl sub_0805E780 -_08084F7A: - pop {r4, r5, r6, pc} - .align 2, 0 -_08084F7C: .4byte gUnk_03000BF0 -_08084F80: .4byte gUnk_03003F80 - - thumb_func_start sub_08084F84 -sub_08084F84: @ 0x08084F84 - bx lr - .align 2, 0 - - thumb_func_start sub_08084F88 -sub_08084F88: @ 0x08084F88 - bx lr - .align 2, 0 - - thumb_func_start sub_08084F8C -sub_08084F8C: @ 0x08084F8C - push {lr} - ldrb r1, [r0, #0xb] - cmp r1, #0xf - beq _08084FA4 - cmp r1, #0xf - bgt _08084F9E - cmp r1, #0 - beq _08084FB8 - b _08084FAE -_08084F9E: - cmp r1, #0xff - bne _08084FAE - b _08084FB8 -_08084FA4: - ldrb r1, [r0, #0xe] - movs r2, #0x80 - bl CreateFX - b _08084FB8 -_08084FAE: - ldrb r1, [r0, #0xb] - ldrb r2, [r0, #0xe] - movs r3, #0 - bl sub_080A2988 -_08084FB8: - bl sub_0805E780 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08084FC0 -sub_08084FC0: @ 0x08084FC0 - push {lr} - ldr r2, _08084FD4 @ =gUnk_081205BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08084FD4: .4byte gUnk_081205BC - - thumb_func_start sub_08084FD8 -sub_08084FD8: @ 0x08084FD8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0808500C - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08084FF4 - bl sub_0805E780 -_08084FF4: - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080850FC - b _0808501C -_0808500C: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf0 - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - movs r0, #0x18 - strb r0, [r4, #0x15] -_0808501C: - movs r0, #0 - strb r0, [r4, #0x1e] - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_115 -nullsub_115: @ 0x08085024 - bx lr - .align 2, 0 - - thumb_func_start sub_08085028 -sub_08085028: @ 0x08085028 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080850A6 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #4 - strb r0, [r1] - ldr r0, _080850A8 @ =gUnk_03000F50 - mov ip, r0 - ldrh r1, [r0] - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r2, #0 - orrs r0, r1 - mov r1, ip - strh r0, [r1] - adds r1, #0x60 - movs r0, #0x1f - strh r0, [r1] - adds r1, #2 - movs r0, #0xf - strh r0, [r1] - movs r2, #0x2e - ldrsh r0, [r4, r2] - ldr r3, _080850AC @ =gUnk_03000BF0 - movs r2, #0xa - ldrsh r1, [r3, r2] - subs r0, r0, r1 - adds r1, r0, #0 - subs r1, #0x18 - movs r2, #0xff - ands r1, r2 - lsls r1, r1, #8 - adds r0, #0x18 - ands r0, r2 - orrs r1, r0 - mov r0, ip - adds r0, #0x58 - strh r1, [r0] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r4, #0xc - ldrsh r1, [r3, r4] - subs r0, r0, r1 - adds r1, r0, #0 - subs r1, #0x18 - ands r1, r2 - lsls r1, r1, #8 - adds r0, #0x18 - ands r0, r2 - orrs r1, r0 - mov r0, ip - adds r0, #0x5c - strh r1, [r0] -_080850A6: - pop {r4, pc} - .align 2, 0 -_080850A8: .4byte gUnk_03000F50 -_080850AC: .4byte gUnk_03000BF0 - - thumb_func_start sub_080850B0 -sub_080850B0: @ 0x080850B0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080850C8 - movs r0, #4 - strb r0, [r1, #0xc] - movs r0, #0x60 - strb r0, [r1, #0xe] -_080850C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080850CC -sub_080850CC: @ 0x080850CC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080850F0 - ldr r2, _080850F4 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _080850F8 @ =0x0000DFFF - ands r0, r1 - strh r0, [r2] - adds r0, r4, #0 - bl sub_0805E7BC -_080850F0: - pop {r4, pc} - .align 2, 0 -_080850F4: .4byte gUnk_03000F50 -_080850F8: .4byte 0x0000DFFF - - thumb_func_start sub_080850FC -sub_080850FC: @ 0x080850FC - push {r4, r5, r6, lr} - movs r1, #0x2e - ldrsh r4, [r0, r1] - ldr r2, _0808518C @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r4, r4, r1 - asrs r4, r4, #4 - movs r3, #0x3f - ands r4, r3 - movs r5, #0x32 - ldrsh r1, [r0, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r4, r1 - adds r0, #0x38 - ldrb r6, [r0] - ldr r5, _08085190 @ =0x0000403D - adds r1, r4, #0 - subs r1, #0x41 - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_0800015E - adds r1, r4, #0 - subs r1, #0x40 - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_0800015E - adds r1, r4, #0 - subs r1, #0x3f - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_0800015E - subs r1, r4, #1 - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_0800015E - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl sub_0800015E - adds r1, r4, #1 - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_0800015E - adds r1, r4, #0 - adds r1, #0x3f - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_0800015E - adds r1, r4, #0 - adds r1, #0x40 - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_0800015E - adds r4, #0x41 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0808518C: .4byte gUnk_03000BF0 -_08085190: .4byte 0x0000403D - - thumb_func_start sub_08085194 -sub_08085194: @ 0x08085194 - push {lr} - ldr r2, _080851A8 @ =gUnk_081205D0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080851A8: .4byte gUnk_081205D0 - - thumb_func_start sub_080851AC -sub_080851AC: @ 0x080851AC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r2, #1 - movs r3, #1 - strb r3, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r5, #0xb] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080851E8 - adds r1, r5, #0 - adds r1, #0x7c - ldr r0, _080851E4 @ =0x0000FFFF - strh r0, [r1] - b _080851EE - .align 2, 0 -_080851E4: .4byte 0x0000FFFF -_080851E8: - adds r0, r5, #0 - adds r0, #0x7c - strh r3, [r0] -_080851EE: - ldrb r1, [r5, #0xb] - movs r0, #2 - ands r0, r1 - strb r0, [r5, #0x14] - ldrb r4, [r5, #0xa] - cmp r4, #3 - bne _0808521E - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - adds r1, r5, #0 - adds r1, #0x7a - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0808521E - ldrb r0, [r5, #0x14] - adds r0, #2 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x14] - strb r4, [r5, #0xc] -_0808521E: - ldrb r1, [r5, #0x14] - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_0808094C - movs r1, #0x2e - ldrsh r2, [r5, r1] - ldr r3, _08085260 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r2, r2, r1 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r6, #0x32 - ldrsh r1, [r5, r6] - ldrh r3, [r3, #8] - subs r1, r1, r3 - asrs r1, r1, #4 - ands r1, r4 - lsls r1, r1, #6 - orrs r2, r1 - lsls r2, r2, #1 - adds r2, #4 - adds r0, r0, r2 - str r0, [r5, #0x70] - adds r0, r5, #0 - bl sub_08085394 - pop {r4, r5, r6, pc} - .align 2, 0 -_08085260: .4byte gUnk_03000BF0 - - thumb_func_start sub_08085264 -sub_08085264: @ 0x08085264 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x86 - ldrh r0, [r5] - bl sub_0807CBE4 - cmp r0, #0 - beq _080852AE - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _0808528A - ldrh r0, [r5] - bl sub_0807CD48 -_0808528A: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - ldrb r1, [r4, #0x14] - adds r0, r0, r1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0808543C - ldr r0, _080852B0 @ =0x00000151 - bl sub_08004488 -_080852AE: - pop {r4, r5, pc} - .align 2, 0 -_080852B0: .4byte 0x00000151 - - thumb_func_start sub_080852B4 -sub_080852B4: @ 0x080852B4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08085300 - movs r4, #3 - movs r0, #3 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0xe] - strb r0, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - adds r1, r5, #0 - adds r1, #0x7a - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x7c - ldrb r0, [r0] - ldrb r1, [r5, #0x14] - adds r0, r0, r1 - ands r0, r4 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0x14] - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_08085394 - ldr r0, _08085304 @ =0x00000151 - bl sub_08004488 -_08085300: - pop {r4, r5, pc} - .align 2, 0 -_08085304: .4byte 0x00000151 - - thumb_func_start sub_08085308 -sub_08085308: @ 0x08085308 - push {r4, lr} - adds r4, r0, #0 - bl sub_080854A8 - cmp r0, #0 - bne _0808538C - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _08085324 - cmp r0, #2 - ble _08085354 - cmp r0, #3 - beq _08085338 - b _08085354 -_08085324: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _08085354 - movs r0, #1 - strb r0, [r4, #0xc] - b _0808538C -_08085338: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - adds r1, r4, #0 - adds r1, #0x7a - ldrh r1, [r1] - cmp r0, r1 - bne _08085350 - movs r0, #0xff - b _08085352 -_08085350: - movs r0, #1 -_08085352: - strb r0, [r4, #0xf] -_08085354: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808538C - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - ldrb r1, [r4, #0x14] - adds r0, r0, r1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0808543C - ldr r0, _08085390 @ =0x00000151 - bl sub_08004488 -_0808538C: - pop {r4, pc} - .align 2, 0 -_08085390: .4byte 0x00000151 - - thumb_func_start sub_08085394 -sub_08085394: @ 0x08085394 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - ldr r0, _08085430 @ =gUnk_081205E0 - ldrb r2, [r7, #0x14] - lsrs r2, r2, #1 - lsls r2, r2, #1 - adds r0, r2, r0 - ldrh r0, [r0] - mov sl, r0 - ldr r0, _08085434 @ =gUnk_080B4488 - adds r2, r2, r0 - ldr r0, [r7, #0x70] - mov sb, r0 - movs r1, #0x2e - ldrsh r4, [r7, r1] - ldr r1, _08085438 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r3, #0x3f - ands r4, r3 - movs r5, #0x32 - ldrsh r0, [r7, r5] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r4, r0 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - mov r8, r2 - lsls r5, r2, #1 - mov r1, sb - subs r0, r1, r5 - ldrh r1, [r0] - adds r0, r7, #0 - adds r0, #0x74 - strh r1, [r0] - subs r1, r4, r2 - adds r6, r7, #0 - adds r6, #0x38 - ldrb r2, [r6] - mov r0, sl - bl sub_0800015E - mov r1, sb - ldrh r0, [r1] - adds r1, r7, #0 - adds r1, #0x76 - strh r0, [r1] - ldrb r2, [r6] - mov r0, sl - adds r1, r4, #0 - bl sub_0800015E - add r5, sb - ldrh r1, [r5] - adds r0, r7, #0 - adds r0, #0x78 - strh r1, [r0] - add r4, r8 - ldrb r2, [r6] - mov r0, sl - adds r1, r4, #0 - bl sub_0800015E - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08085430: .4byte gUnk_081205E0 -_08085434: .4byte gUnk_080B4488 -_08085438: .4byte gUnk_03000BF0 - - thumb_func_start sub_0808543C -sub_0808543C: @ 0x0808543C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _080854A0 @ =gUnk_080B4488 - ldrb r2, [r7, #0x14] - lsrs r2, r2, #1 - lsls r2, r2, #1 - adds r2, r2, r0 - movs r0, #0x2e - ldrsh r4, [r7, r0] - ldr r1, _080854A4 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r3, #0x3f - ands r4, r3 - movs r5, #0x32 - ldrsh r0, [r7, r5] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r4, r0 - adds r0, r7, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r6, #0 - ldrsb r6, [r2, r6] - subs r1, r4, r6 - adds r5, r7, #0 - adds r5, #0x38 - ldrb r2, [r5] - bl sub_0800015E - adds r0, r7, #0 - adds r0, #0x76 - ldrh r0, [r0] - ldrb r2, [r5] - adds r1, r4, #0 - bl sub_0800015E - adds r0, r7, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r4, r4, r6 - ldrb r2, [r5] - adds r1, r4, #0 - bl sub_0800015E - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080854A0: .4byte gUnk_080B4488 -_080854A4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080854A8 -sub_080854A8: @ 0x080854A8 - push {r4, lr} - ldr r2, _080854E0 @ =gUnk_081205E0 - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #1 - adds r2, r1, r2 - ldrh r3, [r2] - adds r4, r3, #0 - ldr r2, _080854E4 @ =gUnk_080B4488 - adds r1, r1, r2 - ldr r2, [r0, #0x70] - movs r0, #0 - ldrsb r0, [r1, r0] - lsls r1, r0, #1 - subs r0, r2, r1 - ldrh r0, [r0] - cmp r3, r0 - bne _080854E8 - ldrh r0, [r2] - cmp r3, r0 - bne _080854E8 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r4, r0 - bne _080854E8 - movs r0, #0 - b _080854EA - .align 2, 0 -_080854E0: .4byte gUnk_081205E0 -_080854E4: .4byte gUnk_080B4488 -_080854E8: - movs r0, #1 -_080854EA: - pop {r4, pc} - - thumb_func_start sub_080854EC -sub_080854EC: @ 0x080854EC - push {lr} - ldr r2, _08085500 @ =gUnk_08120608 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08085500: .4byte gUnk_08120608 - - thumb_func_start sub_08085504 -sub_08085504: @ 0x08085504 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0xff - bne _08085520 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - beq _0808551C - bl sub_0805E780 -_0808551C: - movs r0, #0 - strb r0, [r4, #0xa] -_08085520: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08085552 - ldr r0, _08085540 @ =gUnk_02033A90 - ldrb r0, [r0, #1] - cmp r0, #0x1b - beq _08085544 - ldrb r0, [r4, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - bne _08085552 - movs r0, #5 - strb r0, [r4, #0xc] - b _080855E2 - .align 2, 0 -_08085540: .4byte gUnk_02033A90 -_08085544: - ldrb r0, [r4, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - bne _08085552 - bl sub_0805E780 -_08085552: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0808556C - adds r0, r4, #0 - bl sub_080040A2 - cmp r0, #0 - bne _08085566 - bl sub_0805E780 -_08085566: - movs r0, #0 - strb r0, [r4, #0xe] - b _0808557A -_0808556C: - adds r0, r4, #0 - bl sub_0805EABC - cmp r0, #0 - beq _0808557A - bl sub_0805E780 -_0808557A: - movs r2, #1 - strb r2, [r4, #0xc] - movs r3, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldr r0, _080855E4 @ =gUnk_08120640 - str r0, [r4, #0x48] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - subs r1, #1 - movs r0, #4 - strb r0, [r1] - movs r0, #0x80 - lsls r0, r0, #0x11 - str r0, [r4, #0x78] - adds r1, #0x43 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x85 - strb r3, [r0] - subs r0, #1 - strb r3, [r0] - adds r0, r4, #0 - movs r1, #9 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080855E8 -_080855E2: - pop {r4, pc} - .align 2, 0 -_080855E4: .4byte gUnk_08120640 - - thumb_func_start sub_080855E8 -sub_080855E8: @ 0x080855E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldrb r1, [r7, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r7, #0x10] - ldr r6, _0808564C @ =gLinkEntity - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0x18 - bl sub_0806FC80 - adds r1, r0, #0 - cmp r1, #0 - beq _080856EE - ldr r3, _08085650 @ =gUnk_03003F80 - ldr r0, [r3, #0x30] - movs r1, #2 - orrs r0, r1 - str r0, [r3, #0x30] - ldr r4, [r6, #0x34] - cmp r4, #0 - beq _0808561C - b _080857CE -_0808561C: - adds r5, r3, #0 - adds r5, #0x26 - ldrb r0, [r5] - cmp r0, #0 - beq _08085634 - adds r2, r6, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - strb r4, [r5] -_08085634: - adds r0, r3, #0 - adds r0, #0x84 - str r7, [r0] - adds r0, r7, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08085654 - adds r0, r6, #0 - bl sub_0800455E - b _0808565A - .align 2, 0 -_0808564C: .4byte gLinkEntity -_08085650: .4byte gUnk_03003F80 -_08085654: - adds r0, r6, #0 - bl sub_08004542 -_0808565A: - ldrb r0, [r7, #0xf] - cmp r0, #0 - bne _0808568C - movs r0, #4 - strb r0, [r7, #0xf] -_08085664: - adds r0, r7, #0 - movs r1, #8 - movs r2, #0xa - bl sub_080A2AF4 - ldrb r0, [r7, #0xf] - subs r0, #1 - strb r0, [r7, #0xf] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08085664 - movs r0, #1 - strb r0, [r7, #0xf] - ldrb r1, [r7, #0xe] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r7, #0xe] - str r2, [r7, #0x70] - str r2, [r7, #0x6c] -_0808568C: - ldr r2, _080856B8 @ =gUnk_03003F80 - ldrb r0, [r2, #0x1c] - cmp r0, #3 - beq _08085696 - b _080857CE -_08085696: - ldr r1, _080856BC @ =gUnk_08120620 - ldrb r0, [r2, #0x1d] - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - ldr r0, _080856C0 @ =gLinkEntity - ldrb r0, [r0, #0x14] - movs r1, #6 - ands r1, r0 - cmp r1, #2 - beq _080856DE - cmp r1, #2 - bgt _080856C4 - cmp r1, #0 - beq _080856D6 - b _080857CE - .align 2, 0 -_080856B8: .4byte gUnk_03003F80 -_080856BC: .4byte gUnk_08120620 -_080856C0: .4byte gLinkEntity -_080856C4: - cmp r1, #4 - beq _080856CE - cmp r1, #6 - beq _080856E6 - b _080857CE -_080856CE: - ldr r0, [r7, #0x70] - subs r0, r0, r4 - str r0, [r7, #0x70] - b _080857CE -_080856D6: - ldr r0, [r7, #0x70] - adds r0, r0, r4 - str r0, [r7, #0x70] - b _080857CE -_080856DE: - ldr r0, [r7, #0x6c] - subs r0, r0, r4 - str r0, [r7, #0x6c] - b _080857CE -_080856E6: - ldr r0, [r7, #0x6c] - adds r0, r0, r4 - str r0, [r7, #0x6c] - b _080857CE -_080856EE: - ldrb r0, [r7, #0xf] - cmp r0, #0 - beq _080856FC - strb r1, [r7, #0xf] - movs r0, #0x83 - bl sub_080A3268 -_080856FC: - adds r2, r7, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - mov r8, r2 - cmp r0, #0x13 - bne _080857C8 - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r3, _08085758 @ =gUnk_08126EE4 - ldrb r2, [r6, #0x14] - movs r0, #0xe - ands r0, r2 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r5, r1, r0 - movs r0, #0x32 - ldrsh r1, [r6, r0] - movs r0, #1 - orrs r0, r2 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r3, r1, r0 - movs r1, #0x2e - ldrsh r0, [r7, r1] - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r2, r5, #0 - bl sub_080045D4 - strb r0, [r7, #0x15] - ldr r0, _0808575C @ =gUnk_03003F80 - ldrb r0, [r0, #0x1d] - cmp r0, #2 - beq _0808576A - cmp r0, #2 - bgt _08085760 - cmp r0, #1 - beq _08085770 - b _08085774 - .align 2, 0 -_08085758: .4byte gUnk_08126EE4 -_0808575C: .4byte gUnk_03003F80 -_08085760: - cmp r0, #3 - bne _08085774 - movs r4, #0x80 - lsls r4, r4, #3 - b _08085774 -_0808576A: - movs r4, #0xc0 - lsls r4, r4, #2 - b _08085774 -_08085770: - movs r4, #0x80 - lsls r4, r4, #2 -_08085774: - ldr r6, _080858A8 @ =gUnk_080C9160 - ldrb r0, [r7, #0x15] - lsls r0, r0, #4 - adds r0, r0, r6 - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r4, r4, #0x10 - asrs r4, r4, #0x18 - adds r1, r4, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r5, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r7, #0x6c] - adds r1, r1, r0 - str r1, [r7, #0x6c] - ldrb r0, [r7, #0x15] - lsls r0, r0, #4 - adds r0, #0x80 - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r1, r4, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r5, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r7, #0x70] - subs r1, r1, r0 - str r1, [r7, #0x70] -_080857C8: - movs r0, #0 - mov r1, r8 - strb r0, [r1] -_080857CE: - ldr r0, [r7, #0x2c] - str r0, [r7, #0x54] - ldr r0, [r7, #0x30] - str r0, [r7, #0x50] - ldr r0, [r7, #0x6c] - cmp r0, #0 - bne _080857E4 - ldr r0, [r7, #0x70] - cmp r0, #0 - bne _080857E4 - b _080859F4 -_080857E4: - ldr r0, [r7, #0x70] - ldr r1, _080858AC @ =0xFFFF0000 - cmp r0, r1 - blt _080857F4 - movs r1, #0x80 - lsls r1, r1, #9 - cmp r0, r1 - ble _080857F6 -_080857F4: - str r1, [r7, #0x70] -_080857F6: - ldr r0, [r7, #0x6c] - ldr r1, _080858AC @ =0xFFFF0000 - cmp r0, r1 - blt _08085806 - movs r1, #0x80 - lsls r1, r1, #9 - cmp r0, r1 - ble _08085808 -_08085806: - str r1, [r7, #0x6c] -_08085808: - ldr r0, _080858B0 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0808581A - adds r0, r7, #0 - bl sub_080A2AD4 -_0808581A: - ldr r0, [r7, #0x2c] - ldr r1, [r7, #0x6c] - adds r5, r0, r1 - ldr r1, [r7, #0x30] - ldr r2, [r7, #0x70] - adds r3, r1, r2 - adds r2, r5, #0 - bl sub_080045D4 - strb r0, [r7, #0x15] - ldr r0, [r7, #0x6c] - lsls r0, r0, #8 - asrs r0, r0, #0x10 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldr r5, _080858A8 @ =gUnk_080C9160 - ldrb r1, [r7, #0x15] - lsls r1, r1, #4 - adds r1, r1, r5 - movs r2, #0 - ldrsh r1, [r1, r2] - bl sub_0806FA04 - strh r0, [r7, #0x24] - ldr r0, [r7, #0x70] - lsls r0, r0, #8 - asrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r7, #0x15] - lsls r1, r1, #4 - adds r1, #0x80 - adds r1, r1, r5 - movs r2, #0 - ldrsh r1, [r1, r2] - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - rsbs r4, r0, #0 - movs r1, #0x24 - ldrsh r0, [r7, r1] - cmp r4, r0 - ble _08085884 - strh r4, [r7, #0x24] -_08085884: - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _080858BC - adds r0, r7, #0 - adds r0, #0x7e - movs r2, #0 - ldrsh r1, [r0, r2] - ldr r0, _080858B4 @ =0x00000FFF - cmp r1, r0 - bgt _080858B8 - movs r0, #0x24 - ldrsh r1, [r7, r0] - lsls r1, r1, #0xc - ldr r0, [r7, #0x7c] - adds r0, r0, r1 - str r0, [r7, #0x7c] - b _080858E0 - .align 2, 0 -_080858A8: .4byte gUnk_080C9160 -_080858AC: .4byte 0xFFFF0000 -_080858B0: .4byte gUnk_030010A0 -_080858B4: .4byte 0x00000FFF -_080858B8: - movs r0, #0 - b _080858DE -_080858BC: - adds r0, r7, #0 - adds r0, #0x7e - movs r2, #0 - ldrsh r1, [r0, r2] - ldr r0, _080858D8 @ =0xFFFFF000 - cmp r1, r0 - ble _080858DC - movs r0, #0x24 - ldrsh r1, [r7, r0] - lsls r1, r1, #0xc - ldr r0, [r7, #0x7c] - subs r0, r0, r1 - str r0, [r7, #0x7c] - b _080858E0 - .align 2, 0 -_080858D8: .4byte 0xFFFFF000 -_080858DC: - movs r0, #1 -_080858DE: - strb r0, [r7, #0xb] -_080858E0: - adds r0, r7, #0 - bl sub_08085EFC - adds r0, r7, #0 - bl sub_080AF134 - ldr r1, [r7, #0x54] - ldr r0, [r7, #0x2c] - cmp r1, r0 - bne _0808590C - adds r0, r7, #0 - adds r0, #0x85 - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #2 - bne _08085906 - movs r0, #0 - str r0, [r7, #0x6c] - b _08085916 -_08085906: - adds r0, r1, #1 - strb r0, [r2] - b _08085916 -_0808590C: - adds r1, r7, #0 - adds r1, #0x85 - movs r0, #0 - strb r0, [r1] - adds r2, r1, #0 -_08085916: - ldr r1, [r7, #0x50] - ldr r0, [r7, #0x30] - cmp r1, r0 - bne _0808592E - ldrb r0, [r2] - cmp r0, #2 - bne _0808592A - movs r0, #0 - str r0, [r7, #0x70] - b _08085932 -_0808592A: - adds r0, #1 - b _08085930 -_0808592E: - movs r0, #0 -_08085930: - strb r0, [r2] -_08085932: - ldr r0, _0808595C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08085944 - adds r0, r7, #0 - bl sub_08085F1C -_08085944: - ldr r1, [r7, #0x6c] - cmp r1, #0 - beq _08085998 - cmp r1, #0 - bge _0808596E - movs r0, #0x80 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08085960 - movs r0, #0 - b _08085964 - .align 2, 0 -_0808595C: .4byte gUnk_03003F80 -_08085960: - adds r0, r1, #0 - adds r0, #0x80 -_08085964: - str r0, [r7, #0x6c] - ldrh r2, [r7, #0x2a] - movs r1, #0xe0 - lsls r1, r1, #4 - b _08085982 -_0808596E: - cmp r1, #0x7f - bhi _08085976 - movs r0, #0 - b _0808597A -_08085976: - adds r0, r1, #0 - subs r0, #0x80 -_0808597A: - str r0, [r7, #0x6c] - ldrh r2, [r7, #0x2a] - movs r1, #0xe0 - lsls r1, r1, #8 -_08085982: - adds r0, r1, #0 - ands r0, r2 - cmp r0, r1 - bne _08085998 - ldr r0, [r7, #0x6c] - cmp r0, #0 - bge _08085992 - adds r0, #3 -_08085992: - asrs r0, r0, #2 - rsbs r0, r0, #0 - str r0, [r7, #0x6c] -_08085998: - ldr r1, [r7, #0x70] - cmp r1, #0 - beq _080859E6 - cmp r1, #0 - bge _080859C0 - movs r0, #0x80 - rsbs r0, r0, #0 - cmp r1, r0 - ble _080859AE - movs r0, #0 - b _080859B2 -_080859AE: - adds r0, r1, #0 - adds r0, #0x80 -_080859B2: - str r0, [r7, #0x70] - ldrh r1, [r7, #0x2a] - movs r0, #0xe - ands r0, r1 - cmp r0, #0xe - bne _080859E6 - b _080859D8 -_080859C0: - cmp r1, #0x7f - bhi _080859C8 - movs r0, #0 - b _080859CC -_080859C8: - adds r0, r1, #0 - subs r0, #0x80 -_080859CC: - str r0, [r7, #0x70] - ldrh r1, [r7, #0x2a] - movs r0, #0xe0 - ands r0, r1 - cmp r0, #0xe0 - bne _080859E6 -_080859D8: - ldr r0, [r7, #0x70] - cmp r0, #0 - bge _080859E0 - adds r0, #3 -_080859E0: - asrs r0, r0, #2 - rsbs r0, r0, #0 - str r0, [r7, #0x70] -_080859E6: - adds r0, r7, #0 - bl sub_08085D28 - adds r0, r7, #0 - bl sub_08085D60 - b _08085A0A -_080859F4: - ldr r0, _08085A18 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _08085A0A - adds r0, r7, #0 - movs r1, #8 - movs r2, #0xa - bl sub_080A2AF4 -_08085A0A: - adds r0, r7, #0 - bl sub_08085F48 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08085A18: .4byte gUnk_030010A0 - - thumb_func_start sub_08085A1C -sub_08085A1C: @ 0x08085A1C - push {lr} - ldr r2, _08085A3C @ =gUnk_0812062C - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r2, _08085A40 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #0x30] - bl sub_08078B48 - pop {pc} - .align 2, 0 -_08085A3C: .4byte gUnk_0812062C -_08085A40: .4byte gUnk_03003F80 - - thumb_func_start sub_08085A44 -sub_08085A44: @ 0x08085A44 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0x10 - movs r2, #0x18 - bl sub_080002B4 - cmp r0, #0x11 - beq _08085A62 - movs r0, #0x18 - strb r0, [r4, #0x15] - b _08085A82 -_08085A62: - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r4, #0 - movs r2, #0x18 - bl sub_080002B4 - cmp r0, #0x11 - beq _08085A78 - movs r0, #8 - strb r0, [r4, #0x15] - b _08085A82 -_08085A78: - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #1 - strb r0, [r4, #0xd] - b _08085A94 -_08085A82: - adds r0, r4, #0 - bl sub_08085EFC - adds r0, r4, #0 - bl sub_080AF134 - adds r0, r4, #0 - bl sub_08085F1C -_08085A94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08085A98 -sub_08085A98: @ 0x08085A98 - push {r4, lr} - adds r4, r0, #0 - bl sub_08085EFC - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08085F1C - ldr r1, [r4, #0x78] - ldr r0, _08085B00 @ =0x007FFFFF - cmp r1, r0 - bls _08085ACC - ldr r2, _08085B04 @ =0xFFFE0000 - adds r0, r1, r2 - str r0, [r4, #0x78] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r0, #4 - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_08085ACC: - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x18 - bl sub_080002B4 - cmp r0, #0x11 - beq _08085B34 - movs r0, #2 - strb r0, [r4, #0xd] - ldr r0, _08085B08 @ =gUnk_02033A90 - ldrb r0, [r0, #1] - cmp r0, #0x1b - bne _08085B10 - ldrh r0, [r4, #0x32] - adds r0, #0xd0 - strh r0, [r4, #0x32] - ldr r0, _08085B0C @ =0x0000FF30 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0x46 - strh r0, [r1] - movs r0, #0x73 - bl sub_0807CCB4 - b _08085B22 - .align 2, 0 -_08085B00: .4byte 0x007FFFFF -_08085B04: .4byte 0xFFFE0000 -_08085B08: .4byte gUnk_02033A90 -_08085B0C: .4byte 0x0000FF30 -_08085B10: - ldrh r0, [r4, #0x32] - adds r0, #0x40 - strh r0, [r4, #0x32] - ldr r0, _08085B38 @ =0x0000FFC0 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xf - strh r0, [r1] -_08085B22: - adds r0, r4, #0 - movs r1, #0x2b - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - ldr r0, _08085B3C @ =0x0000012D - bl sub_080A3268 -_08085B34: - pop {r4, pc} - .align 2, 0 -_08085B38: .4byte 0x0000FFC0 -_08085B3C: .4byte 0x0000012D - - thumb_func_start sub_08085B40 -sub_08085B40: @ 0x08085B40 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x34] - cmp r0, #0 - beq _08085BB4 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _08085BE8 - ldr r1, [r5, #0x78] - ldr r0, _08085B9C @ =0x011FFFFF - cmp r1, r0 - bhi _08085B7A - movs r2, #0x80 - lsls r2, r2, #0xd - adds r0, r1, r2 - str r0, [r5, #0x78] - adds r0, r5, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r0, #4 - ldrh r3, [r0] - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_08085B7A: - ldr r4, _08085BA0 @ =gLinkEntity - ldrh r3, [r5, #0x32] - ldrh r0, [r5, #0x36] - adds r0, r3, r0 - adds r1, r5, #0 - adds r1, #0x74 - ldrh r1, [r1] - subs r2, r0, r1 - strh r2, [r4, #0x32] - ldr r0, _08085BA4 @ =gUnk_02033A90 - ldrb r0, [r0, #1] - cmp r0, #0x1b - bne _08085BA8 - subs r0, r3, r1 - adds r1, r2, #0 - adds r1, #0xd0 - b _08085BAE - .align 2, 0 -_08085B9C: .4byte 0x011FFFFF -_08085BA0: .4byte gLinkEntity -_08085BA4: .4byte gUnk_02033A90 -_08085BA8: - subs r0, r3, r1 - adds r1, r2, #0 - adds r1, #0x40 -_08085BAE: - subs r0, r0, r1 - strh r0, [r4, #0x36] - b _08085BE8 -_08085BB4: - adds r0, r5, #0 - bl sub_0800455E - adds r0, r5, #0 - bl sub_080002B8 - cmp r0, #0xd - bne _08085BE8 - ldr r4, _08085C50 @ =gLinkEntity - adds r0, r4, #0 - bl sub_0800455E - adds r0, r5, #0 - bl sub_08085CDC - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - ldrb r2, [r5, #0x15] - adds r0, r4, #0 - bl sub_0806F5BC -_08085BE8: - adds r1, r5, #0 - adds r1, #0x82 - ldrh r0, [r1] - cmp r0, #0 - bne _08085C54 - ldr r4, _08085C50 @ =gLinkEntity - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08085C58 - adds r0, r4, #0 - bl sub_0800455E - adds r0, r5, #0 - bl sub_08085F1C - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #4 - strb r0, [r5, #0xf] -_08085C16: - adds r0, r5, #0 - movs r1, #8 - movs r2, #0xa - bl sub_080A2AF4 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08085C16 - movs r0, #1 - strb r0, [r5, #0xf] - ldrb r1, [r5, #0xe] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0xe] - str r2, [r5, #0x70] - str r2, [r5, #0x6c] - adds r0, r5, #0 - bl sub_080002B8 - cmp r0, #0xd - bne _08085C58 - movs r0, #4 - strb r0, [r5, #0xc] - b _08085C58 - .align 2, 0 -_08085C50: .4byte gLinkEntity -_08085C54: - subs r0, #1 - strh r0, [r1] -_08085C58: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08085C5C -sub_08085C5C: @ 0x08085C5C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08085CA0 @ =gLinkEntity - adds r1, r5, #0 - movs r2, #0x18 - bl sub_0806FC80 - cmp r0, #0 - beq _08085CAE - adds r0, r4, #0 - bl sub_0806F69C - ldrh r0, [r4, #0x24] - strh r0, [r5, #0x24] - ldrb r0, [r4, #0x15] - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - ldr r2, _08085CA4 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #0x30] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08085CA8 - adds r0, r5, #0 - bl sub_0800455E - b _08085CAE - .align 2, 0 -_08085CA0: .4byte gLinkEntity -_08085CA4: .4byte gUnk_03003F80 -_08085CA8: - adds r0, r5, #0 - bl sub_08004542 -_08085CAE: - ldr r3, _08085CD4 @ =gUnk_03000BF0 - ldrh r0, [r3] - cmp r0, #0 - bne _08085CD2 - ldrb r1, [r4, #0x10] - movs r0, #0xdf - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x11] - lsrs r2, r1, #4 - subs r0, #0x11 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x11] - ldr r0, _08085CD8 @ =gLinkEntity - str r0, [r3, #0x30] -_08085CD2: - pop {r4, r5, pc} - .align 2, 0 -_08085CD4: .4byte gUnk_03000BF0 -_08085CD8: .4byte gLinkEntity - - thumb_func_start sub_08085CDC -sub_08085CDC: @ 0x08085CDC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x78] - movs r1, #0x80 - lsls r1, r1, #0xd - adds r0, r0, r1 - str r0, [r4, #0x78] - ldr r1, _08085D04 @ =0x03FFFFFF - cmp r0, r1 - bhi _08085D08 - adds r0, r4, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r0, #4 - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - b _08085D0C - .align 2, 0 -_08085D04: .4byte 0x03FFFFFF -_08085D08: - bl sub_0805E780 -_08085D0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08085D10 -sub_08085D10: @ 0x08085D10 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805EABC - cmp r0, #0 - beq _08085D26 - ldrb r0, [r4, #0xb] - bl sub_0807CCB4 - bl sub_0805E780 -_08085D26: - pop {r4, pc} - - thumb_func_start sub_08085D28 -sub_08085D28: @ 0x08085D28 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08085D5C @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x13 - beq _08085D5A - ldr r0, [r1, #0x30] - movs r5, #2 - ands r0, r5 - cmp r0, #0 - beq _08085D5A - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x18 - bl sub_080002B4 - cmp r0, #0x11 - bne _08085D5A - movs r0, #0 - strb r5, [r4, #0xc] - strb r0, [r4, #0xd] - bl sub_08078B48 -_08085D5A: - pop {r4, r5, pc} - .align 2, 0 -_08085D5C: .4byte gUnk_03003F80 - - thumb_func_start sub_08085D60 -sub_08085D60: @ 0x08085D60 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r2, _08085D94 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08085E64 - adds r0, r2, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x12 - beq _08085E64 - ldrb r0, [r2, #2] - cmp r0, #0 - bne _08085E64 - ldrb r1, [r5, #0x15] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08085D98 - ldrb r6, [r5, #0x15] - adds r4, r6, #0 - b _08085DB0 - .align 2, 0 -_08085D94: .4byte gUnk_03003F80 -_08085D98: - movs r0, #0x10 - ands r0, r1 - movs r4, #8 - cmp r0, #0 - beq _08085DA4 - movs r4, #0x18 -_08085DA4: - ldrb r0, [r5, #0x15] - subs r0, #8 - movs r6, #0x10 - cmp r0, #0x10 - ble _08085DB0 - movs r6, #0 -_08085DB0: - cmp r4, #0x18 - beq _08085DB8 - cmp r4, #8 - bne _08085E20 -_08085DB8: - lsrs r3, r4, #2 - ldr r1, _08085E10 @ =gUnk_08120638 - adds r0, r3, r1 - movs r7, #0 - ldrsb r7, [r0, r7] - adds r0, r3, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - mov r8, r0 - adds r0, r5, #0 - adds r1, r7, #0 - mov r2, r8 - bl sub_080002CC - cmp r0, #0xff - bne _08085E20 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _08085E14 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - adds r0, r0, r7 - movs r3, #0x32 - ldrsh r1, [r5, r3] - ldrh r2, [r2, #8] - subs r1, r1, r2 - add r1, r8 - adds r2, r4, #0 - movs r3, #5 - bl sub_080806BC - cmp r0, #0 - bne _08085E1C - ldr r0, _08085E18 @ =gLinkEntity - lsrs r1, r4, #3 - bl sub_0807BD14 - cmp r0, #0 - beq _08085E20 - strb r4, [r5, #0x15] - b _08085E52 - .align 2, 0 -_08085E10: .4byte gUnk_08120638 -_08085E14: .4byte gUnk_03000BF0 -_08085E18: .4byte gLinkEntity -_08085E1C: - strb r4, [r5, #0x15] - b _08085E6C -_08085E20: - cmp r6, #0 - beq _08085E28 - cmp r6, #0x10 - bne _08085E6C -_08085E28: - lsrs r3, r6, #2 - ldr r2, _08085E5C @ =gUnk_08120638 - adds r0, r3, r2 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r0, r3, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r0, r5, #0 - bl sub_080002CC - cmp r0, #0xff - bne _08085E6C - ldr r0, _08085E60 @ =gLinkEntity - lsrs r1, r6, #3 - bl sub_0807BD14 - cmp r0, #0 - beq _08085E6C - strb r6, [r5, #0x15] -_08085E52: - adds r0, r5, #0 - bl sub_08085E74 - b _08085E6C - .align 2, 0 -_08085E5C: .4byte gUnk_08120638 -_08085E60: .4byte gLinkEntity -_08085E64: - ldrb r1, [r5, #0x10] - movs r0, #0xdf - ands r0, r1 - strb r0, [r5, #0x10] -_08085E6C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08085E74 -sub_08085E74: @ 0x08085E74 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2, #0x11] - movs r0, #3 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0x15] - cmp r0, #8 - beq _08085EB8 - cmp r0, #8 - bgt _08085EA2 - cmp r0, #0 - beq _08085EAC - b _08085EBE -_08085EA2: - cmp r0, #0x10 - beq _08085EB2 - cmp r0, #0x18 - beq _08085EB8 - b _08085EBE -_08085EAC: - movs r0, #0x90 - lsls r0, r0, #1 - b _08085EBC -_08085EB2: - movs r0, #0x9c - lsls r0, r0, #1 - b _08085EBC -_08085EB8: - movs r0, #0x80 - lsls r0, r0, #1 -_08085EBC: - strh r0, [r2, #0x24] -_08085EBE: - movs r0, #0 - str r0, [r2, #0x70] - str r0, [r2, #0x6c] - strh r0, [r2, #0x2c] - strh r0, [r2, #0x30] - ldr r1, _08085EF0 @ =gLinkEntity - strh r0, [r1, #0x2c] - strh r0, [r1, #0x30] - ldrb r0, [r2, #0x15] - strb r0, [r1, #0x15] - ldr r1, _08085EF4 @ =gUnk_03003F80 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #8] - ldr r0, _08085EF8 @ =gUnk_03000BF0 - str r2, [r0, #0x30] - ldr r0, [r1, #0x2c] - cmp r0, #0 - beq _08085EE8 - bl sub_0805E7BC -_08085EE8: - bl sub_08077B2C - pop {pc} - .align 2, 0 -_08085EF0: .4byte gLinkEntity -_08085EF4: .4byte gUnk_03003F80 -_08085EF8: .4byte gUnk_03000BF0 - - thumb_func_start sub_08085EFC -sub_08085EFC: @ 0x08085EFC - ldr r3, _08085F18 @ =gLinkEntity - ldrh r1, [r0, #0x2e] - ldrh r2, [r3, #0x2e] - subs r1, r1, r2 - adds r2, r0, #0 - adds r2, #0x76 - strh r1, [r2] - ldrh r1, [r0, #0x32] - ldrh r2, [r3, #0x32] - subs r1, r1, r2 - adds r0, #0x74 - strh r1, [r0] - bx lr - .align 2, 0 -_08085F18: .4byte gLinkEntity - - thumb_func_start sub_08085F1C -sub_08085F1C: @ 0x08085F1C - push {lr} - adds r3, r0, #0 - ldr r2, _08085F44 @ =gLinkEntity - adds r1, r3, #0 - adds r1, #0x76 - ldrh r0, [r3, #0x2e] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2, #0x2e] - adds r1, r3, #0 - adds r1, #0x74 - ldrh r0, [r3, #0x32] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2, #0x32] - ldrb r0, [r3, #0x15] - bl sub_0807A5B8 - pop {pc} - .align 2, 0 -_08085F44: .4byte gLinkEntity - - thumb_func_start sub_08085F48 -sub_08085F48: @ 0x08085F48 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xe] - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08085F8C - ldr r5, _08085F80 @ =gUnk_03003F80 - ldrb r0, [r5, #0x12] - cmp r0, #0x17 - bne _08085F6A - bl sub_08078F60 - movs r0, #0x19 - strb r0, [r5, #0x12] -_08085F6A: - movs r0, #0x83 - bl sub_080A3268 - ldr r1, [r4, #0x78] - ldr r0, _08085F84 @ =0x0127FFFF - cmp r1, r0 - bhi _08085F88 - movs r2, #0x80 - lsls r2, r2, #0xc - b _08085FF8 - .align 2, 0 -_08085F80: .4byte gUnk_03003F80 -_08085F84: .4byte 0x0127FFFF -_08085F88: - movs r0, #0 - b _08086006 -_08085F8C: - ldr r0, _08085FAC @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - movs r0, #2 - ands r1, r0 - cmp r1, #0 - beq _08085FCC - lsls r0, r2, #0x18 - cmp r0, #0 - beq _08085FB8 - ldr r1, [r4, #0x78] - ldr r0, _08085FB0 @ =0x011FFFFF - cmp r1, r0 - bhi _08085FB4 - movs r2, #0x80 - lsls r2, r2, #8 - b _08085FF8 - .align 2, 0 -_08085FAC: .4byte gUnk_03003F80 -_08085FB0: .4byte 0x011FFFFF -_08085FB4: - strb r3, [r4, #0xe] - b _08086008 -_08085FB8: - ldr r1, [r4, #0x78] - movs r0, #0x88 - lsls r0, r0, #0x11 - cmp r1, r0 - bls _08086004 - ldr r2, _08085FC8 @ =0xFFFF8000 - b _08085FF8 - .align 2, 0 -_08085FC8: .4byte 0xFFFF8000 -_08085FCC: - lsls r0, r2, #0x18 - cmp r0, #0 - beq _08085FEC - ldr r2, [r4, #0x78] - ldr r0, _08085FE4 @ =0x010FFFFF - cmp r2, r0 - bhi _08085FE8 - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r2, r1 - str r0, [r4, #0x78] - b _08086008 - .align 2, 0 -_08085FE4: .4byte 0x010FFFFF -_08085FE8: - strb r1, [r4, #0xe] - b _08086008 -_08085FEC: - ldr r1, [r4, #0x78] - movs r0, #0x83 - lsls r0, r0, #0x11 - cmp r1, r0 - bls _08086004 - ldr r2, _08086000 @ =0xFFFFC000 -_08085FF8: - adds r0, r1, r2 - str r0, [r4, #0x78] - b _08086008 - .align 2, 0 -_08086000: .4byte 0xFFFFC000 -_08086004: - movs r0, #1 -_08086006: - strb r0, [r4, #0xe] -_08086008: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r0, #4 - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - pop {r4, r5, pc} - - thumb_func_start sub_0808601C -sub_0808601C: @ 0x0808601C - push {lr} - ldr r2, _08086030 @ =gUnk_08120648 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086030: .4byte gUnk_08120648 - - thumb_func_start sub_08086034 -sub_08086034: @ 0x08086034 - push {lr} - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - adds r1, r0, #0 - adds r1, #0x58 - ldrb r1, [r1] - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08086054 -sub_08086054: @ 0x08086054 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08086064 - adds r0, r4, #0 - bl sub_08004274 -_08086064: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0808607C - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_0808607C: - ldrb r0, [r4, #0xe] - lsls r1, r0, #0x18 - cmp r1, #0 - blt _080860AA - cmp r1, #0 - beq _08086098 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080860AA - bl sub_0805E780 - b _080860AA -_08086098: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080860AA - bl sub_0805E780 -_080860AA: - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _080860BC - ldr r0, [r1, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r1, #0x30] - str r0, [r4, #0x30] - ldr r0, [r1, #0x34] - str r0, [r4, #0x34] -_080860BC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080860C0 -sub_080860C0: @ 0x080860C0 - push {lr} - ldr r2, _080860D4 @ =gUnk_08120650 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080860D4: .4byte gUnk_08120650 - - thumb_func_start sub_080860D8 -sub_080860D8: @ 0x080860D8 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, #0xff - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xb] - bl sub_0804B128 - str r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x54 - adds r2, r4, #0 - adds r2, #0x70 - adds r0, r4, #0 - bl sub_080A2CC0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808611C -sub_0808611C: @ 0x0808611C - push {r4, lr} - adds r4, r0, #0 - bl sub_08086168 - adds r1, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0808613C - ldr r2, [r4, #0x50] - ldrb r0, [r2, #0xe] - cmp r0, #0 - bne _08086144 - cmp r1, #0 - beq _0808613C - adds r0, #1 - strb r0, [r2, #0xe] -_0808613C: - adds r0, r4, #0 - bl sub_080A2BE4 - b _0808614C -_08086144: - adds r0, r4, #0 - movs r1, #0 - bl sub_080A2BE4 -_0808614C: - adds r2, r4, #0 - adds r2, #0x70 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08086166 - adds r1, r4, #0 - adds r1, #0x54 - adds r0, r4, #0 - bl sub_080A2CC0 -_08086166: - pop {r4, pc} - - thumb_func_start sub_08086168 -sub_08086168: @ 0x08086168 - push {r4, lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #1 - ldr r2, _0808619C @ =gUnk_08120658 - adds r1, r1, r2 - ldr r4, _080861A0 @ =gLinkEntity - ldrb r2, [r1] - ldrb r3, [r1, #1] - adds r1, r4, #0 - bl sub_080041A0 - cmp r0, #0 - beq _080861A8 - bl sub_08079F8C - cmp r0, #0 - beq _080861A8 - ldr r0, _080861A4 @ =gUnk_03003F80 - movs r1, #1 - strb r1, [r0, #0x14] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080861A8 - movs r0, #1 - b _080861AA - .align 2, 0 -_0808619C: .4byte gUnk_08120658 -_080861A0: .4byte gLinkEntity -_080861A4: .4byte gUnk_03003F80 -_080861A8: - movs r0, #0 -_080861AA: - pop {r4, pc} - - thumb_func_start sub_080861AC -sub_080861AC: @ 0x080861AC - push {lr} - ldr r2, _080861C0 @ =gUnk_08120660 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080861C0: .4byte gUnk_08120660 - - thumb_func_start sub_080861C4 -sub_080861C4: @ 0x080861C4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r5, #1 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldr r0, _08086230 @ =gLinkEntity - mov ip, r0 - ldrb r1, [r0, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r3, [r4, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x19] - mov r0, ip - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - adds r6, r4, #0 - adds r6, #0x29 - lsrs r1, r1, #0x1d - ldrb r3, [r6] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r6] - mov r0, ip - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - mov r1, ip - ldrb r0, [r1, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r1, [r4, #0x1b] - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x1b] - bl sub_08000E50 - ands r0, r5 - strb r0, [r4, #0xa] - adds r0, r4, #0 - movs r1, #0x11 - bl sub_08004260 - pop {r4, r5, r6, pc} - .align 2, 0 -_08086230: .4byte gLinkEntity - - thumb_func_start sub_08086234 -sub_08086234: @ 0x08086234 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08086258 - ldr r0, _08086254 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0808625E - adds r0, r4, #0 - bl sub_08004274 - b _0808625E - .align 2, 0 -_08086254: .4byte gUnk_030010A0 -_08086258: - adds r0, r4, #0 - bl sub_08004274 -_0808625E: - adds r0, r4, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0808626E - bl sub_0805E780 - b _0808627E -_0808626E: - ldr r0, _08086280 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - beq _0808627E - bl sub_0805E780 -_0808627E: - pop {r4, pc} - .align 2, 0 -_08086280: .4byte gUnk_03003F80 - - thumb_func_start sub_08086284 -sub_08086284: @ 0x08086284 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080862B4 @ =gUnk_08120668 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r1, r4, #0 - adds r1, #0x41 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r0, #4 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_080862B4: .4byte gUnk_08120668 - - thumb_func_start sub_080862B8 -sub_080862B8: @ 0x080862B8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x63 - bl sub_0807CBD0 - cmp r0, #0 - beq _080862CA - bl sub_0805E780 -_080862CA: - movs r3, #1 - strb r3, [r4, #0xc] - ldr r1, _08086350 @ =gUnk_08120678 - ldrb r0, [r4, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] - adds r2, r4, #0 - adds r2, #0x76 - strh r0, [r2] - ldrh r0, [r1] - subs r1, #2 - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08086354 - adds r1, #6 - ldr r0, [r4, #0x2c] - str r0, [r1] - adds r1, #4 - ldr r0, [r4, #0x30] - str r0, [r1] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - strb r0, [r4, #0x19] - str r4, [r4, #0x50] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - strb r3, [r0] - subs r1, #1 - movs r0, #4 - strb r0, [r1] - movs r2, #0 -_08086324: - adds r5, r2, #1 - adds r0, r4, #0 - movs r1, #0x18 - adds r2, r5, #0 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08086346 - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - ldr r0, [r4, #0x54] - str r4, [r0, #0x54] - ldr r0, [r4, #0x54] - str r0, [r4, #0x50] -_08086346: - adds r2, r5, #0 - cmp r2, #3 - bls _08086324 - b _08086360 - .align 2, 0 -_08086350: .4byte gUnk_08120678 -_08086354: - ldrb r0, [r4, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x19] -_08086360: - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08086370 - pop {r4, r5, pc} - - thumb_func_start sub_08086370 -sub_08086370: @ 0x08086370 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r2, [r6, #0xa] - cmp r2, #0 - beq _08086440 - ldr r0, [r6, #0x54] - adds r0, #0x7f - ldrb r0, [r0] - cmp r0, #0 - bne _080863B6 - adds r1, r6, #0 - adds r1, #0x7c - ldrh r0, [r1] - adds r2, r6, #0 - adds r2, #0x76 - strh r0, [r2] - ldrh r0, [r1] - subs r1, #2 - strh r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r6, #0x24] - ldr r2, [r6, #0x50] - ldr r0, [r2, #0x2c] - ldr r1, [r6, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r6, #0x30] - subs r1, r1, r2 - bl sub_080045DA - movs r1, #0x80 - eors r0, r1 - strb r0, [r6, #0x15] - b _08086428 -_080863B6: - movs r0, #0xc0 - lsls r0, r0, #3 - strh r0, [r6, #0x24] - ldr r2, _080863E8 @ =gLinkEntity - ldr r0, [r2, #0x2c] - ldr r1, [r6, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r6, #0x30] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - movs r0, #0x80 - eors r1, r0 - ldrb r2, [r6, #0x15] - cmp r1, r2 - beq _080863F0 - subs r0, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bls _080863EC - adds r0, r2, #3 - b _080863EE - .align 2, 0 -_080863E8: .4byte gLinkEntity -_080863EC: - subs r0, r2, #3 -_080863EE: - strb r0, [r6, #0x15] -_080863F0: - ldr r0, _0808640C @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08086410 - adds r0, r6, #0 - adds r0, #0x7c - ldrh r0, [r0] - adds r0, #0x40 - adds r1, r6, #0 - adds r1, #0x76 - b _08086426 - .align 2, 0 -_0808640C: .4byte gLinkEntity -_08086410: - adds r0, r6, #0 - adds r0, #0x7c - ldrh r1, [r0] - subs r1, #0x20 - adds r2, r6, #0 - adds r2, #0x76 - strh r1, [r2] - ldrh r0, [r0] - adds r0, #0x50 - adds r1, r6, #0 - adds r1, #0x7a -_08086426: - strh r0, [r1] -_08086428: - ldr r1, [r6, #0x50] - ldr r0, [r1, #0x2c] - str r0, [r6, #0x2c] - ldr r0, [r1, #0x30] - str r0, [r6, #0x30] - movs r0, #0x24 - ldrsh r1, [r6, r0] - ldrb r2, [r6, #0x15] - adds r0, r6, #0 - bl sub_0806F62C - b _0808654A -_08086440: - adds r0, r6, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - bne _08086498 - ldrb r0, [r6, #0x15] - adds r0, #1 - strb r0, [r6, #0x15] - ldrb r0, [r6, #0x1d] - subs r0, #1 - strb r0, [r6, #0x1d] - adds r2, r6, #0 - adds r2, #0x7f - movs r0, #1 - strb r0, [r2] - ldr r0, _08086480 @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r0, #2 - ands r0, r1 - adds r3, r2, #0 - cmp r0, #0 - bne _08086484 - adds r0, r6, #0 - adds r0, #0x7c - ldrh r0, [r0] - adds r0, #0x10 - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - b _080864BC - .align 2, 0 -_08086480: .4byte gLinkEntity -_08086484: - adds r1, r6, #0 - adds r1, #0x7c - ldrh r0, [r1] - subs r0, #0x20 - adds r2, r6, #0 - adds r2, #0x76 - strh r0, [r2] - ldrh r0, [r1] - adds r0, #0x30 - b _080864B6 -_08086498: - ldrb r0, [r6, #0x15] - adds r0, #2 - strb r0, [r6, #0x15] - movs r0, #0xf0 - strb r0, [r6, #0x1d] - adds r3, r6, #0 - adds r3, #0x7f - strb r2, [r3] - adds r1, r6, #0 - adds r1, #0x7c - ldrh r0, [r1] - adds r2, r6, #0 - adds r2, #0x76 - strh r0, [r2] - ldrh r0, [r1] -_080864B6: - subs r1, #2 - strh r0, [r1] - adds r1, r2, #0 -_080864BC: - ldrb r2, [r6, #0x1d] - cmp r2, #0 - bne _080864CA - movs r0, #2 - strb r0, [r6, #0xc] - strb r2, [r3] - b _0808654A -_080864CA: - ldrb r0, [r6, #0x15] - adds r0, #0x40 - lsls r0, r0, #0x18 - cmp r0, #0 - blt _080864E0 - ldrh r2, [r1] - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - ble _080864EE - b _080864EA -_080864E0: - ldrh r2, [r1] - movs r3, #0 - ldrsh r0, [r1, r3] - cmp r0, #0 - bge _080864EE -_080864EA: - rsbs r0, r2, #0 - strh r0, [r1] -_080864EE: - ldr r5, _0808654C @ =gUnk_080C9160 - ldrb r0, [r6, #0x15] - lsls r0, r0, #1 - adds r0, r0, r5 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - bl sub_0806FA04 - adds r1, r6, #0 - adds r1, #0x80 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1] - adds r1, r1, r0 - str r1, [r6, #0x2c] - ldrb r0, [r6, #0x15] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r5 - movs r3, #0 - ldrsh r0, [r0, r3] - movs r1, #0x80 - lsls r1, r1, #5 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_0806FA04 - adds r1, r6, #0 - adds r1, #0x84 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1] - subs r1, r1, r0 - str r1, [r6, #0x30] -_0808654A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808654C: .4byte gUnk_080C9160 - - thumb_func_start sub_08086550 -sub_08086550: @ 0x08086550 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _08086566 - movs r0, #3 - strb r0, [r4, #0xc] - b _08086592 -_08086566: - adds r0, r4, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08086592 - movs r0, #0x63 - bl sub_0807CCB4 - movs r0, #0 - bl sub_0807CD10 - movs r5, #0 -_0808657E: - ldr r0, [r4, #0x54] - ldr r1, [r0, #0x50] - str r1, [r4, #0x54] - bl sub_0805E7BC - adds r5, #1 - cmp r5, #3 - bls _0808657E - bl sub_0805E780 -_08086592: - pop {r4, r5, pc} - - thumb_func_start sub_08086594 -sub_08086594: @ 0x08086594 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x80 - ldr r0, [r0] - ldr r1, [r7, #0x2c] - subs r0, r0, r1 - adds r1, r7, #0 - adds r1, #0x84 - ldr r1, [r1] - ldr r2, [r7, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r7, #0x15] - adds r0, r7, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - bne _08086608 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r7, #0x24] - ldrb r0, [r7, #0x1d] - subs r0, #1 - strb r0, [r7, #0x1d] - adds r2, r7, #0 - adds r2, #0x7f - movs r0, #1 - strb r0, [r2] - ldr r0, _080865EC @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080865F0 - adds r0, r7, #0 - adds r0, #0x7c - ldrh r0, [r0] - adds r0, #0x10 - adds r1, r7, #0 - adds r1, #0x76 - b _0808662A - .align 2, 0 -_080865EC: .4byte gLinkEntity -_080865F0: - adds r0, r7, #0 - adds r0, #0x7c - ldrh r1, [r0] - subs r1, #0x20 - adds r3, r7, #0 - adds r3, #0x76 - strh r1, [r3] - ldrh r0, [r0] - adds r0, #0x30 - adds r1, r7, #0 - adds r1, #0x7a - b _0808662A -_08086608: - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r7, #0x24] - movs r0, #0xf0 - strb r0, [r7, #0x1d] - adds r2, r7, #0 - adds r2, #0x7f - strb r1, [r2] - adds r1, r7, #0 - adds r1, #0x7c - ldrh r0, [r1] - adds r3, r7, #0 - adds r3, #0x76 - strh r0, [r3] - ldrh r0, [r1] - subs r1, #2 -_0808662A: - strh r0, [r1] - ldrb r1, [r7, #0x1d] - cmp r1, #0 - bne _0808663A - movs r0, #2 - strb r0, [r7, #0xc] - strb r1, [r2] - b _080866B8 -_0808663A: - movs r0, #0x24 - ldrsh r1, [r7, r0] - ldrb r2, [r7, #0x15] - adds r0, r7, #0 - bl sub_0806F62C - ldrb r0, [r7, #0x15] - movs r1, #0x80 - eors r0, r1 - strb r0, [r7, #0x15] - ldr r6, _080866BC @ =gUnk_080C9160 - ldrb r0, [r7, #0x15] - lsls r0, r0, #1 - adds r0, r0, r6 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r5, #0 - bl sub_0806FA04 - adds r1, r7, #0 - adds r1, #0x80 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r4, [r1] - adds r4, r4, r0 - ldrb r0, [r7, #0x15] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r6 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r1, #0x80 - lsls r1, r1, #5 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r5, #0 - bl sub_0806FA04 - adds r1, r7, #0 - adds r1, #0x84 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r2, [r1] - subs r2, r2, r0 - adds r0, r7, #0 - adds r1, r4, #0 - movs r3, #2 - bl sub_0806FCB8 - cmp r0, #0 - beq _080866B8 - movs r0, #1 - strb r0, [r7, #0xc] -_080866B8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080866BC: .4byte gUnk_080C9160 - - thumb_func_start sub_080866C0 -sub_080866C0: @ 0x080866C0 - push {lr} - ldr r2, _080866D4 @ =gUnk_081206B4 - ldrb r1, [r0, #0xb] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080866D4: .4byte gUnk_081206B4 - - thumb_func_start sub_080866D8 -sub_080866D8: @ 0x080866D8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldrb r1, [r6, #0xc] - cmp r1, #0 - bne _080866FE - movs r0, #1 - strb r0, [r6, #0xc] - str r1, [r6, #0x68] - ldrb r1, [r6, #0xe] - adds r0, r6, #0 - adds r0, #0x6c - strb r1, [r0] - adds r0, r6, #0 - movs r1, #6 - bl sub_0805E3A0 -_080866FE: - adds r0, r6, #0 - adds r0, #0x6c - ldrb r0, [r0] - bl sub_0804B128 - adds r5, r0, #0 - movs r0, #0 - mov r8, r0 - ldrh r0, [r5] - ldr r1, _080867C4 @ =0x0000FFFF - cmp r0, r1 - beq _080867BA - mov sb, r1 -_08086718: - movs r7, #1 - mov r1, r8 - lsls r7, r1 - ldr r0, [r6, #0x68] - ands r0, r7 - cmp r0, #0 - bne _080867A8 - ldrb r0, [r5, #5] - bl sub_080867CC - cmp r0, #0 - beq _080867A8 - ldrh r0, [r5] - ldrh r1, [r5, #2] - movs r2, #0x20 - movs r3, #0x20 - bl sub_080562CC - cmp r0, #0 - beq _080867A8 - ldrb r1, [r5, #7] - ldrb r2, [r5, #6] - movs r0, #0x19 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080867A8 - adds r0, #0x6c - mov r2, r8 - strb r2, [r0] - ldr r1, _080867C8 @ =gUnk_03000BF0 - ldrh r0, [r5] - ldrh r2, [r1, #6] - adds r0, r0, r2 - adds r0, #0x10 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #2] - ldrh r1, [r1, #8] - adds r0, r0, r1 - adds r0, #0x20 - strh r0, [r4, #0x32] - str r6, [r4, #0x50] - ldrh r1, [r5] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r5, #2] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - ldrb r1, [r5, #4] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r0, [r5, #5] - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_08016A04 - ldr r0, [r6, #0x68] - orrs r0, r7 - str r0, [r6, #0x68] - ldr r1, [r5, #8] - cmp r1, #0 - beq _080867A8 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_080867A8: - adds r5, #0xc - movs r0, #1 - add r8, r0 - ldrh r0, [r5] - cmp r0, sb - beq _080867BA - mov r1, r8 - cmp r1, #0x1f - bls _08086718 -_080867BA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080867C4: .4byte 0x0000FFFF -_080867C8: .4byte gUnk_03000BF0 - - thumb_func_start sub_080867CC -sub_080867CC: @ 0x080867CC - push {lr} - cmp r0, #0 - beq _080867DE - cmp r0, #2 - bne _080867DE - movs r0, #0x18 - bl GetProgressFlag - b _080867E0 -_080867DE: - movs r0, #1 -_080867E0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080867E4 -sub_080867E4: @ 0x080867E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x6a - ldrh r1, [r1] - movs r2, #0x20 - movs r3, #0x20 - bl sub_080562CC - cmp r0, #0 - bne _08086814 - ldr r2, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x6c - movs r1, #1 - ldrb r0, [r0] - lsls r1, r0 - ldr r0, [r2, #0x68] - bics r0, r1 - str r0, [r2, #0x68] - bl sub_0805E780 -_08086814: - adds r0, r4, #0 - bl sub_0808681C - pop {r4, pc} - - thumb_func_start sub_0808681C -sub_0808681C: @ 0x0808681C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #0 - beq _0808682C - cmp r4, #1 - beq _08086868 - b _0808688C -_0808682C: - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x18] - subs r0, #0xc - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - strb r4, [r5, #0x1e] - ldr r0, _08086864 @ =gUnk_081206AC - str r0, [r5, #0x48] - ldrb r1, [r5, #0xd] - cmp r1, #1 - bne _08086852 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r5, #0x1e] -_08086852: - ldrb r1, [r5, #0x10] - movs r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080868AA - strb r2, [r5, #0xc] - b _0808688C - .align 2, 0 -_08086864: .4byte gUnk_081206AC -_08086868: - adds r0, r5, #0 - bl sub_08086954 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808688C - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0x1e] - movs r0, #0x10 - movs r1, #0 - movs r2, #1 - bl sub_08078AC0 - ldr r0, _080868AC @ =0x00000111 - bl sub_080A3268 -_0808688C: - ldrb r1, [r5, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080868AA - adds r4, r5, #0 - adds r4, #0x84 - ldr r1, [r4] - adds r0, r5, #0 - bl sub_0807DF74 - ldr r1, [r4] - adds r0, r5, #0 - bl sub_080868EC -_080868AA: - pop {r4, r5, pc} - .align 2, 0 -_080868AC: .4byte 0x00000111 - - thumb_func_start sub_080868B0 -sub_080868B0: @ 0x080868B0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080868D2 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldr r0, _080868E8 @ =gUnk_081206AC - str r0, [r5, #0x48] - movs r0, #8 - strb r0, [r5, #0xe] -_080868D2: - adds r4, r5, #0 - adds r4, #0x84 - ldr r1, [r4] - adds r0, r5, #0 - bl sub_0807DF74 - ldr r1, [r4] - adds r0, r5, #0 - bl sub_080868EC - pop {r4, r5, pc} - .align 2, 0 -_080868E8: .4byte gUnk_081206AC - - thumb_func_start sub_080868EC -sub_080868EC: @ 0x080868EC - push {r4, r5, lr} - adds r3, r0, #0 - ldr r2, [r1, #8] - movs r0, #0 - str r0, [r1, #8] - cmp r2, #0 - beq _0808691E - movs r5, #0x80 - lsls r5, r5, #1 - movs r4, #0 - movs r1, #1 -_08086902: - mvns r0, r2 - adds r0, #1 - ands r0, r2 - eors r2, r0 - cmp r0, #0x80 - beq _08086914 - cmp r0, r5 - beq _08086918 - b _0808691A -_08086914: - strb r4, [r3, #0x1e] - b _0808691A -_08086918: - strb r1, [r3, #0x1e] -_0808691A: - cmp r2, #0 - bne _08086902 -_0808691E: - ldrb r0, [r3, #0x1e] - cmp r0, #0 - bne _0808692A - adds r0, r3, #0 - bl sub_0800445C -_0808692A: - pop {r4, r5, pc} - - thumb_func_start sub_0808692C -sub_0808692C: @ 0x0808692C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #0xfd - ands r0, r1 - strb r0, [r2, #0x10] - movs r0, #2 - strb r0, [r2, #0xb] - ldrb r0, [r2, #0x1e] - movs r1, #2 - cmp r0, #0 - bne _08086946 - movs r1, #1 -_08086946: - strb r1, [r2, #0xc] - movs r0, #0 - strb r0, [r2, #0xd] - movs r0, #8 - strb r0, [r2, #0xe] - pop {pc} - .align 2, 0 - - thumb_func_start sub_08086954 -sub_08086954: @ 0x08086954 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - cmp r0, #0 - beq _0808699C - adds r0, r4, #0 - movs r1, #6 - movs r2, #0x14 - bl sub_0806ED9C - cmp r0, #0 - blt _080869A0 - ldr r0, _08086994 @ =gLinkEntity - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _080869A0 - ldr r2, _08086998 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x90 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - bne _080869A0 - ldrb r0, [r2, #2] - cmp r0, #0 - bne _080869A0 - ldrb r0, [r4, #0xe] - subs r0, #1 - b _0808699E - .align 2, 0 -_08086994: .4byte gLinkEntity -_08086998: .4byte gUnk_03003F80 -_0808699C: - movs r0, #8 -_0808699E: - strb r0, [r4, #0xe] -_080869A0: - ldrb r0, [r4, #0xe] - pop {r4, pc} - - thumb_func_start sub_080869A4 -sub_080869A4: @ 0x080869A4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [r5, #0x14] - adds r0, r4, #0 - bl sub_08086954 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080869C2 - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #1 - str r0, [r5, #0x14] -_080869C2: - pop {r4, r5, pc} - - thumb_func_start sub_080869C4 -sub_080869C4: @ 0x080869C4 - push {lr} - ldr r2, _080869D8 @ =gUnk_081206C4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080869D8: .4byte gUnk_081206C4 - - thumb_func_start sub_080869DC -sub_080869DC: @ 0x080869DC - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, _08086A24 @ =gUnk_080FD1A8 - str r0, [r4, #0x48] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0xa] - movs r0, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08086A20 - movs r0, #0xa - strb r0, [r1, #0xe] - str r4, [r1, #0x50] - str r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - bl sub_08086A6C -_08086A20: - pop {r4, pc} - .align 2, 0 -_08086A24: .4byte gUnk_080FD1A8 - - thumb_func_start sub_08086A28 -sub_08086A28: @ 0x08086A28 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08086A3A - movs r0, #2 - strb r0, [r4, #0xc] - b _08086A5A -_08086A3A: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - bne _08086A4C - movs r0, #2 - strb r0, [r4, #0xc] -_08086A4C: - adds r0, r4, #0 - bl sub_080AEF88 - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 -_08086A5A: - pop {r4, pc} - - thumb_func_start sub_08086A5C -sub_08086A5C: @ 0x08086A5C - push {lr} - ldr r1, [r0, #0x54] - movs r0, #0 - str r0, [r1, #0x50] - bl sub_0805E780 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08086A6C -sub_08086A6C: @ 0x08086A6C - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0xa0 - lsls r1, r1, #0xa - str r1, [r4, #0x20] - lsrs r1, r0, #0x10 - movs r2, #0x1f - ands r1, r2 - strb r1, [r4, #0x15] - movs r2, #0xf0 - lsls r2, r2, #1 - adds r1, r2, #0 - ands r0, r1 - strh r0, [r4, #0x24] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086A90 -sub_08086A90: @ 0x08086A90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08086AA4 - ldrb r0, [r4, #0xa] - movs r1, #0xb - bl __modsi3 - strb r0, [r4, #0xb] -_08086AA4: - ldr r0, _08086AB8 @ =gUnk_081206D0 - ldrb r1, [r4, #0xb] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_08086AB8: .4byte gUnk_081206D0 - - thumb_func_start sub_08086ABC -sub_08086ABC: @ 0x08086ABC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08086AE4 @ =gUnk_081206FC - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r3, _08086AE8 @ =gLinkEntity - movs r1, #0x32 - ldrsh r0, [r3, r1] - ldr r2, _08086AEC @ =gUnk_03000BF0 - ldrh r1, [r2, #8] - subs r0, r0, r1 - cmp r0, #0xa7 - bgt _08086AF0 - str r4, [r2, #0x30] - b _08086AF2 - .align 2, 0 -_08086AE4: .4byte gUnk_081206FC -_08086AE8: .4byte gLinkEntity -_08086AEC: .4byte gUnk_03000BF0 -_08086AF0: - str r3, [r2, #0x30] -_08086AF2: - movs r0, #2 - strb r0, [r2, #0xe] - pop {r4, pc} - - thumb_func_start sub_08086AF8 -sub_08086AF8: @ 0x08086AF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - movs r0, #0 - strb r0, [r4, #0xe] - adds r4, #0x84 - movs r0, #0x91 - lsls r0, r0, #1 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086B10 -sub_08086B10: @ 0x08086B10 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _08086B9A - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #0 - beq _08086B2C - subs r0, #1 - strh r0, [r1] -_08086B2C: - ldrh r1, [r1] - cmp r1, #0x96 - beq _08086B62 - cmp r1, #0x96 - bgt _08086B40 - cmp r1, #0 - beq _08086B5C - cmp r1, #0x82 - beq _08086B62 - b _08086B9A -_08086B40: - cmp r1, #0xd2 - beq _08086B62 - cmp r1, #0xd2 - bgt _08086B4E - cmp r1, #0xaa - beq _08086B62 - b _08086B9A -_08086B4E: - ldr r0, _08086B58 @ =0x00000121 - cmp r1, r0 - beq _08086B62 - b _08086B9A - .align 2, 0 -_08086B58: .4byte 0x00000121 -_08086B5C: - movs r0, #2 - strb r0, [r4, #0xc] - b _08086B9A -_08086B62: - adds r0, r4, #0 - movs r1, #6 - movs r2, #0 - bl sub_080873AC - adds r5, r0, #0 - cmp r5, #0 - beq _08086B9A - ldr r3, _08086B9C @ =gUnk_08120714 - ldrb r1, [r4, #0xe] - lsls r0, r1, #1 - adds r0, r0, r3 - movs r6, #0 - ldrsh r2, [r0, r6] - lsls r2, r2, #0x10 - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r3 - movs r0, #0 - ldrsh r3, [r1, r0] - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative - ldrb r0, [r4, #0xe] - adds r0, #2 - strb r0, [r4, #0xe] -_08086B9A: - pop {r4, r5, r6, pc} - .align 2, 0 -_08086B9C: .4byte gUnk_08120714 - - thumb_func_start sub_08086BA0 -sub_08086BA0: @ 0x08086BA0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #7 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _08086BC2 - movs r3, #0x80 - lsls r3, r3, #0xc - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #3 - strb r0, [r4, #0xc] -_08086BC2: - pop {r4, pc} - - thumb_func_start sub_08086BC4 -sub_08086BC4: @ 0x08086BC4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08086C10 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08086C0C - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _08086C0C - adds r0, r4, #0 - bl sub_0806FA24 - movs r0, #6 - movs r1, #4 - bl sub_08050054 - ldr r0, _08086C14 @ =0x00000145 - bl sub_080A3268 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x40 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_08086C0C: - pop {r4, pc} - .align 2, 0 -_08086C10: .4byte gUnk_02034350 -_08086C14: .4byte 0x00000145 - - thumb_func_start sub_08086C18 -sub_08086C18: @ 0x08086C18 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _08086C2E - subs r0, #1 - strb r0, [r4, #0xe] - b _08086C52 -_08086C2E: - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _08086C52 - ldr r3, _08086C54 @ =0xFFEC0000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] -_08086C52: - pop {r4, r5, pc} - .align 2, 0 -_08086C54: .4byte 0xFFEC0000 - - thumb_func_start sub_08086C58 -sub_08086C58: @ 0x08086C58 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08086C68 - subs r0, #1 - strb r0, [r4, #0xe] - b _08086C90 -_08086C68: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08086C90 - adds r0, r4, #0 - movs r1, #9 - movs r2, #0 - bl sub_080873AC - adds r5, r0, #0 - cmp r5, #0 - beq _08086C90 - ldr r3, _08086C98 @ =0xFFB40000 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - str r4, [r5, #0x50] - movs r0, #1 - strb r0, [r4, #0xf] -_08086C90: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_08086C98: .4byte 0xFFB40000 - - thumb_func_start sub_08086C9C -sub_08086C9C: @ 0x08086C9C - push {lr} - ldr r2, _08086CB0 @ =gUnk_08120728 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086CB0: .4byte gUnk_08120728 - - thumb_func_start sub_08086CB4 -sub_08086CB4: @ 0x08086CB4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - ldr r1, _08086D10 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xf4 - lsls r0, r0, #4 - strh r0, [r2] - adds r1, #0x68 - ldr r0, _08086D14 @ =0x00000809 - strh r0, [r1] - movs r1, #0x80 - lsls r1, r1, #3 - strh r1, [r4, #0x24] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_08086D10: .4byte gUnk_03000F50 -_08086D14: .4byte 0x00000809 - - thumb_func_start sub_08086D18 -sub_08086D18: @ 0x08086D18 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x24] - subs r0, #0x20 - strh r0, [r3, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x80 - lsls r2, r2, #1 - cmp r0, r2 - bne _08086D58 - movs r0, #2 - strb r0, [r3, #0xc] - adds r0, r3, #0 - bl sub_0805EC60 - ldr r2, _08086D50 @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #0x20 - orrs r0, r1 - str r0, [r2, #0x68] - ldr r2, _08086D54 @ =gUnk_02033280 - ldr r0, [r2] - movs r1, #4 - orrs r0, r1 - str r0, [r2] - b _08086D64 - .align 2, 0 -_08086D50: .4byte gUnk_02034350 -_08086D54: .4byte gUnk_02033280 -_08086D58: - movs r0, #0x24 - ldrsh r1, [r3, r0] - adds r0, r3, #0 - movs r3, #0 - bl sub_0805EC9C -_08086D64: - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_116 -nullsub_116: @ 0x08086D68 - bx lr - .align 2, 0 - - thumb_func_start sub_08086D6C -sub_08086D6C: @ 0x08086D6C - push {lr} - ldr r2, _08086D80 @ =gUnk_08120734 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086D80: .4byte gUnk_08120734 - - thumb_func_start sub_08086D84 -sub_08086D84: @ 0x08086D84 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08086DAC -sub_08086DAC: @ 0x08086DAC - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_08086DB4 -sub_08086DB4: @ 0x08086DB4 - push {lr} - ldr r2, _08086DC8 @ =gUnk_0812073C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086DC8: .4byte gUnk_0812073C - - thumb_func_start sub_08086DCC -sub_08086DCC: @ 0x08086DCC - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #4 - movs r2, #0 - bl sub_080873AC - adds r4, r0, #0 - cmp r4, #0 - beq _08086E00 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r5, [r4, #0x50] - adds r0, r5, #0 - bl sub_08087380 - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - movs r0, #0 - strb r0, [r5, #0xf] -_08086E00: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08086E04 -sub_08086E04: @ 0x08086E04 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r0, [r4, #0x34] - ldr r1, _08086E2C @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r4, #0x34] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x14 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08086E34 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r0, _08086E30 @ =0x00000141 - bl sub_080A3268 - b _08086E62 - .align 2, 0 -_08086E2C: .4byte 0xFFFF8000 -_08086E30: .4byte 0x00000141 -_08086E34: - movs r0, #0xa - rsbs r0, r0, #0 - cmp r1, r0 - bne _08086E62 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08086E62 - adds r0, r4, #0 - movs r1, #5 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _08086E62 - movs r3, #0x80 - lsls r3, r3, #0xb - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #1 - strb r0, [r4, #0xf] -_08086E62: - pop {r4, pc} - - thumb_func_start sub_08086E64 -sub_08086E64: @ 0x08086E64 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080873D0 - ldr r0, _08086E88 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08086E84 - adds r0, r4, #0 - bl sub_0805E7BC -_08086E84: - pop {r4, pc} - .align 2, 0 -_08086E88: .4byte gUnk_02034350 - - thumb_func_start sub_08086E8C -sub_08086E8C: @ 0x08086E8C - push {lr} - ldr r2, _08086EA0 @ =gUnk_08120748 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086EA0: .4byte gUnk_08120748 - - thumb_func_start sub_08086EA4 -sub_08086EA4: @ 0x08086EA4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086ED0 -sub_08086ED0: @ 0x08086ED0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x14 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08086F0C - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_08086F0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086F10 -sub_08086F10: @ 0x08086F10 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08086F3C - ldr r2, _08086F38 @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x68] - movs r0, #3 - strb r0, [r3, #0xc] - adds r0, r3, #0 - bl sub_0805EC60 - b _08086F52 - .align 2, 0 -_08086F38: .4byte gUnk_02034350 -_08086F3C: - ldrh r2, [r3, #0x24] - subs r2, #0x18 - strh r2, [r3, #0x24] - movs r1, #0x80 - lsls r1, r1, #1 - lsls r2, r2, #0x10 - asrs r2, r2, #0x14 - adds r0, r3, #0 - movs r3, #0 - bl sub_0805EC9C -_08086F52: - pop {pc} - - thumb_func_start sub_08086F54 -sub_08086F54: @ 0x08086F54 - push {lr} - ldr r2, _08086F68 @ =gUnk_08120758 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086F68: .4byte gUnk_08120758 - - thumb_func_start sub_08086F6C -sub_08086F6C: @ 0x08086F6C - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0 - strh r0, [r4, #0x36] - adds r4, #0x29 - ldrb r1, [r4] - subs r0, #8 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r4] - movs r0, #0xa0 - lsls r0, r0, #1 - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086FA0 -sub_08086FA0: @ 0x08086FA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08086FBC - adds r0, r4, #0 - bl sub_0805E7BC -_08086FBC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08086FC0 -sub_08086FC0: @ 0x08086FC0 - push {lr} - ldr r2, _08086FD4 @ =gUnk_08120760 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08086FD4: .4byte gUnk_08120760 - - thumb_func_start sub_08086FD8 -sub_08086FD8: @ 0x08086FD8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08087000 -sub_08087000: @ 0x08087000 - push {lr} - adds r2, r0, #0 - ldr r0, _08087018 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0808701C - adds r0, r2, #0 - bl sub_0805E7BC - b _08087022 - .align 2, 0 -_08087018: .4byte gUnk_02034350 -_0808701C: - adds r0, r2, #0 - bl sub_08004274 -_08087022: - pop {pc} - - thumb_func_start sub_08087024 -sub_08087024: @ 0x08087024 - push {lr} - ldr r2, _08087038 @ =gUnk_08120768 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08087038: .4byte gUnk_08120768 - - thumb_func_start sub_0808703C -sub_0808703C: @ 0x0808703C - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - movs r0, #0x78 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x7c - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r4] - movs r0, #0xf9 - bl sub_080A3268 - pop {r4, pc} - - thumb_func_start sub_0808706C -sub_0808706C: @ 0x0808706C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08087080 - subs r0, #1 - strb r0, [r4, #0xe] - b _080870AA -_08087080: - adds r0, r4, #0 - movs r1, #3 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _080870AA - ldr r3, _080870AC @ =0xFFF80000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - ldr r2, _080870B0 @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #0x68] - adds r0, r4, #0 - bl sub_0805E7BC -_080870AA: - pop {r4, pc} - .align 2, 0 -_080870AC: .4byte 0xFFF80000 -_080870B0: .4byte gUnk_02034350 - - thumb_func_start sub_080870B4 -sub_080870B4: @ 0x080870B4 - push {lr} - ldr r2, _080870C8 @ =gUnk_08120770 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080870C8: .4byte gUnk_08120770 - - thumb_func_start sub_080870CC -sub_080870CC: @ 0x080870CC - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_080870F4 -sub_080870F4: @ 0x080870F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087110 - adds r0, r4, #0 - bl sub_0805E7BC -_08087110: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08087114 -sub_08087114: @ 0x08087114 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08087134 - ldr r0, _08087130 @ =gUnk_08120778 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0808714A - .align 2, 0 -_08087130: .4byte gUnk_08120778 -_08087134: - ldr r0, _0808714C @ =gUnk_08120788 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08004274 -_0808714A: - pop {r4, pc} - .align 2, 0 -_0808714C: .4byte gUnk_08120788 - - thumb_func_start sub_08087150 -sub_08087150: @ 0x08087150 - push {r4, lr} - adds r4, r0, #0 - bl sub_08087380 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - strb r1, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x80 - strh r0, [r4, #0x24] - movs r0, #0x10 - strb r0, [r4, #0x15] - ldr r0, _080871A0 @ =gUnk_0812079C - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - lsls r0, r0, #4 - orrs r0, r1 - strb r0, [r4, #0x1a] - pop {r4, pc} - .align 2, 0 -_080871A0: .4byte gUnk_0812079C - - thumb_func_start nullsub_516 -nullsub_516: @ 0x080871A4 - bx lr - .align 2, 0 - - thumb_func_start sub_080871A8 -sub_080871A8: @ 0x080871A8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080871CA - movs r0, #3 - strb r0, [r1, #0xc] - movs r0, #0x3c - strb r0, [r1, #0xe] - ldr r2, _080871CC @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #4 - orrs r0, r1 - str r0, [r2, #0x68] -_080871CA: - pop {pc} - .align 2, 0 -_080871CC: .4byte gUnk_02034350 - - thumb_func_start sub_080871D0 -sub_080871D0: @ 0x080871D0 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080871F0 - ldr r0, _080871F4 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #8 - orrs r1, r2 - str r1, [r0, #0x68] - adds r0, r3, #0 - bl sub_0805E7BC -_080871F0: - pop {pc} - .align 2, 0 -_080871F4: .4byte gUnk_02034350 - - thumb_func_start sub_080871F8 -sub_080871F8: @ 0x080871F8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x54] - movs r0, #0x2e - ldrsh r1, [r3, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0808721E - movs r5, #0x32 - ldrsh r0, [r3, r5] - subs r0, #0x20 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0808721E - movs r0, #2 - strb r0, [r4, #0xc] - b _0808723C -_0808721E: - movs r5, #0x2e - ldrsh r0, [r4, r5] - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r5, #0x2e - ldrsh r2, [r3, r5] - movs r5, #0x32 - ldrsh r3, [r3, r5] - subs r3, #0x20 - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C -_0808723C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08087240 -sub_08087240: @ 0x08087240 - push {lr} - adds r2, r0, #0 - ldr r0, _08087260 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _0808725C - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x14 - strb r0, [r2, #0xe] - movs r0, #0x10 - strb r0, [r2, #0x15] -_0808725C: - pop {pc} - .align 2, 0 -_08087260: .4byte gUnk_02034350 - - thumb_func_start sub_08087264 -sub_08087264: @ 0x08087264 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - beq _08087278 - subs r0, #1 - strb r0, [r1, #0xe] - adds r0, r1, #0 - bl sub_0806F69C -_08087278: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808727C -sub_0808727C: @ 0x0808727C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08087292 - adds r0, r1, #0 - bl sub_0805E7BC -_08087292: - pop {pc} - - thumb_func_start sub_08087294 -sub_08087294: @ 0x08087294 - push {lr} - ldr r2, _080872A8 @ =gUnk_081207A4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080872A8: .4byte gUnk_081207A4 - - thumb_func_start sub_080872AC -sub_080872AC: @ 0x080872AC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x1b] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r2, r0 - strb r2, [r4, #0x19] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x20 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08087380 - pop {r4, pc} - - thumb_func_start sub_080872F8 -sub_080872F8: @ 0x080872F8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x68 - ldrh r0, [r2] - ldrh r1, [r4, #0x2e] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc - bhi _0808732A - adds r0, r4, #0 - adds r0, #0x6a - ldrh r0, [r0] - ldrh r1, [r4, #0x32] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc - bls _0808735C -_0808732A: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r3, #0x32 - ldrsh r1, [r4, r3] - movs r5, #0 - ldrsh r2, [r2, r5] - adds r3, r4, #0 - adds r3, #0x6a - movs r5, #0 - ldrsh r3, [r3, r5] - bl sub_080045D4 - strb r0, [r4, #0x15] - bl sub_08000E50 - ldr r2, _08087378 @ =gUnk_081207AC - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_0808735C: - ldr r1, _0808737C @ =gUnk_080C9160 - ldrb r0, [r4, #0xe] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - asrs r0, r0, #6 - subs r0, #8 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - pop {r4, r5, pc} - .align 2, 0 -_08087378: .4byte gUnk_081207AC -_0808737C: .4byte gUnk_080C9160 - - thumb_func_start sub_08087380 -sub_08087380: @ 0x08087380 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - movs r1, #0xb - bl __modsi3 - strb r0, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - pop {r4, pc} - - thumb_func_start sub_080873AC -sub_080873AC: @ 0x080873AC - push {r4, r5, r6, lr} - adds r5, r1, #0 - adds r6, r2, #0 - ldrb r0, [r0, #0xa] - movs r4, #0xb - movs r1, #0xb - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - muls r1, r4, r1 - adds r1, r1, r5 - movs r0, #0x1b - adds r2, r6, #0 - bl CreateObject - pop {r4, r5, r6, pc} - - thumb_func_start sub_080873D0 -sub_080873D0: @ 0x080873D0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080873DE - subs r0, #1 - b _080873F6 -_080873DE: - adds r0, r4, #0 - movs r1, #8 - movs r2, #0 - bl sub_080873AC - adds r1, r0, #0 - cmp r1, #0 - beq _080873F8 - adds r0, r4, #0 - bl sub_0806FA24 - movs r0, #0x30 -_080873F6: - strb r0, [r4, #0xe] -_080873F8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080873FC -sub_080873FC: @ 0x080873FC - push {lr} - movs r0, #0xf7 - bl sub_080A3268 - ldr r1, _0808740C @ =gUnk_03000BF0 - movs r0, #0 - str r0, [r1, #0x30] - b _08087414 - .align 2, 0 -_0808740C: .4byte gUnk_03000BF0 -_08087410: - bl sub_0805E7BC -_08087414: - movs r0, #6 - movs r1, #0x1b - movs r2, #6 - bl sub_0805EB00 - cmp r0, #0 - bne _08087410 - pop {pc} - - thumb_func_start sub_08087424 -sub_08087424: @ 0x08087424 - push {r4, r5, lr} - adds r5, r1, #0 - bl sub_080791D0 - movs r0, #0x64 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0808744E - ldr r0, _0808745C @ =gLinkEntity - str r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0808744E: - ldr r1, [r5, #4] - cmp r1, #0 - beq _08087460 - cmp r1, #1 - beq _0808746C - b _08087474 - .align 2, 0 -_0808745C: .4byte gLinkEntity -_08087460: - ldr r0, _08087468 @ =gUnk_02002A40 - adds r0, #0xad - b _08087472 - .align 2, 0 -_08087468: .4byte gUnk_02002A40 -_0808746C: - ldr r0, _08087478 @ =gUnk_02002A40 - adds r0, #0xac - movs r1, #0 -_08087472: - strb r1, [r0] -_08087474: - pop {r4, r5, pc} - .align 2, 0 -_08087478: .4byte gUnk_02002A40 - - thumb_func_start sub_0808747C -sub_0808747C: @ 0x0808747C - push {r4, lr} - sub sp, #4 - adds r4, r1, #0 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0xf - movs r2, #6 - movs r3, #0xb - bl sub_0805EB2C - cmp r0, #0 - beq _08087498 - movs r0, #1 -_08087498: - str r0, [r4, #0x14] - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080874A0 -sub_080874A0: @ 0x080874A0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080874AE - movs r0, #1 - strb r0, [r4, #0xc] -_080874AE: - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r4, #0 - adds r1, #0x82 - movs r2, #0 - ldrsh r1, [r1, r2] - movs r2, #0x10 - movs r3, #0x10 - bl sub_0800290E - cmp r0, #0 - bne _080874DC - ldr r2, [r4, #0x50] - movs r1, #1 - ldrb r4, [r4, #0xb] - lsls r1, r4 - ldr r0, [r2, #0x20] - bics r0, r1 - str r0, [r2, #0x20] - bl sub_0805E780 -_080874DC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080874E0 -sub_080874E0: @ 0x080874E0 - push {lr} - ldr r2, _080874F4 @ =gUnk_081208A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080874F4: .4byte gUnk_081208A0 - - thumb_func_start sub_080874F8 -sub_080874F8: @ 0x080874F8 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start nullsub_117 -nullsub_117: @ 0x08087500 - bx lr - .align 2, 0 - - thumb_func_start sub_08087504 -sub_08087504: @ 0x08087504 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805E3B0 - cmp r0, #0 - bne _08087520 - ldr r0, _08087524 @ =gUnk_081208B8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08087520: - pop {r4, pc} - .align 2, 0 -_08087524: .4byte gUnk_081208B8 - - thumb_func_start sub_08087528 -sub_08087528: @ 0x08087528 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _08087590 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r4, #0x1b] - lsrs r0, r1, #6 - subs r0, #1 - lsls r0, r0, #6 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x1b] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087594 - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r0, [r4, #0x14] - cmp r0, #1 - bne _08087588 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_08087588: - adds r0, r4, #0 - bl sub_08087640 - b _080875DC - .align 2, 0 -_08087590: .4byte gLinkEntity -_08087594: - ldr r0, _080875B4 @ =gUnk_02033A90 - ldrb r0, [r0, #1] - movs r1, #4 - cmp r0, #0x10 - bne _080875A2 - movs r1, #0xb5 - lsls r1, r1, #1 -_080875A2: - adds r0, r4, #0 - bl sub_0801D2B4 - ldrb r0, [r4, #0x14] - cmp r0, #1 - beq _080875B8 - cmp r0, #3 - bne _080875CE - b _080875C0 - .align 2, 0 -_080875B4: .4byte gUnk_02033A90 -_080875B8: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_080875C0: - ldrb r0, [r4, #0xa] - cmp r0, #0x40 - bne _080875DC - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r4, #0x32] - b _080875DC -_080875CE: - ldrb r0, [r4, #0xa] - cmp r0, #0x40 - bne _080875DC - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_080875DC: - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r1, [r4, #0xb] - lsls r1, r1, #2 - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_080875F4 -sub_080875F4: @ 0x080875F4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808760E - bl sub_0805E780 -_0808760E: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087638 - ldr r0, _0808763C @ =gLinkEntity - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - ldrb r0, [r5] - subs r0, #1 - subs r1, r1, r0 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08087638: - pop {r4, r5, pc} - .align 2, 0 -_0808763C: .4byte gLinkEntity - - thumb_func_start sub_08087640 -sub_08087640: @ 0x08087640 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r1, #0x32 - ldrsh r6, [r4, r1] - ldrb r1, [r4, #0x14] - lsls r1, r1, #1 - ldr r0, _08087684 @ =gUnk_081208C0 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r0, _08087688 @ =gUnk_03000BF0 - ldrh r1, [r0, #4] - ldr r0, _0808768C @ =0x00000403 - movs r2, #0x16 - cmp r1, r0 - bne _08087676 - movs r2, #0x17 -_08087676: - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805457C - strh r5, [r4, #0x2e] - strh r6, [r4, #0x32] - pop {r4, r5, r6, pc} - .align 2, 0 -_08087684: .4byte gUnk_081208C0 -_08087688: .4byte gUnk_03000BF0 -_0808768C: .4byte 0x00000403 - - thumb_func_start sub_08087690 -sub_08087690: @ 0x08087690 - push {lr} - ldr r2, _080876A4 @ =gUnk_08120A0C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080876A4: .4byte gUnk_08120A0C - - thumb_func_start sub_080876A8 -sub_080876A8: @ 0x080876A8 - push {lr} - mov ip, r0 - movs r0, #1 - mov r1, ip - strb r0, [r1, #0xc] - movs r0, #0xb0 - lsls r0, r0, #0xa - str r0, [r1, #0x20] - ldrb r2, [r1, #0x14] - lsls r0, r2, #2 - movs r1, #0x10 - eors r0, r1 - mov r3, ip - strb r0, [r3, #0x15] - lsls r2, r2, #0x18 - cmp r2, #0 - bne _080876E2 - adds r3, #0x29 - ldrb r2, [r3] - lsls r1, r2, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - movs r0, #7 - ands r1, r0 - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080876E2: - ldr r1, _08087760 @ =gUnk_08120A20 - mov r2, ip - ldrb r0, [r2, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrb r0, [r2, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldr r3, _08087764 @ =gUnk_08120A18 - ldrb r0, [r2, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #3] - mov r0, ip - adds r0, #0x60 - strh r1, [r0] - ldrb r0, [r2, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xf - ands r1, r0 - ldrb r2, [r2, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r2, ip - strb r0, [r2, #0x1a] - ldrb r0, [r2, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #2] - str r0, [r2, #0x6c] - ldr r0, _08087768 @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - mov r0, ip - adds r0, #0x38 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #0x24] - ldrb r0, [r2, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - mov r0, ip - bl sub_08004260 - pop {pc} - .align 2, 0 -_08087760: .4byte gUnk_08120A20 -_08087764: .4byte gUnk_08120A18 -_08087768: .4byte gLinkEntity - - thumb_func_start sub_0808776C -sub_0808776C: @ 0x0808776C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x6c] - cmp r0, #0 - beq _08087788 - subs r0, #1 - str r0, [r4, #0x6c] - ldr r0, _08087784 @ =gUnk_03003F80 - adds r0, #0x3d - ldrb r0, [r0] - b _08087798 - .align 2, 0 -_08087784: .4byte gUnk_03003F80 -_08087788: - adds r0, r4, #0 - bl sub_080AEFE0 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 -_08087798: - cmp r0, #0 - bne _080877A0 - movs r0, #2 - strb r0, [r4, #0xc] -_080877A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080877A4 -sub_080877A4: @ 0x080877A4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080002D0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, r0, #0 - cmp r0, #0x25 - beq _080877D0 - cmp r0, #0x25 - bgt _080877C4 - cmp r0, #0x21 - beq _080877CA - cmp r0, #0x24 - beq _080877D6 - b _080877E2 -_080877C4: - cmp r1, #0x30 - beq _080877D6 - b _080877E2 -_080877CA: - adds r0, r4, #0 - movs r1, #0 - b _080877DA -_080877D0: - adds r0, r4, #0 - movs r1, #0xc - b _080877DA -_080877D6: - adds r0, r4, #0 - movs r1, #0xb -_080877DA: - movs r2, #0 - bl CreateFX - b _08087804 -_080877E2: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087804 - cmp r0, #0xf - bne _080877F8 - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - movs r2, #0x80 - bl CreateFX - b _08087804 -_080877F8: - ldrb r1, [r4, #0xb] - ldrb r2, [r4, #0xe] - adds r0, r4, #0 - movs r3, #0 - bl sub_080A2988 -_08087804: - bl sub_0805E780 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808780C -sub_0808780C: @ 0x0808780C - push {lr} - ldr r2, _08087820 @ =gUnk_08120A28 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08087820: .4byte gUnk_08120A28 - - thumb_func_start sub_08087824 -sub_08087824: @ 0x08087824 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08087836 - adds r0, r4, #0 - bl sub_08016A30 -_08087836: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #0x13 - strb r0, [r1] - adds r1, #9 - movs r0, #0xff - strb r0, [r1] - subs r1, #6 - movs r0, #0xa9 - strb r0, [r1] - adds r1, #1 - movs r0, #0x16 - strb r0, [r1] - ldr r0, _08087884 @ =gUnk_08120A54 - ldr r0, [r0] - str r0, [r4, #0x48] - subs r1, #5 - movs r0, #0x8b - strb r0, [r1] - adds r0, r4, #0 - bl sub_080878CC - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0801766C - movs r0, #0xfd - bl sub_08004488 - pop {r4, pc} - .align 2, 0 -_08087884: .4byte gUnk_08120A54 - - thumb_func_start sub_08087888 -sub_08087888: @ 0x08087888 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080878A4 - bl sub_0805E780 - b _080878C8 -_080878A4: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _080878C0 - ldr r0, _080878BC @ =gUnk_08120A54 - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r4, #0x48] - b _080878C8 - .align 2, 0 -_080878BC: .4byte gUnk_08120A54 -_080878C0: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_080878C8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080878CC -sub_080878CC: @ 0x080878CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - adds r7, r0, #0 - movs r1, #0x2e - ldrsh r0, [r7, r1] - str r0, [sp] - movs r0, #0x32 - ldrsh r2, [r7, r0] - str r2, [sp, #4] - adds r0, r7, #0 - adds r0, #0x38 - ldrb r0, [r0] - mov r8, r0 - movs r0, #0x10 - rsbs r0, r0, #0 - mov r1, r8 - lsls r1, r1, #0x18 - str r1, [sp, #8] -_080878F8: - movs r2, #0x10 - rsbs r2, r2, #0 - mov sb, r2 - ldr r1, [sp] - adds r1, r1, r0 - mov sl, r1 - adds r0, #0x10 - str r0, [sp, #0xc] - mov r6, sl -_0808790A: - ldr r2, _0808795C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r0, r6, r0 - lsrs r4, r0, #4 - movs r0, #0x3f - ands r4, r0 - ldr r5, [sp, #4] - add r5, sb - ldrh r0, [r2, #8] - subs r0, r5, r0 - lsrs r0, r0, #4 - movs r1, #0x3f - ands r0, r1 - lsls r0, r0, #6 - orrs r4, r0 - adds r0, r4, #0 - ldr r2, [sp, #8] - lsrs r1, r2, #0x18 - bl sub_080002C8 - cmp r0, #0x2e - bne _08087970 - adds r0, r4, #0 - mov r1, r8 - bl sub_080002B0 - adds r1, r0, #0 - movs r0, #0xda - lsls r0, r0, #2 - cmp r1, r0 - bhi _08087960 - subs r0, #1 - cmp r1, r0 - blo _08087960 - adds r0, r7, #0 - movs r1, #3 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08008796 - b _0808797C - .align 2, 0 -_0808795C: .4byte gUnk_03000BF0 -_08087960: - ldr r0, _0808796C @ =0x00004022 - adds r1, r4, #0 - mov r2, r8 - bl sub_0800015E - b _0808797C - .align 2, 0 -_0808796C: .4byte 0x00004022 -_08087970: - adds r0, r7, #0 - movs r1, #3 - mov r2, sl - adds r3, r5, #0 - bl sub_08008796 -_0808797C: - movs r0, #0x10 - add sb, r0 - mov r1, sb - cmp r1, #0x10 - ble _0808790A - ldr r0, [sp, #0xc] - cmp r0, #0x10 - ble _080878F8 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08087998 -sub_08087998: @ 0x08087998 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080879C0 @ =gUnk_08120A68 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080879C4 - subs r0, #1 - strb r0, [r4, #0xe] - b _080879EA - .align 2, 0 -_080879C0: .4byte gUnk_08120A68 -_080879C4: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xa - bne _080879D8 - adds r0, r4, #0 - movs r1, #0xd - bl sub_08004260 - b _080879EA -_080879D8: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080879EA - bl sub_0805E780 -_080879EA: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08087A0C - adds r0, r4, #0 - bl sub_0806F69C - ldrh r1, [r4, #0x24] - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0x10 - ble _08087A08 - adds r0, r1, #0 - subs r0, #0x10 - b _08087A0A -_08087A08: - movs r0, #0 -_08087A0A: - strh r0, [r4, #0x24] -_08087A0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08087A10 -sub_08087A10: @ 0x08087A10 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08087A26 - adds r0, r4, #0 - movs r1, #3 - bl sub_0801D2B4 -_08087A26: - ldrb r0, [r4, #0xa] - cmp r0, #2 - bls _08087A3C - ldr r0, _08087A4C @ =gUnk_08120A78 - ldrb r1, [r4, #0xa] - subs r1, #3 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_0801D2B4 -_08087A3C: - ldrb r0, [r4, #0xa] - cmp r0, #4 - bhi _08087AF0 - lsls r0, r0, #2 - ldr r1, _08087A50 @ =_08087A54 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08087A4C: .4byte gUnk_08120A78 -_08087A50: .4byte _08087A54 -_08087A54: @ jump table - .4byte _08087A76 @ case 0 - .4byte _08087AF0 @ case 1 - .4byte _08087AA0 @ case 2 - .4byte _08087A76 @ case 3 - .4byte _08087A68 @ case 4 -_08087A68: - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 -_08087A76: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - movs r2, #0 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #1 - strb r0, [r1] - subs r1, #9 - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0xaa - strb r0, [r1] - subs r1, #4 - movs r0, #0xe - strb r0, [r1] - ldr r0, _08087AE4 @ =gUnk_08120A8C - str r0, [r4, #0x48] - strb r2, [r4, #0x1c] -_08087AA0: - bl sub_08000E50 - ldr r2, _08087AE8 @ =gUnk_08120A7A - movs r3, #3 - adds r1, r0, #0 - ands r1, r3 - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r4, #0xe] - lsrs r2, r0, #8 - ands r2, r3 - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _08087AC0 - rsbs r2, r2, #0 -_08087AC0: - ldrh r0, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r4, #0x32] - ldr r0, _08087AEC @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - b _08087AF8 - .align 2, 0 -_08087AE4: .4byte gUnk_08120A8C -_08087AE8: .4byte gUnk_08120A7A -_08087AEC: .4byte gLinkEntity -_08087AF0: - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08004260 -_08087AF8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08087AFC -sub_08087AFC: @ 0x08087AFC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087B56 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x16 - beq _08087B3C - cmp r0, #0x16 - bgt _08087B1E - cmp r0, #0x13 - beq _08087B4E - b _08087B56 -_08087B1E: - cmp r0, #0x1c - bgt _08087B56 - cmp r0, #0x1b - blt _08087B56 - ldr r1, [r4, #0x4c] - adds r0, r1, #0 - adds r0, #0x84 - ldr r0, [r0] - adds r1, #0x80 - ldr r1, [r1] - ldr r2, [r4, #0x2c] - ldr r3, [r4, #0x30] - bl sub_080045D4 - b _08087B44 -_08087B3C: - ldr r0, [r4, #0x4c] - adds r1, r4, #0 - bl sub_080045C4 -_08087B44: - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _08087B56 -_08087B4E: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08087B56: - pop {r4, pc} - - thumb_func_start sub_08087B58 -sub_08087B58: @ 0x08087B58 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087B80 - ldr r0, _08087B7C @ =gUnk_08120A80 - ldrb r1, [r2, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08087B84 - .align 2, 0 -_08087B7C: .4byte gUnk_08120A80 -_08087B80: - movs r0, #1 - strb r0, [r2, #0xc] -_08087B84: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08087B88 -sub_08087B88: @ 0x08087B88 - adds r2, r0, #0 - adds r2, #0x46 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r2] - movs r1, #1 - strb r1, [r0, #0xd] - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_08087B9C -sub_08087B9C: @ 0x08087B9C - push {lr} - bl sub_0806F3E4 - cmp r0, #0 - beq _08087BAA - bl sub_0805E780 -_08087BAA: - pop {pc} - - thumb_func_start sub_08087BAC -sub_08087BAC: @ 0x08087BAC - push {lr} - ldr r2, _08087BC0 @ =gUnk_08120A94 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08087BC0: .4byte gUnk_08120A94 - - thumb_func_start sub_08087BC4 -sub_08087BC4: @ 0x08087BC4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - adds r0, #1 - movs r5, #0 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _08087C04 - cmp r0, #1 - bgt _08087BE0 - cmp r0, #0 - beq _08087BEA - b _08087CA6 -_08087BE0: - cmp r0, #2 - beq _08087C64 - cmp r0, #3 - beq _08087C7C - b _08087CA6 -_08087BEA: - movs r0, #0x5e - bl sub_0807CBD0 - cmp r0, #0 - beq _08087C16 - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080787B4 - b _08087C1C -_08087C04: - movs r0, #0x22 - movs r1, #3 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _08087C16 - str r4, [r0, #0x50] - str r0, [r4, #0x54] -_08087C16: - adds r0, r4, #0 - adds r0, #0x7a - strb r5, [r0] -_08087C1C: - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08087C60 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - adds r0, r4, #0 - bl sub_08087F58 - b _08087CA6 - .align 2, 0 -_08087C60: .4byte gUnk_03000BF0 -_08087C64: - adds r0, r4, #0 - adds r0, #0x7a - strb r5, [r0] - adds r0, r4, #0 - movs r1, #7 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _08087CA6 -_08087C7C: - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7a - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #5 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0808804C - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 -_08087CA6: - pop {r4, r5, pc} - - thumb_func_start sub_08087CA8 -sub_08087CA8: @ 0x08087CA8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #1 - beq _08087CCA - cmp r0, #1 - bgt _08087D02 - cmp r0, #0 - bne _08087D02 - movs r0, #1 - strb r0, [r5] - adds r0, r4, #0 - bl sub_080787B4 - b _08087D1A -_08087CCA: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08087D1A - movs r0, #0 - strb r0, [r1] - bl sub_080791D0 - movs r0, #0x5e - bl sub_0807CBD0 - cmp r0, #0 - beq _08087CFA - movs r0, #2 - strb r0, [r5] - bl sub_0807CD10 - movs r0, #7 - movs r1, #0xff - bl sub_080A7138 - b _08087D1A -_08087CFA: - movs r0, #5 - bl sub_0807CD10 - b _08087D1A -_08087D02: - movs r0, #2 - bl sub_0807CC3C - cmp r0, #0 - bne _08087D1A - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080787B4 -_08087D1A: - pop {r4, r5, pc} - - thumb_func_start sub_08087D1C -sub_08087D1C: @ 0x08087D1C - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x7a - ldrb r0, [r4] - cmp r0, #1 - beq _08087D60 - cmp r0, #1 - bgt _08087D34 - cmp r0, #0 - beq _08087D3A - b _08087DB0 -_08087D34: - cmp r0, #2 - beq _08087D5A - b _08087DB0 -_08087D3A: - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _08087DB0 - movs r0, #0x5e - bl sub_0807CBD0 - cmp r0, #0 - beq _08087D54 - movs r0, #1 - strb r0, [r4] - b _08087DB0 -_08087D54: - movs r0, #2 - strb r0, [r4] - b _08087DB0 -_08087D5A: - movs r0, #0x5e - bl sub_0807CCB4 -_08087D60: - adds r1, r5, #0 - adds r1, #0x7a - movs r0, #0 - strb r0, [r1] - ldr r0, [r5, #0x54] - bl sub_08088328 - movs r0, #0 - bl sub_0807CD8C - movs r0, #0x22 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08087DAA - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x7d - ldrb r0, [r0] - strb r0, [r4, #0xf] - ldr r1, _08087DB4 @ =gUnk_080FC3E4 - ldrb r0, [r4, #0xf] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #7] - strb r0, [r4, #0xb] - movs r2, #0x80 - lsls r2, r2, #0xc - movs r3, #0xe0 - lsls r3, r3, #0xb - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_08087DAA: - ldr r0, _08087DB8 @ =0x00000111 - bl sub_08004488 -_08087DB0: - pop {r4, r5, pc} - .align 2, 0 -_08087DB4: .4byte gUnk_080FC3E4 -_08087DB8: .4byte 0x00000111 - - thumb_func_start sub_08087DBC -sub_08087DBC: @ 0x08087DBC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x7a - ldrb r0, [r2] - cmp r0, #1 - beq _08087E10 - cmp r0, #1 - bgt _08087E3C - cmp r0, #0 - bne _08087E3C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087E5A - movs r0, #1 - strb r0, [r2] - movs r0, #0x28 - strb r0, [r4, #0xe] - ldr r1, _08087E0C @ =gUnk_08120AA8 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - movs r0, #0x88 - lsls r0, r0, #1 - bl sub_080A3268 - b _08087E5A - .align 2, 0 -_08087E0C: .4byte gUnk_08120AA8 -_08087E10: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08087E5A - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08087E5A - movs r0, #2 - strb r0, [r2] - bl sub_0807CD10 - ldrb r1, [r4, #0xf] - movs r0, #7 - bl sub_080A7138 - b _08087E5A -_08087E3C: - movs r0, #2 - bl sub_0807CC3C - cmp r0, #0 - bne _08087E5A - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #4 - bl sub_0807CD8C - bl sub_0805E780 -_08087E5A: - pop {r4, pc} - - thumb_func_start sub_08087E5C -sub_08087E5C: @ 0x08087E5C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r1, [r5] - cmp r1, #1 - beq _08087EAC - cmp r1, #1 - bgt _08087E74 - cmp r1, #0 - beq _08087E7A - b _08087F4E -_08087E74: - cmp r1, #2 - beq _08087F24 - b _08087F4E -_08087E7A: - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #4 - bne _08087EA4 - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - beq _08087F4E - movs r0, #1 - strb r0, [r5] - adds r1, r4, #0 - adds r1, #0x81 - strb r0, [r1] - bl sub_0807CD8C - adds r0, r4, #0 - bl sub_0808826C - b _08087F1C -_08087EA4: - adds r0, r4, #0 - bl sub_080880D8 - b _08087F4E -_08087EAC: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08087EB6 - subs r0, #1 - strb r0, [r4, #0xe] -_08087EB6: - ldr r6, _08087ED4 @ =gUnk_03000FF0 - ldrh r0, [r6, #2] - ands r1, r0 - cmp r1, #0 - beq _08087ED8 - movs r0, #0x6a - bl sub_080A3268 - movs r0, #2 - strb r0, [r5] - movs r0, #0x3c - strb r0, [r4, #0xe] - bl sub_08050384 - b _08087F4E - .align 2, 0 -_08087ED4: .4byte gUnk_03000FF0 -_08087ED8: - adds r2, r4, #0 - adds r2, #0x81 - ldrb r7, [r2] - ldrh r1, [r6] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - movs r3, #1 - adds r5, r2, #0 - cmp r0, #0 - beq _08087EF0 - movs r3, #0xa -_08087EF0: - ldrh r1, [r6, #4] - ldr r0, _08087F00 @ =0xFFFFFEFF - ands r1, r0 - cmp r1, #0x40 - beq _08087F04 - cmp r1, #0x80 - beq _08087F0E - b _08087F16 - .align 2, 0 -_08087F00: .4byte 0xFFFFFEFF -_08087F04: - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_08087F94 - b _08087F16 -_08087F0E: - rsbs r1, r3, #0 - adds r0, r4, #0 - bl sub_08087F94 -_08087F16: - ldrb r5, [r5] - cmp r7, r5 - beq _08087F4E -_08087F1C: - adds r0, r4, #0 - bl sub_080882A8 - b _08087F4E -_08087F24: - movs r0, #0 - strb r0, [r5] - adds r1, r4, #0 - adds r1, #0x7b - movs r0, #4 - strb r0, [r1] - movs r0, #3 - bl sub_0807CD10 - ldr r0, _08087F50 @ =0x0000431A - bl sub_08056378 - ldr r1, _08087F54 @ =gUnk_02000050 - movs r0, #1 - strb r0, [r1, #6] - movs r0, #0xc - strb r0, [r1, #7] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - str r0, [r1, #0x10] -_08087F4E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08087F50: .4byte 0x0000431A -_08087F54: .4byte gUnk_02000050 - - thumb_func_start sub_08087F58 -sub_08087F58: @ 0x08087F58 - push {r4, r5, lr} - ldrb r1, [r0, #0xa] - cmp r1, #1 - bgt _08087F8C - cmp r1, #0 - blt _08087F8C - ldr r5, _08087F90 @ =0x00004022 - adds r4, r0, #0 - adds r4, #0x78 - ldrh r1, [r4] - subs r1, #1 - adds r0, r5, #0 - movs r2, #1 - bl sub_0800015E - ldrh r1, [r4] - adds r0, r5, #0 - movs r2, #1 - bl sub_0800015E - ldrh r1, [r4] - adds r1, #1 - adds r0, r5, #0 - movs r2, #1 - bl sub_0800015E -_08087F8C: - pop {r4, r5, pc} - .align 2, 0 -_08087F90: .4byte 0x00004022 - - thumb_func_start sub_08087F94 -sub_08087F94: @ 0x08087F94 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #0x5f - bl sub_0807CBD0 - cmp r0, #0 - bne _08088014 - adds r0, r5, #0 - adds r0, #0x83 - movs r1, #0 - ldrsb r1, [r0, r1] - mov ip, r1 - adds r3, r1, r4 - adds r7, r0, #0 - cmp r4, #0 - bge _08087FEA - adds r2, r5, #0 - adds r2, #0x82 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r3, r0 - bge _08087FD6 - movs r1, #0 - ldrsb r1, [r7, r1] - ldrb r3, [r2] - cmp r1, r0 - beq _08088014 - strb r3, [r7] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #1 - b _08087FE0 -_08087FD6: - strb r3, [r7] - adds r1, r5, #0 - adds r1, #0x81 - ldrb r0, [r1] - adds r0, r0, r4 -_08087FE0: - strb r0, [r1] - movs r0, #0x69 - bl sub_080A3268 - b _08088032 -_08087FEA: - adds r1, r5, #0 - adds r1, #0x81 - ldrb r6, [r1] - adds r2, r6, r4 - ldr r0, _0808801C @ =gUnk_02002A40 - adds r0, #0xc2 - ldrh r0, [r0] - cmp r2, r0 - ble _08088008 - cmp r0, r6 - beq _08088014 - adds r2, r0, #0 - subs r4, r2, r6 - mov r0, ip - adds r3, r0, r4 -_08088008: - cmp r3, #0x64 - ble _08088028 - movs r0, #0 - ldrsb r0, [r7, r0] - cmp r0, #0x64 - bne _08088020 -_08088014: - adds r0, r5, #0 - bl sub_08088034 - b _08088032 - .align 2, 0 -_0808801C: .4byte gUnk_02002A40 -_08088020: - movs r3, #0x64 - mov r0, ip - subs r4, r3, r0 - adds r2, r6, r4 -_08088028: - strb r3, [r7] - strb r2, [r1] - movs r0, #0x69 - bl sub_080A3268 -_08088032: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08088034 -sub_08088034: @ 0x08088034 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - bne _08088048 - movs r0, #0x14 - strb r0, [r1, #0xe] - movs r0, #0x6d - bl sub_080A3268 -_08088048: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808804C -sub_0808804C: @ 0x0808804C - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r0, _08088060 @ =gUnk_02002A40 - ldrb r0, [r0, #6] - cmp r0, #0 - beq _08088064 - movs r4, #9 - b _080880D0 - .align 2, 0 -_08088060: .4byte gUnk_02002A40 -_08088064: - movs r0, #6 - bl GetProgressFlag - cmp r0, #0 - beq _08088072 - movs r4, #7 - b _080880D0 -_08088072: - movs r0, #0x80 - lsls r0, r0, #4 - movs r1, #0x77 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _08088084 - movs r4, #6 - b _080880D0 -_08088084: - movs r0, #0xc0 - lsls r0, r0, #2 - movs r1, #0x32 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _08088096 - movs r4, #5 - b _080880D0 -_08088096: - movs r0, #5 - bl GetProgressFlag - cmp r0, #0 - beq _080880A4 - movs r4, #4 - b _080880D0 -_080880A4: - movs r0, #4 - bl GetProgressFlag - cmp r0, #0 - beq _080880B2 - movs r4, #3 - b _080880D0 -_080880B2: - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #0x9c - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _080880C4 - movs r4, #2 - b _080880D0 -_080880C4: - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - beq _080880D0 - movs r4, #1 -_080880D0: - adds r0, r5, #0 - adds r0, #0x7c - strb r4, [r0] - pop {r4, r5, pc} - - thumb_func_start sub_080880D8 -sub_080880D8: @ 0x080880D8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x7b - ldrb r1, [r0] - ldr r0, _08088158 @ =gUnk_08120AAC - adds r6, r1, r0 - ldrb r4, [r6] - ldrb r0, [r6, #1] - cmp r4, r0 - bhs _0808810A - adds r5, r7, #0 - adds r5, #0x80 -_080880F0: - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_08088160 - cmp r0, #0 - beq _08088102 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] -_08088102: - adds r4, #1 - ldrb r0, [r6, #1] - cmp r4, r0 - blo _080880F0 -_0808810A: - adds r1, r7, #0 - adds r1, #0x7b - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bne _08088156 - ldr r5, _0808815C @ =gUnk_02002A40 - adds r0, r7, #0 - adds r0, #0x80 - ldrb r1, [r5, #9] - adds r4, r0, #0 - ldrb r0, [r4] - cmp r1, r0 - beq _0808813A - cmp r1, #0 - beq _08088136 - movs r0, #6 - bl sub_0807CD10 -_08088136: - ldrb r0, [r4] - strb r0, [r5, #9] -_0808813A: - movs r0, #0x5f - bl sub_0807CBD0 - cmp r0, #0 - beq _08088156 - ldr r0, _0808815C @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - beq _08088156 - movs r0, #0x5f - bl sub_0807CD34 -_08088156: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08088158: .4byte gUnk_08120AAC -_0808815C: .4byte gUnk_02002A40 - - thumb_func_start sub_08088160 -sub_08088160: @ 0x08088160 - push {r4, lr} - adds r2, r0, #0 - lsls r1, r1, #3 - ldr r0, _08088188 @ =gUnk_080FC3E4 - adds r1, r1, r0 - movs r4, #0 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - ldrb r3, [r1, #6] - cmp r0, r3 - bhs _08088266 - ldrb r0, [r1, #6] - cmp r0, #0x10 - beq _0808819E - cmp r0, #0x10 - bgt _0808818C - cmp r0, #8 - beq _08088194 - b _08088268 - .align 2, 0 -_08088188: .4byte gUnk_080FC3E4 -_0808818C: - cmp r0, #0x20 - beq _080881A6 - cmp r0, #0x40 - bne _08088268 -_08088194: - ldr r0, [r1] - ldrh r1, [r1, #4] - bl GetProgressFlagWithOffset - b _08088262 -_0808819E: - ldrh r0, [r1, #4] - bl sub_0801E7F4 - b _08088262 -_080881A6: - ldrh r0, [r1, #4] - cmp r0, #5 - bhi _08088268 - lsls r0, r0, #2 - ldr r1, _080881B8 @ =_080881BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080881B8: .4byte _080881BC -_080881BC: @ jump table - .4byte _080881D4 @ case 0 - .4byte _080881F0 @ case 1 - .4byte _080881FE @ case 2 - .4byte _0808821A @ case 3 - .4byte _08088236 @ case 4 - .4byte _08088252 @ case 5 -_080881D4: - movs r0, #0x20 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x10 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x19 -_080881EA: - bl sub_0801E7F4 - b _08088262 -_080881F0: - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #4 - bls _08088268 - movs r0, #0x28 - b _080881EA -_080881FE: - movs r0, #0x54 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x56 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x3d - bl sub_0801E7F4 - b _08088262 -_0808821A: - movs r0, #0x3b - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x4a - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0xd - bl sub_0801E7F4 - b _08088262 -_08088236: - movs r0, #0x49 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x55 - bl sub_0801E7F4 - cmp r0, #0 - bne _08088266 - movs r0, #0x3c - bl sub_0801E7F4 - b _08088262 -_08088252: - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #1 - bls _08088268 - movs r0, #0x12 - bl GetProgressFlag -_08088262: - cmp r0, #0 - beq _08088268 -_08088266: - movs r4, #1 -_08088268: - adds r0, r4, #0 - pop {r4, pc} - - thumb_func_start sub_0808826C -sub_0808826C: @ 0x0808826C - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0x64 - adds r0, #0x80 - ldrb r1, [r0] - ldr r0, _080882A4 @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r0, [r0] - subs r0, r1, r0 - muls r4, r0, r4 - adds r0, r4, #0 - bl __divsi3 - adds r4, r0, #0 - cmp r4, #0 - bne _08088298 - movs r0, #0x5f - bl sub_0807CBD0 - cmp r0, #0 - bne _08088298 - movs r4, #1 -_08088298: - adds r0, r5, #0 - adds r0, #0x83 - strb r4, [r0] - subs r0, #1 - strb r4, [r0] - pop {r4, r5, pc} - .align 2, 0 -_080882A4: .4byte gUnk_02002A40 - - thumb_func_start sub_080882A8 -sub_080882A8: @ 0x080882A8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_08050384 - adds r0, r6, #0 - adds r0, #0x81 - ldrb r0, [r0] - ldr r4, _080882F4 @ =gUnk_020227E8 - ldr r5, _080882F8 @ =0x00202020 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08057044 - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, #8 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08057044 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _08088304 - ldr r1, _080882FC @ =gUnk_08120AE4 - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _08088300 @ =gUnk_08120AB4 - bl sub_0805F46C - b _08088314 - .align 2, 0 -_080882F4: .4byte gUnk_020227E8 -_080882F8: .4byte 0x00202020 -_080882FC: .4byte gUnk_08120AE4 -_08088300: .4byte gUnk_08120AB4 -_08088304: - ldr r1, _0808831C @ =gUnk_08120AE4 - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldr r1, _08088320 @ =gUnk_08120ACC - bl sub_0805F46C -_08088314: - ldr r1, _08088324 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0xe] - pop {r4, r5, r6, pc} - .align 2, 0 -_0808831C: .4byte gUnk_08120AE4 -_08088320: .4byte gUnk_08120ACC -_08088324: .4byte gUnk_03000F50 - - thumb_func_start sub_08088328 -sub_08088328: @ 0x08088328 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r4, #0x7f -_08088332: - bl sub_08000E50 - adds r5, r0, #0 - ands r5, r4 - cmp r5, #0x63 - bhi _08088332 - adds r0, r6, #0 - adds r0, #0x81 - ldrb r0, [r0] - rsbs r0, r0, #0 - bl sub_080542C0 - bl sub_08000E50 - movs r1, #0x7f - ands r1, r0 - adds r4, r1, #1 - adds r7, r4, #0 - adds r0, r6, #0 - bl sub_08088424 - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r5, r0 - bhs _080883A4 - movs r5, #0 - movs r0, #0x7d - adds r0, r0, r6 - mov r8, r0 -_08088372: - cmp r5, #0 - bne _080883E2 - cmp r4, #0x88 - bls _0808837C - movs r4, #1 -_0808837C: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08088160 - cmp r0, #0 - beq _0808839C - ldr r0, _08088398 @ =gUnk_02002B0E - adds r1, r4, #0 - bl sub_0801D5A8 - cmp r0, #0 - bne _0808839C - movs r5, #1 - b _0808839E - .align 2, 0 -_08088398: .4byte gUnk_02002B0E -_0808839C: - adds r4, #1 -_0808839E: - cmp r7, r4 - bne _08088372 - b _080883DE -_080883A4: - movs r5, #1 - movs r0, #0x7d - adds r0, r0, r6 - mov r8, r0 -_080883AC: - cmp r5, #0 - beq _08088414 - cmp r4, #0x88 - bls _080883B6 - movs r4, #1 -_080883B6: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08088160 - cmp r0, #0 - beq _080883D8 - ldr r0, _080883D4 @ =gUnk_02002B0E - adds r1, r4, #0 - bl sub_0801D5A8 - cmp r0, #0 - beq _080883D8 - movs r5, #0 - b _080883DA - .align 2, 0 -_080883D4: .4byte gUnk_02002B0E -_080883D8: - adds r4, #1 -_080883DA: - cmp r7, r4 - bne _080883AC -_080883DE: - cmp r5, #0 - beq _08088414 -_080883E2: - ldr r0, _08088404 @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - adds r0, r6, #0 - adds r0, #0x80 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r0, [r0] - cmp r1, r0 - beq _08088408 - movs r0, #7 - bl sub_0807CD10 - b _08088414 - .align 2, 0 -_08088404: .4byte gUnk_02002A40 -_08088408: - movs r0, #0x5f - bl sub_0807CCB4 - movs r0, #8 - bl sub_0807CD10 -_08088414: - mov r0, r8 - strb r4, [r0] - ldr r0, [r6, #0x50] - adds r0, #0x7d - strb r4, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08088424 -sub_08088424: @ 0x08088424 - push {lr} - adds r1, r0, #0 - ldr r0, _08088440 @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r0, [r0] - cmp r0, #0x31 - bhi _08088444 - adds r1, #0x83 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0xe - bgt _08088476 - movs r0, #0xf - b _08088474 - .align 2, 0 -_08088440: .4byte gUnk_02002A40 -_08088444: - cmp r0, #0x4f - bhi _08088456 - adds r1, #0x83 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0xb - bgt _08088476 - movs r0, #0xc - b _08088474 -_08088456: - cmp r0, #0x6d - bhi _08088468 - adds r1, #0x83 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #8 - bgt _08088476 - movs r0, #9 - b _08088474 -_08088468: - adds r1, #0x83 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #5 - bgt _08088476 - movs r0, #6 -_08088474: - strb r0, [r1] -_08088476: - pop {pc} - - thumb_func_start sub_08088478 -sub_08088478: @ 0x08088478 - push {r4, lr} - movs r4, #0 - movs r0, #8 - bl sub_0807CC3C - cmp r0, #0 - bne _080884A4 - movs r0, #7 - bl sub_0807CC3C - cmp r0, #0 - bne _0808849C - ldr r1, _08088498 @ =0x00004322 - movs r4, #1 - b _080884D2 - .align 2, 0 -_08088498: .4byte 0x00004322 -_0808849C: - ldr r1, _080884A0 @ =0x00004325 - b _080884D2 - .align 2, 0 -_080884A0: .4byte 0x00004325 -_080884A4: - ldr r1, _080884C0 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xb0 - ldrb r0, [r0] - cmp r0, #0x82 - beq _080884C8 - cmp r0, #0x88 - bne _080884D0 - adds r1, #0xb1 - movs r0, #0xff - strb r0, [r1] - ldr r1, _080884C4 @ =0x00004329 - b _080884D2 - .align 2, 0 -_080884C0: .4byte gUnk_02002A40 -_080884C4: .4byte 0x00004329 -_080884C8: - ldrb r0, [r1, #6] - ldr r1, _080884F4 @ =0x00004328 - cmp r0, #0 - beq _080884D2 -_080884D0: - ldr r1, _080884F8 @ =0x00004327 -_080884D2: - adds r0, r1, #0 - bl sub_08056378 - ldr r1, _080884FC @ =gUnk_02000050 - movs r0, #1 - strb r0, [r1, #6] - movs r0, #0xc - strb r0, [r1, #7] - cmp r4, #0 - beq _080884EA - movs r0, #5 - str r0, [r1, #0x10] -_080884EA: - ldr r1, _08088500 @ =gLinkEntity - movs r0, #6 - strb r0, [r1, #0x14] - pop {r4, pc} - .align 2, 0 -_080884F4: .4byte 0x00004328 -_080884F8: .4byte 0x00004327 -_080884FC: .4byte gUnk_02000050 -_08088500: .4byte gLinkEntity - - thumb_func_start sub_08088504 -sub_08088504: @ 0x08088504 - push {lr} - ldr r0, _08088518 @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r0, [r0] - cmp r0, #0x82 - beq _08088520 - cmp r0, #0x88 - bne _08088528 - ldr r0, _0808851C @ =0x0000432F - b _0808852A - .align 2, 0 -_08088518: .4byte gUnk_02002A40 -_0808851C: .4byte 0x0000432F -_08088520: - ldr r0, _08088524 @ =0x00004314 - b _0808852A - .align 2, 0 -_08088524: .4byte 0x00004314 -_08088528: - ldr r0, _0808853C @ =0x00004311 -_0808852A: - bl sub_08056378 - ldr r0, _08088540 @ =gUnk_02000050 - movs r1, #1 - strb r1, [r0, #6] - movs r1, #0xc - strb r1, [r0, #7] - pop {pc} - .align 2, 0 -_0808853C: .4byte 0x00004311 -_08088540: .4byte gUnk_02000050 - - thumb_func_start sub_08088544 -sub_08088544: @ 0x08088544 - push {lr} - ldr r0, _08088568 @ =gUnk_02002A40 - adds r0, #0xb0 - ldrb r0, [r0] - ldr r1, _0808856C @ =0x00004315 - cmp r0, #0x82 - beq _08088554 - subs r1, #7 -_08088554: - adds r0, r1, #0 - bl sub_08056378 - ldr r0, _08088570 @ =gUnk_02000050 - movs r1, #1 - strb r1, [r0, #6] - movs r1, #0xc - strb r1, [r0, #7] - pop {pc} - .align 2, 0 -_08088568: .4byte gUnk_02002A40 -_0808856C: .4byte 0x00004315 -_08088570: .4byte gUnk_02000050 - - thumb_func_start sub_08088574 -sub_08088574: @ 0x08088574 - push {lr} - movs r0, #9 - bl sub_0807CC3C - cmp r0, #0 - beq _08088594 - movs r0, #0x5f - bl sub_0807CBD0 - ldr r1, _08088590 @ =0x0000430C - cmp r0, #0 - beq _08088596 - adds r1, #7 - b _08088596 - .align 2, 0 -_08088590: .4byte 0x0000430C -_08088594: - ldr r1, _080885A8 @ =0x0000430B -_08088596: - adds r0, r1, #0 - bl sub_08056378 - ldr r0, _080885AC @ =gUnk_02000050 - movs r1, #1 - strb r1, [r0, #6] - movs r1, #0xc - strb r1, [r0, #7] - pop {pc} - .align 2, 0 -_080885A8: .4byte 0x0000430B -_080885AC: .4byte gUnk_02000050 - - thumb_func_start sub_080885B0 -sub_080885B0: @ 0x080885B0 - push {lr} - movs r0, #8 - bl sub_0807CC3C - cmp r0, #0 - bne _080885E8 - movs r0, #7 - bl sub_0807CC3C - cmp r0, #0 - bne _0808860A - movs r0, #5 - bl sub_080526CC - ldr r0, _080885E0 @ =0x00004326 - bl sub_08056378 - ldr r1, _080885E4 @ =gUnk_02000050 - movs r0, #1 - strb r0, [r1, #6] - movs r0, #0xc - strb r0, [r1, #7] - b _0808860A - .align 2, 0 -_080885E0: .4byte 0x00004326 -_080885E4: .4byte gUnk_02000050 -_080885E8: - ldr r1, _08088618 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xb1 - ldrb r0, [r0] - cmp r0, #0 - beq _0808860A - adds r1, #0xbb - movs r0, #1 - strb r0, [r1] - movs r0, #0x3e - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - movs r0, #0x59 - bl sub_0807CD04 -_0808860A: - movs r0, #8 - bl sub_0807CD8C - movs r0, #7 - bl sub_0807CD8C - pop {pc} - .align 2, 0 -_08088618: .4byte gUnk_02002A40 - - thumb_func_start sub_0808861C -sub_0808861C: @ 0x0808861C - push {r4, lr} - adds r4, r1, #0 - movs r0, #0xa8 - movs r1, #0x54 - movs r2, #0xc - movs r3, #8 - bl sub_0800293E - str r0, [r4, #0x14] - ldr r1, _08088650 @ =gLinkEntity - ldrb r0, [r1, #0x14] - cmp r0, #0 - bne _0808863E - movs r2, #0x36 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _08088642 -_0808863E: - movs r0, #0 - str r0, [r4, #0x14] -_08088642: - ldr r2, _08088654 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_08088650: .4byte gLinkEntity -_08088654: .4byte gUnk_02033280 - - thumb_func_start sub_08088658 -sub_08088658: @ 0x08088658 - push {r4, lr} - adds r4, r1, #0 - movs r0, #0x78 - movs r1, #0x78 - movs r2, #0x10 - movs r3, #8 - bl sub_0800293E - str r0, [r4, #0x14] - ldr r0, _08088684 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08088678 - movs r0, #0 - str r0, [r4, #0x14] -_08088678: - ldr r2, _08088688 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_08088684: .4byte gLinkEntity -_08088688: .4byte gUnk_02033280 - - thumb_func_start sub_0808868C -sub_0808868C: @ 0x0808868C - push {lr} - ldr r2, _080886A0 @ =gUnk_08120B20 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080886A0: .4byte gUnk_08120B20 - - thumb_func_start sub_080886A4 -sub_080886A4: @ 0x080886A4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - movs r6, #3 - adds r0, r6, #0 - ands r0, r1 - strb r0, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - movs r5, #1 - strb r5, [r0] - subs r1, #5 - movs r0, #2 - strb r0, [r1] - ldr r0, _08088700 @ =gUnk_080FD168 - str r0, [r4, #0x48] - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08088704 - strb r6, [r4, #0xc] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - b _08088716 - .align 2, 0 -_08088700: .4byte gUnk_080FD168 -_08088704: - strb r5, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_08088716: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08088718 -sub_08088718: @ 0x08088718 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x95 - beq _08088728 - cmp r0, #0x8e - bne _0808875A -_08088728: - ldr r0, [r4, #0x4c] - ldrb r1, [r0, #0x15] - adds r1, #4 - movs r0, #0x18 - ands r1, r0 - asrs r1, r1, #3 - ldrb r2, [r4, #0x14] - movs r0, #3 - ands r0, r2 - cmp r1, r0 - bne _0808875A - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r0, _0808875C @ =0x00000111 - bl sub_08004488 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_0808875A: - pop {r4, pc} - .align 2, 0 -_0808875C: .4byte 0x00000111 - - thumb_func_start sub_08088760 -sub_08088760: @ 0x08088760 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808878E - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_0808878E: - pop {r4, pc} - - thumb_func_start sub_08088790 -sub_08088790: @ 0x08088790 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080887D6 - adds r0, r4, #0 - adds r0, #0x86 - adds r2, r4, #0 - adds r2, #0x84 - ldrh r1, [r0] - adds r5, r0, #0 - ldrh r0, [r2] - cmp r1, r0 - beq _080887BC - ldrh r0, [r2] - bl sub_0807CBE4 - cmp r0, #0 - beq _080887BC - movs r0, #0 - strb r0, [r4, #0xe] - b _080887D6 -_080887BC: - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080887D6 - movs r0, #4 - strb r0, [r4, #0xc] - ldrh r0, [r5] - bl sub_0807CD48 -_080887D6: - pop {r4, r5, pc} - - thumb_func_start sub_080887D8 -sub_080887D8: @ 0x080887D8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08088802 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_08088802: - pop {r4, pc} - - thumb_func_start sub_08088804 -sub_08088804: @ 0x08088804 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08088828 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088828 - ldrb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x72 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_08088828: - ldr r0, _0808883C @ =gUnk_08120BE0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_0808883C: .4byte gUnk_08120BE0 - - thumb_func_start sub_08088840 -sub_08088840: @ 0x08088840 - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - ldr r1, _08088868 @ =gUnk_080FD1D4 - str r1, [r0, #0x48] - ldrb r1, [r0, #0x14] - adds r0, #0x72 - strb r1, [r0] - bx lr - .align 2, 0 -_08088868: .4byte gUnk_080FD1D4 - - thumb_func_start sub_0808886C -sub_0808886C: @ 0x0808886C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08088938 - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_080889A8 - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r1, [r5, #0xa] - adds r0, r1, #2 - cmp r0, r4 - bgt _080888B8 - movs r1, #0 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r5, #0xf] - movs r0, #4 - strb r0, [r5, #0x14] - strh r1, [r5, #0x36] - adds r0, r5, #0 - movs r1, #4 - bl sub_08004260 - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - ldr r0, _080888B4 @ =0x0000016B - bl sub_08004488 - b _080888F2 - .align 2, 0 -_080888B4: .4byte 0x0000016B -_080888B8: - ldrb r0, [r5, #0x14] - cmp r4, r0 - bls _080888E4 - adds r0, r1, #1 - cmp r0, r4 - bne _080888D2 - movs r0, #4 - strb r0, [r5, #0xf] - adds r1, r4, #1 - adds r0, r5, #0 - bl sub_08004260 - b _080888DA -_080888D2: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08004260 -_080888DA: - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 - b _080888F0 -_080888E4: - cmp r4, r0 - bhs _080888F0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08004260 -_080888F0: - strb r4, [r5, #0x14] -_080888F2: - pop {r4, r5, pc} - - thumb_func_start sub_080888F4 -sub_080888F4: @ 0x080888F4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - beq _08088934 - adds r0, r5, #0 - bl sub_08088938 - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_080889A8 - adds r4, r4, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - ldrb r0, [r5, #0xa] - adds r0, #2 - cmp r0, r4 - ble _08088934 - movs r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08004260 -_08088934: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08088938 -sub_08088938: @ 0x08088938 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r5, #0 - ldrh r1, [r0, #0x2e] - subs r1, #8 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - mov ip, r1 - ldrh r1, [r0, #0x32] - subs r1, #8 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - movs r4, #0 - ldr r1, _080889A0 @ =gUnk_02034350 - ldr r2, _080889A4 @ =gUnk_08120BEC - mov r8, r2 - adds r3, r1, #0 - adds r3, #0xac - adds r6, r0, #0 - adds r6, #0x72 -_08088962: - ldr r2, [r3] - cmp r2, #0 - beq _08088990 - ldrh r0, [r2, #0x2e] - mov r1, ip - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x10 - bhi _08088990 - ldrh r0, [r2, #0x32] - subs r0, r0, r7 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x10 - bhi _08088990 - ldrb r0, [r6] - add r0, r8 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x63 - strb r1, [r0] - adds r5, #1 -_08088990: - adds r3, #4 - adds r4, #1 - cmp r4, #7 - bls _08088962 - adds r0, r5, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080889A0: .4byte gUnk_02034350 -_080889A4: .4byte gUnk_08120BEC - - thumb_func_start sub_080889A8 -sub_080889A8: @ 0x080889A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r5, #0 - bl sub_08017850 - cmp r0, #0 - beq _080889CA - ldr r1, _08088A40 @ =gLinkEntity - ldr r2, _08088A44 @ =gUnk_08120BEC - adds r0, r4, #0 - adds r0, #0x72 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0x63 - strb r0, [r1] - movs r5, #1 -_080889CA: - ldr r0, _08088A48 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _08088A3A - ldr r6, _08088A4C @ =gUnk_03004040 - ldr r1, [r6] - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _080889FA - ldr r1, [r6] - ldr r2, _08088A44 @ =gUnk_08120BEC - adds r0, r4, #0 - adds r0, #0x72 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0x63 - strb r0, [r1] - adds r5, #1 -_080889FA: - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _08088A1A - ldr r1, [r6, #4] - ldr r2, _08088A44 @ =gUnk_08120BEC - adds r0, r4, #0 - adds r0, #0x72 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0x63 - strb r0, [r1] - adds r5, #1 -_08088A1A: - ldr r1, [r6, #8] - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _08088A3A - ldr r1, [r6, #8] - ldr r2, _08088A44 @ =gUnk_08120BEC - adds r0, r4, #0 - adds r0, #0x72 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0x63 - strb r0, [r1] - adds r5, #1 -_08088A3A: - adds r0, r5, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_08088A40: .4byte gLinkEntity -_08088A44: .4byte gUnk_08120BEC -_08088A48: .4byte gUnk_03003F80 -_08088A4C: .4byte gUnk_03004040 - - thumb_func_start sub_08088A50 -sub_08088A50: @ 0x08088A50 - push {lr} - ldr r2, _08088A64 @ =gUnk_08120C34 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08088A64: .4byte gUnk_08120C34 - - thumb_func_start sub_08088A68 -sub_08088A68: @ 0x08088A68 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08088AE4 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x18] - movs r2, #3 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x11] - movs r0, #0x17 - bl GetProgressFlag - cmp r0, #0 - beq _08088AA0 - ldr r0, _08088A9C @ =gUnk_02002A40 - ldrb r0, [r0, #7] - adds r0, #1 - b _08088AA4 - .align 2, 0 -_08088A9C: .4byte gUnk_02002A40 -_08088AA0: - ldr r0, _08088AD8 @ =gUnk_02002A40 - ldrb r0, [r0, #7] -_08088AA4: - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_08088BE0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08088ADC @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r4, r3] - ldrh r2, [r2, #8] - subs r1, r1, r2 - movs r2, #0x80 - movs r3, #0x60 - bl sub_0800293E - cmp r0, #0 - beq _08088B82 - ldr r0, _08088AE0 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #4 - orrs r1, r2 - str r1, [r0, #0x68] - b _08088B82 - .align 2, 0 -_08088AD8: .4byte gUnk_02002A40 -_08088ADC: .4byte gUnk_03000BF0 -_08088AE0: .4byte gUnk_02034350 -_08088AE4: - ldr r5, _08088B70 @ =gUnk_02034350 - ldr r1, [r5, #0x68] - movs r6, #1 - adds r0, r1, #0 - ands r0, r6 - cmp r0, #0 - beq _08088B06 - movs r0, #2 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r5, #0x68] - strb r6, [r4, #0xe] - ldr r0, _08088B74 @ =gUnk_08120C1C - str r0, [r4, #0x68] - movs r0, #0x8a - bl sub_080A3268 -_08088B06: - ldr r1, [r5, #0x68] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08088B24 - movs r0, #3 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r5, #0x68] - strb r6, [r4, #0xe] - ldr r0, _08088B78 @ =gUnk_08120C25 - str r0, [r4, #0x68] - movs r0, #0x89 - bl sub_080A3268 -_08088B24: - ldr r1, [r5, #0x68] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08088B42 - movs r0, #5 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r5, #0x68] - strb r6, [r4, #0xe] - ldr r0, _08088B7C @ =gUnk_08120C2E - str r0, [r4, #0x68] - movs r0, #0x8a - bl sub_080A3268 -_08088B42: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08088B82 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _08088B82 - ldr r1, [r4, #0x68] - ldrb r0, [r1] - adds r2, r4, #0 - adds r2, #0x63 - strb r0, [r2] - adds r1, #1 - ldrb r0, [r1] - cmp r0, #0xff - beq _08088B80 - movs r0, #8 - strb r0, [r4, #0xe] - str r1, [r4, #0x68] - b _08088B82 - .align 2, 0 -_08088B70: .4byte gUnk_02034350 -_08088B74: .4byte gUnk_08120C1C -_08088B78: .4byte gUnk_08120C25 -_08088B7C: .4byte gUnk_08120C2E -_08088B80: - strb r3, [r2] -_08088B82: - adds r5, r4, #0 - adds r5, #0x29 - ldrb r1, [r5] - movs r6, #8 - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5] - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r0, #0x50 - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #0x50 - movs r2, #0xa0 - movs r3, #0x30 - bl sub_0806FBFC - cmp r0, #0 - beq _08088BBA - ldrb r0, [r5] - adds r1, r6, #0 - ands r1, r0 - movs r0, #5 - orrs r1, r0 - strb r1, [r5] -_08088BBA: - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r0, #0x50 - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r1, #0x30 - movs r2, #0xa0 - movs r3, #0x30 - bl sub_0806FBFC - cmp r0, #0 - beq _08088BDE - ldrb r0, [r5] - adds r1, r6, #0 - ands r1, r0 - movs r0, #5 - orrs r1, r0 - strb r1, [r5] -_08088BDE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08088BE0 -sub_08088BE0: @ 0x08088BE0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x15 - bl sub_0807CBD0 - cmp r0, #0 - bne _08088C1C - movs r3, #0x78 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_08088C78 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0x15 - movs r3, #0 - bl sub_08088C78 - adds r2, r0, #0 - cmp r2, #0 - beq _08088C1C - ldr r0, _08088C74 @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - adds r1, #0x48 - strh r1, [r2, #0x2e] - ldrh r0, [r0, #8] - adds r0, #0xc8 - strh r0, [r2, #0x32] -_08088C1C: - movs r0, #0x16 - bl sub_0807CBD0 - cmp r0, #0 - bne _08088C58 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - movs r3, #0x78 - bl sub_08088C78 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0x16 - movs r3, #0 - bl sub_08088C78 - adds r2, r0, #0 - cmp r2, #0 - beq _08088C58 - ldr r0, _08088C74 @ =gUnk_03000BF0 - movs r3, #0xc4 - lsls r3, r3, #1 - adds r1, r3, #0 - ldrh r3, [r0, #6] - adds r1, r1, r3 - strh r1, [r2, #0x2e] - ldrh r0, [r0, #8] - adds r0, #0xc8 - strh r0, [r2, #0x32] -_08088C58: - movs r3, #0x78 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_08088C78 - adds r0, r4, #0 - movs r1, #1 - movs r2, #1 - movs r3, #0x78 - bl sub_08088C78 - pop {r4, pc} - .align 2, 0 -_08088C74: .4byte gUnk_03000BF0 - - thumb_func_start sub_08088C78 -sub_08088C78: @ 0x08088C78 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r3, #0 - movs r0, #0x25 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08088C96 - ldrh r0, [r4, #0x2e] - adds r0, r0, r5 - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] - str r4, [r1, #0x50] -_08088C96: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08088C9C -sub_08088C9C: @ 0x08088C9C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08088CEC @ =gUnk_08120C48 - ldr r0, [r4, #0x50] - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - adds r0, r0, r1 - ldrb r0, [r0] - adds r3, r4, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldr r0, [r4, #0x50] - adds r0, #0x63 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08088D4C - cmp r0, #1 - bgt _08088CF0 - cmp r0, #0 - beq _08088CFA - b _08088DB0 - .align 2, 0 -_08088CEC: .4byte gUnk_08120C48 -_08088CF0: - cmp r0, #2 - beq _08088D5A - cmp r0, #3 - beq _08088D7A - b _08088DB0 -_08088CFA: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r2, [r4, #0xb] - adds r0, r2, #4 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - lsls r2, r2, #0x18 - movs r0, #0x16 - cmp r2, #0 - bne _08088D28 - movs r0, #0x15 -_08088D28: - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xf] - bl sub_0807CBD0 - cmp r0, #0 - beq _08088DB0 - ldr r1, _08088D48 @ =gUnk_08120C50 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - b _08088DAC - .align 2, 0 -_08088D48: .4byte gUnk_08120C50 -_08088D4C: - ldrb r0, [r4, #0xf] - bl sub_0807CBD0 - cmp r0, #0 - beq _08088DB0 - movs r0, #2 - b _08088DAE -_08088D5A: - ldr r2, _08088D98 @ =gUnk_02034350 - ldr r1, [r2, #0x68] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08088DB0 - movs r0, #0x21 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r2, #0x68] - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xe] -_08088D7A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088DB0 - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08088D9C - subs r0, r1, #2 - b _08088D9E - .align 2, 0 -_08088D98: .4byte gUnk_02034350 -_08088D9C: - adds r0, r1, #2 -_08088D9E: - strh r0, [r4, #0x2e] - ldrb r0, [r4, #0xd] - subs r0, #1 - strb r0, [r4, #0xd] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088DB0 -_08088DAC: - movs r0, #4 -_08088DAE: - strb r0, [r4, #0xc] -_08088DB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08088DB4 -sub_08088DB4: @ 0x08088DB4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08088E28 - cmp r0, #1 - bgt _08088DC8 - cmp r0, #0 - beq _08088DEC - b _08088E50 -_08088DC8: - cmp r0, #4 - bgt _08088E50 - ldr r0, _08088DE8 @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08088E6E - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088E6E - b _08088E3E - .align 2, 0 -_08088DE8: .4byte gUnk_02034350 -_08088DEC: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, #6 - strb r0, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r0, [r4, #0xb] - movs r1, #0x16 - cmp r0, #0 - bne _08088E1E - movs r1, #0x15 -_08088E1E: - strb r1, [r4, #0xb] - adds r0, r4, #0 - bl sub_08016A04 - b _08088E6E -_08088E28: - ldrb r0, [r4, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - beq _08088E6E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - b _08088E6E -_08088E3E: - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - adds r0, #1 - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - b _08088E6E -_08088E50: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08088E6E - ldr r0, _08088E70 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #9 - rsbs r2, r2, #0 - ands r1, r2 - str r1, [r0, #0x68] - adds r0, r4, #0 - bl sub_0805E7BC -_08088E6E: - pop {r4, pc} - .align 2, 0 -_08088E70: .4byte gUnk_02034350 - - thumb_func_start sub_08088E74 -sub_08088E74: @ 0x08088E74 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08088E94 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r2, _08088EB0 @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #8 - orrs r0, r1 - str r0, [r2, #0x68] -_08088E94: - adds r0, r4, #0 - bl sub_0806FB38 - cmp r0, #0 - beq _08088EB4 - ldr r0, _08088EB0 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #0x10 - orrs r1, r2 - str r1, [r0, #0x68] - adds r0, r4, #0 - bl sub_0805E7BC - b _08088F14 - .align 2, 0 -_08088EB0: .4byte gUnk_02034350 -_08088EB4: - ldr r0, _08088F18 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08088F14 - adds r0, r4, #0 - movs r1, #0x2a - movs r2, #0 - movs r3, #0x1e - bl sub_080A2988 - adds r4, r0, #0 - cmp r4, #0 - beq _08088F14 - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x19] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r4, #0x1b] - ands r1, r0 - strb r1, [r4, #0x1b] - bl sub_08000E50 - ldr r2, _08088F1C @ =gUnk_08120C52 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_08088F14: - pop {r4, pc} - .align 2, 0 -_08088F18: .4byte gUnk_030010A0 -_08088F1C: .4byte gUnk_08120C52 - - thumb_func_start sub_08088F20 -sub_08088F20: @ 0x08088F20 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08088F62 - cmp r0, #1 - bgt _08088F34 - cmp r0, #0 - beq _08088F3E - b _08089020 -_08088F34: - cmp r0, #2 - beq _08088FEC - cmp r0, #3 - beq _08089004 - b _08089020 -_08088F3E: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x11] - subs r0, #0x11 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - ldrb r0, [r4, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - bne _08088F5A - b _0808908E -_08088F5A: - adds r0, r4, #0 - bl sub_0805E7BC - b _0808908E -_08088F62: - ldrb r0, [r4, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - bne _08088F6E - b _0808908E -_08088F6E: - movs r5, #2 - strb r5, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r1, #0x87 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_0805E4E0 - movs r0, #0x2a - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08088FBC - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x11] - ldrh r0, [r4, #0x2e] - strh r0, [r2, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r2, #0x32] - adds r0, r2, #0 - adds r0, #0x38 - strb r5, [r0] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] -_08088FBC: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08088FE8 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - movs r0, #0x76 - movs r2, #2 - bl sub_0807B314 - b _0808908E - .align 2, 0 -_08088FE8: .4byte gUnk_03000BF0 -_08088FEC: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808908E - adds r0, r4, #0 - bl sub_08089094 - movs r0, #3 - strb r0, [r4, #0xc] - b _0808908E -_08089004: - ldr r0, _0808901C @ =gUnk_02034350 - ldr r0, [r0, #0x68] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0808908E - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - b _0808908E - .align 2, 0 -_0808901C: .4byte gUnk_02034350 -_08089020: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x5a - bne _0808905C - movs r0, #0x15 - movs r1, #2 - bl sub_0807CC60 - cmp r0, #0 - beq _08089048 - ldr r0, _08089044 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #2 - b _0808904E - .align 2, 0 -_08089044: .4byte gUnk_02034350 -_08089048: - ldr r0, _08089090 @ =gUnk_02034350 - ldr r1, [r0, #0x68] - movs r2, #1 -_0808904E: - orrs r1, r2 - str r1, [r0, #0x68] - adds r2, r0, #0 - ldr r0, [r2, #0x68] - movs r1, #0x20 - orrs r0, r1 - str r0, [r2, #0x68] -_0808905C: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0808908E - ldr r2, _08089090 @ =gUnk_02034350 - ldr r0, [r2, #0x68] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x68] - movs r0, #0x15 - movs r1, #2 - bl sub_0807CC60 - cmp r0, #0 - beq _08089088 - adds r0, r4, #0 - movs r1, #0x3c - bl sub_0805E4E0 - movs r0, #0x72 - bl sub_080A3268 -_08089088: - adds r0, r4, #0 - bl sub_0805E7BC -_0808908E: - pop {r4, r5, pc} - .align 2, 0 -_08089090: .4byte gUnk_02034350 - - thumb_func_start sub_08089094 -sub_08089094: @ 0x08089094 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r1, _080890C4 @ =gUnk_03000BF0 - ldrh r1, [r1, #6] - subs r0, r0, r1 - cmp r0, #0xff - bgt _080890CC - ldr r4, _080890C8 @ =gUnk_08120C56 - movs r2, #8 - rsbs r2, r2, #0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080890EC - adds r4, #4 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #4 - bl sub_080890EC - b _080890E6 - .align 2, 0 -_080890C4: .4byte gUnk_03000BF0 -_080890C8: .4byte gUnk_08120C56 -_080890CC: - ldr r4, _080890E8 @ =gUnk_08120C5E - movs r2, #8 - rsbs r2, r2, #0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080890EC - adds r4, #4 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #4 - bl sub_080890EC -_080890E6: - pop {r4, r5, pc} - .align 2, 0 -_080890E8: .4byte gUnk_08120C5E - - thumb_func_start sub_080890EC -sub_080890EC: @ 0x080890EC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r0, #0x25 - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08089132 - movs r1, #3 - bl sub_0805E3A0 - ldrh r0, [r5, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - adds r0, r0, r6 - strh r0, [r4, #0x32] - str r5, [r4, #0x50] - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0 - ldrsh r0, [r7, r2] - adds r1, r1, r0 - movs r3, #0x32 - ldrsh r2, [r4, r3] - movs r3, #2 - ldrsh r0, [r7, r3] - adds r2, r2, r0 - adds r0, r4, #0 - movs r3, #0x5a - bl sub_0806FB00 -_08089132: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08089134 -sub_08089134: @ 0x08089134 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0808919C - movs r2, #1 - movs r3, #1 - strb r3, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - strb r0, [r5, #0x1e] - movs r0, #0x10 - strb r0, [r5, #0xe] - strb r3, [r5, #0xf] - ldrb r0, [r5, #0xa] - lsls r3, r0, #1 - adds r3, r3, r0 - ldr r0, _080891D4 @ =gUnk_08120C80 - adds r3, r3, r0 - ldrb r1, [r3] - lsls r1, r1, #6 - ldrb r4, [r5, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r5, #0x19] - ldrb r0, [r3, #1] - movs r1, #0x29 - adds r1, r1, r5 - mov ip, r1 - movs r1, #7 - ands r1, r0 - mov r0, ip - ldrb r4, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r4 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r0, [r3, #2] - lsls r0, r0, #6 - ldrb r1, [r5, #0x1b] - ands r2, r1 - orrs r2, r0 - strb r2, [r5, #0x1b] -_0808919C: - ldrb r0, [r5, #0xa] - cmp r0, #4 - bne _080891D0 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _080891D0 - movs r0, #0x10 - strb r0, [r5, #0xe] - ldr r2, _080891D8 @ =gUnk_08120C92 - ldrb r0, [r5, #0xf] - adds r1, r0, #1 - strb r1, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r5, #0x1e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #3 - bne _080891D0 - strb r3, [r5, #0xf] -_080891D0: - pop {r4, r5, pc} - .align 2, 0 -_080891D4: .4byte gUnk_08120C80 -_080891D8: .4byte gUnk_08120C92 - - thumb_func_start sub_080891DC -sub_080891DC: @ 0x080891DC - push {lr} - ldr r2, _080891F0 @ =gUnk_08120C98 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080891F0: .4byte gUnk_08120C98 - - thumb_func_start sub_080891F4 -sub_080891F4: @ 0x080891F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808965C - cmp r0, #0 - beq _08089236 - movs r3, #0 - movs r2, #1 - strb r2, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x11] - subs r0, #0x90 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - ldr r0, _08089238 @ =gUnk_080FD1F4 - str r0, [r4, #0x48] - strb r2, [r4, #0x16] - adds r0, r4, #0 - adds r0, #0x86 - strh r3, [r0] - adds r0, r4, #0 - bl sub_08089454 - adds r0, r4, #0 - bl sub_080894C8 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08089236: - pop {r4, pc} - .align 2, 0 -_08089238: .4byte gUnk_080FD1F4 - - thumb_func_start sub_0808923C -sub_0808923C: @ 0x0808923C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0800442E - cmp r0, #0 - bne _080892C0 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - ldr r0, _08089278 @ =0x0000400B - cmp r5, r0 - beq _080892BA - adds r0, r5, #0 - bl sub_0808968C - cmp r0, #1 - beq _0808927C - cmp r0, #1 - blo _08089294 - cmp r0, #2 - beq _080892B2 - b _080892C0 - .align 2, 0 -_08089278: .4byte 0x0000400B -_0808927C: - movs r1, #3 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r5, #0 - subs r0, #0xc - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08089538 - b _080892C0 -_08089294: - movs r0, #0xf - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080892AA - adds r0, r4, #0 - bl sub_0806FA24 -_080892AA: - adds r0, r4, #0 - bl sub_080894FC - b _080892C0 -_080892B2: - adds r0, r4, #0 - adds r0, #0x80 - strh r5, [r0] - b _080892C0 -_080892BA: - adds r0, r4, #0 - bl sub_08078930 -_080892C0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080892C4 -sub_080892C4: @ 0x080892C4 - push {lr} - adds r2, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - cmp r0, #0 - beq _080892D8 - adds r0, r2, #0 - bl sub_080895C0 - b _080892F6 -_080892D8: - ldr r0, _080892F8 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _080892E4 - movs r0, #6 - strb r0, [r2, #0xd] -_080892E4: - ldr r0, _080892FC @ =gUnk_08120CAC - ldrb r1, [r2, #0xd] - subs r1, #5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080892F6: - pop {pc} - .align 2, 0 -_080892F8: .4byte gUnk_03003F80 -_080892FC: .4byte gUnk_08120CAC - - thumb_func_start sub_08089300 -sub_08089300: @ 0x08089300 - push {r4, r5, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x83 - ldrb r0, [r1] - cmp r0, #0 - bne _0808932C - movs r0, #1 - strb r0, [r1] - ldr r1, _0808935C @ =gLinkEntity - ldrb r0, [r1, #0x14] - ldr r2, _08089360 @ =gUnk_08120CB4 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - bl PositionRelative -_0808932C: - adds r0, r5, #0 - adds r0, #0x84 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r0, _08089364 @ =0x0000400B - cmp r4, r0 - beq _080893A0 - adds r0, r4, #0 - bl sub_0808968C - cmp r0, #1 - beq _08089368 - cmp r0, #1 - blo _0808937C - cmp r0, #2 - beq _0808939A - b _080893A0 - .align 2, 0 -_0808935C: .4byte gLinkEntity -_08089360: .4byte gUnk_08120CB4 -_08089364: .4byte 0x0000400B -_08089368: - adds r0, r4, #0 - subs r0, #0xc - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08089538 - b _080893A0 -_0808937C: - movs r0, #0xf - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08089392 - adds r0, r5, #0 - bl sub_0806FA24 -_08089392: - adds r0, r5, #0 - bl sub_080894FC - b _080893D6 -_0808939A: - adds r0, r5, #0 - adds r0, #0x80 - strh r4, [r0] -_080893A0: - bl sub_080896B0 - cmp r0, #0 - beq _080893D6 - ldr r2, _080893D8 @ =gUnk_03003F80 - movs r3, #0 - movs r0, #0x10 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #0x20 - strb r0, [r1] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r0, _080893DC @ =gLinkEntity - strh r3, [r0, #0x2c] - strh r3, [r0, #0x30] - ldrb r0, [r0, #0x14] - movs r1, #4 - eors r0, r1 - lsls r0, r0, #2 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08089538 -_080893D6: - pop {r4, r5, pc} - .align 2, 0 -_080893D8: .4byte gUnk_03003F80 -_080893DC: .4byte gLinkEntity - - thumb_func_start sub_080893E0 -sub_080893E0: @ 0x080893E0 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r0, #0x83 - strb r2, [r0] - bx lr - - thumb_func_start sub_080893EC -sub_080893EC: @ 0x080893EC - push {r4, lr} - adds r4, r0, #0 - bl sub_080895C0 - cmp r0, #0 - beq _080893FC - movs r0, #1 - strb r0, [r4, #0xc] -_080893FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08089400 -sub_08089400: @ 0x08089400 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08089424 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - b _0808944E -_08089424: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _08089450 @ =0x0000400B - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - adds r0, r4, #0 - bl sub_080894C8 -_0808944E: - pop {r4, pc} - .align 2, 0 -_08089450: .4byte 0x0000400B - - thumb_func_start sub_08089454 -sub_08089454: @ 0x08089454 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080894C0 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r6, r5, #0 - adds r6, #0x84 - strh r1, [r6] - ldrh r0, [r6] - adds r4, r5, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x80 - strh r0, [r1] - ldr r5, _080894C4 @ =0x0000400B - ldrh r1, [r6] - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrb r0, [r4] - cmp r0, #2 - bne _080894BC - ldrh r0, [r6] - movs r1, #1 - bl sub_080002B0 - movs r1, #0xc4 - lsls r1, r1, #2 - cmp r0, r1 - bne _080894BC - ldrh r1, [r6] - adds r0, r5, #0 - movs r2, #1 - bl sub_0800015E -_080894BC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080894C0: .4byte gUnk_03000BF0 -_080894C4: .4byte 0x0000400B - - thumb_func_start sub_080894C8 -sub_080894C8: @ 0x080894C8 - push {r4, lr} - adds r3, r0, #0 - movs r2, #0 - ldr r1, _080894E0 @ =gUnk_02034350 - adds r4, r1, #0 - adds r4, #0xac - ldr r0, [r4] - mov ip, r1 - cmp r0, #0 - bne _080894E4 - str r3, [r4] - b _080894FA - .align 2, 0 -_080894E0: .4byte gUnk_02034350 -_080894E4: - adds r2, #1 - cmp r2, #7 - bhi _080894FA - lsls r0, r2, #2 - mov r1, ip - adds r1, #0xac - adds r1, r0, r1 - ldr r0, [r1] - cmp r0, #0 - bne _080894E4 - str r3, [r1] -_080894FA: - pop {r4, pc} - - thumb_func_start sub_080894FC -sub_080894FC: @ 0x080894FC - push {r4, lr} - adds r3, r0, #0 - movs r2, #0 - ldr r1, _08089514 @ =gUnk_02034350 - adds r4, r1, #0 - adds r4, #0xac - ldr r0, [r4] - mov ip, r1 - cmp r3, r0 - bne _08089518 - str r2, [r4] - b _08089530 - .align 2, 0 -_08089514: .4byte gUnk_02034350 -_08089518: - adds r2, #1 - cmp r2, #7 - bhi _08089530 - lsls r0, r2, #2 - mov r1, ip - adds r1, #0xac - adds r1, r0, r1 - ldr r0, [r1] - cmp r3, r0 - bne _08089518 - movs r0, #0 - str r0, [r1] -_08089530: - adds r0, r3, #0 - bl sub_0805E7BC - pop {r4, pc} - - thumb_func_start sub_08089538 -sub_08089538: @ 0x08089538 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x86 - movs r0, #0x20 - strh r0, [r1] - adds r0, #0xef - bl sub_08004488 - adds r0, r5, #0 - adds r0, #0x80 - ldrh r0, [r0] - adds r6, r5, #0 - adds r6, #0x84 - ldrh r1, [r6] - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldrb r0, [r4] - cmp r0, #2 - bne _08089580 - ldrh r0, [r6] - movs r1, #1 - bl sub_080002B0 - ldr r1, _080895B8 @ =0x0000400B - cmp r0, r1 - bne _08089580 - movs r0, #0xc4 - lsls r0, r0, #2 - ldrh r1, [r6] - movs r2, #1 - bl sub_08000152 -_08089580: - adds r2, r5, #0 - adds r2, #0x84 - ldr r1, _080895BC @ =gUnk_080B4488 - ldrb r0, [r5, #0x15] - lsrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - ldrh r2, [r2] - adds r0, r0, r2 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x79 - beq _080895AC - cmp r0, #0x77 - bne _080895B4 -_080895AC: - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #0xfe - strb r0, [r1] -_080895B4: - pop {r4, r5, r6, pc} - .align 2, 0 -_080895B8: .4byte 0x0000400B -_080895BC: .4byte gUnk_080B4488 - - thumb_func_start sub_080895C0 -sub_080895C0: @ 0x080895C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0808964C - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _0808964C - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080002D0 - cmp r0, #0 - bne _080895FE - adds r0, r4, #0 - bl sub_08089454 - movs r0, #1 - b _08089654 -_080895FE: - movs r0, #0xf - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08089614 - adds r0, r4, #0 - bl sub_0806FA24 -_08089614: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r2, _08089658 @ =gUnk_08120CBC - ldrb r1, [r4, #0x15] - lsrs r1, r1, #2 - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldrh r3, [r4, #0x2e] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_08089454 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] -_0808964C: - adds r0, r4, #0 - bl sub_0800445C - movs r0, #0 -_08089654: - pop {r4, pc} - .align 2, 0 -_08089658: .4byte gUnk_08120CBC - - thumb_func_start sub_0808965C -sub_0808965C: @ 0x0808965C - push {lr} - adds r2, r0, #0 - ldr r3, _08089678 @ =gUnk_03000BF0 - ldrb r0, [r3, #4] - cmp r0, #0x3f - bls _08089680 - ldr r1, _0808967C @ =gUnk_08120CCC - subs r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r2, #0 - b _08089684 - .align 2, 0 -_08089678: .4byte gUnk_03000BF0 -_0808967C: .4byte gUnk_08120CCC -_08089680: - adds r0, r2, #0 - movs r1, #0xe9 -_08089684: - bl sub_080ADF80 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808968C -sub_0808968C: @ 0x0808968C - push {lr} - adds r2, r0, #0 - ldr r1, _08089694 @ =gUnk_08120D6C - b _080896A4 - .align 2, 0 -_08089694: .4byte gUnk_08120D6C -_08089698: - ldrh r0, [r1] - cmp r0, r2 - bne _080896A2 - ldrh r0, [r1, #2] - b _080896AC -_080896A2: - adds r1, #4 -_080896A4: - ldrh r0, [r1] - cmp r0, #0 - bne _08089698 - movs r0, #0 -_080896AC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080896B0 -sub_080896B0: @ 0x080896B0 - push {r4, r5, r6, r7, lr} - ldr r0, _08089750 @ =gUnk_03003F80 - ldrb r1, [r0, #5] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0x12 - bne _08089768 - ldr r6, _08089754 @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08089768 - ldrb r3, [r6, #0x14] - movs r2, #6 - ands r2, r3 - lsls r2, r2, #1 - ldr r0, _08089758 @ =gUnk_080B4468 - adds r2, r2, r0 - ldr r0, _0808975C @ =gUnk_080B4488 - lsrs r3, r3, #1 - lsls r3, r3, #1 - adds r3, r3, r0 - movs r0, #0x2e - ldrsh r1, [r6, r0] - movs r4, #0 - ldrsh r0, [r2, r4] - adds r1, r1, r0 - ldr r5, _08089760 @ =gUnk_03000BF0 - ldrh r0, [r5, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r7, #0x32 - ldrsh r0, [r6, r7] - movs r7, #2 - ldrsh r2, [r2, r7] - adds r0, r0, r2 - ldrh r2, [r5, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - movs r0, #0 - ldrsh r7, [r3, r0] - subs r1, r1, r7 - lsls r4, r1, #0x10 - lsrs r0, r4, #0x10 - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080002C8 - adds r1, r0, #0 - subs r0, #0x26 - cmp r0, #1 - bls _08089768 - cmp r1, #0x29 - beq _08089768 - ldrb r0, [r5] - bl sub_0808094C - asrs r1, r4, #0x10 - ldr r2, _08089764 @ =0x00002004 - adds r0, r0, r2 - adds r2, r0, r1 - ldrb r2, [r2] - subs r1, r1, r7 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r2, #0 - bne _08089768 - cmp r0, #0 - bne _08089768 - movs r0, #1 - b _0808976A - .align 2, 0 -_08089750: .4byte gUnk_03003F80 -_08089754: .4byte gLinkEntity -_08089758: .4byte gUnk_080B4468 -_0808975C: .4byte gUnk_080B4488 -_08089760: .4byte gUnk_03000BF0 -_08089764: .4byte 0x00002004 -_08089768: - movs r0, #0 -_0808976A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0808976C -sub_0808976C: @ 0x0808976C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080897D0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080897AE - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strb r1, [r2] - b _080897BA -_080897AE: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] -_080897BA: - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x68 - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r1, #2 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 -_080897D0: - ldrb r1, [r4, #0x10] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08089840 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08089844 @ =gUnk_03000BF0 - movs r3, #0xa - ldrsh r0, [r2, r3] - subs r5, r1, r0 - adds r3, r5, #0 - subs r3, #0x78 - movs r6, #0x32 - ldrsh r1, [r4, r6] - movs r6, #0xc - ldrsh r0, [r2, r6] - subs r1, r1, r0 - adds r2, r1, #0 - subs r2, #0x50 - adds r0, r3, #0 - cmp r0, #0 - bge _08089802 - adds r0, r5, #0 - subs r0, #0x75 -_08089802: - asrs r3, r0, #2 - adds r0, r2, #0 - cmp r0, #0 - bge _0808980E - adds r0, r1, #0 - subs r0, #0x4d -_0808980E: - asrs r2, r0, #2 - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r3, r0 - bge _0808981A - adds r3, r0, #0 -_0808981A: - cmp r3, #0x10 - ble _08089820 - movs r3, #0x10 -_08089820: - cmp r2, r0 - bge _08089826 - adds r2, r0, #0 -_08089826: - cmp r2, #0x10 - ble _0808982C - movs r2, #0x10 -_0808982C: - adds r0, r4, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x6a - ldrh r0, [r0] - adds r0, r0, r2 - strh r0, [r4, #0x32] -_08089840: - pop {r4, r5, r6, pc} - .align 2, 0 -_08089844: .4byte gUnk_03000BF0 - - thumb_func_start sub_08089848 -sub_08089848: @ 0x08089848 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08089870 @ =gUnk_08120D90 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004276 - pop {r4, pc} - .align 2, 0 -_08089870: .4byte gUnk_08120D90 - - thumb_func_start sub_08089874 -sub_08089874: @ 0x08089874 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08089940 - adds r0, r4, #0 - adds r0, #0x38 - movs r2, #3 - strb r2, [r0] - ldrb r1, [r4, #0xb] - adds r5, r0, #0 - cmp r1, #0 - bne _08089900 - ldrb r0, [r4, #0xa] - cmp r0, #0x80 - bne _080898B4 - strb r2, [r4, #0xc] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08089AE0 - b _08089940 -_080898B4: - str r1, [r4, #0x50] - adds r0, r4, #0 - movs r1, #0x29 - movs r2, #0 - movs r3, #0xff - bl sub_080A2988 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080898FA -_080898C8: - ldrb r3, [r4, #0xa] - adds r0, r4, #0 - movs r1, #0x29 - movs r2, #0 - bl sub_080A2988 - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _080898EE - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080898EA - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] -_080898EA: - ldr r0, [r4, #0x54] - str r0, [r4, #0x50] -_080898EE: - ldrb r0, [r4, #0xa] - subs r0, #1 - strb r0, [r4, #0xa] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080898C8 -_080898FA: - bl sub_0805E780 - b _08089940 -_08089900: - strb r3, [r4, #0xc] - ldr r0, [r4, #0x50] - cmp r0, #0 - bne _08089912 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _0808991A -_08089912: - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0808991A: - ldrb r0, [r4, #0xb] - cmp r0, #0xff - bne _08089934 - movs r0, #1 - strb r0, [r5] - adds r0, r4, #0 - bl sub_08016A30 - adds r0, r4, #0 - movs r1, #0x15 - bl sub_0801D2B4 - b _08089940 -_08089934: - ldrb r1, [r4, #0xb] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - rsbs r0, r0, #0 - strh r0, [r4, #0x36] -_08089940: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08089944 -sub_08089944: @ 0x08089944 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xb] - cmp r3, #0xff - bne _08089964 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - b _08089A76 -_08089964: - ldrb r1, [r4, #0x1b] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r2, r0 - strb r2, [r4, #0x19] - cmp r3, #1 - beq _08089984 - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _08089A76 -_08089984: - ldr r0, _08089998 @ =gLinkEntity - movs r1, #0x36 - ldrsh r2, [r0, r1] - movs r1, #0x24 - rsbs r1, r1, #0 - adds r6, r0, #0 - cmp r2, r1 - bge _0808999C - movs r0, #1 - b _0808999E - .align 2, 0 -_08089998: .4byte gLinkEntity -_0808999C: - movs r0, #0 -_0808999E: - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - subs r0, #1 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r4, #0x32] - adds r5, r6, #0 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xf - movs r3, #0xf - bl sub_080041A0 - cmp r0, #0 - beq _08089A62 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08089A62 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _080899EC - ldr r1, [r4, #0x54] - movs r0, #1 - strb r0, [r1, #0xc] -_080899EC: - ldr r1, _08089A78 @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r1, #0x14] - ldrh r0, [r5, #0x32] - subs r0, #0x24 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x36] - adds r0, #0x24 - strh r0, [r5, #0x36] - adds r0, r5, #0 - bl sub_0807AA80 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08089A62 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08089A20 - ldrh r0, [r1, #0x2e] - adds r0, #8 - strh r0, [r1, #0x2e] -_08089A20: - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08089A36 - ldrh r0, [r1, #0x2e] - subs r0, #8 - strh r0, [r1, #0x2e] -_08089A36: - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08089A4C - ldrh r0, [r1, #0x32] - adds r0, #8 - strh r0, [r1, #0x32] -_08089A4C: - adds r0, r6, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08089A62 - ldrh r0, [r1, #0x32] - subs r0, #8 - strh r0, [r1, #0x32] -_08089A62: - ldrb r0, [r4, #0xb] - subs r0, #1 - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldrh r0, [r4, #0x32] - adds r1, r1, r0 - strh r1, [r4, #0x32] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0xf] -_08089A76: - pop {r4, r5, r6, pc} - .align 2, 0 -_08089A78: .4byte gUnk_03003F80 - - thumb_func_start sub_08089A7C -sub_08089A7C: @ 0x08089A7C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #2 - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r4, #0x32] - ldr r5, _08089AB0 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xf - movs r3, #0xf - bl sub_080041A0 - cmp r0, #0 - beq _08089AB8 - ldr r2, _08089AB4 @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r2, #0x14] - ldr r0, [r2, #0x30] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #0x30] - b _08089AD0 - .align 2, 0 -_08089AB0: .4byte gLinkEntity -_08089AB4: .4byte gUnk_03003F80 -_08089AB8: - movs r2, #1 - strb r2, [r4, #0xc] - ldrh r1, [r4, #0x36] - ldrh r3, [r5, #0x36] - adds r0, r1, r3 - strh r0, [r5, #0x36] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x38 - strb r2, [r0] -_08089AD0: - ldrb r1, [r4, #0xb] - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - pop {r4, r5, pc} - - thumb_func_start sub_08089AE0 -sub_08089AE0: @ 0x08089AE0 - push {lr} - ldr r1, _08089AF8 @ =gLinkEntity - movs r2, #0xf - movs r3, #0xf - bl sub_080041A0 - cmp r0, #0 - beq _08089AF6 - ldr r1, _08089AFC @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r1, #0x14] -_08089AF6: - pop {pc} - .align 2, 0 -_08089AF8: .4byte gLinkEntity -_08089AFC: .4byte gUnk_03003F80 - - thumb_func_start sub_08089B00 -sub_08089B00: @ 0x08089B00 - push {lr} - ldr r2, _08089B14 @ =gUnk_08120DD0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089B14: .4byte gUnk_08120DD0 - - thumb_func_start sub_08089B18 -sub_08089B18: @ 0x08089B18 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r2, #1 - movs r6, #1 - strb r6, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r5, #4 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08089B38 - strb r0, [r4, #0xe] -_08089B38: - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _08089B66 - cmp r0, #2 - bgt _08089B50 - cmp r0, #1 - beq _08089B5A - b _08089B96 -_08089B50: - cmp r0, #3 - beq _08089B72 - cmp r0, #4 - beq _08089B7C - b _08089B96 -_08089B5A: - ldrh r0, [r4, #0x32] - subs r0, #8 - strh r0, [r4, #0x32] - movs r0, #0x28 - strb r0, [r4, #0xe] - b _08089B96 -_08089B66: - movs r0, #0xf - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08004168 - b _08089B96 -_08089B72: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - b _08089B96 -_08089B7C: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _08089B96 - ldrb r1, [r4, #0x18] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x18] - strb r6, [r4, #0xd] - b _08089B9E -_08089B96: - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 -_08089B9E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08089BA0 -sub_08089BA0: @ 0x08089BA0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08004274 - ldrb r0, [r5, #0xa] - cmp r0, #4 - bhi _08089BD0 - lsls r0, r0, #2 - ldr r1, _08089BB8 @ =_08089BBC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08089BB8: .4byte _08089BBC -_08089BBC: @ jump table - .4byte _08089BD0 @ case 0 - .4byte _08089BD6 @ case 1 - .4byte _08089BD6 @ case 2 - .4byte _08089C4C @ case 3 - .4byte _08089C72 @ case 4 -_08089BD0: - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _08089CBA -_08089BD6: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08089CBA - ldrb r0, [r5, #0xa] - cmp r0, #2 - bne _08089C42 - ldr r0, [r5, #0x54] - ldrh r0, [r0, #6] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08089C48 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x10 - bl sub_0807AB44 - subs r4, #0x4f - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_0807AB44 - adds r0, r5, #0 - movs r1, #0x10 - movs r2, #0 - bl sub_0807AB44 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0807AB44 -_08089C42: - bl sub_0805E780 - b _08089CBA - .align 2, 0 -_08089C48: .4byte gUnk_03000BF0 -_08089C4C: - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08089C58 - bl sub_0805E780 -_08089C58: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08089C68 - bl sub_0805E780 -_08089C68: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FA24 - b _08089CBA -_08089C72: - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - adds r1, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _08089C96 - cmp r1, #0 - bne _08089CBA - movs r0, #1 - strb r0, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r5, #0x18] - b _08089CBA -_08089C96: - cmp r1, #0 - beq _08089CBA - movs r0, #0 - strb r0, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #4 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 -_08089CBA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08089CBC -sub_08089CBC: @ 0x08089CBC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _08089CDC - movs r0, #1 - strb r0, [r4, #0xc] - str r1, [r4, #0x34] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #9 - bl sub_08004260 -_08089CDC: - ldr r1, [r4, #0x50] - ldr r0, [r1, #0x34] - cmp r0, #0 - bne _08089CEA - bl sub_0805E780 - b _08089D02 -_08089CEA: - movs r2, #0x36 - ldrsh r0, [r1, r2] - movs r2, #0x90 - lsls r2, r2, #1 - subs r2, r2, r0 - adds r0, r1, #0 - adds r0, #0x7e - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_08089D02: - pop {r4, pc} - - thumb_func_start sub_08089D04 -sub_08089D04: @ 0x08089D04 - push {lr} - ldr r2, _08089D18 @ =gUnk_08120DF4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089D18: .4byte gUnk_08120DF4 - - thumb_func_start sub_08089D1C -sub_08089D1C: @ 0x08089D1C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0x19] - movs r4, #0x3f - adds r0, r4, #0 - ands r0, r1 - movs r6, #0x80 - orrs r0, r6 - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x1b] - adds r0, r4, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5, #0x1b] - adds r0, r5, #0 - movs r1, #4 - bl sub_0805E3A0 - ldrb r0, [r5, #0xa] - cmp r0, #7 - bne _08089D90 - ldrb r1, [r5, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08089D54 - b _08089F06 -_08089D54: - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08089D74 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08089D74 - bl sub_0807CBD0 - cmp r0, #0 - bne _08089D6A - b _08089F06 -_08089D6A: - ldrb r1, [r5, #0x1b] - adds r0, r4, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r5, #0x1b] -_08089D74: - ldr r4, _08089D8C @ =gUnk_08120E3C - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r4 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_08004260 - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r4 - b _08089DCE - .align 2, 0 -_08089D8C: .4byte gUnk_08120E3C -_08089D90: - cmp r0, #0 - beq _08089DAC - ldr r0, _08089DA8 @ =gUnk_08120E14 - ldrb r1, [r5, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r5, #0 - bl sub_08004260 - b _08089DC6 - .align 2, 0 -_08089DA8: .4byte gUnk_08120E14 -_08089DAC: - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl sub_080AE008 - ldr r0, _08089E08 @ =gUnk_08120E14 - ldrb r1, [r5, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r5, #0 - bl sub_080042AC -_08089DC6: - ldr r1, _08089E08 @ =gUnk_08120E14 - ldrb r0, [r5, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 -_08089DCE: - ldrb r0, [r0, #1] - adds r3, r5, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - cmp r0, #1 - bge _08089DFC - b _08089F00 -_08089DFC: - cmp r0, #6 - ble _08089E0C - cmp r0, #7 - beq _08089E1C - b _08089F00 - .align 2, 0 -_08089E08: .4byte gUnk_08120E14 -_08089E0C: - adds r0, r5, #0 - adds r0, #0x60 - movs r2, #0 - movs r1, #0xe0 - lsls r1, r1, #1 - strh r1, [r0] - strb r2, [r5, #0xe] - b _08089F00 -_08089E1C: - ldrb r1, [r5, #0xb] - cmp r1, #3 - bgt _08089E2C - cmp r1, #2 - bge _08089EEC - cmp r1, #0 - beq _08089E32 - b _08089F00 -_08089E2C: - cmp r1, #4 - beq _08089EF8 - b _08089F00 -_08089E32: - movs r0, #0x10 - str r0, [r5, #0x6c] - strb r1, [r5, #0xe] -_08089E38: - movs r0, #0x2c - movs r1, #7 - movs r2, #1 - bl CreateObject - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _08089EC8 - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0x2e] - ldr r2, [r5, #0x54] - ldr r1, [r5, #0x6c] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #3 - strb r0, [r5, #0xf] -_08089E5C: - ldrb r0, [r5, #0xe] - lsls r0, r0, #2 - ldr r1, _08089EE4 @ =gUnk_08120DFC - adds r4, r0, r1 - ldrb r2, [r4] - subs r2, #2 - movs r0, #0x2c - movs r1, #7 - bl CreateObject - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _08089EAA - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r2, [r5, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldr r2, [r5, #0x54] - ldr r1, [r5, #0x6c] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - movs r1, #2 - ldrsb r1, [r4, r1] - subs r0, r0, r1 - strh r0, [r2, #0x32] - ldr r3, [r5, #0x54] - ldrb r2, [r4, #3] - movs r0, #1 - ands r2, r0 - lsls r2, r2, #6 - ldrb r0, [r3, #0x18] - movs r4, #0x41 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] -_08089EAA: - ldrb r0, [r5, #0xe] - adds r2, r0, #1 - strb r2, [r5, #0xe] - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08089E5C - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _08089EC8 - strb r1, [r5, #0xe] -_08089EC8: - ldr r0, [r5, #0x6c] - adds r0, #0x38 - str r0, [r5, #0x6c] - ldrh r1, [r5, #0x32] - subs r1, r1, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - ldr r0, _08089EE8 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - cmp r1, r0 - bge _08089E38 - movs r0, #1 - strb r0, [r5, #0xe] - b _08089F00 - .align 2, 0 -_08089EE4: .4byte gUnk_08120DFC -_08089EE8: .4byte gUnk_03000BF0 -_08089EEC: - ldrb r0, [r5, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r5, #0x19] -_08089EF8: - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] -_08089F00: - adds r0, r5, #0 - bl sub_08089F08 -_08089F06: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08089F08 -sub_08089F08: @ 0x08089F08 - push {lr} - ldr r2, _08089F1C @ =gUnk_08120E50 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089F1C: .4byte gUnk_08120E50 - - thumb_func_start sub_08089F20 -sub_08089F20: @ 0x08089F20 - push {lr} - ldr r2, _08089F34 @ =gUnk_08120E78 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08089F34: .4byte gUnk_08120E78 - - thumb_func_start sub_08089F38 -sub_08089F38: @ 0x08089F38 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08089F6C - ldrb r0, [r4, #0xe] - cmp r0, #1 - bhi _08089F5A - adds r0, #1 - strb r0, [r4, #0xe] - b _08089F6C -_08089F5A: - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08089F6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08089F70 -sub_08089F70: @ 0x08089F70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08089F8E - movs r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #0xcc - lsls r0, r0, #1 - bl sub_080A3268 -_08089F8E: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08089FEC - movs r0, #0x2c - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08089FBE - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] -_08089FBE: - movs r0, #0x2c - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08089FDC - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x32] - subs r0, #0x10 - strh r0, [r1, #0x32] -_08089FDC: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #0x18] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08089FEC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08089FF0 -sub_08089FF0: @ 0x08089FF0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0808A00E - movs r0, #0x10 - strb r0, [r1, #0xe] - movs r0, #0xcc - lsls r0, r0, #1 - bl sub_080A3268 -_0808A00E: - pop {pc} - - thumb_func_start sub_0808A010 -sub_0808A010: @ 0x0808A010 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808A07E - ldrb r0, [r4, #0xe] - lsls r0, r0, #2 - ldr r1, _0808A0BC @ =gUnk_08120DFC - adds r5, r0, r1 - ldrb r1, [r5] - movs r0, #0x2c - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0808A06C - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldr r2, [r4, #0x54] - movs r1, #2 - ldrsb r1, [r5, r1] - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r2, #0x32] - ldr r3, [r4, #0x54] - ldrb r1, [r5, #3] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] -_0808A06C: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _0808A07E - movs r0, #0 - strb r0, [r4, #0xe] -_0808A07E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A0BA - movs r0, #0x2c - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0808A0A8 - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] -_0808A0A8: - ldrh r0, [r4, #0x32] - subs r0, #0x38 - strh r0, [r4, #0x32] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0808A0BA - adds r0, r4, #0 - bl sub_0805E7BC -_0808A0BA: - pop {r4, r5, pc} - .align 2, 0 -_0808A0BC: .4byte gUnk_08120DFC - - thumb_func_start sub_0808A0C0 -sub_0808A0C0: @ 0x0808A0C0 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808A0D6 - adds r0, r2, #0 - bl sub_08004274 -_0808A0D6: - pop {pc} - - thumb_func_start nullsub_517 -nullsub_517: @ 0x0808A0D8 - bx lr - .align 2, 0 - - thumb_func_start sub_0808A0DC -sub_0808A0DC: @ 0x0808A0DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #1 - bne _0808A0EC - b _0808A202 -_0808A0EC: - cmp r0, #1 - bgt _0808A0F6 - cmp r0, #0 - beq _0808A120 - b _0808A202 -_0808A0F6: - cmp r0, #4 - ble _0808A0FC - b _0808A202 -_0808A0FC: - ldr r0, _0808A118 @ =gUnk_03003F80 - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - bne _0808A1DA - ldr r1, _0808A11C @ =gLinkEntity - adds r0, r5, #0 - movs r2, #0 - movs r3, #8 - bl sub_080041A0 - cmp r0, #0 - beq _0808A1DC - b _0808A1B0 - .align 2, 0 -_0808A118: .4byte gUnk_03003F80 -_0808A11C: .4byte gLinkEntity -_0808A120: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0808A202 - ldr r4, _0808A1A8 @ =gUnk_03000BF0 - ldrh r0, [r4, #8] - str r0, [r5, #0x6c] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - ldrh r2, [r4, #8] - subs r0, r0, r2 - lsrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - adds r0, #0x70 - strh r1, [r0] - adds r6, r4, #0 - mov r8, r3 - adds r4, r0, #0 - ldr r7, _0808A1AC @ =0x00004017 -_0808A154: - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - mov r2, r8 - ands r1, r2 - ldrh r2, [r6, #8] - ldr r0, [r5, #0x6c] - subs r0, r0, r2 - lsrs r0, r0, #4 - mov r2, r8 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] - ldrh r1, [r4] - adds r0, r7, #0 - movs r2, #2 - bl sub_0800015E - ldrh r1, [r4] - adds r0, r7, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, [r5, #0x6c] - adds r2, r0, #0 - adds r2, #0x10 - str r2, [r5, #0x6c] - ldrh r0, [r6, #8] - ldrh r1, [r6, #0x20] - adds r0, r0, r1 - cmp r2, r0 - bhs _0808A1A2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - cmp r2, r0 - bls _0808A154 -_0808A1A2: - movs r0, #0 - strb r0, [r5, #0xe] - b _0808A202 - .align 2, 0 -_0808A1A8: .4byte gUnk_03000BF0 -_0808A1AC: .4byte 0x00004017 -_0808A1B0: - adds r3, r5, #0 - adds r3, #0x58 - ldrb r2, [r3] - ldrb r1, [r5, #0xb] - subs r1, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, #1 - cmp r2, r0 - bne _0808A1DE - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0808A1DE - movs r0, #1 - strb r0, [r5, #0xe] - ldrb r1, [r3] - adds r1, #1 - adds r0, r5, #0 - bl sub_08004260 - b _0808A1DE -_0808A1DA: - movs r0, #0 -_0808A1DC: - strb r0, [r5, #0xe] -_0808A1DE: - adds r0, r5, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A202 - ldrb r0, [r5, #0xb] - subs r0, #1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #1 - adds r0, r5, #0 - bl sub_08004260 -_0808A202: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0808A208 -sub_0808A208: @ 0x0808A208 - push {lr} - ldr r2, _0808A21C @ =gUnk_08120E84 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A21C: .4byte gUnk_08120E84 - - thumb_func_start sub_0808A220 -sub_0808A220: @ 0x0808A220 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x1b] - movs r6, #0x3f - adds r0, r6, #0 - ands r0, r1 - movs r5, #0x80 - orrs r0, r5 - strb r0, [r4, #0x1b] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808A2E4 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r7, #0x32 - ldrsh r0, [r4, r7] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r2, r4, #0 - adds r2, #0x70 - strh r1, [r2] - ldr r0, _0808A2E8 @ =0x00004017 - ldrh r1, [r2] - movs r2, #1 - bl sub_0800015E - movs r7, #1 - strb r7, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0x15 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r3, r0, #0 - cmp r3, #0 - beq _0808A2D4 - ldrh r0, [r4, #0x32] - adds r0, #0x38 - strh r0, [r3, #0x32] - ldrh r0, [r4, #0x12] - strh r0, [r3, #0x12] - adds r0, r4, #0 - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x60 - strh r1, [r0] - ldrb r1, [r4, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r3, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1a] - adds r1, r3, #0 - adds r1, #0x58 - movs r0, #2 - strb r0, [r1] - movs r0, #0x80 - strb r0, [r3, #0xe] - strb r7, [r3, #0xa] - ldrb r1, [r3, #0x19] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r3, #0x19] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r3, #0x1b] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r3, #0x1b] -_0808A2D4: - adds r0, r4, #0 - movs r1, #0x2c - movs r2, #9 - movs r3, #0 - bl sub_080A2988 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808A2E4: .4byte gUnk_03000BF0 -_0808A2E8: .4byte 0x00004017 - - thumb_func_start nullsub_518 -nullsub_518: @ 0x0808A2EC - bx lr - .align 2, 0 - - thumb_func_start sub_0808A2F0 -sub_0808A2F0: @ 0x0808A2F0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _0808A316 - movs r0, #1 - strb r0, [r5, #0xd] - ldrh r0, [r5, #0x32] - adds r0, #0x28 - strh r0, [r5, #0x32] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0 - bl sub_0800029C - adds r1, r5, #0 - adds r1, #0x72 - strh r0, [r1] -_0808A316: - ldr r3, _0808A38C @ =gLinkEntity - ldrb r1, [r3, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x1b] - movs r7, #0x3f - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x1b] - ldrb r1, [r3, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x19] - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x19] - ldr r0, _0808A390 @ =gUnk_03003F80 - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - bne _0808A39C - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0 - bl sub_0800029C - ldr r3, _0808A394 @ =0x00004014 - cmp r0, r3 - beq _0808A3EC - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _0808A398 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r7 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - adds r2, #0x18 - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r7 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r3, #0 - movs r2, #1 - bl sub_0800015E - b _0808A3EC - .align 2, 0 -_0808A38C: .4byte gLinkEntity -_0808A390: .4byte gUnk_03003F80 -_0808A394: .4byte 0x00004014 -_0808A398: .4byte gUnk_03000BF0 -_0808A39C: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - adds r6, r5, #0 - adds r6, #0x72 - ldrh r4, [r6] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0 - bl sub_0800029C - cmp r4, r0 - beq _0808A3EC - ldrh r0, [r6] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808A3F0 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r7 - movs r4, #0x32 - ldrsh r2, [r5, r4] - ldrh r3, [r3, #8] - adds r3, #0x18 - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl sub_0800015E -_0808A3EC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808A3F0: .4byte gUnk_03000BF0 - - thumb_func_start sub_0808A3F4 -sub_0808A3F4: @ 0x0808A3F4 - push {lr} - ldr r2, _0808A408 @ =gUnk_08121060 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A408: .4byte gUnk_08121060 - - thumb_func_start sub_0808A40C -sub_0808A40C: @ 0x0808A40C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808A41E - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x28 - strb r0, [r4, #0xe] -_0808A41E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808A466 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - movs r1, #0x40 - subs r1, r1, r0 - strb r1, [r4, #0xe] - movs r0, #0x2d - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0808A466 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - bl sub_08000E50 - ldr r2, _0808A468 @ =gUnk_08121068 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] -_0808A466: - pop {r4, r5, pc} - .align 2, 0 -_0808A468: .4byte gUnk_08121068 - - thumb_func_start sub_0808A46C -sub_0808A46C: @ 0x0808A46C - push {lr} - ldr r2, _0808A480 @ =gUnk_08121070 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A480: .4byte gUnk_08121070 - - thumb_func_start sub_0808A484 -sub_0808A484: @ 0x0808A484 - push {r4, lr} - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - movs r1, #0x40 - strh r1, [r0, #0x24] - movs r1, #6 - strb r1, [r0, #0x15] - ldrb r3, [r0, #0x19] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r3 - movs r4, #0x40 - orrs r1, r4 - strb r1, [r0, #0x19] - movs r1, #0x29 - adds r1, r1, r0 - mov ip, r1 - ldrb r3, [r1] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r3 - mov r3, ip - strb r1, [r3] - ldrb r1, [r0, #0x1b] - ands r2, r1 - orrs r2, r4 - strb r2, [r0, #0x1b] - movs r1, #0x28 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808A4D0 -sub_0808A4D0: @ 0x0808A4D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A4F2 - adds r0, r4, #0 - bl sub_0805E7BC -_0808A4F2: - pop {r4, pc} - - thumb_func_start sub_0808A4F4 -sub_0808A4F4: @ 0x0808A4F4 - push {lr} - ldr r2, _0808A508 @ =gUnk_08121078 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A508: .4byte gUnk_08121078 - - thumb_func_start sub_0808A50C -sub_0808A50C: @ 0x0808A50C - push {lr} - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - ldrb r1, [r0, #0xc] - adds r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x19] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #0x19] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - movs r2, #0x39 - rsbs r2, r2, #0 - ands r1, r2 - movs r2, #0x18 - orrs r1, r2 - strb r1, [r3] - bl sub_0808A644 - pop {pc} - - thumb_func_start sub_0808A550 -sub_0808A550: @ 0x0808A550 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _0808A58C @ =0x0000401F - cmp r1, r0 - bhi _0808A5CC - subs r0, #3 - cmp r1, r0 - blo _0808A5CC - adds r0, r1, #0 - subs r0, #0x1c - lsls r1, r0, #1 - strb r1, [r4, #0x14] - lsls r1, r0, #3 - strb r1, [r4, #0x15] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _0808A590 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _0808A598 - .align 2, 0 -_0808A58C: .4byte 0x0000401F -_0808A590: - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_0808A598: - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - ldr r0, _0808A5C8 @ =0x0000010F - bl sub_08004488 - b _0808A5DE - .align 2, 0 -_0808A5C8: .4byte 0x0000010F -_0808A5CC: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _0808A5DE - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0808A5DE: - pop {r4, pc} - - thumb_func_start sub_0808A5E0 -sub_0808A5E0: @ 0x0808A5E0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0800445C - ldr r2, _0808A618 @ =gUnk_08121088 - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0xf - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A616 - movs r0, #0 - strb r0, [r4, #0xc] -_0808A616: - pop {r4, r5, pc} - .align 2, 0 -_0808A618: .4byte gUnk_08121088 - - thumb_func_start sub_0808A61C -sub_0808A61C: @ 0x0808A61C - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808A634 - adds r0, r2, #0 - bl sub_08004274 - b _0808A640 -_0808A634: - adds r0, r2, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r2, #7 - orrs r1, r2 - strb r1, [r0] -_0808A640: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808A644 -sub_0808A644: @ 0x0808A644 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808A6D0 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x74 - strh r1, [r5] - ldrh r0, [r5] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] - ldrh r0, [r5] - ldrb r1, [r6] - bl sub_080002E0 - adds r1, r4, #0 - adds r1, #0x72 - strb r0, [r1] - ldrh r0, [r5] - ldrb r1, [r6] - bl sub_080002C8 - cmp r0, #0x19 - beq _0808A69E - cmp r0, #0xf0 - bne _0808A6E2 -_0808A69E: - ldr r0, _0808A6D4 @ =0x00004015 - ldrh r1, [r5] - ldrb r2, [r6] - bl sub_0800015E - movs r0, #3 - strb r0, [r4, #0xc] - adds r5, r4, #0 - adds r5, #0x86 - ldrh r0, [r5] - bl sub_0807CBE4 - cmp r0, #0 - bne _0808A6D8 - ldrh r0, [r5] - bl sub_0807CCC8 - movs r0, #0xcd - bl sub_080A3268 - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 - b _0808A6EC - .align 2, 0 -_0808A6D0: .4byte gUnk_03000BF0 -_0808A6D4: .4byte 0x00004015 -_0808A6D8: - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _0808A6EC -_0808A6E2: - ldr r0, _0808A6F0 @ =0x0000401B - ldrh r1, [r5] - ldrb r2, [r6] - bl sub_0800015E -_0808A6EC: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808A6F0: .4byte 0x0000401B - - thumb_func_start sub_0808A6F4 -sub_0808A6F4: @ 0x0808A6F4 - push {lr} - adds r2, r0, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - cmp r1, #0 - bne _0808A706 - adds r0, #0x33 - strh r1, [r0] -_0808A706: - ldr r0, _0808A718 @ =gUnk_08121178 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A718: .4byte gUnk_08121178 - - thumb_func_start sub_0808A71C -sub_0808A71C: @ 0x0808A71C - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x8f - strb r0, [r1] - subs r1, #4 - movs r0, #0xa - strb r0, [r1] - ldr r0, _0808A75C @ =gUnk_08121180 - str r0, [r4, #0x48] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0808A764 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808A760 - strb r5, [r4, #0xa] - b _0808A76E - .align 2, 0 -_0808A75C: .4byte gUnk_08121180 -_0808A760: - strb r0, [r4, #0xa] - b _0808A76E -_0808A764: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_0808A76E: - adds r0, r4, #0 - bl sub_0808A7D8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808A778 -sub_0808A778: @ 0x0808A778 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808A7D0 - adds r1, r5, #0 - adds r1, #0x70 - ldrh r0, [r1] - cmp r0, #0 - bne _0808A7D0 - movs r0, #1 - strh r0, [r1] - ldrb r0, [r5, #0xa] - movs r1, #1 - eors r0, r1 - strb r0, [r5, #0xa] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xe8 - strb r0, [r1] - adds r0, r5, #0 - bl sub_0808A7D8 - adds r4, r5, #0 - adds r4, #0x86 - ldrh r0, [r4] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808A7C2 - ldrh r0, [r4] - bl sub_0807CD48 - b _0808A7C8 -_0808A7C2: - ldrh r0, [r4] - bl sub_0807CCC8 -_0808A7C8: - ldr r1, _0808A7D4 @ =0x00000117 - adds r0, r5, #0 - bl sub_0800449C -_0808A7D0: - pop {r4, r5, pc} - .align 2, 0 -_0808A7D4: .4byte 0x00000117 - - thumb_func_start sub_0808A7D8 -sub_0808A7D8: @ 0x0808A7D8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _0808A818 - movs r0, #0xde - lsls r0, r0, #2 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808A814 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - b _0808A844 - .align 2, 0 -_0808A814: .4byte gUnk_03000BF0 -_0808A818: - ldr r0, _0808A848 @ =0x00000377 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808A84C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 -_0808A844: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808A848: .4byte 0x00000377 -_0808A84C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0808A850 -sub_0808A850: @ 0x0808A850 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0808A86C @ =gUnk_08121188 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08080CB4 - pop {r4, pc} - .align 2, 0 -_0808A86C: .4byte gUnk_08121188 - - thumb_func_start sub_0808A870 -sub_0808A870: @ 0x0808A870 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _0808A8BE - cmp r0, #1 - bgt _0808A884 - cmp r0, #0 - beq _0808A896 - b _0808A8C4 -_0808A884: - cmp r0, #3 - bgt _0808A8C4 - adds r0, r5, #0 - bl sub_0808A968 - adds r0, r5, #0 - bl sub_0808A8E0 - b _0808A8C4 -_0808A896: - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_0808094C - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_0806F798 - lsls r0, r0, #1 - adds r0, #4 - adds r4, r4, r0 - str r4, [r5, #0x6c] - ldrh r1, [r4] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] - movs r0, #1 - strb r0, [r5, #0xc] - b _0808A8C4 -_0808A8BE: - adds r0, r5, #0 - bl sub_0808A968 -_0808A8C4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808A8C8 -sub_0808A8C8: @ 0x0808A8C8 - push {lr} - adds r2, r0, #0 - adds r0, #0x68 - ldr r1, [r2, #0x6c] - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _0808A8DE - adds r0, r2, #0 - bl sub_0808A968 -_0808A8DE: - pop {pc} - - thumb_func_start sub_0808A8E0 -sub_0808A8E0: @ 0x0808A8E0 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - cmp r2, #0 - beq _0808A8F0 - cmp r2, #1 - beq _0808A930 - b _0808A954 -_0808A8F0: - ldr r0, [r4, #0x70] - cmp r0, #0 - beq _0808A930 - ldr r3, [r4, #0x20] - cmp r3, #0 - bge _0808A926 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0808A90C - str r2, [r4, #0x70] - b _0808A926 -_0808A90C: - ldr r0, _0808A918 @ =0xFFFFC000 - cmp r3, r0 - bge _0808A920 - ldr r0, _0808A91C @ =0xFFFFFC00 - b _0808A924 - .align 2, 0 -_0808A918: .4byte 0xFFFFC000 -_0808A91C: .4byte 0xFFFFFC00 -_0808A920: - movs r0, #0x80 - lsls r0, r0, #3 -_0808A924: - str r0, [r4, #0x70] -_0808A926: - ldr r1, [r4, #0x70] - adds r0, r4, #0 - bl sub_08003FC4 - b _0808A962 -_0808A930: - ldr r2, _0808A964 @ =gUnk_08121194 - ldrb r0, [r4, #0xf] - adds r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08017850 - cmp r0, #0 - beq _0808A962 -_0808A954: - ldrb r1, [r4, #0xb] - movs r0, #0x5c - movs r2, #0 - bl sub_080A7C00 - bl sub_0805E780 -_0808A962: - pop {r4, pc} - .align 2, 0 -_0808A964: .4byte gUnk_08121194 - - thumb_func_start sub_0808A968 -sub_0808A968: @ 0x0808A968 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x22 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r2, #0x13 - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0808A9C0 @ =gUnk_08121C58 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #0xa0 - lsls r0, r0, #6 - str r0, [r4, #0x70] - pop {r4, pc} - .align 2, 0 -_0808A9C0: .4byte gUnk_08121C58 - - thumb_func_start sub_0808A9C4 -sub_0808A9C4: @ 0x0808A9C4 - push {lr} - ldr r2, _0808A9D8 @ =gUnk_0812119C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A9D8: .4byte gUnk_0812119C - - thumb_func_start sub_0808A9DC -sub_0808A9DC: @ 0x0808A9DC - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xa] - strb r1, [r0, #0x1e] - ldrb r1, [r0, #0x19] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x19] - adds r0, #0x29 - ldrb r1, [r0] - movs r2, #7 - orrs r1, r2 - strb r1, [r0] - bx lr - - thumb_func_start nullsub_519 -nullsub_519: @ 0x0808A9F8 - bx lr - .align 2, 0 - - thumb_func_start sub_0808A9FC -sub_0808A9FC: @ 0x0808A9FC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0808AA18 @ =gUnk_081211A4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r4, #0x41 - movs r0, #0 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_0808AA18: .4byte gUnk_081211A4 - - thumb_func_start sub_0808AA1C -sub_0808AA1C: @ 0x0808AA1C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r4, #0 - movs r6, #1 - strb r6, [r5, #0xc] - bl sub_08052660 - cmp r0, #0 - bne _0808AA36 - adds r0, r5, #0 - movs r1, #0 - bl sub_0801D2B4 -_0808AA36: - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _0808AACC - cmp r0, #1 - bgt _0808AA46 - cmp r0, #0 - beq _0808AA4C - b _0808AB5E -_0808AA46: - cmp r0, #2 - beq _0808AB20 - b _0808AB5E -_0808AA4C: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0808AAC0 @ =gUnk_080FD224 - str r0, [r5, #0x48] - strb r6, [r5, #0x16] - ldr r0, _0808AAC4 @ =0x00004022 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808AAC8 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r7, #0x32 - ldrsh r2, [r5, r7] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - adds r0, r5, #0 - adds r0, #0x45 - strb r6, [r0] - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x6e - strb r0, [r1] - subs r1, #4 - movs r0, #0xe - strb r0, [r1] - strb r6, [r5, #0x1c] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #4 - strb r0, [r1] - b _0808AB5E - .align 2, 0 -_0808AAC0: .4byte gUnk_080FD224 -_0808AAC4: .4byte 0x00004022 -_0808AAC8: .4byte gUnk_03000BF0 -_0808AACC: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0808AB10 - ldr r0, _0808AB1C @ =gUnk_080FD224 - str r0, [r5, #0x48] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r0, #0x45 - strb r6, [r0] - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x6e - strb r0, [r1] - subs r1, #4 - movs r0, #4 - strb r0, [r1] - strb r6, [r5, #0x1c] - movs r0, #3 - strb r0, [r5, #0xc] -_0808AB10: - ldrb r1, [r5, #0x14] - adds r1, #9 - adds r0, r5, #0 - bl sub_08004260 - b _0808AB5E - .align 2, 0 -_0808AB1C: .4byte gUnk_080FD224 -_0808AB20: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #0x19] - ldrb r1, [r5, #0x14] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0808AB52 - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [r5, #0x74] - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [r5, #0x78] - b _0808AB5E -_0808AB52: - movs r0, #0x80 - lsls r0, r0, #2 - str r0, [r5, #0x78] - movs r0, #0x80 - lsls r0, r0, #1 - str r0, [r5, #0x74] -_0808AB5E: - adds r0, r5, #0 - bl sub_0808AB68 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0808AB68 -sub_0808AB68: @ 0x0808AB68 - push {lr} - ldr r2, _0808AB7C @ =gUnk_081211B4 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808AB7C: .4byte gUnk_081211B4 - - thumb_func_start sub_0808AB80 -sub_0808AB80: @ 0x0808AB80 - push {lr} - ldr r2, _0808AB94 @ =gUnk_081211C0 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808AB94: .4byte gUnk_081211C0 - - thumb_func_start sub_0808AB98 -sub_0808AB98: @ 0x0808AB98 - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x50] - ldrh r1, [r2, #0xc] - ldr r0, _0808ABB0 @ =0x00000201 - cmp r1, r0 - bne _0808ABB4 - movs r0, #0 - str r0, [r2, #0x54] - bl sub_0805E780 - b _0808ABC2 - .align 2, 0 -_0808ABB0: .4byte 0x00000201 -_0808ABB4: - ldrb r0, [r2, #0xc] - cmp r0, #2 - bne _0808ABC2 - adds r0, r3, #0 - movs r1, #0 - bl sub_0808B168 -_0808ABC2: - pop {pc} - - thumb_func_start sub_0808ABC4 -sub_0808ABC4: @ 0x0808ABC4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0xc] - ldr r0, _0808AC38 @ =0x00000201 - cmp r1, r0 - bne _0808ABD6 - bl sub_0805E780 -_0808ABD6: - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x50] - bl sub_0808B1F0 - adds r2, r0, #0 - cmp r2, #7 - bhi _0808ABE6 - movs r2, #0 -_0808ABE6: - ldrb r3, [r4, #0x14] - lsls r1, r3, #2 - ldr r0, _0808AC3C @ =gUnk_081211CC - adds r5, r1, r0 - cmp r2, #0x1f - bhi _0808AC5A - cmp r2, #0 - beq _0808ABF8 - subs r2, #6 -_0808ABF8: - ldrh r0, [r5] - str r0, [r4, #0x70] - ldr r1, [r4, #0x50] - movs r0, #2 - ldrsb r0, [r5, r0] - ldrh r3, [r1, #0x2e] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - movs r0, #3 - ldrsb r0, [r5, r0] - ldrh r1, [r1, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r1, [r4, #0x14] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808AC40 - lsls r1, r2, #4 - movs r0, #0x80 - lsls r0, r0, #2 - subs r0, r0, r1 - str r0, [r4, #0x74] - lsls r0, r2, #3 - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r0, r1 - str r0, [r4, #0x78] - movs r0, #0xf - strb r0, [r4, #0x1e] - b _0808ACDE - .align 2, 0 -_0808AC38: .4byte 0x00000201 -_0808AC3C: .4byte gUnk_081211CC -_0808AC40: - lsls r1, r2, #4 - movs r0, #0x80 - lsls r0, r0, #2 - subs r0, r0, r1 - str r0, [r4, #0x78] - lsls r0, r2, #3 - movs r3, #0x90 - lsls r3, r3, #1 - adds r0, r0, r3 - str r0, [r4, #0x74] - movs r0, #0x14 - strb r0, [r4, #0x1e] - b _0808ACDE -_0808AC5A: - movs r0, #1 - ands r3, r0 - cmp r3, #0 - beq _0808AC9E - adds r1, r2, #0 - subs r1, #0x20 - lsls r1, r1, #2 - adds r0, #0xff - subs r0, r0, r1 - str r0, [r4, #0x74] - lsls r0, r2, #3 - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r0, r1 - str r0, [r4, #0x78] - movs r0, #0x10 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808AC92 - ldr r0, [r4, #0x50] - lsrs r1, r2, #1 - ldrh r0, [r0, #0x2e] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - b _0808ACDE -_0808AC92: - ldr r1, [r4, #0x50] - lsrs r0, r2, #1 - ldrh r1, [r1, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - b _0808ACDE -_0808AC9E: - adds r1, r2, #0 - subs r1, #0x20 - lsls r1, r1, #2 - movs r0, #0x80 - lsls r0, r0, #1 - subs r0, r0, r1 - str r0, [r4, #0x78] - lsls r0, r2, #3 - movs r3, #0xa0 - lsls r3, r3, #1 - adds r0, r0, r3 - str r0, [r4, #0x74] - movs r0, #0x15 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808ACCE - ldr r0, [r4, #0x50] - lsrs r1, r2, #1 - ldrh r0, [r0, #0x32] - adds r1, r1, r0 - b _0808ACD6 -_0808ACCE: - ldr r0, [r4, #0x50] - lsrs r2, r2, #1 - ldrh r1, [r0, #0x32] - subs r1, r1, r2 -_0808ACD6: - movs r0, #3 - ldrsb r0, [r5, r0] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_0808ACDE: - ldr r1, [r4, #0x74] - ldr r2, [r4, #0x78] - ldr r3, [r4, #0x70] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, r5, pc} - - thumb_func_start sub_0808ACEC -sub_0808ACEC: @ 0x0808ACEC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _0808AD00 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0808AD00: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - subs r0, #4 - cmp r0, #0x12 - bhi _0808AD92 - lsls r0, r0, #2 - ldr r1, _0808AD1C @ =_0808AD20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808AD1C: .4byte _0808AD20 -_0808AD20: @ jump table - .4byte _0808AD6C @ case 0 - .4byte _0808AD6C @ case 1 - .4byte _0808AD6C @ case 2 - .4byte _0808AD92 @ case 3 - .4byte _0808AD6C @ case 4 - .4byte _0808AD6C @ case 5 - .4byte _0808AD6C @ case 6 - .4byte _0808AD6C @ case 7 - .4byte _0808AD6C @ case 8 - .4byte _0808AD6C @ case 9 - .4byte _0808AD92 @ case 10 - .4byte _0808AD92 @ case 11 - .4byte _0808AD6C @ case 12 - .4byte _0808AD6C @ case 13 - .4byte _0808AD6C @ case 14 - .4byte _0808AD88 @ case 15 - .4byte _0808AD6C @ case 16 - .4byte _0808AD92 @ case 17 - .4byte _0808AD6C @ case 18 -_0808AD6C: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - bl sub_0806F5A4 - strb r0, [r4, #0x14] - movs r0, #2 - strb r0, [r4, #0xd] - strb r0, [r4, #0xe] - b _0808AD9E -_0808AD88: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0808AD9E -_0808AD92: - movs r0, #0 - strb r0, [r4, #0xf] - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08078930 -_0808AD9E: - pop {r4, pc} - - thumb_func_start sub_0808ADA0 -sub_0808ADA0: @ 0x0808ADA0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x54] - bl sub_0808B1F0 - cmp r0, #7 - bls _0808ADB4 - ldr r1, [r4, #0x54] - cmp r1, #0 - bne _0808ADE2 -_0808ADB4: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r2, #2 - movs r0, #2 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0x14] - eors r0, r2 - strb r0, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - b _0808ADEE -_0808ADE2: - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #0x24] - ldr r0, [r4, #0x54] - bl sub_0806F69C -_0808ADEE: - pop {r4, pc} - - thumb_func_start sub_0808ADF0 -sub_0808ADF0: @ 0x0808ADF0 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0x14] - adds r1, r2, #0 - adds r1, #0xd - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - bne _0808AE26 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808AE1E - movs r0, #0 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - b _0808AE80 -_0808AE1E: - adds r0, r4, #0 - bl sub_08004274 - b _0808AE80 -_0808AE26: - adds r1, r2, #1 - cmp r1, r0 - beq _0808AE54 - adds r0, r4, #0 - bl sub_08004260 - ldrb r0, [r4, #0x14] - cmp r0, #3 - bne _0808AE42 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0808AE48 -_0808AE42: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0808AE48: - strb r0, [r4, #0x18] - movs r0, #0x97 - lsls r0, r0, #1 - bl sub_080A3268 - b _0808AE80 -_0808AE54: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808AE80 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0808AE80 - ldrb r1, [r4, #0x14] - adds r1, #0xd - adds r0, r4, #0 - bl sub_08004260 -_0808AE80: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808AE84 -sub_0808AE84: @ 0x0808AE84 - push {lr} - adds r2, r0, #0 - ldr r0, _0808AEA8 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _0808AE94 - movs r0, #6 - strb r0, [r2, #0xd] -_0808AE94: - ldr r0, _0808AEAC @ =gUnk_081211DC - ldrb r1, [r2, #0xd] - subs r1, #5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808AEA8: .4byte gUnk_03003F80 -_0808AEAC: .4byte gUnk_081211DC - - thumb_func_start sub_0808AEB0 -sub_0808AEB0: @ 0x0808AEB0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0808AF68 - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0808B1F0 - adds r6, r0, #0 - ldr r5, _0808AF10 @ =gUnk_03003F80 - adds r2, r5, #0 - adds r2, #0x90 - ldr r1, _0808AF14 @ =gUnk_081211E4 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r2] - ldrh r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _0808AF20 - adds r0, r4, #0 - bl sub_08004274 - cmp r6, #0x3f - bhi _0808AF08 - ldr r0, _0808AF18 @ =gLinkEntity - ldrb r2, [r4, #0x15] - movs r1, #0x40 - bl sub_080044AE - ldr r0, [r4, #0x7c] - subs r0, #1 - str r0, [r4, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0808AF08 - movs r0, #4 - str r0, [r4, #0x7c] - ldr r0, _0808AF1C @ =0x0000012F - bl sub_080A3268 -_0808AF08: - movs r0, #1 - strb r0, [r4, #0xf] - b _0808AFD0 - .align 2, 0 -_0808AF10: .4byte gUnk_03003F80 -_0808AF14: .4byte gUnk_081211E4 -_0808AF18: .4byte gLinkEntity -_0808AF1C: .4byte 0x0000012F -_0808AF20: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0808AFD0 - ldr r2, _0808AF64 @ =gLinkEntity - ldrb r0, [r2, #0xc] - cmp r0, #1 - bne _0808AFD0 - adds r0, r5, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _0808AFD0 - movs r0, #0x1b - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x38 - strb r6, [r0] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - adds r1, r5, #0 - adds r1, #0x39 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0808B1F0 - adds r1, r5, #0 - adds r1, #0x3a - strb r0, [r1] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _0808AFD0 - .align 2, 0 -_0808AF64: .4byte gLinkEntity -_0808AF68: - movs r6, #1 - strb r6, [r4, #0xe] - str r6, [r4, #0x7c] - ldr r5, _0808AFC8 @ =gLinkEntity - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - movs r1, #2 - eors r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r5, #0x18] - movs r1, #0x40 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x14] - adds r1, #5 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0 - bl sub_0808B21C - cmp r0, #0 - beq _0808AFB6 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_0808B168 -_0808AFB6: - ldrb r1, [r4, #0x14] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0808AFCC - ldrh r0, [r4, #0x32] - strh r0, [r5, #0x32] - b _0808AFD0 - .align 2, 0 -_0808AFC8: .4byte gLinkEntity -_0808AFCC: - ldrh r0, [r4, #0x2e] - strh r0, [r5, #0x2e] -_0808AFD0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808AFD4 -sub_0808AFD4: @ 0x0808AFD4 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - strb r1, [r0, #0xd] - ldr r2, [r0, #0x54] - ldrb r0, [r0, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r2, #0x15] - movs r0, #0x98 - lsls r0, r0, #1 - bl sub_080A3268 - pop {pc} - - thumb_func_start sub_0808AFF0 -sub_0808AFF0: @ 0x0808AFF0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0808B054 @ =gUnk_081211EC - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, _0808B058 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0808B01E - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _0808B050 -_0808B01E: - ldrb r5, [r4, #0xa] - cmp r5, #1 - bne _0808B050 - ldr r0, [r4, #0x50] - strb r5, [r0, #0xc] - ldr r0, [r4, #0x50] - strb r5, [r0, #0xd] - ldr r2, [r4, #0x50] - ldrb r0, [r2, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] - ldrb r3, [r2, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r3 - strb r0, [r2, #0x10] - ldrb r0, [r4, #0x10] - ands r1, r0 - strb r1, [r4, #0x10] - strb r5, [r4, #0xc] - movs r0, #0x98 - lsls r0, r0, #1 - bl sub_080A3268 -_0808B050: - pop {r4, r5, pc} - .align 2, 0 -_0808B054: .4byte gUnk_081211EC -_0808B058: .4byte gUnk_03003F80 - - thumb_func_start sub_0808B05C -sub_0808B05C: @ 0x0808B05C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0808B0AE - ldr r2, _0808B0B8 @ =gLinkEntity - ldrb r0, [r2, #0x14] - lsrs r0, r0, #1 - movs r1, #2 - eors r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - ldrb r0, [r2, #0x18] - movs r1, #0x40 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x14] - adds r1, #5 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #1 - bl sub_0808B21C - cmp r0, #0 - beq _0808B0AE - ldr r0, [r4, #0x54] - movs r1, #1 - bl sub_0808B168 -_0808B0AE: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - pop {r4, pc} - .align 2, 0 -_0808B0B8: .4byte gLinkEntity - - thumb_func_start sub_0808B0BC -sub_0808B0BC: @ 0x0808B0BC - push {r4, r5, r6, r7, lr} - sub sp, #0x88 - adds r5, r0, #0 - ldr r1, [r5, #0x50] - bl sub_0808B1F0 - adds r7, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _0808B0D6 - cmp r0, #1 - beq _0808B0DE - b _0808B162 -_0808B0D6: - adds r0, r5, #0 - bl sub_08004274 - b _0808B162 -_0808B0DE: - ldr r6, _0808B148 @ =gLinkEntity - ldrb r0, [r6, #0x14] - movs r1, #0xe - ands r1, r0 - ldr r0, _0808B14C @ =gUnk_08126EE4 - adds r1, r1, r0 - mov r2, sp - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r6, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - mov r0, sp - adds r1, r5, #0 - movs r2, #7 - movs r3, #7 - bl sub_0800419C - cmp r0, #0 - beq _0808B154 - ldrb r0, [r6, #0xc] - cmp r0, #1 - bne _0808B162 - ldr r4, _0808B150 @ =gUnk_03003F80 - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _0808B162 - movs r0, #0x1b - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x38 - strb r7, [r0] - ldrb r0, [r5, #0x15] - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x39 - strb r0, [r1] - ldr r0, [r5, #0x50] - adds r1, r6, #0 - bl sub_0808B1F0 - adds r1, r4, #0 - adds r1, #0x3a - strb r0, [r1] - b _0808B162 - .align 2, 0 -_0808B148: .4byte gLinkEntity -_0808B14C: .4byte gUnk_08126EE4 -_0808B150: .4byte gUnk_03003F80 -_0808B154: - movs r0, #0x40 - strh r0, [r5, #0x24] - cmp r7, #0x3f - bhi _0808B162 - adds r0, r5, #0 - bl sub_0806F69C -_0808B162: - add sp, #0x88 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0808B168 -sub_0808B168: @ 0x0808B168 - push {r4, r5, lr} - adds r3, r0, #0 - cmp r1, #0 - beq _0808B188 - ldrb r0, [r3, #0x14] - movs r1, #2 - eors r1, r0 - lsls r1, r1, #1 - ldr r0, _0808B184 @ =gUnk_081211F4 - adds r2, r1, r0 - adds r1, r2, #1 - ldr r4, [r3, #0x50] - adds r5, r4, #0 - b _0808B1CE - .align 2, 0 -_0808B184: .4byte gUnk_081211F4 -_0808B188: - ldrb r1, [r3, #0x14] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808B1B8 - ldr r5, _0808B1AC @ =gLinkEntity - ldr r4, [r3, #0x50] - ldrb r1, [r3, #0x14] - lsls r2, r1, #1 - ldr r0, _0808B1B0 @ =gUnk_081211FC - adds r2, r2, r0 - movs r0, #2 - eors r1, r0 - lsls r1, r1, #1 - ldr r0, _0808B1B4 @ =gUnk_081211F5 - adds r1, r1, r0 - b _0808B1CE - .align 2, 0 -_0808B1AC: .4byte gLinkEntity -_0808B1B0: .4byte gUnk_081211FC -_0808B1B4: .4byte gUnk_081211F5 -_0808B1B8: - ldr r5, [r3, #0x50] - ldr r4, _0808B1E4 @ =gLinkEntity - movs r0, #2 - eors r0, r1 - lsls r0, r0, #1 - ldr r1, _0808B1E8 @ =gUnk_081211F4 - adds r2, r0, r1 - ldrb r0, [r3, #0x14] - lsls r0, r0, #1 - ldr r1, _0808B1EC @ =gUnk_081211FD - adds r1, r0, r1 -_0808B1CE: - movs r0, #0 - ldrsb r0, [r2, r0] - ldrh r5, [r5, #0x2e] - adds r0, r0, r5 - strh r0, [r3, #0x2e] - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r4, [r4, #0x32] - adds r0, r0, r4 - strh r0, [r3, #0x32] - pop {r4, r5, pc} - .align 2, 0 -_0808B1E4: .4byte gLinkEntity -_0808B1E8: .4byte gUnk_081211F4 -_0808B1EC: .4byte gUnk_081211FD - - thumb_func_start sub_0808B1F0 -sub_0808B1F0: @ 0x0808B1F0 - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - ldrb r1, [r2, #0x14] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808B20A - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r2, #0x2e - ldrsh r0, [r3, r2] - b _0808B212 -_0808B20A: - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r2, #0x32 - ldrsh r0, [r3, r2] -_0808B212: - subs r0, r1, r0 - cmp r0, #0 - bge _0808B21A - rsbs r0, r0, #0 -_0808B21A: - pop {pc} - - thumb_func_start sub_0808B21C -sub_0808B21C: @ 0x0808B21C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strb r1, [r2] - adds r0, r4, #0 - movs r1, #0x32 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0808B26E - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - ldr r1, [r4, #0x54] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - ldr r3, [r4, #0x54] - ldrb r0, [r4, #0x18] - movs r1, #0x40 - ands r1, r0 - ldrb r2, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - strb r5, [r0, #0xb] -_0808B26E: - adds r0, r4, #0 - movs r1, #0x32 - movs r2, #2 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - str r1, [r4, #0x50] - cmp r1, #0 - bne _0808B286 - movs r0, #0 - b _0808B292 -_0808B286: - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - ldr r1, [r4, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] - movs r0, #1 -_0808B292: - pop {r4, r5, pc} - - thumb_func_start sub_0808B294 -sub_0808B294: @ 0x0808B294 - push {lr} - ldr r2, _0808B2A8 @ =gUnk_08121300 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808B2A8: .4byte gUnk_08121300 - - thumb_func_start sub_0808B2AC -sub_0808B2AC: @ 0x0808B2AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808B2C4 - adds r0, r4, #0 - bl sub_0808B41C - adds r0, r4, #0 - bl sub_0808B3AC - b _0808B2CA -_0808B2C4: - adds r0, r4, #0 - bl sub_0808B42C -_0808B2CA: - pop {r4, pc} - - thumb_func_start sub_0808B2CC -sub_0808B2CC: @ 0x0808B2CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808B2E6 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808B31C - b _0808B2F4 -_0808B2E6: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _0808B31C -_0808B2F4: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldr r0, _0808B320 @ =0x000001A5 - bl sub_08004488 -_0808B31C: - pop {r4, pc} - .align 2, 0 -_0808B320: .4byte 0x000001A5 - - thumb_func_start sub_0808B324 -sub_0808B324: @ 0x0808B324 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808B340 - adds r0, r4, #0 - bl sub_0808B42C -_0808B340: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808B344 -sub_0808B344: @ 0x0808B344 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808B35E - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _0808B384 - b _0808B36C -_0808B35E: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808B384 -_0808B36C: - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0808B3AC - ldr r0, _0808B388 @ =0x000001A5 - bl sub_08004488 -_0808B384: - pop {r4, pc} - .align 2, 0 -_0808B388: .4byte 0x000001A5 - - thumb_func_start sub_0808B38C -sub_0808B38C: @ 0x0808B38C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808B3A8 - adds r0, r4, #0 - bl sub_0808B41C -_0808B3A8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808B3AC -sub_0808B3AC: @ 0x0808B3AC - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _0808B414 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r6, #0 - adds r4, #0x70 - strh r1, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - ldrh r0, [r4] - ldrb r1, [r5] - bl sub_080002E0 - adds r1, r6, #0 - adds r1, #0x74 - strb r0, [r1] - ldr r0, _0808B418 @ =0x0000400B - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0808B414: .4byte gUnk_03000BF0 -_0808B418: .4byte 0x0000400B - - thumb_func_start sub_0808B41C -sub_0808B41C: @ 0x0808B41C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808B42C -sub_0808B42C: @ 0x0808B42C - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - movs r1, #1 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808B448 -sub_0808B448: @ 0x0808B448 - push {lr} - adds r2, r0, #0 - adds r0, #0x70 - ldrb r0, [r0] - cmp r0, #0 - bne _0808B46C - ldr r0, _0808B468 @ =gUnk_08121368 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0808B472 - .align 2, 0 -_0808B468: .4byte gUnk_08121368 -_0808B46C: - adds r0, r2, #0 - bl sub_0808B73C -_0808B472: - pop {pc} - - thumb_func_start sub_0808B474 -sub_0808B474: @ 0x0808B474 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xf] - ldr r1, _0808B4D8 @ =gUnk_08121380 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0xf - ands r1, r0 - ldrb r3, [r4, #0x1a] - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x1a] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r3] - ldr r0, _0808B4DC @ =gUnk_080FD168 - str r0, [r4, #0x48] - ldrb r0, [r4, #0x11] - ands r2, r0 - movs r0, #3 - orrs r2, r0 - strb r2, [r4, #0x11] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808B4E0 - adds r0, r4, #0 - bl sub_0808B830 - b _0808B4F8 - .align 2, 0 -_0808B4D8: .4byte gUnk_08121380 -_0808B4DC: .4byte gUnk_080FD168 -_0808B4E0: - bl sub_08052660 - cmp r0, #0 - beq _0808B4F8 - ldrb r0, [r4, #0xa] - bl sub_0807CAEC - cmp r0, #0 - beq _0808B4F8 - adds r0, r4, #0 - bl sub_0808B830 -_0808B4F8: - adds r0, r4, #0 - bl sub_0808B7C8 - cmp r0, #0 - beq _0808B528 - movs r2, #4 - strb r2, [r4, #0xc] - movs r0, #0x60 - strb r0, [r4, #0xf] - ldr r1, _0808B52C @ =gLinkEntity - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] - strb r2, [r1, #0x14] - movs r0, #0x89 - lsls r0, r0, #1 - bl sub_08004488 - ldrb r1, [r4, #0xf] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_0805E4E0 -_0808B528: - pop {r4, pc} - .align 2, 0 -_0808B52C: .4byte gLinkEntity - - thumb_func_start sub_0808B530 -sub_0808B530: @ 0x0808B530 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808B562 - adds r0, r4, #0 - bl sub_0808B830 - bl sub_08052660 - cmp r0, #0 - beq _0808B554 - ldrb r0, [r4, #0xa] - bl sub_0807CAC8 -_0808B554: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xf] - adds r0, #0xd6 - bl sub_08004488 -_0808B562: - pop {r4, pc} - - thumb_func_start sub_0808B564 -sub_0808B564: @ 0x0808B564 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xf] - subs r1, r0, #1 - strb r1, [r3, #0xf] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0808B57A - movs r0, #3 - strb r0, [r3, #0xc] - b _0808B58E -_0808B57A: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x19 - movs r1, #1 - bics r1, r0 - ldrb r2, [r3, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] -_0808B58E: - pop {pc} - - thumb_func_start sub_0808B590 -sub_0808B590: @ 0x0808B590 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0808B7C8 - cmp r0, #0 - beq _0808B5E4 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0808B5E6 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x60 - strb r0, [r4, #0xf] - bl sub_08077B20 - ldr r1, _0808B5DC @ =gLinkEntity - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] - movs r0, #4 - strb r0, [r1, #0x14] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - ldrb r1, [r4, #0xf] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_0805E4E0 - ldr r0, _0808B5E0 @ =0x00000113 - bl sub_080A3268 - b _0808B5E6 - .align 2, 0 -_0808B5DC: .4byte gLinkEntity -_0808B5E0: .4byte 0x00000113 -_0808B5E4: - strb r0, [r4, #0xe] -_0808B5E6: - pop {r4, pc} - - thumb_func_start sub_0808B5E8 -sub_0808B5E8: @ 0x0808B5E8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0808B610 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] - ldr r1, _0808B60C @ =gLinkEntity - movs r0, #4 - strb r0, [r1, #0x14] - movs r0, #0x10 - strb r0, [r1, #0x15] - b _0808B67E - .align 2, 0 -_0808B60C: .4byte gLinkEntity -_0808B610: - movs r5, #0 - movs r0, #0x60 - ands r0, r1 - cmp r0, #0x20 - beq _0808B644 - cmp r0, #0x20 - bgt _0808B624 - cmp r0, #0 - beq _0808B64E - b _0808B66E -_0808B624: - cmp r0, #0x40 - bne _0808B66E - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x58 - bne _0808B638 - movs r0, #0x8a - lsls r0, r0, #1 - bl sub_080A3268 -_0808B638: - ldrb r1, [r4, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0808B66E - b _0808B672 -_0808B644: - movs r0, #3 - ands r1, r0 - cmp r1, #0 - bne _0808B66E - b _0808B672 -_0808B64E: - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0808B66E - ldr r0, _0808B668 @ =gLinkEntity - ldrb r0, [r0, #0x14] - cmp r0, #4 - bne _0808B66C - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x18 - bls _0808B66E - b _0808B672 - .align 2, 0 -_0808B668: .4byte gLinkEntity -_0808B66C: - movs r5, #1 -_0808B66E: - cmp r5, #0 - beq _0808B67E -_0808B672: - ldr r0, _0808B680 @ =gLinkEntity - ldrb r1, [r0, #0x14] - adds r1, #2 - movs r2, #6 - ands r1, r2 - strb r1, [r0, #0x14] -_0808B67E: - pop {r4, r5, pc} - .align 2, 0 -_0808B680: .4byte gLinkEntity - - thumb_func_start sub_0808B684 -sub_0808B684: @ 0x0808B684 - push {lr} - mov ip, r0 - ldrb r0, [r0, #0xf] - subs r1, r0, #1 - mov r0, ip - strb r1, [r0, #0xf] - lsls r0, r1, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _0808B6E8 - ldr r3, _0808B6E4 @ =gUnk_030010A0 - movs r0, #1 - strb r0, [r3, #8] - strb r2, [r3, #9] - mov r0, ip - adds r0, #0x7c - ldrb r0, [r0] - strb r0, [r3, #0xc] - mov r0, ip - adds r0, #0x7d - ldrb r0, [r0] - strb r0, [r3, #0xd] - mov r0, ip - adds r0, #0x84 - ldrh r1, [r0] - movs r0, #0x3f - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - movs r2, #0 - strh r0, [r3, #0x10] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r1 - lsrs r0, r0, #2 - adds r0, #8 - strh r0, [r3, #0x12] - strb r2, [r3, #0x14] - movs r0, #4 - strb r0, [r3, #0xe] - strb r2, [r3, #0xf] - mov r1, ip - ldrb r0, [r1, #0xa] - cmp r0, #2 - bne _0808B736 - strb r0, [r3, #9] - b _0808B736 - .align 2, 0 -_0808B6E4: .4byte gUnk_030010A0 -_0808B6E8: - movs r0, #0x60 - ands r0, r1 - cmp r0, #0x20 - beq _0808B702 - cmp r0, #0x20 - bgt _0808B6FA - cmp r0, #0 - beq _0808B706 - b _0808B724 -_0808B6FA: - cmp r0, #0x40 - bne _0808B724 - movs r0, #7 - b _0808B710 -_0808B702: - movs r0, #3 - b _0808B710 -_0808B706: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _0808B718 - movs r0, #1 -_0808B710: - ands r1, r0 - cmp r1, #0 - bne _0808B724 - b _0808B72A -_0808B718: - ldr r2, _0808B738 @ =gLinkEntity - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] -_0808B724: - movs r0, #0 - cmp r0, #0 - beq _0808B736 -_0808B72A: - ldr r0, _0808B738 @ =gLinkEntity - ldrb r1, [r0, #0x14] - adds r1, #2 - movs r2, #6 - ands r1, r2 - strb r1, [r0, #0x14] -_0808B736: - pop {pc} - .align 2, 0 -_0808B738: .4byte gLinkEntity - - thumb_func_start sub_0808B73C -sub_0808B73C: @ 0x0808B73C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808B766 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0808B766: - ldr r5, _0808B78C @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #0x28 - bl sub_0806FCB8 - cmp r0, #0 - beq _0808B790 - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _0808B7C0 - .align 2, 0 -_0808B78C: .4byte gLinkEntity -_0808B790: - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #0x2e - bl sub_0806FCB8 - cmp r0, #0 - beq _0808B7B6 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - b _0808B7BE -_0808B7B6: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 -_0808B7BE: - strb r0, [r4, #0x18] -_0808B7C0: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - - thumb_func_start sub_0808B7C8 -sub_0808B7C8: @ 0x0808B7C8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r2, _0808B824 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808B82C - adds r0, r2, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x12 - beq _0808B82C - ldr r4, _0808B828 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0808B82C - bl sub_08079F8C - cmp r0, #0 - beq _0808B82C - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #5 - movs r3, #5 - bl sub_080041A0 - cmp r0, #0 - beq _0808B82C - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0808B82C - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0808B81E - ldrb r0, [r4, #0xc] - cmp r0, #0x1b - bne _0808B81E - bl sub_080791D0 -_0808B81E: - movs r0, #1 - b _0808B82E - .align 2, 0 -_0808B824: .4byte gUnk_03003F80 -_0808B828: .4byte gLinkEntity -_0808B82C: - movs r0, #0 -_0808B82E: - pop {r4, r5, pc} - - thumb_func_start sub_0808B830 -sub_0808B830: @ 0x0808B830 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x34 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0808B86A - adds r1, r2, #0 - adds r1, #0x70 - movs r0, #1 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0806FA24 -_0808B86A: - pop {r4, pc} - - thumb_func_start sub_0808B86C -sub_0808B86C: @ 0x0808B86C - push {lr} - ldr r2, _0808B880 @ =gUnk_081213C4 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808B880: .4byte gUnk_081213C4 - - thumb_func_start sub_0808B884 -sub_0808B884: @ 0x0808B884 - push {lr} - ldr r2, _0808B898 @ =gUnk_081213D0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808B898: .4byte gUnk_081213D0 - - thumb_func_start sub_0808B89C -sub_0808B89C: @ 0x0808B89C - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r0, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x38 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xb4 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808B8D4 -sub_0808B8D4: @ 0x0808B8D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808B904 - movs r0, #0xb4 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - adds r0, #1 - strb r0, [r4, #0xb] - ldrb r0, [r4, #0xb] - movs r1, #3 - bl __modsi3 - strb r0, [r4, #0xb] - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl sub_08004260 -_0808B904: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808B908 -sub_0808B908: @ 0x0808B908 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0808B910 -sub_0808B910: @ 0x0808B910 - push {lr} - ldr r2, _0808B92C @ =gUnk_081213DC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r2, _0808B930 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] - pop {pc} - .align 2, 0 -_0808B92C: .4byte gUnk_081213DC -_0808B930: .4byte gUnk_03003F80 - - thumb_func_start sub_0808B934 -sub_0808B934: @ 0x0808B934 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r7, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strb r7, [r4, #0x1e] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808B9B8 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x76 - strh r1, [r5] - ldrh r0, [r5] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0808B9C0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xf] - ldr r0, _0808B9BC @ =0x00004022 - ldrh r1, [r5] - ldrb r2, [r6] - bl sub_0800015E - b _0808B9D2 - .align 2, 0 -_0808B9B8: .4byte gUnk_03000BF0 -_0808B9BC: .4byte 0x00004022 -_0808B9C0: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r7, [r4, #0xe] -_0808B9D2: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0808B9D4 -sub_0808B9D4: @ 0x0808B9D4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _0808BA0A - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #7 - strb r0, [r4, #0xe] - strb r1, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldr r0, _0808BA0C @ =0x0000010B - bl sub_08004488 -_0808BA0A: - pop {r4, pc} - .align 2, 0 -_0808BA0C: .4byte 0x0000010B - - thumb_func_start sub_0808BA10 -sub_0808BA10: @ 0x0808BA10 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BA44 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0xc - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r4, #0x32] -_0808BA44: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808BA48 -sub_0808BA48: @ 0x0808BA48 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08083734 - cmp r0, #0 - beq _0808BA68 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r2, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_080836DC -_0808BA68: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808BA6C -sub_0808BA6C: @ 0x0808BA6C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BAA4 - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08083814 - ldr r0, _0808BAA8 @ =0x0000010B - bl sub_08004488 - ldr r0, _0808BAAC @ =0x00004022 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0808BAA4: - pop {r4, pc} - .align 2, 0 -_0808BAA8: .4byte 0x0000010B -_0808BAAC: .4byte 0x00004022 - - thumb_func_start nullsub_520 -nullsub_520: @ 0x0808BAB0 - bx lr - .align 2, 0 - - thumb_func_start sub_0808BAB4 -sub_0808BAB4: @ 0x0808BAB4 - push {lr} - ldr r2, _0808BAC8 @ =gUnk_081213F4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808BAC8: .4byte gUnk_081213F4 - - thumb_func_start sub_0808BACC -sub_0808BACC: @ 0x0808BACC - push {r4, lr} - adds r2, r0, #0 - movs r4, #1 - strb r4, [r2, #0xc] - movs r3, #0x10 - strb r3, [r2, #0xe] - ldrh r0, [r2, #0x36] - subs r0, #0x10 - strh r0, [r2, #0x36] - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _0808BAEA - movs r0, #2 - strb r0, [r2, #0x1e] - b _0808BAFC -_0808BAEA: - movs r0, #0 - strb r0, [r2, #0x1e] - ldr r0, [r2, #0x50] - ldrh r1, [r0, #0x2e] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0808BAFC - strb r4, [r2, #0x1e] -_0808BAFC: - adds r0, r2, #0 - bl sub_080A29BC - pop {r4, pc} - - thumb_func_start sub_0808BB04 -sub_0808BB04: @ 0x0808BB04 - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _0808BB16 - bl sub_0805E780 -_0808BB16: - pop {pc} - - thumb_func_start sub_0808BB18 -sub_0808BB18: @ 0x0808BB18 - push {lr} - ldr r2, _0808BB2C @ =gUnk_08121440 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808BB2C: .4byte gUnk_08121440 - - thumb_func_start sub_0808BB30 -sub_0808BB30: @ 0x0808BB30 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x17 - bl GetProgressFlag - adds r1, r0, #0 - cmp r1, #0 - beq _0808BB4C - movs r0, #0x4a - bl sub_0801D7EC - bl sub_0805E780 - b _0808BBD4 -_0808BB4C: - movs r3, #1 - strb r3, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x10] - movs r0, #0x78 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1b] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x3f - strb r3, [r0] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #5 - movs r0, #4 - strb r0, [r1] - ldr r0, _0808BBD8 @ =gUnk_080FD150 - str r0, [r4, #0x48] - movs r0, #2 - strb r0, [r4, #0x1e] - ldr r0, _0808BBDC @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0808BDB0 - ldr r0, [r4, #0x50] - ldr r1, [r0, #0x20] - movs r2, #0xb8 - lsls r2, r2, #1 - adds r0, r2, #0 - subs r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0808BBE0 -_0808BBD4: - pop {r4, pc} - .align 2, 0 -_0808BBD8: .4byte gUnk_080FD150 -_0808BBDC: .4byte gLinkEntity - - thumb_func_start sub_0808BBE0 -sub_0808BBE0: @ 0x0808BBE0 - push {lr} - adds r3, r0, #0 - movs r1, #0x32 - ldrsh r0, [r3, r1] - ldr r1, _0808BC20 @ =gUnk_03000BF0 - movs r2, #0xc - ldrsh r1, [r1, r2] - subs r1, r0, r1 - cmp r1, #0x9f - bhi _0808BC2C - adds r0, r1, #0 - cmp r1, #0 - bge _0808BBFC - adds r0, #0xf -_0808BBFC: - asrs r1, r0, #4 - ldr r0, _0808BC24 @ =gUnk_08121474 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r3, #0 - adds r2, #0x63 - strb r0, [r2] - lsls r0, r1, #2 - ldr r1, _0808BC28 @ =gUnk_0812144C - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r2, [r0, #2] - adds r0, r3, #0 - movs r3, #0 - bl sub_0805EC9C - b _0808BC38 - .align 2, 0 -_0808BC20: .4byte gUnk_03000BF0 -_0808BC24: .4byte gUnk_08121474 -_0808BC28: .4byte gUnk_0812144C -_0808BC2C: - adds r2, r3, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] -_0808BC38: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808BC3C -sub_0808BC3C: @ 0x0808BC3C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r2, _0808BC98 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - adds r0, #0x78 - movs r4, #0 - strh r0, [r5, #0x2e] - ldr r0, [r5, #0x50] - ldr r1, [r0, #0x20] - ldr r0, _0808BC9C @ =0xFFFFFE90 - adds r1, r1, r0 - ldrh r0, [r2, #8] - subs r0, r0, r1 - strh r0, [r5, #0x32] - adds r0, r5, #0 - bl sub_0808BBE0 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x93 - bne _0808BCE4 - ldrb r0, [r5, #0xe] - subs r2, r0, #1 - strb r2, [r5, #0xe] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - lsls r0, r2, #0x18 - cmp r0, #0 - bne _0808BCA0 - movs r0, #0x17 - bl sub_0807CD04 - movs r0, #2 - strb r0, [r5, #0xc] - movs r0, #0x80 - strb r0, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x63 - strb r4, [r0] - b _0808BCFE - .align 2, 0 -_0808BC98: .4byte gUnk_03000BF0 -_0808BC9C: .4byte 0xFFFFFE90 -_0808BCA0: - movs r6, #1 - ands r2, r6 - cmp r2, #0 - beq _0808BCCA - bl sub_08000E50 - movs r4, #3 - ands r0, r4 - ldr r1, _0808BCDC @ =0x0000FFFE - adds r0, r0, r1 - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - bl sub_08000E50 - ands r0, r4 - ldr r1, _0808BCE0 @ =0x0000FFFF - adds r0, r0, r1 - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] -_0808BCCA: - ldrb r0, [r5, #0xf] - cmp r0, #1 - beq _0808BCFE - strb r6, [r5, #0xf] - movs r0, #0x4a - bl sub_0801D7EC - b _0808BCFE - .align 2, 0 -_0808BCDC: .4byte 0x0000FFFE -_0808BCE0: .4byte 0x0000FFFF -_0808BCE4: - movs r0, #0x78 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x18] - subs r0, #0x7c - ands r0, r1 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0808BCFE - strb r4, [r5, #0xf] - movs r0, #0x49 - bl sub_0801D7EC -_0808BCFE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808BD00 -sub_0808BD00: @ 0x0808BD00 - push {lr} - movs r0, #0x17 - bl sub_0807CD04 - movs r0, #0x72 - bl sub_080A3268 - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_0808BD14 -sub_0808BD14: @ 0x0808BD14 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0808BD34 - subs r0, #8 - strb r0, [r5, #0xf] - ldrb r0, [r5, #0xf] - movs r2, #0x80 - lsls r2, r2, #2 - subs r2, r2, r0 - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_0808BD34: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x93 - bne _0808BD74 - ldr r4, _0808BD70 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - subs r2, #6 - adds r0, r5, #0 - movs r3, #0x1c - bl sub_0806FCB8 - cmp r0, #0 - beq _0808BDAE - adds r0, r5, #0 - bl sub_0808BD00 - b _0808BDAE - .align 2, 0 -_0808BD70: .4byte gLinkEntity -_0808BD74: - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808BD8A - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - movs r0, #0x1e - strb r0, [r5, #0xe] - b _0808BDAE -_0808BD8A: - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808BDAE - adds r0, r5, #0 - bl sub_0808BD00 -_0808BDAE: - pop {r4, r5, pc} - - thumb_func_start sub_0808BDB0 -sub_0808BDB0: @ 0x0808BDB0 - push {r4, r5, r6, lr} - adds r3, r0, #0 - ldr r4, _0808BDD4 @ =gUnk_03003DA0 - ldr r2, [r4, #4] - movs r0, #0 - str r0, [r3, #0x50] - cmp r2, r4 - beq _0808BDE6 - ldr r6, _0808BDD8 @ =0x0000FFFF - ldr r5, _0808BDDC @ =0x00000C09 -_0808BDC4: - ldrh r1, [r2, #8] - adds r0, r6, #0 - ands r0, r1 - cmp r0, r5 - bne _0808BDE0 - str r2, [r3, #0x50] - b _0808BDE6 - .align 2, 0 -_0808BDD4: .4byte gUnk_03003DA0 -_0808BDD8: .4byte 0x0000FFFF -_0808BDDC: .4byte 0x00000C09 -_0808BDE0: - ldr r2, [r2, #4] - cmp r2, r4 - bne _0808BDC4 -_0808BDE6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808BDE8 -sub_0808BDE8: @ 0x0808BDE8 - push {lr} - ldr r2, _0808BDFC @ =gUnk_08121480 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808BDFC: .4byte gUnk_08121480 - - thumb_func_start sub_0808BE00 -sub_0808BE00: @ 0x0808BE00 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_0808094C - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_0806F798 - lsls r0, r0, #1 - adds r0, #4 - adds r4, r4, r0 - str r4, [r5, #0x78] - ldrh r1, [r4] - adds r0, r5, #0 - adds r0, #0x70 - strh r1, [r0] - movs r0, #1 - strb r0, [r5, #0xc] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808BE2C -sub_0808BE2C: @ 0x0808BE2C - push {r4, lr} - adds r2, r0, #0 - ldr r0, _0808BE78 @ =gUnk_02002A40 - ldr r1, _0808BE7C @ =0x0000024E - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0 - beq _0808BE74 - adds r0, r2, #0 - adds r0, #0x70 - ldr r1, [r2, #0x78] - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _0808BE74 - adds r0, r2, #0 - movs r1, #0x58 - movs r2, #0 - bl sub_080A2A20 - adds r1, r0, #0 - cmp r1, #0 - beq _0808BE6C - ldr r0, _0808BE80 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] - movs r0, #0x80 - strh r0, [r1, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r1, #0x20] -_0808BE6C: - movs r0, #1 - strb r0, [r4] - bl sub_0805E780 -_0808BE74: - pop {r4, pc} - .align 2, 0 -_0808BE78: .4byte gUnk_02002A40 -_0808BE7C: .4byte 0x0000024E -_0808BE80: .4byte gLinkEntity - - thumb_func_start sub_0808BE84 -sub_0808BE84: @ 0x0808BE84 - push {lr} - ldr r2, _0808BE98 @ =gUnk_08121488 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808BE98: .4byte gUnk_08121488 - - thumb_func_start sub_0808BE9C -sub_0808BE9C: @ 0x0808BE9C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - movs r2, #0 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3f - movs r5, #1 - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #0x47 - strb r0, [r1] - adds r1, #4 - movs r0, #0x44 - strb r0, [r1] - subs r1, #5 - movs r0, #0x80 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x68 - strb r2, [r0] - ldrb r0, [r4, #0xa] - bl sub_0807CBD0 - cmp r0, #0 - beq _0808BEEE - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _0808BEF8 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _0808BF10 -_0808BEEE: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _0808BF04 -_0808BEF8: - strb r5, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0808BF10 -_0808BF04: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_0808BF10: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808BF14 -sub_0808BF14: @ 0x0808BF14 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808C128 - cmp r0, #0 - beq _0808BF4C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0808C13C - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _0808BF3E - ldrb r0, [r4, #0xa] - bl sub_0807CCB4 - b _0808BF44 -_0808BF3E: - ldrb r0, [r4, #0xa] - bl sub_0807CD34 -_0808BF44: - adds r0, r4, #0 - movs r1, #0 - bl sub_0808C148 -_0808BF4C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0808C01C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808BF58 -sub_0808BF58: @ 0x0808BF58 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0808BF94 - cmp r0, #1 - bgt _0808BF74 - cmp r0, #0 - beq _0808BF7A - b _0808BFD6 -_0808BF74: - cmp r0, #2 - beq _0808BFB0 - b _0808BFD6 -_0808BF7A: - ldr r1, [r4, #0x20] - ldr r0, _0808BF90 @ =0x00017FFF - cmp r1, r0 - bgt _0808BFD6 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - b _0808BFD6 - .align 2, 0 -_0808BF90: .4byte 0x00017FFF -_0808BF94: - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0808BFD6 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] - b _0808BFD6 -_0808BFB0: - adds r0, r4, #0 - bl sub_080042B8 - movs r0, #0x36 - ldrsh r1, [r4, r0] - cmp r1, #0 - bne _0808BFD6 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - adds r0, r4, #0 - movs r1, #1 - bl sub_0808C148 -_0808BFD6: - pop {r4, pc} - - thumb_func_start sub_0808BFD8 -sub_0808BFD8: @ 0x0808BFD8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808C128 - cmp r0, #0 - beq _0808C010 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0808C13C - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _0808C002 - ldrb r0, [r4, #0xa] - bl sub_0807CD34 - b _0808C008 -_0808C002: - ldrb r0, [r4, #0xa] - bl sub_0807CCB4 -_0808C008: - adds r0, r4, #0 - movs r1, #0 - bl sub_0808C148 -_0808C010: - adds r0, r4, #0 - movs r1, #1 - bl sub_0808C01C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808C01C -sub_0808C01C: @ 0x0808C01C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r0, #0x18 - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #0x18 - movs r2, #0x30 - movs r3, #0x30 - bl sub_0806FBFC - cmp r0, #0 - beq _0808C0A6 - ldr r2, _0808C06C @ =gUnk_02033A90 - ldrh r0, [r4, #0x2e] - strh r0, [r2, #0x12] - ldrh r0, [r4, #0x32] - strh r0, [r2, #0x14] - movs r6, #2 - strb r6, [r2, #0x16] - movs r0, #4 - cmp r5, #0 - beq _0808C050 - movs r0, #2 -_0808C050: - strb r0, [r2, #0x17] - cmp r5, #1 - bne _0808C0A6 - ldr r3, _0808C070 @ =gUnk_03003F80 - ldr r0, [r3, #0x30] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0808C074 - ldrb r0, [r3, #2] - cmp r0, #0 - bne _0808C074 - strb r6, [r2, #0x18] - b _0808C082 - .align 2, 0 -_0808C06C: .4byte gUnk_02033A90 -_0808C070: .4byte gUnk_03003F80 -_0808C074: - bl sub_08057810 - cmp r0, #0 - beq _0808C082 - ldr r1, _0808C0A8 @ =gUnk_02033A90 - movs r0, #3 - strb r0, [r1, #0x18] -_0808C082: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_080577AC - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0808C0A6 - movs r0, #1 - strb r0, [r4, #0xf] - movs r0, #0xa9 - lsls r0, r0, #1 - bl sub_080A3268 -_0808C0A6: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808C0A8: .4byte gUnk_02033A90 - - thumb_func_start sub_0808C0AC -sub_0808C0AC: @ 0x0808C0AC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0808C0E8 - cmp r0, #1 - bgt _0808C0C8 - cmp r0, #0 - beq _0808C0CE - b _0808C126 -_0808C0C8: - cmp r0, #2 - beq _0808C104 - b _0808C126 -_0808C0CE: - ldr r1, [r4, #0x20] - ldr r0, _0808C0E4 @ =0x00017FFF - cmp r1, r0 - bgt _0808C126 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #3 - bl sub_080042AC - b _0808C126 - .align 2, 0 -_0808C0E4: .4byte 0x00017FFF -_0808C0E8: - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0808C126 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] - b _0808C126 -_0808C104: - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0808C126 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - adds r0, r4, #0 - movs r1, #1 - bl sub_0808C148 -_0808C126: - pop {r4, pc} - - thumb_func_start sub_0808C128 -sub_0808C128: @ 0x0808C128 - push {lr} - movs r1, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _0808C136 - movs r1, #1 -_0808C136: - adds r0, r1, #0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808C13C -sub_0808C13C: @ 0x0808C13C - movs r1, #0 - strb r1, [r0, #0xd] - movs r1, #0xa0 - lsls r1, r1, #0xa - str r1, [r0, #0x20] - bx lr - - thumb_func_start sub_0808C148 -sub_0808C148: @ 0x0808C148 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r2, #0x2e - ldrsh r0, [r6, r2] - ldr r4, _0808C1A4 @ =gUnk_03000BF0 - ldrh r2, [r4, #6] - subs r0, r0, r2 - asrs r5, r0, #4 - movs r3, #0x3f - ands r5, r3 - movs r2, #0x32 - ldrsh r0, [r6, r2] - ldrh r2, [r4, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r5, r0 - cmp r1, #0 - bne _0808C1B8 - ldr r0, _0808C1A8 @ =0x00004092 - subs r1, r5, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _0808C1AC @ =0x00004093 - ldrb r2, [r4] - adds r1, r5, #0 - bl sub_0800015E - ldr r0, _0808C1B0 @ =0x00004094 - adds r1, r5, #0 - adds r1, #0x3f - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _0808C1B4 @ =0x00004095 - adds r1, r5, #0 - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0800015E - b _0808C1E0 - .align 2, 0 -_0808C1A4: .4byte gUnk_03000BF0 -_0808C1A8: .4byte 0x00004092 -_0808C1AC: .4byte 0x00004093 -_0808C1B0: .4byte 0x00004094 -_0808C1B4: .4byte 0x00004095 -_0808C1B8: - subs r0, r5, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C -_0808C1E0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808C1E4 -sub_0808C1E4: @ 0x0808C1E4 - push {lr} - ldr r2, _0808C1F8 @ =gUnk_081214D8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808C1F8: .4byte gUnk_081214D8 - - thumb_func_start sub_0808C1FC -sub_0808C1FC: @ 0x0808C1FC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x84 - ldrh r1, [r2] - ldr r0, _0808C2B0 @ =0x0000FFFF - cmp r1, r0 - beq _0808C21A - adds r0, r1, #0 - bl sub_0807CBE4 - cmp r0, #0 - beq _0808C21A - bl sub_0805E780 -_0808C21A: - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _0808C230 - bl sub_0807CBE4 - cmp r0, #0 - beq _0808C230 - bl sub_0805E780 -_0808C230: - ldrb r0, [r4, #0xa] - lsrs r0, r0, #2 - strb r0, [r4, #0xb] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - ldr r0, _0808C2B4 @ =gUnk_080FD180 - str r0, [r4, #0x48] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0xa] - movs r0, #3 - ands r0, r1 - adds r5, r4, #0 - adds r5, #0x76 - strh r0, [r5] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808C2B8 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrb r0, [r4, #0xa] - movs r1, #0x1f - ands r1, r0 - adds r0, r4, #0 - bl sub_08004260 - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _0808C2F8 - cmp r0, #1 - bgt _0808C2BC - cmp r0, #0 - beq _0808C2C2 - b _0808C31C - .align 2, 0 -_0808C2B0: .4byte 0x0000FFFF -_0808C2B4: .4byte gUnk_080FD180 -_0808C2B8: .4byte gUnk_03000BF0 -_0808C2BC: - cmp r0, #2 - beq _0808C306 - b _0808C31C -_0808C2C2: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0808C500 - adds r0, r4, #0 - bl sub_08078800 - ldr r1, _0808C2F4 @ =gUnk_0811F740 - ldrh r0, [r5] - adds r0, r0, r1 - ldrb r2, [r0] - adds r0, r4, #0 - movs r1, #0 - movs r3, #0 - bl sub_08078850 - b _0808C31C - .align 2, 0 -_0808C2F4: .4byte gUnk_0811F740 -_0808C2F8: - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #8 - ands r0, r1 - strb r0, [r4, #0x18] - b _0808C31C -_0808C306: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0808C500 -_0808C31C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808C320 -sub_0808C320: @ 0x0808C320 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0808C344 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080788E0 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_0808C344: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808C348 -sub_0808C348: @ 0x0808C348 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808C37C - ldr r0, _0808C374 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0808C36A - ldr r0, _0808C378 @ =0x00000185 - bl sub_080A3268 -_0808C36A: - adds r0, r4, #0 - bl sub_08004274 - b _0808C382 - .align 2, 0 -_0808C374: .4byte gUnk_030010A0 -_0808C378: .4byte 0x00000185 -_0808C37C: - adds r0, r4, #0 - bl sub_0808C4BC -_0808C382: - pop {r4, pc} - - thumb_func_start sub_0808C384 -sub_0808C384: @ 0x0808C384 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808C3B4 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bhi _0808C3B0 - movs r0, #0x40 - movs r1, #0 - movs r2, #1 - bl sub_08078AC0 - ldr r1, _0808C3B8 @ =gLinkEntity - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - strb r0, [r1, #0x15] -_0808C3B0: - bl sub_0805E780 -_0808C3B4: - pop {r4, pc} - .align 2, 0 -_0808C3B8: .4byte gLinkEntity - - thumb_func_start sub_0808C3BC -sub_0808C3BC: @ 0x0808C3BC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x76 - ldrh r1, [r5] - bl sub_08083734 - cmp r0, #0 - beq _0808C40E - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x10 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r5] - lsls r0, r0, #3 - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] - ldrh r1, [r5] - lsls r1, r1, #1 - ldr r0, _0808C410 @ =gUnk_081214F4 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0808C500 -_0808C40E: - pop {r4, r5, pc} - .align 2, 0 -_0808C410: .4byte gUnk_081214F4 - - thumb_func_start sub_0808C414 -sub_0808C414: @ 0x0808C414 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808C49A - movs r0, #6 - strb r0, [r4, #0xc] - strh r1, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - lsls r0, r0, #2 - ldr r1, _0808C49C @ =gUnk_081214FC - adds r5, r0, r1 - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0808C470 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] -_0808C470: - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0808C494 - movs r0, #2 - ldrsb r0, [r5, r0] - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - movs r0, #3 - ldrsb r0, [r5, r0] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] -_0808C494: - ldr r0, _0808C4A0 @ =0x0000010B - bl sub_08004488 -_0808C49A: - pop {r4, r5, pc} - .align 2, 0 -_0808C49C: .4byte gUnk_081214FC -_0808C4A0: .4byte 0x0000010B - - thumb_func_start sub_0808C4A4 -sub_0808C4A4: @ 0x0808C4A4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808C4B8 - movs r0, #2 - strb r0, [r4, #0xc] -_0808C4B8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808C4BC -sub_0808C4BC: @ 0x0808C4BC - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0xc - strb r1, [r0, #0xe] - adds r2, r0, #0 - adds r2, #0x76 - ldrh r1, [r2] - lsls r1, r1, #3 - strb r1, [r0, #0x15] - ldrh r2, [r2] - lsls r2, r2, #1 - ldr r1, _0808C4F8 @ =gUnk_0812150C - adds r2, r2, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrh r3, [r0, #0x2e] - adds r1, r1, r3 - strh r1, [r0, #0x2e] - movs r1, #1 - ldrsb r1, [r2, r1] - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] - bl sub_0808C5D0 - ldr r0, _0808C4FC @ =0x0000010B - bl sub_080A3268 - pop {pc} - .align 2, 0 -_0808C4F8: .4byte gUnk_0812150C -_0808C4FC: .4byte 0x0000010B - - thumb_func_start sub_0808C500 -sub_0808C500: @ 0x0808C500 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x76 - ldrh r0, [r0] - cmp r0, #0 - beq _0808C510 - cmp r0, #2 - bne _0808C570 -_0808C510: - adds r6, r4, #0 - adds r6, #0x74 - ldrh r0, [r6] - subs r0, #1 - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - ldrh r0, [r6] - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldrh r0, [r6] - adds r0, #1 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] - ldr r4, _0808C56C @ =0x00004022 - ldrh r1, [r6] - subs r1, #1 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #1 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - b _0808C5CA - .align 2, 0 -_0808C56C: .4byte 0x00004022 -_0808C570: - adds r6, r4, #0 - adds r6, #0x74 - ldrh r0, [r6] - subs r0, #0x40 - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - ldrh r0, [r6] - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldrh r0, [r6] - adds r0, #0x40 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] - ldr r4, _0808C5CC @ =0x00004022 - ldrh r1, [r6] - subs r1, #0x40 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x40 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E -_0808C5CA: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808C5CC: .4byte 0x00004022 - - thumb_func_start sub_0808C5D0 -sub_0808C5D0: @ 0x0808C5D0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, #0x76 - ldrh r0, [r0] - cmp r0, #0 - beq _0808C5E0 - cmp r0, #2 - bne _0808C618 -_0808C5E0: - adds r0, r6, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r5, r6, #0 - adds r5, #0x74 - ldrh r1, [r5] - subs r1, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x7a - ldrh r0, [r0] - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x7c - ldrh r0, [r0] - ldrh r1, [r5] - adds r1, #1 - ldrb r2, [r4] - bl sub_0800015E - b _0808C64E -_0808C618: - adds r0, r6, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r5, r6, #0 - adds r5, #0x74 - ldrh r1, [r5] - subs r1, #0x40 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x7a - ldrh r0, [r0] - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x7c - ldrh r0, [r0] - ldrh r1, [r5] - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0800015E -_0808C64E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808C650 -sub_0808C650: @ 0x0808C650 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - movs r0, #0x3a - movs r1, #0 - bl CreateObject - cmp r0, #0 - beq _0808C670 - str r4, [r0, #0x50] - ldr r1, _0808C66C @ =gUnk_02036BB8 - movs r0, #0 - b _0808C674 - .align 2, 0 -_0808C66C: .4byte gUnk_02036BB8 -_0808C670: - ldr r1, _0808C678 @ =gUnk_02036BB8 - movs r0, #1 -_0808C674: - str r0, [r1] - pop {r4, pc} - .align 2, 0 -_0808C678: .4byte gUnk_02036BB8 - - thumb_func_start sub_0808C67C -sub_0808C67C: @ 0x0808C67C - ldr r0, _0808C684 @ =gUnk_02036BB8 - ldr r0, [r0] - bx lr - .align 2, 0 -_0808C684: .4byte gUnk_02036BB8 - - thumb_func_start sub_0808C688 -sub_0808C688: @ 0x0808C688 - push {lr} - bl sub_0801E104 - ldr r1, _0808C698 @ =gUnk_02036BB8 - movs r0, #1 - str r0, [r1] - pop {pc} - .align 2, 0 -_0808C698: .4byte gUnk_02036BB8 - - thumb_func_start sub_0808C69C -sub_0808C69C: @ 0x0808C69C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _0808C6BC - ldr r0, _0808C6B8 @ =gUnk_08121638 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0808C6CC - .align 2, 0 -_0808C6B8: .4byte gUnk_08121638 -_0808C6BC: - ldr r0, _0808C6D0 @ =gUnk_08121640 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_0808C6CC: - pop {pc} - .align 2, 0 -_0808C6D0: .4byte gUnk_08121640 - - thumb_func_start sub_0808C6D4 -sub_0808C6D4: @ 0x0808C6D4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xb] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0808C744 @ =gUnk_081215E8 - adds r4, r0, r1 - ldrh r0, [r4, #4] - adds r1, r5, #0 - adds r1, #0x86 - strh r0, [r1] - ldrh r0, [r4, #6] - subs r1, #1 - strb r0, [r1] - ldrh r1, [r4, #8] - adds r0, r5, #0 - adds r0, #0x84 - strb r1, [r0] - ldrh r0, [r4, #0xa] - adds r1, r5, #0 - adds r1, #0x83 - strb r0, [r1] - ldrh r0, [r4, #0xc] - subs r1, #1 - strb r0, [r1] - ldrh r0, [r4, #0xe] - subs r1, #1 - strb r0, [r1] - ldr r0, _0808C748 @ =gUnk_03000F50 - adds r0, #0x60 - ldrh r1, [r0] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - ldrh r1, [r4, #0x10] - orrs r0, r1 - ldrh r1, [r4, #0x12] - bl sub_0801E1B8 - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_0808C74C - ldrh r2, [r4] - movs r0, #0x3a - movs r1, #1 - bl CreateObject - cmp r0, #0 - beq _0808C742 - ldrh r1, [r4, #2] - adds r0, #0x6a - strh r1, [r0] -_0808C742: - pop {r4, r5, pc} - .align 2, 0 -_0808C744: .4byte gUnk_081215E8 -_0808C748: .4byte gUnk_03000F50 - - thumb_func_start sub_0808C74C -sub_0808C74C: @ 0x0808C74C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x50] - cmp r3, #0 - beq _0808C76C - ldr r2, _0808C768 @ =gUnk_03000BF0 - ldrh r0, [r3, #0x2e] - ldrh r1, [r2, #0xa] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r3, #0x32] - ldrh r1, [r2, #0xc] - subs r0, r0, r1 - b _0808C772 - .align 2, 0 -_0808C768: .4byte gUnk_03000BF0 -_0808C76C: - movs r0, #0x78 - strh r0, [r4, #0x2e] - movs r0, #0x50 -_0808C772: - strh r0, [r4, #0x32] - adds r5, r4, #0 - adds r5, #0x86 - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _0808C79C - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r3, #0x32 - ldrsh r1, [r4, r3] - movs r2, #0 - movs r3, #0 - bl sub_0801E49C - ldr r1, _0808C83C @ =gUnk_02036BB8 - movs r0, #1 - str r0, [r1] - adds r0, r4, #0 - bl sub_0808C840 -_0808C79C: - movs r6, #0 - ldrsh r0, [r5, r6] - movs r2, #0xfa - lsls r2, r2, #1 - cmp r0, r2 - ble _0808C7C2 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r3, #0x32 - ldrsh r1, [r4, r3] - movs r3, #0 - bl sub_0801E49C - ldr r1, _0808C83C @ =gUnk_02036BB8 - movs r0, #1 - str r0, [r1] - adds r0, r4, #0 - bl sub_0808C840 -_0808C7C2: - adds r1, r4, #0 - adds r1, #0x85 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r6, [r5] - adds r0, r0, r6 - strh r0, [r5] - adds r0, r4, #0 - adds r0, #0x84 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x10 - ble _0808C7E8 - movs r0, #0x10 - strb r0, [r1] -_0808C7E8: - movs r0, #0 - ldrsb r0, [r1, r0] - movs r2, #0x10 - rsbs r2, r2, #0 - cmp r0, r2 - bge _0808C7F6 - strb r2, [r1] -_0808C7F6: - adds r3, r4, #0 - adds r3, #0x83 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - ldrb r6, [r3] - adds r0, r0, r6 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - ldrb r6, [r1] - adds r0, r0, r6 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x10 - ble _0808C81E - movs r0, #0x10 - strb r0, [r1] -_0808C81E: - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, r2 - bge _0808C828 - strb r2, [r1] -_0808C828: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r4, #0 - ldrsh r2, [r5, r4] - ldrb r3, [r3] - bl sub_0801E49C - pop {r4, r5, r6, pc} - .align 2, 0 -_0808C83C: .4byte gUnk_02036BB8 - - thumb_func_start sub_0808C840 -sub_0808C840: @ 0x0808C840 - push {lr} - ldr r0, _0808C854 @ =gUnk_03000F50 - adds r0, #0x66 - movs r1, #0 - strh r1, [r0] - bl sub_0801E104 - bl sub_0805E780 - pop {pc} - .align 2, 0 -_0808C854: .4byte gUnk_03000F50 - - thumb_func_start sub_0808C858 -sub_0808C858: @ 0x0808C858 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xb] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808C878 - ldr r1, _0808C870 @ =gUnk_03000F50 - adds r3, r1, #0 - adds r3, #0x66 - ldr r0, _0808C874 @ =0x00003FBF - b _0808C880 - .align 2, 0 -_0808C870: .4byte gUnk_03000F50 -_0808C874: .4byte 0x00003FBF -_0808C878: - ldr r1, _0808C898 @ =gUnk_03000F50 - adds r3, r1, #0 - adds r3, #0x66 - ldr r0, _0808C89C @ =0x00003FFF -_0808C880: - strh r0, [r3] - adds r3, r1, #0 - ldrb r1, [r2, #0xb] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808C8A0 - adds r1, r3, #0 - adds r1, #0x6a - movs r0, #0 - b _0808C8A6 - .align 2, 0 -_0808C898: .4byte gUnk_03000F50 -_0808C89C: .4byte 0x00003FFF -_0808C8A0: - adds r1, r3, #0 - adds r1, #0x6a - movs r0, #0x10 -_0808C8A6: - strh r0, [r1] - movs r0, #1 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x68 - adds r0, #0xff - strh r0, [r1] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808C8B8 -sub_0808C8B8: @ 0x0808C8B8 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x68 - adds r1, r3, #0 - adds r1, #0x6a - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0808C8D6 - movs r0, #0 - strh r0, [r2] -_0808C8D6: - ldrb r1, [r3, #0xb] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808C8F8 - ldr r0, _0808C8F4 @ =gUnk_03000F50 - ldrh r1, [r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x10 - subs r2, r2, r1 - adds r0, #0x6a - strh r2, [r0] - b _0808C904 - .align 2, 0 -_0808C8F4: .4byte gUnk_03000F50 -_0808C8F8: - ldr r1, _0808C918 @ =gUnk_03000F50 - ldrh r0, [r2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - adds r1, #0x6a - strh r0, [r1] -_0808C904: - adds r0, r3, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _0808C914 - bl sub_0805E780 -_0808C914: - pop {pc} - .align 2, 0 -_0808C918: .4byte gUnk_03000F50 - - thumb_func_start sub_0808C91C -sub_0808C91C: @ 0x0808C91C - push {lr} - ldr r2, _0808C930 @ =gUnk_08121668 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808C930: .4byte gUnk_08121668 - - thumb_func_start sub_0808C934 -sub_0808C934: @ 0x0808C934 - push {lr} - ldr r2, _0808C948 @ =gUnk_08121670 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808C948: .4byte gUnk_08121670 - - thumb_func_start sub_0808C94C -sub_0808C94C: @ 0x0808C94C - push {lr} - ldr r2, _0808C960 @ =gUnk_08121678 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808C960: .4byte gUnk_08121678 - - thumb_func_start sub_0808C964 -sub_0808C964: @ 0x0808C964 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - strb r1, [r4, #0x1e] - ldrb r0, [r4, #9] - cmp r0, #0x76 - bne _0808C982 - ldr r0, _0808CA08 @ =gUnk_02032EC0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #2 - beq _0808C982 - adds r0, r1, #0 - subs r0, #9 - strb r0, [r4, #0xa] -_0808C982: - ldrb r0, [r4, #0xa] - cmp r0, #4 - bls _0808C996 - ldr r0, _0808CA0C @ =gUnk_02033A90 - ldrb r0, [r0, #0x16] - ldrb r1, [r4, #0xb] - cmp r0, r1 - beq _0808C996 - bl sub_0805E780 -_0808C996: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0xb] - adds r3, r4, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r4, #9] - cmp r0, #0x75 - beq _0808CA04 - ldrb r2, [r4, #0xa] - subs r0, r2, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _0808CA04 - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - movs r2, #0x80 - lsls r2, r2, #1 - cmp r0, #1 - bne _0808C9FA - movs r2, #0xe0 -_0808C9FA: - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_0808CA04: - pop {r4, pc} - .align 2, 0 -_0808CA08: .4byte gUnk_02032EC0 -_0808CA0C: .4byte gUnk_02033A90 - - thumb_func_start sub_0808CA10 -sub_0808CA10: @ 0x0808CA10 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _0808CA40 - cmp r0, #2 - bgt _0808CA24 - cmp r0, #1 - beq _0808CA2A - b _0808CA78 -_0808CA24: - cmp r0, #3 - beq _0808CA60 - b _0808CA78 -_0808CA2A: - ldr r2, _0808CA3C @ =gUnk_02018EB0 - ldrb r0, [r2, #0x18] - cmp r0, #0 - beq _0808CA78 - movs r0, #0 - movs r1, #0x20 - strb r1, [r4, #0xe] - strb r0, [r2, #0x18] - b _0808CA50 - .align 2, 0 -_0808CA3C: .4byte gUnk_02018EB0 -_0808CA40: - ldr r2, _0808CA5C @ =gUnk_02018EB0 - ldrb r0, [r2, #0x19] - cmp r0, #0 - beq _0808CA78 - movs r0, #0 - movs r1, #0x20 - strb r1, [r4, #0xe] - strb r0, [r2, #0x19] -_0808CA50: - movs r0, #0x97 - lsls r0, r0, #1 - bl sub_080A3268 - b _0808CA78 - .align 2, 0 -_0808CA5C: .4byte gUnk_02018EB0 -_0808CA60: - ldr r2, _0808CABC @ =gUnk_02018EB0 - ldrb r0, [r2, #0x1a] - cmp r0, #0 - beq _0808CA78 - movs r0, #0 - movs r1, #0x20 - strb r1, [r4, #0xe] - strb r0, [r2, #0x1a] - movs r0, #0x97 - lsls r0, r0, #1 - bl sub_080A3268 -_0808CA78: - ldrb r0, [r4, #9] - cmp r0, #0x75 - beq _0808CAE0 - ldrb r1, [r4, #0xa] - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r1, #0 - cmp r0, #2 - bhi _0808CAE0 - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _0808CAE0 - subs r1, #1 - strb r1, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r2, r0, #1 - strb r2, [r4, #0xf] - lsls r1, r1, #0x18 - cmp r1, #0 - beq _0808CAC4 - ldr r0, _0808CAC0 @ =gUnk_08121648 - movs r1, #0xe - ands r1, r2 - lsls r2, r1, #1 - adds r2, r2, r0 - movs r6, #0 - ldrsh r3, [r2, r6] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r0 - movs r0, #0 - ldrsh r2, [r1, r0] - b _0808CACA - .align 2, 0 -_0808CABC: .4byte gUnk_02018EB0 -_0808CAC0: .4byte gUnk_08121648 -_0808CAC4: - movs r2, #0x80 - lsls r2, r2, #1 - adds r3, r2, #0 -_0808CACA: - lsls r0, r5, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _0808CAD6 - subs r3, #0x20 - subs r2, #0x20 -_0808CAD6: - adds r0, r4, #0 - adds r1, r3, #0 - movs r3, #0 - bl sub_0805EC9C -_0808CAE0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808CAE4 -sub_0808CAE4: @ 0x0808CAE4 - push {lr} - ldr r2, _0808CAF8 @ =gUnk_08121680 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808CAF8: .4byte gUnk_08121680 - - thumb_func_start sub_0808CAFC -sub_0808CAFC: @ 0x0808CAFC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0808CB18 @ =gUnk_08121688 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0808CB9C - pop {r4, pc} - .align 2, 0 -_0808CB18: .4byte gUnk_08121688 - - thumb_func_start sub_0808CB1C -sub_0808CB1C: @ 0x0808CB1C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808CB70 - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xa7 - strh r0, [r4, #0x12] - movs r0, #0xd - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x60 - strh r2, [r0] - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x19] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r4, #0x1b] - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r4, #0x1b] -_0808CB70: - ldr r0, [r4, #0x50] - ldr r1, [r0, #0x2c] - str r1, [r4, #0x2c] - ldr r1, [r0, #0x30] - str r1, [r4, #0x30] - movs r5, #0 - str r5, [r4, #0x34] - adds r1, r4, #0 - bl sub_0806FAD8 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0808CB98 - adds r0, r4, #0 - adds r0, #0x60 - movs r1, #0 - strh r5, [r0] - strb r1, [r4, #0xd] - movs r0, #4 - strb r0, [r4, #0x1e] -_0808CB98: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808CB9C -sub_0808CB9C: @ 0x0808CB9C - push {r4, r5, lr} - adds r3, r0, #0 - adds r0, #0x68 - ldrh r1, [r0] - ldrb r4, [r0] - lsrs r5, r1, #8 - movs r2, #0 - ldrb r0, [r3, #0x14] - cmp r0, #4 - bls _0808CBB2 - movs r2, #1 -_0808CBB2: - lsls r2, r2, #6 - ldrb r1, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - cmp r4, #0xb7 - bhi _0808CBCA - ldrb r0, [r3, #0x14] - lsrs r0, r0, #1 - adds r4, r4, r0 -_0808CBCA: - ldrh r0, [r3, #0x12] - cmp r5, r0 - bne _0808CBDA - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r4, r0 - beq _0808CBE4 -_0808CBDA: - strh r5, [r3, #0x12] - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_080042AC -_0808CBE4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808CBE8 -sub_0808CBE8: @ 0x0808CBE8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r3, #4 - strb r3, [r4, #0x14] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x19] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - mov r2, ip - strb r0, [r2] - ldrb r0, [r4, #0x1b] - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r4, #0x1b] - adds r1, r4, #0 - adds r1, #0x68 - movs r0, #0x8a - lsls r0, r0, #1 - strh r0, [r1] - subs r1, #0x10 - movs r0, #0xff - strb r0, [r1] - ldr r0, _0808CC80 @ =0x0000FF50 - strh r0, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x6a - strh r3, [r0] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #4 - movs r2, #4 - movs r3, #0 - bl sub_0805EC9C - ldr r0, _0808CC84 @ =gUnk_02018EB0 - str r4, [r0, #0x14] - movs r0, #0 - bl sub_0807A094 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0801D2B4 - movs r0, #0x3c - movs r1, #1 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _0808CC7C - str r4, [r0, #0x50] - str r0, [r4, #0x54] -_0808CC7C: - pop {r4, pc} - .align 2, 0 -_0808CC80: .4byte 0x0000FF50 -_0808CC84: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CC88 -sub_0808CC88: @ 0x0808CC88 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x6a - ldrh r1, [r4] - ldr r0, _0808CCB8 @ =0x000003FF - cmp r1, r0 - bhi _0808CCB4 - adds r0, r1, #4 - strh r0, [r4] - ldrh r2, [r4] - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - ldrh r1, [r4] - adds r0, r5, #0 - movs r2, #8 - movs r3, #2 - bl sub_0806FCF4 -_0808CCB4: - pop {r4, r5, pc} - .align 2, 0 -_0808CCB8: .4byte 0x000003FF - - thumb_func_start sub_0808CCBC -sub_0808CCBC: @ 0x0808CCBC - push {r4, lr} - adds r4, r0, #0 - bl sub_0808CC88 - movs r1, #0x80 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0808CCFA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x14 - strb r0, [r4, #0x15] - adds r0, #0xec - strh r0, [r4, #0x24] - movs r0, #0xc0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x54] - movs r1, #1 - strb r1, [r0, #0xd] - ldr r0, _0808CCFC @ =gUnk_02018EB0 - strb r1, [r0, #0x18] -_0808CCFA: - pop {r4, pc} - .align 2, 0 -_0808CCFC: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CD00 -sub_0808CD00: @ 0x0808CD00 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808CC88 - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _0808CD24 - adds r0, r4, #0 - bl sub_0806F69C - b _0808CD3E -_0808CD24: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0x15] - movs r0, #0xc0 - strh r0, [r4, #0x24] - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r1, _0808CD40 @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x19] -_0808CD3E: - pop {r4, pc} - .align 2, 0 -_0808CD40: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CD44 -sub_0808CD44: @ 0x0808CD44 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808CC88 - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _0808CD68 - adds r0, r4, #0 - bl sub_0806F69C - b _0808CD82 -_0808CD68: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x11 - strb r0, [r4, #0x15] - adds r0, #0xef - strh r0, [r4, #0x24] - movs r0, #0x90 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r1, _0808CD84 @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x1a] -_0808CD82: - pop {r4, pc} - .align 2, 0 -_0808CD84: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CD88 -sub_0808CD88: @ 0x0808CD88 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808CC88 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _0808CDB8 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x7f - bgt _0808CDD6 - movs r0, #0x80 - strh r0, [r4, #0x2e] - b _0808CDD6 -_0808CDB8: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x68 - ldr r0, _0808CDD8 @ =0x00000C04 - strh r0, [r1] - ldr r0, [r4, #0x54] - bl sub_0805E7BC - adds r0, r4, #0 - bl sub_0805EC60 -_0808CDD6: - pop {r4, pc} - .align 2, 0 -_0808CDD8: .4byte 0x00000C04 - - thumb_func_start sub_0808CDDC -sub_0808CDDC: @ 0x0808CDDC - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808CDF6 - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] - movs r0, #0x10 - strb r0, [r1, #0xe] -_0808CDF6: - pop {pc} - - thumb_func_start sub_0808CDF8 -sub_0808CDF8: @ 0x0808CDF8 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808CE2C - ldr r0, _0808CE30 @ =gUnk_02033A90 - ldrb r1, [r0, #0x16] - ldrb r0, [r3, #0xc] - adds r0, #1 - adds r0, r0, r1 - strb r0, [r3, #0xc] - ldr r2, _0808CE34 @ =gUnk_081216B4 - lsls r1, r1, #1 - adds r0, r1, r2 - ldrb r0, [r0] - strb r0, [r3, #0x14] - adds r1, #1 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r3, #0x15] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r3, #0x24] -_0808CE2C: - pop {pc} - .align 2, 0 -_0808CE30: .4byte gUnk_02033A90 -_0808CE34: .4byte gUnk_081216B4 - - thumb_func_start sub_0808CE38 -sub_0808CE38: @ 0x0808CE38 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0xc7 - bgt _0808CE52 - movs r0, #0x18 - strb r0, [r4, #0x15] -_0808CE52: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0x2f - bgt _0808CE60 - ldr r1, _0808CE64 @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x1b] -_0808CE60: - pop {r4, pc} - .align 2, 0 -_0808CE64: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CE68 -sub_0808CE68: @ 0x0808CE68 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0xc7 - bgt _0808CE82 - movs r0, #8 - strb r0, [r4, #0x15] -_0808CE82: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0xd0 - ble _0808CE90 - ldr r1, _0808CE94 @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x1b] -_0808CE90: - pop {r4, pc} - .align 2, 0 -_0808CE94: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CE98 -sub_0808CE98: @ 0x0808CE98 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - ble _0808CEB8 - ldr r1, _0808CEBC @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x1b] -_0808CEB8: - pop {r4, pc} - .align 2, 0 -_0808CEBC: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CEC0 -sub_0808CEC0: @ 0x0808CEC0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, #0xc7 - bgt _0808CEDA - movs r0, #0x18 - strb r0, [r4, #0x15] -_0808CEDA: - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, #0xf - bgt _0808CEE8 - ldr r1, _0808CEEC @ =gUnk_02018EB0 - movs r0, #1 - strb r0, [r1, #0x1b] -_0808CEE8: - pop {r4, pc} - .align 2, 0 -_0808CEEC: .4byte gUnk_02018EB0 - - thumb_func_start sub_0808CEF0 -sub_0808CEF0: @ 0x0808CEF0 - push {lr} - ldr r2, _0808CF04 @ =gUnk_081216BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808CF04: .4byte gUnk_081216BC - - thumb_func_start sub_0808CF08 -sub_0808CF08: @ 0x0808CF08 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _0808CF50 @ =gUnk_02033A90 - ldr r3, _0808CF54 @ =gUnk_03000BF0 - ldrh r0, [r2, #0x12] - ldrh r1, [r3, #0xa] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r2, #0x14] - ldrh r1, [r3, #0xc] - subs r0, r0, r1 - strh r0, [r4, #0x32] - adds r5, r4, #0 - adds r5, #0x68 - movs r0, #0x80 - strh r0, [r5] - ldrb r1, [r4, #0x11] - subs r0, #0x90 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - ldr r0, _0808CF58 @ =0x00001F17 - movs r1, #0 - bl sub_0801E1B8 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5] - bl sub_0801E1EC - pop {r4, r5, pc} - .align 2, 0 -_0808CF50: .4byte gUnk_02033A90 -_0808CF54: .4byte gUnk_03000BF0 -_0808CF58: .4byte 0x00001F17 - - thumb_func_start sub_0808CF5C -sub_0808CF5C: @ 0x0808CF5C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x68 - ldrh r0, [r2] - subs r0, #2 - strh r0, [r2] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x14 - bls _0808CF82 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r3, #0x32 - ldrsh r1, [r5, r3] - ldrh r2, [r2] - bl sub_0801E1EC - b _0808D01E -_0808CF82: - ldr r0, _0808D020 @ =gUnk_03000F50 - adds r0, #0x62 - movs r1, #0x10 - strh r1, [r0] - bl sub_0808D030 - movs r0, #0 - bl sub_0801CFA8 - bl sub_080ADD30 - ldr r0, _0808D024 @ =gUnk_02024490 - movs r6, #1 - strb r6, [r0] - ldrb r0, [r5, #0xa] - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #1 - ldr r0, _0808D028 @ =gUnk_081216C8 - adds r4, r4, r0 - ldrh r1, [r4] - adds r0, r5, #0 - bl sub_080ADF80 - ldrh r1, [r4, #2] - adds r0, r5, #0 - bl sub_0801D040 - ldrh r0, [r4, #4] - strh r0, [r5, #0x12] - ldrb r0, [r5, #0xa] - cmp r0, #2 - bne _0808CFC6 - strb r0, [r5, #0x1e] -_0808CFC6: - movs r2, #2 - movs r0, #2 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #6 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - ands r1, r0 - strb r1, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0x1e - strb r0, [r5, #0xe] - movs r0, #0xff - strb r0, [r5, #0xf] - ldrb r0, [r5, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #0x19] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r5, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - ldr r0, _0808D02C @ =gUnk_02033A90 - strh r6, [r0, #0x10] - movs r0, #5 - movs r1, #8 - bl sub_08050054 -_0808D01E: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808D020: .4byte gUnk_03000F50 -_0808D024: .4byte gUnk_02024490 -_0808D028: .4byte gUnk_081216C8 -_0808D02C: .4byte gUnk_02033A90 - - thumb_func_start sub_0808D030 -sub_0808D030: @ 0x0808D030 - push {r4, r5, lr} - ldr r4, _0808D058 @ =gUnk_03000020 - movs r5, #0x80 - adds r0, r4, #0 - subs r0, #0x20 - ldr r1, _0808D05C @ =0x00000B74 - bl sub_0801D630 - movs r1, #0xa8 - lsls r1, r1, #2 - adds r0, r1, #0 -_0808D046: - strh r0, [r4] - adds r4, #8 - subs r5, #1 - cmp r5, #0 - bne _0808D046 - ldr r1, _0808D060 @ =gUnk_03000000 - movs r0, #1 - strb r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_0808D058: .4byte gUnk_03000020 -_0808D05C: .4byte 0x00000B74 -_0808D060: .4byte gUnk_03000000 - - thumb_func_start sub_0808D064 -sub_0808D064: @ 0x0808D064 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r1, r0, #0 - adds r1, #0xff - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _0808D0B4 - adds r0, r4, #0 - adds r0, #0x68 - ldrh r3, [r0] - adds r1, r3, #0 - adds r2, r0, #0 - cmp r1, #0 - beq _0808D08C - subs r0, r3, #2 - strh r0, [r2] - b _0808D08E -_0808D08C: - strh r1, [r2] -_0808D08E: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r3, #0x32 - ldrsh r1, [r4, r3] - ldrh r2, [r2] - bl sub_0801E1EC - ldrb r0, [r4, #0xf] - cmp r0, #0x80 - bls _0808D0A6 - subs r0, #8 - strb r0, [r4, #0xf] -_0808D0A6: - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - b _0808D0C2 -_0808D0B4: - ldr r1, _0808D0C4 @ =gUnk_02033A90 - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - strh r2, [r1, #0x10] - bl sub_0805E780 -_0808D0C2: - pop {r4, pc} - .align 2, 0 -_0808D0C4: .4byte gUnk_02033A90 - - thumb_func_start sub_0808D0C8 -sub_0808D0C8: @ 0x0808D0C8 - push {lr} - ldr r2, _0808D0DC @ =gUnk_081216DC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808D0DC: .4byte gUnk_081216DC - - thumb_func_start sub_0808D0E0 -sub_0808D0E0: @ 0x0808D0E0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r6, [r5, #0xc] - cmp r6, #1 - beq _0808D12C - cmp r6, #1 - bgt _0808D0F4 - cmp r6, #0 - beq _0808D0FA - b _0808D192 -_0808D0F4: - cmp r6, #2 - beq _0808D150 - b _0808D192 -_0808D0FA: - movs r4, #1 - strb r4, [r5, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - movs r1, #0x40 - subs r1, r1, r0 - strb r1, [r5, #0xe] - strb r6, [r5, #0x1e] - strb r6, [r5, #0x14] - ldrb r0, [r5, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x38 - strb r4, [r0] - b _0808D192 -_0808D12C: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D192 - movs r0, #8 - strb r0, [r5, #0xe] - movs r0, #4 - strb r0, [r5, #0xf] - movs r0, #2 - strb r0, [r5, #0xc] - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x14] - b _0808D192 -_0808D150: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D192 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r1 - cmp r0, #0 - bne _0808D180 - strb r0, [r5, #0x1e] - movs r0, #1 - strb r0, [r5, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - movs r1, #0x40 - subs r1, r1, r0 - strb r1, [r5, #0xe] - b _0808D192 -_0808D180: - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x14] - ldrb r0, [r5, #0x1e] - movs r2, #0 - cmp r0, r1 - beq _0808D190 - adds r2, r1, #0 -_0808D190: - strb r2, [r5, #0x1e] -_0808D192: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808D194 -sub_0808D194: @ 0x0808D194 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xc] - cmp r1, #1 - beq _0808D234 - cmp r1, #1 - bgt _0808D1A8 - cmp r1, #0 - beq _0808D1AE - b _0808D234 -_0808D1A8: - cmp r1, #2 - beq _0808D1FC - b _0808D234 -_0808D1AE: - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #8 - strb r0, [r5, #0xe] - strb r1, [r5, #0xf] - strb r1, [r5, #0x1e] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0808D1F4 @ =0x00004069 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808D1F8 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - subs r1, #0x40 - movs r2, #1 - bl sub_0800015E - b _0808D234 - .align 2, 0 -_0808D1F4: .4byte 0x00004069 -_0808D1F8: .4byte gUnk_03000BF0 -_0808D1FC: - ldr r0, _0808D274 @ =gUnk_030010A0 - ldr r3, [r0] - movs r0, #3 - ands r3, r0 - cmp r3, #0 - bne _0808D234 - ldr r4, _0808D278 @ =gUnk_03000F50 - ldrb r2, [r5, #0xd] - lsls r1, r2, #8 - movs r0, #0x10 - subs r0, r0, r2 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - lsls r1, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #0x15 - cmp r1, r0 - bne _0808D234 - adds r0, r4, #0 - adds r0, #0x66 - strh r3, [r0] - bl sub_0805E780 -_0808D234: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D272 - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xa] - cmp r0, #9 - bne _0808D24E - movs r0, #2 - strb r0, [r5, #0xe] -_0808D24E: - ldr r4, _0808D27C @ =gUnk_08121704 - ldrb r0, [r5, #0xf] - adds r1, r0, #1 - strb r1, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r1, [r0] - adds r0, r5, #0 - bl sub_0801D2B4 - ldrb r0, [r5, #0xf] - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - bne _0808D272 - strb r0, [r5, #0xf] -_0808D272: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808D274: .4byte gUnk_030010A0 -_0808D278: .4byte gUnk_03000F50 -_0808D27C: .4byte gUnk_08121704 - - thumb_func_start sub_0808D280 -sub_0808D280: @ 0x0808D280 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #6 - movs r1, #0x3e - movs r2, #6 - movs r3, #9 - bl sub_0805EB2C - adds r2, r0, #0 - cmp r2, #0 - beq _0808D2C4 - movs r0, #2 - strb r0, [r2, #0xc] - strb r4, [r2, #0xd] - ldrb r1, [r2, #0x19] - subs r0, #0xf - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #0x19] - ldr r1, _0808D2C8 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xc8 - lsls r0, r0, #3 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x10 - strh r0, [r1] - movs r0, #0xf6 - bl sub_080A3268 -_0808D2C4: - add sp, #4 - pop {r4, pc} - .align 2, 0 -_0808D2C8: .4byte gUnk_03000F50 - - thumb_func_start sub_0808D2CC -sub_0808D2CC: @ 0x0808D2CC - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x3e - movs r2, #6 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0808D2F2 - movs r0, #9 - strb r0, [r1, #0xa] - adds r0, r1, #0 - movs r1, #2 - bl sub_0805E3A0 -_0808D2F2: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_521 -nullsub_521: @ 0x0808D2F8 - bx lr - .align 2, 0 - - thumb_func_start sub_0808D2FC -sub_0808D2FC: @ 0x0808D2FC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808D31C - strb r0, [r4, #0xc] - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0807DD64 -_0808D31C: - movs r0, #0x2e - ldrsh r5, [r4, r0] - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - ldr r0, _0808D354 @ =gUnk_03000BF0 - ldrh r0, [r0, #0x16] - cmp r0, #0 - beq _0808D350 - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r5, r0 - beq _0808D350 - ldr r0, _0808D358 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0808D350 - ldr r0, _0808D35C @ =0x0000010F - bl sub_080A3268 -_0808D350: - pop {r4, r5, pc} - .align 2, 0 -_0808D354: .4byte gUnk_03000BF0 -_0808D358: .4byte gUnk_030010A0 -_0808D35C: .4byte 0x0000010F - - thumb_func_start sub_0808D360 -sub_0808D360: @ 0x0808D360 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808D382 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0807DD64 -_0808D382: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808D394 -sub_0808D394: @ 0x0808D394 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0808D3C4 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #8 - strb r0, [r5, #0xe] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0808D3FC @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xc8 - lsls r0, r0, #3 - strh r0, [r2] - adds r1, #0x68 - ldr r0, _0808D400 @ =0x00001003 - strh r0, [r1] -_0808D3C4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D3F8 - movs r0, #2 - strb r0, [r5, #0xe] - ldr r4, _0808D404 @ =gUnk_08121720 - ldrb r0, [r5, #0xf] - adds r1, r0, #1 - strb r1, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r1, [r0] - adds r0, r5, #0 - bl sub_0801D28C - ldrb r0, [r5, #0xf] - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - bne _0808D3F8 - strb r0, [r5, #0xf] -_0808D3F8: - pop {r4, r5, pc} - .align 2, 0 -_0808D3FC: .4byte gUnk_03000F50 -_0808D400: .4byte 0x00001003 -_0808D404: .4byte gUnk_08121720 - - thumb_func_start sub_0808D408 -sub_0808D408: @ 0x0808D408 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xc] - cmp r0, #0 - bne _0808D458 - movs r1, #1 - strb r1, [r3, #0xc] - ldrb r0, [r3, #0x19] - movs r2, #0xc0 - orrs r0, r2 - strb r0, [r3, #0x19] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r0, [r0] - movs r2, #7 - orrs r0, r2 - mov r2, ip - strb r0, [r2] - ldrb r2, [r3, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #4 - orrs r0, r2 - strb r0, [r3, #0x19] - ldrb r0, [r3, #0xb] - strb r0, [r3, #0x1e] - ldrb r0, [r3, #0xb] - subs r1, r1, r0 - lsls r1, r1, #9 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r1, r0 - movs r2, #0xc0 - rsbs r2, r2, #0 - adds r0, r3, #0 - movs r3, #0 - bl sub_0805EC9C -_0808D458: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808D45C -sub_0808D45C: @ 0x0808D45C - push {lr} - ldr r2, _0808D470 @ =gUnk_0812172C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808D470: .4byte gUnk_0812172C - - thumb_func_start sub_0808D474 -sub_0808D474: @ 0x0808D474 - push {r4, r5, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xb] - strb r0, [r5, #0x1e] - movs r1, #2 - strb r1, [r5, #0xc] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D4D4 - movs r0, #0x7c - bl sub_0807CBD0 - adds r1, r0, #0 - cmp r1, #0 - bne _0808D4D4 - movs r0, #1 - strb r0, [r5, #0xc] - strb r1, [r5, #0xe] - ldrb r1, [r5, #0x19] - subs r0, #0xe - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #0x19] - ldr r1, _0808D4CC @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xc8 - lsls r0, r0, #3 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - ldr r0, _0808D4D0 @ =0x00000179 - bl sub_080A3268 - b _0808D50E - .align 2, 0 -_0808D4CC: .4byte gUnk_03000F50 -_0808D4D0: .4byte 0x00000179 -_0808D4D4: - movs r0, #8 - strb r0, [r5, #0xe] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _0808D510 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0808D500 - subs r4, #0x40 -_0808D500: - ldr r0, _0808D514 @ =0x00004069 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r2, [r1] - adds r1, r4, #0 - bl sub_0800015E -_0808D50E: - pop {r4, r5, pc} - .align 2, 0 -_0808D510: .4byte gUnk_03000BF0 -_0808D514: .4byte 0x00004069 - - thumb_func_start sub_0808D518 -sub_0808D518: @ 0x0808D518 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _0808D58C @ =gUnk_030010A0 - ldr r2, [r0] - movs r0, #3 - ands r2, r0 - cmp r2, #0 - bne _0808D58A - ldr r3, _0808D590 @ =gUnk_03000F50 - ldrb r0, [r5, #0xe] - movs r1, #0x10 - subs r1, r1, r0 - lsls r1, r1, #8 - orrs r1, r0 - adds r0, r3, #0 - adds r0, #0x68 - strh r1, [r0] - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - cmp r1, #0x10 - bne _0808D58A - movs r0, #2 - strb r0, [r5, #0xc] - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x19] - subs r0, #0x15 - ands r0, r1 - strb r0, [r5, #0x19] - adds r0, r3, #0 - adds r0, #0x66 - strh r2, [r0] - ldr r0, _0808D594 @ =0x00004069 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0808D598 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0808D58A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0808D58C: .4byte gUnk_030010A0 -_0808D590: .4byte gUnk_03000F50 -_0808D594: .4byte 0x00004069 -_0808D598: .4byte gUnk_03000BF0 - - thumb_func_start sub_0808D59C -sub_0808D59C: @ 0x0808D59C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D5D4 - movs r0, #8 - strb r0, [r5, #0xe] - ldr r4, _0808D5D8 @ =gUnk_08121738 - ldrb r0, [r5, #0xf] - adds r1, r0, #1 - strb r1, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r4 - ldrh r1, [r0] - adds r0, r5, #0 - bl sub_0801D2B4 - ldrb r0, [r5, #0xf] - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0 - bne _0808D5D4 - strb r0, [r5, #0xf] -_0808D5D4: - pop {r4, r5, pc} - .align 2, 0 -_0808D5D8: .4byte gUnk_08121738 - - thumb_func_start sub_0808D5DC -sub_0808D5DC: @ 0x0808D5DC - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xc] - cmp r0, #0 - bne _0808D614 - movs r2, #1 - movs r0, #1 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - ldrb r0, [r3, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r3, #0xa] - strb r0, [r3, #0x1e] - adds r0, r3, #0 - bl sub_0808D618 -_0808D614: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808D618 -sub_0808D618: @ 0x0808D618 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - ldr r7, _0808D664 @ =gUnk_08121750 - cmp r0, #0 - beq _0808D626 - ldr r7, _0808D668 @ =gUnk_0812176A -_0808D626: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _0808D66C @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - movs r6, #0 - adds r4, r7, #0 -_0808D64A: - movs r0, #0 - ldrsh r1, [r4, r0] - adds r1, r5, r1 - ldr r0, _0808D670 @ =0x00004074 - movs r2, #1 - bl sub_0800015E - adds r4, #2 - adds r6, #1 - cmp r6, #0xc - bls _0808D64A - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808D664: .4byte gUnk_08121750 -_0808D668: .4byte gUnk_0812176A -_0808D66C: .4byte gUnk_03000BF0 -_0808D670: .4byte 0x00004074 - - thumb_func_start sub_0808D674 -sub_0808D674: @ 0x0808D674 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808D750 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1f - bhi _0808D750 - lsls r0, r0, #2 - ldr r1, _0808D698 @ =_0808D69C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808D698: .4byte _0808D69C -_0808D69C: @ jump table - .4byte _0808D740 @ case 0 - .4byte _0808D740 @ case 1 - .4byte _0808D750 @ case 2 - .4byte _0808D750 @ case 3 - .4byte _0808D740 @ case 4 - .4byte _0808D740 @ case 5 - .4byte _0808D740 @ case 6 - .4byte _0808D750 @ case 7 - .4byte _0808D740 @ case 8 - .4byte _0808D740 @ case 9 - .4byte _0808D740 @ case 10 - .4byte _0808D740 @ case 11 - .4byte _0808D740 @ case 12 - .4byte _0808D750 @ case 13 - .4byte _0808D750 @ case 14 - .4byte _0808D750 @ case 15 - .4byte _0808D750 @ case 16 - .4byte _0808D750 @ case 17 - .4byte _0808D750 @ case 18 - .4byte _0808D748 @ case 19 - .4byte _0808D71C @ case 20 - .4byte _0808D750 @ case 21 - .4byte _0808D750 @ case 22 - .4byte _0808D750 @ case 23 - .4byte _0808D750 @ case 24 - .4byte _0808D750 @ case 25 - .4byte _0808D750 @ case 26 - .4byte _0808D750 @ case 27 - .4byte _0808D750 @ case 28 - .4byte _0808D750 @ case 29 - .4byte _0808D740 @ case 30 - .4byte _0808D73C @ case 31 -_0808D71C: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x4c] - str r0, [r4, #0x54] - b _0808D750 -_0808D73C: - bl sub_0805E780 -_0808D740: - adds r0, r4, #0 - bl sub_0808DAD0 - b _0808D750 -_0808D748: - adds r0, r4, #0 - bl sub_0808D76C - b _0808D766 -_0808D750: - ldr r0, _0808D768 @ =gUnk_08121784 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08080CB4 -_0808D766: - pop {r4, pc} - .align 2, 0 -_0808D768: .4byte gUnk_08121784 - - thumb_func_start sub_0808D76C -sub_0808D76C: @ 0x0808D76C - push {lr} - ldr r2, _0808D780 @ =gUnk_08121798 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808D780: .4byte gUnk_08121798 - - thumb_func_start sub_0808D784 -sub_0808D784: @ 0x0808D784 - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xd] - strb r1, [r0, #0x1d] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - bx lr - - thumb_func_start sub_0808D798 -sub_0808D798: @ 0x0808D798 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0808D7A0 -sub_0808D7A0: @ 0x0808D7A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0808D7B2 - adds r0, r4, #0 - bl sub_0808DB2C -_0808D7B2: - pop {r4, pc} - - thumb_func_start sub_0808D7B4 -sub_0808D7B4: @ 0x0808D7B4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3c - movs r2, #0x17 - strb r2, [r0] - adds r1, #8 - movs r0, #0x49 - strb r0, [r1] - subs r1, #1 - movs r0, #7 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3b - strb r2, [r0] - adds r1, #6 - movs r0, #0xff - strb r0, [r1] - ldr r0, _0808D818 @ =gUnk_080FD1A8 - str r0, [r4, #0x48] - movs r0, #1 - strb r0, [r4, #0x1c] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - movs r0, #0x9b - lsls r0, r0, #1 - bl sub_08004488 - ldrb r0, [r4, #0xb] - cmp r0, #2 - beq _0808D834 - cmp r0, #2 - bgt _0808D81C - cmp r0, #0 - beq _0808D822 - b _0808D82E - .align 2, 0 -_0808D818: .4byte gUnk_080FD1A8 -_0808D81C: - cmp r0, #3 - beq _0808D83C - b _0808D82E -_0808D822: - movs r0, #0xf0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - ldrh r0, [r4, #0x36] - adds r0, #8 - strh r0, [r4, #0x36] -_0808D82E: - movs r0, #1 - strb r0, [r4, #0xc] - b _0808D842 -_0808D834: - adds r0, r4, #0 - bl sub_0808DAD0 - b _0808D842 -_0808D83C: - adds r0, r4, #0 - bl sub_0808DB2C -_0808D842: - pop {r4, pc} - - thumb_func_start sub_0808D844 -sub_0808D844: @ 0x0808D844 - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x34] - ldr r1, _0808D870 @ =0xFFFF2000 - adds r0, r0, r1 - str r0, [r3, #0x34] - adds r0, r3, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - beq _0808D88A - ldrb r0, [r3, #0xe] - cmp r0, #0 - beq _0808D874 - adds r2, r3, #0 - adds r2, #0x78 - ldrh r1, [r2] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #1 - strh r0, [r2] - b _0808D87E - .align 2, 0 -_0808D870: .4byte 0xFFFF2000 -_0808D874: - adds r1, r3, #0 - adds r1, #0x78 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] -_0808D87E: - movs r0, #2 - strb r0, [r3, #0xc] - movs r0, #1 - strb r0, [r3, #0xf] - movs r0, #0x80 - strh r0, [r3, #0x24] -_0808D88A: - pop {pc} - - thumb_func_start sub_0808D88C -sub_0808D88C: @ 0x0808D88C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808D910 - bl sub_08000E50 - adds r5, r0, #0 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x20 - strb r0, [r4, #0xf] - ldr r2, _0808D8D0 @ =gUnk_081217A4 - lsrs r0, r5, #8 - movs r1, #1 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0808DAA0 - cmp r0, #0 - beq _0808D8D4 - movs r0, #0x1f - ands r5, r0 - strb r5, [r4, #0x15] - b _0808D8EE - .align 2, 0 -_0808D8D0: .4byte gUnk_081217A4 -_0808D8D4: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r4, #0 - adds r2, #0x74 - ldrh r2, [r2] - adds r3, r4, #0 - adds r3, #0x76 - ldrh r3, [r3] - bl sub_080045D4 - strb r0, [r4, #0x15] -_0808D8EE: - ldrb r1, [r4, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _0808D910 - movs r0, #0x10 - eors r1, r0 - lsrs r1, r1, #4 - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_0808D910: - adds r0, r4, #0 - bl sub_080AEFB4 - bl sub_0805E40C - cmp r0, #0 - bne _0808D954 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808D954 - adds r5, r4, #0 - adds r5, #0x78 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0808D93C - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 -_0808D93C: - ldrh r0, [r5] - cmp r0, #0x77 - bhi _0808D954 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_0808D954: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808D958 -sub_0808D958: @ 0x0808D958 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x54] - ldrh r1, [r2, #8] - movs r0, #0xc2 - lsls r0, r0, #2 - cmp r1, r0 - beq _0808D972 - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 - b _0808D992 -_0808D972: - adds r0, r2, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - ldr r1, _0808D994 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _0808D992 - adds r0, r4, #0 - bl sub_0808DB2C -_0808D992: - pop {r4, pc} - .align 2, 0 -_0808D994: .4byte gLinkEntity - - thumb_func_start sub_0808D998 -sub_0808D998: @ 0x0808D998 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, [r5, #0x54] - ldr r2, _0808DA28 @ =gUnk_080C9160 - ldrb r0, [r5, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - movs r3, #0 - ldrsh r1, [r0, r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - cmp r0, #0 - bge _0808D9B8 - ldr r1, _0808DA2C @ =0x0000FFFF - adds r0, r0, r1 -_0808D9B8: - asrs r0, r0, #0x10 - ldrh r3, [r6, #0x2e] - adds r0, r0, r3 - strh r0, [r5, #0x2e] - ldrb r0, [r5, #0xe] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #8 - cmp r0, #0 - bge _0808D9DA - ldr r3, _0808DA2C @ =0x0000FFFF - adds r0, r0, r3 -_0808D9DA: - asrs r1, r0, #0x10 - ldrh r0, [r6, #0x32] - subs r0, r0, r1 - strh r0, [r5, #0x32] - ldrb r3, [r5, #0xe] - adds r0, r3, #0 - adds r0, #8 - strb r0, [r5, #0xe] - ldrh r0, [r6, #0x36] - strh r0, [r5, #0x36] - ldrb r2, [r6, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r4, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r6, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x19] - subs r3, #0x39 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - cmp r3, #0x7e - bhi _0808DA30 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #3 - b _0808DA3E - .align 2, 0 -_0808DA28: .4byte gUnk_080C9160 -_0808DA2C: .4byte 0x0000FFFF -_0808DA30: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #5 -_0808DA3E: - orrs r1, r0 - strb r1, [r2] - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - adds r4, r5, #0 - adds r4, #0x63 - cmp r0, #0 - bne _0808DA70 - movs r0, #6 - strb r0, [r5, #0xf] - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x16 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0808DA70 - adds r0, r5, #0 - movs r1, #1 - bl sub_08081404 -_0808DA70: - movs r1, #0 - ldrsb r1, [r4, r1] - movs r0, #0x11 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0808DA8E - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] -_0808DA8E: - adds r1, r5, #0 - adds r1, #0x87 - ldrb r0, [r1] - cmp r0, #0xa - bls _0808DA9C - movs r0, #0xa - strb r0, [r1] -_0808DA9C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808DAA0 -sub_0808DAA0: @ 0x0808DAA0 - push {lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - adds r1, r2, #0 - adds r1, #0x74 - ldrh r1, [r1] - subs r0, r0, r1 - adds r0, #0x30 - cmp r0, #0x60 - bhi _0808DACC - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r1, r2, #0 - adds r1, #0x76 - ldrh r1, [r1] - subs r0, r0, r1 - adds r0, #0x30 - cmp r0, #0x60 - bhi _0808DACC - movs r0, #1 - b _0808DACE -_0808DACC: - movs r0, #0 -_0808DACE: - pop {pc} - - thumb_func_start sub_0808DAD0 -sub_0808DAD0: @ 0x0808DAD0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0808DAE0 - bl sub_0805E780 -_0808DAE0: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x80 - strb r0, [r4, #0xe] - movs r0, #6 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfb - strb r0, [r1] - ldr r0, _0808DB28 @ =gLinkEntity - str r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_0806FA24 - pop {r4, pc} - .align 2, 0 -_0808DB28: .4byte gLinkEntity - - thumb_func_start sub_0808DB2C -sub_0808DB2C: @ 0x0808DB2C - push {lr} - adds r1, r0, #0 - movs r2, #0 - movs r0, #2 - strb r0, [r1, #0xc] - strb r2, [r1, #0xd] - ldrb r2, [r1, #0x10] - movs r0, #0x80 - orrs r0, r2 - strb r0, [r1, #0x10] - adds r2, r1, #0 - adds r2, #0x3b - movs r0, #1 - strb r0, [r2] - ldr r0, _0808DB50 @ =gLinkEntity - bl sub_0806FA24 - pop {pc} - .align 2, 0 -_0808DB50: .4byte gLinkEntity - - thumb_func_start sub_0808DB54 -sub_0808DB54: @ 0x0808DB54 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldrb r0, [r7, #0xc] - cmp r0, #1 - beq _0808DBE8 - cmp r0, #1 - bgt _0808DB6C - cmp r0, #0 - beq _0808DB72 - b _0808DC46 -_0808DB6C: - cmp r0, #2 - beq _0808DC2C - b _0808DC46 -_0808DB72: - ldrb r0, [r7, #0xe] - movs r1, #3 - cmp r0, #0 - beq _0808DB7C - movs r1, #1 -_0808DB7C: - strb r1, [r7, #0xc] - adds r1, r7, #0 - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - adds r0, r7, #0 - movs r1, #0xa - bl sub_08004260 - ldrb r0, [r7, #0xc] - cmp r0, #1 - bne _0808DB9A - ldr r0, _0808DBDC @ =0x0000FF80 - strh r0, [r7, #0x36] -_0808DB9A: - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _0808DBA2 - b _0808DD72 -_0808DBA2: - ldrh r1, [r7, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - adds r0, #0xc - strh r0, [r7, #0x32] - ldr r0, _0808DBE0 @ =0x00004023 - movs r2, #0x2e - ldrsh r1, [r7, r2] - ldr r3, _0808DBE4 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r5, #0x32 - ldrsh r2, [r7, r5] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r7, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _0808DD72 - .align 2, 0 -_0808DBDC: .4byte 0x0000FF80 -_0808DBE0: .4byte 0x00004023 -_0808DBE4: .4byte gUnk_03000BF0 -_0808DBE8: - movs r1, #0x80 - lsls r1, r1, #5 - adds r0, r7, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _0808DBF8 - b _0808DD72 -_0808DBF8: - adds r0, r7, #0 - movs r1, #0x46 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0808DC0E - ldrh r0, [r1, #0x32] - adds r0, #8 - strh r0, [r1, #0x32] -_0808DC0E: - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - ldr r0, _0808DC28 @ =0x0000010B - bl sub_080A3268 - movs r0, #2 - strb r0, [r7, #0xc] - movs r0, #0x3c - strb r0, [r7, #0xe] - b _0808DD72 - .align 2, 0 -_0808DC28: .4byte 0x0000010B -_0808DC2C: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0808DC3A - b _0808DD72 -_0808DC3A: - movs r0, #3 - strb r0, [r7, #0xc] - movs r0, #0x73 - bl sub_080A3268 - b _0808DD72 -_0808DC46: - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _0808DC4E - b _0808DD72 -_0808DC4E: - ldr r0, _0808DCC8 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r0, [r7, r3] - cmp r1, r0 - bge _0808DCDC - ldr r0, _0808DCCC @ =gUnk_03003F80 - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - bne _0808DC66 - b _0808DD72 -_0808DC66: - adds r0, r7, #0 - bl sub_080002A0 - ldr r1, _0808DCD0 @ =0x00004017 - cmp r0, r1 - beq _0808DC74 - b _0808DD72 -_0808DC74: - ldr r0, _0808DCD4 @ =0x00004023 - movs r5, #0x2e - ldrsh r1, [r7, r5] - ldr r4, _0808DCD8 @ =gUnk_03000BF0 - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r5, #0x3f - ands r1, r5 - movs r3, #0x32 - ldrsh r2, [r7, r3] - ldrh r3, [r4, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - adds r6, r7, #0 - adds r6, #0x38 - ldrb r2, [r6] - bl sub_0800015E - movs r1, #0x2e - ldrsh r0, [r7, r1] - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r5 - movs r2, #0x32 - ldrsh r1, [r7, r2] - ldrh r2, [r4, #8] - adds r2, #0x10 - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - lsls r1, r1, #6 - orrs r0, r1 - ldrb r1, [r6] - bl sub_0807BA8C - b _0808DD72 - .align 2, 0 -_0808DCC8: .4byte gLinkEntity -_0808DCCC: .4byte gUnk_03003F80 -_0808DCD0: .4byte 0x00004017 -_0808DCD4: .4byte 0x00004023 -_0808DCD8: .4byte gUnk_03000BF0 -_0808DCDC: - adds r0, r7, #0 - bl sub_080002A0 - ldr r3, _0808DD44 @ =0x00004017 - mov r8, r3 - cmp r0, r8 - beq _0808DD72 - movs r5, #0x2e - ldrsh r1, [r7, r5] - ldr r5, _0808DD48 @ =gUnk_03000BF0 - ldrh r0, [r5, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r6, #0x3f - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r7, r2] - ldrh r2, [r5, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r7, #0 - adds r4, #0x38 - ldrb r2, [r4] - mov r0, r8 - bl sub_0800015E - ldrb r0, [r7, #0xa] - cmp r0, #0 - bne _0808DD4C - movs r3, #0x2e - ldrsh r1, [r7, r3] - ldrh r0, [r5, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r7, r2] - ldrh r2, [r5, #8] - adds r2, #0x10 - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - ldrb r2, [r4] - mov r0, r8 - bl sub_0800015E - b _0808DD72 - .align 2, 0 -_0808DD44: .4byte 0x00004017 -_0808DD48: .4byte gUnk_03000BF0 -_0808DD4C: - ldr r0, _0808DD78 @ =0x00004014 - movs r3, #0x2e - ldrsh r1, [r7, r3] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - movs r3, #0x32 - ldrsh r2, [r7, r3] - ldrh r3, [r5, #8] - adds r3, #0x10 - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r4] - bl sub_0800015E -_0808DD72: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808DD78: .4byte 0x00004014 - - thumb_func_start sub_0808DD7C -sub_0808DD7C: @ 0x0808DD7C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - beq _0808DD9C - ldr r0, _0808DD98 @ =gUnk_081217B0 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0808DDAC - .align 2, 0 -_0808DD98: .4byte gUnk_081217B0 -_0808DD9C: - ldr r0, _0808DDB0 @ =gUnk_081217A8 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_0808DDAC: - pop {pc} - .align 2, 0 -_0808DDB0: .4byte gUnk_081217A8 - - thumb_func_start sub_0808DDB4 -sub_0808DDB4: @ 0x0808DDB4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0808DDDC - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0xf0 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0808DDE8 -_0808DDDC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808DDE0 -sub_0808DDE0: @ 0x0808DDE0 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_0808DDE8 -sub_0808DDE8: @ 0x0808DDE8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x6c - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - bl sub_0807953C - cmp r0, #0 - beq _0808DE04 - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] -_0808DE04: - ldrb r0, [r5, #0xf] - cmp r0, #0x1e - bhi _0808DE1C - ldr r0, _0808DE8C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - ldr r1, _0808DE90 @ =0x00001810 - ands r0, r1 - cmp r0, #0 - bne _0808DE1C - ldrh r0, [r4] - cmp r0, #0 - bne _0808DE2A -_0808DE1C: - ldr r0, _0808DE8C @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - ldr r2, _0808DE94 @ =0xFFFFFBFF - ands r1, r2 - str r1, [r0, #0x30] - bl sub_0805E780 -_0808DE2A: - ldr r3, _0808DE98 @ =gLinkEntity - ldr r1, _0808DE9C @ =gUnk_081217B8 - ldrb r0, [r3, #0x14] - lsrs r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - ldrh r0, [r3, #0x32] - subs r0, #6 - strh r0, [r5, #0x32] - ldr r0, [r3, #0x34] - str r0, [r5, #0x34] - adds r0, r3, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r2, [r3, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r4, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r3, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x1b] - ldr r0, _0808DE8C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0808DEA0 - adds r0, r5, #0 - bl sub_08004274 - b _0808DEA4 - .align 2, 0 -_0808DE8C: .4byte gUnk_03003F80 -_0808DE90: .4byte 0x00001810 -_0808DE94: .4byte 0xFFFFFBFF -_0808DE98: .4byte gLinkEntity -_0808DE9C: .4byte gUnk_081217B8 -_0808DEA0: - bl sub_0805E780 -_0808DEA4: - ldr r1, _0808DEC0 @ =gLinkEntity - ldrb r0, [r1, #0x14] - lsrs r0, r0, #1 - cmp r0, #2 - bne _0808DEC4 - adds r0, r1, #0 - movs r1, #3 - adds r2, r5, #0 - bl sub_0806FEBC - ldrh r0, [r5, #0x32] - subs r0, #5 - strh r0, [r5, #0x32] - b _0808DECE - .align 2, 0 -_0808DEC0: .4byte gLinkEntity -_0808DEC4: - adds r0, r1, #0 - movs r1, #0 - adds r2, r5, #0 - bl sub_0806FEBC -_0808DECE: - pop {r4, r5, pc} - - thumb_func_start sub_0808DED0 -sub_0808DED0: @ 0x0808DED0 - push {lr} - ldr r2, _0808DEE4 @ =gUnk_081217BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808DEE4: .4byte gUnk_081217BC - - thumb_func_start sub_0808DEE8 -sub_0808DEE8: @ 0x0808DEE8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r3, _0808DF74 @ =gLinkEntity - ldrb r1, [r3, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x1b] - ldrb r0, [r3, #0x14] - lsrs r0, r0, #1 - strb r0, [r5, #0x14] - adds r0, #1 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r5, #0x15] - movs r3, #6 - movs r0, #6 - strb r0, [r5, #0xf] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r1, r5, #0 - adds r1, #0x60 - movs r0, #0x3c - strh r0, [r1] - ldrb r1, [r5, #0x1a] - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #0x1a] - adds r0, r5, #0 - adds r0, #0x72 - strh r4, [r0] - subs r0, #6 - strh r4, [r0] - ldrb r0, [r5, #0x11] - ands r2, r0 - orrs r2, r3 - strb r2, [r5, #0x11] - adds r0, r5, #0 - movs r1, #7 - bl sub_08004260 - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0808DF78 - movs r0, #0x28 - strb r0, [r5, #0xe] - b _0808DFAA - .align 2, 0 -_0808DF74: .4byte gLinkEntity -_0808DF78: - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - ldr r0, _0808DF9C @ =gUnk_03003F80 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808DFA0 - movs r0, #0x28 - b _0808DFA2 - .align 2, 0 -_0808DF9C: .4byte gUnk_03003F80 -_0808DFA0: - movs r0, #0x50 -_0808DFA2: - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_0808DFAC -_0808DFAA: - pop {r4, r5, pc} - - thumb_func_start sub_0808DFAC -sub_0808DFAC: @ 0x0808DFAC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0808E00E - ldr r1, _0808DFF0 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _0808DFCC - ldrb r1, [r1, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808DFD0 -_0808DFCC: - bl sub_0805E780 -_0808DFD0: - ldr r0, _0808DFF0 @ =gUnk_03003F80 - adds r2, r0, #0 - adds r2, #0x21 - ldrb r0, [r2] - cmp r0, #0x4f - bls _0808DFF8 - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - ldrb r6, [r2] - ldr r7, _0808DFF4 @ =gUnk_081217D8 - b _0808E038 - .align 2, 0 -_0808DFF0: .4byte gUnk_03003F80 -_0808DFF4: .4byte gUnk_081217D8 -_0808DFF8: - cmp r0, #0 - beq _0808E008 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0808E1BA -_0808E008: - bl sub_0805E780 - b _0808E038 -_0808E00E: - ldr r5, _0808E02C @ =gUnk_03003F80 - ldrb r0, [r5, #4] - cmp r0, #0 - bne _0808E01A - bl sub_0805E780 -_0808E01A: - ldrb r1, [r5, #0x1b] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808E034 - ldrb r6, [r5, #0x1b] - ldr r7, _0808E030 @ =gUnk_081217D0 - b _0808E038 - .align 2, 0 -_0808E02C: .4byte gUnk_03003F80 -_0808E030: .4byte gUnk_081217D0 -_0808E034: - bl sub_0805E780 -_0808E038: - cmp r6, #0 - bne _0808E03E - b _0808E1B6 -_0808E03E: - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0808E084 - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #3 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808E068 - ldr r0, _0808E080 @ =gUnk_03003F80 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0808E068 - movs r2, #7 -_0808E068: - ldrb r0, [r4, #0xe] - ands r0, r2 - adds r5, r4, #0 - adds r5, #0x6c - adds r6, r4, #0 - adds r6, #0x38 - cmp r0, #0 - bne _0808E0E4 - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _0808E0E4 - .align 2, 0 -_0808E080: .4byte gUnk_03003F80 -_0808E084: - adds r5, r4, #0 - adds r5, #0x72 - ldrh r0, [r5] - cmp r0, #0 - beq _0808E0BC - ldr r0, _0808E0B8 @ =gUnk_030010A0 - ldr r1, [r0] - movs r0, #0x1f - ands r1, r0 - subs r5, #6 - adds r6, r4, #0 - adds r6, #0x38 - cmp r1, #0 - bne _0808E0E4 - adds r0, r4, #0 - movs r1, #7 - movs r2, #0 - bl CreateFX - cmp r0, #0 - beq _0808E0E4 - ldrb r1, [r6] - adds r0, #0x38 - strb r1, [r0] - b _0808E0E4 - .align 2, 0 -_0808E0B8: .4byte gUnk_030010A0 -_0808E0BC: - ldr r0, _0808E140 @ =0x00000115 - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0x12 - movs r2, #0 - bl CreateFX - adds r6, r4, #0 - adds r6, #0x38 - cmp r0, #0 - beq _0808E0DA - ldrb r1, [r6] - adds r0, #0x38 - strb r1, [r0] -_0808E0DA: - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - adds r5, r4, #0 - adds r5, #0x6c -_0808E0E4: - ldr r2, _0808E144 @ =gLinkEntity - ldrb r1, [r2, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r3, [r4, #0x19] - movs r0, #0x3f - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - adds r0, r7, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrh r0, [r2, #0x36] - strh r0, [r4, #0x36] - adds r2, #0x38 - ldrb r0, [r2] - strb r0, [r6] - ldrb r0, [r4, #0x14] - cmp r0, #1 - beq _0808E148 - cmp r0, #1 - ble _0808E136 - cmp r0, #2 - beq _0808E150 - cmp r0, #3 - beq _0808E15A -_0808E136: - ldrh r0, [r4, #0x32] - ldrh r1, [r5] - subs r0, r0, r1 - strh r0, [r4, #0x32] - b _0808E162 - .align 2, 0 -_0808E140: .4byte 0x00000115 -_0808E144: .4byte gLinkEntity -_0808E148: - ldrh r0, [r5] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - b _0808E160 -_0808E150: - ldrh r0, [r5] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - b _0808E162 -_0808E15A: - ldrh r0, [r4, #0x2e] - ldrh r1, [r5] - subs r0, r0, r1 -_0808E160: - strh r0, [r4, #0x2e] -_0808E162: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808E17A - movs r0, #6 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] -_0808E17A: - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808E1BA - ldr r0, _0808E1AC @ =gUnk_03003F80 - ldrb r1, [r0, #0x1b] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0808E1BA - ldrb r0, [r4, #0x10] - movs r1, #0xdf - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #6 - bl GetInventoryValue - cmp r0, #1 - bne _0808E1B0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - b _0808E1BA - .align 2, 0 -_0808E1AC: .4byte gUnk_03003F80 -_0808E1B0: - bl sub_0805E780 - b _0808E1BA -_0808E1B6: - bl sub_0805E780 -_0808E1BA: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0808E1BC -sub_0808E1BC: @ 0x0808E1BC - push {r4, lr} - adds r4, r0, #0 - bl sub_08079BD8 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, _0808E204 @ =gLinkEntity - ldrb r0, [r0, #0x14] - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x60 - strh r2, [r0] - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x1a] - movs r0, #0xaf - strh r0, [r4, #0x12] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_0808E204: .4byte gLinkEntity - - thumb_func_start sub_0808E208 -sub_0808E208: @ 0x0808E208 - push {r4, lr} - adds r4, r0, #0 - bl sub_08079BD8 - adds r0, r4, #0 - bl sub_08004274 - ldr r0, _0808E240 @ =gUnk_03003F80 - ldrb r0, [r0, #0x1b] - cmp r0, #0 - beq _0808E248 - ldr r0, _0808E244 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0808E24C - ldrb r2, [r4, #0x1a] - lsls r1, r2, #0x1c - lsrs r1, r1, #0x1c - movs r0, #4 - eors r1, r0 - subs r0, #0x14 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - b _0808E24C - .align 2, 0 -_0808E240: .4byte gUnk_03003F80 -_0808E244: .4byte gUnk_030010A0 -_0808E248: - bl sub_0805E780 -_0808E24C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808E260 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0808E260: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808E264 -sub_0808E264: @ 0x0808E264 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808E27C - bl sub_0805E780 -_0808E27C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808E280 -sub_0808E280: @ 0x0808E280 - push {lr} - ldr r2, _0808E294 @ =gUnk_08121B8C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808E294: .4byte gUnk_08121B8C - - thumb_func_start sub_0808E298 -sub_0808E298: @ 0x0808E298 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x38 - movs r1, #2 - strb r1, [r0] - movs r0, #1 - strb r0, [r4, #0xc] - movs r5, #0 - movs r6, #0 - adds r0, r4, #0 - bl sub_080002A0 - adds r1, r0, #0 - movs r0, #0xd1 - lsls r0, r0, #2 - cmp r1, r0 - beq _0808E2DA - cmp r1, r0 - bhi _0808E2C6 - subs r0, #1 - cmp r1, r0 - beq _0808E2D8 - b _0808E2E2 -_0808E2C6: - ldr r0, _0808E2D4 @ =0x00000345 - cmp r1, r0 - beq _0808E2DE - adds r0, #1 - cmp r1, r0 - beq _0808E2E6 - b _0808E2E2 - .align 2, 0 -_0808E2D4: .4byte 0x00000345 -_0808E2D8: - movs r5, #0x10 -_0808E2DA: - movs r6, #0x10 - b _0808E2E6 -_0808E2DE: - movs r5, #0x10 - b _0808E2E6 -_0808E2E2: - bl sub_0805E780 -_0808E2E6: - ldrh r0, [r4, #0x2e] - adds r0, r0, r5 - movs r2, #0x10 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, r0, r6 - ands r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldr r1, _0808E314 @ =0x00000347 - adds r0, r4, #0 - bl sub_0808E354 - adds r0, r4, #0 - bl sub_0808E318 - pop {r4, r5, r6, pc} - .align 2, 0 -_0808E314: .4byte 0x00000347 - - thumb_func_start sub_0808E318 -sub_0808E318: @ 0x0808E318 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808E340 - ldr r1, _0808E33C @ =0x00000343 - adds r0, r4, #0 - bl sub_0808E354 - bl sub_0805E780 - b _0808E34E - .align 2, 0 -_0808E33C: .4byte 0x00000343 -_0808E340: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808E34E - ldr r0, _0808E350 @ =0x0000018B - bl sub_08004488 -_0808E34E: - pop {r4, pc} - .align 2, 0 -_0808E350: .4byte 0x0000018B - - thumb_func_start sub_0808E354 -sub_0808E354: @ 0x0808E354 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r6, r0, #0 - lsls r1, r1, #0x10 - mov r8, r1 - mov r0, r8 - lsrs r0, r0, #0x10 - mov r8, r0 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r5, _0808E410 @ =gUnk_03000BF0 - ldrh r0, [r5, #6] - adds r0, #0x10 - subs r1, r1, r0 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r0, [r6, r3] - ldrh r2, [r5, #8] - adds r2, #0x10 - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, r8 - movs r2, #2 - bl sub_0807B7D8 - mov r0, r8 - adds r0, #1 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - adds r3, #0x10 - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #2 - bl sub_0807B7D8 - mov r0, r8 - adds r0, #2 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r5, #6] - adds r2, #0x10 - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #2 - bl sub_0807B7D8 - movs r0, #3 - add r8, r0 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r0, [r5, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r0, [r6, r3] - ldrh r2, [r5, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, r8 - movs r2, #2 - bl sub_0807B7D8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_0808E410: .4byte gUnk_03000BF0 - - thumb_func_start sub_0808E414 -sub_0808E414: @ 0x0808E414 - push {lr} - ldr r2, _0808E428 @ =gUnk_08121BD8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808E428: .4byte gUnk_08121BD8 - - thumb_func_start sub_0808E42C -sub_0808E42C: @ 0x0808E42C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x11] - subs r1, #0x11 - ands r1, r2 - movs r2, #6 - orrs r1, r2 - strb r1, [r0, #0x11] - ldrb r1, [r0, #0xa] - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808E448 -sub_0808E448: @ 0x0808E448 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x10 - bl sub_0805436C - cmp r0, #1 - bls _0808E45A - bl sub_0805E780 -_0808E45A: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - beq _0808E472 - cmp r0, #0x80 - bne _0808E486 - bl sub_0805E780 -_0808E472: - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - b _0808E494 -_0808E486: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] -_0808E494: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0808E4A2 - ldr r0, [r4, #0x34] - ldr r1, _0808E4A4 @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r4, #0x34] -_0808E4A2: - pop {r4, pc} - .align 2, 0 -_0808E4A4: .4byte 0xFFFF8000 - - thumb_func_start sub_0808E4A8 -sub_0808E4A8: @ 0x0808E4A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - lsls r1, r2, #1 - ldr r0, _0808E540 @ =gUnk_08121C40 - adds r3, r1, r0 - ldrb r6, [r4, #0xc] - cmp r6, #0 - bne _0808E54C - movs r5, #1 - strb r5, [r4, #0xc] - movs r2, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0808E4C8 - movs r2, #1 -_0808E4C8: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x38 - strb r5, [r0] - ldrb r1, [r3] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r3, #1] - adds r3, r4, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x76 - strh r6, [r0] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0808E544 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - adds r0, r4, #0 - bl sub_0808E55C - ldr r1, _0808E548 @ =sub_0808E55C - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 - b _0808E55A - .align 2, 0 -_0808E540: .4byte gUnk_08121C40 -_0808E544: .4byte gUnk_03000BF0 -_0808E548: .4byte sub_0808E55C -_0808E54C: - movs r0, #1 - ands r2, r0 - cmp r2, #0 - bne _0808E55A - adds r0, r4, #0 - bl sub_0808E670 -_0808E55A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808E55C -sub_0808E55C: @ 0x0808E55C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - ldrb r0, [r0, #0xa] - cmp r0, #1 - beq _0808E614 - cmp r0, #1 - bgt _0808E576 - cmp r0, #0 - beq _0808E57A - b _0808E63A -_0808E576: - cmp r0, #2 - bne _0808E63A -_0808E57A: - mov r0, r8 - adds r0, #0x74 - ldrh r6, [r0] - ldr r0, _0808E5FC @ =0xFFFFFEFF - adds r7, r6, r0 - ldr r4, _0808E600 @ =0x0000408F - mov r5, r8 - adds r5, #0x38 - ldrb r2, [r5] - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_0800015E - ldr r2, _0808E604 @ =0xFFFFFF00 - adds r1, r6, r2 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldr r0, _0808E608 @ =0x0000406C - ldr r2, _0808E60C @ =0xFFFFFEFE - adds r1, r6, r2 - ldrb r2, [r5] - bl sub_0800015E - ldr r0, _0808E610 @ =0x0000406D - adds r1, r6, #0 - subs r1, #0xff - ldrb r2, [r5] - bl sub_0800015E - mov r1, r8 - ldrb r0, [r1, #0xa] - movs r2, #6 - mov sb, r2 - cmp r0, #0 - beq _0808E63A - movs r0, #4 - mov sb, r0 - subs r4, #0x1d - adds r1, r6, #0 - adds r1, #0x3f - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x40 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x7f - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x80 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - b _0808E63A - .align 2, 0 -_0808E5FC: .4byte 0xFFFFFEFF -_0808E600: .4byte 0x0000408F -_0808E604: .4byte 0xFFFFFF00 -_0808E608: .4byte 0x0000406C -_0808E60C: .4byte 0xFFFFFEFE -_0808E610: .4byte 0x0000406D -_0808E614: - mov r0, r8 - adds r0, #0x74 - ldrh r6, [r0] - subs r7, r6, #1 - ldr r5, _0808E66C @ =0x0000408E - mov r4, r8 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_0800015E - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0800015E - movs r1, #2 - mov sb, r1 -_0808E63A: - movs r5, #0 - cmp r5, sb - bhs _0808E662 - ldr r6, _0808E66C @ =0x0000408E - mov r4, r8 - adds r4, #0x38 -_0808E646: - adds r7, #0x40 - ldrb r2, [r4] - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_0800015E - adds r1, r7, #1 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - adds r5, #1 - cmp r5, sb - blo _0808E646 -_0808E662: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808E66C: .4byte 0x0000408E - - thumb_func_start sub_0808E670 -sub_0808E670: @ 0x0808E670 - push {lr} - adds r0, #0x74 - ldrh r0, [r0] - ldr r1, _0808E684 @ =0xFFFFFEFF - adds r0, r0, r1 - movs r1, #1 - bl sub_080002B0 - pop {pc} - .align 2, 0 -_0808E684: .4byte 0xFFFFFEFF - - thumb_func_start sub_0808E688 -sub_0808E688: @ 0x0808E688 - push {lr} - ldr r2, _0808E69C @ =gUnk_08121C48 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808E69C: .4byte gUnk_08121C48 - - thumb_func_start sub_0808E6A0 -sub_0808E6A0: @ 0x0808E6A0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808E6B4 - bl sub_0805E780 -_0808E6B4: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x62 - strb r0, [r4, #0xa] - ldrb r1, [r4, #0x18] - subs r0, #0x66 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, _0808E6E0 @ =gUnk_08121C58 - str r0, [r4, #0x48] - adds r1, r4, #0 - adds r1, #0x38 - movs r2, #3 - movs r0, #3 - strb r0, [r1] - ldrb r1, [r4, #0x11] - subs r0, #0x13 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x11] - pop {r4, pc} - .align 2, 0 -_0808E6E0: .4byte gUnk_08121C58 - - thumb_func_start sub_0808E6E4 -sub_0808E6E4: @ 0x0808E6E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0808E712 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_0808E714 -_0808E712: - pop {r4, pc} - - thumb_func_start sub_0808E714 -sub_0808E714: @ 0x0808E714 - push {r4, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xf] - lsls r0, r3, #3 - movs r1, #0x80 - lsls r1, r1, #3 - subs r2, r1, r0 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r2, r0 - ble _0808E73A - adds r0, r3, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - b _0808E756 -_0808E73A: - movs r0, #3 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0805EC60 - ldr r0, _0808E760 @ =0x00000141 - bl sub_080A3268 -_0808E756: - adds r0, r4, #0 - bl sub_08080CB4 - pop {r4, pc} - .align 2, 0 -_0808E760: .4byte 0x00000141 - - thumb_func_start sub_0808E764 -sub_0808E764: @ 0x0808E764 - push {r4, lr} - adds r4, r0, #0 - bl sub_08080CB4 - ldr r0, _0808E79C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808E79A - adds r0, r4, #0 - bl sub_08017850 - cmp r0, #0 - beq _0808E79A - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - bl sub_0807CCC8 - movs r0, #0x62 - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - bl sub_0805E780 -_0808E79A: - pop {r4, pc} - .align 2, 0 -_0808E79C: .4byte gUnk_03003F80 - - thumb_func_start sub_0808E7A0 -sub_0808E7A0: @ 0x0808E7A0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0808E7B2 - adds r0, r4, #0 - bl sub_0808EFF0 -_0808E7B2: - ldr r1, _0808E7D4 @ =gUnk_08121C64 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x3f - bhi _0808E7D2 - adds r0, r4, #0 - bl sub_080042B8 -_0808E7D2: - pop {r4, pc} - .align 2, 0 -_0808E7D4: .4byte gUnk_08121C64 - - thumb_func_start sub_0808E7D8 -sub_0808E7D8: @ 0x0808E7D8 - push {lr} - ldr r2, _0808E7EC @ =gUnk_08121CCC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808E7EC: .4byte gUnk_08121CCC - - thumb_func_start sub_0808E7F0 -sub_0808E7F0: @ 0x0808E7F0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - movs r2, #2 - bl sub_080AE008 - ldrb r0, [r4, #0x1a] - movs r1, #0xf - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xff - strb r0, [r4, #0xb] - movs r0, #1 - strb r0, [r4, #0xc] - pop {r4, pc} - - thumb_func_start sub_0808E818 -sub_0808E818: @ 0x0808E818 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0808E950 - cmp r0, #0 - bne _0808E840 - movs r1, #1 - rsbs r1, r1, #0 - strb r1, [r4, #0xb] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0808E94E -_0808E840: - ldr r0, _0808E8C0 @ =gUnk_02019EE0 - ldrb r1, [r0, #6] - ldrb r0, [r4, #0xb] - adds r6, r4, #0 - adds r6, #0x68 - adds r5, r4, #0 - adds r5, #0x70 - cmp r0, r1 - beq _0808E894 - strb r1, [r4, #0xb] - movs r0, #0x14 - bl GetProgressFlag - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - cmp r0, #0 - bne _0808E86A - movs r0, #0x80 - lsls r0, r0, #3 - adds r1, r0, #0 -_0808E86A: - strh r1, [r6] - movs r0, #4 - strb r0, [r5] - movs r0, #2 - strb r0, [r4, #0x14] - movs r0, #1 - bl sub_0807A094 - ldr r1, _0808E8C4 @ =gUnk_08133368 - subs r0, #0x16 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0808E8C8 @ =0x00FFFFFF - ands r0, r1 - ldr r1, _0808E8CC @ =gUnk_085A2E80 - adds r0, r0, r1 - movs r1, #0x1f - movs r2, #1 - bl sub_0801D754 -_0808E894: - ldr r0, _0808E8D0 @ =gUnk_02032EC0 - ldrb r2, [r0, #2] - cmp r2, #0 - bne _0808E904 - ldr r3, _0808E8D4 @ =gUnk_03000FF0 - ldrh r1, [r3] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808E904 - ldrh r1, [r3, #2] - cmp r1, #0x20 - beq _0808E8F2 - cmp r1, #0x20 - bgt _0808E8D8 - cmp r1, #2 - beq _0808E8F8 - cmp r1, #0x10 - beq _0808E8E6 - b _0808E904 - .align 2, 0 -_0808E8C0: .4byte gUnk_02019EE0 -_0808E8C4: .4byte gUnk_08133368 -_0808E8C8: .4byte 0x00FFFFFF -_0808E8CC: .4byte gUnk_085A2E80 -_0808E8D0: .4byte gUnk_02032EC0 -_0808E8D4: .4byte gUnk_03000FF0 -_0808E8D8: - cmp r1, #0x40 - beq _0808E8E2 - cmp r1, #0x80 - beq _0808E8EC - b _0808E904 -_0808E8E2: - strb r2, [r4, #0x14] - b _0808E904 -_0808E8E6: - movs r0, #1 - strb r0, [r4, #0x14] - b _0808E904 -_0808E8EC: - movs r0, #2 - strb r0, [r4, #0x14] - b _0808E904 -_0808E8F2: - movs r0, #3 - strb r0, [r4, #0x14] - b _0808E904 -_0808E8F8: - ldrb r0, [r5] - movs r1, #0 - cmp r0, #0 - bne _0808E902 - movs r1, #4 -_0808E902: - strb r1, [r5] -_0808E904: - movs r2, #0 - ldrb r0, [r4, #0x14] - cmp r0, #3 - bne _0808E90E - movs r2, #1 -_0808E90E: - lsls r2, r2, #6 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrh r0, [r6] - ldrb r1, [r5] - adds r0, r0, r1 - ldrb r2, [r4, #0x14] - adds r1, r0, r2 - adds r2, r4, #0 - adds r2, #0x6a - ldrh r0, [r2] - cmp r0, r1 - beq _0808E940 - strh r1, [r2] - lsrs r0, r1, #8 - strh r0, [r4, #0x12] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_080042AC -_0808E940: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r4, #0x18] -_0808E94E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808E950 -sub_0808E950: @ 0x0808E950 - push {lr} - movs r2, #0 - ldr r0, _0808E980 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #0 - beq _0808E968 - cmp r0, #0 - blt _0808E97C - cmp r0, #7 - bgt _0808E97C - cmp r0, #4 - blt _0808E97C -_0808E968: - ldr r0, _0808E984 @ =gUnk_02019EE0 - adds r1, r0, #0 - adds r1, #8 - ldrb r0, [r0, #6] - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #1 - bne _0808E97C - movs r2, #1 -_0808E97C: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0808E980: .4byte gUnk_02032EC0 -_0808E984: .4byte gUnk_02019EE0 - - thumb_func_start sub_0808E988 -sub_0808E988: @ 0x0808E988 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0808E9AA - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0xa1 - lsls r0, r0, #1 - strh r0, [r5, #0x12] - movs r0, #0xff - strb r0, [r5, #0xb] - adds r0, r5, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 -_0808E9AA: - bl sub_0808E950 - cmp r0, #0 - beq _0808E9E8 - movs r4, #6 - b _0808E9BC -_0808E9B6: - subs r4, #1 - cmp r4, #0 - beq _0808E9E8 -_0808E9BC: - adds r0, r4, #0 - bl GetInventoryValue - cmp r0, #0 - beq _0808E9B6 - cmp r4, #0 - beq _0808E9E8 - ldrb r0, [r5, #0xb] - cmp r0, r4 - beq _0808E9D8 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080042AC -_0808E9D8: - ldrb r0, [r5, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r5, #0x18] - b _0808E9F2 -_0808E9E8: - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] -_0808E9F2: - pop {r4, r5, pc} - - thumb_func_start sub_0808E9F4 -sub_0808E9F4: @ 0x0808E9F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0808E950 - cmp r0, #0 - beq _0808EA1C - ldr r0, _0808EA18 @ =gUnk_02002A40 - ldrb r0, [r0, #6] - cmp r0, #0 - beq _0808EA1C - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r4, #0x18] - b _0808EA26 - .align 2, 0 -_0808EA18: .4byte gUnk_02002A40 -_0808EA1C: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0808EA26: - pop {r4, pc} - - thumb_func_start sub_0808EA28 -sub_0808EA28: @ 0x0808EA28 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _0808EA56 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #1 - bls _0808EA4C - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r4, #0x18] - b _0808EA56 -_0808EA4C: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0808EA56: - ldr r2, _0808EA68 @ =gUnk_02019EE0 - ldrb r1, [r4, #0xa] - ldrb r0, [r2, #6] - cmp r1, r0 - bne _0808EA6C - movs r3, #0xc - movs r2, #1 - b _0808EA88 - .align 2, 0 -_0808EA68: .4byte gUnk_02019EE0 -_0808EA6C: - ldr r0, _0808EA80 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #5 - bne _0808EA84 - ldrb r2, [r2, #7] - cmp r1, r2 - bne _0808EA84 - movs r3, #0xd - b _0808EA86 - .align 2, 0 -_0808EA80: .4byte gUnk_02032EC0 -_0808EA84: - movs r3, #0xe -_0808EA86: - movs r2, #2 -_0808EA88: - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x1a] - lsls r2, r2, #6 - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_0808EABC - adds r0, r4, #0 - bl sub_0808EF6C - ldr r2, _0808EAB8 @ =gUnk_02019EE0 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - pop {r4, pc} - .align 2, 0 -_0808EAB8: .4byte gUnk_02019EE0 - - thumb_func_start sub_0808EABC -sub_0808EABC: @ 0x0808EABC - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0x48 - rsbs r4, r4, #0 - ldrb r1, [r5, #0xa] - lsls r0, r1, #5 - adds r2, r0, #0 - adds r2, #0x28 - movs r3, #0 - ldr r0, _0808EAEC @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - cmp r0, r1 - bne _0808EAD8 - movs r3, #1 -_0808EAD8: - ldr r0, _0808EAF0 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #7 - bhi _0808EB60 - lsls r0, r0, #2 - ldr r1, _0808EAF4 @ =_0808EAF8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808EAEC: .4byte gUnk_02019EE0 -_0808EAF0: .4byte gUnk_02032EC0 -_0808EAF4: .4byte _0808EAF8 -_0808EAF8: @ jump table - .4byte _0808EB18 @ case 0 - .4byte _0808EB60 @ case 1 - .4byte _0808EB56 @ case 2 - .4byte _0808EB1C @ case 3 - .4byte _0808EB1C @ case 4 - .4byte _0808EB26 @ case 5 - .4byte _0808EB1C @ case 6 - .4byte _0808EB1C @ case 7 -_0808EB18: - movs r4, #0x18 - b _0808EB68 -_0808EB1C: - cmp r3, #0 - beq _0808EB68 - movs r4, #0x2a - movs r2, #0x38 - b _0808EB68 -_0808EB26: - ldr r3, _0808EB3C @ =gUnk_02000080 - adds r0, r3, #0 - adds r0, #0x10 - ldrb r1, [r5, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #0 - bne _0808EB40 - movs r4, #0x2a - movs r2, #0x28 - b _0808EB68 - .align 2, 0 -_0808EB3C: .4byte gUnk_02000080 -_0808EB40: - cmp r1, #0 - blt _0808EB68 - cmp r1, #2 - bgt _0808EB68 - movs r4, #0x14 - movs r2, #0x90 - ldrb r0, [r3, #0x16] - subs r0, r0, r1 - lsls r0, r0, #5 - subs r2, r2, r0 - b _0808EB68 -_0808EB56: - cmp r3, #0 - beq _0808EB68 - movs r4, #0x1a - movs r2, #0x2a - b _0808EB68 -_0808EB60: - cmp r3, #0 - beq _0808EB68 - movs r4, #8 - movs r2, #0x23 -_0808EB68: - adds r0, r5, #0 - adds r0, #0x68 - strh r4, [r0] - adds r0, #2 - strh r2, [r0] - pop {r4, r5, pc} - - thumb_func_start sub_0808EB74 -sub_0808EB74: @ 0x0808EB74 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0808EBA8 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_0808EC80 - adds r3, r0, #0 - cmp r3, #0 - beq _0808EBAC - ldr r0, [r3, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r3, #0x30] - str r0, [r4, #0x30] - ldrb r1, [r3, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_0806FAD8 - b _0808EBB4 - .align 2, 0 -_0808EBA8: .4byte gUnk_02019EE0 -_0808EBAC: - movs r0, #0xf0 - lsls r0, r0, #8 - strh r0, [r4, #0x2e] - strh r0, [r4, #0x32] -_0808EBB4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808EBB8 -sub_0808EBB8: @ 0x0808EBB8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _0808EBD0 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - subs r0, #2 - cmp r0, #5 - bhi _0808EC1C - lsls r0, r0, #2 - ldr r1, _0808EBD4 @ =_0808EBD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808EBD0: .4byte gUnk_02032EC0 -_0808EBD4: .4byte _0808EBD8 -_0808EBD8: @ jump table - .4byte _0808EC18 @ case 0 - .4byte _0808EC1C @ case 1 - .4byte _0808EBF0 @ case 2 - .4byte _0808EBFC @ case 3 - .4byte _0808EC00 @ case 4 - .4byte _0808EC14 @ case 5 -_0808EBF0: - ldr r0, _0808EBF8 @ =gUnk_02000080 - ldrb r0, [r0, #1] - adds r1, r0, #4 - b _0808EC1E - .align 2, 0 -_0808EBF8: .4byte gUnk_02000080 -_0808EBFC: - movs r1, #2 - b _0808EC1E -_0808EC00: - ldr r0, _0808EC10 @ =gUnk_02000080 - ldrb r0, [r0, #1] - movs r1, #6 - cmp r0, #0 - bne _0808EC1E - movs r1, #7 - b _0808EC1E - .align 2, 0 -_0808EC10: .4byte gUnk_02000080 -_0808EC14: - movs r1, #4 - b _0808EC1E -_0808EC18: - movs r1, #1 - b _0808EC1E -_0808EC1C: - movs r1, #0 -_0808EC1E: - movs r5, #0xf0 - lsls r5, r5, #8 - adds r6, r5, #0 - cmp r1, #1 - beq _0808EC32 - cmp r1, #1 - blo _0808EC76 - cmp r1, #2 - beq _0808EC42 - b _0808EC4C -_0808EC32: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - lsls r0, r0, #4 - adds r5, r0, #0 - adds r5, #0x18 - movs r6, #0x70 - b _0808EC76 -_0808EC42: - ldr r0, _0808EC7C @ =gUnk_02019EE0 - ldrb r1, [r0, #7] - cmp r1, #4 - bne _0808EC4C - movs r1, #7 -_0808EC4C: - adds r0, r1, #0 - bl sub_0808EC80 - adds r4, r0, #0 - cmp r4, #0 - beq _0808EC76 - adds r1, r7, #0 - bl sub_0806FAD8 - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r7, #0x19] - movs r1, #0x3f - ands r1, r2 - orrs r1, r0 - strb r1, [r7, #0x19] - movs r0, #0x2e - ldrsh r6, [r4, r0] - movs r0, #0x32 - ldrsh r5, [r4, r0] -_0808EC76: - strh r6, [r7, #0x2e] - strh r5, [r7, #0x32] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0808EC7C: .4byte gUnk_02019EE0 - - thumb_func_start sub_0808EC80 -sub_0808EC80: @ 0x0808EC80 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r3, _0808ECA4 @ =gUnk_03003DA0 - ldr r2, [r3, #4] - cmp r2, r3 - beq _0808ECB6 - ldr r6, _0808ECA8 @ =0x0000FFFF - ldr r5, _0808ECAC @ =0x00004806 -_0808EC90: - ldrh r1, [r2, #8] - adds r0, r6, #0 - ands r0, r1 - cmp r0, r5 - bne _0808ECB0 - ldrb r0, [r2, #0xa] - cmp r4, r0 - bne _0808ECB0 - adds r0, r2, #0 - b _0808ECB8 - .align 2, 0 -_0808ECA4: .4byte gUnk_03003DA0 -_0808ECA8: .4byte 0x0000FFFF -_0808ECAC: .4byte 0x00004806 -_0808ECB0: - ldr r2, [r2, #4] - cmp r2, r3 - bne _0808EC90 -_0808ECB6: - movs r0, #0 -_0808ECB8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808ECBC -sub_0808ECBC: @ 0x0808ECBC - push {r4, lr} - adds r3, r0, #0 - ldr r0, _0808ECD8 @ =gUnk_02000080 - ldrb r4, [r0, #1] - ldr r0, _0808ECDC @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #5 - beq _0808ECEE - cmp r0, #5 - bgt _0808ECE0 - cmp r0, #4 - beq _0808ECEA - b _0808ED04 - .align 2, 0 -_0808ECD8: .4byte gUnk_02000080 -_0808ECDC: .4byte gUnk_02032EC0 -_0808ECE0: - cmp r0, #6 - beq _0808ECFC - cmp r0, #7 - beq _0808ED00 - b _0808ED04 -_0808ECEA: - movs r0, #1 - b _0808ED06 -_0808ECEE: - ldr r0, _0808ECF8 @ =gUnk_02019EE0 - ldrb r4, [r0, #7] - movs r0, #2 - b _0808ED06 - .align 2, 0 -_0808ECF8: .4byte gUnk_02019EE0 -_0808ECFC: - movs r0, #3 - b _0808ED06 -_0808ED00: - movs r0, #4 - b _0808ED06 -_0808ED04: - movs r0, #0 -_0808ED06: - ldrb r2, [r3, #0xa] - subs r2, #4 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - lsls r0, r2, #1 - adds r0, r0, r2 - ldr r2, _0808ED3C @ =gUnk_08121CD4 - adds r0, r0, r2 - adds r1, r1, r0 - ldrb r2, [r1, #1] - adds r0, r3, #0 - adds r0, #0x68 - strh r2, [r0] - ldrb r0, [r1, #2] - adds r2, r3, #0 - adds r2, #0x6a - strh r0, [r2] - ldrb r0, [r1] - cmp r0, r4 - bne _0808ED40 - ldrb r0, [r3, #0x1a] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0xd - b _0808ED4A - .align 2, 0 -_0808ED3C: .4byte gUnk_08121CD4 -_0808ED40: - ldrb r0, [r3, #0x1a] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0xe -_0808ED4A: - orrs r1, r0 - strb r1, [r3, #0x1a] - adds r0, r3, #0 - bl sub_0808EF6C - ldr r2, _0808ED60 @ =gUnk_02019EE0 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - pop {r4, pc} - .align 2, 0 -_0808ED60: .4byte gUnk_02019EE0 - - thumb_func_start sub_0808ED64 -sub_0808ED64: @ 0x0808ED64 - push {lr} - adds r2, r0, #0 - movs r3, #0xff - ldr r0, _0808ED90 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #1 - bne _0808ED8A - ldr r1, _0808ED94 @ =gUnk_02000080 - ldrb r0, [r1, #0x11] - cmp r0, #5 - beq _0808ED8A - ldrb r0, [r1, #0x10] - lsls r0, r0, #4 - adds r0, #0x1c - strh r0, [r2, #0x2e] - ldrb r0, [r1, #0x11] - lsls r0, r0, #4 - adds r3, r0, #0 - adds r3, #0x3a -_0808ED8A: - strh r3, [r2, #0x32] - pop {pc} - .align 2, 0 -_0808ED90: .4byte gUnk_02032EC0 -_0808ED94: .4byte gUnk_02000080 - - thumb_func_start sub_0808ED98 -sub_0808ED98: @ 0x0808ED98 - push {lr} - adds r3, r0, #0 - ldr r0, _0808EDB4 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #1 - beq _0808EDB8 - adds r1, r3, #0 - adds r1, #0x68 - movs r0, #0x1b - strh r0, [r1] - movs r1, #0xa - rsbs r1, r1, #0 - b _0808EDCE - .align 2, 0 -_0808EDB4: .4byte gUnk_02032EC0 -_0808EDB8: - ldr r0, _0808EDF8 @ =gUnk_02000080 - ldrb r0, [r0, #0x13] - cmp r0, #5 - bls _0808EDC2 - movs r0, #5 -_0808EDC2: - lsls r0, r0, #3 - adds r0, #0x1b - adds r1, r3, #0 - adds r1, #0x68 - strh r0, [r1] - movs r1, #0x18 -_0808EDCE: - strh r1, [r3, #0x32] - adds r0, r3, #0 - adds r0, #0x6a - strh r1, [r0] - ldrb r0, [r3, #0xf] - adds r0, #1 - strb r0, [r3, #0xf] - ldr r2, _0808EDFC @ =gUnk_08121D10 - ldrb r0, [r3, #0xf] - lsrs r0, r0, #2 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x63 - strb r0, [r1] - adds r0, r3, #0 - bl sub_0808EF6C - pop {pc} - .align 2, 0 -_0808EDF8: .4byte gUnk_02000080 -_0808EDFC: .4byte gUnk_08121D10 - - thumb_func_start sub_0808EE00 -sub_0808EE00: @ 0x0808EE00 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - rsbs r2, r0, #0 - orrs r2, r0 - lsrs r2, r2, #0x1f - ldrb r0, [r4, #0xa] - adds r5, r0, #0 - subs r5, #0xa - ldr r1, _0808EE48 @ =gUnk_08121D38 - lsls r0, r2, #3 - adds r0, r5, r0 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0x1e] - ldr r3, _0808EE4C @ =gUnk_08121D18 - lsls r0, r5, #1 - lsls r1, r2, #4 - adds r0, r0, r1 - adds r0, r0, r3 - ldrh r1, [r0] - strh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - subs r5, r5, r2 - ldr r0, _0808EE50 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #1 - beq _0808EE54 - movs r5, #0x80 - movs r1, #0xb0 - b _0808EE56 - .align 2, 0 -_0808EE48: .4byte gUnk_08121D38 -_0808EE4C: .4byte gUnk_08121D18 -_0808EE50: .4byte gUnk_02032EC0 -_0808EE54: - movs r1, #0x8c -_0808EE56: - adds r0, r4, #0 - adds r0, #0x6a - strh r1, [r0] - ldr r1, _0808EE8C @ =gUnk_02000080 - ldrb r0, [r1, #0x11] - movs r2, #9 - cmp r0, #5 - bne _0808EE6E - ldrb r1, [r1, #0x12] - cmp r5, r1 - bne _0808EE6E - movs r2, #0xb -_0808EE6E: - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1a] - adds r0, r4, #0 - bl sub_0808EF6C - ldr r2, _0808EE90 @ =gUnk_02019EE0 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - pop {r4, r5, pc} - .align 2, 0 -_0808EE8C: .4byte gUnk_02000080 -_0808EE90: .4byte gUnk_02019EE0 - - thumb_func_start nullsub_522 -nullsub_522: @ 0x0808EE94 - bx lr - .align 2, 0 - - thumb_func_start sub_0808EE98 -sub_0808EE98: @ 0x0808EE98 - push {lr} - adds r3, r0, #0 - ldr r0, _0808EEBC @ =gUnk_02032EC0 - ldrb r1, [r0, #2] - strb r1, [r3, #0xe] - ldr r2, _0808EEC0 @ =gUnk_08121D48 - ldrb r0, [r3, #0xe] - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r3, #0x1e] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #2 - beq _0808EEC4 - adds r1, r3, #0 - adds r1, #0x68 - movs r0, #0x60 - b _0808EECA - .align 2, 0 -_0808EEBC: .4byte gUnk_02032EC0 -_0808EEC0: .4byte gUnk_08121D48 -_0808EEC4: - adds r1, r3, #0 - adds r1, #0x68 - ldr r0, _0808EED4 @ =0x0000FFA0 -_0808EECA: - strh r0, [r1] - adds r0, r3, #0 - bl sub_0808EF6C - pop {pc} - .align 2, 0 -_0808EED4: .4byte 0x0000FFA0 - - thumb_func_start sub_0808EED8 -sub_0808EED8: @ 0x0808EED8 - push {lr} - adds r2, r0, #0 - ldr r0, _0808EEF0 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #3 - beq _0808EEF4 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _0808EF1E - .align 2, 0 -_0808EEF0: .4byte gUnk_02032EC0 -_0808EEF4: - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrb r1, [r2, #0xa] - subs r1, #0x13 - ldr r0, _0808EF20 @ =gUnk_02000080 - ldrb r0, [r0, #1] - movs r3, #3 - cmp r0, r1 - bne _0808EF12 - movs r3, #4 -_0808EF12: - ldrb r1, [r2, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, #0x1a] -_0808EF1E: - pop {pc} - .align 2, 0 -_0808EF20: .4byte gUnk_02000080 - - thumb_func_start sub_0808EF24 -sub_0808EF24: @ 0x0808EF24 - push {lr} - adds r2, r0, #0 - ldr r0, _0808EF3C @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - cmp r0, #3 - beq _0808EF40 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _0808EF68 - .align 2, 0 -_0808EF3C: .4byte gUnk_02032EC0 -_0808EF40: - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrb r0, [r2, #0xa] - cmp r0, #0x15 - bne _0808EF5C - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #5] - b _0808EF62 -_0808EF5C: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #6] -_0808EF62: - ldrb r0, [r2, #0x1f] - adds r0, r0, r1 - strb r0, [r2, #0x1e] -_0808EF68: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808EF6C -sub_0808EF6C: @ 0x0808EF6C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x68 - movs r2, #0 - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r5, r2] - subs r6, r1, r0 - adds r0, r6, #0 - cmp r6, #0 - bge _0808EF84 - rsbs r0, r6, #0 -_0808EF84: - cmp r0, #1 - bhi _0808EF8E - lsls r0, r1, #0x10 - str r0, [r5, #0x2c] - movs r6, #0 -_0808EF8E: - adds r0, r5, #0 - adds r0, #0x6a - movs r2, #0 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r5, r2] - subs r4, r1, r0 - adds r0, r4, #0 - cmp r4, #0 - bge _0808EFA4 - rsbs r0, r4, #0 -_0808EFA4: - cmp r0, #1 - bhi _0808EFAE - lsls r0, r1, #0x10 - str r0, [r5, #0x30] - movs r4, #0 -_0808EFAE: - adds r0, r6, #0 - orrs r0, r4 - cmp r0, #0 - bne _0808EFBA - movs r0, #0 - b _0808EFEC -_0808EFBA: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_080041EC - adds r1, r0, #0 - adds r0, #0x80 - lsls r1, r1, #4 - adds r1, r0, r1 - adds r0, r5, #0 - adds r0, #0x6c - ldrh r0, [r0] - cmp r0, r1 - bge _0808EFD6 - adds r1, r0, #0 -_0808EFD6: - strh r1, [r5, #0x24] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_080045DA - lsrs r0, r0, #3 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - movs r0, #1 -_0808EFEC: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808EFF0 -sub_0808EFF0: @ 0x0808EFF0 - push {r4, r5, lr} - mov ip, r0 - ldrb r1, [r0, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x18] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #0x24] - adds r1, #0x45 - movs r0, #1 - strb r0, [r1] - movs r0, #0xff - mov r3, ip - strb r0, [r3, #0x1e] - adds r1, #0x13 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldrb r4, [r3, #0xa] - lsls r4, r4, #3 - ldr r0, _0808F094 @ =gUnk_08121D54 - adds r4, r4, r0 - ldrh r0, [r4, #2] - strh r0, [r3, #0x2e] - ldrh r1, [r4, #2] - mov r0, ip - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r4, #4] - strh r0, [r3, #0x32] - ldrh r0, [r4, #4] - mov r1, ip - adds r1, #0x6a - strh r0, [r1] - ldrb r1, [r4, #6] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x17 - ldrb r3, [r3, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r3 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x19] - ldrb r1, [r4, #6] - lsls r1, r1, #0x1a - mov r5, ip - adds r5, #0x29 - lsrs r1, r1, #0x1d - ldrb r3, [r5] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r5] - ldrb r0, [r4, #6] - lsrs r0, r0, #6 - lsls r0, r0, #6 - mov r3, ip - ldrb r1, [r3, #0x1b] - ands r2, r1 - orrs r2, r0 - strb r2, [r3, #0x1b] - ldrh r1, [r4] - mov r0, ip - adds r0, #0x6c - strh r1, [r0] - ldrb r1, [r4, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F098 - movs r0, #0x7f - ands r1, r0 - strb r1, [r3, #0x1e] - strb r1, [r3, #0x1f] - b _0808F09E - .align 2, 0 -_0808F094: .4byte gUnk_08121D54 -_0808F098: - mov r0, ip - bl sub_080042AC -_0808F09E: - pop {r4, r5, pc} - - thumb_func_start sub_0808F0A0 -sub_0808F0A0: @ 0x0808F0A0 - push {lr} - ldr r2, _0808F0B4 @ =gUnk_08121E5C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F0B4: .4byte gUnk_08121E5C - - thumb_func_start sub_0808F0B8 -sub_0808F0B8: @ 0x0808F0B8 - push {lr} - ldr r2, _0808F0CC @ =gUnk_08121E88 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F0CC: .4byte gUnk_08121E88 - - thumb_func_start sub_0808F0D0 -sub_0808F0D0: @ 0x0808F0D0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x49 - movs r2, #2 - movs r3, #0 - bl sub_080A2988 - str r0, [r5, #0x54] - cmp r0, #0 - bne _0808F0E8 - bl sub_0805E780 -_0808F0E8: - movs r6, #1 - strb r6, [r5, #0xc] - ldr r0, _0808F148 @ =0x0000FF40 - strh r0, [r5, #0x36] - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #0x3f - ands r4, r0 - bl sub_08000E50 - ands r0, r6 - cmp r0, #0 - beq _0808F106 - rsbs r4, r4, #0 -_0808F106: - ldr r0, [r5, #0x50] - ldrh r0, [r0, #0x2e] - adds r0, r0, r4 - strh r0, [r5, #0x2e] - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #0x1f - ands r4, r0 - bl sub_08000E50 - ands r0, r6 - cmp r0, #0 - beq _0808F124 - rsbs r4, r4, #0 -_0808F124: - ldr r0, [r5, #0x50] - ldrh r0, [r0, #0x32] - adds r0, r0, r4 - strh r0, [r5, #0x32] - movs r0, #0x90 - lsls r0, r0, #2 - str r0, [r5, #0x74] - movs r0, #0xa0 - lsls r0, r0, #1 - str r0, [r5, #0x78] - adds r0, r5, #0 - movs r1, #3 - bl sub_08004260 - adds r0, r5, #0 - bl sub_0808F14C - pop {r4, r5, r6, pc} - .align 2, 0 -_0808F148: .4byte 0x0000FF40 - - thumb_func_start sub_0808F14C -sub_0808F14C: @ 0x0808F14C - push {r4, lr} - adds r4, r0, #0 - bl sub_0808F2B0 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0808F16E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x84 - bl sub_080A3268 -_0808F16E: - pop {r4, pc} - - thumb_func_start sub_0808F170 -sub_0808F170: @ 0x0808F170 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x74] - subs r0, #0x20 - str r0, [r4, #0x74] - ldr r1, [r4, #0x78] - adds r1, #0x20 - str r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #8 - movs r3, #2 - bl sub_0806FCF4 - ldr r1, [r4, #0x78] - ldr r0, _0808F1A0 @ =0x000001FF - cmp r1, r0 - bls _0808F198 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0808F198: - adds r0, r4, #0 - bl sub_0808F2B0 - pop {r4, pc} - .align 2, 0 -_0808F1A0: .4byte 0x000001FF - - thumb_func_start sub_0808F1A4 -sub_0808F1A4: @ 0x0808F1A4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x78] - adds r1, #0x10 - str r1, [r4, #0x78] - ldr r0, [r4, #0x74] - adds r0, #0x10 - str r0, [r4, #0x74] - adds r0, r4, #0 - movs r2, #8 - movs r3, #2 - bl sub_0806FCF4 - ldr r1, [r4, #0x78] - ldr r0, _0808F1D4 @ =0x000003FF - cmp r1, r0 - bls _0808F1D8 - ldr r1, [r4, #0x54] - movs r0, #0xff - strb r0, [r1, #0xc] - bl sub_0805E780 - b _0808F1DE - .align 2, 0 -_0808F1D4: .4byte 0x000003FF -_0808F1D8: - adds r0, r4, #0 - bl sub_0808F2B0 -_0808F1DE: - pop {r4, pc} - - thumb_func_start sub_0808F1E0 -sub_0808F1E0: @ 0x0808F1E0 - push {lr} - ldr r2, _0808F1F4 @ =gUnk_08121E98 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F1F4: .4byte gUnk_08121E98 - - thumb_func_start sub_0808F1F8 -sub_0808F1F8: @ 0x0808F1F8 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0x19] - movs r0, #3 - orrs r2, r0 - strb r2, [r4, #0x19] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r3, [r4, #0x50] - ldrb r1, [r3, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - movs r0, #0x3f - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x19] - ldrb r1, [r3, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0808F244 - pop {r4, pc} - - thumb_func_start sub_0808F244 -sub_0808F244: @ 0x0808F244 - push {r4, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x50] - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r3, #0x32] - adds r0, #3 - movs r2, #0 - strh r0, [r4, #0x32] - ldr r1, [r4, #0x54] - adds r0, r1, #0 - adds r0, #0x62 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r1, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - str r2, [r4, #0x34] - movs r0, #0x36 - ldrsh r1, [r3, r0] - movs r0, #0x80 - subs r0, r0, r1 - str r0, [r4, #0x74] - movs r0, #0x36 - ldrsh r1, [r3, r0] - movs r0, #0x80 - lsls r0, r0, #1 - subs r0, r0, r1 - str r0, [r4, #0x78] - adds r3, #0x7f - ldrb r0, [r3] - str r0, [r4, #0x70] - adds r0, r4, #0 - bl sub_0808F2B0 - ldr r0, [r4, #0x50] - adds r0, #0x6d - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0808F2AC - bl sub_0805E780 -_0808F2AC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808F2B0 -sub_0808F2B0: @ 0x0808F2B0 - push {lr} - ldr r1, [r0, #0x74] - ldr r2, [r0, #0x78] - ldr r3, [r0, #0x70] - bl sub_0805EC9C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808F2C0 -sub_0808F2C0: @ 0x0808F2C0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - adds r6, r0, #0 - cmp r6, #0 - bne _0808F322 - adds r0, #1 - strb r0, [r5, #0xc] - ldr r4, [r5, #0x50] - ldrb r2, [r4, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r4, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x1b] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - str r6, [r5, #0x34] - ldr r1, [r5, #0x50] - ldrh r0, [r1, #0x32] - adds r0, #3 - strh r0, [r5, #0x32] - ldrh r0, [r1, #0x2e] - strh r0, [r5, #0x2e] - adds r0, r5, #0 - movs r1, #3 - bl sub_08004260 -_0808F322: - ldr r2, [r5, #0x50] - movs r1, #0x36 - ldrsh r0, [r2, r1] - cmp r0, #0 - bne _0808F334 - ldr r0, [r2, #0x74] - str r0, [r5, #0x74] - ldr r0, [r2, #0x78] - b _0808F34C -_0808F334: - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0x80 - lsls r0, r0, #2 - subs r0, r0, r1 - str r0, [r5, #0x74] - movs r0, #0x36 - ldrsh r1, [r2, r0] - lsls r1, r1, #1 - movs r0, #0xc0 - lsls r0, r0, #2 - subs r0, r0, r1 -_0808F34C: - str r0, [r5, #0x78] - movs r0, #0 - str r0, [r5, #0x70] - adds r0, r5, #0 - bl sub_0808F2B0 - ldr r1, [r5, #0x78] - adds r0, r5, #0 - movs r2, #8 - movs r3, #2 - bl sub_0806FCF4 - ldrb r0, [r5, #0xc] - cmp r0, #0xff - bne _0808F36E - bl sub_0805E780 -_0808F36E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808F370 -sub_0808F370: @ 0x0808F370 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _0808F388 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xd] - cmp r0, #1 - bne _0808F3DA - strb r0, [r4, #0xc] - str r1, [r4, #0x70] - b _0808F3CC -_0808F388: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xd] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bhi _0808F3D4 - ldr r0, [r4, #0x70] - cmp r0, #0 - bne _0808F3C4 - ldr r0, [r4, #0x74] - subs r0, #1 - str r0, [r4, #0x74] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0808F3DA - bl sub_08000E50 - ldr r2, _0808F3C0 @ =gUnk_08121EA0 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - str r0, [r4, #0x70] - b _0808F3DA - .align 2, 0 -_0808F3C0: .4byte gUnk_08121EA0 -_0808F3C4: - subs r0, #1 - str r0, [r4, #0x70] - cmp r0, #0 - bne _0808F3DA -_0808F3CC: - adds r0, r4, #0 - bl sub_0808F5EC - b _0808F3DA -_0808F3D4: - movs r0, #0 - strb r0, [r4, #0xc] - str r0, [r4, #0x74] -_0808F3DA: - pop {r4, pc} - - thumb_func_start sub_0808F3DC -sub_0808F3DC: @ 0x0808F3DC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0808F438 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0xa] - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - ldrb r0, [r4, #0xa] - cmp r0, #8 - beq _0808F41A - cmp r0, #7 - bne _0808F42E - ldr r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_0806FAD8 - b _0808F494 -_0808F41A: - ldr r0, [r4, #0x54] - adds r0, #0x3f - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x3f - strb r0, [r1] - ldr r0, [r4, #0x54] - adds r0, #0x3f - movs r1, #0x7e - strb r1, [r0] -_0808F42E: - ldr r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_0806FAB0 - b _0808F494 -_0808F438: - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x74] - cmp r0, #0 - bne _0808F456 - ldrb r0, [r4, #0xa] - cmp r0, #8 - bne _0808F452 - ldr r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x3f - ldrb r1, [r1] - adds r0, #0x3f - strb r1, [r0] -_0808F452: - bl sub_0805E780 -_0808F456: - ldrb r0, [r4, #0xa] - cmp r0, #5 - bne _0808F486 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0808F486 - ldr r0, [r4, #0x54] - movs r1, #0x49 - movs r2, #8 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _0808F486 - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x50] - str r0, [r1, #0x54] -_0808F486: - adds r0, r4, #0 - bl sub_08004274 - ldr r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_0806FA6C -_0808F494: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808F498 -sub_0808F498: @ 0x0808F498 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _0808F4EC - adds r0, r5, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0808F4C2 - ldr r0, _0808F4E4 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0808F4BE - movs r0, #0xef - bl sub_080A3268 -_0808F4BE: - bl sub_0805E780 -_0808F4C2: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0808F4D4 - bl sub_0805E780 -_0808F4D4: - ldr r0, _0808F4E8 @ =gUnk_03003F80 - ldrb r0, [r0, #0x1c] - cmp r0, #1 - beq _0808F550 - bl sub_0805E780 - b _0808F550 - .align 2, 0 -_0808F4E4: .4byte gUnk_030010A0 -_0808F4E8: .4byte gUnk_03003F80 -_0808F4EC: - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x40 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xb] - movs r6, #0x2b - cmp r0, #0 - beq _0808F4FE - movs r6, #0x2c -_0808F4FE: - ldr r0, [r5, #0x50] - ldr r0, [r0, #0x48] - ldrb r1, [r0, #6] - ldrh r0, [r5, #0x2e] - subs r0, r0, r1 - strh r0, [r5, #0x2e] - bl sub_08000E50 - ldr r4, [r5, #0x50] - ldr r1, [r4, #0x48] - ldrb r1, [r1, #6] - lsls r1, r1, #1 - bl __modsi3 - ldrh r1, [r5, #0x2e] - adds r1, r1, r0 - strh r1, [r5, #0x2e] - ldr r0, [r4, #0x48] - ldrb r1, [r0, #7] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r5, #0x32] - bl sub_08000E50 - ldr r1, [r5, #0x50] - ldr r1, [r1, #0x48] - ldrb r1, [r1, #7] - lsls r1, r1, #1 - bl __modsi3 - ldrh r1, [r5, #0x32] - adds r1, r1, r0 - strh r1, [r5, #0x32] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #4 - bl sub_08004260 -_0808F550: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0808F554 -sub_0808F554: @ 0x0808F554 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FA6C - adds r1, r5, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #0x18 - strb r0, [r1] - ldr r0, [r5, #0x50] - adds r1, r0, #0 - adds r1, #0x62 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0808F588 - adds r2, r5, #0 - adds r2, #0x62 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - ldrb r1, [r2] - adds r0, r0, r1 - strb r0, [r2] -_0808F588: - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _0808F5AC - adds r1, r5, #0 - adds r1, #0x84 - ldr r0, [r1] - cmp r0, #0 - beq _0808F5A4 - subs r0, #1 - str r0, [r1] - cmp r0, #0 - bne _0808F5A4 - bl sub_0805E780 -_0808F5A4: - adds r0, r5, #0 - bl sub_08004274 - b _0808F5E8 -_0808F5AC: - movs r0, #1 - strb r0, [r5, #0xc] - ldr r4, [r5, #0x50] - ldrb r2, [r4, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r4, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x1b] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, #0 - movs r1, #3 - bl sub_08004260 -_0808F5E8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0808F5EC -sub_0808F5EC: @ 0x0808F5EC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - movs r1, #0x49 - movs r2, #5 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _0808F608 - str r4, [r1, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] -_0808F608: - ldr r0, [r4, #0x54] - movs r1, #0x49 - movs r2, #6 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _0808F620 - str r4, [r1, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] -_0808F620: - ldr r0, [r4, #0x54] - movs r1, #0x49 - movs r2, #7 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _0808F638 - str r4, [r1, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] -_0808F638: - movs r0, #0x96 - lsls r0, r0, #2 - str r0, [r4, #0x74] - pop {r4, pc} - - thumb_func_start sub_0808F640 -sub_0808F640: @ 0x0808F640 - push {lr} - ldr r2, _0808F654 @ =gUnk_08121EA4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F654: .4byte gUnk_08121EA4 - - thumb_func_start sub_0808F658 -sub_0808F658: @ 0x0808F658 - push {r4, r5, lr} - adds r5, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - orrs r0, r1 - strb r0, [r5, #0x19] - ldrb r0, [r5, #0xa] - adds r3, r5, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0xa] - strb r0, [r5, #0x1e] - movs r0, #8 - strb r0, [r5, #0x15] - ldr r1, _0808F6D8 @ =gUnk_08121EB0 - ldrb r0, [r5, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - movs r4, #0 - strh r0, [r5, #0x24] - ldr r3, _0808F6DC @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - adds r2, r1, #0 - subs r2, #0x60 - adds r0, r5, #0 - adds r0, #0x78 - strh r2, [r0] - ldrh r0, [r3, #0x1e] - adds r1, r1, r0 - adds r1, #0x60 - adds r0, r5, #0 - adds r0, #0x7a - strh r1, [r0] - strb r4, [r5, #0x14] - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #4 - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - strb r4, [r5, #0xe] - strb r4, [r5, #0xd] - pop {r4, r5, pc} - .align 2, 0 -_0808F6D8: .4byte gUnk_08121EB0 -_0808F6DC: .4byte gUnk_03000BF0 - - thumb_func_start sub_0808F6E0 -sub_0808F6E0: @ 0x0808F6E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x78 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r1, r0 - blt _0808F704 - adds r0, r4, #0 - adds r0, #0x7a - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r1, r0 - ble _0808F708 -_0808F704: - movs r0, #2 - strb r0, [r4, #0xc] -_0808F708: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808F70C -sub_0808F70C: @ 0x0808F70C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0808F75C - movs r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #3 - adds r0, #0x1f - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0808F738 - adds r0, r4, #0 - adds r0, #0x7a - b _0808F73C -_0808F738: - adds r0, r4, #0 - adds r0, #0x78 -_0808F73C: - ldrh r0, [r0] - strh r0, [r4, #0x2e] - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _0808F75C - bl sub_08000E50 - ldr r3, _0808F778 @ =gUnk_08121EB3 - ldrb r1, [r4, #0xb] - lsls r1, r1, #1 - movs r2, #1 - ands r2, r0 - adds r1, r1, r2 - adds r1, r1, r3 - ldrb r0, [r1] - strh r0, [r4, #0x32] -_0808F75C: - ldrb r1, [r4, #0xd] - cmp r1, #1 - bne _0808F774 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0808F774 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] -_0808F774: - pop {r4, pc} - .align 2, 0 -_0808F778: .4byte gUnk_08121EB3 - - thumb_func_start sub_0808F77C -sub_0808F77C: @ 0x0808F77C - push {lr} - ldr r2, _0808F790 @ =gUnk_08121EB8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808F790: .4byte gUnk_08121EB8 - - thumb_func_start sub_0808F794 -sub_0808F794: @ 0x0808F794 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x3c - strb r1, [r0, #0xe] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808F7A8 -sub_0808F7A8: @ 0x0808F7A8 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F7D0 - movs r0, #0x78 - strb r0, [r2, #0xe] - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] -_0808F7D0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0808F7D4 -sub_0808F7D4: @ 0x0808F7D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F80A - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_0808F80A: - pop {r4, pc} - - thumb_func_start sub_0808F80C -sub_0808F80C: @ 0x0808F80C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0808F850 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x15] - movs r2, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - strb r0, [r4, #0x1b] - strb r2, [r4, #0xe] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - ldr r0, _0808F854 @ =0x0000012B - bl sub_080A3268 -_0808F850: - pop {r4, pc} - .align 2, 0 -_0808F854: .4byte 0x0000012B - - thumb_func_start sub_0808F858 -sub_0808F858: @ 0x0808F858 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0808F884 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0808F88A - adds r0, r4, #0 - bl sub_08004274 - b _0808F88A -_0808F884: - adds r0, r4, #0 - bl sub_08004274 -_0808F88A: - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _0808F8C4 @ =gUnk_03000BF0 - ldrh r2, [r1, #8] - subs r0, r0, r2 - movs r1, #0x8c - lsls r1, r1, #2 - cmp r0, r1 - bgt _0808F8C8 - adds r0, r2, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F8EA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0808F8EA - .align 2, 0 -_0808F8C4: .4byte gUnk_03000BF0 -_0808F8C8: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F8EA - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - ldr r0, _0808F8EC @ =0x0000012B - bl sub_080A3268 -_0808F8EA: - pop {r4, pc} - .align 2, 0 -_0808F8EC: .4byte 0x0000012B - - thumb_func_start sub_0808F8F0 -sub_0808F8F0: @ 0x0808F8F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F912 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 -_0808F912: - pop {r4, pc} - - thumb_func_start sub_0808F914 -sub_0808F914: @ 0x0808F914 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808F93C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0808F93C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808F940 -sub_0808F940: @ 0x0808F940 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808F960 - ldr r1, _0808F964 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - bl sub_0805E780 -_0808F960: - pop {r4, pc} - .align 2, 0 -_0808F964: .4byte gUnk_02000080 - - thumb_func_start sub_0808F968 -sub_0808F968: @ 0x0808F968 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0808F98C @ =gUnk_08121ED8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0808F988 - adds r0, r4, #0 - bl sub_08090514 -_0808F988: - pop {r4, pc} - .align 2, 0 -_0808F98C: .4byte gUnk_08121ED8 - - thumb_func_start sub_0808F990 -sub_0808F990: @ 0x0808F990 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r2, #1 - strb r2, [r4, #0xc] - movs r3, #0 - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0xf] - strb r3, [r4, #0xe] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - adds r0, r4, #0 - adds r0, #0x81 - strb r3, [r0] - adds r0, #2 - strb r3, [r0] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _0808F9E8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x80 - strb r3, [r0] - b _0808FA1C -_0808F9E8: - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _0808FA0A - cmp r0, #4 - bne _0808FA1C -_0808FA0A: - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfe - strb r0, [r1] - strb r3, [r4, #0xd] - strb r3, [r4, #0x1e] -_0808FA1C: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0808FAC4 - movs r6, #0 - cmp r0, #0x80 - beq _0808FA84 - ldrh r1, [r4, #0xa] - ldr r0, _0808FA38 @ =0x00000101 - cmp r1, r0 - bne _0808FA3C - movs r0, #0xf - ldrsb r0, [r4, r0] - ldrh r1, [r4, #0x32] - b _0808FA42 - .align 2, 0 -_0808FA38: .4byte 0x00000101 -_0808FA3C: - movs r0, #0xf - ldrsb r0, [r4, r0] - ldrh r1, [r4, #0x2e] -_0808FA42: - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - adds r5, r1, #0 - ldr r3, [r4, #0x50] - cmp r3, #0 - bne _0808FA5E - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - b _0808FA7C -_0808FA5E: - adds r2, r4, #0 - adds r2, #0x82 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808FA76 - ldrb r0, [r3, #0xc] - cmp r0, #2 - bne _0808FAA2 - adds r6, #1 - b _0808FAA2 -_0808FA76: - ldrb r0, [r2] - bl sub_0807CBD0 -_0808FA7C: - cmp r0, #0 - beq _0808FAA2 - adds r6, #1 - b _0808FAA2 -_0808FA84: - movs r6, #1 - ldrh r1, [r4, #0xa] - ldr r0, _0808FA94 @ =0x00000101 - cmp r1, r0 - bne _0808FA98 - ldrh r1, [r4, #0x32] - b _0808FA9A - .align 2, 0 -_0808FA94: .4byte 0x00000101 -_0808FA98: - ldrh r1, [r4, #0x2e] -_0808FA9A: - adds r0, r4, #0 - adds r0, #0x7e - strh r1, [r0] - adds r5, r0, #0 -_0808FAA2: - cmp r6, #0 - beq _0808FAC4 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - ldrh r1, [r4, #0xa] - ldr r0, _0808FABC @ =0x00000101 - cmp r1, r0 - bne _0808FAC0 - ldrh r0, [r5] - strh r0, [r4, #0x32] - b _0808FAC4 - .align 2, 0 -_0808FABC: .4byte 0x00000101 -_0808FAC0: - ldrh r0, [r5] - strh r0, [r4, #0x2e] -_0808FAC4: - adds r0, r4, #0 - bl sub_0808FF50 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0808FACC -sub_0808FACC: @ 0x0808FACC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _0808FAF2 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0808FAEA - adds r0, r4, #0 - bl sub_0808FBFC - b _0808FB0A -_0808FAEA: - adds r0, r4, #0 - bl sub_0808FB68 - b _0808FB0A -_0808FAF2: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0808FB0A - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808FB0A - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 -_0808FB0A: - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _0808FB14 - cmp r0, #4 - bne _0808FB64 -_0808FB14: - ldrb r1, [r4, #0xd] - cmp r1, #1 - beq _0808FB3E - cmp r1, #1 - bgt _0808FB24 - cmp r1, #0 - beq _0808FB2A - b _0808FB64 -_0808FB24: - cmp r1, #2 - beq _0808FB5E - b _0808FB64 -_0808FB2A: - adds r0, r4, #0 - bl sub_0808FECC - cmp r0, #0 - beq _0808FB64 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xc - strb r0, [r4, #0xe] - b _0808FB64 -_0808FB3E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0808FB64 - strb r1, [r4, #0x1e] - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x80 - bl sub_08004488 - adds r0, r4, #0 - bl sub_0808FF20 - b _0808FB64 -_0808FB5E: - adds r0, r4, #0 - bl nullsub_1 -_0808FB64: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808FB68 -sub_0808FB68: @ 0x0808FB68 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r0, #0 - ldr r0, _0808FBAC @ =0x00004031 - cmp r1, r0 - bhi _0808FBB0 - subs r0, #1 - cmp r1, r0 - blo _0808FBB0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r1, #0 - subs r0, #0x30 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #4 - movs r1, #8 - orrs r0, r1 - strb r0, [r4, #0x15] - movs r0, #1 - bl sub_08078A90 - adds r0, r4, #0 - movs r1, #0 - bl sub_0808FD44 - b _0808FBF6 - .align 2, 0 -_0808FBAC: .4byte 0x00004031 -_0808FBB0: - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r0, #0 - ldr r0, _0808FBF8 @ =0x00004031 - cmp r1, r0 - bhi _0808FBF0 - subs r0, #1 - cmp r1, r0 - blo _0808FBF0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r1, #0 - subs r0, #0x30 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #4 - movs r1, #8 - orrs r0, r1 - strb r0, [r4, #0x15] - movs r0, #1 - bl sub_08078A90 - adds r0, r4, #0 - movs r1, #1 - bl sub_0808FD44 -_0808FBF0: - adds r0, r4, #0 - bl sub_0808FDE8 -_0808FBF6: - pop {r4, pc} - .align 2, 0 -_0808FBF8: .4byte 0x00004031 - - thumb_func_start sub_0808FBFC -sub_0808FBFC: @ 0x0808FBFC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r0, #0 - ldr r0, _0808FC38 @ =0x0000404A - cmp r1, r0 - beq _0808FC34 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r1, #0 - subs r0, #0x4b - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r0, #1 - bl sub_08078A90 - adds r0, r4, #0 - movs r1, #0 - bl sub_0808FD44 -_0808FC34: - pop {r4, pc} - .align 2, 0 -_0808FC38: .4byte 0x0000404A - - thumb_func_start sub_0808FC3C -sub_0808FC3C: @ 0x0808FC3C - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_0808FC5C - cmp r0, #0 - beq _0808FC58 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0 - bl sub_08078A90 -_0808FC58: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0808FC5C -sub_0808FC5C: @ 0x0808FC5C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0808FD40 - ldrb r1, [r4, #0xa] - cmp r1, #2 - beq _0808FC7C - cmp r1, #4 - bne _0808FC84 -_0808FC7C: - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfe - b _0808FC88 -_0808FC84: - adds r1, r4, #0 - adds r1, #0x63 -_0808FC88: - strb r0, [r1] - adds r0, r4, #0 - bl sub_080002D0 - cmp r0, #0 - bne _0808FD40 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0808FD30 - movs r2, #0 - ldrh r1, [r4, #0xa] - ldr r0, _0808FCB4 @ =0x00000101 - cmp r1, r0 - bne _0808FCB8 - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x7e - ldrh r1, [r1] - cmp r0, r1 - bne _0808FCC8 - b _0808FCCC - .align 2, 0 -_0808FCB4: .4byte 0x00000101 -_0808FCB8: - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x7e - ldrh r1, [r1] - cmp r0, r1 - bne _0808FCC8 - movs r2, #1 -_0808FCC8: - cmp r2, #0 - beq _0808FD30 -_0808FCCC: - adds r0, r4, #0 - adds r0, #0x81 - movs r5, #1 - strb r5, [r0] - ldr r3, [r4, #0x50] - cmp r3, #0 - bne _0808FCE4 - adds r0, #5 - ldrh r0, [r0] - bl sub_0807CCC8 - b _0808FD0C -_0808FCE4: - adds r2, r4, #0 - adds r2, #0x82 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808FD06 - adds r0, r3, #0 - adds r0, #0x28 - subs r2, #8 - adds r1, r5, #0 - ldrh r2, [r2] - lsls r1, r2 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] - b _0808FD0C -_0808FD06: - ldrb r0, [r2] - bl sub_0807CCB4 -_0808FD0C: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0808FD1A - movs r0, #4 - b _0808FD1C -_0808FD1A: - movs r0, #0x18 -_0808FD1C: - strb r0, [r4, #0xe] - ldr r0, _0808FD3C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808FD30 - ldrb r0, [r4, #0xe] - adds r0, #0x10 - strb r0, [r4, #0xe] -_0808FD30: - adds r0, r4, #0 - bl sub_0808FF50 - movs r0, #1 - b _0808FD42 - .align 2, 0 -_0808FD3C: .4byte gUnk_03003F80 -_0808FD40: - movs r0, #0 -_0808FD42: - pop {r4, r5, pc} - - thumb_func_start sub_0808FD44 -sub_0808FD44: @ 0x0808FD44 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #1 - bne _0808FD8E - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - beq _0808FD62 - adds r0, r4, #0 - bl sub_08090498 -_0808FD62: - cmp r5, #0 - beq _0808FD6C - adds r0, r4, #0 - adds r0, #0x72 - b _0808FD70 -_0808FD6C: - adds r0, r4, #0 - adds r0, #0x70 -_0808FD70: - ldrh r5, [r0] - ldr r0, _0808FD84 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808FD88 - movs r0, #0x40 - strh r0, [r4, #0x24] - b _0808FDB2 - .align 2, 0 -_0808FD84: .4byte gUnk_03003F80 -_0808FD88: - strh r1, [r4, #0x24] - movs r0, #0x10 - b _0808FDB4 -_0808FD8E: - adds r0, r4, #0 - adds r0, #0x7c - ldrh r5, [r0] - ldr r0, _0808FDAC @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0808FDB0 - movs r1, #0x40 - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r1, [r4, #0xe] - b _0808FDB6 - .align 2, 0 -_0808FDAC: .4byte gUnk_03003F80 -_0808FDB0: - strh r1, [r4, #0x24] -_0808FDB2: - movs r0, #0x20 -_0808FDB4: - strb r0, [r4, #0xe] -_0808FDB6: - ldr r0, _0808FDE0 @ =0x0000010F - bl sub_08004488 - adds r0, r4, #0 - bl sub_08090254 - ldr r1, _0808FDE4 @ =gUnk_080B4488 - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r0, r5, r0 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - pop {r4, r5, pc} - .align 2, 0 -_0808FDE0: .4byte 0x0000010F -_0808FDE4: .4byte gUnk_080B4488 - - thumb_func_start sub_0808FDE8 -sub_0808FDE8: @ 0x0808FDE8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x70 - ldrh r5, [r0] - subs r0, r5, #1 - movs r1, #1 - bl sub_080002E0 - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #1 - bl sub_080001DA - ldr r6, _0808FE28 @ =0x0000402E - cmp r0, r6 - bne _0808FE30 - movs r0, #0xf0 - ands r0, r4 - cmp r0, #0 - beq _0808FE14 - cmp r0, #0x50 - bne _0808FE1C -_0808FE14: - movs r0, #5 - ands r0, r4 - cmp r0, #0 - bne _0808FE58 -_0808FE1C: - ldr r0, _0808FE2C @ =0x0000402C - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E - b _0808FE58 - .align 2, 0 -_0808FE28: .4byte 0x0000402E -_0808FE2C: .4byte 0x0000402C -_0808FE30: - adds r0, r5, #0 - movs r1, #1 - bl sub_080002E0 - cmp r0, #5 - bne _0808FE58 - movs r1, #0xf0 - ands r1, r4 - cmp r1, #0 - beq _0808FE48 - cmp r1, #0x50 - bne _0808FE58 -_0808FE48: - ands r4, r0 - cmp r4, #0 - beq _0808FE58 - adds r0, r6, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E -_0808FE58: - adds r0, r7, #0 - adds r0, #0x72 - ldrh r5, [r0] - adds r0, r5, #1 - movs r1, #1 - bl sub_080002E0 - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #1 - bl sub_080001DA - ldr r6, _0808FE98 @ =0x0000402F - cmp r0, r6 - bne _0808FEA0 - movs r0, #0xf0 - ands r0, r4 - cmp r0, #0 - beq _0808FE82 - cmp r0, #0x50 - bne _0808FE8A -_0808FE82: - movs r0, #0xa - ands r0, r4 - cmp r0, #0 - bne _0808FEC8 -_0808FE8A: - ldr r0, _0808FE9C @ =0x0000402D - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E - b _0808FEC8 - .align 2, 0 -_0808FE98: .4byte 0x0000402F -_0808FE9C: .4byte 0x0000402D -_0808FEA0: - adds r0, r5, #0 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0xa - bne _0808FEC8 - movs r1, #0xf0 - ands r1, r4 - cmp r1, #0 - beq _0808FEB8 - cmp r1, #0x50 - bne _0808FEC8 -_0808FEB8: - ands r4, r0 - cmp r4, #0 - beq _0808FEC8 - adds r0, r6, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E -_0808FEC8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0808FECC -sub_0808FECC: @ 0x0808FECC - push {r4, r5, lr} - adds r2, r0, #0 - movs r4, #1 - ldr r0, _0808FF18 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0808FF10 - ldr r3, _0808FF1C @ =gLinkEntity - ldrb r0, [r3, #0xc] - cmp r0, #6 - bne _0808FF10 - ldrb r0, [r3, #0x14] - cmp r0, #0 - bne _0808FF10 - movs r1, #0x32 - ldrsh r0, [r3, r1] - movs r5, #0x32 - ldrsh r1, [r2, r5] - subs r0, r0, r1 - cmp r0, #0x13 - bgt _0808FF10 - movs r0, #0x2e - ldrsh r2, [r2, r0] - adds r0, r2, #0 - adds r0, #0xc - movs r5, #0x2e - ldrsh r1, [r3, r5] - cmp r0, r1 - ble _0808FF10 - subs r0, #0x18 - cmp r0, r1 - blt _0808FF12 -_0808FF10: - movs r4, #0 -_0808FF12: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 -_0808FF18: .4byte gUnk_03003F80 -_0808FF1C: .4byte gLinkEntity - - thumb_func_start sub_0808FF20 -sub_0808FF20: @ 0x0808FF20 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xb] - cmp r1, #0 - beq _0808FF4A - cmp r1, #0 - blt _0808FF4A - cmp r1, #2 - bgt _0808FF4A - subs r1, #1 - movs r0, #0x63 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0808FF4A - str r4, [r1, #0x50] - adds r0, r4, #0 - bl sub_0806FA24 -_0808FF4A: - pop {r4, pc} - - thumb_func_start nullsub_1 -nullsub_1: @ 0x0808FF4C - bx lr - .align 2, 0 - - thumb_func_start sub_0808FF50 -sub_0808FF50: @ 0x0808FF50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _0808FF98 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r2, r6, #0 - adds r2, #0x7c - strh r1, [r2] - ldrh r0, [r6, #0x2e] - movs r1, #0xf - ands r1, r0 - ldrh r7, [r2] - adds r0, r6, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0808FF9C - cmp r0, #1 - beq _0808FFC0 - b _0809008A - .align 2, 0 -_0808FF98: .4byte gUnk_03000BF0 -_0808FF9C: - adds r0, r6, #0 - adds r0, #0x70 - strh r7, [r0] - ldrh r0, [r0] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldr r0, _0808FFBC @ =0x0000404A - adds r1, r7, #0 - movs r2, #1 - bl sub_0800015E - b _0809008A - .align 2, 0 -_0808FFBC: .4byte 0x0000404A -_0808FFC0: - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _0809002C - adds r0, r6, #0 - adds r0, #0x70 - strh r7, [r0] - ldrh r0, [r0] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldr r4, _08090028 @ =gUnk_08121EE4 - movs r0, #0x81 - adds r0, r0, r6 - mov r8, r0 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - adds r1, r7, #0 - movs r2, #1 - bl sub_0800015E - adds r0, r7, #1 - adds r5, r6, #0 - adds r5, #0x72 - strh r0, [r5] - ldrh r0, [r5] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - mov r1, r8 - ldrb r0, [r1] - adds r0, #4 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r1, [r0] - ldrh r2, [r5] - adds r0, r6, #0 - bl sub_08090094 - adds r0, r6, #0 - movs r1, #1 - bl sub_0809028C - b _0809008A - .align 2, 0 -_08090028: .4byte gUnk_08121EE4 -_0809002C: - adds r0, r6, #0 - adds r0, #0x72 - strh r7, [r0] - ldrh r0, [r0] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r5, _08090090 @ =gUnk_08121EE4 - movs r4, #0x81 - adds r4, r4, r6 - mov r8, r4 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r0, [r0] - adds r1, r7, #0 - movs r2, #1 - bl sub_0800015E - subs r0, r7, #1 - adds r4, r6, #0 - adds r4, #0x70 - strh r0, [r4] - ldrh r0, [r4] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - mov r1, r8 - ldrb r0, [r1] - adds r0, #2 - lsls r0, r0, #1 - adds r0, r0, r5 - ldrh r1, [r0] - ldrh r2, [r4] - adds r0, r6, #0 - bl sub_08090094 - adds r0, r6, #0 - movs r1, #0 - bl sub_0809028C -_0809008A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08090090: .4byte gUnk_08121EE4 - - thumb_func_start sub_08090094 -sub_08090094: @ 0x08090094 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - adds r0, r7, #0 - movs r1, #1 - bl sub_080002E0 - adds r4, r0, #0 - adds r0, r7, #0 - movs r1, #1 - bl sub_080001DA - adds r3, r0, #0 - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r3 - cmp r0, #0 - bne _0809012C - adds r3, r5, #0 - ldr r1, _080900D0 @ =0xFFFFBFDC - adds r0, r3, r1 - cmp r0, #0xb - bhi _0809011A - lsls r0, r0, #2 - ldr r1, _080900D4 @ =_080900D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080900D0: .4byte 0xFFFFBFDC -_080900D4: .4byte _080900D8 -_080900D8: @ jump table - .4byte _08090114 @ case 0 - .4byte _08090108 @ case 1 - .4byte _0809011A @ case 2 - .4byte _0809011A @ case 3 - .4byte _0809011A @ case 4 - .4byte _0809011A @ case 5 - .4byte _0809011A @ case 6 - .4byte _0809011A @ case 7 - .4byte _08090114 @ case 8 - .4byte _0809010E @ case 9 - .4byte _08090114 @ case 10 - .4byte _0809010E @ case 11 -_08090108: - cmp r4, #5 - bne _0809011A - b _08090118 -_0809010E: - cmp r4, #5 - bne _0809011A - b _08090118 -_08090114: - cmp r4, #0xa - bne _0809011A -_08090118: - ldr r3, _08090128 @ =0x00004022 -_0809011A: - adds r0, r3, #0 - adds r1, r7, #0 - movs r2, #1 - bl sub_0800015E - b _08090242 - .align 2, 0 -_08090128: .4byte 0x00004022 -_0809012C: - ldr r1, _08090140 @ =0xFFFFBFDE - adds r0, r3, r1 - cmp r0, #0xd - bls _08090136 - b _08090242 -_08090136: - lsls r0, r0, #2 - ldr r1, _08090144 @ =_08090148 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08090140: .4byte 0xFFFFBFDE -_08090144: .4byte _08090148 -_08090148: @ jump table - .4byte _08090242 @ case 0 - .4byte _08090242 @ case 1 - .4byte _080901EC @ case 2 - .4byte _08090180 @ case 3 - .4byte _08090242 @ case 4 - .4byte _08090242 @ case 5 - .4byte _08090242 @ case 6 - .4byte _08090242 @ case 7 - .4byte _08090242 @ case 8 - .4byte _08090242 @ case 9 - .4byte _08090210 @ case 10 - .4byte _080901B4 @ case 11 - .4byte _08090210 @ case 12 - .4byte _080901B4 @ case 13 -_08090180: - ldr r0, _080901A8 @ =0x00004024 - cmp r5, r0 - bne _08090194 - ldr r3, _080901AC @ =0x00004022 - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] -_08090194: - ldr r0, _080901B0 @ =0x0000402C - cmp r5, r0 - bne _08090238 - ldr r3, _080901AC @ =0x00004022 - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x10 - b _08090234 - .align 2, 0 -_080901A8: .4byte 0x00004024 -_080901AC: .4byte 0x00004022 -_080901B0: .4byte 0x0000402C -_080901B4: - ldr r0, _080901DC @ =0x0000402C - cmp r5, r0 - bne _080901C8 - ldr r3, _080901E0 @ =0x0000402B - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] -_080901C8: - ldr r0, _080901E4 @ =0x00004024 - cmp r5, r0 - bne _08090238 - ldr r3, _080901E8 @ =0x00004022 - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x10 - b _08090234 - .align 2, 0 -_080901DC: .4byte 0x0000402C -_080901E0: .4byte 0x0000402B -_080901E4: .4byte 0x00004024 -_080901E8: .4byte 0x00004022 -_080901EC: - ldr r0, _08090204 @ =0x00004025 - cmp r5, r0 - bne _08090200 - ldr r3, _08090208 @ =0x00004022 - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r2] -_08090200: - ldr r0, _0809020C @ =0x0000402D - b _08090226 - .align 2, 0 -_08090204: .4byte 0x00004025 -_08090208: .4byte 0x00004022 -_0809020C: .4byte 0x0000402D -_08090210: - ldr r0, _08090244 @ =0x0000402D - cmp r5, r0 - bne _08090224 - ldr r3, _08090248 @ =0x0000402B - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r2] -_08090224: - ldr r0, _0809024C @ =0x00004025 -_08090226: - cmp r5, r0 - bne _08090238 - ldr r3, _08090250 @ =0x00004022 - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x20 -_08090234: - orrs r0, r1 - strb r0, [r2] -_08090238: - adds r0, r3, #0 - adds r1, r7, #0 - movs r2, #1 - bl sub_0800015E -_08090242: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08090244: .4byte 0x0000402D -_08090248: .4byte 0x0000402B -_0809024C: .4byte 0x00004025 -_08090250: .4byte 0x00004022 - - thumb_func_start sub_08090254 -sub_08090254: @ 0x08090254 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r2, [r5] - bl sub_0807B9B8 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #1 - bne _08090288 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x72 - ldrh r1, [r1] - ldrb r2, [r5] - bl sub_0807B9B8 -_08090288: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809028C -sub_0809028C: @ 0x0809028C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - adds r4, r6, #0 - adds r4, #0x83 - ldrb r0, [r4] - movs r2, #0x30 - ands r2, r0 - movs r0, #0 - mov sb, r0 - strb r2, [r4] - adds r0, r6, #0 - adds r0, #0x70 - ldrh r5, [r0] - adds r7, r5, #0 - subs r7, #0x80 - adds r0, #2 - ldrh r3, [r0] - movs r0, #0x80 - rsbs r0, r0, #0 - adds r0, r0, r3 - mov r8, r0 - cmp r1, #1 - bne _0809039A - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _080902D4 - adds r1, r3, #0 - subs r1, #0x7f - movs r0, #0 - bl sub_08090480 - b _080902FE -_080902D4: - mov r0, r8 - movs r1, #2 - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _080902EC @ =0x00000301 - cmp r1, r0 - beq _080902F0 - adds r0, #7 - cmp r1, r0 - beq _080902F6 - b _080902FE - .align 2, 0 -_080902EC: .4byte 0x00000301 -_080902F0: - ldrb r0, [r4] - movs r1, #8 - b _080902FA -_080902F6: - ldrb r0, [r4] - movs r1, #2 -_080902FA: - orrs r0, r1 - strb r0, [r4] -_080902FE: - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x2a - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _0809031E - movs r0, #0 - adds r1, r7, #0 - bl sub_08090480 - movs r0, #0 - mov r1, r8 - bl sub_08090480 -_0809031E: - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0809034E - subs r4, r7, #1 - adds r0, r4, #0 - movs r1, #1 - bl sub_080002B0 - movs r1, #0xc0 - lsls r1, r1, #2 - cmp r0, r1 - bne _0809033C - b _08090478 -_0809033C: - movs r0, #0 - adds r1, r4, #0 - bl sub_08090480 - subs r1, r7, #2 - movs r0, #2 - bl sub_08090480 - b _08090478 -_0809034E: - subs r0, r7, #1 - movs r1, #2 - bl sub_080002B0 - adds r1, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r1, r0 - beq _08090368 - adds r0, #8 - cmp r1, r0 - beq _0809036E - b _08090376 -_08090368: - ldrb r1, [r4] - movs r0, #4 - b _08090372 -_0809036E: - ldrb r1, [r4] - movs r0, #1 -_08090372: - orrs r0, r1 - strb r0, [r4] -_08090376: - ldrb r1, [r4] - movs r0, #0x15 - ands r0, r1 - cmp r0, #0 - beq _08090478 - movs r0, #0x2a - ands r0, r1 - cmp r0, #0 - bne _08090478 - movs r0, #0 - adds r1, r7, #0 - bl sub_08090480 - movs r0, #1 - mov r1, r8 - bl sub_08090480 - b _08090478 -_0809039A: - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _080903AE - adds r1, r5, #0 - subs r1, #0x81 - movs r0, #0 - bl sub_08090480 - b _080903DA -_080903AE: - adds r0, r7, #0 - movs r1, #2 - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _080903C8 @ =0x00000302 - cmp r1, r0 - beq _080903CC - adds r0, #4 - cmp r1, r0 - beq _080903D2 - b _080903DA - .align 2, 0 -_080903C8: .4byte 0x00000302 -_080903CC: - ldrb r0, [r4] - movs r1, #4 - b _080903D6 -_080903D2: - ldrb r0, [r4] - movs r1, #1 -_080903D6: - orrs r0, r1 - strb r0, [r4] -_080903DA: - adds r2, r6, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x15 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _080903FA - movs r0, #0 - adds r1, r7, #0 - bl sub_08090480 - movs r0, #0 - mov r1, r8 - bl sub_08090480 -_080903FA: - ldrb r1, [r4] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0809042C - mov r4, r8 - adds r4, #1 - adds r0, r4, #0 - movs r1, #1 - bl sub_080002B0 - movs r1, #0xc0 - lsls r1, r1, #2 - cmp r0, r1 - beq _08090478 - movs r0, #0 - adds r1, r4, #0 - bl sub_08090480 - mov r1, r8 - adds r1, #2 - movs r0, #1 - bl sub_08090480 - b _08090478 -_0809042C: - mov r0, r8 - adds r0, #1 - movs r1, #2 - bl sub_080002B0 - adds r1, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r1, r0 - beq _08090448 - adds r0, #6 - cmp r1, r0 - beq _0809044E - b _08090456 -_08090448: - ldrb r1, [r4] - movs r0, #8 - b _08090452 -_0809044E: - ldrb r1, [r4] - movs r0, #2 -_08090452: - orrs r0, r1 - strb r0, [r4] -_08090456: - ldrb r1, [r4] - movs r0, #0x2a - ands r0, r1 - cmp r0, #0 - beq _08090478 - movs r0, #0x15 - ands r0, r1 - cmp r0, #0 - bne _08090478 - movs r0, #2 - adds r1, r7, #0 - bl sub_08090480 - movs r0, #0 - mov r1, r8 - bl sub_08090480 -_08090478: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08090480 -sub_08090480: @ 0x08090480 - push {lr} - ldr r2, _08090494 @ =gUnk_08121EF0 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - movs r2, #1 - bl sub_0800015E - pop {pc} - .align 2, 0 -_08090494: .4byte gUnk_08121EF0 - - thumb_func_start sub_08090498 -sub_08090498: @ 0x08090498 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x80 - adds r0, r4, #0 - movs r1, #1 - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080904D2 - adds r0, r4, #0 - movs r1, #2 - bl sub_080002B0 - ldr r1, _08090510 @ =0x00000306 - cmp r0, r1 - bne _080904D2 - movs r0, #0x62 - adds r1, r4, #0 - movs r2, #1 - bl sub_08000148 -_080904D2: - adds r0, r5, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x80 - adds r0, r4, #0 - movs r1, #1 - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0809050C - adds r0, r4, #0 - movs r1, #2 - bl sub_080002B0 - movs r1, #0xc2 - lsls r1, r1, #2 - cmp r0, r1 - bne _0809050C - movs r0, #0x63 - adds r1, r4, #0 - movs r2, #1 - bl sub_08000148 -_0809050C: - pop {r4, r5, pc} - .align 2, 0 -_08090510: .4byte 0x00000306 - - thumb_func_start sub_08090514 -sub_08090514: @ 0x08090514 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - cmp r0, #0 - beq _0809059E - ldrb r0, [r0, #0xd] - cmp r0, #1 - beq _08090552 - cmp r0, #1 - bgt _0809052E - cmp r0, #0 - beq _08090538 - b _0809059E -_0809052E: - cmp r0, #2 - beq _08090568 - cmp r0, #3 - beq _08090582 - b _0809059E -_08090538: - ldrb r1, [r2, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x19] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - b _0809059A -_08090552: - ldrb r0, [r2, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r2, #0x19] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - b _0809059A -_08090568: - ldrb r1, [r2, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x19] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - b _0809059A -_08090582: - ldrb r1, [r2, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x19] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 -_0809059A: - orrs r0, r1 - strb r0, [r2] -_0809059E: - pop {pc} - - thumb_func_start sub_080905A0 -sub_080905A0: @ 0x080905A0 - push {lr} - ldr r2, _080905B4 @ =gUnk_08122218 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080905B4: .4byte gUnk_08122218 - - thumb_func_start sub_080905B8 -sub_080905B8: @ 0x080905B8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - movs r0, #1 - mov sb, r0 - mov r1, sb - strb r1, [r7, #0xc] - movs r5, #0x2e - ldrsh r2, [r7, r5] - ldr r6, _08090618 @ =gUnk_03000BF0 - ldrh r0, [r6, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r1, #0x32 - ldrsh r0, [r7, r1] - ldrh r1, [r6, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r2, r0 - adds r5, r7, #0 - adds r5, #0x78 - movs r0, #0 - mov r8, r0 - strh r2, [r5] - adds r0, r7, #0 - bl sub_08090DC4 - adds r0, r7, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldr r1, _0809061C @ =0x00007FFF - ands r1, r0 - cmp r1, #0x80 - beq _08090680 - cmp r1, #0x80 - bgt _08090620 - cmp r1, #0x20 - beq _080906E6 - cmp r1, #0x40 - beq _08090650 - b _080906E0 - .align 2, 0 -_08090618: .4byte gUnk_03000BF0 -_0809061C: .4byte 0x00007FFF -_08090620: - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - beq _080906E6 - cmp r1, r0 - bgt _08090636 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08090640 - b _080906E0 -_08090636: - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _080906C4 - b _080906E0 -_08090640: - adds r1, r7, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r7, #0 - bl sub_08016A04 - b _080906E6 -_08090650: - ldrh r1, [r7, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strh r0, [r7, #0x32] - ldr r4, _0809067C @ =0x00004017 - ldrh r1, [r5] - subs r1, #0x80 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldrh r1, [r5] - subs r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - b _080906E6 - .align 2, 0 -_0809067C: .4byte 0x00004017 -_08090680: - mov r1, r8 - strb r1, [r7, #0x1e] - ldrh r1, [r7, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strh r0, [r7, #0x32] - movs r2, #0x2e - ldrsh r1, [r7, r2] - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r4 - movs r2, #0x32 - ldrsh r0, [r7, r2] - ldrh r2, [r6, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r5] - ldr r0, _080906C0 @ =0x00004026 - ldrh r1, [r5] - adds r2, r7, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _080906E6 - .align 2, 0 -_080906C0: .4byte 0x00004026 -_080906C4: - adds r0, r7, #0 - bl sub_08090E64 - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _080906E0 - adds r0, r7, #0 - adds r0, #0x62 - mov r5, sb - strb r5, [r0] - adds r1, r7, #0 - adds r1, #0x80 - movs r0, #0x30 - strb r0, [r1] -_080906E0: - adds r0, r7, #0 - bl sub_08090B6C -_080906E6: - adds r0, r7, #0 - adds r0, #0x81 - ldrb r1, [r0] - cmp r1, #0x10 - beq _0809075C - movs r0, #0x70 - ands r0, r1 - adds r4, r7, #0 - adds r4, #0x78 - cmp r0, #0x20 - beq _0809072E - cmp r0, #0x30 - bne _0809073A - ldrh r0, [r4] - subs r0, #0x40 - strh r0, [r4] - adds r0, r7, #0 - bl sub_08090B6C - movs r0, #0x2e - ldrsh r1, [r7, r0] - ldr r2, _08090778 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r7, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] -_0809072E: - ldrh r0, [r4] - adds r0, #0x40 - strh r0, [r4] - adds r0, r7, #0 - bl sub_08090B6C -_0809073A: - movs r0, #0x2e - ldrsh r1, [r7, r0] - ldr r2, _08090778 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r7, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] -_0809075C: - adds r0, r7, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldr r1, _0809077C @ =0x00007FFF - ands r1, r0 - cmp r1, #2 - beq _08090780 - cmp r1, #4 - bne _080907C8 - adds r0, r7, #0 - movs r1, #0x7e - bl sub_0801D2B4 - b _080907C8 - .align 2, 0 -_08090778: .4byte gUnk_03000BF0 -_0809077C: .4byte 0x00007FFF -_08090780: - adds r0, r7, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x81 - ldrb r0, [r7, #0xa] - movs r1, #2 - mov r8, r1 - cmp r0, #0x1a - beq _08090798 - movs r2, #3 - mov r8, r2 -_08090798: - movs r5, #0 - cmp r5, r8 - bhs _080907C8 - ldr r6, _080907DC @ =0x00004026 -_080907A0: - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #2 - bl sub_0800015E - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0 - movs r2, #1 - bl sub_080001D0 - adds r5, #1 - adds r4, #1 - cmp r5, r8 - blo _080907A0 -_080907C8: - ldrb r0, [r7, #0xa] - subs r0, #1 - cmp r0, #0x3b - bls _080907D2 - b _080909DC -_080907D2: - lsls r0, r0, #2 - ldr r1, _080907E0 @ =_080907E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080907DC: .4byte 0x00004026 -_080907E0: .4byte _080907E4 -_080907E4: @ jump table - .4byte _080908D4 @ case 0 - .4byte _080909DC @ case 1 - .4byte _080909DC @ case 2 - .4byte _080909DC @ case 3 - .4byte _080909DC @ case 4 - .4byte _080909DC @ case 5 - .4byte _080909DC @ case 6 - .4byte _080909DC @ case 7 - .4byte _080908F0 @ case 8 - .4byte _080909DC @ case 9 - .4byte _080909DC @ case 10 - .4byte _080909DC @ case 11 - .4byte _080909DC @ case 12 - .4byte _080909DC @ case 13 - .4byte _080909DC @ case 14 - .4byte _080909DC @ case 15 - .4byte _080909DC @ case 16 - .4byte _080909DC @ case 17 - .4byte _080909DC @ case 18 - .4byte _080909DC @ case 19 - .4byte _080909DC @ case 20 - .4byte _080909DC @ case 21 - .4byte _080909DC @ case 22 - .4byte _080909DC @ case 23 - .4byte _080909DC @ case 24 - .4byte _080909DC @ case 25 - .4byte _080909DC @ case 26 - .4byte _080909DC @ case 27 - .4byte _080909DC @ case 28 - .4byte _08090920 @ case 29 - .4byte _08090938 @ case 30 - .4byte _080909DC @ case 31 - .4byte _080909DC @ case 32 - .4byte _080909DC @ case 33 - .4byte _080909DC @ case 34 - .4byte _080909DC @ case 35 - .4byte _080909DC @ case 36 - .4byte _080909DC @ case 37 - .4byte _080909DC @ case 38 - .4byte _08090984 @ case 39 - .4byte _080909DC @ case 40 - .4byte _080909DC @ case 41 - .4byte _080909DC @ case 42 - .4byte _080909DC @ case 43 - .4byte _080909DC @ case 44 - .4byte _080909DC @ case 45 - .4byte _080909DC @ case 46 - .4byte _080909DC @ case 47 - .4byte _080909DC @ case 48 - .4byte _080909DC @ case 49 - .4byte _080909DC @ case 50 - .4byte _080909DC @ case 51 - .4byte _080909DC @ case 52 - .4byte _080909DC @ case 53 - .4byte _080909DC @ case 54 - .4byte _080909DC @ case 55 - .4byte _080909DC @ case 56 - .4byte _080909DC @ case 57 - .4byte _08090994 @ case 58 - .4byte _080909C8 @ case 59 -_080908D4: - ldrb r0, [r7, #0xb] - cmp r0, #0 - bne _080908DC - b _080909DC -_080908DC: - adds r2, r7, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - b _080909DC -_080908F0: - movs r0, #0x4d - movs r1, #0x3e - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080909DC - movs r3, #0x80 - lsls r3, r3, #0xd - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r3, #0 - bl PositionRelative - movs r0, #1 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x11] - subs r0, #0x11 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #0x11] - b _080909DC -_08090920: - ldr r0, _08090934 @ =0x00000306 - adds r1, r7, #0 - adds r1, #0x78 - ldrh r1, [r1] - adds r1, #0x41 - movs r2, #2 - bl sub_0807B7D8 - b _080909DC - .align 2, 0 -_08090934: .4byte 0x00000306 -_08090938: - adds r5, r7, #0 - adds r5, #0x38 - movs r0, #1 - strb r0, [r5] - ldrb r1, [r7, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r7, #0x1b] - ldr r0, _0809097C @ =0x00004074 - adds r4, r7, #0 - adds r4, #0x78 - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - bl sub_0800015E - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - movs r0, #0x3f - bl sub_080001D0 - ldr r6, _08090980 @ =0x00004017 - ldrh r1, [r4] - ldrb r2, [r5] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r4] - adds r1, #0x40 - ldrb r2, [r5] - b _080909BC - .align 2, 0 -_0809097C: .4byte 0x00004074 -_08090980: .4byte 0x00004017 -_08090984: - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _080909DC - adds r1, r7, #0 - adds r1, #0x62 - movs r0, #0xfc - strb r0, [r1] - b _080909DC -_08090994: - ldr r6, _080909C4 @ =0x00004023 - adds r5, r7, #0 - adds r5, #0x78 - ldrh r1, [r5] - subs r1, #0x41 - adds r4, r7, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r5] - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r5] - subs r1, #0x3f - ldrb r2, [r4] -_080909BC: - adds r0, r6, #0 - bl sub_0800015E - b _080909DC - .align 2, 0 -_080909C4: .4byte 0x00004023 -_080909C8: - ldr r0, _080909E4 @ =0x00004022 - adds r1, r7, #0 - adds r1, #0x78 - ldrh r1, [r1] - adds r1, #0x41 - adds r2, r7, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_080909DC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080909E4: .4byte 0x00004022 - - thumb_func_start sub_080909E8 -sub_080909E8: @ 0x080909E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldr r1, _08090A04 @ =0x00007FFF - ands r1, r0 - cmp r1, #8 - beq _08090A42 - cmp r1, #8 - bgt _08090A08 - cmp r1, #1 - beq _08090A12 - b _08090B60 - .align 2, 0 -_08090A04: .4byte 0x00007FFF -_08090A08: - cmp r1, #0x10 - beq _08090A68 - cmp r1, #0x80 - beq _08090AB0 - b _08090B60 -_08090A12: - ldr r2, _08090A34 @ =gLinkEntity - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r3, #0x32 - ldrsh r0, [r5, r3] - cmp r1, r0 - blt _08090A26 - adds r0, #0x18 - cmp r1, r0 - ble _08090A38 -_08090A26: - ldrb r0, [r5, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r5, #0x19] - b _08090B60 - .align 2, 0 -_08090A34: .4byte gLinkEntity -_08090A38: - ldrb r0, [r5, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r5, #0x19] - b _08090B60 -_08090A42: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _08090A52 - b _08090B60 -_08090A52: - movs r0, #0 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xf] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_08090E4C - b _08090B60 -_08090A68: - ldrb r0, [r5, #0xa] - cmp r0, #0x3e - beq _08090A8C - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x14 - bne _08090B60 - ldrb r0, [r5, #0x1e] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x1e] - movs r0, #0 - strb r0, [r5, #0xe] - b _08090B60 -_08090A8C: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe - bne _08090B60 - movs r0, #0 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xf] - adds r0, #1 - movs r1, #3 - bl __modsi3 - strb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0x1e] - b _08090B60 -_08090AB0: - ldr r2, _08090B00 @ =gLinkEntity - movs r3, #0x32 - ldrsh r1, [r2, r3] - movs r3, #0x32 - ldrsh r0, [r5, r3] - adds r0, #8 - cmp r1, r0 - bge _08090B14 - ldr r0, _08090B04 @ =gUnk_03003F80 - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - beq _08090B60 - adds r0, r5, #0 - bl sub_080002A0 - ldr r1, _08090B08 @ =0x00004017 - cmp r0, r1 - bne _08090B60 - ldr r0, _08090B0C @ =0x00004026 - adds r4, r5, #0 - adds r4, #0x78 - ldrh r1, [r4] - adds r5, #0x38 - ldrb r2, [r5] - bl sub_0800015E - ldr r6, _08090B10 @ =0x0000403D - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r4] - subs r1, #0x80 - ldrb r2, [r5] - adds r0, r6, #0 - bl sub_0800015E - b _08090B60 - .align 2, 0 -_08090B00: .4byte gLinkEntity -_08090B04: .4byte gUnk_03003F80 -_08090B08: .4byte 0x00004017 -_08090B0C: .4byte 0x00004026 -_08090B10: .4byte 0x0000403D -_08090B14: - adds r3, r2, #0 - adds r3, #0x38 - ldrb r1, [r3] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08090B2C - movs r0, #1 - strb r0, [r3] - adds r0, r2, #0 - bl sub_08016A04 -_08090B2C: - adds r0, r5, #0 - bl sub_080002A0 - ldr r6, _08090B64 @ =0x00004017 - cmp r0, r6 - beq _08090B60 - adds r4, r5, #0 - adds r4, #0x78 - ldrh r1, [r4] - adds r5, #0x38 - ldrb r2, [r5] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - adds r0, r6, #0 - bl sub_0800015E - ldr r0, _08090B68 @ =0x00004014 - ldrh r1, [r4] - subs r1, #0x80 - ldrb r2, [r5] - bl sub_0800015E -_08090B60: - pop {r4, r5, r6, pc} - .align 2, 0 -_08090B64: .4byte 0x00004017 -_08090B68: .4byte 0x00004014 - - thumb_func_start sub_08090B6C -sub_08090B6C: @ 0x08090B6C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r1, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08090B80 - b _08090CD2 -_08090B80: - lsrs r0, r0, #0x1b - lsls r2, r0, #0x18 - lsrs r3, r2, #0x18 - ldrh r0, [r1, #0x2e] - movs r4, #0xf - mov r8, r4 - ands r4, r0 - mov r8, r4 - adds r0, r1, #0 - adds r0, #0x78 - ldrh r6, [r0] - subs r0, #0x40 - ldrb r7, [r0] - movs r0, #3 - ands r0, r3 - cmp r0, #1 - beq _08090BF8 - cmp r0, #1 - blo _08090BB0 - cmp r0, #2 - beq _08090C48 - cmp r0, #3 - beq _08090C90 - b _08090CD2 -_08090BB0: - lsrs r5, r2, #0x1b - cmp r3, #0xc - bne _08090BB8 - movs r5, #2 -_08090BB8: - rsbs r4, r5, #0 - cmp r4, r5 - bgt _08090BCE -_08090BBE: - adds r1, r6, r4 - ldr r0, _08090BE4 @ =0x00004022 - adds r2, r7, #0 - bl sub_0800015E - adds r4, #1 - cmp r4, r5 - ble _08090BBE -_08090BCE: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090BEC - ldr r0, _08090BE8 @ =0x00004024 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC - b _08090CB2 - .align 2, 0 -_08090BE4: .4byte 0x00004022 -_08090BE8: .4byte 0x00004024 -_08090BEC: - ldr r0, _08090BF4 @ =0x00004022 - subs r1, r6, r4 - b _08090C6E - .align 2, 0 -_08090BF4: .4byte 0x00004022 -_08090BF8: - lsrs r5, r2, #0x1b - rsbs r4, r5, #0 - cmp r4, r5 - bgt _08090C10 -_08090C00: - adds r1, r6, r4 - ldr r0, _08090C2C @ =0x00004022 - adds r2, r7, #0 - bl sub_0800015E - adds r4, #1 - cmp r4, r5 - ble _08090C00 -_08090C10: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090C34 - ldr r0, _08090C30 @ =0x00004024 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC - cmp r4, #0 - beq _08090CD2 - b _08090C6A - .align 2, 0 -_08090C2C: .4byte 0x00004022 -_08090C30: .4byte 0x00004024 -_08090C34: - cmp r4, #0 - beq _08090CB2 - ldr r0, _08090C44 @ =0x00004022 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_0800015E - b _08090CB2 - .align 2, 0 -_08090C44: .4byte 0x00004022 -_08090C48: - lsrs r5, r2, #0x1a - rsbs r4, r5, #0 - cmp r4, r5 - bge _08090C60 -_08090C50: - adds r1, r6, r4 - ldr r0, _08090C78 @ =0x00004022 - adds r2, r7, #0 - bl sub_0800015E - adds r4, #1 - cmp r4, r5 - blt _08090C50 -_08090C60: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090C7C -_08090C6A: - ldr r0, _08090C78 @ =0x00004022 - adds r1, r6, r4 -_08090C6E: - adds r2, r7, #0 - bl sub_0800015E - b _08090CD2 - .align 2, 0 -_08090C78: .4byte 0x00004022 -_08090C7C: - ldr r0, _08090C8C @ =0x00004024 - subs r1, r6, r4 - subs r1, #1 - adds r2, r7, #0 - bl sub_08090CDC - b _08090CB2 - .align 2, 0 -_08090C8C: .4byte 0x00004024 -_08090C90: - lsrs r5, r2, #0x1a - rsbs r4, r5, #0 - cmp r4, r5 - bgt _08090CA8 -_08090C98: - adds r1, r6, r4 - ldr r0, _08090CC0 @ =0x00004022 - adds r2, r7, #0 - bl sub_0800015E - adds r4, #1 - cmp r4, r5 - ble _08090C98 -_08090CA8: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090CC8 -_08090CB2: - ldr r0, _08090CC4 @ =0x00004025 - adds r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC - b _08090CD2 - .align 2, 0 -_08090CC0: .4byte 0x00004022 -_08090CC4: .4byte 0x00004025 -_08090CC8: - ldr r0, _08090CD8 @ =0x00004024 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC -_08090CD2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08090CD8: .4byte 0x00004024 - - thumb_func_start sub_08090CDC -sub_08090CDC: @ 0x08090CDC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080001DA - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r2 - cmp r0, #0 - bne _08090D06 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0800015E - b _08090DB2 -_08090D06: - ldr r1, _08090D18 @ =0xFFFFBFDE - adds r0, r2, r1 - cmp r0, #0xb - bhi _08090DB2 - lsls r0, r0, #2 - ldr r1, _08090D1C @ =_08090D20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08090D18: .4byte 0xFFFFBFDE -_08090D1C: .4byte _08090D20 -_08090D20: @ jump table - .4byte _08090DB2 @ case 0 - .4byte _08090DB2 @ case 1 - .4byte _08090D80 @ case 2 - .4byte _08090D50 @ case 3 - .4byte _08090DB2 @ case 4 - .4byte _08090DB2 @ case 5 - .4byte _08090DB2 @ case 6 - .4byte _08090DB2 @ case 7 - .4byte _08090DB2 @ case 8 - .4byte _08090DB2 @ case 9 - .4byte _08090D98 @ case 10 - .4byte _08090D68 @ case 11 -_08090D50: - ldr r0, _08090D5C @ =0x00004024 - cmp r4, r0 - bne _08090D58 - ldr r2, _08090D60 @ =0x00004022 -_08090D58: - ldr r0, _08090D64 @ =0x0000402C - b _08090DA2 - .align 2, 0 -_08090D5C: .4byte 0x00004024 -_08090D60: .4byte 0x00004022 -_08090D64: .4byte 0x0000402C -_08090D68: - ldr r0, _08090D74 @ =0x0000402C - cmp r4, r0 - bne _08090D70 - ldr r2, _08090D78 @ =0x0000402B -_08090D70: - ldr r0, _08090D7C @ =0x00004024 - b _08090DA2 - .align 2, 0 -_08090D74: .4byte 0x0000402C -_08090D78: .4byte 0x0000402B -_08090D7C: .4byte 0x00004024 -_08090D80: - ldr r0, _08090D8C @ =0x00004025 - cmp r4, r0 - bne _08090D88 - ldr r2, _08090D90 @ =0x00004022 -_08090D88: - ldr r0, _08090D94 @ =0x0000402D - b _08090DA2 - .align 2, 0 -_08090D8C: .4byte 0x00004025 -_08090D90: .4byte 0x00004022 -_08090D94: .4byte 0x0000402D -_08090D98: - ldr r0, _08090DB4 @ =0x0000402D - cmp r4, r0 - bne _08090DA0 - ldr r2, _08090DB8 @ =0x0000402B -_08090DA0: - ldr r0, _08090DBC @ =0x00004025 -_08090DA2: - cmp r4, r0 - bne _08090DA8 - ldr r2, _08090DC0 @ =0x00004022 -_08090DA8: - adds r0, r2, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0800015E -_08090DB2: - pop {r4, r5, r6, pc} - .align 2, 0 -_08090DB4: .4byte 0x0000402D -_08090DB8: .4byte 0x0000402B -_08090DBC: .4byte 0x00004025 -_08090DC0: .4byte 0x00004022 - - thumb_func_start sub_08090DC4 -sub_08090DC4: @ 0x08090DC4 - push {r4, lr} - mov ip, r0 - ldrb r0, [r0, #0xa] - lsls r0, r0, #3 - ldr r1, _08090E44 @ =gUnk_08121EF8 - adds r3, r0, r1 - ldrh r1, [r3, #6] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08090DF4 - ldr r1, _08090E48 @ =gUnk_08122220 - movs r0, #3 - ldrsb r0, [r3, r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - mov r0, ip - ldrb r1, [r0, #0xb] - lsls r0, r1, #3 - adds r3, r3, r0 - mov r0, ip - strb r1, [r0, #0x1e] -_08090DF4: - ldrb r1, [r3] - mov r0, ip - adds r0, #0x80 - strb r1, [r0] - ldrb r0, [r3, #1] - mov r1, ip - adds r1, #0x81 - strb r0, [r1] - ldrb r0, [r3, #2] - subs r1, #0x1f - strb r0, [r1] - ldrb r0, [r3, #3] - adds r1, #1 - strb r0, [r1] - ldrb r1, [r3, #4] - lsls r1, r1, #6 - mov r0, ip - ldrb r2, [r0, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x19] - ldrb r0, [r3, #5] - mov r4, ip - adds r4, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r3, #6] - mov r0, ip - adds r0, #0x82 - strh r1, [r0] - pop {r4, pc} - .align 2, 0 -_08090E44: .4byte gUnk_08121EF8 -_08090E48: .4byte gUnk_08122220 - - thumb_func_start sub_08090E4C -sub_08090E4C: @ 0x08090E4C - push {lr} - ldr r2, _08090E60 @ =gUnk_08122244 - ldrb r1, [r0, #0xf] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_08090E60: .4byte gUnk_08122244 - - thumb_func_start sub_08090E64 -sub_08090E64: @ 0x08090E64 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x2a - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08090EA0 - ldr r0, _08090EA4 @ =0x0000FFFE - adds r2, r0, #0 - ldrb r0, [r5, #0xb] - adds r2, r2, r0 - lsls r2, r2, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldrh r0, [r4, #0x36] - subs r0, #0x10 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 -_08090EA0: - pop {r4, r5, pc} - .align 2, 0 -_08090EA4: .4byte 0x0000FFFE - - thumb_func_start sub_08090EA8 -sub_08090EA8: @ 0x08090EA8 - push {lr} - ldr r2, _08090EBC @ =gUnk_08122254 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08090EBC: .4byte gUnk_08122254 - - thumb_func_start sub_08090EC0 -sub_08090EC0: @ 0x08090EC0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - bl sub_08052660 - cmp r0, #0 - beq _08090EFE - ldrb r0, [r4, #0x1e] - adds r0, #4 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_080AE068 - movs r1, #0xc2 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_080ADF80 -_08090EFE: - pop {r4, pc} - - thumb_func_start sub_08090F00 -sub_08090F00: @ 0x08090F00 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - cmp r1, #1 - bne _08090F1C - ldr r0, [r4, #0x50] - ldrb r2, [r4, #0xf] - lsls r1, r2 - ldr r0, [r0, #0x20] - ands r0, r1 - cmp r0, #0 - bne _08090F1C - bl sub_0805E780 -_08090F1C: - ldr r6, _08090F64 @ =gUnk_03003F80 - ldr r0, [r6, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08090F62 - ldr r5, _08090F68 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - movs r3, #4 - bl sub_080041A0 - cmp r0, #0 - beq _08090F62 - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08090F62 - adds r2, r6, #0 - adds r2, #0x90 - ldr r1, _08090F6C @ =gUnk_0812225C - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r2] - ldrh r0, [r0] - ands r0, r1 - cmp r0, #0 - beq _08090F62 - ldrb r0, [r4, #0xe] - bl sub_0804B128 - bl sub_08080840 -_08090F62: - pop {r4, r5, r6, pc} - .align 2, 0 -_08090F64: .4byte gUnk_03003F80 -_08090F68: .4byte gLinkEntity -_08090F6C: .4byte gUnk_0812225C - - thumb_func_start sub_08090F70 -sub_08090F70: @ 0x08090F70 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08090FB4 - movs r5, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r5 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - bl sub_08052660 - cmp r0, #0 - beq _08090FB4 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r2] -_08090FB4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08090FB8 -sub_08090FB8: @ 0x08090FB8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08090FF6 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 -_08090FF6: - pop {r4, pc} - - thumb_func_start sub_08090FF8 -sub_08090FF8: @ 0x08090FF8 - push {lr} - ldr r2, _0809100C @ =gUnk_08122278 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809100C: .4byte gUnk_08122278 - - thumb_func_start sub_08091010 -sub_08091010: @ 0x08091010 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08091094 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r3, r4, #0 - adds r3, #0x74 - strh r1, [r3] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r5, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3] - subs r0, #0x80 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - ldr r6, _08091098 @ =0x00004022 - movs r7, #4 -_0809105C: - subs r1, r4, #2 - adds r0, r6, #0 - adds r2, r5, #0 - bl sub_0800015E - subs r1, r4, #1 - adds r0, r6, #0 - adds r2, r5, #0 - bl sub_0800015E - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0800015E - adds r1, r4, #1 - adds r0, r6, #0 - adds r2, r5, #0 - bl sub_0800015E - adds r0, r4, #0 - adds r0, #0x40 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - subs r7, #1 - cmp r7, #0 - bge _0809105C - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08091094: .4byte gUnk_03000BF0 -_08091098: .4byte 0x00004022 - - thumb_func_start nullsub_523 -nullsub_523: @ 0x0809109C - bx lr - .align 2, 0 - - thumb_func_start sub_080910A0 -sub_080910A0: @ 0x080910A0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080910C8 - ldrb r0, [r4, #0xa] - bl sub_0807CBD0 - cmp r0, #0 - beq _080910B8 - bl sub_0805E780 -_080910B8: - movs r1, #1 - strb r1, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r4, #0 - bl sub_08078828 -_080910C8: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08091100 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08091104 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #2 - bl sub_080A7C8C - bl sub_0805E780 -_08091100: - pop {r4, r5, pc} - .align 2, 0 -_08091104: .4byte gUnk_03000BF0 - - thumb_func_start sub_08091108 -sub_08091108: @ 0x08091108 - push {lr} - ldr r2, _0809111C @ =gUnk_08122280 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809111C: .4byte gUnk_08122280 - - thumb_func_start sub_08091120 -sub_08091120: @ 0x08091120 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r3, _08091194 @ =gUnk_08122288 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #2] - adds r0, r4, #0 - adds r0, #0x60 - strh r1, [r0] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xf - ands r1, r0 - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r0, [r0, #3] - strh r0, [r4, #0x12] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08004168 - pop {r4, pc} - .align 2, 0 -_08091194: .4byte gUnk_08122288 - - thumb_func_start sub_08091198 -sub_08091198: @ 0x08091198 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _080911AA - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_080911AA: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080911E8 - ldrb r1, [r4, #0xb] - cmp r1, #0xf - beq _080911CE - cmp r1, #0xf - bgt _080911C8 - cmp r1, #0 - beq _080911E4 - b _080911DA -_080911C8: - cmp r1, #0xff - bne _080911DA - b _080911E4 -_080911CE: - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - movs r2, #0x80 - bl CreateFX - b _080911E4 -_080911DA: - ldrb r2, [r4, #0xe] - adds r0, r4, #0 - movs r3, #0 - bl sub_080A2988 -_080911E4: - bl sub_0805E780 -_080911E8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080911EC -sub_080911EC: @ 0x080911EC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x72 - ldrh r0, [r0] - cmp r0, #1 - beq _0809123C - cmp r0, #1 - bgt _08091202 - cmp r0, #0 - beq _08091208 - b _08091260 -_08091202: - cmp r0, #2 - beq _08091254 - b _08091260 -_08091208: - ldr r1, _08091234 @ =gUnk_08122294 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0800445C - ldr r1, _08091238 @ =gUnk_02021F00 - adds r0, r4, #0 - adds r0, #0x74 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - strh r1, [r0] - b _08091260 - .align 2, 0 -_08091234: .4byte gUnk_08122294 -_08091238: .4byte gUnk_02021F00 -_0809123C: - ldr r0, _08091250 @ =gUnk_081222A0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _08091260 - .align 2, 0 -_08091250: .4byte gUnk_081222A0 -_08091254: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08091260 - adds r0, r4, #0 - bl sub_08091504 -_08091260: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08091264 -sub_08091264: @ 0x08091264 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r0, _080912C4 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x45 - bhi _0809132C - ldrb r1, [r6, #0xa] - ldrb r2, [r6, #0xb] - movs r0, #0x54 - bl CreateObject - adds r7, r0, #0 - ldrb r1, [r6, #0xa] - ldrb r2, [r6, #0xb] - movs r0, #0x54 - bl CreateObject - adds r1, r0, #0 - str r6, [r7, #0x50] - str r6, [r1, #0x50] - adds r0, r7, #0 - adds r0, #0x72 - movs r5, #1 - movs r4, #1 - strh r4, [r0] - adds r2, r1, #0 - adds r2, #0x72 - movs r0, #2 - strh r0, [r2] - adds r0, r6, #0 - bl sub_0806FA24 - movs r2, #1 - strb r5, [r6, #0xc] - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r6, #0x18] - movs r0, #0x60 - strh r0, [r6, #0x24] - ldrb r0, [r6, #0xb] - ands r4, r0 - cmp r4, #0 - beq _080912CC - ldr r0, _080912C8 @ =gUnk_080FD278 - b _080912CE - .align 2, 0 -_080912C4: .4byte gUnk_03003DBC -_080912C8: .4byte gUnk_080FD278 -_080912CC: - ldr r0, _08091330 @ =gUnk_080FD270 -_080912CE: - str r0, [r6, #0x48] - movs r0, #1 - strb r0, [r6, #0x16] - ldr r2, _08091334 @ =gUnk_081222A8 - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r6, #0x2e] - adds r0, r0, r1 - strh r0, [r6, #0x2e] - adds r1, r6, #0 - adds r1, #0x80 - strh r0, [r1] - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - strh r0, [r6, #0x32] - adds r1, r6, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_0806FA24 - adds r0, r6, #0 - adds r0, #0x7e - ldrb r0, [r0] - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldrb r1, [r6, #0xe] - adds r0, r6, #0 - adds r0, #0x74 - strb r1, [r0] - ldrb r1, [r6, #0xb] - adds r0, r6, #0 - bl sub_08004260 -_0809132C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08091330: .4byte gUnk_080FD270 -_08091334: .4byte gUnk_081222A8 - - thumb_func_start sub_08091338 -sub_08091338: @ 0x08091338 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078930 - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - beq _0809135C - ldrb r0, [r4, #0xb] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08091660 -_0809135C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08091360 -sub_08091360: @ 0x08091360 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FBB4 - ldr r1, _0809137C @ =gUnk_081222B0 - ldrb r0, [r4, #0xd] - subs r0, #5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_0809137C: .4byte gUnk_081222B0 - - thumb_func_start sub_08091380 -sub_08091380: @ 0x08091380 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r7, _0809142C @ =gLinkEntity - adds r0, #0x75 - ldrb r0, [r0] - cmp r0, #0 - bne _080913E0 - ldrb r0, [r4, #0xb] - lsls r2, r0, #1 - ldrb r0, [r7, #0x14] - cmp r2, r0 - bne _080913D4 - ldr r1, _08091430 @ =gUnk_081222B8 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r4, #0x2e] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r7, #0 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080002D4 - subs r0, #0xf - cmp r0, #0x10 - bls _080913D4 - strh r6, [r7, #0x2e] - strh r5, [r7, #0x32] -_080913D4: - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #1 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xf] -_080913E0: - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - ldrb r3, [r4, #0xb] - cmp r0, r3 - bne _0809142A - ldr r1, _08091434 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x1a - bne _0809142A - ldrb r1, [r1, #5] - movs r5, #2 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0809142A - ldr r0, _0809142C @ =gLinkEntity - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0809142A - adds r0, r4, #0 - bl sub_0809153C - adds r1, r4, #0 - adds r1, #0x75 - ldrb r0, [r1] - cmp r0, #1 - bne _0809142A - strb r5, [r1] - movs r0, #0xcf - lsls r0, r0, #1 - bl sub_08004488 -_0809142A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809142C: .4byte gLinkEntity -_08091430: .4byte gUnk_081222B8 -_08091434: .4byte gUnk_03003F80 - - thumb_func_start sub_08091438 -sub_08091438: @ 0x08091438 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r0, #0x75 - strb r2, [r0] - bx lr - - thumb_func_start sub_08091444 -sub_08091444: @ 0x08091444 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0xb] - adds r1, #8 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08016A04 - pop {r4, pc} - - thumb_func_start sub_08091470 -sub_08091470: @ 0x08091470 - push {r4, lr} - adds r2, r0, #0 - ldr r4, [r2, #0x50] - adds r3, r4, #0 - adds r3, #0x70 - ldrh r0, [r3] - cmp r0, #7 - bhi _0809148C - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _08091502 -_0809148C: - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrh r0, [r3] - adds r1, r0, #0 - subs r1, #8 - movs r0, #7 - ands r1, r0 - ldrb r3, [r2, #0xb] - cmp r3, #1 - beq _080914C8 - cmp r3, #1 - bgt _080914B4 - cmp r3, #0 - beq _080914BE - b _080914E2 -_080914B4: - cmp r3, #2 - beq _080914D0 - cmp r3, #3 - beq _080914DA - b _080914E2 -_080914BE: - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - subs r0, #0x11 - strh r0, [r2, #0x32] - b _080914E2 -_080914C8: - ldrh r0, [r4, #0x2e] - adds r0, r1, r0 - adds r0, #0x11 - b _080914E0 -_080914D0: - ldrh r0, [r4, #0x32] - adds r0, r1, r0 - adds r0, #0x11 - strh r0, [r2, #0x32] - b _080914E2 -_080914DA: - ldrh r0, [r4, #0x2e] - subs r0, r0, r1 - subs r0, #0x11 -_080914E0: - strh r0, [r2, #0x2e] -_080914E2: - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - subs r0, #8 - lsls r0, r0, #0xc - lsrs r1, r0, #0x10 - ldrb r0, [r2, #0x14] - cmp r1, r0 - beq _08091502 - strb r1, [r2, #0x14] - lsls r1, r1, #2 - adds r1, r1, r3 - adds r1, #8 - adds r0, r2, #0 - bl sub_08004260 -_08091502: - pop {r4, pc} - - thumb_func_start sub_08091504 -sub_08091504: @ 0x08091504 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0xb] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08016A04 - pop {r4, pc} - - thumb_func_start sub_0809153C -sub_0809153C: @ 0x0809153C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r5, r0, #0 - ldr r6, _080915A8 @ =gLinkEntity - ldr r1, _080915AC @ =gUnk_081222C0 - ldrb r0, [r5, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - mov r8, r0 - adds r0, r5, #0 - adds r0, #0x76 - adds r1, r5, #0 - adds r1, #0x70 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bls _08091656 - ldrh r4, [r6, #0x2e] - ldrh r0, [r6, #0x32] - mov sb, r0 - movs r2, #0x24 - ldrsh r1, [r5, r2] - adds r0, r6, #0 - mov r2, r8 - str r3, [sp] - bl sub_080044AE - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - ldrh r2, [r6, #0x2e] - movs r7, #0x2e - ldrsh r0, [r6, r7] - ldr r3, [sp] - cmp r4, r0 - bne _08091596 - mov r1, sb - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r7, #0x32 - ldrsh r1, [r6, r7] - cmp r0, r1 - beq _08091656 -_08091596: - ldrb r0, [r5, #0xb] - cmp r0, #1 - beq _080915CA - cmp r0, #1 - bgt _080915B0 - cmp r0, #0 - beq _080915BA - b _080915E0 - .align 2, 0 -_080915A8: .4byte gLinkEntity -_080915AC: .4byte gUnk_081222C0 -_080915B0: - cmp r0, #2 - beq _080915CE - cmp r0, #3 - beq _080915DA - b _080915E0 -_080915BA: - ldrh r1, [r6, #0x32] - mov r2, sb - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - subs r1, r1, r0 - lsls r1, r1, #0x10 - lsrs r3, r1, #0x10 - b _080915E0 -_080915CA: - subs r0, r4, r2 - b _080915DC -_080915CE: - ldrh r1, [r6, #0x32] - mov r7, sb - lsls r0, r7, #0x10 - asrs r0, r0, #0x10 - subs r0, r0, r1 - b _080915DC -_080915DA: - subs r0, r2, r4 -_080915DC: - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 -_080915E0: - lsls r2, r3, #0x18 - ldr r3, _0809163C @ =gUnk_080C9160 - mov r1, r8 - lsls r0, r1, #4 - adds r0, r0, r3 - movs r7, #0 - ldrsh r0, [r0, r7] - asrs r2, r2, #0x10 - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x2c] - adds r0, r0, r1 - str r0, [r5, #0x2c] - mov r1, r8 - lsls r0, r1, #4 - adds r0, #0x80 - adds r0, r0, r3 - movs r7, #0 - ldrsh r0, [r0, r7] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x30] - subs r0, r0, r1 - str r0, [r5, #0x30] - adds r0, r5, #0 - bl sub_08091660 - adds r0, r5, #0 - adds r0, #0x76 - adds r1, r5, #0 - adds r1, #0x70 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - bhi _08091640 - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _08091656 - .align 2, 0 -_0809163C: .4byte gUnk_080C9160 -_08091640: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091656 - movs r0, #0x10 - strb r0, [r5, #0xf] - adds r0, #0xff - bl sub_08004488 -_08091656: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08091660 -sub_08091660: @ 0x08091660 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _08091686 - cmp r0, #1 - bgt _08091674 - cmp r0, #0 - beq _0809167E - b _080916AA -_08091674: - cmp r0, #2 - beq _08091690 - cmp r0, #3 - beq _0809169A - b _080916AA -_0809167E: - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r4, #0x32] - b _080916A0 -_08091686: - adds r0, r4, #0 - adds r0, #0x80 - ldrh r0, [r0] - ldrh r1, [r4, #0x2e] - b _080916A2 -_08091690: - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r1, [r4, #0x32] - b _080916A2 -_0809169A: - adds r1, r4, #0 - adds r1, #0x80 - ldrh r0, [r4, #0x2e] -_080916A0: - ldrh r1, [r1] -_080916A2: - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] -_080916AA: - adds r5, r4, #0 - adds r5, #0x86 - ldrh r0, [r5] - bl sub_0807CBE4 - cmp r0, #0 - beq _080916C8 - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r0, #0 - bne _080916C8 - ldrh r0, [r5] - bl sub_0807CD48 -_080916C8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080916CC -sub_080916CC: @ 0x080916CC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080916E8 @ =gUnk_081223A8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r4, #0x41 - movs r0, #0 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_080916E8: .4byte gUnk_081223A8 - - thumb_func_start sub_080916EC -sub_080916EC: @ 0x080916EC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xe] - lsls r0, r0, #3 - ldr r1, _080917C8 @ =gUnk_030010EC - adds r7, r0, r1 - adds r0, r6, #0 - adds r0, #0x84 - str r7, [r0] - ldr r0, _080917CC @ =gUnk_03000BF0 - ldrb r0, [r0, #5] - ldrb r1, [r7, #4] - cmp r0, r1 - bne _08091716 - ldr r0, _080917D0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - beq _0809171A -_08091716: - bl sub_0805E780 -_0809171A: - ldr r4, _080917CC @ =gUnk_03000BF0 - ldrh r1, [r7] - movs r5, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - ldrh r2, [r4, #6] - adds r0, r0, r2 - adds r0, #8 - strh r0, [r6, #0x2e] - ldrh r1, [r7] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r1 - lsrs r0, r0, #2 - ldrh r3, [r4, #8] - adds r0, r0, r3 - adds r0, #8 - strh r0, [r6, #0x32] - ldrb r0, [r7, #5] - strb r0, [r6, #0x14] - ldrb r0, [r7, #6] - strb r0, [r6, #0xb] - movs r2, #1 - strb r2, [r6, #0xc] - ldr r0, _080917D4 @ =gUnk_080FD310 - str r0, [r6, #0x48] - ldrb r1, [r6, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r6, #0x10] - adds r0, r6, #0 - adds r0, #0x3f - strb r2, [r0] - adds r1, r6, #0 - adds r1, #0x3c - movs r0, #0x47 - strb r0, [r1] - adds r1, #4 - movs r0, #0x44 - strb r0, [r1] - subs r1, #5 - movs r0, #0x80 - strb r0, [r1] - ldrb r0, [r6, #0x14] - lsls r0, r0, #3 - strb r0, [r6, #0x15] - movs r0, #0xe0 - lsls r0, r0, #3 - strh r0, [r6, #0x24] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r6, #0x14] - adds r1, #4 - ldrb r0, [r6, #0xb] - adds r1, r1, r0 - adds r0, r6, #0 - bl sub_080042AC - ldr r0, _080917D8 @ =0x00004022 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r4, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080917C8: .4byte gUnk_030010EC -_080917CC: .4byte gUnk_03000BF0 -_080917D0: .4byte gUnk_03003F80 -_080917D4: .4byte gUnk_080FD310 -_080917D8: .4byte 0x00004022 - - thumb_func_start sub_080917DC -sub_080917DC: @ 0x080917DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1d - bne _08091810 - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #7 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - adds r1, #4 - ldrb r0, [r4, #0xb] - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_080042AC - ldr r0, _0809180C @ =0x0000013B - bl sub_080A3268 - b _080918A0 - .align 2, 0 -_0809180C: .4byte 0x0000013B -_08091810: - adds r0, r4, #0 - bl sub_0800445C - cmp r0, #0 - beq _0809184A - ldr r2, _08091840 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08091844 @ =0x00040080 - ands r0, r1 - cmp r0, #0 - bne _08091848 - ldrb r0, [r2, #0x1c] - cmp r0, #0 - bne _08091848 - ldrb r0, [r2, #5] - cmp r0, #0 - bne _08091848 - ldrb r0, [r2, #2] - cmp r0, #0 - bne _08091848 - ldrb r0, [r4, #0xe] - adds r0, #1 - b _0809184A - .align 2, 0 -_08091840: .4byte gUnk_03003F80 -_08091844: .4byte 0x00040080 -_08091848: - movs r0, #0 -_0809184A: - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0809189C - ldrb r0, [r4, #0xe] - cmp r0, #8 - bls _080918A0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r2, _08091894 @ =gUnk_03003F80 - movs r0, #0x81 - strb r0, [r2, #2] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x13 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _08091898 @ =gLinkEntity - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r1, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #0x24] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - bl sub_08077B2C - bl sub_0807A108 - movs r0, #0x7c - bl sub_080A3268 - b _080918A0 - .align 2, 0 -_08091894: .4byte gUnk_03003F80 -_08091898: .4byte gLinkEntity -_0809189C: - movs r0, #0 - strb r0, [r4, #0xe] -_080918A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080918A4 -sub_080918A4: @ 0x080918A4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08091964 @ =gLinkEntity - adds r1, r5, #0 - movs r2, #2 - movs r3, #2 - bl sub_080041A0 - cmp r0, #0 - beq _08091974 - ldrh r0, [r4, #0x2e] - strh r0, [r5, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r5, #0x32] - movs r0, #0x36 - ldrsh r1, [r5, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0809197E - ldr r0, [r5, #0x20] - cmp r0, #0 - bge _080919A4 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - strb r0, [r5, #0x14] - ldr r2, _08091968 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x13 - eors r0, r1 - movs r1, #0x80 - lsls r1, r1, #5 - orrs r0, r1 - str r0, [r2, #0x30] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x10] - movs r2, #0x20 - orrs r0, r2 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x97 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #1 - subs r1, #3 - orrs r0, r2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x3b - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x3b - strb r0, [r2] - adds r1, #4 - movs r0, #0x18 - strb r0, [r1] - adds r1, #4 - movs r0, #8 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0801766C - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0809196C @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - ldr r0, _08091970 @ =0x00000137 - bl sub_080A3268 - b _0809197E - .align 2, 0 -_08091964: .4byte gLinkEntity -_08091968: .4byte gUnk_03003F80 -_0809196C: .4byte gUnk_03000BF0 -_08091970: .4byte 0x00000137 -_08091974: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] -_0809197E: - ldr r3, _080919A8 @ =gLinkEntity - ldr r0, [r3, #0x20] - cmp r0, #0 - bge _080919A4 - adds r0, r4, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080919A4: - pop {r4, r5, pc} - .align 2, 0 -_080919A8: .4byte gLinkEntity - - thumb_func_start sub_080919AC -sub_080919AC: @ 0x080919AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r1, _080919D4 @ =gUnk_03000BF0 - movs r0, #0 - mov r8, r0 - movs r0, #7 - strb r0, [r1, #0xe] - ldr r0, _080919D8 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - bne _080919DC - movs r0, #1 - strb r0, [r5, #0xc] - b _08091C04 - .align 2, 0 -_080919D4: .4byte gUnk_03000BF0 -_080919D8: .4byte gUnk_03003F80 -_080919DC: - ldr r4, _08091A14 @ =gLinkEntity - adds r6, r4, #0 - adds r6, #0x5a - ldrb r1, [r6] - movs r7, #0xf - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - bne _08091A22 - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r1, [r6] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x10 - bne _08091A18 - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #1 - strb r0, [r1] - b _08091C04 - .align 2, 0 -_08091A14: .4byte gLinkEntity -_08091A18: - adds r0, r5, #0 - adds r0, #0x63 - mov r1, r8 - strb r1, [r0] - b _08091C04 -_08091A22: - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - mov r0, r8 - strh r0, [r4, #0x24] - adds r0, r5, #0 - bl sub_0806F69C - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r5, #0 - bl sub_08091DDC - cmp r0, #0 - beq _08091A68 - b _08091C04 -_08091A68: - ldr r0, _08091AD8 @ =gUnk_030010A0 - ldr r0, [r0] - ands r0, r7 - cmp r0, #0 - bne _08091A7A - movs r0, #0x9c - lsls r0, r0, #1 - bl sub_080A3268 -_08091A7A: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08091A92 - movs r0, #0x7b - bl sub_080A3268 - movs r0, #0x3c - strb r0, [r5, #0xf] -_08091A92: - ldr r2, _08091ADC @ =gUnk_081223C8 - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r0, r5, #0 - bl sub_080002B4 - adds r4, r0, #0 - ldr r1, _08091AE0 @ =gUnk_081223D8 - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_08007DD6 - cmp r0, #0 - bne _08091AE4 - ldrb r0, [r5, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r5, #0x15] - ldrb r0, [r5, #0x14] - movs r1, #2 - eors r0, r1 - strb r0, [r5, #0x14] - b _08091BD8 - .align 2, 0 -_08091AD8: .4byte gUnk_030010A0 -_08091ADC: .4byte gUnk_081223C8 -_08091AE0: .4byte gUnk_081223D8 -_08091AE4: - adds r0, r4, #0 - subs r0, #0x64 - cmp r0, #0xb - bhi _08091BD8 - lsls r0, r0, #2 - ldr r1, _08091AF8 @ =_08091AFC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08091AF8: .4byte _08091AFC -_08091AFC: @ jump table - .4byte _08091B2C @ case 0 - .4byte _08091BD8 @ case 1 - .4byte _08091BD8 @ case 2 - .4byte _08091BB8 @ case 3 - .4byte _08091BB8 @ case 4 - .4byte _08091BB8 @ case 5 - .4byte _08091BB8 @ case 6 - .4byte _08091BD8 @ case 7 - .4byte _08091BB8 @ case 8 - .4byte _08091BB8 @ case 9 - .4byte _08091BB8 @ case 10 - .4byte _08091BB8 @ case 11 -_08091B2C: - ldrb r1, [r5, #0x10] - movs r0, #0xdf - ands r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #1 - strb r0, [r1] - subs r1, #3 - movs r0, #0x47 - strb r0, [r1] - adds r1, #4 - movs r0, #0x44 - strb r0, [r1] - subs r1, #5 - movs r4, #0x80 - movs r0, #0x80 - strb r0, [r1] - movs r0, #6 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_08017744 - ldr r2, _08091BAC @ =gUnk_03003F80 - movs r0, #0x41 - strb r0, [r2, #2] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #5 - eors r0, r1 - movs r1, #0x80 - lsls r1, r1, #0x13 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _08091BB0 @ =gLinkEntity - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r1, #0x20] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #0x24] - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - strb r0, [r1, #0x14] - ldrb r0, [r5, #0x15] - strb r0, [r1, #0x15] - ldrb r0, [r1, #0x10] - orrs r4, r0 - strb r4, [r1, #0x10] - adds r0, r5, #0 - bl sub_08004168 - ldrb r1, [r5, #0x14] - adds r1, #0xc - adds r0, r5, #0 - bl sub_080042AC - movs r0, #0x78 - bl sub_080A3268 - ldr r0, _08091BB4 @ =0x00000139 - bl sub_080A3268 - b _08091C04 - .align 2, 0 -_08091BAC: .4byte gUnk_03003F80 -_08091BB0: .4byte gLinkEntity -_08091BB4: .4byte 0x00000139 -_08091BB8: - adds r0, r5, #0 - bl sub_080002B8 - cmp r4, r0 - bne _08091BD8 - adds r0, r5, #0 - bl sub_08091C0C - ldr r1, _08091BD4 @ =gLinkEntity - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - strb r0, [r1, #0x14] - b _08091C04 - .align 2, 0 -_08091BD4: .4byte gLinkEntity -_08091BD8: - ldr r2, _08091BF8 @ =gLinkEntity - ldrb r0, [r5, #0x14] - lsls r1, r0, #1 - strb r1, [r2, #0x14] - adds r1, r5, #0 - adds r1, #0x58 - ldrb r1, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _08091BFC - adds r0, r5, #0 - bl sub_080042B8 - b _08091C04 - .align 2, 0 -_08091BF8: .4byte gLinkEntity -_08091BFC: - ldrb r1, [r5, #0x14] - adds r0, r5, #0 - bl sub_080042AC -_08091C04: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08091C0C -sub_08091C0C: @ 0x08091C0C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004168 - ldr r1, _08091C30 @ =gLinkEntity - adds r0, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0x68 - beq _08091C46 - cmp r0, #0x68 - bhi _08091C34 - cmp r0, #0x67 - beq _08091C3E - b _08091C80 - .align 2, 0 -_08091C30: .4byte gLinkEntity -_08091C34: - cmp r0, #0x69 - beq _08091C4E - cmp r0, #0x6a - beq _08091C66 - b _08091C80 -_08091C3E: - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - beq _08091C54 - b _08091C76 -_08091C46: - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _08091C6C - b _08091C5C -_08091C4E: - ldrb r0, [r4, #0x15] - cmp r0, #8 - bne _08091C5C -_08091C54: - movs r0, #0 - strb r0, [r4, #0x15] - strb r0, [r4, #0x14] - b _08091C86 -_08091C5C: - movs r0, #0x18 - strb r0, [r4, #0x15] - movs r0, #3 - strb r0, [r4, #0x14] - b _08091C86 -_08091C66: - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - bne _08091C76 -_08091C6C: - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #2 - strb r0, [r4, #0x14] - b _08091C86 -_08091C76: - movs r0, #8 - strb r0, [r4, #0x15] - movs r0, #1 - strb r0, [r4, #0x14] - b _08091C86 -_08091C80: - movs r0, #3 - strb r0, [r4, #0xc] - b _08091C92 -_08091C86: - movs r0, #3 - strb r0, [r4, #0xc] - ldr r1, _08091C94 @ =gLinkEntity - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - strb r0, [r1, #0x14] -_08091C92: - pop {r4, pc} - .align 2, 0 -_08091C94: .4byte gLinkEntity - - thumb_func_start sub_08091C98 -sub_08091C98: @ 0x08091C98 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldr r5, _08091CC0 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - ldr r1, _08091CC4 @ =gUnk_03000BF0 - ldrh r0, [r1] - cmp r0, #0 - bne _08091CBE - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xe0 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - str r5, [r1, #0x30] -_08091CBE: - pop {r4, r5, pc} - .align 2, 0 -_08091CC0: .4byte gLinkEntity -_08091CC4: .4byte gUnk_03000BF0 - - thumb_func_start sub_08091CC8 -sub_08091CC8: @ 0x08091CC8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r2, _08091D58 @ =gUnk_03003F80 - ldrb r0, [r2, #2] - cmp r0, #0 - bne _08091D64 - movs r0, #1 - strb r0, [r6, #0xc] - ldrb r0, [r6, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r6, #0x15] - ldrb r0, [r6, #0x14] - movs r1, #2 - eors r0, r1 - strb r0, [r6, #0x14] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x13 - eors r0, r1 - str r0, [r2, #0x30] - adds r0, r6, #0 - adds r0, #0x84 - ldr r4, [r0] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r5, _08091D5C @ =gUnk_03000BF0 - ldrh r0, [r5, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r2, #0x32 - ldrsh r0, [r6, r2] - ldrh r2, [r5, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] - ldrb r0, [r5, #5] - strb r0, [r4, #4] - ldrb r0, [r6, #0x14] - strb r0, [r4, #5] - ldrb r1, [r6, #0x14] - adds r1, #0x10 - adds r0, r6, #0 - bl sub_080042AC - ldr r0, _08091D60 @ =0x00004022 - movs r3, #0x2e - ldrsh r1, [r6, r3] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _08091D8A - .align 2, 0 -_08091D58: .4byte gUnk_03003F80 -_08091D5C: .4byte gUnk_03000BF0 -_08091D60: .4byte 0x00004022 -_08091D64: - adds r0, r6, #0 - bl sub_080042B8 - ldr r3, _08091D8C @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08091D8A: - pop {r4, r5, r6, pc} - .align 2, 0 -_08091D8C: .4byte gLinkEntity - - thumb_func_start sub_08091D90 -sub_08091D90: @ 0x08091D90 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08091DA0 - adds r0, r4, #0 - bl sub_080042B8 -_08091DA0: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08091DD8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08091DD8 - ldrb r1, [r4, #0xb] - movs r0, #4 - eors r1, r0 - strb r1, [r4, #0xb] - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0, #6] - movs r0, #0x9e - lsls r0, r0, #1 - bl sub_080A3268 -_08091DD8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08091DDC -sub_08091DDC: @ 0x08091DDC - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08091E30 @ =gUnk_081223D0 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r0, r4, #0 - bl sub_080002CC - cmp r0, #0xff - bne _08091E5C - ldr r0, _08091E34 @ =gLinkEntity - ldrb r1, [r4, #0x14] - bl sub_0807BD14 - cmp r0, #0 - beq _08091E5C - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _08091E40 - cmp r0, #8 - bgt _08091E38 - cmp r0, #0 - beq _08091E40 - b _08091E44 - .align 2, 0 -_08091E30: .4byte gUnk_081223D0 -_08091E34: .4byte gLinkEntity -_08091E38: - cmp r0, #0x10 - beq _08091E40 - cmp r0, #0x18 - bne _08091E44 -_08091E40: - movs r0, #0xa0 - strh r0, [r4, #0x24] -_08091E44: - ldr r0, _08091E54 @ =gLinkEntity - ldrb r1, [r4, #0x15] - strb r1, [r0, #0x15] - ldr r0, _08091E58 @ =gUnk_03000BF0 - str r4, [r0, #0x30] - movs r0, #1 - b _08091E5E - .align 2, 0 -_08091E54: .4byte gLinkEntity -_08091E58: .4byte gUnk_03000BF0 -_08091E5C: - movs r0, #0 -_08091E5E: - pop {r4, pc} - - thumb_func_start sub_08091E60 -sub_08091E60: @ 0x08091E60 - push {lr} - ldr r2, _08091E74 @ =gUnk_08122598 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08091E74: .4byte gUnk_08122598 - - thumb_func_start sub_08091E78 -sub_08091E78: @ 0x08091E78 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08091E96 - movs r0, #0x2d - strb r0, [r4, #0xe] -_08091E96: - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl sub_08004260 - ldr r1, _08091EBC @ =gUnk_08122590 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_08091EBC: .4byte gUnk_08122590 - - thumb_func_start sub_08091EC0 -sub_08091EC0: @ 0x08091EC0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _08091ED6 - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - strh r0, [r4, #0x32] - ldrh r0, [r1, #0x36] - strh r0, [r4, #0x36] -_08091ED6: - ldrb r0, [r4, #0xb] - cmp r0, #2 - beq _08091EEC - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08091EEC - bl sub_0805E780 -_08091EEC: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08091EF4 -sub_08091EF4: @ 0x08091EF4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #1 - bhi _08091F0E - ldr r0, _08091F10 @ =gUnk_08122604 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_08091F0E: - pop {pc} - .align 2, 0 -_08091F10: .4byte gUnk_08122604 - - thumb_func_start sub_08091F14 -sub_08091F14: @ 0x08091F14 - push {r4, r5, lr} - adds r4, r0, #0 - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x58 - strb r2, [r0] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08091FEC @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x70 - strh r1, [r5] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08091FEA - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xd1 - lsls r0, r0, #1 - ldrh r1, [r5] - subs r1, #0x41 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0807B314 - ldr r0, _08091FF0 @ =0x000001A3 - ldrh r1, [r5] - subs r1, #0x40 - ldrb r2, [r4] - bl sub_0807B314 - movs r0, #0xd2 - lsls r0, r0, #1 - ldrh r1, [r5] - subs r1, #0x3f - ldrb r2, [r4] - bl sub_0807B314 - ldr r0, _08091FF4 @ =0x000001A5 - ldrh r1, [r5] - subs r1, #1 - ldrb r2, [r4] - bl sub_0807B314 - movs r0, #0xd3 - lsls r0, r0, #1 - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0807B314 - ldr r0, _08091FF8 @ =0x000001A7 - ldrh r1, [r5] - adds r1, #1 - ldrb r2, [r4] - bl sub_0807B314 - movs r0, #0xd4 - lsls r0, r0, #1 - ldrh r1, [r5] - adds r1, #0x3f - ldrb r2, [r4] - bl sub_0807B314 - ldr r0, _08091FFC @ =0x000001A9 - ldrh r1, [r5] - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0807B314 - movs r0, #0xd5 - lsls r0, r0, #1 - ldrh r1, [r5] - adds r1, #0x41 - ldrb r2, [r4] - bl sub_0807B314 -_08091FEA: - pop {r4, r5, pc} - .align 2, 0 -_08091FEC: .4byte gUnk_03000BF0 -_08091FF0: .4byte 0x000001A3 -_08091FF4: .4byte 0x000001A5 -_08091FF8: .4byte 0x000001A7 -_08091FFC: .4byte 0x000001A9 - - thumb_func_start sub_08092000 -sub_08092000: @ 0x08092000 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - movs r1, #0xd3 - lsls r1, r1, #1 - cmp r0, r1 - bne _08092034 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_08092034: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08092038 -sub_08092038: @ 0x08092038 - push {lr} - ldr r2, _0809204C @ =gUnk_0812260C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809204C: .4byte gUnk_0812260C - - thumb_func_start sub_08092050 -sub_08092050: @ 0x08092050 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809207A - movs r0, #3 - strb r0, [r6, #0xc] - ldrh r0, [r6, #0x2e] - adds r0, #2 - strh r0, [r6, #0x2e] - adds r0, r6, #0 - bl sub_0809223C - adds r0, r6, #0 - movs r1, #1 - bl sub_080042AC - b _08092148 -_0809207A: - ldrb r0, [r6, #0xd] - cmp r0, #0 - bne _08092138 - movs r1, #1 - strb r1, [r6, #0xd] - adds r0, r6, #0 - adds r0, #0x38 - strb r1, [r0] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r6, #0x2e] - adds r0, #2 - strh r0, [r6, #0x2e] - adds r0, r6, #0 - bl sub_08016A04 - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r3, _08092130 @ =gUnk_03000BF0 - ldrh r0, [r3, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r3, #8] - adds r1, #8 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r2, r0 - adds r5, r6, #0 - adds r5, #0x70 - strh r2, [r5] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldrh r0, [r3, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - ands r2, r4 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r3, #8] - subs r1, #8 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r2, r0 - adds r7, r6, #0 - adds r7, #0x72 - strh r2, [r7] - ldrh r0, [r5] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r0, [r7] - movs r1, #1 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r4, _08092134 @ =0x00004022 - ldrh r1, [r5] - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldrh r1, [r7] - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r0, r6, #0 - movs r1, #0 - bl sub_080042AC - b _08092148 - .align 2, 0 -_08092130: .4byte gUnk_03000BF0 -_08092134: .4byte 0x00004022 -_08092138: - movs r0, #1 - strb r0, [r6, #0xc] - adds r0, r6, #0 - bl sub_080921BC - adds r0, r6, #0 - bl sub_080921F0 -_08092148: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809214C -sub_0809214C: @ 0x0809214C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08092160 - movs r0, #2 - strb r0, [r4, #0xc] -_08092160: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08092164 -sub_08092164: @ 0x08092164 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080921B6 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - movs r2, #1 - bl sub_0800015E - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x72 - ldrh r1, [r1] - movs r2, #1 - bl sub_0800015E - adds r0, r4, #0 - bl sub_08092214 - adds r0, r4, #0 - bl sub_0809223C - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_080921B6: - pop {r4, pc} - - thumb_func_start nullsub_118 -nullsub_118: @ 0x080921B8 - bx lr - .align 2, 0 - - thumb_func_start sub_080921BC -sub_080921BC: @ 0x080921BC - push {lr} - adds r2, r0, #0 - ldr r1, _080921DC @ =gUnk_030011E8 - ldr r0, _080921E0 @ =0x000029F8 - adds r3, r1, r0 -_080921C6: - ldrb r0, [r1, #8] - cmp r0, #6 - bne _080921E4 - ldrb r0, [r1, #9] - cmp r0, #0x6f - bne _080921E4 - ldrb r0, [r1, #0xa] - cmp r0, #2 - bne _080921E4 - str r1, [r2, #0x54] - b _080921EE - .align 2, 0 -_080921DC: .4byte gUnk_030011E8 -_080921E0: .4byte 0x000029F8 -_080921E4: - adds r1, #0x88 - cmp r1, r3 - blo _080921C6 - movs r0, #0 - str r0, [r2, #0x54] -_080921EE: - pop {pc} - - thumb_func_start sub_080921F0 -sub_080921F0: @ 0x080921F0 - push {lr} - ldr r2, [r0, #0x54] - cmp r2, #0 - beq _08092212 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - adds r0, r2, #0 - bl sub_08016A04 -_08092212: - pop {pc} - - thumb_func_start sub_08092214 -sub_08092214: @ 0x08092214 - push {lr} - ldr r2, [r0, #0x54] - cmp r2, #0 - beq _0809223A - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0xa - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - adds r0, r2, #0 - bl sub_08016A04 -_0809223A: - pop {pc} - - thumb_func_start sub_0809223C -sub_0809223C: @ 0x0809223C - push {lr} - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #2 - strb r1, [r2] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - subs r1, #0xa - ands r1, r2 - movs r2, #3 - orrs r1, r2 - strb r1, [r3] - bl sub_08016A04 - pop {pc} - - thumb_func_start sub_0809225C -sub_0809225C: @ 0x0809225C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0809226E - adds r0, r1, #0 - bl sub_08092278 - b _08092274 -_0809226E: - adds r0, r1, #0 - bl sub_08092344 -_08092274: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08092278 -sub_08092278: @ 0x08092278 - push {lr} - ldr r2, _0809228C @ =gUnk_08122644 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809228C: .4byte gUnk_08122644 - - thumb_func_start sub_08092290 -sub_08092290: @ 0x08092290 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - bl sub_080925A4 - pop {pc} - - thumb_func_start sub_0809229C -sub_0809229C: @ 0x0809229C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x70 - ldrb r0, [r0] - cmp r0, #0 - beq _080922E0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xb0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08016A04 - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x14] - adds r0, r4, #0 - bl sub_080042AC - movs r0, #0xbf - lsls r0, r0, #1 - bl sub_08004488 - ldr r0, [r4, #0x54] - movs r1, #3 - bl sub_08004260 -_080922E0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080922E4 -sub_080922E4: @ 0x080922E4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x90 - lsls r1, r1, #6 - bl sub_08003FC4 - adds r2, r0, #0 - cmp r2, #0 - bne _08092322 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x70 - strb r2, [r0] - ldr r0, [r4, #0x54] - adds r0, #0x63 - strb r2, [r0] - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x14] - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0x36 - movs r2, #0 - bl CreateFX - b _0809233E -_08092322: - ldr r1, [r4, #0x20] - ldr r0, _08092340 @ =0x00017FFF - cmp r1, r0 - bgt _0809233E - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0809233E - adds r0, r4, #0 - bl sub_080042B8 -_0809233E: - pop {r4, pc} - .align 2, 0 -_08092340: .4byte 0x00017FFF - - thumb_func_start sub_08092344 -sub_08092344: @ 0x08092344 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - strb r0, [r4, #0xf] - ldr r1, _08092364 @ =gUnk_08122650 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080926E4 - pop {r4, pc} - .align 2, 0 -_08092364: .4byte gUnk_08122650 - - thumb_func_start sub_08092368 -sub_08092368: @ 0x08092368 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xb] - strb r0, [r2, #0x14] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x40 - movs r0, #0x48 - strb r0, [r1] - subs r1, #4 - movs r0, #7 - strb r0, [r1] - subs r1, #1 - movs r0, #0x81 - strb r0, [r1] - ldr r0, _0809239C @ =gUnk_080FD280 - str r0, [r2, #0x48] - adds r0, r2, #0 - bl sub_0809264C - pop {pc} - .align 2, 0 -_0809239C: .4byte gUnk_080FD280 - - thumb_func_start sub_080923A0 -sub_080923A0: @ 0x080923A0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #3 - beq _080923E2 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080923C6 - movs r1, #1 - movs r0, #1 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x14] - eors r0, r1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_080923C6: - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #3 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080923E2 - adds r0, r4, #0 - bl sub_0809264C -_080923E2: - pop {r4, pc} - - thumb_func_start sub_080923E4 -sub_080923E4: @ 0x080923E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _080923F8 - adds r0, r4, #0 - bl sub_08092620 - b _0809241A -_080923F8: - adds r0, r4, #0 - bl sub_0809269C - cmp r0, #0 - beq _0809241A - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x14 - strb r0, [r4, #0xe] - ldr r0, _0809241C @ =gUnk_03003F80 - adds r0, #0x3f - movs r1, #0xfd - strb r1, [r0] -_0809241A: - pop {r4, pc} - .align 2, 0 -_0809241C: .4byte gUnk_03003F80 - - thumb_func_start sub_08092420 -sub_08092420: @ 0x08092420 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809269C - cmp r0, #0 - beq _08092434 - ldr r0, _08092464 @ =gUnk_03003F80 - adds r0, #0x3f - movs r1, #0xfd - strb r1, [r0] -_08092434: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08092462 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r1, [r0] - subs r0, #2 - movs r2, #0 - strh r1, [r0] - subs r0, #0xd - strb r2, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - ldr r0, _08092468 @ =0x0000017B - bl sub_08004488 -_08092462: - pop {r4, pc} - .align 2, 0 -_08092464: .4byte gUnk_03003F80 -_08092468: .4byte 0x0000017B - - thumb_func_start sub_0809246C -sub_0809246C: @ 0x0809246C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0809269C - adds r5, r4, #0 - adds r5, #0x70 - ldrh r0, [r5] - cmp r0, #0 - beq _08092482 - subs r0, #1 - strh r0, [r5] -_08092482: - ldrh r0, [r5] - cmp r0, #0x8c - bhi _080924DC - adds r0, r4, #0 - bl sub_08004274 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080924B8 - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - strh r0, [r5] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _080924DC -_080924B8: - movs r2, #1 - ands r2, r1 - cmp r2, #0 - beq _080924CC - strb r0, [r3] - movs r0, #0xbe - lsls r0, r0, #1 - bl sub_08004488 - b _080924DC -_080924CC: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080924DC - strb r2, [r3] - ldr r0, _080924E0 @ =0x0000017D - bl sub_08004488 -_080924DC: - pop {r4, r5, pc} - .align 2, 0 -_080924E0: .4byte 0x0000017D - - thumb_func_start sub_080924E4 -sub_080924E4: @ 0x080924E4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809252C - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _0809252C - adds r0, r4, #0 - bl sub_0809269C -_0809252C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08092530 -sub_08092530: @ 0x08092530 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _08092544 - adds r0, r4, #0 - bl sub_0809269C - adds r5, r0, #0 - b _08092546 -_08092544: - movs r5, #0 -_08092546: - adds r0, r4, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08092570 - movs r0, #0 - strb r0, [r2] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0xac - strb r0, [r1] - b _0809258A -_08092570: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809258A - adds r0, r4, #0 - bl sub_0809264C - cmp r5, #0 - beq _0809258A - ldr r0, _0809258C @ =gUnk_03003F80 - adds r0, #0x3f - movs r1, #0xfd - strb r1, [r0] -_0809258A: - pop {r4, r5, pc} - .align 2, 0 -_0809258C: .4byte gUnk_03003F80 - - thumb_func_start sub_08092590 -sub_08092590: @ 0x08092590 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _080925A2 - adds r0, r1, #0 - bl sub_08092620 -_080925A2: - pop {pc} - - thumb_func_start sub_080925A4 -sub_080925A4: @ 0x080925A4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xb] - bl sub_0804B128 - adds r5, r0, #0 - ldrb r0, [r5, #9] - cmp r0, #0xff - beq _0809261A - ldr r7, _0809261C @ =gUnk_03000BF0 -_080925B8: - ldrb r2, [r5, #9] - movs r0, #0x59 - movs r1, #1 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08092612 - movs r0, #0xff - strb r0, [r4, #0x15] - movs r0, #0 - strh r0, [r4, #0x24] - str r6, [r4, #0x50] - ldrh r0, [r7, #6] - ldrh r1, [r5, #4] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r7, #8] - ldrh r1, [r5, #6] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r1, [r5, #8] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - ldrh r0, [r5, #0xa] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - ldrh r1, [r5, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldr r0, [r5] - str r0, [r4, #0x78] - adds r0, r4, #0 - bl sub_08016A04 - adds r1, r4, #0 - adds r1, #0x78 - adds r2, r4, #0 - adds r2, #0x76 - adds r0, r4, #0 - bl sub_080A2CC0 -_08092612: - adds r5, #0x10 - ldrb r0, [r5, #9] - cmp r0, #0xff - bne _080925B8 -_0809261A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809261C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08092620 -sub_08092620: @ 0x08092620 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r1, [r5, #0x50] - adds r0, r1, #0 - adds r0, #0x70 - ldrb r6, [r0] - cmp r6, #0 - bne _08092648 - movs r4, #1 - strb r4, [r0] - str r5, [r1, #0x54] - adds r0, r5, #0 - bl sub_0806FA24 - strb r4, [r5, #0xc] - strb r6, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xac - strb r0, [r1] -_08092648: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809264C -sub_0809264C: @ 0x0809264C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x14] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0809266A - movs r0, #7 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0xac - strb r0, [r1] - b _08092674 -_0809266A: - movs r0, #2 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x3f - strb r3, [r0] -_08092674: - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r1, r2, #0 - adds r1, #0x63 - movs r0, #0xfd - strb r0, [r1] - ldrb r1, [r2, #0x14] - adds r0, r2, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0809269C -sub_0809269C: @ 0x0809269C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _080926D8 @ =gUnk_03003F80 - ldr r0, [r6, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080926E0 - ldr r5, _080926DC @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x10 - movs r3, #0x10 - bl sub_080041A0 - cmp r0, #0 - beq _080926E0 - bl sub_08079F8C - cmp r0, #0 - beq _080926E0 - movs r1, #1 - strb r1, [r6, #0x14] - movs r2, #0x36 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _080926E0 - strb r1, [r4, #0xf] - movs r0, #1 - b _080926E2 - .align 2, 0 -_080926D8: .4byte gUnk_03003F80 -_080926DC: .4byte gLinkEntity -_080926E0: - movs r0, #0 -_080926E2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080926E4 -sub_080926E4: @ 0x080926E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xf] - bl sub_080A2BE4 - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _08092700 - ldr r1, [r4, #0x50] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x50] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] -_08092700: - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809271A - adds r1, r4, #0 - adds r1, #0x78 - adds r0, r4, #0 - bl sub_080A2CC0 -_0809271A: - pop {r4, pc} - - thumb_func_start sub_0809271C -sub_0809271C: @ 0x0809271C - push {lr} - ldr r2, _08092730 @ =gUnk_08122780 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08092730: .4byte gUnk_08122780 - - thumb_func_start sub_08092734 -sub_08092734: @ 0x08092734 - push {lr} - ldr r2, _08092748 @ =gUnk_08122788 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08092748: .4byte gUnk_08122788 - - thumb_func_start sub_0809274C -sub_0809274C: @ 0x0809274C - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - movs r5, #0x3f - adds r0, r5, #0 - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrh r0, [r4, #0x36] - subs r0, #8 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _0809277C - cmp r0, #2 - bne _080927A2 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0809277C: - ldr r0, _080927A4 @ =0x00004051 - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _080927A8 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - movs r6, #0x32 - ldrsh r2, [r4, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl sub_0800015E -_080927A2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080927A4: .4byte 0x00004051 -_080927A8: .4byte gUnk_03000BF0 - - thumb_func_start sub_080927AC -sub_080927AC: @ 0x080927AC - push {lr} - adds r1, r0, #0 - movs r0, #1 - strb r0, [r1, #0xc] - ldrb r0, [r1, #0xb] - strb r0, [r1, #0x1e] - ldrb r0, [r1, #0xb] - cmp r0, #0 - beq _080927C4 - cmp r0, #2 - beq _080927CA - b _080927D0 -_080927C4: - adds r1, #0x63 - movs r0, #2 - b _080927CE -_080927CA: - adds r1, #0x63 - movs r0, #0xfe -_080927CE: - strb r0, [r1] -_080927D0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080927D4 -sub_080927D4: @ 0x080927D4 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - ldr r0, _08092848 @ =0x00004051 - mov r8, r0 - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r6, _0809284C @ =gUnk_03000BF0 - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r5, #0x3f - ands r1, r5 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r2, [r6, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r5 - lsls r0, r0, #6 - orrs r1, r0 - subs r1, #1 - mov r0, r8 - movs r2, #1 - bl sub_0800015E - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r5 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r2, [r6, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r5 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, r8 - movs r2, #1 - bl sub_0800015E - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_08092848: .4byte 0x00004051 -_0809284C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08092850 -sub_08092850: @ 0x08092850 - push {r4, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08092888 - ldr r3, _08092878 @ =gLinkEntity - movs r0, #0x32 - ldrsh r1, [r3, r0] - movs r4, #0x32 - ldrsh r0, [r2, r4] - cmp r1, r0 - blt _0809286E - adds r0, #0x18 - cmp r1, r0 - ble _0809287C -_0809286E: - ldrb r0, [r2, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - b _08092884 - .align 2, 0 -_08092878: .4byte gLinkEntity -_0809287C: - ldrb r0, [r2, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 -_08092884: - orrs r1, r0 - strb r1, [r2, #0x19] -_08092888: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809288C -sub_0809288C: @ 0x0809288C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080928B0 - ldr r0, _080928AC @ =gUnk_0812279C - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _080928C0 - .align 2, 0 -_080928AC: .4byte gUnk_0812279C -_080928B0: - ldr r0, _080928C4 @ =gUnk_08122794 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080928C0: - pop {pc} - .align 2, 0 -_080928C4: .4byte gUnk_08122794 - - thumb_func_start sub_080928C8 -sub_080928C8: @ 0x080928C8 - push {lr} - adds r3, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - ldrb r0, [r3, #0xa] - strb r0, [r3, #0x1e] - ldrb r0, [r3, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r3, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r0, [r3, #0xa] - cmp r0, #2 - beq _08092912 - cmp r0, #4 - beq _08092920 - b _08092928 -_08092912: - adds r0, r3, #0 - movs r1, #0x5b - movs r2, #4 - movs r3, #0 - bl sub_080A2988 - b _08092928 -_08092920: - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] -_08092928: - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_119 -nullsub_119: @ 0x0809292C - bx lr - .align 2, 0 - - thumb_func_start sub_08092930 -sub_08092930: @ 0x08092930 - push {r4, lr} - adds r4, r0, #0 - bl sub_080928C8 - adds r4, #0x82 - movs r0, #0 - strh r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08092940 -sub_08092940: @ 0x08092940 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x84 - ldr r1, [r5] - bl sub_0807DF74 - ldr r1, [r5] - adds r0, r4, #0 - bl sub_08092958 - pop {r4, r5, pc} - - thumb_func_start sub_08092958 -sub_08092958: @ 0x08092958 - push {r4, lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r0, [r2, #8] - cmp r0, #0 - beq _0809298A - movs r4, #0 -_08092966: - ldr r1, [r2, #8] - mvns r0, r1 - adds r0, #1 - ands r0, r1 - eors r1, r0 - str r1, [r2, #8] - cmp r0, #1 - beq _0809297C - cmp r0, #2 - beq _08092980 - b _08092984 -_0809297C: - strb r4, [r3, #0x1e] - b _08092984 -_08092980: - ldr r0, [r2, #4] - strb r0, [r3, #0x1e] -_08092984: - ldr r0, [r2, #8] - cmp r0, #0 - bne _08092966 -_0809298A: - pop {r4, pc} - - thumb_func_start sub_0809298C -sub_0809298C: @ 0x0809298C - push {lr} - ldr r2, _080929A0 @ =gUnk_081227A4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080929A0: .4byte gUnk_081227A4 - - thumb_func_start sub_080929A4 -sub_080929A4: @ 0x080929A4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xb] - movs r6, #0xc0 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08092A08 - adds r4, r5, #0 - adds r4, #0x86 - ldrh r0, [r4] - bl sub_0807CBE4 - cmp r0, #0 - beq _08092A08 - ldrb r0, [r5, #0xb] - adds r1, r6, #0 - ands r1, r0 - cmp r1, #0x40 - beq _080929D2 - cmp r1, #0x80 - beq _08092A04 - b _08092A08 -_080929D2: - ldr r0, _080929F4 @ =gUnk_030010A0 - ldrh r1, [r0, #0xa] - movs r0, #0xc1 - lsls r0, r0, #1 - cmp r1, r0 - beq _080929EE - cmp r1, r0 - blt _080929FC - ldr r0, _080929F8 @ =0x0000044F - cmp r1, r0 - bgt _080929FC - subs r0, #2 - cmp r1, r0 - blt _080929FC -_080929EE: - bl sub_0805E780 - b _08092A08 - .align 2, 0 -_080929F4: .4byte gUnk_030010A0 -_080929F8: .4byte 0x0000044F -_080929FC: - ldrh r0, [r4] - bl sub_0807CD48 - b _08092A08 -_08092A04: - bl sub_0805E780 -_08092A08: - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r5, #0x20] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #0xa - movs r2, #0x80 - lsls r2, r2, #6 - adds r1, r2, #0 - adds r2, r5, #0 - adds r2, #0x78 - movs r3, #0 - orrs r0, r1 - strh r0, [r2] - ldrb r0, [r5, #0xe] - lsrs r0, r0, #1 - strb r0, [r5, #0xf] - strb r3, [r5, #0xe] - ldrb r1, [r5, #0xb] - movs r0, #0x3f - ands r0, r1 - strb r0, [r5, #0x1e] - movs r4, #0x2e - ldrsh r1, [r5, r4] - ldr r2, _08092A8C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r5, #0 - adds r4, #0x7e - strh r1, [r4] - ldrh r0, [r4] - movs r1, #1 - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x7c - strh r0, [r1] - ldrh r0, [r4] - movs r1, #1 - bl sub_080002E0 - adds r1, r5, #0 - adds r1, #0x7a - strh r0, [r1] - ldr r0, _08092A90 @ =0x00004022 - ldrh r1, [r4] - movs r2, #1 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08092A8C: .4byte gUnk_03000BF0 -_08092A90: .4byte 0x00004022 - - thumb_func_start sub_08092A94 -sub_08092A94: @ 0x08092A94 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08092B08 @ =gLinkEntity - ldrb r0, [r2, #0xc] - cmp r0, #6 - bne _08092B04 - ldrb r0, [r2, #0x14] - cmp r0, #0 - bne _08092B04 - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r0, #0x28 - movs r3, #0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08092B04 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r3, #0x2e - ldrsh r0, [r2, r3] - subs r1, r1, r0 - ldrb r0, [r4, #0xf] - cmp r1, r0 - bge _08092B04 - cmn r1, r0 - ble _08092B04 - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - adds r5, r4, #0 - adds r5, #0x7e - ldrh r1, [r5] - movs r2, #1 - bl sub_0800015E - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - ldrh r1, [r5] - movs r2, #1 - bl sub_08000148 - movs r0, #2 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x36] - subs r0, #0x20 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x32] - adds r0, #0x20 - strh r0, [r4, #0x32] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] -_08092B04: - pop {r4, r5, pc} - .align 2, 0 -_08092B08: .4byte gLinkEntity - - thumb_func_start sub_08092B0C -sub_08092B0C: @ 0x08092B0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _08092B50 - movs r0, #0 - movs r1, #3 - strb r1, [r4, #0xc] - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - movs r1, #0xc0 - ands r1, r0 - cmp r1, #0x40 - beq _08092B32 - cmp r1, #0x80 - bne _08092B3C - movs r0, #0x72 - bl sub_08004488 -_08092B32: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 -_08092B3C: - adds r0, r4, #0 - movs r1, #5 - movs r2, #0 - bl CreateFX - adds r0, r4, #0 - movs r1, #3 - bl sub_0805457C - b _08092B6A -_08092B50: - adds r0, r4, #0 - adds r0, #0x78 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_080044EC - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08092B6A - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] -_08092B6A: - pop {r4, pc} - - thumb_func_start sub_08092B6C -sub_08092B6C: @ 0x08092B6C - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_08092B74 -sub_08092B74: @ 0x08092B74 - push {lr} - ldr r2, _08092B88 @ =gUnk_081227C0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08092B88: .4byte gUnk_081227C0 - - thumb_func_start sub_08092B8C -sub_08092B8C: @ 0x08092B8C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08092BA6 - bl sub_0807CBE4 - cmp r0, #0 - beq _08092BA6 - bl sub_0805E780 -_08092BA6: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08092BE8 @ =gUnk_081227EC - str r0, [r4, #0x48] - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - lsls r0, r0, #1 - ldr r1, _08092BEC @ =gUnk_081227B4 - adds r2, r0, r1 - ldrb r1, [r2] - adds r0, r1, #0 - cmp r0, #0xff - bne _08092BF0 - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - b _08092BF6 - .align 2, 0 -_08092BE8: .4byte gUnk_081227EC -_08092BEC: .4byte gUnk_081227B4 -_08092BF0: - strb r1, [r4, #0x1e] - ldrb r0, [r2, #1] - strb r0, [r4, #0xb] -_08092BF6: - pop {r4, pc} - - thumb_func_start sub_08092BF8 -sub_08092BF8: @ 0x08092BF8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08092C20 - bl sub_0807CBE4 - cmp r0, #0 - beq _08092C20 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r0, _08092C1C @ =0x00000111 - bl sub_080A3268 - b _08092C92 - .align 2, 0 -_08092C1C: .4byte 0x00000111 -_08092C20: - adds r0, r4, #0 - bl sub_0800445C - cmp r0, #0 - beq _08092C74 - adds r0, r4, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #0 - bne _08092C74 - ldrb r0, [r4, #0xb] - lsls r0, r0, #3 - ldr r1, _08092C68 @ =gUnk_081227CC - adds r5, r0, r1 - ldrh r1, [r5, #4] - ldrh r2, [r5, #6] - adds r0, r4, #0 - bl sub_0806ED9C - cmp r0, #0 - blt _08092C78 - ldr r1, _08092C6C @ =gLinkEntity - ldrh r0, [r5] - ldrb r1, [r1, #0x14] - cmp r0, r1 - bne _08092C78 - ldr r0, _08092C70 @ =gUnk_03003F80 - adds r0, #0x90 - ldrh r1, [r0] - ldrh r0, [r5, #2] - ands r0, r1 - cmp r0, #0 - beq _08092C78 - ldrb r0, [r4, #0xe] - subs r0, #1 - b _08092C76 - .align 2, 0 -_08092C68: .4byte gUnk_081227CC -_08092C6C: .4byte gLinkEntity -_08092C70: .4byte gUnk_03003F80 -_08092C74: - movs r0, #8 -_08092C76: - strb r0, [r4, #0xe] -_08092C78: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08092C92 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - ldr r0, _08092C94 @ =0x00000111 - bl sub_080A3268 -_08092C92: - pop {r4, r5, pc} - .align 2, 0 -_08092C94: .4byte 0x00000111 - - thumb_func_start sub_08092C98 -sub_08092C98: @ 0x08092C98 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_08092CA0 -sub_08092CA0: @ 0x08092CA0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _08092CC0 - ldr r0, _08092CD4 @ =gUnk_020342F8 - subs r1, #1 - bl sub_0801D5A8 - cmp r0, #0 - bne _08092CC0 - bl sub_0805E780 -_08092CC0: - ldr r0, _08092CD8 @ =gUnk_081227F4 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_08092CD4: .4byte gUnk_020342F8 -_08092CD8: .4byte gUnk_081227F4 - - thumb_func_start sub_08092CDC -sub_08092CDC: @ 0x08092CDC - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - strb r2, [r4, #0xc] - ldr r0, _08092D48 @ =gUnk_080FD320 - str r0, [r4, #0x48] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #0x47 - strb r0, [r1] - adds r1, #4 - movs r0, #0x44 - strb r0, [r1] - subs r1, #5 - movs r0, #0x80 - strb r0, [r1] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r0, #0xe0 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _08092D50 - ldr r1, _08092D4C @ =0x00000161 - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _08092D5C - .align 2, 0 -_08092D48: .4byte gUnk_080FD320 -_08092D4C: .4byte 0x00000161 -_08092D50: - ldr r0, _08092D78 @ =0x0000FFE8 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08092D5C: - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08092D74 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC -_08092D74: - pop {r4, pc} - .align 2, 0 -_08092D78: .4byte 0x0000FFE8 - - thumb_func_start sub_08092D7C -sub_08092D7C: @ 0x08092D7C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08092D92 - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC -_08092D92: - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _08092E84 - adds r0, r5, #0 - bl sub_08004274 - ldr r6, _08092E04 @ =gUnk_03003F80 - ldr r0, [r6, #0x30] - movs r3, #0x80 - ands r0, r3 - cmp r0, #0 - bne _08092E84 - adds r0, r6, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08092E84 - ldr r4, _08092E08 @ =gLinkEntity - ldrb r2, [r4, #0xc] - cmp r2, #4 - beq _08092DC8 - ldrb r1, [r4, #0x10] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08092E84 -_08092DC8: - cmp r2, #6 - beq _08092E84 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0xc - movs r3, #0xc - bl sub_0800419C - cmp r0, #0 - beq _08092E84 - ldr r0, [r6, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _08092E0C - ldrb r0, [r4, #0xc] - cmp r0, #4 - beq _08092E0C - ldrb r0, [r5, #0xb] - cmp r0, #1 - beq _08092E16 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _08092E84 - b _08092E16 - .align 2, 0 -_08092E04: .4byte gUnk_03003F80 -_08092E08: .4byte gLinkEntity -_08092E0C: - ldr r0, _08092E88 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - beq _08092E84 -_08092E16: - ldr r4, _08092E88 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - bl sub_08004542 - adds r0, r4, #0 - bl sub_08004542 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r1, _08092E8C @ =gUnk_03003F80 - movs r0, #0x1f - strb r0, [r1, #0xc] - ldrb r2, [r5, #0xb] - adds r0, r1, #0 - adds r0, #0x38 - strb r2, [r0] - adds r1, #0x39 - movs r0, #0xff - strb r0, [r1] - adds r4, #0x29 - ldrb r1, [r4] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, r5, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - bl sub_08077B20 - ldr r0, _08092E90 @ =0x00000153 - bl sub_080A3268 - movs r0, #0x79 - bl sub_080A3268 -_08092E84: - pop {r4, r5, r6, pc} - .align 2, 0 -_08092E88: .4byte gLinkEntity -_08092E8C: .4byte gUnk_03003F80 -_08092E90: .4byte 0x00000153 - - thumb_func_start sub_08092E94 -sub_08092E94: @ 0x08092E94 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r1, _08092ED0 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0xc - movs r3, #0xc - bl sub_0800419C - cmp r0, #0 - bne _08092ECE - adds r0, r4, #0 - bl sub_0800455E - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0xc] - subs r0, #1 - strb r0, [r4, #0xc] -_08092ECE: - pop {r4, pc} - .align 2, 0 -_08092ED0: .4byte gLinkEntity - - thumb_func_start sub_08092ED4 -sub_08092ED4: @ 0x08092ED4 - push {lr} - ldr r2, _08092EE8 @ =gUnk_0812283C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08092EE8: .4byte gUnk_0812283C - - thumb_func_start sub_08092EEC -sub_08092EEC: @ 0x08092EEC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_080932D8 - cmp r0, #1 - beq _08092F2C - cmp r0, #2 - beq _08092F3A - movs r0, #1 - strb r0, [r4, #0xc] - movs r1, #0 - movs r2, #0x80 - strh r2, [r4, #0x24] - strb r0, [r4, #0x16] - strb r1, [r4, #0xe] - strb r1, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x20 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7b - strb r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08092F48 - ldr r0, _08092F28 @ =gUnk_080FD288 - str r0, [r4, #0x48] - b _08092F48 - .align 2, 0 -_08092F28: .4byte gUnk_080FD288 -_08092F2C: - movs r0, #4 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x2e] - subs r0, #0x20 - strh r0, [r4, #0x2e] - movs r5, #2 - b _08092F5E -_08092F3A: - movs r0, #4 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x2e] - adds r0, #0x20 - strh r0, [r4, #0x2e] - movs r5, #3 - b _08092F5E -_08092F48: - movs r5, #0 - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08092F5E - bl sub_0807CBE4 - cmp r0, #0 - bne _08092F5E - movs r5, #1 -_08092F5E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080931A4 - pop {r4, r5, pc} - - thumb_func_start sub_08092F68 -sub_08092F68: @ 0x08092F68 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r0, _08092FA4 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r6, r2] - subs r1, r1, r0 - mov r8, r1 - adds r1, r6, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08092FA8 - bl sub_0807CBE4 - cmp r0, #0 - bne _08092F92 - b _080930E6 -_08092F92: - adds r0, r6, #0 - adds r0, #0x7a - ldrb r0, [r0] - cmp r0, #0 - beq _08092FA8 - adds r0, r6, #0 - bl sub_080932A8 - b _080930E6 - .align 2, 0 -_08092FA4: .4byte gLinkEntity -_08092FA8: - adds r1, r6, #0 - adds r1, #0x7b - ldrb r2, [r1] - movs r0, #0x3f - ands r0, r2 - adds r7, r1, #0 - cmp r0, #0 - bne _08092FD6 - movs r0, #0xf - movs r4, #0 - orrs r0, r2 - strb r0, [r7] - adds r0, r6, #0 - movs r1, #0 - bl sub_080931A4 - mov r0, r8 - cmp r0, #0 - bge _08092FD6 - ldrb r0, [r7] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r7] -_08092FD6: - ldrb r1, [r7] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08092FEA - adds r5, r6, #0 - adds r5, #0x78 - ldrh r0, [r5] - subs r0, #1 - b _08092FF2 -_08092FEA: - adds r5, r6, #0 - adds r5, #0x78 - ldrh r0, [r5] - adds r0, #1 -_08092FF2: - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _08093034 @ =0x00004031 - cmp r1, r0 - bhi _08093040 - subs r0, #1 - cmp r1, r0 - blo _08093040 - movs r0, #3 - strb r0, [r6, #0xc] - ldr r0, _08093038 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsls r0, r0, #2 - strb r0, [r6, #0x15] - movs r0, #0x80 - strh r0, [r6, #0x24] - movs r0, #0x40 - strb r0, [r6, #0xe] - adds r0, r6, #0 - movs r1, #0x50 - bl sub_0805E4E0 - ldr r0, _0809303C @ =0x0000010F - bl sub_08004488 - adds r0, r6, #0 - bl sub_08093248 - b _080930E6 - .align 2, 0 -_08093034: .4byte 0x00004031 -_08093038: .4byte gLinkEntity -_0809303C: .4byte 0x0000010F -_08093040: - ldr r0, _0809307C @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080930E6 - adds r0, r6, #0 - bl sub_08078930 - adds r3, r7, #0 - ldrb r2, [r3] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08093088 - movs r1, #0x7f - ands r1, r2 - strb r1, [r3] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0809309C - ldr r0, _08093080 @ =0x0000402C - ldrh r1, [r5] - subs r1, #1 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08093084 @ =0x0000403D - b _080930AA - .align 2, 0 -_0809307C: .4byte gLinkEntity -_08093080: .4byte 0x0000402C -_08093084: .4byte 0x0000403D -_08093088: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _080930C0 - mov r1, r8 - cmp r1, #4 - ble _080930E6 - movs r0, #0x3f - ands r0, r2 - strb r0, [r3] -_0809309C: - ldr r0, _080930B8 @ =0x0000403D - ldrh r1, [r5] - subs r1, #1 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _080930BC @ =0x0000402D -_080930AA: - ldrh r1, [r5] - adds r1, #1 - ldrb r2, [r4] - bl sub_0800015E - b _080930E6 - .align 2, 0 -_080930B8: .4byte 0x0000403D -_080930BC: .4byte 0x0000402D -_080930C0: - mov r1, r8 - rsbs r0, r1, #0 - cmp r0, #4 - ble _080930E6 - movs r0, #0x40 - orrs r0, r2 - strb r0, [r7] - ldr r0, _080930EC @ =0x0000402C - ldrh r1, [r5] - subs r1, #1 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _080930F0 @ =0x0000403D - ldrh r1, [r5] - adds r1, #1 - ldrb r2, [r4] - bl sub_0800015E -_080930E6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080930EC: .4byte 0x0000402C -_080930F0: .4byte 0x0000403D - - thumb_func_start sub_080930F4 -sub_080930F4: @ 0x080930F4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xe] - cmp r3, #0 - beq _08093104 - bl sub_08093280 - b _08093174 -_08093104: - ldr r5, _0809315C @ =gUnk_03003F80 - ldrb r0, [r5, #5] - cmp r0, #0x12 - bne _08093168 - ldr r6, _08093160 @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08093174 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bls _08093174 - movs r0, #0x10 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x38 - movs r2, #0x40 - strb r2, [r0] - ldr r0, [r5, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r5, #0x30] - strh r3, [r6, #0x2c] - strh r3, [r6, #0x30] - ldrb r0, [r6, #0x14] - movs r1, #4 - eors r0, r1 - lsls r0, r0, #2 - strb r0, [r4, #0x15] - strb r2, [r4, #0xe] - ldr r0, _08093164 @ =0x0000010F - bl sub_08004488 - adds r0, r4, #0 - bl sub_08093248 - b _08093174 - .align 2, 0 -_0809315C: .4byte gUnk_03003F80 -_08093160: .4byte gLinkEntity -_08093164: .4byte 0x0000010F -_08093168: - ldrb r0, [r4, #0xd] - cmp r0, #6 - bne _08093174 - movs r0, #1 - strb r0, [r4, #0xc] - strb r3, [r4, #0xf] -_08093174: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08093178 -sub_08093178: @ 0x08093178 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093198 - adds r0, r4, #0 - bl sub_08093334 -_08093198: - adds r0, r4, #0 - bl sub_08093364 - pop {r4, pc} - - thumb_func_start nullsub_120 -nullsub_120: @ 0x080931A0 - bx lr - .align 2, 0 - - thumb_func_start sub_080931A4 -sub_080931A4: @ 0x080931A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r1, #0 - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r3, _080931F0 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r2, r2, r1 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r6, #0x32 - ldrsh r1, [r0, r6] - ldrh r3, [r3, #8] - subs r1, r1, r3 - asrs r1, r1, #4 - ands r1, r4 - lsls r1, r1, #6 - orrs r2, r1 - adds r1, r0, #0 - adds r1, #0x78 - strh r2, [r1] - ldrh r1, [r1] - subs r1, #0x40 - mov r8, r1 - adds r0, #0x38 - ldrb r7, [r0] - cmp r5, #1 - beq _080931F4 - cmp r5, #1 - blo _0809320C - cmp r5, #2 - beq _080931FC - cmp r5, #3 - beq _08093204 - b _0809320C - .align 2, 0 -_080931F0: .4byte gUnk_03000BF0 -_080931F4: - ldr r0, _080931F8 @ =gUnk_08122862 - b _0809320E - .align 2, 0 -_080931F8: .4byte gUnk_08122862 -_080931FC: - ldr r0, _08093200 @ =gUnk_08122874 - b _0809320E - .align 2, 0 -_08093200: .4byte gUnk_08122874 -_08093204: - ldr r0, _08093208 @ =gUnk_08122886 - b _0809320E - .align 2, 0 -_08093208: .4byte gUnk_08122886 -_0809320C: - ldr r0, _08093230 @ =gUnk_08122850 -_0809320E: - movs r4, #0 - movs r6, #0 - adds r5, r0, #0 -_08093214: - mov r0, r8 - adds r1, r0, r6 - adds r1, r1, r4 - subs r1, #1 - ldrh r0, [r5] - adds r2, r7, #0 - bl sub_0800015E - cmp r4, #2 - beq _08093234 - cmp r4, #5 - beq _08093238 - b _0809323A - .align 2, 0 -_08093230: .4byte gUnk_08122850 -_08093234: - movs r6, #0x3d - b _0809323A -_08093238: - movs r6, #0x7a -_0809323A: - adds r5, #2 - adds r4, #1 - cmp r4, #8 - bls _08093214 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08093248 -sub_08093248: @ 0x08093248 - push {r4, r5, r6, r7, lr} - adds r1, r0, #0 - adds r1, #0x78 - ldrh r1, [r1] - adds r7, r1, #0 - subs r7, #0x40 - adds r0, #0x38 - ldrb r6, [r0] - movs r4, #0 - movs r5, #0 -_0809325C: - adds r0, r7, r5 - adds r0, r0, r4 - subs r0, #1 - adds r1, r6, #0 - bl sub_0807BA8C - cmp r4, #2 - beq _08093272 - cmp r4, #5 - beq _08093276 - b _08093278 -_08093272: - movs r5, #0x3d - b _08093278 -_08093276: - movs r5, #0x7a -_08093278: - adds r4, #1 - cmp r4, #8 - bls _0809325C - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08093280 -sub_08093280: @ 0x08093280 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080932A0 - adds r0, r4, #0 - bl sub_08093334 -_080932A0: - adds r0, r4, #0 - bl sub_08093364 - pop {r4, pc} - - thumb_func_start sub_080932A8 -sub_080932A8: @ 0x080932A8 - push {lr} - adds r1, r0, #0 - adds r2, r1, #0 - adds r2, #0x7a - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - movs r2, #3 - ands r2, r0 - cmp r2, #1 - beq _080932C8 - cmp r2, #3 - beq _080932D0 - adds r1, #0x62 - movs r0, #0 - b _080932D4 -_080932C8: - adds r0, r1, #0 - adds r0, #0x62 - strb r2, [r0] - b _080932D6 -_080932D0: - adds r1, #0x62 - movs r0, #0xff -_080932D4: - strb r0, [r1] -_080932D6: - pop {pc} - - thumb_func_start sub_080932D8 -sub_080932D8: @ 0x080932D8 - push {r4, lr} - lsls r0, r0, #3 - ldr r1, _080932F0 @ =gUnk_08122898 - adds r4, r0, r1 - ldr r0, [r4] - ldrh r1, [r4, #4] - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _080932F4 - movs r0, #1 - b _08093306 - .align 2, 0 -_080932F0: .4byte gUnk_08122898 -_080932F4: - ldr r0, [r4] - ldrh r1, [r4, #6] - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _08093304 - movs r0, #0 - b _08093306 -_08093304: - movs r0, #2 -_08093306: - pop {r4, pc} - - thumb_func_start sub_08093308 -sub_08093308: @ 0x08093308 - push {lr} - adds r2, r1, #0 - lsls r0, r0, #3 - ldr r1, _08093320 @ =gUnk_08122898 - adds r1, r0, r1 - cmp r2, #1 - bne _08093324 - ldr r0, [r1] - ldrh r1, [r1, #4] - bl sub_0807CC9C - b _08093330 - .align 2, 0 -_08093320: .4byte gUnk_08122898 -_08093324: - cmp r2, #2 - bne _08093330 - ldr r0, [r1] - ldrh r1, [r1, #6] - bl sub_0807CC9C -_08093330: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08093334 -sub_08093334: @ 0x08093334 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x15] - movs r0, #0x10 - ands r0, r1 - movs r5, #2 - cmp r0, #0 - beq _0809334A - movs r5, #1 -_0809334A: - adds r1, r5, #1 - adds r0, r4, #0 - bl sub_080931A4 - ldrb r0, [r4, #0xa] - adds r1, r5, #0 - bl sub_08093308 - movs r0, #0x72 - bl sub_08004488 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08093364 -sub_08093364: @ 0x08093364 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080933BC - movs r0, #0xf - movs r1, #0x11 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080933BC - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r1, [r5, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0809339C - ldrh r0, [r4, #0x2e] - adds r0, #0x12 - b _080933A0 -_0809339C: - ldrh r0, [r4, #0x2e] - subs r0, #0x12 -_080933A0: - strh r0, [r4, #0x2e] - movs r0, #0x32 - ldrsh r2, [r4, r0] - ldrb r1, [r5, #0xe] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080933B6 - adds r0, r2, #0 - adds r0, #8 - b _080933BA -_080933B6: - adds r0, r2, #0 - subs r0, #8 -_080933BA: - strh r0, [r4, #0x32] -_080933BC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080933C0 -sub_080933C0: @ 0x080933C0 - push {lr} - ldr r2, _080933D4 @ =gUnk_081228B0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080933D4: .4byte gUnk_081228B0 - - thumb_func_start sub_080933D8 -sub_080933D8: @ 0x080933D8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_08016A04 - ldr r0, _080933F8 @ =gUnk_081228A8 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_080787B4 - pop {r4, pc} - .align 2, 0 -_080933F8: .4byte gUnk_081228A8 - - thumb_func_start sub_080933FC -sub_080933FC: @ 0x080933FC - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08093420 - movs r0, #0 - strb r0, [r1] - ldr r1, _08093424 @ =gUnk_081228B8 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r2, #0 - bl sub_08056398 -_08093420: - pop {pc} - .align 2, 0 -_08093424: .4byte gUnk_081228B8 - - thumb_func_start sub_08093428 -sub_08093428: @ 0x08093428 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0809345C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _0809344A - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08093446 - ldr r1, _08093460 @ =gUnk_03000BF0 - ldr r0, _08093464 @ =gLinkEntity - str r0, [r1, #0x30] -_08093446: - bl sub_0805E780 -_0809344A: - ldr r0, _08093468 @ =gUnk_081228C8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_0809345C: .4byte gUnk_03003F80 -_08093460: .4byte gUnk_03000BF0 -_08093464: .4byte gLinkEntity -_08093468: .4byte gUnk_081228C8 - - thumb_func_start sub_0809346C -sub_0809346C: @ 0x0809346C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x1f] - ldr r0, _080934C0 @ =gLinkEntity - ldrb r1, [r0, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080934B8 - ldr r0, _080934C4 @ =gUnk_03000BF0 - str r4, [r0, #0x30] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r1, r4, #0 - adds r1, #0x6e - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #4 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x61 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 -_080934B8: - adds r0, r4, #0 - bl sub_080934C8 - pop {r4, pc} - .align 2, 0 -_080934C0: .4byte gLinkEntity -_080934C4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080934C8 -sub_080934C8: @ 0x080934C8 - push {lr} - ldr r2, _080934DC @ =gUnk_081228D0 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080934DC: .4byte gUnk_081228D0 - - thumb_func_start sub_080934E0 -sub_080934E0: @ 0x080934E0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x6e - ldrh r1, [r4] - movs r2, #0 - ldrsh r0, [r4, r2] - cmp r0, #0 - bge _080934F6 - rsbs r0, r1, #0 - strh r0, [r4] -_080934F6: - ldr r0, _08093518 @ =gLinkEntity - ldrb r0, [r0, #0xd] - cmp r0, #2 - beq _0809351C - cmp r0, #2 - bgt _080935B0 - cmp r0, #1 - bne _080935B0 - adds r1, r5, #0 - adds r1, #0x72 - ldrh r0, [r1] - subs r0, #4 - strh r0, [r1] - adds r6, r4, #0 - adds r7, r1, #0 - b _080935BE - .align 2, 0 -_08093518: .4byte gLinkEntity -_0809351C: - ldrb r2, [r5, #0xf] - adds r0, r2, #0 - cmp r0, #0 - bne _08093560 - adds r0, r5, #0 - adds r0, #0x72 - ldrh r1, [r0] - adds r7, r0, #0 - cmp r1, #0x80 - bls _08093538 - adds r0, r1, #0 - subs r0, #0x20 - strh r0, [r7] - b _08093544 -_08093538: - adds r0, r2, #1 - strb r0, [r5, #0xf] - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_080A3268 -_08093544: - adds r0, r5, #0 - adds r0, #0x6e - ldrh r2, [r0] - ldr r1, _0809355C @ =0x0000011F - adds r6, r0, #0 - cmp r2, r1 - bhi _080935BE - adds r0, r2, #0 - adds r0, #0x40 - strh r0, [r6] - b _080935BE - .align 2, 0 -_0809355C: .4byte 0x0000011F -_08093560: - cmp r0, #0xff - beq _080935A6 - adds r0, r5, #0 - adds r0, #0x72 - ldrh r1, [r0] - adds r7, r0, #0 - cmp r1, #0xff - bhi _08093576 - adds r0, r1, #0 - adds r0, #0x20 - b _0809357A -_08093576: - movs r0, #0x80 - lsls r0, r0, #1 -_0809357A: - strh r0, [r7] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r1, [r0] - movs r2, #0x80 - lsls r2, r2, #1 - adds r6, r0, #0 - cmp r1, r2 - bls _08093594 - adds r0, r1, #0 - subs r0, #0x20 - strh r0, [r6] - b _08093596 -_08093594: - strh r2, [r6] -_08093596: - ldrh r1, [r6] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bne _080935BE - movs r0, #0xff - strb r0, [r5, #0xf] - b _080935BE -_080935A6: - adds r0, r5, #0 - bl sub_080936C8 - adds r6, r4, #0 - b _080935BA -_080935B0: - adds r0, r5, #0 - bl sub_080936C8 - adds r6, r5, #0 - adds r6, #0x6e -_080935BA: - adds r7, r5, #0 - adds r7, #0x72 -_080935BE: - ldr r0, _080935E4 @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _080935E8 - movs r0, #1 - strb r0, [r5, #0x1e] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bne _080935EA - ldrh r0, [r6] - rsbs r0, r0, #0 - strh r0, [r6] - b _080935EA - .align 2, 0 -_080935E4: .4byte gLinkEntity -_080935E8: - strb r0, [r5, #0x1e] -_080935EA: - ldrb r0, [r5, #0x1e] - ldrb r1, [r5, #0x1f] - cmp r0, r1 - beq _080935FE - strb r0, [r5, #0x1f] - ldrb r1, [r5, #0x1e] - ldrh r2, [r5, #0x12] - adds r0, r5, #0 - bl sub_080042D0 -_080935FE: - ldr r4, _0809364C @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - ldrb r2, [r4, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x19] - ldrh r1, [r7] - adds r0, r5, #0 - movs r2, #0xa - movs r3, #2 - bl sub_0806FCF4 - ldrh r1, [r6] - ldrh r2, [r7] - adds r0, r5, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - bl sub_0806FEBC - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809364C: .4byte gLinkEntity - - thumb_func_start sub_08093650 -sub_08093650: @ 0x08093650 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080936C4 @ =gLinkEntity - ldrb r0, [r5, #0x15] - lsrs r1, r0, #1 - adds r0, r0, r1 - asrs r0, r0, #2 - adds r0, #2 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1f] - cmp r0, r1 - beq _08093674 - strb r0, [r4, #0x1f] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_08093674: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x19] - ldr r0, [r4, #0x50] - adds r0, #0x72 - ldrh r1, [r0] - adds r0, r4, #0 - movs r2, #0x18 - movs r3, #0 - bl sub_0806FCF4 - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - rsbs r0, r0, #0 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_0806FEBC - pop {r4, r5, pc} - .align 2, 0 -_080936C4: .4byte gLinkEntity - - thumb_func_start sub_080936C8 -sub_080936C8: @ 0x080936C8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08093714 @ =gLinkEntity - ldr r0, [r0, #0x7c] - lsrs r2, r0, #2 - movs r3, #0x9c - lsls r3, r3, #1 - adds r1, r3, #0 - subs r1, r1, r2 - adds r5, r4, #0 - adds r5, #0x76 - strh r1, [r5] - movs r1, #0x3c - bl __divsi3 - movs r1, #8 - subs r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrb r3, [r4, #0xe] - cmp r3, #0 - bne _0809372C - adds r1, r4, #0 - adds r1, #0x6e - ldrh r2, [r1] - ldrh r0, [r5] - cmp r0, r2 - bhs _08093718 - adds r0, r2, #0 - subs r0, #8 - strh r0, [r1] - adds r1, #4 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] - b _0809375C - .align 2, 0 -_08093714: .4byte gLinkEntity -_08093718: - adds r0, r3, #1 - strb r0, [r4, #0xe] - ldrh r0, [r5] - strh r0, [r1] - ldrh r0, [r5] - adds r0, #0x30 - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - b _0809375C -_0809372C: - ldrh r0, [r5] - adds r0, #0x30 - adds r1, r4, #0 - adds r1, #0x6e - ldrh r2, [r1] - cmp r0, r2 - ble _0809374A - adds r0, r2, #0 - adds r0, #8 - strh r0, [r1] - adds r1, #4 - ldrh r0, [r1] - subs r0, #8 - strh r0, [r1] - b _0809375C -_0809374A: - movs r0, #0 - strb r0, [r4, #0xe] - ldrh r0, [r5] - adds r0, #0x30 - strh r0, [r1] - ldrh r1, [r5] - adds r0, r4, #0 - adds r0, #0x72 - strh r1, [r0] -_0809375C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08093760 -sub_08093760: @ 0x08093760 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #2 - beq _08093794 - cmp r0, #2 - bgt _08093778 - cmp r0, #0 - beq _08093784 - cmp r0, #1 - beq _0809378C - b _080937BC -_08093778: - cmp r0, #3 - beq _080937AC - cmp r0, #0x41 - bgt _080937BC - cmp r0, #0x40 - blt _080937BC -_08093784: - ldr r0, _08093788 @ =gUnk_081228D8 - b _08093796 - .align 2, 0 -_08093788: .4byte gUnk_081228D8 -_0809378C: - ldr r0, _08093790 @ =gUnk_081228E0 - b _08093796 - .align 2, 0 -_08093790: .4byte gUnk_081228E0 -_08093794: - ldr r0, _080937A8 @ =gUnk_081228E8 -_08093796: - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _080937BC - .align 2, 0 -_080937A8: .4byte gUnk_081228E8 -_080937AC: - ldr r0, _080937C0 @ =gUnk_081228F0 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080937BC: - pop {pc} - .align 2, 0 -_080937C0: .4byte gUnk_081228F0 - - thumb_func_start sub_080937C4 -sub_080937C4: @ 0x080937C4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08093808 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x76 - strh r1, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0x41 - beq _0809386A - cmp r0, #0x41 - bgt _0809387A - cmp r0, #0 - beq _0809380C - cmp r0, #0x40 - beq _08093840 - b _0809387A - .align 2, 0 -_08093808: .4byte gUnk_03000BF0 -_0809380C: - strb r5, [r4, #0x1e] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - strh r5, [r0] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x3c - strh r0, [r1] - movs r0, #0x62 - movs r1, #0x40 - b _08093854 -_08093840: - movs r0, #2 - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x62 - movs r1, #0x41 -_08093854: - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809387A - str r4, [r1, #0x50] - adds r0, r4, #0 - bl sub_0806FA24 - b _0809387A -_0809386A: - movs r0, #0 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x1b] -_0809387A: - adds r0, r4, #0 - bl sub_08093A1C - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08093884 -sub_08093884: @ 0x08093884 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080938B8 - ldr r0, _080938A8 @ =gLinkEntity - movs r3, #0x32 - ldrsh r1, [r0, r3] - movs r3, #0x32 - ldrsh r0, [r2, r3] - adds r0, #0x20 - cmp r1, r0 - bge _080938AC - ldrb r0, [r2, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - b _080938B4 - .align 2, 0 -_080938A8: .4byte gLinkEntity -_080938AC: - ldrb r0, [r2, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 -_080938B4: - orrs r1, r0 - strb r1, [r2, #0x19] -_080938B8: - adds r0, r2, #0 - bl sub_08093C70 - pop {pc} - - thumb_func_start sub_080938C0 -sub_080938C0: @ 0x080938C0 - push {r4, r5, lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0xb] - ands r1, r2 - adds r1, #3 - strb r1, [r0, #0x1e] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r3, _08093908 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r2, r2, r1 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r5, #0x32 - ldrsh r1, [r0, r5] - ldrh r3, [r3, #8] - subs r1, r1, r3 - asrs r1, r1, #4 - ands r1, r4 - lsls r1, r1, #6 - orrs r2, r1 - adds r1, r0, #0 - adds r1, #0x76 - strh r2, [r1] - bl sub_08093A1C - pop {r4, r5, pc} - .align 2, 0 -_08093908: .4byte gUnk_03000BF0 - - thumb_func_start nullsub_524 -nullsub_524: @ 0x0809390C - bx lr - .align 2, 0 - - thumb_func_start sub_08093910 -sub_08093910: @ 0x08093910 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r3, #1 - strb r3, [r5, #0xc] - ldrb r1, [r5, #0xb] - adds r0, r3, #0 - ands r0, r1 - adds r0, #5 - strb r0, [r5, #0x1e] - ldrb r0, [r5, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _0809397C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r0, [r5, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - adds r0, #0x76 - strh r1, [r0] - ldrb r0, [r5, #0xb] - ands r3, r0 - cmp r3, #0 - beq _0809396C - adds r1, r5, #0 - adds r1, #0x62 - movs r0, #8 - strb r0, [r1] -_0809396C: - adds r0, r5, #0 - bl sub_08093984 - adds r0, r5, #0 - movs r1, #0x7b - bl sub_0801D2B4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809397C: .4byte gUnk_03000BF0 - - thumb_func_start nullsub_525 -nullsub_525: @ 0x08093980 - bx lr - .align 2, 0 - - thumb_func_start sub_08093984 -sub_08093984: @ 0x08093984 - push {r4, r5, r6, lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xb] - ldr r2, _080939B4 @ =gUnk_0812291E - cmp r0, #0 - beq _08093992 - ldr r2, _080939B8 @ =gUnk_081228F8 -_08093992: - movs r5, #0 - adds r6, r1, #0 - adds r6, #0x76 - adds r4, r2, #0 -_0809399A: - movs r0, #0 - ldrsh r1, [r4, r0] - ldrh r0, [r6] - adds r1, r1, r0 - ldr r0, _080939BC @ =0x00004074 - movs r2, #1 - bl sub_0800015E - adds r4, #2 - adds r5, #1 - cmp r5, #0x12 - bls _0809399A - pop {r4, r5, r6, pc} - .align 2, 0 -_080939B4: .4byte gUnk_0812291E -_080939B8: .4byte gUnk_081228F8 -_080939BC: .4byte 0x00004074 - - thumb_func_start sub_080939C0 -sub_080939C0: @ 0x080939C0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xb] - movs r0, #3 - ands r0, r1 - adds r0, #7 - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08093A14 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x76 - strh r1, [r0] - adds r0, r4, #0 - bl sub_08093A1C - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0801D2B4 - pop {r4, r5, pc} - .align 2, 0 -_08093A14: .4byte gUnk_03000BF0 - - thumb_func_start nullsub_526 -nullsub_526: @ 0x08093A18 - bx lr - .align 2, 0 - - thumb_func_start sub_08093A1C -sub_08093A1C: @ 0x08093A1C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r2, r0, #0 - ldrb r1, [r2, #0xa] - cmp r1, #1 - beq _08093B0C - cmp r1, #1 - bgt _08093A34 - cmp r1, #0 - beq _08093A3C - b _08093C64 -_08093A34: - cmp r1, #3 - bne _08093A3A - b _08093C54 -_08093A3A: - b _08093C64 -_08093A3C: - ldr r0, _08093AF0 @ =0x00004024 - adds r7, r2, #0 - adds r7, #0x76 - ldrh r1, [r7] - adds r1, #0x3c - adds r4, r2, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldr r5, _08093AF4 @ =0x00004022 - ldrh r1, [r7] - adds r1, #0x3d - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x3e - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093AF8 @ =0x00004029 - mov r8, r0 - ldrh r1, [r7] - adds r1, #0x7c - ldrb r2, [r4] - bl sub_0800015E - ldr r6, _08093AFC @ =0x00004026 - ldrh r1, [r7] - adds r1, #0x7d - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x7e - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - adds r5, #0x1b - ldrh r1, [r7] - adds r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x80 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093B00 @ =0x00004027 - ldrh r1, [r7] - adds r1, #0x41 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08093B04 @ =0x00004023 - ldrh r1, [r7] - adds r1, #0x42 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08093B08 @ =0x0000406D - ldrh r1, [r7] - adds r1, #0x43 - ldrb r2, [r4] - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x81 - ldrb r2, [r4] - mov r0, r8 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x82 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x83 - b _08093B94 - .align 2, 0 -_08093AF0: .4byte 0x00004024 -_08093AF4: .4byte 0x00004022 -_08093AF8: .4byte 0x00004029 -_08093AFC: .4byte 0x00004026 -_08093B00: .4byte 0x00004027 -_08093B04: .4byte 0x00004023 -_08093B08: .4byte 0x0000406D -_08093B0C: - ldrb r0, [r2, #0xb] - ands r1, r0 - cmp r1, #0 - beq _08093BB4 - ldr r6, _08093BA0 @ =0x0000406D - movs r0, #0x76 - adds r0, r0, r2 - mov r8, r0 - ldrh r1, [r0] - subs r1, #0x81 - adds r4, r2, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldr r5, _08093BA4 @ =0x00004022 - mov r2, r8 - ldrh r1, [r2] - subs r1, #0x41 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093BA8 @ =0x00004029 - mov r2, r8 - ldrh r1, [r2] - subs r1, #2 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08093BAC @ =0x00004026 - mov r2, r8 - ldrh r1, [r2] - subs r1, #1 - ldrb r2, [r4] - bl sub_0800015E - mov r0, r8 - ldrh r1, [r0] - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2] - adds r1, #1 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldr r0, _08093BB0 @ =0x0000406E - mov r2, r8 - ldrh r1, [r2] - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0800015E - mov r0, r8 - ldrh r1, [r0] - adds r1, #0x41 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2] - adds r1, #0x42 -_08093B94: - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - b _08093C64 - .align 2, 0 -_08093BA0: .4byte 0x0000406D -_08093BA4: .4byte 0x00004022 -_08093BA8: .4byte 0x00004029 -_08093BAC: .4byte 0x00004026 -_08093BB0: .4byte 0x0000406E -_08093BB4: - ldr r6, _08093C40 @ =0x0000406C - movs r0, #0x76 - adds r0, r0, r2 - mov r8, r0 - ldrh r1, [r0] - subs r1, #0x7f - adds r4, r2, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - ldr r5, _08093C44 @ =0x00004022 - mov r2, r8 - ldrh r1, [r2] - subs r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - mov r0, r8 - ldrh r1, [r0] - subs r1, #1 - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2] - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093C48 @ =0x00004026 - mov r2, r8 - ldrh r1, [r2] - adds r1, #1 - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08093C4C @ =0x0000402A - mov r2, r8 - ldrh r1, [r2] - adds r1, #2 - ldrb r2, [r4] - bl sub_0800015E - mov r0, r8 - ldrh r1, [r0] - adds r1, #0x3e - ldrb r2, [r4] - adds r0, r6, #0 - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2] - adds r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093C50 @ =0x0000406F - mov r2, r8 - ldrh r1, [r2] - adds r1, #0x40 - ldrb r2, [r4] - bl sub_0800015E - b _08093C64 - .align 2, 0 -_08093C40: .4byte 0x0000406C -_08093C44: .4byte 0x00004022 -_08093C48: .4byte 0x00004026 -_08093C4C: .4byte 0x0000402A -_08093C50: .4byte 0x0000406F -_08093C54: - ldr r0, _08093C6C @ =0x00004022 - adds r1, r2, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_08093C64: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08093C6C: .4byte 0x00004022 - - thumb_func_start sub_08093C70 -sub_08093C70: @ 0x08093C70 - push {r4, r5, r6, lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x78 - ldrh r0, [r3] - cmp r0, #0 - beq _08093CE8 - ldr r0, _08093CE0 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - beq _08093D5C - movs r0, #0 - strh r0, [r3] - ldr r4, _08093CE4 @ =0x00004022 - adds r6, r2, #0 - adds r6, #0x76 - ldrh r1, [r6] - adds r1, #0x3f - adds r5, r2, #0 - adds r5, #0x38 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x40 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x41 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - adds r4, #4 - ldrh r1, [r6] - adds r1, #0x7f - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x80 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x81 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - b _08093D5C - .align 2, 0 -_08093CE0: .4byte gUnk_03003F80 -_08093CE4: .4byte 0x00004022 -_08093CE8: - ldr r0, _08093D60 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08093D5C - adds r1, r2, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08093D5C - ldrh r0, [r3] - adds r0, #1 - strh r0, [r3] - movs r0, #0x3c - strh r0, [r1] - ldr r5, _08093D64 @ =0x0000403D - adds r6, r2, #0 - adds r6, #0x76 - ldrh r1, [r6] - adds r1, #0x3f - adds r4, r2, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093D68 @ =0x00004027 - ldrh r1, [r6] - adds r1, #0x41 - ldrb r2, [r4] - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x7f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #0x80 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _08093D6C @ =0x00004029 - ldrh r1, [r6] - adds r1, #0x81 - ldrb r2, [r4] - bl sub_0800015E -_08093D5C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08093D60: .4byte gUnk_03003F80 -_08093D64: .4byte 0x0000403D -_08093D68: .4byte 0x00004027 -_08093D6C: .4byte 0x00004029 - - thumb_func_start sub_08093D70 -sub_08093D70: @ 0x08093D70 - push {lr} - ldr r2, _08093D84 @ =gUnk_08122944 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08093D84: .4byte gUnk_08122944 - - thumb_func_start sub_08093D88 -sub_08093D88: @ 0x08093D88 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x36] - subs r0, #8 - strh r0, [r4, #0x36] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #0x20 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08093DAC - cmp r0, #1 - beq _08093DC4 - b _08093DDE -_08093DAC: - adds r0, r4, #0 - movs r1, #4 - bl sub_0805457C - cmp r0, #0 - bne _08093DBC - movs r0, #2 - strb r0, [r4, #0xc] -_08093DBC: - ldr r1, [r4, #0x54] - ldr r0, [r4, #0x20] - str r0, [r1, #0x20] - b _08093DDE -_08093DC4: - movs r0, #0 - movs r1, #0x5f - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08093DDE - movs r0, #5 - strb r0, [r1, #0xe] - adds r0, r4, #0 - bl sub_08093E10 -_08093DDE: - pop {r4, pc} - - thumb_func_start sub_08093DE0 -sub_08093DE0: @ 0x08093DE0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08093DF4 - movs r0, #2 - strb r0, [r2, #0xc] -_08093DF4: - ldrb r1, [r2, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08093E06 - ldr r1, [r2, #0x54] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] -_08093E06: - pop {pc} - - thumb_func_start sub_08093E08 -sub_08093E08: @ 0x08093E08 - push {lr} - bl sub_0805E7BC - pop {pc} - - thumb_func_start sub_08093E10 -sub_08093E10: @ 0x08093E10 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_0806FA24 - str r4, [r5, #0x50] - str r5, [r4, #0x54] - ldr r0, [r4, #0x20] - str r0, [r5, #0x20] - pop {r4, r5, pc} - - thumb_func_start sub_08093E24 -sub_08093E24: @ 0x08093E24 - push {lr} - ldr r2, _08093E38 @ =gUnk_0812295C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08093E38: .4byte gUnk_0812295C - - thumb_func_start sub_08093E3C -sub_08093E3C: @ 0x08093E3C - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08093E6A - adds r0, r4, #0 - bl sub_08016A30 -_08093E6A: - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - ldr r1, _08093EA8 @ =gUnk_08122950 - adds r2, r0, r1 - ldrh r0, [r2] - cmp r0, #0 - beq _08093E90 - ldrb r1, [r4, #0xb] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08093E90 - ldrh r0, [r2] - bl sub_08004488 -_08093E90: - ldrb r1, [r4, #0xb] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08093EA6 - ldrb r0, [r4, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x19] -_08093EA6: - pop {r4, pc} - .align 2, 0 -_08093EA8: .4byte gUnk_08122950 - - thumb_func_start sub_08093EAC -sub_08093EAC: @ 0x08093EAC - push {lr} - ldr r3, _08093EC8 @ =gUnk_08122964 - ldr r2, _08093ECC @ =gUnk_08122950 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldrb r1, [r1, #2] - lsrs r1, r1, #4 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08093EC8: .4byte gUnk_08122964 -_08093ECC: .4byte gUnk_08122950 - - thumb_func_start sub_08093ED0 -sub_08093ED0: @ 0x08093ED0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08093EEC - adds r0, r4, #0 - bl sub_0805E7BC -_08093EEC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08093EF0 -sub_08093EF0: @ 0x08093EF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xa] - cmp r4, #1 - beq _08093F40 - cmp r4, #1 - bgt _08093F04 - cmp r4, #0 - beq _08093F0A - b _08093FB0 -_08093F04: - cmp r4, #2 - beq _08093F98 - b _08093FB0 -_08093F0A: - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _08093FB0 - adds r0, r5, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08093FB0 - movs r0, #0x64 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08093F8E - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - adds r0, r5, #0 - bl sub_0806FA24 - b _08093F8E -_08093F40: - adds r0, r5, #0 - bl sub_08004274 - adds r1, r5, #0 - adds r1, #0x5a - ldrb r0, [r1] - ands r4, r0 - adds r6, r1, #0 - cmp r4, #0 - beq _08093F72 - movs r0, #0 - strb r0, [r6] - movs r0, #0x64 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08093F72 - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - adds r0, r5, #0 - bl sub_0806FA24 -_08093F72: - ldrb r1, [r6] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08093FB0 - ldr r1, [r5, #0x50] - ldr r0, _08093F94 @ =gLinkEntity - cmp r1, r0 - bne _08093F8E - movs r0, #0x7a - bl sub_080A3268 - bl sub_08079D84 -_08093F8E: - bl sub_0805E780 - b _08093FB0 - .align 2, 0 -_08093F94: .4byte gLinkEntity -_08093F98: - adds r0, r5, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08093FB0 - bl sub_0805E780 -_08093FB0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08093FB4 -sub_08093FB4: @ 0x08093FB4 - push {lr} - ldr r2, _08093FC8 @ =gUnk_081229B4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08093FC8: .4byte gUnk_081229B4 - - thumb_func_start sub_08093FCC -sub_08093FCC: @ 0x08093FCC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #2 - strb r1, [r2] - bl sub_08016A04 - pop {pc} - - thumb_func_start sub_08093FE0 -sub_08093FE0: @ 0x08093FE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08094064 - cmp r0, #0 - beq _08094062 - adds r3, r4, #0 - adds r3, #0x38 - ldrb r0, [r3] - cmp r0, #2 - bne _08094024 - ldr r0, _08094020 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x1e - bgt _08094002 - cmp r0, #0x1d - bge _08094062 -_08094002: - movs r0, #1 - strb r0, [r3] - adds r0, r4, #0 - bl sub_08016A04 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - b _08094060 - .align 2, 0 -_08094020: .4byte gLinkEntity -_08094024: - ldr r0, _0809404C @ =gLinkEntity - ldrb r2, [r0, #0xc] - cmp r2, #0x1e - bgt _08094050 - cmp r2, #0x1d - blt _08094050 - movs r0, #2 - strb r0, [r3] - adds r0, r4, #0 - bl sub_08016A04 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - b _08094060 - .align 2, 0 -_0809404C: .4byte gLinkEntity -_08094050: - adds r2, r0, #0 - adds r2, #0x38 - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08094062 - movs r0, #1 -_08094060: - strb r0, [r2] -_08094062: - pop {r4, pc} - - thumb_func_start sub_08094064 -sub_08094064: @ 0x08094064 - push {lr} - movs r2, #1 - ldr r1, _08094080 @ =gLinkEntity - movs r3, #0x2e - ldrsh r1, [r1, r3] - movs r3, #0x2e - ldrsh r0, [r0, r3] - subs r1, r1, r0 - adds r1, #0x1c - cmp r1, #0x38 - bls _0809407C - movs r2, #0 -_0809407C: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_08094080: .4byte gLinkEntity - - thumb_func_start sub_08094084 -sub_08094084: @ 0x08094084 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0809412A - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080940CA - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #5 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_080940CA: - ldrh r0, [r5, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - strh r0, [r4, #0x32] - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x19] - movs r0, #0x36 - ldrsh r1, [r5, r0] - movs r0, #0x40 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08094108 - movs r3, #0x80 - lsls r3, r3, #1 - movs r2, #0x80 - lsls r2, r2, #2 - b _0809411E -_08094108: - movs r1, #0x36 - ldrsh r0, [r5, r1] - adds r0, #0x40 - lsls r2, r0, #1 - movs r1, #0x80 - lsls r1, r1, #1 - subs r3, r1, r2 - lsls r0, r0, #2 - movs r1, #0x80 - lsls r1, r1, #2 - subs r2, r1, r0 -_0809411E: - adds r0, r4, #0 - adds r1, r3, #0 - movs r3, #0 - bl sub_0805EC9C - b _0809412E -_0809412A: - bl sub_0805E780 -_0809412E: - pop {r4, r5, pc} - - thumb_func_start sub_08094130 -sub_08094130: @ 0x08094130 - push {lr} - ldr r2, _08094144 @ =gUnk_081229BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08094144: .4byte gUnk_081229BC - - thumb_func_start sub_08094148 -sub_08094148: @ 0x08094148 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _08094154 - b _08094254 -_08094154: - cmp r0, #1 - bgt _0809415E - cmp r0, #0 - beq _080941A8 - b _0809438A -_0809415E: - cmp r0, #2 - beq _08094164 - b _0809438A -_08094164: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08094180 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xb4 - lsls r0, r0, #1 - str r0, [r4, #0x78] - ldr r0, _0809417C @ =gUnk_03000BF0 - str r4, [r0, #0x30] - b _08094198 - .align 2, 0 -_0809417C: .4byte gUnk_03000BF0 -_08094180: - ldr r0, [r4, #0x78] - subs r0, #1 - str r0, [r4, #0x78] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _08094198 - ldr r1, _080941A0 @ =gUnk_03000BF0 - ldr r0, _080941A4 @ =gLinkEntity - str r0, [r1, #0x30] - bl sub_0805E780 -_08094198: - bl sub_08078B48 - b _08094394 - .align 2, 0 -_080941A0: .4byte gUnk_03000BF0 -_080941A4: .4byte gLinkEntity -_080941A8: - ldr r1, _08094228 @ =gUnk_081229D0 - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #1] - strb r0, [r4, #0x15] - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #3] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r4, #0x32] - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r2, [r0] - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _080941F0 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_080941F0: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08094200 - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_08094200: - ldrb r0, [r4, #0xb] - cmp r0, #3 - bhi _08094230 - bl sub_08000E50 - ldr r1, _0809422C @ =0x0001FFFF - ands r1, r0 - movs r0, #0xa0 - lsls r0, r0, #0xa - orrs r0, r1 - str r0, [r4, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0x56 - bl sub_08004260 - b _0809438A - .align 2, 0 -_08094228: .4byte gUnk_081229D0 -_0809422C: .4byte 0x0001FFFF -_08094230: - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - ldrb r1, [r4, #0x15] - orrs r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0x57 - bl sub_08004260 - b _0809438A -_08094254: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08094272 - adds r0, r4, #0 - movs r1, #0x67 - movs r2, #1 - movs r3, #0x80 - bl sub_080A2988 - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08094272 - ldr r0, [r4, #0x50] - str r0, [r1, #0x54] -_08094272: - ldrb r0, [r4, #0xb] - cmp r0, #0x80 - bne _0809427A - b _08094380 -_0809427A: - movs r2, #0 - movs r0, #0x4b - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x19] - subs r0, #0x58 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - movs r1, #0xe0 - lsls r1, r1, #7 - strh r1, [r4, #0x24] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0xb] - lsls r0, r0, #3 - ldr r1, _080942E8 @ =gUnk_081229F0 - adds r3, r0, r1 - movs r0, #0 - ldrsb r0, [r3, r0] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r3, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r0, [r3, #2] - strb r0, [r4, #0xe] - ldrb r0, [r3, #3] - strb r0, [r4, #0xf] - movs r0, #0xce - str r0, [r4, #0x7c] - str r2, [r4, #0x74] - ldrb r1, [r3, #4] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080942EC - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xff - lsls r0, r0, #8 - b _080942F4 - .align 2, 0 -_080942E8: .4byte gUnk_081229F0 -_080942EC: - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0x80 - lsls r0, r0, #1 -_080942F4: - strh r0, [r1] - ldrb r1, [r3, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809430A - adds r1, r4, #0 - adds r1, #0x86 - movs r0, #0xff - lsls r0, r0, #8 - b _08094312 -_0809430A: - adds r1, r4, #0 - adds r1, #0x86 - movs r0, #0x80 - lsls r0, r0, #1 -_08094312: - strh r0, [r1] - adds r0, r4, #0 - bl sub_0806FBD8 - cmp r0, #0 - beq _0809438A - ldr r2, [r4, #0x48] - ldr r1, _0809437C @ =gUnk_080FD2E8 - ldrb r0, [r1] - strb r0, [r2] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #1] - strb r0, [r2, #1] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #2] - strb r0, [r2, #2] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #3] - strb r0, [r2, #3] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #4] - strb r0, [r2, #4] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #5] - strb r0, [r2, #5] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #6] - strb r0, [r2, #6] - ldr r2, [r4, #0x48] - ldrb r0, [r1, #7] - strb r0, [r2, #7] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r1, #4 - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0x7a - strb r0, [r1] - subs r1, #4 - movs r0, #1 - strb r0, [r1] - b _0809438A - .align 2, 0 -_0809437C: .4byte gUnk_080FD2E8 -_08094380: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0809438A: - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08094398 -_08094394: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094398 -sub_08094398: @ 0x08094398 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080943A8 - cmp r0, #1 - beq _080943D8 - b _08094420 -_080943A8: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08094420 - ldrb r0, [r4, #0xb] - cmp r0, #3 - bhi _080943D2 - adds r0, r4, #0 - movs r1, #0xc - movs r2, #0 - bl CreateFX -_080943D2: - bl sub_0805E780 - b _08094420 -_080943D8: - ldrb r1, [r4, #0xb] - cmp r1, #0x80 - beq _0809440A - ldr r0, [r4, #0x7c] - subs r0, #1 - str r0, [r4, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080943F6 - movs r0, #0x96 - lsls r0, r0, #2 - str r0, [r4, #0x7c] - movs r0, #2 - strb r0, [r4, #0xc] -_080943F6: - adds r0, r4, #0 - adds r0, #0x82 - ldrh r1, [r0] - adds r0, #4 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - b _08094420 -_0809440A: - ldr r0, [r4, #0x54] - adds r0, #0x79 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0809441A - bl sub_0805E780 -_0809441A: - adds r0, r4, #0 - bl sub_08094660 -_08094420: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094424 -sub_08094424: @ 0x08094424 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r3, r6, #0 - adds r3, #0x82 - movs r1, #0 - ldrsh r0, [r3, r1] - cmp r0, #0 - bge _08094452 - adds r1, r6, #0 - adds r1, #0x80 - movs r0, #0x24 - ldrsh r2, [r6, r0] - ldr r0, [r1] - adds r0, r0, r2 - str r0, [r1] - movs r2, #0 - ldrsh r0, [r3, r2] - rsbs r0, r0, #0 - mov r8, r0 - adds r5, r1, #0 - b _08094466 -_08094452: - adds r0, r6, #0 - adds r0, #0x80 - movs r1, #0x24 - ldrsh r2, [r6, r1] - ldr r1, [r0] - subs r1, r1, r2 - str r1, [r0] - ldrh r3, [r3] - mov r8, r3 - adds r5, r0, #0 -_08094466: - adds r0, r6, #0 - adds r0, #0x86 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r4, r0, #0 - cmp r1, #0 - bge _0809448C - adds r1, r6, #0 - adds r1, #0x84 - movs r0, #0x24 - ldrsh r2, [r6, r0] - ldr r0, [r1] - adds r0, r0, r2 - str r0, [r1] - movs r2, #0 - ldrsh r0, [r4, r2] - rsbs r7, r0, #0 - adds r3, r1, #0 - b _0809449E -_0809448C: - adds r0, r6, #0 - adds r0, #0x84 - movs r1, #0x24 - ldrsh r2, [r6, r1] - ldr r1, [r0] - subs r1, r1, r2 - str r1, [r0] - ldrh r7, [r4] - adds r3, r0, #0 -_0809449E: - ldrh r2, [r6, #0x24] - movs r0, #0x24 - ldrsh r1, [r6, r0] - movs r0, #0x80 - lsls r0, r0, #6 - cmp r1, r0 - ble _080944B2 - ldr r1, _080944D0 @ =0xFFFFFF00 - adds r0, r2, r1 - strh r0, [r6, #0x24] -_080944B2: - ldr r0, [r6, #0x7c] - subs r0, #1 - str r0, [r6, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080944D4 - movs r0, #0 - strh r0, [r5] - strh r0, [r3] - movs r0, #3 - strb r0, [r6, #0xc] - movs r0, #0x78 - str r0, [r6, #0x7c] - b _08094500 - .align 2, 0 -_080944D0: .4byte 0xFFFFFF00 -_080944D4: - adds r5, r6, #0 - adds r5, #0x82 - movs r2, #0 - ldrsh r1, [r5, r2] - ldrb r3, [r6, #0xe] - adds r0, r6, #0 - movs r2, #0x20 - bl sub_0806FCF4 - movs r0, #0 - ldrsh r1, [r4, r0] - ldrb r3, [r6, #0xf] - adds r0, r6, #0 - movs r2, #0x20 - bl sub_0806FCF4 - ldrh r1, [r5] - ldrh r2, [r4] - adds r0, r6, #0 - movs r3, #0 - bl sub_0805EC9C -_08094500: - ldr r5, [r6, #0x48] - cmp r5, #0 - beq _08094538 - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - mov r1, r8 - bl __divsi3 - lsrs r0, r0, #3 - strb r0, [r5, #6] - ldr r5, [r6, #0x48] - adds r0, r4, #0 - adds r1, r7, #0 - bl __divsi3 - lsrs r0, r0, #3 - strb r0, [r5, #7] - ldr r1, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x62 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x63 - ldrb r0, [r0] - strb r0, [r1, #1] -_08094538: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08094540 -sub_08094540: @ 0x08094540 - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x7c] - subs r0, #1 - str r0, [r3, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0809455A - movs r0, #4 - strb r0, [r3, #0xc] - movs r0, #2 - str r0, [r3, #0x7c] -_0809455A: - adds r0, r3, #0 - adds r0, #0x82 - ldrh r1, [r0] - adds r0, #4 - ldrh r2, [r0] - adds r0, r3, #0 - movs r3, #0 - bl sub_0805EC9C - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094570 -sub_08094570: @ 0x08094570 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r2, r6, #0 - adds r2, #0x82 - ldrh r1, [r2] - lsls r3, r1, #0x10 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08094590 - asrs r3, r3, #0x10 - ldr r0, _080945B0 @ =0xFFFFFF00 - cmp r3, r0 - bne _080945BA -_08094590: - ldr r1, [r6, #0x7c] - cmp r1, #0 - bne _080945B4 - ldr r0, [r6, #0x50] - adds r0, #0x7c - strh r1, [r0] - ldr r0, [r6, #0x50] - adds r0, #0x79 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08094622 - bl sub_0805E780 - b _08094622 - .align 2, 0 -_080945B0: .4byte 0xFFFFFF00 -_080945B4: - subs r0, r1, #1 - str r0, [r6, #0x7c] - b _08094622 -_080945BA: - cmp r3, #0 - bge _080945CC - subs r0, r1, #1 - strh r0, [r2] - movs r1, #0 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - mov r8, r0 - b _080945D4 -_080945CC: - adds r0, r1, #1 - strh r0, [r2] - ldrh r2, [r2] - mov r8, r2 -_080945D4: - adds r0, r6, #0 - adds r0, #0x86 - ldrh r2, [r0] - movs r3, #0 - ldrsh r1, [r0, r3] - adds r4, r0, #0 - cmp r1, #0 - bge _080945F0 - subs r0, r2, #1 - strh r0, [r4] - movs r1, #0 - ldrsh r0, [r4, r1] - rsbs r7, r0, #0 - b _080945F6 -_080945F0: - adds r0, r2, #1 - strh r0, [r4] - ldrh r7, [r4] -_080945F6: - adds r5, r6, #0 - adds r5, #0x82 - movs r3, #0 - ldrsh r1, [r5, r3] - ldrb r3, [r6, #0xe] - adds r0, r6, #0 - movs r2, #0x20 - bl sub_0806FCF4 - movs r0, #0 - ldrsh r1, [r4, r0] - ldrb r3, [r6, #0xf] - adds r0, r6, #0 - movs r2, #0x20 - bl sub_0806FCF4 - ldrh r1, [r5] - ldrh r2, [r4] - adds r0, r6, #0 - movs r3, #0 - bl sub_0805EC9C -_08094622: - ldr r5, [r6, #0x48] - cmp r5, #0 - beq _0809465A - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - mov r1, r8 - bl __divsi3 - lsrs r0, r0, #3 - strb r0, [r5, #6] - ldr r5, [r6, #0x48] - adds r0, r4, #0 - adds r1, r7, #0 - bl __divsi3 - lsrs r0, r0, #3 - strb r0, [r5, #7] - ldr r1, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x62 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x63 - ldrb r0, [r0] - strb r0, [r1, #1] -_0809465A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08094660 -sub_08094660: @ 0x08094660 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldr r0, [r6, #0x50] - adds r0, #0x62 - movs r7, #0 - ldrsb r7, [r0, r7] - cmp r7, #0 - bge _08094678 - rsbs r7, r7, #0 -_08094678: - lsls r7, r7, #1 - adds r0, r7, #0 - cmp r7, #0 - bge _08094682 - adds r0, #0xf -_08094682: - asrs r1, r0, #4 - ldr r0, [r6, #0x74] - cmp r0, r1 - bhs _08094700 - str r1, [r6, #0x74] - movs r1, #0x2e - ldrsh r0, [r6, r1] - subs r0, r0, r7 - adds r4, r0, #0 - subs r4, #0x40 - movs r1, #0x32 - ldrsh r0, [r6, r1] - subs r0, r0, r7 - adds r5, r0, #0 - subs r5, #0x40 - movs r0, #0x10 - mov sb, r0 - str r0, [r6, #0x78] - movs r1, #0 - mov r8, r1 - str r1, [r6, #0x7c] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08094708 - mov r0, r8 - str r0, [r6, #0x78] - mov r1, sb - str r1, [r6, #0x7c] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08094708 - movs r1, #0x2e - ldrsh r0, [r6, r1] - adds r0, r0, r7 - adds r4, r0, #0 - adds r4, #0x30 - movs r1, #0x32 - ldrsh r0, [r6, r1] - adds r0, r0, r7 - adds r5, r0, #0 - adds r5, #0x30 - movs r7, #0x10 - rsbs r7, r7, #0 - str r7, [r6, #0x78] - mov r0, r8 - str r0, [r6, #0x7c] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08094708 - mov r1, r8 - str r1, [r6, #0x78] - str r7, [r6, #0x7c] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_08094708 -_08094700: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08094708 -sub_08094708: @ 0x08094708 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r7, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - ldr r0, [r7, #0x74] - lsls r0, r0, #1 - adds r4, r0, #0 - adds r4, #8 - cmp r4, #0 - beq _08094752 - ldr r3, _08094758 @ =gUnk_03000BF0 - movs r2, #0x3f -_08094722: - ldrh r0, [r3, #6] - subs r0, r6, r0 - lsrs r0, r0, #4 - ands r0, r2 - ldrh r1, [r3, #8] - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #2 - str r2, [sp] - str r3, [sp, #4] - bl sub_0807BA8C - ldr r0, [r7, #0x78] - adds r6, r6, r0 - ldr r0, [r7, #0x7c] - adds r5, r5, r0 - subs r4, #1 - ldr r2, [sp] - ldr r3, [sp, #4] - cmp r4, #0 - bne _08094722 -_08094752: - add sp, #8 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08094758: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809475C -sub_0809475C: @ 0x0809475C - push {lr} - ldr r2, _08094770 @ =gUnk_08122A10 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08094770: .4byte gUnk_08122A10 - - thumb_func_start sub_08094774 -sub_08094774: @ 0x08094774 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0xa] - cmp r0, #8 - bls _08094784 - b _080948C6 -_08094784: - lsls r0, r0, #2 - ldr r1, _08094790 @ =_08094794 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08094790: .4byte _08094794 -_08094794: @ jump table - .4byte _080947B8 @ case 0 - .4byte _08094824 @ case 1 - .4byte _080948B0 @ case 2 - .4byte _080948C6 @ case 3 - .4byte _080948C6 @ case 4 - .4byte _080948C6 @ case 5 - .4byte _080948C6 @ case 6 - .4byte _080948C6 @ case 7 - .4byte _080948C6 @ case 8 -_080947B8: - adds r0, r5, #0 - movs r1, #0xb - movs r2, #0 - bl CreateFX - adds r6, r0, #0 - str r6, [r5, #0x54] - cmp r6, #0 - beq _080947EE - ldr r0, _0809480C @ =gLinkEntity - ldr r4, _08094810 @ =gUnk_08122A18 - ldrb r3, [r0, #0x14] - movs r1, #6 - ands r1, r3 - adds r1, r1, r4 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r1, #1 - orrs r1, r3 - adds r1, r1, r4 - movs r3, #0 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r1, r6, #0 - bl PositionRelative -_080947EE: - ldr r0, [r5, #0x54] - adds r1, r5, #0 - bl sub_0806FA24 - ldr r1, _08094814 @ =0x00004032 - ldr r2, _08094818 @ =0x00004033 - adds r0, r5, #0 - bl sub_08094980 - ldr r1, _0809481C @ =0x00004061 - ldr r2, _08094820 @ =0x00004022 - adds r0, r5, #0 - bl sub_08094980 - b _080948C6 - .align 2, 0 -_0809480C: .4byte gLinkEntity -_08094810: .4byte gUnk_08122A18 -_08094814: .4byte 0x00004032 -_08094818: .4byte 0x00004033 -_0809481C: .4byte 0x00004061 -_08094820: .4byte 0x00004022 -_08094824: - adds r0, r5, #0 - movs r1, #0x2b - movs r2, #0 - bl CreateFX - adds r6, r0, #0 - str r6, [r5, #0x54] - cmp r6, #0 - beq _0809485A - ldr r0, _08094898 @ =gLinkEntity - ldr r4, _0809489C @ =gUnk_08122A18 - ldrb r3, [r0, #0x14] - movs r1, #6 - ands r1, r3 - adds r1, r1, r4 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r1, #1 - orrs r1, r3 - adds r1, r1, r4 - movs r3, #0 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r1, r6, #0 - bl PositionRelative -_0809485A: - ldrb r4, [r5, #0xb] - cmp r4, #0 - bne _080948C6 - ldr r0, [r5, #0x54] - adds r1, r5, #0 - bl sub_0806FA24 - strb r4, [r5, #0xe] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r5, #0x19] - movs r0, #0x3f - ands r0, r1 - strb r0, [r5, #0x19] - ldr r1, _080948A0 @ =0x0000403B - ldr r2, _080948A4 @ =0x0000403C - adds r0, r5, #0 - bl sub_08094980 - ldr r1, _080948A8 @ =0x00004061 - ldr r2, _080948AC @ =0x00004022 - adds r0, r5, #0 - bl sub_08094980 - b _080948CA - .align 2, 0 -_08094898: .4byte gLinkEntity -_0809489C: .4byte gUnk_08122A18 -_080948A0: .4byte 0x0000403B -_080948A4: .4byte 0x0000403C -_080948A8: .4byte 0x00004061 -_080948AC: .4byte 0x00004022 -_080948B0: - ldr r0, _080948CC @ =gLinkEntity - movs r1, #0x60 - movs r2, #0 - bl sub_080A2A20 - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _080948C6 - movs r0, #1 - strb r0, [r1, #0xe] -_080948C6: - bl sub_0805E780 -_080948CA: - pop {r4, r5, r6, pc} - .align 2, 0 -_080948CC: .4byte gLinkEntity - - thumb_func_start sub_080948D0 -sub_080948D0: @ 0x080948D0 - push {lr} - ldr r2, _080948E4 @ =gUnk_08122A20 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080948E4: .4byte gUnk_08122A20 - - thumb_func_start sub_080948E8 -sub_080948E8: @ 0x080948E8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - cmp r1, #0x3b - bhi _08094978 - ldr r0, [r4, #0x34] - ldr r2, _0809495C @ =0xFFFFC000 - adds r0, r0, r2 - str r0, [r4, #0x34] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08094970 - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r3, r0, #0 - str r3, [r4, #0x54] - cmp r3, #0 - beq _08094970 - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - ldr r2, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - adds r2, #0x29 - lsrs r1, r1, #0x1d - ldrb r3, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08094960 - bl sub_08000E50 - ldr r2, [r4, #0x54] - movs r1, #0xf - ands r0, r1 - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - b _08094970 - .align 2, 0 -_0809495C: .4byte 0xFFFFC000 -_08094960: - bl sub_08000E50 - ldr r2, [r4, #0x54] - movs r1, #0xf - ands r0, r1 - ldrh r1, [r2, #0x2e] - subs r1, r1, r0 - strh r1, [r2, #0x2e] -_08094970: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - b _0809497C -_08094978: - bl sub_0805E780 -_0809497C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094980 -sub_08094980: @ 0x08094980 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r6, r0, #0 - str r1, [sp] - str r2, [sp, #4] - movs r0, #0 - mov r8, r0 - ldr r1, _08094A04 @ =gUnk_03000BF0 - mov sl, r1 - movs r2, #0x3f - mov sb, r2 - ldr r7, _08094A08 @ =gUnk_08122A28 -_080949A0: - movs r4, #0 - ldrsb r4, [r7, r4] - movs r5, #1 - ldrsb r5, [r7, r5] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0800029C - ldr r3, [sp] - cmp r3, r0 - bne _080949EC - movs r0, #0x2e - ldrsh r1, [r6, r0] - adds r1, r1, r4 - mov r2, sl - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - mov r3, sb - ands r1, r3 - movs r2, #0x32 - ldrsh r0, [r6, r2] - adds r0, r0, r5 - mov r3, sl - ldrh r2, [r3, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - mov r2, sb - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r2, [r0] - ldr r0, [sp, #4] - bl sub_0800015E -_080949EC: - adds r7, #2 - movs r3, #2 - add r8, r3 - mov r0, r8 - cmp r0, #9 - bls _080949A0 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08094A04: .4byte gUnk_03000BF0 -_08094A08: .4byte gUnk_08122A28 - - thumb_func_start sub_08094A0C -sub_08094A0C: @ 0x08094A0C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08094A3E - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08094A34 - movs r0, #1 - strb r0, [r2, #0xc] - ldr r0, _08094A30 @ =gUnk_080FD170 - str r0, [r2, #0x48] - adds r0, r2, #0 - bl sub_0807DD50 - b _08094A42 - .align 2, 0 -_08094A30: .4byte gUnk_080FD170 -_08094A34: - adds r0, r2, #0 - movs r1, #0 - bl sub_0807DD94 - b _08094A42 -_08094A3E: - movs r0, #1 - strb r0, [r2, #0xc] -_08094A42: - pop {pc} - - thumb_func_start sub_08094A44 -sub_08094A44: @ 0x08094A44 - push {lr} - ldr r2, _08094A58 @ =gUnk_08122A34 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08094A58: .4byte gUnk_08122A34 - - thumb_func_start sub_08094A5C -sub_08094A5C: @ 0x08094A5C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094A78 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_08094A78: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094A90 -sub_08094A90: @ 0x08094A90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094ACE - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - ldr r1, _08094AE4 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0807DD64 -_08094ACE: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08094AE4: .4byte gUnk_08114F30 - - thumb_func_start sub_08094AE8 -sub_08094AE8: @ 0x08094AE8 - push {r4, r5, lr} - adds r5, r1, #0 - movs r0, #0x6a - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08094B08 - ldr r1, [r5, #4] - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08094B08: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08094B0C -sub_08094B0C: @ 0x08094B0C - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x36] - subs r0, #1 - movs r3, #0 - strh r0, [r2, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _08094B30 - ldr r0, _08094B2C @ =0x0000FFE0 - strh r0, [r2, #0x36] - b _08094B34 - .align 2, 0 -_08094B2C: .4byte 0x0000FFE0 -_08094B30: - ldr r0, _08094B38 @ =gUnk_02033280 - strb r3, [r0, #6] -_08094B34: - pop {pc} - .align 2, 0 -_08094B38: .4byte gUnk_02033280 - - thumb_func_start sub_08094B3C -sub_08094B3C: @ 0x08094B3C - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x34] - movs r1, #0x80 - lsls r1, r1, #8 - adds r0, r0, r1 - str r0, [r2, #0x34] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0xd - rsbs r0, r0, #0 - cmp r1, r0 - blt _08094B60 - ldr r0, _08094B5C @ =0x0000FFF3 - strh r0, [r2, #0x36] - b _08094B66 - .align 2, 0 -_08094B5C: .4byte 0x0000FFF3 -_08094B60: - ldr r1, _08094B68 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_08094B66: - pop {pc} - .align 2, 0 -_08094B68: .4byte gUnk_02033280 - - thumb_func_start sub_08094B6C -sub_08094B6C: @ 0x08094B6C - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x18 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_08094B80 -sub_08094B80: @ 0x08094B80 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_08094B94 -sub_08094B94: @ 0x08094B94 - push {r4, lr} - movs r0, #0x6a - movs r1, #0x22 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08094BD2 - ldr r0, _08094BD4 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, _08094BD8 @ =0x0000FFD0 - strh r0, [r4, #0x36] - ldr r1, _08094BDC @ =gUnk_0800AEDC - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - adds r0, r4, #0 - bl sub_080A29BC - ldrh r0, [r4, #0x36] - adds r0, #0x10 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_08094BD2: - pop {r4, pc} - .align 2, 0 -_08094BD4: .4byte gLinkEntity -_08094BD8: .4byte 0x0000FFD0 -_08094BDC: .4byte gUnk_0800AEDC - - thumb_func_start sub_08094BE0 -sub_08094BE0: @ 0x08094BE0 - push {r4, lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #0x22 - bl sub_0805EB2C - adds r4, r0, #0 - cmp r4, #0 - beq _08094C22 - ldr r0, _08094C28 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, _08094C2C @ =0x0000FFF4 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_08094C22: - add sp, #4 - pop {r4, pc} - .align 2, 0 -_08094C28: .4byte gLinkEntity -_08094C2C: .4byte 0x0000FFF4 - - thumb_func_start sub_08094C30 -sub_08094C30: @ 0x08094C30 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - beq _08094C40 - ldr r0, [r5, #4] - cmp r0, #0 - bne _08094C44 -_08094C40: - bl sub_0805E780 -_08094C44: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094C74 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - ldr r1, _08094C84 @ =gUnk_08114F30 - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_08094C74: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_08094C84: .4byte gUnk_08114F30 - - thumb_func_start sub_08094C88 -sub_08094C88: @ 0x08094C88 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xc] - cmp r1, #0 - beq _08094CA0 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08094CCC - bl sub_0805E780 - b _08094CDA -_08094CA0: - adds r0, r1, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r0, [r5, #0xb] - cmp r0, #0x43 - bgt _08094CCC - cmp r0, #0x40 - blt _08094CCC - adds r0, r5, #0 - adds r1, r5, #0 - bl sub_0806FAD8 -_08094CCC: - ldrb r4, [r5, #0xa] - ldrb r0, [r5, #0xb] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] -_08094CDA: - pop {r4, r5, pc} - - thumb_func_start sub_08094CDC -sub_08094CDC: @ 0x08094CDC - push {lr} - movs r0, #0x6a - movs r1, #3 - movs r2, #0x62 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08094D0A - ldr r1, _08094D0C @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #0xe0 - strh r0, [r2, #0x2e] - movs r3, #0x96 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #0xa2 - lsls r0, r0, #1 - bl sub_080A3268 -_08094D0A: - pop {pc} - .align 2, 0 -_08094D0C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08094D10 -sub_08094D10: @ 0x08094D10 - push {lr} - sub sp, #4 - movs r0, #0x62 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #3 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _08094D2E - movs r0, #0xff - strb r0, [r1, #0xc] -_08094D2E: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094D34 -sub_08094D34: @ 0x08094D34 - push {lr} - movs r0, #0x6a - movs r1, #0x15 - movs r2, #0xd - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08094D68 - ldr r1, _08094D6C @ =gUnk_03000BF0 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r3, #0x96 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #0xa2 - lsls r0, r0, #1 - bl sub_080A3268 -_08094D68: - pop {pc} - .align 2, 0 -_08094D6C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08094D70 -sub_08094D70: @ 0x08094D70 - push {lr} - sub sp, #4 - movs r0, #0xd - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #0x15 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _08094D8E - movs r0, #0xff - strb r0, [r1, #0xc] -_08094D8E: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094D94 -sub_08094D94: @ 0x08094D94 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #0 - beq _08094DAC - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08094DCE - bl sub_0805E780 - b _08094DD4 -_08094DAC: - adds r0, r1, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_08094DCE: - adds r0, r4, #0 - bl sub_080042B8 -_08094DD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094DD8 -sub_08094DD8: @ 0x08094DD8 - push {lr} - movs r0, #0x6a - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08094E06 - ldr r1, _08094E08 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #0xf0 - strh r0, [r2, #0x2e] - movs r3, #0x96 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #0xa2 - lsls r0, r0, #1 - bl sub_080A3268 -_08094E06: - pop {pc} - .align 2, 0 -_08094E08: .4byte gUnk_03000BF0 - - thumb_func_start sub_08094E0C -sub_08094E0C: @ 0x08094E0C - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #4 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _08094E2A - movs r0, #0xff - strb r0, [r1, #0xc] -_08094E2A: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094E30 -sub_08094E30: @ 0x08094E30 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08094E88 - ldr r0, _08094E80 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - beq _08094E48 - b _08094F94 -_08094E48: - movs r0, #0x6a - movs r1, #5 - movs r2, #1 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - bne _08094E5A - b _08094F94 -_08094E5A: - bl sub_08000E50 - ldr r4, _08094E84 @ =gUnk_03000BF0 - movs r1, #0xf0 - bl __modsi3 - ldrh r1, [r4, #0xa] - adds r1, r1, r0 - strh r1, [r5, #0x2e] - bl sub_08000E50 - movs r1, #0xa0 - bl __modsi3 - ldrh r1, [r4, #0xc] - adds r1, r1, r0 - strh r1, [r5, #0x32] - b _08094F94 - .align 2, 0 -_08094E80: .4byte gUnk_030010A0 -_08094E84: .4byte gUnk_03000BF0 -_08094E88: - cmp r0, #1 - bne _08094F44 - ldrb r1, [r4, #0xc] - cmp r1, #1 - beq _08094ED4 - cmp r1, #1 - bgt _08094E9C - cmp r1, #0 - beq _08094EA6 - b _08094F94 -_08094E9C: - cmp r1, #2 - beq _08094F08 - cmp r1, #3 - beq _08094F22 - b _08094F94 -_08094EA6: - strb r0, [r4, #0xc] - ldr r0, _08094ED0 @ =0xFF600000 - str r0, [r4, #0x34] - str r1, [r4, #0x20] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0xd - bne _08094F94 - movs r0, #3 - strb r0, [r4, #0xc] - b _08094F94 - .align 2, 0 -_08094ED0: .4byte 0xFF600000 -_08094ED4: - ldr r1, [r4, #0x34] - ldr r0, [r4, #0x20] - subs r1, r1, r0 - str r1, [r4, #0x34] - ldr r2, _08094F04 @ =0xFFFFE000 - adds r0, r0, r2 - str r0, [r4, #0x20] - cmp r1, #0 - ble _08094F94 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - str r1, [r4, #0x34] - str r1, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - movs r0, #0xbf - lsls r0, r0, #1 - bl sub_08004488 - b _08094F94 - .align 2, 0 -_08094F04: .4byte 0xFFFFE000 -_08094F08: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08094F94 - bl sub_0805E780 - b _08094F94 -_08094F22: - ldr r0, [r4, #0x34] - ldr r1, [r4, #0x20] - subs r0, r0, r1 - str r0, [r4, #0x34] - ldr r0, _08094F40 @ =0xFFFFE000 - adds r1, r1, r0 - str r1, [r4, #0x20] - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08094F94 - bl sub_0805E780 - b _08094F94 - .align 2, 0 -_08094F40: .4byte 0xFFFFE000 -_08094F44: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094F94 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #1 - beq _08094F68 - cmp r0, #1 - bgt _08094F5E - cmp r0, #0 - beq _08094F7A - b _08094F94 -_08094F5E: - cmp r0, #2 - beq _08094F72 - cmp r0, #3 - beq _08094F84 - b _08094F94 -_08094F68: - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _08094F94 -_08094F72: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_08094F7A: - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _08094F94 -_08094F84: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_08094F94: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08094F98 -sub_08094F98: @ 0x08094F98 - push {lr} - movs r0, #0x6a - movs r1, #5 - movs r2, #0 - bl CreateObject - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094FA8 -sub_08094FA8: @ 0x08094FA8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #4 - bhi _08095086 - lsls r0, r0, #2 - ldr r1, _08094FBC @ =_08094FC0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08094FBC: .4byte _08094FC0 -_08094FC0: @ jump table - .4byte _08094FD4 @ case 0 - .4byte _08094FF0 @ case 1 - .4byte _08095024 @ case 2 - .4byte _08095040 @ case 3 - .4byte _08095070 @ case 4 -_08094FD4: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080787B4 - b _08095086 -_08094FF0: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08095086 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080788E0 - ldr r0, _08095020 @ =gUnk_03003F80 - movs r1, #0xc - strb r1, [r0, #0xc] - adds r0, #0x38 - movs r1, #0x36 - strb r1, [r0] - movs r0, #2 - bl sub_08078A90 - b _08095086 - .align 2, 0 -_08095020: .4byte gUnk_03003F80 -_08095024: - movs r0, #0x36 - bl GetInventoryValue - cmp r0, #2 - bne _08095086 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08095086 -_08095040: - ldr r0, _0809506C @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xc - beq _08095086 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x5b - bl GetProgressFlag - cmp r0, #0 - bne _08095086 - movs r0, #0x1c - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - movs r0, #0x5b - bl sub_0807CD04 - movs r0, #0x3c - strb r0, [r4, #0xe] - b _08095086 - .align 2, 0 -_0809506C: .4byte gLinkEntity -_08095070: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095086 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #1 - bl sub_08078A90 -_08095086: - pop {r4, pc} - - thumb_func_start sub_08095088 -sub_08095088: @ 0x08095088 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #1 - beq _080950C8 - cmp r0, #1 - bgt _0809509C - cmp r0, #0 - beq _080950A2 - b _0809510A -_0809509C: - cmp r0, #2 - beq _080950F0 - b _0809510A -_080950A2: - movs r0, #0x5b - bl GetInventoryValue - cmp r0, #0 - beq _080950B0 - bl sub_0805E780 -_080950B0: - movs r0, #1 - strb r0, [r5, #0xc] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl sub_080787B4 - b _0809510A -_080950C8: - adds r1, r5, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0809510A - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_080788E0 - ldr r0, _080950EC @ =0x00001F1F - movs r1, #0 - bl sub_08078AA8 - b _0809510A - .align 2, 0 -_080950EC: .4byte 0x00001F1F -_080950F0: - ldr r0, _0809511C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0809510A - movs r0, #0x5b - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - bl sub_0805E780 -_0809510A: - ldrb r4, [r5, #0xa] - movs r0, #0x5b - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, pc} - .align 2, 0 -_0809511C: .4byte gUnk_02000050 - - thumb_func_start sub_08095120 -sub_08095120: @ 0x08095120 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809514C - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAD8 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_0809514C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095164 -sub_08095164: @ 0x08095164 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #8 - bl sub_0805EB2C - cmp r0, #0 - beq _08095182 - movs r1, #3 - bl sub_080042AC -_08095182: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08095188 -sub_08095188: @ 0x08095188 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080951B4 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAD8 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_080951B4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - pop {r4, pc} - - thumb_func_start sub_080951C4 -sub_080951C4: @ 0x080951C4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080951E8 - adds r0, #1 - strb r0, [r4, #0xc] - movs r1, #0 - ldr r0, _08095240 @ =0x0000FFF0 - strh r0, [r4, #0x36] - strb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 -_080951E8: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08095218 - str r0, [r4, #0x34] - str r0, [r4, #0x50] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08095218 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xe6 - bl sub_080A3268 -_08095218: - ldr r3, [r4, #0x50] - cmp r3, #0 - beq _0809523C - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r3, #0x2e] - adds r0, #0x10 - strh r0, [r4, #0x2e] - ldrh r0, [r3, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] -_0809523C: - pop {r4, pc} - .align 2, 0 -_08095240: .4byte 0x0000FFF0 - - thumb_func_start sub_08095244 -sub_08095244: @ 0x08095244 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0809527C - movs r0, #0x6a - movs r1, #0xa - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809527C - str r5, [r4, #0x50] - movs r2, #0x80 - lsls r2, r2, #0xd - ldr r3, _08095280 @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - ldr r1, _08095284 @ =gUnk_0801183C - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0809527C: - pop {r4, r5, pc} - .align 2, 0 -_08095280: .4byte 0xFFF00000 -_08095284: .4byte gUnk_0801183C - - thumb_func_start sub_08095288 -sub_08095288: @ 0x08095288 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _080952AA - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_080952AA: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _080952F0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bhi _080952D4 - movs r0, #0 - strb r0, [r4, #0xd] - movs r2, #0x80 - lsls r2, r2, #1 - movs r3, #0xc0 - lsls r3, r3, #8 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - b _080952F0 -_080952D4: - movs r2, #0x80 - lsls r2, r2, #1 - ldrb r3, [r4, #0xe] - lsls r3, r3, #8 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - ldrb r0, [r4, #0xe] - adds r0, #0xa - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806F69C -_080952F0: - ldr r3, [r4, #0x54] - cmp r3, #0 - beq _080952FE - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_080952FE: - adds r0, r4, #0 - bl sub_080042B8 - ldr r3, [r4, #0x50] - cmp r3, #0 - beq _08095328 - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r3, #4] - cmp r0, #0 - bne _0809532C - bl sub_0805E780 - b _0809532C -_08095328: - bl sub_0805E780 -_0809532C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095330 -sub_08095330: @ 0x08095330 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0xb - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809535E - str r4, [r5, #0x54] - str r5, [r4, #0x54] - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, _08095360 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0809535E: - pop {r4, r5, pc} - .align 2, 0 -_08095360: .4byte 0x0000FFF0 - - thumb_func_start sub_08095364 -sub_08095364: @ 0x08095364 - push {r4, r5, r6, lr} - ldr r6, [r0, #0x54] - cmp r6, #0 - beq _0809539E - movs r5, #0 - movs r0, #2 - strb r0, [r6, #0x1e] - adds r0, r6, #0 - adds r0, #0x38 - movs r4, #1 - strb r4, [r0] - adds r0, r6, #0 - bl sub_08016A04 - str r5, [r6, #0x54] - strb r4, [r6, #0xd] - ldr r0, _080953A0 @ =0x0000FFF0 - strh r0, [r6, #0x36] - movs r0, #7 - strb r0, [r6, #0x15] - movs r0, #0xc0 - lsls r0, r0, #0xa - str r0, [r6, #0x20] - movs r0, #0x80 - strh r0, [r6, #0x24] - adds r0, r6, #0 - movs r1, #1 - bl sub_080042AC -_0809539E: - pop {r4, r5, r6, pc} - .align 2, 0 -_080953A0: .4byte 0x0000FFF0 - - thumb_func_start sub_080953A4 -sub_080953A4: @ 0x080953A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080953E0 - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _08095414 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - ldr r1, _08095418 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - adds r0, r4, #0 - bl sub_0807DD64 -_080953E0: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xa] - cmp r0, #0xd - bne _08095412 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - ldr r1, _0809541C @ =0x00000139 - cmp r0, #0 - beq _0809540C - movs r1, #0 -_0809540C: - adds r0, r4, #0 - bl sub_0801D2B4 -_08095412: - pop {r4, pc} - .align 2, 0 -_08095414: .4byte 0x0000FFF0 -_08095418: .4byte gUnk_08114F30 -_0809541C: .4byte 0x00000139 - - thumb_func_start sub_08095420 -sub_08095420: @ 0x08095420 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0xc - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095450 - ldr r3, _08095454 @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095450: - pop {r4, r5, r6, pc} - .align 2, 0 -_08095454: .4byte 0xFFF00000 - - thumb_func_start nullsub_527 -nullsub_527: @ 0x08095458 - bx lr - .align 2, 0 - - thumb_func_start sub_0809545C -sub_0809545C: @ 0x0809545C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0xd - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _080954A6 - ldr r3, _080954A8 @ =0xFFF00000 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - ldr r1, [r6, #4] - adds r0, r5, #0 - bl sub_0807DAD0 - adds r1, r5, #0 - adds r1, #0x84 - str r0, [r1] - movs r0, #0x6a - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080954A6 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r5, [r4, #0x50] -_080954A6: - pop {r4, r5, r6, pc} - .align 2, 0 -_080954A8: .4byte 0xFFF00000 - - thumb_func_start sub_080954AC -sub_080954AC: @ 0x080954AC - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x1a - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080954D6 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, _080954D8 @ =gUnk_08015B14 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_080954D6: - pop {r4, r5, pc} - .align 2, 0 -_080954D8: .4byte gUnk_08015B14 - - thumb_func_start sub_080954DC -sub_080954DC: @ 0x080954DC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08095598 - cmp r0, #1 - bgt _080954F0 - cmp r0, #0 - beq _080954FC - b _0809562C -_080954F0: - cmp r0, #2 - beq _080955B8 - cmp r0, #3 - bne _080954FA - b _08095620 -_080954FA: - b _0809562C -_080954FC: - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _0809550A - subs r0, #1 - strb r0, [r4, #0xe] - b _0809562C -_0809550A: - movs r0, #1 - movs r2, #1 - strb r0, [r4, #0xc] - strb r5, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - strh r5, [r4, #0x36] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x6c - strh r5, [r0] - ldr r1, _08095590 @ =gUnk_08122AE0 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - adds r5, r4, #0 - adds r5, #0x6e - strb r0, [r5] - ldr r1, _08095594 @ =gUnk_08122AE8 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - bl sub_0807DD64 - ldrb r1, [r4, #0xb] - adds r1, #2 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08095754 - bl sub_08000E50 - movs r1, #6 - bl __modsi3 - movs r1, #0xde - lsls r1, r1, #1 - adds r0, r0, r1 - bl sub_080A3268 - adds r1, r5, #0 - b _08095630 - .align 2, 0 -_08095590: .4byte gUnk_08122AE0 -_08095594: .4byte gUnk_08122AE8 -_08095598: - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x10 - rsbs r2, r2, #0 - adds r1, r4, #0 - adds r1, #0x6e - cmp r0, r2 - bgt _08095630 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - strh r2, [r4, #0x36] - b _08095630 -_080955B8: - adds r5, r4, #0 - adds r5, #0x6c - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x40 - bls _080955CE - movs r0, #0x40 - strh r0, [r5] -_080955CE: - ldr r3, _0809561C @ =gUnk_080C9160 - movs r2, #0x6e - adds r2, r2, r4 - mov ip, r2 - ldrb r0, [r2] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r1, [r0, r2] - ldrh r0, [r5] - lsls r0, r0, #8 - adds r2, r1, #0 - muls r2, r0, r2 - asrs r2, r2, #0x10 - strh r2, [r4, #0x2e] - mov r1, ip - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r1, [r0, r3] - ldrh r0, [r5] - lsls r0, r0, #7 - muls r1, r0, r1 - asrs r1, r1, #0x10 - strh r1, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r2, r2, r0 - strh r2, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x6a - ldrh r0, [r0] - adds r1, r1, r0 - strh r1, [r4, #0x32] - mov r1, ip - b _08095630 - .align 2, 0 -_0809561C: .4byte gUnk_080C9160 -_08095620: - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C -_0809562C: - adds r1, r4, #0 - adds r1, #0x6e -_08095630: - ldrb r0, [r1] - adds r0, #4 - strb r0, [r1] - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0809564A - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809564A - bl sub_0805E780 -_0809564A: - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809565E - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _08095664 -_0809565E: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_08095664: - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - - thumb_func_start sub_0809567C -sub_0809567C: @ 0x0809567C - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x68 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r1, r1, #0x10 - ldr r0, [r4, #0x2c] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x6a - movs r3, #0 - ldrsh r2, [r1, r3] - lsls r2, r2, #0x10 - ldr r1, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080956B4 -sub_080956B4: @ 0x080956B4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080956E2 - adds r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - adds r4, r5, #0 - adds r4, #0x68 - ldrh r2, [r5, #0x2e] - ldrh r1, [r5, #0x32] - movs r0, #7 -_080956D4: - strh r2, [r4] - adds r4, #2 - strh r1, [r4] - adds r4, #2 - subs r0, #1 - cmp r0, #0 - bge _080956D4 -_080956E2: - adds r0, r5, #0 - bl sub_08004274 - ldrb r0, [r5, #0xb] - ldr r1, _08095724 @ =gUnk_030010A0 - ldr r1, [r1] - adds r0, r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _080956FE - adds r0, r5, #0 - bl sub_080957B4 -_080956FE: - ldr r6, [r5, #0x50] - cmp r6, #0 - beq _08095728 - ldrb r1, [r6, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldr r0, [r6, #4] - cmp r0, #0 - bne _0809572C - bl sub_0805E780 - b _0809572C - .align 2, 0 -_08095724: .4byte gUnk_030010A0 -_08095728: - bl sub_0805E780 -_0809572C: - adds r4, r5, #0 - adds r4, #0x68 - adds r0, r5, #0 - adds r0, #0x6c - adds r1, r4, #0 - movs r2, #0x1c - bl sub_0801D66C - ldrh r0, [r4, #0x14] - strh r0, [r5, #0x2e] - ldrh r0, [r4, #0x16] - strh r0, [r5, #0x32] - ldrh r0, [r6, #0x36] - strh r0, [r5, #0x36] - ldrh r0, [r6, #0x2e] - strh r0, [r4, #0x1c] - ldrh r0, [r6, #0x32] - strh r0, [r4, #0x1e] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08095754 -sub_08095754: @ 0x08095754 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r2, [r5, #0xb] - movs r0, #0x6a - movs r1, #0xf - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809577A - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0809577A: - pop {r4, r5, pc} - - thumb_func_start sub_0809577C -sub_0809577C: @ 0x0809577C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095796 - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080957B0 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08095796: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080957AE - bl sub_0805E780 -_080957AE: - pop {r4, pc} - .align 2, 0 -_080957B0: .4byte 0x0000FFF0 - - thumb_func_start sub_080957B4 -sub_080957B4: @ 0x080957B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x10 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080957DA - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_080957DA: - pop {r4, r5, pc} - - thumb_func_start sub_080957DC -sub_080957DC: @ 0x080957DC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080957F8 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_080957F8: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095810 -sub_08095810: @ 0x08095810 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x11 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095844 - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - ldr r1, _08095848 @ =gUnk_08011940 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095844: - pop {r4, r5, pc} - .align 2, 0 -_08095848: .4byte gUnk_08011940 - - thumb_func_start sub_0809584C -sub_0809584C: @ 0x0809584C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0809586C - ldr r0, _080958D0 @ =gUnk_020342F8 - subs r1, #1 - bl sub_0801D5A8 - cmp r0, #0 - bne _0809586C - bl sub_0805E780 -_0809586C: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08095880 - ldrb r0, [r5, #0xb] - bl sub_0801E7F4 - cmp r0, #0 - beq _08095880 - bl sub_0805E780 -_08095880: - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080958B2 - adds r0, #1 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - bl sub_08016A04 - ldr r1, _080958D4 @ =gUnk_08114F30 - ldrb r2, [r5, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r0, r5, #0 - bl sub_0807DD64 -_080958B2: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - ldrb r4, [r5, #0xa] - movs r0, #0x5c - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, pc} - .align 2, 0 -_080958D0: .4byte gUnk_020342F8 -_080958D4: .4byte gUnk_08114F30 - - thumb_func_start sub_080958D8 -sub_080958D8: @ 0x080958D8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080958EC - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 -_080958EC: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08095914 - adds r0, r4, #0 - bl sub_08095954 -_08095914: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095918 -sub_08095918: @ 0x08095918 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809593C - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0809593C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095954 -sub_08095954: @ 0x08095954 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x14 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080959B8 - str r5, [r4, #0x50] - ldrb r0, [r5, #0x14] - ldr r1, _080959AC @ =gUnk_08122AF8 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - ldr r0, _080959B0 @ =0x0000FFFD - strh r0, [r4, #0x36] - ldr r1, _080959B4 @ =gUnk_08012C48 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - b _080959C4 - .align 2, 0 -_080959AC: .4byte gUnk_08122AF8 -_080959B0: .4byte 0x0000FFFD -_080959B4: .4byte gUnk_08012C48 -_080959B8: - ldr r0, _080959C8 @ =gUnk_02033280 - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #1 - orrs r1, r2 - str r1, [r0] -_080959C4: - pop {r4, r5, pc} - .align 2, 0 -_080959C8: .4byte gUnk_02033280 - - thumb_func_start sub_080959CC -sub_080959CC: @ 0x080959CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080959F2 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_080959F2: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r1, r0 - adds r0, r4, #0 - bl sub_08095D30 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095A1C -sub_08095A1C: @ 0x08095A1C - push {r4, r5, lr} - adds r5, r1, #0 - movs r0, #0x6a - movs r1, #0x16 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095A5E - ldr r1, _08095A60 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #0xe8 - strh r0, [r4, #0x2e] - movs r2, #0x9c - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r0, _08095A64 @ =0x0000FFFC - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r1, [r5, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095A5E: - pop {r4, r5, pc} - .align 2, 0 -_08095A60: .4byte gUnk_03000BF0 -_08095A64: .4byte 0x0000FFFC - - thumb_func_start sub_08095A68 -sub_08095A68: @ 0x08095A68 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #0x16 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _08095A86 - movs r0, #0xff - strb r0, [r1, #0xc] -_08095A86: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08095A8C -sub_08095A8C: @ 0x08095A8C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #5 - bhi _08095B44 - lsls r0, r0, #2 - ldr r1, _08095AA0 @ =_08095AA4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08095AA0: .4byte _08095AA4 -_08095AA4: @ jump table - .4byte _08095ABC @ case 0 - .4byte _08095ACC @ case 1 - .4byte _08095ADC @ case 2 - .4byte _08095AE6 @ case 3 - .4byte _08095B12 @ case 4 - .4byte _08095B1C @ case 5 -_08095ABC: - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - bl sub_0807DD64 -_08095ACC: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - b _08095B44 -_08095ADC: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] -_08095AE6: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r5, #1 - eors r0, r5 - movs r3, #4 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095B44 - movs r0, #1 - strb r5, [r4, #0xc] - ands r2, r3 - orrs r2, r0 - b _08095B42 -_08095B12: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] -_08095B1C: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r5, #1 - eors r0, r5 - movs r3, #4 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095B44 - strb r5, [r4, #0xc] - ands r2, r3 -_08095B42: - strb r2, [r4, #0x18] -_08095B44: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08095B48 -sub_08095B48: @ 0x08095B48 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08095B78 - adds r0, #1 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - bl sub_08016A04 - ldr r1, _08095BA8 @ =gUnk_08114F30 - ldrb r2, [r5, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x19] -_08095B78: - ldrb r0, [r5, #0x18] - movs r4, #4 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r1, r0 - strb r1, [r5, #0x18] - ldr r2, [r5, #0x50] - cmp r2, #0 - beq _08095BCE - adds r0, r2, #0 - adds r0, #0x5a - ldrb r3, [r0] - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - bne _08095BAC - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _08095BCE - bl sub_0805E780 - b _08095BDC - .align 2, 0 -_08095BA8: .4byte gUnk_08114F30 -_08095BAC: - adds r0, r1, #0 - ands r0, r4 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrh r0, [r2, #0x12] - ldrb r1, [r2, #0x1e] - bl sub_080700C8 - ldrb r1, [r0] - adds r2, r5, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r0, [r0, #1] - adds r1, r5, #0 - adds r1, #0x63 - strb r0, [r1] -_08095BCE: - ldrb r4, [r5, #0xa] - ldrb r0, [r5, #0xb] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] -_08095BDC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08095BE0 -sub_08095BE0: @ 0x08095BE0 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - movs r0, #0x6a - movs r1, #0x18 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08095BFC - str r4, [r1, #0x50] - adds r0, r4, #0 - bl sub_0806FA24 -_08095BFC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095C00 -sub_08095C00: @ 0x08095C00 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xc] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08095C14 - bl sub_0805E780 - b _08095C46 -_08095C14: - ldr r3, [r2, #0x50] - cmp r3, #0 - beq _08095C46 - adds r1, r2, #0 - adds r1, #0x60 - movs r0, #0xe8 - strh r0, [r1] - ldrb r0, [r3, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08095C38 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _08095C46 -_08095C38: - ldrb r0, [r2, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r2, #0x18] -_08095C46: - pop {pc} - - thumb_func_start sub_08095C48 -sub_08095C48: @ 0x08095C48 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x6a - movs r1, #0x19 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08095C66 - str r1, [r4, #0x54] - str r4, [r1, #0x50] - adds r0, r4, #0 - bl sub_0806FA24 -_08095C66: - pop {r4, pc} - - thumb_func_start sub_08095C68 -sub_08095C68: @ 0x08095C68 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095C80 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_08095C80: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08095CAA - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bhi _08095CA4 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_08095CA4: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08095CAE -_08095CAA: - bl sub_0805E780 -_08095CAE: - pop {r4, pc} - - thumb_func_start sub_08095CB0 -sub_08095CB0: @ 0x08095CB0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x1b - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095CDC - str r4, [r5, #0x54] - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r5, #0x1e] - strb r0, [r4, #0x1e] - ldrb r0, [r5, #0x1e] - strb r0, [r4, #0x1f] -_08095CDC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08095CE0 -sub_08095CE0: @ 0x08095CE0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095D06 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_08095D06: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r1, r0 - adds r0, r4, #0 - bl sub_08095D30 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095D30 -sub_08095D30: @ 0x08095D30 - push {lr} - adds r2, r0, #0 - adds r0, r1, #0 - cmp r0, #0 - beq _08095D4E - ldr r1, _08095D50 @ =gUnk_08122B00 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r1, r0 - adds r0, r2, #0 - bl sub_0801D2B4 -_08095D4E: - pop {pc} - .align 2, 0 -_08095D50: .4byte gUnk_08122B00 - - thumb_func_start sub_08095D54 -sub_08095D54: @ 0x08095D54 - push {r4, r5, lr} - adds r5, r1, #0 - movs r0, #0x6a - movs r1, #0x1c - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095D86 - ldr r0, _08095D88 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r1, [r5, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095D86: - pop {r4, r5, pc} - .align 2, 0 -_08095D88: .4byte gLinkEntity - - thumb_func_start sub_08095D8C -sub_08095D8C: @ 0x08095D8C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0x1d - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095DB8 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095DB8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08095DBC -sub_08095DBC: @ 0x08095DBC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08095DF0 @ =gUnk_02033280 - ldr r0, [r5] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08095DD0 - bl sub_0805E780 -_08095DD0: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08095DF4 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095DE6 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 -_08095DE6: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - b _08095E74 - .align 2, 0 -_08095DF0: .4byte gUnk_02033280 -_08095DF4: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095E30 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x4b - bl sub_08004260 - ldr r1, _08095E78 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_08095E30: - ldrb r2, [r4, #0xb] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08095E56 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _08095E56 - movs r0, #0xff - strb r0, [r4, #0xb] - movs r0, #0x80 - lsls r0, r0, #0xb - str r0, [r4, #0x20] - movs r0, #0xc0 - lsls r0, r0, #8 - strh r0, [r4, #0x24] -_08095E56: - movs r0, #0x24 - ldrsh r1, [r4, r0] - adds r0, r4, #0 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08095E74 - bl sub_0805E780 -_08095E74: - pop {r4, r5, pc} - .align 2, 0 -_08095E78: .4byte gUnk_08114F30 - - thumb_func_start sub_08095E7C -sub_08095E7C: @ 0x08095E7C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0x1e - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095EA8 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095EA8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08095EAC -sub_08095EAC: @ 0x08095EAC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - adds r4, r1, #0 - movs r0, #0x6a - movs r1, #0x1e - movs r2, #1 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _08095F2A - ldr r0, [r4, #4] - cmp r0, #0 - bne _08095EE0 - movs r7, #0x10 - movs r6, #0x1f - movs r0, #0x80 - lsls r0, r0, #7 - mov sl, r0 - movs r2, #0 - mov r8, r2 - b _08095F02 -_08095EE0: - movs r7, #8 - movs r6, #0xf - movs r0, #0x80 - lsls r0, r0, #0xb - mov sl, r0 - ldr r4, _08095F34 @ =gUnk_08122B0E - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r2, [r1, r0] - mov r8, r2 - movs r0, #0xff - strb r0, [r5, #0xb] -_08095F02: - bl sub_08000E50 - adds r4, r0, #0 - ands r4, r6 - subs r4, r7, r4 - bl sub_08000E50 - ands r6, r0 - subs r3, r7, r6 - lsls r4, r4, #0x10 - lsls r3, r3, #0x10 - mov r0, sb - adds r1, r5, #0 - adds r2, r4, #0 - bl PositionRelative - mov r2, sl - str r2, [r5, #0x20] - mov r0, r8 - strh r0, [r5, #0x24] -_08095F2A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08095F34: .4byte gUnk_08122B0E - - thumb_func_start sub_08095F38 -sub_08095F38: @ 0x08095F38 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095FC2 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0xb] - cmp r0, #4 - beq _08095F64 - cmp r0, #4 - bgt _08095F5A - cmp r0, #3 - beq _08095F60 - b _08095F6A -_08095F5A: - cmp r0, #6 - beq _08095F68 - b _08095F6A -_08095F60: - movs r1, #0 - b _08095F6A -_08095F64: - movs r1, #1 - b _08095F6A -_08095F68: - movs r1, #4 -_08095F6A: - adds r0, r4, #0 - bl sub_0801D2B4 - ldr r0, _08095F90 @ =gLinkEntity - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08095F98 - adds r1, r4, #0 - adds r1, #0x84 - ldr r0, _08095F94 @ =0x000008BF - str r0, [r1] - movs r0, #0x34 - strb r0, [r4, #0xe] - movs r0, #0xb5 - b _08095FA6 - .align 2, 0 -_08095F90: .4byte gLinkEntity -_08095F94: .4byte 0x000008BF -_08095F98: - adds r1, r4, #0 - adds r1, #0x84 - ldr r0, _08096020 @ =0x000008E3 - str r0, [r1] - movs r0, #0x55 - strb r0, [r4, #0xe] - movs r0, #0xd6 -_08095FA6: - strb r0, [r4, #0xf] - ldr r0, _08096024 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] -_08095FC2: - ldr r5, _08096024 @ =gLinkEntity - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08095FE0 - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - movs r0, #0xea - lsls r0, r0, #1 - bl sub_080A3268 -_08095FE0: - ldrh r0, [r5, #0x12] - adds r1, r4, #0 - adds r1, #0x84 - ldr r2, [r1] - lsrs r1, r2, #8 - cmp r0, r1 - bne _08095FFC - adds r0, r5, #0 - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - beq _08096000 -_08095FFC: - bl sub_0805E780 -_08096000: - ldr r0, _08096024 @ =gLinkEntity - ldrb r0, [r0, #0x1e] - ldrb r1, [r4, #0xe] - subs r0, r0, r1 - ldrb r1, [r4, #0xf] - adds r0, r0, r1 - ldrb r1, [r4, #0x1e] - cmp r0, r1 - beq _0809601E - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_0809601E: - pop {r4, r5, pc} - .align 2, 0 -_08096020: .4byte 0x000008E3 -_08096024: .4byte gLinkEntity - - thumb_func_start sub_08096028 -sub_08096028: @ 0x08096028 - push {r4, r5, lr} - movs r4, #6 - movs r5, #0xc0 - lsls r5, r5, #2 - adds r0, r5, #0 - movs r1, #0x7b - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0809603E - movs r4, #4 -_0809603E: - adds r0, r5, #0 - movs r1, #0x7a - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0809604C - movs r4, #3 -_0809604C: - movs r0, #0x6a - movs r1, #0x1f - adds r2, r4, #0 - bl CreateObject - pop {r4, r5, pc} - - thumb_func_start sub_08096058 -sub_08096058: @ 0x08096058 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809606C - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 -_0809606C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08096084 -sub_08096084: @ 0x08096084 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080960A0 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl sub_08004260 -_080960A0: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _080960C0 - adds r1, r4, #0 - bl sub_0806FA24 -_080960C0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080960C4 -sub_080960C4: @ 0x080960C4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0x23 - movs r2, #0x49 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08096110 - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, _08096160 @ =gUnk_08114F34 - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08096110: - movs r0, #0x6a - movs r1, #0x24 - movs r2, #0x4a - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809615E - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, _08096164 @ =gUnk_08114F30 - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r1, [r6, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0809615E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08096160: .4byte gUnk_08114F34 -_08096164: .4byte gUnk_08114F30 - - thumb_func_start sub_08096168 -sub_08096168: @ 0x08096168 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809618C - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x4b - bl sub_08004260 -_0809618C: - adds r0, r4, #0 - bl sub_08004274 - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _080961AC - bl sub_0805E780 -_080961AC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080961B0 -sub_080961B0: @ 0x080961B0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r5, #0 - ldr r6, _080961F0 @ =gUnk_08122B1E -_080961B8: - movs r0, #0x6a - movs r1, #0x25 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080961E6 - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_0806FA24 - lsls r0, r5, #5 - strb r0, [r4, #0x15] - bl sub_08000E50 - movs r2, #0xf8 - lsls r2, r2, #1 - adds r1, r2, #0 - ands r0, r1 - ldrh r1, [r6] - adds r0, r0, r1 - strh r0, [r4, #0x24] -_080961E6: - adds r6, #2 - adds r5, #1 - cmp r5, #7 - ble _080961B8 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080961F0: .4byte gUnk_08122B1E - - thumb_func_start sub_080961F4 -sub_080961F4: @ 0x080961F4 - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - movs r1, #0 - strb r1, [r0, #0x1e] - bx lr - - thumb_func_start sub_08096208 -sub_08096208: @ 0x08096208 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #1 - ldr r0, _08096238 @ =gUnk_08122B2E - adds r4, r1, r0 - movs r0, #0x6a - movs r1, #0x26 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08096234 - movs r2, #0 - ldrsb r2, [r4, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r4, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - bl PositionRelative -_08096234: - pop {r4, r5, pc} - .align 2, 0 -_08096238: .4byte gUnk_08122B2E - - thumb_func_start sub_0809623C -sub_0809623C: @ 0x0809623C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x6a - movs r1, #0x27 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809625A - ldr r3, _0809625C @ =0xFFF00000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative -_0809625A: - pop {r4, pc} - .align 2, 0 -_0809625C: .4byte 0xFFF00000 - - thumb_func_start sub_08096260 -sub_08096260: @ 0x08096260 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x6a - movs r1, #0x28 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809627E - ldr r3, _08096280 @ =0xFFF00000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative -_0809627E: - pop {r4, pc} - .align 2, 0 -_08096280: .4byte 0xFFF00000 - - thumb_func_start sub_08096284 -sub_08096284: @ 0x08096284 - push {lr} - movs r1, #0xd - bl sub_0809629C - pop {pc} - .align 2, 0 - - thumb_func_start sub_08096290 -sub_08096290: @ 0x08096290 - push {lr} - movs r1, #0xe - bl sub_0809629C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809629C -sub_0809629C: @ 0x0809629C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080962B2 - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_0807DD64 -_080962B2: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - movs r1, #0x80 - lsls r1, r1, #5 - adds r0, r5, #0 - bl sub_08003FC4 - ldrb r4, [r5, #0xa] - strb r6, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, r6, pc} - - thumb_func_start sub_080962D8 -sub_080962D8: @ 0x080962D8 - push {lr} - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #6 - bl sub_08050054 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080962E8 -sub_080962E8: @ 0x080962E8 - push {lr} - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #7 - bl sub_08050054 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080962F8 -sub_080962F8: @ 0x080962F8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r1, #4] - lsls r4, r4, #4 - ldr r0, _08096318 @ =gUnk_08122B3C - adds r4, r4, r0 - ldrb r2, [r4, #0xc] - adds r3, r4, #0 - adds r3, #8 - adds r0, r5, #0 - movs r1, #1 - bl sub_08078850 - str r4, [r5, #0x48] - pop {r4, r5, pc} - .align 2, 0 -_08096318: .4byte gUnk_08122B3C - - thumb_func_start sub_0809631C -sub_0809631C: @ 0x0809631C - push {lr} - ldr r2, _08096330 @ =gUnk_08123168 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08096330: .4byte gUnk_08123168 - - thumb_func_start sub_08096334 -sub_08096334: @ 0x08096334 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r4, #0 - movs r6, #0x80 - strh r6, [r5, #0x24] - ldr r0, _08096358 @ =gUnk_080FD2A8 - str r0, [r5, #0x48] - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _0809634E - b _08096494 -_0809634E: - cmp r0, #1 - bgt _0809635C - cmp r0, #0 - beq _08096368 - b _0809650A - .align 2, 0 -_08096358: .4byte gUnk_080FD2A8 -_0809635C: - cmp r0, #2 - bne _08096362 - b _080964A6 -_08096362: - cmp r0, #3 - beq _080963FC - b _0809650A -_08096368: - movs r0, #0x1a - bl GetProgressFlag - cmp r0, #0 - beq _080963DA - movs r0, #0x1b - bl GetProgressFlag - cmp r0, #0 - bne _080963A4 - ldr r0, _0809639C @ =gLinkEntity - movs r3, #0x80 - lsls r3, r3, #9 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - ldr r0, _080963A0 @ =0x00004022 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r2, [r1] - movs r1, #0xdc - bl sub_0800015E - b _0809650A - .align 2, 0 -_0809639C: .4byte gLinkEntity -_080963A0: .4byte 0x00004022 -_080963A4: - ldrb r0, [r5, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - bne _080963C8 - adds r0, r5, #0 - movs r1, #0xa - bl sub_08004260 - ldrh r0, [r5, #0x32] - adds r0, #4 - strh r0, [r5, #0x32] - movs r0, #4 - strb r0, [r5, #0xc] - ldr r0, _080963C4 @ =0x0000403B - b _080964C4 - .align 2, 0 -_080963C4: .4byte 0x0000403B -_080963C8: - strb r4, [r5, #0xb] - movs r0, #2 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_080969A4 - bl sub_0805E780 - b _0809650A -_080963DA: - ldr r1, _080963F8 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #0xd0 - strh r0, [r5, #0x2e] - ldrh r0, [r1, #8] - adds r0, #0x44 - strh r0, [r5, #0x32] - movs r0, #4 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0xa] - adds r1, #3 - adds r0, r5, #0 - bl sub_08004260 - b _0809651A - .align 2, 0 -_080963F8: .4byte gUnk_03000BF0 -_080963FC: - movs r0, #0x1a - bl GetProgressFlag - cmp r0, #0 - beq _08096450 - movs r0, #0x1b - bl GetProgressFlag - cmp r0, #0 - bne _0809644C - ldr r0, _08096444 @ =gLinkEntity - adds r1, r0, #0 - adds r1, #0x29 - ldrb r2, [r1] - lsls r2, r2, #0x1d - lsrs r2, r2, #0x1d - subs r2, #1 - adds r4, r5, #0 - adds r4, #0x29 - movs r1, #7 - ands r2, r1 - ldrb r3, [r4] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r4] - adds r1, r0, #0 - adds r1, #0x79 - strb r6, [r1] - ldr r3, _08096448 @ =0xFFE80000 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - b _08096450 - .align 2, 0 -_08096444: .4byte gLinkEntity -_08096448: .4byte 0xFFE80000 -_0809644C: - bl sub_0805E780 -_08096450: - adds r0, r5, #0 - movs r1, #0x6b - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _0809646E - ldr r2, _0809648C @ =0xFFE40000 - ldr r3, _08096490 @ =0xFFD80000 - adds r0, r5, #0 - bl PositionRelative -_0809646E: - movs r0, #0x10 - strb r0, [r5, #0x16] - ldrb r0, [r5, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r0, r5, #0 - movs r1, #0xc - bl sub_08004260 - adds r0, r5, #0 - bl sub_0809651C - b _0809651A - .align 2, 0 -_0809648C: .4byte 0xFFE40000 -_08096490: .4byte 0xFFD80000 -_08096494: - ldrb r0, [r5, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - b _0809650A -_080964A6: - ldrb r0, [r5, #0xb] - bl sub_0807CBD0 - cmp r0, #0 - bne _080964F8 - adds r0, r5, #0 - movs r1, #0xb - bl sub_08004260 - ldrh r0, [r5, #0x32] - adds r0, #4 - strh r0, [r5, #0x32] - movs r0, #4 - strb r0, [r5, #0xc] - ldr r0, _080964F0 @ =0x00004032 -_080964C4: - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080964F4 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _0809651A - .align 2, 0 -_080964F0: .4byte 0x00004032 -_080964F4: .4byte gUnk_03000BF0 -_080964F8: - strb r4, [r5, #0xb] - movs r0, #3 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_080969A4 - bl sub_0805E780 - b _0809651A -_0809650A: - ldrb r1, [r5, #0xa] - adds r1, #3 - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_0809651C -_0809651A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0809651C -sub_0809651C: @ 0x0809651C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r3, [r6, #0xa] - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _080965D6 - cmp r3, #3 - bne _0809653C - adds r0, r6, #0 - bl sub_08078930 - adds r0, r6, #0 - bl sub_0800445C - b _080965C8 -_0809653C: - ldr r0, [r6, #0x50] - ldr r2, _0809655C @ =0xFFE40000 - ldr r3, _08096560 @ =0xFFD80000 - adds r1, r6, #0 - bl PositionRelative - ldr r1, [r6, #0x50] - ldrb r0, [r1, #0xc] - cmp r0, #2 - bne _08096586 - ldrb r0, [r1, #0xd] - cmp r0, #1 - beq _08096564 - cmp r0, #2 - beq _08096580 - b _08096570 - .align 2, 0 -_0809655C: .4byte 0xFFE40000 -_08096560: .4byte 0xFFD80000 -_08096564: - ldr r0, _0809657C @ =gUnk_03003F80 - ldrb r1, [r0, #0xd] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08096580 -_08096570: - adds r0, r6, #0 - movs r1, #4 - bl sub_08004260 - b _08096586 - .align 2, 0 -_0809657C: .4byte gUnk_03003F80 -_08096580: - adds r0, r6, #0 - bl sub_08004274 -_08096586: - ldr r0, [r6, #0x50] - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, r6, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldr r4, [r6, #0x50] - ldrb r2, [r4, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r6, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r6, #0x19] - ldrb r0, [r4, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r6, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r6, #0x1b] -_080965C8: - adds r0, r6, #0 - movs r1, #0xcc - movs r2, #0xcc - movs r3, #0 - bl sub_0805EC9C - b _080966F6 -_080965D6: - ldr r1, _080965FC @ =gUnk_03003F80 - ldrb r2, [r1, #0x1a] - movs r0, #0x80 - orrs r0, r2 - strb r0, [r1, #0x1a] - movs r0, #5 - strb r0, [r1, #5] - ldrb r1, [r1, #0xd] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08096600 - lsls r1, r3, #0x18 - lsrs r1, r1, #0x19 - adds r1, #3 - adds r0, r6, #0 - bl sub_08004260 - b _08096606 - .align 2, 0 -_080965FC: .4byte gUnk_03003F80 -_08096600: - adds r0, r6, #0 - bl sub_08004274 -_08096606: - ldr r0, _08096664 @ =gLinkEntity - ldrb r0, [r0, #0x14] - movs r1, #6 - ands r1, r0 - ldr r4, _08096668 @ =gUnk_08123184 - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r6, #0x2e] - adds r0, r0, r2 - movs r2, #0x10 - rsbs r2, r2, #0 - adds r3, r2, #0 - ands r0, r3 - movs r2, #8 - adds r5, r6, #0 - adds r5, #0x70 - movs r7, #0 - orrs r0, r2 - strh r0, [r5] - adds r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - ands r0, r3 - orrs r0, r2 - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - ldrh r0, [r5] - ldrh r1, [r1] - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_080002BC - cmp r0, #0x19 - bne _08096670 - ldr r0, _0809666C @ =gUnk_0200AF00 - adds r0, #0x2f - movs r1, #3 - strb r1, [r0] - b _08096676 - .align 2, 0 -_08096664: .4byte gLinkEntity -_08096668: .4byte gUnk_08123184 -_0809666C: .4byte gUnk_0200AF00 -_08096670: - ldr r0, _080966F8 @ =gUnk_0200AF00 - adds r0, #0x2f - strb r7, [r0] -_08096676: - ldr r0, _080966FC @ =gLinkEntity - movs r3, #0x80 - lsls r3, r3, #9 - adds r1, r6, #0 - movs r2, #0 - bl PositionRelative - adds r0, r6, #0 - bl sub_080002B8 - cmp r0, #0x19 - bne _0809669C - ldrb r1, [r4] - movs r0, #0xdc - bl sub_0807BA8C - adds r0, r6, #0 - bl sub_08096A78 -_0809669C: - ldr r2, _08096700 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _080966F6 - ldr r0, _080966F8 @ =gUnk_0200AF00 - adds r0, #0x2f - ldrb r0, [r0] - cmp r0, #3 - bne _080966F6 - movs r0, #0 - strb r0, [r2, #5] - movs r0, #5 - strb r0, [r6, #0xc] - adds r0, #0xfb - strh r0, [r6, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r6, #0x20] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r6, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r6, #0x18] - ldrb r1, [r4] - movs r0, #0xdc - bl sub_0807BA8C - movs r0, #0x79 - bl sub_080A3268 -_080966F6: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080966F8: .4byte gUnk_0200AF00 -_080966FC: .4byte gLinkEntity -_08096700: .4byte gUnk_03003F80 - - thumb_func_start sub_08096704 -sub_08096704: @ 0x08096704 - push {lr} - ldr r2, _08096718 @ =gUnk_0812318C - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08096718: .4byte gUnk_0812318C - - thumb_func_start sub_0809671C -sub_0809671C: @ 0x0809671C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x1a - bl sub_0807CD04 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_121 -nullsub_121: @ 0x08096730 - bx lr - .align 2, 0 - - thumb_func_start sub_08096734 -sub_08096734: @ 0x08096734 - push {lr} - movs r0, #0x1a - bl sub_0807CD80 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08096740 -sub_08096740: @ 0x08096740 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08096758 -sub_08096758: @ 0x08096758 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809677C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 -_0809677C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08096780 -sub_08096780: @ 0x08096780 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _080967D4 @ =gUnk_0812319C - ldrb r0, [r5, #0xa] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r4, [r0] - adds r0, r5, #0 - bl sub_080002A0 - cmp r4, r0 - bne _080967DC - adds r0, r5, #0 - bl sub_08004274 - ldr r2, _080967D8 @ =gUnk_03003F80 - ldrb r0, [r2, #0xb] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0xb] - ldrb r0, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldrb r0, [r2, #7] - orrs r1, r0 - strb r1, [r2, #7] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080967E0 - movs r0, #6 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - adds r0, r5, #0 - bl sub_080A29BC - b _080967E0 - .align 2, 0 -_080967D4: .4byte gUnk_0812319C -_080967D8: .4byte gUnk_03003F80 -_080967DC: - movs r0, #0xc0 - strb r0, [r5, #0xe] -_080967E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080967E4 -sub_080967E4: @ 0x080967E4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x70 - ldrh r5, [r0] - movs r0, #0x2e - ldrsh r2, [r4, r0] - cmp r5, r2 - bne _08096802 - adds r0, r4, #0 - adds r0, #0x72 - ldrh r1, [r0] - movs r3, #0x32 - ldrsh r0, [r4, r3] - cmp r1, r0 - beq _0809681C -_08096802: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r3, [r0] - adds r0, r2, #0 - adds r2, r5, #0 - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C -_0809681C: - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08096830 - adds r0, r4, #0 - bl sub_08096A78 -_08096830: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08096834 -sub_08096834: @ 0x08096834 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - beq _08096842 - bl sub_08078B48 -_08096842: - ldr r0, _08096854 @ =gUnk_081231A0 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_08096854: .4byte gUnk_081231A0 - - thumb_func_start sub_08096858 -sub_08096858: @ 0x08096858 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - bl sub_0807CCB4 - movs r3, #0 - movs r0, #0xf - strb r0, [r5, #0xe] - ldr r1, _080968BC @ =gUnk_081231AC - ldrb r2, [r5, #0xa] - lsls r2, r2, #0x18 - lsrs r0, r2, #0x19 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xf] - strb r3, [r5, #0xb] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - cmp r2, #0 - bne _080968C4 - movs r0, #0xe7 - lsls r0, r0, #1 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080968C0 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - b _080968F0 - .align 2, 0 -_080968BC: .4byte gUnk_081231AC -_080968C0: .4byte gUnk_03000BF0 -_080968C4: - ldr r0, _080968F8 @ =0x000001CD - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080968FC @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 -_080968F0: - ldr r0, _08096900 @ =0x000001DB - bl sub_080A3268 - pop {r4, r5, r6, pc} - .align 2, 0 -_080968F8: .4byte 0x000001CD -_080968FC: .4byte gUnk_03000BF0 -_08096900: .4byte 0x000001DB - - thumb_func_start sub_08096904 -sub_08096904: @ 0x08096904 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08096984 - ldrh r0, [r5, #0x32] - subs r0, #0x10 - strh r0, [r5, #0x32] - ldr r1, _08096974 @ =gUnk_081231AE - ldrb r0, [r5, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08096978 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - ldrb r0, [r5, #0xb] - adds r0, #1 - strb r0, [r5, #0xb] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r5, #0xf] - cmp r0, r1 - bne _08096980 - ldr r2, _0809697C @ =gUnk_03003F80 - ldrb r1, [r2, #0xb] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0xb] - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - movs r0, #0x3c - b _08096982 - .align 2, 0 -_08096974: .4byte gUnk_081231AE -_08096978: .4byte gUnk_03000BF0 -_0809697C: .4byte gUnk_03003F80 -_08096980: - movs r0, #0xf -_08096982: - strb r0, [r5, #0xe] -_08096984: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08096988 -sub_08096988: @ 0x08096988 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - beq _080969A2 - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080969A2 - movs r0, #0x72 - bl sub_080A3268 -_080969A2: - pop {pc} - - thumb_func_start sub_080969A4 -sub_080969A4: @ 0x080969A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _080969E8 - movs r0, #0xe7 - lsls r0, r0, #1 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080969E4 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0807B7D8 - b _08096A14 - .align 2, 0 -_080969E4: .4byte gUnk_03000BF0 -_080969E8: - ldr r0, _08096A6C @ =0x000001CD - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08096A70 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0807B7D8 -_08096A14: - ldrb r0, [r5, #0xb] - ldrb r1, [r5, #0xf] - cmp r0, r1 - beq _08096A64 - ldr r2, _08096A74 @ =gUnk_081231B4 - mov r8, r2 - ldr r7, _08096A70 @ =gUnk_03000BF0 - movs r6, #0x3f -_08096A24: - ldrh r0, [r5, #0x32] - subs r0, #0x10 - strh r0, [r5, #0x32] - ldrb r0, [r5, #0xb] - lsls r0, r0, #1 - add r0, r8 - ldrh r0, [r0] - movs r3, #0x2e - ldrsh r1, [r5, r3] - ldrh r2, [r7, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - movs r3, #0x32 - ldrsh r2, [r5, r3] - ldrh r3, [r7, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r4] - bl sub_0807B7D8 - ldrb r0, [r5, #0xb] - adds r0, #1 - strb r0, [r5, #0xb] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r5, #0xf] - cmp r0, r1 - bne _08096A24 -_08096A64: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08096A6C: .4byte 0x000001CD -_08096A70: .4byte gUnk_03000BF0 -_08096A74: .4byte gUnk_081231B4 - - thumb_func_start sub_08096A78 -sub_08096A78: @ 0x08096A78 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x1b - bl sub_0807CD04 - ldrb r1, [r4, #0xa] - lsrs r1, r1, #1 - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08004168 - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r4, #0x32] - movs r0, #3 - strb r0, [r4, #0xc] - ldr r0, _08096ACC @ =0x0000403B - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _08096AD0 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r5, #0x3f - ands r1, r5 - movs r6, #0x32 - ldrsh r2, [r4, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08096ACC: .4byte 0x0000403B -_08096AD0: .4byte gUnk_03000BF0 - - thumb_func_start sub_08096AD4 -sub_08096AD4: @ 0x08096AD4 - push {lr} - ldr r2, _08096AE8 @ =gUnk_0812323C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08096AE8: .4byte gUnk_0812323C - - thumb_func_start sub_08096AEC -sub_08096AEC: @ 0x08096AEC - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080837B0 - cmp r0, #0 - beq _08096BB6 - ldrb r1, [r4, #0xa] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08096B12 - adds r1, r4, #0 - adds r1, #0x7e - movs r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0xa] - movs r0, #3 - ands r0, r1 - strb r0, [r4, #0xa] -_08096B12: - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08096B90 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x76 - strh r1, [r5] - ldrh r0, [r5] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_08096CEC - cmp r0, #0 - beq _08096B9C - adds r0, r4, #0 - adds r0, #0x7e - ldrb r0, [r0] - cmp r0, #0 - beq _08096B94 - bl sub_0805E780 - b _08096BB6 - .align 2, 0 -_08096B90: .4byte gUnk_03000BF0 -_08096B94: - adds r0, r4, #0 - bl sub_08096E04 - b _08096BB6 -_08096B9C: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldr r0, _08096BB8 @ =0x00004022 - ldrh r1, [r5] - ldrb r2, [r6] - bl sub_0800015E -_08096BB6: - pop {r4, r5, r6, pc} - .align 2, 0 -_08096BB8: .4byte 0x00004022 - - thumb_func_start sub_08096BBC -sub_08096BBC: @ 0x08096BBC - push {r4, lr} - adds r4, r0, #0 - bl sub_08096CEC - cmp r0, #0 - beq _08096BF2 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #7 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldr r0, _08096BF4 @ =0x0000010B - bl sub_08004488 -_08096BF2: - pop {r4, pc} - .align 2, 0 -_08096BF4: .4byte 0x0000010B - - thumb_func_start sub_08096BF8 -sub_08096BF8: @ 0x08096BF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08096C3A - adds r0, r4, #0 - bl sub_08096E04 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x7e - ldrb r0, [r0] - cmp r0, #0 - beq _08096C3A - bl sub_0805E780 -_08096C3A: - pop {r4, pc} - - thumb_func_start sub_08096C3C -sub_08096C3C: @ 0x08096C3C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7e - ldrb r0, [r0] - cmp r0, #0 - beq _08096C56 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _08096CAE -_08096C56: - ldr r0, _08096C80 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - beq _08096C92 - ldrb r2, [r4, #0xa] - lsls r1, r2, #1 - ldr r0, _08096C84 @ =gLinkEntity - ldrb r0, [r0, #0x14] - cmp r1, r0 - bne _08096C88 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08083734 - cmp r0, #0 - beq _08096CAE - b _08096C9C - .align 2, 0 -_08096C80: .4byte gUnk_03003F80 -_08096C84: .4byte gLinkEntity -_08096C88: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - b _08096C98 -_08096C92: - adds r0, r4, #0 - bl sub_08096D84 -_08096C98: - cmp r0, #0 - bne _08096CAE -_08096C9C: - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r2, [r0] - adds r0, r4, #0 - bl sub_080836DC -_08096CAE: - pop {r4, pc} - - thumb_func_start sub_08096CB0 -sub_08096CB0: @ 0x08096CB0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08096CE6 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r4, #0x32] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08083814 - ldr r0, _08096CE8 @ =0x0000010B - bl sub_08004488 -_08096CE6: - pop {r4, pc} - .align 2, 0 -_08096CE8: .4byte 0x0000010B - - thumb_func_start sub_08096CEC -sub_08096CEC: @ 0x08096CEC - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x7e - ldrb r0, [r0] - cmp r0, #0 - beq _08096D06 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _08096D60 -_08096D06: - ldr r0, _08096D40 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #5 - ands r0, r1 - cmp r0, #0 - beq _08096D64 - ldr r3, _08096D44 @ =gLinkEntity - ldrb r2, [r4, #0xa] - lsls r0, r2, #1 - ldrb r1, [r3, #0x14] - eors r0, r1 - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08096D64 - movs r0, #1 - ands r2, r0 - cmp r2, #0 - beq _08096D48 - movs r1, #0x32 - ldrsh r0, [r3, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r5, #0x2e - ldrsh r2, [r3, r5] - movs r5, #0x2e - ldrsh r3, [r4, r5] - b _08096D58 - .align 2, 0 -_08096D40: .4byte gUnk_03003F80 -_08096D44: .4byte gLinkEntity -_08096D48: - movs r1, #0x2e - ldrsh r0, [r3, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r5, #0x32 - ldrsh r2, [r3, r5] - movs r5, #0x32 - ldrsh r3, [r4, r5] -_08096D58: - bl sub_08096D68 - cmp r0, #0 - beq _08096D64 -_08096D60: - movs r0, #1 - b _08096D66 -_08096D64: - movs r0, #0 -_08096D66: - pop {r4, r5, pc} - - thumb_func_start sub_08096D68 -sub_08096D68: @ 0x08096D68 - push {lr} - subs r0, r0, r1 - adds r0, #8 - cmp r0, #0x10 - bhi _08096D7E - subs r0, r2, r3 - adds r0, #0x30 - cmp r0, #0x60 - bhi _08096D7E - movs r0, #1 - b _08096D80 -_08096D7E: - movs r0, #0 -_08096D80: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08096D84 -sub_08096D84: @ 0x08096D84 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #1 - beq _08096DB4 - cmp r0, #1 - bgt _08096D98 - cmp r0, #0 - beq _08096DA2 - b _08096E00 -_08096D98: - cmp r0, #2 - beq _08096DC8 - cmp r0, #3 - beq _08096DE4 - b _08096E00 -_08096DA2: - movs r0, #0x32 - ldrsh r1, [r1, r0] - ldr r0, _08096DB0 @ =gLinkEntity - movs r2, #0x32 - ldrsh r0, [r0, r2] - b _08096DEE - .align 2, 0 -_08096DB0: .4byte gLinkEntity -_08096DB4: - ldr r0, _08096DC4 @ =gLinkEntity - movs r2, #0x2e - ldrsh r0, [r0, r2] - adds r0, #0xa - movs r2, #0x2e - ldrsh r1, [r1, r2] - b _08096DD4 - .align 2, 0 -_08096DC4: .4byte gLinkEntity -_08096DC8: - ldr r0, _08096DE0 @ =gLinkEntity - movs r2, #0x32 - ldrsh r0, [r0, r2] - adds r0, #0xa - movs r2, #0x32 - ldrsh r1, [r1, r2] -_08096DD4: - subs r0, r0, r1 - cmp r0, #0x64 - bhi _08096E00 - movs r0, #1 - b _08096E02 - .align 2, 0 -_08096DE0: .4byte gLinkEntity -_08096DE4: - movs r0, #0x2e - ldrsh r1, [r1, r0] - ldr r0, _08096DFC @ =gLinkEntity - movs r2, #0x2e - ldrsh r0, [r0, r2] -_08096DEE: - subs r0, #0xa - subs r1, r1, r0 - cmp r1, #0x64 - bhi _08096E00 - movs r0, #1 - b _08096E02 - .align 2, 0 -_08096DFC: .4byte gLinkEntity -_08096E00: - movs r0, #0 -_08096E02: - pop {pc} - - thumb_func_start sub_08096E04 -sub_08096E04: @ 0x08096E04 - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #8 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_08096E10 -sub_08096E10: @ 0x08096E10 - push {lr} - ldr r2, _08096E24 @ =gUnk_08123250 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08096E24: .4byte gUnk_08123250 - - thumb_func_start sub_08096E28 -sub_08096E28: @ 0x08096E28 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - adds r5, r0, #0 - cmp r5, #0 - bne _08096EBC - movs r2, #1 - movs r3, #1 - strb r3, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x11] - subs r0, #0x90 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #4 - strb r0, [r1] - ldr r0, _08096EB4 @ =gUnk_080FD1F4 - str r0, [r4, #0x48] - strb r3, [r4, #0x16] - adds r0, r4, #0 - adds r0, #0x72 - strh r5, [r0] - adds r0, #0xb - ldrb r0, [r0] - lsrs r0, r0, #4 - subs r1, #0x2b - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - bl sub_080970F4 - ldr r1, _08096EB8 @ =gUnk_08123264 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0x1e] - b _08096F04 - .align 2, 0 -_08096EB4: .4byte gUnk_080FD1F4 -_08096EB8: .4byte gUnk_08123264 -_08096EBC: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r2, [r0] - adds r0, #1 - ldrb r3, [r0] - movs r1, #0xf - adds r0, r1, #0 - ands r0, r3 - lsls r0, r0, #8 - ldr r3, _08096F08 @ =gUnk_03000BF0 - orrs r2, r0 - ldrh r0, [r3, #6] - adds r2, r2, r0 - strh r2, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x7e - ldrb r0, [r0] - movs r2, #0x7f - adds r2, r2, r4 - mov ip, r2 - ldrb r2, [r2] - ands r1, r2 - lsls r1, r1, #8 - orrs r0, r1 - ldrh r3, [r3, #8] - adds r0, r0, r3 - strh r0, [r4, #0x32] - mov r5, ip - ldrb r0, [r5] - lsrs r0, r0, #4 - adds r1, r4, #0 - adds r1, #0x38 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080971E0 -_08096F04: - pop {r4, r5, pc} - .align 2, 0 -_08096F08: .4byte gUnk_03000BF0 - - thumb_func_start sub_08096F0C -sub_08096F0C: @ 0x08096F0C - push {r4, lr} - adds r4, r0, #0 - bl sub_08097194 - cmp r0, #0 - bne _08096F2E - adds r0, r4, #0 - bl sub_08097008 - cmp r0, #0 - beq _08096F28 - movs r0, #3 - strb r0, [r4, #0xc] - b _08096F2E -_08096F28: - adds r0, r4, #0 - bl sub_08078930 -_08096F2E: - pop {r4, pc} - - thumb_func_start sub_08096F30 -sub_08096F30: @ 0x08096F30 - push {lr} - adds r2, r0, #0 - adds r0, #0x76 - ldrh r0, [r0] - cmp r0, #0 - beq _08096F44 - adds r0, r2, #0 - bl sub_08097144 - b _08096F62 -_08096F44: - ldr r0, _08096F64 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08096F50 - movs r0, #6 - strb r0, [r2, #0xd] -_08096F50: - ldr r0, _08096F68 @ =gUnk_0812326C - ldrb r1, [r2, #0xd] - subs r1, #5 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_08096F62: - pop {pc} - .align 2, 0 -_08096F64: .4byte gUnk_03003F80 -_08096F68: .4byte gUnk_0812326C - - thumb_func_start sub_08096F6C -sub_08096F6C: @ 0x08096F6C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x72 - ldrh r0, [r1] - cmp r0, #0 - bne _08096F98 - movs r0, #1 - strh r0, [r1] - ldr r1, _08096FD8 @ =gLinkEntity - ldrb r0, [r1, #0x14] - ldr r2, _08096FDC @ =gUnk_08123274 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r4, #0 - bl PositionRelative -_08096F98: - adds r0, r4, #0 - bl sub_08097008 - bl sub_080896B0 - cmp r0, #0 - beq _08096FD4 - ldr r2, _08096FE0 @ =gUnk_03003F80 - movs r3, #0 - movs r0, #0x10 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #0x20 - strb r0, [r1] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r0, _08096FD8 @ =gLinkEntity - strh r3, [r0, #0x2c] - strh r3, [r0, #0x30] - ldrb r0, [r0, #0x14] - movs r1, #4 - eors r0, r1 - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08097098 -_08096FD4: - pop {r4, pc} - .align 2, 0 -_08096FD8: .4byte gLinkEntity -_08096FDC: .4byte gUnk_08123274 -_08096FE0: .4byte gUnk_03003F80 - - thumb_func_start sub_08096FE4 -sub_08096FE4: @ 0x08096FE4 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r0, #0x72 - strh r2, [r0] - bx lr - - thumb_func_start sub_08096FF0 -sub_08096FF0: @ 0x08096FF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08097144 - cmp r0, #0 - beq _08097000 - movs r0, #1 - strb r0, [r4, #0xc] -_08097000: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_122 -nullsub_122: @ 0x08097004 - bx lr - .align 2, 0 - - thumb_func_start sub_08097008 -sub_08097008: @ 0x08097008 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - adds r4, r0, #0 - ldr r0, _08097048 @ =0x00004036 - cmp r4, r0 - beq _08097070 - adds r0, r4, #0 - bl sub_08097074 - cmp r0, #1 - beq _0809704C - cmp r0, #2 - beq _08097062 - movs r0, #0xf - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809706A - adds r0, r5, #0 - bl sub_0806FA24 - b _0809706A - .align 2, 0 -_08097048: .4byte 0x00004036 -_0809704C: - adds r0, r4, #0 - subs r0, #0x37 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08097098 - movs r0, #1 - b _08097072 -_08097062: - adds r0, r5, #0 - adds r0, #0x70 - strh r4, [r0] - b _08097070 -_0809706A: - adds r0, r5, #0 - bl sub_0805E7BC -_08097070: - movs r0, #0 -_08097072: - pop {r4, r5, pc} - - thumb_func_start sub_08097074 -sub_08097074: @ 0x08097074 - push {lr} - adds r2, r0, #0 - ldr r1, _0809707C @ =gUnk_0812327C - b _0809708C - .align 2, 0 -_0809707C: .4byte gUnk_0812327C -_08097080: - ldrh r0, [r1] - cmp r0, r2 - bne _0809708A - ldrh r0, [r1, #2] - b _08097094 -_0809708A: - adds r1, #4 -_0809708C: - ldrh r0, [r1] - cmp r0, #0 - bne _08097080 - movs r0, #0 -_08097094: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08097098 -sub_08097098: @ 0x08097098 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r1, r6, #0 - adds r1, #0x76 - movs r0, #0x20 - strh r0, [r1] - adds r0, #0xef - bl sub_08004488 - adds r0, r6, #0 - adds r0, #0x70 - ldrh r0, [r0] - adds r5, r6, #0 - adds r5, #0x74 - ldrh r1, [r5] - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldr r1, _080970F0 @ =gUnk_080B4488 - ldrb r0, [r6, #0x15] - lsrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - ldrh r5, [r5] - adds r0, r0, r5 - ldrb r1, [r4] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x79 - beq _080970E4 - cmp r0, #0x77 - bne _080970EC -_080970E4: - adds r1, r6, #0 - adds r1, #0x63 - movs r0, #2 - strb r0, [r1] -_080970EC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080970F0: .4byte gUnk_080B4488 - - thumb_func_start sub_080970F4 -sub_080970F4: @ 0x080970F4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _0809713C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r6, #0 - adds r4, #0x74 - strh r1, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x70 - strh r0, [r1] - ldr r0, _08097140 @ =0x00004036 - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0809713C: .4byte gUnk_03000BF0 -_08097140: .4byte 0x00004036 - - thumb_func_start sub_08097144 -sub_08097144: @ 0x08097144 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0x19 - bne _08097164 - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #2 - strb r0, [r1] -_08097164: - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08097190 - adds r0, r4, #0 - bl sub_08097194 - cmp r0, #0 - bne _08097190 - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080970F4 - movs r0, #1 - b _08097192 -_08097190: - movs r0, #0 -_08097192: - pop {r4, pc} - - thumb_func_start sub_08097194 -sub_08097194: @ 0x08097194 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800442E - cmp r0, #0 - beq _080971A4 - movs r0, #1 - b _080971DE -_080971A4: - adds r0, r4, #0 - bl sub_080002A0 - adds r1, r0, #0 - subs r0, #0x71 - cmp r0, #1 - bls _080971B8 - ldr r0, _080971D4 @ =0x00004020 - cmp r1, r0 - bne _080971DC -_080971B8: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - ldr r0, _080971D8 @ =0x0000010B - bl sub_08004488 - adds r0, r4, #0 - bl sub_080971E0 - movs r0, #1 - b _080971DE - .align 2, 0 -_080971D4: .4byte 0x00004020 -_080971D8: .4byte 0x0000010B -_080971DC: - movs r0, #0 -_080971DE: - pop {r4, pc} - - thumb_func_start sub_080971E0 -sub_080971E0: @ 0x080971E0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08097202 - ldr r2, _0809727C @ =0xFFF80000 - movs r3, #0x80 - lsls r3, r3, #0xa - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_08097202: - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08097222 - movs r2, #0x80 - lsls r2, r2, #0xc - movs r3, #0x80 - lsls r3, r3, #0xa - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_08097222: - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _08097284 - cmp r0, #1 - ble _08097234 - cmp r0, #2 - beq _080972C4 - cmp r0, #3 - beq _08097304 -_08097234: - movs r0, #4 - strb r0, [r5, #0xc] - movs r0, #1 - strb r0, [r5, #0x1e] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _08097280 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0 - bl sub_0800015E -_08097274: - bl sub_0805E780 - b _08097346 - .align 2, 0 -_0809727C: .4byte 0xFFF80000 -_08097280: .4byte gUnk_03000BF0 -_08097284: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _080972C0 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r0, r4, #0 - bl sub_08097348 - cmp r0, #0 - bne _08097274 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0x73 - adds r1, r4, #0 - bl sub_0807B314 - b _08097274 - .align 2, 0 -_080972C0: .4byte gUnk_03000BF0 -_080972C4: - movs r0, #0x2f - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08097274 - ldrh r2, [r5, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - adds r0, #8 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - ands r1, r0 - adds r1, #8 - strh r1, [r4, #0x32] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x84 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x86 - strh r1, [r0] - b _08097274 -_08097304: - movs r0, #0x2f - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08097342 - ldrh r2, [r5, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - adds r0, #8 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - ands r1, r0 - adds r1, #8 - strh r1, [r4, #0x32] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x84 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x86 - strh r1, [r0] -_08097342: - bl sub_0805E780 -_08097346: - pop {r4, r5, pc} - - thumb_func_start sub_08097348 -sub_08097348: @ 0x08097348 - push {lr} - adds r3, r0, #0 - ldr r1, _08097360 @ =gUnk_02017660 - movs r2, #0 -_08097350: - ldrh r0, [r1, #4] - cmp r0, r3 - bne _08097364 - ldrb r0, [r1, #1] - bl sub_0807CBD0 - b _0809736E - .align 2, 0 -_08097360: .4byte gUnk_02017660 -_08097364: - adds r2, #1 - adds r1, #8 - cmp r2, #7 - bls _08097350 - movs r0, #0 -_0809736E: - pop {pc} - - thumb_func_start sub_08097370 -sub_08097370: @ 0x08097370 - push {lr} - ldr r2, _08097384 @ =gUnk_08123298 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097384: .4byte gUnk_08123298 - - thumb_func_start sub_08097388 -sub_08097388: @ 0x08097388 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FBD8 - cmp r0, #0 - beq _080973D4 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - ldr r1, _080973D8 @ =gUnk_081232A0 - adds r0, r0, r1 - ldrb r1, [r0] - strb r1, [r4, #0xb] - ldrb r2, [r0, #3] - adds r1, r4, #0 - adds r1, #0x40 - strb r2, [r1] - ldr r2, [r4, #0x48] - ldrb r1, [r0, #1] - strb r1, [r2, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r0, #2] - strb r0, [r1, #7] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #0x91 - strb r0, [r1] - subs r1, #4 - movs r0, #2 - strb r0, [r1] - movs r0, #1 - strb r0, [r4, #0xc] -_080973D4: - pop {r4, pc} - .align 2, 0 -_080973D8: .4byte gUnk_081232A0 - - thumb_func_start sub_080973DC -sub_080973DC: @ 0x080973DC - adds r0, #0x41 - movs r1, #0 - strb r1, [r0] - bx lr - - thumb_func_start sub_080973E4 -sub_080973E4: @ 0x080973E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809741E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - bl sub_08052660 - cmp r0, #0 - beq _0809741E - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_0809741E: - pop {r4, pc} - - thumb_func_start sub_08097420 -sub_08097420: @ 0x08097420 - push {lr} - ldr r2, _08097434 @ =gUnk_081232A4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097434: .4byte gUnk_081232A4 - - thumb_func_start sub_08097438 -sub_08097438: @ 0x08097438 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - adds r1, r0, #0 - adds r1, #0xb - strb r1, [r4, #0x1e] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080974A2 - adds r0, r4, #0 - bl sub_08004168 - ldr r1, _08097494 @ =gLinkEntity - ldrb r0, [r1, #0x1b] - movs r2, #0xc0 - orrs r0, r2 - strb r0, [r1, #0x1b] - adds r1, #0x29 - ldrb r1, [r1] - movs r2, #7 - movs r0, #7 - ands r0, r1 - cmp r0, #7 - beq _08097498 - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - adds r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - ands r1, r2 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080974A2 - .align 2, 0 -_08097494: .4byte gLinkEntity -_08097498: - adds r1, r4, #0 - adds r1, #0x29 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] -_080974A2: - pop {r4, pc} - - thumb_func_start sub_080974A4 -sub_080974A4: @ 0x080974A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08097554 - ldr r3, _08097540 @ =gLinkEntity - ldr r0, [r3, #0x34] - cmp r0, #0 - bne _080974E8 - ldr r2, _08097544 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080974D6 - ldrb r0, [r2, #0x12] - cmp r0, #0x11 - bne _080974D6 - ldrb r0, [r3, #0xc] - cmp r0, #1 - beq _080974FA - cmp r0, #0x18 - beq _080974FA - cmp r0, #4 - beq _080974FA -_080974D6: - ldr r1, _08097540 @ =gLinkEntity - ldr r0, [r1, #0x34] - cmp r0, #0 - bne _080974E8 - adds r0, r1, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFX -_080974E8: - ldr r2, _08097540 @ =gLinkEntity - ldrb r1, [r2, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1b] - bl sub_0805E780 -_080974FA: - ldr r2, _08097540 @ =gLinkEntity - ldr r0, [r2, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r2, #0x30] - str r0, [r4, #0x30] - ldr r0, _08097544 @ =gUnk_03003F80 - ldrb r0, [r0, #2] - cmp r0, #0 - bne _08097584 - ldrb r0, [r2, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r2, #0x1b] - adds r0, r2, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r2, #7 - movs r0, #7 - ands r0, r1 - cmp r0, #7 - beq _08097548 - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - adds r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - ands r1, r2 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08097584 - .align 2, 0 -_08097540: .4byte gLinkEntity -_08097544: .4byte gUnk_03003F80 -_08097548: - adds r1, r4, #0 - adds r1, #0x29 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - b _08097584 -_08097554: - ldr r2, _08097570 @ =gLinkEntity - ldrb r0, [r2, #0xc] - cmp r0, #0x1e - beq _08097584 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08097574 - ldrb r0, [r2, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 - b _0809757C - .align 2, 0 -_08097570: .4byte gLinkEntity -_08097574: - ldrb r0, [r2, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 -_0809757C: - orrs r1, r0 - strb r1, [r2, #0x1b] - bl sub_0805E780 -_08097584: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08097588 -sub_08097588: @ 0x08097588 - push {lr} - ldr r2, _0809759C @ =gUnk_081232AC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809759C: .4byte gUnk_081232AC - - thumb_func_start sub_080975A0 -sub_080975A0: @ 0x080975A0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08097690 @ =gUnk_03000BF0 - mov r8, r2 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r6, #0x3f - ands r5, r6 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r2, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r5, r0 - adds r0, r5, #0 - subs r0, #0x41 - adds r7, r4, #0 - adds r7, #0x38 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - adds r0, r5, #0 - subs r0, #0x3f - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x6e - strh r0, [r1] - subs r0, r5, #1 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] - ldrb r1, [r7] - adds r0, r5, #0 - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r5, #1 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x40 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r7] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - adds r0, r4, #0 - bl sub_0809798C - cmp r0, #0 - beq _080976A2 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08097694 - ldrh r0, [r4, #0x32] - subs r0, #0x16 - b _08097698 - .align 2, 0 -_08097690: .4byte gUnk_03000BF0 -_08097694: - ldrh r0, [r4, #0x32] - subs r0, #0x10 -_08097698: - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_080977F4 - b _08097722 -_080976A2: - movs r0, #1 - strb r0, [r4, #0xc] - movs r2, #0x2e - ldrsh r0, [r4, r2] - mov r2, r8 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - ands r5, r6 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r2, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r5, r0 - adds r0, r4, #0 - adds r0, #0x68 - strh r5, [r0] - ldr r1, _080976FC @ =gUnk_081232DE - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r6, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08097704 - ldr r0, _08097700 @ =gUnk_080FD578 - str r0, [r4, #0x48] - subs r1, r5, #1 - ldrb r2, [r7] - adds r0, r6, #0 - bl sub_0800015E - ldrb r2, [r7] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0800015E - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - b _08097722 - .align 2, 0 -_080976FC: .4byte gUnk_081232DE -_08097700: .4byte gUnk_080FD578 -_08097704: - ldr r0, _08097728 @ =gUnk_080FD570 - str r0, [r4, #0x48] - ldrb r2, [r7] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0800015E - ldrb r0, [r4, #0xb] - cmp r0, #2 - bne _08097722 - ldr r0, _0809772C @ =gUnk_081232C0 - ldrb r2, [r7] - adds r1, r5, #0 - bl sub_0801AF18 -_08097722: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08097728: .4byte gUnk_080FD570 -_0809772C: .4byte gUnk_081232C0 - - thumb_func_start sub_08097730 -sub_08097730: @ 0x08097730 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809785C - cmp r0, #0 - beq _08097744 - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_0805E4E0 -_08097744: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08097748 -sub_08097748: @ 0x08097748 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #0 - bne _08097774 - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809779A - movs r0, #1 - strb r0, [r2, #0xd] - movs r0, #0x78 - strb r0, [r2, #0xf] - ldr r1, _08097770 @ =gUnk_03000BF0 - str r2, [r1, #0x30] - movs r0, #2 - strb r0, [r1, #0xe] - b _0809779A - .align 2, 0 -_08097770: .4byte gUnk_03000BF0 -_08097774: - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809779A - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x60 - strb r0, [r2, #0xe] - movs r0, #0x14 - strb r0, [r2, #0xf] - adds r0, r2, #0 - movs r1, #0x60 - bl sub_0805E4E0 - ldr r0, _0809779C @ =0x0000010F - bl sub_080A3268 -_0809779A: - pop {pc} - .align 2, 0 -_0809779C: .4byte 0x0000010F - - thumb_func_start sub_080977A0 -sub_080977A0: @ 0x080977A0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080977BC - subs r0, #1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0800445C - b _080977E4 -_080977BC: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080977C8 - subs r0, #1 - strb r0, [r4, #0xf] - b _080977E4 -_080977C8: - movs r0, #0x72 - bl sub_08004488 - adds r0, r4, #0 - bl sub_080977F4 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080977E4 - ldr r0, _080977E8 @ =gUnk_03000BF0 - ldr r1, _080977EC @ =gLinkEntity - str r1, [r0, #0x30] - movs r1, #4 - strb r1, [r0, #0xe] -_080977E4: - pop {r4, pc} - .align 2, 0 -_080977E8: .4byte gUnk_03000BF0 -_080977EC: .4byte gLinkEntity - - thumb_func_start nullsub_528 -nullsub_528: @ 0x080977F0 - bx lr - .align 2, 0 - - thumb_func_start sub_080977F4 -sub_080977F4: @ 0x080977F4 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r1, #0 - movs r0, #4 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x63 - strb r1, [r0] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _08097854 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldr r7, _08097858 @ =0x00004022 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r2, [r6] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_0800015E - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08097844 - subs r1, r4, #1 - ldrb r2, [r6] - adds r0, r7, #0 - bl sub_0800015E -_08097844: - adds r1, r5, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _08097852 - bl sub_0807CCC8 -_08097852: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08097854: .4byte gUnk_03000BF0 -_08097858: .4byte 0x00004022 - - thumb_func_start sub_0809785C -sub_0809785C: @ 0x0809785C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xa] - cmp r4, #0 - beq _08097948 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _0809786E - b _08097986 -_0809786E: - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - adds r4, r5, #0 - adds r4, #0x68 - adds r6, r5, #0 - adds r6, #0x38 - cmp r0, #0 - bne _08097892 - ldrh r0, [r4] - ldrb r1, [r6] - bl sub_080002B0 - ldr r1, _08097940 @ =0x0000403F - cmp r0, r1 - bne _08097986 -_08097892: - movs r1, #0 - movs r0, #3 - strb r0, [r5, #0xc] - movs r0, #0x40 - strb r0, [r5, #0xe] - strb r1, [r5, #0xf] - strb r1, [r5, #0x15] - strh r0, [r5, #0x24] - ldrh r4, [r4] - adds r0, r5, #0 - adds r0, #0x72 - ldrh r0, [r0] - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0807B9B8 - ldrb r0, [r5, #0xb] - cmp r0, #2 - bne _08097934 - adds r0, r5, #0 - adds r0, #0x6a - ldrh r0, [r0] - adds r1, r4, #0 - subs r1, #0x41 - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x6c - ldrh r0, [r0] - adds r1, r4, #0 - subs r1, #0x40 - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - adds r1, r4, #0 - subs r1, #0x3f - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x70 - ldrh r0, [r0] - subs r1, r4, #1 - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #1 - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x3f - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x40 - ldrb r2, [r6] - bl sub_0807B9B8 - adds r0, r5, #0 - adds r0, #0x7a - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x41 - ldrb r2, [r6] - bl sub_0807B9B8 -_08097934: - ldr r0, _08097944 @ =0x0000010F - bl sub_080A3268 - movs r0, #1 - b _08097988 - .align 2, 0 -_08097940: .4byte 0x0000403F -_08097944: .4byte 0x0000010F -_08097948: - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08097986 - movs r0, #2 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - movs r0, #0xf0 - strb r0, [r5, #0xe] - movs r0, #0x3c - strb r0, [r5, #0xf] - strb r4, [r5, #0x15] - movs r0, #0x40 - strh r0, [r5, #0x24] - adds r4, r5, #0 - adds r4, #0x68 - ldrh r0, [r4] - adds r5, #0x38 - ldrb r1, [r5] - bl sub_0807BA8C - ldrh r0, [r4] - subs r0, #1 - ldrb r1, [r5] - bl sub_0807BA8C - movs r0, #1 - b _08097988 -_08097986: - movs r0, #0 -_08097988: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809798C -sub_0809798C: @ 0x0809798C - push {r4, lr} - adds r1, r0, #0 - movs r4, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - beq _0809799E - ldrb r0, [r1, #0xb] - cmp r0, #0 - beq _080979AE -_0809799E: - adds r0, r1, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080979AE - movs r4, #1 -_080979AE: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080979B4 -sub_080979B4: @ 0x080979B4 - push {lr} - ldr r2, _080979C8 @ =gUnk_081232E4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080979C8: .4byte gUnk_081232E4 - - thumb_func_start sub_080979CC -sub_080979CC: @ 0x080979CC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - cmp r0, #3 - bne _08097A20 - movs r0, #0 - strb r0, [r5, #0x1e] - ldr r0, _08097A18 @ =gUnk_081232FE - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08097A1C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0801AF18 - b _08097A4E - .align 2, 0 -_08097A18: .4byte gUnk_081232FE -_08097A1C: .4byte gUnk_03000BF0 -_08097A20: - strb r0, [r5, #0x1e] - ldr r0, _08097A50 @ =gUnk_081232EC - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08097A54 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0801AF18 -_08097A4E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08097A50: .4byte gUnk_081232EC -_08097A54: .4byte gUnk_03000BF0 - - thumb_func_start nullsub_529 -nullsub_529: @ 0x08097A58 - bx lr - .align 2, 0 - - thumb_func_start sub_08097A5C -sub_08097A5C: @ 0x08097A5C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08097AAC - movs r4, #1 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x5a - strb r0, [r5, #0xe] - bl sub_08000E50 - strb r0, [r5, #0xf] - lsrs r0, r0, #0x10 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x1e] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r4 - strb r0, [r5, #0x18] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xb] - bl sub_0804B128 - str r0, [r5, #0x54] - adds r1, r5, #0 - adds r1, #0x54 - adds r2, r5, #0 - adds r2, #0x70 - adds r0, r5, #0 - bl sub_080A2CC0 -_08097AAC: - adds r0, r5, #0 - bl sub_08097ADC - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_080A2BE4 - adds r0, r5, #0 - bl sub_08097B24 - adds r2, r5, #0 - adds r2, #0x70 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08097ADA - adds r1, r5, #0 - adds r1, #0x54 - adds r0, r5, #0 - bl sub_080A2CC0 -_08097ADA: - pop {r4, r5, pc} - - thumb_func_start sub_08097ADC -sub_08097ADC: @ 0x08097ADC - push {r4, r5, lr} - adds r2, r0, #0 - ldr r5, _08097B18 @ =gUnk_03003F80 - ldr r0, [r5, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08097B20 - ldr r4, _08097B1C @ =gLinkEntity - adds r0, r2, #0 - adds r1, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_080041A0 - cmp r0, #0 - beq _08097B20 - bl sub_08079F8C - cmp r0, #0 - beq _08097B20 - movs r0, #1 - strb r0, [r5, #0x14] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08097B20 - movs r0, #1 - b _08097B22 - .align 2, 0 -_08097B18: .4byte gUnk_03003F80 -_08097B1C: .4byte gLinkEntity -_08097B20: - movs r0, #0 -_08097B22: - pop {r4, r5, pc} - - thumb_func_start sub_08097B24 -sub_08097B24: @ 0x08097B24 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - movs r4, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08097B44 - movs r0, #0x5a - strb r0, [r3, #0xe] - ldrb r0, [r3, #0x1e] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r3, #0x1e] -_08097B44: - ldr r2, _08097B68 @ =gUnk_08123318 - ldrb r0, [r3, #0xf] - adds r0, #1 - strb r0, [r3, #0xf] - ands r0, r4 - lsrs r0, r0, #5 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r3, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_08097B68: .4byte gUnk_08123318 - - thumb_func_start sub_08097B6C -sub_08097B6C: @ 0x08097B6C - push {lr} - ldr r2, _08097B80 @ =gUnk_08123330 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097B80: .4byte gUnk_08123330 - - thumb_func_start sub_08097B84 -sub_08097B84: @ 0x08097B84 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08097BCC @ =gUnk_08123328 - str r0, [r4, #0x48] - adds r2, #0x5d - ldrh r1, [r2] - ldr r0, _08097BD0 @ =0x0000FFFF - cmp r1, r0 - beq _08097BB0 - adds r0, r1, #0 - bl sub_0807CBE4 - cmp r0, #0 - beq _08097BD4 -_08097BB0: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08097CFC - b _08097BD8 - .align 2, 0 -_08097BCC: .4byte gUnk_08123328 -_08097BD0: .4byte 0x0000FFFF -_08097BD4: - bl sub_0805BC4C -_08097BD8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08097BDC -sub_08097BDC: @ 0x08097BDC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08097C10 - movs r0, #1 - bl sub_08078A90 - ldr r0, _08097C14 @ =gUnk_02034490 - movs r1, #1 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0805E4E0 - adds r0, r4, #0 - bl sub_08097CB0 - cmp r0, #0 - bne _08097C10 - adds r0, r4, #0 - bl sub_08097CB4 -_08097C10: - pop {r4, pc} - .align 2, 0 -_08097C14: .4byte gUnk_02034490 - - thumb_func_start sub_08097C18 -sub_08097C18: @ 0x08097C18 - bx lr - .align 2, 0 - - thumb_func_start sub_08097C1C -sub_08097C1C: @ 0x08097C1C - bx lr - .align 2, 0 - - thumb_func_start sub_08097C20 -sub_08097C20: @ 0x08097C20 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x1e - bl sub_0805E510 - adds r0, r4, #0 - bl sub_0800445C - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_080577AC - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08097CA6 - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - ands r1, r0 - ldr r6, _08097CA8 @ =gUnk_03000F50 - movs r0, #0x10 - subs r0, r0, r1 - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r6, #0 - adds r1, #0x68 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x10 - bne _08097CA6 - movs r0, #0 - bl sub_08078A90 - ldr r1, _08097CAC @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x66 - strh r5, [r0] - adds r0, r4, #0 - bl sub_08097CFC - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - subs r0, #0x11 - ands r0, r1 - strb r0, [r4, #0x19] - movs r0, #0x72 - bl sub_080A3268 - movs r0, #0x63 - bl sub_0807CD04 -_08097CA6: - pop {r4, r5, r6, pc} - .align 2, 0 -_08097CA8: .4byte gUnk_03000F50 -_08097CAC: .4byte gUnk_02034490 - - thumb_func_start sub_08097CB0 -sub_08097CB0: @ 0x08097CB0 - movs r0, #0 - bx lr - - thumb_func_start sub_08097CB4 -sub_08097CB4: @ 0x08097CB4 - push {lr} - movs r3, #0 - movs r1, #3 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #7 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - ldrb r2, [r0, #0x19] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #0x19] - movs r1, #0x1e - strb r1, [r0, #0xe] - strb r3, [r0, #0xf] - ldr r1, _08097CF8 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xf4 - lsls r0, r0, #4 - strh r0, [r2] - adds r1, #0x68 - adds r0, #0xc0 - strh r0, [r1] - movs r0, #0xa5 - lsls r0, r0, #1 - bl sub_080A3268 - pop {pc} - .align 2, 0 -_08097CF8: .4byte gUnk_03000F50 - - thumb_func_start sub_08097CFC -sub_08097CFC: @ 0x08097CFC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrh r1, [r5, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08097D40 - ldr r0, _08097D38 @ =gUnk_0812336A - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08097D3C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0801AF18 - b _08097D6C - .align 2, 0 -_08097D38: .4byte gUnk_0812336A -_08097D3C: .4byte gUnk_03000BF0 -_08097D40: - ldr r0, _08097D70 @ =gUnk_08123344 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08097D74 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0801AF18 -_08097D6C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08097D70: .4byte gUnk_08123344 -_08097D74: .4byte gUnk_03000BF0 - - thumb_func_start sub_08097D78 -sub_08097D78: @ 0x08097D78 - push {lr} - ldr r2, _08097D8C @ =gUnk_08123384 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097D8C: .4byte gUnk_08123384 - - thumb_func_start sub_08097D90 -sub_08097D90: @ 0x08097D90 - push {r4, lr} - adds r4, r0, #0 - movs r3, #1 - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x38 - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08097DCC -sub_08097DCC: @ 0x08097DCC - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08097DD4 -sub_08097DD4: @ 0x08097DD4 - push {lr} - ldr r2, _08097DE8 @ =gUnk_081233B8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08097DE8: .4byte gUnk_081233B8 - - thumb_func_start sub_08097DEC -sub_08097DEC: @ 0x08097DEC - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08016A04 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _08097E46 - cmp r0, #1 - bgt _08097E0A - cmp r0, #0 - beq _08097E1C - b _08097EA2 -_08097E0A: - cmp r0, #3 - bgt _08097EA2 - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08097E9C -_08097E1C: - ldrh r2, [r4, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - ands r1, r0 - strh r1, [r4, #0x32] - adds r0, r4, #0 - bl sub_08097EB8 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08097EA2 - adds r1, r0, #0 - adds r1, #0xb - adds r0, r4, #0 - bl sub_0801D2B4 - b _08097EA2 -_08097E46: - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x1e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - cmp r0, #1 - beq _08097E76 - cmp r0, #1 - bgt _08097E5C - cmp r0, #0 - beq _08097E68 - b _08097E9C -_08097E5C: - cmp r0, #2 - bne _08097E9C - adds r0, r4, #0 - movs r1, #0xd - bl sub_0801D2B4 -_08097E68: - ldrb r0, [r4, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x1b] - b _08097E9C -_08097E76: - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x1b] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0xb - bl sub_0801D2B4 -_08097E9C: - adds r0, r4, #0 - bl sub_08097F34 -_08097EA2: - pop {r4, pc} - - thumb_func_start sub_08097EA4 -sub_08097EA4: @ 0x08097EA4 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - beq _08097EB4 - adds r0, r1, #0 - bl sub_08097F10 -_08097EB4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08097EB8 -sub_08097EB8: @ 0x08097EB8 - push {r4, r5, r6, lr} - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _08097F04 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r5, r1, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r0, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - ldr r4, _08097F08 @ =gUnk_081233C0 - movs r2, #0 - ldrsh r0, [r4, r2] - ldr r1, _08097F0C @ =0x00007FFF - cmp r0, r1 - beq _08097F00 - adds r6, r1, #0 -_08097EE8: - ldrh r0, [r4, #2] - movs r2, #0 - ldrsh r1, [r4, r2] - adds r1, r5, r1 - movs r2, #1 - bl sub_0800015E - adds r4, #4 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, r6 - bne _08097EE8 -_08097F00: - pop {r4, r5, r6, pc} - .align 2, 0 -_08097F04: .4byte gUnk_03000BF0 -_08097F08: .4byte gUnk_081233C0 -_08097F0C: .4byte 0x00007FFF - - thumb_func_start sub_08097F10 -sub_08097F10: @ 0x08097F10 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08097F30 @ =gUnk_03000BF0 - movs r2, #0xc - ldrsh r1, [r0, r2] - ldrh r0, [r0, #8] - subs r1, r1, r0 - adds r0, r4, #0 - bl sub_08097F60 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - subs r1, r1, r0 - strh r1, [r4, #0x32] - pop {r4, pc} - .align 2, 0 -_08097F30: .4byte gUnk_03000BF0 - - thumb_func_start sub_08097F34 -sub_08097F34: @ 0x08097F34 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08097F5C @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - subs r1, r1, r0 - adds r0, r4, #0 - bl sub_08097F60 - ldrh r1, [r4, #0x32] - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - adds r0, r4, #0 - bl sub_08097F10 - pop {r4, pc} - .align 2, 0 -_08097F5C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08097F60 -sub_08097F60: @ 0x08097F60 - push {lr} - ldrb r2, [r0, #0xa] - cmp r2, #1 - bne _08097F74 - ldrb r0, [r0, #0x1e] - lsrs r0, r0, #1 - cmp r0, #1 - bne _08097F7C - asrs r1, r1, #3 - b _08097F7E -_08097F74: - cmp r2, #1 - blt _08097F7E - cmp r2, #3 - bgt _08097F7E -_08097F7C: - asrs r1, r1, #1 -_08097F7E: - adds r0, r1, #0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08097F84 -sub_08097F84: @ 0x08097F84 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08097FAC @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08097F98 - bl sub_0805E780 -_08097F98: - ldr r0, _08097FB0 @ =gUnk_08123410 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_08097FAC: .4byte gUnk_03003F80 -_08097FB0: .4byte gUnk_08123410 - - thumb_func_start sub_08097FB4 -sub_08097FB4: @ 0x08097FB4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - movs r2, #0 - strh r1, [r4, #0x24] - str r1, [r4, #0x6c] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x90 - lsls r0, r0, #5 - strh r0, [r1] - strb r2, [r4, #0xe] - movs r0, #0x1e - strb r0, [r4, #0xf] - ldr r1, _08098014 @ =gUnk_0812341C - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #6 - str r0, [r4, #0x74] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08098018 - adds r1, r4, #0 - adds r1, #0x7e - movs r0, #0x40 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_080AE008 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_080042AC - b _08098032 - .align 2, 0 -_08098014: .4byte gUnk_0812341C -_08098018: - ldr r0, [r4, #0x50] - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x60 - strh r1, [r0] - ldr r2, [r4, #0x50] - ldrb r1, [r4, #0xa] - movs r0, #0xd - muls r0, r1, r0 - ldrb r2, [r2, #0x1e] - adds r0, r0, r2 - strb r0, [r4, #0x1e] -_08098032: - adds r0, r4, #0 - bl sub_08098130 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809803C -sub_0809803C: @ 0x0809803C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xa] - cmp r5, #0 - bne _08098070 - bl sub_080042B8 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08098082 - ldr r0, _0809806C @ =gLinkEntity - strb r5, [r0, #0xf] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - movs r0, #0xbc - lsls r0, r0, #1 - bl sub_080A3268 - b _08098082 - .align 2, 0 -_0809806C: .4byte gLinkEntity -_08098070: - ldr r2, [r4, #0x50] - ldrb r1, [r4, #0xa] - movs r0, #0xd - muls r0, r1, r0 - ldrb r1, [r2, #0x1e] - adds r0, r0, r1 - strb r0, [r4, #0x1e] - ldrb r0, [r2, #0xc] - strb r0, [r4, #0xc] -_08098082: - pop {r4, r5, pc} - - thumb_func_start sub_08098084 -sub_08098084: @ 0x08098084 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x6c] - movs r0, #0xa0 - lsls r0, r0, #0xd - cmp r1, r0 - bls _080980A8 - ldr r0, _080980A4 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - movs r2, #0x80 - orrs r1, r2 - str r1, [r0, #0x30] - bl sub_0805E780 - b _0809812E - .align 2, 0 -_080980A4: .4byte gUnk_03003F80 -_080980A8: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080980D8 - adds r0, r4, #0 - bl sub_080042B8 - adds r2, r4, #0 - adds r2, #0x7e - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - ldr r1, _080980D4 @ =0xFFFF0000 - cmp r0, r1 - bne _080980E6 - movs r0, #0x40 - strh r0, [r2] - movs r0, #0xbc - lsls r0, r0, #1 - bl sub_080A3268 - b _080980E6 - .align 2, 0 -_080980D4: .4byte 0xFFFF0000 -_080980D8: - ldr r2, [r4, #0x50] - ldrb r1, [r4, #0xa] - movs r0, #0xd - muls r0, r1, r0 - ldrb r2, [r2, #0x1e] - adds r0, r0, r2 - strb r0, [r4, #0x1e] -_080980E6: - ldr r0, [r4, #0x6c] - movs r1, #0xa0 - lsls r1, r1, #5 - adds r0, r0, r1 - str r0, [r4, #0x6c] - ldr r0, [r4, #0x70] - ldr r1, [r4, #0x74] - adds r0, r0, r1 - str r0, [r4, #0x70] - adds r2, r4, #0 - adds r2, #0x72 - ldrh r1, [r2] - movs r0, #0x1f - ands r0, r1 - strh r0, [r2] - ldr r0, [r4, #0x74] - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r0, r1 - str r0, [r4, #0x74] - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08098128 - movs r0, #0x1e - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xe] - movs r1, #1 - eors r0, r1 - strb r0, [r4, #0xe] -_08098128: - adds r0, r4, #0 - bl sub_08098130 -_0809812E: - pop {r4, pc} - - thumb_func_start sub_08098130 -sub_08098130: @ 0x08098130 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08098160 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, [r4, #0x30] - ldr r1, _08098164 @ =0xFFEC0000 - adds r0, r0, r1 - ldr r1, [r4, #0x6c] - adds r0, r0, r1 - str r0, [r4, #0x30] - pop {r4, pc} - .align 2, 0 -_08098160: .4byte gLinkEntity -_08098164: .4byte 0xFFEC0000 - - thumb_func_start sub_08098168 -sub_08098168: @ 0x08098168 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _080981DA - movs r2, #1 - movs r3, #1 - strb r3, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - strb r3, [r4, #0xe] - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x68 - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A30 - ldr r1, _080981CC @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r3, #0 - movs r0, #0xbd - lsls r0, r0, #6 - strh r0, [r2] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080981D4 - adds r1, #0x68 - ldr r0, _080981D0 @ =0x0000060A - b _080981D8 - .align 2, 0 -_080981CC: .4byte gUnk_03000F50 -_080981D0: .4byte 0x0000060A -_080981D4: - adds r1, #0x68 - ldr r0, _08098208 @ =0x00000808 -_080981D8: - strh r0, [r1] -_080981DA: - ldrb r0, [r4, #0xa] - adds r3, r4, #0 - adds r3, #0x68 - cmp r0, #0 - beq _08098222 - ldr r0, _0809820C @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r0, _08098210 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - subs r1, r1, r0 - movs r0, #0xf8 - lsls r0, r0, #1 - cmp r1, r0 - ble _08098214 - ldrb r1, [r3] - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0x3f - bgt _08098222 - adds r0, r1, #1 - b _08098220 - .align 2, 0 -_08098208: .4byte 0x00000808 -_0809820C: .4byte gLinkEntity -_08098210: .4byte gUnk_03000BF0 -_08098214: - ldrb r1, [r3] - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - ble _08098222 - subs r0, r1, #1 -_08098220: - strb r0, [r3] -_08098222: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809823C - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - movs r1, #0xf - ands r0, r1 - strb r0, [r4, #0xf] -_0809823C: - ldr r1, _0809825C @ =gUnk_08123484 - ldrb r0, [r4, #0xf] - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x62 - strb r0, [r2] - ldrb r0, [r4, #0xf] - adds r0, r0, r1 - ldrb r1, [r3] - ldrb r0, [r0] - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x63 - strb r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_0809825C: .4byte gUnk_08123484 - - thumb_func_start sub_08098260 -sub_08098260: @ 0x08098260 - push {lr} - ldr r2, _08098274 @ =gUnk_08123494 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098274: .4byte gUnk_08123494 - - thumb_func_start sub_08098278 -sub_08098278: @ 0x08098278 - push {lr} - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #5 - orrs r1, r2 - strb r1, [r3] - bl sub_08098340 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08098294 -sub_08098294: @ 0x08098294 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08098418 - cmp r0, #0 - beq _080982FA - movs r5, #0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x62 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #0xf - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #0xb5 - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0805E4E0 - bl sub_08079F8C - cmp r0, #0 - beq _080982FA - ldr r2, _080982FC @ =gUnk_03003F80 - movs r0, #0x90 - strb r0, [r2, #6] - movs r0, #5 - strb r0, [r2, #0xc] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _08098300 @ =gLinkEntity - strh r5, [r1, #0x2c] - strh r5, [r1, #0x30] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] -_080982FA: - pop {r4, r5, pc} - .align 2, 0 -_080982FC: .4byte gUnk_03003F80 -_08098300: .4byte gLinkEntity - - thumb_func_start sub_08098304 -sub_08098304: @ 0x08098304 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809833C - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0809832C - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _08098336 -_0809832C: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 -_08098336: - adds r0, r4, #0 - bl sub_08098340 -_0809833C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08098340 -sub_08098340: @ 0x08098340 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x74 - movs r1, #0x3c - strh r1, [r2] - bl sub_08098354 - pop {pc} - - thumb_func_start sub_08098354 -sub_08098354: @ 0x08098354 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _080983BC - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r1, _080983B4 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r1, [r1, #8] - adds r1, #0x10 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - adds r4, r6, #0 - adds r4, #0x70 - strh r2, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - ldr r0, _080983B8 @ =0x00004053 - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - adds r0, r6, #0 - movs r1, #1 - bl sub_08004260 - b _0809840C - .align 2, 0 -_080983B4: .4byte gUnk_03000BF0 -_080983B8: .4byte 0x00004053 -_080983BC: - movs r0, #1 - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r1, _08098410 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #0x10 - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - adds r4, r6, #0 - adds r4, #0x70 - strh r2, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - ldr r0, _08098414 @ =0x00004052 - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - adds r0, r6, #0 - movs r1, #0 - bl sub_08004260 -_0809840C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08098410: .4byte gUnk_03000BF0 -_08098414: .4byte 0x00004052 - - thumb_func_start sub_08098418 -sub_08098418: @ 0x08098418 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x70 - ldrh r0, [r6] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - ldr r1, _08098448 @ =0x00004054 - cmp r0, r1 - bne _0809846C - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809844C - movs r0, #1 - b _08098482 - .align 2, 0 -_08098448: .4byte 0x00004054 -_0809844C: - adds r0, r4, #0 - bl sub_08098484 - ldr r1, _08098468 @ =gUnk_081234A0 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6] - ldrb r2, [r5] - bl sub_0800015E - b _08098480 - .align 2, 0 -_08098468: .4byte gUnk_081234A0 -_0809846C: - adds r1, r4, #0 - adds r1, #0x74 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x62 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] -_08098480: - movs r0, #0 -_08098482: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08098484 -sub_08098484: @ 0x08098484 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xb] - ldr r4, _080984C4 @ =gUnk_081234AC - cmp r0, #0 - bne _08098492 - ldr r4, _080984C8 @ =gUnk_081234A4 -_08098492: - adds r2, r3, #0 - adds r2, #0x74 - ldrh r0, [r2] - lsrs r0, r0, #2 - movs r1, #6 - ands r0, r1 - adds r4, r4, r0 - ldrb r0, [r4] - adds r1, r3, #0 - adds r1, #0x62 - strb r0, [r1] - ldrb r1, [r4, #1] - adds r0, r3, #0 - adds r0, #0x63 - strb r1, [r0] - ldrh r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080984C2 - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 -_080984C2: - pop {r4, pc} - .align 2, 0 -_080984C4: .4byte gUnk_081234AC -_080984C8: .4byte gUnk_081234A4 - - thumb_func_start sub_080984CC -sub_080984CC: @ 0x080984CC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080984E8 @ =gUnk_08123504 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0800445C - pop {r4, pc} - .align 2, 0 -_080984E8: .4byte gUnk_08123504 - - thumb_func_start sub_080984EC -sub_080984EC: @ 0x080984EC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldr r2, _08098528 @ =gUnk_081234EC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0, #0x48] - ldrb r0, [r0, #0xb] - cmp r0, #1 - bne _08098524 - ldr r0, _0809852C @ =0x00004024 - movs r1, #0x82 - lsls r1, r1, #3 - movs r2, #1 - bl sub_0800015E - ldr r0, _08098530 @ =0x00004026 - ldr r1, _08098534 @ =0x00000411 - movs r2, #1 - bl sub_0800015E - ldr r0, _08098538 @ =0x00004025 - ldr r1, _0809853C @ =0x00000412 - movs r2, #1 - bl sub_0800015E -_08098524: - pop {pc} - .align 2, 0 -_08098528: .4byte gUnk_081234EC -_0809852C: .4byte 0x00004024 -_08098530: .4byte 0x00004026 -_08098534: .4byte 0x00000411 -_08098538: .4byte 0x00004025 -_0809853C: .4byte 0x00000412 - - thumb_func_start nullsub_532 -nullsub_532: @ 0x08098540 - bx lr - .align 2, 0 - - thumb_func_start sub_08098544 -sub_08098544: @ 0x08098544 - push {lr} - ldr r2, _08098558 @ =gUnk_0812350C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098558: .4byte gUnk_0812350C - - thumb_func_start sub_0809855C -sub_0809855C: @ 0x0809855C - push {r4, r5, lr} - adds r4, r0, #0 - movs r3, #0 - movs r5, #1 - strb r5, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x10] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x19] - strb r3, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6e - strb r0, [r1] - subs r1, #4 - movs r0, #0x86 - strb r0, [r1] - strb r3, [r4, #0x16] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080985AC - movs r0, #2 - strb r0, [r4, #0x1c] - b _080985AE -_080985AC: - strb r5, [r4, #0x1c] -_080985AE: - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_0806FAD8 - adds r0, r4, #0 - bl sub_08098918 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080985C0 -sub_080985C0: @ 0x080985C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080989E4 - cmp r0, #0 - bne _080985CE - b _080986FC -_080985CE: - ldrb r0, [r0, #0xc] - cmp r0, #4 - bls _080985D6 - b _080986E6 -_080985D6: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080985E6 - b _080986EE -_080985E6: - movs r0, #0x3f - ands r0, r1 - subs r0, #4 - cmp r0, #0x1c - bls _080985F2 - b _08098702 -_080985F2: - lsls r0, r0, #2 - ldr r1, _080985FC @ =_08098600 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080985FC: .4byte _08098600 -_08098600: @ jump table - .4byte _080986C4 @ case 0 - .4byte _080986C4 @ case 1 - .4byte _080986C4 @ case 2 - .4byte _08098702 @ case 3 - .4byte _080986C4 @ case 4 - .4byte _080986C4 @ case 5 - .4byte _080986C4 @ case 6 - .4byte _080986C4 @ case 7 - .4byte _080986C4 @ case 8 - .4byte _080986C4 @ case 9 - .4byte _08098702 @ case 10 - .4byte _0809867E @ case 11 - .4byte _080986C4 @ case 12 - .4byte _080986C4 @ case 13 - .4byte _080986C4 @ case 14 - .4byte _08098674 @ case 15 - .4byte _080986E0 @ case 16 - .4byte _08098702 @ case 17 - .4byte _080986E0 @ case 18 - .4byte _08098702 @ case 19 - .4byte _080986C4 @ case 20 - .4byte _080986C4 @ case 21 - .4byte _080986C4 @ case 22 - .4byte _08098702 @ case 23 - .4byte _08098702 @ case 24 - .4byte _0809867E @ case 25 - .4byte _08098702 @ case 26 - .4byte _08098702 @ case 27 - .4byte _080986E0 @ case 28 -_08098674: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _08098702 -_0809867E: - movs r2, #0 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x63 - strb r2, [r0] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r0, [r4, #0x50] - str r2, [r0, #0x54] - adds r0, r4, #0 - bl sub_080988E8 - b _08098702 -_080986C4: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080986E6 - ldr r0, _080986DC @ =gUnk_03003F80 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08098702 - b _080986E6 - .align 2, 0 -_080986DC: .4byte gUnk_03003F80 -_080986E0: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08098702 -_080986E6: - adds r0, r4, #0 - bl sub_080989C0 - b _08098702 -_080986EE: - adds r0, r4, #0 - bl sub_08098918 - adds r0, r4, #0 - bl sub_08078930 - b _08098702 -_080986FC: - adds r0, r4, #0 - bl sub_080989C0 -_08098702: - pop {r4, pc} - - thumb_func_start sub_08098704 -sub_08098704: @ 0x08098704 - push {lr} - ldr r2, _08098718 @ =gUnk_08123524 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098718: .4byte gUnk_08123524 - - thumb_func_start sub_0809871C -sub_0809871C: @ 0x0809871C - adds r3, r0, #0 - ldrb r1, [r3, #0x10] - movs r0, #0x80 - movs r2, #0 - orrs r0, r1 - strb r0, [r3, #0x10] - adds r1, r3, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #3 - movs r0, #1 - strb r0, [r1] - ldr r0, _08098754 @ =gLinkEntity - adds r0, #0x3b - ldrb r0, [r0] - subs r1, #4 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x63 - strb r2, [r0] - ldr r0, [r3, #0x50] - str r2, [r0, #0x54] - ldrb r0, [r3, #0xd] - adds r0, #1 - strb r0, [r3, #0xd] - bx lr - .align 2, 0 -_08098754: .4byte gLinkEntity - - thumb_func_start nullsub_533 -nullsub_533: @ 0x08098758 - bx lr - .align 2, 0 - - thumb_func_start sub_0809875C -sub_0809875C: @ 0x0809875C - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x18 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_08098770 -sub_08098770: @ 0x08098770 - push {r4, lr} - adds r4, r0, #0 - bl sub_080043E8 - cmp r0, #2 - beq _0809878C - cmp r0, #2 - bhi _08098786 - cmp r0, #1 - beq _08098792 - b _080987A4 -_08098786: - cmp r0, #3 - beq _08098798 - b _080987A4 -_0809878C: - adds r0, r4, #0 - movs r1, #0xb - b _0809879C -_08098792: - adds r0, r4, #0 - movs r1, #0 - b _0809879C -_08098798: - adds r0, r4, #0 - movs r1, #0xc -_0809879C: - movs r2, #0 - bl CreateFX - b _080987AC -_080987A4: - adds r0, r4, #0 - bl sub_080989C0 - b _080987B0 -_080987AC: - bl sub_0805E780 -_080987B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080987B4 -sub_080987B4: @ 0x080987B4 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080987BC -sub_080987BC: @ 0x080987BC - push {lr} - adds r1, r0, #0 - ldr r0, _080987D0 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _080987CE - adds r0, r1, #0 - bl sub_080987D4 -_080987CE: - pop {pc} - .align 2, 0 -_080987D0: .4byte gUnk_03003F80 - - thumb_func_start sub_080987D4 -sub_080987D4: @ 0x080987D4 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_080987E0 -sub_080987E0: @ 0x080987E0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0809880C @ =gUnk_08123540 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xd] - cmp r0, #1 - bhi _0809880A - adds r0, r4, #0 - bl sub_080989E4 - cmp r0, #0 - bne _0809880A - adds r0, r4, #0 - bl sub_080989C0 -_0809880A: - pop {r4, pc} - .align 2, 0 -_0809880C: .4byte gUnk_08123540 - - thumb_func_start sub_08098810 -sub_08098810: @ 0x08098810 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x30 - strb r1, [r0, #0x1d] - strb r2, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_08098820 -sub_08098820: @ 0x08098820 - push {lr} - adds r2, r0, #0 - ldr r0, _0809884C @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0809883E - adds r0, r2, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _08098850 -_0809883E: - adds r1, r2, #0 - adds r1, #0x62 - movs r0, #0 - strb r0, [r1] - movs r0, #1 - strb r0, [r2, #0xc] - b _08098856 - .align 2, 0 -_0809884C: .4byte gUnk_03003F80 -_08098850: - adds r0, r2, #0 - bl sub_0806F4E8 -_08098856: - pop {pc} - - thumb_func_start sub_08098858 -sub_08098858: @ 0x08098858 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - cmp r1, #0 - bne _08098878 - movs r0, #1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] - adds r2, r4, #0 - adds r2, #0x63 - movs r0, #0xfe - strb r0, [r2] - ldr r0, [r4, #0x50] - str r1, [r0, #0x54] -_08098878: - ldr r0, _0809889C @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _08098892 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _080988A0 -_08098892: - adds r0, r4, #0 - bl sub_080989C0 - b _080988B4 - .align 2, 0 -_0809889C: .4byte gUnk_03003F80 -_080988A0: - adds r0, r4, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080988B4 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080988B4 - bl sub_0805E780 -_080988B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080988B8 -sub_080988B8: @ 0x080988B8 - push {lr} - adds r2, r0, #0 - ldr r0, _080988CC @ =gUnk_03003F80 - ldrb r0, [r0, #0x1c] - cmp r0, #0 - bne _080988D0 - adds r0, r2, #0 - bl sub_080989C0 - b _080988D8 - .align 2, 0 -_080988CC: .4byte gUnk_03003F80 -_080988D0: - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_080988D8: - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_123 -nullsub_123: @ 0x080988DC - bx lr - .align 2, 0 - - thumb_func_start sub_080988E0 -sub_080988E0: @ 0x080988E0 - push {lr} - bl sub_080989C0 - pop {pc} - - thumb_func_start sub_080988E8 -sub_080988E8: @ 0x080988E8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _080988FA - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_080988FA: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0809890E - adds r0, r4, #0 - bl sub_080989C0 -_0809890E: - pop {r4, pc} - - thumb_func_start sub_08098910 -sub_08098910: @ 0x08098910 - push {lr} - bl sub_080989C0 - pop {pc} - - thumb_func_start sub_08098918 -sub_08098918: @ 0x08098918 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080989E4 - adds r6, r0, #0 - cmp r6, #0 - bne _0809892E - adds r0, r4, #0 - bl sub_080989C0 - b _080989BC -_0809892E: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r1, [r6, #0x10] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _08098990 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08098968 - adds r0, #1 - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_0806FAD8 -_08098968: - ldr r2, _0809898C @ =gUnk_08123558 - adds r0, r6, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, #8 - movs r1, #0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x63 - strb r1, [r0] - b _080989BC - .align 2, 0 -_0809898C: .4byte gUnk_08123558 -_08098990: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080989B2 - strb r5, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_0806FAD8 -_080989B2: - strh r5, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #3 - strb r0, [r1] -_080989BC: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080989C0 -sub_080989C0: @ 0x080989C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080989E4 - cmp r0, #0 - beq _080989D2 - ldr r1, [r4, #0x50] - movs r0, #0 - str r0, [r1, #0x54] -_080989D2: - ldrb r1, [r4, #0xa] - adds r1, #3 - adds r0, r4, #0 - movs r2, #0 - bl CreateFX - bl sub_0805E780 - pop {r4, pc} - - thumb_func_start sub_080989E4 -sub_080989E4: @ 0x080989E4 - push {lr} - ldr r1, [r0, #0x50] - cmp r1, #0 - beq _080989F4 - ldr r0, [r1, #4] - cmp r0, #0 - bne _080989F4 - movs r1, #0 -_080989F4: - adds r0, r1, #0 - pop {pc} - - thumb_func_start sub_080989F8 -sub_080989F8: @ 0x080989F8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08098A08 - bl sub_0805E780 -_08098A08: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08098A44 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x28 - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08098A38 - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _08098A44 -_08098A38: - cmp r0, #2 - bne _08098A44 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_08098A44: - ldr r0, [r4, #0x50] - movs r3, #0x80 - lsls r3, r3, #0xc - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #0 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08098A76 - ldr r3, [r4, #0x54] - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r3, #0x1e] - adds r0, #0x1f - strb r0, [r4, #0x1e] -_08098A76: - pop {r4, pc} - - thumb_func_start sub_08098A78 -sub_08098A78: @ 0x08098A78 - push {lr} - ldr r2, _08098A8C @ =gUnk_08123568 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098A8C: .4byte gUnk_08123568 - - thumb_func_start sub_08098A90 -sub_08098A90: @ 0x08098A90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _08098A9C - movs r0, #2 -_08098A9C: - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x7f - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - ldr r1, _08098ACC @ =gUnk_08123574 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r0, [r4, #0xb] - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_08098ACC: .4byte gUnk_08123574 - - thumb_func_start sub_08098AD0 -sub_08098AD0: @ 0x08098AD0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08098AE6 - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] -_08098AE6: - pop {pc} - - thumb_func_start sub_08098AE8 -sub_08098AE8: @ 0x08098AE8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08098B08 - movs r0, #0xfe - ands r0, r1 - strb r0, [r4] - ldr r0, _08098B0C @ =0x0000021B - bl sub_08004488 -_08098B08: - pop {r4, pc} - .align 2, 0 -_08098B0C: .4byte 0x0000021B - - thumb_func_start sub_08098B10 -sub_08098B10: @ 0x08098B10 - push {lr} - ldr r2, _08098B24 @ =gUnk_08123664 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098B24: .4byte gUnk_08123664 - - thumb_func_start sub_08098B28 -sub_08098B28: @ 0x08098B28 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r2, [r5, #0xa] - lsls r2, r2, #1 - ldr r0, _08098BD4 @ =gUnk_0812366C - adds r2, r2, r0 - movs r3, #1 - movs r4, #1 - strb r4, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - strb r0, [r5, #0x1e] - ldrb r0, [r2] - adds r1, r5, #0 - adds r1, #0x82 - strb r0, [r1] - ldrb r0, [r2, #1] - adds r2, r5, #0 - adds r2, #0x83 - strb r0, [r2] - ldrb r0, [r1] - lsrs r0, r0, #1 - ldrh r1, [r5, #0x2e] - subs r1, r1, r0 - adds r0, r5, #0 - adds r0, #0x78 - strh r1, [r0] - ldrb r0, [r2] - lsrs r0, r0, #1 - ldrh r1, [r5, #0x32] - subs r1, r1, r0 - subs r2, #9 - strh r1, [r2] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _08098BD8 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r5, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r6, r5, #0 - adds r6, #0x80 - strh r1, [r6] - adds r7, r5, #0 - adds r7, #0x38 - strb r4, [r7] - adds r0, r5, #0 - bl sub_08016A04 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08098BCA - ldr r0, _08098BDC @ =0x00004074 - ldrh r1, [r6] - subs r1, #0x40 - ldrb r2, [r7] - bl sub_0800015E -_08098BCA: - adds r0, r5, #0 - bl sub_08098BE8 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08098BD4: .4byte gUnk_0812366C -_08098BD8: .4byte gUnk_03000BF0 -_08098BDC: .4byte 0x00004074 - - thumb_func_start sub_08098BE0 -sub_08098BE0: @ 0x08098BE0 - push {lr} - bl sub_08098BE8 - pop {pc} - - thumb_func_start sub_08098BE8 -sub_08098BE8: @ 0x08098BE8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _08098C28 @ =gUnk_03003F80 - ldr r0, [r6, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08098C26 - ldr r4, _08098C2C @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08098C30 - cmp r0, #0 - beq _08098C26 - bl sub_08079F8C - cmp r0, #0 - beq _08098C26 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08098C26 - movs r0, #1 - strb r0, [r6, #0x14] - adds r0, r5, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_0807AAF8 -_08098C26: - pop {r4, r5, r6, pc} - .align 2, 0 -_08098C28: .4byte gUnk_03003F80 -_08098C2C: .4byte gLinkEntity - - thumb_func_start sub_08098C30 -sub_08098C30: @ 0x08098C30 - push {r4, lr} - adds r3, r0, #0 - movs r4, #0 - movs r0, #0x2e - ldrsh r2, [r1, r0] - adds r0, r3, #0 - adds r0, #0x78 - ldrh r0, [r0] - subs r2, r2, r0 - movs r0, #0x32 - ldrsh r1, [r1, r0] - adds r0, r3, #0 - adds r0, #0x7a - ldrh r0, [r0] - subs r1, r1, r0 - adds r0, r3, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r2, r0 - bhi _08098C64 - adds r0, r3, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r1, r0 - bhi _08098C64 - movs r4, #1 -_08098C64: - adds r0, r4, #0 - pop {r4, pc} - - thumb_func_start sub_08098C68 -sub_08098C68: @ 0x08098C68 - push {lr} - ldr r2, _08098C7C @ =gUnk_08123674 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098C7C: .4byte gUnk_08123674 - - thumb_func_start sub_08098C80 -sub_08098C80: @ 0x08098C80 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - strb r0, [r4, #0xe] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08098CC8 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - ldr r0, _08098CCC @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08098CD0 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - b _08098CD6 - .align 2, 0 -_08098CC8: .4byte gUnk_03000BF0 -_08098CCC: .4byte gUnk_03003F80 -_08098CD0: - adds r0, r4, #0 - adds r0, #0x38 - strb r5, [r0] -_08098CD6: - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - subs r1, #0x40 - movs r0, #0x47 - movs r2, #1 - bl sub_08000148 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start nullsub_124 -nullsub_124: @ 0x08098CF0 - bx lr - .align 2, 0 - - thumb_func_start sub_08098CF4 -sub_08098CF4: @ 0x08098CF4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08098D14 - ldr r0, _08098D10 @ =gUnk_0812367C - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08098D1A - .align 2, 0 -_08098D10: .4byte gUnk_0812367C -_08098D14: - adds r0, r2, #0 - bl sub_08098E3C -_08098D1A: - pop {pc} - - thumb_func_start sub_08098D1C -sub_08098D1C: @ 0x08098D1C - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - ldr r0, _08098D40 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - cmp r0, #0 - beq _08098D44 - bl sub_0807CBE4 - cmp r0, #0 - bne _08098D44 - strb r5, [r4, #0xc] - b _08098D5A - .align 2, 0 -_08098D40: .4byte 0x0000FFF0 -_08098D44: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08098E88 -_08098D5A: - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - pop {r4, r5, pc} - - thumb_func_start sub_08098D6C -sub_08098D6C: @ 0x08098D6C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08098D9A - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x2d - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x43 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08098D9A - ldrh r0, [r1, #0x32] - adds r0, #8 - strh r0, [r1, #0x32] -_08098D9A: - pop {r4, pc} - - thumb_func_start sub_08098D9C -sub_08098D9C: @ 0x08098D9C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08098DC2 - movs r0, #3 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - bl sub_08098E88 -_08098DC2: - pop {pc} - - thumb_func_start sub_08098DC4 -sub_08098DC4: @ 0x08098DC4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _08098E2C @ =gLinkEntity - adds r1, r6, #0 - movs r2, #8 - movs r3, #8 - bl sub_0800419C - cmp r0, #0 - beq _08098E24 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0806FA24 - adds r0, r5, #0 - bl sub_08004542 - adds r0, r6, #0 - bl sub_08004542 - adds r0, r6, #0 - adds r0, #0x38 - movs r4, #1 - strb r4, [r0] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0806FAB0 - ldr r1, _08098E30 @ =gUnk_03003F80 - movs r0, #0x1f - strb r0, [r1, #0xc] - adds r0, r1, #0 - adds r0, #0x38 - strb r4, [r0] - ldrb r0, [r5, #0xb] - adds r1, #0x39 - strb r0, [r1] - movs r1, #4 - strb r1, [r5, #0xc] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08098E20 - movs r0, #0x23 - bl sub_0807CD04 -_08098E20: - bl sub_08077B20 -_08098E24: - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, r6, pc} - .align 2, 0 -_08098E2C: .4byte gLinkEntity -_08098E30: .4byte gUnk_03003F80 - - thumb_func_start sub_08098E34 -sub_08098E34: @ 0x08098E34 - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08098E3C -sub_08098E3C: @ 0x08098E3C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08098E5E - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_080042AC -_08098E5E: - ldrb r1, [r4, #0xa] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r0, r0, #1 - ldr r1, _08098E84 @ =gUnk_08123690 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r2, [r0, #2] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08098E84: .4byte gUnk_08123690 - - thumb_func_start sub_08098E88 -sub_08098E88: @ 0x08098E88 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x82 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08098EB0 - ldr r3, _08098ED8 @ =0xFFFF0000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #8 - strb r0, [r1] -_08098EB0: - movs r0, #0x82 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08098ED4 - ldr r3, _08098EDC @ =0xFFFE0000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0x10 - strb r0, [r1] -_08098ED4: - pop {r4, r5, pc} - .align 2, 0 -_08098ED8: .4byte 0xFFFF0000 -_08098EDC: .4byte 0xFFFE0000 - - thumb_func_start sub_08098EE0 -sub_08098EE0: @ 0x08098EE0 - push {lr} - ldr r2, _08098EF4 @ =gUnk_081236DC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08098EF4: .4byte gUnk_081236DC - - thumb_func_start sub_08098EF8 -sub_08098EF8: @ 0x08098EF8 - push {lr} - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #5 - orrs r1, r2 - strb r1, [r3] - bl sub_08098FCC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08098F14 -sub_08098F14: @ 0x08098F14 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_080990EC - cmp r0, #0 - beq _08098F84 - movs r6, #0 - movs r0, #2 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x72 - ldrh r1, [r1] - ldrb r2, [r4] - bl sub_0800015E - movs r0, #0x99 - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r5, #0 - movs r1, #0x1e - bl sub_0805E4E0 - bl sub_08079F8C - cmp r0, #0 - beq _08098F84 - ldr r2, _08098F88 @ =gUnk_03003F80 - movs r0, #0x98 - strb r0, [r2, #6] - movs r0, #5 - strb r0, [r2, #0xc] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _08098F8C @ =gLinkEntity - strh r6, [r1, #0x2c] - strh r6, [r1, #0x30] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] -_08098F84: - pop {r4, r5, r6, pc} - .align 2, 0 -_08098F88: .4byte gUnk_03003F80 -_08098F8C: .4byte gLinkEntity - - thumb_func_start sub_08098F90 -sub_08098F90: @ 0x08098F90 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08098FC8 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08098FB8 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _08098FC2 -_08098FB8: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 -_08098FC2: - adds r0, r4, #0 - bl sub_08098FCC -_08098FC8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08098FCC -sub_08098FCC: @ 0x08098FCC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x84 - movs r1, #0x3c - strh r1, [r2] - bl sub_08098FE0 - pop {pc} - - thumb_func_start sub_08098FE0 -sub_08098FE0: @ 0x08098FE0 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _0809906C - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r1, _08099060 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r1, [r1, #8] - adds r1, #0x10 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - adds r5, r6, #0 - adds r5, #0x70 - strh r2, [r5] - subs r2, #0x40 - adds r7, r6, #0 - adds r7, #0x72 - strh r2, [r7] - ldrh r0, [r5] - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r0, [r7] - ldrb r1, [r4] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r0, _08099064 @ =0x00004057 - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _08099068 @ =0x00004058 - ldrh r1, [r7] - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - movs r1, #1 - bl sub_08004260 - b _080990DC - .align 2, 0 -_08099060: .4byte gUnk_03000BF0 -_08099064: .4byte 0x00004057 -_08099068: .4byte 0x00004058 -_0809906C: - movs r0, #1 - strb r0, [r6, #0xb] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _080990E0 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - adds r0, #0x10 - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r6, #0 - adds r5, #0x70 - strh r1, [r5] - subs r1, #1 - adds r7, r6, #0 - adds r7, #0x72 - strh r1, [r7] - ldrh r0, [r5] - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r0, [r7] - ldrb r1, [r4] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r0, _080990E4 @ =0x00004055 - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0800015E - ldr r0, _080990E8 @ =0x00004056 - ldrh r1, [r7] - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - movs r1, #0 - bl sub_08004260 -_080990DC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080990E0: .4byte gUnk_03000BF0 -_080990E4: .4byte 0x00004055 -_080990E8: .4byte 0x00004056 - - thumb_func_start sub_080990EC -sub_080990EC: @ 0x080990EC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x72 - ldrh r0, [r6] - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - ldr r1, _0809911C @ =0x00004059 - cmp r0, r1 - bne _08099140 - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08099120 - movs r0, #1 - b _08099156 - .align 2, 0 -_0809911C: .4byte 0x00004059 -_08099120: - adds r0, r4, #0 - bl sub_08099158 - ldr r1, _0809913C @ =gUnk_081236E8 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6] - ldrb r2, [r5] - bl sub_0800015E - b _08099154 - .align 2, 0 -_0809913C: .4byte gUnk_081236E8 -_08099140: - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x62 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] -_08099154: - movs r0, #0 -_08099156: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08099158 -sub_08099158: @ 0x08099158 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xb] - ldr r4, _08099198 @ =gUnk_081236F4 - cmp r0, #0 - bne _08099166 - ldr r4, _0809919C @ =gUnk_081236EC -_08099166: - adds r2, r3, #0 - adds r2, #0x84 - ldrh r0, [r2] - lsrs r0, r0, #2 - movs r1, #6 - ands r0, r1 - adds r4, r4, r0 - ldrb r0, [r4] - adds r1, r3, #0 - adds r1, #0x62 - strb r0, [r1] - ldrb r1, [r4, #1] - adds r0, r3, #0 - adds r0, #0x63 - strb r1, [r0] - ldrh r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08099194 - ldr r0, _080991A0 @ =0x00000131 - bl sub_08004488 -_08099194: - pop {r4, pc} - .align 2, 0 -_08099198: .4byte gUnk_081236F4 -_0809919C: .4byte gUnk_081236EC -_080991A0: .4byte 0x00000131 - - thumb_func_start sub_080991A4 -sub_080991A4: @ 0x080991A4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #2 - bhi _080991C4 - ldr r0, _080991C0 @ =gUnk_08123734 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _080991CA - .align 2, 0 -_080991C0: .4byte gUnk_08123734 -_080991C4: - adds r0, r2, #0 - bl sub_080996AC -_080991CA: - pop {pc} - - thumb_func_start sub_080991CC -sub_080991CC: @ 0x080991CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bgt _080991EC - cmp r0, #0 - blt _080991EC - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080991EC - bl sub_0805E780 -_080991EC: - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - subs r1, #5 - movs r0, #0x80 - strb r0, [r1] - ldr r0, _08099244 @ =gUnk_080FD408 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_08099468 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 - movs r0, #0x84 - movs r1, #3 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _08099242 - str r4, [r0, #0x50] -_08099242: - pop {r4, pc} - .align 2, 0 -_08099244: .4byte gUnk_080FD408 - - thumb_func_start sub_08099248 -sub_08099248: @ 0x08099248 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_0809963C - cmp r0, #0 - beq _08099280 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldr r0, _0809927C @ =0x000001B3 - bl sub_08004488 - adds r0, r4, #0 - bl sub_08099330 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0809930E - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _0809930E - .align 2, 0 -_0809927C: .4byte 0x000001B3 -_08099280: - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _0809930E - adds r7, r4, #0 - adds r7, #0x70 - ldrh r0, [r7] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080002B0 - adds r5, r0, #0 - ldr r0, _080992B8 @ =0x0000405A - cmp r5, r0 - beq _0809930E - adds r0, r5, #0 - bl sub_08099618 - cmp r0, #1 - beq _080992BC - cmp r0, #1 - blo _080992DC - cmp r0, #2 - beq _08099308 - b _0809930E - .align 2, 0 -_080992B8: .4byte 0x0000405A -_080992BC: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x16 - strb r0, [r4, #0xe] - adds r0, r5, #0 - subs r0, #0x5b - movs r1, #3 - ands r0, r1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r0, #0x20 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_080994B8 - b _0809930E -_080992DC: - movs r0, #0xf - movs r1, #0xd - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080992F2 - adds r0, r4, #0 - bl sub_0806FA24 -_080992F2: - adds r0, r4, #0 - adds r0, #0x6c - ldrh r0, [r0] - ldrh r1, [r7] - ldrb r2, [r6] - bl sub_0800015E - adds r0, r4, #0 - bl sub_0805E7BC - b _0809930E -_08099308: - adds r0, r4, #0 - adds r0, #0x6c - strh r5, [r0] -_0809930E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08099310 -sub_08099310: @ 0x08099310 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809953C - cmp r0, #0 - beq _0809932E - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08099468 - movs r0, #0xd9 - lsls r0, r0, #1 - bl sub_08004488 -_0809932E: - pop {r4, pc} - - thumb_func_start sub_08099330 -sub_08099330: @ 0x08099330 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809963C - adds r1, r0, #0 - cmp r1, #0 - bne _0809935E - ldrb r0, [r4, #0xe] - cmp r0, #1 - bls _0809934A - subs r0, #2 - strb r0, [r4, #0xe] - b _0809934C -_0809934A: - strb r1, [r4, #0xe] -_0809934C: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08099364 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0805EC60 - b _080993CA -_0809935E: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] -_08099364: - movs r1, #0x80 - lsls r1, r1, #1 - ldr r2, _0809939C @ =gUnk_08123748 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #5 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080993A0 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r3, [r0] - adds r0, r4, #0 - movs r1, #0x53 - movs r2, #0 - bl sub_080A2A3C - movs r0, #0x72 - bl sub_080A3268 - b _080993BA - .align 2, 0 -_0809939C: .4byte gUnk_08123748 -_080993A0: - cmp r0, #2 - bne _080993BA - adds r0, r4, #0 - adds r0, #0x86 - ldrh r3, [r0] - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl sub_080A2A3C - movs r0, #0x72 - bl sub_080A3268 -_080993BA: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_080993CA: - pop {r4, pc} - - thumb_func_start sub_080993CC -sub_080993CC: @ 0x080993CC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080993E2 - bl sub_0805E780 - b _08099466 -_080993E2: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x30 - bne _08099400 - adds r0, r5, #0 - adds r0, #0x6c - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x70 - ldrh r1, [r1] - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_08099400: - movs r1, #0x80 - lsls r1, r1, #1 - ldrb r0, [r5, #0xe] - movs r2, #0x3c - subs r2, r2, r0 - lsls r2, r2, #5 - adds r2, r2, r1 - adds r0, r5, #0 - movs r3, #0 - bl sub_0805EC9C - ldrb r1, [r5, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08099466 - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r6, r0, #0 - cmp r6, #0 - beq _08099466 - bl sub_08000E50 - adds r4, r0, #0 - asrs r0, r4, #0x10 - movs r1, #9 - bl __modsi3 - adds r2, r0, #0 - subs r2, #4 - movs r3, #0xf - ands r3, r4 - adds r4, r6, #0 - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4] - lsls r2, r2, #0x10 - rsbs r3, r3, #0 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r6, #0 - bl PositionRelative -_08099466: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08099468 -sub_08099468: @ 0x08099468 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _080994B0 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r6, #0 - adds r4, #0x70 - strh r1, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x6c - strh r0, [r1] - ldr r0, _080994B4 @ =0x0000405A - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_080994B0: .4byte gUnk_03000BF0 -_080994B4: .4byte 0x0000405A - - thumb_func_start sub_080994B8 -sub_080994B8: @ 0x080994B8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _08099530 @ =0x000001B1 - bl sub_08004488 - adds r0, r5, #0 - adds r0, #0x6c - ldrh r0, [r0] - adds r6, r5, #0 - adds r6, #0x70 - ldrh r1, [r6] - adds r4, r5, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldrb r0, [r4] - cmp r0, #2 - bne _080994F8 - ldrh r0, [r6] - movs r1, #1 - bl sub_080002B0 - ldr r1, _08099534 @ =0x0000405A - cmp r0, r1 - bne _080994F8 - movs r0, #0xc4 - lsls r0, r0, #2 - ldrh r1, [r6] - movs r2, #1 - bl sub_08000152 -_080994F8: - adds r2, r5, #0 - adds r2, #0x70 - ldr r1, _08099538 @ =gUnk_080B4488 - ldrb r0, [r5, #0x15] - lsrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - ldrh r2, [r2] - adds r0, r0, r2 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x79 - beq _08099524 - cmp r0, #0x77 - bne _0809952C -_08099524: - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #0xfe - strb r0, [r1] -_0809952C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08099530: .4byte 0x000001B1 -_08099534: .4byte 0x0000405A -_08099538: .4byte gUnk_080B4488 - - thumb_func_start sub_0809953C -sub_0809953C: @ 0x0809953C - push {r4, lr} - adds r4, r0, #0 - bl sub_0800442E - cmp r0, #0 - bne _08099612 - adds r0, r4, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_0800445C - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _08099570 - ldrh r0, [r4, #0x24] - adds r0, #0x10 - strh r0, [r4, #0x24] - subs r0, r1, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08099570 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_08099570: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - cmp r0, #1 - beq _080995A0 - cmp r0, #1 - bgt _08099582 - cmp r0, #0 - beq _08099588 - b _080995E6 -_08099582: - cmp r0, #2 - beq _080995BA - b _080995E6 -_08099588: - ldrh r1, [r4, #0x2a] - movs r0, #0xe - ands r0, r1 - cmp r0, #0 - beq _08099612 - ldrh r1, [r4, #0x32] - movs r0, #0xf - ands r0, r1 - subs r0, #7 - cmp r0, #2 - bls _080995D0 - b _080995DE -_080995A0: - ldrh r1, [r4, #0x2a] - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08099612 - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - subs r0, #7 - cmp r0, #2 - bls _080995FE - b _080995DE -_080995BA: - ldrh r1, [r4, #0x2a] - movs r0, #0xe0 - ands r0, r1 - cmp r0, #0 - beq _08099612 - ldrh r1, [r4, #0x32] - movs r0, #0xf - ands r0, r1 - subs r0, #7 - cmp r0, #2 - bhi _080995DE -_080995D0: - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x32] - movs r0, #1 - b _08099614 -_080995DE: - adds r0, r4, #0 - bl sub_0809969C - b _08099612 -_080995E6: - ldrh r1, [r4, #0x2a] - movs r0, #0xe0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08099612 - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - subs r0, #7 - cmp r0, #2 - bhi _0809960C -_080995FE: - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x2e] - movs r0, #1 - b _08099614 -_0809960C: - adds r0, r4, #0 - bl sub_0809969C -_08099612: - movs r0, #0 -_08099614: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08099618 -sub_08099618: @ 0x08099618 - push {lr} - adds r2, r0, #0 - ldr r1, _08099620 @ =gUnk_08123750 - b _08099630 - .align 2, 0 -_08099620: .4byte gUnk_08123750 -_08099624: - ldrh r0, [r1] - cmp r0, r2 - bne _0809962E - ldrh r0, [r1, #2] - b _08099638 -_0809962E: - adds r1, #4 -_08099630: - ldrh r0, [r1] - cmp r0, #0 - bne _08099624 - movs r0, #0 -_08099638: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809963C -sub_0809963C: @ 0x0809963C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _08099684 - bl sub_0804B128 - adds r4, r0, #0 - ldrh r0, [r4] - bl sub_0807CBE4 - cmp r0, #0 - beq _08099684 - ldr r0, _08099694 @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - ldrh r2, [r4, #2] - adds r1, r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r0, [r0, #8] - ldrh r6, [r4, #4] - adds r0, r0, r6 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - ldrh r2, [r4, #6] - movs r6, #0x2e - ldrsh r0, [r5, r6] - subs r0, r0, r1 - cmp r2, r0 - blo _08099684 - ldrh r1, [r4, #8] - movs r2, #0x32 - ldrsh r0, [r5, r2] - subs r0, r0, r3 - cmp r1, r0 - bhs _08099698 -_08099684: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x87 - beq _08099698 - movs r0, #0 - b _0809969A - .align 2, 0 -_08099694: .4byte gUnk_03000BF0 -_08099698: - movs r0, #1 -_0809969A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0809969C -sub_0809969C: @ 0x0809969C - push {lr} - movs r1, #0xd - movs r2, #0 - bl CreateFX - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080996AC -sub_080996AC: @ 0x080996AC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080996BC - bl sub_0805E780 -_080996BC: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080996CE - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 -_080996CE: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bhi _08099726 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08099706 - movs r0, #0 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x78 - ands r0, r1 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] -_08099706: - adds r0, r4, #0 - bl sub_08004274 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #0x11 - strb r0, [r1] - b _08099730 -_08099726: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08099730: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08099734 -sub_08099734: @ 0x08099734 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #3 - bhi _08099754 - ldr r0, _08099750 @ =gUnk_081237A0 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0809975A - .align 2, 0 -_08099750: .4byte gUnk_081237A0 -_08099754: - adds r0, r2, #0 - bl sub_08099D30 -_0809975A: - pop {pc} - - thumb_func_start sub_0809975C -sub_0809975C: @ 0x0809975C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _08099770 - bl sub_0805E780 -_08099770: - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - subs r1, #5 - movs r0, #0x80 - strb r0, [r1] - ldr r0, _080997C8 @ =gUnk_080FD190 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_08099910 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 - movs r0, #0x85 - movs r1, #4 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _080997C6 - str r4, [r0, #0x50] -_080997C6: - pop {r4, pc} - .align 2, 0 -_080997C8: .4byte gUnk_080FD190 - - thumb_func_start sub_080997CC -sub_080997CC: @ 0x080997CC - push {r4, lr} - adds r4, r0, #0 - bl sub_0809963C - cmp r0, #0 - beq _080997EC - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xc] - strb r0, [r4, #0xe] - ldr r0, _080997F0 @ =0x000001B3 - bl sub_08004488 - adds r0, r4, #0 - bl sub_080997F4 -_080997EC: - pop {r4, pc} - .align 2, 0 -_080997F0: .4byte 0x000001B3 - - thumb_func_start sub_080997F4 -sub_080997F4: @ 0x080997F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809963C - adds r1, r0, #0 - cmp r1, #0 - bne _08099822 - ldrb r0, [r4, #0xe] - cmp r0, #1 - bls _0809980E - subs r0, #2 - strb r0, [r4, #0xe] - b _08099810 -_0809980E: - strb r1, [r4, #0xe] -_08099810: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08099828 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0805EC60 - b _0809987C -_08099822: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] -_08099828: - ldr r1, _08099858 @ =gUnk_081237B0 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #5 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r2, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0809986C - cmp r0, #2 - beq _0809985C - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _0809986C - .align 2, 0 -_08099858: .4byte gUnk_081237B0 -_0809985C: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r3, [r0] - adds r0, r4, #0 - movs r1, #0x53 - movs r2, #0 - bl sub_080A2A3C -_0809986C: - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_0809987C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08099880 -sub_08099880: @ 0x08099880 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _08099896 - bl sub_0805E780 - b _0809990E -_08099896: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x30 - bne _080998A4 - adds r0, r5, #0 - bl sub_08099C18 -_080998A4: - ldrb r0, [r5, #0xe] - movs r4, #0x3c - subs r4, r4, r0 - lsls r4, r4, #5 - movs r1, #0x80 - lsls r1, r1, #1 - adds r4, r4, r1 - adds r0, r5, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #2 - movs r3, #0 - bl sub_0806FCF4 - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r6, r0, #0 - cmp r6, #0 - beq _0809990E - bl sub_08000E50 - adds r4, r0, #0 - asrs r0, r4, #0x10 - movs r1, #0x21 - bl __modsi3 - adds r2, r0, #0 - subs r2, #0x10 - movs r0, #0xf - ands r0, r4 - subs r4, r0, #4 - adds r3, r6, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - lsls r2, r2, #0x10 - lsls r3, r4, #0x10 - adds r0, r5, #0 - adds r1, r6, #0 - bl PositionRelative -_0809990E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08099910 -sub_08099910: @ 0x08099910 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _08099968 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r6, r0, #4 - movs r2, #0x3f - ands r6, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r6, r0 - adds r0, r4, #0 - adds r0, #0x6e - strh r6, [r0] - ldrh r2, [r4, #0x2e] - movs r0, #8 - adds r1, r0, #0 - ands r1, r2 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x13 - ldrh r2, [r4, #0x32] - ands r0, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x12 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - cmp r1, #2 - beq _08099A4C - cmp r1, #2 - bhi _0809996C - cmp r1, #1 - beq _080999A8 - b _08099972 - .align 2, 0 -_08099968: .4byte gUnk_03000BF0 -_0809996C: - cmp r1, #3 - bne _08099972 - b _08099AF0 -_08099972: - ldr r5, _080999A4 @ =0x00004022 - adds r1, r6, #0 - subs r1, #0x41 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - subs r1, r6, #1 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0800015E - b _08099BF0 - .align 2, 0 -_080999A4: .4byte 0x00004022 -_080999A8: - adds r5, r6, #0 - subs r5, #0x41 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099A40 @ =0x00004024 - cmp r0, #0x12 - bne _080999C0 - adds r1, #0x55 -_080999C0: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - ldr r7, _08099A44 @ =0x00004022 - adds r1, r6, #0 - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r7, #0 - bl sub_0800015E - adds r5, r6, #0 - subs r5, #0x3f - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099A48 @ =0x00004025 - cmp r0, #0x12 - bne _080999EE - adds r1, #0x56 -_080999EE: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - subs r5, r6, #1 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099A40 @ =0x00004024 - cmp r0, #0x12 - bne _08099A0C - adds r1, #0x55 -_08099A0C: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - ldrb r2, [r4] - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_0800015E - adds r5, r6, #1 - adds r0, r5, #0 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099A48 @ =0x00004025 - cmp r0, #0x12 - bne _08099A32 - adds r1, #0x56 -_08099A32: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - b _08099BF0 - .align 2, 0 -_08099A40: .4byte 0x00004024 -_08099A44: .4byte 0x00004022 -_08099A48: .4byte 0x00004025 -_08099A4C: - adds r7, r6, #0 - subs r7, #0x41 - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080002C8 - ldr r1, _08099AE4 @ =0x00004023 - cmp r0, #0x12 - bne _08099A66 - adds r1, #0x54 -_08099A66: - ldrb r2, [r5] - adds r0, r1, #0 - adds r1, r7, #0 - bl sub_0800015E - adds r4, r6, #0 - subs r4, #0x40 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r5] - bl sub_080002C8 - ldr r1, _08099AE4 @ =0x00004023 - cmp r0, #0x12 - bne _08099A86 - adds r1, #0x54 -_08099A86: - ldrb r2, [r5] - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_0800015E - ldr r4, _08099AE8 @ =0x00004022 - subs r1, r6, #1 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrb r2, [r5] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0800015E - adds r4, r6, #0 - adds r4, #0x3f - adds r0, r4, #0 - ldrb r1, [r5] - bl sub_080002C8 - ldr r1, _08099AEC @ =0x00004026 - cmp r0, #0x12 - bne _08099ABA - adds r1, #0x56 -_08099ABA: - ldrb r2, [r5] - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_0800015E - adds r4, r6, #0 - adds r4, #0x40 - adds r0, r4, #0 - ldrb r1, [r5] - bl sub_080002C8 - ldr r1, _08099AEC @ =0x00004026 - cmp r0, #0x12 - bne _08099AD8 - adds r1, #0x56 -_08099AD8: - ldrb r2, [r5] - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_0800015E - b _08099BF0 - .align 2, 0 -_08099AE4: .4byte 0x00004023 -_08099AE8: .4byte 0x00004022 -_08099AEC: .4byte 0x00004026 -_08099AF0: - adds r5, r6, #0 - subs r5, #0x41 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099BF4 @ =0x00004027 - cmp r0, #0x12 - bne _08099B08 - adds r1, #0x4e -_08099B08: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - adds r5, r6, #0 - subs r5, #0x40 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099BF8 @ =0x00004023 - cmp r0, #0x12 - bne _08099B28 - adds r1, #0x54 -_08099B28: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - adds r5, r6, #0 - subs r5, #0x3f - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099BFC @ =0x00004028 - cmp r0, #0x12 - bne _08099B48 - adds r1, #0x4e -_08099B48: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - subs r5, r6, #1 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099C00 @ =0x00004024 - cmp r0, #0x12 - bne _08099B66 - adds r1, #0x55 -_08099B66: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - ldr r0, _08099C04 @ =0x00004022 - ldrb r2, [r4] - adds r1, r6, #0 - bl sub_0800015E - adds r5, r6, #1 - adds r0, r5, #0 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099C08 @ =0x00004025 - cmp r0, #0x12 - bne _08099B8C - adds r1, #0x56 -_08099B8C: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - adds r5, r6, #0 - adds r5, #0x3f - adds r0, r5, #0 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099C0C @ =0x00004029 - cmp r0, #0x12 - bne _08099BAA - adds r1, #0x4f -_08099BAA: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - adds r5, r6, #0 - adds r5, #0x40 - adds r0, r5, #0 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099C10 @ =0x00004026 - cmp r0, #0x12 - bne _08099BC8 - adds r1, #0x56 -_08099BC8: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E - adds r5, r6, #0 - adds r5, #0x41 - adds r0, r5, #0 - ldrb r1, [r4] - bl sub_080002C8 - ldr r1, _08099C14 @ =0x0000402A - cmp r0, #0x12 - bne _08099BE6 - adds r1, #0x50 -_08099BE6: - ldrb r2, [r4] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0800015E -_08099BF0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08099BF4: .4byte 0x00004027 -_08099BF8: .4byte 0x00004023 -_08099BFC: .4byte 0x00004028 -_08099C00: .4byte 0x00004024 -_08099C04: .4byte 0x00004022 -_08099C08: .4byte 0x00004025 -_08099C0C: .4byte 0x00004029 -_08099C10: .4byte 0x00004026 -_08099C14: .4byte 0x0000402A - - thumb_func_start sub_08099C18 -sub_08099C18: @ 0x08099C18 - push {r4, r5, lr} - adds r1, r0, #0 - adds r0, #0x6e - ldrh r5, [r0] - subs r0, #2 - ldrh r0, [r0] - cmp r0, #2 - beq _08099C96 - cmp r0, #2 - bgt _08099C32 - cmp r0, #1 - beq _08099C60 - b _08099C36 -_08099C32: - cmp r0, #3 - beq _08099CD4 -_08099C36: - adds r0, r5, #0 - subs r0, #0x41 - adds r4, r1, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - b _08099D2C -_08099C60: - adds r0, r5, #0 - subs r0, #0x41 - adds r4, r1, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - adds r0, r5, #1 - b _08099CCC -_08099C96: - adds r0, r5, #0 - subs r0, #0x41 - adds r4, r1, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x40 -_08099CCC: - ldrb r1, [r4] - bl sub_0807BA8C - b _08099D2C -_08099CD4: - adds r0, r5, #0 - subs r0, #0x41 - adds r4, r1, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - adds r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r4] - bl sub_0807BA8C -_08099D2C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08099D30 -sub_08099D30: @ 0x08099D30 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08099D40 - bl sub_0805E780 -_08099D40: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08099D6A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_08099D6A: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #1 - bhi _08099DAA - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08099DA2 - movs r0, #0 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x78 - ands r0, r1 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] -_08099DA2: - adds r0, r4, #0 - bl sub_08004274 - b _08099DB4 -_08099DAA: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08099DB4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08099DB8 -sub_08099DB8: @ 0x08099DB8 - push {lr} - ldr r2, _08099DCC @ =gUnk_081237F8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08099DCC: .4byte gUnk_081237F8 - - thumb_func_start sub_08099DD0 -sub_08099DD0: @ 0x08099DD0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x38 - movs r6, #0 - movs r5, #1 - strb r5, [r0] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - strb r6, [r4, #0xd] - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - beq _08099E04 - movs r0, #4 - strb r0, [r4, #0xc] - strb r6, [r4, #0x1e] - b _08099E0E -_08099E04: - strb r5, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08099E0E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08099E10 -sub_08099E10: @ 0x08099E10 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x74 - bl sub_0807CBD0 - cmp r0, #0 - beq _08099E54 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #1 - bne _08099E3E - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08099E3E - strb r0, [r5] - adds r0, r4, #0 - bl sub_08099ECC -_08099E3E: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08099E54 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08099E54: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08099E58 -sub_08099E58: @ 0x08099E58 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08099E88 - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bne _08099E88 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0x1e] -_08099E88: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08099E8C -sub_08099E8C: @ 0x08099E8C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08099EC4 @ =gLinkEntity - movs r2, #0xc - movs r3, #0xc - bl sub_080041A0 - cmp r0, #0 - beq _08099EC2 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08099EB2 - adds r0, r4, #0 - bl sub_08099ECC - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0805E4E0 -_08099EB2: - movs r0, #0x75 - bl sub_0807CBD0 - cmp r0, #0 - beq _08099EC2 - movs r0, #7 - bl sub_0805B390 -_08099EC2: - pop {r4, pc} - .align 2, 0 -_08099EC4: .4byte gLinkEntity - - thumb_func_start nullsub_534 -nullsub_534: @ 0x08099EC8 - bx lr - .align 2, 0 - - thumb_func_start sub_08099ECC -sub_08099ECC: @ 0x08099ECC - push {r4, lr} - movs r4, #0 - movs r1, #1 - strb r1, [r0, #0xd] - ldr r1, _08099EF4 @ =gLinkEntity - bl sub_0806FA24 - ldr r2, _08099EF8 @ =gUnk_03003F80 - movs r0, #3 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x38 - strb r4, [r0] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #8 - orrs r0, r1 - str r0, [r2, #0x30] - pop {r4, pc} - .align 2, 0 -_08099EF4: .4byte gLinkEntity -_08099EF8: .4byte gUnk_03003F80 - - thumb_func_start sub_08099EFC -sub_08099EFC: @ 0x08099EFC - push {lr} - ldr r2, _08099F10 @ =gUnk_08123840 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08099F10: .4byte gUnk_08123840 - - thumb_func_start sub_08099F14 -sub_08099F14: @ 0x08099F14 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - ldrb r0, [r5, #0xa] - cmp r0, #9 - bls _08099F2A - b _0809A1B6 -_08099F2A: - lsls r0, r0, #2 - ldr r1, _08099F34 @ =_08099F38 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08099F34: .4byte _08099F38 -_08099F38: @ jump table - .4byte _08099F60 @ case 0 - .4byte _08099F70 @ case 1 - .4byte _08099F82 @ case 2 - .4byte _0809A00C @ case 3 - .4byte _0809A0AA @ case 4 - .4byte _0809A0B0 @ case 5 - .4byte _0809A058 @ case 6 - .4byte _0809A11C @ case 7 - .4byte _0809A132 @ case 8 - .4byte _0809A1B0 @ case 9 -_08099F60: - adds r2, r5, #0 - adds r2, #0x79 - movs r0, #0 - movs r1, #0x96 - strb r1, [r2] - strb r0, [r5, #0xe] - movs r0, #0x1e - strb r0, [r5, #0xf] -_08099F70: - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 - b _0809A1B6 -_08099F82: - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x80 - rsbs r0, r0, #0 - strb r0, [r5, #0x15] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08099FCE - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #3 - ands r1, r0 - cmp r1, #1 - beq _08099FBC - cmp r1, #1 - blo _08099FB6 - cmp r1, #2 - beq _08099FC2 - cmp r1, #3 - beq _08099FC8 - b _08099FCE -_08099FB6: - ldrb r0, [r5, #0x15] - subs r0, #0x10 - b _08099FCC -_08099FBC: - ldrb r0, [r5, #0x15] - adds r0, #0x10 - b _08099FCC -_08099FC2: - ldrb r0, [r5, #0x15] - subs r0, #8 - b _08099FCC -_08099FC8: - ldrb r0, [r5, #0x15] - adds r0, #8 -_08099FCC: - strb r0, [r5, #0x15] -_08099FCE: - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - movs r1, #0xf0 - subs r1, r1, r0 - strh r1, [r5, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - lsls r1, r1, #8 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - ldrh r1, [r5, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - lsls r1, r1, #8 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r5, #0 - movs r1, #5 - bl sub_08004260 - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 - b _0809A1B6 -_0809A00C: - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x80 - rsbs r0, r0, #0 - strb r0, [r5, #0x15] - movs r1, #0x90 - lsls r1, r1, #7 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0809A040 - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - adds r0, r0, r1 - strb r0, [r5, #0x15] - b _0809A04E -_0809A040: - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - subs r1, r1, r0 - strb r1, [r5, #0x15] -_0809A04E: - adds r0, r5, #0 - movs r1, #6 - bl sub_08004260 - b _0809A1B6 -_0809A058: - bl sub_08000E50 - movs r1, #0x2f - ands r1, r0 - movs r4, #0x30 - subs r4, r4, r1 - lsls r4, r4, #8 - bl sub_08000E50 - movs r2, #0xff - ands r2, r0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806F62C - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0809A092 - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - adds r0, r0, r1 - strb r0, [r5, #0x15] - b _0809A0A0 -_0809A092: - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - subs r1, r1, r0 - strb r1, [r5, #0x15] -_0809A0A0: - adds r0, r5, #0 - movs r1, #5 - bl sub_08004260 - b _0809A1B6 -_0809A0AA: - movs r0, #0xc3 - lsls r0, r0, #2 - b _0809A1B4 -_0809A0B0: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0x18 - str r0, [r5, #0x78] - adds r7, r5, #0 - adds r7, #0x76 - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r7] - adds r4, r5, #0 - adds r4, #0x74 - strh r0, [r4] - adds r6, r5, #0 - adds r6, #0x7a - strh r1, [r6] - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r1, [r0] - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - ldr r3, _0809A118 @ =gUnk_0812388C - ldrb r2, [r5, #0xb] - lsls r0, r2, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r3 - lsrs r1, r1, #0x18 - ldrh r0, [r0] - adds r1, r1, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r2, [r2] - adds r0, r5, #0 - bl sub_0806F62C - ldrh r1, [r7] - ldrh r2, [r4] - ldrh r3, [r6] - adds r0, r5, #0 - bl sub_0805EC9C - adds r0, r5, #0 - movs r1, #7 - bl sub_08004260 - b _0809A1B6 - .align 2, 0 -_0809A118: .4byte gUnk_0812388C -_0809A11C: - movs r0, #0 - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #8 - bl sub_08004260 - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FA24 - b _0809A1B6 -_0809A132: - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r0, [r0] - movs r1, #0 - strb r0, [r5, #0xb] - movs r0, #4 - strb r0, [r5, #0xe] - strb r1, [r5, #0xf] - ldr r3, _0809A1A0 @ =gUnk_03000BF0 - ldrh r0, [r5, #0x2e] - ldrh r1, [r3, #6] - subs r0, r0, r1 - movs r1, #0xf8 - lsls r1, r1, #1 - adds r2, r1, #0 - ands r0, r2 - movs r1, #0x82 - adds r1, r1, r5 - mov ip, r1 - strh r0, [r1] - ldrh r1, [r5, #0x32] - ldrh r0, [r3, #8] - subs r1, r1, r0 - ands r1, r2 - adds r3, r5, #0 - adds r3, #0x80 - strh r1, [r3] - adds r4, r5, #0 - adds r4, #0x84 - mov r0, ip - ldrh r2, [r0] - subs r2, #0x10 - asrs r2, r2, #4 - lsrs r1, r1, #4 - lsls r0, r1, #5 - subs r0, r0, r1 - adds r2, r2, r0 - str r2, [r4] - mov r1, ip - ldrh r0, [r1] - ldrh r1, [r3] - ldrb r3, [r5, #0xb] - bl sub_0809A6F8 - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809A1A8 - ldr r0, _0809A1A4 @ =0x000001A3 - bl sub_080A3268 - b _0809A1B6 - .align 2, 0 -_0809A1A0: .4byte gUnk_03000BF0 -_0809A1A4: .4byte 0x000001A3 -_0809A1A8: - movs r0, #0xe8 - bl sub_080A3268 - b _0809A1B6 -_0809A1B0: - movs r0, #0xf0 - lsls r0, r0, #1 -_0809A1B4: - str r0, [r5, #0x78] -_0809A1B6: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809A1B8 -sub_0809A1B8: @ 0x0809A1B8 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - adds r7, r0, #0 - bl sub_08004274 - ldrb r0, [r7, #0xa] - cmp r0, #9 - bls _0809A1D2 - b _0809A632 -_0809A1D2: - lsls r0, r0, #2 - ldr r1, _0809A1DC @ =_0809A1E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809A1DC: .4byte _0809A1E0 -_0809A1E0: @ jump table - .4byte _0809A208 @ case 0 - .4byte _0809A25C @ case 1 - .4byte _0809A33E @ case 2 - .4byte _0809A378 @ case 3 - .4byte _0809A394 @ case 4 - .4byte _0809A3E0 @ case 5 - .4byte _0809A378 @ case 6 - .4byte _0809A46C @ case 7 - .4byte _0809A47C @ case 8 - .4byte _0809A616 @ case 9 -_0809A208: - adds r1, r7, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #0 - beq _0809A25C - subs r0, #1 - strb r0, [r1] - ldrb r0, [r7, #0xf] - subs r0, #1 - strb r0, [r7, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r1, #0xb - str r1, [sp, #0x20] - cmp r0, #0xff - bne _0809A254 - movs r0, #5 - strb r0, [r7, #0xf] - ldrb r3, [r7, #0xb] - adds r0, r7, #0 - movs r1, #0x87 - movs r2, #1 - bl sub_080A2988 - adds r1, r0, #0 - str r1, [r7, #0x54] - cmp r1, #0 - beq _0809A24E - ldr r0, [r7, #0x50] - str r0, [r1, #0x50] - ldr r0, [r7, #0x54] - adds r0, #0x84 - ldr r2, [sp, #0x20] - ldr r1, [r2] - str r1, [r0] -_0809A24E: - ldrb r0, [r7, #0xb] - adds r0, #1 - strb r0, [r7, #0xb] -_0809A254: - ldr r1, [sp, #0x20] - ldr r0, [r1] - ldr r0, [r0, #0xc] - b _0809A474 -_0809A25C: - adds r4, r7, #0 - adds r4, #0x84 - ldr r1, [r4] - ldrb r0, [r7, #0xe] - lsls r0, r0, #2 - adds r1, #0xc - adds r1, r1, r0 - ldr r2, [r1] - ldr r0, [r2, #0x2c] - ldr r1, [r7, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r7, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r7, #0x15] - movs r2, #0x24 - ldrsh r1, [r7, r2] - ldrb r2, [r7, #0x15] - adds r0, r7, #0 - bl sub_0806F62C - ldr r1, [r4] - ldrb r0, [r7, #0xe] - lsls r0, r0, #2 - adds r1, #0xc - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r7, #0 - movs r2, #2 - movs r3, #2 - bl sub_080041A0 - cmp r0, #0 - bne _0809A2A6 - b _0809A632 -_0809A2A6: - ldrb r0, [r7, #0xa] - cmp r0, #0 - bne _0809A2CC - ldr r1, [r4] - ldrb r0, [r7, #0xe] - lsls r0, r0, #2 - adds r1, #0xc - adds r1, r1, r0 - ldr r3, [r1] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #2 - rsbs r0, r0, #0 - ands r1, r0 - subs r0, #2 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] -_0809A2CC: - ldrb r1, [r7, #0xe] - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r0, #1 - cmp r1, r0 - bne _0809A338 - movs r0, #2 - strb r0, [r7, #0xc] - movs r0, #0xf0 - strb r0, [r7, #0xe] - bl sub_08000E50 - ldr r6, _0809A330 @ =gUnk_0812384C - ldrb r2, [r7, #0xb] - movs r3, #0xf - movs r4, #0xf - adds r1, r4, #0 - ands r1, r2 - lsls r1, r1, #2 - adds r1, r1, r6 - ands r0, r3 - ldrb r1, [r1] - adds r0, r0, r1 - strb r0, [r7, #0x15] - bl sub_08000E50 - ldrb r1, [r7, #0xb] - ands r4, r1 - lsls r4, r4, #1 - adds r4, #1 - lsls r4, r4, #1 - adds r4, r4, r6 - ldr r2, _0809A334 @ =0x000001FF - adds r1, r2, #0 - ands r0, r1 - ldrh r4, [r4] - adds r0, r0, r4 - strh r0, [r7, #0x24] - ldrb r0, [r7, #0xa] - cmp r0, #0 - beq _0809A320 - b _0809A632 -_0809A320: - ldr r1, [r7, #0x50] - movs r0, #4 - strb r0, [r1, #0xc] - ldr r1, [r7, #0x50] - movs r0, #0 - strb r0, [r1, #0xd] - b _0809A632 - .align 2, 0 -_0809A330: .4byte gUnk_0812384C -_0809A334: .4byte 0x000001FF -_0809A338: - adds r0, r1, #1 - strb r0, [r7, #0xe] - b _0809A632 -_0809A33E: - ldr r1, [r7, #0x50] - ldrb r0, [r1, #0xb] - cmp r0, #3 - bne _0809A38E - adds r0, r1, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r2, [r0, #8] - ldr r0, [r2, #0x2c] - ldr r1, [r7, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r7, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r7, #0x15] - movs r1, #0xa0 - lsls r1, r1, #2 - ldrb r2, [r7, #0x15] - adds r0, r7, #0 - bl sub_0806F62C - ldr r1, [r7, #0x50] - adds r0, r7, #0 - movs r2, #0x48 - bl sub_0806FC80 - b _0809A388 -_0809A378: - ldrb r2, [r7, #0x15] - adds r0, r7, #0 - movs r1, #0x80 - bl sub_0806F62C - adds r0, r7, #0 - adds r0, #0x5a - ldrb r0, [r0] -_0809A388: - cmp r0, #0 - bne _0809A38E - b _0809A632 -_0809A38E: - bl sub_0805E780 - b _0809A632 -_0809A394: - ldr r3, [r7, #0x78] - cmp r3, #0 - bne _0809A3B4 - ldr r0, _0809A3B0 @ =gUnk_02034350 - movs r2, #0xc - ldrsh r1, [r0, r2] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _0809A38E - movs r0, #8 - bl sub_0805308C - b _0809A632 - .align 2, 0 -_0809A3B0: .4byte gUnk_02034350 -_0809A3B4: - ldr r2, [r7, #0x50] - adds r0, r2, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _0809A3C8 - movs r0, #1 - strb r0, [r7, #0xd] - str r1, [r7, #0x78] - b _0809A632 -_0809A3C8: - ldrb r0, [r7, #0xd] - cmp r0, #0 - bne _0809A3D6 - ldrb r0, [r2, #0xb] - cmp r0, #0 - beq _0809A3D6 - b _0809A632 -_0809A3D6: - movs r0, #1 - strb r0, [r7, #0xd] - subs r0, r3, #1 - str r0, [r7, #0x78] - b _0809A632 -_0809A3E0: - ldr r0, [r7, #0x78] - cmp r0, #0 - bne _0809A432 - adds r0, r7, #0 - adds r0, #0x76 - ldrh r2, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - adds r5, r0, #0 - cmp r2, r1 - bne _0809A40E - ldr r0, [r7, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - adds r4, r7, #0 - adds r4, #0x74 - cmp r0, #0 - beq _0809A420 - bl sub_0805E780 - b _0809A420 -_0809A40E: - adds r0, r2, #0 - subs r0, #0x20 - strh r0, [r5] - adds r1, r7, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #0x20 - strh r0, [r1] - adds r4, r1, #0 -_0809A420: - ldrh r1, [r5] - ldrh r2, [r4] - adds r0, r7, #0 - adds r0, #0x7a - ldrh r3, [r0] - adds r0, r7, #0 - bl sub_0805EC9C - b _0809A436 -_0809A432: - subs r0, #1 - str r0, [r7, #0x78] -_0809A436: - ldr r0, [r7, #0x50] - adds r1, r7, #0 - bl sub_0806FA24 - ldr r4, _0809A468 @ =gUnk_0812388C - ldrb r3, [r7, #0xb] - lsls r0, r3, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r1, [r0] - ldr r0, [r7, #0x50] - adds r0, #0x7b - ldrb r2, [r0] - rsbs r2, r2, #0 - lsls r2, r2, #0x18 - lsls r3, r3, #2 - adds r3, r3, r4 - lsrs r2, r2, #0x18 - ldrh r3, [r3] - adds r2, r2, r3 - adds r0, r7, #0 - bl sub_0806F62C - b _0809A632 - .align 2, 0 -_0809A468: .4byte gUnk_0812388C -_0809A46C: - ldrb r0, [r7, #0xe] - cmp r0, #0 - bne _0809A38E - ldr r0, [r7, #0x50] -_0809A474: - adds r1, r7, #0 - bl sub_0806FA24 - b _0809A632 -_0809A47C: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0809A48C - b _0809A632 -_0809A48C: - movs r0, #4 - strb r0, [r7, #0xe] - ldrb r0, [r7, #0xf] - adds r0, #1 - strb r0, [r7, #0xf] - adds r0, r7, #0 - adds r0, #0x84 - str r0, [sp, #4] - ldrb r1, [r7, #0xf] - lsls r0, r1, #5 - subs r0, r0, r1 - ldr r2, [sp, #4] - ldr r1, [r2] - subs r1, r1, r0 - mov sl, r1 - mov r0, sl - str r0, [sp] - adds r1, r7, #0 - adds r1, #0x82 - str r1, [sp, #8] - ldrh r0, [r1] - adds r2, r7, #0 - adds r2, #0x7e - str r2, [sp, #0xc] - strh r0, [r2] - ldrh r0, [r1] - subs r1, #8 - str r1, [sp, #0x10] - strh r0, [r1] - movs r2, #0x80 - adds r2, r2, r7 - mov sb, r2 - ldrb r0, [r7, #0xf] - lsls r0, r0, #4 - ldrh r1, [r2] - subs r1, r1, r0 - movs r0, #0x7c - adds r0, r0, r7 - mov r8, r0 - strh r1, [r0] - adds r4, r7, #0 - adds r4, #0x78 - strh r1, [r4] - ldr r1, [sp, #0x10] - ldrh r0, [r1] - ldrh r1, [r4] - ldrb r3, [r7, #0xb] - mov r2, sl - bl sub_0809A6F8 - adds r5, r0, #0 - ldrb r6, [r7, #0xf] - ldr r2, [sp, #4] - str r2, [sp, #0x20] - ldr r0, [sp, #0x10] - str r0, [sp, #0x28] - ldr r1, [sp, #8] - str r1, [sp, #0x1c] - ldr r2, [sp, #0xc] - str r2, [sp, #0x30] - mov r0, sb - str r0, [sp, #0x34] - mov r1, r8 - str r1, [sp, #0x2c] - str r4, [sp, #0x24] - cmp r6, #0 - beq _0809A568 - ldr r2, [sp, #0x28] - str r2, [sp, #0x14] - mov sb, r4 - ldr r0, [sp, #0x30] - mov r8, r0 - adds r4, r1, #0 -_0809A51E: - ldr r1, [sp, #0x14] - ldrh r0, [r1] - subs r0, #0x10 - strh r0, [r1] - mov r2, sb - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r2] - ldr r0, [sp] - adds r0, #0x1e - str r0, [sp] - ldrh r0, [r1] - ldrh r1, [r2] - ldrb r3, [r7, #0xb] - ldr r2, [sp] - bl sub_0809A6F8 - adds r5, r5, r0 - mov r1, r8 - ldrh r0, [r1] - adds r0, #0x10 - strh r0, [r1] - ldrh r0, [r4] - adds r0, #0x10 - strh r0, [r4] - movs r2, #0x20 - add sl, r2 - ldrh r0, [r1] - ldrh r1, [r4] - ldrb r3, [r7, #0xb] - mov r2, sl - bl sub_0809A6F8 - adds r5, r5, r0 - subs r6, #1 - cmp r6, #0 - bne _0809A51E -_0809A568: - ldrb r1, [r7, #0xf] - lsls r0, r1, #5 - subs r0, r0, r1 - ldr r2, [sp, #0x20] - ldr r1, [r2] - adds r1, r1, r0 - mov sl, r1 - mov r0, sl - str r0, [sp] - ldr r1, [sp, #0x1c] - ldrh r0, [r1] - ldr r2, [sp, #0x30] - strh r0, [r2] - ldrh r0, [r1] - ldr r1, [sp, #0x28] - strh r0, [r1] - ldrb r0, [r7, #0xf] - lsls r0, r0, #4 - ldr r2, [sp, #0x34] - ldrh r2, [r2] - adds r0, r0, r2 - ldr r1, [sp, #0x2c] - strh r0, [r1] - ldr r2, [sp, #0x24] - strh r0, [r2] - ldr r1, [sp, #0x28] - ldrh r0, [r1] - ldrh r1, [r2] - ldrb r3, [r7, #0xb] - mov r2, sl - bl sub_0809A6F8 - adds r5, r5, r0 - ldrb r0, [r7, #0xf] - subs r6, r0, #1 - cmp r6, #0 - beq _0809A610 - ldr r2, [sp, #0x28] - str r2, [sp, #0x18] - ldr r0, [sp, #0x24] - mov sb, r0 - ldr r1, [sp, #0x30] - mov r8, r1 - ldr r4, [sp, #0x2c] -_0809A5C0: - ldr r2, [sp, #0x18] - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r2] - mov r1, sb - ldrh r0, [r1] - subs r0, #0x10 - strh r0, [r1] - ldr r2, [sp] - subs r2, #0x20 - str r2, [sp] - ldr r1, [sp, #0x18] - ldrh r0, [r1] - mov r2, sb - ldrh r1, [r2] - ldrb r3, [r7, #0xb] - ldr r2, [sp] - bl sub_0809A6F8 - adds r5, r5, r0 - mov r1, r8 - ldrh r0, [r1] - adds r0, #0x10 - strh r0, [r1] - ldrh r0, [r4] - subs r0, #0x10 - strh r0, [r4] - movs r2, #0x1e - rsbs r2, r2, #0 - add sl, r2 - ldrh r0, [r1] - ldrh r1, [r4] - ldrb r3, [r7, #0xb] - mov r2, sl - bl sub_0809A6F8 - adds r5, r5, r0 - subs r6, #1 - cmp r6, #0 - bne _0809A5C0 -_0809A610: - cmp r5, #0 - bne _0809A632 - b _0809A38E -_0809A616: - bl sub_08078B48 - ldr r0, [r7, #0x78] - subs r0, #1 - str r0, [r7, #0x78] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0809A632 - ldr r1, _0809A640 @ =gUnk_03000BF0 - ldr r0, _0809A644 @ =gLinkEntity - str r0, [r1, #0x30] - bl sub_0805E780 -_0809A632: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809A640: .4byte gUnk_03000BF0 -_0809A644: .4byte gLinkEntity - - thumb_func_start sub_0809A648 -sub_0809A648: @ 0x0809A648 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - bl sub_08004274 - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0809A6EC - ldr r4, [r7, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - movs r2, #0x24 - ldrsh r1, [r7, r2] - adds r5, r1, #0 - muls r5, r0, r5 - adds r4, #0x7b - ldrb r1, [r4] - ldrb r0, [r7, #0x15] - subs r0, r0, r1 - movs r1, #0x7b - adds r1, r1, r7 - mov r8, r1 - strb r0, [r1] - ldr r6, _0809A6E8 @ =gUnk_080C9160 - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r5, r5, #8 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - bl sub_0806FA04 - ldr r1, [r7, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r7, #0x2c] - mov r1, r8 - ldrb r0, [r1] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_0806FA04 - ldr r1, [r7, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x30] - subs r1, r1, r0 - str r1, [r7, #0x30] - b _0809A6F0 - .align 2, 0 -_0809A6E8: .4byte gUnk_080C9160 -_0809A6EC: - bl sub_0805E780 -_0809A6F0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809A6F8 -sub_0809A6F8: @ 0x0809A6F8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r7, r3, #0 - bl sub_0809A758 - cmp r0, #0 - beq _0809A754 - ldr r0, _0809A738 @ =gUnk_081238A0 - lsls r1, r6, #1 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _0809A750 - movs r0, #1 - ands r0, r7 - cmp r0, #0 - beq _0809A73C - ldrh r0, [r1] - lsrs r1, r4, #4 - movs r3, #0x3f - ands r1, r3 - lsrs r2, r5, #4 - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl sub_0807B9B8 - b _0809A750 - .align 2, 0 -_0809A738: .4byte gUnk_081238A0 -_0809A73C: - lsrs r0, r4, #4 - movs r2, #0x3f - ands r0, r2 - lsrs r1, r5, #4 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #1 - bl sub_0807BA8C -_0809A750: - movs r0, #1 - b _0809A756 -_0809A754: - movs r0, #0 -_0809A756: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809A758 -sub_0809A758: @ 0x0809A758 - push {lr} - adds r2, r0, #0 - cmp r2, #0xf - bls _0809A770 - movs r0, #0xf8 - lsls r0, r0, #1 - cmp r2, r0 - bhi _0809A770 - cmp r1, #0xf0 - bhi _0809A770 - movs r0, #1 - b _0809A772 -_0809A770: - movs r0, #0 -_0809A772: - pop {pc} - - thumb_func_start sub_0809A774 -sub_0809A774: @ 0x0809A774 - push {lr} - ldr r2, _0809A788 @ =gUnk_08123C80 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809A788: .4byte gUnk_08123C80 - - thumb_func_start sub_0809A78C -sub_0809A78C: @ 0x0809A78C - push {r4, r5, lr} - adds r4, r0, #0 - movs r3, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r2, #0x80 - strb r2, [r4, #0xe] - strb r3, [r4, #0xf] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r5, r4, #0 - adds r5, #0x80 - strh r2, [r5] - adds r0, r4, #0 - adds r0, #0x78 - strh r3, [r0] - ldrh r0, [r4, #0x2e] - subs r0, #4 - strh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfc - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - ldrh r2, [r5] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - adds r0, r4, #0 - bl sub_08016A04 - ldrb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0809A958 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809A7F4 -sub_0809A7F4: @ 0x0809A7F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0809AA00 - ldrb r0, [r4, #0xe] - adds r2, r0, #0 - cmp r2, #0 - beq _0809A810 - subs r0, #1 - strb r0, [r4, #0xe] - b _0809A840 -_0809A810: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809A840 - ldrb r0, [r4, #0xf] - cmp r0, #3 - bne _0809A838 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - b _0809A840 -_0809A838: - ldrb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_080042AC -_0809A840: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809A844 -sub_0809A844: @ 0x0809A844 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0809AA00 - ldrb r0, [r4, #0xf] - cmp r0, #1 - bhi _0809A85C - movs r1, #0 - b _0809A870 -_0809A85C: - ldrb r0, [r4, #0xe] - adds r2, r0, #0 - cmp r2, #0 - beq _0809A87C - subs r0, #1 - strb r0, [r4, #0xe] - ldr r0, _0809A878 @ =gUnk_03004040 - ldr r1, [r0] - cmp r1, #0 - bne _0809A8A0 -_0809A870: - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - b _0809A8A0 - .align 2, 0 -_0809A878: .4byte gUnk_03004040 -_0809A87C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809A8A0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r2, [r4, #0xe] - adds r0, r4, #0 - movs r1, #3 - bl sub_080042AC - adds r0, r4, #0 - movs r1, #0x78 - bl sub_0805E4E0 -_0809A8A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809A8A4 -sub_0809A8A4: @ 0x0809A8A4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0xe0 - ands r0, r1 - cmp r0, #0x40 - beq _0809A8D4 - cmp r0, #0x40 - bgt _0809A8C0 - cmp r0, #0x20 - beq _0809A8E2 - b _0809A8FC -_0809A8C0: - cmp r0, #0x80 - bne _0809A8FC - adds r0, r4, #0 - adds r0, #0x59 - ldrb r0, [r0] - cmp r0, #0 - bne _0809A902 - bl sub_0805E780 - b _0809A902 -_0809A8D4: - movs r0, #0xbf - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0809A9D4 - b _0809A902 -_0809A8E2: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ldrb r1, [r2] - movs r0, #0xdf - ands r0, r1 - strb r0, [r2] - movs r0, #0xff - bl sub_08078A90 - movs r0, #0x2a - bl sub_0807CD04 -_0809A8FC: - adds r0, r4, #0 - bl sub_080042B8 -_0809A902: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809A92A - adds r1, r4, #0 - adds r1, #0x80 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] - ldr r0, [r4, #0x2c] - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r0, r2 - str r0, [r4, #0x2c] - ldrh r2, [r1] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - b _0809A94E -_0809A92A: - ldr r1, [r4, #0x54] - adds r0, r4, #0 - movs r2, #0 - bl sub_0809AA9C - ldr r1, _0809A950 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #1 - bl sub_0809AA9C - ldr r0, _0809A954 @ =gUnk_03004040 - ldr r1, [r0] - cmp r1, #0 - beq _0809A94E - adds r0, r4, #0 - movs r2, #1 - bl sub_0809AA9C -_0809A94E: - pop {r4, pc} - .align 2, 0 -_0809A950: .4byte gLinkEntity -_0809A954: .4byte gUnk_03004040 - - thumb_func_start sub_0809A958 -sub_0809A958: @ 0x0809A958 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r1, #0x2e - ldrsh r3, [r0, r1] - ldr r2, _0809A9CC @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r1, #4 - subs r3, r3, r1 - asrs r3, r3, #4 - movs r4, #0x3f - ands r3, r4 - movs r5, #0x32 - ldrsh r1, [r0, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - lsls r1, r1, #6 - orrs r3, r1 - adds r0, #0x82 - strh r3, [r0] - ldrh r0, [r0] - adds r5, r0, #0 - subs r5, #0x82 - ldr r6, _0809A9D0 @ =gUnk_08123C90 - movs r0, #0 - movs r1, #0x80 - lsls r1, r1, #7 - mov sb, r1 -_0809A996: - movs r4, #0 - adds r0, #1 - mov r8, r0 - adds r7, r5, #0 - adds r7, #0x40 -_0809A9A0: - ldrh r0, [r6] - mov r1, sb - ands r0, r1 - cmp r0, #0 - beq _0809A9B4 - ldrh r0, [r6] - adds r1, r5, r4 - movs r2, #1 - bl sub_0800015E -_0809A9B4: - adds r4, #1 - adds r6, #2 - cmp r4, #3 - ble _0809A9A0 - mov r0, r8 - adds r5, r7, #0 - cmp r0, #4 - ble _0809A996 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809A9CC: .4byte gUnk_03000BF0 -_0809A9D0: .4byte gUnk_08123C90 - - thumb_func_start sub_0809A9D4 -sub_0809A9D4: @ 0x0809A9D4 - push {r4, r5, r6, r7, lr} - adds r0, #0x82 - ldrh r0, [r0] - adds r5, r0, #0 - subs r5, #0x82 - movs r0, #0 -_0809A9E0: - movs r4, #0 - adds r7, r0, #1 - adds r6, r5, #0 - adds r6, #0x40 -_0809A9E8: - adds r0, r5, r4 - movs r1, #1 - bl sub_0807BA8C - adds r4, #1 - cmp r4, #3 - ble _0809A9E8 - adds r0, r7, #0 - adds r5, r6, #0 - cmp r0, #4 - ble _0809A9E0 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809AA00 -sub_0809AA00: @ 0x0809AA00 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - movs r0, #0 - strb r0, [r5, #0xf] - ldr r1, [r5, #0x54] - cmp r1, #0 - bne _0809AA50 - movs r0, #7 - movs r1, #0x38 - movs r2, #7 - bl sub_0805EB00 - adds r4, r0, #0 - adds r7, r5, #0 - adds r7, #0x78 - cmp r4, #0 - beq _0809AA5C - movs r0, #0x80 - lsls r0, r0, #4 - mov r8, r0 - ldr r0, _0809AA4C @ =0x0000FFFF - adds r6, r0, #0 -_0809AA30: - ldrh r0, [r4, #0xa] - ands r0, r6 - cmp r0, r8 - bne _0809AA3A - str r4, [r5, #0x54] -_0809AA3A: - adds r0, r4, #0 - movs r1, #7 - bl sub_0805EB64 - adds r4, r0, #0 - cmp r4, #0 - bne _0809AA30 - b _0809AA5C - .align 2, 0 -_0809AA4C: .4byte 0x0000FFFF -_0809AA50: - adds r0, r5, #0 - movs r2, #0 - bl sub_0809AA9C - adds r7, r5, #0 - adds r7, #0x78 -_0809AA5C: - ldr r4, _0809AA94 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x20 - movs r3, #0x22 - bl sub_080041A0 - strh r0, [r7] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0809AA8E - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - bl sub_0809AA9C - ldr r0, _0809AA98 @ =gUnk_03004040 - ldr r4, [r0] - cmp r4, #0 - beq _0809AA8E - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #1 - bl sub_0809AA9C -_0809AA8E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809AA94: .4byte gLinkEntity -_0809AA98: .4byte gUnk_03004040 - - thumb_func_start sub_0809AA9C -sub_0809AA9C: @ 0x0809AA9C - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r1, #3 - ands r1, r0 - cmp r1, #1 - beq _0809AAB2 - cmp r1, #2 - bne _0809AABC -_0809AAB2: - adds r0, r3, #0 - adds r0, #0x63 - strb r1, [r0] - adds r2, r0, #0 - b _0809AAC6 -_0809AABC: - adds r1, r3, #0 - adds r1, #0x63 - movs r0, #0 - strb r0, [r1] - adds r2, r1, #0 -_0809AAC6: - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldr r0, _0809AAE8 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - movs r3, #0xad - lsls r3, r3, #1 - adds r0, r0, r3 - cmp r1, r0 - bgt _0809AAE4 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] -_0809AAE4: - pop {r4, pc} - .align 2, 0 -_0809AAE8: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809AAEC -sub_0809AAEC: @ 0x0809AAEC - push {lr} - ldr r2, _0809AB00 @ =gUnk_08123D28 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809AB00: .4byte gUnk_08123D28 - - thumb_func_start sub_0809AB04 -sub_0809AB04: @ 0x0809AB04 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x31 - bl sub_0807CBE4 - cmp r0, #0 - beq _0809AB22 - adds r0, r5, #0 - bl sub_0809AD68 - adds r0, r5, #0 - bl sub_0809AD8C - bl sub_0805E780 -_0809AB22: - movs r0, #0x36 - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0809AB9C - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r4, [r5, #0x54] - ldr r2, _0809AB68 @ =gUnk_030010A0 - adds r0, r2, #0 - adds r0, #0x38 - ldrb r1, [r0] - cmp r1, #0 - beq _0809AB70 - adds r0, #1 - ldrb r0, [r0] - cmp r0, #0 - beq _0809AB52 - bl sub_0805E780 -_0809AB52: - movs r0, #7 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #0xb - ands r0, r1 - strb r0, [r5, #0x18] - ldr r0, _0809AB6C @ =gUnk_03000BF0 - str r5, [r0, #0x30] - bl sub_080809D4 - b _0809AB9C - .align 2, 0 -_0809AB68: .4byte gUnk_030010A0 -_0809AB6C: .4byte gUnk_03000BF0 -_0809AB70: - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x1e - strb r0, [r5, #0xe] - strb r1, [r5, #0x1e] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #0x20 - strb r0, [r1] - ldr r1, _0809ABA0 @ =gUnk_08012DD8 - adds r0, r5, #0 - bl sub_0807DAD0 - adds r1, r5, #0 - adds r1, #0x84 - str r0, [r1] -_0809AB9C: - pop {r4, r5, pc} - .align 2, 0 -_0809ABA0: .4byte gUnk_08012DD8 - - thumb_func_start sub_0809ABA4 -sub_0809ABA4: @ 0x0809ABA4 - push {lr} - movs r1, #0 - bl sub_0807DDAC - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809ABB0 -sub_0809ABB0: @ 0x0809ABB0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809ABCE - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x78 - strb r0, [r2, #0xe] - ldr r1, _0809ABD0 @ =gUnk_03000BF0 - ldr r0, [r2, #0x54] - str r0, [r1, #0x30] -_0809ABCE: - pop {pc} - .align 2, 0 -_0809ABD0: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809ABD4 -sub_0809ABD4: @ 0x0809ABD4 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809ABF2 - movs r0, #4 - strb r0, [r1, #0xc] - movs r0, #0x5a - strb r0, [r1, #0xe] - ldr r1, [r1, #0x54] - movs r0, #1 - strb r0, [r1, #0xd] -_0809ABF2: - pop {pc} - - thumb_func_start sub_0809ABF4 -sub_0809ABF4: @ 0x0809ABF4 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x54] - ldrb r0, [r0, #0xd] - cmp r0, #2 - bls _0809AC36 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0809AC36 - movs r0, #5 - strb r0, [r2, #0xc] - movs r0, #8 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - ldrb r1, [r2, #0x19] - subs r0, #0x15 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #0x19] - ldr r1, _0809AC38 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xf4 - lsls r0, r0, #4 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x10 - strh r0, [r1] -_0809AC36: - pop {pc} - .align 2, 0 -_0809AC38: .4byte gUnk_03000F50 - - thumb_func_start sub_0809AC3C -sub_0809AC3C: @ 0x0809AC3C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0809AC9A - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r2, [r4, #0xf] - adds r2, #1 - strb r2, [r4, #0xf] - adds r1, r2, #0 - ands r1, r3 - ldr r6, _0809AC9C @ =gUnk_03000F50 - lsls r3, r1, #8 - movs r0, #0x10 - subs r0, r0, r1 - movs r1, #0xff - ands r0, r1 - orrs r3, r0 - adds r0, r6, #0 - adds r0, #0x68 - strh r3, [r0] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - cmp r2, #0xf - bls _0809AC9A - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x19] - adds r0, r6, #0 - adds r0, #0x66 - strh r5, [r0] - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x13 - ands r0, r1 - strb r0, [r4, #0x18] -_0809AC9A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0809AC9C: .4byte gUnk_03000F50 - - thumb_func_start sub_0809ACA0 -sub_0809ACA0: @ 0x0809ACA0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809ACC4 - ldr r1, [r2, #0x54] - movs r0, #6 - strb r0, [r1, #0xd] - ldr r0, _0809ACC8 @ =gUnk_030010A0 - adds r0, #0x38 - movs r1, #0xf1 - strb r1, [r0] - adds r0, r2, #0 - bl sub_0805E7BC -_0809ACC4: - pop {pc} - .align 2, 0 -_0809ACC8: .4byte gUnk_030010A0 - - thumb_func_start sub_0809ACCC -sub_0809ACCC: @ 0x0809ACCC - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x54] - ldrb r0, [r0, #0xe] - cmp r0, #1 - bne _0809ACE4 - movs r0, #0 - movs r1, #8 - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - movs r0, #0xb4 - strb r0, [r2, #0xe] -_0809ACE4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809ACE8 -sub_0809ACE8: @ 0x0809ACE8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0809AD1E - cmp r0, #2 - beq _0809AD3A - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809AD58 - movs r0, #0x5a - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x73 - bl sub_080A3268 - movs r0, #0x31 - bl sub_0807CCC8 - adds r0, r4, #0 - bl sub_0809AD8C - b _0809AD58 -_0809AD1E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809AD58 - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_0809AD68 - b _0809AD58 -_0809AD3A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809AD58 - ldr r1, _0809AD5C @ =gUnk_03000BF0 - ldr r0, _0809AD60 @ =gLinkEntity - str r0, [r1, #0x30] - ldr r0, _0809AD64 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bl sub_0805E780 -_0809AD58: - pop {r4, pc} - .align 2, 0 -_0809AD5C: .4byte gUnk_03000BF0 -_0809AD60: .4byte gLinkEntity -_0809AD64: .4byte gUnk_03003F80 - - thumb_func_start sub_0809AD68 -sub_0809AD68: @ 0x0809AD68 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_0804B128 - bl LoadRoomEntityList - movs r0, #0x17 - bl GetInventoryValue - cmp r0, #0 - beq _0809AD8A - ldrb r0, [r4, #0xb] - bl sub_0804B128 - bl LoadRoomEntityList -_0809AD8A: - pop {r4, pc} - - thumb_func_start sub_0809AD8C -sub_0809AD8C: @ 0x0809AD8C - push {lr} - movs r0, #0x4f - movs r1, #0x22 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0809ADAC - ldr r0, _0809ADB0 @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - adds r1, #0xb8 - strh r1, [r2, #0x2e] - ldrh r0, [r0, #8] - adds r0, #8 - strh r0, [r2, #0x32] -_0809ADAC: - pop {pc} - .align 2, 0 -_0809ADB0: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809ADB4 -sub_0809ADB4: @ 0x0809ADB4 - push {lr} - ldr r2, _0809ADC8 @ =gUnk_08123D4C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809ADC8: .4byte gUnk_08123D4C - - thumb_func_start sub_0809ADCC -sub_0809ADCC: @ 0x0809ADCC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0809AE14 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x80 - strh r1, [r5] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r7, [r0] - adds r0, r4, #0 - bl sub_08016A04 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0809AEBC - cmp r0, #1 - bgt _0809AE18 - cmp r0, #0 - beq _0809AE1E - b _0809AF46 - .align 2, 0 -_0809AE14: .4byte gUnk_03000BF0 -_0809AE18: - cmp r0, #2 - beq _0809AF10 - b _0809AF46 -_0809AE1E: - movs r0, #2 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xa - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrh r5, [r5] - subs r6, r5, #1 - ldr r4, _0809AEB8 @ =0x00004022 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #1 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x3f - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x40 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x41 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r4, #0x1b - adds r1, r5, #0 - subs r1, #0x41 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x40 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - subs r4, #0x17 - adds r1, r5, #0 - subs r1, #0x3f - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x81 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x80 - adds r0, r4, #0 - b _0809AF04 - .align 2, 0 -_0809AEB8: .4byte 0x00004022 -_0809AEBC: - strb r0, [r4, #0xc] - ldrh r6, [r5] - ldr r4, _0809AEF4 @ =0x00004022 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x40 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809AEF8 @ =0x00004025 - adds r1, r6, #0 - adds r1, #0x41 - adds r2, r7, #0 - bl sub_0800015E - movs r0, #0x4f - bl sub_0807CBD0 - cmp r0, #0 - bne _0809AF00 - ldr r0, _0809AEFC @ =0x0000402F - b _0809AF02 - .align 2, 0 -_0809AEF4: .4byte 0x00004022 -_0809AEF8: .4byte 0x00004025 -_0809AEFC: .4byte 0x0000402F -_0809AF00: - ldr r0, _0809AF0C @ =0x0000402D -_0809AF02: - adds r1, r6, #1 -_0809AF04: - adds r2, r7, #0 - bl sub_0800015E - b _0809AF46 - .align 2, 0 -_0809AF0C: .4byte 0x0000402D -_0809AF10: - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r5, [r5] - adds r6, r5, #0 - subs r6, #0x41 - ldr r4, _0809AF48 @ =0x00004022 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x40 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - subs r1, r5, #1 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_0800015E -_0809AF46: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809AF48: .4byte 0x00004022 - - thumb_func_start nullsub_535 -nullsub_535: @ 0x0809AF4C - bx lr - .align 2, 0 - - thumb_func_start sub_0809AF50 -sub_0809AF50: @ 0x0809AF50 - push {lr} - bl nullsub_2 - pop {pc} - - thumb_func_start nullsub_2 -nullsub_2: @ 0x0809AF58 - bx lr - .align 2, 0 - - thumb_func_start sub_0809AF5C -sub_0809AF5C: @ 0x0809AF5C - push {lr} - ldr r2, _0809AF70 @ =gUnk_08123D58 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809AF70: .4byte gUnk_08123D58 - - thumb_func_start sub_0809AF74 -sub_0809AF74: @ 0x0809AF74 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - movs r0, #0x2e - ldrsh r2, [r4, r0] - ldr r1, _0809AFBC @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - adds r0, r4, #0 - adds r0, #0x80 - movs r6, #0 - strh r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0809AFC4 - movs r1, #1 - strb r1, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #0 - bne _0809AFC0 - strb r6, [r4, #0xd] - b _0809B02C - .align 2, 0 -_0809AFBC: .4byte gUnk_03000BF0 -_0809AFC0: - strb r1, [r4, #0xd] - b _0809B02C -_0809AFC4: - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - strb r6, [r0] - adds r0, r4, #0 - bl sub_08016A04 - movs r0, #0x8b - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0809B026 - str r4, [r5, #0x50] - str r5, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _0809B010 - movs r3, #0x80 - lsls r3, r3, #0xd - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r3, #0 - bl PositionRelative - adds r0, r5, #0 - adds r0, #0x84 - strb r6, [r0] - b _0809B026 -_0809B010: - movs r3, #0x80 - lsls r3, r3, #0xd - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - adds r1, r5, #0 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] -_0809B026: - adds r0, r4, #0 - bl sub_0809B334 -_0809B02C: - adds r0, r4, #0 - bl sub_0809B0B0 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0809B034 -sub_0809B034: @ 0x0809B034 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x82 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - adds r0, r4, #0 - bl sub_0809B234 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B050 -sub_0809B050: @ 0x0809B050 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809B0A2 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0809B0A4 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - movs r0, #0 - bl sub_08078A90 - adds r0, r4, #0 - bl sub_0809B0B0 - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 -_0809B0A2: - pop {r4, r5, pc} - .align 2, 0 -_0809B0A4: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809B0A8 -sub_0809B0A8: @ 0x0809B0A8 - push {lr} - bl sub_0809B234 - pop {pc} - - thumb_func_start sub_0809B0B0 -sub_0809B0B0: @ 0x0809B0B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r0, #0x80 - ldrh r0, [r0] - subs r6, r0, #1 - mov r0, r8 - adds r0, #0x38 - ldrb r7, [r0] - mov r1, r8 - ldrb r0, [r1, #0xd] - cmp r0, #4 - bls _0809B0CE - b _0809B228 -_0809B0CE: - lsls r0, r0, #2 - ldr r1, _0809B0D8 @ =_0809B0DC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809B0D8: .4byte _0809B0DC -_0809B0DC: @ jump table - .4byte _0809B0F0 @ case 0 - .4byte _0809B130 @ case 1 - .4byte _0809B178 @ case 2 - .4byte _0809B1C0 @ case 3 - .4byte _0809B208 @ case 4 -_0809B0F0: - mov r1, r8 - adds r1, #0x84 - movs r0, #0 - strb r0, [r1] - adds r5, r6, #2 - mov r0, r8 - adds r0, #0x82 - strh r5, [r0] - ldr r0, _0809B128 @ =0x00004082 - subs r1, r6, #1 - adds r2, r7, #0 - bl sub_0800015E - ldr r4, _0809B12C @ =0x00004022 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r6, #1 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r0, r4, #0 - adds r1, r5, #0 - b _0809B162 - .align 2, 0 -_0809B128: .4byte 0x00004082 -_0809B12C: .4byte 0x00004022 -_0809B130: - mov r1, r8 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] - mov r0, r8 - adds r0, #0x82 - strh r6, [r0] - ldr r0, _0809B16C @ =0x0000405F - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - ldr r4, _0809B170 @ =0x00004022 - adds r1, r6, #1 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r6, #2 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809B174 @ =0x00004082 - adds r1, r6, #3 -_0809B162: - adds r2, r7, #0 - bl sub_0800015E - b _0809B228 - .align 2, 0 -_0809B16C: .4byte 0x0000405F -_0809B170: .4byte 0x00004022 -_0809B174: .4byte 0x00004082 -_0809B178: - mov r1, r8 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] - mov r0, r8 - adds r0, #0x82 - strh r6, [r0] - ldr r0, _0809B1B4 @ =0x00004082 - adds r1, r6, #3 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809B1B8 @ =0x00004022 - adds r1, r6, #2 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809B1BC @ =0x0000405F - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - mov r1, r8 - ldr r0, [r1, #0x50] - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - b _0809B228 - .align 2, 0 -_0809B1B4: .4byte 0x00004082 -_0809B1B8: .4byte 0x00004022 -_0809B1BC: .4byte 0x0000405F -_0809B1C0: - mov r1, r8 - adds r1, #0x84 - movs r0, #0 - strb r0, [r1] - adds r4, r6, #2 - mov r0, r8 - adds r0, #0x82 - strh r4, [r0] - ldr r0, _0809B1FC @ =0x00004082 - subs r1, r6, #1 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809B200 @ =0x00004022 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - ldr r0, _0809B204 @ =0x0000405F - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - mov r1, r8 - ldr r0, [r1, #0x50] - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 - b _0809B228 - .align 2, 0 -_0809B1FC: .4byte 0x00004082 -_0809B200: .4byte 0x00004022 -_0809B204: .4byte 0x0000405F -_0809B208: - ldr r4, _0809B230 @ =0x00004022 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r6, #1 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E - adds r1, r6, #2 - adds r0, r4, #0 - adds r2, r7, #0 - bl sub_0800015E -_0809B228: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809B230: .4byte 0x00004022 - - thumb_func_start sub_0809B234 -sub_0809B234: @ 0x0809B234 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0809B26A - ldr r2, [r4, #0x50] - ldrb r1, [r2, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r3, [r4, #0x19] - movs r0, #0x3f - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, #0x29 - ldrb r1, [r2] - lsls r1, r1, #0x1d - adds r3, r4, #0 - adds r3, #0x29 - lsrs r1, r1, #0x1d - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _0809B270 -_0809B26A: - adds r0, r4, #0 - bl sub_0809B274 -_0809B270: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B274 -sub_0809B274: @ 0x0809B274 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, _0809B290 @ =gLinkEntity - adds r2, r4, #0 - adds r2, #0x84 - ldrb r0, [r2] - cmp r0, #1 - beq _0809B2BA - cmp r0, #1 - bgt _0809B294 - cmp r0, #0 - beq _0809B29A - b _0809B332 - .align 2, 0 -_0809B290: .4byte gLinkEntity -_0809B294: - cmp r0, #2 - beq _0809B30C - b _0809B332 -_0809B29A: - movs r1, #0x32 - ldrsh r0, [r3, r1] - adds r0, #0x14 - movs r3, #0x32 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0809B332 - movs r0, #1 - strb r0, [r2] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #5 - b _0809B306 -_0809B2BA: - movs r5, #0x2e - ldrsh r0, [r3, r5] - adds r0, #0x1c - movs r5, #0x2e - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _0809B2E8 - movs r0, #2 - strb r0, [r2] - ldr r0, _0809B2E4 @ =0x00004022 - adds r1, r4, #0 - adds r1, #0x80 - ldrh r1, [r1] - adds r1, #2 - movs r2, #1 - bl sub_0800015E - ldr r0, [r4, #0x54] - bl sub_0809B358 - b _0809B332 - .align 2, 0 -_0809B2E4: .4byte 0x00004022 -_0809B2E8: - movs r1, #0x32 - ldrsh r0, [r3, r1] - adds r0, #0x10 - movs r3, #0x32 - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _0809B332 - movs r0, #0 - strb r0, [r2] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #8 - ands r0, r1 - movs r1, #4 -_0809B306: - orrs r0, r1 - strb r0, [r2] - b _0809B332 -_0809B30C: - movs r5, #0x2e - ldrsh r0, [r3, r5] - adds r0, #0x20 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0809B332 - movs r0, #1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x80 - ldrh r0, [r0] - adds r0, #2 - movs r1, #1 - bl sub_0807BA8C - ldr r0, [r4, #0x54] - bl sub_0809B38C -_0809B332: - pop {r4, r5, pc} - - thumb_func_start sub_0809B334 -sub_0809B334: @ 0x0809B334 - push {r4, r5, lr} - adds r0, #0x80 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x81 - movs r5, #2 -_0809B340: - ldr r0, _0809B354 @ =0x00004026 - adds r1, r4, #0 - movs r2, #1 - bl sub_0800015E - subs r5, #1 - adds r4, #1 - cmp r5, #0 - bge _0809B340 - pop {r4, r5, pc} - .align 2, 0 -_0809B354: .4byte 0x00004026 - - thumb_func_start sub_0809B358 -sub_0809B358: @ 0x0809B358 - push {r4, r5, r6, lr} - adds r1, r0, #0 - adds r1, #0x84 - ldrb r1, [r1] - lsls r1, r1, #1 - ldr r2, _0809B388 @ =gUnk_08123D68 - adds r5, r1, r2 - adds r0, #0x80 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x82 - movs r6, #4 -_0809B370: - ldrh r0, [r5] - adds r1, r4, #0 - movs r2, #1 - bl sub_0800015E - subs r6, #1 - adds r4, #1 - adds r5, #4 - cmp r6, #0 - bge _0809B370 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809B388: .4byte gUnk_08123D68 - - thumb_func_start sub_0809B38C -sub_0809B38C: @ 0x0809B38C - push {r4, r5, lr} - adds r0, #0x80 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x82 - movs r5, #4 -_0809B398: - adds r0, r4, #0 - movs r1, #1 - bl sub_0807BA8C - subs r5, #1 - adds r4, #1 - cmp r5, #0 - bge _0809B398 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809B3AC -sub_0809B3AC: @ 0x0809B3AC - push {lr} - ldr r2, _0809B3C0 @ =gUnk_08123D7C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809B3C0: .4byte gUnk_08123D7C - - thumb_func_start sub_0809B3C4 -sub_0809B3C4: @ 0x0809B3C4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - adds r0, #0x39 - bl GetInventoryValue - adds r5, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #3 - beq _0809B3E2 - cmp r5, #0 - beq _0809B3FE - bl sub_0805E780 - b _0809B3FE -_0809B3E2: - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0809B3F0 - bl sub_0805E780 -_0809B3F0: - cmp r5, #2 - beq _0809B3FE - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0809B3FE: - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809B424 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0809B420 - ldrh r0, [r4, #0x32] - adds r0, #0x30 - strh r0, [r4, #0x32] -_0809B420: - movs r0, #2 - strb r0, [r4, #0xb] -_0809B424: - adds r0, r4, #0 - bl sub_08016A04 - ldrb r1, [r4, #0xa] - adds r1, #0x39 - adds r0, r4, #0 - bl sub_080042AC - ldrb r1, [r4, #0xb] - cmp r1, #1 - beq _0809B46C - cmp r1, #1 - bgt _0809B444 - cmp r1, #0 - beq _0809B44E - b _0809B4A6 -_0809B444: - cmp r1, #2 - beq _0809B488 - cmp r1, #3 - beq _0809B48E - b _0809B4A6 -_0809B44E: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x16 - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - b _0809B49E -_0809B46C: - movs r0, #3 - strb r0, [r4, #0xc] - ldr r0, _0809B484 @ =gUnk_03000BF0 - ldrh r0, [r0, #0xc] - subs r0, #0x10 - ldrh r1, [r4, #0x32] - subs r1, r1, r0 - ldrh r0, [r4, #0x36] - subs r0, r0, r1 - strh r0, [r4, #0x36] - b _0809B4A6 - .align 2, 0 -_0809B484: .4byte gUnk_03000BF0 -_0809B488: - movs r0, #4 - strb r0, [r4, #0xc] - b _0809B4A6 -_0809B48E: - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xd -_0809B49E: - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] -_0809B4A6: - pop {r4, r5, pc} - - thumb_func_start sub_0809B4A8 -sub_0809B4A8: @ 0x0809B4A8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - beq _0809B4C0 - subs r0, #1 - strb r0, [r1] - b _0809B520 -_0809B4C0: - adds r0, r4, #0 - bl sub_0809B688 - cmp r0, #0 - beq _0809B51C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0809B520 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x40 - strh r0, [r4, #0x24] - movs r0, #0x10 - strb r0, [r4, #0x15] - ldr r2, _0809B510 @ =gUnk_03003F80 - movs r0, #0x9e - strb r0, [r2, #6] - movs r0, #5 - strb r0, [r2, #0xc] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _0809B514 @ =gLinkEntity - strh r3, [r1, #0x2c] - strh r3, [r1, #0x30] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] - ldr r0, _0809B518 @ =0x0000010F - bl sub_08004488 - b _0809B520 - .align 2, 0 -_0809B510: .4byte gUnk_03003F80 -_0809B514: .4byte gLinkEntity -_0809B518: .4byte 0x0000010F -_0809B51C: - movs r0, #0x16 - strb r0, [r4, #0xe] -_0809B520: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B524 -sub_0809B524: @ 0x0809B524 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809B564 - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - ands r0, r1 - cmp r0, #0 - bne _0809B554 - movs r0, #3 - strb r0, [r2, #0xc] - ldrh r0, [r2, #0x32] - adds r0, #0x20 - strh r0, [r2, #0x32] - ldrh r0, [r2, #0x36] - subs r0, #0x20 - strh r0, [r2, #0x36] - b _0809B564 -_0809B554: - movs r0, #1 - strb r0, [r2, #0xc] - movs r0, #0x16 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x80 - movs r0, #0x18 - strb r0, [r1] -_0809B564: - adds r0, r2, #0 - bl sub_0806F69C - pop {pc} - - thumb_func_start sub_0809B56C -sub_0809B56C: @ 0x0809B56C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa0 - lsls r1, r1, #6 - bl sub_080044EC - cmp r0, #1 - bne _0809B5B0 - movs r2, #4 - movs r0, #4 - strb r0, [r4, #0xc] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0xc - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0809B5B0 - adds r0, r4, #0 - bl sub_0806FAB0 -_0809B5B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B5B4 -sub_0809B5B4: @ 0x0809B5B4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0809B5CC @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809B5D0 - adds r0, r4, #0 - bl sub_0800445C - b _0809B5EA - .align 2, 0 -_0809B5CC: .4byte gUnk_03003F80 -_0809B5D0: - adds r0, r4, #0 - bl sub_08017850 - cmp r0, #0 - beq _0809B5EA - ldrb r0, [r4, #0xa] - adds r0, #0x39 - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - bl sub_0805E780 -_0809B5EA: - pop {r4, pc} - - thumb_func_start sub_0809B5EC -sub_0809B5EC: @ 0x0809B5EC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r5, r0, #0x1e - cmp r5, #1 - bne _0809B646 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0809B606 - cmp r0, #1 - beq _0809B630 - b _0809B682 -_0809B606: - movs r0, #7 - movs r1, #0x1a - movs r2, #7 - bl sub_0805EB00 - adds r2, r0, #0 - cmp r2, #0 - beq _0809B682 - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r3, #0x2e - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _0809B682 - ldrb r0, [r2, #0x14] - cmp r0, #4 - bne _0809B682 - str r2, [r4, #0x50] - strb r5, [r4, #0xd] - adds r0, r2, #0 - b _0809B63E -_0809B630: - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _0809B650 - ldr r0, [r1, #4] - cmp r0, #0 - beq _0809B650 - adds r0, r1, #0 -_0809B63E: - adds r1, r4, #0 - bl sub_0809B6B0 - b _0809B682 -_0809B646: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0809B656 - cmp r0, #1 - beq _0809B668 -_0809B650: - bl sub_0805E780 - b _0809B682 -_0809B656: - ldrb r0, [r4, #0xa] - adds r0, #0x39 - bl GetInventoryValue - cmp r0, #2 - bne _0809B682 - movs r0, #1 - strb r0, [r4, #0xd] - b _0809B682 -_0809B668: - ldr r0, _0809B684 @ =gUnk_02000050 - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - cmp r2, #0 - bne _0809B682 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r2, [r4, #0xd] -_0809B682: - pop {r4, r5, pc} - .align 2, 0 -_0809B684: .4byte gUnk_02000050 - - thumb_func_start sub_0809B688 -sub_0809B688: @ 0x0809B688 - push {lr} - ldr r1, _0809B6A8 @ =gLinkEntity - movs r2, #6 - movs r3, #0xc - bl sub_080041A0 - adds r1, r0, #0 - cmp r1, #1 - bne _0809B6A4 - ldr r0, _0809B6AC @ =gUnk_03003F80 - ldrb r0, [r0, #0xd] - cmp r0, #0x10 - beq _0809B6A4 - movs r1, #0 -_0809B6A4: - adds r0, r1, #0 - pop {pc} - .align 2, 0 -_0809B6A8: .4byte gLinkEntity -_0809B6AC: .4byte gUnk_03003F80 - - thumb_func_start sub_0809B6B0 -sub_0809B6B0: @ 0x0809B6B0 - push {r4, lr} - adds r4, r1, #0 - ldr r2, _0809B6EC @ =gUnk_08123D94 - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - adds r1, r1, r2 - movs r3, #0 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xa] - movs r1, #3 - subs r1, r1, r0 - adds r4, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_0809B6EC: .4byte gUnk_08123D94 - - thumb_func_start sub_0809B6F0 -sub_0809B6F0: @ 0x0809B6F0 - push {lr} - ldr r2, _0809B704 @ =gUnk_08123D98 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809B704: .4byte gUnk_08123D98 - - thumb_func_start sub_0809B708 -sub_0809B708: @ 0x0809B708 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r6, #0xc] - ldrb r1, [r6, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r6, #0x18] - movs r0, #0x80 - strh r0, [r6, #0x24] - adds r0, r6, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809B73A - adds r0, r6, #0 - bl sub_0809B7DC - bl sub_0805E780 - b _0809B78A -_0809B73A: - ldr r0, _0809B794 @ =0x0000030B - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r5, _0809B798 @ =gUnk_03000BF0 - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #2 - bl sub_0807B7D8 - ldr r0, _0809B79C @ =0x00004061 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0809B78A: - adds r0, r6, #0 - bl sub_0809B7A0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809B794: .4byte 0x0000030B -_0809B798: .4byte gUnk_03000BF0 -_0809B79C: .4byte 0x00004061 - - thumb_func_start sub_0809B7A0 -sub_0809B7A0: @ 0x0809B7A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809B7C0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809B7BC - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - bl sub_0805E780 -_0809B7BC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B7C0 -sub_0809B7C0: @ 0x0809B7C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080002A0 - ldr r1, _0809B7D8 @ =0xFFFFBF9F - adds r0, r0, r1 - cmp r0, #1 - bls _0809B7D6 - adds r0, r4, #0 - bl sub_0809B7DC -_0809B7D6: - pop {r4, pc} - .align 2, 0 -_0809B7D8: .4byte 0xFFFFBF9F - - thumb_func_start sub_0809B7DC -sub_0809B7DC: @ 0x0809B7DC - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0xc3 - lsls r0, r0, #2 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r5, _0809B838 @ =gUnk_03000BF0 - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #2 - bl sub_0807B7D8 - ldr r0, _0809B83C @ =0x00004062 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #1 - strb r0, [r6, #0xe] - pop {r4, r5, r6, pc} - .align 2, 0 -_0809B838: .4byte gUnk_03000BF0 -_0809B83C: .4byte 0x00004062 - - thumb_func_start sub_0809B840 -sub_0809B840: @ 0x0809B840 - push {lr} - ldr r2, _0809B854 @ =gUnk_08123DA0 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809B854: .4byte gUnk_08123DA0 - - thumb_func_start sub_0809B858 -sub_0809B858: @ 0x0809B858 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x1e - bl sub_0805E4E0 - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _0809B8CC - cmp r3, #1 - bgt _0809B872 - cmp r3, #0 - beq _0809B878 - b _0809B972 -_0809B872: - cmp r3, #2 - beq _0809B948 - b _0809B972 -_0809B878: - movs r1, #1 - strb r1, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - ldr r0, _0809B8BC @ =gUnk_03000BF0 - str r4, [r0, #0x30] - strb r1, [r0, #0xe] - ldr r5, _0809B8C0 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r5, r2] - movs r2, #6 - cmp r1, r0 - ble _0809B89A - movs r2, #2 -_0809B89A: - strb r2, [r5, #0x14] - ldr r2, _0809B8C4 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0809B8C8 @ =0x0000BFFF - ands r0, r1 - movs r4, #0xa0 - lsls r4, r4, #6 - adds r1, r4, #0 - orrs r0, r1 - strh r0, [r2] - adds r0, r2, #0 - adds r0, #0x58 - strh r3, [r0] - adds r2, #0x5c - movs r0, #0xa0 - strh r0, [r2] - b _0809B972 - .align 2, 0 -_0809B8BC: .4byte gUnk_03000BF0 -_0809B8C0: .4byte gLinkEntity -_0809B8C4: .4byte gUnk_03000F50 -_0809B8C8: .4byte 0x0000BFFF -_0809B8CC: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809B8D8 - subs r0, #1 - strb r0, [r4, #0xe] - b _0809B972 -_0809B8D8: - ldrb r0, [r4, #0xf] - cmp r0, #0x1f - bhi _0809B914 - ldr r5, _0809B90C @ =gUnk_030010A0 - ldr r0, [r5] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0809B8F0 - ldr r0, _0809B910 @ =0x00000133 - bl sub_080A3268 -_0809B8F0: - ldr r0, [r5] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0809B972 - ldrb r1, [r4, #0xf] - adds r1, #1 - strb r1, [r4, #0xf] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_0809B97C - b _0809B972 - .align 2, 0 -_0809B90C: .4byte gUnk_030010A0 -_0809B910: .4byte 0x00000133 -_0809B914: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r2, _0809B938 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0809B93C @ =0x0000DFFF - ands r0, r1 - strh r0, [r2] - ldr r1, _0809B940 @ =gUnk_03000BF0 - ldr r0, _0809B944 @ =gLinkEntity - str r0, [r1, #0x30] - movs r0, #0x9a - lsls r0, r0, #1 - bl sub_080A3268 - b _0809B972 - .align 2, 0 -_0809B938: .4byte gUnk_03000F50 -_0809B93C: .4byte 0x0000DFFF -_0809B940: .4byte gUnk_03000BF0 -_0809B944: .4byte gLinkEntity -_0809B948: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809B972 - ldr r2, _0809B974 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x90 - lsls r3, r3, #7 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _0809B978 @ =gUnk_03000BF0 - movs r0, #4 - strb r0, [r1, #0xe] - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xd] - bl sub_0805E780 -_0809B972: - pop {r4, r5, pc} - .align 2, 0 -_0809B974: .4byte gUnk_03000F50 -_0809B978: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809B97C -sub_0809B97C: @ 0x0809B97C - push {lr} - movs r3, #0x2e - ldrsh r2, [r0, r3] - ldr r0, _0809B9B4 @ =gUnk_03000BF0 - movs r3, #0xa - ldrsh r0, [r0, r3] - subs r2, r2, r0 - subs r0, r2, r1 - adds r2, r2, r1 - cmp r0, #0 - bge _0809B994 - movs r0, #0 -_0809B994: - cmp r0, #0xf0 - ble _0809B99A - movs r0, #0xf0 -_0809B99A: - cmp r2, #0 - bge _0809B9A0 - movs r2, #0 -_0809B9A0: - cmp r2, #0xf0 - ble _0809B9A6 - movs r2, #0xf0 -_0809B9A6: - ldr r1, _0809B9B8 @ =gUnk_03000F50 - lsls r0, r0, #8 - orrs r0, r2 - adds r1, #0x58 - strh r0, [r1] - pop {pc} - .align 2, 0 -_0809B9B4: .4byte gUnk_03000BF0 -_0809B9B8: .4byte gUnk_03000F50 - - thumb_func_start sub_0809B9BC -sub_0809B9BC: @ 0x0809B9BC - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x1e - bl sub_0805E4E0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0809BA34 - cmp r0, #1 - bgt _0809B9D6 - cmp r0, #0 - beq _0809B9DC - b _0809BAC2 -_0809B9D6: - cmp r0, #2 - beq _0809BA9C - b _0809BAC2 -_0809B9DC: - movs r1, #1 - strb r1, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] - ldr r0, _0809BA24 @ =gUnk_03000BF0 - str r4, [r0, #0x30] - strb r1, [r0, #0xe] - ldr r3, _0809BA28 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r3, r2] - movs r2, #6 - cmp r1, r0 - ble _0809BA00 - movs r2, #2 -_0809BA00: - strb r2, [r3, #0x14] - ldr r2, _0809BA2C @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0809BA30 @ =0x0000BFFF - ands r0, r1 - movs r3, #0x80 - lsls r3, r3, #6 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - adds r1, r2, #0 - adds r1, #0x58 - movs r0, #0xf0 - strh r0, [r1] - adds r2, #0x5c - movs r0, #0xa0 - strh r0, [r2] - b _0809BAC2 - .align 2, 0 -_0809BA24: .4byte gUnk_03000BF0 -_0809BA28: .4byte gLinkEntity -_0809BA2C: .4byte gUnk_03000F50 -_0809BA30: .4byte 0x0000BFFF -_0809BA34: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809BA40 - subs r0, #1 - strb r0, [r4, #0xe] - b _0809BAC2 -_0809BA40: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0809BA7C - ldr r5, _0809BA74 @ =gUnk_030010A0 - ldr r0, [r5] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0809BA58 - ldr r0, _0809BA78 @ =0x00000133 - bl sub_080A3268 -_0809BA58: - ldr r0, [r5] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0809BAC2 - ldrb r1, [r4, #0xf] - subs r1, #1 - strb r1, [r4, #0xf] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_0809B97C - b _0809BAC2 - .align 2, 0 -_0809BA74: .4byte gUnk_030010A0 -_0809BA78: .4byte 0x00000133 -_0809BA7C: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r1, _0809BA94 @ =gUnk_03000BF0 - ldr r0, _0809BA98 @ =gLinkEntity - str r0, [r1, #0x30] - movs r0, #0x9a - lsls r0, r0, #1 - bl sub_080A3268 - b _0809BAC2 - .align 2, 0 -_0809BA94: .4byte gUnk_03000BF0 -_0809BA98: .4byte gLinkEntity -_0809BA9C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BAC2 - ldr r1, _0809BAC4 @ =gUnk_03000BF0 - movs r0, #4 - strb r0, [r1, #0xe] - ldr r2, _0809BAC8 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0809BACC @ =0x0000D7FF - ands r0, r1 - strh r0, [r2] - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xd] - bl sub_0805E780 -_0809BAC2: - pop {r4, r5, pc} - .align 2, 0 -_0809BAC4: .4byte gUnk_03000BF0 -_0809BAC8: .4byte gUnk_03000F50 -_0809BACC: .4byte 0x0000D7FF - - thumb_func_start sub_0809BAD0 -sub_0809BAD0: @ 0x0809BAD0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0xa - bl sub_0805E4E0 - ldrb r0, [r4, #0xc] - cmp r0, #4 - bls _0809BAE2 - b _0809BC68 -_0809BAE2: - lsls r0, r0, #2 - ldr r1, _0809BAEC @ =_0809BAF0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809BAEC: .4byte _0809BAF0 -_0809BAF0: @ jump table - .4byte _0809BB04 @ case 0 - .4byte _0809BB4C @ case 1 - .4byte _0809BBF8 @ case 2 - .4byte _0809BC24 @ case 3 - .4byte _0809BC48 @ case 4 -_0809BB04: - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r1, _0809BB40 @ =gUnk_03000BF0 - str r4, [r1, #0x30] - movs r0, #1 - strb r0, [r1, #0xe] - ldr r3, _0809BB44 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r3, r2] - movs r2, #6 - cmp r1, r0 - ble _0809BB2C - movs r2, #2 -_0809BB2C: - strb r2, [r3, #0x14] - ldr r1, _0809BB48 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x58 - movs r0, #0x60 - strh r0, [r2] - adds r1, #0x5c - movs r0, #0xa0 - strh r0, [r1] - b _0809BC68 - .align 2, 0 -_0809BB40: .4byte gUnk_03000BF0 -_0809BB44: .4byte gLinkEntity -_0809BB48: .4byte gUnk_03000F50 -_0809BB4C: - adds r0, r4, #0 - bl sub_0809BE78 - cmp r0, #0 - bne _0809BB58 - b _0809BC68 -_0809BB58: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809BB88 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809BB6A - b _0809BC68 -_0809BB6A: - ldr r2, _0809BB80 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0809BB84 @ =0x0000BFFF - ands r0, r1 - movs r3, #0xa0 - lsls r3, r3, #6 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - b _0809BC68 - .align 2, 0 -_0809BB80: .4byte gUnk_03000F50 -_0809BB84: .4byte 0x0000BFFF -_0809BB88: - ldr r2, _0809BBB8 @ =gUnk_03000F50 - adds r5, r2, #0 - adds r5, #0x58 - ldrh r0, [r5] - cmp r0, #0xdf - bhi _0809BBC4 - ldr r4, _0809BBBC @ =gUnk_030010A0 - ldr r0, [r4] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0809BBA6 - ldr r0, _0809BBC0 @ =0x00000133 - bl sub_080A3268 -_0809BBA6: - ldr r0, [r4] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0809BC68 - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - b _0809BC68 - .align 2, 0 -_0809BBB8: .4byte gUnk_03000F50 -_0809BBBC: .4byte gUnk_030010A0 -_0809BBC0: .4byte 0x00000133 -_0809BBC4: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrh r1, [r2] - ldr r0, _0809BBF4 @ =0x0000DFFF - ands r0, r1 - movs r3, #0x90 - lsls r3, r3, #7 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, #0x2e] - adds r0, #0x68 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, #0x28 - strh r0, [r4, #0x32] - movs r0, #0x9a - lsls r0, r0, #1 - bl sub_080A3268 - b _0809BC68 - .align 2, 0 -_0809BBF4: .4byte 0x0000DFFF -_0809BBF8: - adds r0, r4, #0 - bl sub_0809BE78 - cmp r0, #0 - beq _0809BC68 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BC68 - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x35 - bl sub_0807CCB4 - movs r0, #0x72 - bl sub_080A3268 - b _0809BC68 -_0809BC24: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BC68 - movs r0, #4 - strb r0, [r4, #0xc] - ldr r1, _0809BC40 @ =gUnk_03000BF0 - ldr r0, _0809BC44 @ =gLinkEntity - str r0, [r1, #0x30] - movs r0, #2 - strb r0, [r1, #0xe] - b _0809BC68 - .align 2, 0 -_0809BC40: .4byte gUnk_03000BF0 -_0809BC44: .4byte gLinkEntity -_0809BC48: - adds r0, r4, #0 - bl sub_0809BE78 - cmp r0, #0 - beq _0809BC68 - ldr r1, _0809BC6C @ =gUnk_03000BF0 - movs r0, #4 - strb r0, [r1, #0xe] - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xd] - movs r0, #0x64 - bl sub_0807CD10 - bl sub_0805E780 -_0809BC68: - pop {r4, r5, pc} - .align 2, 0 -_0809BC6C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809BC70 -sub_0809BC70: @ 0x0809BC70 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #0x1e - bl sub_0805E4E0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0809BCDC - cmp r5, #1 - bgt _0809BC8A - cmp r5, #0 - beq _0809BC92 - b _0809BDAE -_0809BC8A: - cmp r5, #2 - bne _0809BC90 - b _0809BD98 -_0809BC90: - b _0809BDAE -_0809BC92: - movs r1, #1 - strb r1, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - ldr r0, _0809BCCC @ =gUnk_03000BF0 - str r4, [r0, #0x30] - strb r1, [r0, #0xe] - ldr r3, _0809BCD0 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r3, r2] - movs r2, #6 - cmp r1, r0 - ble _0809BCB4 - movs r2, #2 -_0809BCB4: - strb r2, [r3, #0x14] - ldr r1, _0809BCD4 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x58 - ldr r0, _0809BCD8 @ =0x000080F0 - strh r0, [r2] - adds r1, #0x5c - movs r0, #0xa0 - strh r0, [r1] - movs r0, #0x80 - strb r0, [r4, #0xd] - b _0809BDAE - .align 2, 0 -_0809BCCC: .4byte gUnk_03000BF0 -_0809BCD0: .4byte gLinkEntity -_0809BCD4: .4byte gUnk_03000F50 -_0809BCD8: .4byte 0x000080F0 -_0809BCDC: - adds r0, r4, #0 - bl sub_0809BE78 - cmp r0, #0 - beq _0809BDAE - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809BD20 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BDAE - movs r0, #6 - movs r1, #8 - bl sub_08050054 - movs r0, #3 - bl sub_0805AAF0 - ldr r2, _0809BD18 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0809BD1C @ =0x0000BFFF - ands r0, r1 - movs r3, #0xa0 - lsls r3, r3, #6 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - b _0809BDAE - .align 2, 0 -_0809BD18: .4byte gUnk_03000F50 -_0809BD1C: .4byte 0x0000BFFF -_0809BD20: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0809BD64 - ldr r6, _0809BD58 @ =gUnk_030010A0 - ldr r0, [r6] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0809BD38 - ldr r0, _0809BD5C @ =0x00000133 - bl sub_080A3268 -_0809BD38: - ldr r0, [r6] - ands r0, r5 - cmp r0, #0 - bne _0809BDAE - ldrb r0, [r4, #0xd] - subs r0, #1 - strb r0, [r4, #0xd] - ldr r1, _0809BD60 @ =gUnk_03000F50 - ldrb r0, [r4, #0xd] - lsls r0, r0, #8 - movs r2, #0xf0 - adds r1, #0x58 - orrs r0, r2 - strh r0, [r1] - b _0809BDAE - .align 2, 0 -_0809BD58: .4byte gUnk_030010A0 -_0809BD5C: .4byte 0x00000133 -_0809BD60: .4byte gUnk_03000F50 -_0809BD64: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - ldr r2, _0809BD90 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0809BD94 @ =0x0000DFFF - ands r0, r1 - movs r3, #0x90 - lsls r3, r3, #7 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - movs r0, #0x37 - bl sub_0807CCB4 - movs r0, #0x9a - lsls r0, r0, #1 - bl sub_080A3268 - b _0809BDAE - .align 2, 0 -_0809BD90: .4byte gUnk_03000F50 -_0809BD94: .4byte 0x0000DFFF -_0809BD98: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BDAE - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xd] - bl sub_0805E780 -_0809BDAE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0809BDB0 -sub_0809BDB0: @ 0x0809BDB0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x1e - bl sub_0805E4E0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0809BE00 - cmp r0, #1 - bgt _0809BDCA - cmp r0, #0 - beq _0809BDD0 - b _0809BE70 -_0809BDCA: - cmp r0, #2 - beq _0809BE54 - b _0809BE70 -_0809BDD0: - movs r1, #1 - strb r1, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x80 - strb r0, [r4, #0xf] - ldr r0, _0809BDF8 @ =gUnk_03000BF0 - str r4, [r0, #0x30] - strb r1, [r0, #0xe] - ldr r3, _0809BDFC @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r3, r2] - movs r2, #6 - cmp r1, r0 - ble _0809BDF4 - movs r2, #2 -_0809BDF4: - strb r2, [r3, #0x14] - b _0809BE70 - .align 2, 0 -_0809BDF8: .4byte gUnk_03000BF0 -_0809BDFC: .4byte gLinkEntity -_0809BE00: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809BE0C - subs r0, #1 - strb r0, [r4, #0xe] - b _0809BE70 -_0809BE0C: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0809BE34 - ldr r0, _0809BE2C @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0809BE70 - ldr r0, _0809BE30 @ =0x00000133 - bl sub_080A3268 - b _0809BE70 - .align 2, 0 -_0809BE2C: .4byte gUnk_030010A0 -_0809BE30: .4byte 0x00000133 -_0809BE34: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r1, _0809BE4C @ =gUnk_03000BF0 - ldr r0, _0809BE50 @ =gLinkEntity - str r0, [r1, #0x30] - movs r0, #0x9a - lsls r0, r0, #1 - bl sub_080A3268 - b _0809BE70 - .align 2, 0 -_0809BE4C: .4byte gUnk_03000BF0 -_0809BE50: .4byte gLinkEntity -_0809BE54: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809BE70 - ldr r1, _0809BE74 @ =gUnk_03000BF0 - movs r0, #4 - strb r0, [r1, #0xe] - ldr r1, [r4, #0x50] - movs r0, #1 - strb r0, [r1, #0xd] - bl sub_0805E780 -_0809BE70: - pop {r4, pc} - .align 2, 0 -_0809BE74: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809BE78 -sub_0809BE78: @ 0x0809BE78 - push {r4, r5, lr} - adds r3, r0, #0 - movs r5, #0 - adds r0, #0x68 - ldrh r2, [r0] - ldr r0, _0809BEB0 @ =gUnk_03000BF0 - movs r4, #0xa - ldrsh r1, [r0, r4] - adds r4, r0, #0 - cmp r2, r1 - bne _0809BE9E - adds r0, r3, #0 - adds r0, #0x6a - ldrh r1, [r0] - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0809BE9E - movs r5, #1 -_0809BE9E: - ldrh r1, [r4, #0xa] - adds r0, r3, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r1, [r4, #0xc] - adds r0, #2 - strh r1, [r0] - adds r0, r5, #0 - pop {r4, r5, pc} - .align 2, 0 -_0809BEB0: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809BEB4 -sub_0809BEB4: @ 0x0809BEB4 - push {lr} - ldr r2, _0809BEC8 @ =gUnk_08123DB4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809BEC8: .4byte gUnk_08123DB4 - - thumb_func_start sub_0809BECC -sub_0809BECC: @ 0x0809BECC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x9b - bl sub_0807CBE4 - cmp r0, #0 - beq _0809BEDE - bl sub_0805E780 -_0809BEDE: - movs r0, #0x91 - movs r1, #0 - movs r2, #0 - bl CreateObject - str r0, [r4, #0x54] - cmp r0, #0 - beq _0809BF1A - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x11] - subs r0, #0x11 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x11] - strb r2, [r4, #0x1e] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_0809C0A8 - adds r0, r4, #0 - movs r1, #0xcc - movs r2, #0xcc - movs r3, #0 - bl sub_0805EC9C -_0809BF1A: - pop {r4, pc} - - thumb_func_start sub_0809BF1C -sub_0809BF1C: @ 0x0809BF1C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xcc - movs r2, #0xcc - movs r3, #0 - bl sub_0805EC9C - movs r0, #0x37 - bl sub_0807CBE4 - cmp r0, #0 - beq _0809BF6C - movs r0, #0x90 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809BF6C - ldr r0, _0809BF70 @ =gUnk_03000BF0 - str r1, [r0, #0x30] - ldr r0, [r4, #0x54] - str r1, [r0, #0x54] - movs r3, #0x80 - lsls r3, r3, #0xb - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #2 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x74 - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, #0x73 - bl sub_08004488 -_0809BF6C: - pop {r4, pc} - .align 2, 0 -_0809BF70: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809BF74 -sub_0809BF74: @ 0x0809BF74 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r5, r7, #0 - adds r5, #0x74 - ldrh r0, [r5] - subs r1, r0, #1 - strh r1, [r5] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _0809BFA0 - ldr r1, [r7, #0x54] - movs r0, #1 - strb r0, [r1, #0xf] - adds r0, r7, #0 - bl sub_0809C23C - movs r0, #0x9b - bl sub_0807CBE4 - bl sub_0805E780 - b _0809C09A -_0809BFA0: - movs r0, #0x1f - ands r1, r0 - cmp r1, #0 - bne _0809BFAE - ldr r0, _0809C09C @ =0x000001B3 - bl sub_08004488 -_0809BFAE: - ldrh r0, [r5] - cmp r0, #0x77 - bhi _0809BFE0 - movs r1, #0x78 - subs r1, r1, r0 - lsls r4, r1, #5 - adds r4, #0xcc - lsls r1, r1, #4 - adds r1, #0xcc - adds r0, r7, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #8 - movs r3, #0 - bl sub_0806FCF4 - adds r1, r7, #0 - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] -_0809BFE0: - ldr r1, _0809C0A0 @ =gUnk_08123DC0 - ldrh r0, [r5] - lsrs r0, r0, #5 - adds r0, r0, r1 - ldrb r6, [r0] - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0809C044 - bl sub_08000E50 - adds r4, r0, #0 - asrs r0, r4, #0x10 - ands r0, r6 - adds r2, r6, #1 - lsrs r1, r2, #1 - subs r0, r0, r1 - mov ip, r0 - lsrs r0, r6, #1 - ands r0, r4 - lsrs r2, r2, #2 - subs r4, r0, r2 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r7, #0 - adds r1, #0x80 - ldr r2, _0809C0A4 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - ldrh r1, [r1] - adds r0, r0, r1 - add r0, ip - strh r0, [r5, #0x2e] - adds r1, r7, #0 - adds r1, #0x82 - ldrh r0, [r2, #8] - ldrh r1, [r1] - adds r0, r0, r1 - adds r0, r0, r4 - strh r0, [r5, #0x32] -_0809C044: - movs r0, #0xf - movs r1, #2 - movs r2, #0x40 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0809C09A - bl sub_08000E50 - adds r4, r0, #0 - asrs r1, r4, #0x10 - ands r1, r6 - adds r0, r6, #1 - lsrs r0, r0, #1 - subs r1, r1, r0 - mov ip, r1 - lsrs r3, r6, #1 - ands r3, r4 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r7, #0 - adds r1, #0x80 - ldr r2, _0809C0A4 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - ldrh r1, [r1] - adds r0, r0, r1 - add r0, ip - strh r0, [r5, #0x2e] - adds r1, r7, #0 - adds r1, #0x82 - ldrh r0, [r2, #8] - ldrh r1, [r1] - adds r0, r0, r1 - adds r0, r0, r3 - strh r0, [r5, #0x32] -_0809C09A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809C09C: .4byte 0x000001B3 -_0809C0A0: .4byte gUnk_08123DC0 -_0809C0A4: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809C0A8 -sub_0809C0A8: @ 0x0809C0A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _0809C214 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r6, r0, #4 - movs r2, #0x3f - ands r6, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r6, r0 - ldr r5, _0809C218 @ =0x00004022 - adds r1, r6, #0 - subs r1, #0x41 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - subs r1, r6, #2 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - subs r1, r6, #1 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0800015E - adds r1, r6, #1 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #2 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x3e - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x41 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x42 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x7f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x80 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - adds r1, #0x81 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C21C @ =0x0000013F - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - movs r0, #0xa0 - lsls r0, r0, #1 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C220 @ =0x00000141 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C224 @ =0x0000017F - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C228 @ =0x00000181 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C22C @ =0x000001BD - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - movs r0, #0xdf - lsls r0, r0, #1 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C230 @ =0x000001BF - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C234 @ =0x000001C1 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - movs r0, #0xe1 - lsls r0, r0, #1 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809C238 @ =0x000001C3 - adds r1, r6, r0 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0809C214: .4byte gUnk_03000BF0 -_0809C218: .4byte 0x00004022 -_0809C21C: .4byte 0x0000013F -_0809C220: .4byte 0x00000141 -_0809C224: .4byte 0x0000017F -_0809C228: .4byte 0x00000181 -_0809C22C: .4byte 0x000001BD -_0809C230: .4byte 0x000001BF -_0809C234: .4byte 0x000001C1 -_0809C238: .4byte 0x000001C3 - - thumb_func_start sub_0809C23C -sub_0809C23C: @ 0x0809C23C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _0809C370 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - adds r0, r5, #0 - subs r0, #0x41 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - subs r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #2 - ldrb r1, [r4] - bl sub_0807BA8C - subs r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_0807BA8C - adds r0, r5, #1 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #2 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x3e - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x3f - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x40 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x42 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x7f - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x80 - ldrb r1, [r4] - bl sub_0807BA8C - adds r0, r5, #0 - adds r0, #0x81 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C374 @ =0x0000013F - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C378 @ =0x00000141 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C37C @ =0x0000017F - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C380 @ =0x00000181 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C384 @ =0x000001BD - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - movs r1, #0xdf - lsls r1, r1, #1 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C388 @ =0x000001BF - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C38C @ =0x000001C1 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - movs r1, #0xe1 - lsls r1, r1, #1 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - ldr r1, _0809C390 @ =0x000001C3 - adds r0, r5, r1 - ldrb r1, [r4] - bl sub_0807BA8C - pop {r4, r5, pc} - .align 2, 0 -_0809C370: .4byte gUnk_03000BF0 -_0809C374: .4byte 0x0000013F -_0809C378: .4byte 0x00000141 -_0809C37C: .4byte 0x0000017F -_0809C380: .4byte 0x00000181 -_0809C384: .4byte 0x000001BD -_0809C388: .4byte 0x000001BF -_0809C38C: .4byte 0x000001C1 -_0809C390: .4byte 0x000001C3 - - thumb_func_start sub_0809C394 -sub_0809C394: @ 0x0809C394 - push {lr} - ldr r2, _0809C3A8 @ =gUnk_08123DCC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809C3A8: .4byte gUnk_08123DCC - - thumb_func_start sub_0809C3AC -sub_0809C3AC: @ 0x0809C3AC - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - strb r2, [r0, #0x1e] - adds r0, #0x29 - ldrb r2, [r0] - subs r1, #9 - ands r1, r2 - movs r2, #5 - orrs r1, r2 - strb r1, [r0] - bx lr - - thumb_func_start nullsub_536 -nullsub_536: @ 0x0809C3C4 - bx lr - .align 2, 0 - - thumb_func_start sub_0809C3C8 -sub_0809C3C8: @ 0x0809C3C8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0809C3E8 @ =gUnk_08123DD4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - pop {r4, pc} - .align 2, 0 -_0809C3E8: .4byte gUnk_08123DD4 - - thumb_func_start sub_0809C3EC -sub_0809C3EC: @ 0x0809C3EC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #7 - bls _0809C400 - b _0809C5A4 -_0809C400: - lsls r0, r0, #2 - ldr r1, _0809C40C @ =_0809C410 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C40C: .4byte _0809C410 -_0809C410: @ jump table - .4byte _0809C430 @ case 0 - .4byte _0809C53E @ case 1 - .4byte _0809C53E @ case 2 - .4byte _0809C53E @ case 3 - .4byte _0809C53E @ case 4 - .4byte _0809C586 @ case 5 - .4byte _0809C440 @ case 6 - .4byte _0809C5BA @ case 7 -_0809C430: - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r1, r4, #0 - adds r1, #0x7e - movs r0, #0 - strh r0, [r1] -_0809C440: - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0xf0 - strb r0, [r1] - ldr r1, _0809C4B4 @ =gUnk_03000BF0 - movs r2, #0x84 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r2, [r1, #6] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - movs r2, #0xb4 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - adds r0, #0x76 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x7b - movs r0, #0x80 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0809C52E - subs r1, #0x19 - movs r0, #0x29 - strb r0, [r1] - adds r1, #1 - movs r0, #0xe0 - strb r0, [r1] - movs r0, #0x30 - bl sub_0801D8E0 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x84 - str r2, [r0] - mov r8, r0 - cmp r2, #0 - bne _0809C4B8 - bl sub_0805E780 - b _0809C5BA - .align 2, 0 -_0809C4B4: .4byte gUnk_03000BF0 -_0809C4B8: - str r2, [r4, #0x64] - mov r0, r8 - ldr r1, [r0] - movs r0, #5 - strb r0, [r1, #1] - movs r5, #0 - mov r7, r8 -_0809C4C6: - adds r6, r5, #1 - adds r0, r4, #0 - movs r1, #0x91 - adds r2, r6, #0 - movs r3, #0 - bl sub_080A2988 - str r0, [r4, #0x54] - cmp r0, #0 - beq _0809C4EE - adds r1, r0, #0 - adds r1, #0x84 - ldr r0, [r7] - str r0, [r1] - ldr r1, [r7] - lsls r0, r5, #2 - adds r1, #0x20 - adds r1, r1, r0 - ldr r0, [r4, #0x54] - str r0, [r1] -_0809C4EE: - adds r5, r6, #0 - cmp r5, #3 - bls _0809C4C6 - adds r0, r4, #0 - movs r1, #0x91 - movs r2, #5 - movs r3, #0 - bl sub_080A2988 - str r0, [r4, #0x54] - cmp r0, #0 - beq _0809C510 - adds r1, r0, #0 - adds r1, #0x84 - mov r2, r8 - ldr r0, [r2] - str r0, [r1] -_0809C510: - adds r0, r4, #0 - movs r1, #0x91 - movs r2, #6 - movs r3, #0 - bl sub_080A2988 - str r0, [r4, #0x50] - cmp r0, #0 - beq _0809C5A4 - adds r1, r0, #0 - adds r1, #0x84 - mov r2, r8 - ldr r0, [r2] - str r0, [r1] - b _0809C5A4 -_0809C52E: - adds r1, r4, #0 - adds r1, #0x62 - movs r0, #0xd7 - strb r0, [r1] - adds r1, #1 - movs r0, #0xe0 - strb r0, [r1] - b _0809C5A4 -_0809C53E: - movs r1, #0 - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] - ldrb r1, [r4, #0xa] - movs r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0809C55A - strb r2, [r4, #0xf] - b _0809C55E -_0809C55A: - movs r0, #0xfe - strb r0, [r4, #0xf] -_0809C55E: - adds r0, r4, #0 - adds r0, #0x74 - movs r2, #0x80 - lsls r2, r2, #1 - strh r2, [r0] - ldrb r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0809C57E - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r1] - b _0809C5A4 -_0809C57E: - adds r0, r4, #0 - adds r0, #0x76 - strh r2, [r0] - b _0809C5A4 -_0809C586: - adds r0, r4, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x1c - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - str r4, [r0, #8] -_0809C5A4: - ldr r0, _0809C5C0 @ =gUnk_08123DDC - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0809C5C4 -_0809C5BA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809C5C0: .4byte gUnk_08123DDC - - thumb_func_start sub_0809C5C4 -sub_0809C5C4: @ 0x0809C5C4 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #7 - bls _0809C5D0 - b _0809C7DE -_0809C5D0: - lsls r0, r0, #2 - ldr r1, _0809C5DC @ =_0809C5E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C5DC: .4byte _0809C5E0 -_0809C5E0: @ jump table - .4byte _0809C738 @ case 0 - .4byte _0809C600 @ case 1 - .4byte _0809C600 @ case 2 - .4byte _0809C600 @ case 3 - .4byte _0809C600 @ case 4 - .4byte _0809C6B8 @ case 5 - .4byte _0809C7B4 @ case 6 - .4byte _0809C7D2 @ case 7 -_0809C600: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAD8 - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xd] - adds r6, r5, #0 - adds r6, #0x84 - cmp r0, #6 - bne _0809C630 - movs r0, #0xf - ldrsb r0, [r5, r0] - cmp r0, #0 - bge _0809C624 - ldr r0, [r6] - ldrb r0, [r0] - rsbs r0, r0, #0 - b _0809C628 -_0809C624: - ldr r0, [r6] - ldrb r0, [r0] -_0809C628: - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_0809CBE4 -_0809C630: - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r3, r0, #0 - lsls r0, r3, #0xd - lsrs r3, r0, #8 - ldr r0, _0809C660 @ =0xFFFFE000 - adds r3, r3, r0 - ldr r0, [r6] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bne _0809C664 - movs r1, #0x88 - lsls r1, r1, #6 - adds r3, r3, r1 - b _0809C66C - .align 2, 0 -_0809C660: .4byte 0xFFFFE000 -_0809C664: - lsrs r0, r3, #1 - movs r1, #0x88 - lsls r1, r1, #6 - adds r3, r0, r1 -_0809C66C: - adds r2, r4, #0 - adds r2, #0x7b - ldr r1, _0809C6B0 @ =gUnk_08123E18 - ldrb r0, [r5, #0xa] - subs r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r2, [r2] - adds r0, r0, r2 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_0809CB70 - ldr r2, [r5, #0x50] - adds r2, #0x7b - ldr r1, _0809C6B4 @ =gUnk_08123E1C - ldrb r0, [r5, #0xa] - subs r0, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r2, [r2] - adds r1, r1, r2 - adds r0, r5, #0 - adds r0, #0x79 - ldrb r0, [r0] - adds r0, r0, r1 - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] - b _0809C7BC - .align 2, 0 -_0809C6B0: .4byte gUnk_08123E18 -_0809C6B4: .4byte gUnk_08123E1C -_0809C6B8: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAD8 - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xd] - adds r6, r5, #0 - adds r6, #0x79 - adds r7, r5, #0 - adds r7, #0x76 - cmp r0, #4 - beq _0809C6F6 - adds r0, r5, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - beq _0809C6F6 - ldrb r0, [r6] - cmp r0, #0x1c - bls _0809C6E4 - subs r0, #1 - strb r0, [r6] -_0809C6E4: - ldrh r0, [r7] - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _0809C6F4 - subs r0, #1 - strh r0, [r7] - b _0809C6F6 -_0809C6F4: - strh r1, [r7] -_0809C6F6: - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r3, r0, #0 - ldrb r0, [r6] - lsls r0, r0, #8 - muls r0, r3, r0 - lsrs r3, r0, #8 - adds r4, #0x7b - ldrb r0, [r4] - adds r0, #0x80 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_0809CB70 - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] - ldrh r1, [r7] - adds r0, r5, #0 - adds r0, #0x74 - b _0809C7C4 -_0809C738: - movs r0, #0x37 - bl sub_0807CBE4 - cmp r0, #0 - beq _0809C74A - adds r0, r5, #0 - movs r1, #0x1e - bl sub_0805E4E0 -_0809C74A: - ldr r1, _0809C7A8 @ =gUnk_08123DF8 - ldrb r0, [r5, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0809C7BC - ldr r0, _0809C7AC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0809C772 - ldr r0, [r5, #0x54] - bl sub_080A2B80 -_0809C772: - adds r3, r5, #0 - adds r3, #0x7e - ldrh r0, [r3] - cmp r0, #0 - beq _0809C7BC - ldr r2, [r5, #0x54] - movs r1, #0 - ldrsh r0, [r3, r1] - ldr r1, [r2, #0x20] - subs r1, r1, r0 - str r1, [r2, #0x20] - ldr r0, [r2, #0x34] - adds r0, r0, r1 - str r0, [r2, #0x34] - ldr r0, [r5, #0x54] - ldr r1, [r0, #0x20] - movs r0, #0xc0 - lsls r0, r0, #6 - cmp r1, r0 - beq _0809C7A0 - ldr r0, _0809C7B0 @ =0xFFFFD000 - cmp r1, r0 - bne _0809C7BC -_0809C7A0: - ldrh r0, [r3] - rsbs r0, r0, #0 - strh r0, [r3] - b _0809C7BC - .align 2, 0 -_0809C7A8: .4byte gUnk_08123DF8 -_0809C7AC: .4byte gUnk_030010A0 -_0809C7B0: .4byte 0xFFFFD000 -_0809C7B4: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FA24 -_0809C7BC: - adds r0, r5, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 -_0809C7C4: - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r5, #0 - bl sub_0805EC9C - b _0809C7DE -_0809C7D2: - ldr r0, _0809C7E0 @ =gUnk_03000BF0 - ldr r0, [r0, #0x30] - cmp r0, r5 - beq _0809C7DE - bl sub_0805E780 -_0809C7DE: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809C7E0: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809C7E4 -sub_0809C7E4: @ 0x0809C7E4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0809C84A - adds r3, r5, #0 - adds r3, #0x7e - ldrh r0, [r3] - cmp r0, #0 - bne _0809C82A - ldr r2, [r5, #0x54] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0809C814 - ldr r0, [r2, #0x34] - ldr r1, _0809C810 @ =0xFFFFC000 - adds r0, r0, r1 - str r0, [r2, #0x34] - b _0809C82A - .align 2, 0 -_0809C810: .4byte 0xFFFFC000 -_0809C814: - ldr r0, [r2, #0x34] - ldr r1, _0809C84C @ =0xFFFFF000 - adds r0, r0, r1 - str r0, [r2, #0x34] - ldr r1, [r5, #0x54] - movs r0, #0xc0 - lsls r0, r0, #6 - str r0, [r1, #0x20] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r3] -_0809C82A: - adds r4, r5, #0 - adds r4, #0x79 - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0809C84A - ldr r0, _0809C850 @ =0x00000B43 - bl sub_08056378 - movs r0, #1 - strb r0, [r5, #0xd] - movs r0, #8 - strb r0, [r4] -_0809C84A: - pop {r4, r5, pc} - .align 2, 0 -_0809C84C: .4byte 0xFFFFF000 -_0809C850: .4byte 0x00000B43 - - thumb_func_start sub_0809C854 -sub_0809C854: @ 0x0809C854 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0809C8A8 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0809C8B8 - adds r5, r4, #0 - adds r5, #0x79 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0809C8B8 - adds r0, r4, #0 - movs r1, #0x91 - movs r2, #7 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _0809C892 - ldrh r0, [r1, #0x32] - subs r0, #0x50 - strh r0, [r1, #0x32] - ldr r0, _0809C8AC @ =gUnk_03000BF0 - str r1, [r0, #0x30] -_0809C892: - ldrb r0, [r4, #0xf] - cmp r0, #2 - bhi _0809C8B0 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r5] - movs r0, #0xe6 - bl sub_080A3268 - b _0809C8B8 - .align 2, 0 -_0809C8A8: .4byte gUnk_02000050 -_0809C8AC: .4byte gUnk_03000BF0 -_0809C8B0: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x78 - strb r0, [r5] -_0809C8B8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809C8BC -sub_0809C8BC: @ 0x0809C8BC - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x79 - ldrb r0, [r3] - subs r1, r0, #1 - strb r1, [r3] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0809C8E2 - movs r0, #1 - strb r0, [r2, #0xd] - movs r0, #0x1e - strb r0, [r3] - ldrb r0, [r2, #0xf] - adds r0, #1 - strb r0, [r2, #0xf] - b _0809C922 -_0809C8E2: - movs r0, #3 - ands r0, r1 - cmp r0, #1 - beq _0809C90A - cmp r0, #1 - bgt _0809C8F4 - cmp r0, #0 - beq _0809C8FE - b _0809C922 -_0809C8F4: - cmp r0, #2 - beq _0809C8FE - cmp r0, #3 - beq _0809C916 - b _0809C922 -_0809C8FE: - ldrh r1, [r2, #0x2e] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - adds r0, #8 - b _0809C920 -_0809C90A: - ldrh r1, [r2, #0x2e] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - adds r0, #4 - b _0809C920 -_0809C916: - ldrh r1, [r2, #0x2e] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - subs r0, #4 -_0809C920: - strh r0, [r2, #0x2e] -_0809C922: - pop {pc} - - thumb_func_start sub_0809C924 -sub_0809C924: @ 0x0809C924 - push {r4, r5, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0809C948 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #6 - movs r3, #0 - bl sub_080A2988 - b _0809C980 -_0809C948: - movs r0, #4 - strb r0, [r5, #0xd] - movs r0, #0x3c - strb r0, [r1] - ldr r4, _0809C984 @ =0x00000115 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080ADF80 - ldr r0, [r5, #0x50] - adds r1, r4, #0 - bl sub_080ADF80 - adds r0, r5, #0 - movs r1, #0xef - bl sub_0801D2B4 - ldr r0, [r5, #0x50] - movs r1, #0xef - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xef - bl sub_0809CC30 - movs r0, #0xe8 - bl sub_080A3268 -_0809C980: - pop {r4, r5, pc} - .align 2, 0 -_0809C984: .4byte 0x00000115 - - thumb_func_start sub_0809C988 -sub_0809C988: @ 0x0809C988 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0809C9AC - movs r0, #5 - strb r0, [r2, #0xd] - movs r0, #0xb4 - strb r0, [r1] - movs r0, #3 - strb r0, [r2, #0xb] - b _0809C9DC -_0809C9AC: - ldr r0, _0809C9C8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0809C9CC - adds r0, r2, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #4 - b _0809C9DA - .align 2, 0 -_0809C9C8: .4byte gUnk_030010A0 -_0809C9CC: - adds r0, r2, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #4 -_0809C9DA: - strh r0, [r1] -_0809C9DC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809C9E0 -sub_0809C9E0: @ 0x0809C9E0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _0809CA04 @ =gUnk_030010A0 - ldr r1, [r0] - movs r2, #2 - ands r1, r2 - adds r7, r0, #0 - cmp r1, #0 - beq _0809CA08 - adds r2, r4, #0 - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #8 - b _0809CA16 - .align 2, 0 -_0809CA04: .4byte gUnk_030010A0 -_0809CA08: - adds r2, r4, #0 - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #8 -_0809CA16: - strh r0, [r1] - adds r5, r2, #0 - ldr r0, [r7] - movs r6, #3 - ands r0, r6 - cmp r0, #0 - bne _0809CA30 - adds r0, r4, #0 - movs r1, #0x87 - movs r2, #2 - movs r3, #0 - bl sub_080A2988 -_0809CA30: - adds r2, r4, #0 - adds r2, #0x79 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - bne _0809CA92 - ldr r0, [r4, #0x54] - adds r0, #0x62 - strb r1, [r0] - ldr r0, [r4, #0x54] - movs r1, #0x80 - lsls r1, r1, #2 - adds r2, #2 - ldrb r2, [r2] - rsbs r2, r2, #0 - bl sub_0806F62C - ldr r1, [r4, #0x54] - adds r0, r4, #0 - movs r2, #0x48 - bl sub_0806FC80 - cmp r0, #0 - beq _0809CAC4 - movs r0, #6 - strb r0, [r4, #0xd] - movs r1, #0 - movs r0, #0xc0 - strh r0, [r4, #0x24] - strb r1, [r4, #0xb] - strb r1, [r4, #0xf] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #0xc4 - ands r0, r1 - strb r0, [r2, #0x18] - ldr r0, [r5] - ldr r0, [r0, #8] - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - ldr r1, [r5] - movs r0, #1 - strb r0, [r1] - movs r0, #0xed - bl sub_080A3268 - b _0809CAC4 -_0809CA92: - subs r0, #1 - strb r0, [r2] - ldr r0, [r7] - ands r0, r6 - cmp r0, #1 - beq _0809CAB4 - cmp r0, #1 - blo _0809CAAC - cmp r0, #2 - beq _0809CAAC - cmp r0, #3 - beq _0809CABC - b _0809CAC4 -_0809CAAC: - ldr r0, [r4, #0x54] - adds r0, #0x62 - movs r1, #0 - b _0809CAC2 -_0809CAB4: - ldr r0, [r4, #0x54] - adds r0, #0x62 - movs r1, #0xfc - b _0809CAC2 -_0809CABC: - ldr r0, [r4, #0x54] - adds r0, #0x62 - movs r1, #4 -_0809CAC2: - strb r1, [r0] -_0809CAC4: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809CAC8 -sub_0809CAC8: @ 0x0809CAC8 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0806F69C - ldr r2, _0809CB3C @ =gUnk_03000BF0 - ldrh r0, [r2, #8] - movs r1, #0xe4 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r5, r3] - cmp r0, r1 - bge _0809CB26 - movs r0, #4 - strb r0, [r2, #0xe] - ldr r0, _0809CB40 @ =gLinkEntity - str r0, [r2, #0x30] - movs r0, #0x9b - bl sub_0807CCB4 - ldr r0, [r5, #0x50] - bl sub_0805E7BC - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldr r0, [r0, #8] - bl sub_0805E7BC - ldr r0, [r4] - ldr r0, [r0, #0x20] - bl sub_0805E7BC - ldr r0, [r4] - ldr r0, [r0, #0x24] - bl sub_0805E7BC - ldr r0, [r4] - ldr r0, [r0, #0x28] - bl sub_0805E7BC - ldr r0, [r4] - ldr r0, [r0, #0x2c] - bl sub_0805E7BC - movs r0, #7 - strb r0, [r5, #0xd] -_0809CB26: - ldr r0, _0809CB44 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0809CB38 - ldr r0, _0809CB48 @ =0x00000163 - bl sub_080A3268 -_0809CB38: - pop {r4, r5, pc} - .align 2, 0 -_0809CB3C: .4byte gUnk_03000BF0 -_0809CB40: .4byte gLinkEntity -_0809CB44: .4byte gUnk_030010A0 -_0809CB48: .4byte 0x00000163 - - thumb_func_start sub_0809CB4C -sub_0809CB4C: @ 0x0809CB4C - push {lr} - ldr r0, _0809CB68 @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0809CB66 - ldr r0, _0809CB6C @ =0x00000B44 - movs r1, #0 - bl sub_08078AA8 - bl sub_0805E780 -_0809CB66: - pop {pc} - .align 2, 0 -_0809CB68: .4byte gUnk_03000BF0 -_0809CB6C: .4byte 0x00000B44 - - thumb_func_start sub_0809CB70 -sub_0809CB70: @ 0x0809CB70 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - ldr r0, _0809CBE0 @ =gUnk_080C9160 - mov sb, r0 - lsls r0, r4, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - mov r8, r1 - bl sub_0806FA04 - ldr r1, [r6, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r6, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, sb - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, r8 - bl sub_0806FA04 - ldr r2, [r6, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r2, #0x30] - subs r1, r1, r0 - str r1, [r6, #0x30] - ldr r0, [r2, #0x34] - str r0, [r6, #0x34] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809CBE0: .4byte gUnk_080C9160 - - thumb_func_start sub_0809CBE4 -sub_0809CBE4: @ 0x0809CBE4 - push {r4, lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x79 - ldrb r0, [r2, #0xf] - ldrb r4, [r3] - adds r1, r0, r4 - strb r1, [r3] - ldrb r4, [r2, #0xf] - movs r0, #0xf - ldrsb r0, [r2, r0] - cmp r0, #0 - bge _0809CC16 - ldrb r0, [r2, #0xe] - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - cmn r1, r0 - bge _0809CC2C - rsbs r0, r4, #0 - strb r0, [r2, #0xf] - movs r0, #0xcf - lsls r0, r0, #1 - bl sub_080A3268 - b _0809CC2C -_0809CC16: - movs r0, #0 - ldrsb r0, [r3, r0] - ldrb r1, [r2, #0xe] - cmp r0, r1 - ble _0809CC2C - rsbs r0, r4, #0 - strb r0, [r2, #0xf] - movs r0, #0xcf - lsls r0, r0, #1 - bl sub_080A3268 -_0809CC2C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809CC30 -sub_0809CC30: @ 0x0809CC30 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r4, #0x84 - ldr r0, [r4] - ldr r0, [r0, #8] - bl sub_0801D2B4 - movs r5, #0 -_0809CC42: - ldr r0, [r4] - lsls r1, r5, #2 - adds r0, #0x20 - adds r0, r0, r1 - ldr r0, [r0] - adds r1, r6, #0 - bl sub_0801D2B4 - adds r5, #1 - cmp r5, #3 - bls _0809CC42 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809CC5C -sub_0809CC5C: @ 0x0809CC5C - push {lr} - ldr r2, _0809CC70 @ =gUnk_08123E20 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809CC70: .4byte gUnk_08123E20 - - thumb_func_start sub_0809CC74 -sub_0809CC74: @ 0x0809CC74 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #1 - strb r4, [r5, #0xc] - bl sub_08016A04 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0809CCD4 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #5 - orrs r1, r0 - strb r1, [r2] - movs r4, #0 -_0809CC9A: - movs r0, #0x92 - movs r1, #1 - adds r2, r4, #0 - bl CreateObject - adds r1, r0, #0 - adds r4, #1 - cmp r1, #0 - beq _0809CCBE - str r5, [r1, #0x50] - lsrs r2, r4, #1 - lsls r2, r2, #0x14 - ldr r0, _0809CCCC @ =0xFFF80000 - adds r2, r2, r0 - adds r0, r5, #0 - ldr r3, _0809CCD0 @ =0xFFF20000 - bl PositionRelative -_0809CCBE: - cmp r4, #2 - bls _0809CC9A - adds r0, r5, #0 - bl sub_0809CDF0 - b _0809CD0A - .align 2, 0 -_0809CCCC: .4byte 0xFFF80000 -_0809CCD0: .4byte 0xFFF20000 -_0809CCD4: - ldrb r1, [r5, #0xb] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _0809CCF2 - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - movs r0, #0x14 - strb r0, [r5, #0xe] - b _0809CD02 -_0809CCF2: - movs r0, #2 - strb r0, [r5, #0xc] - ands r0, r1 - movs r1, #0x12 - cmp r0, #0 - beq _0809CD00 - movs r1, #0x14 -_0809CD00: - strb r1, [r5, #0xe] -_0809CD02: - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 -_0809CD0A: - pop {r4, r5, pc} - - thumb_func_start sub_0809CD0C -sub_0809CD0C: @ 0x0809CD0C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0809CDAC - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x5a - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0809CD36 - movs r0, #0xfe - ands r0, r2 - strb r0, [r1] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_0809CD36: - ldrb r1, [r1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809CD56 - adds r0, r4, #0 - adds r0, #0x59 - ldrb r0, [r0] - cmp r0, #1 - bne _0809CD56 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] -_0809CD56: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0809CDAC - ldr r5, _0809CDB0 @ =gLinkEntity - adds r6, r5, #0 - adds r6, #0x3d - movs r0, #0 - ldrsb r0, [r6, r0] - cmp r0, #0 - bne _0809CDAC - ldrb r0, [r4, #0x1e] - cmp r0, #0 - beq _0809CDAC - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #4 - bl sub_0806FC80 - cmp r0, #0 - beq _0809CDAC - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - adds r0, r5, #0 - movs r1, #0x7a - bl sub_0800449C - movs r1, #0x10 - strb r1, [r6] - adds r0, r5, #0 - adds r0, #0x3e - strb r1, [r0] - adds r2, r5, #0 - adds r2, #0x42 - movs r0, #0xc - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x46 - strh r1, [r0] -_0809CDAC: - pop {r4, r5, r6, pc} - .align 2, 0 -_0809CDB0: .4byte gLinkEntity - - thumb_func_start sub_0809CDB4 -sub_0809CDB4: @ 0x0809CDB4 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0809CDEC - movs r2, #1 - movs r0, #1 - strb r0, [r3, #0xc] - movs r0, #0x1e - strb r0, [r3, #0xe] - strb r1, [r3, #0xf] - ldrb r1, [r3, #0x18] - subs r0, #0x22 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x18] - ldr r0, [r3, #0x50] - ldrh r0, [r0, #0x32] - subs r0, #0xe - strh r0, [r3, #0x32] - adds r0, r3, #0 - movs r1, #0 - bl sub_08004260 -_0809CDEC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809CDF0 -sub_0809CDF0: @ 0x0809CDF0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0809CE80 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - ldrh r6, [r0] - ldr r0, _0809CE84 @ =0x0000402E - subs r1, r6, #1 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - ldr r5, _0809CE88 @ =0x00004022 - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0800015E - adds r1, r6, #1 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r5, #4 - adds r1, r6, #0 - subs r1, #0x41 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldr r0, _0809CE8C @ =0x00004024 - adds r1, r6, #0 - subs r1, #0x3f - ldrb r2, [r4] - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x81 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - adds r1, r6, #0 - subs r1, #0x80 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0809CE80: .4byte gUnk_03000BF0 -_0809CE84: .4byte 0x0000402E -_0809CE88: .4byte 0x00004022 -_0809CE8C: .4byte 0x00004024 - - thumb_func_start sub_0809CE90 -sub_0809CE90: @ 0x0809CE90 - push {lr} - ldr r2, _0809CEA4 @ =gUnk_08123E80 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809CEA4: .4byte gUnk_08123E80 - - thumb_func_start sub_0809CEA8 -sub_0809CEA8: @ 0x0809CEA8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_0809CEC0 -sub_0809CEC0: @ 0x0809CEC0 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0809CEC8 -sub_0809CEC8: @ 0x0809CEC8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809CF06 - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0809CEEE - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0809CEF4 -_0809CEEE: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0809CEF4: - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _0809CF0C -_0809CF06: - adds r0, r4, #0 - bl sub_08004274 -_0809CF0C: - adds r4, #0x59 - ldrb r0, [r4] - cmp r0, #0xff - bne _0809CF20 - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - adds r0, #0x10 - strb r0, [r4] -_0809CF20: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809CF24 -sub_0809CF24: @ 0x0809CF24 - push {lr} - ldr r2, _0809CF38 @ =gUnk_08123EC0 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809CF38: .4byte gUnk_08123EC0 - - thumb_func_start sub_0809CF3C -sub_0809CF3C: @ 0x0809CF3C - push {lr} - ldr r2, _0809CF50 @ =gUnk_08123EEC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809CF50: .4byte gUnk_08123EEC - - thumb_func_start sub_0809CF54 -sub_0809CF54: @ 0x0809CF54 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x31 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - ldr r0, _0809CFDC @ =0xFFFE8000 - str r0, [r4, #0x20] - ldr r0, _0809CFE0 @ =0xFFC74000 - str r0, [r4, #0x34] - adds r1, r4, #0 - adds r1, #0x68 - movs r0, #0xf8 - lsls r0, r0, #8 - strh r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #8 - strb r0, [r4, #0x15] - subs r1, #0x30 - movs r0, #2 - strb r0, [r1] - ldr r0, _0809CFE4 @ =gUnk_03000BF0 - ldrh r0, [r0, #0xa] - strh r0, [r4, #0x2e] - ldr r0, _0809CFE8 @ =0x00000123 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - movs r0, #0x95 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0809CFD8 - str r4, [r5, #0x50] - movs r3, #0x80 - lsls r3, r3, #0xc - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FAB0 -_0809CFD8: - pop {r4, r5, pc} - .align 2, 0 -_0809CFDC: .4byte 0xFFFE8000 -_0809CFE0: .4byte 0xFFC74000 -_0809CFE4: .4byte gUnk_03000BF0 -_0809CFE8: .4byte 0x00000123 - - thumb_func_start sub_0809CFEC -sub_0809CFEC: @ 0x0809CFEC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x68 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r0, r4, #0 - bl sub_08003FC4 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809D018 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0809D026 - strb r0, [r4, #0xf] - b _0809D026 -_0809D018: - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809D026 - bl sub_0805E780 -_0809D026: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D030 -sub_0809D030: @ 0x0809D030 - push {lr} - ldr r2, _0809D044 @ =gUnk_08123EF4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809D044: .4byte gUnk_08123EF4 - - thumb_func_start sub_0809D048 -sub_0809D048: @ 0x0809D048 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0x17 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D06C -sub_0809D06C: @ 0x0809D06C - push {lr} - ldr r2, _0809D080 @ =gUnk_08123EFC - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809D080: .4byte gUnk_08123EFC - - thumb_func_start sub_0809D084 -sub_0809D084: @ 0x0809D084 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - cmp r0, #0 - beq _0809D0A8 - ldrb r2, [r0, #0xf] - cmp r2, #0 - beq _0809D0A0 - movs r3, #0x80 - lsls r3, r3, #0xc - movs r2, #0 - bl PositionRelative - b _0809D0A8 -_0809D0A0: - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - str r2, [r1, #0x20] -_0809D0A8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809D0AC -sub_0809D0AC: @ 0x0809D0AC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_080044EC - cmp r0, #1 - bhi _0809D0F0 - movs r2, #0 - movs r0, #2 - strb r0, [r4, #0xa] - movs r1, #1 - strb r1, [r4, #0xc] - str r2, [r4, #0x34] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - movs r0, #0x45 - bl sub_0807CCB4 - movs r0, #0x72 - bl sub_080A3268 - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0809D0F0 - adds r0, r4, #0 - bl sub_0806FAD8 -_0809D0F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D0F4 -sub_0809D0F4: @ 0x0809D0F4 - push {lr} - ldr r2, _0809D108 @ =gUnk_08123F04 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809D108: .4byte gUnk_08123F04 - - thumb_func_start sub_0809D10C -sub_0809D10C: @ 0x0809D10C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0x17 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D130 -sub_0809D130: @ 0x0809D130 - push {lr} - adds r2, r0, #0 - ldr r0, _0809D148 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809D14C - adds r0, r2, #0 - bl sub_0800445C - b _0809D170 - .align 2, 0 -_0809D148: .4byte gUnk_03003F80 -_0809D14C: - adds r0, r2, #0 - bl sub_08017850 - cmp r0, #0 - beq _0809D170 - movs r0, #0x17 - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - ldr r0, _0809D174 @ =gUnk_02002A40 - ldr r1, [r0, #0x40] - movs r2, #0x80 - lsls r2, r2, #0x15 - orrs r1, r2 - str r1, [r0, #0x40] - bl sub_0805E780 -_0809D170: - pop {pc} - .align 2, 0 -_0809D174: .4byte gUnk_02002A40 - - thumb_func_start sub_0809D178 -sub_0809D178: @ 0x0809D178 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809D19C - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r1, r4, #0 - adds r1, #0x5a - movs r0, #0x80 - strb r0, [r1] -_0809D19C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809D1E8 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - adds r0, r4, #0 - bl sub_08004260 - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - adds r0, #0x10 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0809D1EE - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] - b _0809D1EE -_0809D1E8: - adds r0, r4, #0 - bl sub_08004274 -_0809D1EE: - pop {r4, pc} - - thumb_func_start sub_0809D1F0 -sub_0809D1F0: @ 0x0809D1F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - mov sb, r0 - cmp r0, #0 - beq _0809D224 - cmp r0, #1 - beq _0809D2B0 - bl sub_08078B48 - ldr r2, _0809D220 @ =gLinkEntity - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - movs r1, #0x68 - adds r1, r1, r5 - mov r8, r1 - b _0809D3A8 - .align 2, 0 -_0809D220: .4byte gLinkEntity -_0809D224: - ldrb r1, [r5, #0xe] - cmp r1, #0 - beq _0809D234 - movs r0, #0xff - strb r0, [r5, #0x1e] - subs r0, r1, #1 - strb r0, [r5, #0xe] - b _0809D488 -_0809D234: - movs r1, #1 - strb r1, [r5, #0xc] - mov r2, sb - str r2, [r5, #0x20] - ldr r0, _0809D2A0 @ =0xFFEC0000 - str r0, [r5, #0x34] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - movs r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r2, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r5, #0x1b] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r5, #0x1b] - ldr r0, _0809D2A4 @ =gUnk_03000BF0 - ldrh r0, [r0, #0xa] - strh r0, [r5, #0x2e] - ldr r0, _0809D2A8 @ =gLinkEntity - ldrh r0, [r0, #0x32] - strh r0, [r5, #0x32] - mov r3, sb - str r3, [r5, #0x54] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC - ldr r0, _0809D2AC @ =0x00000123 - bl sub_080A3268 - movs r0, #0x68 - adds r0, r0, r5 - mov r8, r0 - b _0809D3A8 - .align 2, 0 -_0809D2A0: .4byte 0xFFEC0000 -_0809D2A4: .4byte gUnk_03000BF0 -_0809D2A8: .4byte gLinkEntity -_0809D2AC: .4byte 0x00000123 -_0809D2B0: - ldr r6, _0809D430 @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - ldrh r0, [r5, #0x24] - adds r0, #8 - strh r0, [r5, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xc0 - lsls r1, r1, #2 - mov sl, r1 - cmp r0, sl - ble _0809D2D6 - mov r2, sl - strh r2, [r5, #0x24] -_0809D2D6: - ldrb r1, [r6, #0x10] - movs r0, #0x80 - ands r0, r1 - movs r3, #0x68 - adds r3, r3, r5 - mov r8, r3 - cmp r0, #0 - beq _0809D3A8 - ldr r0, _0809D434 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0809D3A8 - ldrb r0, [r6, #0xc] - cmp r0, #0x1c - beq _0809D3A8 - cmp r0, #6 - beq _0809D3A8 - cmp r0, #9 - beq _0809D3A8 - ldr r7, _0809D438 @ =gUnk_03003F80 - adds r0, r7, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x18 - beq _0809D3A8 - cmp r0, #0xb - beq _0809D3A8 - cmp r0, #8 - beq _0809D3A8 - bl sub_08079F8C - cmp r0, #0 - beq _0809D3A8 - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0xe - movs r3, #0xe - bl sub_080041A0 - cmp r0, #0 - beq _0809D3A8 - movs r1, #0x36 - ldrsh r0, [r6, r1] - movs r2, #0x36 - ldrsh r1, [r5, r2] - subs r0, r0, r1 - subs r0, #8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1f - bhi _0809D3A8 - adds r0, r6, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0809D3A8 - movs r0, #0x95 - movs r1, #0xa - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809D3A8 - str r4, [r5, #0x54] - movs r0, #2 - strb r0, [r5, #0xc] - movs r0, #8 - strb r0, [r5, #0xe] - mov r3, sl - strh r3, [r5, #0x24] - movs r0, #0xe0 - lsls r0, r0, #8 - mov r1, r8 - strh r0, [r1] - bl sub_08079184 - bl sub_08078B48 - bl sub_080791D0 - bl sub_08077B20 - adds r0, r7, #0 - adds r0, #0x26 - movs r2, #0 - strb r2, [r0] - strb r2, [r7, #2] - ldrb r1, [r6, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r6, #0x10] - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6, #0x18] - ldr r1, _0809D43C @ =gUnk_03003DC0 - movs r0, #6 - strb r0, [r1] - ldr r0, _0809D440 @ =gUnk_02034490 - mov r3, sb - strb r3, [r0] -_0809D3A8: - adds r0, r5, #0 - bl sub_0806F69C - mov r0, r8 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r0, r5, #0 - bl sub_08003FC4 - adds r0, r5, #0 - bl sub_080042B8 - ldr r4, [r5, #0x54] - cmp r4, #0 - beq _0809D454 - ldr r2, _0809D430 @ =gLinkEntity - movs r3, #0x2e - ldrsh r1, [r2, r3] - movs r3, #0x2e - ldrsh r0, [r5, r3] - subs r0, #8 - cmp r1, r0 - bge _0809D3DA - movs r0, #0 - strb r0, [r5, #0xe] -_0809D3DA: - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0809D448 - ldr r2, _0809D444 @ =0xFFF80000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldrh r0, [r4, #0x36] - adds r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - adds r3, r4, #0 - adds r3, #0x29 - lsrs r1, r1, #0x1d - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r2, [r5, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] - b _0809D454 - .align 2, 0 -_0809D430: .4byte gLinkEntity -_0809D434: .4byte gUnk_02000050 -_0809D438: .4byte gUnk_03003F80 -_0809D43C: .4byte gUnk_03003DC0 -_0809D440: .4byte gUnk_02034490 -_0809D444: .4byte 0xFFF80000 -_0809D448: - subs r0, #1 - strb r0, [r5, #0xe] - adds r0, r2, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_0809D454: - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809D488 - ldrb r0, [r5, #0xc] - cmp r0, #2 - bne _0809D478 - ldr r0, _0809D494 @ =gUnk_02002A40 - ldr r1, [r0, #0x40] - movs r2, #0x80 - lsls r2, r2, #0x15 - orrs r1, r2 - str r1, [r0, #0x40] - movs r0, #9 - movs r1, #0 - bl sub_080A7138 -_0809D478: - ldr r4, [r5, #0x54] - cmp r4, #0 - beq _0809D484 - adds r0, r4, #0 - bl sub_0805E79C -_0809D484: - bl sub_0805E780 -_0809D488: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809D494: .4byte gUnk_02002A40 - - thumb_func_start sub_0809D498 -sub_0809D498: @ 0x0809D498 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0809D548 - movs r2, #1 - movs r3, #1 - strb r3, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldr r0, _0809D534 @ =0xFFFD8000 - str r0, [r5, #0x20] - ldr r0, _0809D538 @ =0xFFB4C000 - str r0, [r5, #0x34] - adds r4, r5, #0 - adds r4, #0x68 - movs r0, #0xf0 - lsls r0, r0, #8 - strh r0, [r4] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x38 - strb r3, [r0] - adds r6, r5, #0 - adds r6, #0x29 - ldrb r1, [r6] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r6] - ldrb r2, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r5, #0x1b] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r5, #0x1b] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _0809D53C @ =gUnk_03000BF0 - ldrh r0, [r0, #0xa] - strh r0, [r5, #0x2e] - ldr r0, _0809D540 @ =gLinkEntity - ldrh r0, [r0, #0x32] - strh r0, [r5, #0x32] - ldr r0, _0809D544 @ =0x00000123 - bl sub_080A3268 - ldrb r1, [r6] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r6] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC - bl sub_08078B48 - adds r7, r4, #0 - b _0809D62E - .align 2, 0 -_0809D534: .4byte 0xFFFD8000 -_0809D538: .4byte 0xFFB4C000 -_0809D53C: .4byte gUnk_03000BF0 -_0809D540: .4byte gLinkEntity -_0809D544: .4byte 0x00000123 -_0809D548: - adds r7, r5, #0 - adds r7, #0x68 - cmp r0, #1 - bne _0809D62E - ldr r6, _0809D658 @ =gLinkEntity - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - mov r8, r0 - ands r0, r1 - strb r0, [r6, #0x18] - ldr r4, [r5, #0x54] - cmp r4, #0 - beq _0809D5B0 - ldr r2, _0809D65C @ =0xFFF80000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldrh r0, [r4, #0x36] - adds r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - adds r3, r4, #0 - adds r3, #0x29 - lsrs r1, r1, #0x1d - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r2, [r5, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] -_0809D5B0: - bl sub_08078B48 - ldr r3, _0809D660 @ =gUnk_03000BF0 - movs r1, #0xa - ldrsh r0, [r3, r1] - adds r0, #0x78 - movs r2, #0x2e - ldrsh r1, [r5, r2] - cmp r0, r1 - bge _0809D62E - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - cmp r4, #0 - beq _0809D5E6 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0809D5E6: - str r6, [r3, #0x30] - ldrb r1, [r6, #0x18] - mov r0, r8 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r6, #0x18] - bl sub_080791D0 - bl sub_0805E564 - ldr r1, _0809D664 @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] - movs r0, #0x52 - bl GetProgressFlag - cmp r0, #0 - bne _0809D62E - movs r0, #0x69 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809D62E - ldr r1, _0809D668 @ =gUnk_0800B0AC - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - movs r0, #0x52 - bl sub_0807CD04 -_0809D62E: - adds r0, r5, #0 - bl sub_0806F69C - movs r0, #0 - ldrsh r1, [r7, r0] - adds r0, r5, #0 - bl sub_08003FC4 - adds r0, r5, #0 - bl sub_080042B8 - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809D652 - bl sub_0805E780 -_0809D652: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809D658: .4byte gLinkEntity -_0809D65C: .4byte 0xFFF80000 -_0809D660: .4byte gUnk_03000BF0 -_0809D664: .4byte gUnk_02034490 -_0809D668: .4byte gUnk_0800B0AC - - thumb_func_start sub_0809D66C -sub_0809D66C: @ 0x0809D66C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0809D694 @ =gLinkEntity - ldrb r1, [r0, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0809D6EC - cmp r0, #1 - bgt _0809D698 - cmp r0, #0 - beq _0809D6A2 - b _0809D6FE - .align 2, 0 -_0809D694: .4byte gLinkEntity -_0809D698: - cmp r0, #2 - beq _0809D6F4 - cmp r0, #3 - beq _0809D6FA - b _0809D6FE -_0809D6A2: - movs r3, #1 - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x38 - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x1b] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0xe0 - bl sub_080042AC -_0809D6EC: - adds r0, r4, #0 - bl sub_080042B8 - b _0809D6FE -_0809D6F4: - movs r0, #3 - strb r0, [r4, #0xc] - b _0809D6FE -_0809D6FA: - bl sub_0805E780 -_0809D6FE: - pop {r4, pc} - - thumb_func_start sub_0809D700 -sub_0809D700: @ 0x0809D700 - push {r4, lr} - sub sp, #4 - bl sub_08052654 - cmp r0, #0 - beq _0809D732 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x95 - movs r2, #6 - movs r3, #8 - bl sub_0805EB2C - adds r4, r0, #0 - cmp r4, #0 - bne _0809D732 - movs r0, #0x95 - movs r1, #8 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _0809D732 - strb r4, [r0, #0xe] -_0809D732: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D738 -sub_0809D738: @ 0x0809D738 - push {r4, lr} - movs r0, #0x95 - movs r1, #9 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809D77C - ldr r1, _0809D774 @ =gUnk_03000BF0 - movs r0, #0 - str r0, [r1, #0x30] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - bl sub_0805E544 - movs r0, #0x95 - movs r1, #0xa - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _0809D76C - str r0, [r4, #0x54] -_0809D76C: - ldr r1, _0809D778 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - b _0809D780 - .align 2, 0 -_0809D774: .4byte gUnk_03000BF0 -_0809D778: .4byte gUnk_02034490 -_0809D77C: - bl sub_080791D0 -_0809D780: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809D784 -sub_0809D784: @ 0x0809D784 - push {lr} - ldr r1, _0809D7A0 @ =gUnk_081240B0 - ldrb r3, [r0, #0xc] - lsls r3, r3, #2 - adds r3, r3, r1 - ldrb r1, [r0, #0xa] - lsls r1, r1, #5 - ldr r2, _0809D7A4 @ =gUnk_08123FB0 - adds r1, r1, r2 - ldr r2, [r3] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0809D7A0: .4byte gUnk_081240B0 -_0809D7A4: .4byte gUnk_08123FB0 - - thumb_func_start sub_0809D7A8 -sub_0809D7A8: @ 0x0809D7A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - adds r0, #1 - movs r4, #0 - strb r0, [r5, #0xc] - adds r2, r5, #0 - adds r2, #0x38 - movs r0, #2 - strb r0, [r2] - ldrb r2, [r5, #0x19] - movs r0, #0x3f - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r5, #0x19] - ldr r0, [r1, #0x10] - str r0, [r5, #0x20] - ldrb r3, [r1, #0xf] - strb r3, [r5, #0x15] - ldrh r0, [r1, #0x18] - strh r0, [r5, #0x24] - ldrh r0, [r5, #0x32] - ldrh r2, [r1, #0x1a] - subs r0, r0, r2 - strh r0, [r5, #0x32] - str r4, [r5, #0x34] - ldrb r0, [r1, #0x1e] - strb r0, [r5, #0xe] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _0809D80C - ldrb r0, [r5, #0x15] - cmp r0, #0x81 - bne _0809D80C - bl sub_08000E50 - ldr r1, _0809D820 @ =gLinkEntity - ldrb r1, [r1, #0x14] - lsls r1, r1, #2 - movs r2, #3 - ands r0, r2 - adds r1, r1, r0 - subs r1, #2 - movs r0, #0x1f - ands r1, r0 - movs r0, #0x10 - eors r1, r0 - strb r1, [r5, #0x15] -_0809D80C: - adds r0, r5, #0 - bl sub_08016A04 - ldrb r4, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, pc} - .align 2, 0 -_0809D820: .4byte gLinkEntity - - thumb_func_start sub_0809D824 -sub_0809D824: @ 0x0809D824 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #1 - ldr r2, [r6, #4] - cmp r2, #0 - beq _0809D838 - adds r0, r5, #0 - bl _call_via_r2 -_0809D838: - cmp r0, #0 - beq _0809D850 - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - ldrh r1, [r6, #0x1a] - ldrh r2, [r5, #0x32] - adds r0, r1, r2 - strh r0, [r5, #0x32] - ldrh r0, [r5, #0x36] - subs r0, r0, r1 - strh r0, [r5, #0x36] -_0809D850: - ldrb r4, [r5, #0xa] - ldrb r0, [r6, #0xd] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, r6, pc} - - thumb_func_start sub_0809D860 -sub_0809D860: @ 0x0809D860 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - bl sub_0806F69C - ldr r1, [r6, #0x14] - adds r0, r5, #0 - bl sub_080044EC - cmp r0, #1 - bhi _0809D8B2 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0809D888 - subs r0, #1 - strb r0, [r5, #0xe] - ldr r0, [r6, #0x14] - lsls r0, r0, #3 - str r0, [r5, #0x20] - b _0809D8AC -_0809D888: - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - ldr r0, _0809D8C4 @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r5, #0 - bl sub_08016A04 - ldr r1, [r6] - cmp r1, #0 - beq _0809D8AC - adds r0, r5, #0 - bl _call_via_r1 -_0809D8AC: - movs r0, #0x6e - bl sub_080A3268 -_0809D8B2: - ldrb r4, [r5, #0xa] - ldrb r0, [r6, #0xd] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, r6, pc} - .align 2, 0 -_0809D8C4: .4byte gLinkEntity - - thumb_func_start sub_0809D8C8 -sub_0809D8C8: @ 0x0809D8C8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r0, _0809D8E4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809D8E8 - adds r0, r5, #0 - bl sub_0800445C - b _0809D90A - .align 2, 0 -_0809D8E4: .4byte gUnk_03003F80 -_0809D8E8: - adds r0, r5, #0 - bl sub_08017850 - cmp r0, #0 - beq _0809D90A - ldrb r0, [r6, #0xd] - ldrb r1, [r5, #0xb] - movs r2, #0 - bl sub_080A7C00 - ldrh r0, [r6, #0x1c] - cmp r0, #0 - beq _0809D906 - bl sub_0807CCC8 -_0809D906: - bl sub_0805E780 -_0809D90A: - ldrb r4, [r5, #0xa] - ldrb r0, [r6, #0xd] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809D91C -sub_0809D91C: @ 0x0809D91C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x11 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0809D934 - adds r0, r4, #0 - bl sub_0806FAD8 -_0809D934: - movs r0, #0x72 - bl sub_080A3268 - pop {r4, pc} - - thumb_func_start sub_0809D93C -sub_0809D93C: @ 0x0809D93C - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldr r2, _0809D9A0 @ =gLinkEntity - ldrb r0, [r2, #0xc] - cmp r0, #6 - bne _0809D9A4 - ldrb r0, [r3, #0xc] - ldrb r1, [r2, #0x14] - asrs r0, r1 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0809D9A4 - movs r5, #0x2e - ldrsh r0, [r2, r5] - movs r5, #0x2e - ldrsh r1, [r4, r5] - subs r0, r0, r1 - movs r1, #8 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - ldrb r1, [r3, #0xa] - adds r0, r0, r1 - lsls r1, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - ble _0809D9A4 - movs r0, #0x32 - ldrsh r2, [r2, r0] - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r4, #0x1a - ldrsh r1, [r3, r4] - adds r0, r0, r1 - subs r2, r2, r0 - movs r0, #9 - ldrsb r0, [r3, r0] - adds r2, r2, r0 - ldrb r1, [r3, #0xb] - adds r0, r2, r1 - lsls r1, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - ble _0809D9A4 - movs r0, #1 - b _0809D9A6 - .align 2, 0 -_0809D9A0: .4byte gLinkEntity -_0809D9A4: - movs r0, #0 -_0809D9A6: - pop {r4, r5, pc} - - thumb_func_start sub_0809D9A8 -sub_0809D9A8: @ 0x0809D9A8 - push {lr} - ldr r2, _0809D9BC @ =gUnk_081240C0 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809D9BC: .4byte gUnk_081240C0 - - thumb_func_start sub_0809D9C0 -sub_0809D9C0: @ 0x0809D9C0 - push {lr} - ldr r2, _0809D9D4 @ =gUnk_081240D8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809D9D4: .4byte gUnk_081240D8 - - thumb_func_start sub_0809D9D8 -sub_0809D9D8: @ 0x0809D9D8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - strh r2, [r4, #0x24] - movs r0, #0x18 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - adds r0, r4, #0 - movs r1, #6 - bl sub_0805EB64 - cmp r0, #0 - beq _0809DA1E - str r4, [r0, #0x50] - str r0, [r4, #0x54] - b _0809DA28 -_0809DA1E: - movs r0, #0x20 - bl sub_0807CD04 - bl sub_0805E780 -_0809DA28: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809DA2C -sub_0809DA2C: @ 0x0809DA2C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809DA5C - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] - ldr r0, [r1, #0x30] - movs r2, #0x80 - lsls r2, r2, #0xd - adds r0, r0, r2 - str r0, [r1, #0x30] - ldr r0, [r1, #0x34] - ldr r2, _0809DA60 @ =0xFFF00000 - adds r0, r0, r2 - str r0, [r1, #0x34] - adds r0, r1, #0 - movs r1, #3 - bl sub_080042AC -_0809DA5C: - pop {pc} - .align 2, 0 -_0809DA60: .4byte 0xFFF00000 - - thumb_func_start sub_0809DA64 -sub_0809DA64: @ 0x0809DA64 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x54] - adds r1, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_0809E1C8 - adds r0, r5, #0 - bl sub_0809E1F0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r5, #0 - bl sub_080041DC - lsls r0, r0, #4 - movs r2, #0x24 - ldrsh r1, [r5, r2] - cmp r0, r1 - bge _0809DAAC - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x10 - strb r0, [r5, #0xe] - movs r0, #1 - strb r0, [r5, #0xf] - adds r0, r5, #0 - movs r1, #2 - bl sub_080042AC -_0809DAAC: - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_0809DAB4 -sub_0809DAB4: @ 0x0809DAB4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0809DB10 @ =gUnk_03000BF0 - ldrh r1, [r5, #6] - adds r1, #0x78 - ldrh r2, [r5, #8] - adds r2, #0xa8 - bl sub_080045B4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0809E1C8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809DADE - subs r0, #1 - strb r0, [r4, #0xe] - ldrh r0, [r4, #0x24] - subs r0, #0x80 - strh r0, [r4, #0x24] -_0809DADE: - adds r0, r4, #0 - bl sub_0809E1F0 - ldrh r1, [r5, #6] - adds r1, #0x78 - ldrh r2, [r5, #8] - adds r2, #0xa8 - adds r0, r4, #0 - bl sub_080041DC - lsls r0, r0, #4 - movs r2, #0x24 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _0809DB02 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_0809DB02: - adds r0, r4, #0 - bl sub_0809E210 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0809DB10: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809DB14 -sub_0809DB14: @ 0x0809DB14 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0809E1F0 - adds r0, r4, #0 - bl sub_080040A8 - adds r5, r0, #0 - cmp r5, #0 - bne _0809DB36 - movs r0, #0x20 - bl sub_0807CD04 - ldr r0, [r4, #0x54] - str r5, [r0, #0x50] - bl sub_0805E780 -_0809DB36: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809DB40 -sub_0809DB40: @ 0x0809DB40 - push {lr} - ldr r2, _0809DB54 @ =gUnk_081240EC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809DB54: .4byte gUnk_081240EC - - thumb_func_start sub_0809DB58 -sub_0809DB58: @ 0x0809DB58 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0x3c - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809DB88 -sub_0809DB88: @ 0x0809DB88 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - cmp r4, #0 - beq _0809DBC4 - ldr r0, [r4, #4] - cmp r0, #0 - bne _0809DB9C - bl sub_0805E780 -_0809DB9C: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0809DBB0 - movs r3, #0x80 - lsls r3, r3, #0xc - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative -_0809DBB0: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - ldrb r2, [r5, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x18] - b _0809DBC8 -_0809DBC4: - bl sub_0805E780 -_0809DBC8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809DBCC -sub_0809DBCC: @ 0x0809DBCC - push {lr} - ldr r2, _0809DBE0 @ =gUnk_081240F4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809DBE0: .4byte gUnk_081240F4 - - thumb_func_start sub_0809DBE4 -sub_0809DBE4: @ 0x0809DBE4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809DB58 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x18 - strb r0, [r4, #0x15] - adds r0, #0xe8 - strh r0, [r4, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x6e - bl sub_080A3268 - pop {r4, pc} - - thumb_func_start sub_0809DC14 -sub_0809DC14: @ 0x0809DC14 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bhi _0809DC5A - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809DC3C - subs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - b _0809DC54 -_0809DC3C: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0809DC64 @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r4, #0 - bl sub_08016A04 -_0809DC54: - movs r0, #0x6e - bl sub_080A3268 -_0809DC5A: - adds r0, r4, #0 - bl sub_0809DB88 - pop {r4, pc} - .align 2, 0 -_0809DC64: .4byte gLinkEntity - - thumb_func_start sub_0809DC68 -sub_0809DC68: @ 0x0809DC68 - push {lr} - ldr r2, _0809DC7C @ =gUnk_08124100 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809DC7C: .4byte gUnk_08124100 - - thumb_func_start sub_0809DC80 -sub_0809DC80: @ 0x0809DC80 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r3, #0 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r2, #0 - strh r3, [r4, #0x24] - movs r0, #0x18 - strb r0, [r4, #0x15] - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xd - adds r0, r0, r1 - str r0, [r4, #0x30] - ldr r0, [r4, #0x34] - ldr r1, _0809DCFC @ =0xFFF00000 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x6c - strh r3, [r0] - adds r0, #2 - strb r2, [r0] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #3 - bl sub_080042AC - adds r0, r4, #0 - movs r1, #6 - bl sub_0805EB64 - cmp r0, #0 - beq _0809DD00 - str r4, [r0, #0x50] - str r0, [r4, #0x54] - b _0809DD0A - .align 2, 0 -_0809DCFC: .4byte 0xFFF00000 -_0809DD00: - movs r0, #0x20 - bl sub_0807CD04 - bl sub_0805E780 -_0809DD0A: - pop {r4, pc} - - thumb_func_start sub_0809DD0C -sub_0809DD0C: @ 0x0809DD0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809DD2A - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xa3 - lsls r0, r0, #1 - bl sub_080A3268 -_0809DD2A: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809DD34 -sub_0809DD34: @ 0x0809DD34 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x6e - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - subs r1, #2 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x20 - bls _0809DD64 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x20 - strh r0, [r1] - movs r0, #0xa3 - lsls r0, r0, #1 - bl sub_080A3268 -_0809DD64: - adds r0, r4, #0 - bl sub_0809E238 - adds r0, r4, #0 - bl sub_0809E29C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_0809DD78 -sub_0809DD78: @ 0x0809DD78 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x6e - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - subs r1, #2 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809DDA8 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x5f - ands r0, r1 - strb r0, [r4, #0x18] - b _0809DDB4 -_0809DDA8: - adds r0, r4, #0 - bl sub_0809E238 - adds r0, r4, #0 - bl sub_0809E29C -_0809DDB4: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_0809DDBC -sub_0809DDBC: @ 0x0809DDBC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809DDD8 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0809DDE0 @ =0x0000015B - bl sub_080A3268 -_0809DDD8: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_0809DDE0: .4byte 0x0000015B - - thumb_func_start sub_0809DDE4 -sub_0809DDE4: @ 0x0809DDE4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0809DE34 @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - adds r1, #0x40 - ldrh r2, [r0, #8] - movs r0, #0xbc - lsls r0, r0, #1 - adds r2, r2, r0 - adds r0, r4, #0 - bl sub_080045B4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0809E1C8 - adds r0, r4, #0 - bl sub_0809E1F0 - adds r0, r4, #0 - bl sub_0809E210 - adds r0, r4, #0 - bl sub_080040A8 - adds r5, r0, #0 - cmp r5, #0 - bne _0809DE2A - movs r0, #0x20 - bl sub_0807CD04 - ldr r0, [r4, #0x54] - str r5, [r0, #0x50] - bl sub_0805E780 -_0809DE2A: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0809DE34: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809DE38 -sub_0809DE38: @ 0x0809DE38 - push {lr} - ldr r2, _0809DE4C @ =gUnk_08124118 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809DE4C: .4byte gUnk_08124118 - - thumb_func_start sub_0809DE50 -sub_0809DE50: @ 0x0809DE50 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - movs r0, #0xa - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - strh r2, [r4, #0x24] - ldr r1, _0809DEEC @ =gUnk_0812412D - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0x15] - ldrb r1, [r4, #0xb] - lsls r1, r1, #2 - ldr r0, _0809DEF0 @ =gUnk_08124132 - adds r1, r1, r0 - ldr r2, _0809DEF4 @ =gUnk_03000BF0 - ldrh r0, [r1] - ldrh r3, [r2, #6] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r0, #0x40 - strh r0, [r4, #0x32] - ldr r0, _0809DEF8 @ =0x0000FFC0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08016A04 - ldr r1, _0809DEFC @ =gUnk_08124128 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC - movs r0, #0x97 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _0809DEE8 - str r4, [r5, #0x50] - str r5, [r4, #0x54] - movs r3, #0x80 - lsls r3, r3, #0xc - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - movs r1, #0x10 - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - bne _0809DEE2 - rsbs r1, r1, #0 -_0809DEE2: - ldrh r0, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] -_0809DEE8: - pop {r4, r5, pc} - .align 2, 0 -_0809DEEC: .4byte gUnk_0812412D -_0809DEF0: .4byte gUnk_08124132 -_0809DEF4: .4byte gUnk_03000BF0 -_0809DEF8: .4byte 0x0000FFC0 -_0809DEFC: .4byte gUnk_08124128 - - thumb_func_start sub_0809DF00 -sub_0809DF00: @ 0x0809DF00 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xb] - bl sub_0809E2C4 - cmp r0, #1 - beq _0809DF16 - cmp r0, #2 - beq _0809DF64 - movs r0, #0xa - b _0809DF96 -_0809DF16: - ldrb r0, [r4, #0xc] - adds r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #2 - adds r0, r4, #0 - bl sub_080042AC - ldr r0, _0809DF60 @ =0x00000123 - bl sub_080A3268 - ldr r5, [r4, #0x54] - cmp r5, #0 - beq _0809DF98 - ldrb r1, [r4, #0xb] - adds r1, #2 - movs r0, #0x96 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809DF52 - adds r0, r5, #0 - bl sub_0806FA24 -_0809DF52: - adds r0, r5, #0 - bl sub_0805E79C - movs r0, #0 - str r0, [r4, #0x54] - b _0809DF98 - .align 2, 0 -_0809DF60: .4byte 0x00000123 -_0809DF64: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0809DF94 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #2 - adds r0, r4, #0 - bl sub_080042AC - ldr r0, _0809DF8C @ =0x00000123 - bl sub_080A3268 - ldr r0, _0809DF90 @ =0x000001F3 - bl sub_080A3268 - b _0809DF98 - .align 2, 0 -_0809DF8C: .4byte 0x00000123 -_0809DF90: .4byte 0x000001F3 -_0809DF94: - subs r0, #1 -_0809DF96: - strb r0, [r4, #0xe] -_0809DF98: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_0809DFA0 -sub_0809DFA0: @ 0x0809DFA0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0809DFD6 - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r4, r2] - subs r1, r1, r0 - ldrb r0, [r4, #0x15] - lsls r0, r0, #0xb - eors r1, r0 - movs r0, #0x80 - lsls r0, r0, #8 - ands r1, r0 - cmp r1, #0 - beq _0809DFD6 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xf] - movs r0, #0x81 - lsls r0, r0, #1 - bl sub_080A3268 -_0809DFD6: - adds r0, r4, #0 - bl sub_0809DFE0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809DFE0 -sub_0809DFE0: @ 0x0809DFE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809E028 - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _0809DFF4 - str r0, [r1, #0x50] -_0809DFF4: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0809E008 - bl sub_0805E780 - b _0809E034 -_0809E008: - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _0809E024 @ =gUnk_08124146 - movs r1, #1 - ands r1, r0 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xb] - b _0809E034 - .align 2, 0 -_0809E024: .4byte gUnk_08124146 -_0809E028: - adds r0, r4, #0 - bl sub_0809E1F0 - adds r0, r4, #0 - bl sub_080042B8 -_0809E034: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E038 -sub_0809E038: @ 0x0809E038 - push {lr} - ldr r2, _0809E04C @ =gUnk_08124150 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809E04C: .4byte gUnk_08124150 - - thumb_func_start sub_0809E050 -sub_0809E050: @ 0x0809E050 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - ldr r0, _0809E084 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 -_0809E084: .4byte 0x0000FFF0 - - thumb_func_start sub_0809E088 -sub_0809E088: @ 0x0809E088 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_0809E0A0 -sub_0809E0A0: @ 0x0809E0A0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x97 - movs r1, #5 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809E0C8 - str r5, [r4, #0x50] - str r4, [r5, #0x54] - movs r0, #0 - strb r0, [r5, #0xf] - ldr r0, _0809E0CC @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, _0809E0D0 @ =0x0000FFF8 - strh r0, [r4, #0x36] -_0809E0C8: - pop {r4, r5, pc} - .align 2, 0 -_0809E0CC: .4byte gLinkEntity -_0809E0D0: .4byte 0x0000FFF8 - - thumb_func_start sub_0809E0D4 -sub_0809E0D4: @ 0x0809E0D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r2, [r6, #0x18] - cmp r2, #0 - bne _0809E130 - ldr r1, [r5, #0x54] - cmp r1, #0 - beq _0809E0FC - ldrb r0, [r1, #0xc] - cmp r0, #1 - bhi _0809E0FE - ldr r0, _0809E0F8 @ =gUnk_02033280 - strb r2, [r0, #6] - b _0809E1BC - .align 2, 0 -_0809E0F8: .4byte gUnk_02033280 -_0809E0FC: - ldr r1, _0809E124 @ =gLinkEntity -_0809E0FE: - ldrb r0, [r6, #0x18] - adds r0, #1 - movs r4, #0 - strb r0, [r6, #0x18] - movs r0, #0x2e - ldrsh r2, [r1, r0] - movs r0, #0x32 - ldrsh r3, [r1, r0] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0807DEDC - ldr r0, _0809E128 @ =0x00000123 - bl sub_080A3268 - ldr r0, _0809E12C @ =gUnk_02033280 - strb r4, [r0, #6] - b _0809E1BC - .align 2, 0 -_0809E124: .4byte gLinkEntity -_0809E128: .4byte 0x00000123 -_0809E12C: .4byte gUnk_02033280 -_0809E130: - ldr r1, [r5, #0x54] - cmp r1, #0 - beq _0809E142 - movs r0, #0x2e - ldrsh r2, [r1, r0] - mov r8, r2 - movs r2, #0x32 - ldrsh r7, [r1, r2] - b _0809E14C -_0809E142: - movs r1, #0x1e - ldrsh r0, [r6, r1] - mov r8, r0 - movs r2, #0x22 - ldrsh r7, [r6, r2] -_0809E14C: - ldrb r0, [r6, #0x19] - subs r0, #1 - strb r0, [r6, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809E170 - movs r0, #8 - strb r0, [r6, #0x19] - movs r1, #0x2e - ldrsh r0, [r5, r1] - mov r2, r8 - subs r0, r2, r0 - movs r2, #0x32 - ldrsh r1, [r5, r2] - subs r1, r7, r1 - bl sub_080045DA - strb r0, [r5, #0x15] -_0809E170: - movs r0, #0x2e - ldrsh r4, [r5, r0] - mov r1, r8 - subs r4, r4, r1 - movs r2, #0x32 - ldrsh r0, [r5, r2] - subs r6, r0, r7 - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - movs r1, #0x2e - ldrsh r0, [r5, r1] - mov r2, r8 - subs r0, r0, r2 - muls r4, r0, r4 - movs r1, #0x32 - ldrsh r0, [r5, r1] - subs r0, r0, r7 - muls r6, r0, r6 - cmp r4, #0 - bgt _0809E1B6 - cmp r6, #0 - bgt _0809E1B6 - strh r2, [r5, #0x2e] - strh r7, [r5, #0x32] - movs r0, #1 - strb r0, [r5, #0xf] - movs r0, #0x81 - lsls r0, r0, #1 - bl sub_080A3268 - b _0809E1BC -_0809E1B6: - ldr r1, _0809E1C4 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0809E1BC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809E1C4: .4byte gUnk_02033280 - - thumb_func_start sub_0809E1C8 -sub_0809E1C8: @ 0x0809E1C8 - push {lr} - adds r3, r0, #0 - adds r1, #0x20 - ldrb r2, [r3, #0x15] - subs r1, r1, r2 - movs r0, #0x1f - ands r1, r0 - cmp r1, #0 - beq _0809E1E6 - cmp r1, #0xf - bhi _0809E1E2 - adds r0, r2, #1 - b _0809E1E4 -_0809E1E2: - subs r0, r2, #1 -_0809E1E4: - strb r0, [r3, #0x15] -_0809E1E6: - ldrb r1, [r3, #0x15] - movs r0, #0x1f - ands r0, r1 - strb r0, [r3, #0x15] - pop {pc} - - thumb_func_start sub_0809E1F0 -sub_0809E1F0: @ 0x0809E1F0 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x24] - adds r0, #0x40 - strh r0, [r1, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x80 - lsls r2, r2, #3 - cmp r0, r2 - ble _0809E208 - strh r2, [r1, #0x24] -_0809E208: - adds r0, r1, #0 - bl sub_0806F69C - pop {pc} - - thumb_func_start sub_0809E210 -sub_0809E210: @ 0x0809E210 - push {r4, lr} - adds r1, r0, #0 - ldr r4, _0809E230 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5B0 - movs r1, #0xfe - ands r0, r1 - strb r0, [r4, #0x14] - ldr r1, _0809E234 @ =gUnk_03003F80 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #8] - pop {r4, pc} - .align 2, 0 -_0809E230: .4byte gLinkEntity -_0809E234: .4byte gUnk_03003F80 - - thumb_func_start sub_0809E238 -sub_0809E238: @ 0x0809E238 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldr r6, _0809E298 @ =gUnk_080C9160 - movs r0, #0x6e - adds r0, r0, r7 - mov r8, r0 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r6 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r5, r7, #0 - adds r5, #0x6c - movs r2, #0 - ldrsh r1, [r5, r2] - bl sub_0806F9EC - adds r4, r0, #0 - lsls r4, r4, #0x10 - asrs r4, r4, #0x10 - mov r1, r8 - ldrb r0, [r1] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - movs r2, #0 - ldrsh r1, [r5, r2] - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - adds r1, #0x68 - ldrh r1, [r1] - adds r1, r1, r4 - strh r1, [r7, #0x2e] - adds r1, r7, #0 - adds r1, #0x6a - ldrh r1, [r1] - subs r1, r1, r0 - strh r1, [r7, #0x32] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809E298: .4byte gUnk_080C9160 - - thumb_func_start sub_0809E29C -sub_0809E29C: @ 0x0809E29C - push {lr} - adds r2, r0, #0 - adds r0, #0x6e - ldrb r0, [r0] - adds r0, #0x40 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809E2B8 - ldrb r1, [r2, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0809E2BE -_0809E2B8: - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0809E2BE: - strb r0, [r2, #0x18] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809E2C4 -sub_0809E2C4: @ 0x0809E2C4 - push {r4, r5, r6, r7, lr} - lsls r1, r1, #2 - ldr r0, _0809E328 @ =gUnk_08124178 - adds r1, r1, r0 - ldr r3, _0809E32C @ =gLinkEntity - movs r0, #0x2e - ldrsh r5, [r3, r0] - ldr r4, _0809E330 @ =gUnk_03000BF0 - ldrh r0, [r4, #6] - ldrh r2, [r1] - adds r0, r0, r2 - subs r6, r5, r0 - movs r0, #0x32 - ldrsh r2, [r3, r0] - ldrh r0, [r4, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - subs r5, r2, r0 - ldr r4, _0809E334 @ =gUnk_08124158 - movs r2, #0 - adds r7, r3, #0 -_0809E2EE: - movs r1, #0 - ldrsh r0, [r4, r1] - subs r0, r6, r0 - ldrb r1, [r4, #4] - adds r0, r0, r1 - lsls r1, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - ble _0809E33C - movs r1, #2 - ldrsh r0, [r4, r1] - subs r0, r5, r0 - ldrb r1, [r4, #5] - adds r0, r0, r1 - lsls r1, r1, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, r0 - ble _0809E33C - ldrb r0, [r4, #6] - ldrb r7, [r7, #0x14] - cmp r0, r7 - bne _0809E338 - ldrb r0, [r3, #0xc] - cmp r0, #6 - bne _0809E338 - movs r0, #1 - b _0809E346 - .align 2, 0 -_0809E328: .4byte gUnk_08124178 -_0809E32C: .4byte gLinkEntity -_0809E330: .4byte gUnk_03000BF0 -_0809E334: .4byte gUnk_08124158 -_0809E338: - movs r0, #2 - b _0809E346 -_0809E33C: - adds r2, #1 - adds r4, #8 - cmp r2, #3 - ble _0809E2EE - movs r0, #0 -_0809E346: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809E348 -sub_0809E348: @ 0x0809E348 - push {lr} - ldr r2, _0809E35C @ =gUnk_0812418C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809E35C: .4byte gUnk_0812418C - - thumb_func_start sub_0809E360 -sub_0809E360: @ 0x0809E360 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #8 - bls _0809E372 - movs r0, #8 - strb r0, [r4, #0xe] -_0809E372: - ldrb r2, [r4, #0xe] - movs r0, #0x48 - subs r0, r0, r2 - ldr r1, _0809E3E0 @ =gUnk_03003DBC - ldrb r1, [r1] - cmp r0, r1 - ble _0809E3D8 - movs r5, #0 - adds r7, r4, #0 - adds r7, #0x7e - movs r0, #0x76 - adds r0, r0, r4 - mov r8, r0 - cmp r5, r2 - bhs _0809E3A6 - movs r6, #0xe -_0809E392: - movs r0, #0x17 - bl sub_080A7EE0 - strb r6, [r0, #0xe] - str r4, [r0, #0x50] - adds r6, #0xc - adds r5, #1 - ldrb r2, [r4, #0xe] - cmp r5, r2 - blo _0809E392 -_0809E3A6: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r7] - lsls r1, r0, #8 - mov r2, r8 - strh r1, [r2] - lsls r0, r0, #6 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #0 - bl sub_0805E3A0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0809E3D8 - bl sub_0804B128 - str r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x54 - adds r2, r4, #0 - adds r2, #0x74 - adds r0, r4, #0 - bl sub_080A2CC0 -_0809E3D8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809E3E0: .4byte gUnk_03003DBC - - thumb_func_start sub_0809E3E4 -sub_0809E3E4: @ 0x0809E3E4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x76 - ldrb r0, [r4, #0xb] - ldrh r1, [r2] - adds r1, r1, r0 - strh r1, [r2] - lsrs r1, r1, #2 - strb r1, [r4, #0x14] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0809E428 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0809E40E - adds r0, r4, #0 - bl sub_0806F69C -_0809E40E: - adds r2, r4, #0 - adds r2, #0x74 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809E428 - adds r1, r4, #0 - adds r1, #0x54 - adds r0, r4, #0 - bl sub_080A2CC0 -_0809E428: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E42C -sub_0809E42C: @ 0x0809E42C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - ldr r6, [r4, #0x50] - ldr r0, [r6, #4] - cmp r0, #0 - bne _0809E444 - bl sub_0805E780 -_0809E444: - ldrb r0, [r4, #0xc] - movs r1, #0x76 - adds r1, r1, r4 - mov r8, r1 - adds r7, r4, #0 - adds r7, #0x62 - movs r2, #0x74 - adds r2, r2, r4 - mov sb, r2 - adds r5, r4, #0 - adds r5, #0x63 - movs r1, #0x75 - adds r1, r1, r4 - mov sl, r1 - cmp r0, #0 - bne _0809E482 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r6, #0x14] - mov r2, r8 - strb r0, [r2] - ldrb r0, [r7] - mov r1, sb - strb r0, [r1] - ldrb r0, [r5] - mov r2, sl - strb r0, [r2] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_0809E482: - ldrb r0, [r6, #0x14] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - beq _0809E490 - bl sub_0805E780 -_0809E490: - ldrb r1, [r6, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA6C - mov r2, sb - ldrb r0, [r2] - ldrb r1, [r7] - adds r0, r0, r1 - strb r0, [r7] - mov r2, sl - ldrb r0, [r2] - ldrb r1, [r5] - adds r0, r0, r1 - strb r0, [r5] - ldrb r0, [r4, #0x14] - cmp r0, #2 - beq _0809E4D0 - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - ldrb r0, [r5] - subs r0, #1 - b _0809E4DA -_0809E4D0: - ldrh r0, [r4, #0x32] - subs r0, #1 - strh r0, [r4, #0x32] - ldrb r0, [r5] - adds r0, #1 -_0809E4DA: - strb r0, [r5] - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809E4F4 - bl sub_0805E780 -_0809E4F4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809E500 -sub_0809E500: @ 0x0809E500 - push {lr} - ldr r2, _0809E514 @ =gUnk_081242C8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809E514: .4byte gUnk_081242C8 - - thumb_func_start sub_0809E518 -sub_0809E518: @ 0x0809E518 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #1 - strb r1, [r6, #0xc] - ldrb r2, [r6, #0xa] - adds r0, r2, #0 - cmp r0, #0xff - bne _0809E52E - ldrb r0, [r6, #0xb] - strb r0, [r6, #0x1e] - b _0809E5CA -_0809E52E: - ands r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r5, r0, #0x1f - movs r0, #4 - ands r5, r0 - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _0809E5A4 - ldr r0, _0809E5A0 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x44 - bhi _0809E5B4 - strb r5, [r6, #0x1e] - adds r5, #1 - movs r0, #0x9a - movs r1, #0xff - adds r2, r5, #0 - bl CreateObject - adds r4, r0, #0 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r5, #1 - movs r0, #0x9a - movs r1, #0xff - adds r2, r5, #0 - bl CreateObject - adds r4, r0, #0 - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - adds r5, #1 - movs r0, #0x9a - movs r1, #0xff - adds r2, r5, #0 - bl CreateObject - adds r4, r0, #0 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - b _0809E5C4 - .align 2, 0 -_0809E5A0: .4byte gUnk_03003DBC -_0809E5A4: - adds r2, r5, #1 - movs r0, #0x9a - movs r1, #0xff - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - bne _0809E5BA -_0809E5B4: - bl sub_0805E780 - b _0809E5C4 -_0809E5BA: - strb r5, [r6, #0x1e] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_0809E5C4: - adds r0, r6, #0 - bl sub_0809E5F0 -_0809E5CA: - ldrb r1, [r6, #0x1e] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809E5E8 - ldrb r0, [r6, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r6, #0x19] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] -_0809E5E8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start nullsub_125 -nullsub_125: @ 0x0809E5EC - bx lr - .align 2, 0 - - thumb_func_start sub_0809E5F0 -sub_0809E5F0: @ 0x0809E5F0 - push {r4, r5, lr} - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r4, _0809E628 @ =gUnk_03000BF0 - ldrh r2, [r4, #6] - subs r1, r1, r2 - asrs r5, r1, #4 - movs r3, #0x3f - ands r5, r3 - movs r2, #0x32 - ldrsh r1, [r0, r2] - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r5, r1 - adds r1, r0, #0 - adds r1, #0x80 - strh r5, [r1] - ldrb r0, [r0, #0xa] - cmp r0, #1 - beq _0809E708 - cmp r0, #1 - bgt _0809E62C - cmp r0, #0 - beq _0809E64E - b _0809E792 - .align 2, 0 -_0809E628: .4byte gUnk_03000BF0 -_0809E62C: - cmp r0, #2 - beq _0809E636 - cmp r0, #3 - beq _0809E6F0 - b _0809E792 -_0809E636: - ldr r0, _0809E6DC @ =0x00004022 - adds r1, r5, #0 - subs r1, #0x3d - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E6E0 @ =0x0000406D - adds r1, r5, #0 - subs r1, #0x3c - movs r2, #1 - bl sub_0800015E -_0809E64E: - ldr r0, _0809E6E4 @ =0x0000406C - adds r1, r5, #0 - subs r1, #0x42 - movs r2, #1 - bl sub_0800015E - ldr r4, _0809E6DC @ =0x00004022 - adds r1, r5, #0 - subs r1, #0x41 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x3f - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - subs r1, r5, #2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - subs r1, r5, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E6E8 @ =0x0000406E - adds r1, r5, #0 - adds r1, #0x3e - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x3f - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E6EC @ =0x0000406F - adds r1, r5, #0 - adds r1, #0x41 - movs r2, #1 - bl sub_0800015E - b _0809E792 - .align 2, 0 -_0809E6DC: .4byte 0x00004022 -_0809E6E0: .4byte 0x0000406D -_0809E6E4: .4byte 0x0000406C -_0809E6E8: .4byte 0x0000406E -_0809E6EC: .4byte 0x0000406F -_0809E6F0: - ldr r0, _0809E794 @ =0x00004022 - adds r1, r5, #0 - subs r1, #0x44 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E798 @ =0x0000406C - adds r1, r5, #0 - subs r1, #0x45 - movs r2, #1 - bl sub_0800015E -_0809E708: - ldr r4, _0809E794 @ =0x00004022 - adds r1, r5, #0 - subs r1, #0x42 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x41 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - subs r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E79C @ =0x0000406D - adds r1, r5, #0 - subs r1, #0x3f - movs r2, #1 - bl sub_0800015E - subs r1, r5, #2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - subs r1, r5, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E7A0 @ =0x0000406E - adds r1, r5, #0 - adds r1, #0x3e - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x3f - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r1, r5, #0 - adds r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0809E7A4 @ =0x0000406F - adds r1, r5, #0 - adds r1, #0x41 - movs r2, #1 - bl sub_0800015E -_0809E792: - pop {r4, r5, pc} - .align 2, 0 -_0809E794: .4byte 0x00004022 -_0809E798: .4byte 0x0000406C -_0809E79C: .4byte 0x0000406D -_0809E7A0: .4byte 0x0000406E -_0809E7A4: .4byte 0x0000406F - - thumb_func_start sub_0809E7A8 -sub_0809E7A8: @ 0x0809E7A8 - push {lr} - ldr r2, _0809E7BC @ =gUnk_081242D0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809E7BC: .4byte gUnk_081242D0 - - thumb_func_start sub_0809E7C0 -sub_0809E7C0: @ 0x0809E7C0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - cmp r0, #0xff - beq _0809E7D4 - adds r0, r4, #0 - bl sub_0809E7FC -_0809E7D4: - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E7E0 -sub_0809E7E0: @ 0x0809E7E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809E7F8 - bl sub_0805E780 -_0809E7F8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E7FC -sub_0809E7FC: @ 0x0809E7FC - push {lr} - adds r1, r0, #0 - ldrb r3, [r1, #0xb] - lsls r3, r3, #1 - ldr r0, _0809E820 @ =gUnk_081242D8 - adds r3, r3, r0 - ldr r0, [r1, #0x50] - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - bl PositionRelative - pop {pc} - .align 2, 0 -_0809E820: .4byte gUnk_081242D8 - - thumb_func_start sub_0809E824 -sub_0809E824: @ 0x0809E824 - push {lr} - ldr r2, _0809E838 @ =gUnk_08124354 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809E838: .4byte gUnk_08124354 - - thumb_func_start sub_0809E83C -sub_0809E83C: @ 0x0809E83C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809E856 - adds r0, r4, #0 - bl sub_0809E96C - bl sub_0805E780 -_0809E856: - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E86C -sub_0809E86C: @ 0x0809E86C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0809E8B4 @ =gLinkEntity - movs r2, #0x30 - movs r3, #0x30 - bl sub_0800419C - cmp r0, #0 - beq _0809E89A - movs r0, #0x14 - bl GetProgressFlag - cmp r0, #0 - beq _0809E89A - ldr r0, _0809E8B8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0809E89A - adds r0, r4, #0 - bl sub_080A2B80 -_0809E89A: - bl sub_0809E9A0 - cmp r0, #0x54 - bne _0809E8B0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] - movs r0, #1 - bl sub_08078A90 -_0809E8B0: - pop {r4, pc} - .align 2, 0 -_0809E8B4: .4byte gLinkEntity -_0809E8B8: .4byte gUnk_030010A0 - - thumb_func_start sub_0809E8BC -sub_0809E8BC: @ 0x0809E8BC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809E8E8 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x40 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0809E96C - adds r0, r4, #0 - bl sub_0809E918 -_0809E8E8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809E8EC -sub_0809E8EC: @ 0x0809E8EC - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809E916 - adds r0, r1, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - movs r0, #0 - bl sub_08078A90 - movs r0, #0x73 - bl sub_080A3268 - bl sub_0805E780 -_0809E916: - pop {pc} - - thumb_func_start sub_0809E918 -sub_0809E918: @ 0x0809E918 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0809E964 @ =gUnk_08124364 - movs r1, #0 - ldrsh r0, [r4, r1] - ldr r1, _0809E968 @ =0xFFFFFC18 - cmp r0, r1 - beq _0809E962 - adds r6, r1, #0 -_0809E92A: - adds r0, r5, #0 - movs r1, #3 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0809E958 - ldrh r0, [r4] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - ldrh r0, [r4, #2] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08016A04 -_0809E958: - adds r4, #4 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, r6 - bne _0809E92A -_0809E962: - pop {r4, r5, r6, pc} - .align 2, 0 -_0809E964: .4byte gUnk_08124364 -_0809E968: .4byte 0xFFFFFC18 - - thumb_func_start sub_0809E96C -sub_0809E96C: @ 0x0809E96C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0809E99C @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - adds r1, #0x20 - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - adds r2, #8 - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - bl sub_08018C1C - pop {r4, r5, pc} - .align 2, 0 -_0809E99C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809E9A0 -sub_0809E9A0: @ 0x0809E9A0 - push {r4, r5, r6, lr} - ldr r5, _0809E9B0 @ =gLinkEntity - ldrb r2, [r5, #0xc] - cmp r2, #6 - beq _0809E9B4 - movs r0, #0 - b _0809E9F0 - .align 2, 0 -_0809E9B0: .4byte gLinkEntity -_0809E9B4: - ldrb r0, [r5, #0x14] - ands r2, r0 - lsls r2, r2, #1 - ldr r0, _0809E9F4 @ =gUnk_080B4468 - adds r2, r2, r0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r3, #0 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - ldr r4, _0809E9F8 @ =gUnk_03000BF0 - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r5, r6] - movs r5, #2 - ldrsh r2, [r2, r5] - adds r1, r1, r2 - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #1 - bl sub_080002C8 -_0809E9F0: - pop {r4, r5, r6, pc} - .align 2, 0 -_0809E9F4: .4byte gUnk_080B4468 -_0809E9F8: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809E9FC -sub_0809E9FC: @ 0x0809E9FC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0809EA18 @ =gUnk_081243B4 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0809EB30 - pop {r4, pc} - .align 2, 0 -_0809EA18: .4byte gUnk_081243B4 - - thumb_func_start sub_0809EA1C -sub_0809EA1C: @ 0x0809EA1C - push {lr} - ldr r2, _0809EA30 @ =gUnk_081243BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809EA30: .4byte gUnk_081243BC - - thumb_func_start sub_0809EA34 -sub_0809EA34: @ 0x0809EA34 - push {r4, lr} - adds r4, r0, #0 - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - strb r2, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0x28 - strb r0, [r1] - subs r1, #4 - movs r0, #0xa - strb r0, [r1] - ldr r0, _0809EA7C @ =gUnk_080FD150 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0809EAD8 - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - bl sub_0809EABC - pop {r4, pc} - .align 2, 0 -_0809EA7C: .4byte gUnk_080FD150 - - thumb_func_start sub_0809EA80 -sub_0809EA80: @ 0x0809EA80 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809EAB4 - adds r4, r5, #0 - adds r4, #0x86 - ldrh r0, [r4] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809EAA6 - ldrh r0, [r4] - bl sub_0807CD48 - b _0809EAAC -_0809EAA6: - ldrh r0, [r4] - bl sub_0807CCC8 -_0809EAAC: - movs r0, #0x88 - lsls r0, r0, #1 - bl sub_08004488 -_0809EAB4: - adds r0, r5, #0 - bl sub_0809EABC - pop {r4, r5, pc} - - thumb_func_start sub_0809EABC -sub_0809EABC: @ 0x0809EABC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldrb r0, [r4, #0x1e] - cmp r0, r1 - beq _0809EAD6 - strb r1, [r4, #0x1e] -_0809EAD6: - pop {r4, pc} - - thumb_func_start sub_0809EAD8 -sub_0809EAD8: @ 0x0809EAD8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0809EAF8 - bl sub_0804B128 - str r0, [r5, #0x54] - adds r1, r5, #0 - adds r1, #0x54 - adds r2, r5, #0 - adds r2, #0x74 - adds r0, r5, #0 - bl sub_080A2CC0 - b _0809EB24 -_0809EAF8: - ldr r0, _0809EB28 @ =0x00004050 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0809EB2C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0809EB24: - pop {r4, r5, r6, pc} - .align 2, 0 -_0809EB28: .4byte 0x00004050 -_0809EB2C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809EB30 -sub_0809EB30: @ 0x0809EB30 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0809EB64 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0809EB4A - adds r0, r4, #0 - bl sub_0806F69C -_0809EB4A: - adds r2, r4, #0 - adds r2, #0x74 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809EB64 - adds r1, r4, #0 - adds r1, #0x54 - adds r0, r4, #0 - bl sub_080A2CC0 -_0809EB64: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809EB68 -sub_0809EB68: @ 0x0809EB68 - push {lr} - ldr r2, _0809EB7C @ =gUnk_081243C4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809EB7C: .4byte gUnk_081243C4 - - thumb_func_start sub_0809EB80 -sub_0809EB80: @ 0x0809EB80 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r5, #3 - strb r5, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0x28 - strb r0, [r1] - subs r1, #4 - movs r0, #0xa - strb r0, [r1] - ldr r0, _0809EBD4 @ =gUnk_080FD150 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0809EAD8 - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809EBD2 - strb r5, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x1e] -_0809EBD2: - pop {r4, r5, pc} - .align 2, 0 -_0809EBD4: .4byte gUnk_080FD150 - - thumb_func_start sub_0809EBD8 -sub_0809EBD8: @ 0x0809EBD8 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809EC04 - movs r1, #2 - strb r1, [r2, #0xc] - movs r0, #0x10 - strb r0, [r2, #0xe] - strb r1, [r2, #0x1e] - adds r0, r2, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - movs r0, #0x88 - lsls r0, r0, #1 - bl sub_08004488 -_0809EC04: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809EC08 -sub_0809EC08: @ 0x0809EC08 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809EC1E - movs r0, #3 - strb r0, [r4, #0xc] - b _0809EC44 -_0809EC1E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809EC44 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #3 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CD48 - movs r0, #0x88 - lsls r0, r0, #1 - bl sub_08004488 -_0809EC44: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_126 -nullsub_126: @ 0x0809EC48 - bx lr - .align 2, 0 - - thumb_func_start sub_0809EC4C -sub_0809EC4C: @ 0x0809EC4C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r3, [r6, #0xc] - cmp r3, #0 - bne _0809ED14 - movs r4, #1 - strb r4, [r6, #0xc] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r6, #0xa] - cmp r0, #0 - bne _0809ED04 - ldrb r0, [r6, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r6, #0x10] - strb r4, [r6, #0x1e] - adds r5, r6, #0 - adds r5, #0x38 - strb r4, [r5] - adds r1, r6, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0x7a - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x3b - strb r4, [r0] - ldr r0, _0809ECF4 @ =gUnk_080FD168 - str r0, [r6, #0x48] - movs r0, #0x2e - ldrsh r4, [r6, r0] - ldr r1, _0809ECF8 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r6, r3] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldr r0, _0809ECFC @ =0x00004066 - subs r1, r4, #1 - ldrb r2, [r5] - bl sub_0800015E - ldr r0, _0809ED00 @ =0x00004065 - ldrb r2, [r5] - adds r1, r4, #0 - bl sub_0800015E - adds r0, r6, #0 - bl sub_08016A04 - movs r0, #0x9e - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809ED14 - str r1, [r6, #0x54] - adds r0, r6, #0 - bl sub_0806FA24 - b _0809ED14 - .align 2, 0 -_0809ECF4: .4byte gUnk_080FD168 -_0809ECF8: .4byte gUnk_03000BF0 -_0809ECFC: .4byte 0x00004066 -_0809ED00: .4byte 0x00004065 -_0809ED04: - strb r3, [r6, #0x1e] - adds r1, r6, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r6, #0 - bl sub_08016A04 -_0809ED14: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809ED18 -sub_0809ED18: @ 0x0809ED18 - push {lr} - ldr r2, _0809ED2C @ =gUnk_081243D4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809ED2C: .4byte gUnk_081243D4 - - thumb_func_start sub_0809ED30 -sub_0809ED30: @ 0x0809ED30 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - movs r1, #2 - eors r0, r1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0809EE34 - adds r0, r4, #0 - bl sub_0809EFB0 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_0809ED54 -sub_0809ED54: @ 0x0809ED54 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #0 - beq _0809ED6A - bl sub_0807CBE4 - cmp r0, #0 - beq _0809ED86 -_0809ED6A: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0809ED80 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809ED86 -_0809ED80: - adds r0, r4, #0 - bl sub_0809EE08 -_0809ED86: - pop {r4, pc} - - thumb_func_start sub_0809ED88 -sub_0809ED88: @ 0x0809ED88 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809F08C - adds r0, r4, #0 - bl sub_0809EE44 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r2, [r0] - cmp r2, #0 - beq _0809EDC6 - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, r2 - bne _0809EDB4 - bl sub_0807CBE4 - cmp r0, #0 - bne _0809EDE2 - b _0809EDBE -_0809EDB4: - ldrh r0, [r1] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809EDE2 -_0809EDBE: - adds r0, r4, #0 - bl sub_0809EE24 - b _0809EDE2 -_0809EDC6: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0809EDE2 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0809EDE2 - adds r0, r4, #0 - bl sub_0809EE24 -_0809EDE2: - pop {r4, pc} - - thumb_func_start sub_0809EDE4 -sub_0809EDE4: @ 0x0809EDE4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809F08C - adds r0, r4, #0 - bl sub_0809EE44 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809EE06 - adds r0, r4, #0 - bl sub_0809EE34 -_0809EE06: - pop {r4, pc} - - thumb_func_start sub_0809EE08 -sub_0809EE08: @ 0x0809EE08 - push {lr} - movs r1, #2 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x7f - ldrb r1, [r1] - lsls r1, r1, #2 - adds r2, r0, #0 - adds r2, #0x74 - strh r1, [r2] - ldrb r1, [r0, #0xa] - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0809EE24 -sub_0809EE24: @ 0x0809EE24 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xa] - adds r1, #4 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0809EE34 -sub_0809EE34: @ 0x0809EE34 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xe] - lsls r1, r1, #2 - adds r0, #0x74 - strh r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0809EE44 -sub_0809EE44: @ 0x0809EE44 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r1, #7 - ands r1, r0 - adds r0, r5, #0 - adds r0, #0x7e - ldrb r0, [r0] - lsls r0, r1 - strh r0, [r5, #0x24] - cmp r1, #0 - bne _0809EE60 - b _0809EF74 -_0809EE60: - ldr r4, _0809EEA4 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0809EF78 - cmp r0, #0 - beq _0809EE80 - bl sub_08079F8C - cmp r0, #0 - beq _0809EE80 - movs r1, #0x24 - ldrsh r0, [r5, r1] - ldrb r1, [r5, #0x15] - bl sub_08079E58 -_0809EE80: - ldr r6, _0809EEA8 @ =gUnk_03003D80 - ldr r4, [r6, #4] - cmp r6, r4 - beq _0809EF74 -_0809EE88: - ldrb r0, [r4, #8] - cmp r0, #8 - bne _0809EF6E - movs r3, #0 - ldrb r0, [r4, #9] - subs r0, #2 - cmp r0, #0x17 - bhi _0809EF52 - lsls r0, r0, #2 - ldr r1, _0809EEAC @ =_0809EEB0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809EEA4: .4byte gLinkEntity -_0809EEA8: .4byte gUnk_03003D80 -_0809EEAC: .4byte _0809EEB0 -_0809EEB0: @ jump table - .4byte _0809EF1E @ case 0 - .4byte _0809EF26 @ case 1 - .4byte _0809EF48 @ case 2 - .4byte _0809EF52 @ case 3 - .4byte _0809EF52 @ case 4 - .4byte _0809EF52 @ case 5 - .4byte _0809EF52 @ case 6 - .4byte _0809EF52 @ case 7 - .4byte _0809EF52 @ case 8 - .4byte _0809EF52 @ case 9 - .4byte _0809EF52 @ case 10 - .4byte _0809EF52 @ case 11 - .4byte _0809EF52 @ case 12 - .4byte _0809EF52 @ case 13 - .4byte _0809EF52 @ case 14 - .4byte _0809EF50 @ case 15 - .4byte _0809EF52 @ case 16 - .4byte _0809EF10 @ case 17 - .4byte _0809EF52 @ case 18 - .4byte _0809EF52 @ case 19 - .4byte _0809EF52 @ case 20 - .4byte _0809EF52 @ case 21 - .4byte _0809EF52 @ case 22 - .4byte _0809EF50 @ case 23 -_0809EF10: - ldrb r0, [r4, #0xc] - cmp r0, #2 - bne _0809EF56 - ldrb r0, [r4, #0xd] - cmp r0, #1 - bls _0809EF52 - b _0809EF56 -_0809EF1E: - ldrb r0, [r4, #0xc] - cmp r0, #2 - beq _0809EF52 - b _0809EF56 -_0809EF26: - ldr r2, _0809EF44 @ =gLinkEntity - movs r7, #0x2e - ldrsh r1, [r4, r7] - movs r7, #0x2e - ldrsh r0, [r2, r7] - cmp r1, r0 - bne _0809EF56 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r7, #0x32 - ldrsh r0, [r2, r7] - cmp r1, r0 - beq _0809EF52 - b _0809EF56 - .align 2, 0 -_0809EF44: .4byte gLinkEntity -_0809EF48: - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0809EF52 - b _0809EF56 -_0809EF50: - movs r3, #1 -_0809EF52: - cmp r3, #0 - beq _0809EF6E -_0809EF56: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0809EF78 - cmp r0, #0 - beq _0809EF6E - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r4, #0 - bl sub_080044AE -_0809EF6E: - ldr r4, [r4, #4] - cmp r6, r4 - bne _0809EE88 -_0809EF74: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809EF78 -sub_0809EF78: @ 0x0809EF78 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - movs r5, #0 - adds r0, #0x70 - ldrh r2, [r0] - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r1, r3, #0 - adds r1, #0x6c - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _0809EFAC - adds r0, r3, #0 - adds r0, #0x72 - ldrh r2, [r0] - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r1, r3, #0 - adds r1, #0x6e - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _0809EFAC - movs r5, #1 -_0809EFAC: - adds r0, r5, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0809EFB0 -sub_0809EFB0: @ 0x0809EFB0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - ldr r0, _0809F010 @ =gUnk_081243E4 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r2, r1, r0 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - mov sb, r2 - adds r1, #1 - adds r1, r1, r0 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - movs r0, #0x2e - ldrsh r6, [r4, r0] - movs r0, #0x32 - ldrsh r5, [r4, r0] - ldr r0, _0809F014 @ =gUnk_02027EB4 - mov sl, r0 - movs r7, #0 -_0809EFE6: - adds r7, #1 - add r6, sb - add r5, r8 - mov r0, sl - adds r1, r6, #0 - adds r2, r5, #0 - movs r3, #9 - bl sub_080AE4CC - cmp r0, #0 - beq _0809EFE6 - subs r0, r7, #1 - lsls r7, r0, #4 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0809F034 - cmp r0, #1 - bgt _0809F018 - cmp r0, #0 - beq _0809F022 - b _0809F082 - .align 2, 0 -_0809F010: .4byte gUnk_081243E4 -_0809F014: .4byte gUnk_02027EB4 -_0809F018: - cmp r0, #2 - beq _0809F03E - cmp r0, #3 - beq _0809F064 - b _0809F082 -_0809F022: - ldrh r0, [r4, #0x2e] - subs r0, #0x10 - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r0, #8 - adds r1, #2 - b _0809F054 -_0809F034: - adds r1, r7, #0 - adds r1, #8 - ldrh r0, [r4, #0x2e] - subs r0, r0, r1 - b _0809F068 -_0809F03E: - ldrh r0, [r4, #0x2e] - subs r0, #0x10 - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - adds r1, r7, #0 - adds r1, #8 - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x6e -_0809F054: - strh r0, [r1] - adds r1, #2 - movs r0, #0x20 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x72 - strh r7, [r0] - b _0809F082 -_0809F064: - ldrh r0, [r4, #0x2e] - adds r0, #8 -_0809F068: - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - ldrh r0, [r4, #0x32] - subs r0, #0x10 - adds r1, #2 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x70 - strh r7, [r0] - adds r1, #4 - movs r0, #0x20 - strh r0, [r1] -_0809F082: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809F08C -sub_0809F08C: @ 0x0809F08C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0809F09A - subs r0, #1 - strb r0, [r4, #0xf] -_0809F09A: - adds r0, r4, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0809F0C0 - movs r0, #0xdf - ands r0, r1 - strb r0, [r2] - movs r0, #0x14 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0809F0E4 - b _0809F0E0 -_0809F0C0: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0809F0E0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0809F0E0 - movs r0, #0x14 - strb r0, [r4, #0xf] - ldrb r0, [r2] - movs r1, #0x10 - eors r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0809F0E4 -_0809F0E0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809F0E4 -sub_0809F0E4: @ 0x0809F0E4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0809F124 @ =0x00000183 - bl sub_08004488 - ldrb r0, [r5, #0xa] - movs r1, #2 - eors r1, r0 - movs r0, #0xb2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809F120 - str r5, [r4, #0x50] - ldrb r0, [r5, #0xa] - lsls r0, r0, #1 - ldr r1, _0809F128 @ =gUnk_081243EC - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_0809F120: - pop {r4, r5, pc} - .align 2, 0 -_0809F124: .4byte 0x00000183 -_0809F128: .4byte gUnk_081243EC - - thumb_func_start sub_0809F12C -sub_0809F12C: @ 0x0809F12C - push {lr} - ldr r2, _0809F140 @ =gUnk_08124670 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809F140: .4byte gUnk_08124670 - - thumb_func_start sub_0809F144 -sub_0809F144: @ 0x0809F144 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0809F188 @ =gUnk_080FD178 - str r0, [r4, #0x48] - ldr r0, _0809F18C @ =0x00004022 - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _0809F190 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r5, #0x3f - ands r1, r5 - movs r6, #0x32 - ldrsh r2, [r4, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r5 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809F188: .4byte gUnk_080FD178 -_0809F18C: .4byte 0x00004022 -_0809F190: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809F194 -sub_0809F194: @ 0x0809F194 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - ldrb r0, [r0, #0xf] - cmp r0, #1 - bne _0809F1AE - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xa] - adds r1, #4 - adds r0, r2, #0 - bl sub_08004260 -_0809F1AE: - pop {pc} - - thumb_func_start sub_0809F1B0 -sub_0809F1B0: @ 0x0809F1B0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0809F20C - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - movs r0, #0x1b - bl sub_080A7EE0 - adds r5, r0, #0 - cmp r5, #0 - beq _0809F21E - ldrb r0, [r4, #0xa] - strb r0, [r5, #0xa] - ldr r0, [r4, #0x50] - str r0, [r5, #0x50] - ldrb r0, [r4, #0xa] - lsls r0, r0, #1 - ldr r1, _0809F208 @ =gUnk_08124684 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative - movs r0, #0xec - bl sub_08004488 - b _0809F21E - .align 2, 0 -_0809F208: .4byte gUnk_08124684 -_0809F20C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F21E - strb r3, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 -_0809F21E: - pop {r4, r5, pc} - - thumb_func_start sub_0809F220 -sub_0809F220: @ 0x0809F220 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F242 - movs r0, #4 - strb r0, [r2, #0xc] - movs r0, #0xf - strb r0, [r2, #0xe] - ldrb r1, [r2, #0xa] - adds r0, r2, #0 - bl sub_08004260 - b _0809F252 -_0809F242: - ldr r0, [r2, #0x50] - adds r0, #0x36 - movs r1, #1 - ldrb r2, [r2, #0xb] - lsls r1, r2 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] -_0809F252: - pop {pc} - - thumb_func_start sub_0809F254 -sub_0809F254: @ 0x0809F254 - push {r4, r5, lr} - adds r3, r0, #0 - ldrb r1, [r3, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r5, #1 - eors r0, r5 - movs r4, #4 - rsbs r4, r4, #0 - adds r2, r4, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r3, #0x18] - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F284 - movs r0, #1 - strb r5, [r3, #0xc] - ands r2, r4 - orrs r2, r0 - strb r2, [r3, #0x18] -_0809F284: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809F288 -sub_0809F288: @ 0x0809F288 - push {lr} - ldr r2, _0809F29C @ =gUnk_081246EC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809F29C: .4byte gUnk_081246EC - - thumb_func_start sub_0809F2A0 -sub_0809F2A0: @ 0x0809F2A0 - push {r4, r5, r6, lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xb] - strb r1, [r0, #0x1e] - ldrb r1, [r0, #0x19] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x19] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - ldr r5, _0809F2EC @ =0x00004069 - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _0809F2F0 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r0, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0809F2EC: .4byte 0x00004069 -_0809F2F0: .4byte gUnk_03000BF0 - - thumb_func_start nullsub_537 -nullsub_537: @ 0x0809F2F4 - bx lr - .align 2, 0 - - thumb_func_start sub_0809F2F8 -sub_0809F2F8: @ 0x0809F2F8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0809F314 @ =gUnk_081246F4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_0809F314: .4byte gUnk_081246F4 - - thumb_func_start sub_0809F318 -sub_0809F318: @ 0x0809F318 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_08004260 - bl sub_08000E50 - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _0809F336 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_0809F336: - movs r0, #0x28 - strh r0, [r4, #0x2e] - movs r0, #0x48 - strh r0, [r4, #0x32] - ldr r0, _0809F36C @ =0x0000FFB0 - strh r0, [r4, #0x36] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x1b] - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _0809F370 @ =gUnk_08124704 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - movs r1, #7 - bl sub_0805E3A0 - pop {r4, pc} - .align 2, 0 -_0809F36C: .4byte 0x0000FFB0 -_0809F370: .4byte gUnk_08124704 - - thumb_func_start sub_0809F374 -sub_0809F374: @ 0x0809F374 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #1 - bhi _0809F3AE - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bhi _0809F3C0 - movs r0, #0 - str r0, [r4, #0x34] - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - movs r0, #0xc3 - lsls r0, r0, #1 - bl sub_080A3268 - b _0809F3E6 -_0809F3AE: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - beq _0809F3C8 - cmp r0, #1 - beq _0809F3D4 -_0809F3C0: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - b _0809F3E6 -_0809F3C8: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0809F3D4: - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0809F448 - movs r0, #0xc3 - lsls r0, r0, #1 - bl sub_080A3268 -_0809F3E6: - pop {r4, pc} - - thumb_func_start sub_0809F3E8 -sub_0809F3E8: @ 0x0809F3E8 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809F404 - movs r0, #3 - strb r0, [r2, #0xc] - adds r0, r2, #0 - movs r1, #2 - bl sub_08004260 -_0809F404: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809F408 -sub_0809F408: @ 0x0809F408 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #9 - beq _0809F41C - cmp r0, #0x80 - beq _0809F438 - b _0809F442 -_0809F41C: - movs r0, #0 - strb r0, [r1] - adds r0, r2, #0 - movs r1, #0x43 - movs r2, #0 - bl CreateFX - ldr r1, _0809F434 @ =gUnk_02000080 - movs r0, #1 - strb r0, [r1] - b _0809F442 - .align 2, 0 -_0809F434: .4byte gUnk_02000080 -_0809F438: - ldr r1, _0809F444 @ =gUnk_02000080 - movs r0, #1 - strb r0, [r1, #4] - bl sub_0805E780 -_0809F442: - pop {pc} - .align 2, 0 -_0809F444: .4byte gUnk_02000080 - - thumb_func_start sub_0809F448 -sub_0809F448: @ 0x0809F448 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - ldrb r0, [r6, #0xf] - lsls r2, r0, #1 - ldr r1, _0809F474 @ =gUnk_08124708 - adds r7, r2, r1 - adds r0, #1 - strb r0, [r6, #0xf] - ldr r1, [r6, #0x2c] - movs r0, #0xa0 - lsls r0, r0, #0xe - subs r4, r0, r1 - ldrb r0, [r7] - cmp r0, #0 - beq _0809F478 - cmp r0, #1 - beq _0809F492 - b _0809F49C - .align 2, 0 -_0809F474: .4byte gUnk_08124708 -_0809F478: - movs r1, #0xc0 - lsls r1, r1, #0xd - adds r0, r5, #0 - bl __modsi3 - adds r4, r0, #0 - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r0, r5 - cmp r0, #0 - beq _0809F49C - rsbs r4, r4, #0 - b _0809F49C -_0809F492: - ldr r0, _0809F4BC @ =0xFFF80000 - adds r1, r4, r0 - ldr r0, _0809F4C0 @ =0x000FFFFF - ands r0, r5 - adds r4, r1, r0 -_0809F49C: - adds r0, r4, #0 - cmp r4, #0 - bge _0809F4A4 - rsbs r0, r4, #0 -_0809F4A4: - ldrb r1, [r7, #1] - lsls r1, r1, #8 - bl __divsi3 - strh r0, [r6, #0x24] - adds r0, r4, #0 - movs r1, #0 - bl sub_080045DA - lsrs r0, r0, #3 - strb r0, [r6, #0x15] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809F4BC: .4byte 0xFFF80000 -_0809F4C0: .4byte 0x000FFFFF - - thumb_func_start sub_0809F4C4 -sub_0809F4C4: @ 0x0809F4C4 - push {lr} - ldr r2, _0809F4D8 @ =gUnk_08124798 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809F4D8: .4byte gUnk_08124798 - - thumb_func_start sub_0809F4DC -sub_0809F4DC: @ 0x0809F4DC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _0809F4FC - ldr r0, _0809F4F8 @ =gUnk_081247A0 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _0809F50C - .align 2, 0 -_0809F4F8: .4byte gUnk_081247A0 -_0809F4FC: - ldr r0, _0809F510 @ =gUnk_081247AC - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_0809F50C: - pop {pc} - .align 2, 0 -_0809F510: .4byte gUnk_081247AC - - thumb_func_start sub_0809F514 -sub_0809F514: @ 0x0809F514 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x78 - strb r1, [r0, #0xe] - ldrb r2, [r0, #0x18] - subs r1, #0x7c - ands r1, r2 - strb r1, [r0, #0x18] - adds r2, r0, #0 - adds r2, #0x68 - movs r1, #0xc - strb r1, [r2] - ldr r1, _0809F540 @ =gUnk_03000BF0 - str r0, [r1, #0x30] - ldr r2, _0809F544 @ =gUnk_02034490 - movs r1, #0xff - strb r1, [r2] - bl sub_0809F7BC - pop {pc} - .align 2, 0 -_0809F540: .4byte gUnk_03000BF0 -_0809F544: .4byte gUnk_02034490 - - thumb_func_start sub_0809F548 -sub_0809F548: @ 0x0809F548 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F590 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - adds r0, #0xc3 - bl sub_080A3268 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0809F58C @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - bl sub_0809F814 - b _0809F5A8 - .align 2, 0 -_0809F58C: .4byte gUnk_03000BF0 -_0809F590: - ldr r0, _0809F5AC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0809F5A2 - adds r0, r4, #0 - bl sub_0809F7BC -_0809F5A2: - adds r0, r4, #0 - bl sub_0809F7F4 -_0809F5A8: - pop {r4, r5, pc} - .align 2, 0 -_0809F5AC: .4byte gUnk_030010A0 - - thumb_func_start sub_0809F5B0 -sub_0809F5B0: @ 0x0809F5B0 - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _0809F5D4 - movs r0, #0x73 - bl sub_080A3268 - movs r0, #0x24 - bl sub_0807CD04 - ldr r0, _0809F5D8 @ =gUnk_080DD750 - bl LoadRoomEntityList - bl sub_0805E780 -_0809F5D4: - pop {pc} - .align 2, 0 -_0809F5D8: .4byte gUnk_080DD750 - - thumb_func_start sub_0809F5DC -sub_0809F5DC: @ 0x0809F5DC - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - strb r1, [r0, #0x18] - adds r0, #0x68 - movs r1, #0xc - strb r1, [r0] - bx lr - - thumb_func_start sub_0809F5F0 -sub_0809F5F0: @ 0x0809F5F0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - bl sub_0807CC3C - cmp r0, #0 - beq _0809F614 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #3 - bl sub_08078A90 - bl sub_08078B48 - ldr r0, _0809F618 @ =gUnk_03000BF0 - str r4, [r0, #0x30] -_0809F614: - pop {r4, pc} - .align 2, 0 -_0809F618: .4byte gUnk_03000BF0 - - thumb_func_start sub_0809F61C -sub_0809F61C: @ 0x0809F61C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0809F678 @ =gUnk_03000BF0 - ldrb r1, [r5, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0809F694 - ldrb r0, [r4, #0xe] - cmp r0, #0x1e - bne _0809F638 - ldrb r0, [r4, #0xb] - bl sub_0807CCB4 -_0809F638: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F67C - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, #0xa5 - bl sub_080A3268 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldrh r1, [r5, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - bl sub_0809F814 - b _0809F694 - .align 2, 0 -_0809F678: .4byte gUnk_03000BF0 -_0809F67C: - ldr r0, _0809F698 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0809F68E - adds r0, r4, #0 - bl sub_0809F7BC -_0809F68E: - adds r0, r4, #0 - bl sub_0809F7F4 -_0809F694: - pop {r4, r5, pc} - .align 2, 0 -_0809F698: .4byte gUnk_030010A0 - - thumb_func_start sub_0809F69C -sub_0809F69C: @ 0x0809F69C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F6C0 - movs r0, #0x1e - strb r0, [r1, #0xe] - movs r0, #4 - strb r0, [r1, #0xc] - ldr r1, _0809F6C4 @ =gUnk_03000BF0 - ldr r0, _0809F6C8 @ =gLinkEntity - str r0, [r1, #0x30] - movs r0, #0x73 - bl sub_080A3268 -_0809F6C0: - pop {pc} - .align 2, 0 -_0809F6C4: .4byte gUnk_03000BF0 -_0809F6C8: .4byte gLinkEntity - - thumb_func_start sub_0809F6CC -sub_0809F6CC: @ 0x0809F6CC - push {lr} - adds r2, r0, #0 - ldr r0, _0809F6F8 @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0809F6F4 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F6F4 - ldr r0, _0809F6FC @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bl sub_0805E780 -_0809F6F4: - pop {pc} - .align 2, 0 -_0809F6F8: .4byte gUnk_03000BF0 -_0809F6FC: .4byte gUnk_03003F80 - - thumb_func_start sub_0809F700 -sub_0809F700: @ 0x0809F700 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809F722 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1e - ands r0, r1 - adds r0, #8 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0xc - orrs r0, r1 - strb r0, [r4, #0x10] -_0809F722: - ldr r0, _0809F768 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0809F750 - bl sub_08000E50 - ldr r3, _0809F76C @ =gUnk_081247C0 - movs r2, #7 - adds r1, r0, #0 - ands r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - movs r5, #0x62 - strb r1, [r5, r4] - lsrs r0, r0, #4 - ands r0, r2 - adds r0, r0, r3 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] -_0809F750: - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F766 - bl sub_0805E780 -_0809F766: - pop {r4, r5, pc} - .align 2, 0 -_0809F768: .4byte gUnk_030010A0 -_0809F76C: .4byte gUnk_081247C0 - - thumb_func_start sub_0809F770 -sub_0809F770: @ 0x0809F770 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xa3 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809F7B6 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA30 - bl sub_08000E50 - ldrh r2, [r4, #0x2e] - subs r2, #0x10 - movs r3, #0x1f - adds r1, r0, #0 - ands r1, r3 - adds r2, r2, r1 - strh r2, [r4, #0x2e] - ldrh r2, [r4, #0x32] - subs r2, #0x10 - asrs r1, r0, #8 - ands r1, r3 - adds r2, r2, r1 - strh r2, [r4, #0x32] - asrs r0, r0, #0x10 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0x1e] - movs r0, #0xff - strb r0, [r4, #0x15] -_0809F7B6: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0809F7BC -sub_0809F7BC: @ 0x0809F7BC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r5, #0 - ldr r7, _0809F7F0 @ =gUnk_081247C8 -_0809F7C4: - adds r0, r6, #0 - bl sub_0809F770 - adds r4, r0, #0 - cmp r4, #0 - beq _0809F7E8 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r7 - ldrh r1, [r1] - strh r1, [r4, #0x24] - lsrs r0, r0, #8 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_0809F7E8: - adds r5, #1 - cmp r5, #7 - bls _0809F7C4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809F7F0: .4byte gUnk_081247C8 - - thumb_func_start sub_0809F7F4 -sub_0809F7F4: @ 0x0809F7F4 - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F812 - movs r0, #0xc - strb r0, [r1] - movs r0, #0xc2 - lsls r0, r0, #1 - bl sub_080A3268 -_0809F812: - pop {pc} - - thumb_func_start sub_0809F814 -sub_0809F814: @ 0x0809F814 - push {lr} - adds r1, r0, #0 - ldr r0, _0809F824 @ =gUnk_081247D0 - movs r2, #1 - bl sub_0807BB68 - pop {pc} - .align 2, 0 -_0809F824: .4byte gUnk_081247D0 - - thumb_func_start sub_0809F828 -sub_0809F828: @ 0x0809F828 - push {lr} - ldr r2, _0809F83C @ =gUnk_081247F8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809F83C: .4byte gUnk_081247F8 - - thumb_func_start sub_0809F840 -sub_0809F840: @ 0x0809F840 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0x1e] - movs r0, #0x20 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - ldrb r0, [r2, #0xb] - cmp r0, #0 - beq _0809F860 - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #0x18] -_0809F860: - adds r0, r2, #0 - bl sub_08016A04 - pop {pc} - - thumb_func_start sub_0809F868 -sub_0809F868: @ 0x0809F868 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809F8A2 - ldrb r0, [r1, #0xf] - cmp r0, #0 - bne _0809F890 - ldrb r0, [r1, #0x1e] - adds r0, #1 - strb r0, [r1, #0x1e] - ands r0, r2 - cmp r0, #3 - bne _0809F89E - movs r0, #1 - b _0809F89C -_0809F890: - ldrb r0, [r1, #0x1e] - subs r0, #1 - strb r0, [r1, #0x1e] - ands r0, r2 - cmp r0, #0 - bne _0809F89E -_0809F89C: - strb r0, [r1, #0xf] -_0809F89E: - movs r0, #0x20 - strb r0, [r1, #0xe] -_0809F8A2: - pop {pc} - - thumb_func_start sub_0809F8A4 -sub_0809F8A4: @ 0x0809F8A4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r0, _0809F904 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x42 - bhi _0809F8FC - movs r5, #0 -_0809F8B6: - movs r0, #0x1d - bl sub_080A7EE0 - adds r4, r0, #0 - cmp r5, #0 - bne _0809F8C6 - mov r8, r4 - adds r7, r4, #0 -_0809F8C6: - strb r5, [r4, #0xa] - mov r0, r8 - str r0, [r4, #0x50] - str r7, [r4, #0x54] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r1, r4, #0 - adds r1, #0x68 - adds r3, r5, #1 - movs r2, #7 -_0809F8DE: - ldrh r0, [r6, #0x2e] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r6, #0x32] - strh r0, [r1] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _0809F8DE - adds r7, r4, #0 - adds r5, r3, #0 - cmp r5, #4 - ble _0809F8B6 - bl sub_0805E780 -_0809F8FC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0809F904: .4byte gUnk_03003DBC - - thumb_func_start sub_0809F908 -sub_0809F908: @ 0x0809F908 - push {lr} - ldr r2, _0809F91C @ =gUnk_08124800 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809F91C: .4byte gUnk_08124800 - - thumb_func_start sub_0809F920 -sub_0809F920: @ 0x0809F920 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _0809F934 - bl sub_0805E780 -_0809F934: - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - subs r1, #5 - movs r0, #2 - strb r0, [r1] - ldr r0, _0809F960 @ =gUnk_080FD150 - str r0, [r4, #0x48] - pop {r4, pc} - .align 2, 0 -_0809F960: .4byte gUnk_080FD150 - - thumb_func_start sub_0809F964 -sub_0809F964: @ 0x0809F964 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0xa1 - bne _0809F9A8 - adds r0, r4, #0 - movs r1, #0x4e - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0809F99A - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x63 - movs r0, #0xfb - strb r0, [r1] -_0809F99A: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - bl sub_0805E780 -_0809F9A8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809F9AC -sub_0809F9AC: @ 0x0809F9AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809F9D2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0809F9D2: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809F9DC -sub_0809F9DC: @ 0x0809F9DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809FA9A - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1f - bhi _0809FA9A - lsls r0, r0, #2 - ldr r1, _0809FA00 @ =_0809FA04 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809FA00: .4byte _0809FA04 -_0809FA04: @ jump table - .4byte _0809FA84 @ case 0 - .4byte _0809FA84 @ case 1 - .4byte _0809FA9A @ case 2 - .4byte _0809FA9A @ case 3 - .4byte _0809FA84 @ case 4 - .4byte _0809FA84 @ case 5 - .4byte _0809FA84 @ case 6 - .4byte _0809FA9A @ case 7 - .4byte _0809FA84 @ case 8 - .4byte _0809FA84 @ case 9 - .4byte _0809FA84 @ case 10 - .4byte _0809FA84 @ case 11 - .4byte _0809FA84 @ case 12 - .4byte _0809FA9A @ case 13 - .4byte _0809FA9A @ case 14 - .4byte _0809FA9A @ case 15 - .4byte _0809FA9A @ case 16 - .4byte _0809FA9A @ case 17 - .4byte _0809FA9A @ case 18 - .4byte _0809FA9A @ case 19 - .4byte _0809FA9A @ case 20 - .4byte _0809FA9A @ case 21 - .4byte _0809FA9A @ case 22 - .4byte _0809FA9A @ case 23 - .4byte _0809FA9A @ case 24 - .4byte _0809FA9A @ case 25 - .4byte _0809FA9A @ case 26 - .4byte _0809FA9A @ case 27 - .4byte _0809FA9A @ case 28 - .4byte _0809FA9A @ case 29 - .4byte _0809FA84 @ case 30 - .4byte _0809FA84 @ case 31 -_0809FA84: - movs r0, #5 - strb r0, [r4, #0xc] - ldr r0, _0809FAB4 @ =gLinkEntity - str r0, [r4, #0x54] - ldrb r0, [r4, #0xa] - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - bl sub_0805E780 -_0809FA9A: - ldr r0, _0809FAB8 @ =gUnk_08124824 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08080CB4 - pop {r4, pc} - .align 2, 0 -_0809FAB4: .4byte gLinkEntity -_0809FAB8: .4byte gUnk_08124824 - - thumb_func_start sub_0809FABC -sub_0809FABC: @ 0x0809FABC - push {lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xc] - ldrb r0, [r3, #0xb] - cmp r0, #0 - beq _0809FAD0 - cmp r0, #2 - beq _0809FADE - b _0809FAE6 -_0809FAD0: - movs r0, #0xf0 - lsls r0, r0, #9 - str r0, [r3, #0x20] - ldrh r0, [r3, #0x36] - adds r0, #8 - strh r0, [r3, #0x36] - b _0809FAE6 -_0809FADE: - adds r0, r3, #0 - bl sub_0809FECC - b _0809FB30 -_0809FAE6: - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3c - movs r2, #0x17 - strb r2, [r0] - adds r1, #8 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #7 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3b - strb r2, [r0] - ldr r0, _0809FB34 @ =gUnk_080FD1A8 - str r0, [r3, #0x48] - movs r0, #1 - strb r0, [r3, #0x1c] - ldrh r1, [r3, #0x2e] - adds r0, r3, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r3, #0 - movs r1, #3 - bl sub_0805E3A0 - movs r0, #0x9b - lsls r0, r0, #1 - bl sub_08004488 -_0809FB30: - pop {pc} - .align 2, 0 -_0809FB34: .4byte gUnk_080FD1A8 - - thumb_func_start sub_0809FB38 -sub_0809FB38: @ 0x0809FB38 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x34] - ldr r1, _0809FB60 @ =0xFFFF2000 - adds r0, r0, r1 - str r0, [r2, #0x34] - adds r0, r2, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - beq _0809FB74 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _0809FB64 - adds r1, r0, #0 - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #1 - b _0809FB66 - .align 2, 0 -_0809FB60: .4byte 0xFFFF2000 -_0809FB64: - movs r0, #0xf0 -_0809FB66: - strb r0, [r2, #0xe] - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #1 - strb r0, [r2, #0xf] - movs r0, #0x80 - strh r0, [r2, #0x24] -_0809FB74: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809FB78 -sub_0809FB78: @ 0x0809FB78 - push {lr} - ldr r2, _0809FB8C @ =gUnk_08124840 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809FB8C: .4byte gUnk_08124840 - - thumb_func_start sub_0809FB90 -sub_0809FB90: @ 0x0809FB90 - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xd] - strb r1, [r0, #0x1d] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - bx lr - - thumb_func_start sub_0809FBA4 -sub_0809FBA4: @ 0x0809FBA4 - push {lr} - adds r2, r0, #0 - ldr r0, _0809FBC8 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0809FBC2 - adds r0, r2, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _0809FBCC -_0809FBC2: - movs r0, #3 - strb r0, [r2, #0xc] - b _0809FBD2 - .align 2, 0 -_0809FBC8: .4byte gUnk_03003F80 -_0809FBCC: - adds r0, r2, #0 - bl sub_0806F4E8 -_0809FBD2: - pop {pc} - - thumb_func_start sub_0809FBD4 -sub_0809FBD4: @ 0x0809FBD4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0809FBFC @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0809FBF4 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r5, #0x7f - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0x13 - beq _0809FC00 -_0809FBF4: - movs r0, #3 - strb r0, [r4, #0xc] - b _0809FC22 - .align 2, 0 -_0809FBFC: .4byte gUnk_03003F80 -_0809FC00: - adds r0, r4, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0809FC22 - ldrb r1, [r4, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #5 - strb r0, [r4, #0xc] - ldr r0, _0809FC24 @ =gLinkEntity - str r0, [r4, #0x54] - ldrb r0, [r4, #0xa] - movs r1, #0 - bl sub_08053FF0 -_0809FC22: - pop {r4, r5, pc} - .align 2, 0 -_0809FC24: .4byte gLinkEntity - - thumb_func_start sub_0809FC28 -sub_0809FC28: @ 0x0809FC28 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809FCAC - bl sub_08000E50 - adds r5, r0, #0 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x20 - strb r0, [r4, #0xf] - ldr r2, _0809FC6C @ =gUnk_0812484C - lsrs r0, r5, #8 - movs r1, #1 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0809FE9C - cmp r0, #0 - beq _0809FC70 - movs r0, #0x1f - ands r5, r0 - strb r5, [r4, #0x15] - b _0809FC8A - .align 2, 0 -_0809FC6C: .4byte gUnk_0812484C -_0809FC70: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r4, #0 - adds r2, #0x74 - ldrh r2, [r2] - adds r3, r4, #0 - adds r3, #0x76 - ldrh r3, [r3] - bl sub_080045D4 - strb r0, [r4, #0x15] -_0809FC8A: - ldrb r1, [r4, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _0809FCAC - movs r0, #0x10 - eors r1, r0 - lsrs r1, r1, #4 - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_0809FCAC: - adds r0, r4, #0 - bl sub_080AEFB4 - bl sub_0805E40C - cmp r0, #0 - bne _0809FCF8 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0809FCF8 - ldr r0, _0809FCFC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0809FCE0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0809FCE0 - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 -_0809FCE0: - ldrb r0, [r4, #0xe] - cmp r0, #0x3b - bhi _0809FCF8 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_0809FCF8: - pop {r4, r5, pc} - .align 2, 0 -_0809FCFC: .4byte gUnk_030010A0 - - thumb_func_start sub_0809FD00 -sub_0809FD00: @ 0x0809FD00 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x54] - ldrh r1, [r2, #8] - ldr r0, _0809FD18 @ =0x00000B08 - cmp r1, r0 - beq _0809FD1C - adds r0, r4, #0 - movs r1, #0 - bl sub_08081404 - b _0809FD44 - .align 2, 0 -_0809FD18: .4byte 0x00000B08 -_0809FD1C: - adds r0, r2, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - ldr r1, _0809FD48 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080177A0 - cmp r0, #0 - beq _0809FD44 - adds r0, r4, #0 - bl sub_0809FECC - ldrb r0, [r4, #0xa] - movs r1, #0 - bl sub_08053FF0 -_0809FD44: - pop {r4, pc} - .align 2, 0 -_0809FD48: .4byte gLinkEntity - - thumb_func_start sub_0809FD4C -sub_0809FD4C: @ 0x0809FD4C - push {lr} - adds r1, r0, #0 - movs r2, #6 - strb r2, [r1, #0xc] - movs r0, #0x80 - strb r0, [r1, #0xe] - strb r2, [r1, #0xf] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - ldrb r2, [r1, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #1 - orrs r0, r2 - strb r0, [r1, #0x18] - adds r3, r1, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #0x10 - orrs r0, r2 - strb r0, [r3] - adds r2, r1, #0 - adds r2, #0x63 - movs r0, #0xfb - strb r0, [r2] - ldr r0, [r1, #0x54] - bl sub_0806FA24 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809FD94 -sub_0809FD94: @ 0x0809FD94 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, [r5, #0x54] - ldr r2, _0809FE24 @ =gUnk_080C9160 - ldrb r0, [r5, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - movs r3, #0 - ldrsh r1, [r0, r3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - cmp r0, #0 - bge _0809FDB4 - ldr r1, _0809FE28 @ =0x0000FFFF - adds r0, r0, r1 -_0809FDB4: - asrs r0, r0, #0x10 - ldrh r3, [r6, #0x2e] - adds r0, r0, r3 - strh r0, [r5, #0x2e] - ldrb r0, [r5, #0xe] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #8 - cmp r0, #0 - bge _0809FDD6 - ldr r3, _0809FE28 @ =0x0000FFFF - adds r0, r0, r3 -_0809FDD6: - asrs r1, r0, #0x10 - ldrh r0, [r6, #0x32] - subs r0, r0, r1 - strh r0, [r5, #0x32] - ldrb r3, [r5, #0xe] - adds r0, r3, #0 - adds r0, #8 - strb r0, [r5, #0xe] - ldrh r0, [r6, #0x36] - strh r0, [r5, #0x36] - ldrb r2, [r6, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r4, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r6, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x19] - subs r3, #0x39 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - cmp r3, #0x7e - bhi _0809FE2C - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #3 - b _0809FE3A - .align 2, 0 -_0809FE24: .4byte gUnk_080C9160 -_0809FE28: .4byte 0x0000FFFF -_0809FE2C: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #5 -_0809FE3A: - orrs r1, r0 - strb r1, [r2] - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - adds r4, r5, #0 - adds r4, #0x63 - cmp r0, #0 - bne _0809FE6C - movs r0, #6 - strb r0, [r5, #0xf] - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - movs r1, #0x16 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0809FE6C - adds r0, r5, #0 - movs r1, #1 - bl sub_08081404 -_0809FE6C: - movs r1, #0 - ldrsb r1, [r4, r1] - movs r0, #0x11 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0809FE8A - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] -_0809FE8A: - adds r1, r5, #0 - adds r1, #0x87 - ldrb r0, [r1] - cmp r0, #0xa - bls _0809FE98 - movs r0, #0xa - strb r0, [r1] -_0809FE98: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0809FE9C -sub_0809FE9C: @ 0x0809FE9C - push {lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - adds r1, r2, #0 - adds r1, #0x74 - ldrh r1, [r1] - subs r0, r0, r1 - adds r0, #0x48 - cmp r0, #0x90 - bhi _0809FEC8 - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r1, r2, #0 - adds r1, #0x76 - ldrh r1, [r1] - subs r0, r0, r1 - adds r0, #0x30 - cmp r0, #0x60 - bhi _0809FEC8 - movs r0, #1 - b _0809FECA -_0809FEC8: - movs r0, #0 -_0809FECA: - pop {pc} - - thumb_func_start sub_0809FECC -sub_0809FECC: @ 0x0809FECC - ldr r1, _0809FEDC @ =gLinkEntity - str r1, [r0, #0x54] - movs r2, #0 - movs r1, #5 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - bx lr - .align 2, 0 -_0809FEDC: .4byte gLinkEntity - - thumb_func_start sub_0809FEE0 -sub_0809FEE0: @ 0x0809FEE0 - push {lr} - ldr r2, _0809FEF4 @ =gUnk_08124850 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809FEF4: .4byte gUnk_08124850 - - thumb_func_start sub_0809FEF8 -sub_0809FEF8: @ 0x0809FEF8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _0809FF20 @ =gUnk_0812485C - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - ldr r1, _0809FF24 @ =gUnk_08124860 - ldrb r0, [r4, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_0809FF20: .4byte gUnk_0812485C -_0809FF24: .4byte gUnk_08124860 - - thumb_func_start sub_0809FF28 -sub_0809FF28: @ 0x0809FF28 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809FF64 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0xe] - strb r0, [r1, #0x10] - ldrb r2, [r4, #0xf] - movs r0, #3 - ands r2, r0 - ldrb r3, [r1, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0x18] - adds r1, #0x6d - ldrb r2, [r1] - movs r0, #0xef - ands r0, r2 - strb r0, [r1] -_0809FF64: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809FF68 -sub_0809FF68: @ 0x0809FF68 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _0809FFA2 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0809FFC4 @ =gUnk_08124868 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x68 - movs r0, #0x78 - strh r0, [r1] -_0809FFA2: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _080A0068 - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _080A00AA - ldrb r2, [r4, #0xd] - cmp r2, #1 - beq _080A0006 - cmp r2, #1 - bgt _0809FFC8 - cmp r2, #0 - beq _0809FFCE - b _080A005A - .align 2, 0 -_0809FFC4: .4byte gUnk_08124868 -_0809FFC8: - cmp r2, #2 - beq _080A0038 - b _080A005A -_0809FFCE: - adds r1, r4, #0 - adds r1, #0x68 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A005A - movs r0, #0x20 - strh r0, [r1] - movs r1, #1 - strb r1, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xf] - strb r1, [r4, #0xd] - strb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_080AE068 - movs r1, #0xc6 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_080ADF80 - movs r0, #0xf6 - bl sub_080A3268 - b _080A005A -_080A0006: - adds r1, r4, #0 - adds r1, #0x68 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A005A - movs r0, #0x2d - strh r0, [r1] - strb r2, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xd] - strb r0, [r4, #0xa] - adds r0, r4, #0 - bl sub_080AE068 - ldr r1, _080A0034 @ =0x0000018D - adds r0, r4, #0 - bl sub_080ADF80 - b _080A005A - .align 2, 0 -_080A0034: .4byte 0x0000018D -_080A0038: - adds r1, r4, #0 - adds r1, #0x68 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A005A - movs r0, #3 - strb r0, [r4, #0xd] - ldr r1, _080A0064 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - movs r0, #0x73 - bl sub_080A3268 -_080A005A: - adds r0, r4, #0 - bl sub_080A00B0 - b _080A00AA - .align 2, 0 -_080A0064: .4byte gUnk_02000080 -_080A0068: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080A00A4 - cmp r0, #2 - bne _080A00A4 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080A00A4 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080A00AC @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - movs r0, #0x39 - movs r2, #1 - bl sub_0807B314 -_080A00A4: - adds r0, r4, #0 - bl sub_080A00B0 -_080A00AA: - pop {r4, r5, pc} - .align 2, 0 -_080A00AC: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A00B0 -sub_080A00B0: @ 0x080A00B0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A00DA - movs r0, #8 - strb r0, [r2, #0xe] - ldr r1, _080A00DC @ =gUnk_08124868 - ldrb r0, [r2, #0xa] - adds r0, r0, r1 - ldrb r1, [r2, #0xf] - ldrb r0, [r0] - adds r0, r1, r0 - strb r0, [r2, #0x1e] - adds r1, #1 - movs r0, #3 - ands r1, r0 - strb r1, [r2, #0xf] -_080A00DA: - pop {pc} - .align 2, 0 -_080A00DC: .4byte gUnk_08124868 - - thumb_func_start sub_080A00E0 -sub_080A00E0: @ 0x080A00E0 - push {lr} - ldr r2, _080A00F4 @ =gUnk_0812486C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A00F4: .4byte gUnk_0812486C - - thumb_func_start sub_080A00F8 -sub_080A00F8: @ 0x080A00F8 - push {lr} - ldrb r1, [r0, #0xc] - adds r1, #1 - movs r3, #0 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #1 - strb r1, [r2] - ldrb r1, [r0, #0x19] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x19] - movs r1, #0x29 - adds r1, r1, r0 - mov ip, r1 - ldrb r1, [r1] - movs r2, #7 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - strb r3, [r0, #0xd] - movs r1, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_080A012C -sub_080A012C: @ 0x080A012C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _080A0154 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A0154 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_080A0154: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0158 -sub_080A0158: @ 0x080A0158 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - beq _080A018A - adds r0, r4, #0 - bl sub_080A0190 - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0805E4E0 - ldr r1, _080A018C @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0x10 - movs r3, #0x10 - bl sub_080041A0 - cmp r0, #0 - beq _080A018A - movs r0, #0x37 - bl sub_0805B390 -_080A018A: - pop {r4, pc} - .align 2, 0 -_080A018C: .4byte gLinkEntity - - thumb_func_start sub_080A0190 -sub_080A0190: @ 0x080A0190 - push {r4, lr} - movs r4, #0 - movs r1, #1 - strb r1, [r0, #0xd] - ldr r1, _080A01B8 @ =gLinkEntity - bl sub_0806FA24 - ldr r2, _080A01BC @ =gUnk_03003F80 - movs r0, #3 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x38 - strb r4, [r0] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #8 - orrs r0, r1 - str r0, [r2, #0x30] - pop {r4, pc} - .align 2, 0 -_080A01B8: .4byte gLinkEntity -_080A01BC: .4byte gUnk_03003F80 - - thumb_func_start sub_080A01C0 -sub_080A01C0: @ 0x080A01C0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A01DC @ =gUnk_08124898 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08080CB4 - pop {r4, pc} - .align 2, 0 -_080A01DC: .4byte gUnk_08124898 - - thumb_func_start sub_080A01E0 -sub_080A01E0: @ 0x080A01E0 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r3, #1 - strb r3, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - ldr r0, _080A027C @ =gUnk_080FD1A0 - str r0, [r4, #0x48] - ldr r0, _080A0280 @ =0x0000FF40 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x6a - movs r0, #0x40 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0x43 - bgt _080A0246 - cmp r0, #0x42 - bge _080A0246 - cmp r0, #0x40 - beq _080A0246 - cmp r0, #0x41 - bne _080A0246 - ldr r2, _080A0284 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _080A0288 @ =0x0000FDFF - ands r0, r1 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x38 - strb r3, [r0] -_080A0246: - ldr r0, _080A028C @ =gUnk_0800A0B4 - bl sub_0807DB2C - ldr r1, _080A0284 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xc8 - lsls r0, r0, #3 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - bl sub_0805BC4C - ldrb r2, [r4, #0xa] - subs r2, #0x40 - adds r0, r4, #0 - movs r1, #0xad - movs r3, #0 - bl sub_080A2988 - cmp r0, #0 - beq _080A027A - str r4, [r0, #0x50] - str r0, [r4, #0x54] -_080A027A: - pop {r4, pc} - .align 2, 0 -_080A027C: .4byte gUnk_080FD1A0 -_080A0280: .4byte 0x0000FF40 -_080A0284: .4byte gUnk_03000F50 -_080A0288: .4byte 0x0000FDFF -_080A028C: .4byte gUnk_0800A0B4 - - thumb_func_start sub_080A0290 -sub_080A0290: @ 0x080A0290 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080A02BC @ =gUnk_02033280 - ldr r0, [r5] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _080A02CA - adds r0, r4, #0 - bl sub_080A0424 - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080A02C0 - adds r0, r2, #1 - strh r0, [r4, #0x36] - b _080A02CA - .align 2, 0 -_080A02BC: .4byte gUnk_02033280 -_080A02C0: - movs r1, #2 - strb r1, [r4, #0xc] - ldr r0, [r5] - orrs r0, r1 - str r0, [r5] -_080A02CA: - pop {r4, r5, pc} - - thumb_func_start sub_080A02CC -sub_080A02CC: @ 0x080A02CC - push {r4, lr} - adds r4, r0, #0 - bl sub_080A0424 - adds r0, r4, #0 - bl sub_080A0444 - adds r0, r4, #0 - bl sub_08017850 - cmp r0, #0 - beq _080A0342 - ldr r0, [r4, #0x54] - bl sub_0805E7BC - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r2, #0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x2d - strb r0, [r4, #0xe] - ldr r0, _080A0344 @ =gUnk_03000F50 - adds r3, r0, #0 - adds r3, #0x66 - movs r1, #0xc8 - lsls r1, r1, #3 - strh r1, [r3] - adds r0, #0x68 - strh r2, [r0] - ldrb r0, [r4, #0xa] - movs r1, #0 - movs r2, #1 - bl sub_080A7C18 - adds r0, r4, #0 - movs r1, #1 - bl sub_0808C650 - movs r0, #6 - movs r1, #2 - bl sub_08050054 - movs r0, #0xf8 - bl sub_080A3268 - movs r0, #0xa4 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #5 - bl sub_080A3268 - ldr r0, _080A0348 @ =0x80110000 - bl sub_080A3268 -_080A0342: - pop {r4, pc} - .align 2, 0 -_080A0344: .4byte gUnk_03000F50 -_080A0348: .4byte 0x80110000 - - thumb_func_start sub_080A034C -sub_080A034C: @ 0x080A034C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A0378 - adds r0, r4, #0 - bl sub_080A0424 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A038C - ldr r0, _080A0374 @ =gLinkEntity - movs r1, #0 - bl sub_0805E3A0 - b _080A038C - .align 2, 0 -_080A0374: .4byte gLinkEntity -_080A0378: - movs r0, #0 - movs r1, #0x3c - bl sub_0805E4E0 - bl sub_0808C67C - cmp r0, #0 - beq _080A038C - movs r0, #4 - strb r0, [r4, #0xc] -_080A038C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0390 -sub_080A0390: @ 0x080A0390 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #0x3c - bl sub_0805E4E0 - ldr r0, _080A03B4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A03B2 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x68 - movs r0, #0xd2 - lsls r0, r0, #1 - strh r0, [r1] -_080A03B2: - pop {r4, pc} - .align 2, 0 -_080A03B4: .4byte gUnk_03000FD0 - - thumb_func_start sub_080A03B8 -sub_080A03B8: @ 0x080A03B8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #0xa - bl sub_0805E4E0 - adds r1, r4, #0 - adds r1, #0x68 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A03E4 - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - bl sub_0805429C - adds r1, r4, #0 - bl sub_08056398 -_080A03E4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A03E8 -sub_080A03E8: @ 0x080A03E8 - push {lr} - movs r0, #0 - movs r1, #0xa - bl sub_0805E4E0 - ldr r0, _080A041C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080A041A - movs r0, #0x5a - bl sub_0805E510 - ldr r0, _080A0420 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bl sub_0807DF50 - movs r0, #0 - bl sub_0807CD10 - bl sub_0805E780 -_080A041A: - pop {pc} - .align 2, 0 -_080A041C: .4byte gUnk_02000050 -_080A0420: .4byte gUnk_03003F80 - - thumb_func_start sub_080A0424 -sub_080A0424: @ 0x080A0424 - push {lr} - adds r1, r0, #0 - adds r1, #0x6a - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A0442 - movs r0, #0x40 - strb r0, [r1] - movs r0, #0xbc - lsls r0, r0, #1 - bl sub_080A3268 -_080A0442: - pop {pc} - - thumb_func_start sub_080A0444 -sub_080A0444: @ 0x080A0444 - ldr r3, _080A0460 @ =gUnk_081248B4 - ldrb r1, [r0, #0xf] - adds r2, r1, #1 - strb r2, [r0, #0xf] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #7 - ands r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - strh r1, [r0, #0x36] - bx lr - .align 2, 0 -_080A0460: .4byte gUnk_081248B4 - - thumb_func_start sub_080A0464 -sub_080A0464: @ 0x080A0464 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #6 - movs r1, #0xac - movs r2, #6 - bl sub_0805EB00 - cmp r0, #0 - beq _080A048A - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - adds r3, #0x18 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DEDC -_080A048A: - pop {r4, r5, pc} - - thumb_func_start sub_080A048C -sub_080A048C: @ 0x080A048C - push {lr} - ldr r2, _080A04A0 @ =gUnk_081248BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A04A0: .4byte gUnk_081248BC - - thumb_func_start sub_080A04A4 -sub_080A04A4: @ 0x080A04A4 - push {r4, lr} - movs r3, #0 - movs r1, #1 - strb r1, [r0, #0xc] - movs r4, #4 - movs r1, #4 - strb r1, [r0, #0x1e] - strb r3, [r0, #0xe] - ldrb r1, [r0, #0x19] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x19] - movs r1, #0x29 - adds r1, r1, r0 - mov ip, r1 - ldrb r1, [r1] - movs r2, #7 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - str r3, [r0, #0x34] - ldrb r2, [r0, #0x19] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0, #0x19] - bl sub_080A04E8 - pop {r4, pc} - - thumb_func_start sub_080A04E0 -sub_080A04E0: @ 0x080A04E0 - push {lr} - bl sub_080A04E8 - pop {pc} - - thumb_func_start sub_080A04E8 -sub_080A04E8: @ 0x080A04E8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _080A04F8 - rsbs r0, r0, #0 -_080A04F8: - movs r1, #0x80 - lsls r1, r1, #1 - adds r4, r0, r1 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_0805EC9C - movs r1, #0xe0 - lsls r1, r1, #1 - subs r1, r1, r4 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r1, r4, #0 - bl __divsi3 - adds r4, r0, #0 - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xa] - cmp r0, #0x41 - bne _080A0538 - lsls r3, r4, #1 - cmp r3, #0xc - bls _080A052E - movs r3, #0xc -_080A052E: - movs r0, #0x10 - subs r0, r0, r4 - lsls r4, r0, #8 - orrs r4, r3 - b _080A0540 -_080A0538: - movs r0, #0x10 - subs r0, r0, r4 - lsls r0, r0, #8 - orrs r4, r0 -_080A0540: - ldr r0, _080A054C @ =0x0000FFFF - ands r4, r0 - ldr r0, _080A0550 @ =gUnk_03000F50 - adds r0, #0x68 - strh r4, [r0] - pop {r4, r5, pc} - .align 2, 0 -_080A054C: .4byte 0x0000FFFF -_080A0550: .4byte gUnk_03000F50 - - thumb_func_start sub_080A0554 -sub_080A0554: @ 0x080A0554 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xc] - cmp r0, #0 - bne _080A0588 - movs r2, #1 - strb r2, [r3, #0xc] - ldrb r0, [r3, #0xa] - strb r0, [r3, #0x1e] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x38 - strb r2, [r0] - adds r0, r3, #0 - bl sub_08016A04 -_080A0588: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A058C -sub_080A058C: @ 0x080A058C - push {lr} - ldr r2, _080A05A0 @ =gUnk_081248C4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A05A0: .4byte gUnk_081248C4 - - thumb_func_start sub_080A05A4 -sub_080A05A4: @ 0x080A05A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - cmp r1, #2 - beq _080A05D2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080A0640 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _080A05F0 -_080A05D2: - movs r0, #0 - strb r1, [r4, #0xc] - ldrh r1, [r4, #0x32] - adds r1, #1 - strh r1, [r4, #0x32] - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 -_080A05F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A05F4 -sub_080A05F4: @ 0x080A05F4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - cmp r0, #0 - bne _080A060C - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _080A0622 -_080A060C: - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A0616 - bl sub_0805E780 -_080A0616: - adds r0, r4, #0 - bl sub_080A0640 - adds r0, r4, #0 - bl sub_08004274 -_080A0622: - pop {r4, pc} - - thumb_func_start sub_080A0624 -sub_080A0624: @ 0x080A0624 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A063C - bl sub_0805E780 -_080A063C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0640 -sub_080A0640: @ 0x080A0640 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080A065E - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x64] - ldr r0, [r0, #0x10] - movs r3, #0x80 - lsls r3, r3, #0xc - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - b _080A0666 -_080A065E: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 -_080A0666: - movs r0, #0 - strh r0, [r4, #0x36] - pop {r4, pc} - - thumb_func_start sub_080A066C -sub_080A066C: @ 0x080A066C - push {lr} - ldr r2, _080A0680 @ =gUnk_0812493C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A0680: .4byte gUnk_0812493C - - thumb_func_start sub_080A0684 -sub_080A0684: @ 0x080A0684 - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x84 - ldrh r1, [r2] - ldr r0, _080A070C @ =0x0000FFFF - cmp r1, r0 - beq _080A06A2 - adds r0, r1, #0 - bl sub_0807CBE4 - cmp r0, #0 - beq _080A06A2 - bl sub_0805E780 -_080A06A2: - movs r0, #1 - strb r0, [r4, #0xc] - movs r2, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r2, [r4, #0x1e] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, _080A0710 @ =gUnk_080FD180 - str r0, [r4, #0x48] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080A0714 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_080A070C: .4byte 0x0000FFFF -_080A0710: .4byte gUnk_080FD180 -_080A0714: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A0718 -sub_080A0718: @ 0x080A0718 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08083734 - cmp r0, #0 - beq _080A074A - movs r2, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x10 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r2, [r4, #0x15] - ldrh r0, [r4, #0x32] - adds r0, #0x24 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_080A080C -_080A074A: - pop {r4, pc} - - thumb_func_start sub_080A074C -sub_080A074C: @ 0x080A074C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080A07B6 - movs r0, #3 - strb r0, [r4, #0xc] - strh r1, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080A0794 - ldrh r0, [r1, #0x2e] - adds r0, #0xc - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0xc - strh r0, [r1, #0x32] -_080A0794: - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080A07B0 - ldrh r0, [r1, #0x2e] - subs r0, #0xc - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0xc - strh r0, [r1, #0x32] -_080A07B0: - ldr r0, _080A07B8 @ =0x0000010B - bl sub_08004488 -_080A07B6: - pop {r4, pc} - .align 2, 0 -_080A07B8: .4byte 0x0000010B - - thumb_func_start sub_080A07BC -sub_080A07BC: @ 0x080A07BC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080A07EA - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0x15] - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_080A0870 - ldr r0, _080A07EC @ =0x0000010B - bl sub_080A3268 -_080A07EA: - pop {r4, pc} - .align 2, 0 -_080A07EC: .4byte 0x0000010B - - thumb_func_start sub_080A07F0 -sub_080A07F0: @ 0x080A07F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A0808 - bl sub_0805E780 -_080A0808: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A080C -sub_080A080C: @ 0x080A080C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x74 - ldrh r0, [r6] - subs r0, #1 - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - ldrh r0, [r6] - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - ldrh r0, [r6] - adds r0, #1 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldr r4, _080A086C @ =0x00004022 - ldrh r1, [r6] - subs r1, #1 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - ldrh r1, [r6] - adds r1, #1 - ldrb r2, [r5] - adds r0, r4, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_080A086C: .4byte 0x00004022 - - thumb_func_start sub_080A0870 -sub_080A0870: @ 0x080A0870 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r5, r6, #0 - adds r5, #0x74 - ldrh r1, [r5] - subs r1, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x78 - ldrh r0, [r0] - ldrh r1, [r5] - ldrb r2, [r4] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x7a - ldrh r0, [r0] - ldrh r1, [r5] - adds r1, #1 - ldrb r2, [r4] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A08AC -sub_080A08AC: @ 0x080A08AC - push {lr} - ldr r2, _080A08C0 @ =gUnk_08124950 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A08C0: .4byte gUnk_08124950 - - thumb_func_start sub_080A08C4 -sub_080A08C4: @ 0x080A08C4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - bne _080A08E2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_080A0960 - b _080A08F6 -_080A08E2: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #1 - bl sub_080A0960 -_080A08F6: - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0910 -sub_080A0910: @ 0x080A0910 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080A0932 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_080A0960 - ldr r0, _080A0934 @ =0x0000010B - bl sub_080A3268 -_080A0932: - pop {r4, pc} - .align 2, 0 -_080A0934: .4byte 0x0000010B - - thumb_func_start sub_080A0938 -sub_080A0938: @ 0x080A0938 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A095A - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_080A095A: - pop {r4, pc} - - thumb_func_start nullsub_127 -nullsub_127: @ 0x080A095C - bx lr - .align 2, 0 - - thumb_func_start sub_080A0960 -sub_080A0960: @ 0x080A0960 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _080A0998 @ =gUnk_08124960 - cmp r1, #1 - bne _080A096C - ldr r5, _080A099C @ =gUnk_0812497A -_080A096C: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080A09A0 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - movs r2, #1 - bl sub_0801AF18 - pop {r4, r5, r6, pc} - .align 2, 0 -_080A0998: .4byte gUnk_08124960 -_080A099C: .4byte gUnk_0812497A -_080A09A0: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A09A4 -sub_080A09A4: @ 0x080A09A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A09D4 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - ldr r1, _080A0A2C @ =gUnk_02027EB4 - cmp r0, #2 - bne _080A09CA - ldr r1, _080A0A30 @ =gUnk_0200D654 -_080A09CA: - str r1, [r4, #0x54] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 -_080A09D4: - ldr r0, [r4, #0x50] - ldrh r0, [r0, #0x24] - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, [r4, #0x54] - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r3, #0x32 - ldrsh r2, [r4, r3] - movs r3, #9 - bl sub_080AE4CC - cmp r0, #0 - beq _080A09F8 - bl sub_0805E780 -_080A09F8: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0x40 - bgt _080A0A22 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A0A22 - bl sub_0805E780 -_080A0A22: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_080A0A2C: .4byte gUnk_02027EB4 -_080A0A30: .4byte gUnk_0200D654 - - thumb_func_start sub_080A0A34 -sub_080A0A34: @ 0x080A0A34 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080A0A44 - cmp r0, #1 - beq _080A0A5C - b _080A0A5E -_080A0A44: - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - ldr r1, _080A0A54 @ =gUnk_08124A18 - cmp r0, #0 - beq _080A0A5E - ldr r1, _080A0A58 @ =gUnk_08124A10 - b _080A0A5E - .align 2, 0 -_080A0A54: .4byte gUnk_08124A18 -_080A0A58: .4byte gUnk_08124A10 -_080A0A5C: - ldr r1, _080A0AB8 @ =gUnk_08124A20 -_080A0A5E: - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A0AB0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r3, #0x40 - orrs r0, r3 - strb r0, [r4, #0x19] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - mov r2, ip - strb r0, [r2] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r3 - strb r1, [r4, #0x1b] - ldr r1, _080A0ABC @ =gUnk_080C9CBC - ldr r0, _080A0AC0 @ =gUnk_02022740 - ldrb r0, [r0, #3] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_0801D2B4 -_080A0AB0: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_080A0AB8: .4byte gUnk_08124A20 -_080A0ABC: .4byte gUnk_080C9CBC -_080A0AC0: .4byte gUnk_02022740 - - thumb_func_start sub_080A0AC4 -sub_080A0AC4: @ 0x080A0AC4 - push {lr} - ldrb r1, [r0, #0xa] - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0AD0 -sub_080A0AD0: @ 0x080A0AD0 - push {lr} - movs r1, #0x80 - bl sub_08003FC4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0ADC -sub_080A0ADC: @ 0x080A0ADC - push {r4, lr} - adds r4, r0, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0AF0 -sub_080A0AF0: @ 0x080A0AF0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #5 - bne _080A0B1C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A0B1C - bl sub_0805E780 -_080A0B1C: - adds r0, r4, #0 - movs r1, #0x80 - bl sub_08003FC4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0B28 -sub_080A0B28: @ 0x080A0B28 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r2, [r4, r0] - movs r0, #0x32 - ldrsh r3, [r4, r0] - adds r0, r4, #0 - bl sub_0807DEDC - ldrh r0, [r4, #0x32] - subs r0, #0xb0 - strh r0, [r4, #0x32] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - pop {r4, pc} - - thumb_func_start sub_080A0B4C -sub_080A0B4C: @ 0x080A0B4C - push {lr} - movs r1, #0x78 - strh r1, [r0, #0x2e] - movs r1, #0x50 - strh r1, [r0, #0x32] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0B60 -sub_080A0B60: @ 0x080A0B60 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080A0B7C - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #0x9b - lsls r0, r0, #1 - bl sub_080A3268 -_080A0B7C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A0B80 -sub_080A0B80: @ 0x080A0B80 - ldr r1, [r0, #0x30] - ldr r2, _080A0B8C @ =0xFFFD8000 - adds r1, r1, r2 - str r1, [r0, #0x30] - bx lr - .align 2, 0 -_080A0B8C: .4byte 0xFFFD8000 - - thumb_func_start sub_080A0B90 -sub_080A0B90: @ 0x080A0B90 - push {lr} - ldr r2, _080A0BA4 @ =gUnk_08124B20 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A0BA4: .4byte gUnk_08124B20 - - thumb_func_start sub_080A0BA8 -sub_080A0BA8: @ 0x080A0BA8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r2, [r5, #0xc] - cmp r2, #0 - beq _080A0BB8 - cmp r2, #1 - beq _080A0C08 - b _080A0CE0 -_080A0BB8: - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r5, #0x18] - movs r0, #9 - strb r0, [r5, #0x1e] - movs r0, #8 - strb r0, [r5, #0xe] - strb r2, [r5, #0xf] - ldrb r1, [r5, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r1 - movs r3, #0x40 - orrs r0, r3 - strb r0, [r5, #0x19] - adds r4, r5, #0 - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r5, #0x1b] - ands r2, r0 - orrs r2, r3 - strb r2, [r5, #0x1b] - adds r0, r5, #0 - movs r1, #0xbf - movs r2, #0x48 - movs r3, #0x1e - bl sub_0806FB00 - b _080A0CE0 -_080A0C08: - ldrb r0, [r5, #0xf] - cmp r0, #6 - bhi _080A0C46 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A0C46 - strb r2, [r5, #0xe] - ldrb r2, [r5, #0xf] - movs r0, #0xb4 - movs r1, #1 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080A0C40 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - movs r0, #0x68 - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_080A0C40: - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] -_080A0C46: - adds r0, r5, #0 - bl sub_0806FB38 - cmp r0, #0 - bne _080A0C58 - ldr r0, _080A0CE4 @ =gUnk_02000080 - ldrb r0, [r0, #5] - cmp r0, #1 - bls _080A0CE0 -_080A0C58: - movs r0, #0xbf - strh r0, [r5, #0x2e] - movs r0, #0x48 - strh r0, [r5, #0x32] - movs r0, #0xa - strb r0, [r5, #0x1e] - movs r0, #2 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0xf] - cmp r0, #6 - bhi _080A0CA0 -_080A0C6E: - ldrb r2, [r5, #0xf] - movs r0, #0xb4 - movs r1, #1 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080A0C92 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - movs r0, #0x68 - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_080A0C92: - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #6 - bls _080A0C6E -_080A0CA0: - movs r0, #0xb4 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080A0CC0 - movs r0, #0xc4 - strh r0, [r4, #0x2e] - movs r0, #0x2c - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_080A0CC0: - movs r0, #0xb4 - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080A0CE0 - movs r0, #0xb4 - strh r0, [r4, #0x2e] - movs r0, #0x19 - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_080A0CE0: - pop {r4, r5, pc} - .align 2, 0 -_080A0CE4: .4byte gUnk_02000080 - - thumb_func_start sub_080A0CE8 -sub_080A0CE8: @ 0x080A0CE8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _080A0CF8 - cmp r0, #1 - beq _080A0D28 - b _080A0D66 -_080A0CF8: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - adds r0, #2 - strb r0, [r4, #0x1e] - ldr r1, _080A0D24 @ =gUnk_08124B10 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - movs r2, #0x68 - movs r3, #0x14 - bl sub_0806FB00 - b _080A0D66 - .align 2, 0 -_080A0D24: .4byte gUnk_08124B10 -_080A0D28: - adds r0, r4, #0 - bl sub_0806FB38 - cmp r0, #0 - bne _080A0D3A - ldr r0, _080A0D68 @ =gUnk_02000080 - ldrb r0, [r0, #5] - cmp r0, #1 - bls _080A0D66 -_080A0D3A: - ldr r1, _080A0D6C @ =gUnk_08124B10 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - movs r0, #0x68 - strh r0, [r4, #0x32] - ldrb r1, [r4, #0xb] - movs r0, #7 - subs r1, r0, r1 - adds r3, r4, #0 - adds r3, #0x29 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, #2 - strb r0, [r4, #0xc] -_080A0D66: - pop {r4, pc} - .align 2, 0 -_080A0D68: .4byte gUnk_02000080 -_080A0D6C: .4byte gUnk_08124B10 - - thumb_func_start sub_080A0D70 -sub_080A0D70: @ 0x080A0D70 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r6, [r5, #0xc] - cmp r6, #0 - bne _080A0DC4 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x19] - movs r4, #0x3f - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r3, #0x40 - orrs r0, r3 - strb r0, [r5, #0x19] - movs r0, #0x29 - adds r0, r0, r5 - mov ip, r0 - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - mov r2, ip - strb r0, [r2] - ldrb r0, [r5, #0x1b] - ands r1, r0 - orrs r1, r3 - strb r1, [r5, #0x1b] - movs r0, #0xb - strb r0, [r5, #0x1e] - bl sub_08000E50 - ands r0, r4 - adds r0, #0x40 - strb r0, [r5, #0xe] - strb r6, [r5, #0xf] -_080A0DC4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080A0E02 - movs r0, #4 - strb r0, [r5, #0xe] - ldr r2, _080A0E04 @ =gUnk_08124B30 - ldrb r0, [r5, #0xf] - adds r1, r0, #1 - strb r1, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r2 - ldrb r0, [r0] - adds r0, #2 - strb r0, [r5, #0x1e] - ldrb r0, [r5, #0xf] - adds r0, r0, r2 - ldrb r0, [r0] - cmp r0, #0xff - bne _080A0E02 - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x40 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] -_080A0E02: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A0E04: .4byte gUnk_08124B30 - - thumb_func_start sub_080A0E08 -sub_080A0E08: @ 0x080A0E08 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080A0E26 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #5 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x18] - movs r0, #0xf - strb r0, [r2, #0x1e] -_080A0E26: - pop {pc} - - thumb_func_start sub_080A0E28 -sub_080A0E28: @ 0x080A0E28 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080A0E36 - movs r0, #1 - strb r0, [r1, #0xc] -_080A0E36: - ldr r0, _080A0E48 @ =gUnk_03000BF0 - str r1, [r0, #0x30] - ldr r0, _080A0E4C @ =gLinkEntity - ldr r3, _080A0E50 @ =0xFFD80000 - movs r2, #0 - bl PositionRelative - pop {pc} - .align 2, 0 -_080A0E48: .4byte gUnk_03000BF0 -_080A0E4C: .4byte gLinkEntity -_080A0E50: .4byte 0xFFD80000 - - thumb_func_start sub_080A0E54 -sub_080A0E54: @ 0x080A0E54 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xd] - cmp r0, #3 - bls _080A0E64 - bl sub_0805E780 -_080A0E64: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A0E76 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08004260 -_080A0E76: - ldr r0, [r4, #0x50] - ldrb r3, [r4, #0xa] - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 - adds r2, r4, #0 - adds r2, #0x63 - ldrb r0, [r2] - ldrb r1, [r4, #0xa] - subs r0, r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A0E98 -sub_080A0E98: @ 0x080A0E98 - push {lr} - ldr r2, _080A0EAC @ =gUnk_08124C08 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A0EAC: .4byte gUnk_08124C08 - - thumb_func_start sub_080A0EB0 -sub_080A0EB0: @ 0x080A0EB0 - push {r4, r5, lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r3, _080A0EE8 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r2, r2, r1 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r5, #0x32 - ldrsh r1, [r0, r5] - ldrh r3, [r3, #8] - subs r1, r1, r3 - asrs r1, r1, #4 - ands r1, r4 - lsls r1, r1, #6 - orrs r2, r1 - adds r0, #0x80 - strh r2, [r0] - ldr r2, _080A0EEC @ =0x0000407D - ldrh r1, [r0] - adds r0, r2, #0 - movs r2, #1 - bl sub_0800015E - pop {r4, r5, pc} - .align 2, 0 -_080A0EE8: .4byte gUnk_03000BF0 -_080A0EEC: .4byte 0x0000407D - - thumb_func_start sub_080A0EF0 -sub_080A0EF0: @ 0x080A0EF0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r1, #1 - bl sub_080002B0 - ldr r1, _080A0F1C @ =0x0000407D - cmp r0, r1 - beq _080A0F18 - bl sub_08078B48 - ldr r1, _080A0F20 @ =gLinkEntity - ldr r0, [r4, #0x2c] - str r0, [r1, #0x2c] - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r1, #0x32] - bl sub_0805E780 -_080A0F18: - pop {r4, pc} - .align 2, 0 -_080A0F1C: .4byte 0x0000407D -_080A0F20: .4byte gLinkEntity - - thumb_func_start sub_080A0F24 -sub_080A0F24: @ 0x080A0F24 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A0F40 @ =gUnk_08124C10 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080A11E0 - pop {r4, pc} - .align 2, 0 -_080A0F40: .4byte gUnk_08124C10 - - thumb_func_start sub_080A0F44 -sub_080A0F44: @ 0x080A0F44 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #1 - strb r6, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x59 - movs r0, #8 - strb r0, [r1] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080A0FA8 @ =gUnk_080FD460 - str r0, [r5, #0x48] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_080A11C0 - cmp r0, #0 - beq _080A0FA4 - ldr r1, _080A0FAC @ =gLinkEntity - ldrh r0, [r5, #0x2e] - movs r4, #0 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #0x32] - strh r0, [r1, #0x32] - movs r0, #3 - bl sub_08078A90 - bl sub_08078B48 - bl sub_0805E544 - movs r0, #0x89 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #3 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - adds r0, r5, #0 - adds r0, #0x68 - strb r6, [r0] -_080A0FA4: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A0FA8: .4byte gUnk_080FD460 -_080A0FAC: .4byte gLinkEntity - - thumb_func_start sub_080A0FB0 -sub_080A0FB0: @ 0x080A0FB0 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080A11C0 - adds r1, r0, #0 - cmp r1, #0 - beq _080A0FF8 - adds r0, r5, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0 - bne _080A0FFE - ldr r1, _080A0FF4 @ =gLinkEntity - ldrh r0, [r5, #0x2e] - movs r4, #0 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #0x32] - strh r0, [r1, #0x32] - movs r0, #3 - bl sub_08078A90 - bl sub_08078B48 - bl sub_0805E544 - movs r0, #0x89 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #2 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - b _080A0FFE - .align 2, 0 -_080A0FF4: .4byte gLinkEntity -_080A0FF8: - adds r0, r5, #0 - adds r0, #0x68 - strb r1, [r0] -_080A0FFE: - pop {r4, r5, pc} - - thumb_func_start sub_080A1000 -sub_080A1000: @ 0x080A1000 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xd] - cmp r1, #1 - beq _080A102A - cmp r1, #1 - bgt _080A1014 - cmp r1, #0 - beq _080A101E - b _080A1088 -_080A1014: - cmp r1, #2 - beq _080A1038 - cmp r1, #3 - beq _080A1064 - b _080A1088 -_080A101E: - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _080A10D4 -_080A102A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A10D4 - b _080A1070 -_080A1038: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A1056 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, #0xf5 - bl sub_080A3268 - b _080A10D4 -_080A1056: - ldr r0, _080A1060 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - b _080A10C2 - .align 2, 0 -_080A1060: .4byte gUnk_030010A0 -_080A1064: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A107C -_080A1070: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _080A10D4 -_080A107C: - ldr r0, _080A1084 @ =gUnk_030010A0 - ldr r0, [r0] - b _080A10C2 - .align 2, 0 -_080A1084: .4byte gUnk_030010A0 -_080A1088: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A10BC - ldr r0, _080A10B4 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #3 - bne _080A10A2 - movs r0, #0xf9 - bl sub_0807CCB4 -_080A10A2: - ldrb r1, [r4, #0xb] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A10B8 @ =gUnk_0813ADEC - adds r0, r0, r1 - bl sub_08080840 - b _080A10D4 - .align 2, 0 -_080A10B4: .4byte gUnk_03000BF0 -_080A10B8: .4byte gUnk_0813ADEC -_080A10BC: - ldr r0, _080A10D8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 -_080A10C2: - ands r0, r1 - cmp r0, #0 - bne _080A10D4 - ldr r0, _080A10DC @ =gLinkEntity - ldrb r1, [r0, #0x14] - adds r1, #2 - movs r2, #6 - ands r1, r2 - strb r1, [r0, #0x14] -_080A10D4: - pop {r4, pc} - .align 2, 0 -_080A10D8: .4byte gUnk_030010A0 -_080A10DC: .4byte gLinkEntity - - thumb_func_start sub_080A10E0 -sub_080A10E0: @ 0x080A10E0 - push {r4, lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xd] - cmp r1, #1 - beq _080A110E - cmp r1, #1 - bgt _080A10F4 - cmp r1, #0 - beq _080A10FE - b _080A1180 -_080A10F4: - cmp r1, #2 - beq _080A1124 - cmp r1, #3 - beq _080A1148 - b _080A1180 -_080A10FE: - movs r0, #1 - strb r0, [r2, #0xd] - movs r0, #0x1e - strb r0, [r2, #0xe] - adds r0, #0xf6 - bl sub_080A3268 - b _080A11BA -_080A110E: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A1130 - ldr r0, _080A1120 @ =gUnk_030010A0 - ldr r0, [r0] - b _080A1162 - .align 2, 0 -_080A1120: .4byte gUnk_030010A0 -_080A1124: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A113C -_080A1130: - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - movs r0, #0x1e - strb r0, [r2, #0xe] - b _080A11BA -_080A113C: - ldr r0, _080A1144 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - b _080A1162 - .align 2, 0 -_080A1144: .4byte gUnk_030010A0 -_080A1148: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A115C - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - b _080A11BA -_080A115C: - ldr r0, _080A1178 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 -_080A1162: - ands r0, r1 - cmp r0, #0 - bne _080A11BA - ldr r0, _080A117C @ =gLinkEntity - ldrb r1, [r0, #0x14] - adds r1, #2 - movs r2, #6 - ands r1, r2 - strb r1, [r0, #0x14] - b _080A11BA - .align 2, 0 -_080A1178: .4byte gUnk_030010A0 -_080A117C: .4byte gLinkEntity -_080A1180: - ldr r4, _080A11A0 @ =gLinkEntity - ldrb r3, [r4, #0x14] - cmp r3, #4 - beq _080A11A8 - ldr r0, _080A11A4 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _080A11BA - adds r0, r3, #2 - movs r1, #6 - ands r0, r1 - strb r0, [r4, #0x14] - b _080A11BA - .align 2, 0 -_080A11A0: .4byte gLinkEntity -_080A11A4: .4byte gUnk_030010A0 -_080A11A8: - movs r0, #0 - movs r1, #1 - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - ldr r0, _080A11BC @ =gUnk_03003F80 - adds r0, #0x8b - strb r1, [r0] - bl sub_0805E564 -_080A11BA: - pop {r4, pc} - .align 2, 0 -_080A11BC: .4byte gUnk_03003F80 - - thumb_func_start sub_080A11C0 -sub_080A11C0: @ 0x080A11C0 - push {lr} - adds r1, r0, #0 - ldr r0, _080A11D8 @ =gLinkEntity - movs r2, #0x36 - ldrsh r0, [r0, r2] - cmp r0, #0 - bne _080A11DC - adds r0, r1, #0 - bl sub_08017850 - b _080A11DE - .align 2, 0 -_080A11D8: .4byte gLinkEntity -_080A11DC: - movs r0, #0 -_080A11DE: - pop {pc} - - thumb_func_start sub_080A11E0 -sub_080A11E0: @ 0x080A11E0 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x59 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A1202 - movs r0, #8 - strb r0, [r1] - ldrb r0, [r2, #0x1e] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r2, #0x1e] -_080A1202: - pop {pc} - - thumb_func_start sub_080A1204 -sub_080A1204: @ 0x080A1204 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r5, r0, #0 - cmp r5, #0 - bne _080A1260 - adds r0, #1 - strb r0, [r4, #0xc] - bl sub_080A1514 - lsls r0, r0, #2 - ldr r1, _080A126C @ =gUnk_08124C20 - adds r0, r0, r1 - ldrh r2, [r0] - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #2 - adds r2, r4, #0 - adds r2, #0x68 - strh r1, [r2] - adds r1, r4, #0 - adds r1, #0x6a - strh r5, [r1] - ldrh r1, [r0, #2] - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x6e - movs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x70 - movs r2, #0 - movs r1, #9 -_080A124A: - strb r2, [r0] - adds r0, #1 - subs r1, #1 - cmp r1, #0 - bge _080A124A - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_0806EC20 -_080A1260: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - pop {r4, r5, pc} - .align 2, 0 -_080A126C: .4byte gUnk_08124C20 - - thumb_func_start sub_080A1270 -sub_080A1270: @ 0x080A1270 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov sb, r0 - movs r6, #0 - ldr r0, [r0, #0x64] - str r0, [sp, #4] - mov r4, sb - adds r4, #0x70 - ldr r0, _080A12F8 @ =gUnk_03000BF0 - movs r2, #0xd8 - lsls r2, r2, #2 - adds r1, r2, #0 - ldrh r3, [r0, #6] - adds r1, r1, r3 - movs r7, #0xd4 - lsls r7, r7, #2 - adds r2, r7, #0 - ldrh r0, [r0, #8] - adds r2, r2, r0 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - mov r8, r1 - lsls r2, r2, #0x10 - asrs r3, r2, #0x10 - movs r0, #9 - mov sl, r0 - movs r1, #1 - rsbs r1, r1, #0 - adds r5, r1, #0 -_080A12B2: - ldr r7, [sp, #4] - ldr r2, [r7] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _080A1300 - ldr r0, [r2, #4] - cmp r0, #0 - beq _080A132C - cmp r2, #0 - beq _080A132C - movs r1, #0x2e - ldrsh r0, [r2, r1] - cmp r8, r0 - bgt _080A132E - movs r7, #0x32 - ldrsh r0, [r2, r7] - cmp r3, r0 - bgt _080A132E - ldrb r0, [r2, #0xa] - adds r0, #1 - strb r0, [r4] - movs r0, #1 - strb r0, [r2, #0xb] - adds r6, #1 - ldr r1, _080A12FC @ =gUnk_08124EC8 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - str r3, [sp] - bl sub_080A3268 - ldr r3, [sp] - b _080A132E - .align 2, 0 -_080A12F8: .4byte gUnk_03000BF0 -_080A12FC: .4byte gUnk_08124EC8 -_080A1300: - cmp r0, #0 - ble _080A132E - adds r6, #1 - ldr r0, [r2, #4] - cmp r0, #0 - beq _080A132C - cmp r2, #0 - beq _080A132C - mov r1, r8 - adds r1, #4 - movs r7, #0x2e - ldrsh r0, [r2, r7] - cmp r1, r0 - ble _080A131E - strh r1, [r2, #0x2e] -_080A131E: - adds r1, r3, #4 - movs r7, #0x32 - ldrsh r0, [r2, r7] - cmp r1, r0 - ble _080A132E - strh r1, [r2, #0x32] - b _080A132E -_080A132C: - strb r5, [r4] -_080A132E: - movs r0, #1 - rsbs r0, r0, #0 - add sl, r0 - adds r4, #1 - ldr r1, [sp, #4] - adds r1, #4 - str r1, [sp, #4] - mov r2, sl - cmp r2, #0 - bge _080A12B2 - mov r0, sb - adds r0, #0x6a - strh r6, [r0] - ldr r0, _080A136C @ =gUnk_03003F80 - adds r0, #0x27 - movs r1, #0xff - strb r1, [r0] - mov r1, sb - adds r1, #0x68 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080A1370 - movs r0, #0xe2 - bl sub_080A3268 - bl sub_08050384 - b _080A1376 - .align 2, 0 -_080A136C: .4byte gUnk_03003F80 -_080A1370: - ldr r1, _080A1384 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_080A1376: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1384: .4byte gUnk_02033280 - - thumb_func_start sub_080A1388 -sub_080A1388: @ 0x080A1388 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r5, #0x70 - ldr r4, [r0, #0x64] - movs r6, #9 -_080A1392: - ldr r1, [r4] - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - blt _080A13A6 - cmp r1, #0 - beq _080A13A6 - adds r0, r1, #0 - bl sub_0805E79C -_080A13A6: - subs r6, #1 - adds r5, #1 - adds r4, #4 - cmp r6, #0 - bge _080A1392 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A13B4 -sub_080A13B4: @ 0x080A13B4 - push {r4, lr} - adds r4, r1, #0 - adds r1, r0, #0 - adds r1, #0x6a - adds r0, #0x6c - movs r2, #0 - ldrsh r1, [r1, r2] - movs r2, #0 - ldrsh r0, [r0, r2] - cmp r1, r0 - blt _080A13D8 - ldr r0, _080A13D4 @ =0x0000300C - bl sub_08056378 - movs r0, #1 - b _080A13E0 - .align 2, 0 -_080A13D4: .4byte 0x0000300C -_080A13D8: - ldr r0, _080A13E4 @ =0x00003005 - bl sub_08056378 - movs r0, #0 -_080A13E0: - str r0, [r4, #0x14] - pop {r4, pc} - .align 2, 0 -_080A13E4: .4byte 0x00003005 - - thumb_func_start sub_080A13E8 -sub_080A13E8: @ 0x080A13E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_080A1514 - lsls r0, r0, #2 - ldr r1, _080A1408 @ =gUnk_08124EA0 - adds r4, r0, r1 - movs r6, #0 - ldrb r0, [r4] - cmp r0, #0x5c - beq _080A141C - cmp r0, #0x5c - bgt _080A140C - cmp r0, #0x3f - beq _080A1412 - b _080A1444 - .align 2, 0 -_080A1408: .4byte gUnk_08124EA0 -_080A140C: - cmp r0, #0x63 - beq _080A1430 - b _080A1444 -_080A1412: - ldr r0, _080A1418 @ =gUnk_02002A40 - adds r0, #0xbb - b _080A1424 - .align 2, 0 -_080A1418: .4byte gUnk_02002A40 -_080A141C: - ldr r0, _080A142C @ =gUnk_02002A40 - movs r1, #0x8b - lsls r1, r1, #1 - adds r0, r0, r1 -_080A1424: - ldrb r0, [r0] - cmp r0, #0 - beq _080A1444 - b _080A1454 - .align 2, 0 -_080A142C: .4byte gUnk_02002A40 -_080A1430: - movs r0, #0x4f - bl GetProgressFlag - cmp r0, #0 - bne _080A1442 - movs r0, #0x4f - bl sub_0807CD04 - b _080A1444 -_080A1442: - movs r6, #1 -_080A1444: - cmp r6, #0 - bne _080A1454 - ldrb r0, [r4] - ldrb r1, [r4, #1] - movs r2, #0 - bl sub_080A7C18 - b _080A145C -_080A1454: - adds r1, r5, #0 - adds r1, #0x6e - movs r0, #2 - strh r0, [r1] -_080A145C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A1460 -sub_080A1460: @ 0x080A1460 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080A1514 - adds r1, r5, #0 - adds r1, #0x70 - movs r4, #0 - ldr r3, _080A149C @ =gUnk_08124ECC - movs r2, #9 -_080A1472: - movs r0, #0 - ldrsb r0, [r1, r0] - adds r0, r0, r3 - ldrb r0, [r0] - adds r4, r4, r0 - adds r1, #1 - subs r2, #1 - cmp r2, #0 - bge _080A1472 - adds r0, r4, #0 - bl sub_080526CC - ldr r0, _080A14A0 @ =0x00003007 - adds r1, r5, #0 - bl sub_08056398 - ldr r1, _080A14A4 @ =gUnk_02000050 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1, #0x10] - pop {r4, r5, pc} - .align 2, 0 -_080A149C: .4byte gUnk_08124ECC -_080A14A0: .4byte 0x00003007 -_080A14A4: .4byte gUnk_02000050 - - thumb_func_start sub_080A14A8 -sub_080A14A8: @ 0x080A14A8 - push {r4, lr} - bl sub_080A1514 - adds r4, r0, #0 - adds r4, #1 - cmp r4, #9 - ble _080A14B8 - movs r4, #9 -_080A14B8: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _080A14C8 - movs r0, #0x4b - bl sub_0807CD04 - b _080A14CE -_080A14C8: - movs r0, #0x4b - bl sub_0807CD80 -_080A14CE: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _080A14DE - movs r0, #0x4c - bl sub_0807CD04 - b _080A14E4 -_080A14DE: - movs r0, #0x4c - bl sub_0807CD80 -_080A14E4: - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _080A14F4 - movs r0, #0x4d - bl sub_0807CD04 - b _080A14FA -_080A14F4: - movs r0, #0x4d - bl sub_0807CD80 -_080A14FA: - movs r0, #8 - ands r0, r4 - cmp r0, #0 - beq _080A150A - movs r0, #0x4e - bl sub_0807CD04 - b _080A1510 -_080A150A: - movs r0, #0x4e - bl sub_0807CD80 -_080A1510: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A1514 -sub_080A1514: @ 0x080A1514 - push {r4, lr} - movs r0, #0x4b - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x4c - bl GetProgressFlag - cmp r0, #0 - beq _080A1530 - movs r0, #2 - orrs r4, r0 -_080A1530: - movs r0, #0x4d - bl GetProgressFlag - cmp r0, #0 - beq _080A153E - movs r0, #4 - orrs r4, r0 -_080A153E: - movs r0, #0x4e - bl GetProgressFlag - cmp r0, #0 - beq _080A154C - movs r0, #8 - orrs r4, r0 -_080A154C: - adds r0, r4, #0 - pop {r4, pc} - - thumb_func_start sub_080A1550 -sub_080A1550: @ 0x080A1550 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r1 - movs r0, #0 - str r0, [r1, #0x14] - movs r0, #0xb9 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080A15FE - movs r0, #0x28 - bl sub_0801D8E0 - str r0, [r4, #0x64] - cmp r0, #0 - bne _080A1582 - adds r0, r4, #0 - bl sub_0805E79C - b _080A15FE -_080A1582: - mov r0, r8 - ldr r1, [r0, #4] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - bl sub_080A1514 - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080A15B4 @ =gUnk_08124C48 - adds r5, r1, r0 - ldr r4, [r4, #0x64] - mov sb, r4 - ldr r7, _080A15B8 @ =gUnk_03000BF0 - movs r6, #9 -_080A15A8: - movs r1, #0 - ldrsh r0, [r5, r1] - cmp r0, #0 - bgt _080A15BC - movs r4, #0 - b _080A15E6 - .align 2, 0 -_080A15B4: .4byte gUnk_08124C48 -_080A15B8: .4byte gUnk_03000BF0 -_080A15BC: - movs r0, #0 - ldrsh r1, [r5, r0] - subs r1, #1 - movs r0, #0x41 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _080A15E6 - ldrh r0, [r5, #2] - ldrh r1, [r7, #6] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #4] - ldrh r1, [r7, #8] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] -_080A15E6: - mov r0, sb - adds r0, #4 - mov sb, r0 - subs r0, #4 - stm r0!, {r4} - subs r6, #1 - adds r5, #6 - cmp r6, #0 - bge _080A15A8 - movs r0, #1 - mov r1, r8 - str r0, [r1, #0x14] -_080A15FE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080A1608 -sub_080A1608: @ 0x080A1608 - push {r4, lr} - ldr r4, _080A163C @ =0x00003002 - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - beq _080A1618 - adds r4, #4 -_080A1618: - adds r0, r4, #0 - bl sub_08056378 - ldr r4, _080A1640 @ =gUnk_02000050 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #6] - strb r1, [r4, #7] - bl sub_080A1514 - lsls r0, r0, #2 - ldr r1, _080A1644 @ =gUnk_08124C20 - adds r0, r0, r1 - ldrh r1, [r0] - str r1, [r4, #0x10] - ldrh r0, [r0, #2] - str r0, [r4, #0x14] - pop {r4, pc} - .align 2, 0 -_080A163C: .4byte 0x00003002 -_080A1640: .4byte gUnk_02000050 -_080A1644: .4byte gUnk_08124C20 - - thumb_func_start sub_080A1648 -sub_080A1648: @ 0x080A1648 - push {r4, lr} - ldr r4, _080A1684 @ =0x0000407F - ldr r1, _080A1688 @ =0x00000D36 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _080A168C @ =0x00000D37 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _080A1690 @ =0x00000D38 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - subs r4, #1 - ldr r1, _080A1694 @ =0x00000D75 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _080A1698 @ =0x00000E75 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, pc} - .align 2, 0 -_080A1684: .4byte 0x0000407F -_080A1688: .4byte 0x00000D36 -_080A168C: .4byte 0x00000D37 -_080A1690: .4byte 0x00000D38 -_080A1694: .4byte 0x00000D75 -_080A1698: .4byte 0x00000E75 - - thumb_func_start sub_080A169C -sub_080A169C: @ 0x080A169C - push {lr} - ldr r0, _080A16C8 @ =0x00000D36 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080A16CC @ =0x00000D37 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080A16D0 @ =0x00000D38 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080A16D4 @ =0x00000D75 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080A16D8 @ =0x00000E75 - movs r1, #1 - bl sub_0807BA8C - pop {pc} - .align 2, 0 -_080A16C8: .4byte 0x00000D36 -_080A16CC: .4byte 0x00000D37 -_080A16D0: .4byte 0x00000D38 -_080A16D4: .4byte 0x00000D75 -_080A16D8: .4byte 0x00000E75 - - thumb_func_start sub_080A16DC -sub_080A16DC: @ 0x080A16DC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A1700 @ =gUnk_08124ED0 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080A1DCC - adds r0, r4, #0 - bl sub_080A1C9C - pop {r4, pc} - .align 2, 0 -_080A1700: .4byte gUnk_08124ED0 - - thumb_func_start sub_080A1704 -sub_080A1704: @ 0x080A1704 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - movs r0, #0x7b - bl sub_0807CBE4 - cmp r0, #0 - beq _080A171E - bl sub_0805E780 -_080A171E: - ldr r0, _080A1828 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x45 - bhi _080A181C - movs r0, #0x40 - bl sub_0801D8E0 - adds r7, r0, #0 - cmp r7, #0 - beq _080A181C - movs r6, #0 - movs r0, #1 - mov sb, r0 - mov r2, sb - mov r1, sl - strb r2, [r1, #0xc] - str r7, [r1, #0x64] - adds r1, #0x6e - movs r3, #0 - mov r8, r3 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] - mov r0, sl - adds r0, #0x6c - strh r6, [r0] - mov r0, sl - str r0, [r7] - movs r0, #0x5c - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r7, [r1, #0x64] - str r1, [r7, #4] - movs r0, #0x5d - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - ldr r4, _080A182C @ =gUnk_03000BF0 - movs r2, #0x80 - lsls r2, r2, #2 - adds r5, r2, #0 - ldrh r3, [r4, #6] - adds r0, r5, r3 - strh r0, [r1, #0x2e] - movs r2, #0xcc - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r4, #8] - adds r0, r0, r3 - strh r0, [r1, #0x32] - str r7, [r1, #0x64] - str r1, [r7, #8] - movs r0, #0x5d - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - movs r2, #0x98 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r4, #6] - adds r0, r0, r3 - strh r0, [r1, #0x2e] - adds r2, #0xb0 - adds r0, r2, #0 - ldrh r3, [r4, #8] - adds r0, r0, r3 - strh r0, [r1, #0x32] - str r7, [r1, #0x64] - str r1, [r7, #0xc] - ldr r2, _080A1830 @ =gUnk_03000F50 - ldr r0, _080A1834 @ =0x00001E07 - strh r0, [r2, #0x2c] - ldrh r0, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - mov r0, sl - adds r0, #0x70 - strh r6, [r0] - adds r0, #2 - strh r6, [r0] - adds r0, #2 - mov r1, r8 - strb r1, [r0] - adds r0, #6 - strb r1, [r0] - subs r0, #4 - movs r1, #0xc0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldr r0, _080A1838 @ =gUnk_030010A0 - adds r0, #0x39 - mov r2, sb - strb r2, [r0] - ldr r2, _080A183C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xa - orrs r0, r1 - str r0, [r2, #0x30] - ldrh r3, [r4, #6] - adds r5, r5, r3 - strh r5, [r2, #0x16] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r4, [r4, #8] - adds r0, r0, r4 - strh r0, [r2, #0x18] - ldr r0, _080A1840 @ =0x80100000 - bl sub_080A3268 - ldr r0, _080A1844 @ =gUnk_02033A90 - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - ldr r3, _080A1848 @ =0x00000864 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [r1] -_080A181C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1828: .4byte gUnk_03003DBC -_080A182C: .4byte gUnk_03000BF0 -_080A1830: .4byte gUnk_03000F50 -_080A1834: .4byte 0x00001E07 -_080A1838: .4byte gUnk_030010A0 -_080A183C: .4byte gUnk_03003F80 -_080A1840: .4byte 0x80100000 -_080A1844: .4byte gUnk_02033A90 -_080A1848: .4byte 0x00000864 - - thumb_func_start sub_080A184C -sub_080A184C: @ 0x080A184C - push {lr} - adds r3, r0, #0 - adds r1, r3, #0 - adds r1, #0x6e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A1874 - movs r0, #2 - strb r0, [r3, #0xc] - subs r1, #2 - movs r2, #8 - movs r0, #8 - strh r0, [r1] - ldr r0, [r3, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - strb r2, [r0] -_080A1874: - ldr r2, _080A1894 @ =gUnk_03003F80 - ldr r1, _080A1898 @ =gUnk_03000BF0 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A1894: .4byte gUnk_03003F80 -_080A1898: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A189C -sub_080A189C: @ 0x080A189C - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A18E6 - movs r0, #3 - strb r0, [r3, #0xc] - movs r0, #0x23 - strb r0, [r3, #0xe] - adds r1, r3, #0 - adds r1, #0x6c - movs r2, #1 - movs r0, #1 - strh r0, [r1] - adds r1, #0xc - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0x7b - strb r2, [r0] - ldr r0, [r3, #0x64] - ldr r0, [r0, #8] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x96 - movs r1, #1 - bl sub_08080964 -_080A18E6: - ldr r2, _080A1904 @ =gUnk_03003F80 - ldr r1, _080A1908 @ =gUnk_03000BF0 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A1904: .4byte gUnk_03003F80 -_080A1908: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A190C -sub_080A190C: @ 0x080A190C - push {r4, lr} - adds r4, r0, #0 - bl sub_080A1FF0 - ldr r3, [r4, #0x64] - ldr r2, [r3, #8] - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A197C - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080A20B8 - cmp r0, #0 - beq _080A1956 - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0x10 - strh r0, [r1] - adds r1, #0xc - movs r0, #0xc0 - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - adds r0, r4, #0 - bl sub_080A1D70 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - movs r1, #0x18 - strb r1, [r0] -_080A1956: - ldr r2, _080A1974 @ =gUnk_03003F80 - ldr r1, _080A1978 @ =gUnk_03000BF0 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - b _080A1988 - .align 2, 0 -_080A1974: .4byte gUnk_03003F80 -_080A1978: .4byte gUnk_03000BF0 -_080A197C: - ldr r1, _080A198C @ =gUnk_03003F80 - ldrh r0, [r2, #0x2e] - strh r0, [r1, #0x16] - ldr r0, [r3, #8] - ldrh r0, [r0, #0x32] - strh r0, [r1, #0x18] -_080A1988: - pop {r4, pc} - .align 2, 0 -_080A198C: .4byte gUnk_03003F80 - - thumb_func_start sub_080A1990 -sub_080A1990: @ 0x080A1990 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x64] - ldr r0, [r1, #4] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A19D6 - ldr r0, [r1, #8] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] - movs r0, #5 - strb r0, [r2, #0xc] - movs r0, #0x23 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x6c - movs r0, #2 - strh r0, [r1] - adds r1, #0xc - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1] - adds r1, #3 - movs r0, #1 - strb r0, [r1] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x96 - movs r1, #1 - bl sub_08080964 -_080A19D6: - ldr r2, _080A19F4 @ =gUnk_03003F80 - ldr r1, _080A19F8 @ =gUnk_03000BF0 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A19F4: .4byte gUnk_03003F80 -_080A19F8: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A19FC -sub_080A19FC: @ 0x080A19FC - push {r4, lr} - adds r4, r0, #0 - bl sub_080A1FF0 - ldr r3, [r4, #0x64] - ldr r2, [r3, #0xc] - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A1A6C - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080A20B8 - cmp r0, #0 - beq _080A1A46 - movs r0, #6 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0x20 - strh r0, [r1] - adds r1, #0xc - movs r0, #0xc0 - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - adds r0, r4, #0 - bl sub_080A1D70 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - movs r1, #0x18 - strb r1, [r0] -_080A1A46: - ldr r2, _080A1A64 @ =gUnk_03003F80 - ldr r1, _080A1A68 @ =gUnk_03000BF0 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - b _080A1A78 - .align 2, 0 -_080A1A64: .4byte gUnk_03003F80 -_080A1A68: .4byte gUnk_03000BF0 -_080A1A6C: - ldr r1, _080A1A7C @ =gUnk_03003F80 - ldrh r0, [r2, #0x2e] - strh r0, [r1, #0x16] - ldr r0, [r3, #0xc] - ldrh r0, [r0, #0x32] - strh r0, [r1, #0x18] -_080A1A78: - pop {r4, pc} - .align 2, 0 -_080A1A7C: .4byte gUnk_03003F80 - - thumb_func_start sub_080A1A80 -sub_080A1A80: @ 0x080A1A80 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x64] - ldr r0, [r1, #4] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A1AC0 - ldr r0, [r1, #0xc] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] - movs r0, #7 - strb r0, [r2, #0xc] - movs r0, #0x23 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x6c - adds r0, #0xe1 - strh r0, [r1] - adds r1, #0xc - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x96 - movs r1, #1 - bl sub_08080964 -_080A1AC0: - ldr r2, _080A1AE0 @ =gUnk_03003F80 - ldr r1, _080A1AE4 @ =gUnk_03000BF0 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A1AE0: .4byte gUnk_03003F80 -_080A1AE4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A1AE8 -sub_080A1AE8: @ 0x080A1AE8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080A1FF0 - ldr r0, [r4, #0x64] - ldr r1, [r0, #0xc] - adds r0, r1, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A1B24 - adds r0, r4, #0 - bl sub_080A20B8 - cmp r0, #0 - beq _080A1B24 - movs r0, #8 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0x40 - strh r0, [r1] - adds r1, #0xc - movs r0, #0xc0 - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] -_080A1B24: - ldr r2, _080A1B44 @ =gUnk_03003F80 - ldr r1, _080A1B48 @ =gUnk_03000BF0 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {r4, pc} - .align 2, 0 -_080A1B44: .4byte gUnk_03003F80 -_080A1B48: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A1B4C -sub_080A1B4C: @ 0x080A1B4C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - ldrb r7, [r0] - cmp r7, #0 - bne _080A1BD0 - adds r5, r4, #0 - adds r5, #0x6c - ldrh r0, [r5] - cmp r0, #0 - beq _080A1B80 - movs r0, #0x2d - movs r1, #1 - bl sub_08080964 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0xc0 - lsls r0, r0, #3 - strh r0, [r1] -_080A1B80: - movs r6, #0 - strh r7, [r5] - ldr r0, _080A1BF0 @ =gUnk_030010A0 - adds r0, #0x39 - strb r6, [r0] - bl sub_08079F8C - cmp r0, #0 - beq _080A1BD0 - ldr r3, _080A1BF4 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _080A1BD0 - movs r0, #9 - strb r0, [r4, #0xc] - strb r6, [r4, #0xe] - movs r0, #0xf0 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x6e - adds r0, #0xb4 - strh r0, [r1] - strb r6, [r4, #0x15] - movs r0, #0x60 - strh r0, [r4, #0x24] - ldr r2, _080A1BF8 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _080A1BFC @ =0xFFFDFFFF - ands r0, r1 - str r0, [r2, #0x30] - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, _080A1C00 @ =gUnk_03000BF0 - str r4, [r0, #0x30] - movs r0, #2 - bl sub_08078A90 -_080A1BD0: - ldr r2, _080A1BF8 @ =gUnk_03003F80 - ldr r1, _080A1C00 @ =gUnk_03000BF0 - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1BF0: .4byte gUnk_030010A0 -_080A1BF4: .4byte gLinkEntity -_080A1BF8: .4byte gUnk_03003F80 -_080A1BFC: .4byte 0xFFFDFFFF -_080A1C00: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A1C04 -sub_080A1C04: @ 0x080A1C04 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x6e - ldrh r0, [r1] - cmp r0, #0 - bne _080A1C52 - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080A1E54 - ldrb r0, [r4, #0xf] - subs r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080A1C40 - movs r0, #0x7b - bl sub_0807CCC8 - ldr r0, _080A1C3C @ =gUnk_0813ABD0 - movs r1, #8 - bl sub_0808091C - b _080A1C9A - .align 2, 0 -_080A1C3C: .4byte gUnk_0813ABD0 -_080A1C40: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bne _080A1C9A - movs r0, #7 - movs r1, #4 - bl sub_08050054 - b _080A1C9A -_080A1C52: - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb3 - bhi _080A1C66 - adds r0, r4, #0 - bl sub_080A1E54 - b _080A1C9A -_080A1C66: - ldrh r1, [r1] - cmp r1, #0xb4 - beq _080A1C76 - movs r0, #0x96 - lsls r0, r0, #1 - cmp r1, r0 - beq _080A1C8A - b _080A1C9A -_080A1C76: - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0xb4 - lsls r0, r0, #2 - movs r1, #2 - bl sub_08080964 - b _080A1C9A -_080A1C8A: - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x4b - movs r1, #1 - bl sub_08080964 -_080A1C9A: - pop {r4, pc} - - thumb_func_start sub_080A1C9C -sub_080A1C9C: @ 0x080A1C9C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #0 - beq _080A1D04 - adds r0, r4, #0 - adds r0, #0x74 - adds r7, r4, #0 - adds r7, #0x75 - ldrb r1, [r0] - adds r6, r0, #0 - ldrb r0, [r7] - cmp r1, r0 - beq _080A1CE4 - subs r5, #2 - movs r0, #0 - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0xc - bl sub_080A1D8C - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _080A1D14 - ldrb r0, [r7] - strb r0, [r6] - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - strh r0, [r5] - b _080A1D14 -_080A1CE4: - adds r0, r4, #0 - movs r1, #0xc - bl sub_080A1D8C - adds r0, r4, #0 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r0] - adds r2, r1, #0 - ldrh r1, [r2] - cmp r0, r1 - bne _080A1D14 - movs r0, #0 - strb r0, [r5] - b _080A1D14 -_080A1D04: - adds r0, r4, #0 - movs r1, #8 - bl sub_080A1D8C - adds r6, r4, #0 - adds r6, #0x74 - adds r2, r4, #0 - adds r2, #0x76 -_080A1D14: - adds r3, r4, #0 - adds r3, #0x70 - ldr r5, _080A1D68 @ =gUnk_080C9160 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - movs r7, #0 - ldrsh r1, [r0, r7] - ldrh r0, [r2] - muls r0, r1, r0 - cmp r0, #0 - bge _080A1D2E - adds r0, #0xff -_080A1D2E: - asrs r0, r0, #8 - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - adds r4, #0x72 - ldrb r0, [r6] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r5 - movs r5, #0 - ldrsh r1, [r0, r5] - ldrh r0, [r2] - muls r0, r1, r0 - cmp r0, #0 - bge _080A1D4E - adds r0, #0xff -_080A1D4E: - asrs r0, r0, #8 - ldrh r1, [r4] - subs r1, r1, r0 - strh r1, [r4] - ldr r2, _080A1D6C @ =gUnk_03000F50 - ldrh r0, [r3] - lsrs r0, r0, #8 - strh r0, [r2, #0x2e] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x18 - strh r1, [r2, #0x30] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1D68: .4byte gUnk_080C9160 -_080A1D6C: .4byte gUnk_03000F50 - - thumb_func_start sub_080A1D70 -sub_080A1D70: @ 0x080A1D70 - adds r2, r0, #0 - adds r0, #0x75 - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x7a - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r1, [r0] - adds r0, #4 - strh r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_080A1D8C -sub_080A1D8C: @ 0x080A1D8C - push {r4, lr} - adds r4, r1, #0 - adds r3, r0, #0 - adds r3, #0x78 - adds r2, r0, #0 - adds r2, #0x76 - ldrh r1, [r3] - ldrh r0, [r2] - cmp r1, r0 - beq _080A1DC8 - cmp r1, r0 - bls _080A1DB6 - adds r3, r0, #0 - subs r0, r1, r3 - cmp r4, r0 - bge _080A1DB2 - adds r0, r3, r4 - strh r0, [r2] - b _080A1DC8 -_080A1DB2: - strh r1, [r2] - b _080A1DC8 -_080A1DB6: - ldrh r1, [r2] - ldrh r3, [r3] - subs r0, r1, r3 - cmp r4, r0 - bge _080A1DC6 - subs r0, r1, r4 - strh r0, [r2] - b _080A1DC8 -_080A1DC6: - strh r3, [r2] -_080A1DC8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A1DCC -sub_080A1DCC: @ 0x080A1DCC - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x64] - ldr r3, [r1, #8] - cmp r3, #0 - bne _080A1DDE - ldr r3, [r1, #0xc] - cmp r3, #0 - beq _080A1E24 -_080A1DDE: - adds r0, r3, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _080A1E24 - ldrb r0, [r3, #0x19] - lsrs r0, r0, #6 - cmp r0, #2 - bne _080A1E24 - ldr r3, [r1, #0x10] - ldrb r2, [r3, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r0, [r4, #0x64] - ldr r3, [r0, #0x14] - ldrb r2, [r3, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r2, [r3, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r2, [r3, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - ands r1, r0 - b _080A1E50 -_080A1E24: - ldr r0, [r4, #0x64] - ldr r2, [r0, #0x10] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldr r0, [r4, #0x64] - ldr r3, [r0, #0x14] - ldrb r0, [r3, #0x10] - orrs r0, r1 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - orrs r0, r1 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - orrs r0, r1 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - orrs r1, r0 -_080A1E50: - strb r1, [r3, #0x10] - pop {r4, pc} - - thumb_func_start sub_080A1E54 -sub_080A1E54: @ 0x080A1E54 - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - adds r0, #1 - strb r0, [r2, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _080A1ECA - adds r0, r2, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _080A1ECA - bl sub_08000E50 - ldr r3, _080A1ECC @ =gUnk_03000BF0 - movs r1, #0xf0 - adds r2, r0, #0 - ands r2, r1 - movs r5, #0x80 - lsls r5, r5, #2 - adds r1, r5, #0 - adds r2, r2, r1 - ldrh r1, [r3, #6] - adds r1, r1, r2 - subs r1, #0x78 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - movs r1, #0x70 - ands r0, r1 - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrh r3, [r3, #8] - adds r0, r0, r3 - subs r0, #0x38 - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 -_080A1ECA: - pop {r4, r5, pc} - .align 2, 0 -_080A1ECC: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A1ED0 -sub_080A1ED0: @ 0x080A1ED0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sb, r1 - adds r5, r2, #0 - movs r1, #0 - str r1, [sp] - ldr r4, _080A1F60 @ =gUnk_08124EF8 - lsls r1, r5, #2 - adds r1, r1, r4 - ldrh r2, [r1] - ldr r3, _080A1F64 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - adds r2, r2, r1 - mov sl, r2 - lsls r1, r5, #1 - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r2, [r1] - ldrh r1, [r3, #8] - adds r2, r2, r1 - mov r8, r2 - ldr r1, _080A1F68 @ =gUnk_08124FF0 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080A1FB0 - lsls r7, r5, #3 - movs r0, #0x10 - adds r6, r7, #0 - eors r6, r0 -_080A1F1C: - movs r0, #0x60 - mov r1, sb - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _080A1FA6 - mov r0, sp - ldrb r0, [r0] - strb r0, [r2, #0xb] - ldr r1, [sp] - adds r1, #1 - str r1, [sp] - mov r0, sl - strh r0, [r2, #0x2e] - mov r1, r8 - strh r1, [r2, #0x32] - strb r7, [r2, #0x15] - adds r0, r2, #0 - adds r0, #0x7a - strb r6, [r0] - ldrh r1, [r4, #4] - subs r0, #2 - strh r1, [r0] - cmp r5, #1 - beq _080A1F7A - cmp r5, #1 - blo _080A1F6C - cmp r5, #2 - beq _080A1F80 - cmp r5, #3 - beq _080A1F94 - b _080A1FA6 - .align 2, 0 -_080A1F60: .4byte gUnk_08124EF8 -_080A1F64: .4byte gUnk_03000BF0 -_080A1F68: .4byte gUnk_08124FF0 -_080A1F6C: - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #2] - rsbs r0, r0, #0 - b _080A1F8C -_080A1F7A: - ldrh r0, [r4, #2] - adds r0, #0xf0 - b _080A1F98 -_080A1F80: - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #2] - adds r0, #0xa0 -_080A1F8C: - adds r1, r2, #0 - adds r1, #0x76 - strh r0, [r1] - b _080A1FA6 -_080A1F94: - ldrh r0, [r4, #2] - rsbs r0, r0, #0 -_080A1F98: - adds r1, r2, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x76 - strh r1, [r0] -_080A1FA6: - adds r4, #6 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _080A1F1C -_080A1FB0: - mov r0, sb - cmp r0, #0 - bne _080A1FE4 - movs r0, #0xf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _080A1FE4 - mov r1, sl - strh r1, [r2, #0x2e] - mov r0, r8 - strh r0, [r2, #0x32] - ldrb r0, [r2, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r2, #0x1b] - ldrb r0, [r2, #0x19] - orrs r0, r1 - strb r0, [r2, #0x19] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] -_080A1FE4: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080A1FF0 -sub_080A1FF0: @ 0x080A1FF0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _080A2066 - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x20 - bhi _080A2066 - movs r0, #0xf - ands r1, r0 - cmp r1, #0 - bne _080A2066 - adds r0, r5, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _080A2066 - bl sub_08000E50 - ldr r3, _080A209C @ =gUnk_03000BF0 - movs r1, #0x78 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #2 - adds r2, r1, #0 - adds r2, r0, r2 - ldrh r1, [r3, #6] - adds r1, r1, r2 - subs r1, #0x3c - strh r1, [r4, #0x2e] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrh r3, [r3, #8] - adds r0, r0, r3 - subs r0, #0x3c - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 -_080A2066: - adds r4, r5, #0 - adds r4, #0x7b - ldrb r0, [r4] - cmp r0, #0 - beq _080A20B4 - ldr r0, _080A20A0 @ =gLinkEntity - ldr r2, _080A209C @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - movs r3, #0x80 - lsls r3, r3, #2 - adds r1, r1, r3 - ldrh r2, [r2, #8] - adds r3, #0x10 - adds r2, r2, r3 - movs r3, #0x80 - lsls r3, r3, #1 - bl sub_0806FCB8 - cmp r0, #0 - beq _080A20B2 - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _080A20A4 - movs r0, #0x78 - strb r0, [r5, #0xe] - b _080A20B4 - .align 2, 0 -_080A209C: .4byte gUnk_03000BF0 -_080A20A0: .4byte gLinkEntity -_080A20A4: - cmp r0, #0x23 - bne _080A20B4 - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - b _080A20B4 -_080A20B2: - strb r0, [r4] -_080A20B4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A20B8 -sub_080A20B8: @ 0x080A20B8 - push {r4, lr} - adds r4, r1, #0 - cmp r4, #0 - bne _080A20C4 - movs r0, #1 - b _080A20FA -_080A20C4: - bl sub_08079F8C - cmp r0, #0 - beq _080A20F8 - ldr r0, _080A20F0 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080A20F8 - movs r1, #0 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _080A20EC - ldr r0, _080A20F4 @ =gUnk_03003F80 - ldrb r1, [r0, #0x14] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r1, r0, #0x1f -_080A20EC: - adds r0, r1, #0 - b _080A20FA - .align 2, 0 -_080A20F0: .4byte gLinkEntity -_080A20F4: .4byte gUnk_03003F80 -_080A20F8: - movs r0, #0 -_080A20FA: - pop {r4, pc} - - thumb_func_start sub_080A20FC -sub_080A20FC: @ 0x080A20FC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _080A2114 - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - bl sub_0807DD64 -_080A2114: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - pop {r4, pc} - - thumb_func_start sub_080A2124 -sub_080A2124: @ 0x080A2124 - push {lr} - ldr r3, _080A2134 @ =gUnk_08125010 - movs r1, #1 - movs r2, #0xe - bl sub_08078850 - pop {pc} - .align 2, 0 -_080A2134: .4byte gUnk_08125010 - - thumb_func_start sub_080A2138 -sub_080A2138: @ 0x080A2138 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x72 - bl sub_080A3268 - ldr r2, _080A2160 @ =gUnk_02002A40 - ldrb r0, [r4, #0xb] - adds r0, #0x18 - movs r1, #1 - lsls r1, r0 - ldr r0, [r2, #0x40] - orrs r0, r1 - str r0, [r2, #0x40] - adds r0, r4, #0 - movs r1, #0x46 - movs r2, #0 - bl CreateFX - pop {r4, pc} - .align 2, 0 -_080A2160: .4byte gUnk_02002A40 - - thumb_func_start sub_080A2164 -sub_080A2164: @ 0x080A2164 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A21DC - adds r1, r4, #0 - adds r1, #0x86 - ldrh r0, [r1] - cmp r0, #0 - beq _080A2180 - bl sub_0807CBE4 - cmp r0, #0 - beq _080A224E -_080A2180: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - subs r0, #0xe - ands r0, r1 - movs r1, #8 - orrs r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r0, #3 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r0, _080A21D4 @ =gUnk_03000BF0 - ldrb r0, [r0, #5] - strb r0, [r4, #0xf] - movs r0, #2 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x68 - ldr r0, _080A21D8 @ =0x0000FFFE - strh r0, [r1] - adds r1, #2 - movs r0, #0x80 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0 - bl sub_0805EC9C - b _080A221E - .align 2, 0 -_080A21D4: .4byte gUnk_03000BF0 -_080A21D8: .4byte 0x0000FFFE -_080A21DC: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A221E - movs r0, #2 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x6a - adds r2, r4, #0 - adds r2, #0x68 - ldrh r0, [r2] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x77 - bhi _080A2208 - movs r0, #1 - strh r0, [r2] -_080A2208: - ldrh r0, [r1] - cmp r0, #0x88 - bls _080A2212 - ldr r0, _080A2250 @ =0x0000FFFF - strh r0, [r2] -_080A2212: - ldrh r2, [r1] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_080A221E: - ldr r2, _080A2254 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #8 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - adds r2, #0x62 - ldrb r0, [r2] - movs r3, #0xdc - lsls r3, r3, #6 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080A2258 @ =gUnk_03000BF0 - ldrb r0, [r1, #5] - ldrb r4, [r4, #0xf] - cmp r0, r4 - beq _080A224E - ldrh r0, [r1] - cmp r0, #0 - bne _080A224E - bl sub_0805E780 -_080A224E: - pop {r4, pc} - .align 2, 0 -_080A2250: .4byte 0x0000FFFF -_080A2254: .4byte gUnk_03000F50 -_080A2258: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A225C -sub_080A225C: @ 0x080A225C - push {lr} - ldr r2, _080A2270 @ =gUnk_0812503C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A2270: .4byte gUnk_0812503C - - thumb_func_start sub_080A2274 -sub_080A2274: @ 0x080A2274 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080A22AE - adds r0, r1, #0 - bl sub_080A2340 - movs r0, #0xbd - movs r1, #1 - movs r2, #0 - bl CreateObject - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #3 - cmp r0, #1 - bne _080A229C - movs r1, #2 -_080A229C: - movs r0, #0xbd - movs r2, #0 - bl CreateObject - movs r0, #0xbd - movs r1, #4 - movs r2, #0 - bl CreateObject -_080A22AE: - pop {pc} - - thumb_func_start sub_080A22B0 -sub_080A22B0: @ 0x080A22B0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080A22C0 - adds r0, r1, #0 - bl sub_080A2340 -_080A22C0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A22C4 -sub_080A22C4: @ 0x080A22C4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - beq _080A22FC - cmp r5, #1 - beq _080A231C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A233E - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0xd] - adds r0, r1, r0 - strb r0, [r4, #0x1e] - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - cmp r1, r0 - bne _080A233E - b _080A233A -_080A22FC: - adds r0, r4, #0 - bl sub_080A2340 - movs r0, #8 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - ldrb r0, [r4, #0x1e] - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #0x1e - strh r0, [r4, #0x24] - b _080A233E -_080A231C: - ldrh r0, [r4, #0x24] - subs r0, #1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A233E - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #0x1e - strh r0, [r4, #0x24] - movs r0, #2 - b _080A233C -_080A233A: - movs r0, #1 -_080A233C: - strb r0, [r4, #0xc] -_080A233E: - pop {r4, r5, pc} - - thumb_func_start sub_080A2340 -sub_080A2340: @ 0x080A2340 - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _080A239C @ =gUnk_08125014 - adds r1, r1, r2 - ldrh r2, [r1] - strh r2, [r0, #0x2e] - ldrh r2, [r1, #2] - strh r2, [r0, #0x32] - ldrh r2, [r1, #4] - strb r2, [r0, #0x1e] - ldrb r1, [r1, #6] - movs r2, #0x29 - adds r2, r2, r0 - mov ip, r2 - movs r2, #7 - ands r2, r1 - mov r1, ip - ldrb r3, [r1] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - mov r2, ip - strb r1, [r2] - ldrb r3, [r0, #0x19] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r3 - movs r3, #0x40 - orrs r1, r3 - strb r1, [r0, #0x19] - ldrb r1, [r0, #0x1b] - ands r2, r1 - orrs r2, r3 - strb r2, [r0, #0x1b] - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #2 - orrs r1, r2 - strb r1, [r0, #0x18] - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 -_080A239C: .4byte gUnk_08125014 - - thumb_func_start sub_080A23A0 -sub_080A23A0: @ 0x080A23A0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _080A23C0 - ldr r0, _080A23D4 @ =gUnk_020342F8 - subs r1, #1 - bl sub_0801D5A8 - cmp r0, #0 - bne _080A23C0 - bl sub_0805E780 -_080A23C0: - ldr r0, _080A23D8 @ =gUnk_0812505C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A23D4: .4byte gUnk_020342F8 -_080A23D8: .4byte gUnk_0812505C - - thumb_func_start sub_080A23DC -sub_080A23DC: @ 0x080A23DC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A240C @ =gUnk_08125050 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r2, r4, #0 - adds r2, #0x68 - strh r0, [r2] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2] - bl sub_0807CBD0 - cmp r0, #0 - beq _080A2410 - movs r0, #2 - b _080A2412 - .align 2, 0 -_080A240C: .4byte gUnk_08125050 -_080A2410: - movs r0, #1 -_080A2412: - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A2420 -sub_080A2420: @ 0x080A2420 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x68 - ldrh r0, [r0] - bl sub_0807CBD0 - cmp r0, #0 - beq _080A243A - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A29BC -_080A243A: - pop {r4, pc} - - thumb_func_start sub_080A243C -sub_080A243C: @ 0x080A243C - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start nullsub_538 -nullsub_538: @ 0x080A2444 - bx lr - .align 2, 0 - - thumb_func_start sub_080A2448 -sub_080A2448: @ 0x080A2448 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080A245E - adds r0, r5, #0 - bl sub_080A2500 -_080A245E: - ldrb r0, [r5, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _080A24CE - adds r0, #1 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0xe] - strb r0, [r5, #0xa] - str r1, [r5, #0x54] - ldr r2, _080A24B4 @ =gUnk_03003D90 - ldr r4, [r2, #4] - cmp r4, r2 - beq _080A24BE -_080A2478: - ldrb r0, [r4, #8] - cmp r0, #3 - bne _080A24B8 - ldrb r0, [r5, #0xb] - ldrb r1, [r4, #9] - cmp r0, r1 - bne _080A24B8 - movs r3, #0x2e - ldrsh r0, [r4, r3] - movs r3, #0x2e - ldrsh r1, [r5, r3] - subs r0, r0, r1 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1f - bhi _080A24B8 - movs r1, #0x32 - ldrsh r0, [r4, r1] - movs r3, #0x32 - ldrsh r1, [r5, r3] - subs r0, r0, r1 - adds r0, #0x10 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x1f - bhi _080A24B8 - str r4, [r5, #0x54] - b _080A24BE - .align 2, 0 -_080A24B4: .4byte gUnk_03003D90 -_080A24B8: - ldr r4, [r4, #4] - cmp r4, r2 - bne _080A2478 -_080A24BE: - ldr r0, [r5, #0x54] - cmp r0, #0 - bne _080A24CA - adds r0, r5, #0 - bl sub_080A2534 -_080A24CA: - bl sub_08054564 -_080A24CE: - ldr r4, [r5, #0x54] - cmp r4, #0 - beq _080A24F6 - movs r2, #0x80 - lsls r2, r2, #0xb - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative - ldrh r0, [r5, #0x36] - subs r0, #4 - strh r0, [r5, #0x36] - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A24F6 - adds r0, r5, #0 - bl sub_080A2508 -_080A24F6: - adds r0, r5, #0 - bl sub_08080CB4 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A2500 -sub_080A2500: @ 0x080A2500 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080A2508 -sub_080A2508: @ 0x080A2508 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - movs r1, #0 - movs r3, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _080A252C - movs r0, #5 - strb r0, [r2, #0xe] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x86 - strh r1, [r0] -_080A252C: - adds r0, r4, #0 - bl sub_080A2500 - pop {r4, pc} - - thumb_func_start sub_080A2534 -sub_080A2534: @ 0x080A2534 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - movs r1, #0 - movs r3, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _080A2558 - movs r0, #4 - strb r0, [r2, #0xe] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x86 - strh r1, [r0] -_080A2558: - adds r0, r4, #0 - bl sub_080A2500 - pop {r4, pc} - - thumb_func_start sub_080A2560 -sub_080A2560: @ 0x080A2560 - push {lr} - ldr r2, _080A2574 @ =gUnk_08125084 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A2574: .4byte gUnk_08125084 - - thumb_func_start sub_080A2578 -sub_080A2578: @ 0x080A2578 - push {lr} - movs r1, #8 - strb r1, [r0, #0xc] - bl sub_080A259C - pop {pc} - - thumb_func_start sub_080A2584 -sub_080A2584: @ 0x080A2584 - push {lr} - bl sub_0805E564 - ldr r1, _080A2598 @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] - bl sub_0805E780 - pop {pc} - .align 2, 0 -_080A2598: .4byte gUnk_02034490 - - thumb_func_start sub_080A259C -sub_080A259C: @ 0x080A259C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r5, _080A25DC @ =gLinkEntity - ldrb r1, [r5, #0x10] - movs r7, #0x7f - adds r0, r7, #0 - ands r0, r1 - strb r0, [r5, #0x10] - ldrb r1, [r5, #0x18] - movs r6, #4 - rsbs r6, r6, #0 - adds r0, r6, #0 - ands r0, r1 - strb r0, [r5, #0x18] - ldrb r1, [r5, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _080A269C - cmp r0, #1 - bgt _080A25E0 - cmp r0, #0 - beq _080A25E6 - b _080A273C - .align 2, 0 -_080A25DC: .4byte gLinkEntity -_080A25E0: - cmp r0, #2 - beq _080A26B4 - b _080A273C -_080A25E6: - movs r0, #1 - movs r2, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - adds r3, r4, #0 - adds r3, #0x29 - lsrs r1, r1, #0x1d - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r2, [r5, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _080A2670 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080A2678 - ldrb r0, [r4, #0xa] - bl sub_080542AC - ldr r1, _080A2674 @ =0x0000045B - cmp r0, #0 - beq _080A2688 - adds r1, #3 - b _080A2688 - .align 2, 0 -_080A2670: .4byte gUnk_03003F80 -_080A2674: .4byte 0x0000045B -_080A2678: - ldrb r0, [r4, #0xa] - bl sub_080542AC - ldr r1, _080A2698 @ =0x000001B9 - cmp r0, #0 - beq _080A2688 - movs r1, #0xb8 - lsls r1, r1, #2 -_080A2688: - lsrs r0, r1, #8 - strh r0, [r4, #0x12] - movs r0, #0xff - ands r1, r0 - adds r0, r4, #0 - bl sub_080042AC - b _080A273C - .align 2, 0 -_080A2698: .4byte 0x000001B9 -_080A269C: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - beq _080A273C - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _080A273C -_080A26B4: - adds r0, r4, #0 - bl sub_080042B8 - ldr r0, _080A2764 @ =gUnk_02000050 - ldrb r1, [r0] - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - bne _080A2762 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A273C - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - strb r0, [r5, #0x10] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - movs r0, #3 - ands r1, r0 - ldrb r2, [r5, #0x18] - adds r0, r6, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r4, #0 - adds r0, #0x6a - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r1, _080A2768 @ =gUnk_03003F80 - adds r0, r4, #0 - adds r0, #0x6b - ldrb r0, [r0] - strb r0, [r1, #7] - adds r0, r4, #0 - adds r0, #0x6c - ldrb r0, [r0] - strb r0, [r1, #0xb] - adds r0, r4, #0 - adds r0, #0x6d - ldrb r0, [r0] - strb r0, [r1, #0xa] - adds r0, r4, #0 - adds r0, #0x6e - ldrb r0, [r0] - adds r2, r1, #0 - adds r2, #0x27 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x6f - ldrb r0, [r0] - strb r0, [r1, #0x1a] - ldr r0, [r4, #0x70] - str r0, [r1, #0x30] - adds r0, r4, #0 - adds r0, #0x74 - ldrb r0, [r0] - adds r1, #0x8a - strb r0, [r1] -_080A273C: - ldr r5, [r4, #0x50] - cmp r5, #0 - beq _080A2762 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA30 - ldrh r0, [r4, #0x12] - ldrb r1, [r4, #0x1e] - bl sub_080700C8 - ldrb r1, [r0] - adds r2, r5, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r1, [r0, #1] - adds r0, r5, #0 - adds r0, #0x63 - strb r1, [r0] -_080A2762: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A2764: .4byte gUnk_02000050 -_080A2768: .4byte gUnk_03003F80 - - thumb_func_start sub_080A276C -sub_080A276C: @ 0x080A276C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r7, r2, #0 - bl sub_0805E744 - adds r6, r0, #0 - cmp r6, #0 - beq _080A2820 - movs r0, #0xc1 - strb r0, [r6, #9] - movs r0, #6 - mov r8, r0 - mov r1, r8 - strb r1, [r6, #8] - strb r4, [r6, #0xa] - strb r7, [r6, #0xb] - str r5, [r6, #0x50] - adds r0, r6, #0 - movs r1, #6 - bl sub_0805EA2C - adds r0, r6, #0 - movs r1, #6 - bl sub_0805EA78 - ldr r4, _080A2828 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0806FA24 - ldr r0, _080A282C @ =gUnk_03003DC0 - mov r1, r8 - strb r1, [r0] - ldr r1, _080A2830 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4, #0x10] - adds r1, r6, #0 - adds r1, #0x69 - strb r0, [r1] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - subs r1, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - adds r1, #2 - strb r0, [r1] - ldr r1, _080A2834 @ =gUnk_03003F80 - ldrb r0, [r1, #7] - adds r2, r6, #0 - adds r2, #0x6b - strb r0, [r2] - ldrb r2, [r1, #0xb] - adds r0, r6, #0 - adds r0, #0x6c - strb r2, [r0] - ldrb r0, [r1, #0xa] - adds r2, r6, #0 - adds r2, #0x6d - strb r0, [r2] - adds r0, r1, #0 - adds r0, #0x27 - ldrb r0, [r0] - adds r2, #1 - strb r0, [r2] - ldrb r0, [r1, #0x1a] - adds r2, #1 - strb r0, [r2] - ldr r0, [r1, #0x30] - str r0, [r6, #0x70] - adds r1, #0x8a - ldrb r1, [r1] - adds r0, r6, #0 - adds r0, #0x74 - strb r1, [r0] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080A2820: - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A2828: .4byte gLinkEntity -_080A282C: .4byte gUnk_03003DC0 -_080A2830: .4byte gUnk_02034490 -_080A2834: .4byte gUnk_03003F80 \ No newline at end of file +_08080970: .4byte gRoomControls diff --git a/asm/code_08080974.s b/asm/code_08080974.s new file mode 100644 index 00000000..04c6c364 --- /dev/null +++ b/asm/code_08080974.s @@ -0,0 +1,71161 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08080974 +sub_08080974: @ 0x08080974 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldr r1, _0808098C @ =gRoomControls + ldrh r2, [r1, #6] + adds r0, r2, #0 + adds r0, #0x78 + cmp r3, r0 + bhi _08080990 + strh r2, [r1, #0xa] + b _080809A2 + .align 2, 0 +_0808098C: .4byte gRoomControls +_08080990: + ldrh r0, [r1, #0x1e] + adds r2, r2, r0 + adds r0, r2, #0 + subs r0, #0x78 + cmp r3, r0 + bhs _0808099E + adds r0, r3, #0 +_0808099E: + subs r0, #0x78 + strh r0, [r1, #0xa] +_080809A2: + ldrh r2, [r1, #8] + adds r0, r2, #0 + adds r0, #0x50 + cmp r4, r0 + bhi _080809B0 + strh r2, [r1, #0xc] + b _080809C2 +_080809B0: + ldrh r0, [r1, #0x20] + adds r2, r2, r0 + adds r0, r2, #0 + subs r0, #0x50 + cmp r4, r0 + bhs _080809BE + adds r0, r4, #0 +_080809BE: + subs r0, #0x50 + strh r0, [r1, #0xc] +_080809C2: + bl sub_080809D4 + ldr r1, _080809D0 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_080809D0: .4byte gUnk_02000070 + + thumb_func_start sub_080809D4 +sub_080809D4: @ 0x080809D4 + push {r4, lr} + ldr r2, _080809F4 @ =gRoomControls + ldrb r0, [r2, #0xf] + movs r1, #0xfb + ands r1, r0 + strb r1, [r2, #0xf] + ldr r4, [r2, #0x30] + movs r0, #0x2e + ldrsh r3, [r4, r0] + ldrh r1, [r2, #6] + adds r0, r1, #0 + adds r0, #0x78 + cmp r3, r0 + bgt _080809F8 + strh r1, [r2, #0xa] + b _08080A0A + .align 2, 0 +_080809F4: .4byte gRoomControls +_080809F8: + ldrh r0, [r2, #0x1e] + adds r1, r1, r0 + adds r0, r1, #0 + subs r0, #0x78 + cmp r3, r0 + bge _08080A06 + ldrh r0, [r4, #0x2e] +_08080A06: + subs r0, #0x78 + strh r0, [r2, #0xa] +_08080A0A: + ldr r4, [r2, #0x30] + movs r0, #0x32 + ldrsh r3, [r4, r0] + ldrh r1, [r2, #8] + adds r0, r1, #0 + adds r0, #0x50 + cmp r3, r0 + bgt _08080A1E + strh r1, [r2, #0xc] + b _08080A30 +_08080A1E: + ldrh r0, [r2, #0x20] + adds r1, r1, r0 + adds r0, r1, #0 + subs r0, #0x50 + cmp r3, r0 + bge _08080A2C + ldrh r0, [r4, #0x32] +_08080A2C: + subs r0, #0x50 + strh r0, [r2, #0xc] +_08080A30: + bl sub_08080BC4 + ldr r1, _08080A3C @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_08080A3C: .4byte gUnk_02000070 + + thumb_func_start sub_08080A40 +sub_08080A40: @ 0x08080A40 + push {r4, r5, r6, r7, lr} + ldr r7, _08080A70 @ =gRoomControls + ldr r1, [r7, #0x30] + ldr r0, _08080A74 @ =gLinkEntity + adds r2, r7, #0 + cmp r1, r0 + beq _08080A50 + b _08080B5C +_08080A50: + ldr r0, _08080A78 @ =gUnk_03003F80 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _08080A5A + b _08080B5C +_08080A5A: + ldrb r0, [r1, #0xc] + subs r0, #1 + cmp r0, #0x1c + bls _08080A64 + b _08080B5C +_08080A64: + lsls r0, r0, #2 + ldr r1, _08080A7C @ =_08080A80 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080A70: .4byte gRoomControls +_08080A74: .4byte gLinkEntity +_08080A78: .4byte gUnk_03003F80 +_08080A7C: .4byte _08080A80 +_08080A80: @ jump table + .4byte _08080AFA @ case 0 + .4byte _08080B5C @ case 1 + .4byte _08080B5C @ case 2 + .4byte _08080B5C @ case 3 + .4byte _08080B5C @ case 4 + .4byte _08080B5C @ case 5 + .4byte _08080B5C @ case 6 + .4byte _08080B5C @ case 7 + .4byte _08080AFA @ case 8 + .4byte _08080B5C @ case 9 + .4byte _08080B5C @ case 10 + .4byte _08080B5C @ case 11 + .4byte _08080B5C @ case 12 + .4byte _08080B5C @ case 13 + .4byte _08080AF4 @ case 14 + .4byte _08080B5C @ case 15 + .4byte _08080B5C @ case 16 + .4byte _08080B5C @ case 17 + .4byte _08080B5C @ case 18 + .4byte _08080B5C @ case 19 + .4byte _08080B5C @ case 20 + .4byte _08080B5C @ case 21 + .4byte _08080B5C @ case 22 + .4byte _08080AFA @ case 23 + .4byte _08080B5C @ case 24 + .4byte _08080B5C @ case 25 + .4byte _08080B5C @ case 26 + .4byte _08080B5C @ case 27 + .4byte _08080AFA @ case 28 +_08080AF4: + ldrb r0, [r2, #4] + cmp r0, #0x48 + beq _08080B5C +_08080AFA: + ldr r3, [r7, #0x30] + movs r0, #0x32 + ldrsh r1, [r3, r0] + ldrh r0, [r7, #8] + subs r6, r1, r0 + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldrh r0, [r7, #6] + subs r5, r1, r0 + asrs r0, r5, #4 + movs r2, #0x3f + ands r0, r2 + asrs r1, r6, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + adds r3, #0x38 + ldrb r1, [r3] + bl sub_080002C8 + adds r4, r0, #0 + ldr r0, [r7, #0x30] + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080002A8 + ldr r1, _08080B48 @ =gUnk_030010A0 + strh r0, [r1, #0xa] + cmp r4, #0x3f + beq _08080B50 + cmp r4, #0x3f + bhi _08080B4C + cmp r4, #0x29 + bhi _08080B5C + cmp r4, #0x28 + blo _08080B5C + b _08080B50 + .align 2, 0 +_08080B48: .4byte gUnk_030010A0 +_08080B4C: + cmp r4, #0xf1 + bne _08080B5C +_08080B50: + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0xff + movs r3, #0xa + bl sub_080806BC +_08080B5C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08080B60 +sub_08080B60: @ 0x08080B60 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _08080B90 @ =0x00005004 + adds r4, r0, r1 + ldr r2, _08080B94 @ =gUnk_080B37A0 + mov r8, r2 + movs r3, #0 + ldr r1, _08080B98 @ =0x00003FFF + mov ip, r1 + ldr r7, _08080B9C @ =gUnk_080B7910 + ldr r2, _08080BA0 @ =0x0000B004 + adds r1, r0, r2 + adds r2, r0, #4 + ldr r6, _08080BA4 @ =0xFFFFC000 + ldr r5, _08080BA8 @ =0x00000FFF +_08080B80: + ldrh r0, [r2] + cmp r0, ip + bhi _08080BAC + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + add r0, r8 + b _08080BB0 + .align 2, 0 +_08080B90: .4byte 0x00005004 +_08080B94: .4byte gUnk_080B37A0 +_08080B98: .4byte 0x00003FFF +_08080B9C: .4byte gUnk_080B7910 +_08080BA0: .4byte 0x0000B004 +_08080BA4: .4byte 0xFFFFC000 +_08080BA8: .4byte 0x00000FFF +_08080BAC: + adds r0, r0, r6 + adds r0, r0, r7 +_08080BB0: + ldrb r0, [r0] + strb r0, [r1] + adds r1, #1 + adds r2, #2 + adds r3, #1 + cmp r3, r5 + bls _08080B80 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08080BC4 +sub_08080BC4: @ 0x08080BC4 + push {r4, r5, r6, lr} + ldr r3, _08080C40 @ =gRoomControls + movs r0, #0xa + ldrsh r1, [r3, r0] + ldrh r0, [r3, #6] + subs r5, r1, r0 + movs r2, #0xf + ands r5, r2 + movs r1, #0xc + ldrsh r0, [r3, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + ands r0, r2 + adds r6, r0, #0 + adds r6, #8 + ldrh r2, [r3, #0x16] + adds r4, r2, #0 + cmp r4, #0 + beq _08080C50 + subs r2, #1 + strh r2, [r3, #0x16] + ldrb r0, [r3, #0x14] + lsls r0, r0, #4 + movs r1, #0xe + ands r2, r1 + adds r0, r0, r2 + ldr r1, _08080C44 @ =gUnk_080169A4 + adds r2, r0, r1 + ldr r4, _08080C48 @ =gUnk_02025EB0 + ldr r1, [r4] + cmp r1, #0 + beq _08080C16 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r0, r0, r5 + strh r0, [r1, #2] + ldr r1, [r4] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r0, r0, r6 + strh r0, [r1, #4] +_08080C16: + ldr r4, _08080C4C @ =gUnk_0200B650 + ldr r1, [r4] + cmp r1, #0 + beq _08080C30 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r0, r0, r5 + strh r0, [r1, #2] + ldr r1, [r4] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r0, r0, r6 + strh r0, [r1, #4] +_08080C30: + ldrb r1, [r2] + adds r0, r3, #0 + adds r0, #0x24 + strb r1, [r0] + ldrb r1, [r2, #1] + adds r0, #1 + strb r1, [r0] + b _08080C76 + .align 2, 0 +_08080C40: .4byte gRoomControls +_08080C44: .4byte gUnk_080169A4 +_08080C48: .4byte gUnk_02025EB0 +_08080C4C: .4byte gUnk_0200B650 +_08080C50: + ldr r0, _08080C78 @ =gUnk_02025EB0 + ldr r1, [r0] + cmp r1, #0 + beq _08080C5E + strh r5, [r1, #2] + ldr r0, [r0] + strh r6, [r0, #4] +_08080C5E: + ldr r0, _08080C7C @ =gUnk_0200B650 + ldr r1, [r0] + cmp r1, #0 + beq _08080C6C + strh r5, [r1, #2] + ldr r0, [r0] + strh r6, [r0, #4] +_08080C6C: + adds r0, r3, #0 + adds r0, #0x24 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] +_08080C76: + pop {r4, r5, r6, pc} + .align 2, 0 +_08080C78: .4byte gUnk_02025EB0 +_08080C7C: .4byte gUnk_0200B650 + + thumb_func_start sub_08080C80 +sub_08080C80: @ 0x08080C80 + push {r4, lr} + bl sub_080197D4 + ldr r0, _08080CA8 @ =gUnk_02025EB4 + ldr r4, _08080CAC @ =gRoomControls + ldrh r1, [r4, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r4, #0x20] + lsrs r2, r2, #4 + bl sub_0807C8B0 + ldr r0, _08080CB0 @ =gUnk_0200B654 + ldrh r1, [r4, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r4, #0x20] + lsrs r2, r2, #4 + bl sub_0807C8B0 + pop {r4, pc} + .align 2, 0 +_08080CA8: .4byte gUnk_02025EB4 +_08080CAC: .4byte gRoomControls +_08080CB0: .4byte gUnk_0200B654 + + thumb_func_start sub_08080CB4 +sub_08080CB4: @ 0x08080CB4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x58 + ldrb r0, [r4, #0xa] + ldrb r1, [r1] + cmp r0, r1 + beq _08080CF0 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0xa] + cmp r0, #0x5c + beq _08080CD4 + b _08080E00 +_08080CD4: + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + ldr r1, _08080CEC @ =gUnk_080C9CBC + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + lsls r0, r0, #4 + orrs r0, r1 + strb r0, [r4, #0x1a] + b _08080E00 + .align 2, 0 +_08080CEC: .4byte gUnk_080C9CBC +_08080CF0: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08080D00 + b _08080E00 +_08080D00: + ldrb r0, [r4, #0xa] + subs r0, #0x40 + cmp r0, #0x22 + bhi _08080E00 + lsls r0, r0, #2 + ldr r1, _08080D14 @ =_08080D18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080D14: .4byte _08080D18 +_08080D18: @ jump table + .4byte _08080DEE @ case 0 + .4byte _08080DEE @ case 1 + .4byte _08080DEE @ case 2 + .4byte _08080DEE @ case 3 + .4byte _08080E00 @ case 4 + .4byte _08080E00 @ case 5 + .4byte _08080E00 @ case 6 + .4byte _08080E00 @ case 7 + .4byte _08080E00 @ case 8 + .4byte _08080E00 @ case 9 + .4byte _08080E00 @ case 10 + .4byte _08080E00 @ case 11 + .4byte _08080E00 @ case 12 + .4byte _08080E00 @ case 13 + .4byte _08080E00 @ case 14 + .4byte _08080E00 @ case 15 + .4byte _08080E00 @ case 16 + .4byte _08080E00 @ case 17 + .4byte _08080E00 @ case 18 + .4byte _08080E00 @ case 19 + .4byte _08080E00 @ case 20 + .4byte _08080E00 @ case 21 + .4byte _08080E00 @ case 22 + .4byte _08080E00 @ case 23 + .4byte _08080E00 @ case 24 + .4byte _08080E00 @ case 25 + .4byte _08080E00 @ case 26 + .4byte _08080E00 @ case 27 + .4byte _08080DEE @ case 28 + .4byte _08080E00 @ case 29 + .4byte _08080E00 @ case 30 + .4byte _08080E00 @ case 31 + .4byte _08080DA4 @ case 32 + .4byte _08080E00 @ case 33 + .4byte _08080DEE @ case 34 +_08080DA4: + adds r5, r4, #0 + adds r5, #0x6a + ldrb r0, [r5] + cmp r0, #0 + beq _08080DB4 + subs r0, #1 + strb r0, [r5] + b _08080E00 +_08080DB4: + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0xa + strb r0, [r5] + adds r0, r4, #0 + movs r1, #7 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08080E00 + adds r0, r4, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0x62 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x63 + ldrb r0, [r0] + adds r2, #1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806FAB0 + b _08080E00 +_08080DEE: + ldr r0, _08080E04 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08080E00 + adds r0, r4, #0 + bl sub_080A2B80 +_08080E00: + pop {r4, r5, pc} + .align 2, 0 +_08080E04: .4byte gUnk_030010A0 + + thumb_func_start sub_08080E08 +sub_08080E08: @ 0x08080E08 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08080EDE + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1e + bhi _08080EDE + lsls r0, r0, #2 + ldr r1, _08080E2C @ =_08080E30 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080E2C: .4byte _08080E30 +_08080E30: @ jump table + .4byte _08080ED8 @ case 0 + .4byte _08080ED8 @ case 1 + .4byte _08080EDE @ case 2 + .4byte _08080EDE @ case 3 + .4byte _08080ED8 @ case 4 + .4byte _08080ED8 @ case 5 + .4byte _08080ED8 @ case 6 + .4byte _08080EDE @ case 7 + .4byte _08080ED8 @ case 8 + .4byte _08080ED8 @ case 9 + .4byte _08080ED8 @ case 10 + .4byte _08080ED8 @ case 11 + .4byte _08080ED8 @ case 12 + .4byte _08080EDE @ case 13 + .4byte _08080EDE @ case 14 + .4byte _08080EDE @ case 15 + .4byte _08080EDE @ case 16 + .4byte _08080EDE @ case 17 + .4byte _08080EDE @ case 18 + .4byte _08080EDE @ case 19 + .4byte _08080EAC @ case 20 + .4byte _08080EDE @ case 21 + .4byte _08080EDE @ case 22 + .4byte _08080EDE @ case 23 + .4byte _08080EDE @ case 24 + .4byte _08080EDE @ case 25 + .4byte _08080EDE @ case 26 + .4byte _08080EDE @ case 27 + .4byte _08080EDE @ case 28 + .4byte _08080EDE @ case 29 + .4byte _08080ED8 @ case 30 +_08080EAC: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x4c] + str r0, [r4, #0x54] + b _08080EDE +_08080ED8: + adds r0, r4, #0 + bl sub_08081598 +_08080EDE: + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08080EF0 + adds r0, r4, #0 + bl sub_080813BC + b _08080F00 +_08080EF0: + ldr r0, _08080F18 @ =gUnk_0811E7D4 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08080F00: + ldrb r0, [r4, #0xa] + cmp r0, #0x5c + bne _08080F0E + ldr r1, _08080F1C @ =gUnk_02034350 + ldrb r0, [r1, #4] + adds r0, #1 + strb r0, [r1, #4] +_08080F0E: + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_08080F18: .4byte gUnk_0811E7D4 +_08080F1C: .4byte gUnk_02034350 + + thumb_func_start sub_08080F20 +sub_08080F20: @ 0x08080F20 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08080F3A + bl sub_0807CBE4 + cmp r0, #0 + beq _08080F3A + bl sub_0805E780 +_08080F3A: + ldrb r0, [r4, #0xa] + cmp r0, #0x60 + bne _08080F42 + b _0808107C +_08080F42: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #7 + strb r0, [r1] + subs r1, #3 + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + adds r1, #5 + movs r0, #0xff + strb r0, [r1] + ldr r0, _08080F9C @ =gUnk_080FD1A8 + str r0, [r4, #0x48] + ldrb r0, [r4, #0xa] + subs r0, #0x3f + cmp r0, #0x20 + bhi _08081030 + lsls r0, r0, #2 + ldr r1, _08080FA0 @ =_08080FA4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080F9C: .4byte gUnk_080FD1A8 +_08080FA0: .4byte _08080FA4 +_08080FA4: @ jump table + .4byte _08081028 @ case 0 + .4byte _08081030 @ case 1 + .4byte _08081030 @ case 2 + .4byte _08081030 @ case 3 + .4byte _08081030 @ case 4 + .4byte _08081030 @ case 5 + .4byte _08081030 @ case 6 + .4byte _08081030 @ case 7 + .4byte _08081030 @ case 8 + .4byte _08081030 @ case 9 + .4byte _08081030 @ case 10 + .4byte _08081030 @ case 11 + .4byte _08081030 @ case 12 + .4byte _08081030 @ case 13 + .4byte _08081030 @ case 14 + .4byte _08081030 @ case 15 + .4byte _08081030 @ case 16 + .4byte _08081030 @ case 17 + .4byte _08081030 @ case 18 + .4byte _08081030 @ case 19 + .4byte _08081030 @ case 20 + .4byte _08081028 @ case 21 + .4byte _08081028 @ case 22 + .4byte _08081028 @ case 23 + .4byte _08081028 @ case 24 + .4byte _08081028 @ case 25 + .4byte _08081030 @ case 26 + .4byte _08081030 @ case 27 + .4byte _08081030 @ case 28 + .4byte _08081028 @ case 29 + .4byte _08081028 @ case 30 + .4byte _08081028 @ case 31 + .4byte _08081028 @ case 32 +_08081028: + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #0x17 + b _08081036 +_08081030: + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #0x11 +_08081036: + strb r0, [r1] + ldrb r0, [r4, #0xe] + adds r5, r4, #0 + adds r5, #0x69 + movs r2, #0 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x6a + strb r2, [r0] + adds r0, #2 + movs r1, #0 + strh r2, [r0] + subs r0, #4 + strb r1, [r0] + strb r1, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + bl sub_0808147C + strb r0, [r4, #0x1c] + ldr r1, _08081078 @ =gUnk_0811E7E8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + b _080810A4 + .align 2, 0 +_08081078: .4byte gUnk_0811E7E8 +_0808107C: + movs r0, #0x40 + movs r1, #0x60 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080810A4 + movs r0, #0 + strb r0, [r1, #0xe] + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _0808109A + movs r0, #2 + strb r0, [r1, #0xb] +_0808109A: + adds r0, r4, #0 + bl sub_0806FA24 + bl sub_0805E780 +_080810A4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080810A8 +sub_080810A8: @ 0x080810A8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080814A4 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080810D6 + movs r0, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080810DC + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _080810DC +_080810D6: + movs r0, #0xff + orrs r0, r1 + strb r0, [r4, #0x15] +_080810DC: + ldr r0, [r4, #0x20] + cmp r0, #0 + bne _080810E8 + movs r0, #0xf0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_080810E8: + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _080810F8 + adds r0, r4, #0 + bl sub_08016A30 +_080810F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080810FC +sub_080810FC: @ 0x080810FC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0x5f + beq _0808110E + adds r0, r2, #0 + bl sub_08081598 + b _0808112E +_0808110E: + movs r1, #0 + movs r0, #2 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r1, r2, #0 + adds r1, #0x3b + movs r0, #0x11 + strb r0, [r1] + ldr r0, _08081130 @ =gLinkEntity + adds r1, r2, #0 + bl sub_0806FA24 +_0808112E: + pop {pc} + .align 2, 0 +_08081130: .4byte gLinkEntity + + thumb_func_start sub_08081134 +sub_08081134: @ 0x08081134 + push {r4, lr} + adds r4, r0, #0 + bl sub_080814A4 + adds r1, r4, #0 + adds r1, #0x6c + ldrh r0, [r1] + adds r0, #0x50 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08081150 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081150 +sub_08081150: @ 0x08081150 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + ldr r1, _08081180 @ =0x0000FF80 + strh r1, [r0, #0x36] + ldrb r3, [r0, #0x1b] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r3, #0x40 + orrs r1, r3 + strb r1, [r0, #0x1b] + ldrb r1, [r0, #0x19] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, #0x19] + ldr r0, _08081184 @ =0x0000012D + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08081180: .4byte 0x0000FF80 +_08081184: .4byte 0x0000012D + + thumb_func_start sub_08081188 +sub_08081188: @ 0x08081188 + push {lr} + adds r2, r0, #0 + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _080811A8 + adds r0, r2, #0 + bl sub_08016A30 +_080811A8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080811AC +sub_080811AC: @ 0x080811AC + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_080002A0 + adds r4, #0x6e + strh r0, [r4] + pop {r4, pc} + + thumb_func_start sub_080811C8 +sub_080811C8: @ 0x080811C8 + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #6 + ands r1, r2 + strb r1, [r0, #0x18] + bx lr + .align 2, 0 + + thumb_func_start sub_080811D8 +sub_080811D8: @ 0x080811D8 + push {lr} + bl sub_08081188 + ldr r0, _080811E8 @ =0x00000215 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_080811E8: .4byte 0x00000215 + + thumb_func_start sub_080811EC +sub_080811EC: @ 0x080811EC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x69 + ldrb r0, [r0] + cmp r0, #6 + beq _08081200 + adds r0, r4, #0 + bl sub_080AEFE0 + b _08081206 +_08081200: + adds r0, r4, #0 + bl sub_0806F69C +_08081206: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _08081228 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_080814A4 +_08081228: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808122C +sub_0808122C: @ 0x0808122C + push {lr} + ldr r2, _08081244 @ =gUnk_0811E814 + adds r1, r0, #0 + adds r1, #0x69 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08081244: .4byte gUnk_0811E814 + + thumb_func_start sub_08081248 +sub_08081248: @ 0x08081248 + push {r4, lr} + adds r4, r0, #0 + bl sub_08081500 + adds r0, r4, #0 + bl sub_080814C0 + cmp r0, #0 + beq _08081264 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _0808126A +_08081264: + adds r0, r4, #0 + bl sub_0800442E +_0808126A: + pop {r4, pc} + + thumb_func_start sub_0808126C +sub_0808126C: @ 0x0808126C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0808153C + pop {r4, pc} + + thumb_func_start sub_0808127C +sub_0808127C: @ 0x0808127C + push {r4, lr} + adds r4, r0, #0 + bl sub_080814C0 + cmp r0, #0 + beq _08081292 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _08081298 +_08081292: + adds r0, r4, #0 + bl sub_0808153C +_08081298: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_113 +nullsub_113: @ 0x0808129C + bx lr + .align 2, 0 + + thumb_func_start sub_080812A0 +sub_080812A0: @ 0x080812A0 + push {lr} + bl sub_08081500 + pop {pc} + + thumb_func_start sub_080812A8 +sub_080812A8: @ 0x080812A8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080002D0 + cmp r0, #0xf + beq _080812E4 + adds r0, r5, #0 + adds r0, #0x6e + ldrh r4, [r0] + adds r0, r5, #0 + bl sub_080002A0 + cmp r4, r0 + beq _080812E4 + movs r0, #0 + strb r0, [r5, #0x15] + movs r2, #0 + strh r0, [r5, #0x24] + ldrb r1, [r5, #0x18] + subs r0, #4 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + adds r0, #0x69 + strb r2, [r0] + adds r0, r5, #0 + bl sub_080810A8 +_080812E4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080812E8 +sub_080812E8: @ 0x080812E8 + push {r4, lr} + adds r4, r0, #0 + ldr r3, _0808131C @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08081318 + ldr r0, [r3, #0x30] + ands r0, r2 + cmp r0, #0 + bne _08081318 + ldr r1, _08081320 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _08081318 + adds r0, r4, #0 + bl sub_080810FC +_08081318: + pop {r4, pc} + .align 2, 0 +_0808131C: .4byte gUnk_03003F80 +_08081320: .4byte gLinkEntity + + thumb_func_start nullsub_510 +nullsub_510: @ 0x08081324 + bx lr + .align 2, 0 + + thumb_func_start sub_08081328 +sub_08081328: @ 0x08081328 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldrh r1, [r2, #8] + movs r0, #0xc2 + lsls r0, r0, #2 + cmp r1, r0 + beq _08081342 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _08081364 +_08081342: + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r2, _08081368 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080177A0 + cmp r0, #0 + beq _08081364 + adds r0, r4, #0 + bl sub_080810FC +_08081364: + pop {r4, pc} + .align 2, 0 +_08081368: .4byte gLinkEntity + + thumb_func_start sub_0808136C +sub_0808136C: @ 0x0808136C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080813B2 + ldr r3, [r5, #0x54] + ldr r0, [r3, #0x2c] + str r0, [r5, #0x2c] + ldr r0, [r3, #0x30] + str r0, [r5, #0x30] + ldrb r2, [r3, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r3, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + b _080813BA +_080813B2: + adds r0, r5, #0 + movs r1, #1 + bl sub_08081404 +_080813BA: + pop {r4, r5, pc} + + thumb_func_start sub_080813BC +sub_080813BC: @ 0x080813BC + push {lr} + ldr r2, _080813D0 @ =gUnk_0811E840 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080813D0: .4byte gUnk_0811E840 + + thumb_func_start sub_080813D4 +sub_080813D4: @ 0x080813D4 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xd] + strb r1, [r0, #0x1d] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bx lr + + thumb_func_start sub_080813E8 +sub_080813E8: @ 0x080813E8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080813F0 +sub_080813F0: @ 0x080813F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08081402 + adds r0, r4, #0 + bl sub_080810FC +_08081402: + pop {r4, pc} + + thumb_func_start sub_08081404 +sub_08081404: @ 0x08081404 + push {lr} + cmp r1, #0 + beq _08081418 + adds r1, r0, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08081418 + bl sub_0807CCC8 +_08081418: + bl sub_0805E780 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08081420 +sub_08081420: @ 0x08081420 + push {r4, lr} + adds r4, r0, #0 + bl sub_08081450 + cmp r0, #0 + bne _08081438 + ldrb r0, [r4, #0xa] + ldrb r1, [r4, #0xb] + bl sub_08053FF0 + movs r0, #0 + b _0808144C +_08081438: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + ldrb r1, [r4, #0xb] + movs r2, #0 + bl sub_080A7C00 + movs r0, #1 +_0808144C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081450 +sub_08081450: @ 0x08081450 + push {r4, lr} + movs r4, #0 + ldr r1, _08081478 @ =gUnk_080FD5B4 + ldrb r2, [r0, #0xa] + lsls r0, r2, #3 + adds r0, r0, r1 + ldrb r1, [r0, #3] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08081470 + adds r0, r2, #0 + bl GetInventoryValue + cmp r0, #0 + bne _08081472 +_08081470: + movs r4, #1 +_08081472: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_08081478: .4byte gUnk_080FD5B4 + + thumb_func_start sub_0808147C +sub_0808147C: @ 0x0808147C + lsls r0, r0, #3 + ldr r1, _08081488 @ =gUnk_0811E84C + adds r0, r0, r1 + ldrb r0, [r0, #4] + bx lr + .align 2, 0 +_08081488: .4byte gUnk_0811E84C + + thumb_func_start sub_0808148C +sub_0808148C: @ 0x0808148C + push {lr} + lsls r0, r0, #3 + ldr r1, _080814A0 @ =gUnk_0811E84C + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + beq _0808149E + bl sub_080A3268 +_0808149E: + pop {pc} + .align 2, 0 +_080814A0: .4byte gUnk_0811E84C + + thumb_func_start sub_080814A4 +sub_080814A4: @ 0x080814A4 + push {lr} + adds r1, r0, #0 + adds r0, #0x69 + ldrb r0, [r0] + cmp r0, #0xa + bne _080814B6 + adds r1, #0x6c + movs r0, #0x78 + b _080814BC +_080814B6: + adds r1, #0x6c + movs r0, #0x96 + lsls r0, r0, #2 +_080814BC: + strh r0, [r1] + pop {pc} + + thumb_func_start sub_080814C0 +sub_080814C0: @ 0x080814C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E40C + cmp r0, #0 + bne _080814FA + adds r0, r4, #0 + adds r0, #0x6c + ldrh r1, [r0] + subs r1, #1 + strh r1, [r0] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _080814E0 + movs r0, #1 + b _080814FC +_080814E0: + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x59 + bhi _080814FA + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080814FA: + movs r0, #0 +_080814FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081500 +sub_08081500: @ 0x08081500 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x68 + ldrb r0, [r5] + cmp r0, #0 + bne _08081538 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _08081522 + movs r0, #1 + strb r0, [r5] + b _08081538 +_08081522: + cmp r0, #1 + bne _08081532 + ldrb r0, [r4, #0xa] + bl sub_0808148C + adds r0, r4, #0 + bl sub_08016A04 +_08081532: + adds r0, r4, #0 + bl sub_080AEFE0 +_08081538: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808153C +sub_0808153C: @ 0x0808153C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x68 + ldrb r0, [r5] + cmp r0, #1 + bhi _08081596 + cmp r0, #0 + bne _0808157E + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08081596 + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _08081596 + movs r0, #1 + strb r0, [r5] + movs r0, #0xf0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + ldrb r0, [r4, #0xa] + bl sub_0808148C + adds r0, r4, #0 + bl sub_08016A04 + b _08081596 +_0808157E: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08081596 + movs r0, #2 + strb r0, [r5] + ldrb r0, [r4, #0xa] + bl sub_0808148C +_08081596: + pop {r4, r5, pc} + + thumb_func_start sub_08081598 +sub_08081598: @ 0x08081598 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080815AC + adds r0, r4, #0 + movs r1, #1 + bl sub_08081404 +_080815AC: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xe + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08081618 @ =gLinkEntity + str r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #4 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + cmp r0, #0x5f + beq _08081614 + adds r0, r4, #0 + bl sub_08081420 + cmp r0, #0 + beq _08081614 + adds r0, r4, #0 + movs r1, #1 + bl sub_08081404 +_08081614: + pop {r4, pc} + .align 2, 0 +_08081618: .4byte gLinkEntity + + thumb_func_start sub_0808161C +sub_0808161C: @ 0x0808161C + push {lr} + ldr r2, _08081630 @ =gUnk_0811EBFC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08081630: .4byte gUnk_0811EBFC + + thumb_func_start sub_08081634 +sub_08081634: @ 0x08081634 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x6c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808169C + movs r5, #0 + movs r0, #0x65 + strh r0, [r4, #0x12] + movs r1, #2 + strb r1, [r4, #0xc] + strb r5, [r4, #0x15] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08016A04 + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xe] + movs r2, #0x80 + cmp r0, #0 + beq _08081674 + adds r2, r0, #0 + strb r5, [r4, #0xe] +_08081674: + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_080AE008 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, _08081698 @ =0x00000129 + bl sub_080A3268 + b _0808170C + .align 2, 0 +_08081698: .4byte 0x00000129 +_0808169C: + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _080816B2 + adds r0, r4, #0 + bl sub_08081790 + adds r0, r4, #0 + bl sub_0808180C + b _08081702 +_080816B2: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080816C4 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08081702 +_080816C4: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08081718 @ =gUnk_0811EC08 + ldrb r0, [r4, #0xa] + lsrs r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0] + ldrb r0, [r4, #0xa] + movs r1, #3 + ands r0, r1 + lsls r0, r0, #1 + asrs r2, r0 + ands r2, r1 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080816FA + ldr r0, _0808171C @ =gUnk_0811EC20 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1, #0xe] +_080816FA: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08004260 +_08081702: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + bl sub_08004488 +_0808170C: + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + pop {r4, r5, pc} + .align 2, 0 +_08081718: .4byte gUnk_0811EC08 +_0808171C: .4byte gUnk_0811EC20 + + thumb_func_start sub_08081720 +sub_08081720: @ 0x08081720 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08081744 + adds r0, r4, #0 + bl sub_08081790 + adds r0, r4, #0 + bl sub_0808180C + b _0808175E +_08081744: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808175E + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_0808175E: + pop {r4, pc} + + thumb_func_start sub_08081760 +sub_08081760: @ 0x08081760 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808177E + adds r0, r4, #0 + bl sub_0808180C + b _0808178C +_0808177E: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808178C + adds r0, r4, #0 + bl sub_0806F69C +_0808178C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081790 +sub_08081790: @ 0x08081790 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x6d + ldrb r0, [r1] + cmp r0, #0xef + bhi _080817B4 + ldr r0, _080817B0 @ =gUnk_0811EC64 + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r2, #0 + bl sub_0805457C + b _080817C6 + .align 2, 0 +_080817B0: .4byte gUnk_0811EC64 +_080817B4: + ldr r0, _080817C8 @ =gUnk_0811EC24 + ldrb r1, [r1] + subs r1, #0xf0 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080817C6: + pop {pc} + .align 2, 0 +_080817C8: .4byte gUnk_0811EC24 + + thumb_func_start sub_080817CC +sub_080817CC: @ 0x080817CC + push {lr} + movs r1, #9 + bl sub_0805457C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080817D8 +sub_080817D8: @ 0x080817D8 + push {lr} + movs r1, #0xd + bl sub_0805457C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080817E4 +sub_080817E4: @ 0x080817E4 + push {lr} + movs r1, #0xe + bl sub_0805457C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080817F0 +sub_080817F0: @ 0x080817F0 + push {lr} + movs r1, #1 + bl sub_0805457C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080817FC +sub_080817FC: @ 0x080817FC + push {lr} + adds r1, r0, #0 + adds r1, #0x6e + ldrb r1, [r1] + movs r2, #0 + bl sub_08054754 + pop {pc} + + thumb_func_start sub_0808180C +sub_0808180C: @ 0x0808180C + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08081814 +sub_08081814: @ 0x08081814 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08081850 @ =gUnk_0811EE28 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _08081838 + adds r0, r4, #0 + bl sub_08080CB4 +_08081838: + ldrb r0, [r4, #0xe] + cmp r0, #2 + bgt _0808184E + cmp r0, #1 + blt _0808184E + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _0808184E + adds r0, r4, #0 + bl sub_0800445C +_0808184E: + pop {r4, pc} + .align 2, 0 +_08081850: .4byte gUnk_0811EE28 + + thumb_func_start sub_08081854 +sub_08081854: @ 0x08081854 + push {r4, lr} + adds r4, r0, #0 + movs r3, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + strb r3, [r4, #0x16] + str r4, [r4, #0x54] + adds r0, r4, #0 + bl sub_08081A5C + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808188E + cmp r0, #1 + beq _08081898 + b _0808189C +_0808188E: + ldr r0, _08081894 @ =gUnk_080FD328 + b _0808189A + .align 2, 0 +_08081894: .4byte gUnk_080FD328 +_08081898: + ldr r0, _080818A0 @ =gUnk_080FD198 +_0808189A: + str r0, [r4, #0x48] +_0808189C: + pop {r4, pc} + .align 2, 0 +_080818A0: .4byte gUnk_080FD198 + + thumb_func_start sub_080818A4 +sub_080818A4: @ 0x080818A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xd] + cmp r2, #0 + beq _080818C0 + movs r1, #2 + strb r1, [r4, #0xc] + ldr r0, _080818BC @ =gUnk_0200AF00 + adds r0, #0x2f + strb r1, [r0] + b _08081920 + .align 2, 0 +_080818BC: .4byte gUnk_0200AF00 +_080818C0: + ldrb r0, [r4, #0xa] + cmp r0, #0x36 + bne _080818F0 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08081920 + strb r2, [r1] + movs r0, #3 + strb r0, [r4, #0xc] + ldr r1, _080818E8 @ =gUnk_02034350 + movs r0, #1 + str r0, [r1, #0x68] + ldr r1, _080818EC @ =gUnk_03003F80 + movs r0, #7 + strb r0, [r1, #0xc] + b _08081920 + .align 2, 0 +_080818E8: .4byte gUnk_02034350 +_080818EC: .4byte gUnk_03003F80 +_080818F0: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08081920 + strb r2, [r1] + movs r0, #1 + strb r0, [r4, #0xd] + bl sub_08078B48 + bl sub_08077B2C + ldr r1, _08081924 @ =gUnk_03003F80 + movs r0, #4 + strb r0, [r1, #5] + ldr r0, _08081928 @ =gLinkEntity + str r4, [r0, #0x74] + ldr r0, _0808192C @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #2 + strb r1, [r0] + bl sub_08056360 +_08081920: + pop {r4, pc} + .align 2, 0 +_08081924: .4byte gUnk_03003F80 +_08081928: .4byte gLinkEntity +_0808192C: .4byte gUnk_0200AF00 + + thumb_func_start sub_08081930 +sub_08081930: @ 0x08081930 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _08081968 @ =gUnk_0200AF00 + adds r6, r0, #0 + adds r6, #0x2f + movs r0, #2 + strb r0, [r6] + ldr r3, _0808196C @ =gLinkEntity + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + subs r0, #6 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r5, _08081970 @ =gUnk_03003F80 + ldrb r0, [r5, #5] + cmp r0, #0 + beq _0808195E + ldr r0, [r3, #0x74] + cmp r4, r0 + beq _08081974 +_0808195E: + adds r0, r4, #0 + bl sub_080819B4 + b _080819AC + .align 2, 0 +_08081968: .4byte gUnk_0200AF00 +_0808196C: .4byte gLinkEntity +_08081970: .4byte gUnk_03003F80 +_08081974: + bl sub_080784E4 + adds r1, r0, #0 + ldr r0, [r1, #8] + cmp r0, #0 + beq _08081998 + ldrb r0, [r1, #1] + cmp r0, #1 + bne _08081998 + movs r0, #7 + strb r0, [r6] + adds r0, r5, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _080819AC +_08081998: + ldr r0, _080819B0 @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x98 + ands r0, r1 + cmp r0, #0 + beq _080819AC + adds r0, r4, #0 + bl sub_080819B4 +_080819AC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080819B0: .4byte gUnk_03003F80 + + thumb_func_start sub_080819B4 +sub_080819B4: @ 0x080819B4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08081A48 @ =gUnk_02034350 + ldrb r0, [r0, #6] + cmp r0, #0 + bne _080819D4 + ldr r0, [r5, #0x50] + cmp r0, #0 + beq _080819D0 + adds r0, #0x20 + ldrb r1, [r5, #0xf] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] +_080819D0: + bl sub_0805E780 +_080819D4: + ldr r0, _08081A4C @ =gUnk_03003F80 + movs r2, #0 + strb r2, [r0, #5] + ldr r4, _08081A50 @ =gLinkEntity + str r2, [r4, #0x74] + ldr r1, _08081A54 @ =gUnk_0200AF00 + ldr r3, _08081A48 @ =gUnk_02034350 + strb r2, [r3, #6] + adds r0, r1, #0 + adds r0, #0x2c + strb r2, [r0] + adds r1, #0x2f + strb r2, [r1] + strb r2, [r3, #7] + adds r1, r5, #0 + adds r1, #0x80 + ldr r3, _08081A58 @ =gRoomControls + ldrh r0, [r3, #6] + ldrh r1, [r1] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r5, #0x2e] + movs r6, #0x82 + ldrh r0, [r3, #8] + ldrh r3, [r6, r5] + adds r0, r0, r3 + strh r0, [r5, #0x32] + str r2, [r5, #0x34] + movs r3, #1 + strb r3, [r5, #0xc] + strb r1, [r5, #0xd] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + adds r0, r5, #0 + adds r0, #0x38 + strb r3, [r0] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_08016A04 + adds r0, r5, #0 + bl sub_08081A5C + pop {r4, r5, r6, pc} + .align 2, 0 +_08081A48: .4byte gUnk_02034350 +_08081A4C: .4byte gUnk_03003F80 +_08081A50: .4byte gLinkEntity +_08081A54: .4byte gUnk_0200AF00 +_08081A58: .4byte gRoomControls + + thumb_func_start sub_08081A5C +sub_08081A5C: @ 0x08081A5C + push {r4, lr} + adds r4, r0, #0 + bl sub_080787D8 + adds r2, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _08081A7A + ldr r0, _08081A7C @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1, #0xa] +_08081A7A: + pop {r4, pc} + .align 2, 0 +_08081A7C: .4byte gUnk_03003DF0 + + thumb_func_start sub_08081A80 +sub_08081A80: @ 0x08081A80 + push {lr} + adds r2, r0, #0 + ldr r0, _08081A98 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + cmp r0, #0 + bne _08081A9C + bl sub_08081AB0 + bl sub_0805E780 + b _08081AAC + .align 2, 0 +_08081A98: .4byte gUnk_02034350 +_08081A9C: + cmp r0, #2 + bne _08081AAC + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + bl sub_08081AB0 +_08081AAC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08081AB0 +sub_08081AB0: @ 0x08081AB0 + push {lr} + ldr r1, _08081AC4 @ =gUnk_02034350 + movs r0, #0 + str r0, [r1, #0x68] + strb r0, [r1, #6] + strb r0, [r1, #7] + bl sub_08078A90 + pop {pc} + .align 2, 0 +_08081AC4: .4byte gUnk_02034350 + + thumb_func_start sub_08081AC8 +sub_08081AC8: @ 0x08081AC8 + push {lr} + ldr r2, _08081ADC @ =gUnk_0811EE38 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08081ADC: .4byte gUnk_0811EE38 + + thumb_func_start sub_08081AE0 +sub_08081AE0: @ 0x08081AE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x84 + ldrh r1, [r0] + cmp r1, #0 + beq _08081B0E + subs r0, #0x4c + strb r1, [r0] +_08081B0E: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08081B6C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x74 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080002B0 + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08081B70 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08081B70 + movs r0, #5 + strb r0, [r4, #0xc] + ldrh r1, [r5] + ldrb r2, [r6] + movs r0, #0x7a + bl sub_0807B314 + b _08081B82 + .align 2, 0 +_08081B6C: .4byte gRoomControls +_08081B70: + adds r0, r4, #0 + bl sub_08081E3C + cmp r0, #0 + beq _08081B7E + movs r0, #2 + b _08081B80 +_08081B7E: + movs r0, #1 +_08081B80: + strb r0, [r4, #0xc] +_08081B82: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08081B84 +sub_08081B84: @ 0x08081B84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08081E3C + cmp r0, #0 + beq _08081BAA + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] +_08081BAA: + pop {r4, pc} + + thumb_func_start sub_08081BAC +sub_08081BAC: @ 0x08081BAC + push {r4, lr} + adds r4, r0, #0 + bl sub_08081CB0 + cmp r0, #0 + beq _08081BDC + movs r0, #0 + strb r0, [r4, #0xd] + movs r0, #0xa + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0xa + bl sub_0805E4E0 + adds r0, r4, #0 + bl sub_08081FF8 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08081BD8 + movs r0, #3 + b _08081BDA +_08081BD8: + movs r0, #5 +_08081BDA: + strb r0, [r4, #0xc] +_08081BDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081BE0 +sub_08081BE0: @ 0x08081BE0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x78 + bl sub_08081F7C + cmp r0, #0 + beq _08081C2C + adds r0, r4, #0 + bl sub_08081D28 + cmp r0, #0 + bne _08081C26 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + ldr r1, _08081C1C @ =gUnk_03003F80 + ldrb r0, [r1, #5] + cmp r0, #2 + beq _08081C16 + adds r0, r1, #0 + adds r0, #0x35 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08081C20 +_08081C16: + movs r0, #0x18 + strb r0, [r4, #0xe] + b _08081C2C + .align 2, 0 +_08081C1C: .4byte gUnk_03003F80 +_08081C20: + movs r0, #8 + strb r0, [r4, #0xe] + b _08081C2C +_08081C26: + adds r0, r4, #0 + bl sub_08081E6C +_08081C2C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081C30 +sub_08081C30: @ 0x08081C30 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08081C70 + subs r0, #1 + movs r5, #0 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08081C5A + strb r5, [r4, #0xf] + ldr r0, _08081C6C @ =0x00004035 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_08081C5A: + adds r0, r4, #0 + bl sub_08081CB0 + cmp r0, #0 + beq _08081C96 + movs r0, #3 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + b _08081C96 + .align 2, 0 +_08081C6C: .4byte 0x00004035 +_08081C70: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + subs r0, #0x3c + ldrb r2, [r0] + movs r0, #0x77 + bl sub_0807B314 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_080A3268 +_08081C96: + pop {r4, r5, pc} + + thumb_func_start sub_08081C98 +sub_08081C98: @ 0x08081C98 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x7a + bl sub_08081F7C + cmp r0, #0 + beq _08081CAC + adds r0, r4, #0 + bl sub_08081E6C +_08081CAC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081CB0 +sub_08081CB0: @ 0x08081CB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08081D74 + cmp r0, #0 + beq _08081CEC + adds r1, r4, #0 + adds r1, #0x70 + ldr r0, _08081CE4 @ =0x0000FFFF + strh r0, [r1] + adds r5, r4, #0 + adds r5, #0x74 + ldrh r0, [r5] + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002B0 + ldr r1, _08081CE8 @ =0x00004035 + cmp r0, r1 + bne _08081D1C + ldrh r1, [r5] + ldrb r2, [r4] + movs r0, #0x78 + bl sub_0807B7D8 + b _08081D1C + .align 2, 0 +_08081CE4: .4byte 0x0000FFFF +_08081CE8: .4byte 0x00004035 +_08081CEC: + adds r6, r4, #0 + adds r6, #0x74 + ldrh r0, [r6] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x77 + beq _08081D24 + cmp r1, #0x79 + beq _08081D24 + ldr r0, _08081D20 @ =0x00004035 + cmp r1, r0 + beq _08081D24 + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] +_08081D1C: + movs r0, #1 + b _08081D26 + .align 2, 0 +_08081D20: .4byte 0x00004035 +_08081D24: + movs r0, #0 +_08081D26: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08081D28 +sub_08081D28: @ 0x08081D28 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08081D74 + cmp r0, #0 + beq _08081D44 + adds r1, r4, #0 + adds r1, #0x70 + ldr r0, _08081D40 @ =0x0000FFFF + strh r0, [r1] + movs r0, #1 + b _08081D72 + .align 2, 0 +_08081D40: .4byte 0x0000FFFF +_08081D44: + adds r5, r4, #0 + adds r5, #0x70 + ldrh r1, [r5] + ldr r0, _08081D6C @ =0x0000FFFF + cmp r1, r0 + beq _08081D70 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + ldrh r5, [r5] + cmp r0, r5 + bne _08081D70 + movs r0, #1 + b _08081D72 + .align 2, 0 +_08081D6C: .4byte 0x0000FFFF +_08081D70: + movs r0, #0 +_08081D72: + pop {r4, r5, pc} + + thumb_func_start sub_08081D74 +sub_08081D74: @ 0x08081D74 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0xf + bne _08081D8E + movs r0, #0 + b _08081E0A +_08081D8E: + movs r6, #0 + adds r0, r4, #0 + bl sub_08081E0C + cmp r0, #0 + beq _08081DB4 + ldr r0, _08081DAC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x90 + ands r0, r1 + cmp r0, #0 + bne _08081E06 + ldr r6, _08081DB0 @ =gLinkEntity + b _08081E06 + .align 2, 0 +_08081DAC: .4byte gUnk_03003F80 +_08081DB0: .4byte gLinkEntity +_08081DB4: + ldr r0, _08081DD8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08081E06 + ldr r5, _08081DDC @ =gUnk_03004040 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #5 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + beq _08081DE0 + ldr r6, [r5] + b _08081E06 + .align 2, 0 +_08081DD8: .4byte gUnk_03003F80 +_08081DDC: .4byte gUnk_03004040 +_08081DE0: + ldr r1, [r5, #4] + adds r0, r4, #0 + movs r2, #5 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + beq _08081DF4 + ldr r6, [r5, #4] + b _08081E06 +_08081DF4: + ldr r1, [r5, #8] + adds r0, r4, #0 + movs r2, #5 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + beq _08081E06 + ldr r6, [r5, #8] +_08081E06: + str r6, [r4, #0x54] + adds r0, r6, #0 +_08081E0A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08081E0C +sub_08081E0C: @ 0x08081E0C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08081E28 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08081E22 + bl sub_08079F8C + cmp r0, #0 + bne _08081E2C +_08081E22: + movs r0, #0 + b _08081E38 + .align 2, 0 +_08081E28: .4byte gLinkEntity +_08081E2C: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #5 + movs r3, #6 + bl sub_080041A0 +_08081E38: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08081E3C +sub_08081E3C: @ 0x08081E3C + push {lr} + adds r1, r0, #0 + adds r1, #0x74 + ldrh r2, [r1] + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_080002B0 + adds r2, r0, #0 + ldr r1, _08081E64 @ =gUnk_0811EE50 +_08081E52: + ldrh r0, [r1] + cmp r0, r2 + beq _08081E68 + adds r1, #2 + ldrh r0, [r1] + cmp r0, #0 + bne _08081E52 + movs r0, #0 + b _08081E6A + .align 2, 0 +_08081E64: .4byte gUnk_0811EE50 +_08081E68: + movs r0, #1 +_08081E6A: + pop {pc} + + thumb_func_start sub_08081E6C +sub_08081E6C: @ 0x08081E6C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r6, [r0] + subs r0, #0x3c + ldrb r5, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080002B0 + adds r7, r0, #0 + ldr r0, _08081EEC @ =0x00003FFF + cmp r7, r0 + bls _08081EE8 + adds r0, r5, #0 + bl sub_0808094C + adds r1, r0, #0 + ldrb r0, [r4, #0xa] + movs r4, #0x78 + cmp r0, #0 + bne _08081E9A + movs r4, #0x7a +_08081E9A: + ldr r0, _08081EF0 @ =0x00007004 + adds r3, r1, r0 + lsls r0, r4, #1 + ldr r2, _08081EF4 @ =0x00006004 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + lsls r0, r0, #3 + adds r3, r3, r0 + ldr r2, _08081EF8 @ =gUnk_02019EE0 + cmp r5, #2 + bne _08081EB4 + ldr r2, _08081EFC @ =gUnk_02002F00 +_08081EB4: + movs r0, #0x3f + ands r0, r6 + lsls r0, r0, #1 + movs r1, #0xfc + lsls r1, r1, #4 + ands r1, r6 + lsls r1, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r2, r2, r0 + adds r0, r2, #0 + adds r1, r3, #0 + bl sub_08081F00 + cmp r0, #0 + bne _08081EE8 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0807B314 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0800015E +_08081EE8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08081EEC: .4byte 0x00003FFF +_08081EF0: .4byte 0x00007004 +_08081EF4: .4byte 0x00006004 +_08081EF8: .4byte gUnk_02019EE0 +_08081EFC: .4byte gUnk_02002F00 + + thumb_func_start sub_08081F00 +sub_08081F00: @ 0x08081F00 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldr r1, [r2] + ldr r0, [r3] + cmp r1, r0 + bne _08081F20 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r2, r1 + ldr r1, [r0] + ldr r0, [r3, #4] + cmp r1, r0 + bne _08081F20 + movs r0, #1 + b _08081F22 +_08081F20: + movs r0, #0 +_08081F22: + pop {pc} + + thumb_func_start sub_08081F24 +sub_08081F24: @ 0x08081F24 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08081F50 + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x11] + ldrh r0, [r2, #0x2e] + adds r0, #7 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x32] + adds r0, #5 + strh r0, [r2, #0x32] +_08081F50: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08081F7A + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x11] + ldrh r0, [r2, #0x2e] + subs r0, #7 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x32] + adds r0, #5 + strh r0, [r2, #0x32] +_08081F7A: + pop {r4, pc} + + thumb_func_start sub_08081F7C +sub_08081F7C: @ 0x08081F7C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08081FF4 + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bls _08081FA4 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _08081FF4 + adds r1, r0, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + b _08081FF4 +_08081FA4: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bne _08081FF4 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r6, r4, #0 + adds r6, #0x74 + ldrh r1, [r6] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r7, #0 + bl sub_0807B314 + adds r0, r4, #0 + bl sub_08081F24 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_080A3268 + adds r2, r4, #0 + adds r2, #0x70 + ldrh r1, [r2] + ldr r0, _08081FF0 @ =0x0000FFFF + cmp r1, r0 + beq _08081FEC + adds r0, r1, #0 + ldrh r1, [r6] + ldrb r2, [r5] + bl sub_0800015E +_08081FEC: + movs r0, #0 + b _08081FF6 + .align 2, 0 +_08081FF0: .4byte 0x0000FFFF +_08081FF4: + movs r0, #1 +_08081FF6: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08081FF8 +sub_08081FF8: @ 0x08081FF8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + ldr r0, _08082038 @ =gLinkEntity + cmp r1, r0 + bne _08082036 + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r6, r0, #0 + ldr r0, [r4, #0x54] + movs r1, #0x80 + lsls r1, r1, #2 + adds r2, r6, #0 + bl sub_080044AE + movs r5, #0 + ldr r4, _0808203C @ =gUnk_03004040 +_0808201E: + ldr r0, [r4] + cmp r0, #0 + beq _0808202E + movs r1, #0x80 + lsls r1, r1, #2 + adds r2, r6, #0 + bl sub_080044AE +_0808202E: + adds r4, #4 + adds r5, #1 + cmp r5, #2 + bls _0808201E +_08082036: + pop {r4, r5, r6, pc} + .align 2, 0 +_08082038: .4byte gLinkEntity +_0808203C: .4byte gUnk_03004040 + + thumb_func_start sub_08082040 +sub_08082040: @ 0x08082040 + push {lr} + ldr r2, _08082054 @ =gUnk_0811EE5C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08082054: .4byte gUnk_0811EE5C + + thumb_func_start sub_08082058 +sub_08082058: @ 0x08082058 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08082098 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08082098 +sub_08082098: @ 0x08082098 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _08082100 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080820AC + bl sub_0805E780 +_080820AC: + ldr r5, _08082104 @ =gLinkEntity + adds r0, r4, #0 + bl sub_08079BD8 + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r1, [r5, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r1, [r5, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0x14] + lsrs r3, r0, #1 + adds r7, r3, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0x14 + beq _08082122 + cmp r0, #0x14 + bgt _08082108 + cmp r0, #0xa + beq _0808212A + b _0808212E + .align 2, 0 +_08082100: .4byte gUnk_03003F80 +_08082104: .4byte gLinkEntity +_08082108: + cmp r0, #0x16 + beq _08082112 + cmp r0, #0x18 + beq _08082126 + b _0808212E +_08082112: + ldrb r0, [r4, #0x14] + movs r3, #0xd + adds r5, r4, #0 + adds r5, #0x58 + cmp r0, #2 + bne _080821F2 + movs r3, #0xe + b _080821F2 +_08082122: + movs r3, #0xc + b _080821EE +_08082126: + adds r3, #0xf + b _080821EE +_0808212A: + movs r3, #0x13 + b _080821EE +_0808212E: + adds r0, r5, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _0808213E + adds r3, r7, #0 + adds r3, #8 + b _080821EE +_0808213E: + ldr r2, _0808215C @ =gUnk_03003F80 + ldrb r1, [r2, #2] + adds r6, r1, #0 + cmp r6, #0 + beq _08082160 + movs r0, #0x10 + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x58 + cmp r0, #0 + bne _080821F2 + adds r3, r7, #0 + adds r3, #0x19 + b _080821F2 + .align 2, 0 +_0808215C: .4byte gUnk_03003F80 +_08082160: + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #1 + beq _0808216E + cmp r0, #0x19 + bne _080821C8 +_0808216E: + adds r3, r7, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, r3 + beq _08082180 + str r6, [r4, #0x34] + b _080821BA +_08082180: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r7, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080821F2 + adds r2, r4, #0 + adds r2, #0x63 + movs r1, #0 + ldrsb r1, [r2, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080821C0 + cmp r1, r0 + bgt _080821AC + subs r0, #1 + cmp r1, r0 + beq _080821B4 + b _080821F2 +_080821AC: + cmp r1, #0 + bne _080821F2 + movs r0, #0xfe + b _080821B8 +_080821B4: + ldrb r0, [r2] + orrs r0, r7 +_080821B8: + strb r0, [r2] +_080821BA: + movs r0, #6 + strb r0, [r4, #0xe] + b _080821F2 +_080821C0: + strb r6, [r2] + movs r0, #3 + strb r0, [r4, #0xe] + b _080821F2 +_080821C8: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r2, [r0] + adds r1, r2, #0 + cmp r1, #0 + beq _080821E8 + movs r0, #0x80 + ands r0, r2 + adds r3, r7, #0 + adds r3, #0x14 + adds r5, r4, #0 + adds r5, #0x58 + cmp r0, #0 + beq _080821F2 + movs r3, #0x18 + b _080821F2 +_080821E8: + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] +_080821EE: + adds r5, r4, #0 + adds r5, #0x58 +_080821F2: + ldrb r0, [r5] + cmp r0, r3 + beq _08082202 + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_080042AC + b _08082208 +_08082202: + adds r0, r4, #0 + bl sub_080042B8 +_08082208: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808220C +sub_0808220C: @ 0x0808220C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08082228 @ =gUnk_0811F090 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08082228: .4byte gUnk_0811F090 + + thumb_func_start sub_0808222C +sub_0808222C: @ 0x0808222C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0808224C + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808224C + bl sub_0805E780 +_0808224C: + movs r2, #1 + strb r2, [r4, #0xc] + ldr r0, _08082308 @ =gUnk_080FD338 + str r0, [r4, #0x48] + movs r1, #0 + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + adds r0, #3 + strh r0, [r4, #0x32] + strb r1, [r4, #0x16] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x45 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #0x84 + strb r0, [r1] + movs r0, #0x12 + strb r0, [r4, #0x1c] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r0, [r5] + cmp r0, #0 + bne _08082298 + adds r0, r4, #0 + bl sub_08016A30 +_08082298: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r7, _0808230C @ =gRoomControls + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #7 + mov r8, r1 + cmp r0, r8 + bne _080822D6 + bl sub_0805E780 +_080822D6: + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldrh r0, [r7, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + ldrb r2, [r5] + mov r0, r8 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08082308: .4byte gUnk_080FD338 +_0808230C: .4byte gRoomControls + + thumb_func_start sub_08082310 +sub_08082310: @ 0x08082310 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r6, #0x7f + adds r1, r6, #0 + ands r1, r0 + cmp r1, #0x13 + beq _08082342 + cmp r1, #0x1d + beq _0808234C + adds r0, r5, #0 + bl sub_080002A0 + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #7 + cmp r4, r0 + bne _08082338 + b _080824F0 +_08082338: + adds r0, #1 + cmp r4, r0 + bhs _08082340 + b _08082484 +_08082340: + b _080823C4 +_08082342: + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + b _080824F6 +_0808234C: + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080823C0 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r2, [r5, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r1, #0 + movs r0, #5 + strb r0, [r5, #0xc] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] + ldrb r1, [r5, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + bl sub_08082824 + b _080824F6 + .align 2, 0 +_080823C0: .4byte gRoomControls +_080823C4: + ldr r0, _080823D4 @ =0x00004004 + cmp r4, r0 + bls _080823D8 + adds r0, #0x63 + cmp r4, r0 + beq _08082448 + b _08082484 + .align 2, 0 +_080823D4: .4byte 0x00004004 +_080823D8: + ldr r1, _08082438 @ =0xFFFFBFFF + adds r0, r4, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + movs r0, #0x20 + strb r0, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xc] + ldr r0, _0808243C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08082400 + ldrh r0, [r5, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r5, #0x24] + movs r0, #0x40 + strb r0, [r5, #0xe] +_08082400: + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08082440 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldr r0, _08082444 @ =0x0000010F + bl sub_08004488 + b _080824F6 + .align 2, 0 +_08082438: .4byte 0xFFFFBFFF +_0808243C: .4byte gUnk_03003F80 +_08082440: .4byte gRoomControls +_08082444: .4byte 0x0000010F +_08082448: + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r7, #0x2e + ldrsh r1, [r5, r7] + ldr r3, _08082480 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + bl sub_0805E780 + b _080824F6 + .align 2, 0 +_08082480: .4byte gRoomControls +_08082484: + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0xd + bne _0808249A + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + bl CreateFX + b _080824D8 +_0808249A: + ldr r0, _080824E4 @ =0x00004005 + cmp r4, r0 + bne _080824D8 + ldr r0, _080824E8 @ =gUnk_03003F80 + adds r0, #0xab + movs r1, #4 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r7, #0x2e + ldrsh r1, [r5, r7] + ldr r3, _080824EC @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_080824D8: + adds r0, r5, #0 + movs r1, #0 + bl sub_08082850 + b _080824F6 + .align 2, 0 +_080824E4: .4byte 0x00004005 +_080824E8: .4byte gUnk_03003F80 +_080824EC: .4byte gRoomControls +_080824F0: + adds r0, r5, #0 + bl sub_08078930 +_080824F6: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080824F8 +sub_080824F8: @ 0x080824F8 + push {lr} + ldr r2, _0808250C @ =gUnk_0811F0A8 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808250C: .4byte gUnk_0811F0A8 + + thumb_func_start sub_08082510 +sub_08082510: @ 0x08082510 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r5, #0x10] + ldr r0, _08082578 @ =gUnk_080FD340 + str r0, [r5, #0x48] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + ldr r0, _0808257C @ =gLinkEntity + adds r0, #0x3b + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x63 + strb r2, [r0] + adds r0, #0xd + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08082580 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + pop {r4, r5, r6, pc} + .align 2, 0 +_08082578: .4byte gUnk_080FD340 +_0808257C: .4byte gLinkEntity +_08082580: .4byte gRoomControls + + thumb_func_start nullsub_511 +nullsub_511: @ 0x08082584 + bx lr + .align 2, 0 + + thumb_func_start sub_08082588 +sub_08082588: @ 0x08082588 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0808259C +sub_0808259C: @ 0x0808259C + push {r4, lr} + adds r4, r0, #0 + bl sub_080043E8 + cmp r0, #2 + beq _080825B8 + cmp r0, #2 + bhi _080825B2 + cmp r0, #1 + beq _080825BE + b _080825D0 +_080825B2: + cmp r0, #3 + beq _080825C4 + b _080825D0 +_080825B8: + adds r0, r4, #0 + movs r1, #0xb + b _080825C8 +_080825BE: + adds r0, r4, #0 + movs r1, #0 + b _080825C8 +_080825C4: + adds r0, r4, #0 + movs r1, #0xc +_080825C8: + movs r2, #0 + bl CreateFX + b _080825E0 +_080825D0: + ldr r1, _080825DC @ =gLinkEntity + adds r0, r4, #0 + bl sub_08082850 + b _080825E4 + .align 2, 0 +_080825DC: .4byte gLinkEntity +_080825E0: + bl sub_0805E780 +_080825E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080825E8 +sub_080825E8: @ 0x080825E8 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080825F0 +sub_080825F0: @ 0x080825F0 + push {lr} + adds r1, r0, #0 + ldr r0, _08082604 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08082602 + adds r0, r1, #0 + bl sub_08082608 +_08082602: + pop {pc} + .align 2, 0 +_08082604: .4byte gUnk_03003F80 + + thumb_func_start sub_08082608 +sub_08082608: @ 0x08082608 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_08082614 +sub_08082614: @ 0x08082614 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_0800445C + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08082638 + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + bl sub_08016A6C + b _080826DC +_08082638: + adds r0, r5, #0 + bl sub_0800442E + cmp r0, #0 + bne _080826DC + movs r0, #1 + strb r0, [r5, #0xc] + ldr r0, _080826A4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08082658 + ldrh r0, [r5, #0x24] + lsls r0, r0, #1 + strh r0, [r5, #0x24] +_08082658: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _080826A8 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r4, #0x32 + ldrsh r1, [r5, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x70 + strh r0, [r1] + adds r0, r5, #0 + bl sub_080002A0 + adds r6, r4, #0 + cmp r0, #0x72 + bhi _080826AC + cmp r0, #0x71 + blo _080826AC + adds r0, r5, #0 + movs r1, #0 + bl sub_08082850 + b _080826DC + .align 2, 0 +_080826A4: .4byte gUnk_03003F80 +_080826A8: .4byte gRoomControls +_080826AC: + movs r0, #0x80 + lsls r0, r0, #7 + movs r7, #0x2e + ldrsh r1, [r5, r7] + ldr r3, _080826E0 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r2, [r5, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r6] + bl sub_0800015E + adds r0, r5, #0 + bl sub_08078930 +_080826DC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080826E0: .4byte gRoomControls + + thumb_func_start sub_080826E4 +sub_080826E4: @ 0x080826E4 + push {lr} + ldr r2, _080826F8 @ =gUnk_0811F0C4 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080826F8: .4byte gUnk_0811F0C4 + + thumb_func_start sub_080826FC +sub_080826FC: @ 0x080826FC + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x30 + strb r1, [r0, #0x1d] + strb r2, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_0808270C +sub_0808270C: @ 0x0808270C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08082768 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0808272A + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08082770 +_0808272A: + adds r1, r5, #0 + adds r1, #0x62 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x80 + lsls r0, r0, #7 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808276C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _08082776 + .align 2, 0 +_08082768: .4byte gUnk_03003F80 +_0808276C: .4byte gRoomControls +_08082770: + adds r0, r5, #0 + bl sub_0806F4E8 +_08082776: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08082778 +sub_08082778: @ 0x08082778 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xe] + cmp r1, #0 + bne _080827C4 + movs r0, #1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x62 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080827E8 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_080827C4: + ldr r0, _080827EC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _080827DE + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _080827F0 +_080827DE: + adds r0, r5, #0 + movs r1, #0 + bl sub_08082850 + b _080827F6 + .align 2, 0 +_080827E8: .4byte gRoomControls +_080827EC: .4byte gUnk_03003F80 +_080827F0: + adds r0, r5, #0 + bl sub_0806F3E4 +_080827F6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080827F8 +sub_080827F8: @ 0x080827F8 + push {lr} + adds r1, r0, #0 + ldr r0, _08082810 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + cmp r0, #0 + bne _0808280C + adds r0, r1, #0 + movs r1, #0 + bl sub_08082850 +_0808280C: + pop {pc} + .align 2, 0 +_08082810: .4byte gUnk_03003F80 + + thumb_func_start nullsub_512 +nullsub_512: @ 0x08082814 + bx lr + .align 2, 0 + + thumb_func_start sub_08082818 +sub_08082818: @ 0x08082818 + push {lr} + movs r1, #0 + bl sub_08082850 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08082824 +sub_08082824: @ 0x08082824 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08082836 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_08082836: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808284C + adds r0, r4, #0 + movs r1, #0 + bl sub_08082850 +_0808284C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08082850 +sub_08082850: @ 0x08082850 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r1, [r4, #0xa] + adds r0, #0x7d + ldrb r2, [r0] + ldrb r3, [r4, #0xb] + adds r0, r4, #0 + bl sub_0808288C + adds r2, r0, #0 + adds r0, r4, #0 + movs r1, #5 + bl CreateFX + cmp r0, #0 + beq _08082874 + str r5, [r0, #0x50] +_08082874: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _08082884 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_08082884: + bl sub_0805E780 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808288C +sub_0808288C: @ 0x0808288C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + mov r8, r3 + movs r6, #0 + cmp r4, #0 + beq _080828A6 + cmp r4, #0xff + bne _080828AA + b _080828D6 +_080828A6: + movs r6, #0x80 + b _080828D6 +_080828AA: + adds r0, r7, #0 + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _080828D6 + mov r0, r8 + cmp r0, #2 + bne _080828D4 + movs r0, #5 + strb r0, [r2, #0xe] + adds r0, r7, #0 + adds r0, #0x86 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x86 + strh r1, [r0] + b _080828D6 +_080828D4: + strb r6, [r2, #0xe] +_080828D6: + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080828E0 +sub_080828E0: @ 0x080828E0 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080828F8 + ldr r0, _080828F4 @ =gUnk_0811F15C + b _08082900 + .align 2, 0 +_080828F4: .4byte gUnk_0811F15C +_080828F8: + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08082914 + ldr r0, _08082910 @ =gUnk_0811F14C +_08082900: + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08082924 + .align 2, 0 +_08082910: .4byte gUnk_0811F14C +_08082914: + ldr r0, _08082928 @ =gUnk_0811F154 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08082924: + pop {pc} + .align 2, 0 +_08082928: .4byte gUnk_0811F154 + + thumb_func_start sub_0808292C +sub_0808292C: @ 0x0808292C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x11] + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + ldr r5, _080829C8 @ =gLinkEntity + ldrb r1, [r5, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + movs r0, #7 + ands r1, r0 + mov r0, ip + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r0, [r5, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r1, [r4, #0x1a] + ands r3, r1 + orrs r3, r0 + strb r3, [r4, #0x1a] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r5, #0x14] + cmp r0, #2 + bne _080829A4 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080829A4: + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080829CC + movs r0, #7 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + movs r0, #0xf3 + bl sub_080A3268 + b _080829E2 + .align 2, 0 +_080829C8: .4byte gLinkEntity +_080829CC: + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #0xa + strb r0, [r4, #0xf] + ldrh r0, [r4, #0x32] + subs r0, #0xe + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0x14 + bl sub_080042AC +_080829E2: + pop {r4, r5, pc} + + thumb_func_start sub_080829E4 +sub_080829E4: @ 0x080829E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08082A10 @ =gLinkEntity + ldrb r1, [r0, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r5, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1a] + ldr r3, _08082A14 @ =gTextBox + ldrb r0, [r3] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08082A18 + adds r0, r5, #0 + bl sub_0805E7BC + b _08082AB4 + .align 2, 0 +_08082A10: .4byte gLinkEntity +_08082A14: .4byte gTextBox +_08082A18: + cmp r1, #5 + beq _08082A9C + ldrb r1, [r3, #1] + adds r0, r1, #0 + cmp r0, #0xa + beq _08082A30 + cmp r0, #0 + beq _08082A30 + movs r0, #0xf + ands r0, r1 + cmp r0, #9 + bls _08082A4A +_08082A30: + adds r1, r5, #0 + adds r1, #0x58 + ldrb r2, [r5, #0xf] + movs r0, #3 + ldrb r1, [r1] + orrs r2, r0 + cmp r1, r2 + beq _08082A9C + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_080042AC + b _08082AB4 +_08082A4A: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08082A78 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x90 + ands r0, r1 + cmp r0, #0 + beq _08082A9C + bl sub_08000E50 + ldr r4, _08082A74 @ =gUnk_0811F16C + movs r1, #9 + bl __modsi3 + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r5, #0xf] + b _08082A8C + .align 2, 0 +_08082A74: .4byte gUnk_0811F16C +_08082A78: + adds r2, r5, #0 + adds r2, #0x58 + ldr r1, _08082A98 @ =gUnk_0811F16C + ldrb r0, [r3, #1] + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2] + cmp r0, r1 + beq _08082A9C + strb r1, [r5, #0xf] +_08082A8C: + ldrb r1, [r5, #0xf] + adds r0, r5, #0 + bl sub_080042AC + b _08082AB4 + .align 2, 0 +_08082A98: .4byte gUnk_0811F16C +_08082A9C: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #7 + bls _08082AAA + movs r0, #1 + b _08082AAC +_08082AAA: + movs r0, #0 +_08082AAC: + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_080042B8 +_08082AB4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08082AB8 +sub_08082AB8: @ 0x08082AB8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08082B10 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r5, #0x80 + ands r0, r5 + cmp r0, #0 + beq _08082ACC + bl sub_0805E780 +_08082ACC: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08082B5C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08082B98 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xa + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + subs r5, r0, #1 + adds r0, r4, #0 + movs r1, #0x79 + adds r2, r5, #0 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08082B18 + cmp r5, #0 + bne _08082B14 + str r1, [r4, #0x50] + b _08082B18 + .align 2, 0 +_08082B10: .4byte gUnk_03003F80 +_08082B14: + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] +_08082B18: + ldrb r0, [r4, #0xe] + cmp r0, #6 + bne _08082B36 + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xb] + adds r0, r4, #0 + movs r1, #0x1c + bl sub_080042AC + b _08082B98 +_08082B36: + ldr r1, _08082B58 @ =gUnk_0811F178 + ldrb r0, [r4, #0xe] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0xe] + cmp r0, #2 + bls _08082B98 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08082B98 + .align 2, 0 +_08082B58: .4byte gUnk_0811F178 +_08082B5C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08082B98 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0xe] + cmp r0, #0 + beq _08082B98 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0xe] + adds r1, #0x1b + adds r0, r4, #0 + bl sub_080042AC +_08082B98: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08082B9C +sub_08082B9C: @ 0x08082B9C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r1, [r6, #0x11] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r6, #0x11] + ldr r5, _08082C34 @ =gLinkEntity + ldrb r0, [r5, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r1, [r6, #0x1a] + ands r2, r1 + orrs r2, r0 + strb r2, [r6, #0x1a] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x38 + movs r4, #0 + strb r1, [r0] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r6, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r6, #0x18] + movs r0, #1 + strb r0, [r6, #0xc] + adds r0, r6, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r6, #0 + movs r1, #0xc + bl sub_080042AC + adds r0, r6, #0 + adds r0, #0x82 + strh r4, [r0] + adds r4, r6, #0 + adds r4, #0x84 + ldr r1, [r4] + adds r0, r6, #0 + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r6, #0 + bl sub_08082D20 + ldrb r0, [r5, #0x14] + cmp r0, #2 + bne _08082C2C + ldrb r0, [r6, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x18] +_08082C2C: + adds r0, r6, #0 + bl sub_08082C5C + pop {r4, r5, r6, pc} + .align 2, 0 +_08082C34: .4byte gLinkEntity + + thumb_func_start sub_08082C38 +sub_08082C38: @ 0x08082C38 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_08082D20 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bhi _08082C5A + adds r0, r5, #0 + bl sub_08082C5C +_08082C5A: + pop {r4, r5, pc} + + thumb_func_start sub_08082C5C +sub_08082C5C: @ 0x08082C5C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #4 + bhi _08082D0C + lsls r0, r0, #2 + ldr r1, _08082C70 @ =_08082C74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08082C70: .4byte _08082C74 +_08082C74: @ jump table + .4byte _08082C88 @ case 0 + .4byte _08082C9C @ case 1 + .4byte _08082CB0 @ case 2 + .4byte _08082CE4 @ case 3 + .4byte _08082CF8 @ case 4 +_08082C88: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x17 + beq _08082D0C + adds r0, r5, #0 + movs r1, #0x17 + bl sub_080042AC + b _08082D1C +_08082C9C: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x18 + beq _08082D0C + adds r0, r5, #0 + movs r1, #0x18 + bl sub_080042AC + b _08082D1C +_08082CB0: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08082D0C + bl sub_08000E50 + adds r4, r0, #0 + bl sub_08000E50 + adds r1, r0, #0 + ldr r2, _08082CE0 @ =gUnk_0811F18C + movs r0, #3 + ands r4, r0 + adds r4, r4, r2 + ands r1, r0 + ldrb r4, [r4] + adds r1, r1, r4 + adds r0, r5, #0 + bl sub_080042AC + b _08082D1C + .align 2, 0 +_08082CE0: .4byte gUnk_0811F18C +_08082CE4: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x13 + beq _08082D0C + adds r0, r5, #0 + movs r1, #0x13 + bl sub_080042AC + b _08082D1C +_08082CF8: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x1a + beq _08082D0C + adds r0, r5, #0 + movs r1, #0x1a + bl sub_080042AC + b _08082D1C +_08082D0C: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 +_08082D1C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08082D20 +sub_08082D20: @ 0x08082D20 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldr r0, [r3, #8] + cmp r0, #0 + beq _08082E10 + movs r6, #0 + movs r5, #1 + movs r0, #4 + rsbs r0, r0, #0 + mov ip, r0 +_08082D36: + ldr r1, [r3, #8] + mvns r0, r1 + adds r2, r0, #1 + ands r2, r1 + eors r1, r2 + str r1, [r3, #8] + cmp r2, #0x80 + beq _08082DB4 + cmp r2, #0x80 + bhi _08082D66 + cmp r2, #4 + beq _08082D9E + cmp r2, #4 + bhi _08082D5C + cmp r2, #1 + beq _08082D96 + cmp r2, #2 + beq _08082D9A + b _08082E0A +_08082D5C: + cmp r2, #8 + beq _08082DA4 + cmp r2, #0x40 + beq _08082DDA + b _08082E0A +_08082D66: + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r2, r0 + beq _08082DDE + cmp r2, r0 + bhi _08082D84 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + beq _08082DAA + movs r0, #0x80 + lsls r0, r0, #0xa + cmp r2, r0 + beq _08082DC0 + b _08082E0A +_08082D84: + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r2, r0 + beq _08082DE6 + movs r0, #0x80 + lsls r0, r0, #0xf + cmp r2, r0 + beq _08082DF2 + b _08082E0A +_08082D96: + strb r6, [r4, #0xd] + b _08082E0A +_08082D9A: + strb r5, [r4, #0xd] + b _08082E0A +_08082D9E: + movs r0, #2 + strb r0, [r4, #0xd] + b _08082E0A +_08082DA4: + movs r0, #3 + strb r0, [r4, #0xd] + b _08082E0A +_08082DAA: + ldrb r0, [r4, #0x18] + mov r1, ip + ands r0, r1 + strb r0, [r4, #0x18] + b _08082E0A +_08082DB4: + ldrb r0, [r4, #0x18] + mov r7, ip + ands r0, r7 + orrs r0, r5 + strb r0, [r4, #0x18] + b _08082E0A +_08082DC0: + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + ands r1, r5 + lsls r1, r1, #6 + movs r7, #0x41 + rsbs r7, r7, #0 + adds r2, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08082E0A +_08082DDA: + bl sub_0805E780 +_08082DDE: + movs r0, #2 + strb r0, [r4, #0xc] + strb r6, [r4, #0xd] + b _08082E10 +_08082DE6: + movs r0, #4 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + b _08082E0A +_08082DF2: + movs r0, #3 + strb r0, [r4, #0xc] + strb r6, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x62 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x1b + bl sub_080042AC + b _08082E10 +_08082E0A: + ldr r0, [r3, #8] + cmp r0, #0 + bne _08082D36 +_08082E10: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08082E14 +sub_08082E14: @ 0x08082E14 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0807DF74 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08082E38 + cmp r0, #1 + beq _08082E44 + b _08082E5E +_08082E38: + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08082E5E + movs r0, #1 + strb r0, [r4, #0xd] + b _08082E5E +_08082E44: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + ble _08082E5E + ldr r0, _08082E68 @ =gUnk_02033280 + ldr r1, [r0] + movs r2, #2 + orrs r1, r2 + str r1, [r0] + bl sub_0805E780 +_08082E5E: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08082E68: .4byte gUnk_02033280 + + thumb_func_start sub_08082E6C +sub_08082E6C: @ 0x08082E6C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08082E98 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x17 + bl sub_080042AC +_08082E98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08082E9C +sub_08082E9C: @ 0x08082E9C + push {lr} + ldr r2, _08082EB0 @ =gUnk_0811F624 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08082EB0: .4byte gUnk_0811F624 + + thumb_func_start sub_08082EB4 +sub_08082EB4: @ 0x08082EB4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _08082EE0 @ =gRoomControls + ldrb r1, [r0, #4] + adds r6, r0, #0 + cmp r1, #0x11 + bne _08082EF6 + adds r0, r4, #0 + bl sub_080AE068 + ldr r1, _08082EE4 @ =0x000001C1 + adds r0, r4, #0 + bl sub_080ADF80 + cmp r0, #0 + bne _08082EE8 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808308E + .align 2, 0 +_08082EE0: .4byte gRoomControls +_08082EE4: .4byte 0x000001C1 +_08082EE8: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_08082EF6: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x88 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrh r1, [r6, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r6, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + ldrh r0, [r4, #0x2e] + adds r0, r1, r0 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x32] + ldr r1, _08082F6C @ =gUnk_0811F64C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_080002B0 + str r0, [r4, #0x68] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _08082F7A + cmp r0, #1 + bgt _08082F70 + cmp r0, #0 + beq _08082F76 + b _08082FF0 + .align 2, 0 +_08082F6C: .4byte gUnk_0811F64C +_08082F70: + cmp r0, #2 + beq _08082F9A + b _08082FF0 +_08082F76: + adds r0, r5, #0 + b _08082FE8 +_08082F7A: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #1 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x41 + b _08082FE8 +_08082F9A: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #1 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #2 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x41 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x42 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x80 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x81 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x82 +_08082FE8: + adds r1, r4, #0 + bl sub_080832D8 + b _08083088 +_08082FF0: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #1 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #2 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #3 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x41 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x42 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x43 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x80 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x81 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x82 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x83 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0xc0 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0xc1 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0xc2 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0xc3 + adds r1, r4, #0 + bl sub_080832D8 +_08083088: + ldr r0, _08083090 @ =0x0000010F + bl sub_08004488 +_0808308E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08083090: .4byte 0x0000010F + + thumb_func_start sub_08083094 +sub_08083094: @ 0x08083094 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0800445C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080830B4 + adds r0, r4, #0 + bl sub_080830B8 +_080830B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080830B8 +sub_080830B8: @ 0x080830B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + ldrb r5, [r0, #0xa] + lsls r4, r5, #3 + movs r1, #0x2e + ldrsh r0, [r0, r1] + subs r0, r0, r4 + ldr r3, _080830FC @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r7, r0, #4 + movs r2, #0x3f + ands r7, r2 + mov r6, sb + movs r1, #0x32 + ldrsh r0, [r6, r1] + subs r0, r0, r4 + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r7, r0 + cmp r5, #1 + beq _08083128 + cmp r5, #1 + bgt _08083100 + cmp r5, #0 + beq _08083106 + b _080831EC + .align 2, 0 +_080830FC: .4byte gRoomControls +_08083100: + cmp r5, #2 + beq _08083160 + b _080831EC +_08083106: + mov r0, sb + bl sub_0800442E + cmp r0, #0 + beq _08083112 + b _080832C0 +_08083112: + ldr r0, _08083124 @ =0x00000365 + mov r1, sb + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r7, #0 + bl sub_0807B7D8 + b _080832BA + .align 2, 0 +_08083124: .4byte 0x00000365 +_08083128: + mov r2, sb + ldr r0, [r2, #0x68] + mov r4, sb + adds r4, #0x38 + ldrb r2, [r4] + adds r1, r7, #0 + bl sub_0807B7D8 + ldr r0, _08083158 @ =0x0000036F + adds r1, r7, #1 + ldrb r2, [r4] + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _0808315C @ =0x00000371 + adds r1, r7, #0 + adds r1, #0x41 + b _080831CA + .align 2, 0 +_08083158: .4byte 0x0000036F +_0808315C: .4byte 0x00000371 +_08083160: + mov r6, sb + ldr r0, [r6, #0x68] + mov r4, sb + adds r4, #0x38 + ldrb r2, [r4] + adds r1, r7, #0 + bl sub_0807B7D8 + ldr r0, _080831D4 @ =0x00000372 + adds r1, r7, #1 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _080831D8 @ =0x0000036F + adds r1, r7, #2 + ldrb r2, [r4] + bl sub_0807B7D8 + movs r0, #0xdd + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _080831DC @ =0x00000376 + adds r1, r7, #0 + adds r1, #0x41 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _080831E0 @ =0x00000375 + adds r1, r7, #0 + adds r1, #0x42 + ldrb r2, [r4] + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x80 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _080831E4 @ =0x00000373 + adds r1, r7, #0 + adds r1, #0x81 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _080831E8 @ =0x00000371 + adds r1, r7, #0 + adds r1, #0x82 +_080831CA: + ldrb r2, [r4] + bl sub_0807B7D8 + b _080832BA + .align 2, 0 +_080831D4: .4byte 0x00000372 +_080831D8: .4byte 0x0000036F +_080831DC: .4byte 0x00000376 +_080831E0: .4byte 0x00000375 +_080831E4: .4byte 0x00000373 +_080831E8: .4byte 0x00000371 +_080831EC: + mov r1, sb + ldr r0, [r1, #0x68] + mov r4, sb + adds r4, #0x38 + ldrb r2, [r4] + adds r1, r7, #0 + bl sub_0807B7D8 + ldr r5, _080832C8 @ =0x00000372 + adds r1, r7, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + adds r1, r7, #2 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + ldr r0, _080832CC @ =0x0000036F + adds r1, r7, #3 + ldrb r2, [r4] + bl sub_0807B7D8 + movs r2, #0xdd + lsls r2, r2, #2 + mov r8, r2 + adds r1, r7, #0 + adds r1, #0x40 + ldrb r2, [r4] + mov r0, r8 + bl sub_0807B7D8 + adds r5, #4 + adds r1, r7, #0 + adds r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0x42 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + ldr r6, _080832D0 @ =0x00000375 + adds r1, r7, #0 + adds r1, #0x43 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0x80 + ldrb r2, [r4] + mov r0, r8 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0x81 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0x82 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0x83 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0xc0 + ldrb r2, [r4] + bl sub_0807B7D8 + subs r5, #3 + adds r1, r7, #0 + adds r1, #0xc1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0xc2 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + ldr r0, _080832D4 @ =0x00000371 + adds r1, r7, #0 + adds r1, #0xc3 + ldrb r2, [r4] + bl sub_0807B7D8 +_080832BA: + mov r0, sb + bl sub_0805E7BC +_080832C0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080832C8: .4byte 0x00000372 +_080832CC: .4byte 0x0000036F +_080832D0: .4byte 0x00000375 +_080832D4: .4byte 0x00000371 + + thumb_func_start sub_080832D8 +sub_080832D8: @ 0x080832D8 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + adds r2, #0x38 + ldrb r0, [r2] + cmp r0, #2 + beq _080832FC + ldrb r1, [r1, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080832F6 + ldrb r2, [r2] + movs r0, #0x21 + b _0808330A +_080832F6: + ldrb r2, [r2] + movs r0, #0x20 + b _0808330A +_080832FC: + ldrb r1, [r1, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08083312 + ldrb r2, [r2] + movs r0, #0x2f +_0808330A: + adds r1, r3, #0 + bl sub_0807B7D8 + b _0808331C +_08083312: + ldrb r2, [r2] + movs r0, #0x2e + adds r1, r3, #0 + bl sub_0807B7D8 +_0808331C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08083320 +sub_08083320: @ 0x08083320 + push {lr} + ldr r2, _08083334 @ =gUnk_0811F65C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08083334: .4byte gUnk_0811F65C + + thumb_func_start sub_08083338 +sub_08083338: @ 0x08083338 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r2] + ldr r0, _08083400 @ =0x0000FFFF + cmp r1, r0 + beq _08083356 + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _08083356 + bl sub_0805E780 +_08083356: + adds r0, r4, #0 + bl sub_080837B0 + cmp r0, #0 + bne _08083362 + b _080834B2 +_08083362: + ldrb r2, [r4, #0xa] + lsrs r0, r2, #2 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0xb] + movs r7, #3 + adds r0, r7, #0 + ands r0, r2 + strb r0, [r4, #0x1e] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrb r1, [r4, #0xa] + adds r0, r7, #0 + ands r0, r1 + adds r6, r4, #0 + adds r6, #0x7e + strb r0, [r6] + ldr r0, _08083404 @ =gUnk_080FD170 + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xa] + movs r0, #0xf + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x5a + strb r0, [r1] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08083408 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + ldrh r0, [r5] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08083438 + cmp r0, #1 + bgt _0808340C + cmp r0, #0 + beq _08083412 + b _080834AE + .align 2, 0 +_08083400: .4byte 0x0000FFFF +_08083404: .4byte gUnk_080FD170 +_08083408: .4byte gRoomControls +_0808340C: + cmp r0, #2 + beq _08083456 + b _080834AE +_08083412: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808342E + ldrb r1, [r4, #0xa] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808344E + strb r7, [r4, #0xc] + b _080834B2 +_0808342E: + ldrb r1, [r4, #0xa] + movs r0, #0xef + ands r0, r1 + strb r0, [r4, #0xa] + b _08083446 +_08083438: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808344E +_08083446: + adds r0, r4, #0 + bl sub_08083638 + b _080834B2 +_0808344E: + adds r0, r4, #0 + bl sub_080836A0 + b _080834B2 +_08083456: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080834A8 + ldrb r0, [r4, #0x1e] + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x1e] + ldrb r1, [r6] + ldrh r2, [r5] + adds r0, r4, #0 + bl sub_080836DC + bl sub_08052660 + cmp r0, #0 + bne _08083484 + movs r0, #5 + strb r0, [r4, #0xc] + b _080834B2 +_08083484: + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080787CC + ldr r1, _080834A4 @ =gUnk_0811F740 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + movs r3, #0 + bl sub_08078850 + b _080834B2 + .align 2, 0 +_080834A4: .4byte gUnk_0811F740 +_080834A8: + bl sub_0805E780 + b _080834B2 +_080834AE: + bl sub_0805E780 +_080834B2: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080834B4 +sub_080834B4: @ 0x080834B4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080834E6 + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #7 + strb r0, [r2, #0xe] + adds r0, r2, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldr r0, _080834E8 @ =0x0000010B + bl sub_08004488 +_080834E6: + pop {pc} + .align 2, 0 +_080834E8: .4byte 0x0000010B + + thumb_func_start sub_080834EC +sub_080834EC: @ 0x080834EC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08083516 + ldrb r1, [r4, #0xa] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08083512 + adds r0, r4, #0 + bl sub_08083638 + b _08083516 +_08083512: + bl sub_0805E780 +_08083516: + pop {r4, pc} + + thumb_func_start sub_08083518 +sub_08083518: @ 0x08083518 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7e + ldrb r1, [r5] + bl sub_08083734 + cmp r0, #0 + beq _0808353C + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r5] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r2, [r0] + adds r0, r4, #0 + bl sub_080836DC +_0808353C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08083540 +sub_08083540: @ 0x08083540 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808358C + ldrb r1, [r4, #0xa] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08083566 + movs r0, #0xef + ands r0, r1 + strb r0, [r4, #0xa] + b _0808356E +_08083566: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08083576 +_0808356E: + adds r0, r4, #0 + bl sub_080836A0 + b _0808357A +_08083576: + movs r0, #5 + strb r0, [r4, #0xc] +_0808357A: + adds r0, r4, #0 + adds r0, #0x7e + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08083814 + ldr r0, _08083590 @ =0x0000010B + bl sub_08004488 +_0808358C: + pop {r4, pc} + .align 2, 0 +_08083590: .4byte 0x0000010B + + thumb_func_start nullsub_513 +nullsub_513: @ 0x08083594 + bx lr + .align 2, 0 + + thumb_func_start sub_08083598 +sub_08083598: @ 0x08083598 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080835B2 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080835C6 + b _080835C0 +_080835B2: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080835C6 +_080835C0: + adds r0, r4, #0 + bl sub_08083658 +_080835C6: + pop {r4, pc} + + thumb_func_start sub_080835C8 +sub_080835C8: @ 0x080835C8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080835E2 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080835F4 + b _080835F0 +_080835E2: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080835F4 +_080835F0: + movs r0, #3 + strb r0, [r4, #0xc] +_080835F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080835F8 +sub_080835F8: @ 0x080835F8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08083616 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08083636 +_08083616: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08083658 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #1 + rsbs r0, r0, #0 + bl sub_080526F8 +_08083636: + pop {r4, pc} + + thumb_func_start sub_08083638 +sub_08083638: @ 0x08083638 + adds r2, r0, #0 + movs r0, #7 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #0xb + ands r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r2, #0x32] + bx lr + + thumb_func_start sub_08083658 +sub_08083658: @ 0x08083658 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x14 + strb r1, [r0, #0xe] + adds r2, r0, #0 + adds r2, #0x7e + ldrb r1, [r2] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldrb r2, [r2] + lsls r2, r2, #1 + ldr r1, _08083698 @ =gUnk_0811F680 + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r3, [r0, #0x2e] + adds r1, r1, r3 + strh r1, [r0, #0x2e] + movs r1, #1 + ldrsb r1, [r2, r1] + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] + movs r1, #0x3c + bl sub_0805E4E0 + ldr r0, _0808369C @ =0x0000010B + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08083698: .4byte gUnk_0811F680 +_0808369C: .4byte 0x0000010B + + thumb_func_start sub_080836A0 +sub_080836A0: @ 0x080836A0 + push {lr} + adds r2, r0, #0 + movs r0, #6 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #0xa + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r2, #0x32] + ldr r0, _080836D8 @ =0x00004022 + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {pc} + .align 2, 0 +_080836D8: .4byte 0x00004022 + + thumb_func_start sub_080836DC +sub_080836DC: @ 0x080836DC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r2, #0 + ldr r0, _0808372C @ =0x00004022 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #7 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x18] + subs r0, #0xb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + lsls r0, r4, #3 + movs r1, #0x10 + eors r0, r1 + strb r0, [r5, #0x15] + lsls r4, r4, #1 + ldr r0, _08083730 @ =gUnk_0811F688 + adds r4, r4, r0 + ldrb r0, [r5, #0xb] + cmp r0, #2 + beq _08083728 + movs r0, #0 + ldrsb r0, [r4, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] +_08083728: + pop {r4, r5, pc} + .align 2, 0 +_0808372C: .4byte 0x00004022 +_08083730: .4byte gUnk_0811F688 + + thumb_func_start sub_08083734 +sub_08083734: @ 0x08083734 + push {lr} + adds r2, r0, #0 + cmp r1, #1 + beq _08083760 + cmp r1, #1 + blo _0808374A + cmp r1, #2 + beq _08083774 + cmp r1, #3 + beq _08083790 + b _080837AC +_0808374A: + adds r0, r2, #0 + adds r0, #0x72 + ldrh r1, [r0] + ldr r0, _0808375C @ =gLinkEntity + movs r2, #0x32 + ldrsh r0, [r0, r2] + subs r0, #0xd + b _0808379E + .align 2, 0 +_0808375C: .4byte gLinkEntity +_08083760: + ldr r0, _08083770 @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r0, r1] + adds r0, #0xb + adds r1, r2, #0 + adds r1, #0x70 + b _08083780 + .align 2, 0 +_08083770: .4byte gLinkEntity +_08083774: + ldr r0, _0808378C @ =gLinkEntity + movs r1, #0x32 + ldrsh r0, [r0, r1] + adds r0, #8 + adds r1, r2, #0 + adds r1, #0x72 +_08083780: + ldrh r1, [r1] + subs r0, r0, r1 + cmp r0, #0 + bge _080837AC + movs r0, #1 + b _080837AE + .align 2, 0 +_0808378C: .4byte gLinkEntity +_08083790: + adds r0, r2, #0 + adds r0, #0x70 + ldrh r1, [r0] + ldr r0, _080837A8 @ =gLinkEntity + movs r2, #0x2e + ldrsh r0, [r0, r2] + subs r0, #0xa +_0808379E: + subs r1, r1, r0 + cmp r1, #0 + bge _080837AC + movs r0, #1 + b _080837AE + .align 2, 0 +_080837A8: .4byte gLinkEntity +_080837AC: + movs r0, #0 +_080837AE: + pop {pc} + + thumb_func_start sub_080837B0 +sub_080837B0: @ 0x080837B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _080837C8 @ =gRoomControls + ldrb r2, [r0, #4] + cmp r2, #0x3f + bhi _080837DC + cmp r2, #0x25 + beq _080837CC + cmp r2, #0x35 + beq _080837D4 + movs r5, #0xa + b _080837E8 + .align 2, 0 +_080837C8: .4byte gRoomControls +_080837CC: + ldr r5, _080837D0 @ =0x000001E7 + b _080837E8 + .align 2, 0 +_080837D0: .4byte 0x000001E7 +_080837D4: + ldr r5, _080837D8 @ =0x000001C3 + b _080837E8 + .align 2, 0 +_080837D8: .4byte 0x000001C3 +_080837DC: + ldr r1, _080837F8 @ =gUnk_0811F690 + adds r0, r2, #0 + subs r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r5, [r0] +_080837E8: + cmp r2, #0x68 + bne _080837FC + adds r0, r4, #0 + movs r1, #0 + bl sub_0801D2B4 + b _08083808 + .align 2, 0 +_080837F8: .4byte gUnk_0811F690 +_080837FC: + cmp r2, #0x88 + bne _08083808 + adds r0, r4, #0 + movs r1, #1 + bl sub_0801D2B4 +_08083808: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080ADF80 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08083814 +sub_08083814: @ 0x08083814 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #2 + ldr r0, _08083868 @ =gUnk_0811F730 + adds r4, r1, r0 + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08083842 + movs r0, #0 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_08083842: + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08083866 + movs r0, #2 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + movs r0, #3 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_08083866: + pop {r4, r5, pc} + .align 2, 0 +_08083868: .4byte gUnk_0811F730 + + thumb_func_start sub_0808386C +sub_0808386C: @ 0x0808386C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080838C8 @ =gUnk_03003F80 + adds r0, #0x27 + ldrb r1, [r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r2, r0, #0x1f + ldr r0, _080838CC @ =gUnk_02022740 + ldrb r0, [r0] + cmp r0, #2 + bgt _08083894 + cmp r0, #0 + blt _08083894 + ldr r0, _080838D0 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080838AC +_08083894: + ldr r0, _080838D4 @ =gUnk_03003DF0 + ldr r0, [r0, #4] + ldrb r0, [r0, #3] + cmp r0, #0x32 + bne _080838AA + movs r0, #0x32 + bl sub_0801E7F4 + movs r2, #0 + cmp r0, #0 + beq _080838AC +_080838AA: + movs r2, #1 +_080838AC: + cmp r2, #0 + beq _080838B6 + adds r0, r4, #0 + bl sub_080838DC +_080838B6: + ldr r0, _080838D8 @ =gUnk_0811F754 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080838C8: .4byte gUnk_03003F80 +_080838CC: .4byte gUnk_02022740 +_080838D0: .4byte gTextBox +_080838D4: .4byte gUnk_03003DF0 +_080838D8: .4byte gUnk_0811F754 + + thumb_func_start sub_080838DC +sub_080838DC: @ 0x080838DC + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x1b] + movs r3, #0x3f + adds r1, r3, #0 + ands r1, r2 + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0, #0x1b] + ldrb r1, [r0, #0x19] + ands r3, r1 + strb r3, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r3] + movs r2, #0 + movs r1, #4 + strb r1, [r0, #0xe] + str r2, [r0, #0x54] + strb r2, [r0, #0xc] + bx lr + + thumb_func_start sub_08083914 +sub_08083914: @ 0x08083914 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #1 + beq _08083942 + adds r0, r4, #0 + movs r1, #1 + movs r2, #1 + bl sub_080AE008 + adds r0, r4, #0 + adds r0, #0x60 + ldrh r1, [r0] + subs r1, #0x10 + strh r1, [r0] + ldr r1, _08083958 @ =0x01027820 + movs r0, #1 + bl sub_080ADDD8 + adds r0, r4, #0 + bl sub_080838DC +_08083942: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + pop {r4, pc} + .align 2, 0 +_08083958: .4byte 0x01027820 + + thumb_func_start sub_0808395C +sub_0808395C: @ 0x0808395C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0808396C + subs r0, #1 + strb r0, [r2, #0xe] + b _08083992 +_0808396C: + ldr r3, _08083994 @ =gUnk_03003DF0 + ldr r0, [r3, #4] + ldr r1, [r0, #8] + cmp r1, #0 + beq _08083992 + ldrb r0, [r0, #3] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bhi _08083992 + str r1, [r2, #0x54] + ldrb r0, [r3, #3] + adds r1, r2, #0 + adds r1, #0x39 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08083A40 +_08083992: + pop {pc} + .align 2, 0 +_08083994: .4byte gUnk_03003DF0 + + thumb_func_start sub_08083998 +sub_08083998: @ 0x08083998 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _080839C8 + ldr r0, _080839C4 @ =gUnk_03003DF0 + ldr r2, [r0, #4] + ldrb r0, [r2, #3] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bhi _080839BA + ldr r1, [r4, #0x54] + ldr r0, [r2, #8] + cmp r1, r0 + beq _080839C8 +_080839BA: + adds r0, r4, #0 + bl sub_080838DC + b _08083A32 + .align 2, 0 +_080839C4: .4byte gUnk_03003DF0 +_080839C8: + ldr r1, [r4, #0x54] + ldr r0, [r1, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r1, #0x30] + str r0, [r4, #0x30] + ldr r0, [r1, #0x34] + str r0, [r4, #0x34] + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _08083A2C + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080839F8 + ldr r0, _080839F4 @ =gUnk_03003DF0 + ldr r0, [r0, #4] + ldrb r0, [r0, #3] + b _080839FA + .align 2, 0 +_080839F4: .4byte gUnk_03003DF0 +_080839F8: + ldrb r0, [r4, #0xb] +_080839FA: + lsls r0, r0, #3 + ldr r1, _08083A34 @ =gUnk_080C9CBC + adds r0, r0, r1 + ldrb r2, [r0, #6] + movs r1, #1 + ands r1, r2 + ldrb r3, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldr r0, _08083A38 @ =gUnk_0811F744 + lsls r2, r2, #2 + adds r2, r2, r0 + ldr r1, [r2] + lsrs r2, r1, #0x1f + ldr r0, _08083A3C @ =0x00FFFFFF + ands r1, r0 + orrs r1, r2 + adds r0, #1 + orrs r1, r0 + movs r0, #0 + bl sub_080ADDD8 +_08083A2C: + adds r0, r4, #0 + bl sub_08004274 +_08083A32: + pop {r4, pc} + .align 2, 0 +_08083A34: .4byte gUnk_080C9CBC +_08083A38: .4byte gUnk_0811F744 +_08083A3C: .4byte 0x00FFFFFF + + thumb_func_start sub_08083A40 +sub_08083A40: @ 0x08083A40 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x54] + ldr r1, _08083A70 @ =gLinkEntity + movs r3, #0x2e + ldrsh r2, [r0, r3] + movs r3, #0x2e + ldrsh r0, [r1, r3] + cmp r2, r0 + ble _08083A74 + movs r1, #0 + adds r2, r4, #0 + adds r2, #0x62 + movs r0, #8 + b _08083A7C + .align 2, 0 +_08083A70: .4byte gLinkEntity +_08083A74: + movs r1, #1 + adds r2, r4, #0 + adds r2, #0x62 + movs r0, #0xf8 +_08083A7C: + strb r0, [r2] + adds r2, r4, #0 + adds r2, #0x63 + movs r0, #0xee + strb r0, [r2] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08083998 + pop {r4, pc} + + thumb_func_start sub_08083A94 +sub_08083A94: @ 0x08083A94 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _08083B24 + movs r0, #1 + mov r8, r0 + mov r2, r8 + strb r2, [r6, #0xc] + ldr r0, _08083B10 @ =gUnk_080FD170 + str r0, [r6, #0x48] + adds r7, r6, #0 + adds r7, #0x38 + ldrb r0, [r7] + movs r1, #0x34 + cmp r0, #1 + bne _08083ABC + movs r1, #0x26 +_08083ABC: + adds r4, r6, #0 + adds r4, #0x70 + strh r1, [r4] + adds r0, r6, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08083B1C + ldrh r0, [r4] + movs r3, #0x2e + ldrsh r1, [r6, r3] + ldr r5, _08083B14 @ =gRoomControls + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r7] + bl sub_0807B314 + ldrh r1, [r5] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + beq _08083B08 + ldr r1, _08083B18 @ =gUnk_02000070 + movs r0, #0 + strb r0, [r1] +_08083B08: + bl sub_0805E780 + b _08083B7E + .align 2, 0 +_08083B10: .4byte gUnk_080FD170 +_08083B14: .4byte gRoomControls +_08083B18: .4byte gUnk_02000070 +_08083B1C: + adds r0, r6, #0 + bl sub_080787CC + b _08083B7E +_08083B24: + adds r0, r6, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08083B7E + adds r0, r6, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r5, #0x2e + ldrsh r1, [r6, r5] + ldr r3, _08083B84 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r5, #0x32 + ldrsh r2, [r6, r5] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B314 + adds r0, r6, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r0, r6, #0 + bl sub_080A29BC + movs r0, #1 + rsbs r0, r0, #0 + bl sub_080526F8 + bl sub_0805E780 +_08083B7E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08083B84: .4byte gRoomControls + + thumb_func_start sub_08083B88 +sub_08083B88: @ 0x08083B88 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08083BDC @ =gUnk_0811F7D8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, [r4, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + lsrs r1, r1, #6 + movs r0, #1 + ands r1, r0 + ldrb r2, [r4, #0x18] + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08080CB4 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x1b] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r2, r0 + strb r2, [r4, #0x19] + pop {r4, pc} + .align 2, 0 +_08083BDC: .4byte gUnk_0811F7D8 + + thumb_func_start sub_08083BE0 +sub_08083BE0: @ 0x08083BE0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #6 + bl sub_0805E3A0 + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_08083BF0 +sub_08083BF0: @ 0x08083BF0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0x41 + bne _08083C98 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _08083C98 + lsls r0, r0, #2 + ldr r1, _08083C14 @ =_08083C18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08083C14: .4byte _08083C18 +_08083C18: @ jump table + .4byte _08083C30 @ case 0 + .4byte _08083C30 @ case 1 + .4byte _08083C4A @ case 2 + .4byte _08083C98 @ case 3 + .4byte _08083C98 @ case 4 + .4byte _08083C74 @ case 5 +_08083C30: + ldrb r0, [r4, #0xa] + ldrb r1, [r4, #0xb] + bl sub_08053FF0 + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0x43 + bgt _08083C62 + cmp r0, #0x40 + bge _08083C98 + b _08083C62 +_08083C4A: + ldrb r0, [r4, #0xa] + ldrb r1, [r4, #0xb] + bl sub_08053FF0 + ldr r1, _08083C6C @ =gUnk_080FD964 + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #6] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] +_08083C62: + ldr r0, _08083C70 @ =0x00000109 + bl sub_080A3268 + b _08083C98 + .align 2, 0 +_08083C6C: .4byte gUnk_080FD964 +_08083C70: .4byte 0x00000109 +_08083C74: + ldrb r0, [r4, #0xa] + bl GetInventoryValue + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + ldr r2, _08083C8C @ =gUnk_080FD5B4 + adds r1, r1, r2 + cmp r0, #0 + bne _08083C90 + ldrh r1, [r1, #4] + b _08083C92 + .align 2, 0 +_08083C8C: .4byte gUnk_080FD5B4 +_08083C90: + ldrh r1, [r1, #6] +_08083C92: + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] +_08083C98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08083C9C +sub_08083C9C: @ 0x08083C9C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0x42 + bne _08083D22 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _08083D22 + lsls r0, r0, #2 + ldr r1, _08083CC0 @ =_08083CC4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08083CC0: .4byte _08083CC4 +_08083CC4: @ jump table + .4byte _08083CDC @ case 0 + .4byte _08083D22 @ case 1 + .4byte _08083CDC @ case 2 + .4byte _08083D22 @ case 3 + .4byte _08083D22 @ case 4 + .4byte _08083CDC @ case 5 +_08083CDC: + adds r0, r4, #0 + adds r0, #0x68 + ldrh r1, [r0] + cmp r1, #0 + beq _08083D22 + ldrb r0, [r4, #0xa] + cmp r0, #0x3f + beq _08083D00 + cmp r0, #0x63 + bne _08083D16 + ldr r0, _08083CFC @ =gUnk_02002A40 + adds r0, #0xa9 + ldrb r0, [r0] + adds r1, r1, r0 + b _08083D16 + .align 2, 0 +_08083CFC: .4byte gUnk_02002A40 +_08083D00: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bls _08083D16 + ldr r0, _08083D10 @ =0x00000577 + cmp r1, r0 + bne _08083D14 + subs r1, #1 + b _08083D16 + .align 2, 0 +_08083D10: .4byte 0x00000577 +_08083D14: + adds r1, #1 +_08083D16: + adds r0, r1, #0 + bl TextboxTryNoOverlap + ldr r1, _08083D24 @ =gTextBox + ldrb r0, [r4, #0xb] + str r0, [r1, #0x10] +_08083D22: + pop {r4, pc} + .align 2, 0 +_08083D24: .4byte gTextBox + + thumb_func_start sub_08083D28 +sub_08083D28: @ 0x08083D28 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #8 + beq _08083DD4 + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _08083DD0 + lsls r0, r0, #2 + ldr r1, _08083D44 @ =_08083D48 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08083D44: .4byte _08083D48 +_08083D48: @ jump table + .4byte _08083D60 @ case 0 + .4byte _08083D60 @ case 1 + .4byte _08083D60 @ case 2 + .4byte _08083DAC @ case 3 + .4byte _08083DD0 @ case 4 + .4byte _08083DD0 @ case 5 +_08083D60: + ldrb r0, [r4, #0xa] + cmp r0, #0x62 + beq _08083D88 + cmp r0, #0x63 + bne _08083DD0 + movs r0, #0xa0 + bl ModHealth + ldr r0, _08083DA8 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xa9 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08083DD0 + movs r0, #0 + strb r0, [r1] +_08083D88: + ldr r0, _08083DA8 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xab + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa0 + bls _08083DA0 + movs r0, #0xa0 + strb r0, [r1] +_08083DA0: + movs r0, #0xa0 + bl ModHealth + b _08083DD0 + .align 2, 0 +_08083DA8: .4byte gUnk_02002A40 +_08083DAC: + ldrb r0, [r4, #0xa] + bl sub_080544DC + adds r1, r0, #0 + cmp r1, #0 + beq _08083DC8 + ldr r0, _08083DC4 @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0xb5 + movs r1, #0x20 + strb r1, [r0] + b _08083DD0 + .align 2, 0 +_08083DC4: .4byte gUnk_02002A40 +_08083DC8: + ldrb r0, [r4, #0xa] + movs r1, #2 + bl sub_0807CAA0 +_08083DD0: + bl sub_0805E780 +_08083DD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08083DD8 +sub_08083DD8: @ 0x08083DD8 + push {lr} + ldr r2, _08083DEC @ =gUnk_0811F7E8 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08083DEC: .4byte gUnk_0811F7E8 + + thumb_func_start sub_08083DF0 +sub_08083DF0: @ 0x08083DF0 + push {lr} + ldr r2, _08083E04 @ =gUnk_0811F808 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08083E04: .4byte gUnk_0811F808 + + thumb_func_start sub_08083E08 +sub_08083E08: @ 0x08083E08 + push {lr} + ldr r2, _08083E1C @ =gUnk_0811F818 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08083E1C: .4byte gUnk_0811F818 + + thumb_func_start sub_08083E20 +sub_08083E20: @ 0x08083E20 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_080842D8 + adds r0, r4, #0 + bl sub_08078828 + pop {r4, pc} + + thumb_func_start sub_08083E4C +sub_08083E4C: @ 0x08083E4C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08083E80 @ =gUnk_0811F8B0 + str r0, [r4, #0x48] + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + beq _08083E84 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080842D8 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08083EAC + .align 2, 0 +_08083E80: .4byte gUnk_0811F8B0 +_08083E84: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08083E98 + ldrb r0, [r4, #0xa] + cmp r0, #4 + bne _08083EA0 +_08083E98: + adds r0, r4, #0 + bl sub_08083E20 + b _08083EA4 +_08083EA0: + movs r0, #1 + strb r0, [r4, #0xc] +_08083EA4: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08083EAC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08083EB0 +sub_08083EB0: @ 0x08083EB0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08083F0A + ldr r1, _08083F0C @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r3, #0 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + adds r0, #0xc0 + strh r0, [r1] + ldr r1, _08083F10 @ =gUnk_02034490 + movs r2, #1 + movs r0, #1 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + strb r3, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + bl sub_0805BC4C +_08083F0A: + pop {r4, pc} + .align 2, 0 +_08083F0C: .4byte gLCDControls +_08083F10: .4byte gUnk_02034490 + + thumb_func_start sub_08083F14 +sub_08083F14: @ 0x08083F14 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x1e + bl sub_0805E510 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08083F78 + cmp r0, #1 + beq _08083FA4 + adds r0, r4, #0 + bl sub_0800445C + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #2 + bl sub_080577AC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08083FE6 + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ands r2, r0 + ldr r3, _08083F74 @ =gLCDControls + movs r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #8 + movs r5, #0xff + lsls r5, r5, #8 + adds r1, r5, #0 + ands r0, r1 + orrs r0, r2 + adds r1, r3, #0 + adds r1, #0x68 + strh r0, [r1] + cmp r0, #0x10 + bne _08083FE6 + b _08083FCC + .align 2, 0 +_08083F74: .4byte gLCDControls +_08083F78: + ldr r5, _08083FA0 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x10 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + beq _08083F98 + movs r0, #0x10 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + movs r0, #0x10 + strb r0, [r5, #0x15] +_08083F98: + movs r0, #1 + strb r0, [r4, #0xd] + b _08083FE6 + .align 2, 0 +_08083FA0: .4byte gLinkEntity +_08083FA4: + ldrb r0, [r4, #0xa] + cmp r0, #5 + beq _08083FB2 + ldr r0, _08083FC8 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #1 + bne _08083FE6 +_08083FB2: + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #8 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + movs r0, #0xa5 + lsls r0, r0, #1 + bl sub_080A3268 + b _08083FE6 + .align 2, 0 +_08083FC8: .4byte gLinkEntity +_08083FCC: + ldr r1, _08083FE8 @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + adds r1, r3, #0 + adds r1, #0x66 + movs r0, #0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08083E20 + movs r0, #0x73 + bl sub_080A3268 +_08083FE6: + pop {r4, r5, pc} + .align 2, 0 +_08083FE8: .4byte gUnk_02034490 + + thumb_func_start sub_08083FEC +sub_08083FEC: @ 0x08083FEC + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0808401E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + movs r1, #0x3c + bl sub_0805E4E0 + ldr r0, _08084020 @ =0x0000011B + bl sub_080A3268 +_0808401E: + pop {r4, pc} + .align 2, 0 +_08084020: .4byte 0x0000011B + + thumb_func_start sub_08084024 +sub_08084024: @ 0x08084024 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08084070 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808406A + ldrb r0, [r4, #0xe] + cmp r0, #0x18 + bne _08084060 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + b _0808406A +_08084060: + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + bl sub_08084074 +_0808406A: + ldrb r0, [r4, #0xb] + bl sub_0807CCB4 +_08084070: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08084074 +sub_08084074: @ 0x08084074 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + bl sub_0804B128 + adds r1, r0, #0 + cmp r1, #0 + beq _080840A4 + b _0808409E +_08084086: + cmp r0, #3 + bne _0808409C + ldrb r0, [r1, #1] + cmp r4, r0 + bne _0808409C + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + movs r2, #0 + bl sub_080A7C00 + b _080840A4 +_0808409C: + adds r1, #8 +_0808409E: + ldrb r0, [r1] + cmp r0, #0 + bne _08084086 +_080840A4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080840A8 +sub_080840A8: @ 0x080840A8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + ldr r4, _0808413C @ =gUnk_0811F838 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + movs r0, #0 + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _08084138 + movs r0, #6 + strb r0, [r5, #0xe] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + adds r0, #0xc + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x15] + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + adds r1, #0x20 + strh r1, [r5, #0x24] + bl sub_08000E50 + ldr r1, _08084140 @ =gUnk_0811F840 + movs r4, #3 + ands r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5, #0x20] + bl sub_08000E50 + ldr r1, _08084144 @ =gUnk_0811F850 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r6 + strh r0, [r5, #0x2e] + adds r0, r7, #1 + strh r0, [r5, #0x32] + ldr r0, _08084148 @ =0x0000FFF8 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl sub_08016A30 + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0 + bl CreateFX + adds r5, r0, #0 + cmp r5, #0 + beq _08084138 + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 +_08084138: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808413C: .4byte gUnk_0811F838 +_08084140: .4byte gUnk_0811F840 +_08084144: .4byte gUnk_0811F850 +_08084148: .4byte 0x0000FFF8 + + thumb_func_start sub_0808414C +sub_0808414C: @ 0x0808414C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08084180 + movs r0, #8 + strb r0, [r1, #0xe] + ldrb r0, [r1, #0xf] + subs r0, #1 + strb r0, [r1, #0xf] + ands r0, r2 + cmp r0, #0 + beq _0808417C + movs r2, #0x2e + ldrsh r0, [r1, r2] + movs r2, #0x32 + ldrsh r1, [r1, r2] + bl sub_080840A8 + b _08084180 +_0808417C: + movs r0, #5 + strb r0, [r1, #0xc] +_08084180: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08084184 +sub_08084184: @ 0x08084184 + push {lr} + bl sub_0800445C + pop {pc} + + thumb_func_start nullsub_114 +nullsub_114: @ 0x0808418C + bx lr + .align 2, 0 + + thumb_func_start sub_08084190 +sub_08084190: @ 0x08084190 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08084204 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x70 + strh r1, [r5] + ldr r0, _08084208 @ =gUnk_0811F8A8 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_080002A0 + cmp r0, #0x74 + bne _080841D2 + bl sub_0805E780 +_080841D2: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08084200 + movs r0, #3 + strb r0, [r4, #0xc] + ldrh r1, [r5] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x73 + bl sub_0807B7D8 + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08084200 + bl sub_0805E780 +_08084200: + pop {r4, r5, pc} + .align 2, 0 +_08084204: .4byte gRoomControls +_08084208: .4byte gUnk_0811F8A8 + + thumb_func_start sub_0808420C +sub_0808420C: @ 0x0808420C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08084220 + movs r0, #2 + strb r0, [r4, #0xc] +_08084220: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08084224 +sub_08084224: @ 0x08084224 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r1, [r0] + subs r0, #0x38 + ldrb r2, [r0] + movs r0, #0x73 + bl sub_0807B7D8 + ldrb r0, [r4, #0xa] + cmp r0, #7 + bgt _0808424C + cmp r0, #6 + blt _0808424C + ldr r0, _08084248 @ =0x00000215 + bl sub_080A3268 + b _08084258 + .align 2, 0 +_08084248: .4byte 0x00000215 +_0808424C: + movs r0, #0x72 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_080A29BC +_08084258: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08084278 + bl sub_0805E780 +_08084278: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808427C +sub_0808427C: @ 0x0808427C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0808428A + cmp r0, #7 + bne _080842D4 +_0808428A: + adds r0, r4, #0 + bl sub_080002A0 + cmp r0, #0x74 + bne _0808429C + adds r0, r4, #0 + bl sub_0805E7BC + b _080842D4 +_0808429C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080842D4 + adds r1, r4, #0 + adds r1, #0x72 + ldrh r0, [r1] + cmp r0, #0 + beq _080842BA + subs r0, #1 + strh r0, [r1] + b _080842D4 +_080842BA: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + adds r0, r4, #0 + bl sub_080A29BC +_080842D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080842D8 +sub_080842D8: @ 0x080842D8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r2, [r5, #0x2e] + movs r1, #8 + adds r0, r1, #0 + ands r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + lsrs r2, r0, #0x1f + ldrh r0, [r5, #0x32] + ands r1, r0 + cmp r1, #0 + beq _080842F6 + adds r2, #2 +_080842F6: + ldr r1, _0808432C @ =gUnk_0811F898 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08084330 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 + pop {r4, r5, r6, pc} + .align 2, 0 +_0808432C: .4byte gUnk_0811F898 +_08084330: .4byte gRoomControls + + thumb_func_start sub_08084334 +sub_08084334: @ 0x08084334 + push {lr} + ldr r2, _08084348 @ =gUnk_0811F908 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08084348: .4byte gUnk_0811F908 + + thumb_func_start sub_0808434C +sub_0808434C: @ 0x0808434C + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3f + strb r3, [r0] + adds r1, #4 + movs r0, #0x47 + strb r0, [r1] + subs r1, #5 + movs r0, #2 + strb r0, [r1] + ldr r0, _080843E0 @ =gUnk_080FD188 + str r0, [r5, #0x48] + ldr r0, _080843E4 @ =0x00004050 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080843E8 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080843C8 + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080843EC +_080843C8: + movs r0, #3 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 + b _080843F4 + .align 2, 0 +_080843E0: .4byte gUnk_080FD188 +_080843E4: .4byte 0x00004050 +_080843E8: .4byte gRoomControls +_080843EC: + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 +_080843F4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080843F8 +sub_080843F8: @ 0x080843F8 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9c + bne _08084420 + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + movs r1, #0xd + movs r2, #0 + bl CreateFX + ldr r0, _08084424 @ =0x0000010D + bl sub_08004488 +_08084420: + pop {pc} + .align 2, 0 +_08084424: .4byte 0x0000010D + + thumb_func_start sub_08084428 +sub_08084428: @ 0x08084428 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08084454 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_08084454: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08084458 +sub_08084458: @ 0x08084458 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08084472 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004168 + b _080844C2 +_08084472: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080844C2 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080844C4 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x35 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x40 + bl CreateFX + movs r0, #0x93 + lsls r0, r0, #1 + bl sub_080A3268 + bl sub_0805E780 +_080844C2: + pop {r4, r5, pc} + .align 2, 0 +_080844C4: .4byte gRoomControls + + thumb_func_start sub_080844C8 +sub_080844C8: @ 0x080844C8 + push {lr} + ldr r2, _080844DC @ =gUnk_0811FAC0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080844DC: .4byte gUnk_0811FAC0 + + thumb_func_start sub_080844E0 +sub_080844E0: @ 0x080844E0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08084516 + adds r0, r5, #0 + bl sub_08016A30 +_08084516: + ldrb r0, [r5, #0xa] + cmp r0, #0x20 + bne _08084524 + ldrb r0, [r5, #0x10] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r5, #0x10] +_08084524: + ldrb r4, [r5, #0xa] + cmp r4, #3 + bne _08084538 + bl sub_08000E50 + ldr r1, _080845AC @ =gUnk_0811FAC8 + ands r4, r0 + adds r1, r4, r1 + ldrb r0, [r1] + strb r0, [r5, #0xa] +_08084538: + ldrb r0, [r5, #0xa] + cmp r0, #0x17 + bne _0808454E + bl sub_08000E50 + ldr r2, _080845B0 @ =gUnk_0811FACC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r5, #0xa] +_0808454E: + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 + ldrb r0, [r5, #0xa] + lsls r0, r0, #2 + ldr r1, _080845B4 @ =gUnk_0811F960 + adds r4, r0, r1 + ldrb r1, [r4] + movs r0, #0xf + ands r0, r1 + cmp r0, #6 + bne _0808456C + movs r0, #0x40 + strh r0, [r5, #0x24] +_0808456C: + ldrh r0, [r4, #2] + cmp r0, #0 + beq _08084582 + ldrb r1, [r5, #0xb] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08084582 + ldrh r0, [r4, #2] + bl sub_08004488 +_08084582: + ldrb r1, [r5, #0xb] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08084594 + ldrb r1, [r4, #1] + adds r0, r5, #0 + bl sub_0805457C +_08084594: + ldrb r1, [r5, #0xb] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080845AA + ldrb r0, [r5, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x19] +_080845AA: + pop {r4, r5, pc} + .align 2, 0 +_080845AC: .4byte gUnk_0811FAC8 +_080845B0: .4byte gUnk_0811FACC +_080845B4: .4byte gUnk_0811F960 + + thumb_func_start sub_080845B8 +sub_080845B8: @ 0x080845B8 + push {lr} + ldr r3, _080845D4 @ =gUnk_0811FAD0 + ldr r2, _080845D8 @ =gUnk_0811F960 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1a + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080845D4: .4byte gUnk_0811FAD0 +_080845D8: .4byte gUnk_0811F960 + + thumb_func_start sub_080845DC +sub_080845DC: @ 0x080845DC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080845F4 + bl sub_0805E780 +_080845F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080845F8 +sub_080845F8: @ 0x080845F8 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x2e] + movs r1, #0xf + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + subs r3, r2, r0 + ldrh r0, [r4, #0x32] + ands r1, r0 + subs r1, r2, r1 + adds r0, r3, #0 + orrs r0, r1 + cmp r0, #0 + beq _08084626 + adds r0, r3, #0 + bl sub_080045DA + lsrs r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_08084626: + adds r0, r4, #0 + bl sub_08084630 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08084630 +sub_08084630: @ 0x08084630 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808467E + ldrb r1, [r4, #0xb] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0808467A + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _0808467A + adds r1, #0x6a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldr r0, [r4, #0x68] + cmp r0, #0 + beq _0808467A + ldr r2, [r4, #0x54] + adds r2, #0x6c + subs r0, #1 + movs r1, #0x1f + ands r0, r1 + adds r1, r3, #0 + lsls r1, r0 + ldrh r0, [r2] + bics r0, r1 + strh r0, [r2] +_0808467A: + bl sub_0805E780 +_0808467E: + pop {r4, pc} + + thumb_func_start sub_08084680 +sub_08084680: @ 0x08084680 + push {lr} + ldr r1, [r0, #0x34] + movs r2, #0x80 + lsls r2, r2, #7 + adds r1, r1, r2 + str r1, [r0, #0x34] + bl sub_080845DC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08084694 +sub_08084694: @ 0x08084694 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080846A4 + ldr r0, [r0, #4] + cmp r0, #0 + bne _080846A8 +_080846A4: + bl sub_0805E780 +_080846A8: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080846B0 +sub_080846B0: @ 0x080846B0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080846D8 + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080846CA + adds r0, r1, #0 + subs r0, #0x10 + strh r0, [r4, #0x24] +_080846CA: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080845DC + b _08084718 +_080846D8: + movs r0, #1 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + movs r0, #2 + orrs r0, r1 + cmp r0, #2 + bne _080846EA + movs r0, #0x1e + b _080846EC +_080846EA: + movs r0, #2 +_080846EC: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08084712 + adds r1, r4, #0 + adds r1, #0x60 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldrb r0, [r4, #0x15] + movs r1, #1 + cmp r0, #0x17 + bls _08084708 + subs r1, #2 +_08084708: + adds r0, r0, r1 + strb r0, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + b _08084716 +_08084712: + movs r0, #0xc0 + lsls r0, r0, #2 +_08084716: + strh r0, [r4, #0x24] +_08084718: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808471C +sub_0808471C: @ 0x0808471C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08084768 + movs r4, #0 +_08084734: + adds r0, r5, #0 + movs r1, #0x24 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0808475E + lsls r1, r4, #1 + ldr r0, _0808476C @ =gUnk_0811FB08 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_0808475E: + adds r4, #1 + cmp r4, #3 + bls _08084734 + bl sub_0805E780 +_08084768: + pop {r4, r5, pc} + .align 2, 0 +_0808476C: .4byte gUnk_0811FB08 + + thumb_func_start sub_08084770 +sub_08084770: @ 0x08084770 + push {lr} + ldr r1, [r0, #0x34] + ldr r2, _08084780 @ =0xFFFFC000 + adds r1, r1, r2 + str r1, [r0, #0x34] + bl sub_080845DC + pop {pc} + .align 2, 0 +_08084780: .4byte 0xFFFFC000 + + thumb_func_start sub_08084784 +sub_08084784: @ 0x08084784 + push {lr} + ldr r1, [r0, #0x34] + movs r2, #0x80 + lsls r2, r2, #7 + adds r1, r1, r2 + str r1, [r0, #0x34] + bl sub_080845DC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08084798 +sub_08084798: @ 0x08084798 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080847B6 + ldr r0, [r4, #0x54] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080847BA +_080847B6: + bl sub_0805E780 +_080847BA: + pop {r4, pc} + + thumb_func_start sub_080847BC +sub_080847BC: @ 0x080847BC + push {lr} + ldr r1, [r0, #0x34] + ldr r2, _080847CC @ =0xFFFFE000 + adds r1, r1, r2 + str r1, [r0, #0x34] + bl sub_080845DC + pop {pc} + .align 2, 0 +_080847CC: .4byte 0xFFFFE000 + + thumb_func_start sub_080847D0 +sub_080847D0: @ 0x080847D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080845DC + pop {r4, pc} + + thumb_func_start sub_080847E0 +sub_080847E0: @ 0x080847E0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08084814 @ =gRoomControls + ldrh r0, [r0] + cmp r0, #1 + bne _080847F0 + bl sub_0805E780 +_080847F0: + ldr r4, _08084818 @ =gLinkEntity + ldr r3, _0808481C @ =0xFFFD0000 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + ldr r0, _08084820 @ =0x0000FFFD + strh r0, [r5, #0x36] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FAB0 + adds r0, r5, #0 + bl sub_080845DC + pop {r4, r5, pc} + .align 2, 0 +_08084814: .4byte gRoomControls +_08084818: .4byte gLinkEntity +_0808481C: .4byte 0xFFFD0000 +_08084820: .4byte 0x0000FFFD + + thumb_func_start sub_08084824 +sub_08084824: @ 0x08084824 + push {lr} + ldr r2, _08084838 @ =gUnk_08120560 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08084838: .4byte gUnk_08120560 + + thumb_func_start sub_0808483C +sub_0808483C: @ 0x0808483C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r2, [r4, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + ands r1, r0 + orrs r1, r2 + strh r1, [r4, #0x32] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080848C0 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x74 + strh r1, [r5] + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + ldr r0, _080848C4 @ =0x00004016 + ldrh r1, [r5] + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + movs r0, #0x89 + lsls r0, r0, #1 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_080848C0: .4byte gRoomControls +_080848C4: .4byte 0x00004016 + + thumb_func_start sub_080848C8 +sub_080848C8: @ 0x080848C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08084980 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #5 + bne _08084994 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x45 + movs r5, #1 + strb r5, [r0] + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + subs r0, #0x12 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + ldr r0, _08084984 @ =gUnk_08120574 + str r0, [r4, #0x48] + ldrb r1, [r4, #0xa] + adds r1, #1 + lsls r0, r1, #4 + subs r0, r0, r1 + strb r0, [r4, #0xf] + ldr r2, _08084988 @ =gLinkEntity + ldrh r0, [r4, #0x2e] + ldrh r1, [r2, #0x2e] + subs r0, r0, r1 + adds r3, r4, #0 + adds r3, #0x78 + strh r0, [r3] + ldrh r1, [r4, #0x32] + ldrh r0, [r2, #0x32] + subs r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x7a + strh r1, [r0] + ldrh r0, [r3] + cmp r0, #0 + beq _0808493C + lsls r0, r1, #0x10 + cmp r0, #0 + beq _0808493C + ldr r0, _0808498C @ =gUnk_03004040 + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r5, [r0, #0x70] +_0808493C: + ldr r0, _08084990 @ =0x00000315 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_08000152 + ldrb r1, [r4, #0xa] + adds r1, #1 + ldr r0, _08084980 @ =gUnk_03003F80 + ldr r0, [r0, #0x2c] + adds r0, #0x68 + ldrb r3, [r0] + movs r0, #1 + movs r2, #0 + bl sub_08077CF8 + str r0, [r4, #0x54] + cmp r0, #0 + beq _0808496A + str r4, [r0, #0x50] +_0808496A: + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + bl sub_0806FDA0 + adds r0, r4, #0 + bl sub_080849D8 + b _080849D6 + .align 2, 0 +_08084980: .4byte gUnk_03003F80 +_08084984: .4byte gUnk_08120574 +_08084988: .4byte gLinkEntity +_0808498C: .4byte gUnk_03004040 +_08084990: .4byte 0x00000315 +_08084994: + cmp r0, #4 + beq _080849C4 + ldr r0, _080849BC @ =0x00000315 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_08000152 + ldr r1, _080849C0 @ =gUnk_03004040 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + bl sub_0805E780 + b _080849D6 + .align 2, 0 +_080849BC: .4byte 0x00000315 +_080849C0: .4byte gUnk_03004040 +_080849C4: + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080849D6: + pop {r4, r5, pc} + + thumb_func_start sub_080849D8 +sub_080849D8: @ 0x080849D8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r1, r0, #0 + cmp r1, #1 + bne _080849EE + movs r0, #0x76 + bl sub_080A3268 + ldrb r0, [r4, #0xf] + b _080849F2 +_080849EE: + cmp r1, #0 + beq _080849F6 +_080849F2: + subs r0, #1 + strb r0, [r4, #0xf] +_080849F6: + ldr r2, _08084A3C @ =gUnk_03003F80 + adds r3, r2, #0 + adds r3, #0xa0 + ldrb r0, [r3] + cmp r0, #5 + beq _08084A04 + b _08084AF8 +_08084A04: + ldr r0, _08084A40 @ =gUnk_03004040 + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + beq _08084AF8 + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x13 + beq _08084AF8 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08084AF8 + ldr r5, _08084A44 @ =gLinkEntity + adds r0, r5, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08084A48 + movs r0, #1 + strb r0, [r3] + b _08084AF8 + .align 2, 0 +_08084A3C: .4byte gUnk_03003F80 +_08084A40: .4byte gUnk_03004040 +_08084A44: .4byte gLinkEntity +_08084A48: + adds r0, r4, #0 + bl sub_080002B8 + adds r0, r4, #0 + bl sub_08084B1C + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r5, [r5, #0x32] + adds r0, r0, r5 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08084CAC + adds r0, r4, #0 + bl sub_080085B0 + ldrh r2, [r4, #0x2a] + ldr r1, _08084AB8 @ =0x00006666 + adds r0, r1, #0 + ands r0, r2 + cmp r0, r1 + beq _08084AEA + movs r3, #0 + ldr r5, _08084ABC @ =gUnk_0812056C + ldrh r1, [r5] + adds r0, r1, #0 + ands r0, r2 + cmp r1, r0 + beq _08084AA6 + adds r2, r5, #0 +_08084A94: + adds r2, #2 + adds r3, #1 + cmp r3, #3 + bhi _08084AA6 + ldrh r1, [r2] + ldrh r0, [r4, #0x2a] + ands r0, r1 + cmp r1, r0 + bne _08084A94 +_08084AA6: + cmp r3, #4 + bne _08084AC0 + movs r0, #0 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #4 + ands r0, r1 + movs r1, #1 + b _08084ADE + .align 2, 0 +_08084AB8: .4byte 0x00006666 +_08084ABC: .4byte gUnk_0812056C +_08084AC0: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08084AE4 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08084AEA + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 +_08084ADE: + orrs r0, r1 + strb r0, [r4, #0x18] + b _08084B16 +_08084AE4: + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08084B16 +_08084AEA: + ldr r0, _08084AF4 @ =gUnk_03003F80 + adds r0, #0xa0 + movs r1, #1 + strb r1, [r0] + b _08084B16 + .align 2, 0 +_08084AF4: .4byte gUnk_03003F80 +_08084AF8: + bl sub_0807A108 + adds r0, r4, #0 + movs r1, #0x30 + movs r2, #0 + bl CreateFX + ldr r0, [r4, #0x54] + bl sub_0805E7BC + ldr r0, _08084B18 @ =0x0000018F + bl sub_080A3268 + bl sub_0805E780 +_08084B16: + pop {r4, r5, pc} + .align 2, 0 +_08084B18: .4byte 0x0000018F + + thumb_func_start sub_08084B1C +sub_08084B1C: @ 0x08084B1C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r3, _08084CA4 @ =gLinkEntity + ldrb r0, [r3, #0x10] + strb r0, [r4, #0x10] + adds r0, r3, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r3, #0x1e] + strb r0, [r4, #0x1e] + adds r0, r3, #0 + adds r0, #0x5b + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x5b + strb r0, [r1] + ldrh r0, [r3, #0x12] + strh r0, [r4, #0x12] + ldrb r0, [r3, #0x15] + strb r0, [r4, #0x15] + ldrb r0, [r3, #0x14] + strb r0, [r4, #0x14] + ldrb r0, [r3, #0x18] + movs r1, #1 + mov r8, r1 + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + mov sb, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r7, #0x3f + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r3, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + movs r6, #7 + lsrs r1, r1, #0x1d + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + mov sl, r0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r0, r3, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r3, #0 + adds r0, #0x3b + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3f + ldrb r0, [r0] + adds r1, #4 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3c + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x3c + strb r1, [r0] + adds r0, r3, #0 + adds r0, #0x40 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x40 + strb r1, [r0] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + ldr r5, _08084CA8 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + beq _08084C6A + ldr r1, [r4, #0x54] + ldr r0, [r5, #0x2c] + adds r0, #0x44 + ldrb r0, [r0] + adds r1, #0x44 + strb r0, [r1] + ldr r1, [r4, #0x54] + ldr r0, [r5, #0x2c] + ldrb r0, [r0, #0x1e] + strb r0, [r1, #0x1e] + ldr r3, [r4, #0x54] + ldr r0, [r5, #0x2c] + ldrb r1, [r0, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + mov r0, r8 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r3, #0x18] + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + ldr r3, [r4, #0x54] + ldr r0, [r5, #0x2c] + ldrb r1, [r0, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + ldr r2, [r4, #0x54] + ldr r0, [r5, #0x2c] + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + adds r2, #0x29 + ands r6, r0 + ldrb r1, [r2] + mov r0, sl + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r1, [r4, #0x54] + ldrb r0, [r1, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _08084C6A + ldr r1, [r1, #0x48] + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] +_08084C6A: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl sub_0806FEBC + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_08078E84 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08084CA4: .4byte gLinkEntity +_08084CA8: .4byte gUnk_03003F80 + + thumb_func_start sub_08084CAC +sub_08084CAC: @ 0x08084CAC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, _08084D18 @ =gUnk_03004040 + ldrb r0, [r5, #0xa] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldr r0, [r0, #0x70] + cmp r0, #0 + bne _08084D32 + ldrb r0, [r5, #0x14] + movs r2, #6 + ands r2, r0 + lsls r2, r2, #1 + ldr r0, _08084D1C @ =gUnk_080B4468 + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r3, #0 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + ldr r4, _08084D20 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r7, #0x32 + ldrsh r1, [r5, r7] + movs r7, #2 + ldrsh r2, [r2, r7] + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + bl sub_080002E4 + cmp r0, #0x72 + bne _08084D24 + ldr r2, [r6] + movs r1, #1 + ldrb r5, [r5, #0xa] + lsls r1, r5 + ldr r0, [r2, #0x6c] + orrs r0, r1 + b _08084D30 + .align 2, 0 +_08084D18: .4byte gUnk_03004040 +_08084D1C: .4byte gUnk_080B4468 +_08084D20: .4byte gRoomControls +_08084D24: + ldr r2, [r6] + movs r1, #1 + ldrb r5, [r5, #0xa] + lsls r1, r5 + ldr r0, [r2, #0x6c] + bics r0, r1 +_08084D30: + str r0, [r2, #0x6c] +_08084D32: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08084D34 +sub_08084D34: @ 0x08084D34 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08084D50 + ldr r0, _08084D54 @ =gUnk_0812057C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08084D50: + pop {r4, pc} + .align 2, 0 +_08084D54: .4byte gUnk_0812057C + + thumb_func_start sub_08084D58 +sub_08084D58: @ 0x08084D58 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r0, [r7, #0xa] + cmp r0, #3 + bne _08084D6C + adds r0, r7, #0 + bl sub_08084F8C +_08084D6C: + adds r0, r7, #0 + bl sub_08004168 + ldrb r0, [r7, #0xa] + cmp r0, #4 + bne _08084D7E + adds r0, r7, #0 + bl sub_08084F8C +_08084D7E: + movs r0, #2 + strb r0, [r7, #0xc] + ldrb r0, [r7, #0x10] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r7, #0x10] + ldrb r1, [r7, #0x19] + movs r5, #0x3f + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r7, #0x19] + ldr r0, _08084E48 @ =gUnk_08120588 + mov r8, r0 + ldrb r0, [r7, #0xa] + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #1] + strb r0, [r7, #0x1d] + ldrb r0, [r7, #0xa] + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #2] + strb r0, [r7, #0x1c] + movs r2, #0 + movs r0, #0x80 + strh r0, [r7, #0x24] + ldr r0, _08084E4C @ =gLinkEntity + adds r0, #0x38 + ldrb r0, [r0] + adds r6, r7, #0 + adds r6, #0x38 + strb r0, [r6] + adds r1, r7, #0 + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + subs r1, #9 + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #4 + strb r0, [r1] + ldr r0, _08084E50 @ =gUnk_081205B4 + str r0, [r7, #0x48] + adds r0, r7, #0 + adds r0, #0x72 + strb r2, [r0] + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r4, _08084E54 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r5 + movs r2, #0x32 + ldrsh r1, [r7, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r7, #0 + adds r1, #0x70 + strh r0, [r1] + ldr r0, _08084E58 @ =0x00004022 + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r7, r3] + ldrh r3, [r4, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r6] + bl sub_0800015E + ldrb r0, [r7, #0xa] + lsls r0, r0, #2 + add r0, r8 + ldrb r1, [r0] + adds r0, r7, #0 + bl sub_08004260 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08084E48: .4byte gUnk_08120588 +_08084E4C: .4byte gLinkEntity +_08084E50: .4byte gUnk_081205B4 +_08084E54: .4byte gRoomControls +_08084E58: .4byte 0x00004022 + + thumb_func_start sub_08084E5C +sub_08084E5C: @ 0x08084E5C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08084EAC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _08084E7A + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08084EA8 +_08084E7A: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08084EB0 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + bl sub_0805E780 +_08084EA8: + pop {r4, r5, pc} + .align 2, 0 +_08084EAC: .4byte gUnk_03003F80 +_08084EB0: .4byte gRoomControls + + thumb_func_start sub_08084EB4 +sub_08084EB4: @ 0x08084EB4 + push {lr} + ldr r2, _08084EC8 @ =gUnk_0812059C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08084EC8: .4byte gUnk_0812059C + + thumb_func_start sub_08084ECC +sub_08084ECC: @ 0x08084ECC + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + bl sub_08084ED8 + pop {pc} + + thumb_func_start sub_08084ED8 +sub_08084ED8: @ 0x08084ED8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08084E5C + adds r0, r4, #0 + bl sub_0806F4E8 + ldrb r0, [r4, #0x1d] + cmp r0, #0 + beq _08084EFA + subs r0, #1 + strb r0, [r4, #0x1d] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08084EFA + movs r0, #2 + strb r0, [r4, #0xd] +_08084EFA: + pop {r4, pc} + + thumb_func_start sub_08084EFC +sub_08084EFC: @ 0x08084EFC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x72 + ldrb r1, [r2] + cmp r1, #0 + bne _08084F42 + movs r0, #1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x62 + strb r1, [r0] + adds r0, #0xe + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08084F7C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B9B8 +_08084F42: + ldr r0, _08084F80 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _08084F5C + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08084F62 +_08084F5C: + adds r0, r5, #0 + bl sub_08084F8C +_08084F62: + adds r0, r5, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08084F7A + ldrb r1, [r5, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _08084F7A + bl sub_0805E780 +_08084F7A: + pop {r4, r5, r6, pc} + .align 2, 0 +_08084F7C: .4byte gRoomControls +_08084F80: .4byte gUnk_03003F80 + + thumb_func_start sub_08084F84 +sub_08084F84: @ 0x08084F84 + bx lr + .align 2, 0 + + thumb_func_start sub_08084F88 +sub_08084F88: @ 0x08084F88 + bx lr + .align 2, 0 + + thumb_func_start sub_08084F8C +sub_08084F8C: @ 0x08084F8C + push {lr} + ldrb r1, [r0, #0xb] + cmp r1, #0xf + beq _08084FA4 + cmp r1, #0xf + bgt _08084F9E + cmp r1, #0 + beq _08084FB8 + b _08084FAE +_08084F9E: + cmp r1, #0xff + bne _08084FAE + b _08084FB8 +_08084FA4: + ldrb r1, [r0, #0xe] + movs r2, #0x80 + bl CreateFX + b _08084FB8 +_08084FAE: + ldrb r1, [r0, #0xb] + ldrb r2, [r0, #0xe] + movs r3, #0 + bl sub_080A2988 +_08084FB8: + bl sub_0805E780 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08084FC0 +sub_08084FC0: @ 0x08084FC0 + push {lr} + ldr r2, _08084FD4 @ =gUnk_081205BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08084FD4: .4byte gUnk_081205BC + + thumb_func_start sub_08084FD8 +sub_08084FD8: @ 0x08084FD8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808500C + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08084FF4 + bl sub_0805E780 +_08084FF4: + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080850FC + b _0808501C +_0808500C: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + movs r0, #0x18 + strb r0, [r4, #0x15] +_0808501C: + movs r0, #0 + strb r0, [r4, #0x1e] + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_115 +nullsub_115: @ 0x08085024 + bx lr + .align 2, 0 + + thumb_func_start sub_08085028 +sub_08085028: @ 0x08085028 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080850A6 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + ldr r0, _080850A8 @ =gLCDControls + mov ip, r0 + ldrh r1, [r0] + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r2, #0 + orrs r0, r1 + mov r1, ip + strh r0, [r1] + adds r1, #0x60 + movs r0, #0x1f + strh r0, [r1] + adds r1, #2 + movs r0, #0xf + strh r0, [r1] + movs r2, #0x2e + ldrsh r0, [r4, r2] + ldr r3, _080850AC @ =gRoomControls + movs r2, #0xa + ldrsh r1, [r3, r2] + subs r0, r0, r1 + adds r1, r0, #0 + subs r1, #0x18 + movs r2, #0xff + ands r1, r2 + lsls r1, r1, #8 + adds r0, #0x18 + ands r0, r2 + orrs r1, r0 + mov r0, ip + adds r0, #0x58 + strh r1, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r4, #0xc + ldrsh r1, [r3, r4] + subs r0, r0, r1 + adds r1, r0, #0 + subs r1, #0x18 + ands r1, r2 + lsls r1, r1, #8 + adds r0, #0x18 + ands r0, r2 + orrs r1, r0 + mov r0, ip + adds r0, #0x5c + strh r1, [r0] +_080850A6: + pop {r4, pc} + .align 2, 0 +_080850A8: .4byte gLCDControls +_080850AC: .4byte gRoomControls + + thumb_func_start sub_080850B0 +sub_080850B0: @ 0x080850B0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080850C8 + movs r0, #4 + strb r0, [r1, #0xc] + movs r0, #0x60 + strb r0, [r1, #0xe] +_080850C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080850CC +sub_080850CC: @ 0x080850CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080850F0 + ldr r2, _080850F4 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _080850F8 @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + adds r0, r4, #0 + bl sub_0805E7BC +_080850F0: + pop {r4, pc} + .align 2, 0 +_080850F4: .4byte gLCDControls +_080850F8: .4byte 0x0000DFFF + + thumb_func_start sub_080850FC +sub_080850FC: @ 0x080850FC + push {r4, r5, r6, lr} + movs r1, #0x2e + ldrsh r4, [r0, r1] + ldr r2, _0808518C @ =gRoomControls + ldrh r1, [r2, #6] + subs r4, r4, r1 + asrs r4, r4, #4 + movs r3, #0x3f + ands r4, r3 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r4, r1 + adds r0, #0x38 + ldrb r6, [r0] + ldr r5, _08085190 @ =0x0000403D + adds r1, r4, #0 + subs r1, #0x41 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r1, r4, #0 + subs r1, #0x40 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r1, r4, #0 + subs r1, #0x3f + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + subs r1, r4, #1 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r1, r4, #1 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r1, r4, #0 + adds r1, #0x3f + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r1, r4, #0 + adds r1, #0x40 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r4, #0x41 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0808518C: .4byte gRoomControls +_08085190: .4byte 0x0000403D + + thumb_func_start sub_08085194 +sub_08085194: @ 0x08085194 + push {lr} + ldr r2, _080851A8 @ =gUnk_081205D0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080851A8: .4byte gUnk_081205D0 + + thumb_func_start sub_080851AC +sub_080851AC: @ 0x080851AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0xb] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080851E8 + adds r1, r5, #0 + adds r1, #0x7c + ldr r0, _080851E4 @ =0x0000FFFF + strh r0, [r1] + b _080851EE + .align 2, 0 +_080851E4: .4byte 0x0000FFFF +_080851E8: + adds r0, r5, #0 + adds r0, #0x7c + strh r3, [r0] +_080851EE: + ldrb r1, [r5, #0xb] + movs r0, #2 + ands r0, r1 + strb r0, [r5, #0x14] + ldrb r4, [r5, #0xa] + cmp r4, #3 + bne _0808521E + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0808521E + ldrb r0, [r5, #0x14] + adds r0, #2 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] + strb r4, [r5, #0xc] +_0808521E: + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + movs r1, #0x2e + ldrsh r2, [r5, r1] + ldr r3, _08085260 @ =gRoomControls + ldrh r1, [r3, #6] + subs r2, r2, r1 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r6, #0x32 + ldrsh r1, [r5, r6] + ldrh r3, [r3, #8] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r2, r1 + lsls r2, r2, #1 + adds r2, #4 + adds r0, r0, r2 + str r0, [r5, #0x70] + adds r0, r5, #0 + bl sub_08085394 + pop {r4, r5, r6, pc} + .align 2, 0 +_08085260: .4byte gRoomControls + + thumb_func_start sub_08085264 +sub_08085264: @ 0x08085264 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x86 + ldrh r0, [r5] + bl sub_0807CBE4 + cmp r0, #0 + beq _080852AE + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0808528A + ldrh r0, [r5] + bl sub_0807CD48 +_0808528A: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + adds r0, r0, r1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0808543C + ldr r0, _080852B0 @ =0x00000151 + bl sub_08004488 +_080852AE: + pop {r4, r5, pc} + .align 2, 0 +_080852B0: .4byte 0x00000151 + + thumb_func_start sub_080852B4 +sub_080852B4: @ 0x080852B4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08085300 + movs r4, #3 + movs r0, #3 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xe] + strb r0, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x7c + ldrb r0, [r0] + ldrb r1, [r5, #0x14] + adds r0, r0, r1 + ands r0, r4 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_08085394 + ldr r0, _08085304 @ =0x00000151 + bl sub_08004488 +_08085300: + pop {r4, r5, pc} + .align 2, 0 +_08085304: .4byte 0x00000151 + + thumb_func_start sub_08085308 +sub_08085308: @ 0x08085308 + push {r4, lr} + adds r4, r0, #0 + bl sub_080854A8 + cmp r0, #0 + bne _0808538C + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08085324 + cmp r0, #2 + ble _08085354 + cmp r0, #3 + beq _08085338 + b _08085354 +_08085324: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08085354 + movs r0, #1 + strb r0, [r4, #0xc] + b _0808538C +_08085338: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r1, [r1] + cmp r0, r1 + bne _08085350 + movs r0, #0xff + b _08085352 +_08085350: + movs r0, #1 +_08085352: + strb r0, [r4, #0xf] +_08085354: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808538C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + adds r0, r0, r1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0808543C + ldr r0, _08085390 @ =0x00000151 + bl sub_08004488 +_0808538C: + pop {r4, pc} + .align 2, 0 +_08085390: .4byte 0x00000151 + + thumb_func_start sub_08085394 +sub_08085394: @ 0x08085394 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r0, _08085430 @ =gUnk_081205E0 + ldrb r2, [r7, #0x14] + lsrs r2, r2, #1 + lsls r2, r2, #1 + adds r0, r2, r0 + ldrh r0, [r0] + mov sl, r0 + ldr r0, _08085434 @ =gUnk_080B4488 + adds r2, r2, r0 + ldr r0, [r7, #0x70] + mov sb, r0 + movs r1, #0x2e + ldrsh r4, [r7, r1] + ldr r1, _08085438 @ =gRoomControls + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r3, #0x3f + ands r4, r3 + movs r5, #0x32 + ldrsh r0, [r7, r5] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r4, r0 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + mov r8, r2 + lsls r5, r2, #1 + mov r1, sb + subs r0, r1, r5 + ldrh r1, [r0] + adds r0, r7, #0 + adds r0, #0x74 + strh r1, [r0] + subs r1, r4, r2 + adds r6, r7, #0 + adds r6, #0x38 + ldrb r2, [r6] + mov r0, sl + bl sub_0800015E + mov r1, sb + ldrh r0, [r1] + adds r1, r7, #0 + adds r1, #0x76 + strh r0, [r1] + ldrb r2, [r6] + mov r0, sl + adds r1, r4, #0 + bl sub_0800015E + add r5, sb + ldrh r1, [r5] + adds r0, r7, #0 + adds r0, #0x78 + strh r1, [r0] + add r4, r8 + ldrb r2, [r6] + mov r0, sl + adds r1, r4, #0 + bl sub_0800015E + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08085430: .4byte gUnk_081205E0 +_08085434: .4byte gUnk_080B4488 +_08085438: .4byte gRoomControls + + thumb_func_start sub_0808543C +sub_0808543C: @ 0x0808543C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _080854A0 @ =gUnk_080B4488 + ldrb r2, [r7, #0x14] + lsrs r2, r2, #1 + lsls r2, r2, #1 + adds r2, r2, r0 + movs r0, #0x2e + ldrsh r4, [r7, r0] + ldr r1, _080854A4 @ =gRoomControls + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r3, #0x3f + ands r4, r3 + movs r5, #0x32 + ldrsh r0, [r7, r5] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r7, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r6, #0 + ldrsb r6, [r2, r6] + subs r1, r4, r6 + adds r5, r7, #0 + adds r5, #0x38 + ldrb r2, [r5] + bl sub_0800015E + adds r0, r7, #0 + adds r0, #0x76 + ldrh r0, [r0] + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r7, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r4, r4, r6 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080854A0: .4byte gUnk_080B4488 +_080854A4: .4byte gRoomControls + + thumb_func_start sub_080854A8 +sub_080854A8: @ 0x080854A8 + push {r4, lr} + ldr r2, _080854E0 @ =gUnk_081205E0 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + adds r2, r1, r2 + ldrh r3, [r2] + adds r4, r3, #0 + ldr r2, _080854E4 @ =gUnk_080B4488 + adds r1, r1, r2 + ldr r2, [r0, #0x70] + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r1, r0, #1 + subs r0, r2, r1 + ldrh r0, [r0] + cmp r3, r0 + bne _080854E8 + ldrh r0, [r2] + cmp r3, r0 + bne _080854E8 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r4, r0 + bne _080854E8 + movs r0, #0 + b _080854EA + .align 2, 0 +_080854E0: .4byte gUnk_081205E0 +_080854E4: .4byte gUnk_080B4488 +_080854E8: + movs r0, #1 +_080854EA: + pop {r4, pc} + + thumb_func_start sub_080854EC +sub_080854EC: @ 0x080854EC + push {lr} + ldr r2, _08085500 @ =gUnk_08120608 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08085500: .4byte gUnk_08120608 + + thumb_func_start sub_08085504 +sub_08085504: @ 0x08085504 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0xff + bne _08085520 + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + beq _0808551C + bl sub_0805E780 +_0808551C: + movs r0, #0 + strb r0, [r4, #0xa] +_08085520: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08085552 + ldr r0, _08085540 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x1b + beq _08085544 + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _08085552 + movs r0, #5 + strb r0, [r4, #0xc] + b _080855E2 + .align 2, 0 +_08085540: .4byte gUnk_02033A90 +_08085544: + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _08085552 + bl sub_0805E780 +_08085552: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808556C + adds r0, r4, #0 + bl sub_080040A2 + cmp r0, #0 + bne _08085566 + bl sub_0805E780 +_08085566: + movs r0, #0 + strb r0, [r4, #0xe] + b _0808557A +_0808556C: + adds r0, r4, #0 + bl sub_0805EABC + cmp r0, #0 + beq _0808557A + bl sub_0805E780 +_0808557A: + movs r2, #1 + strb r2, [r4, #0xc] + movs r3, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldr r0, _080855E4 @ =gUnk_08120640 + str r0, [r4, #0x48] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #1 + movs r0, #4 + strb r0, [r1] + movs r0, #0x80 + lsls r0, r0, #0x11 + str r0, [r4, #0x78] + adds r1, #0x43 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x85 + strb r3, [r0] + subs r0, #1 + strb r3, [r0] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080855E8 +_080855E2: + pop {r4, pc} + .align 2, 0 +_080855E4: .4byte gUnk_08120640 + + thumb_func_start sub_080855E8 +sub_080855E8: @ 0x080855E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r1, [r7, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r7, #0x10] + ldr r6, _0808564C @ =gLinkEntity + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0x18 + bl sub_0806FC80 + adds r1, r0, #0 + cmp r1, #0 + beq _080856EE + ldr r3, _08085650 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r3, #0x30] + ldr r4, [r6, #0x34] + cmp r4, #0 + beq _0808561C + b _080857CE +_0808561C: + adds r5, r3, #0 + adds r5, #0x26 + ldrb r0, [r5] + cmp r0, #0 + beq _08085634 + adds r2, r6, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + strb r4, [r5] +_08085634: + adds r0, r3, #0 + adds r0, #0x84 + str r7, [r0] + adds r0, r7, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08085654 + adds r0, r6, #0 + bl sub_0800455E + b _0808565A + .align 2, 0 +_0808564C: .4byte gLinkEntity +_08085650: .4byte gUnk_03003F80 +_08085654: + adds r0, r6, #0 + bl sub_08004542 +_0808565A: + ldrb r0, [r7, #0xf] + cmp r0, #0 + bne _0808568C + movs r0, #4 + strb r0, [r7, #0xf] +_08085664: + adds r0, r7, #0 + movs r1, #8 + movs r2, #0xa + bl sub_080A2AF4 + ldrb r0, [r7, #0xf] + subs r0, #1 + strb r0, [r7, #0xf] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08085664 + movs r0, #1 + strb r0, [r7, #0xf] + ldrb r1, [r7, #0xe] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0xe] + str r2, [r7, #0x70] + str r2, [r7, #0x6c] +_0808568C: + ldr r2, _080856B8 @ =gUnk_03003F80 + ldrb r0, [r2, #0x1c] + cmp r0, #3 + beq _08085696 + b _080857CE +_08085696: + ldr r1, _080856BC @ =gUnk_08120620 + ldrb r0, [r2, #0x1d] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + ldr r0, _080856C0 @ =gLinkEntity + ldrb r0, [r0, #0x14] + movs r1, #6 + ands r1, r0 + cmp r1, #2 + beq _080856DE + cmp r1, #2 + bgt _080856C4 + cmp r1, #0 + beq _080856D6 + b _080857CE + .align 2, 0 +_080856B8: .4byte gUnk_03003F80 +_080856BC: .4byte gUnk_08120620 +_080856C0: .4byte gLinkEntity +_080856C4: + cmp r1, #4 + beq _080856CE + cmp r1, #6 + beq _080856E6 + b _080857CE +_080856CE: + ldr r0, [r7, #0x70] + subs r0, r0, r4 + str r0, [r7, #0x70] + b _080857CE +_080856D6: + ldr r0, [r7, #0x70] + adds r0, r0, r4 + str r0, [r7, #0x70] + b _080857CE +_080856DE: + ldr r0, [r7, #0x6c] + subs r0, r0, r4 + str r0, [r7, #0x6c] + b _080857CE +_080856E6: + ldr r0, [r7, #0x6c] + adds r0, r0, r4 + str r0, [r7, #0x6c] + b _080857CE +_080856EE: + ldrb r0, [r7, #0xf] + cmp r0, #0 + beq _080856FC + strb r1, [r7, #0xf] + movs r0, #0x83 + bl sub_080A3268 +_080856FC: + adds r2, r7, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + mov r8, r2 + cmp r0, #0x13 + bne _080857C8 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r3, _08085758 @ =gUnk_08126EE4 + ldrb r2, [r6, #0x14] + movs r0, #0xe + ands r0, r2 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r1, r0 + movs r0, #0x32 + ldrsh r1, [r6, r0] + movs r0, #1 + orrs r0, r2 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r3, r1, r0 + movs r1, #0x2e + ldrsh r0, [r7, r1] + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r5, #0 + bl sub_080045D4 + strb r0, [r7, #0x15] + ldr r0, _0808575C @ =gUnk_03003F80 + ldrb r0, [r0, #0x1d] + cmp r0, #2 + beq _0808576A + cmp r0, #2 + bgt _08085760 + cmp r0, #1 + beq _08085770 + b _08085774 + .align 2, 0 +_08085758: .4byte gUnk_08126EE4 +_0808575C: .4byte gUnk_03003F80 +_08085760: + cmp r0, #3 + bne _08085774 + movs r4, #0x80 + lsls r4, r4, #3 + b _08085774 +_0808576A: + movs r4, #0xc0 + lsls r4, r4, #2 + b _08085774 +_08085770: + movs r4, #0x80 + lsls r4, r4, #2 +_08085774: + ldr r6, _080858A8 @ =gUnk_080C9160 + ldrb r0, [r7, #0x15] + lsls r0, r0, #4 + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r4, r4, #0x10 + asrs r4, r4, #0x18 + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r7, #0x6c] + adds r1, r1, r0 + str r1, [r7, #0x6c] + ldrb r0, [r7, #0x15] + lsls r0, r0, #4 + adds r0, #0x80 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r7, #0x70] + subs r1, r1, r0 + str r1, [r7, #0x70] +_080857C8: + movs r0, #0 + mov r1, r8 + strb r0, [r1] +_080857CE: + ldr r0, [r7, #0x2c] + str r0, [r7, #0x54] + ldr r0, [r7, #0x30] + str r0, [r7, #0x50] + ldr r0, [r7, #0x6c] + cmp r0, #0 + bne _080857E4 + ldr r0, [r7, #0x70] + cmp r0, #0 + bne _080857E4 + b _080859F4 +_080857E4: + ldr r0, [r7, #0x70] + ldr r1, _080858AC @ =0xFFFF0000 + cmp r0, r1 + blt _080857F4 + movs r1, #0x80 + lsls r1, r1, #9 + cmp r0, r1 + ble _080857F6 +_080857F4: + str r1, [r7, #0x70] +_080857F6: + ldr r0, [r7, #0x6c] + ldr r1, _080858AC @ =0xFFFF0000 + cmp r0, r1 + blt _08085806 + movs r1, #0x80 + lsls r1, r1, #9 + cmp r0, r1 + ble _08085808 +_08085806: + str r1, [r7, #0x6c] +_08085808: + ldr r0, _080858B0 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0808581A + adds r0, r7, #0 + bl sub_080A2AD4 +_0808581A: + ldr r0, [r7, #0x2c] + ldr r1, [r7, #0x6c] + adds r5, r0, r1 + ldr r1, [r7, #0x30] + ldr r2, [r7, #0x70] + adds r3, r1, r2 + adds r2, r5, #0 + bl sub_080045D4 + strb r0, [r7, #0x15] + ldr r0, [r7, #0x6c] + lsls r0, r0, #8 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r5, _080858A8 @ =gUnk_080C9160 + ldrb r1, [r7, #0x15] + lsls r1, r1, #4 + adds r1, r1, r5 + movs r2, #0 + ldrsh r1, [r1, r2] + bl sub_0806FA04 + strh r0, [r7, #0x24] + ldr r0, [r7, #0x70] + lsls r0, r0, #8 + asrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r7, #0x15] + lsls r1, r1, #4 + adds r1, #0x80 + adds r1, r1, r5 + movs r2, #0 + ldrsh r1, [r1, r2] + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + rsbs r4, r0, #0 + movs r1, #0x24 + ldrsh r0, [r7, r1] + cmp r4, r0 + ble _08085884 + strh r4, [r7, #0x24] +_08085884: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _080858BC + adds r0, r7, #0 + adds r0, #0x7e + movs r2, #0 + ldrsh r1, [r0, r2] + ldr r0, _080858B4 @ =0x00000FFF + cmp r1, r0 + bgt _080858B8 + movs r0, #0x24 + ldrsh r1, [r7, r0] + lsls r1, r1, #0xc + ldr r0, [r7, #0x7c] + adds r0, r0, r1 + str r0, [r7, #0x7c] + b _080858E0 + .align 2, 0 +_080858A8: .4byte gUnk_080C9160 +_080858AC: .4byte 0xFFFF0000 +_080858B0: .4byte gUnk_030010A0 +_080858B4: .4byte 0x00000FFF +_080858B8: + movs r0, #0 + b _080858DE +_080858BC: + adds r0, r7, #0 + adds r0, #0x7e + movs r2, #0 + ldrsh r1, [r0, r2] + ldr r0, _080858D8 @ =0xFFFFF000 + cmp r1, r0 + ble _080858DC + movs r0, #0x24 + ldrsh r1, [r7, r0] + lsls r1, r1, #0xc + ldr r0, [r7, #0x7c] + subs r0, r0, r1 + str r0, [r7, #0x7c] + b _080858E0 + .align 2, 0 +_080858D8: .4byte 0xFFFFF000 +_080858DC: + movs r0, #1 +_080858DE: + strb r0, [r7, #0xb] +_080858E0: + adds r0, r7, #0 + bl sub_08085EFC + adds r0, r7, #0 + bl sub_080AF134 + ldr r1, [r7, #0x54] + ldr r0, [r7, #0x2c] + cmp r1, r0 + bne _0808590C + adds r0, r7, #0 + adds r0, #0x85 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #2 + bne _08085906 + movs r0, #0 + str r0, [r7, #0x6c] + b _08085916 +_08085906: + adds r0, r1, #1 + strb r0, [r2] + b _08085916 +_0808590C: + adds r1, r7, #0 + adds r1, #0x85 + movs r0, #0 + strb r0, [r1] + adds r2, r1, #0 +_08085916: + ldr r1, [r7, #0x50] + ldr r0, [r7, #0x30] + cmp r1, r0 + bne _0808592E + ldrb r0, [r2] + cmp r0, #2 + bne _0808592A + movs r0, #0 + str r0, [r7, #0x70] + b _08085932 +_0808592A: + adds r0, #1 + b _08085930 +_0808592E: + movs r0, #0 +_08085930: + strb r0, [r2] +_08085932: + ldr r0, _0808595C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08085944 + adds r0, r7, #0 + bl sub_08085F1C +_08085944: + ldr r1, [r7, #0x6c] + cmp r1, #0 + beq _08085998 + cmp r1, #0 + bge _0808596E + movs r0, #0x80 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08085960 + movs r0, #0 + b _08085964 + .align 2, 0 +_0808595C: .4byte gUnk_03003F80 +_08085960: + adds r0, r1, #0 + adds r0, #0x80 +_08085964: + str r0, [r7, #0x6c] + ldrh r2, [r7, #0x2a] + movs r1, #0xe0 + lsls r1, r1, #4 + b _08085982 +_0808596E: + cmp r1, #0x7f + bhi _08085976 + movs r0, #0 + b _0808597A +_08085976: + adds r0, r1, #0 + subs r0, #0x80 +_0808597A: + str r0, [r7, #0x6c] + ldrh r2, [r7, #0x2a] + movs r1, #0xe0 + lsls r1, r1, #8 +_08085982: + adds r0, r1, #0 + ands r0, r2 + cmp r0, r1 + bne _08085998 + ldr r0, [r7, #0x6c] + cmp r0, #0 + bge _08085992 + adds r0, #3 +_08085992: + asrs r0, r0, #2 + rsbs r0, r0, #0 + str r0, [r7, #0x6c] +_08085998: + ldr r1, [r7, #0x70] + cmp r1, #0 + beq _080859E6 + cmp r1, #0 + bge _080859C0 + movs r0, #0x80 + rsbs r0, r0, #0 + cmp r1, r0 + ble _080859AE + movs r0, #0 + b _080859B2 +_080859AE: + adds r0, r1, #0 + adds r0, #0x80 +_080859B2: + str r0, [r7, #0x70] + ldrh r1, [r7, #0x2a] + movs r0, #0xe + ands r0, r1 + cmp r0, #0xe + bne _080859E6 + b _080859D8 +_080859C0: + cmp r1, #0x7f + bhi _080859C8 + movs r0, #0 + b _080859CC +_080859C8: + adds r0, r1, #0 + subs r0, #0x80 +_080859CC: + str r0, [r7, #0x70] + ldrh r1, [r7, #0x2a] + movs r0, #0xe0 + ands r0, r1 + cmp r0, #0xe0 + bne _080859E6 +_080859D8: + ldr r0, [r7, #0x70] + cmp r0, #0 + bge _080859E0 + adds r0, #3 +_080859E0: + asrs r0, r0, #2 + rsbs r0, r0, #0 + str r0, [r7, #0x70] +_080859E6: + adds r0, r7, #0 + bl sub_08085D28 + adds r0, r7, #0 + bl sub_08085D60 + b _08085A0A +_080859F4: + ldr r0, _08085A18 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08085A0A + adds r0, r7, #0 + movs r1, #8 + movs r2, #0xa + bl sub_080A2AF4 +_08085A0A: + adds r0, r7, #0 + bl sub_08085F48 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08085A18: .4byte gUnk_030010A0 + + thumb_func_start sub_08085A1C +sub_08085A1C: @ 0x08085A1C + push {lr} + ldr r2, _08085A3C @ =gUnk_0812062C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r2, _08085A40 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x30] + bl sub_08078B48 + pop {pc} + .align 2, 0 +_08085A3C: .4byte gUnk_0812062C +_08085A40: .4byte gUnk_03003F80 + + thumb_func_start sub_08085A44 +sub_08085A44: @ 0x08085A44 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0x18 + bl sub_080002B4 + cmp r0, #0x11 + beq _08085A62 + movs r0, #0x18 + strb r0, [r4, #0x15] + b _08085A82 +_08085A62: + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r4, #0 + movs r2, #0x18 + bl sub_080002B4 + cmp r0, #0x11 + beq _08085A78 + movs r0, #8 + strb r0, [r4, #0x15] + b _08085A82 +_08085A78: + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #1 + strb r0, [r4, #0xd] + b _08085A94 +_08085A82: + adds r0, r4, #0 + bl sub_08085EFC + adds r0, r4, #0 + bl sub_080AF134 + adds r0, r4, #0 + bl sub_08085F1C +_08085A94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08085A98 +sub_08085A98: @ 0x08085A98 + push {r4, lr} + adds r4, r0, #0 + bl sub_08085EFC + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08085F1C + ldr r1, [r4, #0x78] + ldr r0, _08085B00 @ =0x007FFFFF + cmp r1, r0 + bls _08085ACC + ldr r2, _08085B04 @ =0xFFFE0000 + adds r0, r1, r2 + str r0, [r4, #0x78] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_08085ACC: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x18 + bl sub_080002B4 + cmp r0, #0x11 + beq _08085B34 + movs r0, #2 + strb r0, [r4, #0xd] + ldr r0, _08085B08 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x1b + bne _08085B10 + ldrh r0, [r4, #0x32] + adds r0, #0xd0 + strh r0, [r4, #0x32] + ldr r0, _08085B0C @ =0x0000FF30 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x46 + strh r0, [r1] + movs r0, #0x73 + bl sub_0807CCB4 + b _08085B22 + .align 2, 0 +_08085B00: .4byte 0x007FFFFF +_08085B04: .4byte 0xFFFE0000 +_08085B08: .4byte gUnk_02033A90 +_08085B0C: .4byte 0x0000FF30 +_08085B10: + ldrh r0, [r4, #0x32] + adds r0, #0x40 + strh r0, [r4, #0x32] + ldr r0, _08085B38 @ =0x0000FFC0 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xf + strh r0, [r1] +_08085B22: + adds r0, r4, #0 + movs r1, #0x2b + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + ldr r0, _08085B3C @ =0x0000012D + bl sub_080A3268 +_08085B34: + pop {r4, pc} + .align 2, 0 +_08085B38: .4byte 0x0000FFC0 +_08085B3C: .4byte 0x0000012D + + thumb_func_start sub_08085B40 +sub_08085B40: @ 0x08085B40 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x34] + cmp r0, #0 + beq _08085BB4 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _08085BE8 + ldr r1, [r5, #0x78] + ldr r0, _08085B9C @ =0x011FFFFF + cmp r1, r0 + bhi _08085B7A + movs r2, #0x80 + lsls r2, r2, #0xd + adds r0, r1, r2 + str r0, [r5, #0x78] + adds r0, r5, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_08085B7A: + ldr r4, _08085BA0 @ =gLinkEntity + ldrh r3, [r5, #0x32] + ldrh r0, [r5, #0x36] + adds r0, r3, r0 + adds r1, r5, #0 + adds r1, #0x74 + ldrh r1, [r1] + subs r2, r0, r1 + strh r2, [r4, #0x32] + ldr r0, _08085BA4 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x1b + bne _08085BA8 + subs r0, r3, r1 + adds r1, r2, #0 + adds r1, #0xd0 + b _08085BAE + .align 2, 0 +_08085B9C: .4byte 0x011FFFFF +_08085BA0: .4byte gLinkEntity +_08085BA4: .4byte gUnk_02033A90 +_08085BA8: + subs r0, r3, r1 + adds r1, r2, #0 + adds r1, #0x40 +_08085BAE: + subs r0, r0, r1 + strh r0, [r4, #0x36] + b _08085BE8 +_08085BB4: + adds r0, r5, #0 + bl sub_0800455E + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0xd + bne _08085BE8 + ldr r4, _08085C50 @ =gLinkEntity + adds r0, r4, #0 + bl sub_0800455E + adds r0, r5, #0 + bl sub_08085CDC + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + ldrb r2, [r5, #0x15] + adds r0, r4, #0 + bl sub_0806F5BC +_08085BE8: + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + cmp r0, #0 + bne _08085C54 + ldr r4, _08085C50 @ =gLinkEntity + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08085C58 + adds r0, r4, #0 + bl sub_0800455E + adds r0, r5, #0 + bl sub_08085F1C + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #4 + strb r0, [r5, #0xf] +_08085C16: + adds r0, r5, #0 + movs r1, #8 + movs r2, #0xa + bl sub_080A2AF4 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08085C16 + movs r0, #1 + strb r0, [r5, #0xf] + ldrb r1, [r5, #0xe] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0xe] + str r2, [r5, #0x70] + str r2, [r5, #0x6c] + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0xd + bne _08085C58 + movs r0, #4 + strb r0, [r5, #0xc] + b _08085C58 + .align 2, 0 +_08085C50: .4byte gLinkEntity +_08085C54: + subs r0, #1 + strh r0, [r1] +_08085C58: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08085C5C +sub_08085C5C: @ 0x08085C5C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08085CA0 @ =gLinkEntity + adds r1, r5, #0 + movs r2, #0x18 + bl sub_0806FC80 + cmp r0, #0 + beq _08085CAE + adds r0, r4, #0 + bl sub_0806F69C + ldrh r0, [r4, #0x24] + strh r0, [r5, #0x24] + ldrb r0, [r4, #0x15] + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldr r2, _08085CA4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x30] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08085CA8 + adds r0, r5, #0 + bl sub_0800455E + b _08085CAE + .align 2, 0 +_08085CA0: .4byte gLinkEntity +_08085CA4: .4byte gUnk_03003F80 +_08085CA8: + adds r0, r5, #0 + bl sub_08004542 +_08085CAE: + ldr r3, _08085CD4 @ =gRoomControls + ldrh r0, [r3] + cmp r0, #0 + bne _08085CD2 + ldrb r1, [r4, #0x10] + movs r0, #0xdf + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + lsrs r2, r1, #4 + subs r0, #0x11 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + ldr r0, _08085CD8 @ =gLinkEntity + str r0, [r3, #0x30] +_08085CD2: + pop {r4, r5, pc} + .align 2, 0 +_08085CD4: .4byte gRoomControls +_08085CD8: .4byte gLinkEntity + + thumb_func_start sub_08085CDC +sub_08085CDC: @ 0x08085CDC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x78] + movs r1, #0x80 + lsls r1, r1, #0xd + adds r0, r0, r1 + str r0, [r4, #0x78] + ldr r1, _08085D04 @ =0x03FFFFFF + cmp r0, r1 + bhi _08085D08 + adds r0, r4, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + b _08085D0C + .align 2, 0 +_08085D04: .4byte 0x03FFFFFF +_08085D08: + bl sub_0805E780 +_08085D0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08085D10 +sub_08085D10: @ 0x08085D10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805EABC + cmp r0, #0 + beq _08085D26 + ldrb r0, [r4, #0xb] + bl sub_0807CCB4 + bl sub_0805E780 +_08085D26: + pop {r4, pc} + + thumb_func_start sub_08085D28 +sub_08085D28: @ 0x08085D28 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08085D5C @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x13 + beq _08085D5A + ldr r0, [r1, #0x30] + movs r5, #2 + ands r0, r5 + cmp r0, #0 + beq _08085D5A + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x18 + bl sub_080002B4 + cmp r0, #0x11 + bne _08085D5A + movs r0, #0 + strb r5, [r4, #0xc] + strb r0, [r4, #0xd] + bl sub_08078B48 +_08085D5A: + pop {r4, r5, pc} + .align 2, 0 +_08085D5C: .4byte gUnk_03003F80 + + thumb_func_start sub_08085D60 +sub_08085D60: @ 0x08085D60 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r2, _08085D94 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08085E64 + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x12 + beq _08085E64 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _08085E64 + ldrb r1, [r5, #0x15] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08085D98 + ldrb r6, [r5, #0x15] + adds r4, r6, #0 + b _08085DB0 + .align 2, 0 +_08085D94: .4byte gUnk_03003F80 +_08085D98: + movs r0, #0x10 + ands r0, r1 + movs r4, #8 + cmp r0, #0 + beq _08085DA4 + movs r4, #0x18 +_08085DA4: + ldrb r0, [r5, #0x15] + subs r0, #8 + movs r6, #0x10 + cmp r0, #0x10 + ble _08085DB0 + movs r6, #0 +_08085DB0: + cmp r4, #0x18 + beq _08085DB8 + cmp r4, #8 + bne _08085E20 +_08085DB8: + lsrs r3, r4, #2 + ldr r1, _08085E10 @ =gUnk_08120638 + adds r0, r3, r1 + movs r7, #0 + ldrsb r7, [r0, r7] + adds r0, r3, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r8, r0 + adds r0, r5, #0 + adds r1, r7, #0 + mov r2, r8 + bl sub_080002CC + cmp r0, #0xff + bne _08085E20 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _08085E14 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + adds r0, r0, r7 + movs r3, #0x32 + ldrsh r1, [r5, r3] + ldrh r2, [r2, #8] + subs r1, r1, r2 + add r1, r8 + adds r2, r4, #0 + movs r3, #5 + bl sub_080806BC + cmp r0, #0 + bne _08085E1C + ldr r0, _08085E18 @ =gLinkEntity + lsrs r1, r4, #3 + bl sub_0807BD14 + cmp r0, #0 + beq _08085E20 + strb r4, [r5, #0x15] + b _08085E52 + .align 2, 0 +_08085E10: .4byte gUnk_08120638 +_08085E14: .4byte gRoomControls +_08085E18: .4byte gLinkEntity +_08085E1C: + strb r4, [r5, #0x15] + b _08085E6C +_08085E20: + cmp r6, #0 + beq _08085E28 + cmp r6, #0x10 + bne _08085E6C +_08085E28: + lsrs r3, r6, #2 + ldr r2, _08085E5C @ =gUnk_08120638 + adds r0, r3, r2 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r0, r3, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r5, #0 + bl sub_080002CC + cmp r0, #0xff + bne _08085E6C + ldr r0, _08085E60 @ =gLinkEntity + lsrs r1, r6, #3 + bl sub_0807BD14 + cmp r0, #0 + beq _08085E6C + strb r6, [r5, #0x15] +_08085E52: + adds r0, r5, #0 + bl sub_08085E74 + b _08085E6C + .align 2, 0 +_08085E5C: .4byte gUnk_08120638 +_08085E60: .4byte gLinkEntity +_08085E64: + ldrb r1, [r5, #0x10] + movs r0, #0xdf + ands r0, r1 + strb r0, [r5, #0x10] +_08085E6C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08085E74 +sub_08085E74: @ 0x08085E74 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2, #0x11] + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0x15] + cmp r0, #8 + beq _08085EB8 + cmp r0, #8 + bgt _08085EA2 + cmp r0, #0 + beq _08085EAC + b _08085EBE +_08085EA2: + cmp r0, #0x10 + beq _08085EB2 + cmp r0, #0x18 + beq _08085EB8 + b _08085EBE +_08085EAC: + movs r0, #0x90 + lsls r0, r0, #1 + b _08085EBC +_08085EB2: + movs r0, #0x9c + lsls r0, r0, #1 + b _08085EBC +_08085EB8: + movs r0, #0x80 + lsls r0, r0, #1 +_08085EBC: + strh r0, [r2, #0x24] +_08085EBE: + movs r0, #0 + str r0, [r2, #0x70] + str r0, [r2, #0x6c] + strh r0, [r2, #0x2c] + strh r0, [r2, #0x30] + ldr r1, _08085EF0 @ =gLinkEntity + strh r0, [r1, #0x2c] + strh r0, [r1, #0x30] + ldrb r0, [r2, #0x15] + strb r0, [r1, #0x15] + ldr r1, _08085EF4 @ =gUnk_03003F80 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #8] + ldr r0, _08085EF8 @ =gRoomControls + str r2, [r0, #0x30] + ldr r0, [r1, #0x2c] + cmp r0, #0 + beq _08085EE8 + bl sub_0805E7BC +_08085EE8: + bl sub_08077B2C + pop {pc} + .align 2, 0 +_08085EF0: .4byte gLinkEntity +_08085EF4: .4byte gUnk_03003F80 +_08085EF8: .4byte gRoomControls + + thumb_func_start sub_08085EFC +sub_08085EFC: @ 0x08085EFC + ldr r3, _08085F18 @ =gLinkEntity + ldrh r1, [r0, #0x2e] + ldrh r2, [r3, #0x2e] + subs r1, r1, r2 + adds r2, r0, #0 + adds r2, #0x76 + strh r1, [r2] + ldrh r1, [r0, #0x32] + ldrh r2, [r3, #0x32] + subs r1, r1, r2 + adds r0, #0x74 + strh r1, [r0] + bx lr + .align 2, 0 +_08085F18: .4byte gLinkEntity + + thumb_func_start sub_08085F1C +sub_08085F1C: @ 0x08085F1C + push {lr} + adds r3, r0, #0 + ldr r2, _08085F44 @ =gLinkEntity + adds r1, r3, #0 + adds r1, #0x76 + ldrh r0, [r3, #0x2e] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2, #0x2e] + adds r1, r3, #0 + adds r1, #0x74 + ldrh r0, [r3, #0x32] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2, #0x32] + ldrb r0, [r3, #0x15] + bl sub_0807A5B8 + pop {pc} + .align 2, 0 +_08085F44: .4byte gLinkEntity + + thumb_func_start sub_08085F48 +sub_08085F48: @ 0x08085F48 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xe] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08085F8C + ldr r5, _08085F80 @ =gUnk_03003F80 + ldrb r0, [r5, #0x12] + cmp r0, #0x17 + bne _08085F6A + bl sub_08078F60 + movs r0, #0x19 + strb r0, [r5, #0x12] +_08085F6A: + movs r0, #0x83 + bl sub_080A3268 + ldr r1, [r4, #0x78] + ldr r0, _08085F84 @ =0x0127FFFF + cmp r1, r0 + bhi _08085F88 + movs r2, #0x80 + lsls r2, r2, #0xc + b _08085FF8 + .align 2, 0 +_08085F80: .4byte gUnk_03003F80 +_08085F84: .4byte 0x0127FFFF +_08085F88: + movs r0, #0 + b _08086006 +_08085F8C: + ldr r0, _08085FAC @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r0, #2 + ands r1, r0 + cmp r1, #0 + beq _08085FCC + lsls r0, r2, #0x18 + cmp r0, #0 + beq _08085FB8 + ldr r1, [r4, #0x78] + ldr r0, _08085FB0 @ =0x011FFFFF + cmp r1, r0 + bhi _08085FB4 + movs r2, #0x80 + lsls r2, r2, #8 + b _08085FF8 + .align 2, 0 +_08085FAC: .4byte gUnk_03003F80 +_08085FB0: .4byte 0x011FFFFF +_08085FB4: + strb r3, [r4, #0xe] + b _08086008 +_08085FB8: + ldr r1, [r4, #0x78] + movs r0, #0x88 + lsls r0, r0, #0x11 + cmp r1, r0 + bls _08086004 + ldr r2, _08085FC8 @ =0xFFFF8000 + b _08085FF8 + .align 2, 0 +_08085FC8: .4byte 0xFFFF8000 +_08085FCC: + lsls r0, r2, #0x18 + cmp r0, #0 + beq _08085FEC + ldr r2, [r4, #0x78] + ldr r0, _08085FE4 @ =0x010FFFFF + cmp r2, r0 + bhi _08085FE8 + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r2, r1 + str r0, [r4, #0x78] + b _08086008 + .align 2, 0 +_08085FE4: .4byte 0x010FFFFF +_08085FE8: + strb r1, [r4, #0xe] + b _08086008 +_08085FEC: + ldr r1, [r4, #0x78] + movs r0, #0x83 + lsls r0, r0, #0x11 + cmp r1, r0 + bls _08086004 + ldr r2, _08086000 @ =0xFFFFC000 +_08085FF8: + adds r0, r1, r2 + str r0, [r4, #0x78] + b _08086008 + .align 2, 0 +_08086000: .4byte 0xFFFFC000 +_08086004: + movs r0, #1 +_08086006: + strb r0, [r4, #0xe] +_08086008: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + pop {r4, r5, pc} + + thumb_func_start sub_0808601C +sub_0808601C: @ 0x0808601C + push {lr} + ldr r2, _08086030 @ =gUnk_08120648 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086030: .4byte gUnk_08120648 + + thumb_func_start sub_08086034 +sub_08086034: @ 0x08086034 + push {lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + adds r1, r0, #0 + adds r1, #0x58 + ldrb r1, [r1] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08086054 +sub_08086054: @ 0x08086054 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08086064 + adds r0, r4, #0 + bl sub_08004274 +_08086064: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0808607C + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0808607C: + ldrb r0, [r4, #0xe] + lsls r1, r0, #0x18 + cmp r1, #0 + blt _080860AA + cmp r1, #0 + beq _08086098 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080860AA + bl sub_0805E780 + b _080860AA +_08086098: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080860AA + bl sub_0805E780 +_080860AA: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080860BC + ldr r0, [r1, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r1, #0x30] + str r0, [r4, #0x30] + ldr r0, [r1, #0x34] + str r0, [r4, #0x34] +_080860BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080860C0 +sub_080860C0: @ 0x080860C0 + push {lr} + ldr r2, _080860D4 @ =gUnk_08120650 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080860D4: .4byte gUnk_08120650 + + thumb_func_start sub_080860D8 +sub_080860D8: @ 0x080860D8 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, #0xff + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xb] + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x70 + adds r0, r4, #0 + bl sub_080A2CC0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808611C +sub_0808611C: @ 0x0808611C + push {r4, lr} + adds r4, r0, #0 + bl sub_08086168 + adds r1, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808613C + ldr r2, [r4, #0x50] + ldrb r0, [r2, #0xe] + cmp r0, #0 + bne _08086144 + cmp r1, #0 + beq _0808613C + adds r0, #1 + strb r0, [r2, #0xe] +_0808613C: + adds r0, r4, #0 + bl sub_080A2BE4 + b _0808614C +_08086144: + adds r0, r4, #0 + movs r1, #0 + bl sub_080A2BE4 +_0808614C: + adds r2, r4, #0 + adds r2, #0x70 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08086166 + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_08086166: + pop {r4, pc} + + thumb_func_start sub_08086168 +sub_08086168: @ 0x08086168 + push {r4, lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #1 + ldr r2, _0808619C @ =gUnk_08120658 + adds r1, r1, r2 + ldr r4, _080861A0 @ =gLinkEntity + ldrb r2, [r1] + ldrb r3, [r1, #1] + adds r1, r4, #0 + bl sub_080041A0 + cmp r0, #0 + beq _080861A8 + bl sub_08079F8C + cmp r0, #0 + beq _080861A8 + ldr r0, _080861A4 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080861A8 + movs r0, #1 + b _080861AA + .align 2, 0 +_0808619C: .4byte gUnk_08120658 +_080861A0: .4byte gLinkEntity +_080861A4: .4byte gUnk_03003F80 +_080861A8: + movs r0, #0 +_080861AA: + pop {r4, pc} + + thumb_func_start sub_080861AC +sub_080861AC: @ 0x080861AC + push {lr} + ldr r2, _080861C0 @ =gUnk_08120660 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080861C0: .4byte gUnk_08120660 + + thumb_func_start sub_080861C4 +sub_080861C4: @ 0x080861C4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldr r0, _08086230 @ =gLinkEntity + mov ip, r0 + ldrb r1, [r0, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + mov r0, ip + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r6, r4, #0 + adds r6, #0x29 + lsrs r1, r1, #0x1d + ldrb r3, [r6] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r6] + mov r0, ip + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + mov r1, ip + ldrb r0, [r1, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r1, [r4, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x1b] + bl sub_08000E50 + ands r0, r5 + strb r0, [r4, #0xa] + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_08086230: .4byte gLinkEntity + + thumb_func_start sub_08086234 +sub_08086234: @ 0x08086234 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08086258 + ldr r0, _08086254 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0808625E + adds r0, r4, #0 + bl sub_08004274 + b _0808625E + .align 2, 0 +_08086254: .4byte gUnk_030010A0 +_08086258: + adds r0, r4, #0 + bl sub_08004274 +_0808625E: + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0808626E + bl sub_0805E780 + b _0808627E +_0808626E: + ldr r0, _08086280 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + beq _0808627E + bl sub_0805E780 +_0808627E: + pop {r4, pc} + .align 2, 0 +_08086280: .4byte gUnk_03003F80 + + thumb_func_start sub_08086284 +sub_08086284: @ 0x08086284 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080862B4 @ =gUnk_08120668 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r1, r4, #0 + adds r1, #0x41 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_080862B4: .4byte gUnk_08120668 + + thumb_func_start sub_080862B8 +sub_080862B8: @ 0x080862B8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _080862CA + bl sub_0805E780 +_080862CA: + movs r3, #1 + strb r3, [r4, #0xc] + ldr r1, _08086350 @ =gUnk_08120678 + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + adds r2, r4, #0 + adds r2, #0x76 + strh r0, [r2] + ldrh r0, [r1] + subs r1, #2 + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08086354 + adds r1, #6 + ldr r0, [r4, #0x2c] + str r0, [r1] + adds r1, #4 + ldr r0, [r4, #0x30] + str r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + strb r0, [r4, #0x19] + str r4, [r4, #0x50] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r3, [r0] + subs r1, #1 + movs r0, #4 + strb r0, [r1] + movs r2, #0 +_08086324: + adds r5, r2, #1 + adds r0, r4, #0 + movs r1, #0x18 + adds r2, r5, #0 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08086346 + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r0, [r4, #0x54] + str r4, [r0, #0x54] + ldr r0, [r4, #0x54] + str r0, [r4, #0x50] +_08086346: + adds r2, r5, #0 + cmp r2, #3 + bls _08086324 + b _08086360 + .align 2, 0 +_08086350: .4byte gUnk_08120678 +_08086354: + ldrb r0, [r4, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x19] +_08086360: + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08086370 + pop {r4, r5, pc} + + thumb_func_start sub_08086370 +sub_08086370: @ 0x08086370 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r2, [r6, #0xa] + cmp r2, #0 + beq _08086440 + ldr r0, [r6, #0x54] + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + bne _080863B6 + adds r1, r6, #0 + adds r1, #0x7c + ldrh r0, [r1] + adds r2, r6, #0 + adds r2, #0x76 + strh r0, [r2] + ldrh r0, [r1] + subs r1, #2 + strh r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r6, #0x24] + ldr r2, [r6, #0x50] + ldr r0, [r2, #0x2c] + ldr r1, [r6, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r6, #0x30] + subs r1, r1, r2 + bl sub_080045DA + movs r1, #0x80 + eors r0, r1 + strb r0, [r6, #0x15] + b _08086428 +_080863B6: + movs r0, #0xc0 + lsls r0, r0, #3 + strh r0, [r6, #0x24] + ldr r2, _080863E8 @ =gLinkEntity + ldr r0, [r2, #0x2c] + ldr r1, [r6, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r6, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + movs r0, #0x80 + eors r1, r0 + ldrb r2, [r6, #0x15] + cmp r1, r2 + beq _080863F0 + subs r0, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _080863EC + adds r0, r2, #3 + b _080863EE + .align 2, 0 +_080863E8: .4byte gLinkEntity +_080863EC: + subs r0, r2, #3 +_080863EE: + strb r0, [r6, #0x15] +_080863F0: + ldr r0, _0808640C @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08086410 + adds r0, r6, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r0, #0x40 + adds r1, r6, #0 + adds r1, #0x76 + b _08086426 + .align 2, 0 +_0808640C: .4byte gLinkEntity +_08086410: + adds r0, r6, #0 + adds r0, #0x7c + ldrh r1, [r0] + subs r1, #0x20 + adds r2, r6, #0 + adds r2, #0x76 + strh r1, [r2] + ldrh r0, [r0] + adds r0, #0x50 + adds r1, r6, #0 + adds r1, #0x7a +_08086426: + strh r0, [r1] +_08086428: + ldr r1, [r6, #0x50] + ldr r0, [r1, #0x2c] + str r0, [r6, #0x2c] + ldr r0, [r1, #0x30] + str r0, [r6, #0x30] + movs r0, #0x24 + ldrsh r1, [r6, r0] + ldrb r2, [r6, #0x15] + adds r0, r6, #0 + bl sub_0806F62C + b _0808654A +_08086440: + adds r0, r6, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + bne _08086498 + ldrb r0, [r6, #0x15] + adds r0, #1 + strb r0, [r6, #0x15] + ldrb r0, [r6, #0x1d] + subs r0, #1 + strb r0, [r6, #0x1d] + adds r2, r6, #0 + adds r2, #0x7f + movs r0, #1 + strb r0, [r2] + ldr r0, _08086480 @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + adds r3, r2, #0 + cmp r0, #0 + bne _08086484 + adds r0, r6, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r0, #0x10 + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + b _080864BC + .align 2, 0 +_08086480: .4byte gLinkEntity +_08086484: + adds r1, r6, #0 + adds r1, #0x7c + ldrh r0, [r1] + subs r0, #0x20 + adds r2, r6, #0 + adds r2, #0x76 + strh r0, [r2] + ldrh r0, [r1] + adds r0, #0x30 + b _080864B6 +_08086498: + ldrb r0, [r6, #0x15] + adds r0, #2 + strb r0, [r6, #0x15] + movs r0, #0xf0 + strb r0, [r6, #0x1d] + adds r3, r6, #0 + adds r3, #0x7f + strb r2, [r3] + adds r1, r6, #0 + adds r1, #0x7c + ldrh r0, [r1] + adds r2, r6, #0 + adds r2, #0x76 + strh r0, [r2] + ldrh r0, [r1] +_080864B6: + subs r1, #2 + strh r0, [r1] + adds r1, r2, #0 +_080864BC: + ldrb r2, [r6, #0x1d] + cmp r2, #0 + bne _080864CA + movs r0, #2 + strb r0, [r6, #0xc] + strb r2, [r3] + b _0808654A +_080864CA: + ldrb r0, [r6, #0x15] + adds r0, #0x40 + lsls r0, r0, #0x18 + cmp r0, #0 + blt _080864E0 + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + ble _080864EE + b _080864EA +_080864E0: + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + bge _080864EE +_080864EA: + rsbs r0, r2, #0 + strh r0, [r1] +_080864EE: + ldr r5, _0808654C @ =gUnk_080C9160 + ldrb r0, [r6, #0x15] + lsls r0, r0, #1 + adds r0, r0, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl sub_0806FA04 + adds r1, r6, #0 + adds r1, #0x80 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1] + adds r1, r1, r0 + str r1, [r6, #0x2c] + ldrb r0, [r6, #0x15] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r3, #0 + ldrsh r0, [r0, r3] + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0806FA04 + adds r1, r6, #0 + adds r1, #0x84 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1] + subs r1, r1, r0 + str r1, [r6, #0x30] +_0808654A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808654C: .4byte gUnk_080C9160 + + thumb_func_start sub_08086550 +sub_08086550: @ 0x08086550 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08086566 + movs r0, #3 + strb r0, [r4, #0xc] + b _08086592 +_08086566: + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08086592 + movs r0, #0x63 + bl sub_0807CCB4 + movs r0, #0 + bl sub_0807CD10 + movs r5, #0 +_0808657E: + ldr r0, [r4, #0x54] + ldr r1, [r0, #0x50] + str r1, [r4, #0x54] + bl sub_0805E7BC + adds r5, #1 + cmp r5, #3 + bls _0808657E + bl sub_0805E780 +_08086592: + pop {r4, r5, pc} + + thumb_func_start sub_08086594 +sub_08086594: @ 0x08086594 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x80 + ldr r0, [r0] + ldr r1, [r7, #0x2c] + subs r0, r0, r1 + adds r1, r7, #0 + adds r1, #0x84 + ldr r1, [r1] + ldr r2, [r7, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r7, #0x15] + adds r0, r7, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + bne _08086608 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r7, #0x24] + ldrb r0, [r7, #0x1d] + subs r0, #1 + strb r0, [r7, #0x1d] + adds r2, r7, #0 + adds r2, #0x7f + movs r0, #1 + strb r0, [r2] + ldr r0, _080865EC @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080865F0 + adds r0, r7, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r0, #0x10 + adds r1, r7, #0 + adds r1, #0x76 + b _0808662A + .align 2, 0 +_080865EC: .4byte gLinkEntity +_080865F0: + adds r0, r7, #0 + adds r0, #0x7c + ldrh r1, [r0] + subs r1, #0x20 + adds r3, r7, #0 + adds r3, #0x76 + strh r1, [r3] + ldrh r0, [r0] + adds r0, #0x30 + adds r1, r7, #0 + adds r1, #0x7a + b _0808662A +_08086608: + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r7, #0x24] + movs r0, #0xf0 + strb r0, [r7, #0x1d] + adds r2, r7, #0 + adds r2, #0x7f + strb r1, [r2] + adds r1, r7, #0 + adds r1, #0x7c + ldrh r0, [r1] + adds r3, r7, #0 + adds r3, #0x76 + strh r0, [r3] + ldrh r0, [r1] + subs r1, #2 +_0808662A: + strh r0, [r1] + ldrb r1, [r7, #0x1d] + cmp r1, #0 + bne _0808663A + movs r0, #2 + strb r0, [r7, #0xc] + strb r1, [r2] + b _080866B8 +_0808663A: + movs r0, #0x24 + ldrsh r1, [r7, r0] + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + bl sub_0806F62C + ldrb r0, [r7, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r7, #0x15] + ldr r6, _080866BC @ =gUnk_080C9160 + ldrb r0, [r7, #0x15] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + bl sub_0806FA04 + adds r1, r7, #0 + adds r1, #0x80 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r4, [r1] + adds r4, r4, r0 + ldrb r0, [r7, #0x15] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_0806FA04 + adds r1, r7, #0 + adds r1, #0x84 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r2, [r1] + subs r2, r2, r0 + adds r0, r7, #0 + adds r1, r4, #0 + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + beq _080866B8 + movs r0, #1 + strb r0, [r7, #0xc] +_080866B8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080866BC: .4byte gUnk_080C9160 + + thumb_func_start sub_080866C0 +sub_080866C0: @ 0x080866C0 + push {lr} + ldr r2, _080866D4 @ =gUnk_081206B4 + ldrb r1, [r0, #0xb] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080866D4: .4byte gUnk_081206B4 + + thumb_func_start sub_080866D8 +sub_080866D8: @ 0x080866D8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldrb r1, [r6, #0xc] + cmp r1, #0 + bne _080866FE + movs r0, #1 + strb r0, [r6, #0xc] + str r1, [r6, #0x68] + ldrb r1, [r6, #0xe] + adds r0, r6, #0 + adds r0, #0x6c + strb r1, [r0] + adds r0, r6, #0 + movs r1, #6 + bl sub_0805E3A0 +_080866FE: + adds r0, r6, #0 + adds r0, #0x6c + ldrb r0, [r0] + bl sub_0804B128 + adds r5, r0, #0 + movs r0, #0 + mov r8, r0 + ldrh r0, [r5] + ldr r1, _080867C4 @ =0x0000FFFF + cmp r0, r1 + beq _080867BA + mov sb, r1 +_08086718: + movs r7, #1 + mov r1, r8 + lsls r7, r1 + ldr r0, [r6, #0x68] + ands r0, r7 + cmp r0, #0 + bne _080867A8 + ldrb r0, [r5, #5] + bl sub_080867CC + cmp r0, #0 + beq _080867A8 + ldrh r0, [r5] + ldrh r1, [r5, #2] + movs r2, #0x20 + movs r3, #0x20 + bl sub_080562CC + cmp r0, #0 + beq _080867A8 + ldrb r1, [r5, #7] + ldrb r2, [r5, #6] + movs r0, #0x19 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080867A8 + adds r0, #0x6c + mov r2, r8 + strb r2, [r0] + ldr r1, _080867C8 @ =gRoomControls + ldrh r0, [r5] + ldrh r2, [r1, #6] + adds r0, r0, r2 + adds r0, #0x10 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #2] + ldrh r1, [r1, #8] + adds r0, r0, r1 + adds r0, #0x20 + strh r0, [r4, #0x32] + str r6, [r4, #0x50] + ldrh r1, [r5] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r5, #2] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + ldrb r1, [r5, #4] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r0, [r5, #5] + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08016A04 + ldr r0, [r6, #0x68] + orrs r0, r7 + str r0, [r6, #0x68] + ldr r1, [r5, #8] + cmp r1, #0 + beq _080867A8 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_080867A8: + adds r5, #0xc + movs r0, #1 + add r8, r0 + ldrh r0, [r5] + cmp r0, sb + beq _080867BA + mov r1, r8 + cmp r1, #0x1f + bls _08086718 +_080867BA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080867C4: .4byte 0x0000FFFF +_080867C8: .4byte gRoomControls + + thumb_func_start sub_080867CC +sub_080867CC: @ 0x080867CC + push {lr} + cmp r0, #0 + beq _080867DE + cmp r0, #2 + bne _080867DE + movs r0, #0x18 + bl GetProgressFlag + b _080867E0 +_080867DE: + movs r0, #1 +_080867E0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080867E4 +sub_080867E4: @ 0x080867E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x6a + ldrh r1, [r1] + movs r2, #0x20 + movs r3, #0x20 + bl sub_080562CC + cmp r0, #0 + bne _08086814 + ldr r2, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #1 + ldrb r0, [r0] + lsls r1, r0 + ldr r0, [r2, #0x68] + bics r0, r1 + str r0, [r2, #0x68] + bl sub_0805E780 +_08086814: + adds r0, r4, #0 + bl sub_0808681C + pop {r4, pc} + + thumb_func_start sub_0808681C +sub_0808681C: @ 0x0808681C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #0 + beq _0808682C + cmp r4, #1 + beq _08086868 + b _0808688C +_0808682C: + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x18] + subs r0, #0xc + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + strb r4, [r5, #0x1e] + ldr r0, _08086864 @ =gUnk_081206AC + str r0, [r5, #0x48] + ldrb r1, [r5, #0xd] + cmp r1, #1 + bne _08086852 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r5, #0x1e] +_08086852: + ldrb r1, [r5, #0x10] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080868AA + strb r2, [r5, #0xc] + b _0808688C + .align 2, 0 +_08086864: .4byte gUnk_081206AC +_08086868: + adds r0, r5, #0 + bl sub_08086954 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808688C + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0x1e] + movs r0, #0x10 + movs r1, #0 + movs r2, #1 + bl sub_08078AC0 + ldr r0, _080868AC @ =0x00000111 + bl sub_080A3268 +_0808688C: + ldrb r1, [r5, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080868AA + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_080868EC +_080868AA: + pop {r4, r5, pc} + .align 2, 0 +_080868AC: .4byte 0x00000111 + + thumb_func_start sub_080868B0 +sub_080868B0: @ 0x080868B0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080868D2 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldr r0, _080868E8 @ =gUnk_081206AC + str r0, [r5, #0x48] + movs r0, #8 + strb r0, [r5, #0xe] +_080868D2: + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_080868EC + pop {r4, r5, pc} + .align 2, 0 +_080868E8: .4byte gUnk_081206AC + + thumb_func_start sub_080868EC +sub_080868EC: @ 0x080868EC + push {r4, r5, lr} + adds r3, r0, #0 + ldr r2, [r1, #8] + movs r0, #0 + str r0, [r1, #8] + cmp r2, #0 + beq _0808691E + movs r5, #0x80 + lsls r5, r5, #1 + movs r4, #0 + movs r1, #1 +_08086902: + mvns r0, r2 + adds r0, #1 + ands r0, r2 + eors r2, r0 + cmp r0, #0x80 + beq _08086914 + cmp r0, r5 + beq _08086918 + b _0808691A +_08086914: + strb r4, [r3, #0x1e] + b _0808691A +_08086918: + strb r1, [r3, #0x1e] +_0808691A: + cmp r2, #0 + bne _08086902 +_0808691E: + ldrb r0, [r3, #0x1e] + cmp r0, #0 + bne _0808692A + adds r0, r3, #0 + bl sub_0800445C +_0808692A: + pop {r4, r5, pc} + + thumb_func_start sub_0808692C +sub_0808692C: @ 0x0808692C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #0xfd + ands r0, r1 + strb r0, [r2, #0x10] + movs r0, #2 + strb r0, [r2, #0xb] + ldrb r0, [r2, #0x1e] + movs r1, #2 + cmp r0, #0 + bne _08086946 + movs r1, #1 +_08086946: + strb r1, [r2, #0xc] + movs r0, #0 + strb r0, [r2, #0xd] + movs r0, #8 + strb r0, [r2, #0xe] + pop {pc} + .align 2, 0 + + thumb_func_start sub_08086954 +sub_08086954: @ 0x08086954 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + cmp r0, #0 + beq _0808699C + adds r0, r4, #0 + movs r1, #6 + movs r2, #0x14 + bl sub_0806ED9C + cmp r0, #0 + blt _080869A0 + ldr r0, _08086994 @ =gLinkEntity + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _080869A0 + ldr r2, _08086998 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + bne _080869A0 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _080869A0 + ldrb r0, [r4, #0xe] + subs r0, #1 + b _0808699E + .align 2, 0 +_08086994: .4byte gLinkEntity +_08086998: .4byte gUnk_03003F80 +_0808699C: + movs r0, #8 +_0808699E: + strb r0, [r4, #0xe] +_080869A0: + ldrb r0, [r4, #0xe] + pop {r4, pc} + + thumb_func_start sub_080869A4 +sub_080869A4: @ 0x080869A4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [r5, #0x14] + adds r0, r4, #0 + bl sub_08086954 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080869C2 + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #1 + str r0, [r5, #0x14] +_080869C2: + pop {r4, r5, pc} + + thumb_func_start sub_080869C4 +sub_080869C4: @ 0x080869C4 + push {lr} + ldr r2, _080869D8 @ =gUnk_081206C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080869D8: .4byte gUnk_081206C4 + + thumb_func_start sub_080869DC +sub_080869DC: @ 0x080869DC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _08086A24 @ =gUnk_080FD1A8 + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xa] + movs r0, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08086A20 + movs r0, #0xa + strb r0, [r1, #0xe] + str r4, [r1, #0x50] + str r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_08086A6C +_08086A20: + pop {r4, pc} + .align 2, 0 +_08086A24: .4byte gUnk_080FD1A8 + + thumb_func_start sub_08086A28 +sub_08086A28: @ 0x08086A28 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08086A3A + movs r0, #2 + strb r0, [r4, #0xc] + b _08086A5A +_08086A3A: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _08086A4C + movs r0, #2 + strb r0, [r4, #0xc] +_08086A4C: + adds r0, r4, #0 + bl sub_080AEF88 + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 +_08086A5A: + pop {r4, pc} + + thumb_func_start sub_08086A5C +sub_08086A5C: @ 0x08086A5C + push {lr} + ldr r1, [r0, #0x54] + movs r0, #0 + str r0, [r1, #0x50] + bl sub_0805E780 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08086A6C +sub_08086A6C: @ 0x08086A6C + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0xa0 + lsls r1, r1, #0xa + str r1, [r4, #0x20] + lsrs r1, r0, #0x10 + movs r2, #0x1f + ands r1, r2 + strb r1, [r4, #0x15] + movs r2, #0xf0 + lsls r2, r2, #1 + adds r1, r2, #0 + ands r0, r1 + strh r0, [r4, #0x24] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086A90 +sub_08086A90: @ 0x08086A90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08086AA4 + ldrb r0, [r4, #0xa] + movs r1, #0xb + bl __modsi3 + strb r0, [r4, #0xb] +_08086AA4: + ldr r0, _08086AB8 @ =gUnk_081206D0 + ldrb r1, [r4, #0xb] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08086AB8: .4byte gUnk_081206D0 + + thumb_func_start sub_08086ABC +sub_08086ABC: @ 0x08086ABC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08086AE4 @ =gUnk_081206FC + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r3, _08086AE8 @ =gLinkEntity + movs r1, #0x32 + ldrsh r0, [r3, r1] + ldr r2, _08086AEC @ =gRoomControls + ldrh r1, [r2, #8] + subs r0, r0, r1 + cmp r0, #0xa7 + bgt _08086AF0 + str r4, [r2, #0x30] + b _08086AF2 + .align 2, 0 +_08086AE4: .4byte gUnk_081206FC +_08086AE8: .4byte gLinkEntity +_08086AEC: .4byte gRoomControls +_08086AF0: + str r3, [r2, #0x30] +_08086AF2: + movs r0, #2 + strb r0, [r2, #0xe] + pop {r4, pc} + + thumb_func_start sub_08086AF8 +sub_08086AF8: @ 0x08086AF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + movs r0, #0 + strb r0, [r4, #0xe] + adds r4, #0x84 + movs r0, #0x91 + lsls r0, r0, #1 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086B10 +sub_08086B10: @ 0x08086B10 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _08086B9A + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + beq _08086B2C + subs r0, #1 + strh r0, [r1] +_08086B2C: + ldrh r1, [r1] + cmp r1, #0x96 + beq _08086B62 + cmp r1, #0x96 + bgt _08086B40 + cmp r1, #0 + beq _08086B5C + cmp r1, #0x82 + beq _08086B62 + b _08086B9A +_08086B40: + cmp r1, #0xd2 + beq _08086B62 + cmp r1, #0xd2 + bgt _08086B4E + cmp r1, #0xaa + beq _08086B62 + b _08086B9A +_08086B4E: + ldr r0, _08086B58 @ =0x00000121 + cmp r1, r0 + beq _08086B62 + b _08086B9A + .align 2, 0 +_08086B58: .4byte 0x00000121 +_08086B5C: + movs r0, #2 + strb r0, [r4, #0xc] + b _08086B9A +_08086B62: + adds r0, r4, #0 + movs r1, #6 + movs r2, #0 + bl sub_080873AC + adds r5, r0, #0 + cmp r5, #0 + beq _08086B9A + ldr r3, _08086B9C @ =gUnk_08120714 + ldrb r1, [r4, #0xe] + lsls r0, r1, #1 + adds r0, r0, r3 + movs r6, #0 + ldrsh r2, [r0, r6] + lsls r2, r2, #0x10 + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r3 + movs r0, #0 + ldrsh r3, [r1, r0] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative + ldrb r0, [r4, #0xe] + adds r0, #2 + strb r0, [r4, #0xe] +_08086B9A: + pop {r4, r5, r6, pc} + .align 2, 0 +_08086B9C: .4byte gUnk_08120714 + + thumb_func_start sub_08086BA0 +sub_08086BA0: @ 0x08086BA0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #7 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086BC2 + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #3 + strb r0, [r4, #0xc] +_08086BC2: + pop {r4, pc} + + thumb_func_start sub_08086BC4 +sub_08086BC4: @ 0x08086BC4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08086C10 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08086C0C + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086C0C + adds r0, r4, #0 + bl sub_0806FA24 + movs r0, #6 + movs r1, #4 + bl sub_08050054 + ldr r0, _08086C14 @ =0x00000145 + bl sub_080A3268 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x40 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08086C0C: + pop {r4, pc} + .align 2, 0 +_08086C10: .4byte gUnk_02034350 +_08086C14: .4byte 0x00000145 + + thumb_func_start sub_08086C18 +sub_08086C18: @ 0x08086C18 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08086C2E + subs r0, #1 + strb r0, [r4, #0xe] + b _08086C52 +_08086C2E: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086C52 + ldr r3, _08086C54 @ =0xFFEC0000 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] +_08086C52: + pop {r4, r5, pc} + .align 2, 0 +_08086C54: .4byte 0xFFEC0000 + + thumb_func_start sub_08086C58 +sub_08086C58: @ 0x08086C58 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08086C68 + subs r0, #1 + strb r0, [r4, #0xe] + b _08086C90 +_08086C68: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08086C90 + adds r0, r4, #0 + movs r1, #9 + movs r2, #0 + bl sub_080873AC + adds r5, r0, #0 + cmp r5, #0 + beq _08086C90 + ldr r3, _08086C98 @ =0xFFB40000 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + str r4, [r5, #0x50] + movs r0, #1 + strb r0, [r4, #0xf] +_08086C90: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_08086C98: .4byte 0xFFB40000 + + thumb_func_start sub_08086C9C +sub_08086C9C: @ 0x08086C9C + push {lr} + ldr r2, _08086CB0 @ =gUnk_08120728 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086CB0: .4byte gUnk_08120728 + + thumb_func_start sub_08086CB4 +sub_08086CB4: @ 0x08086CB4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r1, _08086D10 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + ldr r0, _08086D14 @ =0x00000809 + strh r0, [r1] + movs r1, #0x80 + lsls r1, r1, #3 + strh r1, [r4, #0x24] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_08086D10: .4byte gLCDControls +_08086D14: .4byte 0x00000809 + + thumb_func_start sub_08086D18 +sub_08086D18: @ 0x08086D18 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x24] + subs r0, #0x20 + strh r0, [r3, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x80 + lsls r2, r2, #1 + cmp r0, r2 + bne _08086D58 + movs r0, #2 + strb r0, [r3, #0xc] + adds r0, r3, #0 + bl sub_0805EC60 + ldr r2, _08086D50 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #0x20 + orrs r0, r1 + str r0, [r2, #0x68] + ldr r2, _08086D54 @ =gUnk_02033280 + ldr r0, [r2] + movs r1, #4 + orrs r0, r1 + str r0, [r2] + b _08086D64 + .align 2, 0 +_08086D50: .4byte gUnk_02034350 +_08086D54: .4byte gUnk_02033280 +_08086D58: + movs r0, #0x24 + ldrsh r1, [r3, r0] + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_08086D64: + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_116 +nullsub_116: @ 0x08086D68 + bx lr + .align 2, 0 + + thumb_func_start sub_08086D6C +sub_08086D6C: @ 0x08086D6C + push {lr} + ldr r2, _08086D80 @ =gUnk_08120734 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086D80: .4byte gUnk_08120734 + + thumb_func_start sub_08086D84 +sub_08086D84: @ 0x08086D84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08086DAC +sub_08086DAC: @ 0x08086DAC + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_08086DB4 +sub_08086DB4: @ 0x08086DB4 + push {lr} + ldr r2, _08086DC8 @ =gUnk_0812073C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086DC8: .4byte gUnk_0812073C + + thumb_func_start sub_08086DCC +sub_08086DCC: @ 0x08086DCC + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #4 + movs r2, #0 + bl sub_080873AC + adds r4, r0, #0 + cmp r4, #0 + beq _08086E00 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r5, [r4, #0x50] + adds r0, r5, #0 + bl sub_08087380 + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #0 + strb r0, [r5, #0xf] +_08086E00: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08086E04 +sub_08086E04: @ 0x08086E04 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x34] + ldr r1, _08086E2C @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x14 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08086E34 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, _08086E30 @ =0x00000141 + bl sub_080A3268 + b _08086E62 + .align 2, 0 +_08086E2C: .4byte 0xFFFF8000 +_08086E30: .4byte 0x00000141 +_08086E34: + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + bne _08086E62 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08086E62 + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086E62 + movs r3, #0x80 + lsls r3, r3, #0xb + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #1 + strb r0, [r4, #0xf] +_08086E62: + pop {r4, pc} + + thumb_func_start sub_08086E64 +sub_08086E64: @ 0x08086E64 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080873D0 + ldr r0, _08086E88 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08086E84 + adds r0, r4, #0 + bl sub_0805E7BC +_08086E84: + pop {r4, pc} + .align 2, 0 +_08086E88: .4byte gUnk_02034350 + + thumb_func_start sub_08086E8C +sub_08086E8C: @ 0x08086E8C + push {lr} + ldr r2, _08086EA0 @ =gUnk_08120748 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086EA0: .4byte gUnk_08120748 + + thumb_func_start sub_08086EA4 +sub_08086EA4: @ 0x08086EA4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086ED0 +sub_08086ED0: @ 0x08086ED0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x14 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08086F0C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_08086F0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086F10 +sub_08086F10: @ 0x08086F10 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08086F3C + ldr r2, _08086F38 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x68] + movs r0, #3 + strb r0, [r3, #0xc] + adds r0, r3, #0 + bl sub_0805EC60 + b _08086F52 + .align 2, 0 +_08086F38: .4byte gUnk_02034350 +_08086F3C: + ldrh r2, [r3, #0x24] + subs r2, #0x18 + strh r2, [r3, #0x24] + movs r1, #0x80 + lsls r1, r1, #1 + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_08086F52: + pop {pc} + + thumb_func_start sub_08086F54 +sub_08086F54: @ 0x08086F54 + push {lr} + ldr r2, _08086F68 @ =gUnk_08120758 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086F68: .4byte gUnk_08120758 + + thumb_func_start sub_08086F6C +sub_08086F6C: @ 0x08086F6C + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0 + strh r0, [r4, #0x36] + adds r4, #0x29 + ldrb r1, [r4] + subs r0, #8 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4] + movs r0, #0xa0 + lsls r0, r0, #1 + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086FA0 +sub_08086FA0: @ 0x08086FA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08086FBC + adds r0, r4, #0 + bl sub_0805E7BC +_08086FBC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086FC0 +sub_08086FC0: @ 0x08086FC0 + push {lr} + ldr r2, _08086FD4 @ =gUnk_08120760 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086FD4: .4byte gUnk_08120760 + + thumb_func_start sub_08086FD8 +sub_08086FD8: @ 0x08086FD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08087000 +sub_08087000: @ 0x08087000 + push {lr} + adds r2, r0, #0 + ldr r0, _08087018 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0808701C + adds r0, r2, #0 + bl sub_0805E7BC + b _08087022 + .align 2, 0 +_08087018: .4byte gUnk_02034350 +_0808701C: + adds r0, r2, #0 + bl sub_08004274 +_08087022: + pop {pc} + + thumb_func_start sub_08087024 +sub_08087024: @ 0x08087024 + push {lr} + ldr r2, _08087038 @ =gUnk_08120768 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08087038: .4byte gUnk_08120768 + + thumb_func_start sub_0808703C +sub_0808703C: @ 0x0808703C + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x7c + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4] + movs r0, #0xf9 + bl sub_080A3268 + pop {r4, pc} + + thumb_func_start sub_0808706C +sub_0808706C: @ 0x0808706C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08087080 + subs r0, #1 + strb r0, [r4, #0xe] + b _080870AA +_08087080: + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _080870AA + ldr r3, _080870AC @ =0xFFF80000 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + ldr r2, _080870B0 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x68] + adds r0, r4, #0 + bl sub_0805E7BC +_080870AA: + pop {r4, pc} + .align 2, 0 +_080870AC: .4byte 0xFFF80000 +_080870B0: .4byte gUnk_02034350 + + thumb_func_start sub_080870B4 +sub_080870B4: @ 0x080870B4 + push {lr} + ldr r2, _080870C8 @ =gUnk_08120770 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080870C8: .4byte gUnk_08120770 + + thumb_func_start sub_080870CC +sub_080870CC: @ 0x080870CC + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_080870F4 +sub_080870F4: @ 0x080870F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087110 + adds r0, r4, #0 + bl sub_0805E7BC +_08087110: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08087114 +sub_08087114: @ 0x08087114 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08087134 + ldr r0, _08087130 @ =gUnk_08120778 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0808714A + .align 2, 0 +_08087130: .4byte gUnk_08120778 +_08087134: + ldr r0, _0808714C @ =gUnk_08120788 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 +_0808714A: + pop {r4, pc} + .align 2, 0 +_0808714C: .4byte gUnk_08120788 + + thumb_func_start sub_08087150 +sub_08087150: @ 0x08087150 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + strb r1, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x80 + strh r0, [r4, #0x24] + movs r0, #0x10 + strb r0, [r4, #0x15] + ldr r0, _080871A0 @ =gUnk_0812079C + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + lsls r0, r0, #4 + orrs r0, r1 + strb r0, [r4, #0x1a] + pop {r4, pc} + .align 2, 0 +_080871A0: .4byte gUnk_0812079C + + thumb_func_start nullsub_516 +nullsub_516: @ 0x080871A4 + bx lr + .align 2, 0 + + thumb_func_start sub_080871A8 +sub_080871A8: @ 0x080871A8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080871CA + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #0x3c + strb r0, [r1, #0xe] + ldr r2, _080871CC @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #4 + orrs r0, r1 + str r0, [r2, #0x68] +_080871CA: + pop {pc} + .align 2, 0 +_080871CC: .4byte gUnk_02034350 + + thumb_func_start sub_080871D0 +sub_080871D0: @ 0x080871D0 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080871F0 + ldr r0, _080871F4 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #8 + orrs r1, r2 + str r1, [r0, #0x68] + adds r0, r3, #0 + bl sub_0805E7BC +_080871F0: + pop {pc} + .align 2, 0 +_080871F4: .4byte gUnk_02034350 + + thumb_func_start sub_080871F8 +sub_080871F8: @ 0x080871F8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x54] + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _0808721E + movs r5, #0x32 + ldrsh r0, [r3, r5] + subs r0, #0x20 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _0808721E + movs r0, #2 + strb r0, [r4, #0xc] + b _0808723C +_0808721E: + movs r5, #0x2e + ldrsh r0, [r4, r5] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r3, r5] + subs r3, #0x20 + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_0808723C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08087240 +sub_08087240: @ 0x08087240 + push {lr} + adds r2, r0, #0 + ldr r0, _08087260 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0808725C + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x14 + strb r0, [r2, #0xe] + movs r0, #0x10 + strb r0, [r2, #0x15] +_0808725C: + pop {pc} + .align 2, 0 +_08087260: .4byte gUnk_02034350 + + thumb_func_start sub_08087264 +sub_08087264: @ 0x08087264 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _08087278 + subs r0, #1 + strb r0, [r1, #0xe] + adds r0, r1, #0 + bl sub_0806F69C +_08087278: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808727C +sub_0808727C: @ 0x0808727C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08087292 + adds r0, r1, #0 + bl sub_0805E7BC +_08087292: + pop {pc} + + thumb_func_start sub_08087294 +sub_08087294: @ 0x08087294 + push {lr} + ldr r2, _080872A8 @ =gUnk_081207A4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080872A8: .4byte gUnk_081207A4 + + thumb_func_start sub_080872AC +sub_080872AC: @ 0x080872AC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x1b] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r2, r0 + strb r2, [r4, #0x19] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08087380 + pop {r4, pc} + + thumb_func_start sub_080872F8 +sub_080872F8: @ 0x080872F8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x68 + ldrh r0, [r2] + ldrh r1, [r4, #0x2e] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + bhi _0808732A + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + ldrh r1, [r4, #0x32] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + bls _0808735C +_0808732A: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r4, r3] + movs r5, #0 + ldrsh r2, [r2, r5] + adds r3, r4, #0 + adds r3, #0x6a + movs r5, #0 + ldrsh r3, [r3, r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + bl sub_08000E50 + ldr r2, _08087378 @ =gUnk_081207AC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_0808735C: + ldr r1, _0808737C @ =gUnk_080C9160 + ldrb r0, [r4, #0xe] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + asrs r0, r0, #6 + subs r0, #8 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + pop {r4, r5, pc} + .align 2, 0 +_08087378: .4byte gUnk_081207AC +_0808737C: .4byte gUnk_080C9160 + + thumb_func_start sub_08087380 +sub_08087380: @ 0x08087380 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + movs r1, #0xb + bl __modsi3 + strb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + pop {r4, pc} + + thumb_func_start sub_080873AC +sub_080873AC: @ 0x080873AC + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r6, r2, #0 + ldrb r0, [r0, #0xa] + movs r4, #0xb + movs r1, #0xb + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + muls r1, r4, r1 + adds r1, r1, r5 + movs r0, #0x1b + adds r2, r6, #0 + bl CreateObject + pop {r4, r5, r6, pc} + + thumb_func_start sub_080873D0 +sub_080873D0: @ 0x080873D0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080873DE + subs r0, #1 + b _080873F6 +_080873DE: + adds r0, r4, #0 + movs r1, #8 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _080873F8 + adds r0, r4, #0 + bl sub_0806FA24 + movs r0, #0x30 +_080873F6: + strb r0, [r4, #0xe] +_080873F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080873FC +sub_080873FC: @ 0x080873FC + push {lr} + movs r0, #0xf7 + bl sub_080A3268 + ldr r1, _0808740C @ =gRoomControls + movs r0, #0 + str r0, [r1, #0x30] + b _08087414 + .align 2, 0 +_0808740C: .4byte gRoomControls +_08087410: + bl sub_0805E7BC +_08087414: + movs r0, #6 + movs r1, #0x1b + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + bne _08087410 + pop {pc} + + thumb_func_start sub_08087424 +sub_08087424: @ 0x08087424 + push {r4, r5, lr} + adds r5, r1, #0 + bl sub_080791D0 + movs r0, #0x64 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0808744E + ldr r0, _0808745C @ =gLinkEntity + str r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0808744E: + ldr r1, [r5, #4] + cmp r1, #0 + beq _08087460 + cmp r1, #1 + beq _0808746C + b _08087474 + .align 2, 0 +_0808745C: .4byte gLinkEntity +_08087460: + ldr r0, _08087468 @ =gUnk_02002A40 + adds r0, #0xad + b _08087472 + .align 2, 0 +_08087468: .4byte gUnk_02002A40 +_0808746C: + ldr r0, _08087478 @ =gUnk_02002A40 + adds r0, #0xac + movs r1, #0 +_08087472: + strb r1, [r0] +_08087474: + pop {r4, r5, pc} + .align 2, 0 +_08087478: .4byte gUnk_02002A40 + + thumb_func_start sub_0808747C +sub_0808747C: @ 0x0808747C + push {r4, lr} + sub sp, #4 + adds r4, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0xf + movs r2, #6 + movs r3, #0xb + bl sub_0805EB2C + cmp r0, #0 + beq _08087498 + movs r0, #1 +_08087498: + str r0, [r4, #0x14] + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080874A0 +sub_080874A0: @ 0x080874A0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080874AE + movs r0, #1 + strb r0, [r4, #0xc] +_080874AE: + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r4, #0 + adds r1, #0x82 + movs r2, #0 + ldrsh r1, [r1, r2] + movs r2, #0x10 + movs r3, #0x10 + bl sub_0800290E + cmp r0, #0 + bne _080874DC + ldr r2, [r4, #0x50] + movs r1, #1 + ldrb r4, [r4, #0xb] + lsls r1, r4 + ldr r0, [r2, #0x20] + bics r0, r1 + str r0, [r2, #0x20] + bl sub_0805E780 +_080874DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080874E0 +sub_080874E0: @ 0x080874E0 + push {lr} + ldr r2, _080874F4 @ =gUnk_081208A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080874F4: .4byte gUnk_081208A0 + + thumb_func_start sub_080874F8 +sub_080874F8: @ 0x080874F8 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start nullsub_117 +nullsub_117: @ 0x08087500 + bx lr + .align 2, 0 + + thumb_func_start sub_08087504 +sub_08087504: @ 0x08087504 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08087520 + ldr r0, _08087524 @ =gUnk_081208B8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08087520: + pop {r4, pc} + .align 2, 0 +_08087524: .4byte gUnk_081208B8 + + thumb_func_start sub_08087528 +sub_08087528: @ 0x08087528 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08087590 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x1b] + lsrs r0, r1, #6 + subs r0, #1 + lsls r0, r0, #6 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x1b] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087594 + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0x14] + cmp r0, #1 + bne _08087588 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_08087588: + adds r0, r4, #0 + bl sub_08087640 + b _080875DC + .align 2, 0 +_08087590: .4byte gLinkEntity +_08087594: + ldr r0, _080875B4 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + movs r1, #4 + cmp r0, #0x10 + bne _080875A2 + movs r1, #0xb5 + lsls r1, r1, #1 +_080875A2: + adds r0, r4, #0 + bl sub_0801D2B4 + ldrb r0, [r4, #0x14] + cmp r0, #1 + beq _080875B8 + cmp r0, #3 + bne _080875CE + b _080875C0 + .align 2, 0 +_080875B4: .4byte gUnk_02033A90 +_080875B8: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080875C0: + ldrb r0, [r4, #0xa] + cmp r0, #0x40 + bne _080875DC + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + b _080875DC +_080875CE: + ldrb r0, [r4, #0xa] + cmp r0, #0x40 + bne _080875DC + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080875DC: + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r1, [r4, #0xb] + lsls r1, r1, #2 + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_080875F4 +sub_080875F4: @ 0x080875F4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808760E + bl sub_0805E780 +_0808760E: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087638 + ldr r0, _0808763C @ =gLinkEntity + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + ldrb r0, [r5] + subs r0, #1 + subs r1, r1, r0 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08087638: + pop {r4, r5, pc} + .align 2, 0 +_0808763C: .4byte gLinkEntity + + thumb_func_start sub_08087640 +sub_08087640: @ 0x08087640 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + ldrb r1, [r4, #0x14] + lsls r1, r1, #1 + ldr r0, _08087684 @ =gUnk_081208C0 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r0, _08087688 @ =gRoomControls + ldrh r1, [r0, #4] + ldr r0, _0808768C @ =0x00000403 + movs r2, #0x16 + cmp r1, r0 + bne _08087676 + movs r2, #0x17 +_08087676: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805457C + strh r5, [r4, #0x2e] + strh r6, [r4, #0x32] + pop {r4, r5, r6, pc} + .align 2, 0 +_08087684: .4byte gUnk_081208C0 +_08087688: .4byte gRoomControls +_0808768C: .4byte 0x00000403 + + thumb_func_start sub_08087690 +sub_08087690: @ 0x08087690 + push {lr} + ldr r2, _080876A4 @ =gUnk_08120A0C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080876A4: .4byte gUnk_08120A0C + + thumb_func_start sub_080876A8 +sub_080876A8: @ 0x080876A8 + push {lr} + mov ip, r0 + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xc] + movs r0, #0xb0 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + ldrb r2, [r1, #0x14] + lsls r0, r2, #2 + movs r1, #0x10 + eors r0, r1 + mov r3, ip + strb r0, [r3, #0x15] + lsls r2, r2, #0x18 + cmp r2, #0 + bne _080876E2 + adds r3, #0x29 + ldrb r2, [r3] + lsls r1, r2, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + movs r0, #7 + ands r1, r0 + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080876E2: + ldr r1, _08087760 @ =gUnk_08120A20 + mov r2, ip + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrb r0, [r2, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r3, _08087764 @ =gUnk_08120A18 + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #3] + mov r0, ip + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r2, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r2, ip + strb r0, [r2, #0x1a] + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #2] + str r0, [r2, #0x6c] + ldr r0, _08087768 @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + mov r0, ip + adds r0, #0x38 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + mov r0, ip + bl sub_08004260 + pop {pc} + .align 2, 0 +_08087760: .4byte gUnk_08120A20 +_08087764: .4byte gUnk_08120A18 +_08087768: .4byte gLinkEntity + + thumb_func_start sub_0808776C +sub_0808776C: @ 0x0808776C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x6c] + cmp r0, #0 + beq _08087788 + subs r0, #1 + str r0, [r4, #0x6c] + ldr r0, _08087784 @ =gUnk_03003F80 + adds r0, #0x3d + ldrb r0, [r0] + b _08087798 + .align 2, 0 +_08087784: .4byte gUnk_03003F80 +_08087788: + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 +_08087798: + cmp r0, #0 + bne _080877A0 + movs r0, #2 + strb r0, [r4, #0xc] +_080877A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080877A4 +sub_080877A4: @ 0x080877A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080002D0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #0x25 + beq _080877D0 + cmp r0, #0x25 + bgt _080877C4 + cmp r0, #0x21 + beq _080877CA + cmp r0, #0x24 + beq _080877D6 + b _080877E2 +_080877C4: + cmp r1, #0x30 + beq _080877D6 + b _080877E2 +_080877CA: + adds r0, r4, #0 + movs r1, #0 + b _080877DA +_080877D0: + adds r0, r4, #0 + movs r1, #0xc + b _080877DA +_080877D6: + adds r0, r4, #0 + movs r1, #0xb +_080877DA: + movs r2, #0 + bl CreateFX + b _08087804 +_080877E2: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087804 + cmp r0, #0xf + bne _080877F8 + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + movs r2, #0x80 + bl CreateFX + b _08087804 +_080877F8: + ldrb r1, [r4, #0xb] + ldrb r2, [r4, #0xe] + adds r0, r4, #0 + movs r3, #0 + bl sub_080A2988 +_08087804: + bl sub_0805E780 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808780C +sub_0808780C: @ 0x0808780C + push {lr} + ldr r2, _08087820 @ =gUnk_08120A28 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08087820: .4byte gUnk_08120A28 + + thumb_func_start sub_08087824 +sub_08087824: @ 0x08087824 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08087836 + adds r0, r4, #0 + bl sub_08016A30 +_08087836: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #0x13 + strb r0, [r1] + adds r1, #9 + movs r0, #0xff + strb r0, [r1] + subs r1, #6 + movs r0, #0xa9 + strb r0, [r1] + adds r1, #1 + movs r0, #0x16 + strb r0, [r1] + ldr r0, _08087884 @ =gUnk_08120A54 + ldr r0, [r0] + str r0, [r4, #0x48] + subs r1, #5 + movs r0, #0x8b + strb r0, [r1] + adds r0, r4, #0 + bl sub_080878CC + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0801766C + movs r0, #0xfd + bl sub_08004488 + pop {r4, pc} + .align 2, 0 +_08087884: .4byte gUnk_08120A54 + + thumb_func_start sub_08087888 +sub_08087888: @ 0x08087888 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080878A4 + bl sub_0805E780 + b _080878C8 +_080878A4: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080878C0 + ldr r0, _080878BC @ =gUnk_08120A54 + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r4, #0x48] + b _080878C8 + .align 2, 0 +_080878BC: .4byte gUnk_08120A54 +_080878C0: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080878C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080878CC +sub_080878CC: @ 0x080878CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r7, r0, #0 + movs r1, #0x2e + ldrsh r0, [r7, r1] + str r0, [sp] + movs r0, #0x32 + ldrsh r2, [r7, r0] + str r2, [sp, #4] + adds r0, r7, #0 + adds r0, #0x38 + ldrb r0, [r0] + mov r8, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + mov r1, r8 + lsls r1, r1, #0x18 + str r1, [sp, #8] +_080878F8: + movs r2, #0x10 + rsbs r2, r2, #0 + mov sb, r2 + ldr r1, [sp] + adds r1, r1, r0 + mov sl, r1 + adds r0, #0x10 + str r0, [sp, #0xc] + mov r6, sl +_0808790A: + ldr r2, _0808795C @ =gRoomControls + ldrh r0, [r2, #6] + subs r0, r6, r0 + lsrs r4, r0, #4 + movs r0, #0x3f + ands r4, r0 + ldr r5, [sp, #4] + add r5, sb + ldrh r0, [r2, #8] + subs r0, r5, r0 + lsrs r0, r0, #4 + movs r1, #0x3f + ands r0, r1 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r4, #0 + ldr r2, [sp, #8] + lsrs r1, r2, #0x18 + bl sub_080002C8 + cmp r0, #0x2e + bne _08087970 + adds r0, r4, #0 + mov r1, r8 + bl sub_080002B0 + adds r1, r0, #0 + movs r0, #0xda + lsls r0, r0, #2 + cmp r1, r0 + bhi _08087960 + subs r0, #1 + cmp r1, r0 + blo _08087960 + adds r0, r7, #0 + movs r1, #3 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08008796 + b _0808797C + .align 2, 0 +_0808795C: .4byte gRoomControls +_08087960: + ldr r0, _0808796C @ =0x00004022 + adds r1, r4, #0 + mov r2, r8 + bl sub_0800015E + b _0808797C + .align 2, 0 +_0808796C: .4byte 0x00004022 +_08087970: + adds r0, r7, #0 + movs r1, #3 + mov r2, sl + adds r3, r5, #0 + bl sub_08008796 +_0808797C: + movs r0, #0x10 + add sb, r0 + mov r1, sb + cmp r1, #0x10 + ble _0808790A + ldr r0, [sp, #0xc] + cmp r0, #0x10 + ble _080878F8 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08087998 +sub_08087998: @ 0x08087998 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080879C0 @ =gUnk_08120A68 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080879C4 + subs r0, #1 + strb r0, [r4, #0xe] + b _080879EA + .align 2, 0 +_080879C0: .4byte gUnk_08120A68 +_080879C4: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xa + bne _080879D8 + adds r0, r4, #0 + movs r1, #0xd + bl sub_08004260 + b _080879EA +_080879D8: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080879EA + bl sub_0805E780 +_080879EA: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08087A0C + adds r0, r4, #0 + bl sub_0806F69C + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0x10 + ble _08087A08 + adds r0, r1, #0 + subs r0, #0x10 + b _08087A0A +_08087A08: + movs r0, #0 +_08087A0A: + strh r0, [r4, #0x24] +_08087A0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08087A10 +sub_08087A10: @ 0x08087A10 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087A26 + adds r0, r4, #0 + movs r1, #3 + bl sub_0801D2B4 +_08087A26: + ldrb r0, [r4, #0xa] + cmp r0, #2 + bls _08087A3C + ldr r0, _08087A4C @ =gUnk_08120A78 + ldrb r1, [r4, #0xa] + subs r1, #3 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_0801D2B4 +_08087A3C: + ldrb r0, [r4, #0xa] + cmp r0, #4 + bhi _08087AF0 + lsls r0, r0, #2 + ldr r1, _08087A50 @ =_08087A54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08087A4C: .4byte gUnk_08120A78 +_08087A50: .4byte _08087A54 +_08087A54: @ jump table + .4byte _08087A76 @ case 0 + .4byte _08087AF0 @ case 1 + .4byte _08087AA0 @ case 2 + .4byte _08087A76 @ case 3 + .4byte _08087A68 @ case 4 +_08087A68: + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_08087A76: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + subs r1, #9 + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0xaa + strb r0, [r1] + subs r1, #4 + movs r0, #0xe + strb r0, [r1] + ldr r0, _08087AE4 @ =gUnk_08120A8C + str r0, [r4, #0x48] + strb r2, [r4, #0x1c] +_08087AA0: + bl sub_08000E50 + ldr r2, _08087AE8 @ =gUnk_08120A7A + movs r3, #3 + adds r1, r0, #0 + ands r1, r3 + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r4, #0xe] + lsrs r2, r0, #8 + ands r2, r3 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _08087AC0 + rsbs r2, r2, #0 +_08087AC0: + ldrh r0, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldr r0, _08087AEC @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _08087AF8 + .align 2, 0 +_08087AE4: .4byte gUnk_08120A8C +_08087AE8: .4byte gUnk_08120A7A +_08087AEC: .4byte gLinkEntity +_08087AF0: + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 +_08087AF8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08087AFC +sub_08087AFC: @ 0x08087AFC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087B56 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x16 + beq _08087B3C + cmp r0, #0x16 + bgt _08087B1E + cmp r0, #0x13 + beq _08087B4E + b _08087B56 +_08087B1E: + cmp r0, #0x1c + bgt _08087B56 + cmp r0, #0x1b + blt _08087B56 + ldr r1, [r4, #0x4c] + adds r0, r1, #0 + adds r0, #0x84 + ldr r0, [r0] + adds r1, #0x80 + ldr r1, [r1] + ldr r2, [r4, #0x2c] + ldr r3, [r4, #0x30] + bl sub_080045D4 + b _08087B44 +_08087B3C: + ldr r0, [r4, #0x4c] + adds r1, r4, #0 + bl sub_080045C4 +_08087B44: + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _08087B56 +_08087B4E: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08087B56: + pop {r4, pc} + + thumb_func_start sub_08087B58 +sub_08087B58: @ 0x08087B58 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087B80 + ldr r0, _08087B7C @ =gUnk_08120A80 + ldrb r1, [r2, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08087B84 + .align 2, 0 +_08087B7C: .4byte gUnk_08120A80 +_08087B80: + movs r0, #1 + strb r0, [r2, #0xc] +_08087B84: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08087B88 +sub_08087B88: @ 0x08087B88 + adds r2, r0, #0 + adds r2, #0x46 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r2] + movs r1, #1 + strb r1, [r0, #0xd] + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08087B9C +sub_08087B9C: @ 0x08087B9C + push {lr} + bl sub_0806F3E4 + cmp r0, #0 + beq _08087BAA + bl sub_0805E780 +_08087BAA: + pop {pc} + + thumb_func_start sub_08087BAC +sub_08087BAC: @ 0x08087BAC + push {lr} + ldr r2, _08087BC0 @ =gUnk_08120A94 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08087BC0: .4byte gUnk_08120A94 + + thumb_func_start sub_08087BC4 +sub_08087BC4: @ 0x08087BC4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + adds r0, #1 + movs r5, #0 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _08087C04 + cmp r0, #1 + bgt _08087BE0 + cmp r0, #0 + beq _08087BEA + b _08087CA6 +_08087BE0: + cmp r0, #2 + beq _08087C64 + cmp r0, #3 + beq _08087C7C + b _08087CA6 +_08087BEA: + movs r0, #0x5e + bl sub_0807CBD0 + cmp r0, #0 + beq _08087C16 + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080787B4 + b _08087C1C +_08087C04: + movs r0, #0x22 + movs r1, #3 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _08087C16 + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_08087C16: + adds r0, r4, #0 + adds r0, #0x7a + strb r5, [r0] +_08087C1C: + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08087C60 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08087F58 + b _08087CA6 + .align 2, 0 +_08087C60: .4byte gRoomControls +_08087C64: + adds r0, r4, #0 + adds r0, #0x7a + strb r5, [r0] + adds r0, r4, #0 + movs r1, #7 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08087CA6 +_08087C7C: + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7a + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0808804C + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 +_08087CA6: + pop {r4, r5, pc} + + thumb_func_start sub_08087CA8 +sub_08087CA8: @ 0x08087CA8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #1 + beq _08087CCA + cmp r0, #1 + bgt _08087D02 + cmp r0, #0 + bne _08087D02 + movs r0, #1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_080787B4 + b _08087D1A +_08087CCA: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08087D1A + movs r0, #0 + strb r0, [r1] + bl sub_080791D0 + movs r0, #0x5e + bl sub_0807CBD0 + cmp r0, #0 + beq _08087CFA + movs r0, #2 + strb r0, [r5] + bl sub_0807CD10 + movs r0, #7 + movs r1, #0xff + bl sub_080A7138 + b _08087D1A +_08087CFA: + movs r0, #5 + bl sub_0807CD10 + b _08087D1A +_08087D02: + movs r0, #2 + bl sub_0807CC3C + cmp r0, #0 + bne _08087D1A + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080787B4 +_08087D1A: + pop {r4, r5, pc} + + thumb_func_start sub_08087D1C +sub_08087D1C: @ 0x08087D1C + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x7a + ldrb r0, [r4] + cmp r0, #1 + beq _08087D60 + cmp r0, #1 + bgt _08087D34 + cmp r0, #0 + beq _08087D3A + b _08087DB0 +_08087D34: + cmp r0, #2 + beq _08087D5A + b _08087DB0 +_08087D3A: + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _08087DB0 + movs r0, #0x5e + bl sub_0807CBD0 + cmp r0, #0 + beq _08087D54 + movs r0, #1 + strb r0, [r4] + b _08087DB0 +_08087D54: + movs r0, #2 + strb r0, [r4] + b _08087DB0 +_08087D5A: + movs r0, #0x5e + bl sub_0807CCB4 +_08087D60: + adds r1, r5, #0 + adds r1, #0x7a + movs r0, #0 + strb r0, [r1] + ldr r0, [r5, #0x54] + bl sub_08088328 + movs r0, #0 + bl sub_0807CD8C + movs r0, #0x22 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08087DAA + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x7d + ldrb r0, [r0] + strb r0, [r4, #0xf] + ldr r1, _08087DB4 @ =gUnk_080FC3E4 + ldrb r0, [r4, #0xf] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #7] + strb r0, [r4, #0xb] + movs r2, #0x80 + lsls r2, r2, #0xc + movs r3, #0xe0 + lsls r3, r3, #0xb + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative +_08087DAA: + ldr r0, _08087DB8 @ =0x00000111 + bl sub_08004488 +_08087DB0: + pop {r4, r5, pc} + .align 2, 0 +_08087DB4: .4byte gUnk_080FC3E4 +_08087DB8: .4byte 0x00000111 + + thumb_func_start sub_08087DBC +sub_08087DBC: @ 0x08087DBC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x7a + ldrb r0, [r2] + cmp r0, #1 + beq _08087E10 + cmp r0, #1 + bgt _08087E3C + cmp r0, #0 + bne _08087E3C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087E5A + movs r0, #1 + strb r0, [r2] + movs r0, #0x28 + strb r0, [r4, #0xe] + ldr r1, _08087E0C @ =gUnk_08120AA8 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_080A3268 + b _08087E5A + .align 2, 0 +_08087E0C: .4byte gUnk_08120AA8 +_08087E10: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087E5A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08087E5A + movs r0, #2 + strb r0, [r2] + bl sub_0807CD10 + ldrb r1, [r4, #0xf] + movs r0, #7 + bl sub_080A7138 + b _08087E5A +_08087E3C: + movs r0, #2 + bl sub_0807CC3C + cmp r0, #0 + bne _08087E5A + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + bl sub_0807CD8C + bl sub_0805E780 +_08087E5A: + pop {r4, pc} + + thumb_func_start sub_08087E5C +sub_08087E5C: @ 0x08087E5C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r1, [r5] + cmp r1, #1 + beq _08087EAC + cmp r1, #1 + bgt _08087E74 + cmp r1, #0 + beq _08087E7A + b _08087F4E +_08087E74: + cmp r1, #2 + beq _08087F24 + b _08087F4E +_08087E7A: + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #4 + bne _08087EA4 + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _08087F4E + movs r0, #1 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + bl sub_0807CD8C + adds r0, r4, #0 + bl sub_0808826C + b _08087F1C +_08087EA4: + adds r0, r4, #0 + bl sub_080880D8 + b _08087F4E +_08087EAC: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08087EB6 + subs r0, #1 + strb r0, [r4, #0xe] +_08087EB6: + ldr r6, _08087ED4 @ =gUnk_03000FF0 + ldrh r0, [r6, #2] + ands r1, r0 + cmp r1, #0 + beq _08087ED8 + movs r0, #0x6a + bl sub_080A3268 + movs r0, #2 + strb r0, [r5] + movs r0, #0x3c + strb r0, [r4, #0xe] + bl sub_08050384 + b _08087F4E + .align 2, 0 +_08087ED4: .4byte gUnk_03000FF0 +_08087ED8: + adds r2, r4, #0 + adds r2, #0x81 + ldrb r7, [r2] + ldrh r1, [r6] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + movs r3, #1 + adds r5, r2, #0 + cmp r0, #0 + beq _08087EF0 + movs r3, #0xa +_08087EF0: + ldrh r1, [r6, #4] + ldr r0, _08087F00 @ =0xFFFFFEFF + ands r1, r0 + cmp r1, #0x40 + beq _08087F04 + cmp r1, #0x80 + beq _08087F0E + b _08087F16 + .align 2, 0 +_08087F00: .4byte 0xFFFFFEFF +_08087F04: + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08087F94 + b _08087F16 +_08087F0E: + rsbs r1, r3, #0 + adds r0, r4, #0 + bl sub_08087F94 +_08087F16: + ldrb r5, [r5] + cmp r7, r5 + beq _08087F4E +_08087F1C: + adds r0, r4, #0 + bl sub_080882A8 + b _08087F4E +_08087F24: + movs r0, #0 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #4 + strb r0, [r1] + movs r0, #3 + bl sub_0807CD10 + ldr r0, _08087F50 @ =0x0000431A + bl TextboxTryNoOverlap + ldr r1, _08087F54 @ =gTextBox + movs r0, #1 + strb r0, [r1, #6] + movs r0, #0xc + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + str r0, [r1, #0x10] +_08087F4E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08087F50: .4byte 0x0000431A +_08087F54: .4byte gTextBox + + thumb_func_start sub_08087F58 +sub_08087F58: @ 0x08087F58 + push {r4, r5, lr} + ldrb r1, [r0, #0xa] + cmp r1, #1 + bgt _08087F8C + cmp r1, #0 + blt _08087F8C + ldr r5, _08087F90 @ =0x00004022 + adds r4, r0, #0 + adds r4, #0x78 + ldrh r1, [r4] + subs r1, #1 + adds r0, r5, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r4] + adds r0, r5, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r4] + adds r1, #1 + adds r0, r5, #0 + movs r2, #1 + bl sub_0800015E +_08087F8C: + pop {r4, r5, pc} + .align 2, 0 +_08087F90: .4byte 0x00004022 + + thumb_func_start sub_08087F94 +sub_08087F94: @ 0x08087F94 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0x5f + bl sub_0807CBD0 + cmp r0, #0 + bne _08088014 + adds r0, r5, #0 + adds r0, #0x83 + movs r1, #0 + ldrsb r1, [r0, r1] + mov ip, r1 + adds r3, r1, r4 + adds r7, r0, #0 + cmp r4, #0 + bge _08087FEA + adds r2, r5, #0 + adds r2, #0x82 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r3, r0 + bge _08087FD6 + movs r1, #0 + ldrsb r1, [r7, r1] + ldrb r3, [r2] + cmp r1, r0 + beq _08088014 + strb r3, [r7] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #1 + b _08087FE0 +_08087FD6: + strb r3, [r7] + adds r1, r5, #0 + adds r1, #0x81 + ldrb r0, [r1] + adds r0, r0, r4 +_08087FE0: + strb r0, [r1] + movs r0, #0x69 + bl sub_080A3268 + b _08088032 +_08087FEA: + adds r1, r5, #0 + adds r1, #0x81 + ldrb r6, [r1] + adds r2, r6, r4 + ldr r0, _0808801C @ =gUnk_02002A40 + adds r0, #0xc2 + ldrh r0, [r0] + cmp r2, r0 + ble _08088008 + cmp r0, r6 + beq _08088014 + adds r2, r0, #0 + subs r4, r2, r6 + mov r0, ip + adds r3, r0, r4 +_08088008: + cmp r3, #0x64 + ble _08088028 + movs r0, #0 + ldrsb r0, [r7, r0] + cmp r0, #0x64 + bne _08088020 +_08088014: + adds r0, r5, #0 + bl sub_08088034 + b _08088032 + .align 2, 0 +_0808801C: .4byte gUnk_02002A40 +_08088020: + movs r3, #0x64 + mov r0, ip + subs r4, r3, r0 + adds r2, r6, r4 +_08088028: + strb r3, [r7] + strb r2, [r1] + movs r0, #0x69 + bl sub_080A3268 +_08088032: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08088034 +sub_08088034: @ 0x08088034 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + bne _08088048 + movs r0, #0x14 + strb r0, [r1, #0xe] + movs r0, #0x6d + bl sub_080A3268 +_08088048: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808804C +sub_0808804C: @ 0x0808804C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r0, _08088060 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + cmp r0, #0 + beq _08088064 + movs r4, #9 + b _080880D0 + .align 2, 0 +_08088060: .4byte gUnk_02002A40 +_08088064: + movs r0, #6 + bl GetProgressFlag + cmp r0, #0 + beq _08088072 + movs r4, #7 + b _080880D0 +_08088072: + movs r0, #0x80 + lsls r0, r0, #4 + movs r1, #0x77 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _08088084 + movs r4, #6 + b _080880D0 +_08088084: + movs r0, #0xc0 + lsls r0, r0, #2 + movs r1, #0x32 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _08088096 + movs r4, #5 + b _080880D0 +_08088096: + movs r0, #5 + bl GetProgressFlag + cmp r0, #0 + beq _080880A4 + movs r4, #4 + b _080880D0 +_080880A4: + movs r0, #4 + bl GetProgressFlag + cmp r0, #0 + beq _080880B2 + movs r4, #3 + b _080880D0 +_080880B2: + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0x9c + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _080880C4 + movs r4, #2 + b _080880D0 +_080880C4: + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + beq _080880D0 + movs r4, #1 +_080880D0: + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_080880D8 +sub_080880D8: @ 0x080880D8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x7b + ldrb r1, [r0] + ldr r0, _08088158 @ =gUnk_08120AAC + adds r6, r1, r0 + ldrb r4, [r6] + ldrb r0, [r6, #1] + cmp r4, r0 + bhs _0808810A + adds r5, r7, #0 + adds r5, #0x80 +_080880F0: + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08088160 + cmp r0, #0 + beq _08088102 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] +_08088102: + adds r4, #1 + ldrb r0, [r6, #1] + cmp r4, r0 + blo _080880F0 +_0808810A: + adds r1, r7, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _08088156 + ldr r5, _0808815C @ =gUnk_02002A40 + adds r0, r7, #0 + adds r0, #0x80 + ldrb r1, [r5, #9] + adds r4, r0, #0 + ldrb r0, [r4] + cmp r1, r0 + beq _0808813A + cmp r1, #0 + beq _08088136 + movs r0, #6 + bl sub_0807CD10 +_08088136: + ldrb r0, [r4] + strb r0, [r5, #9] +_0808813A: + movs r0, #0x5f + bl sub_0807CBD0 + cmp r0, #0 + beq _08088156 + ldr r0, _0808815C @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + beq _08088156 + movs r0, #0x5f + bl sub_0807CD34 +_08088156: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08088158: .4byte gUnk_08120AAC +_0808815C: .4byte gUnk_02002A40 + + thumb_func_start sub_08088160 +sub_08088160: @ 0x08088160 + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #3 + ldr r0, _08088188 @ =gUnk_080FC3E4 + adds r1, r1, r0 + movs r4, #0 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + ldrb r3, [r1, #6] + cmp r0, r3 + bhs _08088266 + ldrb r0, [r1, #6] + cmp r0, #0x10 + beq _0808819E + cmp r0, #0x10 + bgt _0808818C + cmp r0, #8 + beq _08088194 + b _08088268 + .align 2, 0 +_08088188: .4byte gUnk_080FC3E4 +_0808818C: + cmp r0, #0x20 + beq _080881A6 + cmp r0, #0x40 + bne _08088268 +_08088194: + ldr r0, [r1] + ldrh r1, [r1, #4] + bl GetProgressFlagWithOffset + b _08088262 +_0808819E: + ldrh r0, [r1, #4] + bl sub_0801E7F4 + b _08088262 +_080881A6: + ldrh r0, [r1, #4] + cmp r0, #5 + bhi _08088268 + lsls r0, r0, #2 + ldr r1, _080881B8 @ =_080881BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080881B8: .4byte _080881BC +_080881BC: @ jump table + .4byte _080881D4 @ case 0 + .4byte _080881F0 @ case 1 + .4byte _080881FE @ case 2 + .4byte _0808821A @ case 3 + .4byte _08088236 @ case 4 + .4byte _08088252 @ case 5 +_080881D4: + movs r0, #0x20 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x10 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x19 +_080881EA: + bl sub_0801E7F4 + b _08088262 +_080881F0: + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #4 + bls _08088268 + movs r0, #0x28 + b _080881EA +_080881FE: + movs r0, #0x54 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x56 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x3d + bl sub_0801E7F4 + b _08088262 +_0808821A: + movs r0, #0x3b + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x4a + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0xd + bl sub_0801E7F4 + b _08088262 +_08088236: + movs r0, #0x49 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x55 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x3c + bl sub_0801E7F4 + b _08088262 +_08088252: + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #1 + bls _08088268 + movs r0, #0x12 + bl GetProgressFlag +_08088262: + cmp r0, #0 + beq _08088268 +_08088266: + movs r4, #1 +_08088268: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_0808826C +sub_0808826C: @ 0x0808826C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0x64 + adds r0, #0x80 + ldrb r1, [r0] + ldr r0, _080882A4 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + subs r0, r1, r0 + muls r4, r0, r4 + adds r0, r4, #0 + bl __divsi3 + adds r4, r0, #0 + cmp r4, #0 + bne _08088298 + movs r0, #0x5f + bl sub_0807CBD0 + cmp r0, #0 + bne _08088298 + movs r4, #1 +_08088298: + adds r0, r5, #0 + adds r0, #0x83 + strb r4, [r0] + subs r0, #1 + strb r4, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080882A4: .4byte gUnk_02002A40 + + thumb_func_start sub_080882A8 +sub_080882A8: @ 0x080882A8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_08050384 + adds r0, r6, #0 + adds r0, #0x81 + ldrb r0, [r0] + ldr r4, _080882F4 @ =gUnk_020227E8 + ldr r5, _080882F8 @ =0x00202020 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08057044 + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, #8 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08057044 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _08088304 + ldr r1, _080882FC @ =gUnk_08120AE4 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _08088300 @ =gUnk_08120AB4 + bl sub_0805F46C + b _08088314 + .align 2, 0 +_080882F4: .4byte gUnk_020227E8 +_080882F8: .4byte 0x00202020 +_080882FC: .4byte gUnk_08120AE4 +_08088300: .4byte gUnk_08120AB4 +_08088304: + ldr r1, _0808831C @ =gUnk_08120AE4 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _08088320 @ =gUnk_08120ACC + bl sub_0805F46C +_08088314: + ldr r1, _08088324 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] + pop {r4, r5, r6, pc} + .align 2, 0 +_0808831C: .4byte gUnk_08120AE4 +_08088320: .4byte gUnk_08120ACC +_08088324: .4byte gLCDControls + + thumb_func_start sub_08088328 +sub_08088328: @ 0x08088328 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r4, #0x7f +_08088332: + bl sub_08000E50 + adds r5, r0, #0 + ands r5, r4 + cmp r5, #0x63 + bhi _08088332 + adds r0, r6, #0 + adds r0, #0x81 + ldrb r0, [r0] + rsbs r0, r0, #0 + bl sub_080542C0 + bl sub_08000E50 + movs r1, #0x7f + ands r1, r0 + adds r4, r1, #1 + adds r7, r4, #0 + adds r0, r6, #0 + bl sub_08088424 + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r5, r0 + bhs _080883A4 + movs r5, #0 + movs r0, #0x7d + adds r0, r0, r6 + mov r8, r0 +_08088372: + cmp r5, #0 + bne _080883E2 + cmp r4, #0x88 + bls _0808837C + movs r4, #1 +_0808837C: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08088160 + cmp r0, #0 + beq _0808839C + ldr r0, _08088398 @ =gUnk_02002B0E + adds r1, r4, #0 + bl sub_0801D5A8 + cmp r0, #0 + bne _0808839C + movs r5, #1 + b _0808839E + .align 2, 0 +_08088398: .4byte gUnk_02002B0E +_0808839C: + adds r4, #1 +_0808839E: + cmp r7, r4 + bne _08088372 + b _080883DE +_080883A4: + movs r5, #1 + movs r0, #0x7d + adds r0, r0, r6 + mov r8, r0 +_080883AC: + cmp r5, #0 + beq _08088414 + cmp r4, #0x88 + bls _080883B6 + movs r4, #1 +_080883B6: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08088160 + cmp r0, #0 + beq _080883D8 + ldr r0, _080883D4 @ =gUnk_02002B0E + adds r1, r4, #0 + bl sub_0801D5A8 + cmp r0, #0 + beq _080883D8 + movs r5, #0 + b _080883DA + .align 2, 0 +_080883D4: .4byte gUnk_02002B0E +_080883D8: + adds r4, #1 +_080883DA: + cmp r7, r4 + bne _080883AC +_080883DE: + cmp r5, #0 + beq _08088414 +_080883E2: + ldr r0, _08088404 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x80 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r0] + cmp r1, r0 + beq _08088408 + movs r0, #7 + bl sub_0807CD10 + b _08088414 + .align 2, 0 +_08088404: .4byte gUnk_02002A40 +_08088408: + movs r0, #0x5f + bl sub_0807CCB4 + movs r0, #8 + bl sub_0807CD10 +_08088414: + mov r0, r8 + strb r4, [r0] + ldr r0, [r6, #0x50] + adds r0, #0x7d + strb r4, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08088424 +sub_08088424: @ 0x08088424 + push {lr} + adds r1, r0, #0 + ldr r0, _08088440 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + cmp r0, #0x31 + bhi _08088444 + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0xe + bgt _08088476 + movs r0, #0xf + b _08088474 + .align 2, 0 +_08088440: .4byte gUnk_02002A40 +_08088444: + cmp r0, #0x4f + bhi _08088456 + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0xb + bgt _08088476 + movs r0, #0xc + b _08088474 +_08088456: + cmp r0, #0x6d + bhi _08088468 + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #8 + bgt _08088476 + movs r0, #9 + b _08088474 +_08088468: + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #5 + bgt _08088476 + movs r0, #6 +_08088474: + strb r0, [r1] +_08088476: + pop {pc} + + thumb_func_start sub_08088478 +sub_08088478: @ 0x08088478 + push {r4, lr} + movs r4, #0 + movs r0, #8 + bl sub_0807CC3C + cmp r0, #0 + bne _080884A4 + movs r0, #7 + bl sub_0807CC3C + cmp r0, #0 + bne _0808849C + ldr r1, _08088498 @ =0x00004322 + movs r4, #1 + b _080884D2 + .align 2, 0 +_08088498: .4byte 0x00004322 +_0808849C: + ldr r1, _080884A0 @ =0x00004325 + b _080884D2 + .align 2, 0 +_080884A0: .4byte 0x00004325 +_080884A4: + ldr r1, _080884C0 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xb0 + ldrb r0, [r0] + cmp r0, #0x82 + beq _080884C8 + cmp r0, #0x88 + bne _080884D0 + adds r1, #0xb1 + movs r0, #0xff + strb r0, [r1] + ldr r1, _080884C4 @ =0x00004329 + b _080884D2 + .align 2, 0 +_080884C0: .4byte gUnk_02002A40 +_080884C4: .4byte 0x00004329 +_080884C8: + ldrb r0, [r1, #6] + ldr r1, _080884F4 @ =0x00004328 + cmp r0, #0 + beq _080884D2 +_080884D0: + ldr r1, _080884F8 @ =0x00004327 +_080884D2: + adds r0, r1, #0 + bl TextboxTryNoOverlap + ldr r1, _080884FC @ =gTextBox + movs r0, #1 + strb r0, [r1, #6] + movs r0, #0xc + strb r0, [r1, #7] + cmp r4, #0 + beq _080884EA + movs r0, #5 + str r0, [r1, #0x10] +_080884EA: + ldr r1, _08088500 @ =gLinkEntity + movs r0, #6 + strb r0, [r1, #0x14] + pop {r4, pc} + .align 2, 0 +_080884F4: .4byte 0x00004328 +_080884F8: .4byte 0x00004327 +_080884FC: .4byte gTextBox +_08088500: .4byte gLinkEntity + + thumb_func_start sub_08088504 +sub_08088504: @ 0x08088504 + push {lr} + ldr r0, _08088518 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + cmp r0, #0x82 + beq _08088520 + cmp r0, #0x88 + bne _08088528 + ldr r0, _0808851C @ =0x0000432F + b _0808852A + .align 2, 0 +_08088518: .4byte gUnk_02002A40 +_0808851C: .4byte 0x0000432F +_08088520: + ldr r0, _08088524 @ =0x00004314 + b _0808852A + .align 2, 0 +_08088524: .4byte 0x00004314 +_08088528: + ldr r0, _0808853C @ =0x00004311 +_0808852A: + bl TextboxTryNoOverlap + ldr r0, _08088540 @ =gTextBox + movs r1, #1 + strb r1, [r0, #6] + movs r1, #0xc + strb r1, [r0, #7] + pop {pc} + .align 2, 0 +_0808853C: .4byte 0x00004311 +_08088540: .4byte gTextBox + + thumb_func_start sub_08088544 +sub_08088544: @ 0x08088544 + push {lr} + ldr r0, _08088568 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + ldr r1, _0808856C @ =0x00004315 + cmp r0, #0x82 + beq _08088554 + subs r1, #7 +_08088554: + adds r0, r1, #0 + bl TextboxTryNoOverlap + ldr r0, _08088570 @ =gTextBox + movs r1, #1 + strb r1, [r0, #6] + movs r1, #0xc + strb r1, [r0, #7] + pop {pc} + .align 2, 0 +_08088568: .4byte gUnk_02002A40 +_0808856C: .4byte 0x00004315 +_08088570: .4byte gTextBox + + thumb_func_start sub_08088574 +sub_08088574: @ 0x08088574 + push {lr} + movs r0, #9 + bl sub_0807CC3C + cmp r0, #0 + beq _08088594 + movs r0, #0x5f + bl sub_0807CBD0 + ldr r1, _08088590 @ =0x0000430C + cmp r0, #0 + beq _08088596 + adds r1, #7 + b _08088596 + .align 2, 0 +_08088590: .4byte 0x0000430C +_08088594: + ldr r1, _080885A8 @ =0x0000430B +_08088596: + adds r0, r1, #0 + bl TextboxTryNoOverlap + ldr r0, _080885AC @ =gTextBox + movs r1, #1 + strb r1, [r0, #6] + movs r1, #0xc + strb r1, [r0, #7] + pop {pc} + .align 2, 0 +_080885A8: .4byte 0x0000430B +_080885AC: .4byte gTextBox + + thumb_func_start sub_080885B0 +sub_080885B0: @ 0x080885B0 + push {lr} + movs r0, #8 + bl sub_0807CC3C + cmp r0, #0 + bne _080885E8 + movs r0, #7 + bl sub_0807CC3C + cmp r0, #0 + bne _0808860A + movs r0, #5 + bl sub_080526CC + ldr r0, _080885E0 @ =0x00004326 + bl TextboxTryNoOverlap + ldr r1, _080885E4 @ =gTextBox + movs r0, #1 + strb r0, [r1, #6] + movs r0, #0xc + strb r0, [r1, #7] + b _0808860A + .align 2, 0 +_080885E0: .4byte 0x00004326 +_080885E4: .4byte gTextBox +_080885E8: + ldr r1, _08088618 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xb1 + ldrb r0, [r0] + cmp r0, #0 + beq _0808860A + adds r1, #0xbb + movs r0, #1 + strb r0, [r1] + movs r0, #0x3e + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + movs r0, #0x59 + bl sub_0807CD04 +_0808860A: + movs r0, #8 + bl sub_0807CD8C + movs r0, #7 + bl sub_0807CD8C + pop {pc} + .align 2, 0 +_08088618: .4byte gUnk_02002A40 + + thumb_func_start sub_0808861C +sub_0808861C: @ 0x0808861C + push {r4, lr} + adds r4, r1, #0 + movs r0, #0xa8 + movs r1, #0x54 + movs r2, #0xc + movs r3, #8 + bl sub_0800293E + str r0, [r4, #0x14] + ldr r1, _08088650 @ =gLinkEntity + ldrb r0, [r1, #0x14] + cmp r0, #0 + bne _0808863E + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _08088642 +_0808863E: + movs r0, #0 + str r0, [r4, #0x14] +_08088642: + ldr r2, _08088654 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_08088650: .4byte gLinkEntity +_08088654: .4byte gUnk_02033280 + + thumb_func_start sub_08088658 +sub_08088658: @ 0x08088658 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0x78 + movs r1, #0x78 + movs r2, #0x10 + movs r3, #8 + bl sub_0800293E + str r0, [r4, #0x14] + ldr r0, _08088684 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08088678 + movs r0, #0 + str r0, [r4, #0x14] +_08088678: + ldr r2, _08088688 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_08088684: .4byte gLinkEntity +_08088688: .4byte gUnk_02033280 + + thumb_func_start sub_0808868C +sub_0808868C: @ 0x0808868C + push {lr} + ldr r2, _080886A0 @ =gUnk_08120B20 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080886A0: .4byte gUnk_08120B20 + + thumb_func_start sub_080886A4 +sub_080886A4: @ 0x080886A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + movs r6, #3 + adds r0, r6, #0 + ands r0, r1 + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + movs r5, #1 + strb r5, [r0] + subs r1, #5 + movs r0, #2 + strb r0, [r1] + ldr r0, _08088700 @ =gUnk_080FD168 + str r0, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08088704 + strb r6, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _08088716 + .align 2, 0 +_08088700: .4byte gUnk_080FD168 +_08088704: + strb r5, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08088716: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08088718 +sub_08088718: @ 0x08088718 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x95 + beq _08088728 + cmp r0, #0x8e + bne _0808875A +_08088728: + ldr r0, [r4, #0x4c] + ldrb r1, [r0, #0x15] + adds r1, #4 + movs r0, #0x18 + ands r1, r0 + asrs r1, r1, #3 + ldrb r2, [r4, #0x14] + movs r0, #3 + ands r0, r2 + cmp r1, r0 + bne _0808875A + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r0, _0808875C @ =0x00000111 + bl sub_08004488 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_0808875A: + pop {r4, pc} + .align 2, 0 +_0808875C: .4byte 0x00000111 + + thumb_func_start sub_08088760 +sub_08088760: @ 0x08088760 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808878E + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0808878E: + pop {r4, pc} + + thumb_func_start sub_08088790 +sub_08088790: @ 0x08088790 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080887D6 + adds r0, r4, #0 + adds r0, #0x86 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r0] + adds r5, r0, #0 + ldrh r0, [r2] + cmp r1, r0 + beq _080887BC + ldrh r0, [r2] + bl sub_0807CBE4 + cmp r0, #0 + beq _080887BC + movs r0, #0 + strb r0, [r4, #0xe] + b _080887D6 +_080887BC: + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080887D6 + movs r0, #4 + strb r0, [r4, #0xc] + ldrh r0, [r5] + bl sub_0807CD48 +_080887D6: + pop {r4, r5, pc} + + thumb_func_start sub_080887D8 +sub_080887D8: @ 0x080887D8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08088802 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08088802: + pop {r4, pc} + + thumb_func_start sub_08088804 +sub_08088804: @ 0x08088804 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08088828 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088828 + ldrb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x72 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08088828: + ldr r0, _0808883C @ =gUnk_08120BE0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0808883C: .4byte gUnk_08120BE0 + + thumb_func_start sub_08088840 +sub_08088840: @ 0x08088840 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + ldr r1, _08088868 @ =gUnk_080FD1D4 + str r1, [r0, #0x48] + ldrb r1, [r0, #0x14] + adds r0, #0x72 + strb r1, [r0] + bx lr + .align 2, 0 +_08088868: .4byte gUnk_080FD1D4 + + thumb_func_start sub_0808886C +sub_0808886C: @ 0x0808886C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08088938 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_080889A8 + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r1, [r5, #0xa] + adds r0, r1, #2 + cmp r0, r4 + bgt _080888B8 + movs r1, #0 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r5, #0xf] + movs r0, #4 + strb r0, [r5, #0x14] + strh r1, [r5, #0x36] + adds r0, r5, #0 + movs r1, #4 + bl sub_08004260 + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + ldr r0, _080888B4 @ =0x0000016B + bl sub_08004488 + b _080888F2 + .align 2, 0 +_080888B4: .4byte 0x0000016B +_080888B8: + ldrb r0, [r5, #0x14] + cmp r4, r0 + bls _080888E4 + adds r0, r1, #1 + cmp r0, r4 + bne _080888D2 + movs r0, #4 + strb r0, [r5, #0xf] + adds r1, r4, #1 + adds r0, r5, #0 + bl sub_08004260 + b _080888DA +_080888D2: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 +_080888DA: + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 + b _080888F0 +_080888E4: + cmp r4, r0 + bhs _080888F0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 +_080888F0: + strb r4, [r5, #0x14] +_080888F2: + pop {r4, r5, pc} + + thumb_func_start sub_080888F4 +sub_080888F4: @ 0x080888F4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + beq _08088934 + adds r0, r5, #0 + bl sub_08088938 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_080889A8 + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5, #0xa] + adds r0, #2 + cmp r0, r4 + ble _08088934 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 +_08088934: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08088938 +sub_08088938: @ 0x08088938 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r5, #0 + ldrh r1, [r0, #0x2e] + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov ip, r1 + ldrh r1, [r0, #0x32] + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + movs r4, #0 + ldr r1, _080889A0 @ =gUnk_02034350 + ldr r2, _080889A4 @ =gUnk_08120BEC + mov r8, r2 + adds r3, r1, #0 + adds r3, #0xac + adds r6, r0, #0 + adds r6, #0x72 +_08088962: + ldr r2, [r3] + cmp r2, #0 + beq _08088990 + ldrh r0, [r2, #0x2e] + mov r1, ip + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bhi _08088990 + ldrh r0, [r2, #0x32] + subs r0, r0, r7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bhi _08088990 + ldrb r0, [r6] + add r0, r8 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x63 + strb r1, [r0] + adds r5, #1 +_08088990: + adds r3, #4 + adds r4, #1 + cmp r4, #7 + bls _08088962 + adds r0, r5, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080889A0: .4byte gUnk_02034350 +_080889A4: .4byte gUnk_08120BEC + + thumb_func_start sub_080889A8 +sub_080889A8: @ 0x080889A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #0 + bl sub_08017850 + cmp r0, #0 + beq _080889CA + ldr r1, _08088A40 @ =gLinkEntity + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + movs r5, #1 +_080889CA: + ldr r0, _08088A48 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08088A3A + ldr r6, _08088A4C @ =gUnk_03004040 + ldr r1, [r6] + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _080889FA + ldr r1, [r6] + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + adds r5, #1 +_080889FA: + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _08088A1A + ldr r1, [r6, #4] + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + adds r5, #1 +_08088A1A: + ldr r1, [r6, #8] + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _08088A3A + ldr r1, [r6, #8] + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + adds r5, #1 +_08088A3A: + adds r0, r5, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_08088A40: .4byte gLinkEntity +_08088A44: .4byte gUnk_08120BEC +_08088A48: .4byte gUnk_03003F80 +_08088A4C: .4byte gUnk_03004040 + + thumb_func_start sub_08088A50 +sub_08088A50: @ 0x08088A50 + push {lr} + ldr r2, _08088A64 @ =gUnk_08120C34 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08088A64: .4byte gUnk_08120C34 + + thumb_func_start sub_08088A68 +sub_08088A68: @ 0x08088A68 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08088AE4 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r2, #3 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + movs r0, #0x17 + bl GetProgressFlag + cmp r0, #0 + beq _08088AA0 + ldr r0, _08088A9C @ =gUnk_02002A40 + ldrb r0, [r0, #7] + adds r0, #1 + b _08088AA4 + .align 2, 0 +_08088A9C: .4byte gUnk_02002A40 +_08088AA0: + ldr r0, _08088AD8 @ =gUnk_02002A40 + ldrb r0, [r0, #7] +_08088AA4: + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_08088BE0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08088ADC @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r4, r3] + ldrh r2, [r2, #8] + subs r1, r1, r2 + movs r2, #0x80 + movs r3, #0x60 + bl sub_0800293E + cmp r0, #0 + beq _08088B82 + ldr r0, _08088AE0 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #4 + orrs r1, r2 + str r1, [r0, #0x68] + b _08088B82 + .align 2, 0 +_08088AD8: .4byte gUnk_02002A40 +_08088ADC: .4byte gRoomControls +_08088AE0: .4byte gUnk_02034350 +_08088AE4: + ldr r5, _08088B70 @ =gUnk_02034350 + ldr r1, [r5, #0x68] + movs r6, #1 + adds r0, r1, #0 + ands r0, r6 + cmp r0, #0 + beq _08088B06 + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x68] + strb r6, [r4, #0xe] + ldr r0, _08088B74 @ =gUnk_08120C1C + str r0, [r4, #0x68] + movs r0, #0x8a + bl sub_080A3268 +_08088B06: + ldr r1, [r5, #0x68] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08088B24 + movs r0, #3 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x68] + strb r6, [r4, #0xe] + ldr r0, _08088B78 @ =gUnk_08120C25 + str r0, [r4, #0x68] + movs r0, #0x89 + bl sub_080A3268 +_08088B24: + ldr r1, [r5, #0x68] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08088B42 + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x68] + strb r6, [r4, #0xe] + ldr r0, _08088B7C @ =gUnk_08120C2E + str r0, [r4, #0x68] + movs r0, #0x8a + bl sub_080A3268 +_08088B42: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08088B82 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _08088B82 + ldr r1, [r4, #0x68] + ldrb r0, [r1] + adds r2, r4, #0 + adds r2, #0x63 + strb r0, [r2] + adds r1, #1 + ldrb r0, [r1] + cmp r0, #0xff + beq _08088B80 + movs r0, #8 + strb r0, [r4, #0xe] + str r1, [r4, #0x68] + b _08088B82 + .align 2, 0 +_08088B70: .4byte gUnk_02034350 +_08088B74: .4byte gUnk_08120C1C +_08088B78: .4byte gUnk_08120C25 +_08088B7C: .4byte gUnk_08120C2E +_08088B80: + strb r3, [r2] +_08088B82: + adds r5, r4, #0 + adds r5, #0x29 + ldrb r1, [r5] + movs r6, #8 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5] + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, #0x50 + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #0x50 + movs r2, #0xa0 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _08088BBA + ldrb r0, [r5] + adds r1, r6, #0 + ands r1, r0 + movs r0, #5 + orrs r1, r0 + strb r1, [r5] +_08088BBA: + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r0, #0x50 + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r1, #0x30 + movs r2, #0xa0 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _08088BDE + ldrb r0, [r5] + adds r1, r6, #0 + ands r1, r0 + movs r0, #5 + orrs r1, r0 + strb r1, [r5] +_08088BDE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08088BE0 +sub_08088BE0: @ 0x08088BE0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x15 + bl sub_0807CBD0 + cmp r0, #0 + bne _08088C1C + movs r3, #0x78 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_08088C78 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0x15 + movs r3, #0 + bl sub_08088C78 + adds r2, r0, #0 + cmp r2, #0 + beq _08088C1C + ldr r0, _08088C74 @ =gRoomControls + ldrh r1, [r0, #6] + adds r1, #0x48 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, #0xc8 + strh r0, [r2, #0x32] +_08088C1C: + movs r0, #0x16 + bl sub_0807CBD0 + cmp r0, #0 + bne _08088C58 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + movs r3, #0x78 + bl sub_08088C78 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0x16 + movs r3, #0 + bl sub_08088C78 + adds r2, r0, #0 + cmp r2, #0 + beq _08088C58 + ldr r0, _08088C74 @ =gRoomControls + movs r3, #0xc4 + lsls r3, r3, #1 + adds r1, r3, #0 + ldrh r3, [r0, #6] + adds r1, r1, r3 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, #0xc8 + strh r0, [r2, #0x32] +_08088C58: + movs r3, #0x78 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08088C78 + adds r0, r4, #0 + movs r1, #1 + movs r2, #1 + movs r3, #0x78 + bl sub_08088C78 + pop {r4, pc} + .align 2, 0 +_08088C74: .4byte gRoomControls + + thumb_func_start sub_08088C78 +sub_08088C78: @ 0x08088C78 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r3, #0 + movs r0, #0x25 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08088C96 + ldrh r0, [r4, #0x2e] + adds r0, r0, r5 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + str r4, [r1, #0x50] +_08088C96: + adds r0, r1, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08088C9C +sub_08088C9C: @ 0x08088C9C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08088CEC @ =gUnk_08120C48 + ldr r0, [r4, #0x50] + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + adds r0, r0, r1 + ldrb r0, [r0] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r0, [r4, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08088D4C + cmp r0, #1 + bgt _08088CF0 + cmp r0, #0 + beq _08088CFA + b _08088DB0 + .align 2, 0 +_08088CEC: .4byte gUnk_08120C48 +_08088CF0: + cmp r0, #2 + beq _08088D5A + cmp r0, #3 + beq _08088D7A + b _08088DB0 +_08088CFA: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0xb] + adds r0, r2, #4 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + lsls r2, r2, #0x18 + movs r0, #0x16 + cmp r2, #0 + bne _08088D28 + movs r0, #0x15 +_08088D28: + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xf] + bl sub_0807CBD0 + cmp r0, #0 + beq _08088DB0 + ldr r1, _08088D48 @ =gUnk_08120C50 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + b _08088DAC + .align 2, 0 +_08088D48: .4byte gUnk_08120C50 +_08088D4C: + ldrb r0, [r4, #0xf] + bl sub_0807CBD0 + cmp r0, #0 + beq _08088DB0 + movs r0, #2 + b _08088DAE +_08088D5A: + ldr r2, _08088D98 @ =gUnk_02034350 + ldr r1, [r2, #0x68] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08088DB0 + movs r0, #0x21 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2, #0x68] + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xe] +_08088D7A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088DB0 + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08088D9C + subs r0, r1, #2 + b _08088D9E + .align 2, 0 +_08088D98: .4byte gUnk_02034350 +_08088D9C: + adds r0, r1, #2 +_08088D9E: + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0xd] + subs r0, #1 + strb r0, [r4, #0xd] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088DB0 +_08088DAC: + movs r0, #4 +_08088DAE: + strb r0, [r4, #0xc] +_08088DB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08088DB4 +sub_08088DB4: @ 0x08088DB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08088E28 + cmp r0, #1 + bgt _08088DC8 + cmp r0, #0 + beq _08088DEC + b _08088E50 +_08088DC8: + cmp r0, #4 + bgt _08088E50 + ldr r0, _08088DE8 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08088E6E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088E6E + b _08088E3E + .align 2, 0 +_08088DE8: .4byte gUnk_02034350 +_08088DEC: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, #6 + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r4, #0xb] + movs r1, #0x16 + cmp r0, #0 + bne _08088E1E + movs r1, #0x15 +_08088E1E: + strb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08016A04 + b _08088E6E +_08088E28: + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + beq _08088E6E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + b _08088E6E +_08088E3E: + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + adds r0, #1 + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + b _08088E6E +_08088E50: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088E6E + ldr r0, _08088E70 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #9 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x68] + adds r0, r4, #0 + bl sub_0805E7BC +_08088E6E: + pop {r4, pc} + .align 2, 0 +_08088E70: .4byte gUnk_02034350 + + thumb_func_start sub_08088E74 +sub_08088E74: @ 0x08088E74 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08088E94 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r2, _08088EB0 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #8 + orrs r0, r1 + str r0, [r2, #0x68] +_08088E94: + adds r0, r4, #0 + bl sub_0806FB38 + cmp r0, #0 + beq _08088EB4 + ldr r0, _08088EB0 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #0x10 + orrs r1, r2 + str r1, [r0, #0x68] + adds r0, r4, #0 + bl sub_0805E7BC + b _08088F14 + .align 2, 0 +_08088EB0: .4byte gUnk_02034350 +_08088EB4: + ldr r0, _08088F18 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08088F14 + adds r0, r4, #0 + movs r1, #0x2a + movs r2, #0 + movs r3, #0x1e + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08088F14 + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r4, #0x1b] + ands r1, r0 + strb r1, [r4, #0x1b] + bl sub_08000E50 + ldr r2, _08088F1C @ =gUnk_08120C52 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_08088F14: + pop {r4, pc} + .align 2, 0 +_08088F18: .4byte gUnk_030010A0 +_08088F1C: .4byte gUnk_08120C52 + + thumb_func_start sub_08088F20 +sub_08088F20: @ 0x08088F20 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08088F62 + cmp r0, #1 + bgt _08088F34 + cmp r0, #0 + beq _08088F3E + b _08089020 +_08088F34: + cmp r0, #2 + beq _08088FEC + cmp r0, #3 + beq _08089004 + b _08089020 +_08088F3E: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _08088F5A + b _0808908E +_08088F5A: + adds r0, r4, #0 + bl sub_0805E7BC + b _0808908E +_08088F62: + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _08088F6E + b _0808908E +_08088F6E: + movs r5, #2 + strb r5, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r1, #0x87 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0805E4E0 + movs r0, #0x2a + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08088FBC + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x11] + ldrh r0, [r4, #0x2e] + strh r0, [r2, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r2, #0x32] + adds r0, r2, #0 + adds r0, #0x38 + strb r5, [r0] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] +_08088FBC: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08088FE8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0x76 + movs r2, #2 + bl sub_0807B314 + b _0808908E + .align 2, 0 +_08088FE8: .4byte gRoomControls +_08088FEC: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808908E + adds r0, r4, #0 + bl sub_08089094 + movs r0, #3 + strb r0, [r4, #0xc] + b _0808908E +_08089004: + ldr r0, _0808901C @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808908E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + b _0808908E + .align 2, 0 +_0808901C: .4byte gUnk_02034350 +_08089020: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x5a + bne _0808905C + movs r0, #0x15 + movs r1, #2 + bl sub_0807CC60 + cmp r0, #0 + beq _08089048 + ldr r0, _08089044 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #2 + b _0808904E + .align 2, 0 +_08089044: .4byte gUnk_02034350 +_08089048: + ldr r0, _08089090 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #1 +_0808904E: + orrs r1, r2 + str r1, [r0, #0x68] + adds r2, r0, #0 + ldr r0, [r2, #0x68] + movs r1, #0x20 + orrs r0, r1 + str r0, [r2, #0x68] +_0808905C: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0808908E + ldr r2, _08089090 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x68] + movs r0, #0x15 + movs r1, #2 + bl sub_0807CC60 + cmp r0, #0 + beq _08089088 + adds r0, r4, #0 + movs r1, #0x3c + bl sub_0805E4E0 + movs r0, #0x72 + bl sub_080A3268 +_08089088: + adds r0, r4, #0 + bl sub_0805E7BC +_0808908E: + pop {r4, r5, pc} + .align 2, 0 +_08089090: .4byte gUnk_02034350 + + thumb_func_start sub_08089094 +sub_08089094: @ 0x08089094 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r1, _080890C4 @ =gRoomControls + ldrh r1, [r1, #6] + subs r0, r0, r1 + cmp r0, #0xff + bgt _080890CC + ldr r4, _080890C8 @ =gUnk_08120C56 + movs r2, #8 + rsbs r2, r2, #0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080890EC + adds r4, #4 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #4 + bl sub_080890EC + b _080890E6 + .align 2, 0 +_080890C4: .4byte gRoomControls +_080890C8: .4byte gUnk_08120C56 +_080890CC: + ldr r4, _080890E8 @ =gUnk_08120C5E + movs r2, #8 + rsbs r2, r2, #0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080890EC + adds r4, #4 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #4 + bl sub_080890EC +_080890E6: + pop {r4, r5, pc} + .align 2, 0 +_080890E8: .4byte gUnk_08120C5E + + thumb_func_start sub_080890EC +sub_080890EC: @ 0x080890EC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r0, #0x25 + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08089132 + movs r1, #3 + bl sub_0805E3A0 + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, r0, r6 + strh r0, [r4, #0x32] + str r5, [r4, #0x50] + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0 + ldrsh r0, [r7, r2] + adds r1, r1, r0 + movs r3, #0x32 + ldrsh r2, [r4, r3] + movs r3, #2 + ldrsh r0, [r7, r3] + adds r2, r2, r0 + adds r0, r4, #0 + movs r3, #0x5a + bl sub_0806FB00 +_08089132: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08089134 +sub_08089134: @ 0x08089134 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0808919C + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x1e] + movs r0, #0x10 + strb r0, [r5, #0xe] + strb r3, [r5, #0xf] + ldrb r0, [r5, #0xa] + lsls r3, r0, #1 + adds r3, r3, r0 + ldr r0, _080891D4 @ =gUnk_08120C80 + adds r3, r3, r0 + ldrb r1, [r3] + lsls r1, r1, #6 + ldrb r4, [r5, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r5, #0x19] + ldrb r0, [r3, #1] + movs r1, #0x29 + adds r1, r1, r5 + mov ip, r1 + movs r1, #7 + ands r1, r0 + mov r0, ip + ldrb r4, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r4 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r0, [r3, #2] + lsls r0, r0, #6 + ldrb r1, [r5, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r5, #0x1b] +_0808919C: + ldrb r0, [r5, #0xa] + cmp r0, #4 + bne _080891D0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080891D0 + movs r0, #0x10 + strb r0, [r5, #0xe] + ldr r2, _080891D8 @ =gUnk_08120C92 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r5, #0x1e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #3 + bne _080891D0 + strb r3, [r5, #0xf] +_080891D0: + pop {r4, r5, pc} + .align 2, 0 +_080891D4: .4byte gUnk_08120C80 +_080891D8: .4byte gUnk_08120C92 + + thumb_func_start sub_080891DC +sub_080891DC: @ 0x080891DC + push {lr} + ldr r2, _080891F0 @ =gUnk_08120C98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080891F0: .4byte gUnk_08120C98 + + thumb_func_start sub_080891F4 +sub_080891F4: @ 0x080891F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808965C + cmp r0, #0 + beq _08089236 + movs r3, #0 + movs r2, #1 + strb r2, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x11] + subs r0, #0x90 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldr r0, _08089238 @ =gUnk_080FD1F4 + str r0, [r4, #0x48] + strb r2, [r4, #0x16] + adds r0, r4, #0 + adds r0, #0x86 + strh r3, [r0] + adds r0, r4, #0 + bl sub_08089454 + adds r0, r4, #0 + bl sub_080894C8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08089236: + pop {r4, pc} + .align 2, 0 +_08089238: .4byte gUnk_080FD1F4 + + thumb_func_start sub_0808923C +sub_0808923C: @ 0x0808923C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + bne _080892C0 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08089278 @ =0x0000400B + cmp r5, r0 + beq _080892BA + adds r0, r5, #0 + bl sub_0808968C + cmp r0, #1 + beq _0808927C + cmp r0, #1 + blo _08089294 + cmp r0, #2 + beq _080892B2 + b _080892C0 + .align 2, 0 +_08089278: .4byte 0x0000400B +_0808927C: + movs r1, #3 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r5, #0 + subs r0, #0xc + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08089538 + b _080892C0 +_08089294: + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080892AA + adds r0, r4, #0 + bl sub_0806FA24 +_080892AA: + adds r0, r4, #0 + bl sub_080894FC + b _080892C0 +_080892B2: + adds r0, r4, #0 + adds r0, #0x80 + strh r5, [r0] + b _080892C0 +_080892BA: + adds r0, r4, #0 + bl sub_08078930 +_080892C0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080892C4 +sub_080892C4: @ 0x080892C4 + push {lr} + adds r2, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + cmp r0, #0 + beq _080892D8 + adds r0, r2, #0 + bl sub_080895C0 + b _080892F6 +_080892D8: + ldr r0, _080892F8 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080892E4 + movs r0, #6 + strb r0, [r2, #0xd] +_080892E4: + ldr r0, _080892FC @ =gUnk_08120CAC + ldrb r1, [r2, #0xd] + subs r1, #5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080892F6: + pop {pc} + .align 2, 0 +_080892F8: .4byte gUnk_03003F80 +_080892FC: .4byte gUnk_08120CAC + + thumb_func_start sub_08089300 +sub_08089300: @ 0x08089300 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + cmp r0, #0 + bne _0808932C + movs r0, #1 + strb r0, [r1] + ldr r1, _0808935C @ =gLinkEntity + ldrb r0, [r1, #0x14] + ldr r2, _08089360 @ =gUnk_08120CB4 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + bl PositionRelative +_0808932C: + adds r0, r5, #0 + adds r0, #0x84 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _08089364 @ =0x0000400B + cmp r4, r0 + beq _080893A0 + adds r0, r4, #0 + bl sub_0808968C + cmp r0, #1 + beq _08089368 + cmp r0, #1 + blo _0808937C + cmp r0, #2 + beq _0808939A + b _080893A0 + .align 2, 0 +_0808935C: .4byte gLinkEntity +_08089360: .4byte gUnk_08120CB4 +_08089364: .4byte 0x0000400B +_08089368: + adds r0, r4, #0 + subs r0, #0xc + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08089538 + b _080893A0 +_0808937C: + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08089392 + adds r0, r5, #0 + bl sub_0806FA24 +_08089392: + adds r0, r5, #0 + bl sub_080894FC + b _080893D6 +_0808939A: + adds r0, r5, #0 + adds r0, #0x80 + strh r4, [r0] +_080893A0: + bl sub_080896B0 + cmp r0, #0 + beq _080893D6 + ldr r2, _080893D8 @ =gUnk_03003F80 + movs r3, #0 + movs r0, #0x10 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x20 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, _080893DC @ =gLinkEntity + strh r3, [r0, #0x2c] + strh r3, [r0, #0x30] + ldrb r0, [r0, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08089538 +_080893D6: + pop {r4, r5, pc} + .align 2, 0 +_080893D8: .4byte gUnk_03003F80 +_080893DC: .4byte gLinkEntity + + thumb_func_start sub_080893E0 +sub_080893E0: @ 0x080893E0 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r0, #0x83 + strb r2, [r0] + bx lr + + thumb_func_start sub_080893EC +sub_080893EC: @ 0x080893EC + push {r4, lr} + adds r4, r0, #0 + bl sub_080895C0 + cmp r0, #0 + beq _080893FC + movs r0, #1 + strb r0, [r4, #0xc] +_080893FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08089400 +sub_08089400: @ 0x08089400 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08089424 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + b _0808944E +_08089424: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08089450 @ =0x0000400B + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r4, #0 + bl sub_080894C8 +_0808944E: + pop {r4, pc} + .align 2, 0 +_08089450: .4byte 0x0000400B + + thumb_func_start sub_08089454 +sub_08089454: @ 0x08089454 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080894C0 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r6, r5, #0 + adds r6, #0x84 + strh r1, [r6] + ldrh r0, [r6] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x80 + strh r0, [r1] + ldr r5, _080894C4 @ =0x0000400B + ldrh r1, [r6] + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrb r0, [r4] + cmp r0, #2 + bne _080894BC + ldrh r0, [r6] + movs r1, #1 + bl sub_080002B0 + movs r1, #0xc4 + lsls r1, r1, #2 + cmp r0, r1 + bne _080894BC + ldrh r1, [r6] + adds r0, r5, #0 + movs r2, #1 + bl sub_0800015E +_080894BC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080894C0: .4byte gRoomControls +_080894C4: .4byte 0x0000400B + + thumb_func_start sub_080894C8 +sub_080894C8: @ 0x080894C8 + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r1, _080894E0 @ =gUnk_02034350 + adds r4, r1, #0 + adds r4, #0xac + ldr r0, [r4] + mov ip, r1 + cmp r0, #0 + bne _080894E4 + str r3, [r4] + b _080894FA + .align 2, 0 +_080894E0: .4byte gUnk_02034350 +_080894E4: + adds r2, #1 + cmp r2, #7 + bhi _080894FA + lsls r0, r2, #2 + mov r1, ip + adds r1, #0xac + adds r1, r0, r1 + ldr r0, [r1] + cmp r0, #0 + bne _080894E4 + str r3, [r1] +_080894FA: + pop {r4, pc} + + thumb_func_start sub_080894FC +sub_080894FC: @ 0x080894FC + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r1, _08089514 @ =gUnk_02034350 + adds r4, r1, #0 + adds r4, #0xac + ldr r0, [r4] + mov ip, r1 + cmp r3, r0 + bne _08089518 + str r2, [r4] + b _08089530 + .align 2, 0 +_08089514: .4byte gUnk_02034350 +_08089518: + adds r2, #1 + cmp r2, #7 + bhi _08089530 + lsls r0, r2, #2 + mov r1, ip + adds r1, #0xac + adds r1, r0, r1 + ldr r0, [r1] + cmp r3, r0 + bne _08089518 + movs r0, #0 + str r0, [r1] +_08089530: + adds r0, r3, #0 + bl sub_0805E7BC + pop {r4, pc} + + thumb_func_start sub_08089538 +sub_08089538: @ 0x08089538 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x86 + movs r0, #0x20 + strh r0, [r1] + adds r0, #0xef + bl sub_08004488 + adds r0, r5, #0 + adds r0, #0x80 + ldrh r0, [r0] + adds r6, r5, #0 + adds r6, #0x84 + ldrh r1, [r6] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldrb r0, [r4] + cmp r0, #2 + bne _08089580 + ldrh r0, [r6] + movs r1, #1 + bl sub_080002B0 + ldr r1, _080895B8 @ =0x0000400B + cmp r0, r1 + bne _08089580 + movs r0, #0xc4 + lsls r0, r0, #2 + ldrh r1, [r6] + movs r2, #1 + bl sub_08000152 +_08089580: + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _080895BC @ =gUnk_080B4488 + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + ldrh r2, [r2] + adds r0, r0, r2 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x79 + beq _080895AC + cmp r0, #0x77 + bne _080895B4 +_080895AC: + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] +_080895B4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080895B8: .4byte 0x0000400B +_080895BC: .4byte gUnk_080B4488 + + thumb_func_start sub_080895C0 +sub_080895C0: @ 0x080895C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0808964C + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0808964C + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0 + bne _080895FE + adds r0, r4, #0 + bl sub_08089454 + movs r0, #1 + b _08089654 +_080895FE: + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08089614 + adds r0, r4, #0 + bl sub_0806FA24 +_08089614: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r2, _08089658 @ =gUnk_08120CBC + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08089454 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_0808964C: + adds r0, r4, #0 + bl sub_0800445C + movs r0, #0 +_08089654: + pop {r4, pc} + .align 2, 0 +_08089658: .4byte gUnk_08120CBC + + thumb_func_start sub_0808965C +sub_0808965C: @ 0x0808965C + push {lr} + adds r2, r0, #0 + ldr r3, _08089678 @ =gRoomControls + ldrb r0, [r3, #4] + cmp r0, #0x3f + bls _08089680 + ldr r1, _0808967C @ =gUnk_08120CCC + subs r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r2, #0 + b _08089684 + .align 2, 0 +_08089678: .4byte gRoomControls +_0808967C: .4byte gUnk_08120CCC +_08089680: + adds r0, r2, #0 + movs r1, #0xe9 +_08089684: + bl sub_080ADF80 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808968C +sub_0808968C: @ 0x0808968C + push {lr} + adds r2, r0, #0 + ldr r1, _08089694 @ =gUnk_08120D6C + b _080896A4 + .align 2, 0 +_08089694: .4byte gUnk_08120D6C +_08089698: + ldrh r0, [r1] + cmp r0, r2 + bne _080896A2 + ldrh r0, [r1, #2] + b _080896AC +_080896A2: + adds r1, #4 +_080896A4: + ldrh r0, [r1] + cmp r0, #0 + bne _08089698 + movs r0, #0 +_080896AC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080896B0 +sub_080896B0: @ 0x080896B0 + push {r4, r5, r6, r7, lr} + ldr r0, _08089750 @ =gUnk_03003F80 + ldrb r1, [r0, #5] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0x12 + bne _08089768 + ldr r6, _08089754 @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08089768 + ldrb r3, [r6, #0x14] + movs r2, #6 + ands r2, r3 + lsls r2, r2, #1 + ldr r0, _08089758 @ =gUnk_080B4468 + adds r2, r2, r0 + ldr r0, _0808975C @ =gUnk_080B4488 + lsrs r3, r3, #1 + lsls r3, r3, #1 + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + movs r4, #0 + ldrsh r0, [r2, r4] + adds r1, r1, r0 + ldr r5, _08089760 @ =gRoomControls + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r0, [r6, r7] + movs r7, #2 + ldrsh r2, [r2, r7] + adds r0, r0, r2 + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0 + ldrsh r7, [r3, r0] + subs r1, r1, r7 + lsls r4, r1, #0x10 + lsrs r0, r4, #0x10 + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002C8 + adds r1, r0, #0 + subs r0, #0x26 + cmp r0, #1 + bls _08089768 + cmp r1, #0x29 + beq _08089768 + ldrb r0, [r5] + bl sub_0808094C + asrs r1, r4, #0x10 + ldr r2, _08089764 @ =0x00002004 + adds r0, r0, r2 + adds r2, r0, r1 + ldrb r2, [r2] + subs r1, r1, r7 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r2, #0 + bne _08089768 + cmp r0, #0 + bne _08089768 + movs r0, #1 + b _0808976A + .align 2, 0 +_08089750: .4byte gUnk_03003F80 +_08089754: .4byte gLinkEntity +_08089758: .4byte gUnk_080B4468 +_0808975C: .4byte gUnk_080B4488 +_08089760: .4byte gRoomControls +_08089764: .4byte 0x00002004 +_08089768: + movs r0, #0 +_0808976A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808976C +sub_0808976C: @ 0x0808976C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080897D0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080897AE + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2] + b _080897BA +_080897AE: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] +_080897BA: + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 +_080897D0: + ldrb r1, [r4, #0x10] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08089840 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08089844 @ =gRoomControls + movs r3, #0xa + ldrsh r0, [r2, r3] + subs r5, r1, r0 + adds r3, r5, #0 + subs r3, #0x78 + movs r6, #0x32 + ldrsh r1, [r4, r6] + movs r6, #0xc + ldrsh r0, [r2, r6] + subs r1, r1, r0 + adds r2, r1, #0 + subs r2, #0x50 + adds r0, r3, #0 + cmp r0, #0 + bge _08089802 + adds r0, r5, #0 + subs r0, #0x75 +_08089802: + asrs r3, r0, #2 + adds r0, r2, #0 + cmp r0, #0 + bge _0808980E + adds r0, r1, #0 + subs r0, #0x4d +_0808980E: + asrs r2, r0, #2 + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r3, r0 + bge _0808981A + adds r3, r0, #0 +_0808981A: + cmp r3, #0x10 + ble _08089820 + movs r3, #0x10 +_08089820: + cmp r2, r0 + bge _08089826 + adds r2, r0, #0 +_08089826: + cmp r2, #0x10 + ble _0808982C + movs r2, #0x10 +_0808982C: + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + adds r0, r0, r2 + strh r0, [r4, #0x32] +_08089840: + pop {r4, r5, r6, pc} + .align 2, 0 +_08089844: .4byte gRoomControls + + thumb_func_start sub_08089848 +sub_08089848: @ 0x08089848 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08089870 @ =gUnk_08120D90 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004276 + pop {r4, pc} + .align 2, 0 +_08089870: .4byte gUnk_08120D90 + + thumb_func_start sub_08089874 +sub_08089874: @ 0x08089874 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08089940 + adds r0, r4, #0 + adds r0, #0x38 + movs r2, #3 + strb r2, [r0] + ldrb r1, [r4, #0xb] + adds r5, r0, #0 + cmp r1, #0 + bne _08089900 + ldrb r0, [r4, #0xa] + cmp r0, #0x80 + bne _080898B4 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08089AE0 + b _08089940 +_080898B4: + str r1, [r4, #0x50] + adds r0, r4, #0 + movs r1, #0x29 + movs r2, #0 + movs r3, #0xff + bl sub_080A2988 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080898FA +_080898C8: + ldrb r3, [r4, #0xa] + adds r0, r4, #0 + movs r1, #0x29 + movs r2, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _080898EE + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080898EA + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_080898EA: + ldr r0, [r4, #0x54] + str r0, [r4, #0x50] +_080898EE: + ldrb r0, [r4, #0xa] + subs r0, #1 + strb r0, [r4, #0xa] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080898C8 +_080898FA: + bl sub_0805E780 + b _08089940 +_08089900: + strb r3, [r4, #0xc] + ldr r0, [r4, #0x50] + cmp r0, #0 + bne _08089912 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0808991A +_08089912: + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0808991A: + ldrb r0, [r4, #0xb] + cmp r0, #0xff + bne _08089934 + movs r0, #1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_08016A30 + adds r0, r4, #0 + movs r1, #0x15 + bl sub_0801D2B4 + b _08089940 +_08089934: + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + rsbs r0, r0, #0 + strh r0, [r4, #0x36] +_08089940: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08089944 +sub_08089944: @ 0x08089944 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xb] + cmp r3, #0xff + bne _08089964 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + b _08089A76 +_08089964: + ldrb r1, [r4, #0x1b] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r2, r0 + strb r2, [r4, #0x19] + cmp r3, #1 + beq _08089984 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _08089A76 +_08089984: + ldr r0, _08089998 @ =gLinkEntity + movs r1, #0x36 + ldrsh r2, [r0, r1] + movs r1, #0x24 + rsbs r1, r1, #0 + adds r6, r0, #0 + cmp r2, r1 + bge _0808999C + movs r0, #1 + b _0808999E + .align 2, 0 +_08089998: .4byte gLinkEntity +_0808999C: + movs r0, #0 +_0808999E: + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + subs r0, #1 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r5, r6, #0 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xf + movs r3, #0xf + bl sub_080041A0 + cmp r0, #0 + beq _08089A62 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08089A62 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _080899EC + ldr r1, [r4, #0x54] + movs r0, #1 + strb r0, [r1, #0xc] +_080899EC: + ldr r1, _08089A78 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r1, #0x14] + ldrh r0, [r5, #0x32] + subs r0, #0x24 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x36] + adds r0, #0x24 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl sub_0807AA80 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08089A62 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08089A20 + ldrh r0, [r1, #0x2e] + adds r0, #8 + strh r0, [r1, #0x2e] +_08089A20: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08089A36 + ldrh r0, [r1, #0x2e] + subs r0, #8 + strh r0, [r1, #0x2e] +_08089A36: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08089A4C + ldrh r0, [r1, #0x32] + adds r0, #8 + strh r0, [r1, #0x32] +_08089A4C: + adds r0, r6, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08089A62 + ldrh r0, [r1, #0x32] + subs r0, #8 + strh r0, [r1, #0x32] +_08089A62: + ldrb r0, [r4, #0xb] + subs r0, #1 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldrh r0, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x32] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0xf] +_08089A76: + pop {r4, r5, r6, pc} + .align 2, 0 +_08089A78: .4byte gUnk_03003F80 + + thumb_func_start sub_08089A7C +sub_08089A7C: @ 0x08089A7C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + ldr r5, _08089AB0 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xf + movs r3, #0xf + bl sub_080041A0 + cmp r0, #0 + beq _08089AB8 + ldr r2, _08089AB4 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r2, #0x14] + ldr r0, [r2, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x30] + b _08089AD0 + .align 2, 0 +_08089AB0: .4byte gLinkEntity +_08089AB4: .4byte gUnk_03003F80 +_08089AB8: + movs r2, #1 + strb r2, [r4, #0xc] + ldrh r1, [r4, #0x36] + ldrh r3, [r5, #0x36] + adds r0, r1, r3 + strh r0, [r5, #0x36] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + strb r2, [r0] +_08089AD0: + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + pop {r4, r5, pc} + + thumb_func_start sub_08089AE0 +sub_08089AE0: @ 0x08089AE0 + push {lr} + ldr r1, _08089AF8 @ =gLinkEntity + movs r2, #0xf + movs r3, #0xf + bl sub_080041A0 + cmp r0, #0 + beq _08089AF6 + ldr r1, _08089AFC @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r1, #0x14] +_08089AF6: + pop {pc} + .align 2, 0 +_08089AF8: .4byte gLinkEntity +_08089AFC: .4byte gUnk_03003F80 + + thumb_func_start sub_08089B00 +sub_08089B00: @ 0x08089B00 + push {lr} + ldr r2, _08089B14 @ =gUnk_08120DD0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089B14: .4byte gUnk_08120DD0 + + thumb_func_start sub_08089B18 +sub_08089B18: @ 0x08089B18 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #1 + movs r6, #1 + strb r6, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r5, #4 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08089B38 + strb r0, [r4, #0xe] +_08089B38: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08089B66 + cmp r0, #2 + bgt _08089B50 + cmp r0, #1 + beq _08089B5A + b _08089B96 +_08089B50: + cmp r0, #3 + beq _08089B72 + cmp r0, #4 + beq _08089B7C + b _08089B96 +_08089B5A: + ldrh r0, [r4, #0x32] + subs r0, #8 + strh r0, [r4, #0x32] + movs r0, #0x28 + strb r0, [r4, #0xe] + b _08089B96 +_08089B66: + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004168 + b _08089B96 +_08089B72: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + b _08089B96 +_08089B7C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08089B96 + ldrb r1, [r4, #0x18] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r6, [r4, #0xd] + b _08089B9E +_08089B96: + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 +_08089B9E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08089BA0 +sub_08089BA0: @ 0x08089BA0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + ldrb r0, [r5, #0xa] + cmp r0, #4 + bhi _08089BD0 + lsls r0, r0, #2 + ldr r1, _08089BB8 @ =_08089BBC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08089BB8: .4byte _08089BBC +_08089BBC: @ jump table + .4byte _08089BD0 @ case 0 + .4byte _08089BD6 @ case 1 + .4byte _08089BD6 @ case 2 + .4byte _08089C4C @ case 3 + .4byte _08089C72 @ case 4 +_08089BD0: + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _08089CBA +_08089BD6: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08089CBA + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _08089C42 + ldr r0, [r5, #0x54] + ldrh r0, [r0, #6] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08089C48 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x10 + bl sub_0807AB44 + subs r4, #0x4f + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0807AB44 + adds r0, r5, #0 + movs r1, #0x10 + movs r2, #0 + bl sub_0807AB44 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807AB44 +_08089C42: + bl sub_0805E780 + b _08089CBA + .align 2, 0 +_08089C48: .4byte gRoomControls +_08089C4C: + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08089C58 + bl sub_0805E780 +_08089C58: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08089C68 + bl sub_0805E780 +_08089C68: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 + b _08089CBA +_08089C72: + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r1, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _08089C96 + cmp r1, #0 + bne _08089CBA + movs r0, #1 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r5, #0x18] + b _08089CBA +_08089C96: + cmp r1, #0 + beq _08089CBA + movs r0, #0 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #4 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 +_08089CBA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08089CBC +sub_08089CBC: @ 0x08089CBC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _08089CDC + movs r0, #1 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 +_08089CDC: + ldr r1, [r4, #0x50] + ldr r0, [r1, #0x34] + cmp r0, #0 + bne _08089CEA + bl sub_0805E780 + b _08089D02 +_08089CEA: + movs r2, #0x36 + ldrsh r0, [r1, r2] + movs r2, #0x90 + lsls r2, r2, #1 + subs r2, r2, r0 + adds r0, r1, #0 + adds r0, #0x7e + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_08089D02: + pop {r4, pc} + + thumb_func_start sub_08089D04 +sub_08089D04: @ 0x08089D04 + push {lr} + ldr r2, _08089D18 @ =gUnk_08120DF4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089D18: .4byte gUnk_08120DF4 + + thumb_func_start sub_08089D1C +sub_08089D1C: @ 0x08089D1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x19] + movs r4, #0x3f + adds r0, r4, #0 + ands r0, r1 + movs r6, #0x80 + orrs r0, r6 + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x1b] + adds r0, r4, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5, #0x1b] + adds r0, r5, #0 + movs r1, #4 + bl sub_0805E3A0 + ldrb r0, [r5, #0xa] + cmp r0, #7 + bne _08089D90 + ldrb r1, [r5, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08089D54 + b _08089F06 +_08089D54: + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08089D74 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08089D74 + bl sub_0807CBD0 + cmp r0, #0 + bne _08089D6A + b _08089F06 +_08089D6A: + ldrb r1, [r5, #0x1b] + adds r0, r4, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r5, #0x1b] +_08089D74: + ldr r4, _08089D8C @ =gUnk_08120E3C + ldrb r0, [r5, #0xb] + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 + ldrb r0, [r5, #0xb] + lsls r0, r0, #2 + adds r0, r0, r4 + b _08089DCE + .align 2, 0 +_08089D8C: .4byte gUnk_08120E3C +_08089D90: + cmp r0, #0 + beq _08089DAC + ldr r0, _08089DA8 @ =gUnk_08120E14 + ldrb r1, [r5, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r5, #0 + bl sub_08004260 + b _08089DC6 + .align 2, 0 +_08089DA8: .4byte gUnk_08120E14 +_08089DAC: + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + ldr r0, _08089E08 @ =gUnk_08120E14 + ldrb r1, [r5, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r5, #0 + bl sub_080042AC +_08089DC6: + ldr r1, _08089E08 @ =gUnk_08120E14 + ldrb r0, [r5, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 +_08089DCE: + ldrb r0, [r0, #1] + adds r3, r5, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bge _08089DFC + b _08089F00 +_08089DFC: + cmp r0, #6 + ble _08089E0C + cmp r0, #7 + beq _08089E1C + b _08089F00 + .align 2, 0 +_08089E08: .4byte gUnk_08120E14 +_08089E0C: + adds r0, r5, #0 + adds r0, #0x60 + movs r2, #0 + movs r1, #0xe0 + lsls r1, r1, #1 + strh r1, [r0] + strb r2, [r5, #0xe] + b _08089F00 +_08089E1C: + ldrb r1, [r5, #0xb] + cmp r1, #3 + bgt _08089E2C + cmp r1, #2 + bge _08089EEC + cmp r1, #0 + beq _08089E32 + b _08089F00 +_08089E2C: + cmp r1, #4 + beq _08089EF8 + b _08089F00 +_08089E32: + movs r0, #0x10 + str r0, [r5, #0x6c] + strb r1, [r5, #0xe] +_08089E38: + movs r0, #0x2c + movs r1, #7 + movs r2, #1 + bl CreateObject + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _08089EC8 + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r2, [r5, #0x54] + ldr r1, [r5, #0x6c] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #3 + strb r0, [r5, #0xf] +_08089E5C: + ldrb r0, [r5, #0xe] + lsls r0, r0, #2 + ldr r1, _08089EE4 @ =gUnk_08120DFC + adds r4, r0, r1 + ldrb r2, [r4] + subs r2, #2 + movs r0, #0x2c + movs r1, #7 + bl CreateObject + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _08089EAA + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r2, [r5, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldr r2, [r5, #0x54] + ldr r1, [r5, #0x6c] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + movs r1, #2 + ldrsb r1, [r4, r1] + subs r0, r0, r1 + strh r0, [r2, #0x32] + ldr r3, [r5, #0x54] + ldrb r2, [r4, #3] + movs r0, #1 + ands r2, r0 + lsls r2, r2, #6 + ldrb r0, [r3, #0x18] + movs r4, #0x41 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] +_08089EAA: + ldrb r0, [r5, #0xe] + adds r2, r0, #1 + strb r2, [r5, #0xe] + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08089E5C + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _08089EC8 + strb r1, [r5, #0xe] +_08089EC8: + ldr r0, [r5, #0x6c] + adds r0, #0x38 + str r0, [r5, #0x6c] + ldrh r1, [r5, #0x32] + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, _08089EE8 @ =gRoomControls + ldrh r0, [r0, #8] + cmp r1, r0 + bge _08089E38 + movs r0, #1 + strb r0, [r5, #0xe] + b _08089F00 + .align 2, 0 +_08089EE4: .4byte gUnk_08120DFC +_08089EE8: .4byte gRoomControls +_08089EEC: + ldrb r0, [r5, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x19] +_08089EF8: + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] +_08089F00: + adds r0, r5, #0 + bl sub_08089F08 +_08089F06: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08089F08 +sub_08089F08: @ 0x08089F08 + push {lr} + ldr r2, _08089F1C @ =gUnk_08120E50 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089F1C: .4byte gUnk_08120E50 + + thumb_func_start sub_08089F20 +sub_08089F20: @ 0x08089F20 + push {lr} + ldr r2, _08089F34 @ =gUnk_08120E78 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089F34: .4byte gUnk_08120E78 + + thumb_func_start sub_08089F38 +sub_08089F38: @ 0x08089F38 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08089F6C + ldrb r0, [r4, #0xe] + cmp r0, #1 + bhi _08089F5A + adds r0, #1 + strb r0, [r4, #0xe] + b _08089F6C +_08089F5A: + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08089F6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08089F70 +sub_08089F70: @ 0x08089F70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08089F8E + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #0xcc + lsls r0, r0, #1 + bl sub_080A3268 +_08089F8E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08089FEC + movs r0, #0x2c + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08089FBE + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_08089FBE: + movs r0, #0x2c + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08089FDC + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x32] + subs r0, #0x10 + strh r0, [r1, #0x32] +_08089FDC: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #0x18] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08089FEC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08089FF0 +sub_08089FF0: @ 0x08089FF0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0808A00E + movs r0, #0x10 + strb r0, [r1, #0xe] + movs r0, #0xcc + lsls r0, r0, #1 + bl sub_080A3268 +_0808A00E: + pop {pc} + + thumb_func_start sub_0808A010 +sub_0808A010: @ 0x0808A010 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808A07E + ldrb r0, [r4, #0xe] + lsls r0, r0, #2 + ldr r1, _0808A0BC @ =gUnk_08120DFC + adds r5, r0, r1 + ldrb r1, [r5] + movs r0, #0x2c + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0808A06C + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldr r2, [r4, #0x54] + movs r1, #2 + ldrsb r1, [r5, r1] + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r2, #0x32] + ldr r3, [r4, #0x54] + ldrb r1, [r5, #3] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0808A06C: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _0808A07E + movs r0, #0 + strb r0, [r4, #0xe] +_0808A07E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A0BA + movs r0, #0x2c + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0808A0A8 + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_0808A0A8: + ldrh r0, [r4, #0x32] + subs r0, #0x38 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0808A0BA + adds r0, r4, #0 + bl sub_0805E7BC +_0808A0BA: + pop {r4, r5, pc} + .align 2, 0 +_0808A0BC: .4byte gUnk_08120DFC + + thumb_func_start sub_0808A0C0 +sub_0808A0C0: @ 0x0808A0C0 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808A0D6 + adds r0, r2, #0 + bl sub_08004274 +_0808A0D6: + pop {pc} + + thumb_func_start nullsub_517 +nullsub_517: @ 0x0808A0D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0808A0DC +sub_0808A0DC: @ 0x0808A0DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #1 + bne _0808A0EC + b _0808A202 +_0808A0EC: + cmp r0, #1 + bgt _0808A0F6 + cmp r0, #0 + beq _0808A120 + b _0808A202 +_0808A0F6: + cmp r0, #4 + ble _0808A0FC + b _0808A202 +_0808A0FC: + ldr r0, _0808A118 @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _0808A1DA + ldr r1, _0808A11C @ =gLinkEntity + adds r0, r5, #0 + movs r2, #0 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + beq _0808A1DC + b _0808A1B0 + .align 2, 0 +_0808A118: .4byte gUnk_03003F80 +_0808A11C: .4byte gLinkEntity +_0808A120: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0808A202 + ldr r4, _0808A1A8 @ =gRoomControls + ldrh r0, [r4, #8] + str r0, [r5, #0x6c] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r4, #8] + subs r0, r0, r2 + lsrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x70 + strh r1, [r0] + adds r6, r4, #0 + mov r8, r3 + adds r4, r0, #0 + ldr r7, _0808A1AC @ =0x00004017 +_0808A154: + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + mov r2, r8 + ands r1, r2 + ldrh r2, [r6, #8] + ldr r0, [r5, #0x6c] + subs r0, r0, r2 + lsrs r0, r0, #4 + mov r2, r8 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] + ldrh r1, [r4] + adds r0, r7, #0 + movs r2, #2 + bl sub_0800015E + ldrh r1, [r4] + adds r0, r7, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, [r5, #0x6c] + adds r2, r0, #0 + adds r2, #0x10 + str r2, [r5, #0x6c] + ldrh r0, [r6, #8] + ldrh r1, [r6, #0x20] + adds r0, r0, r1 + cmp r2, r0 + bhs _0808A1A2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r2, r0 + bls _0808A154 +_0808A1A2: + movs r0, #0 + strb r0, [r5, #0xe] + b _0808A202 + .align 2, 0 +_0808A1A8: .4byte gRoomControls +_0808A1AC: .4byte 0x00004017 +_0808A1B0: + adds r3, r5, #0 + adds r3, #0x58 + ldrb r2, [r3] + ldrb r1, [r5, #0xb] + subs r1, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, #1 + cmp r2, r0 + bne _0808A1DE + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0808A1DE + movs r0, #1 + strb r0, [r5, #0xe] + ldrb r1, [r3] + adds r1, #1 + adds r0, r5, #0 + bl sub_08004260 + b _0808A1DE +_0808A1DA: + movs r0, #0 +_0808A1DC: + strb r0, [r5, #0xe] +_0808A1DE: + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A202 + ldrb r0, [r5, #0xb] + subs r0, #1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #1 + adds r0, r5, #0 + bl sub_08004260 +_0808A202: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808A208 +sub_0808A208: @ 0x0808A208 + push {lr} + ldr r2, _0808A21C @ =gUnk_08120E84 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A21C: .4byte gUnk_08120E84 + + thumb_func_start sub_0808A220 +sub_0808A220: @ 0x0808A220 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x1b] + movs r6, #0x3f + adds r0, r6, #0 + ands r0, r1 + movs r5, #0x80 + orrs r0, r5 + strb r0, [r4, #0x1b] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808A2E4 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r7, #0x32 + ldrsh r0, [r4, r7] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r2, r4, #0 + adds r2, #0x70 + strh r1, [r2] + ldr r0, _0808A2E8 @ =0x00004017 + ldrh r1, [r2] + movs r2, #1 + bl sub_0800015E + movs r7, #1 + strb r7, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x15 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r3, r0, #0 + cmp r3, #0 + beq _0808A2D4 + ldrh r0, [r4, #0x32] + adds r0, #0x38 + strh r0, [r3, #0x32] + ldrh r0, [r4, #0x12] + strh r0, [r3, #0x12] + adds r0, r4, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r3, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r1, [r4, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r3, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1a] + adds r1, r3, #0 + adds r1, #0x58 + movs r0, #2 + strb r0, [r1] + movs r0, #0x80 + strb r0, [r3, #0xe] + strb r7, [r3, #0xa] + ldrb r1, [r3, #0x19] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r3, #0x19] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r3, #0x1b] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r3, #0x1b] +_0808A2D4: + adds r0, r4, #0 + movs r1, #0x2c + movs r2, #9 + movs r3, #0 + bl sub_080A2988 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808A2E4: .4byte gRoomControls +_0808A2E8: .4byte 0x00004017 + + thumb_func_start nullsub_518 +nullsub_518: @ 0x0808A2EC + bx lr + .align 2, 0 + + thumb_func_start sub_0808A2F0 +sub_0808A2F0: @ 0x0808A2F0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _0808A316 + movs r0, #1 + strb r0, [r5, #0xd] + ldrh r0, [r5, #0x32] + adds r0, #0x28 + strh r0, [r5, #0x32] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0800029C + adds r1, r5, #0 + adds r1, #0x72 + strh r0, [r1] +_0808A316: + ldr r3, _0808A38C @ =gLinkEntity + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r7, #0x3f + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x19] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x19] + ldr r0, _0808A390 @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _0808A39C + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0800029C + ldr r3, _0808A394 @ =0x00004014 + cmp r0, r3 + beq _0808A3EC + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _0808A398 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r7 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + adds r2, #0x18 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r7 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r3, #0 + movs r2, #1 + bl sub_0800015E + b _0808A3EC + .align 2, 0 +_0808A38C: .4byte gLinkEntity +_0808A390: .4byte gUnk_03003F80 +_0808A394: .4byte 0x00004014 +_0808A398: .4byte gRoomControls +_0808A39C: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + adds r6, r5, #0 + adds r6, #0x72 + ldrh r4, [r6] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0800029C + cmp r4, r0 + beq _0808A3EC + ldrh r0, [r6] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808A3F0 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r7 + movs r4, #0x32 + ldrsh r2, [r5, r4] + ldrh r3, [r3, #8] + adds r3, #0x18 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl sub_0800015E +_0808A3EC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808A3F0: .4byte gRoomControls + + thumb_func_start sub_0808A3F4 +sub_0808A3F4: @ 0x0808A3F4 + push {lr} + ldr r2, _0808A408 @ =gUnk_08121060 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A408: .4byte gUnk_08121060 + + thumb_func_start sub_0808A40C +sub_0808A40C: @ 0x0808A40C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808A41E + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x28 + strb r0, [r4, #0xe] +_0808A41E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808A466 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + movs r1, #0x40 + subs r1, r1, r0 + strb r1, [r4, #0xe] + movs r0, #0x2d + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0808A466 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + bl sub_08000E50 + ldr r2, _0808A468 @ =gUnk_08121068 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] +_0808A466: + pop {r4, r5, pc} + .align 2, 0 +_0808A468: .4byte gUnk_08121068 + + thumb_func_start sub_0808A46C +sub_0808A46C: @ 0x0808A46C + push {lr} + ldr r2, _0808A480 @ =gUnk_08121070 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A480: .4byte gUnk_08121070 + + thumb_func_start sub_0808A484 +sub_0808A484: @ 0x0808A484 + push {r4, lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + movs r1, #0x40 + strh r1, [r0, #0x24] + movs r1, #6 + strb r1, [r0, #0x15] + ldrb r3, [r0, #0x19] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r4, #0x40 + orrs r1, r4 + strb r1, [r0, #0x19] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r3, [r1] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + mov r3, ip + strb r1, [r3] + ldrb r1, [r0, #0x1b] + ands r2, r1 + orrs r2, r4 + strb r2, [r0, #0x1b] + movs r1, #0x28 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808A4D0 +sub_0808A4D0: @ 0x0808A4D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A4F2 + adds r0, r4, #0 + bl sub_0805E7BC +_0808A4F2: + pop {r4, pc} + + thumb_func_start sub_0808A4F4 +sub_0808A4F4: @ 0x0808A4F4 + push {lr} + ldr r2, _0808A508 @ =gUnk_08121078 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A508: .4byte gUnk_08121078 + + thumb_func_start sub_0808A50C +sub_0808A50C: @ 0x0808A50C + push {lr} + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldrb r1, [r0, #0xc] + adds r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x19] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + movs r2, #0x39 + rsbs r2, r2, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r3] + bl sub_0808A644 + pop {pc} + + thumb_func_start sub_0808A550 +sub_0808A550: @ 0x0808A550 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _0808A58C @ =0x0000401F + cmp r1, r0 + bhi _0808A5CC + subs r0, #3 + cmp r1, r0 + blo _0808A5CC + adds r0, r1, #0 + subs r0, #0x1c + lsls r1, r0, #1 + strb r1, [r4, #0x14] + lsls r1, r0, #3 + strb r1, [r4, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0808A590 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _0808A598 + .align 2, 0 +_0808A58C: .4byte 0x0000401F +_0808A590: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_0808A598: + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + ldr r0, _0808A5C8 @ =0x0000010F + bl sub_08004488 + b _0808A5DE + .align 2, 0 +_0808A5C8: .4byte 0x0000010F +_0808A5CC: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0808A5DE + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0808A5DE: + pop {r4, pc} + + thumb_func_start sub_0808A5E0 +sub_0808A5E0: @ 0x0808A5E0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0800445C + ldr r2, _0808A618 @ =gUnk_08121088 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A616 + movs r0, #0 + strb r0, [r4, #0xc] +_0808A616: + pop {r4, r5, pc} + .align 2, 0 +_0808A618: .4byte gUnk_08121088 + + thumb_func_start sub_0808A61C +sub_0808A61C: @ 0x0808A61C + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808A634 + adds r0, r2, #0 + bl sub_08004274 + b _0808A640 +_0808A634: + adds r0, r2, #0 + adds r0, #0x29 + ldrb r1, [r0] + movs r2, #7 + orrs r1, r2 + strb r1, [r0] +_0808A640: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808A644 +sub_0808A644: @ 0x0808A644 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808A6D0 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x74 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + ldrh r0, [r5] + ldrb r1, [r6] + bl sub_080002E0 + adds r1, r4, #0 + adds r1, #0x72 + strb r0, [r1] + ldrh r0, [r5] + ldrb r1, [r6] + bl sub_080002C8 + cmp r0, #0x19 + beq _0808A69E + cmp r0, #0xf0 + bne _0808A6E2 +_0808A69E: + ldr r0, _0808A6D4 @ =0x00004015 + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E + movs r0, #3 + strb r0, [r4, #0xc] + adds r5, r4, #0 + adds r5, #0x86 + ldrh r0, [r5] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808A6D8 + ldrh r0, [r5] + bl sub_0807CCC8 + movs r0, #0xcd + bl sub_080A3268 + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + b _0808A6EC + .align 2, 0 +_0808A6D0: .4byte gRoomControls +_0808A6D4: .4byte 0x00004015 +_0808A6D8: + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _0808A6EC +_0808A6E2: + ldr r0, _0808A6F0 @ =0x0000401B + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E +_0808A6EC: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808A6F0: .4byte 0x0000401B + + thumb_func_start sub_0808A6F4 +sub_0808A6F4: @ 0x0808A6F4 + push {lr} + adds r2, r0, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0 + bne _0808A706 + adds r0, #0x33 + strh r1, [r0] +_0808A706: + ldr r0, _0808A718 @ =gUnk_08121178 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A718: .4byte gUnk_08121178 + + thumb_func_start sub_0808A71C +sub_0808A71C: @ 0x0808A71C + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x8f + strb r0, [r1] + subs r1, #4 + movs r0, #0xa + strb r0, [r1] + ldr r0, _0808A75C @ =gUnk_08121180 + str r0, [r4, #0x48] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808A764 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808A760 + strb r5, [r4, #0xa] + b _0808A76E + .align 2, 0 +_0808A75C: .4byte gUnk_08121180 +_0808A760: + strb r0, [r4, #0xa] + b _0808A76E +_0808A764: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_0808A76E: + adds r0, r4, #0 + bl sub_0808A7D8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808A778 +sub_0808A778: @ 0x0808A778 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A7D0 + adds r1, r5, #0 + adds r1, #0x70 + ldrh r0, [r1] + cmp r0, #0 + bne _0808A7D0 + movs r0, #1 + strh r0, [r1] + ldrb r0, [r5, #0xa] + movs r1, #1 + eors r0, r1 + strb r0, [r5, #0xa] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xe8 + strb r0, [r1] + adds r0, r5, #0 + bl sub_0808A7D8 + adds r4, r5, #0 + adds r4, #0x86 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808A7C2 + ldrh r0, [r4] + bl sub_0807CD48 + b _0808A7C8 +_0808A7C2: + ldrh r0, [r4] + bl sub_0807CCC8 +_0808A7C8: + ldr r1, _0808A7D4 @ =0x00000117 + adds r0, r5, #0 + bl sub_0800449C +_0808A7D0: + pop {r4, r5, pc} + .align 2, 0 +_0808A7D4: .4byte 0x00000117 + + thumb_func_start sub_0808A7D8 +sub_0808A7D8: @ 0x0808A7D8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _0808A818 + movs r0, #0xde + lsls r0, r0, #2 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808A814 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + b _0808A844 + .align 2, 0 +_0808A814: .4byte gRoomControls +_0808A818: + ldr r0, _0808A848 @ =0x00000377 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808A84C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_0808A844: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808A848: .4byte 0x00000377 +_0808A84C: .4byte gRoomControls + + thumb_func_start sub_0808A850 +sub_0808A850: @ 0x0808A850 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808A86C @ =gUnk_08121188 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_0808A86C: .4byte gUnk_08121188 + + thumb_func_start sub_0808A870 +sub_0808A870: @ 0x0808A870 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0808A8BE + cmp r0, #1 + bgt _0808A884 + cmp r0, #0 + beq _0808A896 + b _0808A8C4 +_0808A884: + cmp r0, #3 + bgt _0808A8C4 + adds r0, r5, #0 + bl sub_0808A968 + adds r0, r5, #0 + bl sub_0808A8E0 + b _0808A8C4 +_0808A896: + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_0806F798 + lsls r0, r0, #1 + adds r0, #4 + adds r4, r4, r0 + str r4, [r5, #0x6c] + ldrh r1, [r4] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] + movs r0, #1 + strb r0, [r5, #0xc] + b _0808A8C4 +_0808A8BE: + adds r0, r5, #0 + bl sub_0808A968 +_0808A8C4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808A8C8 +sub_0808A8C8: @ 0x0808A8C8 + push {lr} + adds r2, r0, #0 + adds r0, #0x68 + ldr r1, [r2, #0x6c] + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + beq _0808A8DE + adds r0, r2, #0 + bl sub_0808A968 +_0808A8DE: + pop {pc} + + thumb_func_start sub_0808A8E0 +sub_0808A8E0: @ 0x0808A8E0 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + cmp r2, #0 + beq _0808A8F0 + cmp r2, #1 + beq _0808A930 + b _0808A954 +_0808A8F0: + ldr r0, [r4, #0x70] + cmp r0, #0 + beq _0808A930 + ldr r3, [r4, #0x20] + cmp r3, #0 + bge _0808A926 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0808A90C + str r2, [r4, #0x70] + b _0808A926 +_0808A90C: + ldr r0, _0808A918 @ =0xFFFFC000 + cmp r3, r0 + bge _0808A920 + ldr r0, _0808A91C @ =0xFFFFFC00 + b _0808A924 + .align 2, 0 +_0808A918: .4byte 0xFFFFC000 +_0808A91C: .4byte 0xFFFFFC00 +_0808A920: + movs r0, #0x80 + lsls r0, r0, #3 +_0808A924: + str r0, [r4, #0x70] +_0808A926: + ldr r1, [r4, #0x70] + adds r0, r4, #0 + bl sub_08003FC4 + b _0808A962 +_0808A930: + ldr r2, _0808A964 @ =gUnk_08121194 + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _0808A962 +_0808A954: + ldrb r1, [r4, #0xb] + movs r0, #0x5c + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0808A962: + pop {r4, pc} + .align 2, 0 +_0808A964: .4byte gUnk_08121194 + + thumb_func_start sub_0808A968 +sub_0808A968: @ 0x0808A968 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r2, #0x13 + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0808A9C0 @ =gUnk_08121C58 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0xa0 + lsls r0, r0, #6 + str r0, [r4, #0x70] + pop {r4, pc} + .align 2, 0 +_0808A9C0: .4byte gUnk_08121C58 + + thumb_func_start sub_0808A9C4 +sub_0808A9C4: @ 0x0808A9C4 + push {lr} + ldr r2, _0808A9D8 @ =gUnk_0812119C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A9D8: .4byte gUnk_0812119C + + thumb_func_start sub_0808A9DC +sub_0808A9DC: @ 0x0808A9DC + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xa] + strb r1, [r0, #0x1e] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r0, #0x29 + ldrb r1, [r0] + movs r2, #7 + orrs r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start nullsub_519 +nullsub_519: @ 0x0808A9F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0808A9FC +sub_0808A9FC: @ 0x0808A9FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808AA18 @ =gUnk_081211A4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0808AA18: .4byte gUnk_081211A4 + + thumb_func_start sub_0808AA1C +sub_0808AA1C: @ 0x0808AA1C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r4, #0 + movs r6, #1 + strb r6, [r5, #0xc] + bl sub_08052660 + cmp r0, #0 + bne _0808AA36 + adds r0, r5, #0 + movs r1, #0 + bl sub_0801D2B4 +_0808AA36: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0808AACC + cmp r0, #1 + bgt _0808AA46 + cmp r0, #0 + beq _0808AA4C + b _0808AB5E +_0808AA46: + cmp r0, #2 + beq _0808AB20 + b _0808AB5E +_0808AA4C: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0808AAC0 @ =gUnk_080FD224 + str r0, [r5, #0x48] + strb r6, [r5, #0x16] + ldr r0, _0808AAC4 @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808AAC8 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r2, [r5, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r5, #0 + adds r0, #0x45 + strb r6, [r0] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #0xe + strb r0, [r1] + strb r6, [r5, #0x1c] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + b _0808AB5E + .align 2, 0 +_0808AAC0: .4byte gUnk_080FD224 +_0808AAC4: .4byte 0x00004022 +_0808AAC8: .4byte gRoomControls +_0808AACC: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0808AB10 + ldr r0, _0808AB1C @ =gUnk_080FD224 + str r0, [r5, #0x48] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x45 + strb r6, [r0] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #4 + strb r0, [r1] + strb r6, [r5, #0x1c] + movs r0, #3 + strb r0, [r5, #0xc] +_0808AB10: + ldrb r1, [r5, #0x14] + adds r1, #9 + adds r0, r5, #0 + bl sub_08004260 + b _0808AB5E + .align 2, 0 +_0808AB1C: .4byte gUnk_080FD224 +_0808AB20: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x14] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0808AB52 + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [r5, #0x74] + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [r5, #0x78] + b _0808AB5E +_0808AB52: + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [r5, #0x78] + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [r5, #0x74] +_0808AB5E: + adds r0, r5, #0 + bl sub_0808AB68 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808AB68 +sub_0808AB68: @ 0x0808AB68 + push {lr} + ldr r2, _0808AB7C @ =gUnk_081211B4 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808AB7C: .4byte gUnk_081211B4 + + thumb_func_start sub_0808AB80 +sub_0808AB80: @ 0x0808AB80 + push {lr} + ldr r2, _0808AB94 @ =gUnk_081211C0 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808AB94: .4byte gUnk_081211C0 + + thumb_func_start sub_0808AB98 +sub_0808AB98: @ 0x0808AB98 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x50] + ldrh r1, [r2, #0xc] + ldr r0, _0808ABB0 @ =0x00000201 + cmp r1, r0 + bne _0808ABB4 + movs r0, #0 + str r0, [r2, #0x54] + bl sub_0805E780 + b _0808ABC2 + .align 2, 0 +_0808ABB0: .4byte 0x00000201 +_0808ABB4: + ldrb r0, [r2, #0xc] + cmp r0, #2 + bne _0808ABC2 + adds r0, r3, #0 + movs r1, #0 + bl sub_0808B168 +_0808ABC2: + pop {pc} + + thumb_func_start sub_0808ABC4 +sub_0808ABC4: @ 0x0808ABC4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0xc] + ldr r0, _0808AC38 @ =0x00000201 + cmp r1, r0 + bne _0808ABD6 + bl sub_0805E780 +_0808ABD6: + ldr r0, [r4, #0x54] + ldr r1, [r4, #0x50] + bl sub_0808B1F0 + adds r2, r0, #0 + cmp r2, #7 + bhi _0808ABE6 + movs r2, #0 +_0808ABE6: + ldrb r3, [r4, #0x14] + lsls r1, r3, #2 + ldr r0, _0808AC3C @ =gUnk_081211CC + adds r5, r1, r0 + cmp r2, #0x1f + bhi _0808AC5A + cmp r2, #0 + beq _0808ABF8 + subs r2, #6 +_0808ABF8: + ldrh r0, [r5] + str r0, [r4, #0x70] + ldr r1, [r4, #0x50] + movs r0, #2 + ldrsb r0, [r5, r0] + ldrh r3, [r1, #0x2e] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + movs r0, #3 + ldrsb r0, [r5, r0] + ldrh r1, [r1, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808AC40 + lsls r1, r2, #4 + movs r0, #0x80 + lsls r0, r0, #2 + subs r0, r0, r1 + str r0, [r4, #0x74] + lsls r0, r2, #3 + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r0, r1 + str r0, [r4, #0x78] + movs r0, #0xf + strb r0, [r4, #0x1e] + b _0808ACDE + .align 2, 0 +_0808AC38: .4byte 0x00000201 +_0808AC3C: .4byte gUnk_081211CC +_0808AC40: + lsls r1, r2, #4 + movs r0, #0x80 + lsls r0, r0, #2 + subs r0, r0, r1 + str r0, [r4, #0x78] + lsls r0, r2, #3 + movs r3, #0x90 + lsls r3, r3, #1 + adds r0, r0, r3 + str r0, [r4, #0x74] + movs r0, #0x14 + strb r0, [r4, #0x1e] + b _0808ACDE +_0808AC5A: + movs r0, #1 + ands r3, r0 + cmp r3, #0 + beq _0808AC9E + adds r1, r2, #0 + subs r1, #0x20 + lsls r1, r1, #2 + adds r0, #0xff + subs r0, r0, r1 + str r0, [r4, #0x74] + lsls r0, r2, #3 + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + str r0, [r4, #0x78] + movs r0, #0x10 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808AC92 + ldr r0, [r4, #0x50] + lsrs r1, r2, #1 + ldrh r0, [r0, #0x2e] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + b _0808ACDE +_0808AC92: + ldr r1, [r4, #0x50] + lsrs r0, r2, #1 + ldrh r1, [r1, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + b _0808ACDE +_0808AC9E: + adds r1, r2, #0 + subs r1, #0x20 + lsls r1, r1, #2 + movs r0, #0x80 + lsls r0, r0, #1 + subs r0, r0, r1 + str r0, [r4, #0x78] + lsls r0, r2, #3 + movs r3, #0xa0 + lsls r3, r3, #1 + adds r0, r0, r3 + str r0, [r4, #0x74] + movs r0, #0x15 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808ACCE + ldr r0, [r4, #0x50] + lsrs r1, r2, #1 + ldrh r0, [r0, #0x32] + adds r1, r1, r0 + b _0808ACD6 +_0808ACCE: + ldr r0, [r4, #0x50] + lsrs r2, r2, #1 + ldrh r1, [r0, #0x32] + subs r1, r1, r2 +_0808ACD6: + movs r0, #3 + ldrsb r0, [r5, r0] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_0808ACDE: + ldr r1, [r4, #0x74] + ldr r2, [r4, #0x78] + ldr r3, [r4, #0x70] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, r5, pc} + + thumb_func_start sub_0808ACEC +sub_0808ACEC: @ 0x0808ACEC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0808AD00 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0808AD00: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #4 + cmp r0, #0x12 + bhi _0808AD92 + lsls r0, r0, #2 + ldr r1, _0808AD1C @ =_0808AD20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808AD1C: .4byte _0808AD20 +_0808AD20: @ jump table + .4byte _0808AD6C @ case 0 + .4byte _0808AD6C @ case 1 + .4byte _0808AD6C @ case 2 + .4byte _0808AD92 @ case 3 + .4byte _0808AD6C @ case 4 + .4byte _0808AD6C @ case 5 + .4byte _0808AD6C @ case 6 + .4byte _0808AD6C @ case 7 + .4byte _0808AD6C @ case 8 + .4byte _0808AD6C @ case 9 + .4byte _0808AD92 @ case 10 + .4byte _0808AD92 @ case 11 + .4byte _0808AD6C @ case 12 + .4byte _0808AD6C @ case 13 + .4byte _0808AD6C @ case 14 + .4byte _0808AD88 @ case 15 + .4byte _0808AD6C @ case 16 + .4byte _0808AD92 @ case 17 + .4byte _0808AD6C @ case 18 +_0808AD6C: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + bl sub_0806F5A4 + strb r0, [r4, #0x14] + movs r0, #2 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + b _0808AD9E +_0808AD88: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0808AD9E +_0808AD92: + movs r0, #0 + strb r0, [r4, #0xf] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08078930 +_0808AD9E: + pop {r4, pc} + + thumb_func_start sub_0808ADA0 +sub_0808ADA0: @ 0x0808ADA0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + bl sub_0808B1F0 + cmp r0, #7 + bls _0808ADB4 + ldr r1, [r4, #0x54] + cmp r1, #0 + bne _0808ADE2 +_0808ADB4: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r2, #2 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x14] + eors r0, r2 + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + b _0808ADEE +_0808ADE2: + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #0x24] + ldr r0, [r4, #0x54] + bl sub_0806F69C +_0808ADEE: + pop {r4, pc} + + thumb_func_start sub_0808ADF0 +sub_0808ADF0: @ 0x0808ADF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0x14] + adds r1, r2, #0 + adds r1, #0xd + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + bne _0808AE26 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808AE1E + movs r0, #0 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _0808AE80 +_0808AE1E: + adds r0, r4, #0 + bl sub_08004274 + b _0808AE80 +_0808AE26: + adds r1, r2, #1 + cmp r1, r0 + beq _0808AE54 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0x14] + cmp r0, #3 + bne _0808AE42 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0808AE48 +_0808AE42: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0808AE48: + strb r0, [r4, #0x18] + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_080A3268 + b _0808AE80 +_0808AE54: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808AE80 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0808AE80 + ldrb r1, [r4, #0x14] + adds r1, #0xd + adds r0, r4, #0 + bl sub_08004260 +_0808AE80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808AE84 +sub_0808AE84: @ 0x0808AE84 + push {lr} + adds r2, r0, #0 + ldr r0, _0808AEA8 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0808AE94 + movs r0, #6 + strb r0, [r2, #0xd] +_0808AE94: + ldr r0, _0808AEAC @ =gUnk_081211DC + ldrb r1, [r2, #0xd] + subs r1, #5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808AEA8: .4byte gUnk_03003F80 +_0808AEAC: .4byte gUnk_081211DC + + thumb_func_start sub_0808AEB0 +sub_0808AEB0: @ 0x0808AEB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808AF68 + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0808B1F0 + adds r6, r0, #0 + ldr r5, _0808AF10 @ =gUnk_03003F80 + adds r2, r5, #0 + adds r2, #0x90 + ldr r1, _0808AF14 @ =gUnk_081211E4 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r2] + ldrh r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _0808AF20 + adds r0, r4, #0 + bl sub_08004274 + cmp r6, #0x3f + bhi _0808AF08 + ldr r0, _0808AF18 @ =gLinkEntity + ldrb r2, [r4, #0x15] + movs r1, #0x40 + bl sub_080044AE + ldr r0, [r4, #0x7c] + subs r0, #1 + str r0, [r4, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0808AF08 + movs r0, #4 + str r0, [r4, #0x7c] + ldr r0, _0808AF1C @ =0x0000012F + bl sub_080A3268 +_0808AF08: + movs r0, #1 + strb r0, [r4, #0xf] + b _0808AFD0 + .align 2, 0 +_0808AF10: .4byte gUnk_03003F80 +_0808AF14: .4byte gUnk_081211E4 +_0808AF18: .4byte gLinkEntity +_0808AF1C: .4byte 0x0000012F +_0808AF20: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0808AFD0 + ldr r2, _0808AF64 @ =gLinkEntity + ldrb r0, [r2, #0xc] + cmp r0, #1 + bne _0808AFD0 + adds r0, r5, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0808AFD0 + movs r0, #0x1b + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x38 + strb r6, [r0] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r5, #0 + adds r1, #0x39 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0808B1F0 + adds r1, r5, #0 + adds r1, #0x3a + strb r0, [r1] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _0808AFD0 + .align 2, 0 +_0808AF64: .4byte gLinkEntity +_0808AF68: + movs r6, #1 + strb r6, [r4, #0xe] + str r6, [r4, #0x7c] + ldr r5, _0808AFC8 @ =gLinkEntity + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r5, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x14] + adds r1, #5 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0 + bl sub_0808B21C + cmp r0, #0 + beq _0808AFB6 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_0808B168 +_0808AFB6: + ldrb r1, [r4, #0x14] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0808AFCC + ldrh r0, [r4, #0x32] + strh r0, [r5, #0x32] + b _0808AFD0 + .align 2, 0 +_0808AFC8: .4byte gLinkEntity +_0808AFCC: + ldrh r0, [r4, #0x2e] + strh r0, [r5, #0x2e] +_0808AFD0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808AFD4 +sub_0808AFD4: @ 0x0808AFD4 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + strb r1, [r0, #0xd] + ldr r2, [r0, #0x54] + ldrb r0, [r0, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r0, #0x98 + lsls r0, r0, #1 + bl sub_080A3268 + pop {pc} + + thumb_func_start sub_0808AFF0 +sub_0808AFF0: @ 0x0808AFF0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0808B054 @ =gUnk_081211EC + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _0808B058 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0808B01E + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _0808B050 +_0808B01E: + ldrb r5, [r4, #0xa] + cmp r5, #1 + bne _0808B050 + ldr r0, [r4, #0x50] + strb r5, [r0, #0xc] + ldr r0, [r4, #0x50] + strb r5, [r0, #0xd] + ldr r2, [r4, #0x50] + ldrb r0, [r2, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + ldrb r3, [r2, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r3 + strb r0, [r2, #0x10] + ldrb r0, [r4, #0x10] + ands r1, r0 + strb r1, [r4, #0x10] + strb r5, [r4, #0xc] + movs r0, #0x98 + lsls r0, r0, #1 + bl sub_080A3268 +_0808B050: + pop {r4, r5, pc} + .align 2, 0 +_0808B054: .4byte gUnk_081211EC +_0808B058: .4byte gUnk_03003F80 + + thumb_func_start sub_0808B05C +sub_0808B05C: @ 0x0808B05C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808B0AE + ldr r2, _0808B0B8 @ =gLinkEntity + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r0, [r2, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + adds r1, #5 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #1 + bl sub_0808B21C + cmp r0, #0 + beq _0808B0AE + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_0808B168 +_0808B0AE: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + pop {r4, pc} + .align 2, 0 +_0808B0B8: .4byte gLinkEntity + + thumb_func_start sub_0808B0BC +sub_0808B0BC: @ 0x0808B0BC + push {r4, r5, r6, r7, lr} + sub sp, #0x88 + adds r5, r0, #0 + ldr r1, [r5, #0x50] + bl sub_0808B1F0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _0808B0D6 + cmp r0, #1 + beq _0808B0DE + b _0808B162 +_0808B0D6: + adds r0, r5, #0 + bl sub_08004274 + b _0808B162 +_0808B0DE: + ldr r6, _0808B148 @ =gLinkEntity + ldrb r0, [r6, #0x14] + movs r1, #0xe + ands r1, r0 + ldr r0, _0808B14C @ =gUnk_08126EE4 + adds r1, r1, r0 + mov r2, sp + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + mov r0, sp + adds r1, r5, #0 + movs r2, #7 + movs r3, #7 + bl sub_0800419C + cmp r0, #0 + beq _0808B154 + ldrb r0, [r6, #0xc] + cmp r0, #1 + bne _0808B162 + ldr r4, _0808B150 @ =gUnk_03003F80 + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0808B162 + movs r0, #0x1b + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x38 + strb r7, [r0] + ldrb r0, [r5, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x39 + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r1, r6, #0 + bl sub_0808B1F0 + adds r1, r4, #0 + adds r1, #0x3a + strb r0, [r1] + b _0808B162 + .align 2, 0 +_0808B148: .4byte gLinkEntity +_0808B14C: .4byte gUnk_08126EE4 +_0808B150: .4byte gUnk_03003F80 +_0808B154: + movs r0, #0x40 + strh r0, [r5, #0x24] + cmp r7, #0x3f + bhi _0808B162 + adds r0, r5, #0 + bl sub_0806F69C +_0808B162: + add sp, #0x88 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808B168 +sub_0808B168: @ 0x0808B168 + push {r4, r5, lr} + adds r3, r0, #0 + cmp r1, #0 + beq _0808B188 + ldrb r0, [r3, #0x14] + movs r1, #2 + eors r1, r0 + lsls r1, r1, #1 + ldr r0, _0808B184 @ =gUnk_081211F4 + adds r2, r1, r0 + adds r1, r2, #1 + ldr r4, [r3, #0x50] + adds r5, r4, #0 + b _0808B1CE + .align 2, 0 +_0808B184: .4byte gUnk_081211F4 +_0808B188: + ldrb r1, [r3, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808B1B8 + ldr r5, _0808B1AC @ =gLinkEntity + ldr r4, [r3, #0x50] + ldrb r1, [r3, #0x14] + lsls r2, r1, #1 + ldr r0, _0808B1B0 @ =gUnk_081211FC + adds r2, r2, r0 + movs r0, #2 + eors r1, r0 + lsls r1, r1, #1 + ldr r0, _0808B1B4 @ =gUnk_081211F5 + adds r1, r1, r0 + b _0808B1CE + .align 2, 0 +_0808B1AC: .4byte gLinkEntity +_0808B1B0: .4byte gUnk_081211FC +_0808B1B4: .4byte gUnk_081211F5 +_0808B1B8: + ldr r5, [r3, #0x50] + ldr r4, _0808B1E4 @ =gLinkEntity + movs r0, #2 + eors r0, r1 + lsls r0, r0, #1 + ldr r1, _0808B1E8 @ =gUnk_081211F4 + adds r2, r0, r1 + ldrb r0, [r3, #0x14] + lsls r0, r0, #1 + ldr r1, _0808B1EC @ =gUnk_081211FD + adds r1, r0, r1 +_0808B1CE: + movs r0, #0 + ldrsb r0, [r2, r0] + ldrh r5, [r5, #0x2e] + adds r0, r0, r5 + strh r0, [r3, #0x2e] + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r4, [r4, #0x32] + adds r0, r0, r4 + strh r0, [r3, #0x32] + pop {r4, r5, pc} + .align 2, 0 +_0808B1E4: .4byte gLinkEntity +_0808B1E8: .4byte gUnk_081211F4 +_0808B1EC: .4byte gUnk_081211FD + + thumb_func_start sub_0808B1F0 +sub_0808B1F0: @ 0x0808B1F0 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldrb r1, [r2, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808B20A + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + b _0808B212 +_0808B20A: + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0x32 + ldrsh r0, [r3, r2] +_0808B212: + subs r0, r1, r0 + cmp r0, #0 + bge _0808B21A + rsbs r0, r0, #0 +_0808B21A: + pop {pc} + + thumb_func_start sub_0808B21C +sub_0808B21C: @ 0x0808B21C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2] + adds r0, r4, #0 + movs r1, #0x32 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0808B26E + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + ldr r1, [r4, #0x54] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldr r3, [r4, #0x54] + ldrb r0, [r4, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + strb r5, [r0, #0xb] +_0808B26E: + adds r0, r4, #0 + movs r1, #0x32 + movs r2, #2 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x50] + cmp r1, #0 + bne _0808B286 + movs r0, #0 + b _0808B292 +_0808B286: + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + ldr r1, [r4, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + movs r0, #1 +_0808B292: + pop {r4, r5, pc} + + thumb_func_start sub_0808B294 +sub_0808B294: @ 0x0808B294 + push {lr} + ldr r2, _0808B2A8 @ =gUnk_08121300 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808B2A8: .4byte gUnk_08121300 + + thumb_func_start sub_0808B2AC +sub_0808B2AC: @ 0x0808B2AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808B2C4 + adds r0, r4, #0 + bl sub_0808B41C + adds r0, r4, #0 + bl sub_0808B3AC + b _0808B2CA +_0808B2C4: + adds r0, r4, #0 + bl sub_0808B42C +_0808B2CA: + pop {r4, pc} + + thumb_func_start sub_0808B2CC +sub_0808B2CC: @ 0x0808B2CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808B2E6 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B31C + b _0808B2F4 +_0808B2E6: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808B31C +_0808B2F4: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldr r0, _0808B320 @ =0x000001A5 + bl sub_08004488 +_0808B31C: + pop {r4, pc} + .align 2, 0 +_0808B320: .4byte 0x000001A5 + + thumb_func_start sub_0808B324 +sub_0808B324: @ 0x0808B324 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808B340 + adds r0, r4, #0 + bl sub_0808B42C +_0808B340: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B344 +sub_0808B344: @ 0x0808B344 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808B35E + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808B384 + b _0808B36C +_0808B35E: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B384 +_0808B36C: + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0808B3AC + ldr r0, _0808B388 @ =0x000001A5 + bl sub_08004488 +_0808B384: + pop {r4, pc} + .align 2, 0 +_0808B388: .4byte 0x000001A5 + + thumb_func_start sub_0808B38C +sub_0808B38C: @ 0x0808B38C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808B3A8 + adds r0, r4, #0 + bl sub_0808B41C +_0808B3A8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B3AC +sub_0808B3AC: @ 0x0808B3AC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _0808B414 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldrh r0, [r4] + ldrb r1, [r5] + bl sub_080002E0 + adds r1, r6, #0 + adds r1, #0x74 + strb r0, [r1] + ldr r0, _0808B418 @ =0x0000400B + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0808B414: .4byte gRoomControls +_0808B418: .4byte 0x0000400B + + thumb_func_start sub_0808B41C +sub_0808B41C: @ 0x0808B41C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808B42C +sub_0808B42C: @ 0x0808B42C + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + movs r1, #1 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808B448 +sub_0808B448: @ 0x0808B448 + push {lr} + adds r2, r0, #0 + adds r0, #0x70 + ldrb r0, [r0] + cmp r0, #0 + bne _0808B46C + ldr r0, _0808B468 @ =gUnk_08121368 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0808B472 + .align 2, 0 +_0808B468: .4byte gUnk_08121368 +_0808B46C: + adds r0, r2, #0 + bl sub_0808B73C +_0808B472: + pop {pc} + + thumb_func_start sub_0808B474 +sub_0808B474: @ 0x0808B474 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xf] + ldr r1, _0808B4D8 @ =gUnk_08121380 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0xf + ands r1, r0 + ldrb r3, [r4, #0x1a] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x1a] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r3] + ldr r0, _0808B4DC @ =gUnk_080FD168 + str r0, [r4, #0x48] + ldrb r0, [r4, #0x11] + ands r2, r0 + movs r0, #3 + orrs r2, r0 + strb r2, [r4, #0x11] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B4E0 + adds r0, r4, #0 + bl sub_0808B830 + b _0808B4F8 + .align 2, 0 +_0808B4D8: .4byte gUnk_08121380 +_0808B4DC: .4byte gUnk_080FD168 +_0808B4E0: + bl sub_08052660 + cmp r0, #0 + beq _0808B4F8 + ldrb r0, [r4, #0xa] + bl sub_0807CAEC + cmp r0, #0 + beq _0808B4F8 + adds r0, r4, #0 + bl sub_0808B830 +_0808B4F8: + adds r0, r4, #0 + bl sub_0808B7C8 + cmp r0, #0 + beq _0808B528 + movs r2, #4 + strb r2, [r4, #0xc] + movs r0, #0x60 + strb r0, [r4, #0xf] + ldr r1, _0808B52C @ =gLinkEntity + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + strb r2, [r1, #0x14] + movs r0, #0x89 + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0xf] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_0805E4E0 +_0808B528: + pop {r4, pc} + .align 2, 0 +_0808B52C: .4byte gLinkEntity + + thumb_func_start sub_0808B530 +sub_0808B530: @ 0x0808B530 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B562 + adds r0, r4, #0 + bl sub_0808B830 + bl sub_08052660 + cmp r0, #0 + beq _0808B554 + ldrb r0, [r4, #0xa] + bl sub_0807CAC8 +_0808B554: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + adds r0, #0xd6 + bl sub_08004488 +_0808B562: + pop {r4, pc} + + thumb_func_start sub_0808B564 +sub_0808B564: @ 0x0808B564 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xf] + subs r1, r0, #1 + strb r1, [r3, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0808B57A + movs r0, #3 + strb r0, [r3, #0xc] + b _0808B58E +_0808B57A: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x19 + movs r1, #1 + bics r1, r0 + ldrb r2, [r3, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0808B58E: + pop {pc} + + thumb_func_start sub_0808B590 +sub_0808B590: @ 0x0808B590 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0808B7C8 + cmp r0, #0 + beq _0808B5E4 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0808B5E6 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x60 + strb r0, [r4, #0xf] + bl sub_08077B20 + ldr r1, _0808B5DC @ =gLinkEntity + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + movs r0, #4 + strb r0, [r1, #0x14] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + ldrb r1, [r4, #0xf] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_0805E4E0 + ldr r0, _0808B5E0 @ =0x00000113 + bl sub_080A3268 + b _0808B5E6 + .align 2, 0 +_0808B5DC: .4byte gLinkEntity +_0808B5E0: .4byte 0x00000113 +_0808B5E4: + strb r0, [r4, #0xe] +_0808B5E6: + pop {r4, pc} + + thumb_func_start sub_0808B5E8 +sub_0808B5E8: @ 0x0808B5E8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0808B610 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + ldr r1, _0808B60C @ =gLinkEntity + movs r0, #4 + strb r0, [r1, #0x14] + movs r0, #0x10 + strb r0, [r1, #0x15] + b _0808B67E + .align 2, 0 +_0808B60C: .4byte gLinkEntity +_0808B610: + movs r5, #0 + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + beq _0808B644 + cmp r0, #0x20 + bgt _0808B624 + cmp r0, #0 + beq _0808B64E + b _0808B66E +_0808B624: + cmp r0, #0x40 + bne _0808B66E + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x58 + bne _0808B638 + movs r0, #0x8a + lsls r0, r0, #1 + bl sub_080A3268 +_0808B638: + ldrb r1, [r4, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0808B66E + b _0808B672 +_0808B644: + movs r0, #3 + ands r1, r0 + cmp r1, #0 + bne _0808B66E + b _0808B672 +_0808B64E: + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0808B66E + ldr r0, _0808B668 @ =gLinkEntity + ldrb r0, [r0, #0x14] + cmp r0, #4 + bne _0808B66C + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x18 + bls _0808B66E + b _0808B672 + .align 2, 0 +_0808B668: .4byte gLinkEntity +_0808B66C: + movs r5, #1 +_0808B66E: + cmp r5, #0 + beq _0808B67E +_0808B672: + ldr r0, _0808B680 @ =gLinkEntity + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] +_0808B67E: + pop {r4, r5, pc} + .align 2, 0 +_0808B680: .4byte gLinkEntity + + thumb_func_start sub_0808B684 +sub_0808B684: @ 0x0808B684 + push {lr} + mov ip, r0 + ldrb r0, [r0, #0xf] + subs r1, r0, #1 + mov r0, ip + strb r1, [r0, #0xf] + lsls r0, r1, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0808B6E8 + ldr r3, _0808B6E4 @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r3, #8] + strb r2, [r3, #9] + mov r0, ip + adds r0, #0x7c + ldrb r0, [r0] + strb r0, [r3, #0xc] + mov r0, ip + adds r0, #0x7d + ldrb r0, [r0] + strb r0, [r3, #0xd] + mov r0, ip + adds r0, #0x84 + ldrh r1, [r0] + movs r0, #0x3f + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + movs r2, #0 + strh r0, [r3, #0x10] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + adds r0, #8 + strh r0, [r3, #0x12] + strb r2, [r3, #0x14] + movs r0, #4 + strb r0, [r3, #0xe] + strb r2, [r3, #0xf] + mov r1, ip + ldrb r0, [r1, #0xa] + cmp r0, #2 + bne _0808B736 + strb r0, [r3, #9] + b _0808B736 + .align 2, 0 +_0808B6E4: .4byte gUnk_030010A0 +_0808B6E8: + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + beq _0808B702 + cmp r0, #0x20 + bgt _0808B6FA + cmp r0, #0 + beq _0808B706 + b _0808B724 +_0808B6FA: + cmp r0, #0x40 + bne _0808B724 + movs r0, #7 + b _0808B710 +_0808B702: + movs r0, #3 + b _0808B710 +_0808B706: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _0808B718 + movs r0, #1 +_0808B710: + ands r1, r0 + cmp r1, #0 + bne _0808B724 + b _0808B72A +_0808B718: + ldr r2, _0808B738 @ =gLinkEntity + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] +_0808B724: + movs r0, #0 + cmp r0, #0 + beq _0808B736 +_0808B72A: + ldr r0, _0808B738 @ =gLinkEntity + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] +_0808B736: + pop {pc} + .align 2, 0 +_0808B738: .4byte gLinkEntity + + thumb_func_start sub_0808B73C +sub_0808B73C: @ 0x0808B73C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808B766 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0808B766: + ldr r5, _0808B78C @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + beq _0808B790 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0808B7C0 + .align 2, 0 +_0808B78C: .4byte gLinkEntity +_0808B790: + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0x2e + bl sub_0806FCB8 + cmp r0, #0 + beq _0808B7B6 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + b _0808B7BE +_0808B7B6: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 +_0808B7BE: + strb r0, [r4, #0x18] +_0808B7C0: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_0808B7C8 +sub_0808B7C8: @ 0x0808B7C8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _0808B824 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808B82C + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x12 + beq _0808B82C + ldr r4, _0808B828 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0808B82C + bl sub_08079F8C + cmp r0, #0 + beq _0808B82C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #5 + movs r3, #5 + bl sub_080041A0 + cmp r0, #0 + beq _0808B82C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808B82C + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0808B81E + ldrb r0, [r4, #0xc] + cmp r0, #0x1b + bne _0808B81E + bl sub_080791D0 +_0808B81E: + movs r0, #1 + b _0808B82E + .align 2, 0 +_0808B824: .4byte gUnk_03003F80 +_0808B828: .4byte gLinkEntity +_0808B82C: + movs r0, #0 +_0808B82E: + pop {r4, r5, pc} + + thumb_func_start sub_0808B830 +sub_0808B830: @ 0x0808B830 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x34 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0808B86A + adds r1, r2, #0 + adds r1, #0x70 + movs r0, #1 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0806FA24 +_0808B86A: + pop {r4, pc} + + thumb_func_start sub_0808B86C +sub_0808B86C: @ 0x0808B86C + push {lr} + ldr r2, _0808B880 @ =gUnk_081213C4 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808B880: .4byte gUnk_081213C4 + + thumb_func_start sub_0808B884 +sub_0808B884: @ 0x0808B884 + push {lr} + ldr r2, _0808B898 @ =gUnk_081213D0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808B898: .4byte gUnk_081213D0 + + thumb_func_start sub_0808B89C +sub_0808B89C: @ 0x0808B89C + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x38 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B8D4 +sub_0808B8D4: @ 0x0808B8D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808B904 + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + adds r0, #1 + strb r0, [r4, #0xb] + ldrb r0, [r4, #0xb] + movs r1, #3 + bl __modsi3 + strb r0, [r4, #0xb] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 +_0808B904: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B908 +sub_0808B908: @ 0x0808B908 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0808B910 +sub_0808B910: @ 0x0808B910 + push {lr} + ldr r2, _0808B92C @ =gUnk_081213DC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r2, _0808B930 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + pop {pc} + .align 2, 0 +_0808B92C: .4byte gUnk_081213DC +_0808B930: .4byte gUnk_03003F80 + + thumb_func_start sub_0808B934 +sub_0808B934: @ 0x0808B934 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r7, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strb r7, [r4, #0x1e] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808B9B8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0808B9C0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xf] + ldr r0, _0808B9BC @ =0x00004022 + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E + b _0808B9D2 + .align 2, 0 +_0808B9B8: .4byte gRoomControls +_0808B9BC: .4byte 0x00004022 +_0808B9C0: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r7, [r4, #0xe] +_0808B9D2: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808B9D4 +sub_0808B9D4: @ 0x0808B9D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _0808BA0A + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #7 + strb r0, [r4, #0xe] + strb r1, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldr r0, _0808BA0C @ =0x0000010B + bl sub_08004488 +_0808BA0A: + pop {r4, pc} + .align 2, 0 +_0808BA0C: .4byte 0x0000010B + + thumb_func_start sub_0808BA10 +sub_0808BA10: @ 0x0808BA10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BA44 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0xc + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] +_0808BA44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808BA48 +sub_0808BA48: @ 0x0808BA48 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08083734 + cmp r0, #0 + beq _0808BA68 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_080836DC +_0808BA68: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808BA6C +sub_0808BA6C: @ 0x0808BA6C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BAA4 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08083814 + ldr r0, _0808BAA8 @ =0x0000010B + bl sub_08004488 + ldr r0, _0808BAAC @ =0x00004022 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0808BAA4: + pop {r4, pc} + .align 2, 0 +_0808BAA8: .4byte 0x0000010B +_0808BAAC: .4byte 0x00004022 + + thumb_func_start nullsub_520 +nullsub_520: @ 0x0808BAB0 + bx lr + .align 2, 0 + + thumb_func_start sub_0808BAB4 +sub_0808BAB4: @ 0x0808BAB4 + push {lr} + ldr r2, _0808BAC8 @ =gUnk_081213F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BAC8: .4byte gUnk_081213F4 + + thumb_func_start sub_0808BACC +sub_0808BACC: @ 0x0808BACC + push {r4, lr} + adds r2, r0, #0 + movs r4, #1 + strb r4, [r2, #0xc] + movs r3, #0x10 + strb r3, [r2, #0xe] + ldrh r0, [r2, #0x36] + subs r0, #0x10 + strh r0, [r2, #0x36] + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _0808BAEA + movs r0, #2 + strb r0, [r2, #0x1e] + b _0808BAFC +_0808BAEA: + movs r0, #0 + strb r0, [r2, #0x1e] + ldr r0, [r2, #0x50] + ldrh r1, [r0, #0x2e] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0808BAFC + strb r4, [r2, #0x1e] +_0808BAFC: + adds r0, r2, #0 + bl sub_080A29BC + pop {r4, pc} + + thumb_func_start sub_0808BB04 +sub_0808BB04: @ 0x0808BB04 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _0808BB16 + bl sub_0805E780 +_0808BB16: + pop {pc} + + thumb_func_start sub_0808BB18 +sub_0808BB18: @ 0x0808BB18 + push {lr} + ldr r2, _0808BB2C @ =gUnk_08121440 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BB2C: .4byte gUnk_08121440 + + thumb_func_start sub_0808BB30 +sub_0808BB30: @ 0x0808BB30 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x17 + bl GetProgressFlag + adds r1, r0, #0 + cmp r1, #0 + beq _0808BB4C + movs r0, #0x4a + bl sub_0801D7EC + bl sub_0805E780 + b _0808BBD4 +_0808BB4C: + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x10] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1b] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x3f + strb r3, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #5 + movs r0, #4 + strb r0, [r1] + ldr r0, _0808BBD8 @ =gUnk_080FD150 + str r0, [r4, #0x48] + movs r0, #2 + strb r0, [r4, #0x1e] + ldr r0, _0808BBDC @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0808BDB0 + ldr r0, [r4, #0x50] + ldr r1, [r0, #0x20] + movs r2, #0xb8 + lsls r2, r2, #1 + adds r0, r2, #0 + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0808BBE0 +_0808BBD4: + pop {r4, pc} + .align 2, 0 +_0808BBD8: .4byte gUnk_080FD150 +_0808BBDC: .4byte gLinkEntity + + thumb_func_start sub_0808BBE0 +sub_0808BBE0: @ 0x0808BBE0 + push {lr} + adds r3, r0, #0 + movs r1, #0x32 + ldrsh r0, [r3, r1] + ldr r1, _0808BC20 @ =gRoomControls + movs r2, #0xc + ldrsh r1, [r1, r2] + subs r1, r0, r1 + cmp r1, #0x9f + bhi _0808BC2C + adds r0, r1, #0 + cmp r1, #0 + bge _0808BBFC + adds r0, #0xf +_0808BBFC: + asrs r1, r0, #4 + ldr r0, _0808BC24 @ =gUnk_08121474 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r3, #0 + adds r2, #0x63 + strb r0, [r2] + lsls r0, r1, #2 + ldr r1, _0808BC28 @ =gUnk_0812144C + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C + b _0808BC38 + .align 2, 0 +_0808BC20: .4byte gRoomControls +_0808BC24: .4byte gUnk_08121474 +_0808BC28: .4byte gUnk_0812144C +_0808BC2C: + adds r2, r3, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_0808BC38: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808BC3C +sub_0808BC3C: @ 0x0808BC3C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r2, _0808BC98 @ =gRoomControls + ldrh r0, [r2, #6] + adds r0, #0x78 + movs r4, #0 + strh r0, [r5, #0x2e] + ldr r0, [r5, #0x50] + ldr r1, [r0, #0x20] + ldr r0, _0808BC9C @ =0xFFFFFE90 + adds r1, r1, r0 + ldrh r0, [r2, #8] + subs r0, r0, r1 + strh r0, [r5, #0x32] + adds r0, r5, #0 + bl sub_0808BBE0 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x93 + bne _0808BCE4 + ldrb r0, [r5, #0xe] + subs r2, r0, #1 + strb r2, [r5, #0xe] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + lsls r0, r2, #0x18 + cmp r0, #0 + bne _0808BCA0 + movs r0, #0x17 + bl sub_0807CD04 + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #0x80 + strb r0, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x63 + strb r4, [r0] + b _0808BCFE + .align 2, 0 +_0808BC98: .4byte gRoomControls +_0808BC9C: .4byte 0xFFFFFE90 +_0808BCA0: + movs r6, #1 + ands r2, r6 + cmp r2, #0 + beq _0808BCCA + bl sub_08000E50 + movs r4, #3 + ands r0, r4 + ldr r1, _0808BCDC @ =0x0000FFFE + adds r0, r0, r1 + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + bl sub_08000E50 + ands r0, r4 + ldr r1, _0808BCE0 @ =0x0000FFFF + adds r0, r0, r1 + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] +_0808BCCA: + ldrb r0, [r5, #0xf] + cmp r0, #1 + beq _0808BCFE + strb r6, [r5, #0xf] + movs r0, #0x4a + bl sub_0801D7EC + b _0808BCFE + .align 2, 0 +_0808BCDC: .4byte 0x0000FFFE +_0808BCE0: .4byte 0x0000FFFF +_0808BCE4: + movs r0, #0x78 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x18] + subs r0, #0x7c + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0808BCFE + strb r4, [r5, #0xf] + movs r0, #0x49 + bl sub_0801D7EC +_0808BCFE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808BD00 +sub_0808BD00: @ 0x0808BD00 + push {lr} + movs r0, #0x17 + bl sub_0807CD04 + movs r0, #0x72 + bl sub_080A3268 + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_0808BD14 +sub_0808BD14: @ 0x0808BD14 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0808BD34 + subs r0, #8 + strb r0, [r5, #0xf] + ldrb r0, [r5, #0xf] + movs r2, #0x80 + lsls r2, r2, #2 + subs r2, r2, r0 + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0808BD34: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x93 + bne _0808BD74 + ldr r4, _0808BD70 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + subs r2, #6 + adds r0, r5, #0 + movs r3, #0x1c + bl sub_0806FCB8 + cmp r0, #0 + beq _0808BDAE + adds r0, r5, #0 + bl sub_0808BD00 + b _0808BDAE + .align 2, 0 +_0808BD70: .4byte gLinkEntity +_0808BD74: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808BD8A + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #0x1e + strb r0, [r5, #0xe] + b _0808BDAE +_0808BD8A: + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BDAE + adds r0, r5, #0 + bl sub_0808BD00 +_0808BDAE: + pop {r4, r5, pc} + + thumb_func_start sub_0808BDB0 +sub_0808BDB0: @ 0x0808BDB0 + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldr r4, _0808BDD4 @ =gUnk_03003DA0 + ldr r2, [r4, #4] + movs r0, #0 + str r0, [r3, #0x50] + cmp r2, r4 + beq _0808BDE6 + ldr r6, _0808BDD8 @ =0x0000FFFF + ldr r5, _0808BDDC @ =0x00000C09 +_0808BDC4: + ldrh r1, [r2, #8] + adds r0, r6, #0 + ands r0, r1 + cmp r0, r5 + bne _0808BDE0 + str r2, [r3, #0x50] + b _0808BDE6 + .align 2, 0 +_0808BDD4: .4byte gUnk_03003DA0 +_0808BDD8: .4byte 0x0000FFFF +_0808BDDC: .4byte 0x00000C09 +_0808BDE0: + ldr r2, [r2, #4] + cmp r2, r4 + bne _0808BDC4 +_0808BDE6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808BDE8 +sub_0808BDE8: @ 0x0808BDE8 + push {lr} + ldr r2, _0808BDFC @ =gUnk_08121480 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BDFC: .4byte gUnk_08121480 + + thumb_func_start sub_0808BE00 +sub_0808BE00: @ 0x0808BE00 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_0806F798 + lsls r0, r0, #1 + adds r0, #4 + adds r4, r4, r0 + str r4, [r5, #0x78] + ldrh r1, [r4] + adds r0, r5, #0 + adds r0, #0x70 + strh r1, [r0] + movs r0, #1 + strb r0, [r5, #0xc] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808BE2C +sub_0808BE2C: @ 0x0808BE2C + push {r4, lr} + adds r2, r0, #0 + ldr r0, _0808BE78 @ =gUnk_02002A40 + ldr r1, _0808BE7C @ =0x0000024E + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + beq _0808BE74 + adds r0, r2, #0 + adds r0, #0x70 + ldr r1, [r2, #0x78] + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + beq _0808BE74 + adds r0, r2, #0 + movs r1, #0x58 + movs r2, #0 + bl sub_080A2A20 + adds r1, r0, #0 + cmp r1, #0 + beq _0808BE6C + ldr r0, _0808BE80 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + movs r0, #0x80 + strh r0, [r1, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] +_0808BE6C: + movs r0, #1 + strb r0, [r4] + bl sub_0805E780 +_0808BE74: + pop {r4, pc} + .align 2, 0 +_0808BE78: .4byte gUnk_02002A40 +_0808BE7C: .4byte 0x0000024E +_0808BE80: .4byte gLinkEntity + + thumb_func_start sub_0808BE84 +sub_0808BE84: @ 0x0808BE84 + push {lr} + ldr r2, _0808BE98 @ =gUnk_08121488 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BE98: .4byte gUnk_08121488 + + thumb_func_start sub_0808BE9C +sub_0808BE9C: @ 0x0808BE9C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3f + movs r5, #1 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + ldrb r0, [r4, #0xa] + bl sub_0807CBD0 + cmp r0, #0 + beq _0808BEEE + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808BEF8 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0808BF10 +_0808BEEE: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808BF04 +_0808BEF8: + strb r5, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0808BF10 +_0808BF04: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_0808BF10: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808BF14 +sub_0808BF14: @ 0x0808BF14 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808C128 + cmp r0, #0 + beq _0808BF4C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0808C13C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808BF3E + ldrb r0, [r4, #0xa] + bl sub_0807CCB4 + b _0808BF44 +_0808BF3E: + ldrb r0, [r4, #0xa] + bl sub_0807CD34 +_0808BF44: + adds r0, r4, #0 + movs r1, #0 + bl sub_0808C148 +_0808BF4C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0808C01C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808BF58 +sub_0808BF58: @ 0x0808BF58 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0808BF94 + cmp r0, #1 + bgt _0808BF74 + cmp r0, #0 + beq _0808BF7A + b _0808BFD6 +_0808BF74: + cmp r0, #2 + beq _0808BFB0 + b _0808BFD6 +_0808BF7A: + ldr r1, [r4, #0x20] + ldr r0, _0808BF90 @ =0x00017FFF + cmp r1, r0 + bgt _0808BFD6 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + b _0808BFD6 + .align 2, 0 +_0808BF90: .4byte 0x00017FFF +_0808BF94: + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808BFD6 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + b _0808BFD6 +_0808BFB0: + adds r0, r4, #0 + bl sub_080042B8 + movs r0, #0x36 + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _0808BFD6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C148 +_0808BFD6: + pop {r4, pc} + + thumb_func_start sub_0808BFD8 +sub_0808BFD8: @ 0x0808BFD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808C128 + cmp r0, #0 + beq _0808C010 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0808C13C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808C002 + ldrb r0, [r4, #0xa] + bl sub_0807CD34 + b _0808C008 +_0808C002: + ldrb r0, [r4, #0xa] + bl sub_0807CCB4 +_0808C008: + adds r0, r4, #0 + movs r1, #0 + bl sub_0808C148 +_0808C010: + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C01C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808C01C +sub_0808C01C: @ 0x0808C01C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, #0x18 + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #0x18 + movs r2, #0x30 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _0808C0A6 + ldr r2, _0808C06C @ =gUnk_02033A90 + ldrh r0, [r4, #0x2e] + strh r0, [r2, #0x12] + ldrh r0, [r4, #0x32] + strh r0, [r2, #0x14] + movs r6, #2 + strb r6, [r2, #0x16] + movs r0, #4 + cmp r5, #0 + beq _0808C050 + movs r0, #2 +_0808C050: + strb r0, [r2, #0x17] + cmp r5, #1 + bne _0808C0A6 + ldr r3, _0808C070 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0808C074 + ldrb r0, [r3, #2] + cmp r0, #0 + bne _0808C074 + strb r6, [r2, #0x18] + b _0808C082 + .align 2, 0 +_0808C06C: .4byte gUnk_02033A90 +_0808C070: .4byte gUnk_03003F80 +_0808C074: + bl sub_08057810 + cmp r0, #0 + beq _0808C082 + ldr r1, _0808C0A8 @ =gUnk_02033A90 + movs r0, #3 + strb r0, [r1, #0x18] +_0808C082: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_080577AC + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0808C0A6 + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0xa9 + lsls r0, r0, #1 + bl sub_080A3268 +_0808C0A6: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808C0A8: .4byte gUnk_02033A90 + + thumb_func_start sub_0808C0AC +sub_0808C0AC: @ 0x0808C0AC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0808C0E8 + cmp r0, #1 + bgt _0808C0C8 + cmp r0, #0 + beq _0808C0CE + b _0808C126 +_0808C0C8: + cmp r0, #2 + beq _0808C104 + b _0808C126 +_0808C0CE: + ldr r1, [r4, #0x20] + ldr r0, _0808C0E4 @ =0x00017FFF + cmp r1, r0 + bgt _0808C126 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + b _0808C126 + .align 2, 0 +_0808C0E4: .4byte 0x00017FFF +_0808C0E8: + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808C126 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + b _0808C126 +_0808C104: + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808C126 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C148 +_0808C126: + pop {r4, pc} + + thumb_func_start sub_0808C128 +sub_0808C128: @ 0x0808C128 + push {lr} + movs r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _0808C136 + movs r1, #1 +_0808C136: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808C13C +sub_0808C13C: @ 0x0808C13C + movs r1, #0 + strb r1, [r0, #0xd] + movs r1, #0xa0 + lsls r1, r1, #0xa + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_0808C148 +sub_0808C148: @ 0x0808C148 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r2, #0x2e + ldrsh r0, [r6, r2] + ldr r4, _0808C1A4 @ =gRoomControls + ldrh r2, [r4, #6] + subs r0, r0, r2 + asrs r5, r0, #4 + movs r3, #0x3f + ands r5, r3 + movs r2, #0x32 + ldrsh r0, [r6, r2] + ldrh r2, [r4, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r5, r0 + cmp r1, #0 + bne _0808C1B8 + ldr r0, _0808C1A8 @ =0x00004092 + subs r1, r5, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _0808C1AC @ =0x00004093 + ldrb r2, [r4] + adds r1, r5, #0 + bl sub_0800015E + ldr r0, _0808C1B0 @ =0x00004094 + adds r1, r5, #0 + adds r1, #0x3f + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _0808C1B4 @ =0x00004095 + adds r1, r5, #0 + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0800015E + b _0808C1E0 + .align 2, 0 +_0808C1A4: .4byte gRoomControls +_0808C1A8: .4byte 0x00004092 +_0808C1AC: .4byte 0x00004093 +_0808C1B0: .4byte 0x00004094 +_0808C1B4: .4byte 0x00004095 +_0808C1B8: + subs r0, r5, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C +_0808C1E0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808C1E4 +sub_0808C1E4: @ 0x0808C1E4 + push {lr} + ldr r2, _0808C1F8 @ =gUnk_081214D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C1F8: .4byte gUnk_081214D8 + + thumb_func_start sub_0808C1FC +sub_0808C1FC: @ 0x0808C1FC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r2] + ldr r0, _0808C2B0 @ =0x0000FFFF + cmp r1, r0 + beq _0808C21A + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _0808C21A + bl sub_0805E780 +_0808C21A: + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _0808C230 + bl sub_0807CBE4 + cmp r0, #0 + beq _0808C230 + bl sub_0805E780 +_0808C230: + ldrb r0, [r4, #0xa] + lsrs r0, r0, #2 + strb r0, [r4, #0xb] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldr r0, _0808C2B4 @ =gUnk_080FD180 + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xa] + movs r0, #3 + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x76 + strh r0, [r5] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808C2B8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrb r0, [r4, #0xa] + movs r1, #0x1f + ands r1, r0 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _0808C2F8 + cmp r0, #1 + bgt _0808C2BC + cmp r0, #0 + beq _0808C2C2 + b _0808C31C + .align 2, 0 +_0808C2B0: .4byte 0x0000FFFF +_0808C2B4: .4byte gUnk_080FD180 +_0808C2B8: .4byte gRoomControls +_0808C2BC: + cmp r0, #2 + beq _0808C306 + b _0808C31C +_0808C2C2: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0808C500 + adds r0, r4, #0 + bl sub_08078800 + ldr r1, _0808C2F4 @ =gUnk_0811F740 + ldrh r0, [r5] + adds r0, r0, r1 + ldrb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + movs r3, #0 + bl sub_08078850 + b _0808C31C + .align 2, 0 +_0808C2F4: .4byte gUnk_0811F740 +_0808C2F8: + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808C31C +_0808C306: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0808C500 +_0808C31C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808C320 +sub_0808C320: @ 0x0808C320 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0808C344 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_0808C344: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808C348 +sub_0808C348: @ 0x0808C348 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808C37C + ldr r0, _0808C374 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0808C36A + ldr r0, _0808C378 @ =0x00000185 + bl sub_080A3268 +_0808C36A: + adds r0, r4, #0 + bl sub_08004274 + b _0808C382 + .align 2, 0 +_0808C374: .4byte gUnk_030010A0 +_0808C378: .4byte 0x00000185 +_0808C37C: + adds r0, r4, #0 + bl sub_0808C4BC +_0808C382: + pop {r4, pc} + + thumb_func_start sub_0808C384 +sub_0808C384: @ 0x0808C384 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808C3B4 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bhi _0808C3B0 + movs r0, #0x40 + movs r1, #0 + movs r2, #1 + bl sub_08078AC0 + ldr r1, _0808C3B8 @ =gLinkEntity + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + strb r0, [r1, #0x15] +_0808C3B0: + bl sub_0805E780 +_0808C3B4: + pop {r4, pc} + .align 2, 0 +_0808C3B8: .4byte gLinkEntity + + thumb_func_start sub_0808C3BC +sub_0808C3BC: @ 0x0808C3BC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x76 + ldrh r1, [r5] + bl sub_08083734 + cmp r0, #0 + beq _0808C40E + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x10 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r5] + lsls r0, r0, #3 + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + ldrh r1, [r5] + lsls r1, r1, #1 + ldr r0, _0808C410 @ =gUnk_081214F4 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0808C500 +_0808C40E: + pop {r4, r5, pc} + .align 2, 0 +_0808C410: .4byte gUnk_081214F4 + + thumb_func_start sub_0808C414 +sub_0808C414: @ 0x0808C414 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808C49A + movs r0, #6 + strb r0, [r4, #0xc] + strh r1, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + lsls r0, r0, #2 + ldr r1, _0808C49C @ =gUnk_081214FC + adds r5, r0, r1 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0808C470 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] +_0808C470: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0808C494 + movs r0, #2 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #3 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] +_0808C494: + ldr r0, _0808C4A0 @ =0x0000010B + bl sub_08004488 +_0808C49A: + pop {r4, r5, pc} + .align 2, 0 +_0808C49C: .4byte gUnk_081214FC +_0808C4A0: .4byte 0x0000010B + + thumb_func_start sub_0808C4A4 +sub_0808C4A4: @ 0x0808C4A4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808C4B8 + movs r0, #2 + strb r0, [r4, #0xc] +_0808C4B8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808C4BC +sub_0808C4BC: @ 0x0808C4BC + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0xc + strb r1, [r0, #0xe] + adds r2, r0, #0 + adds r2, #0x76 + ldrh r1, [r2] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldrh r2, [r2] + lsls r2, r2, #1 + ldr r1, _0808C4F8 @ =gUnk_0812150C + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r3, [r0, #0x2e] + adds r1, r1, r3 + strh r1, [r0, #0x2e] + movs r1, #1 + ldrsb r1, [r2, r1] + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] + bl sub_0808C5D0 + ldr r0, _0808C4FC @ =0x0000010B + bl sub_080A3268 + pop {pc} + .align 2, 0 +_0808C4F8: .4byte gUnk_0812150C +_0808C4FC: .4byte 0x0000010B + + thumb_func_start sub_0808C500 +sub_0808C500: @ 0x0808C500 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0 + beq _0808C510 + cmp r0, #2 + bne _0808C570 +_0808C510: + adds r6, r4, #0 + adds r6, #0x74 + ldrh r0, [r6] + subs r0, #1 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrh r0, [r6] + adds r0, #1 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + ldr r4, _0808C56C @ =0x00004022 + ldrh r1, [r6] + subs r1, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + b _0808C5CA + .align 2, 0 +_0808C56C: .4byte 0x00004022 +_0808C570: + adds r6, r4, #0 + adds r6, #0x74 + ldrh r0, [r6] + subs r0, #0x40 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrh r0, [r6] + adds r0, #0x40 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + ldr r4, _0808C5CC @ =0x00004022 + ldrh r1, [r6] + subs r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E +_0808C5CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808C5CC: .4byte 0x00004022 + + thumb_func_start sub_0808C5D0 +sub_0808C5D0: @ 0x0808C5D0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0 + beq _0808C5E0 + cmp r0, #2 + bne _0808C618 +_0808C5E0: + adds r0, r6, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + subs r1, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7c + ldrh r0, [r0] + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E + b _0808C64E +_0808C618: + adds r0, r6, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + subs r1, #0x40 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7c + ldrh r0, [r0] + ldrh r1, [r5] + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0800015E +_0808C64E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808C650 +sub_0808C650: @ 0x0808C650 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + movs r0, #0x3a + movs r1, #0 + bl CreateObject + cmp r0, #0 + beq _0808C670 + str r4, [r0, #0x50] + ldr r1, _0808C66C @ =gUnk_02036BB8 + movs r0, #0 + b _0808C674 + .align 2, 0 +_0808C66C: .4byte gUnk_02036BB8 +_0808C670: + ldr r1, _0808C678 @ =gUnk_02036BB8 + movs r0, #1 +_0808C674: + str r0, [r1] + pop {r4, pc} + .align 2, 0 +_0808C678: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C67C +sub_0808C67C: @ 0x0808C67C + ldr r0, _0808C684 @ =gUnk_02036BB8 + ldr r0, [r0] + bx lr + .align 2, 0 +_0808C684: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C688 +sub_0808C688: @ 0x0808C688 + push {lr} + bl sub_0801E104 + ldr r1, _0808C698 @ =gUnk_02036BB8 + movs r0, #1 + str r0, [r1] + pop {pc} + .align 2, 0 +_0808C698: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C69C +sub_0808C69C: @ 0x0808C69C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0808C6BC + ldr r0, _0808C6B8 @ =gUnk_08121638 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0808C6CC + .align 2, 0 +_0808C6B8: .4byte gUnk_08121638 +_0808C6BC: + ldr r0, _0808C6D0 @ =gUnk_08121640 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_0808C6CC: + pop {pc} + .align 2, 0 +_0808C6D0: .4byte gUnk_08121640 + + thumb_func_start sub_0808C6D4 +sub_0808C6D4: @ 0x0808C6D4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xb] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808C744 @ =gUnk_081215E8 + adds r4, r0, r1 + ldrh r0, [r4, #4] + adds r1, r5, #0 + adds r1, #0x86 + strh r0, [r1] + ldrh r0, [r4, #6] + subs r1, #1 + strb r0, [r1] + ldrh r1, [r4, #8] + adds r0, r5, #0 + adds r0, #0x84 + strb r1, [r0] + ldrh r0, [r4, #0xa] + adds r1, r5, #0 + adds r1, #0x83 + strb r0, [r1] + ldrh r0, [r4, #0xc] + subs r1, #1 + strb r0, [r1] + ldrh r0, [r4, #0xe] + subs r1, #1 + strb r0, [r1] + ldr r0, _0808C748 @ =gLCDControls + adds r0, #0x60 + ldrh r1, [r0] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + ldrh r1, [r4, #0x10] + orrs r0, r1 + ldrh r1, [r4, #0x12] + bl sub_0801E1B8 + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_0808C74C + ldrh r2, [r4] + movs r0, #0x3a + movs r1, #1 + bl CreateObject + cmp r0, #0 + beq _0808C742 + ldrh r1, [r4, #2] + adds r0, #0x6a + strh r1, [r0] +_0808C742: + pop {r4, r5, pc} + .align 2, 0 +_0808C744: .4byte gUnk_081215E8 +_0808C748: .4byte gLCDControls + + thumb_func_start sub_0808C74C +sub_0808C74C: @ 0x0808C74C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + cmp r3, #0 + beq _0808C76C + ldr r2, _0808C768 @ =gRoomControls + ldrh r0, [r3, #0x2e] + ldrh r1, [r2, #0xa] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r3, #0x32] + ldrh r1, [r2, #0xc] + subs r0, r0, r1 + b _0808C772 + .align 2, 0 +_0808C768: .4byte gRoomControls +_0808C76C: + movs r0, #0x78 + strh r0, [r4, #0x2e] + movs r0, #0x50 +_0808C772: + strh r0, [r4, #0x32] + adds r5, r4, #0 + adds r5, #0x86 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _0808C79C + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r3, #0x32 + ldrsh r1, [r4, r3] + movs r2, #0 + movs r3, #0 + bl sub_0801E49C + ldr r1, _0808C83C @ =gUnk_02036BB8 + movs r0, #1 + str r0, [r1] + adds r0, r4, #0 + bl sub_0808C840 +_0808C79C: + movs r6, #0 + ldrsh r0, [r5, r6] + movs r2, #0xfa + lsls r2, r2, #1 + cmp r0, r2 + ble _0808C7C2 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r4, r3] + movs r3, #0 + bl sub_0801E49C + ldr r1, _0808C83C @ =gUnk_02036BB8 + movs r0, #1 + str r0, [r1] + adds r0, r4, #0 + bl sub_0808C840 +_0808C7C2: + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r6, [r5] + adds r0, r0, r6 + strh r0, [r5] + adds r0, r4, #0 + adds r0, #0x84 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x10 + ble _0808C7E8 + movs r0, #0x10 + strb r0, [r1] +_0808C7E8: + movs r0, #0 + ldrsb r0, [r1, r0] + movs r2, #0x10 + rsbs r2, r2, #0 + cmp r0, r2 + bge _0808C7F6 + strb r2, [r1] +_0808C7F6: + adds r3, r4, #0 + adds r3, #0x83 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + ldrb r6, [r3] + adds r0, r0, r6 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + ldrb r6, [r1] + adds r0, r0, r6 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x10 + ble _0808C81E + movs r0, #0x10 + strb r0, [r1] +_0808C81E: + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, r2 + bge _0808C828 + strb r2, [r1] +_0808C828: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r4, #0 + ldrsh r2, [r5, r4] + ldrb r3, [r3] + bl sub_0801E49C + pop {r4, r5, r6, pc} + .align 2, 0 +_0808C83C: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C840 +sub_0808C840: @ 0x0808C840 + push {lr} + ldr r0, _0808C854 @ =gLCDControls + adds r0, #0x66 + movs r1, #0 + strh r1, [r0] + bl sub_0801E104 + bl sub_0805E780 + pop {pc} + .align 2, 0 +_0808C854: .4byte gLCDControls + + thumb_func_start sub_0808C858 +sub_0808C858: @ 0x0808C858 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xb] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808C878 + ldr r1, _0808C870 @ =gLCDControls + adds r3, r1, #0 + adds r3, #0x66 + ldr r0, _0808C874 @ =0x00003FBF + b _0808C880 + .align 2, 0 +_0808C870: .4byte gLCDControls +_0808C874: .4byte 0x00003FBF +_0808C878: + ldr r1, _0808C898 @ =gLCDControls + adds r3, r1, #0 + adds r3, #0x66 + ldr r0, _0808C89C @ =0x00003FFF +_0808C880: + strh r0, [r3] + adds r3, r1, #0 + ldrb r1, [r2, #0xb] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808C8A0 + adds r1, r3, #0 + adds r1, #0x6a + movs r0, #0 + b _0808C8A6 + .align 2, 0 +_0808C898: .4byte gLCDControls +_0808C89C: .4byte 0x00003FFF +_0808C8A0: + adds r1, r3, #0 + adds r1, #0x6a + movs r0, #0x10 +_0808C8A6: + strh r0, [r1] + movs r0, #1 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x68 + adds r0, #0xff + strh r0, [r1] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808C8B8 +sub_0808C8B8: @ 0x0808C8B8 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x68 + adds r1, r3, #0 + adds r1, #0x6a + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0808C8D6 + movs r0, #0 + strh r0, [r2] +_0808C8D6: + ldrb r1, [r3, #0xb] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808C8F8 + ldr r0, _0808C8F4 @ =gLCDControls + ldrh r1, [r2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x10 + subs r2, r2, r1 + adds r0, #0x6a + strh r2, [r0] + b _0808C904 + .align 2, 0 +_0808C8F4: .4byte gLCDControls +_0808C8F8: + ldr r1, _0808C918 @ =gLCDControls + ldrh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + adds r1, #0x6a + strh r0, [r1] +_0808C904: + adds r0, r3, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0808C914 + bl sub_0805E780 +_0808C914: + pop {pc} + .align 2, 0 +_0808C918: .4byte gLCDControls + + thumb_func_start sub_0808C91C +sub_0808C91C: @ 0x0808C91C + push {lr} + ldr r2, _0808C930 @ =gUnk_08121668 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C930: .4byte gUnk_08121668 + + thumb_func_start sub_0808C934 +sub_0808C934: @ 0x0808C934 + push {lr} + ldr r2, _0808C948 @ =gUnk_08121670 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C948: .4byte gUnk_08121670 + + thumb_func_start sub_0808C94C +sub_0808C94C: @ 0x0808C94C + push {lr} + ldr r2, _0808C960 @ =gUnk_08121678 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C960: .4byte gUnk_08121678 + + thumb_func_start sub_0808C964 +sub_0808C964: @ 0x0808C964 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + strb r1, [r4, #0x1e] + ldrb r0, [r4, #9] + cmp r0, #0x76 + bne _0808C982 + ldr r0, _0808CA08 @ =gUnk_02032EC0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #2 + beq _0808C982 + adds r0, r1, #0 + subs r0, #9 + strb r0, [r4, #0xa] +_0808C982: + ldrb r0, [r4, #0xa] + cmp r0, #4 + bls _0808C996 + ldr r0, _0808CA0C @ =gUnk_02033A90 + ldrb r0, [r0, #0x16] + ldrb r1, [r4, #0xb] + cmp r0, r1 + beq _0808C996 + bl sub_0805E780 +_0808C996: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0xb] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r4, #9] + cmp r0, #0x75 + beq _0808CA04 + ldrb r2, [r4, #0xa] + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0808CA04 + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + cmp r0, #1 + bne _0808C9FA + movs r2, #0xe0 +_0808C9FA: + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0808CA04: + pop {r4, pc} + .align 2, 0 +_0808CA08: .4byte gUnk_02032EC0 +_0808CA0C: .4byte gUnk_02033A90 + + thumb_func_start sub_0808CA10 +sub_0808CA10: @ 0x0808CA10 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0808CA40 + cmp r0, #2 + bgt _0808CA24 + cmp r0, #1 + beq _0808CA2A + b _0808CA78 +_0808CA24: + cmp r0, #3 + beq _0808CA60 + b _0808CA78 +_0808CA2A: + ldr r2, _0808CA3C @ =gUnk_02018EB0 + ldrb r0, [r2, #0x18] + cmp r0, #0 + beq _0808CA78 + movs r0, #0 + movs r1, #0x20 + strb r1, [r4, #0xe] + strb r0, [r2, #0x18] + b _0808CA50 + .align 2, 0 +_0808CA3C: .4byte gUnk_02018EB0 +_0808CA40: + ldr r2, _0808CA5C @ =gUnk_02018EB0 + ldrb r0, [r2, #0x19] + cmp r0, #0 + beq _0808CA78 + movs r0, #0 + movs r1, #0x20 + strb r1, [r4, #0xe] + strb r0, [r2, #0x19] +_0808CA50: + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_080A3268 + b _0808CA78 + .align 2, 0 +_0808CA5C: .4byte gUnk_02018EB0 +_0808CA60: + ldr r2, _0808CABC @ =gUnk_02018EB0 + ldrb r0, [r2, #0x1a] + cmp r0, #0 + beq _0808CA78 + movs r0, #0 + movs r1, #0x20 + strb r1, [r4, #0xe] + strb r0, [r2, #0x1a] + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_080A3268 +_0808CA78: + ldrb r0, [r4, #9] + cmp r0, #0x75 + beq _0808CAE0 + ldrb r1, [r4, #0xa] + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r1, #0 + cmp r0, #2 + bhi _0808CAE0 + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _0808CAE0 + subs r1, #1 + strb r1, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r2, r0, #1 + strb r2, [r4, #0xf] + lsls r1, r1, #0x18 + cmp r1, #0 + beq _0808CAC4 + ldr r0, _0808CAC0 @ =gUnk_08121648 + movs r1, #0xe + ands r1, r2 + lsls r2, r1, #1 + adds r2, r2, r0 + movs r6, #0 + ldrsh r3, [r2, r6] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r0 + movs r0, #0 + ldrsh r2, [r1, r0] + b _0808CACA + .align 2, 0 +_0808CABC: .4byte gUnk_02018EB0 +_0808CAC0: .4byte gUnk_08121648 +_0808CAC4: + movs r2, #0x80 + lsls r2, r2, #1 + adds r3, r2, #0 +_0808CACA: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0808CAD6 + subs r3, #0x20 + subs r2, #0x20 +_0808CAD6: + adds r0, r4, #0 + adds r1, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_0808CAE0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808CAE4 +sub_0808CAE4: @ 0x0808CAE4 + push {lr} + ldr r2, _0808CAF8 @ =gUnk_08121680 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808CAF8: .4byte gUnk_08121680 + + thumb_func_start sub_0808CAFC +sub_0808CAFC: @ 0x0808CAFC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808CB18 @ =gUnk_08121688 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0808CB9C + pop {r4, pc} + .align 2, 0 +_0808CB18: .4byte gUnk_08121688 + + thumb_func_start sub_0808CB1C +sub_0808CB1C: @ 0x0808CB1C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808CB70 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xa7 + strh r0, [r4, #0x12] + movs r0, #0xd + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r4, #0x1b] + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r4, #0x1b] +_0808CB70: + ldr r0, [r4, #0x50] + ldr r1, [r0, #0x2c] + str r1, [r4, #0x2c] + ldr r1, [r0, #0x30] + str r1, [r4, #0x30] + movs r5, #0 + str r5, [r4, #0x34] + adds r1, r4, #0 + bl sub_0806FAD8 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0808CB98 + adds r0, r4, #0 + adds r0, #0x60 + movs r1, #0 + strh r5, [r0] + strb r1, [r4, #0xd] + movs r0, #4 + strb r0, [r4, #0x1e] +_0808CB98: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808CB9C +sub_0808CB9C: @ 0x0808CB9C + push {r4, r5, lr} + adds r3, r0, #0 + adds r0, #0x68 + ldrh r1, [r0] + ldrb r4, [r0] + lsrs r5, r1, #8 + movs r2, #0 + ldrb r0, [r3, #0x14] + cmp r0, #4 + bls _0808CBB2 + movs r2, #1 +_0808CBB2: + lsls r2, r2, #6 + ldrb r1, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + cmp r4, #0xb7 + bhi _0808CBCA + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + adds r4, r4, r0 +_0808CBCA: + ldrh r0, [r3, #0x12] + cmp r5, r0 + bne _0808CBDA + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r4, r0 + beq _0808CBE4 +_0808CBDA: + strh r5, [r3, #0x12] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_080042AC +_0808CBE4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808CBE8 +sub_0808CBE8: @ 0x0808CBE8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r3, #4 + strb r3, [r4, #0x14] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r0, [r4, #0x1b] + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r4, #0x1b] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0x8a + lsls r0, r0, #1 + strh r0, [r1] + subs r1, #0x10 + movs r0, #0xff + strb r0, [r1] + ldr r0, _0808CC80 @ =0x0000FF50 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x6a + strh r3, [r0] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #4 + movs r2, #4 + movs r3, #0 + bl sub_0805EC9C + ldr r0, _0808CC84 @ =gUnk_02018EB0 + str r4, [r0, #0x14] + movs r0, #0 + bl sub_0807A094 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0801D2B4 + movs r0, #0x3c + movs r1, #1 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _0808CC7C + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_0808CC7C: + pop {r4, pc} + .align 2, 0 +_0808CC80: .4byte 0x0000FF50 +_0808CC84: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CC88 +sub_0808CC88: @ 0x0808CC88 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x6a + ldrh r1, [r4] + ldr r0, _0808CCB8 @ =0x000003FF + cmp r1, r0 + bhi _0808CCB4 + adds r0, r1, #4 + strh r0, [r4] + ldrh r2, [r4] + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + ldrh r1, [r4] + adds r0, r5, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 +_0808CCB4: + pop {r4, r5, pc} + .align 2, 0 +_0808CCB8: .4byte 0x000003FF + + thumb_func_start sub_0808CCBC +sub_0808CCBC: @ 0x0808CCBC + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808CCFA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0x15] + adds r0, #0xec + strh r0, [r4, #0x24] + movs r0, #0xc0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #1 + strb r1, [r0, #0xd] + ldr r0, _0808CCFC @ =gUnk_02018EB0 + strb r1, [r0, #0x18] +_0808CCFA: + pop {r4, pc} + .align 2, 0 +_0808CCFC: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CD00 +sub_0808CD00: @ 0x0808CD00 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808CD24 + adds r0, r4, #0 + bl sub_0806F69C + b _0808CD3E +_0808CD24: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0x15] + movs r0, #0xc0 + strh r0, [r4, #0x24] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, _0808CD40 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x19] +_0808CD3E: + pop {r4, pc} + .align 2, 0 +_0808CD40: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CD44 +sub_0808CD44: @ 0x0808CD44 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808CD68 + adds r0, r4, #0 + bl sub_0806F69C + b _0808CD82 +_0808CD68: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x11 + strb r0, [r4, #0x15] + adds r0, #0xef + strh r0, [r4, #0x24] + movs r0, #0x90 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, _0808CD84 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1a] +_0808CD82: + pop {r4, pc} + .align 2, 0 +_0808CD84: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CD88 +sub_0808CD88: @ 0x0808CD88 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808CDB8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x7f + bgt _0808CDD6 + movs r0, #0x80 + strh r0, [r4, #0x2e] + b _0808CDD6 +_0808CDB8: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x68 + ldr r0, _0808CDD8 @ =0x00000C04 + strh r0, [r1] + ldr r0, [r4, #0x54] + bl sub_0805E7BC + adds r0, r4, #0 + bl sub_0805EC60 +_0808CDD6: + pop {r4, pc} + .align 2, 0 +_0808CDD8: .4byte 0x00000C04 + + thumb_func_start sub_0808CDDC +sub_0808CDDC: @ 0x0808CDDC + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808CDF6 + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + movs r0, #0x10 + strb r0, [r1, #0xe] +_0808CDF6: + pop {pc} + + thumb_func_start sub_0808CDF8 +sub_0808CDF8: @ 0x0808CDF8 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808CE2C + ldr r0, _0808CE30 @ =gUnk_02033A90 + ldrb r1, [r0, #0x16] + ldrb r0, [r3, #0xc] + adds r0, #1 + adds r0, r0, r1 + strb r0, [r3, #0xc] + ldr r2, _0808CE34 @ =gUnk_081216B4 + lsls r1, r1, #1 + adds r0, r1, r2 + ldrb r0, [r0] + strb r0, [r3, #0x14] + adds r1, #1 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r3, #0x15] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] +_0808CE2C: + pop {pc} + .align 2, 0 +_0808CE30: .4byte gUnk_02033A90 +_0808CE34: .4byte gUnk_081216B4 + + thumb_func_start sub_0808CE38 +sub_0808CE38: @ 0x0808CE38 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xc7 + bgt _0808CE52 + movs r0, #0x18 + strb r0, [r4, #0x15] +_0808CE52: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x2f + bgt _0808CE60 + ldr r1, _0808CE64 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CE60: + pop {r4, pc} + .align 2, 0 +_0808CE64: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CE68 +sub_0808CE68: @ 0x0808CE68 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xc7 + bgt _0808CE82 + movs r0, #8 + strb r0, [r4, #0x15] +_0808CE82: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xd0 + ble _0808CE90 + ldr r1, _0808CE94 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CE90: + pop {r4, pc} + .align 2, 0 +_0808CE94: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CE98 +sub_0808CE98: @ 0x0808CE98 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0808CEB8 + ldr r1, _0808CEBC @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CEB8: + pop {r4, pc} + .align 2, 0 +_0808CEBC: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CEC0 +sub_0808CEC0: @ 0x0808CEC0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xc7 + bgt _0808CEDA + movs r0, #0x18 + strb r0, [r4, #0x15] +_0808CEDA: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xf + bgt _0808CEE8 + ldr r1, _0808CEEC @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CEE8: + pop {r4, pc} + .align 2, 0 +_0808CEEC: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CEF0 +sub_0808CEF0: @ 0x0808CEF0 + push {lr} + ldr r2, _0808CF04 @ =gUnk_081216BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808CF04: .4byte gUnk_081216BC + + thumb_func_start sub_0808CF08 +sub_0808CF08: @ 0x0808CF08 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0808CF50 @ =gUnk_02033A90 + ldr r3, _0808CF54 @ =gRoomControls + ldrh r0, [r2, #0x12] + ldrh r1, [r3, #0xa] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #0x14] + ldrh r1, [r3, #0xc] + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r5, r4, #0 + adds r5, #0x68 + movs r0, #0x80 + strh r0, [r5] + ldrb r1, [r4, #0x11] + subs r0, #0x90 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + ldr r0, _0808CF58 @ =0x00001F17 + movs r1, #0 + bl sub_0801E1B8 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + bl sub_0801E1EC + pop {r4, r5, pc} + .align 2, 0 +_0808CF50: .4byte gUnk_02033A90 +_0808CF54: .4byte gRoomControls +_0808CF58: .4byte 0x00001F17 + + thumb_func_start sub_0808CF5C +sub_0808CF5C: @ 0x0808CF5C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x68 + ldrh r0, [r2] + subs r0, #2 + strh r0, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x14 + bls _0808CF82 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r3, #0x32 + ldrsh r1, [r5, r3] + ldrh r2, [r2] + bl sub_0801E1EC + b _0808D01E +_0808CF82: + ldr r0, _0808D020 @ =gLCDControls + adds r0, #0x62 + movs r1, #0x10 + strh r1, [r0] + bl sub_0808D030 + movs r0, #0 + bl sub_0801CFA8 + bl sub_080ADD30 + ldr r0, _0808D024 @ =gUnk_02024490 + movs r6, #1 + strb r6, [r0] + ldrb r0, [r5, #0xa] + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #1 + ldr r0, _0808D028 @ =gUnk_081216C8 + adds r4, r4, r0 + ldrh r1, [r4] + adds r0, r5, #0 + bl sub_080ADF80 + ldrh r1, [r4, #2] + adds r0, r5, #0 + bl sub_0801D040 + ldrh r0, [r4, #4] + strh r0, [r5, #0x12] + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _0808CFC6 + strb r0, [r5, #0x1e] +_0808CFC6: + movs r2, #2 + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #6 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + ands r1, r0 + strb r1, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0x1e + strb r0, [r5, #0xe] + movs r0, #0xff + strb r0, [r5, #0xf] + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + ldr r0, _0808D02C @ =gUnk_02033A90 + strh r6, [r0, #0x10] + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_0808D01E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808D020: .4byte gLCDControls +_0808D024: .4byte gUnk_02024490 +_0808D028: .4byte gUnk_081216C8 +_0808D02C: .4byte gUnk_02033A90 + + thumb_func_start sub_0808D030 +sub_0808D030: @ 0x0808D030 + push {r4, r5, lr} + ldr r4, _0808D058 @ =gUnk_03000020 + movs r5, #0x80 + adds r0, r4, #0 + subs r0, #0x20 + ldr r1, _0808D05C @ =0x00000B74 + bl sub_0801D630 + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r1, #0 +_0808D046: + strh r0, [r4] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bne _0808D046 + ldr r1, _0808D060 @ =gUnk_03000000 + movs r0, #1 + strb r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_0808D058: .4byte gUnk_03000020 +_0808D05C: .4byte 0x00000B74 +_0808D060: .4byte gUnk_03000000 + + thumb_func_start sub_0808D064 +sub_0808D064: @ 0x0808D064 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _0808D0B4 + adds r0, r4, #0 + adds r0, #0x68 + ldrh r3, [r0] + adds r1, r3, #0 + adds r2, r0, #0 + cmp r1, #0 + beq _0808D08C + subs r0, r3, #2 + strh r0, [r2] + b _0808D08E +_0808D08C: + strh r1, [r2] +_0808D08E: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r4, r3] + ldrh r2, [r2] + bl sub_0801E1EC + ldrb r0, [r4, #0xf] + cmp r0, #0x80 + bls _0808D0A6 + subs r0, #8 + strb r0, [r4, #0xf] +_0808D0A6: + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0808D0C2 +_0808D0B4: + ldr r1, _0808D0C4 @ =gUnk_02033A90 + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + strh r2, [r1, #0x10] + bl sub_0805E780 +_0808D0C2: + pop {r4, pc} + .align 2, 0 +_0808D0C4: .4byte gUnk_02033A90 + + thumb_func_start sub_0808D0C8 +sub_0808D0C8: @ 0x0808D0C8 + push {lr} + ldr r2, _0808D0DC @ =gUnk_081216DC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808D0DC: .4byte gUnk_081216DC + + thumb_func_start sub_0808D0E0 +sub_0808D0E0: @ 0x0808D0E0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r6, [r5, #0xc] + cmp r6, #1 + beq _0808D12C + cmp r6, #1 + bgt _0808D0F4 + cmp r6, #0 + beq _0808D0FA + b _0808D192 +_0808D0F4: + cmp r6, #2 + beq _0808D150 + b _0808D192 +_0808D0FA: + movs r4, #1 + strb r4, [r5, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + movs r1, #0x40 + subs r1, r1, r0 + strb r1, [r5, #0xe] + strb r6, [r5, #0x1e] + strb r6, [r5, #0x14] + ldrb r0, [r5, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x38 + strb r4, [r0] + b _0808D192 +_0808D12C: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D192 + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xf] + movs r0, #2 + strb r0, [r5, #0xc] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] + b _0808D192 +_0808D150: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D192 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + bne _0808D180 + strb r0, [r5, #0x1e] + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + movs r1, #0x40 + subs r1, r1, r0 + strb r1, [r5, #0xe] + b _0808D192 +_0808D180: + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x14] + ldrb r0, [r5, #0x1e] + movs r2, #0 + cmp r0, r1 + beq _0808D190 + adds r2, r1, #0 +_0808D190: + strb r2, [r5, #0x1e] +_0808D192: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808D194 +sub_0808D194: @ 0x0808D194 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xc] + cmp r1, #1 + beq _0808D234 + cmp r1, #1 + bgt _0808D1A8 + cmp r1, #0 + beq _0808D1AE + b _0808D234 +_0808D1A8: + cmp r1, #2 + beq _0808D1FC + b _0808D234 +_0808D1AE: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + strb r1, [r5, #0xf] + strb r1, [r5, #0x1e] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0808D1F4 @ =0x00004069 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808D1F8 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + subs r1, #0x40 + movs r2, #1 + bl sub_0800015E + b _0808D234 + .align 2, 0 +_0808D1F4: .4byte 0x00004069 +_0808D1F8: .4byte gRoomControls +_0808D1FC: + ldr r0, _0808D274 @ =gUnk_030010A0 + ldr r3, [r0] + movs r0, #3 + ands r3, r0 + cmp r3, #0 + bne _0808D234 + ldr r4, _0808D278 @ =gLCDControls + ldrb r2, [r5, #0xd] + lsls r1, r2, #8 + movs r0, #0x10 + subs r0, r0, r2 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x15 + cmp r1, r0 + bne _0808D234 + adds r0, r4, #0 + adds r0, #0x66 + strh r3, [r0] + bl sub_0805E780 +_0808D234: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D272 + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xa] + cmp r0, #9 + bne _0808D24E + movs r0, #2 + strb r0, [r5, #0xe] +_0808D24E: + ldr r4, _0808D27C @ =gUnk_08121704 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + adds r0, r5, #0 + bl sub_0801D2B4 + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _0808D272 + strb r0, [r5, #0xf] +_0808D272: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808D274: .4byte gUnk_030010A0 +_0808D278: .4byte gLCDControls +_0808D27C: .4byte gUnk_08121704 + + thumb_func_start sub_0808D280 +sub_0808D280: @ 0x0808D280 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #6 + movs r1, #0x3e + movs r2, #6 + movs r3, #9 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0808D2C4 + movs r0, #2 + strb r0, [r2, #0xc] + strb r4, [r2, #0xd] + ldrb r1, [r2, #0x19] + subs r0, #0xf + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x19] + ldr r1, _0808D2C8 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] + movs r0, #0xf6 + bl sub_080A3268 +_0808D2C4: + add sp, #4 + pop {r4, pc} + .align 2, 0 +_0808D2C8: .4byte gLCDControls + + thumb_func_start sub_0808D2CC +sub_0808D2CC: @ 0x0808D2CC + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x3e + movs r2, #6 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0808D2F2 + movs r0, #9 + strb r0, [r1, #0xa] + adds r0, r1, #0 + movs r1, #2 + bl sub_0805E3A0 +_0808D2F2: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_521 +nullsub_521: @ 0x0808D2F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0808D2FC +sub_0808D2FC: @ 0x0808D2FC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808D31C + strb r0, [r4, #0xc] + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0807DD64 +_0808D31C: + movs r0, #0x2e + ldrsh r5, [r4, r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + ldr r0, _0808D354 @ =gRoomControls + ldrh r0, [r0, #0x16] + cmp r0, #0 + beq _0808D350 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r5, r0 + beq _0808D350 + ldr r0, _0808D358 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0808D350 + ldr r0, _0808D35C @ =0x0000010F + bl sub_080A3268 +_0808D350: + pop {r4, r5, pc} + .align 2, 0 +_0808D354: .4byte gRoomControls +_0808D358: .4byte gUnk_030010A0 +_0808D35C: .4byte 0x0000010F + + thumb_func_start sub_0808D360 +sub_0808D360: @ 0x0808D360 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808D382 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0807DD64 +_0808D382: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808D394 +sub_0808D394: @ 0x0808D394 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0808D3C4 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0808D3FC @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + ldr r0, _0808D400 @ =0x00001003 + strh r0, [r1] +_0808D3C4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D3F8 + movs r0, #2 + strb r0, [r5, #0xe] + ldr r4, _0808D404 @ =gUnk_08121720 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + adds r0, r5, #0 + bl sub_0801D28C + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _0808D3F8 + strb r0, [r5, #0xf] +_0808D3F8: + pop {r4, r5, pc} + .align 2, 0 +_0808D3FC: .4byte gLCDControls +_0808D400: .4byte 0x00001003 +_0808D404: .4byte gUnk_08121720 + + thumb_func_start sub_0808D408 +sub_0808D408: @ 0x0808D408 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _0808D458 + movs r1, #1 + strb r1, [r3, #0xc] + ldrb r0, [r3, #0x19] + movs r2, #0xc0 + orrs r0, r2 + strb r0, [r3, #0x19] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + movs r2, #7 + orrs r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r2, [r3, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r3, #0x19] + ldrb r0, [r3, #0xb] + strb r0, [r3, #0x1e] + ldrb r0, [r3, #0xb] + subs r1, r1, r0 + lsls r1, r1, #9 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r2, #0xc0 + rsbs r2, r2, #0 + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_0808D458: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808D45C +sub_0808D45C: @ 0x0808D45C + push {lr} + ldr r2, _0808D470 @ =gUnk_0812172C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808D470: .4byte gUnk_0812172C + + thumb_func_start sub_0808D474 +sub_0808D474: @ 0x0808D474 + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xb] + strb r0, [r5, #0x1e] + movs r1, #2 + strb r1, [r5, #0xc] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D4D4 + movs r0, #0x7c + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0808D4D4 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r5, #0xe] + ldrb r1, [r5, #0x19] + subs r0, #0xe + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #0x19] + ldr r1, _0808D4CC @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + ldr r0, _0808D4D0 @ =0x00000179 + bl sub_080A3268 + b _0808D50E + .align 2, 0 +_0808D4CC: .4byte gLCDControls +_0808D4D0: .4byte 0x00000179 +_0808D4D4: + movs r0, #8 + strb r0, [r5, #0xe] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _0808D510 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0808D500 + subs r4, #0x40 +_0808D500: + ldr r0, _0808D514 @ =0x00004069 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r4, #0 + bl sub_0800015E +_0808D50E: + pop {r4, r5, pc} + .align 2, 0 +_0808D510: .4byte gRoomControls +_0808D514: .4byte 0x00004069 + + thumb_func_start sub_0808D518 +sub_0808D518: @ 0x0808D518 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _0808D58C @ =gUnk_030010A0 + ldr r2, [r0] + movs r0, #3 + ands r2, r0 + cmp r2, #0 + bne _0808D58A + ldr r3, _0808D590 @ =gLCDControls + ldrb r0, [r5, #0xe] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + adds r0, r3, #0 + adds r0, #0x68 + strh r1, [r0] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0x10 + bne _0808D58A + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x19] + subs r0, #0x15 + ands r0, r1 + strb r0, [r5, #0x19] + adds r0, r3, #0 + adds r0, #0x66 + strh r2, [r0] + ldr r0, _0808D594 @ =0x00004069 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808D598 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0808D58A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808D58C: .4byte gUnk_030010A0 +_0808D590: .4byte gLCDControls +_0808D594: .4byte 0x00004069 +_0808D598: .4byte gRoomControls + + thumb_func_start sub_0808D59C +sub_0808D59C: @ 0x0808D59C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D5D4 + movs r0, #8 + strb r0, [r5, #0xe] + ldr r4, _0808D5D8 @ =gUnk_08121738 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + adds r0, r5, #0 + bl sub_0801D2B4 + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _0808D5D4 + strb r0, [r5, #0xf] +_0808D5D4: + pop {r4, r5, pc} + .align 2, 0 +_0808D5D8: .4byte gUnk_08121738 + + thumb_func_start sub_0808D5DC +sub_0808D5DC: @ 0x0808D5DC + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _0808D614 + movs r2, #1 + movs r0, #1 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + ldrb r0, [r3, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r3, #0xa] + strb r0, [r3, #0x1e] + adds r0, r3, #0 + bl sub_0808D618 +_0808D614: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808D618 +sub_0808D618: @ 0x0808D618 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + ldr r7, _0808D664 @ =gUnk_08121750 + cmp r0, #0 + beq _0808D626 + ldr r7, _0808D668 @ =gUnk_0812176A +_0808D626: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0808D66C @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + movs r6, #0 + adds r4, r7, #0 +_0808D64A: + movs r0, #0 + ldrsh r1, [r4, r0] + adds r1, r5, r1 + ldr r0, _0808D670 @ =0x00004074 + movs r2, #1 + bl sub_0800015E + adds r4, #2 + adds r6, #1 + cmp r6, #0xc + bls _0808D64A + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808D664: .4byte gUnk_08121750 +_0808D668: .4byte gUnk_0812176A +_0808D66C: .4byte gRoomControls +_0808D670: .4byte 0x00004074 + + thumb_func_start sub_0808D674 +sub_0808D674: @ 0x0808D674 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808D750 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1f + bhi _0808D750 + lsls r0, r0, #2 + ldr r1, _0808D698 @ =_0808D69C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808D698: .4byte _0808D69C +_0808D69C: @ jump table + .4byte _0808D740 @ case 0 + .4byte _0808D740 @ case 1 + .4byte _0808D750 @ case 2 + .4byte _0808D750 @ case 3 + .4byte _0808D740 @ case 4 + .4byte _0808D740 @ case 5 + .4byte _0808D740 @ case 6 + .4byte _0808D750 @ case 7 + .4byte _0808D740 @ case 8 + .4byte _0808D740 @ case 9 + .4byte _0808D740 @ case 10 + .4byte _0808D740 @ case 11 + .4byte _0808D740 @ case 12 + .4byte _0808D750 @ case 13 + .4byte _0808D750 @ case 14 + .4byte _0808D750 @ case 15 + .4byte _0808D750 @ case 16 + .4byte _0808D750 @ case 17 + .4byte _0808D750 @ case 18 + .4byte _0808D748 @ case 19 + .4byte _0808D71C @ case 20 + .4byte _0808D750 @ case 21 + .4byte _0808D750 @ case 22 + .4byte _0808D750 @ case 23 + .4byte _0808D750 @ case 24 + .4byte _0808D750 @ case 25 + .4byte _0808D750 @ case 26 + .4byte _0808D750 @ case 27 + .4byte _0808D750 @ case 28 + .4byte _0808D750 @ case 29 + .4byte _0808D740 @ case 30 + .4byte _0808D73C @ case 31 +_0808D71C: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x4c] + str r0, [r4, #0x54] + b _0808D750 +_0808D73C: + bl sub_0805E780 +_0808D740: + adds r0, r4, #0 + bl sub_0808DAD0 + b _0808D750 +_0808D748: + adds r0, r4, #0 + bl sub_0808D76C + b _0808D766 +_0808D750: + ldr r0, _0808D768 @ =gUnk_08121784 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08080CB4 +_0808D766: + pop {r4, pc} + .align 2, 0 +_0808D768: .4byte gUnk_08121784 + + thumb_func_start sub_0808D76C +sub_0808D76C: @ 0x0808D76C + push {lr} + ldr r2, _0808D780 @ =gUnk_08121798 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808D780: .4byte gUnk_08121798 + + thumb_func_start sub_0808D784 +sub_0808D784: @ 0x0808D784 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xd] + strb r1, [r0, #0x1d] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bx lr + + thumb_func_start sub_0808D798 +sub_0808D798: @ 0x0808D798 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0808D7A0 +sub_0808D7A0: @ 0x0808D7A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0808D7B2 + adds r0, r4, #0 + bl sub_0808DB2C +_0808D7B2: + pop {r4, pc} + + thumb_func_start sub_0808D7B4 +sub_0808D7B4: @ 0x0808D7B4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3c + movs r2, #0x17 + strb r2, [r0] + adds r1, #8 + movs r0, #0x49 + strb r0, [r1] + subs r1, #1 + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3b + strb r2, [r0] + adds r1, #6 + movs r0, #0xff + strb r0, [r1] + ldr r0, _0808D818 @ =gUnk_080FD1A8 + str r0, [r4, #0x48] + movs r0, #1 + strb r0, [r4, #0x1c] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + movs r0, #0x9b + lsls r0, r0, #1 + bl sub_08004488 + ldrb r0, [r4, #0xb] + cmp r0, #2 + beq _0808D834 + cmp r0, #2 + bgt _0808D81C + cmp r0, #0 + beq _0808D822 + b _0808D82E + .align 2, 0 +_0808D818: .4byte gUnk_080FD1A8 +_0808D81C: + cmp r0, #3 + beq _0808D83C + b _0808D82E +_0808D822: + movs r0, #0xf0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + ldrh r0, [r4, #0x36] + adds r0, #8 + strh r0, [r4, #0x36] +_0808D82E: + movs r0, #1 + strb r0, [r4, #0xc] + b _0808D842 +_0808D834: + adds r0, r4, #0 + bl sub_0808DAD0 + b _0808D842 +_0808D83C: + adds r0, r4, #0 + bl sub_0808DB2C +_0808D842: + pop {r4, pc} + + thumb_func_start sub_0808D844 +sub_0808D844: @ 0x0808D844 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x34] + ldr r1, _0808D870 @ =0xFFFF2000 + adds r0, r0, r1 + str r0, [r3, #0x34] + adds r0, r3, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _0808D88A + ldrb r0, [r3, #0xe] + cmp r0, #0 + beq _0808D874 + adds r2, r3, #0 + adds r2, #0x78 + ldrh r1, [r2] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #1 + strh r0, [r2] + b _0808D87E + .align 2, 0 +_0808D870: .4byte 0xFFFF2000 +_0808D874: + adds r1, r3, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] +_0808D87E: + movs r0, #2 + strb r0, [r3, #0xc] + movs r0, #1 + strb r0, [r3, #0xf] + movs r0, #0x80 + strh r0, [r3, #0x24] +_0808D88A: + pop {pc} + + thumb_func_start sub_0808D88C +sub_0808D88C: @ 0x0808D88C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D910 + bl sub_08000E50 + adds r5, r0, #0 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x20 + strb r0, [r4, #0xf] + ldr r2, _0808D8D0 @ =gUnk_081217A4 + lsrs r0, r5, #8 + movs r1, #1 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0808DAA0 + cmp r0, #0 + beq _0808D8D4 + movs r0, #0x1f + ands r5, r0 + strb r5, [r4, #0x15] + b _0808D8EE + .align 2, 0 +_0808D8D0: .4byte gUnk_081217A4 +_0808D8D4: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r4, #0 + adds r3, #0x76 + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r4, #0x15] +_0808D8EE: + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0808D910 + movs r0, #0x10 + eors r1, r0 + lsrs r1, r1, #4 + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0808D910: + adds r0, r4, #0 + bl sub_080AEFB4 + bl sub_0805E40C + cmp r0, #0 + bne _0808D954 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808D954 + adds r5, r4, #0 + adds r5, #0x78 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0808D93C + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 +_0808D93C: + ldrh r0, [r5] + cmp r0, #0x77 + bhi _0808D954 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0808D954: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808D958 +sub_0808D958: @ 0x0808D958 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldrh r1, [r2, #8] + movs r0, #0xc2 + lsls r0, r0, #2 + cmp r1, r0 + beq _0808D972 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _0808D992 +_0808D972: + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r1, _0808D994 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _0808D992 + adds r0, r4, #0 + bl sub_0808DB2C +_0808D992: + pop {r4, pc} + .align 2, 0 +_0808D994: .4byte gLinkEntity + + thumb_func_start sub_0808D998 +sub_0808D998: @ 0x0808D998 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + ldr r2, _0808DA28 @ =gUnk_080C9160 + ldrb r0, [r5, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + movs r3, #0 + ldrsh r1, [r0, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + cmp r0, #0 + bge _0808D9B8 + ldr r1, _0808DA2C @ =0x0000FFFF + adds r0, r0, r1 +_0808D9B8: + asrs r0, r0, #0x10 + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r5, #0x2e] + ldrb r0, [r5, #0xe] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #8 + cmp r0, #0 + bge _0808D9DA + ldr r3, _0808DA2C @ =0x0000FFFF + adds r0, r0, r3 +_0808D9DA: + asrs r1, r0, #0x10 + ldrh r0, [r6, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r3, [r5, #0xe] + adds r0, r3, #0 + adds r0, #8 + strb r0, [r5, #0xe] + ldrh r0, [r6, #0x36] + strh r0, [r5, #0x36] + ldrb r2, [r6, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r6, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + subs r3, #0x39 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + cmp r3, #0x7e + bhi _0808DA30 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + b _0808DA3E + .align 2, 0 +_0808DA28: .4byte gUnk_080C9160 +_0808DA2C: .4byte 0x0000FFFF +_0808DA30: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #5 +_0808DA3E: + orrs r1, r0 + strb r1, [r2] + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + adds r4, r5, #0 + adds r4, #0x63 + cmp r0, #0 + bne _0808DA70 + movs r0, #6 + strb r0, [r5, #0xf] + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x16 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0808DA70 + adds r0, r5, #0 + movs r1, #1 + bl sub_08081404 +_0808DA70: + movs r1, #0 + ldrsb r1, [r4, r1] + movs r0, #0x11 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0808DA8E + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] +_0808DA8E: + adds r1, r5, #0 + adds r1, #0x87 + ldrb r0, [r1] + cmp r0, #0xa + bls _0808DA9C + movs r0, #0xa + strb r0, [r1] +_0808DA9C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808DAA0 +sub_0808DAA0: @ 0x0808DAA0 + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + adds r1, r2, #0 + adds r1, #0x74 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #0x30 + cmp r0, #0x60 + bhi _0808DACC + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #0x30 + cmp r0, #0x60 + bhi _0808DACC + movs r0, #1 + b _0808DACE +_0808DACC: + movs r0, #0 +_0808DACE: + pop {pc} + + thumb_func_start sub_0808DAD0 +sub_0808DAD0: @ 0x0808DAD0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0808DAE0 + bl sub_0805E780 +_0808DAE0: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #6 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfb + strb r0, [r1] + ldr r0, _0808DB28 @ =gLinkEntity + str r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FA24 + pop {r4, pc} + .align 2, 0 +_0808DB28: .4byte gLinkEntity + + thumb_func_start sub_0808DB2C +sub_0808DB2C: @ 0x0808DB2C + push {lr} + adds r1, r0, #0 + movs r2, #0 + movs r0, #2 + strb r0, [r1, #0xc] + strb r2, [r1, #0xd] + ldrb r2, [r1, #0x10] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1, #0x10] + adds r2, r1, #0 + adds r2, #0x3b + movs r0, #1 + strb r0, [r2] + ldr r0, _0808DB50 @ =gLinkEntity + bl sub_0806FA24 + pop {pc} + .align 2, 0 +_0808DB50: .4byte gLinkEntity + + thumb_func_start sub_0808DB54 +sub_0808DB54: @ 0x0808DB54 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r0, [r7, #0xc] + cmp r0, #1 + beq _0808DBE8 + cmp r0, #1 + bgt _0808DB6C + cmp r0, #0 + beq _0808DB72 + b _0808DC46 +_0808DB6C: + cmp r0, #2 + beq _0808DC2C + b _0808DC46 +_0808DB72: + ldrb r0, [r7, #0xe] + movs r1, #3 + cmp r0, #0 + beq _0808DB7C + movs r1, #1 +_0808DB7C: + strb r1, [r7, #0xc] + adds r1, r7, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0xa + bl sub_08004260 + ldrb r0, [r7, #0xc] + cmp r0, #1 + bne _0808DB9A + ldr r0, _0808DBDC @ =0x0000FF80 + strh r0, [r7, #0x36] +_0808DB9A: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _0808DBA2 + b _0808DD72 +_0808DBA2: + ldrh r1, [r7, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #0xc + strh r0, [r7, #0x32] + ldr r0, _0808DBE0 @ =0x00004023 + movs r2, #0x2e + ldrsh r1, [r7, r2] + ldr r3, _0808DBE4 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r5, #0x32 + ldrsh r2, [r7, r5] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r7, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _0808DD72 + .align 2, 0 +_0808DBDC: .4byte 0x0000FF80 +_0808DBE0: .4byte 0x00004023 +_0808DBE4: .4byte gRoomControls +_0808DBE8: + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r7, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808DBF8 + b _0808DD72 +_0808DBF8: + adds r0, r7, #0 + movs r1, #0x46 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0808DC0E + ldrh r0, [r1, #0x32] + adds r0, #8 + strh r0, [r1, #0x32] +_0808DC0E: + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + ldr r0, _0808DC28 @ =0x0000010B + bl sub_080A3268 + movs r0, #2 + strb r0, [r7, #0xc] + movs r0, #0x3c + strb r0, [r7, #0xe] + b _0808DD72 + .align 2, 0 +_0808DC28: .4byte 0x0000010B +_0808DC2C: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808DC3A + b _0808DD72 +_0808DC3A: + movs r0, #3 + strb r0, [r7, #0xc] + movs r0, #0x73 + bl sub_080A3268 + b _0808DD72 +_0808DC46: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _0808DC4E + b _0808DD72 +_0808DC4E: + ldr r0, _0808DCC8 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r0, [r7, r3] + cmp r1, r0 + bge _0808DCDC + ldr r0, _0808DCCC @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _0808DC66 + b _0808DD72 +_0808DC66: + adds r0, r7, #0 + bl sub_080002A0 + ldr r1, _0808DCD0 @ =0x00004017 + cmp r0, r1 + beq _0808DC74 + b _0808DD72 +_0808DC74: + ldr r0, _0808DCD4 @ =0x00004023 + movs r5, #0x2e + ldrsh r1, [r7, r5] + ldr r4, _0808DCD8 @ =gRoomControls + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r7, r3] + ldrh r3, [r4, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r6, r7, #0 + adds r6, #0x38 + ldrb r2, [r6] + bl sub_0800015E + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r5 + movs r2, #0x32 + ldrsh r1, [r7, r2] + ldrh r2, [r4, #8] + adds r2, #0x10 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r6] + bl sub_0807BA8C + b _0808DD72 + .align 2, 0 +_0808DCC8: .4byte gLinkEntity +_0808DCCC: .4byte gUnk_03003F80 +_0808DCD0: .4byte 0x00004017 +_0808DCD4: .4byte 0x00004023 +_0808DCD8: .4byte gRoomControls +_0808DCDC: + adds r0, r7, #0 + bl sub_080002A0 + ldr r3, _0808DD44 @ =0x00004017 + mov r8, r3 + cmp r0, r8 + beq _0808DD72 + movs r5, #0x2e + ldrsh r1, [r7, r5] + ldr r5, _0808DD48 @ =gRoomControls + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r7, r2] + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r7, #0 + adds r4, #0x38 + ldrb r2, [r4] + mov r0, r8 + bl sub_0800015E + ldrb r0, [r7, #0xa] + cmp r0, #0 + bne _0808DD4C + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r7, r2] + ldrh r2, [r5, #8] + adds r2, #0x10 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + ldrb r2, [r4] + mov r0, r8 + bl sub_0800015E + b _0808DD72 + .align 2, 0 +_0808DD44: .4byte 0x00004017 +_0808DD48: .4byte gRoomControls +_0808DD4C: + ldr r0, _0808DD78 @ =0x00004014 + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r7, r3] + ldrh r3, [r5, #8] + adds r3, #0x10 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4] + bl sub_0800015E +_0808DD72: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808DD78: .4byte 0x00004014 + + thumb_func_start sub_0808DD7C +sub_0808DD7C: @ 0x0808DD7C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _0808DD9C + ldr r0, _0808DD98 @ =gUnk_081217B0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0808DDAC + .align 2, 0 +_0808DD98: .4byte gUnk_081217B0 +_0808DD9C: + ldr r0, _0808DDB0 @ =gUnk_081217A8 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_0808DDAC: + pop {pc} + .align 2, 0 +_0808DDB0: .4byte gUnk_081217A8 + + thumb_func_start sub_0808DDB4 +sub_0808DDB4: @ 0x0808DDB4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0808DDDC + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0xf0 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0808DDE8 +_0808DDDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808DDE0 +sub_0808DDE0: @ 0x0808DDE0 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_0808DDE8 +sub_0808DDE8: @ 0x0808DDE8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x6c + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + bl sub_0807953C + cmp r0, #0 + beq _0808DE04 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] +_0808DE04: + ldrb r0, [r5, #0xf] + cmp r0, #0x1e + bhi _0808DE1C + ldr r0, _0808DE8C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + ldr r1, _0808DE90 @ =0x00001810 + ands r0, r1 + cmp r0, #0 + bne _0808DE1C + ldrh r0, [r4] + cmp r0, #0 + bne _0808DE2A +_0808DE1C: + ldr r0, _0808DE8C @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _0808DE94 @ =0xFFFFFBFF + ands r1, r2 + str r1, [r0, #0x30] + bl sub_0805E780 +_0808DE2A: + ldr r3, _0808DE98 @ =gLinkEntity + ldr r1, _0808DE9C @ =gUnk_081217B8 + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + ldrh r0, [r3, #0x32] + subs r0, #6 + strh r0, [r5, #0x32] + ldr r0, [r3, #0x34] + str r0, [r5, #0x34] + adds r0, r3, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r2, [r3, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r3, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + ldr r0, _0808DE8C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0808DEA0 + adds r0, r5, #0 + bl sub_08004274 + b _0808DEA4 + .align 2, 0 +_0808DE8C: .4byte gUnk_03003F80 +_0808DE90: .4byte 0x00001810 +_0808DE94: .4byte 0xFFFFFBFF +_0808DE98: .4byte gLinkEntity +_0808DE9C: .4byte gUnk_081217B8 +_0808DEA0: + bl sub_0805E780 +_0808DEA4: + ldr r1, _0808DEC0 @ =gLinkEntity + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + cmp r0, #2 + bne _0808DEC4 + adds r0, r1, #0 + movs r1, #3 + adds r2, r5, #0 + bl sub_0806FEBC + ldrh r0, [r5, #0x32] + subs r0, #5 + strh r0, [r5, #0x32] + b _0808DECE + .align 2, 0 +_0808DEC0: .4byte gLinkEntity +_0808DEC4: + adds r0, r1, #0 + movs r1, #0 + adds r2, r5, #0 + bl sub_0806FEBC +_0808DECE: + pop {r4, r5, pc} + + thumb_func_start sub_0808DED0 +sub_0808DED0: @ 0x0808DED0 + push {lr} + ldr r2, _0808DEE4 @ =gUnk_081217BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808DEE4: .4byte gUnk_081217BC + + thumb_func_start sub_0808DEE8 +sub_0808DEE8: @ 0x0808DEE8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r3, _0808DF74 @ =gLinkEntity + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + strb r0, [r5, #0x14] + adds r0, #1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + movs r3, #6 + movs r0, #6 + strb r0, [r5, #0xf] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x60 + movs r0, #0x3c + strh r0, [r1] + ldrb r1, [r5, #0x1a] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #0x1a] + adds r0, r5, #0 + adds r0, #0x72 + strh r4, [r0] + subs r0, #6 + strh r4, [r0] + ldrb r0, [r5, #0x11] + ands r2, r0 + orrs r2, r3 + strb r2, [r5, #0x11] + adds r0, r5, #0 + movs r1, #7 + bl sub_08004260 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0808DF78 + movs r0, #0x28 + strb r0, [r5, #0xe] + b _0808DFAA + .align 2, 0 +_0808DF74: .4byte gLinkEntity +_0808DF78: + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r0, _0808DF9C @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808DFA0 + movs r0, #0x28 + b _0808DFA2 + .align 2, 0 +_0808DF9C: .4byte gUnk_03003F80 +_0808DFA0: + movs r0, #0x50 +_0808DFA2: + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_0808DFAC +_0808DFAA: + pop {r4, r5, pc} + + thumb_func_start sub_0808DFAC +sub_0808DFAC: @ 0x0808DFAC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0808E00E + ldr r1, _0808DFF0 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _0808DFCC + ldrb r1, [r1, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808DFD0 +_0808DFCC: + bl sub_0805E780 +_0808DFD0: + ldr r0, _0808DFF0 @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #0x4f + bls _0808DFF8 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + ldrb r6, [r2] + ldr r7, _0808DFF4 @ =gUnk_081217D8 + b _0808E038 + .align 2, 0 +_0808DFF0: .4byte gUnk_03003F80 +_0808DFF4: .4byte gUnk_081217D8 +_0808DFF8: + cmp r0, #0 + beq _0808E008 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808E1BA +_0808E008: + bl sub_0805E780 + b _0808E038 +_0808E00E: + ldr r5, _0808E02C @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _0808E01A + bl sub_0805E780 +_0808E01A: + ldrb r1, [r5, #0x1b] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808E034 + ldrb r6, [r5, #0x1b] + ldr r7, _0808E030 @ =gUnk_081217D0 + b _0808E038 + .align 2, 0 +_0808E02C: .4byte gUnk_03003F80 +_0808E030: .4byte gUnk_081217D0 +_0808E034: + bl sub_0805E780 +_0808E038: + cmp r6, #0 + bne _0808E03E + b _0808E1B6 +_0808E03E: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808E084 + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #3 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808E068 + ldr r0, _0808E080 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0808E068 + movs r2, #7 +_0808E068: + ldrb r0, [r4, #0xe] + ands r0, r2 + adds r5, r4, #0 + adds r5, #0x6c + adds r6, r4, #0 + adds r6, #0x38 + cmp r0, #0 + bne _0808E0E4 + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0808E0E4 + .align 2, 0 +_0808E080: .4byte gUnk_03003F80 +_0808E084: + adds r5, r4, #0 + adds r5, #0x72 + ldrh r0, [r5] + cmp r0, #0 + beq _0808E0BC + ldr r0, _0808E0B8 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #0x1f + ands r1, r0 + subs r5, #6 + adds r6, r4, #0 + adds r6, #0x38 + cmp r1, #0 + bne _0808E0E4 + adds r0, r4, #0 + movs r1, #7 + movs r2, #0 + bl CreateFX + cmp r0, #0 + beq _0808E0E4 + ldrb r1, [r6] + adds r0, #0x38 + strb r1, [r0] + b _0808E0E4 + .align 2, 0 +_0808E0B8: .4byte gUnk_030010A0 +_0808E0BC: + ldr r0, _0808E140 @ =0x00000115 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x12 + movs r2, #0 + bl CreateFX + adds r6, r4, #0 + adds r6, #0x38 + cmp r0, #0 + beq _0808E0DA + ldrb r1, [r6] + adds r0, #0x38 + strb r1, [r0] +_0808E0DA: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + adds r5, r4, #0 + adds r5, #0x6c +_0808E0E4: + ldr r2, _0808E144 @ =gLinkEntity + ldrb r1, [r2, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r0, #0x3f + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r2, #0x36] + strh r0, [r4, #0x36] + adds r2, #0x38 + ldrb r0, [r2] + strb r0, [r6] + ldrb r0, [r4, #0x14] + cmp r0, #1 + beq _0808E148 + cmp r0, #1 + ble _0808E136 + cmp r0, #2 + beq _0808E150 + cmp r0, #3 + beq _0808E15A +_0808E136: + ldrh r0, [r4, #0x32] + ldrh r1, [r5] + subs r0, r0, r1 + strh r0, [r4, #0x32] + b _0808E162 + .align 2, 0 +_0808E140: .4byte 0x00000115 +_0808E144: .4byte gLinkEntity +_0808E148: + ldrh r0, [r5] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + b _0808E160 +_0808E150: + ldrh r0, [r5] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + b _0808E162 +_0808E15A: + ldrh r0, [r4, #0x2e] + ldrh r1, [r5] + subs r0, r0, r1 +_0808E160: + strh r0, [r4, #0x2e] +_0808E162: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808E17A + movs r0, #6 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] +_0808E17A: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808E1BA + ldr r0, _0808E1AC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0808E1BA + ldrb r0, [r4, #0x10] + movs r1, #0xdf + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #6 + bl GetInventoryValue + cmp r0, #1 + bne _0808E1B0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + b _0808E1BA + .align 2, 0 +_0808E1AC: .4byte gUnk_03003F80 +_0808E1B0: + bl sub_0805E780 + b _0808E1BA +_0808E1B6: + bl sub_0805E780 +_0808E1BA: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808E1BC +sub_0808E1BC: @ 0x0808E1BC + push {r4, lr} + adds r4, r0, #0 + bl sub_08079BD8 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0808E204 @ =gLinkEntity + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x1a] + movs r0, #0xaf + strh r0, [r4, #0x12] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_0808E204: .4byte gLinkEntity + + thumb_func_start sub_0808E208 +sub_0808E208: @ 0x0808E208 + push {r4, lr} + adds r4, r0, #0 + bl sub_08079BD8 + adds r0, r4, #0 + bl sub_08004274 + ldr r0, _0808E240 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1b] + cmp r0, #0 + beq _0808E248 + ldr r0, _0808E244 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0808E24C + ldrb r2, [r4, #0x1a] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + movs r0, #4 + eors r1, r0 + subs r0, #0x14 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + b _0808E24C + .align 2, 0 +_0808E240: .4byte gUnk_03003F80 +_0808E244: .4byte gUnk_030010A0 +_0808E248: + bl sub_0805E780 +_0808E24C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808E260 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0808E260: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808E264 +sub_0808E264: @ 0x0808E264 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808E27C + bl sub_0805E780 +_0808E27C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808E280 +sub_0808E280: @ 0x0808E280 + push {lr} + ldr r2, _0808E294 @ =gUnk_08121B8C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E294: .4byte gUnk_08121B8C + + thumb_func_start sub_0808E298 +sub_0808E298: @ 0x0808E298 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + movs r1, #2 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xc] + movs r5, #0 + movs r6, #0 + adds r0, r4, #0 + bl sub_080002A0 + adds r1, r0, #0 + movs r0, #0xd1 + lsls r0, r0, #2 + cmp r1, r0 + beq _0808E2DA + cmp r1, r0 + bhi _0808E2C6 + subs r0, #1 + cmp r1, r0 + beq _0808E2D8 + b _0808E2E2 +_0808E2C6: + ldr r0, _0808E2D4 @ =0x00000345 + cmp r1, r0 + beq _0808E2DE + adds r0, #1 + cmp r1, r0 + beq _0808E2E6 + b _0808E2E2 + .align 2, 0 +_0808E2D4: .4byte 0x00000345 +_0808E2D8: + movs r5, #0x10 +_0808E2DA: + movs r6, #0x10 + b _0808E2E6 +_0808E2DE: + movs r5, #0x10 + b _0808E2E6 +_0808E2E2: + bl sub_0805E780 +_0808E2E6: + ldrh r0, [r4, #0x2e] + adds r0, r0, r5 + movs r2, #0x10 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, r0, r6 + ands r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r1, _0808E314 @ =0x00000347 + adds r0, r4, #0 + bl sub_0808E354 + adds r0, r4, #0 + bl sub_0808E318 + pop {r4, r5, r6, pc} + .align 2, 0 +_0808E314: .4byte 0x00000347 + + thumb_func_start sub_0808E318 +sub_0808E318: @ 0x0808E318 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808E340 + ldr r1, _0808E33C @ =0x00000343 + adds r0, r4, #0 + bl sub_0808E354 + bl sub_0805E780 + b _0808E34E + .align 2, 0 +_0808E33C: .4byte 0x00000343 +_0808E340: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808E34E + ldr r0, _0808E350 @ =0x0000018B + bl sub_08004488 +_0808E34E: + pop {r4, pc} + .align 2, 0 +_0808E350: .4byte 0x0000018B + + thumb_func_start sub_0808E354 +sub_0808E354: @ 0x0808E354 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r0, #0 + lsls r1, r1, #0x10 + mov r8, r1 + mov r0, r8 + lsrs r0, r0, #0x10 + mov r8, r0 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r5, _0808E410 @ =gRoomControls + ldrh r0, [r5, #6] + adds r0, #0x10 + subs r1, r1, r0 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r2, [r5, #8] + adds r2, #0x10 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + movs r2, #2 + bl sub_0807B7D8 + mov r0, r8 + adds r0, #1 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + adds r3, #0x10 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + mov r0, r8 + adds r0, #2 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + adds r2, #0x10 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + movs r0, #3 + add r8, r0 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + movs r2, #2 + bl sub_0807B7D8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_0808E410: .4byte gRoomControls + + thumb_func_start sub_0808E414 +sub_0808E414: @ 0x0808E414 + push {lr} + ldr r2, _0808E428 @ =gUnk_08121BD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E428: .4byte gUnk_08121BD8 + + thumb_func_start sub_0808E42C +sub_0808E42C: @ 0x0808E42C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x11] + subs r1, #0x11 + ands r1, r2 + movs r2, #6 + orrs r1, r2 + strb r1, [r0, #0x11] + ldrb r1, [r0, #0xa] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808E448 +sub_0808E448: @ 0x0808E448 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x10 + bl sub_0805436C + cmp r0, #1 + bls _0808E45A + bl sub_0805E780 +_0808E45A: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + beq _0808E472 + cmp r0, #0x80 + bne _0808E486 + bl sub_0805E780 +_0808E472: + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + b _0808E494 +_0808E486: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_0808E494: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808E4A2 + ldr r0, [r4, #0x34] + ldr r1, _0808E4A4 @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] +_0808E4A2: + pop {r4, pc} + .align 2, 0 +_0808E4A4: .4byte 0xFFFF8000 + + thumb_func_start sub_0808E4A8 +sub_0808E4A8: @ 0x0808E4A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + lsls r1, r2, #1 + ldr r0, _0808E540 @ =gUnk_08121C40 + adds r3, r1, r0 + ldrb r6, [r4, #0xc] + cmp r6, #0 + bne _0808E54C + movs r5, #1 + strb r5, [r4, #0xc] + movs r2, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808E4C8 + movs r2, #1 +_0808E4C8: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x38 + strb r5, [r0] + ldrb r1, [r3] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r3, #1] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x76 + strh r6, [r0] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808E544 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + adds r0, r4, #0 + bl sub_0808E55C + ldr r1, _0808E548 @ =sub_0808E55C + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + b _0808E55A + .align 2, 0 +_0808E540: .4byte gUnk_08121C40 +_0808E544: .4byte gRoomControls +_0808E548: .4byte sub_0808E55C +_0808E54C: + movs r0, #1 + ands r2, r0 + cmp r2, #0 + bne _0808E55A + adds r0, r4, #0 + bl sub_0808E670 +_0808E55A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808E55C +sub_0808E55C: @ 0x0808E55C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + ldrb r0, [r0, #0xa] + cmp r0, #1 + beq _0808E614 + cmp r0, #1 + bgt _0808E576 + cmp r0, #0 + beq _0808E57A + b _0808E63A +_0808E576: + cmp r0, #2 + bne _0808E63A +_0808E57A: + mov r0, r8 + adds r0, #0x74 + ldrh r6, [r0] + ldr r0, _0808E5FC @ =0xFFFFFEFF + adds r7, r6, r0 + ldr r4, _0808E600 @ =0x0000408F + mov r5, r8 + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_0800015E + ldr r2, _0808E604 @ =0xFFFFFF00 + adds r1, r6, r2 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldr r0, _0808E608 @ =0x0000406C + ldr r2, _0808E60C @ =0xFFFFFEFE + adds r1, r6, r2 + ldrb r2, [r5] + bl sub_0800015E + ldr r0, _0808E610 @ =0x0000406D + adds r1, r6, #0 + subs r1, #0xff + ldrb r2, [r5] + bl sub_0800015E + mov r1, r8 + ldrb r0, [r1, #0xa] + movs r2, #6 + mov sb, r2 + cmp r0, #0 + beq _0808E63A + movs r0, #4 + mov sb, r0 + subs r4, #0x1d + adds r1, r6, #0 + adds r1, #0x3f + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x7f + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x80 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + b _0808E63A + .align 2, 0 +_0808E5FC: .4byte 0xFFFFFEFF +_0808E600: .4byte 0x0000408F +_0808E604: .4byte 0xFFFFFF00 +_0808E608: .4byte 0x0000406C +_0808E60C: .4byte 0xFFFFFEFE +_0808E610: .4byte 0x0000406D +_0808E614: + mov r0, r8 + adds r0, #0x74 + ldrh r6, [r0] + subs r7, r6, #1 + ldr r5, _0808E66C @ =0x0000408E + mov r4, r8 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_0800015E + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0800015E + movs r1, #2 + mov sb, r1 +_0808E63A: + movs r5, #0 + cmp r5, sb + bhs _0808E662 + ldr r6, _0808E66C @ =0x0000408E + mov r4, r8 + adds r4, #0x38 +_0808E646: + adds r7, #0x40 + ldrb r2, [r4] + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_0800015E + adds r1, r7, #1 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + adds r5, #1 + cmp r5, sb + blo _0808E646 +_0808E662: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808E66C: .4byte 0x0000408E + + thumb_func_start sub_0808E670 +sub_0808E670: @ 0x0808E670 + push {lr} + adds r0, #0x74 + ldrh r0, [r0] + ldr r1, _0808E684 @ =0xFFFFFEFF + adds r0, r0, r1 + movs r1, #1 + bl sub_080002B0 + pop {pc} + .align 2, 0 +_0808E684: .4byte 0xFFFFFEFF + + thumb_func_start sub_0808E688 +sub_0808E688: @ 0x0808E688 + push {lr} + ldr r2, _0808E69C @ =gUnk_08121C48 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E69C: .4byte gUnk_08121C48 + + thumb_func_start sub_0808E6A0 +sub_0808E6A0: @ 0x0808E6A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808E6B4 + bl sub_0805E780 +_0808E6B4: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x62 + strb r0, [r4, #0xa] + ldrb r1, [r4, #0x18] + subs r0, #0x66 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0808E6E0 @ =gUnk_08121C58 + str r0, [r4, #0x48] + adds r1, r4, #0 + adds r1, #0x38 + movs r2, #3 + movs r0, #3 + strb r0, [r1] + ldrb r1, [r4, #0x11] + subs r0, #0x13 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + pop {r4, pc} + .align 2, 0 +_0808E6E0: .4byte gUnk_08121C58 + + thumb_func_start sub_0808E6E4 +sub_0808E6E4: @ 0x0808E6E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808E712 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0808E714 +_0808E712: + pop {r4, pc} + + thumb_func_start sub_0808E714 +sub_0808E714: @ 0x0808E714 + push {r4, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xf] + lsls r0, r3, #3 + movs r1, #0x80 + lsls r1, r1, #3 + subs r2, r1, r0 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + ble _0808E73A + adds r0, r3, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0808E756 +_0808E73A: + movs r0, #3 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0805EC60 + ldr r0, _0808E760 @ =0x00000141 + bl sub_080A3268 +_0808E756: + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_0808E760: .4byte 0x00000141 + + thumb_func_start sub_0808E764 +sub_0808E764: @ 0x0808E764 + push {r4, lr} + adds r4, r0, #0 + bl sub_08080CB4 + ldr r0, _0808E79C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808E79A + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _0808E79A + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0x62 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0808E79A: + pop {r4, pc} + .align 2, 0 +_0808E79C: .4byte gUnk_03003F80 + + thumb_func_start sub_0808E7A0 +sub_0808E7A0: @ 0x0808E7A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0808E7B2 + adds r0, r4, #0 + bl sub_0808EFF0 +_0808E7B2: + ldr r1, _0808E7D4 @ =gUnk_08121C64 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x3f + bhi _0808E7D2 + adds r0, r4, #0 + bl sub_080042B8 +_0808E7D2: + pop {r4, pc} + .align 2, 0 +_0808E7D4: .4byte gUnk_08121C64 + + thumb_func_start sub_0808E7D8 +sub_0808E7D8: @ 0x0808E7D8 + push {lr} + ldr r2, _0808E7EC @ =gUnk_08121CCC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E7EC: .4byte gUnk_08121CCC + + thumb_func_start sub_0808E7F0 +sub_0808E7F0: @ 0x0808E7F0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + ldrb r0, [r4, #0x1a] + movs r1, #0xf + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xff + strb r0, [r4, #0xb] + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_0808E818 +sub_0808E818: @ 0x0808E818 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0808E950 + cmp r0, #0 + bne _0808E840 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808E94E +_0808E840: + ldr r0, _0808E8C0 @ =gUnk_02019EE0 + ldrb r1, [r0, #6] + ldrb r0, [r4, #0xb] + adds r6, r4, #0 + adds r6, #0x68 + adds r5, r4, #0 + adds r5, #0x70 + cmp r0, r1 + beq _0808E894 + strb r1, [r4, #0xb] + movs r0, #0x14 + bl GetProgressFlag + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + cmp r0, #0 + bne _0808E86A + movs r0, #0x80 + lsls r0, r0, #3 + adds r1, r0, #0 +_0808E86A: + strh r1, [r6] + movs r0, #4 + strb r0, [r5] + movs r0, #2 + strb r0, [r4, #0x14] + movs r0, #1 + bl sub_0807A094 + ldr r1, _0808E8C4 @ =gUnk_08133368 + subs r0, #0x16 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0808E8C8 @ =0x00FFFFFF + ands r0, r1 + ldr r1, _0808E8CC @ =gUnk_085A2E80 + adds r0, r0, r1 + movs r1, #0x1f + movs r2, #1 + bl sub_0801D754 +_0808E894: + ldr r0, _0808E8D0 @ =gUnk_02032EC0 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _0808E904 + ldr r3, _0808E8D4 @ =gUnk_03000FF0 + ldrh r1, [r3] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808E904 + ldrh r1, [r3, #2] + cmp r1, #0x20 + beq _0808E8F2 + cmp r1, #0x20 + bgt _0808E8D8 + cmp r1, #2 + beq _0808E8F8 + cmp r1, #0x10 + beq _0808E8E6 + b _0808E904 + .align 2, 0 +_0808E8C0: .4byte gUnk_02019EE0 +_0808E8C4: .4byte gUnk_08133368 +_0808E8C8: .4byte 0x00FFFFFF +_0808E8CC: .4byte gUnk_085A2E80 +_0808E8D0: .4byte gUnk_02032EC0 +_0808E8D4: .4byte gUnk_03000FF0 +_0808E8D8: + cmp r1, #0x40 + beq _0808E8E2 + cmp r1, #0x80 + beq _0808E8EC + b _0808E904 +_0808E8E2: + strb r2, [r4, #0x14] + b _0808E904 +_0808E8E6: + movs r0, #1 + strb r0, [r4, #0x14] + b _0808E904 +_0808E8EC: + movs r0, #2 + strb r0, [r4, #0x14] + b _0808E904 +_0808E8F2: + movs r0, #3 + strb r0, [r4, #0x14] + b _0808E904 +_0808E8F8: + ldrb r0, [r5] + movs r1, #0 + cmp r0, #0 + bne _0808E902 + movs r1, #4 +_0808E902: + strb r1, [r5] +_0808E904: + movs r2, #0 + ldrb r0, [r4, #0x14] + cmp r0, #3 + bne _0808E90E + movs r2, #1 +_0808E90E: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrh r0, [r6] + ldrb r1, [r5] + adds r0, r0, r1 + ldrb r2, [r4, #0x14] + adds r1, r0, r2 + adds r2, r4, #0 + adds r2, #0x6a + ldrh r0, [r2] + cmp r0, r1 + beq _0808E940 + strh r1, [r2] + lsrs r0, r1, #8 + strh r0, [r4, #0x12] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_080042AC +_0808E940: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r4, #0x18] +_0808E94E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808E950 +sub_0808E950: @ 0x0808E950 + push {lr} + movs r2, #0 + ldr r0, _0808E980 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _0808E968 + cmp r0, #0 + blt _0808E97C + cmp r0, #7 + bgt _0808E97C + cmp r0, #4 + blt _0808E97C +_0808E968: + ldr r0, _0808E984 @ =gUnk_02019EE0 + adds r1, r0, #0 + adds r1, #8 + ldrb r0, [r0, #6] + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #1 + bne _0808E97C + movs r2, #1 +_0808E97C: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0808E980: .4byte gUnk_02032EC0 +_0808E984: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808E988 +sub_0808E988: @ 0x0808E988 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0808E9AA + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0xa1 + lsls r0, r0, #1 + strh r0, [r5, #0x12] + movs r0, #0xff + strb r0, [r5, #0xb] + adds r0, r5, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 +_0808E9AA: + bl sub_0808E950 + cmp r0, #0 + beq _0808E9E8 + movs r4, #6 + b _0808E9BC +_0808E9B6: + subs r4, #1 + cmp r4, #0 + beq _0808E9E8 +_0808E9BC: + adds r0, r4, #0 + bl GetInventoryValue + cmp r0, #0 + beq _0808E9B6 + cmp r4, #0 + beq _0808E9E8 + ldrb r0, [r5, #0xb] + cmp r0, r4 + beq _0808E9D8 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080042AC +_0808E9D8: + ldrb r0, [r5, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r5, #0x18] + b _0808E9F2 +_0808E9E8: + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] +_0808E9F2: + pop {r4, r5, pc} + + thumb_func_start sub_0808E9F4 +sub_0808E9F4: @ 0x0808E9F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808E950 + cmp r0, #0 + beq _0808EA1C + ldr r0, _0808EA18 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + cmp r0, #0 + beq _0808EA1C + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0808EA26 + .align 2, 0 +_0808EA18: .4byte gUnk_02002A40 +_0808EA1C: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0808EA26: + pop {r4, pc} + + thumb_func_start sub_0808EA28 +sub_0808EA28: @ 0x0808EA28 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _0808EA56 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #1 + bls _0808EA4C + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0808EA56 +_0808EA4C: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0808EA56: + ldr r2, _0808EA68 @ =gUnk_02019EE0 + ldrb r1, [r4, #0xa] + ldrb r0, [r2, #6] + cmp r1, r0 + bne _0808EA6C + movs r3, #0xc + movs r2, #1 + b _0808EA88 + .align 2, 0 +_0808EA68: .4byte gUnk_02019EE0 +_0808EA6C: + ldr r0, _0808EA80 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #5 + bne _0808EA84 + ldrb r2, [r2, #7] + cmp r1, r2 + bne _0808EA84 + movs r3, #0xd + b _0808EA86 + .align 2, 0 +_0808EA80: .4byte gUnk_02032EC0 +_0808EA84: + movs r3, #0xe +_0808EA86: + movs r2, #2 +_0808EA88: + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x1a] + lsls r2, r2, #6 + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0808EABC + adds r0, r4, #0 + bl sub_0808EF6C + ldr r2, _0808EAB8 @ =gUnk_02019EE0 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + pop {r4, pc} + .align 2, 0 +_0808EAB8: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808EABC +sub_0808EABC: @ 0x0808EABC + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0x48 + rsbs r4, r4, #0 + ldrb r1, [r5, #0xa] + lsls r0, r1, #5 + adds r2, r0, #0 + adds r2, #0x28 + movs r3, #0 + ldr r0, _0808EAEC @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + cmp r0, r1 + bne _0808EAD8 + movs r3, #1 +_0808EAD8: + ldr r0, _0808EAF0 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #7 + bhi _0808EB60 + lsls r0, r0, #2 + ldr r1, _0808EAF4 @ =_0808EAF8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808EAEC: .4byte gUnk_02019EE0 +_0808EAF0: .4byte gUnk_02032EC0 +_0808EAF4: .4byte _0808EAF8 +_0808EAF8: @ jump table + .4byte _0808EB18 @ case 0 + .4byte _0808EB60 @ case 1 + .4byte _0808EB56 @ case 2 + .4byte _0808EB1C @ case 3 + .4byte _0808EB1C @ case 4 + .4byte _0808EB26 @ case 5 + .4byte _0808EB1C @ case 6 + .4byte _0808EB1C @ case 7 +_0808EB18: + movs r4, #0x18 + b _0808EB68 +_0808EB1C: + cmp r3, #0 + beq _0808EB68 + movs r4, #0x2a + movs r2, #0x38 + b _0808EB68 +_0808EB26: + ldr r3, _0808EB3C @ =gUnk_02000080 + adds r0, r3, #0 + adds r0, #0x10 + ldrb r1, [r5, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0 + bne _0808EB40 + movs r4, #0x2a + movs r2, #0x28 + b _0808EB68 + .align 2, 0 +_0808EB3C: .4byte gUnk_02000080 +_0808EB40: + cmp r1, #0 + blt _0808EB68 + cmp r1, #2 + bgt _0808EB68 + movs r4, #0x14 + movs r2, #0x90 + ldrb r0, [r3, #0x16] + subs r0, r0, r1 + lsls r0, r0, #5 + subs r2, r2, r0 + b _0808EB68 +_0808EB56: + cmp r3, #0 + beq _0808EB68 + movs r4, #0x1a + movs r2, #0x2a + b _0808EB68 +_0808EB60: + cmp r3, #0 + beq _0808EB68 + movs r4, #8 + movs r2, #0x23 +_0808EB68: + adds r0, r5, #0 + adds r0, #0x68 + strh r4, [r0] + adds r0, #2 + strh r2, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_0808EB74 +sub_0808EB74: @ 0x0808EB74 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0808EBA8 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_0808EC80 + adds r3, r0, #0 + cmp r3, #0 + beq _0808EBAC + ldr r0, [r3, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r3, #0x30] + str r0, [r4, #0x30] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + b _0808EBB4 + .align 2, 0 +_0808EBA8: .4byte gUnk_02019EE0 +_0808EBAC: + movs r0, #0xf0 + lsls r0, r0, #8 + strh r0, [r4, #0x2e] + strh r0, [r4, #0x32] +_0808EBB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808EBB8 +sub_0808EBB8: @ 0x0808EBB8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _0808EBD0 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + subs r0, #2 + cmp r0, #5 + bhi _0808EC1C + lsls r0, r0, #2 + ldr r1, _0808EBD4 @ =_0808EBD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808EBD0: .4byte gUnk_02032EC0 +_0808EBD4: .4byte _0808EBD8 +_0808EBD8: @ jump table + .4byte _0808EC18 @ case 0 + .4byte _0808EC1C @ case 1 + .4byte _0808EBF0 @ case 2 + .4byte _0808EBFC @ case 3 + .4byte _0808EC00 @ case 4 + .4byte _0808EC14 @ case 5 +_0808EBF0: + ldr r0, _0808EBF8 @ =gUnk_02000080 + ldrb r0, [r0, #1] + adds r1, r0, #4 + b _0808EC1E + .align 2, 0 +_0808EBF8: .4byte gUnk_02000080 +_0808EBFC: + movs r1, #2 + b _0808EC1E +_0808EC00: + ldr r0, _0808EC10 @ =gUnk_02000080 + ldrb r0, [r0, #1] + movs r1, #6 + cmp r0, #0 + bne _0808EC1E + movs r1, #7 + b _0808EC1E + .align 2, 0 +_0808EC10: .4byte gUnk_02000080 +_0808EC14: + movs r1, #4 + b _0808EC1E +_0808EC18: + movs r1, #1 + b _0808EC1E +_0808EC1C: + movs r1, #0 +_0808EC1E: + movs r5, #0xf0 + lsls r5, r5, #8 + adds r6, r5, #0 + cmp r1, #1 + beq _0808EC32 + cmp r1, #1 + blo _0808EC76 + cmp r1, #2 + beq _0808EC42 + b _0808EC4C +_0808EC32: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + lsls r0, r0, #4 + adds r5, r0, #0 + adds r5, #0x18 + movs r6, #0x70 + b _0808EC76 +_0808EC42: + ldr r0, _0808EC7C @ =gUnk_02019EE0 + ldrb r1, [r0, #7] + cmp r1, #4 + bne _0808EC4C + movs r1, #7 +_0808EC4C: + adds r0, r1, #0 + bl sub_0808EC80 + adds r4, r0, #0 + cmp r4, #0 + beq _0808EC76 + adds r1, r7, #0 + bl sub_0806FAD8 + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r7, #0x19] + movs r1, #0x3f + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #0x19] + movs r0, #0x2e + ldrsh r6, [r4, r0] + movs r0, #0x32 + ldrsh r5, [r4, r0] +_0808EC76: + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808EC7C: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808EC80 +sub_0808EC80: @ 0x0808EC80 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r3, _0808ECA4 @ =gUnk_03003DA0 + ldr r2, [r3, #4] + cmp r2, r3 + beq _0808ECB6 + ldr r6, _0808ECA8 @ =0x0000FFFF + ldr r5, _0808ECAC @ =0x00004806 +_0808EC90: + ldrh r1, [r2, #8] + adds r0, r6, #0 + ands r0, r1 + cmp r0, r5 + bne _0808ECB0 + ldrb r0, [r2, #0xa] + cmp r4, r0 + bne _0808ECB0 + adds r0, r2, #0 + b _0808ECB8 + .align 2, 0 +_0808ECA4: .4byte gUnk_03003DA0 +_0808ECA8: .4byte 0x0000FFFF +_0808ECAC: .4byte 0x00004806 +_0808ECB0: + ldr r2, [r2, #4] + cmp r2, r3 + bne _0808EC90 +_0808ECB6: + movs r0, #0 +_0808ECB8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808ECBC +sub_0808ECBC: @ 0x0808ECBC + push {r4, lr} + adds r3, r0, #0 + ldr r0, _0808ECD8 @ =gUnk_02000080 + ldrb r4, [r0, #1] + ldr r0, _0808ECDC @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #5 + beq _0808ECEE + cmp r0, #5 + bgt _0808ECE0 + cmp r0, #4 + beq _0808ECEA + b _0808ED04 + .align 2, 0 +_0808ECD8: .4byte gUnk_02000080 +_0808ECDC: .4byte gUnk_02032EC0 +_0808ECE0: + cmp r0, #6 + beq _0808ECFC + cmp r0, #7 + beq _0808ED00 + b _0808ED04 +_0808ECEA: + movs r0, #1 + b _0808ED06 +_0808ECEE: + ldr r0, _0808ECF8 @ =gUnk_02019EE0 + ldrb r4, [r0, #7] + movs r0, #2 + b _0808ED06 + .align 2, 0 +_0808ECF8: .4byte gUnk_02019EE0 +_0808ECFC: + movs r0, #3 + b _0808ED06 +_0808ED00: + movs r0, #4 + b _0808ED06 +_0808ED04: + movs r0, #0 +_0808ED06: + ldrb r2, [r3, #0xa] + subs r2, #4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + lsls r0, r2, #1 + adds r0, r0, r2 + ldr r2, _0808ED3C @ =gUnk_08121CD4 + adds r0, r0, r2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + adds r0, r3, #0 + adds r0, #0x68 + strh r2, [r0] + ldrb r0, [r1, #2] + adds r2, r3, #0 + adds r2, #0x6a + strh r0, [r2] + ldrb r0, [r1] + cmp r0, r4 + bne _0808ED40 + ldrb r0, [r3, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0xd + b _0808ED4A + .align 2, 0 +_0808ED3C: .4byte gUnk_08121CD4 +_0808ED40: + ldrb r0, [r3, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0xe +_0808ED4A: + orrs r1, r0 + strb r1, [r3, #0x1a] + adds r0, r3, #0 + bl sub_0808EF6C + ldr r2, _0808ED60 @ =gUnk_02019EE0 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + pop {r4, pc} + .align 2, 0 +_0808ED60: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808ED64 +sub_0808ED64: @ 0x0808ED64 + push {lr} + adds r2, r0, #0 + movs r3, #0xff + ldr r0, _0808ED90 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #1 + bne _0808ED8A + ldr r1, _0808ED94 @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + cmp r0, #5 + beq _0808ED8A + ldrb r0, [r1, #0x10] + lsls r0, r0, #4 + adds r0, #0x1c + strh r0, [r2, #0x2e] + ldrb r0, [r1, #0x11] + lsls r0, r0, #4 + adds r3, r0, #0 + adds r3, #0x3a +_0808ED8A: + strh r3, [r2, #0x32] + pop {pc} + .align 2, 0 +_0808ED90: .4byte gUnk_02032EC0 +_0808ED94: .4byte gUnk_02000080 + + thumb_func_start sub_0808ED98 +sub_0808ED98: @ 0x0808ED98 + push {lr} + adds r3, r0, #0 + ldr r0, _0808EDB4 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #1 + beq _0808EDB8 + adds r1, r3, #0 + adds r1, #0x68 + movs r0, #0x1b + strh r0, [r1] + movs r1, #0xa + rsbs r1, r1, #0 + b _0808EDCE + .align 2, 0 +_0808EDB4: .4byte gUnk_02032EC0 +_0808EDB8: + ldr r0, _0808EDF8 @ =gUnk_02000080 + ldrb r0, [r0, #0x13] + cmp r0, #5 + bls _0808EDC2 + movs r0, #5 +_0808EDC2: + lsls r0, r0, #3 + adds r0, #0x1b + adds r1, r3, #0 + adds r1, #0x68 + strh r0, [r1] + movs r1, #0x18 +_0808EDCE: + strh r1, [r3, #0x32] + adds r0, r3, #0 + adds r0, #0x6a + strh r1, [r0] + ldrb r0, [r3, #0xf] + adds r0, #1 + strb r0, [r3, #0xf] + ldr r2, _0808EDFC @ =gUnk_08121D10 + ldrb r0, [r3, #0xf] + lsrs r0, r0, #2 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x63 + strb r0, [r1] + adds r0, r3, #0 + bl sub_0808EF6C + pop {pc} + .align 2, 0 +_0808EDF8: .4byte gUnk_02000080 +_0808EDFC: .4byte gUnk_08121D10 + + thumb_func_start sub_0808EE00 +sub_0808EE00: @ 0x0808EE00 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + rsbs r2, r0, #0 + orrs r2, r0 + lsrs r2, r2, #0x1f + ldrb r0, [r4, #0xa] + adds r5, r0, #0 + subs r5, #0xa + ldr r1, _0808EE48 @ =gUnk_08121D38 + lsls r0, r2, #3 + adds r0, r5, r0 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + ldr r3, _0808EE4C @ =gUnk_08121D18 + lsls r0, r5, #1 + lsls r1, r2, #4 + adds r0, r0, r1 + adds r0, r0, r3 + ldrh r1, [r0] + strh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + subs r5, r5, r2 + ldr r0, _0808EE50 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #1 + beq _0808EE54 + movs r5, #0x80 + movs r1, #0xb0 + b _0808EE56 + .align 2, 0 +_0808EE48: .4byte gUnk_08121D38 +_0808EE4C: .4byte gUnk_08121D18 +_0808EE50: .4byte gUnk_02032EC0 +_0808EE54: + movs r1, #0x8c +_0808EE56: + adds r0, r4, #0 + adds r0, #0x6a + strh r1, [r0] + ldr r1, _0808EE8C @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + movs r2, #9 + cmp r0, #5 + bne _0808EE6E + ldrb r1, [r1, #0x12] + cmp r5, r1 + bne _0808EE6E + movs r2, #0xb +_0808EE6E: + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1a] + adds r0, r4, #0 + bl sub_0808EF6C + ldr r2, _0808EE90 @ =gUnk_02019EE0 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + pop {r4, r5, pc} + .align 2, 0 +_0808EE8C: .4byte gUnk_02000080 +_0808EE90: .4byte gUnk_02019EE0 + + thumb_func_start nullsub_522 +nullsub_522: @ 0x0808EE94 + bx lr + .align 2, 0 + + thumb_func_start sub_0808EE98 +sub_0808EE98: @ 0x0808EE98 + push {lr} + adds r3, r0, #0 + ldr r0, _0808EEBC @ =gUnk_02032EC0 + ldrb r1, [r0, #2] + strb r1, [r3, #0xe] + ldr r2, _0808EEC0 @ =gUnk_08121D48 + ldrb r0, [r3, #0xe] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r3, #0x1e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #2 + beq _0808EEC4 + adds r1, r3, #0 + adds r1, #0x68 + movs r0, #0x60 + b _0808EECA + .align 2, 0 +_0808EEBC: .4byte gUnk_02032EC0 +_0808EEC0: .4byte gUnk_08121D48 +_0808EEC4: + adds r1, r3, #0 + adds r1, #0x68 + ldr r0, _0808EED4 @ =0x0000FFA0 +_0808EECA: + strh r0, [r1] + adds r0, r3, #0 + bl sub_0808EF6C + pop {pc} + .align 2, 0 +_0808EED4: .4byte 0x0000FFA0 + + thumb_func_start sub_0808EED8 +sub_0808EED8: @ 0x0808EED8 + push {lr} + adds r2, r0, #0 + ldr r0, _0808EEF0 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #3 + beq _0808EEF4 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _0808EF1E + .align 2, 0 +_0808EEF0: .4byte gUnk_02032EC0 +_0808EEF4: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0xa] + subs r1, #0x13 + ldr r0, _0808EF20 @ =gUnk_02000080 + ldrb r0, [r0, #1] + movs r3, #3 + cmp r0, r1 + bne _0808EF12 + movs r3, #4 +_0808EF12: + ldrb r1, [r2, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #0x1a] +_0808EF1E: + pop {pc} + .align 2, 0 +_0808EF20: .4byte gUnk_02000080 + + thumb_func_start sub_0808EF24 +sub_0808EF24: @ 0x0808EF24 + push {lr} + adds r2, r0, #0 + ldr r0, _0808EF3C @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #3 + beq _0808EF40 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _0808EF68 + .align 2, 0 +_0808EF3C: .4byte gUnk_02032EC0 +_0808EF40: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r0, [r2, #0xa] + cmp r0, #0x15 + bne _0808EF5C + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #5] + b _0808EF62 +_0808EF5C: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #6] +_0808EF62: + ldrb r0, [r2, #0x1f] + adds r0, r0, r1 + strb r0, [r2, #0x1e] +_0808EF68: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808EF6C +sub_0808EF6C: @ 0x0808EF6C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x68 + movs r2, #0 + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + subs r6, r1, r0 + adds r0, r6, #0 + cmp r6, #0 + bge _0808EF84 + rsbs r0, r6, #0 +_0808EF84: + cmp r0, #1 + bhi _0808EF8E + lsls r0, r1, #0x10 + str r0, [r5, #0x2c] + movs r6, #0 +_0808EF8E: + adds r0, r5, #0 + adds r0, #0x6a + movs r2, #0 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r4, r1, r0 + adds r0, r4, #0 + cmp r4, #0 + bge _0808EFA4 + rsbs r0, r4, #0 +_0808EFA4: + cmp r0, #1 + bhi _0808EFAE + lsls r0, r1, #0x10 + str r0, [r5, #0x30] + movs r4, #0 +_0808EFAE: + adds r0, r6, #0 + orrs r0, r4 + cmp r0, #0 + bne _0808EFBA + movs r0, #0 + b _0808EFEC +_0808EFBA: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_080041EC + adds r1, r0, #0 + adds r0, #0x80 + lsls r1, r1, #4 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r0, r1 + bge _0808EFD6 + adds r1, r0, #0 +_0808EFD6: + strh r1, [r5, #0x24] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_080045DA + lsrs r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + movs r0, #1 +_0808EFEC: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808EFF0 +sub_0808EFF0: @ 0x0808EFF0 + push {r4, r5, lr} + mov ip, r0 + ldrb r1, [r0, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x18] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #0x24] + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + movs r0, #0xff + mov r3, ip + strb r0, [r3, #0x1e] + adds r1, #0x13 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldrb r4, [r3, #0xa] + lsls r4, r4, #3 + ldr r0, _0808F094 @ =gUnk_08121D54 + adds r4, r4, r0 + ldrh r0, [r4, #2] + strh r0, [r3, #0x2e] + ldrh r1, [r4, #2] + mov r0, ip + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #4] + strh r0, [r3, #0x32] + ldrh r0, [r4, #4] + mov r1, ip + adds r1, #0x6a + strh r0, [r1] + ldrb r1, [r4, #6] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x17 + ldrb r3, [r3, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x19] + ldrb r1, [r4, #6] + lsls r1, r1, #0x1a + mov r5, ip + adds r5, #0x29 + lsrs r1, r1, #0x1d + ldrb r3, [r5] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r5] + ldrb r0, [r4, #6] + lsrs r0, r0, #6 + lsls r0, r0, #6 + mov r3, ip + ldrb r1, [r3, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x1b] + ldrh r1, [r4] + mov r0, ip + adds r0, #0x6c + strh r1, [r0] + ldrb r1, [r4, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F098 + movs r0, #0x7f + ands r1, r0 + strb r1, [r3, #0x1e] + strb r1, [r3, #0x1f] + b _0808F09E + .align 2, 0 +_0808F094: .4byte gUnk_08121D54 +_0808F098: + mov r0, ip + bl sub_080042AC +_0808F09E: + pop {r4, r5, pc} + + thumb_func_start sub_0808F0A0 +sub_0808F0A0: @ 0x0808F0A0 + push {lr} + ldr r2, _0808F0B4 @ =gUnk_08121E5C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F0B4: .4byte gUnk_08121E5C + + thumb_func_start sub_0808F0B8 +sub_0808F0B8: @ 0x0808F0B8 + push {lr} + ldr r2, _0808F0CC @ =gUnk_08121E88 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F0CC: .4byte gUnk_08121E88 + + thumb_func_start sub_0808F0D0 +sub_0808F0D0: @ 0x0808F0D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x49 + movs r2, #2 + movs r3, #0 + bl sub_080A2988 + str r0, [r5, #0x54] + cmp r0, #0 + bne _0808F0E8 + bl sub_0805E780 +_0808F0E8: + movs r6, #1 + strb r6, [r5, #0xc] + ldr r0, _0808F148 @ =0x0000FF40 + strh r0, [r5, #0x36] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #0x3f + ands r4, r0 + bl sub_08000E50 + ands r0, r6 + cmp r0, #0 + beq _0808F106 + rsbs r4, r4, #0 +_0808F106: + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #0x1f + ands r4, r0 + bl sub_08000E50 + ands r0, r6 + cmp r0, #0 + beq _0808F124 + rsbs r4, r4, #0 +_0808F124: + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x32] + adds r0, r0, r4 + strh r0, [r5, #0x32] + movs r0, #0x90 + lsls r0, r0, #2 + str r0, [r5, #0x74] + movs r0, #0xa0 + lsls r0, r0, #1 + str r0, [r5, #0x78] + adds r0, r5, #0 + movs r1, #3 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0808F14C + pop {r4, r5, r6, pc} + .align 2, 0 +_0808F148: .4byte 0x0000FF40 + + thumb_func_start sub_0808F14C +sub_0808F14C: @ 0x0808F14C + push {r4, lr} + adds r4, r0, #0 + bl sub_0808F2B0 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808F16E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x84 + bl sub_080A3268 +_0808F16E: + pop {r4, pc} + + thumb_func_start sub_0808F170 +sub_0808F170: @ 0x0808F170 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x74] + subs r0, #0x20 + str r0, [r4, #0x74] + ldr r1, [r4, #0x78] + adds r1, #0x20 + str r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 + ldr r1, [r4, #0x78] + ldr r0, _0808F1A0 @ =0x000001FF + cmp r1, r0 + bls _0808F198 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0808F198: + adds r0, r4, #0 + bl sub_0808F2B0 + pop {r4, pc} + .align 2, 0 +_0808F1A0: .4byte 0x000001FF + + thumb_func_start sub_0808F1A4 +sub_0808F1A4: @ 0x0808F1A4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x78] + adds r1, #0x10 + str r1, [r4, #0x78] + ldr r0, [r4, #0x74] + adds r0, #0x10 + str r0, [r4, #0x74] + adds r0, r4, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 + ldr r1, [r4, #0x78] + ldr r0, _0808F1D4 @ =0x000003FF + cmp r1, r0 + bls _0808F1D8 + ldr r1, [r4, #0x54] + movs r0, #0xff + strb r0, [r1, #0xc] + bl sub_0805E780 + b _0808F1DE + .align 2, 0 +_0808F1D4: .4byte 0x000003FF +_0808F1D8: + adds r0, r4, #0 + bl sub_0808F2B0 +_0808F1DE: + pop {r4, pc} + + thumb_func_start sub_0808F1E0 +sub_0808F1E0: @ 0x0808F1E0 + push {lr} + ldr r2, _0808F1F4 @ =gUnk_08121E98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F1F4: .4byte gUnk_08121E98 + + thumb_func_start sub_0808F1F8 +sub_0808F1F8: @ 0x0808F1F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0x19] + movs r0, #3 + orrs r2, r0 + strb r2, [r4, #0x19] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + movs r0, #0x3f + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x19] + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0808F244 + pop {r4, pc} + + thumb_func_start sub_0808F244 +sub_0808F244: @ 0x0808F244 + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r3, #0x32] + adds r0, #3 + movs r2, #0 + strh r0, [r4, #0x32] + ldr r1, [r4, #0x54] + adds r0, r1, #0 + adds r0, #0x62 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r1, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + str r2, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0x80 + subs r0, r0, r1 + str r0, [r4, #0x74] + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0x80 + lsls r0, r0, #1 + subs r0, r0, r1 + str r0, [r4, #0x78] + adds r3, #0x7f + ldrb r0, [r3] + str r0, [r4, #0x70] + adds r0, r4, #0 + bl sub_0808F2B0 + ldr r0, [r4, #0x50] + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808F2AC + bl sub_0805E780 +_0808F2AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F2B0 +sub_0808F2B0: @ 0x0808F2B0 + push {lr} + ldr r1, [r0, #0x74] + ldr r2, [r0, #0x78] + ldr r3, [r0, #0x70] + bl sub_0805EC9C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808F2C0 +sub_0808F2C0: @ 0x0808F2C0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + adds r6, r0, #0 + cmp r6, #0 + bne _0808F322 + adds r0, #1 + strb r0, [r5, #0xc] + ldr r4, [r5, #0x50] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + str r6, [r5, #0x34] + ldr r1, [r5, #0x50] + ldrh r0, [r1, #0x32] + adds r0, #3 + strh r0, [r5, #0x32] + ldrh r0, [r1, #0x2e] + strh r0, [r5, #0x2e] + adds r0, r5, #0 + movs r1, #3 + bl sub_08004260 +_0808F322: + ldr r2, [r5, #0x50] + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _0808F334 + ldr r0, [r2, #0x74] + str r0, [r5, #0x74] + ldr r0, [r2, #0x78] + b _0808F34C +_0808F334: + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x80 + lsls r0, r0, #2 + subs r0, r0, r1 + str r0, [r5, #0x74] + movs r0, #0x36 + ldrsh r1, [r2, r0] + lsls r1, r1, #1 + movs r0, #0xc0 + lsls r0, r0, #2 + subs r0, r0, r1 +_0808F34C: + str r0, [r5, #0x78] + movs r0, #0 + str r0, [r5, #0x70] + adds r0, r5, #0 + bl sub_0808F2B0 + ldr r1, [r5, #0x78] + adds r0, r5, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 + ldrb r0, [r5, #0xc] + cmp r0, #0xff + bne _0808F36E + bl sub_0805E780 +_0808F36E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808F370 +sub_0808F370: @ 0x0808F370 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _0808F388 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + cmp r0, #1 + bne _0808F3DA + strb r0, [r4, #0xc] + str r1, [r4, #0x70] + b _0808F3CC +_0808F388: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _0808F3D4 + ldr r0, [r4, #0x70] + cmp r0, #0 + bne _0808F3C4 + ldr r0, [r4, #0x74] + subs r0, #1 + str r0, [r4, #0x74] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0808F3DA + bl sub_08000E50 + ldr r2, _0808F3C0 @ =gUnk_08121EA0 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + str r0, [r4, #0x70] + b _0808F3DA + .align 2, 0 +_0808F3C0: .4byte gUnk_08121EA0 +_0808F3C4: + subs r0, #1 + str r0, [r4, #0x70] + cmp r0, #0 + bne _0808F3DA +_0808F3CC: + adds r0, r4, #0 + bl sub_0808F5EC + b _0808F3DA +_0808F3D4: + movs r0, #0 + strb r0, [r4, #0xc] + str r0, [r4, #0x74] +_0808F3DA: + pop {r4, pc} + + thumb_func_start sub_0808F3DC +sub_0808F3DC: @ 0x0808F3DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808F438 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xa] + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + cmp r0, #8 + beq _0808F41A + cmp r0, #7 + bne _0808F42E + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FAD8 + b _0808F494 +_0808F41A: + ldr r0, [r4, #0x54] + adds r0, #0x3f + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3f + strb r0, [r1] + ldr r0, [r4, #0x54] + adds r0, #0x3f + movs r1, #0x7e + strb r1, [r0] +_0808F42E: + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FAB0 + b _0808F494 +_0808F438: + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x74] + cmp r0, #0 + bne _0808F456 + ldrb r0, [r4, #0xa] + cmp r0, #8 + bne _0808F452 + ldr r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x3f + ldrb r1, [r1] + adds r0, #0x3f + strb r1, [r0] +_0808F452: + bl sub_0805E780 +_0808F456: + ldrb r0, [r4, #0xa] + cmp r0, #5 + bne _0808F486 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808F486 + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #8 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0808F486 + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x50] + str r0, [r1, #0x54] +_0808F486: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FA6C +_0808F494: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F498 +sub_0808F498: @ 0x0808F498 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _0808F4EC + adds r0, r5, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0808F4C2 + ldr r0, _0808F4E4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0808F4BE + movs r0, #0xef + bl sub_080A3268 +_0808F4BE: + bl sub_0805E780 +_0808F4C2: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0808F4D4 + bl sub_0805E780 +_0808F4D4: + ldr r0, _0808F4E8 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + cmp r0, #1 + beq _0808F550 + bl sub_0805E780 + b _0808F550 + .align 2, 0 +_0808F4E4: .4byte gUnk_030010A0 +_0808F4E8: .4byte gUnk_03003F80 +_0808F4EC: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x40 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xb] + movs r6, #0x2b + cmp r0, #0 + beq _0808F4FE + movs r6, #0x2c +_0808F4FE: + ldr r0, [r5, #0x50] + ldr r0, [r0, #0x48] + ldrb r1, [r0, #6] + ldrh r0, [r5, #0x2e] + subs r0, r0, r1 + strh r0, [r5, #0x2e] + bl sub_08000E50 + ldr r4, [r5, #0x50] + ldr r1, [r4, #0x48] + ldrb r1, [r1, #6] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r5, #0x2e] + adds r1, r1, r0 + strh r1, [r5, #0x2e] + ldr r0, [r4, #0x48] + ldrb r1, [r0, #7] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + bl sub_08000E50 + ldr r1, [r5, #0x50] + ldr r1, [r1, #0x48] + ldrb r1, [r1, #7] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r5, #0x32] + adds r1, r1, r0 + strh r1, [r5, #0x32] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #4 + bl sub_08004260 +_0808F550: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808F554 +sub_0808F554: @ 0x0808F554 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA6C + adds r1, r5, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #0x18 + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r1, r0, #0 + adds r1, #0x62 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0808F588 + adds r2, r5, #0 + adds r2, #0x62 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] +_0808F588: + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _0808F5AC + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + cmp r0, #0 + beq _0808F5A4 + subs r0, #1 + str r0, [r1] + cmp r0, #0 + bne _0808F5A4 + bl sub_0805E780 +_0808F5A4: + adds r0, r5, #0 + bl sub_08004274 + b _0808F5E8 +_0808F5AC: + movs r0, #1 + strb r0, [r5, #0xc] + ldr r4, [r5, #0x50] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + movs r1, #3 + bl sub_08004260 +_0808F5E8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808F5EC +sub_0808F5EC: @ 0x0808F5EC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #5 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0808F608 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_0808F608: + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #6 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0808F620 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_0808F620: + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #7 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0808F638 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_0808F638: + movs r0, #0x96 + lsls r0, r0, #2 + str r0, [r4, #0x74] + pop {r4, pc} + + thumb_func_start sub_0808F640 +sub_0808F640: @ 0x0808F640 + push {lr} + ldr r2, _0808F654 @ =gUnk_08121EA4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F654: .4byte gUnk_08121EA4 + + thumb_func_start sub_0808F658 +sub_0808F658: @ 0x0808F658 + push {r4, r5, lr} + adds r5, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + orrs r0, r1 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0xa] + adds r3, r5, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x1e] + movs r0, #8 + strb r0, [r5, #0x15] + ldr r1, _0808F6D8 @ =gUnk_08121EB0 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + movs r4, #0 + strh r0, [r5, #0x24] + ldr r3, _0808F6DC @ =gRoomControls + ldrh r1, [r3, #6] + adds r2, r1, #0 + subs r2, #0x60 + adds r0, r5, #0 + adds r0, #0x78 + strh r2, [r0] + ldrh r0, [r3, #0x1e] + adds r1, r1, r0 + adds r1, #0x60 + adds r0, r5, #0 + adds r0, #0x7a + strh r1, [r0] + strb r4, [r5, #0x14] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #4 + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + strb r4, [r5, #0xe] + strb r4, [r5, #0xd] + pop {r4, r5, pc} + .align 2, 0 +_0808F6D8: .4byte gUnk_08121EB0 +_0808F6DC: .4byte gRoomControls + + thumb_func_start sub_0808F6E0 +sub_0808F6E0: @ 0x0808F6E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x78 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + blt _0808F704 + adds r0, r4, #0 + adds r0, #0x7a + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + ble _0808F708 +_0808F704: + movs r0, #2 + strb r0, [r4, #0xc] +_0808F708: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F70C +sub_0808F70C: @ 0x0808F70C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0808F75C + movs r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #3 + adds r0, #0x1f + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808F738 + adds r0, r4, #0 + adds r0, #0x7a + b _0808F73C +_0808F738: + adds r0, r4, #0 + adds r0, #0x78 +_0808F73C: + ldrh r0, [r0] + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _0808F75C + bl sub_08000E50 + ldr r3, _0808F778 @ =gUnk_08121EB3 + ldrb r1, [r4, #0xb] + lsls r1, r1, #1 + movs r2, #1 + ands r2, r0 + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r0, [r1] + strh r0, [r4, #0x32] +_0808F75C: + ldrb r1, [r4, #0xd] + cmp r1, #1 + bne _0808F774 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0808F774 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] +_0808F774: + pop {r4, pc} + .align 2, 0 +_0808F778: .4byte gUnk_08121EB3 + + thumb_func_start sub_0808F77C +sub_0808F77C: @ 0x0808F77C + push {lr} + ldr r2, _0808F790 @ =gUnk_08121EB8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F790: .4byte gUnk_08121EB8 + + thumb_func_start sub_0808F794 +sub_0808F794: @ 0x0808F794 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808F7A8 +sub_0808F7A8: @ 0x0808F7A8 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F7D0 + movs r0, #0x78 + strb r0, [r2, #0xe] + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] +_0808F7D0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808F7D4 +sub_0808F7D4: @ 0x0808F7D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F80A + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_0808F80A: + pop {r4, pc} + + thumb_func_start sub_0808F80C +sub_0808F80C: @ 0x0808F80C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808F850 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x15] + movs r2, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + strb r0, [r4, #0x1b] + strb r2, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + ldr r0, _0808F854 @ =0x0000012B + bl sub_080A3268 +_0808F850: + pop {r4, pc} + .align 2, 0 +_0808F854: .4byte 0x0000012B + + thumb_func_start sub_0808F858 +sub_0808F858: @ 0x0808F858 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808F884 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808F88A + adds r0, r4, #0 + bl sub_08004274 + b _0808F88A +_0808F884: + adds r0, r4, #0 + bl sub_08004274 +_0808F88A: + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _0808F8C4 @ =gRoomControls + ldrh r2, [r1, #8] + subs r0, r0, r2 + movs r1, #0x8c + lsls r1, r1, #2 + cmp r0, r1 + bgt _0808F8C8 + adds r0, r2, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F8EA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0808F8EA + .align 2, 0 +_0808F8C4: .4byte gRoomControls +_0808F8C8: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F8EA + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + ldr r0, _0808F8EC @ =0x0000012B + bl sub_080A3268 +_0808F8EA: + pop {r4, pc} + .align 2, 0 +_0808F8EC: .4byte 0x0000012B + + thumb_func_start sub_0808F8F0 +sub_0808F8F0: @ 0x0808F8F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F912 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 +_0808F912: + pop {r4, pc} + + thumb_func_start sub_0808F914 +sub_0808F914: @ 0x0808F914 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F93C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0808F93C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F940 +sub_0808F940: @ 0x0808F940 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F960 + ldr r1, _0808F964 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + bl sub_0805E780 +_0808F960: + pop {r4, pc} + .align 2, 0 +_0808F964: .4byte gUnk_02000080 + + thumb_func_start sub_0808F968 +sub_0808F968: @ 0x0808F968 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808F98C @ =gUnk_08121ED8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0808F988 + adds r0, r4, #0 + bl sub_08090514 +_0808F988: + pop {r4, pc} + .align 2, 0 +_0808F98C: .4byte gUnk_08121ED8 + + thumb_func_start sub_0808F990 +sub_0808F990: @ 0x0808F990 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xc] + movs r3, #0 + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0xf] + strb r3, [r4, #0xe] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r0, r4, #0 + adds r0, #0x81 + strb r3, [r0] + adds r0, #2 + strb r3, [r0] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0808F9E8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x80 + strb r3, [r0] + b _0808FA1C +_0808F9E8: + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0808FA0A + cmp r0, #4 + bne _0808FA1C +_0808FA0A: + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] + strb r3, [r4, #0xd] + strb r3, [r4, #0x1e] +_0808FA1C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0808FAC4 + movs r6, #0 + cmp r0, #0x80 + beq _0808FA84 + ldrh r1, [r4, #0xa] + ldr r0, _0808FA38 @ =0x00000101 + cmp r1, r0 + bne _0808FA3C + movs r0, #0xf + ldrsb r0, [r4, r0] + ldrh r1, [r4, #0x32] + b _0808FA42 + .align 2, 0 +_0808FA38: .4byte 0x00000101 +_0808FA3C: + movs r0, #0xf + ldrsb r0, [r4, r0] + ldrh r1, [r4, #0x2e] +_0808FA42: + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + adds r5, r1, #0 + ldr r3, [r4, #0x50] + cmp r3, #0 + bne _0808FA5E + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + b _0808FA7C +_0808FA5E: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FA76 + ldrb r0, [r3, #0xc] + cmp r0, #2 + bne _0808FAA2 + adds r6, #1 + b _0808FAA2 +_0808FA76: + ldrb r0, [r2] + bl sub_0807CBD0 +_0808FA7C: + cmp r0, #0 + beq _0808FAA2 + adds r6, #1 + b _0808FAA2 +_0808FA84: + movs r6, #1 + ldrh r1, [r4, #0xa] + ldr r0, _0808FA94 @ =0x00000101 + cmp r1, r0 + bne _0808FA98 + ldrh r1, [r4, #0x32] + b _0808FA9A + .align 2, 0 +_0808FA94: .4byte 0x00000101 +_0808FA98: + ldrh r1, [r4, #0x2e] +_0808FA9A: + adds r0, r4, #0 + adds r0, #0x7e + strh r1, [r0] + adds r5, r0, #0 +_0808FAA2: + cmp r6, #0 + beq _0808FAC4 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + ldrh r1, [r4, #0xa] + ldr r0, _0808FABC @ =0x00000101 + cmp r1, r0 + bne _0808FAC0 + ldrh r0, [r5] + strh r0, [r4, #0x32] + b _0808FAC4 + .align 2, 0 +_0808FABC: .4byte 0x00000101 +_0808FAC0: + ldrh r0, [r5] + strh r0, [r4, #0x2e] +_0808FAC4: + adds r0, r4, #0 + bl sub_0808FF50 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808FACC +sub_0808FACC: @ 0x0808FACC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0808FAF2 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0808FAEA + adds r0, r4, #0 + bl sub_0808FBFC + b _0808FB0A +_0808FAEA: + adds r0, r4, #0 + bl sub_0808FB68 + b _0808FB0A +_0808FAF2: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808FB0A + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FB0A + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_0808FB0A: + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0808FB14 + cmp r0, #4 + bne _0808FB64 +_0808FB14: + ldrb r1, [r4, #0xd] + cmp r1, #1 + beq _0808FB3E + cmp r1, #1 + bgt _0808FB24 + cmp r1, #0 + beq _0808FB2A + b _0808FB64 +_0808FB24: + cmp r1, #2 + beq _0808FB5E + b _0808FB64 +_0808FB2A: + adds r0, r4, #0 + bl sub_0808FECC + cmp r0, #0 + beq _0808FB64 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xc + strb r0, [r4, #0xe] + b _0808FB64 +_0808FB3E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FB64 + strb r1, [r4, #0x1e] + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x80 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0808FF20 + b _0808FB64 +_0808FB5E: + adds r0, r4, #0 + bl nullsub_1 +_0808FB64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808FB68 +sub_0808FB68: @ 0x0808FB68 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0808FBAC @ =0x00004031 + cmp r1, r0 + bhi _0808FBB0 + subs r0, #1 + cmp r1, r0 + blo _0808FBB0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r1, #0 + subs r0, #0x30 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #4 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08078A90 + adds r0, r4, #0 + movs r1, #0 + bl sub_0808FD44 + b _0808FBF6 + .align 2, 0 +_0808FBAC: .4byte 0x00004031 +_0808FBB0: + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0808FBF8 @ =0x00004031 + cmp r1, r0 + bhi _0808FBF0 + subs r0, #1 + cmp r1, r0 + blo _0808FBF0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r1, #0 + subs r0, #0x30 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #4 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08078A90 + adds r0, r4, #0 + movs r1, #1 + bl sub_0808FD44 +_0808FBF0: + adds r0, r4, #0 + bl sub_0808FDE8 +_0808FBF6: + pop {r4, pc} + .align 2, 0 +_0808FBF8: .4byte 0x00004031 + + thumb_func_start sub_0808FBFC +sub_0808FBFC: @ 0x0808FBFC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0808FC38 @ =0x0000404A + cmp r1, r0 + beq _0808FC34 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r1, #0 + subs r0, #0x4b + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08078A90 + adds r0, r4, #0 + movs r1, #0 + bl sub_0808FD44 +_0808FC34: + pop {r4, pc} + .align 2, 0 +_0808FC38: .4byte 0x0000404A + + thumb_func_start sub_0808FC3C +sub_0808FC3C: @ 0x0808FC3C + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_0808FC5C + cmp r0, #0 + beq _0808FC58 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08078A90 +_0808FC58: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808FC5C +sub_0808FC5C: @ 0x0808FC5C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0808FD40 + ldrb r1, [r4, #0xa] + cmp r1, #2 + beq _0808FC7C + cmp r1, #4 + bne _0808FC84 +_0808FC7C: + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfe + b _0808FC88 +_0808FC84: + adds r1, r4, #0 + adds r1, #0x63 +_0808FC88: + strb r0, [r1] + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0 + bne _0808FD40 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0808FD30 + movs r2, #0 + ldrh r1, [r4, #0xa] + ldr r0, _0808FCB4 @ =0x00000101 + cmp r1, r0 + bne _0808FCB8 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + cmp r0, r1 + bne _0808FCC8 + b _0808FCCC + .align 2, 0 +_0808FCB4: .4byte 0x00000101 +_0808FCB8: + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + cmp r0, r1 + bne _0808FCC8 + movs r2, #1 +_0808FCC8: + cmp r2, #0 + beq _0808FD30 +_0808FCCC: + adds r0, r4, #0 + adds r0, #0x81 + movs r5, #1 + strb r5, [r0] + ldr r3, [r4, #0x50] + cmp r3, #0 + bne _0808FCE4 + adds r0, #5 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0808FD0C +_0808FCE4: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FD06 + adds r0, r3, #0 + adds r0, #0x28 + subs r2, #8 + adds r1, r5, #0 + ldrh r2, [r2] + lsls r1, r2 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] + b _0808FD0C +_0808FD06: + ldrb r0, [r2] + bl sub_0807CCB4 +_0808FD0C: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0808FD1A + movs r0, #4 + b _0808FD1C +_0808FD1A: + movs r0, #0x18 +_0808FD1C: + strb r0, [r4, #0xe] + ldr r0, _0808FD3C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808FD30 + ldrb r0, [r4, #0xe] + adds r0, #0x10 + strb r0, [r4, #0xe] +_0808FD30: + adds r0, r4, #0 + bl sub_0808FF50 + movs r0, #1 + b _0808FD42 + .align 2, 0 +_0808FD3C: .4byte gUnk_03003F80 +_0808FD40: + movs r0, #0 +_0808FD42: + pop {r4, r5, pc} + + thumb_func_start sub_0808FD44 +sub_0808FD44: @ 0x0808FD44 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #1 + bne _0808FD8E + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _0808FD62 + adds r0, r4, #0 + bl sub_08090498 +_0808FD62: + cmp r5, #0 + beq _0808FD6C + adds r0, r4, #0 + adds r0, #0x72 + b _0808FD70 +_0808FD6C: + adds r0, r4, #0 + adds r0, #0x70 +_0808FD70: + ldrh r5, [r0] + ldr r0, _0808FD84 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FD88 + movs r0, #0x40 + strh r0, [r4, #0x24] + b _0808FDB2 + .align 2, 0 +_0808FD84: .4byte gUnk_03003F80 +_0808FD88: + strh r1, [r4, #0x24] + movs r0, #0x10 + b _0808FDB4 +_0808FD8E: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r5, [r0] + ldr r0, _0808FDAC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FDB0 + movs r1, #0x40 + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0xe] + b _0808FDB6 + .align 2, 0 +_0808FDAC: .4byte gUnk_03003F80 +_0808FDB0: + strh r1, [r4, #0x24] +_0808FDB2: + movs r0, #0x20 +_0808FDB4: + strb r0, [r4, #0xe] +_0808FDB6: + ldr r0, _0808FDE0 @ =0x0000010F + bl sub_08004488 + adds r0, r4, #0 + bl sub_08090254 + ldr r1, _0808FDE4 @ =gUnk_080B4488 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, r5, r0 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + pop {r4, r5, pc} + .align 2, 0 +_0808FDE0: .4byte 0x0000010F +_0808FDE4: .4byte gUnk_080B4488 + + thumb_func_start sub_0808FDE8 +sub_0808FDE8: @ 0x0808FDE8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x70 + ldrh r5, [r0] + subs r0, r5, #1 + movs r1, #1 + bl sub_080002E0 + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #1 + bl sub_080001DA + ldr r6, _0808FE28 @ =0x0000402E + cmp r0, r6 + bne _0808FE30 + movs r0, #0xf0 + ands r0, r4 + cmp r0, #0 + beq _0808FE14 + cmp r0, #0x50 + bne _0808FE1C +_0808FE14: + movs r0, #5 + ands r0, r4 + cmp r0, #0 + bne _0808FE58 +_0808FE1C: + ldr r0, _0808FE2C @ =0x0000402C + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E + b _0808FE58 + .align 2, 0 +_0808FE28: .4byte 0x0000402E +_0808FE2C: .4byte 0x0000402C +_0808FE30: + adds r0, r5, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #5 + bne _0808FE58 + movs r1, #0xf0 + ands r1, r4 + cmp r1, #0 + beq _0808FE48 + cmp r1, #0x50 + bne _0808FE58 +_0808FE48: + ands r4, r0 + cmp r4, #0 + beq _0808FE58 + adds r0, r6, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E +_0808FE58: + adds r0, r7, #0 + adds r0, #0x72 + ldrh r5, [r0] + adds r0, r5, #1 + movs r1, #1 + bl sub_080002E0 + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #1 + bl sub_080001DA + ldr r6, _0808FE98 @ =0x0000402F + cmp r0, r6 + bne _0808FEA0 + movs r0, #0xf0 + ands r0, r4 + cmp r0, #0 + beq _0808FE82 + cmp r0, #0x50 + bne _0808FE8A +_0808FE82: + movs r0, #0xa + ands r0, r4 + cmp r0, #0 + bne _0808FEC8 +_0808FE8A: + ldr r0, _0808FE9C @ =0x0000402D + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E + b _0808FEC8 + .align 2, 0 +_0808FE98: .4byte 0x0000402F +_0808FE9C: .4byte 0x0000402D +_0808FEA0: + adds r0, r5, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0xa + bne _0808FEC8 + movs r1, #0xf0 + ands r1, r4 + cmp r1, #0 + beq _0808FEB8 + cmp r1, #0x50 + bne _0808FEC8 +_0808FEB8: + ands r4, r0 + cmp r4, #0 + beq _0808FEC8 + adds r0, r6, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E +_0808FEC8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808FECC +sub_0808FECC: @ 0x0808FECC + push {r4, r5, lr} + adds r2, r0, #0 + movs r4, #1 + ldr r0, _0808FF18 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808FF10 + ldr r3, _0808FF1C @ =gLinkEntity + ldrb r0, [r3, #0xc] + cmp r0, #6 + bne _0808FF10 + ldrb r0, [r3, #0x14] + cmp r0, #0 + bne _0808FF10 + movs r1, #0x32 + ldrsh r0, [r3, r1] + movs r5, #0x32 + ldrsh r1, [r2, r5] + subs r0, r0, r1 + cmp r0, #0x13 + bgt _0808FF10 + movs r0, #0x2e + ldrsh r2, [r2, r0] + adds r0, r2, #0 + adds r0, #0xc + movs r5, #0x2e + ldrsh r1, [r3, r5] + cmp r0, r1 + ble _0808FF10 + subs r0, #0x18 + cmp r0, r1 + blt _0808FF12 +_0808FF10: + movs r4, #0 +_0808FF12: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_0808FF18: .4byte gUnk_03003F80 +_0808FF1C: .4byte gLinkEntity + + thumb_func_start sub_0808FF20 +sub_0808FF20: @ 0x0808FF20 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + cmp r1, #0 + beq _0808FF4A + cmp r1, #0 + blt _0808FF4A + cmp r1, #2 + bgt _0808FF4A + subs r1, #1 + movs r0, #0x63 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0808FF4A + str r4, [r1, #0x50] + adds r0, r4, #0 + bl sub_0806FA24 +_0808FF4A: + pop {r4, pc} + + thumb_func_start nullsub_1 +nullsub_1: @ 0x0808FF4C + bx lr + .align 2, 0 + + thumb_func_start sub_0808FF50 +sub_0808FF50: @ 0x0808FF50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _0808FF98 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r2, r6, #0 + adds r2, #0x7c + strh r1, [r2] + ldrh r0, [r6, #0x2e] + movs r1, #0xf + ands r1, r0 + ldrh r7, [r2] + adds r0, r6, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0808FF9C + cmp r0, #1 + beq _0808FFC0 + b _0809008A + .align 2, 0 +_0808FF98: .4byte gRoomControls +_0808FF9C: + adds r0, r6, #0 + adds r0, #0x70 + strh r7, [r0] + ldrh r0, [r0] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldr r0, _0808FFBC @ =0x0000404A + adds r1, r7, #0 + movs r2, #1 + bl sub_0800015E + b _0809008A + .align 2, 0 +_0808FFBC: .4byte 0x0000404A +_0808FFC0: + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0809002C + adds r0, r6, #0 + adds r0, #0x70 + strh r7, [r0] + ldrh r0, [r0] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldr r4, _08090028 @ =gUnk_08121EE4 + movs r0, #0x81 + adds r0, r0, r6 + mov r8, r0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + adds r1, r7, #0 + movs r2, #1 + bl sub_0800015E + adds r0, r7, #1 + adds r5, r6, #0 + adds r5, #0x72 + strh r0, [r5] + ldrh r0, [r5] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + mov r1, r8 + ldrb r0, [r1] + adds r0, #4 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r1, [r0] + ldrh r2, [r5] + adds r0, r6, #0 + bl sub_08090094 + adds r0, r6, #0 + movs r1, #1 + bl sub_0809028C + b _0809008A + .align 2, 0 +_08090028: .4byte gUnk_08121EE4 +_0809002C: + adds r0, r6, #0 + adds r0, #0x72 + strh r7, [r0] + ldrh r0, [r0] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r5, _08090090 @ =gUnk_08121EE4 + movs r4, #0x81 + adds r4, r4, r6 + mov r8, r4 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + adds r1, r7, #0 + movs r2, #1 + bl sub_0800015E + subs r0, r7, #1 + adds r4, r6, #0 + adds r4, #0x70 + strh r0, [r4] + ldrh r0, [r4] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + mov r1, r8 + ldrb r0, [r1] + adds r0, #2 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + ldrh r2, [r4] + adds r0, r6, #0 + bl sub_08090094 + adds r0, r6, #0 + movs r1, #0 + bl sub_0809028C +_0809008A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08090090: .4byte gUnk_08121EE4 + + thumb_func_start sub_08090094 +sub_08090094: @ 0x08090094 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + adds r0, r7, #0 + movs r1, #1 + bl sub_080002E0 + adds r4, r0, #0 + adds r0, r7, #0 + movs r1, #1 + bl sub_080001DA + adds r3, r0, #0 + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r3 + cmp r0, #0 + bne _0809012C + adds r3, r5, #0 + ldr r1, _080900D0 @ =0xFFFFBFDC + adds r0, r3, r1 + cmp r0, #0xb + bhi _0809011A + lsls r0, r0, #2 + ldr r1, _080900D4 @ =_080900D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080900D0: .4byte 0xFFFFBFDC +_080900D4: .4byte _080900D8 +_080900D8: @ jump table + .4byte _08090114 @ case 0 + .4byte _08090108 @ case 1 + .4byte _0809011A @ case 2 + .4byte _0809011A @ case 3 + .4byte _0809011A @ case 4 + .4byte _0809011A @ case 5 + .4byte _0809011A @ case 6 + .4byte _0809011A @ case 7 + .4byte _08090114 @ case 8 + .4byte _0809010E @ case 9 + .4byte _08090114 @ case 10 + .4byte _0809010E @ case 11 +_08090108: + cmp r4, #5 + bne _0809011A + b _08090118 +_0809010E: + cmp r4, #5 + bne _0809011A + b _08090118 +_08090114: + cmp r4, #0xa + bne _0809011A +_08090118: + ldr r3, _08090128 @ =0x00004022 +_0809011A: + adds r0, r3, #0 + adds r1, r7, #0 + movs r2, #1 + bl sub_0800015E + b _08090242 + .align 2, 0 +_08090128: .4byte 0x00004022 +_0809012C: + ldr r1, _08090140 @ =0xFFFFBFDE + adds r0, r3, r1 + cmp r0, #0xd + bls _08090136 + b _08090242 +_08090136: + lsls r0, r0, #2 + ldr r1, _08090144 @ =_08090148 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08090140: .4byte 0xFFFFBFDE +_08090144: .4byte _08090148 +_08090148: @ jump table + .4byte _08090242 @ case 0 + .4byte _08090242 @ case 1 + .4byte _080901EC @ case 2 + .4byte _08090180 @ case 3 + .4byte _08090242 @ case 4 + .4byte _08090242 @ case 5 + .4byte _08090242 @ case 6 + .4byte _08090242 @ case 7 + .4byte _08090242 @ case 8 + .4byte _08090242 @ case 9 + .4byte _08090210 @ case 10 + .4byte _080901B4 @ case 11 + .4byte _08090210 @ case 12 + .4byte _080901B4 @ case 13 +_08090180: + ldr r0, _080901A8 @ =0x00004024 + cmp r5, r0 + bne _08090194 + ldr r3, _080901AC @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] +_08090194: + ldr r0, _080901B0 @ =0x0000402C + cmp r5, r0 + bne _08090238 + ldr r3, _080901AC @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + b _08090234 + .align 2, 0 +_080901A8: .4byte 0x00004024 +_080901AC: .4byte 0x00004022 +_080901B0: .4byte 0x0000402C +_080901B4: + ldr r0, _080901DC @ =0x0000402C + cmp r5, r0 + bne _080901C8 + ldr r3, _080901E0 @ =0x0000402B + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] +_080901C8: + ldr r0, _080901E4 @ =0x00004024 + cmp r5, r0 + bne _08090238 + ldr r3, _080901E8 @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + b _08090234 + .align 2, 0 +_080901DC: .4byte 0x0000402C +_080901E0: .4byte 0x0000402B +_080901E4: .4byte 0x00004024 +_080901E8: .4byte 0x00004022 +_080901EC: + ldr r0, _08090204 @ =0x00004025 + cmp r5, r0 + bne _08090200 + ldr r3, _08090208 @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] +_08090200: + ldr r0, _0809020C @ =0x0000402D + b _08090226 + .align 2, 0 +_08090204: .4byte 0x00004025 +_08090208: .4byte 0x00004022 +_0809020C: .4byte 0x0000402D +_08090210: + ldr r0, _08090244 @ =0x0000402D + cmp r5, r0 + bne _08090224 + ldr r3, _08090248 @ =0x0000402B + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] +_08090224: + ldr r0, _0809024C @ =0x00004025 +_08090226: + cmp r5, r0 + bne _08090238 + ldr r3, _08090250 @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x20 +_08090234: + orrs r0, r1 + strb r0, [r2] +_08090238: + adds r0, r3, #0 + adds r1, r7, #0 + movs r2, #1 + bl sub_0800015E +_08090242: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08090244: .4byte 0x0000402D +_08090248: .4byte 0x0000402B +_0809024C: .4byte 0x00004025 +_08090250: .4byte 0x00004022 + + thumb_func_start sub_08090254 +sub_08090254: @ 0x08090254 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r2, [r5] + bl sub_0807B9B8 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #1 + bne _08090288 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + ldrh r1, [r1] + ldrb r2, [r5] + bl sub_0807B9B8 +_08090288: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809028C +sub_0809028C: @ 0x0809028C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + adds r4, r6, #0 + adds r4, #0x83 + ldrb r0, [r4] + movs r2, #0x30 + ands r2, r0 + movs r0, #0 + mov sb, r0 + strb r2, [r4] + adds r0, r6, #0 + adds r0, #0x70 + ldrh r5, [r0] + adds r7, r5, #0 + subs r7, #0x80 + adds r0, #2 + ldrh r3, [r0] + movs r0, #0x80 + rsbs r0, r0, #0 + adds r0, r0, r3 + mov r8, r0 + cmp r1, #1 + bne _0809039A + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _080902D4 + adds r1, r3, #0 + subs r1, #0x7f + movs r0, #0 + bl sub_08090480 + b _080902FE +_080902D4: + mov r0, r8 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _080902EC @ =0x00000301 + cmp r1, r0 + beq _080902F0 + adds r0, #7 + cmp r1, r0 + beq _080902F6 + b _080902FE + .align 2, 0 +_080902EC: .4byte 0x00000301 +_080902F0: + ldrb r0, [r4] + movs r1, #8 + b _080902FA +_080902F6: + ldrb r0, [r4] + movs r1, #2 +_080902FA: + orrs r0, r1 + strb r0, [r4] +_080902FE: + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x2a + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0809031E + movs r0, #0 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #0 + mov r1, r8 + bl sub_08090480 +_0809031E: + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0809034E + subs r4, r7, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002B0 + movs r1, #0xc0 + lsls r1, r1, #2 + cmp r0, r1 + bne _0809033C + b _08090478 +_0809033C: + movs r0, #0 + adds r1, r4, #0 + bl sub_08090480 + subs r1, r7, #2 + movs r0, #2 + bl sub_08090480 + b _08090478 +_0809034E: + subs r0, r7, #1 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + beq _08090368 + adds r0, #8 + cmp r1, r0 + beq _0809036E + b _08090376 +_08090368: + ldrb r1, [r4] + movs r0, #4 + b _08090372 +_0809036E: + ldrb r1, [r4] + movs r0, #1 +_08090372: + orrs r0, r1 + strb r0, [r4] +_08090376: + ldrb r1, [r4] + movs r0, #0x15 + ands r0, r1 + cmp r0, #0 + beq _08090478 + movs r0, #0x2a + ands r0, r1 + cmp r0, #0 + bne _08090478 + movs r0, #0 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #1 + mov r1, r8 + bl sub_08090480 + b _08090478 +_0809039A: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _080903AE + adds r1, r5, #0 + subs r1, #0x81 + movs r0, #0 + bl sub_08090480 + b _080903DA +_080903AE: + adds r0, r7, #0 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _080903C8 @ =0x00000302 + cmp r1, r0 + beq _080903CC + adds r0, #4 + cmp r1, r0 + beq _080903D2 + b _080903DA + .align 2, 0 +_080903C8: .4byte 0x00000302 +_080903CC: + ldrb r0, [r4] + movs r1, #4 + b _080903D6 +_080903D2: + ldrb r0, [r4] + movs r1, #1 +_080903D6: + orrs r0, r1 + strb r0, [r4] +_080903DA: + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x15 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _080903FA + movs r0, #0 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #0 + mov r1, r8 + bl sub_08090480 +_080903FA: + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0809042C + mov r4, r8 + adds r4, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002B0 + movs r1, #0xc0 + lsls r1, r1, #2 + cmp r0, r1 + beq _08090478 + movs r0, #0 + adds r1, r4, #0 + bl sub_08090480 + mov r1, r8 + adds r1, #2 + movs r0, #1 + bl sub_08090480 + b _08090478 +_0809042C: + mov r0, r8 + adds r0, #1 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + beq _08090448 + adds r0, #6 + cmp r1, r0 + beq _0809044E + b _08090456 +_08090448: + ldrb r1, [r4] + movs r0, #8 + b _08090452 +_0809044E: + ldrb r1, [r4] + movs r0, #2 +_08090452: + orrs r0, r1 + strb r0, [r4] +_08090456: + ldrb r1, [r4] + movs r0, #0x2a + ands r0, r1 + cmp r0, #0 + beq _08090478 + movs r0, #0x15 + ands r0, r1 + cmp r0, #0 + bne _08090478 + movs r0, #2 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #0 + mov r1, r8 + bl sub_08090480 +_08090478: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08090480 +sub_08090480: @ 0x08090480 + push {lr} + ldr r2, _08090494 @ =gUnk_08121EF0 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + movs r2, #1 + bl sub_0800015E + pop {pc} + .align 2, 0 +_08090494: .4byte gUnk_08121EF0 + + thumb_func_start sub_08090498 +sub_08090498: @ 0x08090498 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x80 + adds r0, r4, #0 + movs r1, #1 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080904D2 + adds r0, r4, #0 + movs r1, #2 + bl sub_080002B0 + ldr r1, _08090510 @ =0x00000306 + cmp r0, r1 + bne _080904D2 + movs r0, #0x62 + adds r1, r4, #0 + movs r2, #1 + bl sub_08000148 +_080904D2: + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x80 + adds r0, r4, #0 + movs r1, #1 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0809050C + adds r0, r4, #0 + movs r1, #2 + bl sub_080002B0 + movs r1, #0xc2 + lsls r1, r1, #2 + cmp r0, r1 + bne _0809050C + movs r0, #0x63 + adds r1, r4, #0 + movs r2, #1 + bl sub_08000148 +_0809050C: + pop {r4, r5, pc} + .align 2, 0 +_08090510: .4byte 0x00000306 + + thumb_func_start sub_08090514 +sub_08090514: @ 0x08090514 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + cmp r0, #0 + beq _0809059E + ldrb r0, [r0, #0xd] + cmp r0, #1 + beq _08090552 + cmp r0, #1 + bgt _0809052E + cmp r0, #0 + beq _08090538 + b _0809059E +_0809052E: + cmp r0, #2 + beq _08090568 + cmp r0, #3 + beq _08090582 + b _0809059E +_08090538: + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + b _0809059A +_08090552: + ldrb r0, [r2, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + b _0809059A +_08090568: + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + b _0809059A +_08090582: + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 +_0809059A: + orrs r0, r1 + strb r0, [r2] +_0809059E: + pop {pc} + + thumb_func_start sub_080905A0 +sub_080905A0: @ 0x080905A0 + push {lr} + ldr r2, _080905B4 @ =gUnk_08122218 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080905B4: .4byte gUnk_08122218 + + thumb_func_start sub_080905B8 +sub_080905B8: @ 0x080905B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + movs r0, #1 + mov sb, r0 + mov r1, sb + strb r1, [r7, #0xc] + movs r5, #0x2e + ldrsh r2, [r7, r5] + ldr r6, _08090618 @ =gRoomControls + ldrh r0, [r6, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r1, #0x32 + ldrsh r0, [r7, r1] + ldrh r1, [r6, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + adds r5, r7, #0 + adds r5, #0x78 + movs r0, #0 + mov r8, r0 + strh r2, [r5] + adds r0, r7, #0 + bl sub_08090DC4 + adds r0, r7, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldr r1, _0809061C @ =0x00007FFF + ands r1, r0 + cmp r1, #0x80 + beq _08090680 + cmp r1, #0x80 + bgt _08090620 + cmp r1, #0x20 + beq _080906E6 + cmp r1, #0x40 + beq _08090650 + b _080906E0 + .align 2, 0 +_08090618: .4byte gRoomControls +_0809061C: .4byte 0x00007FFF +_08090620: + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _080906E6 + cmp r1, r0 + bgt _08090636 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08090640 + b _080906E0 +_08090636: + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + beq _080906C4 + b _080906E0 +_08090640: + adds r1, r7, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r7, #0 + bl sub_08016A04 + b _080906E6 +_08090650: + ldrh r1, [r7, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strh r0, [r7, #0x32] + ldr r4, _0809067C @ =0x00004017 + ldrh r1, [r5] + subs r1, #0x80 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r5] + subs r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + b _080906E6 + .align 2, 0 +_0809067C: .4byte 0x00004017 +_08090680: + mov r1, r8 + strb r1, [r7, #0x1e] + ldrh r1, [r7, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strh r0, [r7, #0x32] + movs r2, #0x2e + ldrsh r1, [r7, r2] + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r4 + movs r2, #0x32 + ldrsh r0, [r7, r2] + ldrh r2, [r6, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r5] + ldr r0, _080906C0 @ =0x00004026 + ldrh r1, [r5] + adds r2, r7, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _080906E6 + .align 2, 0 +_080906C0: .4byte 0x00004026 +_080906C4: + adds r0, r7, #0 + bl sub_08090E64 + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _080906E0 + adds r0, r7, #0 + adds r0, #0x62 + mov r5, sb + strb r5, [r0] + adds r1, r7, #0 + adds r1, #0x80 + movs r0, #0x30 + strb r0, [r1] +_080906E0: + adds r0, r7, #0 + bl sub_08090B6C +_080906E6: + adds r0, r7, #0 + adds r0, #0x81 + ldrb r1, [r0] + cmp r1, #0x10 + beq _0809075C + movs r0, #0x70 + ands r0, r1 + adds r4, r7, #0 + adds r4, #0x78 + cmp r0, #0x20 + beq _0809072E + cmp r0, #0x30 + bne _0809073A + ldrh r0, [r4] + subs r0, #0x40 + strh r0, [r4] + adds r0, r7, #0 + bl sub_08090B6C + movs r0, #0x2e + ldrsh r1, [r7, r0] + ldr r2, _08090778 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r7, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] +_0809072E: + ldrh r0, [r4] + adds r0, #0x40 + strh r0, [r4] + adds r0, r7, #0 + bl sub_08090B6C +_0809073A: + movs r0, #0x2e + ldrsh r1, [r7, r0] + ldr r2, _08090778 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r7, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] +_0809075C: + adds r0, r7, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldr r1, _0809077C @ =0x00007FFF + ands r1, r0 + cmp r1, #2 + beq _08090780 + cmp r1, #4 + bne _080907C8 + adds r0, r7, #0 + movs r1, #0x7e + bl sub_0801D2B4 + b _080907C8 + .align 2, 0 +_08090778: .4byte gRoomControls +_0809077C: .4byte 0x00007FFF +_08090780: + adds r0, r7, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x81 + ldrb r0, [r7, #0xa] + movs r1, #2 + mov r8, r1 + cmp r0, #0x1a + beq _08090798 + movs r2, #3 + mov r8, r2 +_08090798: + movs r5, #0 + cmp r5, r8 + bhs _080907C8 + ldr r6, _080907DC @ =0x00004026 +_080907A0: + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #2 + bl sub_0800015E + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0 + movs r2, #1 + bl sub_080001D0 + adds r5, #1 + adds r4, #1 + cmp r5, r8 + blo _080907A0 +_080907C8: + ldrb r0, [r7, #0xa] + subs r0, #1 + cmp r0, #0x3b + bls _080907D2 + b _080909DC +_080907D2: + lsls r0, r0, #2 + ldr r1, _080907E0 @ =_080907E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080907DC: .4byte 0x00004026 +_080907E0: .4byte _080907E4 +_080907E4: @ jump table + .4byte _080908D4 @ case 0 + .4byte _080909DC @ case 1 + .4byte _080909DC @ case 2 + .4byte _080909DC @ case 3 + .4byte _080909DC @ case 4 + .4byte _080909DC @ case 5 + .4byte _080909DC @ case 6 + .4byte _080909DC @ case 7 + .4byte _080908F0 @ case 8 + .4byte _080909DC @ case 9 + .4byte _080909DC @ case 10 + .4byte _080909DC @ case 11 + .4byte _080909DC @ case 12 + .4byte _080909DC @ case 13 + .4byte _080909DC @ case 14 + .4byte _080909DC @ case 15 + .4byte _080909DC @ case 16 + .4byte _080909DC @ case 17 + .4byte _080909DC @ case 18 + .4byte _080909DC @ case 19 + .4byte _080909DC @ case 20 + .4byte _080909DC @ case 21 + .4byte _080909DC @ case 22 + .4byte _080909DC @ case 23 + .4byte _080909DC @ case 24 + .4byte _080909DC @ case 25 + .4byte _080909DC @ case 26 + .4byte _080909DC @ case 27 + .4byte _080909DC @ case 28 + .4byte _08090920 @ case 29 + .4byte _08090938 @ case 30 + .4byte _080909DC @ case 31 + .4byte _080909DC @ case 32 + .4byte _080909DC @ case 33 + .4byte _080909DC @ case 34 + .4byte _080909DC @ case 35 + .4byte _080909DC @ case 36 + .4byte _080909DC @ case 37 + .4byte _080909DC @ case 38 + .4byte _08090984 @ case 39 + .4byte _080909DC @ case 40 + .4byte _080909DC @ case 41 + .4byte _080909DC @ case 42 + .4byte _080909DC @ case 43 + .4byte _080909DC @ case 44 + .4byte _080909DC @ case 45 + .4byte _080909DC @ case 46 + .4byte _080909DC @ case 47 + .4byte _080909DC @ case 48 + .4byte _080909DC @ case 49 + .4byte _080909DC @ case 50 + .4byte _080909DC @ case 51 + .4byte _080909DC @ case 52 + .4byte _080909DC @ case 53 + .4byte _080909DC @ case 54 + .4byte _080909DC @ case 55 + .4byte _080909DC @ case 56 + .4byte _080909DC @ case 57 + .4byte _08090994 @ case 58 + .4byte _080909C8 @ case 59 +_080908D4: + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _080908DC + b _080909DC +_080908DC: + adds r2, r7, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + b _080909DC +_080908F0: + movs r0, #0x4d + movs r1, #0x3e + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080909DC + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r3, #0 + bl PositionRelative + movs r0, #1 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #0x11] + b _080909DC +_08090920: + ldr r0, _08090934 @ =0x00000306 + adds r1, r7, #0 + adds r1, #0x78 + ldrh r1, [r1] + adds r1, #0x41 + movs r2, #2 + bl sub_0807B7D8 + b _080909DC + .align 2, 0 +_08090934: .4byte 0x00000306 +_08090938: + adds r5, r7, #0 + adds r5, #0x38 + movs r0, #1 + strb r0, [r5] + ldrb r1, [r7, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r7, #0x1b] + ldr r0, _0809097C @ =0x00004074 + adds r4, r7, #0 + adds r4, #0x78 + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + bl sub_0800015E + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + movs r0, #0x3f + bl sub_080001D0 + ldr r6, _08090980 @ =0x00004017 + ldrh r1, [r4] + ldrb r2, [r5] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r4] + adds r1, #0x40 + ldrb r2, [r5] + b _080909BC + .align 2, 0 +_0809097C: .4byte 0x00004074 +_08090980: .4byte 0x00004017 +_08090984: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _080909DC + adds r1, r7, #0 + adds r1, #0x62 + movs r0, #0xfc + strb r0, [r1] + b _080909DC +_08090994: + ldr r6, _080909C4 @ =0x00004023 + adds r5, r7, #0 + adds r5, #0x78 + ldrh r1, [r5] + subs r1, #0x41 + adds r4, r7, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r5] + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r5] + subs r1, #0x3f + ldrb r2, [r4] +_080909BC: + adds r0, r6, #0 + bl sub_0800015E + b _080909DC + .align 2, 0 +_080909C4: .4byte 0x00004023 +_080909C8: + ldr r0, _080909E4 @ =0x00004022 + adds r1, r7, #0 + adds r1, #0x78 + ldrh r1, [r1] + adds r1, #0x41 + adds r2, r7, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_080909DC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080909E4: .4byte 0x00004022 + + thumb_func_start sub_080909E8 +sub_080909E8: @ 0x080909E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldr r1, _08090A04 @ =0x00007FFF + ands r1, r0 + cmp r1, #8 + beq _08090A42 + cmp r1, #8 + bgt _08090A08 + cmp r1, #1 + beq _08090A12 + b _08090B60 + .align 2, 0 +_08090A04: .4byte 0x00007FFF +_08090A08: + cmp r1, #0x10 + beq _08090A68 + cmp r1, #0x80 + beq _08090AB0 + b _08090B60 +_08090A12: + ldr r2, _08090A34 @ =gLinkEntity + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r3, #0x32 + ldrsh r0, [r5, r3] + cmp r1, r0 + blt _08090A26 + adds r0, #0x18 + cmp r1, r0 + ble _08090A38 +_08090A26: + ldrb r0, [r5, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r5, #0x19] + b _08090B60 + .align 2, 0 +_08090A34: .4byte gLinkEntity +_08090A38: + ldrb r0, [r5, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x19] + b _08090B60 +_08090A42: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _08090A52 + b _08090B60 +_08090A52: + movs r0, #0 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xf] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08090E4C + b _08090B60 +_08090A68: + ldrb r0, [r5, #0xa] + cmp r0, #0x3e + beq _08090A8C + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x14 + bne _08090B60 + ldrb r0, [r5, #0x1e] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x1e] + movs r0, #0 + strb r0, [r5, #0xe] + b _08090B60 +_08090A8C: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe + bne _08090B60 + movs r0, #0 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xf] + adds r0, #1 + movs r1, #3 + bl __modsi3 + strb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0x1e] + b _08090B60 +_08090AB0: + ldr r2, _08090B00 @ =gLinkEntity + movs r3, #0x32 + ldrsh r1, [r2, r3] + movs r3, #0x32 + ldrsh r0, [r5, r3] + adds r0, #8 + cmp r1, r0 + bge _08090B14 + ldr r0, _08090B04 @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + beq _08090B60 + adds r0, r5, #0 + bl sub_080002A0 + ldr r1, _08090B08 @ =0x00004017 + cmp r0, r1 + bne _08090B60 + ldr r0, _08090B0C @ =0x00004026 + adds r4, r5, #0 + adds r4, #0x78 + ldrh r1, [r4] + adds r5, #0x38 + ldrb r2, [r5] + bl sub_0800015E + ldr r6, _08090B10 @ =0x0000403D + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r4] + subs r1, #0x80 + ldrb r2, [r5] + adds r0, r6, #0 + bl sub_0800015E + b _08090B60 + .align 2, 0 +_08090B00: .4byte gLinkEntity +_08090B04: .4byte gUnk_03003F80 +_08090B08: .4byte 0x00004017 +_08090B0C: .4byte 0x00004026 +_08090B10: .4byte 0x0000403D +_08090B14: + adds r3, r2, #0 + adds r3, #0x38 + ldrb r1, [r3] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08090B2C + movs r0, #1 + strb r0, [r3] + adds r0, r2, #0 + bl sub_08016A04 +_08090B2C: + adds r0, r5, #0 + bl sub_080002A0 + ldr r6, _08090B64 @ =0x00004017 + cmp r0, r6 + beq _08090B60 + adds r4, r5, #0 + adds r4, #0x78 + ldrh r1, [r4] + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + adds r0, r6, #0 + bl sub_0800015E + ldr r0, _08090B68 @ =0x00004014 + ldrh r1, [r4] + subs r1, #0x80 + ldrb r2, [r5] + bl sub_0800015E +_08090B60: + pop {r4, r5, r6, pc} + .align 2, 0 +_08090B64: .4byte 0x00004017 +_08090B68: .4byte 0x00004014 + + thumb_func_start sub_08090B6C +sub_08090B6C: @ 0x08090B6C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r1, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08090B80 + b _08090CD2 +_08090B80: + lsrs r0, r0, #0x1b + lsls r2, r0, #0x18 + lsrs r3, r2, #0x18 + ldrh r0, [r1, #0x2e] + movs r4, #0xf + mov r8, r4 + ands r4, r0 + mov r8, r4 + adds r0, r1, #0 + adds r0, #0x78 + ldrh r6, [r0] + subs r0, #0x40 + ldrb r7, [r0] + movs r0, #3 + ands r0, r3 + cmp r0, #1 + beq _08090BF8 + cmp r0, #1 + blo _08090BB0 + cmp r0, #2 + beq _08090C48 + cmp r0, #3 + beq _08090C90 + b _08090CD2 +_08090BB0: + lsrs r5, r2, #0x1b + cmp r3, #0xc + bne _08090BB8 + movs r5, #2 +_08090BB8: + rsbs r4, r5, #0 + cmp r4, r5 + bgt _08090BCE +_08090BBE: + adds r1, r6, r4 + ldr r0, _08090BE4 @ =0x00004022 + adds r2, r7, #0 + bl sub_0800015E + adds r4, #1 + cmp r4, r5 + ble _08090BBE +_08090BCE: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090BEC + ldr r0, _08090BE8 @ =0x00004024 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC + b _08090CB2 + .align 2, 0 +_08090BE4: .4byte 0x00004022 +_08090BE8: .4byte 0x00004024 +_08090BEC: + ldr r0, _08090BF4 @ =0x00004022 + subs r1, r6, r4 + b _08090C6E + .align 2, 0 +_08090BF4: .4byte 0x00004022 +_08090BF8: + lsrs r5, r2, #0x1b + rsbs r4, r5, #0 + cmp r4, r5 + bgt _08090C10 +_08090C00: + adds r1, r6, r4 + ldr r0, _08090C2C @ =0x00004022 + adds r2, r7, #0 + bl sub_0800015E + adds r4, #1 + cmp r4, r5 + ble _08090C00 +_08090C10: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090C34 + ldr r0, _08090C30 @ =0x00004024 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC + cmp r4, #0 + beq _08090CD2 + b _08090C6A + .align 2, 0 +_08090C2C: .4byte 0x00004022 +_08090C30: .4byte 0x00004024 +_08090C34: + cmp r4, #0 + beq _08090CB2 + ldr r0, _08090C44 @ =0x00004022 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_0800015E + b _08090CB2 + .align 2, 0 +_08090C44: .4byte 0x00004022 +_08090C48: + lsrs r5, r2, #0x1a + rsbs r4, r5, #0 + cmp r4, r5 + bge _08090C60 +_08090C50: + adds r1, r6, r4 + ldr r0, _08090C78 @ =0x00004022 + adds r2, r7, #0 + bl sub_0800015E + adds r4, #1 + cmp r4, r5 + blt _08090C50 +_08090C60: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090C7C +_08090C6A: + ldr r0, _08090C78 @ =0x00004022 + adds r1, r6, r4 +_08090C6E: + adds r2, r7, #0 + bl sub_0800015E + b _08090CD2 + .align 2, 0 +_08090C78: .4byte 0x00004022 +_08090C7C: + ldr r0, _08090C8C @ =0x00004024 + subs r1, r6, r4 + subs r1, #1 + adds r2, r7, #0 + bl sub_08090CDC + b _08090CB2 + .align 2, 0 +_08090C8C: .4byte 0x00004024 +_08090C90: + lsrs r5, r2, #0x1a + rsbs r4, r5, #0 + cmp r4, r5 + bgt _08090CA8 +_08090C98: + adds r1, r6, r4 + ldr r0, _08090CC0 @ =0x00004022 + adds r2, r7, #0 + bl sub_0800015E + adds r4, #1 + cmp r4, r5 + ble _08090C98 +_08090CA8: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090CC8 +_08090CB2: + ldr r0, _08090CC4 @ =0x00004025 + adds r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC + b _08090CD2 + .align 2, 0 +_08090CC0: .4byte 0x00004022 +_08090CC4: .4byte 0x00004025 +_08090CC8: + ldr r0, _08090CD8 @ =0x00004024 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC +_08090CD2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08090CD8: .4byte 0x00004024 + + thumb_func_start sub_08090CDC +sub_08090CDC: @ 0x08090CDC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080001DA + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r2 + cmp r0, #0 + bne _08090D06 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + b _08090DB2 +_08090D06: + ldr r1, _08090D18 @ =0xFFFFBFDE + adds r0, r2, r1 + cmp r0, #0xb + bhi _08090DB2 + lsls r0, r0, #2 + ldr r1, _08090D1C @ =_08090D20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08090D18: .4byte 0xFFFFBFDE +_08090D1C: .4byte _08090D20 +_08090D20: @ jump table + .4byte _08090DB2 @ case 0 + .4byte _08090DB2 @ case 1 + .4byte _08090D80 @ case 2 + .4byte _08090D50 @ case 3 + .4byte _08090DB2 @ case 4 + .4byte _08090DB2 @ case 5 + .4byte _08090DB2 @ case 6 + .4byte _08090DB2 @ case 7 + .4byte _08090DB2 @ case 8 + .4byte _08090DB2 @ case 9 + .4byte _08090D98 @ case 10 + .4byte _08090D68 @ case 11 +_08090D50: + ldr r0, _08090D5C @ =0x00004024 + cmp r4, r0 + bne _08090D58 + ldr r2, _08090D60 @ =0x00004022 +_08090D58: + ldr r0, _08090D64 @ =0x0000402C + b _08090DA2 + .align 2, 0 +_08090D5C: .4byte 0x00004024 +_08090D60: .4byte 0x00004022 +_08090D64: .4byte 0x0000402C +_08090D68: + ldr r0, _08090D74 @ =0x0000402C + cmp r4, r0 + bne _08090D70 + ldr r2, _08090D78 @ =0x0000402B +_08090D70: + ldr r0, _08090D7C @ =0x00004024 + b _08090DA2 + .align 2, 0 +_08090D74: .4byte 0x0000402C +_08090D78: .4byte 0x0000402B +_08090D7C: .4byte 0x00004024 +_08090D80: + ldr r0, _08090D8C @ =0x00004025 + cmp r4, r0 + bne _08090D88 + ldr r2, _08090D90 @ =0x00004022 +_08090D88: + ldr r0, _08090D94 @ =0x0000402D + b _08090DA2 + .align 2, 0 +_08090D8C: .4byte 0x00004025 +_08090D90: .4byte 0x00004022 +_08090D94: .4byte 0x0000402D +_08090D98: + ldr r0, _08090DB4 @ =0x0000402D + cmp r4, r0 + bne _08090DA0 + ldr r2, _08090DB8 @ =0x0000402B +_08090DA0: + ldr r0, _08090DBC @ =0x00004025 +_08090DA2: + cmp r4, r0 + bne _08090DA8 + ldr r2, _08090DC0 @ =0x00004022 +_08090DA8: + adds r0, r2, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0800015E +_08090DB2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08090DB4: .4byte 0x0000402D +_08090DB8: .4byte 0x0000402B +_08090DBC: .4byte 0x00004025 +_08090DC0: .4byte 0x00004022 + + thumb_func_start sub_08090DC4 +sub_08090DC4: @ 0x08090DC4 + push {r4, lr} + mov ip, r0 + ldrb r0, [r0, #0xa] + lsls r0, r0, #3 + ldr r1, _08090E44 @ =gUnk_08121EF8 + adds r3, r0, r1 + ldrh r1, [r3, #6] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08090DF4 + ldr r1, _08090E48 @ =gUnk_08122220 + movs r0, #3 + ldrsb r0, [r3, r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + mov r0, ip + ldrb r1, [r0, #0xb] + lsls r0, r1, #3 + adds r3, r3, r0 + mov r0, ip + strb r1, [r0, #0x1e] +_08090DF4: + ldrb r1, [r3] + mov r0, ip + adds r0, #0x80 + strb r1, [r0] + ldrb r0, [r3, #1] + mov r1, ip + adds r1, #0x81 + strb r0, [r1] + ldrb r0, [r3, #2] + subs r1, #0x1f + strb r0, [r1] + ldrb r0, [r3, #3] + adds r1, #1 + strb r0, [r1] + ldrb r1, [r3, #4] + lsls r1, r1, #6 + mov r0, ip + ldrb r2, [r0, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x19] + ldrb r0, [r3, #5] + mov r4, ip + adds r4, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrh r1, [r3, #6] + mov r0, ip + adds r0, #0x82 + strh r1, [r0] + pop {r4, pc} + .align 2, 0 +_08090E44: .4byte gUnk_08121EF8 +_08090E48: .4byte gUnk_08122220 + + thumb_func_start sub_08090E4C +sub_08090E4C: @ 0x08090E4C + push {lr} + ldr r2, _08090E60 @ =gUnk_08122244 + ldrb r1, [r0, #0xf] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_08090E60: .4byte gUnk_08122244 + + thumb_func_start sub_08090E64 +sub_08090E64: @ 0x08090E64 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x2a + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08090EA0 + ldr r0, _08090EA4 @ =0x0000FFFE + adds r2, r0, #0 + ldrb r0, [r5, #0xb] + adds r2, r2, r0 + lsls r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldrh r0, [r4, #0x36] + subs r0, #0x10 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_08090EA0: + pop {r4, r5, pc} + .align 2, 0 +_08090EA4: .4byte 0x0000FFFE + + thumb_func_start sub_08090EA8 +sub_08090EA8: @ 0x08090EA8 + push {lr} + ldr r2, _08090EBC @ =gUnk_08122254 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08090EBC: .4byte gUnk_08122254 + + thumb_func_start sub_08090EC0 +sub_08090EC0: @ 0x08090EC0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + bl sub_08052660 + cmp r0, #0 + beq _08090EFE + ldrb r0, [r4, #0x1e] + adds r0, #4 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_080AE068 + movs r1, #0xc2 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_080ADF80 +_08090EFE: + pop {r4, pc} + + thumb_func_start sub_08090F00 +sub_08090F00: @ 0x08090F00 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + cmp r1, #1 + bne _08090F1C + ldr r0, [r4, #0x50] + ldrb r2, [r4, #0xf] + lsls r1, r2 + ldr r0, [r0, #0x20] + ands r0, r1 + cmp r0, #0 + bne _08090F1C + bl sub_0805E780 +_08090F1C: + ldr r6, _08090F64 @ =gUnk_03003F80 + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08090F62 + ldr r5, _08090F68 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + movs r3, #4 + bl sub_080041A0 + cmp r0, #0 + beq _08090F62 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08090F62 + adds r2, r6, #0 + adds r2, #0x90 + ldr r1, _08090F6C @ =gUnk_0812225C + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r2] + ldrh r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _08090F62 + ldrb r0, [r4, #0xe] + bl sub_0804B128 + bl sub_08080840 +_08090F62: + pop {r4, r5, r6, pc} + .align 2, 0 +_08090F64: .4byte gUnk_03003F80 +_08090F68: .4byte gLinkEntity +_08090F6C: .4byte gUnk_0812225C + + thumb_func_start sub_08090F70 +sub_08090F70: @ 0x08090F70 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08090FB4 + movs r5, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r5 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + bl sub_08052660 + cmp r0, #0 + beq _08090FB4 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r2] +_08090FB4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08090FB8 +sub_08090FB8: @ 0x08090FB8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08090FF6 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_08090FF6: + pop {r4, pc} + + thumb_func_start sub_08090FF8 +sub_08090FF8: @ 0x08090FF8 + push {lr} + ldr r2, _0809100C @ =gUnk_08122278 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809100C: .4byte gUnk_08122278 + + thumb_func_start sub_08091010 +sub_08091010: @ 0x08091010 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08091094 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r3, r4, #0 + adds r3, #0x74 + strh r1, [r3] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r5, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3] + subs r0, #0x80 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r6, _08091098 @ =0x00004022 + movs r7, #4 +_0809105C: + subs r1, r4, #2 + adds r0, r6, #0 + adds r2, r5, #0 + bl sub_0800015E + subs r1, r4, #1 + adds r0, r6, #0 + adds r2, r5, #0 + bl sub_0800015E + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0800015E + adds r1, r4, #1 + adds r0, r6, #0 + adds r2, r5, #0 + bl sub_0800015E + adds r0, r4, #0 + adds r0, #0x40 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + subs r7, #1 + cmp r7, #0 + bge _0809105C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08091094: .4byte gRoomControls +_08091098: .4byte 0x00004022 + + thumb_func_start nullsub_523 +nullsub_523: @ 0x0809109C + bx lr + .align 2, 0 + + thumb_func_start sub_080910A0 +sub_080910A0: @ 0x080910A0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080910C8 + ldrb r0, [r4, #0xa] + bl sub_0807CBD0 + cmp r0, #0 + beq _080910B8 + bl sub_0805E780 +_080910B8: + movs r1, #1 + strb r1, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08078828 +_080910C8: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08091100 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08091104 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + bl sub_080A7C8C + bl sub_0805E780 +_08091100: + pop {r4, r5, pc} + .align 2, 0 +_08091104: .4byte gRoomControls + + thumb_func_start sub_08091108 +sub_08091108: @ 0x08091108 + push {lr} + ldr r2, _0809111C @ =gUnk_08122280 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809111C: .4byte gUnk_08122280 + + thumb_func_start sub_08091120 +sub_08091120: @ 0x08091120 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r3, _08091194 @ =gUnk_08122288 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #2] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #3] + strh r0, [r4, #0x12] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08004168 + pop {r4, pc} + .align 2, 0 +_08091194: .4byte gUnk_08122288 + + thumb_func_start sub_08091198 +sub_08091198: @ 0x08091198 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080911AA + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080911AA: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080911E8 + ldrb r1, [r4, #0xb] + cmp r1, #0xf + beq _080911CE + cmp r1, #0xf + bgt _080911C8 + cmp r1, #0 + beq _080911E4 + b _080911DA +_080911C8: + cmp r1, #0xff + bne _080911DA + b _080911E4 +_080911CE: + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + movs r2, #0x80 + bl CreateFX + b _080911E4 +_080911DA: + ldrb r2, [r4, #0xe] + adds r0, r4, #0 + movs r3, #0 + bl sub_080A2988 +_080911E4: + bl sub_0805E780 +_080911E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080911EC +sub_080911EC: @ 0x080911EC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x72 + ldrh r0, [r0] + cmp r0, #1 + beq _0809123C + cmp r0, #1 + bgt _08091202 + cmp r0, #0 + beq _08091208 + b _08091260 +_08091202: + cmp r0, #2 + beq _08091254 + b _08091260 +_08091208: + ldr r1, _08091234 @ =gUnk_08122294 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0800445C + ldr r1, _08091238 @ =gUnk_02021F00 + adds r0, r4, #0 + adds r0, #0x74 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + strh r1, [r0] + b _08091260 + .align 2, 0 +_08091234: .4byte gUnk_08122294 +_08091238: .4byte gUnk_02021F00 +_0809123C: + ldr r0, _08091250 @ =gUnk_081222A0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _08091260 + .align 2, 0 +_08091250: .4byte gUnk_081222A0 +_08091254: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08091260 + adds r0, r4, #0 + bl sub_08091504 +_08091260: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08091264 +sub_08091264: @ 0x08091264 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r0, _080912C4 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _0809132C + ldrb r1, [r6, #0xa] + ldrb r2, [r6, #0xb] + movs r0, #0x54 + bl CreateObject + adds r7, r0, #0 + ldrb r1, [r6, #0xa] + ldrb r2, [r6, #0xb] + movs r0, #0x54 + bl CreateObject + adds r1, r0, #0 + str r6, [r7, #0x50] + str r6, [r1, #0x50] + adds r0, r7, #0 + adds r0, #0x72 + movs r5, #1 + movs r4, #1 + strh r4, [r0] + adds r2, r1, #0 + adds r2, #0x72 + movs r0, #2 + strh r0, [r2] + adds r0, r6, #0 + bl sub_0806FA24 + movs r2, #1 + strb r5, [r6, #0xc] + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r6, #0x18] + movs r0, #0x60 + strh r0, [r6, #0x24] + ldrb r0, [r6, #0xb] + ands r4, r0 + cmp r4, #0 + beq _080912CC + ldr r0, _080912C8 @ =gUnk_080FD278 + b _080912CE + .align 2, 0 +_080912C4: .4byte gUnk_03003DBC +_080912C8: .4byte gUnk_080FD278 +_080912CC: + ldr r0, _08091330 @ =gUnk_080FD270 +_080912CE: + str r0, [r6, #0x48] + movs r0, #1 + strb r0, [r6, #0x16] + ldr r2, _08091334 @ =gUnk_081222A8 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + adds r1, r6, #0 + adds r1, #0x80 + strh r0, [r1] + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r6, #0x32] + adds r1, r6, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_0806FA24 + adds r0, r6, #0 + adds r0, #0x7e + ldrb r0, [r0] + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldrb r1, [r6, #0xe] + adds r0, r6, #0 + adds r0, #0x74 + strb r1, [r0] + ldrb r1, [r6, #0xb] + adds r0, r6, #0 + bl sub_08004260 +_0809132C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08091330: .4byte gUnk_080FD270 +_08091334: .4byte gUnk_081222A8 + + thumb_func_start sub_08091338 +sub_08091338: @ 0x08091338 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078930 + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + beq _0809135C + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08091660 +_0809135C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08091360 +sub_08091360: @ 0x08091360 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBB4 + ldr r1, _0809137C @ =gUnk_081222B0 + ldrb r0, [r4, #0xd] + subs r0, #5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0809137C: .4byte gUnk_081222B0 + + thumb_func_start sub_08091380 +sub_08091380: @ 0x08091380 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r7, _0809142C @ =gLinkEntity + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #0 + bne _080913E0 + ldrb r0, [r4, #0xb] + lsls r2, r0, #1 + ldrb r0, [r7, #0x14] + cmp r2, r0 + bne _080913D4 + ldr r1, _08091430 @ =gUnk_081222B8 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080002D4 + subs r0, #0xf + cmp r0, #0x10 + bls _080913D4 + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] +_080913D4: + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #1 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xf] +_080913E0: + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + ldrb r3, [r4, #0xb] + cmp r0, r3 + bne _0809142A + ldr r1, _08091434 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x1a + bne _0809142A + ldrb r1, [r1, #5] + movs r5, #2 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0809142A + ldr r0, _0809142C @ =gLinkEntity + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0809142A + adds r0, r4, #0 + bl sub_0809153C + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #1 + bne _0809142A + strb r5, [r1] + movs r0, #0xcf + lsls r0, r0, #1 + bl sub_08004488 +_0809142A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809142C: .4byte gLinkEntity +_08091430: .4byte gUnk_081222B8 +_08091434: .4byte gUnk_03003F80 + + thumb_func_start sub_08091438 +sub_08091438: @ 0x08091438 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r0, #0x75 + strb r2, [r0] + bx lr + + thumb_func_start sub_08091444 +sub_08091444: @ 0x08091444 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0xb] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, pc} + + thumb_func_start sub_08091470 +sub_08091470: @ 0x08091470 + push {r4, lr} + adds r2, r0, #0 + ldr r4, [r2, #0x50] + adds r3, r4, #0 + adds r3, #0x70 + ldrh r0, [r3] + cmp r0, #7 + bhi _0809148C + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _08091502 +_0809148C: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrh r0, [r3] + adds r1, r0, #0 + subs r1, #8 + movs r0, #7 + ands r1, r0 + ldrb r3, [r2, #0xb] + cmp r3, #1 + beq _080914C8 + cmp r3, #1 + bgt _080914B4 + cmp r3, #0 + beq _080914BE + b _080914E2 +_080914B4: + cmp r3, #2 + beq _080914D0 + cmp r3, #3 + beq _080914DA + b _080914E2 +_080914BE: + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + subs r0, #0x11 + strh r0, [r2, #0x32] + b _080914E2 +_080914C8: + ldrh r0, [r4, #0x2e] + adds r0, r1, r0 + adds r0, #0x11 + b _080914E0 +_080914D0: + ldrh r0, [r4, #0x32] + adds r0, r1, r0 + adds r0, #0x11 + strh r0, [r2, #0x32] + b _080914E2 +_080914DA: + ldrh r0, [r4, #0x2e] + subs r0, r0, r1 + subs r0, #0x11 +_080914E0: + strh r0, [r2, #0x2e] +_080914E2: + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + subs r0, #8 + lsls r0, r0, #0xc + lsrs r1, r0, #0x10 + ldrb r0, [r2, #0x14] + cmp r1, r0 + beq _08091502 + strb r1, [r2, #0x14] + lsls r1, r1, #2 + adds r1, r1, r3 + adds r1, #8 + adds r0, r2, #0 + bl sub_08004260 +_08091502: + pop {r4, pc} + + thumb_func_start sub_08091504 +sub_08091504: @ 0x08091504 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xb] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, pc} + + thumb_func_start sub_0809153C +sub_0809153C: @ 0x0809153C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r5, r0, #0 + ldr r6, _080915A8 @ =gLinkEntity + ldr r1, _080915AC @ =gUnk_081222C0 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + mov r8, r0 + adds r0, r5, #0 + adds r0, #0x76 + adds r1, r5, #0 + adds r1, #0x70 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bls _08091656 + ldrh r4, [r6, #0x2e] + ldrh r0, [r6, #0x32] + mov sb, r0 + movs r2, #0x24 + ldrsh r1, [r5, r2] + adds r0, r6, #0 + mov r2, r8 + str r3, [sp] + bl sub_080044AE + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + ldrh r2, [r6, #0x2e] + movs r7, #0x2e + ldrsh r0, [r6, r7] + ldr r3, [sp] + cmp r4, r0 + bne _08091596 + mov r1, sb + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r7, #0x32 + ldrsh r1, [r6, r7] + cmp r0, r1 + beq _08091656 +_08091596: + ldrb r0, [r5, #0xb] + cmp r0, #1 + beq _080915CA + cmp r0, #1 + bgt _080915B0 + cmp r0, #0 + beq _080915BA + b _080915E0 + .align 2, 0 +_080915A8: .4byte gLinkEntity +_080915AC: .4byte gUnk_081222C0 +_080915B0: + cmp r0, #2 + beq _080915CE + cmp r0, #3 + beq _080915DA + b _080915E0 +_080915BA: + ldrh r1, [r6, #0x32] + mov r2, sb + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + b _080915E0 +_080915CA: + subs r0, r4, r2 + b _080915DC +_080915CE: + ldrh r1, [r6, #0x32] + mov r7, sb + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + b _080915DC +_080915DA: + subs r0, r2, r4 +_080915DC: + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 +_080915E0: + lsls r2, r3, #0x18 + ldr r3, _0809163C @ =gUnk_080C9160 + mov r1, r8 + lsls r0, r1, #4 + adds r0, r0, r3 + movs r7, #0 + ldrsh r0, [r0, r7] + asrs r2, r2, #0x10 + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x2c] + adds r0, r0, r1 + str r0, [r5, #0x2c] + mov r1, r8 + lsls r0, r1, #4 + adds r0, #0x80 + adds r0, r0, r3 + movs r7, #0 + ldrsh r0, [r0, r7] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x30] + subs r0, r0, r1 + str r0, [r5, #0x30] + adds r0, r5, #0 + bl sub_08091660 + adds r0, r5, #0 + adds r0, #0x76 + adds r1, r5, #0 + adds r1, #0x70 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bhi _08091640 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _08091656 + .align 2, 0 +_0809163C: .4byte gUnk_080C9160 +_08091640: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091656 + movs r0, #0x10 + strb r0, [r5, #0xf] + adds r0, #0xff + bl sub_08004488 +_08091656: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08091660 +sub_08091660: @ 0x08091660 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08091686 + cmp r0, #1 + bgt _08091674 + cmp r0, #0 + beq _0809167E + b _080916AA +_08091674: + cmp r0, #2 + beq _08091690 + cmp r0, #3 + beq _0809169A + b _080916AA +_0809167E: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r4, #0x32] + b _080916A0 +_08091686: + adds r0, r4, #0 + adds r0, #0x80 + ldrh r0, [r0] + ldrh r1, [r4, #0x2e] + b _080916A2 +_08091690: + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r1, [r4, #0x32] + b _080916A2 +_0809169A: + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r4, #0x2e] +_080916A0: + ldrh r1, [r1] +_080916A2: + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] +_080916AA: + adds r5, r4, #0 + adds r5, #0x86 + ldrh r0, [r5] + bl sub_0807CBE4 + cmp r0, #0 + beq _080916C8 + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + bne _080916C8 + ldrh r0, [r5] + bl sub_0807CD48 +_080916C8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080916CC +sub_080916CC: @ 0x080916CC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080916E8 @ =gUnk_081223A8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080916E8: .4byte gUnk_081223A8 + + thumb_func_start sub_080916EC +sub_080916EC: @ 0x080916EC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xe] + lsls r0, r0, #3 + ldr r1, _080917C8 @ =gUnk_030010EC + adds r7, r0, r1 + adds r0, r6, #0 + adds r0, #0x84 + str r7, [r0] + ldr r0, _080917CC @ =gRoomControls + ldrb r0, [r0, #5] + ldrb r1, [r7, #4] + cmp r0, r1 + bne _08091716 + ldr r0, _080917D0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _0809171A +_08091716: + bl sub_0805E780 +_0809171A: + ldr r4, _080917CC @ =gRoomControls + ldrh r1, [r7] + movs r5, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldrh r2, [r4, #6] + adds r0, r0, r2 + adds r0, #8 + strh r0, [r6, #0x2e] + ldrh r1, [r7] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r3, [r4, #8] + adds r0, r0, r3 + adds r0, #8 + strh r0, [r6, #0x32] + ldrb r0, [r7, #5] + strb r0, [r6, #0x14] + ldrb r0, [r7, #6] + strb r0, [r6, #0xb] + movs r2, #1 + strb r2, [r6, #0xc] + ldr r0, _080917D4 @ =gUnk_080FD310 + str r0, [r6, #0x48] + ldrb r1, [r6, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r6, #0x10] + adds r0, r6, #0 + adds r0, #0x3f + strb r2, [r0] + adds r1, r6, #0 + adds r1, #0x3c + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldrb r0, [r6, #0x14] + lsls r0, r0, #3 + strb r0, [r6, #0x15] + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r6, #0x24] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r6, #0x14] + adds r1, #4 + ldrb r0, [r6, #0xb] + adds r1, r1, r0 + adds r0, r6, #0 + bl sub_080042AC + ldr r0, _080917D8 @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r4, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080917C8: .4byte gUnk_030010EC +_080917CC: .4byte gRoomControls +_080917D0: .4byte gUnk_03003F80 +_080917D4: .4byte gUnk_080FD310 +_080917D8: .4byte 0x00004022 + + thumb_func_start sub_080917DC +sub_080917DC: @ 0x080917DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1d + bne _08091810 + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #7 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r1, #4 + ldrb r0, [r4, #0xb] + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _0809180C @ =0x0000013B + bl sub_080A3268 + b _080918A0 + .align 2, 0 +_0809180C: .4byte 0x0000013B +_08091810: + adds r0, r4, #0 + bl sub_0800445C + cmp r0, #0 + beq _0809184A + ldr r2, _08091840 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08091844 @ =0x00040080 + ands r0, r1 + cmp r0, #0 + bne _08091848 + ldrb r0, [r2, #0x1c] + cmp r0, #0 + bne _08091848 + ldrb r0, [r2, #5] + cmp r0, #0 + bne _08091848 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _08091848 + ldrb r0, [r4, #0xe] + adds r0, #1 + b _0809184A + .align 2, 0 +_08091840: .4byte gUnk_03003F80 +_08091844: .4byte 0x00040080 +_08091848: + movs r0, #0 +_0809184A: + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0809189C + ldrb r0, [r4, #0xe] + cmp r0, #8 + bls _080918A0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r2, _08091894 @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x13 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08091898 @ =gLinkEntity + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #0x24] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + bl sub_08077B2C + bl sub_0807A108 + movs r0, #0x7c + bl sub_080A3268 + b _080918A0 + .align 2, 0 +_08091894: .4byte gUnk_03003F80 +_08091898: .4byte gLinkEntity +_0809189C: + movs r0, #0 + strb r0, [r4, #0xe] +_080918A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080918A4 +sub_080918A4: @ 0x080918A4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08091964 @ =gLinkEntity + adds r1, r5, #0 + movs r2, #2 + movs r3, #2 + bl sub_080041A0 + cmp r0, #0 + beq _08091974 + ldrh r0, [r4, #0x2e] + strh r0, [r5, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r5, #0x32] + movs r0, #0x36 + ldrsh r1, [r5, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0809197E + ldr r0, [r5, #0x20] + cmp r0, #0 + bge _080919A4 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + strb r0, [r5, #0x14] + ldr r2, _08091968 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x13 + eors r0, r1 + movs r1, #0x80 + lsls r1, r1, #5 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x10] + movs r2, #0x20 + orrs r0, r2 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x97 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + subs r1, #3 + orrs r0, r2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3b + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x3b + strb r0, [r2] + adds r1, #4 + movs r0, #0x18 + strb r0, [r1] + adds r1, #4 + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0801766C + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0809196C @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + ldr r0, _08091970 @ =0x00000137 + bl sub_080A3268 + b _0809197E + .align 2, 0 +_08091964: .4byte gLinkEntity +_08091968: .4byte gUnk_03003F80 +_0809196C: .4byte gRoomControls +_08091970: .4byte 0x00000137 +_08091974: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] +_0809197E: + ldr r3, _080919A8 @ =gLinkEntity + ldr r0, [r3, #0x20] + cmp r0, #0 + bge _080919A4 + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080919A4: + pop {r4, r5, pc} + .align 2, 0 +_080919A8: .4byte gLinkEntity + + thumb_func_start sub_080919AC +sub_080919AC: @ 0x080919AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r1, _080919D4 @ =gRoomControls + movs r0, #0 + mov r8, r0 + movs r0, #7 + strb r0, [r1, #0xe] + ldr r0, _080919D8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + bne _080919DC + movs r0, #1 + strb r0, [r5, #0xc] + b _08091C04 + .align 2, 0 +_080919D4: .4byte gRoomControls +_080919D8: .4byte gUnk_03003F80 +_080919DC: + ldr r4, _08091A14 @ =gLinkEntity + adds r6, r4, #0 + adds r6, #0x5a + ldrb r1, [r6] + movs r7, #0xf + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _08091A22 + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r6] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + bne _08091A18 + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #1 + strb r0, [r1] + b _08091C04 + .align 2, 0 +_08091A14: .4byte gLinkEntity +_08091A18: + adds r0, r5, #0 + adds r0, #0x63 + mov r1, r8 + strb r1, [r0] + b _08091C04 +_08091A22: + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + mov r0, r8 + strh r0, [r4, #0x24] + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r5, #0 + bl sub_08091DDC + cmp r0, #0 + beq _08091A68 + b _08091C04 +_08091A68: + ldr r0, _08091AD8 @ =gUnk_030010A0 + ldr r0, [r0] + ands r0, r7 + cmp r0, #0 + bne _08091A7A + movs r0, #0x9c + lsls r0, r0, #1 + bl sub_080A3268 +_08091A7A: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08091A92 + movs r0, #0x7b + bl sub_080A3268 + movs r0, #0x3c + strb r0, [r5, #0xf] +_08091A92: + ldr r2, _08091ADC @ =gUnk_081223C8 + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r5, #0 + bl sub_080002B4 + adds r4, r0, #0 + ldr r1, _08091AE0 @ =gUnk_081223D8 + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_08007DD6 + cmp r0, #0 + bne _08091AE4 + ldrb r0, [r5, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x14] + movs r1, #2 + eors r0, r1 + strb r0, [r5, #0x14] + b _08091BD8 + .align 2, 0 +_08091AD8: .4byte gUnk_030010A0 +_08091ADC: .4byte gUnk_081223C8 +_08091AE0: .4byte gUnk_081223D8 +_08091AE4: + adds r0, r4, #0 + subs r0, #0x64 + cmp r0, #0xb + bhi _08091BD8 + lsls r0, r0, #2 + ldr r1, _08091AF8 @ =_08091AFC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08091AF8: .4byte _08091AFC +_08091AFC: @ jump table + .4byte _08091B2C @ case 0 + .4byte _08091BD8 @ case 1 + .4byte _08091BD8 @ case 2 + .4byte _08091BB8 @ case 3 + .4byte _08091BB8 @ case 4 + .4byte _08091BB8 @ case 5 + .4byte _08091BB8 @ case 6 + .4byte _08091BD8 @ case 7 + .4byte _08091BB8 @ case 8 + .4byte _08091BB8 @ case 9 + .4byte _08091BB8 @ case 10 + .4byte _08091BB8 @ case 11 +_08091B2C: + ldrb r1, [r5, #0x10] + movs r0, #0xdf + ands r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #1 + strb r0, [r1] + subs r1, #3 + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r4, #0x80 + movs r0, #0x80 + strb r0, [r1] + movs r0, #6 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_08017744 + ldr r2, _08091BAC @ =gUnk_03003F80 + movs r0, #0x41 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + eors r0, r1 + movs r1, #0x80 + lsls r1, r1, #0x13 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08091BB0 @ =gLinkEntity + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #0x24] + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x14] + ldrb r0, [r5, #0x15] + strb r0, [r1, #0x15] + ldrb r0, [r1, #0x10] + orrs r4, r0 + strb r4, [r1, #0x10] + adds r0, r5, #0 + bl sub_08004168 + ldrb r1, [r5, #0x14] + adds r1, #0xc + adds r0, r5, #0 + bl sub_080042AC + movs r0, #0x78 + bl sub_080A3268 + ldr r0, _08091BB4 @ =0x00000139 + bl sub_080A3268 + b _08091C04 + .align 2, 0 +_08091BAC: .4byte gUnk_03003F80 +_08091BB0: .4byte gLinkEntity +_08091BB4: .4byte 0x00000139 +_08091BB8: + adds r0, r5, #0 + bl sub_080002B8 + cmp r4, r0 + bne _08091BD8 + adds r0, r5, #0 + bl sub_08091C0C + ldr r1, _08091BD4 @ =gLinkEntity + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x14] + b _08091C04 + .align 2, 0 +_08091BD4: .4byte gLinkEntity +_08091BD8: + ldr r2, _08091BF8 @ =gLinkEntity + ldrb r0, [r5, #0x14] + lsls r1, r0, #1 + strb r1, [r2, #0x14] + adds r1, r5, #0 + adds r1, #0x58 + ldrb r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _08091BFC + adds r0, r5, #0 + bl sub_080042B8 + b _08091C04 + .align 2, 0 +_08091BF8: .4byte gLinkEntity +_08091BFC: + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_080042AC +_08091C04: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08091C0C +sub_08091C0C: @ 0x08091C0C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004168 + ldr r1, _08091C30 @ =gLinkEntity + adds r0, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x68 + beq _08091C46 + cmp r0, #0x68 + bhi _08091C34 + cmp r0, #0x67 + beq _08091C3E + b _08091C80 + .align 2, 0 +_08091C30: .4byte gLinkEntity +_08091C34: + cmp r0, #0x69 + beq _08091C4E + cmp r0, #0x6a + beq _08091C66 + b _08091C80 +_08091C3E: + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + beq _08091C54 + b _08091C76 +_08091C46: + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08091C6C + b _08091C5C +_08091C4E: + ldrb r0, [r4, #0x15] + cmp r0, #8 + bne _08091C5C +_08091C54: + movs r0, #0 + strb r0, [r4, #0x15] + strb r0, [r4, #0x14] + b _08091C86 +_08091C5C: + movs r0, #0x18 + strb r0, [r4, #0x15] + movs r0, #3 + strb r0, [r4, #0x14] + b _08091C86 +_08091C66: + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + bne _08091C76 +_08091C6C: + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #2 + strb r0, [r4, #0x14] + b _08091C86 +_08091C76: + movs r0, #8 + strb r0, [r4, #0x15] + movs r0, #1 + strb r0, [r4, #0x14] + b _08091C86 +_08091C80: + movs r0, #3 + strb r0, [r4, #0xc] + b _08091C92 +_08091C86: + movs r0, #3 + strb r0, [r4, #0xc] + ldr r1, _08091C94 @ =gLinkEntity + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x14] +_08091C92: + pop {r4, pc} + .align 2, 0 +_08091C94: .4byte gLinkEntity + + thumb_func_start sub_08091C98 +sub_08091C98: @ 0x08091C98 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldr r5, _08091CC0 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldr r1, _08091CC4 @ =gRoomControls + ldrh r0, [r1] + cmp r0, #0 + bne _08091CBE + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + str r5, [r1, #0x30] +_08091CBE: + pop {r4, r5, pc} + .align 2, 0 +_08091CC0: .4byte gLinkEntity +_08091CC4: .4byte gRoomControls + + thumb_func_start sub_08091CC8 +sub_08091CC8: @ 0x08091CC8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r2, _08091D58 @ =gUnk_03003F80 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _08091D64 + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r0, [r6, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r6, #0x15] + ldrb r0, [r6, #0x14] + movs r1, #2 + eors r0, r1 + strb r0, [r6, #0x14] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x13 + eors r0, r1 + str r0, [r2, #0x30] + adds r0, r6, #0 + adds r0, #0x84 + ldr r4, [r0] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r5, _08091D5C @ =gRoomControls + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r2, #0x32 + ldrsh r0, [r6, r2] + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] + ldrb r0, [r5, #5] + strb r0, [r4, #4] + ldrb r0, [r6, #0x14] + strb r0, [r4, #5] + ldrb r1, [r6, #0x14] + adds r1, #0x10 + adds r0, r6, #0 + bl sub_080042AC + ldr r0, _08091D60 @ =0x00004022 + movs r3, #0x2e + ldrsh r1, [r6, r3] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _08091D8A + .align 2, 0 +_08091D58: .4byte gUnk_03003F80 +_08091D5C: .4byte gRoomControls +_08091D60: .4byte 0x00004022 +_08091D64: + adds r0, r6, #0 + bl sub_080042B8 + ldr r3, _08091D8C @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08091D8A: + pop {r4, r5, r6, pc} + .align 2, 0 +_08091D8C: .4byte gLinkEntity + + thumb_func_start sub_08091D90 +sub_08091D90: @ 0x08091D90 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08091DA0 + adds r0, r4, #0 + bl sub_080042B8 +_08091DA0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08091DD8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08091DD8 + ldrb r1, [r4, #0xb] + movs r0, #4 + eors r1, r0 + strb r1, [r4, #0xb] + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0, #6] + movs r0, #0x9e + lsls r0, r0, #1 + bl sub_080A3268 +_08091DD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08091DDC +sub_08091DDC: @ 0x08091DDC + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08091E30 @ =gUnk_081223D0 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002CC + cmp r0, #0xff + bne _08091E5C + ldr r0, _08091E34 @ =gLinkEntity + ldrb r1, [r4, #0x14] + bl sub_0807BD14 + cmp r0, #0 + beq _08091E5C + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08091E40 + cmp r0, #8 + bgt _08091E38 + cmp r0, #0 + beq _08091E40 + b _08091E44 + .align 2, 0 +_08091E30: .4byte gUnk_081223D0 +_08091E34: .4byte gLinkEntity +_08091E38: + cmp r0, #0x10 + beq _08091E40 + cmp r0, #0x18 + bne _08091E44 +_08091E40: + movs r0, #0xa0 + strh r0, [r4, #0x24] +_08091E44: + ldr r0, _08091E54 @ =gLinkEntity + ldrb r1, [r4, #0x15] + strb r1, [r0, #0x15] + ldr r0, _08091E58 @ =gRoomControls + str r4, [r0, #0x30] + movs r0, #1 + b _08091E5E + .align 2, 0 +_08091E54: .4byte gLinkEntity +_08091E58: .4byte gRoomControls +_08091E5C: + movs r0, #0 +_08091E5E: + pop {r4, pc} + + thumb_func_start sub_08091E60 +sub_08091E60: @ 0x08091E60 + push {lr} + ldr r2, _08091E74 @ =gUnk_08122598 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08091E74: .4byte gUnk_08122598 + + thumb_func_start sub_08091E78 +sub_08091E78: @ 0x08091E78 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08091E96 + movs r0, #0x2d + strb r0, [r4, #0xe] +_08091E96: + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 + ldr r1, _08091EBC @ =gUnk_08122590 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_08091EBC: .4byte gUnk_08122590 + + thumb_func_start sub_08091EC0 +sub_08091EC0: @ 0x08091EC0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _08091ED6 + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + ldrh r0, [r1, #0x36] + strh r0, [r4, #0x36] +_08091ED6: + ldrb r0, [r4, #0xb] + cmp r0, #2 + beq _08091EEC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091EEC + bl sub_0805E780 +_08091EEC: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08091EF4 +sub_08091EF4: @ 0x08091EF4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #1 + bhi _08091F0E + ldr r0, _08091F10 @ =gUnk_08122604 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08091F0E: + pop {pc} + .align 2, 0 +_08091F10: .4byte gUnk_08122604 + + thumb_func_start sub_08091F14 +sub_08091F14: @ 0x08091F14 + push {r4, r5, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x58 + strb r2, [r0] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08091FEC @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x70 + strh r1, [r5] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08091FEA + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xd1 + lsls r0, r0, #1 + ldrh r1, [r5] + subs r1, #0x41 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FF0 @ =0x000001A3 + ldrh r1, [r5] + subs r1, #0x40 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd2 + lsls r0, r0, #1 + ldrh r1, [r5] + subs r1, #0x3f + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FF4 @ =0x000001A5 + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd3 + lsls r0, r0, #1 + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FF8 @ =0x000001A7 + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd4 + lsls r0, r0, #1 + ldrh r1, [r5] + adds r1, #0x3f + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FFC @ =0x000001A9 + ldrh r1, [r5] + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd5 + lsls r0, r0, #1 + ldrh r1, [r5] + adds r1, #0x41 + ldrb r2, [r4] + bl sub_0807B314 +_08091FEA: + pop {r4, r5, pc} + .align 2, 0 +_08091FEC: .4byte gRoomControls +_08091FF0: .4byte 0x000001A3 +_08091FF4: .4byte 0x000001A5 +_08091FF8: .4byte 0x000001A7 +_08091FFC: .4byte 0x000001A9 + + thumb_func_start sub_08092000 +sub_08092000: @ 0x08092000 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + movs r1, #0xd3 + lsls r1, r1, #1 + cmp r0, r1 + bne _08092034 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_08092034: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08092038 +sub_08092038: @ 0x08092038 + push {lr} + ldr r2, _0809204C @ =gUnk_0812260C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809204C: .4byte gUnk_0812260C + + thumb_func_start sub_08092050 +sub_08092050: @ 0x08092050 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809207A + movs r0, #3 + strb r0, [r6, #0xc] + ldrh r0, [r6, #0x2e] + adds r0, #2 + strh r0, [r6, #0x2e] + adds r0, r6, #0 + bl sub_0809223C + adds r0, r6, #0 + movs r1, #1 + bl sub_080042AC + b _08092148 +_0809207A: + ldrb r0, [r6, #0xd] + cmp r0, #0 + bne _08092138 + movs r1, #1 + strb r1, [r6, #0xd] + adds r0, r6, #0 + adds r0, #0x38 + strb r1, [r0] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r6, #0x2e] + adds r0, #2 + strh r0, [r6, #0x2e] + adds r0, r6, #0 + bl sub_08016A04 + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r3, _08092130 @ =gRoomControls + ldrh r0, [r3, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + adds r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + adds r5, r6, #0 + adds r5, #0x70 + strh r2, [r5] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldrh r0, [r3, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + ands r2, r4 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + subs r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + adds r7, r6, #0 + adds r7, #0x72 + strh r2, [r7] + ldrh r0, [r5] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r0, [r7] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r4, _08092134 @ =0x00004022 + ldrh r1, [r5] + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r7] + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r0, r6, #0 + movs r1, #0 + bl sub_080042AC + b _08092148 + .align 2, 0 +_08092130: .4byte gRoomControls +_08092134: .4byte 0x00004022 +_08092138: + movs r0, #1 + strb r0, [r6, #0xc] + adds r0, r6, #0 + bl sub_080921BC + adds r0, r6, #0 + bl sub_080921F0 +_08092148: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809214C +sub_0809214C: @ 0x0809214C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08092160 + movs r0, #2 + strb r0, [r4, #0xc] +_08092160: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08092164 +sub_08092164: @ 0x08092164 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080921B6 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + ldrh r1, [r1] + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + bl sub_08092214 + adds r0, r4, #0 + bl sub_0809223C + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_080921B6: + pop {r4, pc} + + thumb_func_start nullsub_118 +nullsub_118: @ 0x080921B8 + bx lr + .align 2, 0 + + thumb_func_start sub_080921BC +sub_080921BC: @ 0x080921BC + push {lr} + adds r2, r0, #0 + ldr r1, _080921DC @ =gUnk_030011E8 + ldr r0, _080921E0 @ =0x000029F8 + adds r3, r1, r0 +_080921C6: + ldrb r0, [r1, #8] + cmp r0, #6 + bne _080921E4 + ldrb r0, [r1, #9] + cmp r0, #0x6f + bne _080921E4 + ldrb r0, [r1, #0xa] + cmp r0, #2 + bne _080921E4 + str r1, [r2, #0x54] + b _080921EE + .align 2, 0 +_080921DC: .4byte gUnk_030011E8 +_080921E0: .4byte 0x000029F8 +_080921E4: + adds r1, #0x88 + cmp r1, r3 + blo _080921C6 + movs r0, #0 + str r0, [r2, #0x54] +_080921EE: + pop {pc} + + thumb_func_start sub_080921F0 +sub_080921F0: @ 0x080921F0 + push {lr} + ldr r2, [r0, #0x54] + cmp r2, #0 + beq _08092212 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, #0 + bl sub_08016A04 +_08092212: + pop {pc} + + thumb_func_start sub_08092214 +sub_08092214: @ 0x08092214 + push {lr} + ldr r2, [r0, #0x54] + cmp r2, #0 + beq _0809223A + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0xa + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, #0 + bl sub_08016A04 +_0809223A: + pop {pc} + + thumb_func_start sub_0809223C +sub_0809223C: @ 0x0809223C + push {lr} + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + subs r1, #0xa + ands r1, r2 + movs r2, #3 + orrs r1, r2 + strb r1, [r3] + bl sub_08016A04 + pop {pc} + + thumb_func_start sub_0809225C +sub_0809225C: @ 0x0809225C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0809226E + adds r0, r1, #0 + bl sub_08092278 + b _08092274 +_0809226E: + adds r0, r1, #0 + bl sub_08092344 +_08092274: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08092278 +sub_08092278: @ 0x08092278 + push {lr} + ldr r2, _0809228C @ =gUnk_08122644 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809228C: .4byte gUnk_08122644 + + thumb_func_start sub_08092290 +sub_08092290: @ 0x08092290 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + bl sub_080925A4 + pop {pc} + + thumb_func_start sub_0809229C +sub_0809229C: @ 0x0809229C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrb r0, [r0] + cmp r0, #0 + beq _080922E0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xb0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08016A04 + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x14] + adds r0, r4, #0 + bl sub_080042AC + movs r0, #0xbf + lsls r0, r0, #1 + bl sub_08004488 + ldr r0, [r4, #0x54] + movs r1, #3 + bl sub_08004260 +_080922E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080922E4 +sub_080922E4: @ 0x080922E4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x90 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r2, r0, #0 + cmp r2, #0 + bne _08092322 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + strb r2, [r0] + ldr r0, [r4, #0x54] + adds r0, #0x63 + strb r2, [r0] + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x14] + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x36 + movs r2, #0 + bl CreateFX + b _0809233E +_08092322: + ldr r1, [r4, #0x20] + ldr r0, _08092340 @ =0x00017FFF + cmp r1, r0 + bgt _0809233E + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809233E + adds r0, r4, #0 + bl sub_080042B8 +_0809233E: + pop {r4, pc} + .align 2, 0 +_08092340: .4byte 0x00017FFF + + thumb_func_start sub_08092344 +sub_08092344: @ 0x08092344 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + strb r0, [r4, #0xf] + ldr r1, _08092364 @ =gUnk_08122650 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080926E4 + pop {r4, pc} + .align 2, 0 +_08092364: .4byte gUnk_08122650 + + thumb_func_start sub_08092368 +sub_08092368: @ 0x08092368 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + strb r0, [r2, #0x14] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x40 + movs r0, #0x48 + strb r0, [r1] + subs r1, #4 + movs r0, #7 + strb r0, [r1] + subs r1, #1 + movs r0, #0x81 + strb r0, [r1] + ldr r0, _0809239C @ =gUnk_080FD280 + str r0, [r2, #0x48] + adds r0, r2, #0 + bl sub_0809264C + pop {pc} + .align 2, 0 +_0809239C: .4byte gUnk_080FD280 + + thumb_func_start sub_080923A0 +sub_080923A0: @ 0x080923A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #3 + beq _080923E2 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080923C6 + movs r1, #1 + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x14] + eors r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080923C6: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #3 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080923E2 + adds r0, r4, #0 + bl sub_0809264C +_080923E2: + pop {r4, pc} + + thumb_func_start sub_080923E4 +sub_080923E4: @ 0x080923E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _080923F8 + adds r0, r4, #0 + bl sub_08092620 + b _0809241A +_080923F8: + adds r0, r4, #0 + bl sub_0809269C + cmp r0, #0 + beq _0809241A + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x14 + strb r0, [r4, #0xe] + ldr r0, _0809241C @ =gUnk_03003F80 + adds r0, #0x3f + movs r1, #0xfd + strb r1, [r0] +_0809241A: + pop {r4, pc} + .align 2, 0 +_0809241C: .4byte gUnk_03003F80 + + thumb_func_start sub_08092420 +sub_08092420: @ 0x08092420 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809269C + cmp r0, #0 + beq _08092434 + ldr r0, _08092464 @ =gUnk_03003F80 + adds r0, #0x3f + movs r1, #0xfd + strb r1, [r0] +_08092434: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08092462 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r1, [r0] + subs r0, #2 + movs r2, #0 + strh r1, [r0] + subs r0, #0xd + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + ldr r0, _08092468 @ =0x0000017B + bl sub_08004488 +_08092462: + pop {r4, pc} + .align 2, 0 +_08092464: .4byte gUnk_03003F80 +_08092468: .4byte 0x0000017B + + thumb_func_start sub_0809246C +sub_0809246C: @ 0x0809246C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0809269C + adds r5, r4, #0 + adds r5, #0x70 + ldrh r0, [r5] + cmp r0, #0 + beq _08092482 + subs r0, #1 + strh r0, [r5] +_08092482: + ldrh r0, [r5] + cmp r0, #0x8c + bhi _080924DC + adds r0, r4, #0 + bl sub_08004274 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080924B8 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + strh r0, [r5] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _080924DC +_080924B8: + movs r2, #1 + ands r2, r1 + cmp r2, #0 + beq _080924CC + strb r0, [r3] + movs r0, #0xbe + lsls r0, r0, #1 + bl sub_08004488 + b _080924DC +_080924CC: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080924DC + strb r2, [r3] + ldr r0, _080924E0 @ =0x0000017D + bl sub_08004488 +_080924DC: + pop {r4, r5, pc} + .align 2, 0 +_080924E0: .4byte 0x0000017D + + thumb_func_start sub_080924E4 +sub_080924E4: @ 0x080924E4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809252C + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _0809252C + adds r0, r4, #0 + bl sub_0809269C +_0809252C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08092530 +sub_08092530: @ 0x08092530 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08092544 + adds r0, r4, #0 + bl sub_0809269C + adds r5, r0, #0 + b _08092546 +_08092544: + movs r5, #0 +_08092546: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08092570 + movs r0, #0 + strb r0, [r2] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0xac + strb r0, [r1] + b _0809258A +_08092570: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809258A + adds r0, r4, #0 + bl sub_0809264C + cmp r5, #0 + beq _0809258A + ldr r0, _0809258C @ =gUnk_03003F80 + adds r0, #0x3f + movs r1, #0xfd + strb r1, [r0] +_0809258A: + pop {r4, r5, pc} + .align 2, 0 +_0809258C: .4byte gUnk_03003F80 + + thumb_func_start sub_08092590 +sub_08092590: @ 0x08092590 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _080925A2 + adds r0, r1, #0 + bl sub_08092620 +_080925A2: + pop {pc} + + thumb_func_start sub_080925A4 +sub_080925A4: @ 0x080925A4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xb] + bl sub_0804B128 + adds r5, r0, #0 + ldrb r0, [r5, #9] + cmp r0, #0xff + beq _0809261A + ldr r7, _0809261C @ =gRoomControls +_080925B8: + ldrb r2, [r5, #9] + movs r0, #0x59 + movs r1, #1 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08092612 + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #0 + strh r0, [r4, #0x24] + str r6, [r4, #0x50] + ldrh r0, [r7, #6] + ldrh r1, [r5, #4] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r7, #8] + ldrh r1, [r5, #6] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r1, [r5, #8] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldrh r0, [r5, #0xa] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrh r1, [r5, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldr r0, [r5] + str r0, [r4, #0x78] + adds r0, r4, #0 + bl sub_08016A04 + adds r1, r4, #0 + adds r1, #0x78 + adds r2, r4, #0 + adds r2, #0x76 + adds r0, r4, #0 + bl sub_080A2CC0 +_08092612: + adds r5, #0x10 + ldrb r0, [r5, #9] + cmp r0, #0xff + bne _080925B8 +_0809261A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809261C: .4byte gRoomControls + + thumb_func_start sub_08092620 +sub_08092620: @ 0x08092620 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r1, [r5, #0x50] + adds r0, r1, #0 + adds r0, #0x70 + ldrb r6, [r0] + cmp r6, #0 + bne _08092648 + movs r4, #1 + strb r4, [r0] + str r5, [r1, #0x54] + adds r0, r5, #0 + bl sub_0806FA24 + strb r4, [r5, #0xc] + strb r6, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xac + strb r0, [r1] +_08092648: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809264C +sub_0809264C: @ 0x0809264C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x14] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0809266A + movs r0, #7 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0xac + strb r0, [r1] + b _08092674 +_0809266A: + movs r0, #2 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x3f + strb r3, [r0] +_08092674: + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfd + strb r0, [r1] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0809269C +sub_0809269C: @ 0x0809269C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _080926D8 @ =gUnk_03003F80 + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080926E0 + ldr r5, _080926DC @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x10 + movs r3, #0x10 + bl sub_080041A0 + cmp r0, #0 + beq _080926E0 + bl sub_08079F8C + cmp r0, #0 + beq _080926E0 + movs r1, #1 + strb r1, [r6, #0x14] + movs r2, #0x36 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _080926E0 + strb r1, [r4, #0xf] + movs r0, #1 + b _080926E2 + .align 2, 0 +_080926D8: .4byte gUnk_03003F80 +_080926DC: .4byte gLinkEntity +_080926E0: + movs r0, #0 +_080926E2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080926E4 +sub_080926E4: @ 0x080926E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xf] + bl sub_080A2BE4 + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _08092700 + ldr r1, [r4, #0x50] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x50] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_08092700: + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809271A + adds r1, r4, #0 + adds r1, #0x78 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809271A: + pop {r4, pc} + + thumb_func_start sub_0809271C +sub_0809271C: @ 0x0809271C + push {lr} + ldr r2, _08092730 @ =gUnk_08122780 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092730: .4byte gUnk_08122780 + + thumb_func_start sub_08092734 +sub_08092734: @ 0x08092734 + push {lr} + ldr r2, _08092748 @ =gUnk_08122788 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092748: .4byte gUnk_08122788 + + thumb_func_start sub_0809274C +sub_0809274C: @ 0x0809274C + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + movs r5, #0x3f + adds r0, r5, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrh r0, [r4, #0x36] + subs r0, #8 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _0809277C + cmp r0, #2 + bne _080927A2 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0809277C: + ldr r0, _080927A4 @ =0x00004051 + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _080927A8 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + movs r6, #0x32 + ldrsh r2, [r4, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl sub_0800015E +_080927A2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080927A4: .4byte 0x00004051 +_080927A8: .4byte gRoomControls + + thumb_func_start sub_080927AC +sub_080927AC: @ 0x080927AC + push {lr} + adds r1, r0, #0 + movs r0, #1 + strb r0, [r1, #0xc] + ldrb r0, [r1, #0xb] + strb r0, [r1, #0x1e] + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _080927C4 + cmp r0, #2 + beq _080927CA + b _080927D0 +_080927C4: + adds r1, #0x63 + movs r0, #2 + b _080927CE +_080927CA: + adds r1, #0x63 + movs r0, #0xfe +_080927CE: + strb r0, [r1] +_080927D0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080927D4 +sub_080927D4: @ 0x080927D4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + ldr r0, _08092848 @ =0x00004051 + mov r8, r0 + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r6, _0809284C @ =gRoomControls + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r2, [r6, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r5 + lsls r0, r0, #6 + orrs r1, r0 + subs r1, #1 + mov r0, r8 + movs r2, #1 + bl sub_0800015E + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r5 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r2, [r6, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r5 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + movs r2, #1 + bl sub_0800015E + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_08092848: .4byte 0x00004051 +_0809284C: .4byte gRoomControls + + thumb_func_start sub_08092850 +sub_08092850: @ 0x08092850 + push {r4, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08092888 + ldr r3, _08092878 @ =gLinkEntity + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r4, #0x32 + ldrsh r0, [r2, r4] + cmp r1, r0 + blt _0809286E + adds r0, #0x18 + cmp r1, r0 + ble _0809287C +_0809286E: + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + b _08092884 + .align 2, 0 +_08092878: .4byte gLinkEntity +_0809287C: + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 +_08092884: + orrs r1, r0 + strb r1, [r2, #0x19] +_08092888: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809288C +sub_0809288C: @ 0x0809288C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080928B0 + ldr r0, _080928AC @ =gUnk_0812279C + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080928C0 + .align 2, 0 +_080928AC: .4byte gUnk_0812279C +_080928B0: + ldr r0, _080928C4 @ =gUnk_08122794 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080928C0: + pop {pc} + .align 2, 0 +_080928C4: .4byte gUnk_08122794 + + thumb_func_start sub_080928C8 +sub_080928C8: @ 0x080928C8 + push {lr} + adds r3, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + ldrb r0, [r3, #0xa] + strb r0, [r3, #0x1e] + ldrb r0, [r3, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r3, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r0, [r3, #0xa] + cmp r0, #2 + beq _08092912 + cmp r0, #4 + beq _08092920 + b _08092928 +_08092912: + adds r0, r3, #0 + movs r1, #0x5b + movs r2, #4 + movs r3, #0 + bl sub_080A2988 + b _08092928 +_08092920: + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] +_08092928: + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_119 +nullsub_119: @ 0x0809292C + bx lr + .align 2, 0 + + thumb_func_start sub_08092930 +sub_08092930: @ 0x08092930 + push {r4, lr} + adds r4, r0, #0 + bl sub_080928C8 + adds r4, #0x82 + movs r0, #0 + strh r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08092940 +sub_08092940: @ 0x08092940 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r1, [r5] + bl sub_0807DF74 + ldr r1, [r5] + adds r0, r4, #0 + bl sub_08092958 + pop {r4, r5, pc} + + thumb_func_start sub_08092958 +sub_08092958: @ 0x08092958 + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, [r2, #8] + cmp r0, #0 + beq _0809298A + movs r4, #0 +_08092966: + ldr r1, [r2, #8] + mvns r0, r1 + adds r0, #1 + ands r0, r1 + eors r1, r0 + str r1, [r2, #8] + cmp r0, #1 + beq _0809297C + cmp r0, #2 + beq _08092980 + b _08092984 +_0809297C: + strb r4, [r3, #0x1e] + b _08092984 +_08092980: + ldr r0, [r2, #4] + strb r0, [r3, #0x1e] +_08092984: + ldr r0, [r2, #8] + cmp r0, #0 + bne _08092966 +_0809298A: + pop {r4, pc} + + thumb_func_start sub_0809298C +sub_0809298C: @ 0x0809298C + push {lr} + ldr r2, _080929A0 @ =gUnk_081227A4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080929A0: .4byte gUnk_081227A4 + + thumb_func_start sub_080929A4 +sub_080929A4: @ 0x080929A4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xb] + movs r6, #0xc0 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08092A08 + adds r4, r5, #0 + adds r4, #0x86 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _08092A08 + ldrb r0, [r5, #0xb] + adds r1, r6, #0 + ands r1, r0 + cmp r1, #0x40 + beq _080929D2 + cmp r1, #0x80 + beq _08092A04 + b _08092A08 +_080929D2: + ldr r0, _080929F4 @ =gUnk_030010A0 + ldrh r1, [r0, #0xa] + movs r0, #0xc1 + lsls r0, r0, #1 + cmp r1, r0 + beq _080929EE + cmp r1, r0 + blt _080929FC + ldr r0, _080929F8 @ =0x0000044F + cmp r1, r0 + bgt _080929FC + subs r0, #2 + cmp r1, r0 + blt _080929FC +_080929EE: + bl sub_0805E780 + b _08092A08 + .align 2, 0 +_080929F4: .4byte gUnk_030010A0 +_080929F8: .4byte 0x0000044F +_080929FC: + ldrh r0, [r4] + bl sub_0807CD48 + b _08092A08 +_08092A04: + bl sub_0805E780 +_08092A08: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #0xa + movs r2, #0x80 + lsls r2, r2, #6 + adds r1, r2, #0 + adds r2, r5, #0 + adds r2, #0x78 + movs r3, #0 + orrs r0, r1 + strh r0, [r2] + ldrb r0, [r5, #0xe] + lsrs r0, r0, #1 + strb r0, [r5, #0xf] + strb r3, [r5, #0xe] + ldrb r1, [r5, #0xb] + movs r0, #0x3f + ands r0, r1 + strb r0, [r5, #0x1e] + movs r4, #0x2e + ldrsh r1, [r5, r4] + ldr r2, _08092A8C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r5, #0 + adds r4, #0x7e + strh r1, [r4] + ldrh r0, [r4] + movs r1, #1 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x7c + strh r0, [r1] + ldrh r0, [r4] + movs r1, #1 + bl sub_080002E0 + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + ldr r0, _08092A90 @ =0x00004022 + ldrh r1, [r4] + movs r2, #1 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08092A8C: .4byte gRoomControls +_08092A90: .4byte 0x00004022 + + thumb_func_start sub_08092A94 +sub_08092A94: @ 0x08092A94 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08092B08 @ =gLinkEntity + ldrb r0, [r2, #0xc] + cmp r0, #6 + bne _08092B04 + ldrb r0, [r2, #0x14] + cmp r0, #0 + bne _08092B04 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r0, #0x28 + movs r3, #0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08092B04 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r3, #0x2e + ldrsh r0, [r2, r3] + subs r1, r1, r0 + ldrb r0, [r4, #0xf] + cmp r1, r0 + bge _08092B04 + cmn r1, r0 + ble _08092B04 + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r5, r4, #0 + adds r5, #0x7e + ldrh r1, [r5] + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + movs r2, #1 + bl sub_08000148 + movs r0, #2 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x36] + subs r0, #0x20 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x32] + adds r0, #0x20 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] +_08092B04: + pop {r4, r5, pc} + .align 2, 0 +_08092B08: .4byte gLinkEntity + + thumb_func_start sub_08092B0C +sub_08092B0C: @ 0x08092B0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _08092B50 + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xc] + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + movs r1, #0xc0 + ands r1, r0 + cmp r1, #0x40 + beq _08092B32 + cmp r1, #0x80 + bne _08092B3C + movs r0, #0x72 + bl sub_08004488 +_08092B32: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_08092B3C: + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl CreateFX + adds r0, r4, #0 + movs r1, #3 + bl sub_0805457C + b _08092B6A +_08092B50: + adds r0, r4, #0 + adds r0, #0x78 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_080044EC + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08092B6A + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08092B6A: + pop {r4, pc} + + thumb_func_start sub_08092B6C +sub_08092B6C: @ 0x08092B6C + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08092B74 +sub_08092B74: @ 0x08092B74 + push {lr} + ldr r2, _08092B88 @ =gUnk_081227C0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092B88: .4byte gUnk_081227C0 + + thumb_func_start sub_08092B8C +sub_08092B8C: @ 0x08092B8C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092BA6 + bl sub_0807CBE4 + cmp r0, #0 + beq _08092BA6 + bl sub_0805E780 +_08092BA6: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08092BE8 @ =gUnk_081227EC + str r0, [r4, #0x48] + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + ldr r1, _08092BEC @ =gUnk_081227B4 + adds r2, r0, r1 + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + bne _08092BF0 + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + b _08092BF6 + .align 2, 0 +_08092BE8: .4byte gUnk_081227EC +_08092BEC: .4byte gUnk_081227B4 +_08092BF0: + strb r1, [r4, #0x1e] + ldrb r0, [r2, #1] + strb r0, [r4, #0xb] +_08092BF6: + pop {r4, pc} + + thumb_func_start sub_08092BF8 +sub_08092BF8: @ 0x08092BF8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092C20 + bl sub_0807CBE4 + cmp r0, #0 + beq _08092C20 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, _08092C1C @ =0x00000111 + bl sub_080A3268 + b _08092C92 + .align 2, 0 +_08092C1C: .4byte 0x00000111 +_08092C20: + adds r0, r4, #0 + bl sub_0800445C + cmp r0, #0 + beq _08092C74 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + bne _08092C74 + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + ldr r1, _08092C68 @ =gUnk_081227CC + adds r5, r0, r1 + ldrh r1, [r5, #4] + ldrh r2, [r5, #6] + adds r0, r4, #0 + bl sub_0806ED9C + cmp r0, #0 + blt _08092C78 + ldr r1, _08092C6C @ =gLinkEntity + ldrh r0, [r5] + ldrb r1, [r1, #0x14] + cmp r0, r1 + bne _08092C78 + ldr r0, _08092C70 @ =gUnk_03003F80 + adds r0, #0x90 + ldrh r1, [r0] + ldrh r0, [r5, #2] + ands r0, r1 + cmp r0, #0 + beq _08092C78 + ldrb r0, [r4, #0xe] + subs r0, #1 + b _08092C76 + .align 2, 0 +_08092C68: .4byte gUnk_081227CC +_08092C6C: .4byte gLinkEntity +_08092C70: .4byte gUnk_03003F80 +_08092C74: + movs r0, #8 +_08092C76: + strb r0, [r4, #0xe] +_08092C78: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08092C92 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + ldr r0, _08092C94 @ =0x00000111 + bl sub_080A3268 +_08092C92: + pop {r4, r5, pc} + .align 2, 0 +_08092C94: .4byte 0x00000111 + + thumb_func_start sub_08092C98 +sub_08092C98: @ 0x08092C98 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08092CA0 +sub_08092CA0: @ 0x08092CA0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08092CC0 + ldr r0, _08092CD4 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _08092CC0 + bl sub_0805E780 +_08092CC0: + ldr r0, _08092CD8 @ =gUnk_081227F4 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08092CD4: .4byte gUnk_020342F8 +_08092CD8: .4byte gUnk_081227F4 + + thumb_func_start sub_08092CDC +sub_08092CDC: @ 0x08092CDC + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xc] + ldr r0, _08092D48 @ =gUnk_080FD320 + str r0, [r4, #0x48] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _08092D50 + ldr r1, _08092D4C @ =0x00000161 + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08092D5C + .align 2, 0 +_08092D48: .4byte gUnk_080FD320 +_08092D4C: .4byte 0x00000161 +_08092D50: + ldr r0, _08092D78 @ =0x0000FFE8 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08092D5C: + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08092D74 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC +_08092D74: + pop {r4, pc} + .align 2, 0 +_08092D78: .4byte 0x0000FFE8 + + thumb_func_start sub_08092D7C +sub_08092D7C: @ 0x08092D7C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08092D92 + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC +_08092D92: + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08092E84 + adds r0, r5, #0 + bl sub_08004274 + ldr r6, _08092E04 @ =gUnk_03003F80 + ldr r0, [r6, #0x30] + movs r3, #0x80 + ands r0, r3 + cmp r0, #0 + bne _08092E84 + adds r0, r6, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08092E84 + ldr r4, _08092E08 @ =gLinkEntity + ldrb r2, [r4, #0xc] + cmp r2, #4 + beq _08092DC8 + ldrb r1, [r4, #0x10] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08092E84 +_08092DC8: + cmp r2, #6 + beq _08092E84 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0xc + movs r3, #0xc + bl sub_0800419C + cmp r0, #0 + beq _08092E84 + ldr r0, [r6, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08092E0C + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _08092E0C + ldrb r0, [r5, #0xb] + cmp r0, #1 + beq _08092E16 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _08092E84 + b _08092E16 + .align 2, 0 +_08092E04: .4byte gUnk_03003F80 +_08092E08: .4byte gLinkEntity +_08092E0C: + ldr r0, _08092E88 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08092E84 +_08092E16: + ldr r4, _08092E88 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + bl sub_08004542 + adds r0, r4, #0 + bl sub_08004542 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08092E8C @ =gUnk_03003F80 + movs r0, #0x1f + strb r0, [r1, #0xc] + ldrb r2, [r5, #0xb] + adds r0, r1, #0 + adds r0, #0x38 + strb r2, [r0] + adds r1, #0x39 + movs r0, #0xff + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r5, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + bl sub_08077B20 + ldr r0, _08092E90 @ =0x00000153 + bl sub_080A3268 + movs r0, #0x79 + bl sub_080A3268 +_08092E84: + pop {r4, r5, r6, pc} + .align 2, 0 +_08092E88: .4byte gLinkEntity +_08092E8C: .4byte gUnk_03003F80 +_08092E90: .4byte 0x00000153 + + thumb_func_start sub_08092E94 +sub_08092E94: @ 0x08092E94 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r1, _08092ED0 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0xc + movs r3, #0xc + bl sub_0800419C + cmp r0, #0 + bne _08092ECE + adds r0, r4, #0 + bl sub_0800455E + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0xc] + subs r0, #1 + strb r0, [r4, #0xc] +_08092ECE: + pop {r4, pc} + .align 2, 0 +_08092ED0: .4byte gLinkEntity + + thumb_func_start sub_08092ED4 +sub_08092ED4: @ 0x08092ED4 + push {lr} + ldr r2, _08092EE8 @ =gUnk_0812283C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092EE8: .4byte gUnk_0812283C + + thumb_func_start sub_08092EEC +sub_08092EEC: @ 0x08092EEC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_080932D8 + cmp r0, #1 + beq _08092F2C + cmp r0, #2 + beq _08092F3A + movs r0, #1 + strb r0, [r4, #0xc] + movs r1, #0 + movs r2, #0x80 + strh r2, [r4, #0x24] + strb r0, [r4, #0x16] + strb r1, [r4, #0xe] + strb r1, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x20 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7b + strb r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08092F48 + ldr r0, _08092F28 @ =gUnk_080FD288 + str r0, [r4, #0x48] + b _08092F48 + .align 2, 0 +_08092F28: .4byte gUnk_080FD288 +_08092F2C: + movs r0, #4 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x2e] + subs r0, #0x20 + strh r0, [r4, #0x2e] + movs r5, #2 + b _08092F5E +_08092F3A: + movs r0, #4 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x2e] + adds r0, #0x20 + strh r0, [r4, #0x2e] + movs r5, #3 + b _08092F5E +_08092F48: + movs r5, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092F5E + bl sub_0807CBE4 + cmp r0, #0 + bne _08092F5E + movs r5, #1 +_08092F5E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080931A4 + pop {r4, r5, pc} + + thumb_func_start sub_08092F68 +sub_08092F68: @ 0x08092F68 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _08092FA4 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r6, r2] + subs r1, r1, r0 + mov r8, r1 + adds r1, r6, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092FA8 + bl sub_0807CBE4 + cmp r0, #0 + bne _08092F92 + b _080930E6 +_08092F92: + adds r0, r6, #0 + adds r0, #0x7a + ldrb r0, [r0] + cmp r0, #0 + beq _08092FA8 + adds r0, r6, #0 + bl sub_080932A8 + b _080930E6 + .align 2, 0 +_08092FA4: .4byte gLinkEntity +_08092FA8: + adds r1, r6, #0 + adds r1, #0x7b + ldrb r2, [r1] + movs r0, #0x3f + ands r0, r2 + adds r7, r1, #0 + cmp r0, #0 + bne _08092FD6 + movs r0, #0xf + movs r4, #0 + orrs r0, r2 + strb r0, [r7] + adds r0, r6, #0 + movs r1, #0 + bl sub_080931A4 + mov r0, r8 + cmp r0, #0 + bge _08092FD6 + ldrb r0, [r7] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r7] +_08092FD6: + ldrb r1, [r7] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08092FEA + adds r5, r6, #0 + adds r5, #0x78 + ldrh r0, [r5] + subs r0, #1 + b _08092FF2 +_08092FEA: + adds r5, r6, #0 + adds r5, #0x78 + ldrh r0, [r5] + adds r0, #1 +_08092FF2: + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _08093034 @ =0x00004031 + cmp r1, r0 + bhi _08093040 + subs r0, #1 + cmp r1, r0 + blo _08093040 + movs r0, #3 + strb r0, [r6, #0xc] + ldr r0, _08093038 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsls r0, r0, #2 + strb r0, [r6, #0x15] + movs r0, #0x80 + strh r0, [r6, #0x24] + movs r0, #0x40 + strb r0, [r6, #0xe] + adds r0, r6, #0 + movs r1, #0x50 + bl sub_0805E4E0 + ldr r0, _0809303C @ =0x0000010F + bl sub_08004488 + adds r0, r6, #0 + bl sub_08093248 + b _080930E6 + .align 2, 0 +_08093034: .4byte 0x00004031 +_08093038: .4byte gLinkEntity +_0809303C: .4byte 0x0000010F +_08093040: + ldr r0, _0809307C @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080930E6 + adds r0, r6, #0 + bl sub_08078930 + adds r3, r7, #0 + ldrb r2, [r3] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08093088 + movs r1, #0x7f + ands r1, r2 + strb r1, [r3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0809309C + ldr r0, _08093080 @ =0x0000402C + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08093084 @ =0x0000403D + b _080930AA + .align 2, 0 +_0809307C: .4byte gLinkEntity +_08093080: .4byte 0x0000402C +_08093084: .4byte 0x0000403D +_08093088: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080930C0 + mov r1, r8 + cmp r1, #4 + ble _080930E6 + movs r0, #0x3f + ands r0, r2 + strb r0, [r3] +_0809309C: + ldr r0, _080930B8 @ =0x0000403D + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _080930BC @ =0x0000402D +_080930AA: + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E + b _080930E6 + .align 2, 0 +_080930B8: .4byte 0x0000403D +_080930BC: .4byte 0x0000402D +_080930C0: + mov r1, r8 + rsbs r0, r1, #0 + cmp r0, #4 + ble _080930E6 + movs r0, #0x40 + orrs r0, r2 + strb r0, [r7] + ldr r0, _080930EC @ =0x0000402C + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _080930F0 @ =0x0000403D + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E +_080930E6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080930EC: .4byte 0x0000402C +_080930F0: .4byte 0x0000403D + + thumb_func_start sub_080930F4 +sub_080930F4: @ 0x080930F4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xe] + cmp r3, #0 + beq _08093104 + bl sub_08093280 + b _08093174 +_08093104: + ldr r5, _0809315C @ =gUnk_03003F80 + ldrb r0, [r5, #5] + cmp r0, #0x12 + bne _08093168 + ldr r6, _08093160 @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08093174 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _08093174 + movs r0, #0x10 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x38 + movs r2, #0x40 + strb r2, [r0] + ldr r0, [r5, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r5, #0x30] + strh r3, [r6, #0x2c] + strh r3, [r6, #0x30] + ldrb r0, [r6, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + strb r2, [r4, #0xe] + ldr r0, _08093164 @ =0x0000010F + bl sub_08004488 + adds r0, r4, #0 + bl sub_08093248 + b _08093174 + .align 2, 0 +_0809315C: .4byte gUnk_03003F80 +_08093160: .4byte gLinkEntity +_08093164: .4byte 0x0000010F +_08093168: + ldrb r0, [r4, #0xd] + cmp r0, #6 + bne _08093174 + movs r0, #1 + strb r0, [r4, #0xc] + strb r3, [r4, #0xf] +_08093174: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08093178 +sub_08093178: @ 0x08093178 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093198 + adds r0, r4, #0 + bl sub_08093334 +_08093198: + adds r0, r4, #0 + bl sub_08093364 + pop {r4, pc} + + thumb_func_start nullsub_120 +nullsub_120: @ 0x080931A0 + bx lr + .align 2, 0 + + thumb_func_start sub_080931A4 +sub_080931A4: @ 0x080931A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r1, #0 + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, _080931F0 @ =gRoomControls + ldrh r1, [r3, #6] + subs r2, r2, r1 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r6, #0x32 + ldrsh r1, [r0, r6] + ldrh r3, [r3, #8] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r2, r1 + adds r1, r0, #0 + adds r1, #0x78 + strh r2, [r1] + ldrh r1, [r1] + subs r1, #0x40 + mov r8, r1 + adds r0, #0x38 + ldrb r7, [r0] + cmp r5, #1 + beq _080931F4 + cmp r5, #1 + blo _0809320C + cmp r5, #2 + beq _080931FC + cmp r5, #3 + beq _08093204 + b _0809320C + .align 2, 0 +_080931F0: .4byte gRoomControls +_080931F4: + ldr r0, _080931F8 @ =gUnk_08122862 + b _0809320E + .align 2, 0 +_080931F8: .4byte gUnk_08122862 +_080931FC: + ldr r0, _08093200 @ =gUnk_08122874 + b _0809320E + .align 2, 0 +_08093200: .4byte gUnk_08122874 +_08093204: + ldr r0, _08093208 @ =gUnk_08122886 + b _0809320E + .align 2, 0 +_08093208: .4byte gUnk_08122886 +_0809320C: + ldr r0, _08093230 @ =gUnk_08122850 +_0809320E: + movs r4, #0 + movs r6, #0 + adds r5, r0, #0 +_08093214: + mov r0, r8 + adds r1, r0, r6 + adds r1, r1, r4 + subs r1, #1 + ldrh r0, [r5] + adds r2, r7, #0 + bl sub_0800015E + cmp r4, #2 + beq _08093234 + cmp r4, #5 + beq _08093238 + b _0809323A + .align 2, 0 +_08093230: .4byte gUnk_08122850 +_08093234: + movs r6, #0x3d + b _0809323A +_08093238: + movs r6, #0x7a +_0809323A: + adds r5, #2 + adds r4, #1 + cmp r4, #8 + bls _08093214 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08093248 +sub_08093248: @ 0x08093248 + push {r4, r5, r6, r7, lr} + adds r1, r0, #0 + adds r1, #0x78 + ldrh r1, [r1] + adds r7, r1, #0 + subs r7, #0x40 + adds r0, #0x38 + ldrb r6, [r0] + movs r4, #0 + movs r5, #0 +_0809325C: + adds r0, r7, r5 + adds r0, r0, r4 + subs r0, #1 + adds r1, r6, #0 + bl sub_0807BA8C + cmp r4, #2 + beq _08093272 + cmp r4, #5 + beq _08093276 + b _08093278 +_08093272: + movs r5, #0x3d + b _08093278 +_08093276: + movs r5, #0x7a +_08093278: + adds r4, #1 + cmp r4, #8 + bls _0809325C + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08093280 +sub_08093280: @ 0x08093280 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080932A0 + adds r0, r4, #0 + bl sub_08093334 +_080932A0: + adds r0, r4, #0 + bl sub_08093364 + pop {r4, pc} + + thumb_func_start sub_080932A8 +sub_080932A8: @ 0x080932A8 + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x7a + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + movs r2, #3 + ands r2, r0 + cmp r2, #1 + beq _080932C8 + cmp r2, #3 + beq _080932D0 + adds r1, #0x62 + movs r0, #0 + b _080932D4 +_080932C8: + adds r0, r1, #0 + adds r0, #0x62 + strb r2, [r0] + b _080932D6 +_080932D0: + adds r1, #0x62 + movs r0, #0xff +_080932D4: + strb r0, [r1] +_080932D6: + pop {pc} + + thumb_func_start sub_080932D8 +sub_080932D8: @ 0x080932D8 + push {r4, lr} + lsls r0, r0, #3 + ldr r1, _080932F0 @ =gUnk_08122898 + adds r4, r0, r1 + ldr r0, [r4] + ldrh r1, [r4, #4] + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _080932F4 + movs r0, #1 + b _08093306 + .align 2, 0 +_080932F0: .4byte gUnk_08122898 +_080932F4: + ldr r0, [r4] + ldrh r1, [r4, #6] + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _08093304 + movs r0, #0 + b _08093306 +_08093304: + movs r0, #2 +_08093306: + pop {r4, pc} + + thumb_func_start sub_08093308 +sub_08093308: @ 0x08093308 + push {lr} + adds r2, r1, #0 + lsls r0, r0, #3 + ldr r1, _08093320 @ =gUnk_08122898 + adds r1, r0, r1 + cmp r2, #1 + bne _08093324 + ldr r0, [r1] + ldrh r1, [r1, #4] + bl sub_0807CC9C + b _08093330 + .align 2, 0 +_08093320: .4byte gUnk_08122898 +_08093324: + cmp r2, #2 + bne _08093330 + ldr r0, [r1] + ldrh r1, [r1, #6] + bl sub_0807CC9C +_08093330: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08093334 +sub_08093334: @ 0x08093334 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + movs r5, #2 + cmp r0, #0 + beq _0809334A + movs r5, #1 +_0809334A: + adds r1, r5, #1 + adds r0, r4, #0 + bl sub_080931A4 + ldrb r0, [r4, #0xa] + adds r1, r5, #0 + bl sub_08093308 + movs r0, #0x72 + bl sub_08004488 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08093364 +sub_08093364: @ 0x08093364 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080933BC + movs r0, #0xf + movs r1, #0x11 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080933BC + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0809339C + ldrh r0, [r4, #0x2e] + adds r0, #0x12 + b _080933A0 +_0809339C: + ldrh r0, [r4, #0x2e] + subs r0, #0x12 +_080933A0: + strh r0, [r4, #0x2e] + movs r0, #0x32 + ldrsh r2, [r4, r0] + ldrb r1, [r5, #0xe] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080933B6 + adds r0, r2, #0 + adds r0, #8 + b _080933BA +_080933B6: + adds r0, r2, #0 + subs r0, #8 +_080933BA: + strh r0, [r4, #0x32] +_080933BC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080933C0 +sub_080933C0: @ 0x080933C0 + push {lr} + ldr r2, _080933D4 @ =gUnk_081228B0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080933D4: .4byte gUnk_081228B0 + + thumb_func_start sub_080933D8 +sub_080933D8: @ 0x080933D8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_08016A04 + ldr r0, _080933F8 @ =gUnk_081228A8 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_080787B4 + pop {r4, pc} + .align 2, 0 +_080933F8: .4byte gUnk_081228A8 + + thumb_func_start sub_080933FC +sub_080933FC: @ 0x080933FC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08093420 + movs r0, #0 + strb r0, [r1] + ldr r1, _08093424 @ =gUnk_081228B8 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r2, #0 + bl TextboxNoOverlap +_08093420: + pop {pc} + .align 2, 0 +_08093424: .4byte gUnk_081228B8 + + thumb_func_start sub_08093428 +sub_08093428: @ 0x08093428 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0809345C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _0809344A + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08093446 + ldr r1, _08093460 @ =gRoomControls + ldr r0, _08093464 @ =gLinkEntity + str r0, [r1, #0x30] +_08093446: + bl sub_0805E780 +_0809344A: + ldr r0, _08093468 @ =gUnk_081228C8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0809345C: .4byte gUnk_03003F80 +_08093460: .4byte gRoomControls +_08093464: .4byte gLinkEntity +_08093468: .4byte gUnk_081228C8 + + thumb_func_start sub_0809346C +sub_0809346C: @ 0x0809346C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1f] + ldr r0, _080934C0 @ =gLinkEntity + ldrb r1, [r0, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080934B8 + ldr r0, _080934C4 @ =gRoomControls + str r4, [r0, #0x30] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r1, r4, #0 + adds r1, #0x6e + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #4 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x61 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 +_080934B8: + adds r0, r4, #0 + bl sub_080934C8 + pop {r4, pc} + .align 2, 0 +_080934C0: .4byte gLinkEntity +_080934C4: .4byte gRoomControls + + thumb_func_start sub_080934C8 +sub_080934C8: @ 0x080934C8 + push {lr} + ldr r2, _080934DC @ =gUnk_081228D0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080934DC: .4byte gUnk_081228D0 + + thumb_func_start sub_080934E0 +sub_080934E0: @ 0x080934E0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x6e + ldrh r1, [r4] + movs r2, #0 + ldrsh r0, [r4, r2] + cmp r0, #0 + bge _080934F6 + rsbs r0, r1, #0 + strh r0, [r4] +_080934F6: + ldr r0, _08093518 @ =gLinkEntity + ldrb r0, [r0, #0xd] + cmp r0, #2 + beq _0809351C + cmp r0, #2 + bgt _080935B0 + cmp r0, #1 + bne _080935B0 + adds r1, r5, #0 + adds r1, #0x72 + ldrh r0, [r1] + subs r0, #4 + strh r0, [r1] + adds r6, r4, #0 + adds r7, r1, #0 + b _080935BE + .align 2, 0 +_08093518: .4byte gLinkEntity +_0809351C: + ldrb r2, [r5, #0xf] + adds r0, r2, #0 + cmp r0, #0 + bne _08093560 + adds r0, r5, #0 + adds r0, #0x72 + ldrh r1, [r0] + adds r7, r0, #0 + cmp r1, #0x80 + bls _08093538 + adds r0, r1, #0 + subs r0, #0x20 + strh r0, [r7] + b _08093544 +_08093538: + adds r0, r2, #1 + strb r0, [r5, #0xf] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 +_08093544: + adds r0, r5, #0 + adds r0, #0x6e + ldrh r2, [r0] + ldr r1, _0809355C @ =0x0000011F + adds r6, r0, #0 + cmp r2, r1 + bhi _080935BE + adds r0, r2, #0 + adds r0, #0x40 + strh r0, [r6] + b _080935BE + .align 2, 0 +_0809355C: .4byte 0x0000011F +_08093560: + cmp r0, #0xff + beq _080935A6 + adds r0, r5, #0 + adds r0, #0x72 + ldrh r1, [r0] + adds r7, r0, #0 + cmp r1, #0xff + bhi _08093576 + adds r0, r1, #0 + adds r0, #0x20 + b _0809357A +_08093576: + movs r0, #0x80 + lsls r0, r0, #1 +_0809357A: + strh r0, [r7] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r1, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + adds r6, r0, #0 + cmp r1, r2 + bls _08093594 + adds r0, r1, #0 + subs r0, #0x20 + strh r0, [r6] + b _08093596 +_08093594: + strh r2, [r6] +_08093596: + ldrh r1, [r6] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _080935BE + movs r0, #0xff + strb r0, [r5, #0xf] + b _080935BE +_080935A6: + adds r0, r5, #0 + bl sub_080936C8 + adds r6, r4, #0 + b _080935BA +_080935B0: + adds r0, r5, #0 + bl sub_080936C8 + adds r6, r5, #0 + adds r6, #0x6e +_080935BA: + adds r7, r5, #0 + adds r7, #0x72 +_080935BE: + ldr r0, _080935E4 @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080935E8 + movs r0, #1 + strb r0, [r5, #0x1e] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _080935EA + ldrh r0, [r6] + rsbs r0, r0, #0 + strh r0, [r6] + b _080935EA + .align 2, 0 +_080935E4: .4byte gLinkEntity +_080935E8: + strb r0, [r5, #0x1e] +_080935EA: + ldrb r0, [r5, #0x1e] + ldrb r1, [r5, #0x1f] + cmp r0, r1 + beq _080935FE + strb r0, [r5, #0x1f] + ldrb r1, [r5, #0x1e] + ldrh r2, [r5, #0x12] + adds r0, r5, #0 + bl sub_080042D0 +_080935FE: + ldr r4, _0809364C @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrb r2, [r4, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + ldrh r1, [r7] + adds r0, r5, #0 + movs r2, #0xa + movs r3, #2 + bl sub_0806FCF4 + ldrh r1, [r6] + ldrh r2, [r7] + adds r0, r5, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl sub_0806FEBC + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809364C: .4byte gLinkEntity + + thumb_func_start sub_08093650 +sub_08093650: @ 0x08093650 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080936C4 @ =gLinkEntity + ldrb r0, [r5, #0x15] + lsrs r1, r0, #1 + adds r0, r0, r1 + asrs r0, r0, #2 + adds r0, #2 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1f] + cmp r0, r1 + beq _08093674 + strb r0, [r4, #0x1f] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08093674: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + ldr r0, [r4, #0x50] + adds r0, #0x72 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #0x18 + movs r3, #0 + bl sub_0806FCF4 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0806FEBC + pop {r4, r5, pc} + .align 2, 0 +_080936C4: .4byte gLinkEntity + + thumb_func_start sub_080936C8 +sub_080936C8: @ 0x080936C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08093714 @ =gLinkEntity + ldr r0, [r0, #0x7c] + lsrs r2, r0, #2 + movs r3, #0x9c + lsls r3, r3, #1 + adds r1, r3, #0 + subs r1, r1, r2 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + movs r1, #0x3c + bl __divsi3 + movs r1, #8 + subs r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrb r3, [r4, #0xe] + cmp r3, #0 + bne _0809372C + adds r1, r4, #0 + adds r1, #0x6e + ldrh r2, [r1] + ldrh r0, [r5] + cmp r0, r2 + bhs _08093718 + adds r0, r2, #0 + subs r0, #8 + strh r0, [r1] + adds r1, #4 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + b _0809375C + .align 2, 0 +_08093714: .4byte gLinkEntity +_08093718: + adds r0, r3, #1 + strb r0, [r4, #0xe] + ldrh r0, [r5] + strh r0, [r1] + ldrh r0, [r5] + adds r0, #0x30 + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + b _0809375C +_0809372C: + ldrh r0, [r5] + adds r0, #0x30 + adds r1, r4, #0 + adds r1, #0x6e + ldrh r2, [r1] + cmp r0, r2 + ble _0809374A + adds r0, r2, #0 + adds r0, #8 + strh r0, [r1] + adds r1, #4 + ldrh r0, [r1] + subs r0, #8 + strh r0, [r1] + b _0809375C +_0809374A: + movs r0, #0 + strb r0, [r4, #0xe] + ldrh r0, [r5] + adds r0, #0x30 + strh r0, [r1] + ldrh r1, [r5] + adds r0, r4, #0 + adds r0, #0x72 + strh r1, [r0] +_0809375C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08093760 +sub_08093760: @ 0x08093760 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #2 + beq _08093794 + cmp r0, #2 + bgt _08093778 + cmp r0, #0 + beq _08093784 + cmp r0, #1 + beq _0809378C + b _080937BC +_08093778: + cmp r0, #3 + beq _080937AC + cmp r0, #0x41 + bgt _080937BC + cmp r0, #0x40 + blt _080937BC +_08093784: + ldr r0, _08093788 @ =gUnk_081228D8 + b _08093796 + .align 2, 0 +_08093788: .4byte gUnk_081228D8 +_0809378C: + ldr r0, _08093790 @ =gUnk_081228E0 + b _08093796 + .align 2, 0 +_08093790: .4byte gUnk_081228E0 +_08093794: + ldr r0, _080937A8 @ =gUnk_081228E8 +_08093796: + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080937BC + .align 2, 0 +_080937A8: .4byte gUnk_081228E8 +_080937AC: + ldr r0, _080937C0 @ =gUnk_081228F0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080937BC: + pop {pc} + .align 2, 0 +_080937C0: .4byte gUnk_081228F0 + + thumb_func_start sub_080937C4 +sub_080937C4: @ 0x080937C4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08093808 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x76 + strh r1, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0x41 + beq _0809386A + cmp r0, #0x41 + bgt _0809387A + cmp r0, #0 + beq _0809380C + cmp r0, #0x40 + beq _08093840 + b _0809387A + .align 2, 0 +_08093808: .4byte gRoomControls +_0809380C: + strb r5, [r4, #0x1e] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + strh r5, [r0] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x3c + strh r0, [r1] + movs r0, #0x62 + movs r1, #0x40 + b _08093854 +_08093840: + movs r0, #2 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x62 + movs r1, #0x41 +_08093854: + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809387A + str r4, [r1, #0x50] + adds r0, r4, #0 + bl sub_0806FA24 + b _0809387A +_0809386A: + movs r0, #0 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] +_0809387A: + adds r0, r4, #0 + bl sub_08093A1C + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08093884 +sub_08093884: @ 0x08093884 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080938B8 + ldr r0, _080938A8 @ =gLinkEntity + movs r3, #0x32 + ldrsh r1, [r0, r3] + movs r3, #0x32 + ldrsh r0, [r2, r3] + adds r0, #0x20 + cmp r1, r0 + bge _080938AC + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + b _080938B4 + .align 2, 0 +_080938A8: .4byte gLinkEntity +_080938AC: + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 +_080938B4: + orrs r1, r0 + strb r1, [r2, #0x19] +_080938B8: + adds r0, r2, #0 + bl sub_08093C70 + pop {pc} + + thumb_func_start sub_080938C0 +sub_080938C0: @ 0x080938C0 + push {r4, r5, lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0xb] + ands r1, r2 + adds r1, #3 + strb r1, [r0, #0x1e] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, _08093908 @ =gRoomControls + ldrh r1, [r3, #6] + subs r2, r2, r1 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldrh r3, [r3, #8] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r2, r1 + adds r1, r0, #0 + adds r1, #0x76 + strh r2, [r1] + bl sub_08093A1C + pop {r4, r5, pc} + .align 2, 0 +_08093908: .4byte gRoomControls + + thumb_func_start nullsub_524 +nullsub_524: @ 0x0809390C + bx lr + .align 2, 0 + + thumb_func_start sub_08093910 +sub_08093910: @ 0x08093910 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0xb] + adds r0, r3, #0 + ands r0, r1 + adds r0, #5 + strb r0, [r5, #0x1e] + ldrb r0, [r5, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _0809397C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x76 + strh r1, [r0] + ldrb r0, [r5, #0xb] + ands r3, r0 + cmp r3, #0 + beq _0809396C + adds r1, r5, #0 + adds r1, #0x62 + movs r0, #8 + strb r0, [r1] +_0809396C: + adds r0, r5, #0 + bl sub_08093984 + adds r0, r5, #0 + movs r1, #0x7b + bl sub_0801D2B4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809397C: .4byte gRoomControls + + thumb_func_start nullsub_525 +nullsub_525: @ 0x08093980 + bx lr + .align 2, 0 + + thumb_func_start sub_08093984 +sub_08093984: @ 0x08093984 + push {r4, r5, r6, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xb] + ldr r2, _080939B4 @ =gUnk_0812291E + cmp r0, #0 + beq _08093992 + ldr r2, _080939B8 @ =gUnk_081228F8 +_08093992: + movs r5, #0 + adds r6, r1, #0 + adds r6, #0x76 + adds r4, r2, #0 +_0809399A: + movs r0, #0 + ldrsh r1, [r4, r0] + ldrh r0, [r6] + adds r1, r1, r0 + ldr r0, _080939BC @ =0x00004074 + movs r2, #1 + bl sub_0800015E + adds r4, #2 + adds r5, #1 + cmp r5, #0x12 + bls _0809399A + pop {r4, r5, r6, pc} + .align 2, 0 +_080939B4: .4byte gUnk_0812291E +_080939B8: .4byte gUnk_081228F8 +_080939BC: .4byte 0x00004074 + + thumb_func_start sub_080939C0 +sub_080939C0: @ 0x080939C0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xb] + movs r0, #3 + ands r0, r1 + adds r0, #7 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08093A14 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x76 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08093A1C + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0801D2B4 + pop {r4, r5, pc} + .align 2, 0 +_08093A14: .4byte gRoomControls + + thumb_func_start nullsub_526 +nullsub_526: @ 0x08093A18 + bx lr + .align 2, 0 + + thumb_func_start sub_08093A1C +sub_08093A1C: @ 0x08093A1C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r2, r0, #0 + ldrb r1, [r2, #0xa] + cmp r1, #1 + beq _08093B0C + cmp r1, #1 + bgt _08093A34 + cmp r1, #0 + beq _08093A3C + b _08093C64 +_08093A34: + cmp r1, #3 + bne _08093A3A + b _08093C54 +_08093A3A: + b _08093C64 +_08093A3C: + ldr r0, _08093AF0 @ =0x00004024 + adds r7, r2, #0 + adds r7, #0x76 + ldrh r1, [r7] + adds r1, #0x3c + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldr r5, _08093AF4 @ =0x00004022 + ldrh r1, [r7] + adds r1, #0x3d + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x3e + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093AF8 @ =0x00004029 + mov r8, r0 + ldrh r1, [r7] + adds r1, #0x7c + ldrb r2, [r4] + bl sub_0800015E + ldr r6, _08093AFC @ =0x00004026 + ldrh r1, [r7] + adds r1, #0x7d + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x7e + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + adds r5, #0x1b + ldrh r1, [r7] + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093B00 @ =0x00004027 + ldrh r1, [r7] + adds r1, #0x41 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08093B04 @ =0x00004023 + ldrh r1, [r7] + adds r1, #0x42 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08093B08 @ =0x0000406D + ldrh r1, [r7] + adds r1, #0x43 + ldrb r2, [r4] + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x81 + ldrb r2, [r4] + mov r0, r8 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x82 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x83 + b _08093B94 + .align 2, 0 +_08093AF0: .4byte 0x00004024 +_08093AF4: .4byte 0x00004022 +_08093AF8: .4byte 0x00004029 +_08093AFC: .4byte 0x00004026 +_08093B00: .4byte 0x00004027 +_08093B04: .4byte 0x00004023 +_08093B08: .4byte 0x0000406D +_08093B0C: + ldrb r0, [r2, #0xb] + ands r1, r0 + cmp r1, #0 + beq _08093BB4 + ldr r6, _08093BA0 @ =0x0000406D + movs r0, #0x76 + adds r0, r0, r2 + mov r8, r0 + ldrh r1, [r0] + subs r1, #0x81 + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldr r5, _08093BA4 @ =0x00004022 + mov r2, r8 + ldrh r1, [r2] + subs r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093BA8 @ =0x00004029 + mov r2, r8 + ldrh r1, [r2] + subs r1, #2 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08093BAC @ =0x00004026 + mov r2, r8 + ldrh r1, [r2] + subs r1, #1 + ldrb r2, [r4] + bl sub_0800015E + mov r0, r8 + ldrh r1, [r0] + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2] + adds r1, #1 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldr r0, _08093BB0 @ =0x0000406E + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0800015E + mov r0, r8 + ldrh r1, [r0] + adds r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x42 +_08093B94: + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + b _08093C64 + .align 2, 0 +_08093BA0: .4byte 0x0000406D +_08093BA4: .4byte 0x00004022 +_08093BA8: .4byte 0x00004029 +_08093BAC: .4byte 0x00004026 +_08093BB0: .4byte 0x0000406E +_08093BB4: + ldr r6, _08093C40 @ =0x0000406C + movs r0, #0x76 + adds r0, r0, r2 + mov r8, r0 + ldrh r1, [r0] + subs r1, #0x7f + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldr r5, _08093C44 @ =0x00004022 + mov r2, r8 + ldrh r1, [r2] + subs r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + mov r0, r8 + ldrh r1, [r0] + subs r1, #1 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2] + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093C48 @ =0x00004026 + mov r2, r8 + ldrh r1, [r2] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08093C4C @ =0x0000402A + mov r2, r8 + ldrh r1, [r2] + adds r1, #2 + ldrb r2, [r4] + bl sub_0800015E + mov r0, r8 + ldrh r1, [r0] + adds r1, #0x3e + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093C50 @ =0x0000406F + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0800015E + b _08093C64 + .align 2, 0 +_08093C40: .4byte 0x0000406C +_08093C44: .4byte 0x00004022 +_08093C48: .4byte 0x00004026 +_08093C4C: .4byte 0x0000402A +_08093C50: .4byte 0x0000406F +_08093C54: + ldr r0, _08093C6C @ =0x00004022 + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_08093C64: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08093C6C: .4byte 0x00004022 + + thumb_func_start sub_08093C70 +sub_08093C70: @ 0x08093C70 + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x78 + ldrh r0, [r3] + cmp r0, #0 + beq _08093CE8 + ldr r0, _08093CE0 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + beq _08093D5C + movs r0, #0 + strh r0, [r3] + ldr r4, _08093CE4 @ =0x00004022 + adds r6, r2, #0 + adds r6, #0x76 + ldrh r1, [r6] + adds r1, #0x3f + adds r5, r2, #0 + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x41 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + adds r4, #4 + ldrh r1, [r6] + adds r1, #0x7f + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x80 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x81 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + b _08093D5C + .align 2, 0 +_08093CE0: .4byte gUnk_03003F80 +_08093CE4: .4byte 0x00004022 +_08093CE8: + ldr r0, _08093D60 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08093D5C + adds r1, r2, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08093D5C + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] + movs r0, #0x3c + strh r0, [r1] + ldr r5, _08093D64 @ =0x0000403D + adds r6, r2, #0 + adds r6, #0x76 + ldrh r1, [r6] + adds r1, #0x3f + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093D68 @ =0x00004027 + ldrh r1, [r6] + adds r1, #0x41 + ldrb r2, [r4] + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x7f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093D6C @ =0x00004029 + ldrh r1, [r6] + adds r1, #0x81 + ldrb r2, [r4] + bl sub_0800015E +_08093D5C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08093D60: .4byte gUnk_03003F80 +_08093D64: .4byte 0x0000403D +_08093D68: .4byte 0x00004027 +_08093D6C: .4byte 0x00004029 + + thumb_func_start sub_08093D70 +sub_08093D70: @ 0x08093D70 + push {lr} + ldr r2, _08093D84 @ =gUnk_08122944 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093D84: .4byte gUnk_08122944 + + thumb_func_start sub_08093D88 +sub_08093D88: @ 0x08093D88 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x36] + subs r0, #8 + strh r0, [r4, #0x36] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0x20 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08093DAC + cmp r0, #1 + beq _08093DC4 + b _08093DDE +_08093DAC: + adds r0, r4, #0 + movs r1, #4 + bl sub_0805457C + cmp r0, #0 + bne _08093DBC + movs r0, #2 + strb r0, [r4, #0xc] +_08093DBC: + ldr r1, [r4, #0x54] + ldr r0, [r4, #0x20] + str r0, [r1, #0x20] + b _08093DDE +_08093DC4: + movs r0, #0 + movs r1, #0x5f + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08093DDE + movs r0, #5 + strb r0, [r1, #0xe] + adds r0, r4, #0 + bl sub_08093E10 +_08093DDE: + pop {r4, pc} + + thumb_func_start sub_08093DE0 +sub_08093DE0: @ 0x08093DE0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093DF4 + movs r0, #2 + strb r0, [r2, #0xc] +_08093DF4: + ldrb r1, [r2, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08093E06 + ldr r1, [r2, #0x54] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] +_08093E06: + pop {pc} + + thumb_func_start sub_08093E08 +sub_08093E08: @ 0x08093E08 + push {lr} + bl sub_0805E7BC + pop {pc} + + thumb_func_start sub_08093E10 +sub_08093E10: @ 0x08093E10 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_0806FA24 + str r4, [r5, #0x50] + str r5, [r4, #0x54] + ldr r0, [r4, #0x20] + str r0, [r5, #0x20] + pop {r4, r5, pc} + + thumb_func_start sub_08093E24 +sub_08093E24: @ 0x08093E24 + push {lr} + ldr r2, _08093E38 @ =gUnk_0812295C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093E38: .4byte gUnk_0812295C + + thumb_func_start sub_08093E3C +sub_08093E3C: @ 0x08093E3C + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08093E6A + adds r0, r4, #0 + bl sub_08016A30 +_08093E6A: + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + ldr r1, _08093EA8 @ =gUnk_08122950 + adds r2, r0, r1 + ldrh r0, [r2] + cmp r0, #0 + beq _08093E90 + ldrb r1, [r4, #0xb] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08093E90 + ldrh r0, [r2] + bl sub_08004488 +_08093E90: + ldrb r1, [r4, #0xb] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08093EA6 + ldrb r0, [r4, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x19] +_08093EA6: + pop {r4, pc} + .align 2, 0 +_08093EA8: .4byte gUnk_08122950 + + thumb_func_start sub_08093EAC +sub_08093EAC: @ 0x08093EAC + push {lr} + ldr r3, _08093EC8 @ =gUnk_08122964 + ldr r2, _08093ECC @ =gUnk_08122950 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #2] + lsrs r1, r1, #4 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093EC8: .4byte gUnk_08122964 +_08093ECC: .4byte gUnk_08122950 + + thumb_func_start sub_08093ED0 +sub_08093ED0: @ 0x08093ED0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093EEC + adds r0, r4, #0 + bl sub_0805E7BC +_08093EEC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08093EF0 +sub_08093EF0: @ 0x08093EF0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + cmp r4, #1 + beq _08093F40 + cmp r4, #1 + bgt _08093F04 + cmp r4, #0 + beq _08093F0A + b _08093FB0 +_08093F04: + cmp r4, #2 + beq _08093F98 + b _08093FB0 +_08093F0A: + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _08093FB0 + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093FB0 + movs r0, #0x64 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08093F8E + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + adds r0, r5, #0 + bl sub_0806FA24 + b _08093F8E +_08093F40: + adds r0, r5, #0 + bl sub_08004274 + adds r1, r5, #0 + adds r1, #0x5a + ldrb r0, [r1] + ands r4, r0 + adds r6, r1, #0 + cmp r4, #0 + beq _08093F72 + movs r0, #0 + strb r0, [r6] + movs r0, #0x64 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08093F72 + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + adds r0, r5, #0 + bl sub_0806FA24 +_08093F72: + ldrb r1, [r6] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093FB0 + ldr r1, [r5, #0x50] + ldr r0, _08093F94 @ =gLinkEntity + cmp r1, r0 + bne _08093F8E + movs r0, #0x7a + bl sub_080A3268 + bl sub_08079D84 +_08093F8E: + bl sub_0805E780 + b _08093FB0 + .align 2, 0 +_08093F94: .4byte gLinkEntity +_08093F98: + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093FB0 + bl sub_0805E780 +_08093FB0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08093FB4 +sub_08093FB4: @ 0x08093FB4 + push {lr} + ldr r2, _08093FC8 @ =gUnk_081229B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093FC8: .4byte gUnk_081229B4 + + thumb_func_start sub_08093FCC +sub_08093FCC: @ 0x08093FCC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + bl sub_08016A04 + pop {pc} + + thumb_func_start sub_08093FE0 +sub_08093FE0: @ 0x08093FE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08094064 + cmp r0, #0 + beq _08094062 + adds r3, r4, #0 + adds r3, #0x38 + ldrb r0, [r3] + cmp r0, #2 + bne _08094024 + ldr r0, _08094020 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x1e + bgt _08094002 + cmp r0, #0x1d + bge _08094062 +_08094002: + movs r0, #1 + strb r0, [r3] + adds r0, r4, #0 + bl sub_08016A04 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + b _08094060 + .align 2, 0 +_08094020: .4byte gLinkEntity +_08094024: + ldr r0, _0809404C @ =gLinkEntity + ldrb r2, [r0, #0xc] + cmp r2, #0x1e + bgt _08094050 + cmp r2, #0x1d + blt _08094050 + movs r0, #2 + strb r0, [r3] + adds r0, r4, #0 + bl sub_08016A04 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + b _08094060 + .align 2, 0 +_0809404C: .4byte gLinkEntity +_08094050: + adds r2, r0, #0 + adds r2, #0x38 + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08094062 + movs r0, #1 +_08094060: + strb r0, [r2] +_08094062: + pop {r4, pc} + + thumb_func_start sub_08094064 +sub_08094064: @ 0x08094064 + push {lr} + movs r2, #1 + ldr r1, _08094080 @ =gLinkEntity + movs r3, #0x2e + ldrsh r1, [r1, r3] + movs r3, #0x2e + ldrsh r0, [r0, r3] + subs r1, r1, r0 + adds r1, #0x1c + cmp r1, #0x38 + bls _0809407C + movs r2, #0 +_0809407C: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_08094080: .4byte gLinkEntity + + thumb_func_start sub_08094084 +sub_08094084: @ 0x08094084 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0809412A + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080940CA + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #5 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080940CA: + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r4, #0x32] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + movs r0, #0x36 + ldrsh r1, [r5, r0] + movs r0, #0x40 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08094108 + movs r3, #0x80 + lsls r3, r3, #1 + movs r2, #0x80 + lsls r2, r2, #2 + b _0809411E +_08094108: + movs r1, #0x36 + ldrsh r0, [r5, r1] + adds r0, #0x40 + lsls r2, r0, #1 + movs r1, #0x80 + lsls r1, r1, #1 + subs r3, r1, r2 + lsls r0, r0, #2 + movs r1, #0x80 + lsls r1, r1, #2 + subs r2, r1, r0 +_0809411E: + adds r0, r4, #0 + adds r1, r3, #0 + movs r3, #0 + bl sub_0805EC9C + b _0809412E +_0809412A: + bl sub_0805E780 +_0809412E: + pop {r4, r5, pc} + + thumb_func_start sub_08094130 +sub_08094130: @ 0x08094130 + push {lr} + ldr r2, _08094144 @ =gUnk_081229BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08094144: .4byte gUnk_081229BC + + thumb_func_start sub_08094148 +sub_08094148: @ 0x08094148 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08094154 + b _08094254 +_08094154: + cmp r0, #1 + bgt _0809415E + cmp r0, #0 + beq _080941A8 + b _0809438A +_0809415E: + cmp r0, #2 + beq _08094164 + b _0809438A +_08094164: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08094180 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb4 + lsls r0, r0, #1 + str r0, [r4, #0x78] + ldr r0, _0809417C @ =gRoomControls + str r4, [r0, #0x30] + b _08094198 + .align 2, 0 +_0809417C: .4byte gRoomControls +_08094180: + ldr r0, [r4, #0x78] + subs r0, #1 + str r0, [r4, #0x78] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08094198 + ldr r1, _080941A0 @ =gRoomControls + ldr r0, _080941A4 @ =gLinkEntity + str r0, [r1, #0x30] + bl sub_0805E780 +_08094198: + bl sub_08078B48 + b _08094394 + .align 2, 0 +_080941A0: .4byte gRoomControls +_080941A4: .4byte gLinkEntity +_080941A8: + ldr r1, _08094228 @ =gUnk_081229D0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #3] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080941F0 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080941F0: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08094200 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_08094200: + ldrb r0, [r4, #0xb] + cmp r0, #3 + bhi _08094230 + bl sub_08000E50 + ldr r1, _0809422C @ =0x0001FFFF + ands r1, r0 + movs r0, #0xa0 + lsls r0, r0, #0xa + orrs r0, r1 + str r0, [r4, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0x56 + bl sub_08004260 + b _0809438A + .align 2, 0 +_08094228: .4byte gUnk_081229D0 +_0809422C: .4byte 0x0001FFFF +_08094230: + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + ldrb r1, [r4, #0x15] + orrs r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0x57 + bl sub_08004260 + b _0809438A +_08094254: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08094272 + adds r0, r4, #0 + movs r1, #0x67 + movs r2, #1 + movs r3, #0x80 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08094272 + ldr r0, [r4, #0x50] + str r0, [r1, #0x54] +_08094272: + ldrb r0, [r4, #0xb] + cmp r0, #0x80 + bne _0809427A + b _08094380 +_0809427A: + movs r2, #0 + movs r0, #0x4b + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x19] + subs r0, #0x58 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0xe0 + lsls r1, r1, #7 + strh r1, [r4, #0x24] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + ldr r1, _080942E8 @ =gUnk_081229F0 + adds r3, r0, r1 + movs r0, #0 + ldrsb r0, [r3, r0] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r3, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r0, [r3, #2] + strb r0, [r4, #0xe] + ldrb r0, [r3, #3] + strb r0, [r4, #0xf] + movs r0, #0xce + str r0, [r4, #0x7c] + str r2, [r4, #0x74] + ldrb r1, [r3, #4] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080942EC + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + lsls r0, r0, #8 + b _080942F4 + .align 2, 0 +_080942E8: .4byte gUnk_081229F0 +_080942EC: + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x80 + lsls r0, r0, #1 +_080942F4: + strh r0, [r1] + ldrb r1, [r3, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809430A + adds r1, r4, #0 + adds r1, #0x86 + movs r0, #0xff + lsls r0, r0, #8 + b _08094312 +_0809430A: + adds r1, r4, #0 + adds r1, #0x86 + movs r0, #0x80 + lsls r0, r0, #1 +_08094312: + strh r0, [r1] + adds r0, r4, #0 + bl sub_0806FBD8 + cmp r0, #0 + beq _0809438A + ldr r2, [r4, #0x48] + ldr r1, _0809437C @ =gUnk_080FD2E8 + ldrb r0, [r1] + strb r0, [r2] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #1] + strb r0, [r2, #1] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #2] + strb r0, [r2, #2] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #3] + strb r0, [r2, #3] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #4] + strb r0, [r2, #4] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #5] + strb r0, [r2, #5] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #6] + strb r0, [r2, #6] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #7] + strb r0, [r2, #7] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r1, #4 + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x7a + strb r0, [r1] + subs r1, #4 + movs r0, #1 + strb r0, [r1] + b _0809438A + .align 2, 0 +_0809437C: .4byte gUnk_080FD2E8 +_08094380: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0809438A: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08094398 +_08094394: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094398 +sub_08094398: @ 0x08094398 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080943A8 + cmp r0, #1 + beq _080943D8 + b _08094420 +_080943A8: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08094420 + ldrb r0, [r4, #0xb] + cmp r0, #3 + bhi _080943D2 + adds r0, r4, #0 + movs r1, #0xc + movs r2, #0 + bl CreateFX +_080943D2: + bl sub_0805E780 + b _08094420 +_080943D8: + ldrb r1, [r4, #0xb] + cmp r1, #0x80 + beq _0809440A + ldr r0, [r4, #0x7c] + subs r0, #1 + str r0, [r4, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080943F6 + movs r0, #0x96 + lsls r0, r0, #2 + str r0, [r4, #0x7c] + movs r0, #2 + strb r0, [r4, #0xc] +_080943F6: + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + b _08094420 +_0809440A: + ldr r0, [r4, #0x54] + adds r0, #0x79 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0809441A + bl sub_0805E780 +_0809441A: + adds r0, r4, #0 + bl sub_08094660 +_08094420: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094424 +sub_08094424: @ 0x08094424 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r3, r6, #0 + adds r3, #0x82 + movs r1, #0 + ldrsh r0, [r3, r1] + cmp r0, #0 + bge _08094452 + adds r1, r6, #0 + adds r1, #0x80 + movs r0, #0x24 + ldrsh r2, [r6, r0] + ldr r0, [r1] + adds r0, r0, r2 + str r0, [r1] + movs r2, #0 + ldrsh r0, [r3, r2] + rsbs r0, r0, #0 + mov r8, r0 + adds r5, r1, #0 + b _08094466 +_08094452: + adds r0, r6, #0 + adds r0, #0x80 + movs r1, #0x24 + ldrsh r2, [r6, r1] + ldr r1, [r0] + subs r1, r1, r2 + str r1, [r0] + ldrh r3, [r3] + mov r8, r3 + adds r5, r0, #0 +_08094466: + adds r0, r6, #0 + adds r0, #0x86 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r4, r0, #0 + cmp r1, #0 + bge _0809448C + adds r1, r6, #0 + adds r1, #0x84 + movs r0, #0x24 + ldrsh r2, [r6, r0] + ldr r0, [r1] + adds r0, r0, r2 + str r0, [r1] + movs r2, #0 + ldrsh r0, [r4, r2] + rsbs r7, r0, #0 + adds r3, r1, #0 + b _0809449E +_0809448C: + adds r0, r6, #0 + adds r0, #0x84 + movs r1, #0x24 + ldrsh r2, [r6, r1] + ldr r1, [r0] + subs r1, r1, r2 + str r1, [r0] + ldrh r7, [r4] + adds r3, r0, #0 +_0809449E: + ldrh r2, [r6, #0x24] + movs r0, #0x24 + ldrsh r1, [r6, r0] + movs r0, #0x80 + lsls r0, r0, #6 + cmp r1, r0 + ble _080944B2 + ldr r1, _080944D0 @ =0xFFFFFF00 + adds r0, r2, r1 + strh r0, [r6, #0x24] +_080944B2: + ldr r0, [r6, #0x7c] + subs r0, #1 + str r0, [r6, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080944D4 + movs r0, #0 + strh r0, [r5] + strh r0, [r3] + movs r0, #3 + strb r0, [r6, #0xc] + movs r0, #0x78 + str r0, [r6, #0x7c] + b _08094500 + .align 2, 0 +_080944D0: .4byte 0xFFFFFF00 +_080944D4: + adds r5, r6, #0 + adds r5, #0x82 + movs r2, #0 + ldrsh r1, [r5, r2] + ldrb r3, [r6, #0xe] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + movs r0, #0 + ldrsh r1, [r4, r0] + ldrb r3, [r6, #0xf] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + ldrh r1, [r5] + ldrh r2, [r4] + adds r0, r6, #0 + movs r3, #0 + bl sub_0805EC9C +_08094500: + ldr r5, [r6, #0x48] + cmp r5, #0 + beq _08094538 + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + mov r1, r8 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r4, #0 + adds r1, r7, #0 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #7] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x62 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + strb r0, [r1, #1] +_08094538: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08094540 +sub_08094540: @ 0x08094540 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x7c] + subs r0, #1 + str r0, [r3, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0809455A + movs r0, #4 + strb r0, [r3, #0xc] + movs r0, #2 + str r0, [r3, #0x7c] +_0809455A: + adds r0, r3, #0 + adds r0, #0x82 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094570 +sub_08094570: @ 0x08094570 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r2, r6, #0 + adds r2, #0x82 + ldrh r1, [r2] + lsls r3, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08094590 + asrs r3, r3, #0x10 + ldr r0, _080945B0 @ =0xFFFFFF00 + cmp r3, r0 + bne _080945BA +_08094590: + ldr r1, [r6, #0x7c] + cmp r1, #0 + bne _080945B4 + ldr r0, [r6, #0x50] + adds r0, #0x7c + strh r1, [r0] + ldr r0, [r6, #0x50] + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08094622 + bl sub_0805E780 + b _08094622 + .align 2, 0 +_080945B0: .4byte 0xFFFFFF00 +_080945B4: + subs r0, r1, #1 + str r0, [r6, #0x7c] + b _08094622 +_080945BA: + cmp r3, #0 + bge _080945CC + subs r0, r1, #1 + strh r0, [r2] + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + mov r8, r0 + b _080945D4 +_080945CC: + adds r0, r1, #1 + strh r0, [r2] + ldrh r2, [r2] + mov r8, r2 +_080945D4: + adds r0, r6, #0 + adds r0, #0x86 + ldrh r2, [r0] + movs r3, #0 + ldrsh r1, [r0, r3] + adds r4, r0, #0 + cmp r1, #0 + bge _080945F0 + subs r0, r2, #1 + strh r0, [r4] + movs r1, #0 + ldrsh r0, [r4, r1] + rsbs r7, r0, #0 + b _080945F6 +_080945F0: + adds r0, r2, #1 + strh r0, [r4] + ldrh r7, [r4] +_080945F6: + adds r5, r6, #0 + adds r5, #0x82 + movs r3, #0 + ldrsh r1, [r5, r3] + ldrb r3, [r6, #0xe] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + movs r0, #0 + ldrsh r1, [r4, r0] + ldrb r3, [r6, #0xf] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + ldrh r1, [r5] + ldrh r2, [r4] + adds r0, r6, #0 + movs r3, #0 + bl sub_0805EC9C +_08094622: + ldr r5, [r6, #0x48] + cmp r5, #0 + beq _0809465A + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + mov r1, r8 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r4, #0 + adds r1, r7, #0 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #7] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x62 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + strb r0, [r1, #1] +_0809465A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08094660 +sub_08094660: @ 0x08094660 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldr r0, [r6, #0x50] + adds r0, #0x62 + movs r7, #0 + ldrsb r7, [r0, r7] + cmp r7, #0 + bge _08094678 + rsbs r7, r7, #0 +_08094678: + lsls r7, r7, #1 + adds r0, r7, #0 + cmp r7, #0 + bge _08094682 + adds r0, #0xf +_08094682: + asrs r1, r0, #4 + ldr r0, [r6, #0x74] + cmp r0, r1 + bhs _08094700 + str r1, [r6, #0x74] + movs r1, #0x2e + ldrsh r0, [r6, r1] + subs r0, r0, r7 + adds r4, r0, #0 + subs r4, #0x40 + movs r1, #0x32 + ldrsh r0, [r6, r1] + subs r0, r0, r7 + adds r5, r0, #0 + subs r5, #0x40 + movs r0, #0x10 + mov sb, r0 + str r0, [r6, #0x78] + movs r1, #0 + mov r8, r1 + str r1, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 + mov r0, r8 + str r0, [r6, #0x78] + mov r1, sb + str r1, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 + movs r1, #0x2e + ldrsh r0, [r6, r1] + adds r0, r0, r7 + adds r4, r0, #0 + adds r4, #0x30 + movs r1, #0x32 + ldrsh r0, [r6, r1] + adds r0, r0, r7 + adds r5, r0, #0 + adds r5, #0x30 + movs r7, #0x10 + rsbs r7, r7, #0 + str r7, [r6, #0x78] + mov r0, r8 + str r0, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 + mov r1, r8 + str r1, [r6, #0x78] + str r7, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 +_08094700: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08094708 +sub_08094708: @ 0x08094708 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r7, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + ldr r0, [r7, #0x74] + lsls r0, r0, #1 + adds r4, r0, #0 + adds r4, #8 + cmp r4, #0 + beq _08094752 + ldr r3, _08094758 @ =gRoomControls + movs r2, #0x3f +_08094722: + ldrh r0, [r3, #6] + subs r0, r6, r0 + lsrs r0, r0, #4 + ands r0, r2 + ldrh r1, [r3, #8] + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + str r2, [sp] + str r3, [sp, #4] + bl sub_0807BA8C + ldr r0, [r7, #0x78] + adds r6, r6, r0 + ldr r0, [r7, #0x7c] + adds r5, r5, r0 + subs r4, #1 + ldr r2, [sp] + ldr r3, [sp, #4] + cmp r4, #0 + bne _08094722 +_08094752: + add sp, #8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08094758: .4byte gRoomControls + + thumb_func_start sub_0809475C +sub_0809475C: @ 0x0809475C + push {lr} + ldr r2, _08094770 @ =gUnk_08122A10 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08094770: .4byte gUnk_08122A10 + + thumb_func_start sub_08094774 +sub_08094774: @ 0x08094774 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xa] + cmp r0, #8 + bls _08094784 + b _080948C6 +_08094784: + lsls r0, r0, #2 + ldr r1, _08094790 @ =_08094794 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08094790: .4byte _08094794 +_08094794: @ jump table + .4byte _080947B8 @ case 0 + .4byte _08094824 @ case 1 + .4byte _080948B0 @ case 2 + .4byte _080948C6 @ case 3 + .4byte _080948C6 @ case 4 + .4byte _080948C6 @ case 5 + .4byte _080948C6 @ case 6 + .4byte _080948C6 @ case 7 + .4byte _080948C6 @ case 8 +_080947B8: + adds r0, r5, #0 + movs r1, #0xb + movs r2, #0 + bl CreateFX + adds r6, r0, #0 + str r6, [r5, #0x54] + cmp r6, #0 + beq _080947EE + ldr r0, _0809480C @ =gLinkEntity + ldr r4, _08094810 @ =gUnk_08122A18 + ldrb r3, [r0, #0x14] + movs r1, #6 + ands r1, r3 + adds r1, r1, r4 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r1, #1 + orrs r1, r3 + adds r1, r1, r4 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r6, #0 + bl PositionRelative +_080947EE: + ldr r0, [r5, #0x54] + adds r1, r5, #0 + bl sub_0806FA24 + ldr r1, _08094814 @ =0x00004032 + ldr r2, _08094818 @ =0x00004033 + adds r0, r5, #0 + bl sub_08094980 + ldr r1, _0809481C @ =0x00004061 + ldr r2, _08094820 @ =0x00004022 + adds r0, r5, #0 + bl sub_08094980 + b _080948C6 + .align 2, 0 +_0809480C: .4byte gLinkEntity +_08094810: .4byte gUnk_08122A18 +_08094814: .4byte 0x00004032 +_08094818: .4byte 0x00004033 +_0809481C: .4byte 0x00004061 +_08094820: .4byte 0x00004022 +_08094824: + adds r0, r5, #0 + movs r1, #0x2b + movs r2, #0 + bl CreateFX + adds r6, r0, #0 + str r6, [r5, #0x54] + cmp r6, #0 + beq _0809485A + ldr r0, _08094898 @ =gLinkEntity + ldr r4, _0809489C @ =gUnk_08122A18 + ldrb r3, [r0, #0x14] + movs r1, #6 + ands r1, r3 + adds r1, r1, r4 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r1, #1 + orrs r1, r3 + adds r1, r1, r4 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r6, #0 + bl PositionRelative +_0809485A: + ldrb r4, [r5, #0xb] + cmp r4, #0 + bne _080948C6 + ldr r0, [r5, #0x54] + adds r1, r5, #0 + bl sub_0806FA24 + strb r4, [r5, #0xe] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0x19] + movs r0, #0x3f + ands r0, r1 + strb r0, [r5, #0x19] + ldr r1, _080948A0 @ =0x0000403B + ldr r2, _080948A4 @ =0x0000403C + adds r0, r5, #0 + bl sub_08094980 + ldr r1, _080948A8 @ =0x00004061 + ldr r2, _080948AC @ =0x00004022 + adds r0, r5, #0 + bl sub_08094980 + b _080948CA + .align 2, 0 +_08094898: .4byte gLinkEntity +_0809489C: .4byte gUnk_08122A18 +_080948A0: .4byte 0x0000403B +_080948A4: .4byte 0x0000403C +_080948A8: .4byte 0x00004061 +_080948AC: .4byte 0x00004022 +_080948B0: + ldr r0, _080948CC @ =gLinkEntity + movs r1, #0x60 + movs r2, #0 + bl sub_080A2A20 + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _080948C6 + movs r0, #1 + strb r0, [r1, #0xe] +_080948C6: + bl sub_0805E780 +_080948CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_080948CC: .4byte gLinkEntity + + thumb_func_start sub_080948D0 +sub_080948D0: @ 0x080948D0 + push {lr} + ldr r2, _080948E4 @ =gUnk_08122A20 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080948E4: .4byte gUnk_08122A20 + + thumb_func_start sub_080948E8 +sub_080948E8: @ 0x080948E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + cmp r1, #0x3b + bhi _08094978 + ldr r0, [r4, #0x34] + ldr r2, _0809495C @ =0xFFFFC000 + adds r0, r0, r2 + str r0, [r4, #0x34] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08094970 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r3, r0, #0 + str r3, [r4, #0x54] + cmp r3, #0 + beq _08094970 + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + ldr r2, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r2, #0x29 + lsrs r1, r1, #0x1d + ldrb r3, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08094960 + bl sub_08000E50 + ldr r2, [r4, #0x54] + movs r1, #0xf + ands r0, r1 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + b _08094970 + .align 2, 0 +_0809495C: .4byte 0xFFFFC000 +_08094960: + bl sub_08000E50 + ldr r2, [r4, #0x54] + movs r1, #0xf + ands r0, r1 + ldrh r1, [r2, #0x2e] + subs r1, r1, r0 + strh r1, [r2, #0x2e] +_08094970: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + b _0809497C +_08094978: + bl sub_0805E780 +_0809497C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094980 +sub_08094980: @ 0x08094980 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r6, r0, #0 + str r1, [sp] + str r2, [sp, #4] + movs r0, #0 + mov r8, r0 + ldr r1, _08094A04 @ =gRoomControls + mov sl, r1 + movs r2, #0x3f + mov sb, r2 + ldr r7, _08094A08 @ =gUnk_08122A28 +_080949A0: + movs r4, #0 + ldrsb r4, [r7, r4] + movs r5, #1 + ldrsb r5, [r7, r5] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0800029C + ldr r3, [sp] + cmp r3, r0 + bne _080949EC + movs r0, #0x2e + ldrsh r1, [r6, r0] + adds r1, r1, r4 + mov r2, sl + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + mov r3, sb + ands r1, r3 + movs r2, #0x32 + ldrsh r0, [r6, r2] + adds r0, r0, r5 + mov r3, sl + ldrh r2, [r3, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + mov r2, sb + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r2, [r0] + ldr r0, [sp, #4] + bl sub_0800015E +_080949EC: + adds r7, #2 + movs r3, #2 + add r8, r3 + mov r0, r8 + cmp r0, #9 + bls _080949A0 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08094A04: .4byte gRoomControls +_08094A08: .4byte gUnk_08122A28 + + thumb_func_start sub_08094A0C +sub_08094A0C: @ 0x08094A0C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08094A3E + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08094A34 + movs r0, #1 + strb r0, [r2, #0xc] + ldr r0, _08094A30 @ =gUnk_080FD170 + str r0, [r2, #0x48] + adds r0, r2, #0 + bl sub_0807DD50 + b _08094A42 + .align 2, 0 +_08094A30: .4byte gUnk_080FD170 +_08094A34: + adds r0, r2, #0 + movs r1, #0 + bl sub_0807DD94 + b _08094A42 +_08094A3E: + movs r0, #1 + strb r0, [r2, #0xc] +_08094A42: + pop {pc} + + thumb_func_start sub_08094A44 +sub_08094A44: @ 0x08094A44 + push {lr} + ldr r2, _08094A58 @ =gUnk_08122A34 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08094A58: .4byte gUnk_08122A34 + + thumb_func_start sub_08094A5C +sub_08094A5C: @ 0x08094A5C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094A78 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_08094A78: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094A90 +sub_08094A90: @ 0x08094A90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094ACE + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + ldr r1, _08094AE4 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0807DD64 +_08094ACE: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08094AE4: .4byte gUnk_08114F30 + + thumb_func_start sub_08094AE8 +sub_08094AE8: @ 0x08094AE8 + push {r4, r5, lr} + adds r5, r1, #0 + movs r0, #0x6a + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08094B08 + ldr r1, [r5, #4] + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08094B08: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08094B0C +sub_08094B0C: @ 0x08094B0C + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x36] + subs r0, #1 + movs r3, #0 + strh r0, [r2, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _08094B30 + ldr r0, _08094B2C @ =0x0000FFE0 + strh r0, [r2, #0x36] + b _08094B34 + .align 2, 0 +_08094B2C: .4byte 0x0000FFE0 +_08094B30: + ldr r0, _08094B38 @ =gUnk_02033280 + strb r3, [r0, #6] +_08094B34: + pop {pc} + .align 2, 0 +_08094B38: .4byte gUnk_02033280 + + thumb_func_start sub_08094B3C +sub_08094B3C: @ 0x08094B3C + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x34] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + str r0, [r2, #0x34] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0xd + rsbs r0, r0, #0 + cmp r1, r0 + blt _08094B60 + ldr r0, _08094B5C @ =0x0000FFF3 + strh r0, [r2, #0x36] + b _08094B66 + .align 2, 0 +_08094B5C: .4byte 0x0000FFF3 +_08094B60: + ldr r1, _08094B68 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08094B66: + pop {pc} + .align 2, 0 +_08094B68: .4byte gUnk_02033280 + + thumb_func_start sub_08094B6C +sub_08094B6C: @ 0x08094B6C + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08094B80 +sub_08094B80: @ 0x08094B80 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08094B94 +sub_08094B94: @ 0x08094B94 + push {r4, lr} + movs r0, #0x6a + movs r1, #0x22 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08094BD2 + ldr r0, _08094BD4 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _08094BD8 @ =0x0000FFD0 + strh r0, [r4, #0x36] + ldr r1, _08094BDC @ =gUnk_0800AEDC + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + adds r0, r4, #0 + bl sub_080A29BC + ldrh r0, [r4, #0x36] + adds r0, #0x10 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_08094BD2: + pop {r4, pc} + .align 2, 0 +_08094BD4: .4byte gLinkEntity +_08094BD8: .4byte 0x0000FFD0 +_08094BDC: .4byte gUnk_0800AEDC + + thumb_func_start sub_08094BE0 +sub_08094BE0: @ 0x08094BE0 + push {r4, lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #0x22 + bl sub_0805EB2C + adds r4, r0, #0 + cmp r4, #0 + beq _08094C22 + ldr r0, _08094C28 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _08094C2C @ =0x0000FFF4 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_08094C22: + add sp, #4 + pop {r4, pc} + .align 2, 0 +_08094C28: .4byte gLinkEntity +_08094C2C: .4byte 0x0000FFF4 + + thumb_func_start sub_08094C30 +sub_08094C30: @ 0x08094C30 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _08094C40 + ldr r0, [r5, #4] + cmp r0, #0 + bne _08094C44 +_08094C40: + bl sub_0805E780 +_08094C44: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094C74 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldr r1, _08094C84 @ =gUnk_08114F30 + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_08094C74: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_08094C84: .4byte gUnk_08114F30 + + thumb_func_start sub_08094C88 +sub_08094C88: @ 0x08094C88 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xc] + cmp r1, #0 + beq _08094CA0 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08094CCC + bl sub_0805E780 + b _08094CDA +_08094CA0: + adds r0, r1, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r5, #0xb] + cmp r0, #0x43 + bgt _08094CCC + cmp r0, #0x40 + blt _08094CCC + adds r0, r5, #0 + adds r1, r5, #0 + bl sub_0806FAD8 +_08094CCC: + ldrb r4, [r5, #0xa] + ldrb r0, [r5, #0xb] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] +_08094CDA: + pop {r4, r5, pc} + + thumb_func_start sub_08094CDC +sub_08094CDC: @ 0x08094CDC + push {lr} + movs r0, #0x6a + movs r1, #3 + movs r2, #0x62 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08094D0A + ldr r1, _08094D0C @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0xe0 + strh r0, [r2, #0x2e] + movs r3, #0x96 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #0xa2 + lsls r0, r0, #1 + bl sub_080A3268 +_08094D0A: + pop {pc} + .align 2, 0 +_08094D0C: .4byte gRoomControls + + thumb_func_start sub_08094D10 +sub_08094D10: @ 0x08094D10 + push {lr} + sub sp, #4 + movs r0, #0x62 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #3 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08094D2E + movs r0, #0xff + strb r0, [r1, #0xc] +_08094D2E: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094D34 +sub_08094D34: @ 0x08094D34 + push {lr} + movs r0, #0x6a + movs r1, #0x15 + movs r2, #0xd + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08094D68 + ldr r1, _08094D6C @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r3, #0x96 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #0xa2 + lsls r0, r0, #1 + bl sub_080A3268 +_08094D68: + pop {pc} + .align 2, 0 +_08094D6C: .4byte gRoomControls + + thumb_func_start sub_08094D70 +sub_08094D70: @ 0x08094D70 + push {lr} + sub sp, #4 + movs r0, #0xd + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #0x15 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08094D8E + movs r0, #0xff + strb r0, [r1, #0xc] +_08094D8E: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094D94 +sub_08094D94: @ 0x08094D94 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + beq _08094DAC + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08094DCE + bl sub_0805E780 + b _08094DD4 +_08094DAC: + adds r0, r1, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08094DCE: + adds r0, r4, #0 + bl sub_080042B8 +_08094DD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094DD8 +sub_08094DD8: @ 0x08094DD8 + push {lr} + movs r0, #0x6a + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08094E06 + ldr r1, _08094E08 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0xf0 + strh r0, [r2, #0x2e] + movs r3, #0x96 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #0xa2 + lsls r0, r0, #1 + bl sub_080A3268 +_08094E06: + pop {pc} + .align 2, 0 +_08094E08: .4byte gRoomControls + + thumb_func_start sub_08094E0C +sub_08094E0C: @ 0x08094E0C + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #4 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08094E2A + movs r0, #0xff + strb r0, [r1, #0xc] +_08094E2A: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094E30 +sub_08094E30: @ 0x08094E30 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08094E88 + ldr r0, _08094E80 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + beq _08094E48 + b _08094F94 +_08094E48: + movs r0, #0x6a + movs r1, #5 + movs r2, #1 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + bne _08094E5A + b _08094F94 +_08094E5A: + bl sub_08000E50 + ldr r4, _08094E84 @ =gRoomControls + movs r1, #0xf0 + bl __modsi3 + ldrh r1, [r4, #0xa] + adds r1, r1, r0 + strh r1, [r5, #0x2e] + bl sub_08000E50 + movs r1, #0xa0 + bl __modsi3 + ldrh r1, [r4, #0xc] + adds r1, r1, r0 + strh r1, [r5, #0x32] + b _08094F94 + .align 2, 0 +_08094E80: .4byte gUnk_030010A0 +_08094E84: .4byte gRoomControls +_08094E88: + cmp r0, #1 + bne _08094F44 + ldrb r1, [r4, #0xc] + cmp r1, #1 + beq _08094ED4 + cmp r1, #1 + bgt _08094E9C + cmp r1, #0 + beq _08094EA6 + b _08094F94 +_08094E9C: + cmp r1, #2 + beq _08094F08 + cmp r1, #3 + beq _08094F22 + b _08094F94 +_08094EA6: + strb r0, [r4, #0xc] + ldr r0, _08094ED0 @ =0xFF600000 + str r0, [r4, #0x34] + str r1, [r4, #0x20] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0xd + bne _08094F94 + movs r0, #3 + strb r0, [r4, #0xc] + b _08094F94 + .align 2, 0 +_08094ED0: .4byte 0xFF600000 +_08094ED4: + ldr r1, [r4, #0x34] + ldr r0, [r4, #0x20] + subs r1, r1, r0 + str r1, [r4, #0x34] + ldr r2, _08094F04 @ =0xFFFFE000 + adds r0, r0, r2 + str r0, [r4, #0x20] + cmp r1, #0 + ble _08094F94 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + str r1, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + movs r0, #0xbf + lsls r0, r0, #1 + bl sub_08004488 + b _08094F94 + .align 2, 0 +_08094F04: .4byte 0xFFFFE000 +_08094F08: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08094F94 + bl sub_0805E780 + b _08094F94 +_08094F22: + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x20] + subs r0, r0, r1 + str r0, [r4, #0x34] + ldr r0, _08094F40 @ =0xFFFFE000 + adds r1, r1, r0 + str r1, [r4, #0x20] + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08094F94 + bl sub_0805E780 + b _08094F94 + .align 2, 0 +_08094F40: .4byte 0xFFFFE000 +_08094F44: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094F94 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #1 + beq _08094F68 + cmp r0, #1 + bgt _08094F5E + cmp r0, #0 + beq _08094F7A + b _08094F94 +_08094F5E: + cmp r0, #2 + beq _08094F72 + cmp r0, #3 + beq _08094F84 + b _08094F94 +_08094F68: + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08094F94 +_08094F72: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_08094F7A: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _08094F94 +_08094F84: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08094F94: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08094F98 +sub_08094F98: @ 0x08094F98 + push {lr} + movs r0, #0x6a + movs r1, #5 + movs r2, #0 + bl CreateObject + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094FA8 +sub_08094FA8: @ 0x08094FA8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bhi _08095086 + lsls r0, r0, #2 + ldr r1, _08094FBC @ =_08094FC0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08094FBC: .4byte _08094FC0 +_08094FC0: @ jump table + .4byte _08094FD4 @ case 0 + .4byte _08094FF0 @ case 1 + .4byte _08095024 @ case 2 + .4byte _08095040 @ case 3 + .4byte _08095070 @ case 4 +_08094FD4: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080787B4 + b _08095086 +_08094FF0: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08095086 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080788E0 + ldr r0, _08095020 @ =gUnk_03003F80 + movs r1, #0xc + strb r1, [r0, #0xc] + adds r0, #0x38 + movs r1, #0x36 + strb r1, [r0] + movs r0, #2 + bl sub_08078A90 + b _08095086 + .align 2, 0 +_08095020: .4byte gUnk_03003F80 +_08095024: + movs r0, #0x36 + bl GetInventoryValue + cmp r0, #2 + bne _08095086 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08095086 +_08095040: + ldr r0, _0809506C @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0xc + beq _08095086 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x5b + bl GetProgressFlag + cmp r0, #0 + bne _08095086 + movs r0, #0x1c + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + movs r0, #0x5b + bl sub_0807CD04 + movs r0, #0x3c + strb r0, [r4, #0xe] + b _08095086 + .align 2, 0 +_0809506C: .4byte gLinkEntity +_08095070: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095086 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #1 + bl sub_08078A90 +_08095086: + pop {r4, pc} + + thumb_func_start sub_08095088 +sub_08095088: @ 0x08095088 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + beq _080950C8 + cmp r0, #1 + bgt _0809509C + cmp r0, #0 + beq _080950A2 + b _0809510A +_0809509C: + cmp r0, #2 + beq _080950F0 + b _0809510A +_080950A2: + movs r0, #0x5b + bl GetInventoryValue + cmp r0, #0 + beq _080950B0 + bl sub_0805E780 +_080950B0: + movs r0, #1 + strb r0, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_080787B4 + b _0809510A +_080950C8: + adds r1, r5, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0809510A + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_080788E0 + ldr r0, _080950EC @ =0x00001F1F + movs r1, #0 + bl sub_08078AA8 + b _0809510A + .align 2, 0 +_080950EC: .4byte 0x00001F1F +_080950F0: + ldr r0, _0809511C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0809510A + movs r0, #0x5b + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0809510A: + ldrb r4, [r5, #0xa] + movs r0, #0x5b + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_0809511C: .4byte gTextBox + + thumb_func_start sub_08095120 +sub_08095120: @ 0x08095120 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809514C + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0809514C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095164 +sub_08095164: @ 0x08095164 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #8 + bl sub_0805EB2C + cmp r0, #0 + beq _08095182 + movs r1, #3 + bl sub_080042AC +_08095182: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08095188 +sub_08095188: @ 0x08095188 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080951B4 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080951B4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + pop {r4, pc} + + thumb_func_start sub_080951C4 +sub_080951C4: @ 0x080951C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080951E8 + adds r0, #1 + strb r0, [r4, #0xc] + movs r1, #0 + ldr r0, _08095240 @ =0x0000FFF0 + strh r0, [r4, #0x36] + strb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_080951E8: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08095218 + str r0, [r4, #0x34] + str r0, [r4, #0x50] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08095218 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xe6 + bl sub_080A3268 +_08095218: + ldr r3, [r4, #0x50] + cmp r3, #0 + beq _0809523C + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r3, #0x2e] + adds r0, #0x10 + strh r0, [r4, #0x2e] + ldrh r0, [r3, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] +_0809523C: + pop {r4, pc} + .align 2, 0 +_08095240: .4byte 0x0000FFF0 + + thumb_func_start sub_08095244 +sub_08095244: @ 0x08095244 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0809527C + movs r0, #0x6a + movs r1, #0xa + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809527C + str r5, [r4, #0x50] + movs r2, #0x80 + lsls r2, r2, #0xd + ldr r3, _08095280 @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + ldr r1, _08095284 @ =gUnk_0801183C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0809527C: + pop {r4, r5, pc} + .align 2, 0 +_08095280: .4byte 0xFFF00000 +_08095284: .4byte gUnk_0801183C + + thumb_func_start sub_08095288 +sub_08095288: @ 0x08095288 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _080952AA + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080952AA: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _080952F0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bhi _080952D4 + movs r0, #0 + strb r0, [r4, #0xd] + movs r2, #0x80 + lsls r2, r2, #1 + movs r3, #0xc0 + lsls r3, r3, #8 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + b _080952F0 +_080952D4: + movs r2, #0x80 + lsls r2, r2, #1 + ldrb r3, [r4, #0xe] + lsls r3, r3, #8 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + ldrb r0, [r4, #0xe] + adds r0, #0xa + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806F69C +_080952F0: + ldr r3, [r4, #0x54] + cmp r3, #0 + beq _080952FE + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_080952FE: + adds r0, r4, #0 + bl sub_080042B8 + ldr r3, [r4, #0x50] + cmp r3, #0 + beq _08095328 + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r3, #4] + cmp r0, #0 + bne _0809532C + bl sub_0805E780 + b _0809532C +_08095328: + bl sub_0805E780 +_0809532C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095330 +sub_08095330: @ 0x08095330 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0xb + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809535E + str r4, [r5, #0x54] + str r5, [r4, #0x54] + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _08095360 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0809535E: + pop {r4, r5, pc} + .align 2, 0 +_08095360: .4byte 0x0000FFF0 + + thumb_func_start sub_08095364 +sub_08095364: @ 0x08095364 + push {r4, r5, r6, lr} + ldr r6, [r0, #0x54] + cmp r6, #0 + beq _0809539E + movs r5, #0 + movs r0, #2 + strb r0, [r6, #0x1e] + adds r0, r6, #0 + adds r0, #0x38 + movs r4, #1 + strb r4, [r0] + adds r0, r6, #0 + bl sub_08016A04 + str r5, [r6, #0x54] + strb r4, [r6, #0xd] + ldr r0, _080953A0 @ =0x0000FFF0 + strh r0, [r6, #0x36] + movs r0, #7 + strb r0, [r6, #0x15] + movs r0, #0xc0 + lsls r0, r0, #0xa + str r0, [r6, #0x20] + movs r0, #0x80 + strh r0, [r6, #0x24] + adds r0, r6, #0 + movs r1, #1 + bl sub_080042AC +_0809539E: + pop {r4, r5, r6, pc} + .align 2, 0 +_080953A0: .4byte 0x0000FFF0 + + thumb_func_start sub_080953A4 +sub_080953A4: @ 0x080953A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080953E0 + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08095414 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldr r1, _08095418 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r0, r4, #0 + bl sub_0807DD64 +_080953E0: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xa] + cmp r0, #0xd + bne _08095412 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + ldr r1, _0809541C @ =0x00000139 + cmp r0, #0 + beq _0809540C + movs r1, #0 +_0809540C: + adds r0, r4, #0 + bl sub_0801D2B4 +_08095412: + pop {r4, pc} + .align 2, 0 +_08095414: .4byte 0x0000FFF0 +_08095418: .4byte gUnk_08114F30 +_0809541C: .4byte 0x00000139 + + thumb_func_start sub_08095420 +sub_08095420: @ 0x08095420 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0xc + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095450 + ldr r3, _08095454 @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095450: + pop {r4, r5, r6, pc} + .align 2, 0 +_08095454: .4byte 0xFFF00000 + + thumb_func_start nullsub_527 +nullsub_527: @ 0x08095458 + bx lr + .align 2, 0 + + thumb_func_start sub_0809545C +sub_0809545C: @ 0x0809545C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0xd + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _080954A6 + ldr r3, _080954A8 @ =0xFFF00000 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + ldr r1, [r6, #4] + adds r0, r5, #0 + bl sub_0807DAD0 + adds r1, r5, #0 + adds r1, #0x84 + str r0, [r1] + movs r0, #0x6a + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080954A6 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r5, [r4, #0x50] +_080954A6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080954A8: .4byte 0xFFF00000 + + thumb_func_start sub_080954AC +sub_080954AC: @ 0x080954AC + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x1a + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080954D6 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _080954D8 @ =gUnk_08015B14 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_080954D6: + pop {r4, r5, pc} + .align 2, 0 +_080954D8: .4byte gUnk_08015B14 + + thumb_func_start sub_080954DC +sub_080954DC: @ 0x080954DC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08095598 + cmp r0, #1 + bgt _080954F0 + cmp r0, #0 + beq _080954FC + b _0809562C +_080954F0: + cmp r0, #2 + beq _080955B8 + cmp r0, #3 + bne _080954FA + b _08095620 +_080954FA: + b _0809562C +_080954FC: + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _0809550A + subs r0, #1 + strb r0, [r4, #0xe] + b _0809562C +_0809550A: + movs r0, #1 + movs r2, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + strh r5, [r4, #0x36] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x6c + strh r5, [r0] + ldr r1, _08095590 @ =gUnk_08122AE0 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + adds r5, r4, #0 + adds r5, #0x6e + strb r0, [r5] + ldr r1, _08095594 @ =gUnk_08122AE8 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + bl sub_0807DD64 + ldrb r1, [r4, #0xb] + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08095754 + bl sub_08000E50 + movs r1, #6 + bl __modsi3 + movs r1, #0xde + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_080A3268 + adds r1, r5, #0 + b _08095630 + .align 2, 0 +_08095590: .4byte gUnk_08122AE0 +_08095594: .4byte gUnk_08122AE8 +_08095598: + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x10 + rsbs r2, r2, #0 + adds r1, r4, #0 + adds r1, #0x6e + cmp r0, r2 + bgt _08095630 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strh r2, [r4, #0x36] + b _08095630 +_080955B8: + adds r5, r4, #0 + adds r5, #0x6c + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x40 + bls _080955CE + movs r0, #0x40 + strh r0, [r5] +_080955CE: + ldr r3, _0809561C @ =gUnk_080C9160 + movs r2, #0x6e + adds r2, r2, r4 + mov ip, r2 + ldrb r0, [r2] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + ldrh r0, [r5] + lsls r0, r0, #8 + adds r2, r1, #0 + muls r2, r0, r2 + asrs r2, r2, #0x10 + strh r2, [r4, #0x2e] + mov r1, ip + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r1, [r0, r3] + ldrh r0, [r5] + lsls r0, r0, #7 + muls r1, r0, r1 + asrs r1, r1, #0x10 + strh r1, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r2, r2, r0 + strh r2, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + adds r1, r1, r0 + strh r1, [r4, #0x32] + mov r1, ip + b _08095630 + .align 2, 0 +_0809561C: .4byte gUnk_080C9160 +_08095620: + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C +_0809562C: + adds r1, r4, #0 + adds r1, #0x6e +_08095630: + ldrb r0, [r1] + adds r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809564A + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809564A + bl sub_0805E780 +_0809564A: + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809565E + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _08095664 +_0809565E: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_08095664: + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_0809567C +sub_0809567C: @ 0x0809567C + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x68 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r1, r1, #0x10 + ldr r0, [r4, #0x2c] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x6a + movs r3, #0 + ldrsh r2, [r1, r3] + lsls r2, r2, #0x10 + ldr r1, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080956B4 +sub_080956B4: @ 0x080956B4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080956E2 + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + adds r4, r5, #0 + adds r4, #0x68 + ldrh r2, [r5, #0x2e] + ldrh r1, [r5, #0x32] + movs r0, #7 +_080956D4: + strh r2, [r4] + adds r4, #2 + strh r1, [r4] + adds r4, #2 + subs r0, #1 + cmp r0, #0 + bge _080956D4 +_080956E2: + adds r0, r5, #0 + bl sub_08004274 + ldrb r0, [r5, #0xb] + ldr r1, _08095724 @ =gUnk_030010A0 + ldr r1, [r1] + adds r0, r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _080956FE + adds r0, r5, #0 + bl sub_080957B4 +_080956FE: + ldr r6, [r5, #0x50] + cmp r6, #0 + beq _08095728 + ldrb r1, [r6, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r0, [r6, #4] + cmp r0, #0 + bne _0809572C + bl sub_0805E780 + b _0809572C + .align 2, 0 +_08095724: .4byte gUnk_030010A0 +_08095728: + bl sub_0805E780 +_0809572C: + adds r4, r5, #0 + adds r4, #0x68 + adds r0, r5, #0 + adds r0, #0x6c + adds r1, r4, #0 + movs r2, #0x1c + bl sub_0801D66C + ldrh r0, [r4, #0x14] + strh r0, [r5, #0x2e] + ldrh r0, [r4, #0x16] + strh r0, [r5, #0x32] + ldrh r0, [r6, #0x36] + strh r0, [r5, #0x36] + ldrh r0, [r6, #0x2e] + strh r0, [r4, #0x1c] + ldrh r0, [r6, #0x32] + strh r0, [r4, #0x1e] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08095754 +sub_08095754: @ 0x08095754 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r2, [r5, #0xb] + movs r0, #0x6a + movs r1, #0xf + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809577A + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0809577A: + pop {r4, r5, pc} + + thumb_func_start sub_0809577C +sub_0809577C: @ 0x0809577C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095796 + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080957B0 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08095796: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080957AE + bl sub_0805E780 +_080957AE: + pop {r4, pc} + .align 2, 0 +_080957B0: .4byte 0x0000FFF0 + + thumb_func_start sub_080957B4 +sub_080957B4: @ 0x080957B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x10 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080957DA + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_080957DA: + pop {r4, r5, pc} + + thumb_func_start sub_080957DC +sub_080957DC: @ 0x080957DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080957F8 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080957F8: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095810 +sub_08095810: @ 0x08095810 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x11 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095844 + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + ldr r1, _08095848 @ =gUnk_08011940 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095844: + pop {r4, r5, pc} + .align 2, 0 +_08095848: .4byte gUnk_08011940 + + thumb_func_start sub_0809584C +sub_0809584C: @ 0x0809584C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0809586C + ldr r0, _080958D0 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _0809586C + bl sub_0805E780 +_0809586C: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08095880 + ldrb r0, [r5, #0xb] + bl sub_0801E7F4 + cmp r0, #0 + beq _08095880 + bl sub_0805E780 +_08095880: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080958B2 + adds r0, #1 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + bl sub_08016A04 + ldr r1, _080958D4 @ =gUnk_08114F30 + ldrb r2, [r5, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r0, r5, #0 + bl sub_0807DD64 +_080958B2: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + ldrb r4, [r5, #0xa] + movs r0, #0x5c + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_080958D0: .4byte gUnk_020342F8 +_080958D4: .4byte gUnk_08114F30 + + thumb_func_start sub_080958D8 +sub_080958D8: @ 0x080958D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080958EC + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 +_080958EC: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08095914 + adds r0, r4, #0 + bl sub_08095954 +_08095914: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095918 +sub_08095918: @ 0x08095918 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809593C + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0809593C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095954 +sub_08095954: @ 0x08095954 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x14 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080959B8 + str r5, [r4, #0x50] + ldrb r0, [r5, #0x14] + ldr r1, _080959AC @ =gUnk_08122AF8 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + ldr r0, _080959B0 @ =0x0000FFFD + strh r0, [r4, #0x36] + ldr r1, _080959B4 @ =gUnk_08012C48 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + b _080959C4 + .align 2, 0 +_080959AC: .4byte gUnk_08122AF8 +_080959B0: .4byte 0x0000FFFD +_080959B4: .4byte gUnk_08012C48 +_080959B8: + ldr r0, _080959C8 @ =gUnk_02033280 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + orrs r1, r2 + str r1, [r0] +_080959C4: + pop {r4, r5, pc} + .align 2, 0 +_080959C8: .4byte gUnk_02033280 + + thumb_func_start sub_080959CC +sub_080959CC: @ 0x080959CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080959F2 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_080959F2: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r1, r0 + adds r0, r4, #0 + bl sub_08095D30 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095A1C +sub_08095A1C: @ 0x08095A1C + push {r4, r5, lr} + adds r5, r1, #0 + movs r0, #0x6a + movs r1, #0x16 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095A5E + ldr r1, _08095A60 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0xe8 + strh r0, [r4, #0x2e] + movs r2, #0x9c + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r0, _08095A64 @ =0x0000FFFC + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, [r5, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095A5E: + pop {r4, r5, pc} + .align 2, 0 +_08095A60: .4byte gRoomControls +_08095A64: .4byte 0x0000FFFC + + thumb_func_start sub_08095A68 +sub_08095A68: @ 0x08095A68 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #0x16 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08095A86 + movs r0, #0xff + strb r0, [r1, #0xc] +_08095A86: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08095A8C +sub_08095A8C: @ 0x08095A8C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #5 + bhi _08095B44 + lsls r0, r0, #2 + ldr r1, _08095AA0 @ =_08095AA4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08095AA0: .4byte _08095AA4 +_08095AA4: @ jump table + .4byte _08095ABC @ case 0 + .4byte _08095ACC @ case 1 + .4byte _08095ADC @ case 2 + .4byte _08095AE6 @ case 3 + .4byte _08095B12 @ case 4 + .4byte _08095B1C @ case 5 +_08095ABC: + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + bl sub_0807DD64 +_08095ACC: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + b _08095B44 +_08095ADC: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] +_08095AE6: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r5, #1 + eors r0, r5 + movs r3, #4 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095B44 + movs r0, #1 + strb r5, [r4, #0xc] + ands r2, r3 + orrs r2, r0 + b _08095B42 +_08095B12: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] +_08095B1C: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r5, #1 + eors r0, r5 + movs r3, #4 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095B44 + strb r5, [r4, #0xc] + ands r2, r3 +_08095B42: + strb r2, [r4, #0x18] +_08095B44: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08095B48 +sub_08095B48: @ 0x08095B48 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08095B78 + adds r0, #1 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + bl sub_08016A04 + ldr r1, _08095BA8 @ =gUnk_08114F30 + ldrb r2, [r5, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x19] +_08095B78: + ldrb r0, [r5, #0x18] + movs r4, #4 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r1, r0 + strb r1, [r5, #0x18] + ldr r2, [r5, #0x50] + cmp r2, #0 + beq _08095BCE + adds r0, r2, #0 + adds r0, #0x5a + ldrb r3, [r0] + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + bne _08095BAC + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08095BCE + bl sub_0805E780 + b _08095BDC + .align 2, 0 +_08095BA8: .4byte gUnk_08114F30 +_08095BAC: + adds r0, r1, #0 + ands r0, r4 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrh r0, [r2, #0x12] + ldrb r1, [r2, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r0, [r0, #1] + adds r1, r5, #0 + adds r1, #0x63 + strb r0, [r1] +_08095BCE: + ldrb r4, [r5, #0xa] + ldrb r0, [r5, #0xb] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] +_08095BDC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08095BE0 +sub_08095BE0: @ 0x08095BE0 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + movs r0, #0x6a + movs r1, #0x18 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08095BFC + str r4, [r1, #0x50] + adds r0, r4, #0 + bl sub_0806FA24 +_08095BFC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095C00 +sub_08095C00: @ 0x08095C00 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xc] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08095C14 + bl sub_0805E780 + b _08095C46 +_08095C14: + ldr r3, [r2, #0x50] + cmp r3, #0 + beq _08095C46 + adds r1, r2, #0 + adds r1, #0x60 + movs r0, #0xe8 + strh r0, [r1] + ldrb r0, [r3, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08095C38 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _08095C46 +_08095C38: + ldrb r0, [r2, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2, #0x18] +_08095C46: + pop {pc} + + thumb_func_start sub_08095C48 +sub_08095C48: @ 0x08095C48 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x6a + movs r1, #0x19 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08095C66 + str r1, [r4, #0x54] + str r4, [r1, #0x50] + adds r0, r4, #0 + bl sub_0806FA24 +_08095C66: + pop {r4, pc} + + thumb_func_start sub_08095C68 +sub_08095C68: @ 0x08095C68 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095C80 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08095C80: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08095CAA + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bhi _08095CA4 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_08095CA4: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08095CAE +_08095CAA: + bl sub_0805E780 +_08095CAE: + pop {r4, pc} + + thumb_func_start sub_08095CB0 +sub_08095CB0: @ 0x08095CB0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x1b + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095CDC + str r4, [r5, #0x54] + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r5, #0x1e] + strb r0, [r4, #0x1e] + ldrb r0, [r5, #0x1e] + strb r0, [r4, #0x1f] +_08095CDC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08095CE0 +sub_08095CE0: @ 0x08095CE0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095D06 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_08095D06: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r1, r0 + adds r0, r4, #0 + bl sub_08095D30 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095D30 +sub_08095D30: @ 0x08095D30 + push {lr} + adds r2, r0, #0 + adds r0, r1, #0 + cmp r0, #0 + beq _08095D4E + ldr r1, _08095D50 @ =gUnk_08122B00 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r1, r0 + adds r0, r2, #0 + bl sub_0801D2B4 +_08095D4E: + pop {pc} + .align 2, 0 +_08095D50: .4byte gUnk_08122B00 + + thumb_func_start sub_08095D54 +sub_08095D54: @ 0x08095D54 + push {r4, r5, lr} + adds r5, r1, #0 + movs r0, #0x6a + movs r1, #0x1c + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095D86 + ldr r0, _08095D88 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, [r5, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095D86: + pop {r4, r5, pc} + .align 2, 0 +_08095D88: .4byte gLinkEntity + + thumb_func_start sub_08095D8C +sub_08095D8C: @ 0x08095D8C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0x1d + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095DB8 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095DB8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08095DBC +sub_08095DBC: @ 0x08095DBC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08095DF0 @ =gUnk_02033280 + ldr r0, [r5] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08095DD0 + bl sub_0805E780 +_08095DD0: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08095DF4 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095DE6 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 +_08095DE6: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + b _08095E74 + .align 2, 0 +_08095DF0: .4byte gUnk_02033280 +_08095DF4: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095E30 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x4b + bl sub_08004260 + ldr r1, _08095E78 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_08095E30: + ldrb r2, [r4, #0xb] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08095E56 + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _08095E56 + movs r0, #0xff + strb r0, [r4, #0xb] + movs r0, #0x80 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + movs r0, #0xc0 + lsls r0, r0, #8 + strh r0, [r4, #0x24] +_08095E56: + movs r0, #0x24 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08095E74 + bl sub_0805E780 +_08095E74: + pop {r4, r5, pc} + .align 2, 0 +_08095E78: .4byte gUnk_08114F30 + + thumb_func_start sub_08095E7C +sub_08095E7C: @ 0x08095E7C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0x1e + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08095EA8 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095EA8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08095EAC +sub_08095EAC: @ 0x08095EAC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + adds r4, r1, #0 + movs r0, #0x6a + movs r1, #0x1e + movs r2, #1 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _08095F2A + ldr r0, [r4, #4] + cmp r0, #0 + bne _08095EE0 + movs r7, #0x10 + movs r6, #0x1f + movs r0, #0x80 + lsls r0, r0, #7 + mov sl, r0 + movs r2, #0 + mov r8, r2 + b _08095F02 +_08095EE0: + movs r7, #8 + movs r6, #0xf + movs r0, #0x80 + lsls r0, r0, #0xb + mov sl, r0 + ldr r4, _08095F34 @ =gUnk_08122B0E + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r2, [r1, r0] + mov r8, r2 + movs r0, #0xff + strb r0, [r5, #0xb] +_08095F02: + bl sub_08000E50 + adds r4, r0, #0 + ands r4, r6 + subs r4, r7, r4 + bl sub_08000E50 + ands r6, r0 + subs r3, r7, r6 + lsls r4, r4, #0x10 + lsls r3, r3, #0x10 + mov r0, sb + adds r1, r5, #0 + adds r2, r4, #0 + bl PositionRelative + mov r2, sl + str r2, [r5, #0x20] + mov r0, r8 + strh r0, [r5, #0x24] +_08095F2A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08095F34: .4byte gUnk_08122B0E + + thumb_func_start sub_08095F38 +sub_08095F38: @ 0x08095F38 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095FC2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0xb] + cmp r0, #4 + beq _08095F64 + cmp r0, #4 + bgt _08095F5A + cmp r0, #3 + beq _08095F60 + b _08095F6A +_08095F5A: + cmp r0, #6 + beq _08095F68 + b _08095F6A +_08095F60: + movs r1, #0 + b _08095F6A +_08095F64: + movs r1, #1 + b _08095F6A +_08095F68: + movs r1, #4 +_08095F6A: + adds r0, r4, #0 + bl sub_0801D2B4 + ldr r0, _08095F90 @ =gLinkEntity + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08095F98 + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, _08095F94 @ =0x000008BF + str r0, [r1] + movs r0, #0x34 + strb r0, [r4, #0xe] + movs r0, #0xb5 + b _08095FA6 + .align 2, 0 +_08095F90: .4byte gLinkEntity +_08095F94: .4byte 0x000008BF +_08095F98: + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, _08096020 @ =0x000008E3 + str r0, [r1] + movs r0, #0x55 + strb r0, [r4, #0xe] + movs r0, #0xd6 +_08095FA6: + strb r0, [r4, #0xf] + ldr r0, _08096024 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_08095FC2: + ldr r5, _08096024 @ =gLinkEntity + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08095FE0 + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + movs r0, #0xea + lsls r0, r0, #1 + bl sub_080A3268 +_08095FE0: + ldrh r0, [r5, #0x12] + adds r1, r4, #0 + adds r1, #0x84 + ldr r2, [r1] + lsrs r1, r2, #8 + cmp r0, r1 + bne _08095FFC + adds r0, r5, #0 + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + beq _08096000 +_08095FFC: + bl sub_0805E780 +_08096000: + ldr r0, _08096024 @ =gLinkEntity + ldrb r0, [r0, #0x1e] + ldrb r1, [r4, #0xe] + subs r0, r0, r1 + ldrb r1, [r4, #0xf] + adds r0, r0, r1 + ldrb r1, [r4, #0x1e] + cmp r0, r1 + beq _0809601E + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_0809601E: + pop {r4, r5, pc} + .align 2, 0 +_08096020: .4byte 0x000008E3 +_08096024: .4byte gLinkEntity + + thumb_func_start sub_08096028 +sub_08096028: @ 0x08096028 + push {r4, r5, lr} + movs r4, #6 + movs r5, #0xc0 + lsls r5, r5, #2 + adds r0, r5, #0 + movs r1, #0x7b + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0809603E + movs r4, #4 +_0809603E: + adds r0, r5, #0 + movs r1, #0x7a + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0809604C + movs r4, #3 +_0809604C: + movs r0, #0x6a + movs r1, #0x1f + adds r2, r4, #0 + bl CreateObject + pop {r4, r5, pc} + + thumb_func_start sub_08096058 +sub_08096058: @ 0x08096058 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809606C + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 +_0809606C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08096084 +sub_08096084: @ 0x08096084 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080960A0 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 +_080960A0: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080960C0 + adds r1, r4, #0 + bl sub_0806FA24 +_080960C0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080960C4 +sub_080960C4: @ 0x080960C4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0x23 + movs r2, #0x49 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08096110 + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _08096160 @ =gUnk_08114F34 + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08096110: + movs r0, #0x6a + movs r1, #0x24 + movs r2, #0x4a + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809615E + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _08096164 @ =gUnk_08114F30 + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0809615E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08096160: .4byte gUnk_08114F34 +_08096164: .4byte gUnk_08114F30 + + thumb_func_start sub_08096168 +sub_08096168: @ 0x08096168 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809618C + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x4b + bl sub_08004260 +_0809618C: + adds r0, r4, #0 + bl sub_08004274 + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _080961AC + bl sub_0805E780 +_080961AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080961B0 +sub_080961B0: @ 0x080961B0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r5, #0 + ldr r6, _080961F0 @ =gUnk_08122B1E +_080961B8: + movs r0, #0x6a + movs r1, #0x25 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080961E6 + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_0806FA24 + lsls r0, r5, #5 + strb r0, [r4, #0x15] + bl sub_08000E50 + movs r2, #0xf8 + lsls r2, r2, #1 + adds r1, r2, #0 + ands r0, r1 + ldrh r1, [r6] + adds r0, r0, r1 + strh r0, [r4, #0x24] +_080961E6: + adds r6, #2 + adds r5, #1 + cmp r5, #7 + ble _080961B8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080961F0: .4byte gUnk_08122B1E + + thumb_func_start sub_080961F4 +sub_080961F4: @ 0x080961F4 + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r1, #0 + strb r1, [r0, #0x1e] + bx lr + + thumb_func_start sub_08096208 +sub_08096208: @ 0x08096208 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #1 + ldr r0, _08096238 @ =gUnk_08122B2E + adds r4, r1, r0 + movs r0, #0x6a + movs r1, #0x26 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08096234 + movs r2, #0 + ldrsb r2, [r4, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r4, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + bl PositionRelative +_08096234: + pop {r4, r5, pc} + .align 2, 0 +_08096238: .4byte gUnk_08122B2E + + thumb_func_start sub_0809623C +sub_0809623C: @ 0x0809623C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x6a + movs r1, #0x27 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809625A + ldr r3, _0809625C @ =0xFFF00000 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative +_0809625A: + pop {r4, pc} + .align 2, 0 +_0809625C: .4byte 0xFFF00000 + + thumb_func_start sub_08096260 +sub_08096260: @ 0x08096260 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x6a + movs r1, #0x28 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809627E + ldr r3, _08096280 @ =0xFFF00000 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative +_0809627E: + pop {r4, pc} + .align 2, 0 +_08096280: .4byte 0xFFF00000 + + thumb_func_start sub_08096284 +sub_08096284: @ 0x08096284 + push {lr} + movs r1, #0xd + bl sub_0809629C + pop {pc} + .align 2, 0 + + thumb_func_start sub_08096290 +sub_08096290: @ 0x08096290 + push {lr} + movs r1, #0xe + bl sub_0809629C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809629C +sub_0809629C: @ 0x0809629C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080962B2 + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_0807DD64 +_080962B2: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r5, #0 + bl sub_08003FC4 + ldrb r4, [r5, #0xa] + strb r6, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + + thumb_func_start sub_080962D8 +sub_080962D8: @ 0x080962D8 + push {lr} + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #6 + bl sub_08050054 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080962E8 +sub_080962E8: @ 0x080962E8 + push {lr} + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl sub_08050054 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080962F8 +sub_080962F8: @ 0x080962F8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r1, #4] + lsls r4, r4, #4 + ldr r0, _08096318 @ =gUnk_08122B3C + adds r4, r4, r0 + ldrb r2, [r4, #0xc] + adds r3, r4, #0 + adds r3, #8 + adds r0, r5, #0 + movs r1, #1 + bl sub_08078850 + str r4, [r5, #0x48] + pop {r4, r5, pc} + .align 2, 0 +_08096318: .4byte gUnk_08122B3C + + thumb_func_start sub_0809631C +sub_0809631C: @ 0x0809631C + push {lr} + ldr r2, _08096330 @ =gUnk_08123168 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096330: .4byte gUnk_08123168 + + thumb_func_start sub_08096334 +sub_08096334: @ 0x08096334 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r4, #0 + movs r6, #0x80 + strh r6, [r5, #0x24] + ldr r0, _08096358 @ =gUnk_080FD2A8 + str r0, [r5, #0x48] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0809634E + b _08096494 +_0809634E: + cmp r0, #1 + bgt _0809635C + cmp r0, #0 + beq _08096368 + b _0809650A + .align 2, 0 +_08096358: .4byte gUnk_080FD2A8 +_0809635C: + cmp r0, #2 + bne _08096362 + b _080964A6 +_08096362: + cmp r0, #3 + beq _080963FC + b _0809650A +_08096368: + movs r0, #0x1a + bl GetProgressFlag + cmp r0, #0 + beq _080963DA + movs r0, #0x1b + bl GetProgressFlag + cmp r0, #0 + bne _080963A4 + ldr r0, _0809639C @ =gLinkEntity + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + ldr r0, _080963A0 @ =0x00004022 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r2, [r1] + movs r1, #0xdc + bl sub_0800015E + b _0809650A + .align 2, 0 +_0809639C: .4byte gLinkEntity +_080963A0: .4byte 0x00004022 +_080963A4: + ldrb r0, [r5, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _080963C8 + adds r0, r5, #0 + movs r1, #0xa + bl sub_08004260 + ldrh r0, [r5, #0x32] + adds r0, #4 + strh r0, [r5, #0x32] + movs r0, #4 + strb r0, [r5, #0xc] + ldr r0, _080963C4 @ =0x0000403B + b _080964C4 + .align 2, 0 +_080963C4: .4byte 0x0000403B +_080963C8: + strb r4, [r5, #0xb] + movs r0, #2 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_080969A4 + bl sub_0805E780 + b _0809650A +_080963DA: + ldr r1, _080963F8 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0xd0 + strh r0, [r5, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x44 + strh r0, [r5, #0x32] + movs r0, #4 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0xa] + adds r1, #3 + adds r0, r5, #0 + bl sub_08004260 + b _0809651A + .align 2, 0 +_080963F8: .4byte gRoomControls +_080963FC: + movs r0, #0x1a + bl GetProgressFlag + cmp r0, #0 + beq _08096450 + movs r0, #0x1b + bl GetProgressFlag + cmp r0, #0 + bne _0809644C + ldr r0, _08096444 @ =gLinkEntity + adds r1, r0, #0 + adds r1, #0x29 + ldrb r2, [r1] + lsls r2, r2, #0x1d + lsrs r2, r2, #0x1d + subs r2, #1 + adds r4, r5, #0 + adds r4, #0x29 + movs r1, #7 + ands r2, r1 + ldrb r3, [r4] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r4] + adds r1, r0, #0 + adds r1, #0x79 + strb r6, [r1] + ldr r3, _08096448 @ =0xFFE80000 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + b _08096450 + .align 2, 0 +_08096444: .4byte gLinkEntity +_08096448: .4byte 0xFFE80000 +_0809644C: + bl sub_0805E780 +_08096450: + adds r0, r5, #0 + movs r1, #0x6b + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _0809646E + ldr r2, _0809648C @ =0xFFE40000 + ldr r3, _08096490 @ =0xFFD80000 + adds r0, r5, #0 + bl PositionRelative +_0809646E: + movs r0, #0x10 + strb r0, [r5, #0x16] + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r0, r5, #0 + movs r1, #0xc + bl sub_08004260 + adds r0, r5, #0 + bl sub_0809651C + b _0809651A + .align 2, 0 +_0809648C: .4byte 0xFFE40000 +_08096490: .4byte 0xFFD80000 +_08096494: + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + b _0809650A +_080964A6: + ldrb r0, [r5, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _080964F8 + adds r0, r5, #0 + movs r1, #0xb + bl sub_08004260 + ldrh r0, [r5, #0x32] + adds r0, #4 + strh r0, [r5, #0x32] + movs r0, #4 + strb r0, [r5, #0xc] + ldr r0, _080964F0 @ =0x00004032 +_080964C4: + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080964F4 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _0809651A + .align 2, 0 +_080964F0: .4byte 0x00004032 +_080964F4: .4byte gRoomControls +_080964F8: + strb r4, [r5, #0xb] + movs r0, #3 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_080969A4 + bl sub_0805E780 + b _0809651A +_0809650A: + ldrb r1, [r5, #0xa] + adds r1, #3 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0809651C +_0809651A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809651C +sub_0809651C: @ 0x0809651C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r3, [r6, #0xa] + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _080965D6 + cmp r3, #3 + bne _0809653C + adds r0, r6, #0 + bl sub_08078930 + adds r0, r6, #0 + bl sub_0800445C + b _080965C8 +_0809653C: + ldr r0, [r6, #0x50] + ldr r2, _0809655C @ =0xFFE40000 + ldr r3, _08096560 @ =0xFFD80000 + adds r1, r6, #0 + bl PositionRelative + ldr r1, [r6, #0x50] + ldrb r0, [r1, #0xc] + cmp r0, #2 + bne _08096586 + ldrb r0, [r1, #0xd] + cmp r0, #1 + beq _08096564 + cmp r0, #2 + beq _08096580 + b _08096570 + .align 2, 0 +_0809655C: .4byte 0xFFE40000 +_08096560: .4byte 0xFFD80000 +_08096564: + ldr r0, _0809657C @ =gUnk_03003F80 + ldrb r1, [r0, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08096580 +_08096570: + adds r0, r6, #0 + movs r1, #4 + bl sub_08004260 + b _08096586 + .align 2, 0 +_0809657C: .4byte gUnk_03003F80 +_08096580: + adds r0, r6, #0 + bl sub_08004274 +_08096586: + ldr r0, [r6, #0x50] + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r6, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r4, [r6, #0x50] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r6, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r6, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r6, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r6, #0x1b] +_080965C8: + adds r0, r6, #0 + movs r1, #0xcc + movs r2, #0xcc + movs r3, #0 + bl sub_0805EC9C + b _080966F6 +_080965D6: + ldr r1, _080965FC @ =gUnk_03003F80 + ldrb r2, [r1, #0x1a] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1, #0x1a] + movs r0, #5 + strb r0, [r1, #5] + ldrb r1, [r1, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08096600 + lsls r1, r3, #0x18 + lsrs r1, r1, #0x19 + adds r1, #3 + adds r0, r6, #0 + bl sub_08004260 + b _08096606 + .align 2, 0 +_080965FC: .4byte gUnk_03003F80 +_08096600: + adds r0, r6, #0 + bl sub_08004274 +_08096606: + ldr r0, _08096664 @ =gLinkEntity + ldrb r0, [r0, #0x14] + movs r1, #6 + ands r1, r0 + ldr r4, _08096668 @ =gUnk_08123184 + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r6, #0x2e] + adds r0, r0, r2 + movs r2, #0x10 + rsbs r2, r2, #0 + adds r3, r2, #0 + ands r0, r3 + movs r2, #8 + adds r5, r6, #0 + adds r5, #0x70 + movs r7, #0 + orrs r0, r2 + strh r0, [r5] + adds r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + ands r0, r3 + orrs r0, r2 + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldrh r0, [r5] + ldrh r1, [r1] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_080002BC + cmp r0, #0x19 + bne _08096670 + ldr r0, _0809666C @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #3 + strb r1, [r0] + b _08096676 + .align 2, 0 +_08096664: .4byte gLinkEntity +_08096668: .4byte gUnk_08123184 +_0809666C: .4byte gUnk_0200AF00 +_08096670: + ldr r0, _080966F8 @ =gUnk_0200AF00 + adds r0, #0x2f + strb r7, [r0] +_08096676: + ldr r0, _080966FC @ =gLinkEntity + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r6, #0 + movs r2, #0 + bl PositionRelative + adds r0, r6, #0 + bl sub_080002B8 + cmp r0, #0x19 + bne _0809669C + ldrb r1, [r4] + movs r0, #0xdc + bl sub_0807BA8C + adds r0, r6, #0 + bl sub_08096A78 +_0809669C: + ldr r2, _08096700 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _080966F6 + ldr r0, _080966F8 @ =gUnk_0200AF00 + adds r0, #0x2f + ldrb r0, [r0] + cmp r0, #3 + bne _080966F6 + movs r0, #0 + strb r0, [r2, #5] + movs r0, #5 + strb r0, [r6, #0xc] + adds r0, #0xfb + strh r0, [r6, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r6, #0x20] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r6, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r6, #0x18] + ldrb r1, [r4] + movs r0, #0xdc + bl sub_0807BA8C + movs r0, #0x79 + bl sub_080A3268 +_080966F6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080966F8: .4byte gUnk_0200AF00 +_080966FC: .4byte gLinkEntity +_08096700: .4byte gUnk_03003F80 + + thumb_func_start sub_08096704 +sub_08096704: @ 0x08096704 + push {lr} + ldr r2, _08096718 @ =gUnk_0812318C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096718: .4byte gUnk_0812318C + + thumb_func_start sub_0809671C +sub_0809671C: @ 0x0809671C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1a + bl sub_0807CD04 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_121 +nullsub_121: @ 0x08096730 + bx lr + .align 2, 0 + + thumb_func_start sub_08096734 +sub_08096734: @ 0x08096734 + push {lr} + movs r0, #0x1a + bl sub_0807CD80 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08096740 +sub_08096740: @ 0x08096740 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08096758 +sub_08096758: @ 0x08096758 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809677C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 +_0809677C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08096780 +sub_08096780: @ 0x08096780 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _080967D4 @ =gUnk_0812319C + ldrb r0, [r5, #0xa] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + adds r0, r5, #0 + bl sub_080002A0 + cmp r4, r0 + bne _080967DC + adds r0, r5, #0 + bl sub_08004274 + ldr r2, _080967D8 @ =gUnk_03003F80 + ldrb r0, [r2, #0xb] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0xb] + ldrb r0, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldrb r0, [r2, #7] + orrs r1, r0 + strb r1, [r2, #7] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080967E0 + movs r0, #6 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r0, r5, #0 + bl sub_080A29BC + b _080967E0 + .align 2, 0 +_080967D4: .4byte gUnk_0812319C +_080967D8: .4byte gUnk_03003F80 +_080967DC: + movs r0, #0xc0 + strb r0, [r5, #0xe] +_080967E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080967E4 +sub_080967E4: @ 0x080967E4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r5, [r0] + movs r0, #0x2e + ldrsh r2, [r4, r0] + cmp r5, r2 + bne _08096802 + adds r0, r4, #0 + adds r0, #0x72 + ldrh r1, [r0] + movs r3, #0x32 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _0809681C +_08096802: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r3, [r0] + adds r0, r2, #0 + adds r2, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_0809681C: + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08096830 + adds r0, r4, #0 + bl sub_08096A78 +_08096830: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08096834 +sub_08096834: @ 0x08096834 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + beq _08096842 + bl sub_08078B48 +_08096842: + ldr r0, _08096854 @ =gUnk_081231A0 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08096854: .4byte gUnk_081231A0 + + thumb_func_start sub_08096858 +sub_08096858: @ 0x08096858 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + bl sub_0807CCB4 + movs r3, #0 + movs r0, #0xf + strb r0, [r5, #0xe] + ldr r1, _080968BC @ =gUnk_081231AC + ldrb r2, [r5, #0xa] + lsls r2, r2, #0x18 + lsrs r0, r2, #0x19 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xf] + strb r3, [r5, #0xb] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + cmp r2, #0 + bne _080968C4 + movs r0, #0xe7 + lsls r0, r0, #1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080968C0 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + b _080968F0 + .align 2, 0 +_080968BC: .4byte gUnk_081231AC +_080968C0: .4byte gRoomControls +_080968C4: + ldr r0, _080968F8 @ =0x000001CD + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080968FC @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_080968F0: + ldr r0, _08096900 @ =0x000001DB + bl sub_080A3268 + pop {r4, r5, r6, pc} + .align 2, 0 +_080968F8: .4byte 0x000001CD +_080968FC: .4byte gRoomControls +_08096900: .4byte 0x000001DB + + thumb_func_start sub_08096904 +sub_08096904: @ 0x08096904 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096984 + ldrh r0, [r5, #0x32] + subs r0, #0x10 + strh r0, [r5, #0x32] + ldr r1, _08096974 @ =gUnk_081231AE + ldrb r0, [r5, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08096978 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + ldrb r0, [r5, #0xb] + adds r0, #1 + strb r0, [r5, #0xb] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5, #0xf] + cmp r0, r1 + bne _08096980 + ldr r2, _0809697C @ =gUnk_03003F80 + ldrb r1, [r2, #0xb] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0xb] + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + movs r0, #0x3c + b _08096982 + .align 2, 0 +_08096974: .4byte gUnk_081231AE +_08096978: .4byte gRoomControls +_0809697C: .4byte gUnk_03003F80 +_08096980: + movs r0, #0xf +_08096982: + strb r0, [r5, #0xe] +_08096984: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08096988 +sub_08096988: @ 0x08096988 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _080969A2 + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080969A2 + movs r0, #0x72 + bl sub_080A3268 +_080969A2: + pop {pc} + + thumb_func_start sub_080969A4 +sub_080969A4: @ 0x080969A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _080969E8 + movs r0, #0xe7 + lsls r0, r0, #1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080969E4 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0807B7D8 + b _08096A14 + .align 2, 0 +_080969E4: .4byte gRoomControls +_080969E8: + ldr r0, _08096A6C @ =0x000001CD + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08096A70 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0807B7D8 +_08096A14: + ldrb r0, [r5, #0xb] + ldrb r1, [r5, #0xf] + cmp r0, r1 + beq _08096A64 + ldr r2, _08096A74 @ =gUnk_081231B4 + mov r8, r2 + ldr r7, _08096A70 @ =gRoomControls + movs r6, #0x3f +_08096A24: + ldrh r0, [r5, #0x32] + subs r0, #0x10 + strh r0, [r5, #0x32] + ldrb r0, [r5, #0xb] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + movs r3, #0x2e + ldrsh r1, [r5, r3] + ldrh r2, [r7, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r5, r3] + ldrh r3, [r7, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4] + bl sub_0807B7D8 + ldrb r0, [r5, #0xb] + adds r0, #1 + strb r0, [r5, #0xb] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5, #0xf] + cmp r0, r1 + bne _08096A24 +_08096A64: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08096A6C: .4byte 0x000001CD +_08096A70: .4byte gRoomControls +_08096A74: .4byte gUnk_081231B4 + + thumb_func_start sub_08096A78 +sub_08096A78: @ 0x08096A78 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x1b + bl sub_0807CD04 + ldrb r1, [r4, #0xa] + lsrs r1, r1, #1 + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08004168 + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _08096ACC @ =0x0000403B + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _08096AD0 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r6, #0x32 + ldrsh r2, [r4, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08096ACC: .4byte 0x0000403B +_08096AD0: .4byte gRoomControls + + thumb_func_start sub_08096AD4 +sub_08096AD4: @ 0x08096AD4 + push {lr} + ldr r2, _08096AE8 @ =gUnk_0812323C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096AE8: .4byte gUnk_0812323C + + thumb_func_start sub_08096AEC +sub_08096AEC: @ 0x08096AEC + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080837B0 + cmp r0, #0 + beq _08096BB6 + ldrb r1, [r4, #0xa] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08096B12 + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0xa] + movs r0, #3 + ands r0, r1 + strb r0, [r4, #0xa] +_08096B12: + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08096B90 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_08096CEC + cmp r0, #0 + beq _08096B9C + adds r0, r4, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096B94 + bl sub_0805E780 + b _08096BB6 + .align 2, 0 +_08096B90: .4byte gRoomControls +_08096B94: + adds r0, r4, #0 + bl sub_08096E04 + b _08096BB6 +_08096B9C: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldr r0, _08096BB8 @ =0x00004022 + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E +_08096BB6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08096BB8: .4byte 0x00004022 + + thumb_func_start sub_08096BBC +sub_08096BBC: @ 0x08096BBC + push {r4, lr} + adds r4, r0, #0 + bl sub_08096CEC + cmp r0, #0 + beq _08096BF2 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #7 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldr r0, _08096BF4 @ =0x0000010B + bl sub_08004488 +_08096BF2: + pop {r4, pc} + .align 2, 0 +_08096BF4: .4byte 0x0000010B + + thumb_func_start sub_08096BF8 +sub_08096BF8: @ 0x08096BF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096C3A + adds r0, r4, #0 + bl sub_08096E04 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096C3A + bl sub_0805E780 +_08096C3A: + pop {r4, pc} + + thumb_func_start sub_08096C3C +sub_08096C3C: @ 0x08096C3C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096C56 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08096CAE +_08096C56: + ldr r0, _08096C80 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _08096C92 + ldrb r2, [r4, #0xa] + lsls r1, r2, #1 + ldr r0, _08096C84 @ =gLinkEntity + ldrb r0, [r0, #0x14] + cmp r1, r0 + bne _08096C88 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08083734 + cmp r0, #0 + beq _08096CAE + b _08096C9C + .align 2, 0 +_08096C80: .4byte gUnk_03003F80 +_08096C84: .4byte gLinkEntity +_08096C88: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + b _08096C98 +_08096C92: + adds r0, r4, #0 + bl sub_08096D84 +_08096C98: + cmp r0, #0 + bne _08096CAE +_08096C9C: + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r2, [r0] + adds r0, r4, #0 + bl sub_080836DC +_08096CAE: + pop {r4, pc} + + thumb_func_start sub_08096CB0 +sub_08096CB0: @ 0x08096CB0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096CE6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08083814 + ldr r0, _08096CE8 @ =0x0000010B + bl sub_08004488 +_08096CE6: + pop {r4, pc} + .align 2, 0 +_08096CE8: .4byte 0x0000010B + + thumb_func_start sub_08096CEC +sub_08096CEC: @ 0x08096CEC + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096D06 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08096D60 +_08096D06: + ldr r0, _08096D40 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _08096D64 + ldr r3, _08096D44 @ =gLinkEntity + ldrb r2, [r4, #0xa] + lsls r0, r2, #1 + ldrb r1, [r3, #0x14] + eors r0, r1 + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08096D64 + movs r0, #1 + ands r2, r0 + cmp r2, #0 + beq _08096D48 + movs r1, #0x32 + ldrsh r0, [r3, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x2e + ldrsh r3, [r4, r5] + b _08096D58 + .align 2, 0 +_08096D40: .4byte gUnk_03003F80 +_08096D44: .4byte gLinkEntity +_08096D48: + movs r1, #0x2e + ldrsh r0, [r3, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r5, #0x32 + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r4, r5] +_08096D58: + bl sub_08096D68 + cmp r0, #0 + beq _08096D64 +_08096D60: + movs r0, #1 + b _08096D66 +_08096D64: + movs r0, #0 +_08096D66: + pop {r4, r5, pc} + + thumb_func_start sub_08096D68 +sub_08096D68: @ 0x08096D68 + push {lr} + subs r0, r0, r1 + adds r0, #8 + cmp r0, #0x10 + bhi _08096D7E + subs r0, r2, r3 + adds r0, #0x30 + cmp r0, #0x60 + bhi _08096D7E + movs r0, #1 + b _08096D80 +_08096D7E: + movs r0, #0 +_08096D80: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08096D84 +sub_08096D84: @ 0x08096D84 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #1 + beq _08096DB4 + cmp r0, #1 + bgt _08096D98 + cmp r0, #0 + beq _08096DA2 + b _08096E00 +_08096D98: + cmp r0, #2 + beq _08096DC8 + cmp r0, #3 + beq _08096DE4 + b _08096E00 +_08096DA2: + movs r0, #0x32 + ldrsh r1, [r1, r0] + ldr r0, _08096DB0 @ =gLinkEntity + movs r2, #0x32 + ldrsh r0, [r0, r2] + b _08096DEE + .align 2, 0 +_08096DB0: .4byte gLinkEntity +_08096DB4: + ldr r0, _08096DC4 @ =gLinkEntity + movs r2, #0x2e + ldrsh r0, [r0, r2] + adds r0, #0xa + movs r2, #0x2e + ldrsh r1, [r1, r2] + b _08096DD4 + .align 2, 0 +_08096DC4: .4byte gLinkEntity +_08096DC8: + ldr r0, _08096DE0 @ =gLinkEntity + movs r2, #0x32 + ldrsh r0, [r0, r2] + adds r0, #0xa + movs r2, #0x32 + ldrsh r1, [r1, r2] +_08096DD4: + subs r0, r0, r1 + cmp r0, #0x64 + bhi _08096E00 + movs r0, #1 + b _08096E02 + .align 2, 0 +_08096DE0: .4byte gLinkEntity +_08096DE4: + movs r0, #0x2e + ldrsh r1, [r1, r0] + ldr r0, _08096DFC @ =gLinkEntity + movs r2, #0x2e + ldrsh r0, [r0, r2] +_08096DEE: + subs r0, #0xa + subs r1, r1, r0 + cmp r1, #0x64 + bhi _08096E00 + movs r0, #1 + b _08096E02 + .align 2, 0 +_08096DFC: .4byte gLinkEntity +_08096E00: + movs r0, #0 +_08096E02: + pop {pc} + + thumb_func_start sub_08096E04 +sub_08096E04: @ 0x08096E04 + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #8 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08096E10 +sub_08096E10: @ 0x08096E10 + push {lr} + ldr r2, _08096E24 @ =gUnk_08123250 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096E24: .4byte gUnk_08123250 + + thumb_func_start sub_08096E28 +sub_08096E28: @ 0x08096E28 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r5, r0, #0 + cmp r5, #0 + bne _08096EBC + movs r2, #1 + movs r3, #1 + strb r3, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x11] + subs r0, #0x90 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + ldr r0, _08096EB4 @ =gUnk_080FD1F4 + str r0, [r4, #0x48] + strb r3, [r4, #0x16] + adds r0, r4, #0 + adds r0, #0x72 + strh r5, [r0] + adds r0, #0xb + ldrb r0, [r0] + lsrs r0, r0, #4 + subs r1, #0x2b + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_080970F4 + ldr r1, _08096EB8 @ =gUnk_08123264 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + b _08096F04 + .align 2, 0 +_08096EB4: .4byte gUnk_080FD1F4 +_08096EB8: .4byte gUnk_08123264 +_08096EBC: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r2, [r0] + adds r0, #1 + ldrb r3, [r0] + movs r1, #0xf + adds r0, r1, #0 + ands r0, r3 + lsls r0, r0, #8 + ldr r3, _08096F08 @ =gRoomControls + orrs r2, r0 + ldrh r0, [r3, #6] + adds r2, r2, r0 + strh r2, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7e + ldrb r0, [r0] + movs r2, #0x7f + adds r2, r2, r4 + mov ip, r2 + ldrb r2, [r2] + ands r1, r2 + lsls r1, r1, #8 + orrs r0, r1 + ldrh r3, [r3, #8] + adds r0, r0, r3 + strh r0, [r4, #0x32] + mov r5, ip + ldrb r0, [r5] + lsrs r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x38 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080971E0 +_08096F04: + pop {r4, r5, pc} + .align 2, 0 +_08096F08: .4byte gRoomControls + + thumb_func_start sub_08096F0C +sub_08096F0C: @ 0x08096F0C + push {r4, lr} + adds r4, r0, #0 + bl sub_08097194 + cmp r0, #0 + bne _08096F2E + adds r0, r4, #0 + bl sub_08097008 + cmp r0, #0 + beq _08096F28 + movs r0, #3 + strb r0, [r4, #0xc] + b _08096F2E +_08096F28: + adds r0, r4, #0 + bl sub_08078930 +_08096F2E: + pop {r4, pc} + + thumb_func_start sub_08096F30 +sub_08096F30: @ 0x08096F30 + push {lr} + adds r2, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0 + beq _08096F44 + adds r0, r2, #0 + bl sub_08097144 + b _08096F62 +_08096F44: + ldr r0, _08096F64 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08096F50 + movs r0, #6 + strb r0, [r2, #0xd] +_08096F50: + ldr r0, _08096F68 @ =gUnk_0812326C + ldrb r1, [r2, #0xd] + subs r1, #5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08096F62: + pop {pc} + .align 2, 0 +_08096F64: .4byte gUnk_03003F80 +_08096F68: .4byte gUnk_0812326C + + thumb_func_start sub_08096F6C +sub_08096F6C: @ 0x08096F6C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x72 + ldrh r0, [r1] + cmp r0, #0 + bne _08096F98 + movs r0, #1 + strh r0, [r1] + ldr r1, _08096FD8 @ =gLinkEntity + ldrb r0, [r1, #0x14] + ldr r2, _08096FDC @ =gUnk_08123274 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + bl PositionRelative +_08096F98: + adds r0, r4, #0 + bl sub_08097008 + bl sub_080896B0 + cmp r0, #0 + beq _08096FD4 + ldr r2, _08096FE0 @ =gUnk_03003F80 + movs r3, #0 + movs r0, #0x10 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x20 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, _08096FD8 @ =gLinkEntity + strh r3, [r0, #0x2c] + strh r3, [r0, #0x30] + ldrb r0, [r0, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08097098 +_08096FD4: + pop {r4, pc} + .align 2, 0 +_08096FD8: .4byte gLinkEntity +_08096FDC: .4byte gUnk_08123274 +_08096FE0: .4byte gUnk_03003F80 + + thumb_func_start sub_08096FE4 +sub_08096FE4: @ 0x08096FE4 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r0, #0x72 + strh r2, [r0] + bx lr + + thumb_func_start sub_08096FF0 +sub_08096FF0: @ 0x08096FF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08097144 + cmp r0, #0 + beq _08097000 + movs r0, #1 + strb r0, [r4, #0xc] +_08097000: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_122 +nullsub_122: @ 0x08097004 + bx lr + .align 2, 0 + + thumb_func_start sub_08097008 +sub_08097008: @ 0x08097008 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r4, r0, #0 + ldr r0, _08097048 @ =0x00004036 + cmp r4, r0 + beq _08097070 + adds r0, r4, #0 + bl sub_08097074 + cmp r0, #1 + beq _0809704C + cmp r0, #2 + beq _08097062 + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809706A + adds r0, r5, #0 + bl sub_0806FA24 + b _0809706A + .align 2, 0 +_08097048: .4byte 0x00004036 +_0809704C: + adds r0, r4, #0 + subs r0, #0x37 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08097098 + movs r0, #1 + b _08097072 +_08097062: + adds r0, r5, #0 + adds r0, #0x70 + strh r4, [r0] + b _08097070 +_0809706A: + adds r0, r5, #0 + bl sub_0805E7BC +_08097070: + movs r0, #0 +_08097072: + pop {r4, r5, pc} + + thumb_func_start sub_08097074 +sub_08097074: @ 0x08097074 + push {lr} + adds r2, r0, #0 + ldr r1, _0809707C @ =gUnk_0812327C + b _0809708C + .align 2, 0 +_0809707C: .4byte gUnk_0812327C +_08097080: + ldrh r0, [r1] + cmp r0, r2 + bne _0809708A + ldrh r0, [r1, #2] + b _08097094 +_0809708A: + adds r1, #4 +_0809708C: + ldrh r0, [r1] + cmp r0, #0 + bne _08097080 + movs r0, #0 +_08097094: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08097098 +sub_08097098: @ 0x08097098 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r1, r6, #0 + adds r1, #0x76 + movs r0, #0x20 + strh r0, [r1] + adds r0, #0xef + bl sub_08004488 + adds r0, r6, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldr r1, _080970F0 @ =gUnk_080B4488 + ldrb r0, [r6, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + ldrh r5, [r5] + adds r0, r0, r5 + ldrb r1, [r4] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x79 + beq _080970E4 + cmp r0, #0x77 + bne _080970EC +_080970E4: + adds r1, r6, #0 + adds r1, #0x63 + movs r0, #2 + strb r0, [r1] +_080970EC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080970F0: .4byte gUnk_080B4488 + + thumb_func_start sub_080970F4 +sub_080970F4: @ 0x080970F4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _0809713C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x74 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x70 + strh r0, [r1] + ldr r0, _08097140 @ =0x00004036 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0809713C: .4byte gRoomControls +_08097140: .4byte 0x00004036 + + thumb_func_start sub_08097144 +sub_08097144: @ 0x08097144 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x19 + bne _08097164 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #2 + strb r0, [r1] +_08097164: + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08097190 + adds r0, r4, #0 + bl sub_08097194 + cmp r0, #0 + bne _08097190 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080970F4 + movs r0, #1 + b _08097192 +_08097190: + movs r0, #0 +_08097192: + pop {r4, pc} + + thumb_func_start sub_08097194 +sub_08097194: @ 0x08097194 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + beq _080971A4 + movs r0, #1 + b _080971DE +_080971A4: + adds r0, r4, #0 + bl sub_080002A0 + adds r1, r0, #0 + subs r0, #0x71 + cmp r0, #1 + bls _080971B8 + ldr r0, _080971D4 @ =0x00004020 + cmp r1, r0 + bne _080971DC +_080971B8: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + ldr r0, _080971D8 @ =0x0000010B + bl sub_08004488 + adds r0, r4, #0 + bl sub_080971E0 + movs r0, #1 + b _080971DE + .align 2, 0 +_080971D4: .4byte 0x00004020 +_080971D8: .4byte 0x0000010B +_080971DC: + movs r0, #0 +_080971DE: + pop {r4, pc} + + thumb_func_start sub_080971E0 +sub_080971E0: @ 0x080971E0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08097202 + ldr r2, _0809727C @ =0xFFF80000 + movs r3, #0x80 + lsls r3, r3, #0xa + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative +_08097202: + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08097222 + movs r2, #0x80 + lsls r2, r2, #0xc + movs r3, #0x80 + lsls r3, r3, #0xa + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative +_08097222: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _08097284 + cmp r0, #1 + ble _08097234 + cmp r0, #2 + beq _080972C4 + cmp r0, #3 + beq _08097304 +_08097234: + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #1 + strb r0, [r5, #0x1e] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _08097280 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0 + bl sub_0800015E +_08097274: + bl sub_0805E780 + b _08097346 + .align 2, 0 +_0809727C: .4byte 0xFFF80000 +_08097280: .4byte gRoomControls +_08097284: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _080972C0 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r4, #0 + bl sub_08097348 + cmp r0, #0 + bne _08097274 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x73 + adds r1, r4, #0 + bl sub_0807B314 + b _08097274 + .align 2, 0 +_080972C0: .4byte gRoomControls +_080972C4: + movs r0, #0x2f + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08097274 + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + adds r1, #8 + strh r1, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x84 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x86 + strh r1, [r0] + b _08097274 +_08097304: + movs r0, #0x2f + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08097342 + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + adds r1, #8 + strh r1, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x84 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x86 + strh r1, [r0] +_08097342: + bl sub_0805E780 +_08097346: + pop {r4, r5, pc} + + thumb_func_start sub_08097348 +sub_08097348: @ 0x08097348 + push {lr} + adds r3, r0, #0 + ldr r1, _08097360 @ =gUnk_02017660 + movs r2, #0 +_08097350: + ldrh r0, [r1, #4] + cmp r0, r3 + bne _08097364 + ldrb r0, [r1, #1] + bl sub_0807CBD0 + b _0809736E + .align 2, 0 +_08097360: .4byte gUnk_02017660 +_08097364: + adds r2, #1 + adds r1, #8 + cmp r2, #7 + bls _08097350 + movs r0, #0 +_0809736E: + pop {pc} + + thumb_func_start sub_08097370 +sub_08097370: @ 0x08097370 + push {lr} + ldr r2, _08097384 @ =gUnk_08123298 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097384: .4byte gUnk_08123298 + + thumb_func_start sub_08097388 +sub_08097388: @ 0x08097388 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBD8 + cmp r0, #0 + beq _080973D4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + ldr r1, _080973D8 @ =gUnk_081232A0 + adds r0, r0, r1 + ldrb r1, [r0] + strb r1, [r4, #0xb] + ldrb r2, [r0, #3] + adds r1, r4, #0 + adds r1, #0x40 + strb r2, [r1] + ldr r2, [r4, #0x48] + ldrb r1, [r0, #1] + strb r1, [r2, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r0, #2] + strb r0, [r1, #7] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x91 + strb r0, [r1] + subs r1, #4 + movs r0, #2 + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #0xc] +_080973D4: + pop {r4, pc} + .align 2, 0 +_080973D8: .4byte gUnk_081232A0 + + thumb_func_start sub_080973DC +sub_080973DC: @ 0x080973DC + adds r0, #0x41 + movs r1, #0 + strb r1, [r0] + bx lr + + thumb_func_start sub_080973E4 +sub_080973E4: @ 0x080973E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809741E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + bl sub_08052660 + cmp r0, #0 + beq _0809741E + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_0809741E: + pop {r4, pc} + + thumb_func_start sub_08097420 +sub_08097420: @ 0x08097420 + push {lr} + ldr r2, _08097434 @ =gUnk_081232A4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097434: .4byte gUnk_081232A4 + + thumb_func_start sub_08097438 +sub_08097438: @ 0x08097438 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + adds r1, r0, #0 + adds r1, #0xb + strb r1, [r4, #0x1e] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080974A2 + adds r0, r4, #0 + bl sub_08004168 + ldr r1, _08097494 @ =gLinkEntity + ldrb r0, [r1, #0x1b] + movs r2, #0xc0 + orrs r0, r2 + strb r0, [r1, #0x1b] + adds r1, #0x29 + ldrb r1, [r1] + movs r2, #7 + movs r0, #7 + ands r0, r1 + cmp r0, #7 + beq _08097498 + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + ands r1, r2 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080974A2 + .align 2, 0 +_08097494: .4byte gLinkEntity +_08097498: + adds r1, r4, #0 + adds r1, #0x29 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] +_080974A2: + pop {r4, pc} + + thumb_func_start sub_080974A4 +sub_080974A4: @ 0x080974A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08097554 + ldr r3, _08097540 @ =gLinkEntity + ldr r0, [r3, #0x34] + cmp r0, #0 + bne _080974E8 + ldr r2, _08097544 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080974D6 + ldrb r0, [r2, #0x12] + cmp r0, #0x11 + bne _080974D6 + ldrb r0, [r3, #0xc] + cmp r0, #1 + beq _080974FA + cmp r0, #0x18 + beq _080974FA + cmp r0, #4 + beq _080974FA +_080974D6: + ldr r1, _08097540 @ =gLinkEntity + ldr r0, [r1, #0x34] + cmp r0, #0 + bne _080974E8 + adds r0, r1, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFX +_080974E8: + ldr r2, _08097540 @ =gLinkEntity + ldrb r1, [r2, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1b] + bl sub_0805E780 +_080974FA: + ldr r2, _08097540 @ =gLinkEntity + ldr r0, [r2, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r2, #0x30] + str r0, [r4, #0x30] + ldr r0, _08097544 @ =gUnk_03003F80 + ldrb r0, [r0, #2] + cmp r0, #0 + bne _08097584 + ldrb r0, [r2, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r2, #0x1b] + adds r0, r2, #0 + adds r0, #0x29 + ldrb r1, [r0] + movs r2, #7 + movs r0, #7 + ands r0, r1 + cmp r0, #7 + beq _08097548 + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + ands r1, r2 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _08097584 + .align 2, 0 +_08097540: .4byte gLinkEntity +_08097544: .4byte gUnk_03003F80 +_08097548: + adds r1, r4, #0 + adds r1, #0x29 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + b _08097584 +_08097554: + ldr r2, _08097570 @ =gLinkEntity + ldrb r0, [r2, #0xc] + cmp r0, #0x1e + beq _08097584 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08097574 + ldrb r0, [r2, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 + b _0809757C + .align 2, 0 +_08097570: .4byte gLinkEntity +_08097574: + ldrb r0, [r2, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 +_0809757C: + orrs r1, r0 + strb r1, [r2, #0x1b] + bl sub_0805E780 +_08097584: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097588 +sub_08097588: @ 0x08097588 + push {lr} + ldr r2, _0809759C @ =gUnk_081232AC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809759C: .4byte gUnk_081232AC + + thumb_func_start sub_080975A0 +sub_080975A0: @ 0x080975A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08097690 @ =gRoomControls + mov r8, r2 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r6, #0x3f + ands r5, r6 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r5, #0 + subs r0, #0x41 + adds r7, r4, #0 + adds r7, #0x38 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x6e + strh r0, [r1] + subs r0, r5, #1 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + ldrb r1, [r7] + adds r0, r5, #0 + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r5, #1 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r4, #0 + bl sub_0809798C + cmp r0, #0 + beq _080976A2 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08097694 + ldrh r0, [r4, #0x32] + subs r0, #0x16 + b _08097698 + .align 2, 0 +_08097690: .4byte gRoomControls +_08097694: + ldrh r0, [r4, #0x32] + subs r0, #0x10 +_08097698: + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080977F4 + b _08097722 +_080976A2: + movs r0, #1 + strb r0, [r4, #0xc] + movs r2, #0x2e + ldrsh r0, [r4, r2] + mov r2, r8 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + ands r5, r6 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r4, #0 + adds r0, #0x68 + strh r5, [r0] + ldr r1, _080976FC @ =gUnk_081232DE + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r6, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08097704 + ldr r0, _08097700 @ =gUnk_080FD578 + str r0, [r4, #0x48] + subs r1, r5, #1 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0800015E + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0800015E + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + b _08097722 + .align 2, 0 +_080976FC: .4byte gUnk_081232DE +_08097700: .4byte gUnk_080FD578 +_08097704: + ldr r0, _08097728 @ =gUnk_080FD570 + str r0, [r4, #0x48] + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0800015E + ldrb r0, [r4, #0xb] + cmp r0, #2 + bne _08097722 + ldr r0, _0809772C @ =gUnk_081232C0 + ldrb r2, [r7] + adds r1, r5, #0 + bl sub_0801AF18 +_08097722: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08097728: .4byte gUnk_080FD570 +_0809772C: .4byte gUnk_081232C0 + + thumb_func_start sub_08097730 +sub_08097730: @ 0x08097730 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809785C + cmp r0, #0 + beq _08097744 + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805E4E0 +_08097744: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097748 +sub_08097748: @ 0x08097748 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + bne _08097774 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809779A + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x78 + strb r0, [r2, #0xf] + ldr r1, _08097770 @ =gRoomControls + str r2, [r1, #0x30] + movs r0, #2 + strb r0, [r1, #0xe] + b _0809779A + .align 2, 0 +_08097770: .4byte gRoomControls +_08097774: + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809779A + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x60 + strb r0, [r2, #0xe] + movs r0, #0x14 + strb r0, [r2, #0xf] + adds r0, r2, #0 + movs r1, #0x60 + bl sub_0805E4E0 + ldr r0, _0809779C @ =0x0000010F + bl sub_080A3268 +_0809779A: + pop {pc} + .align 2, 0 +_0809779C: .4byte 0x0000010F + + thumb_func_start sub_080977A0 +sub_080977A0: @ 0x080977A0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080977BC + subs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0800445C + b _080977E4 +_080977BC: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080977C8 + subs r0, #1 + strb r0, [r4, #0xf] + b _080977E4 +_080977C8: + movs r0, #0x72 + bl sub_08004488 + adds r0, r4, #0 + bl sub_080977F4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080977E4 + ldr r0, _080977E8 @ =gRoomControls + ldr r1, _080977EC @ =gLinkEntity + str r1, [r0, #0x30] + movs r1, #4 + strb r1, [r0, #0xe] +_080977E4: + pop {r4, pc} + .align 2, 0 +_080977E8: .4byte gRoomControls +_080977EC: .4byte gLinkEntity + + thumb_func_start nullsub_528 +nullsub_528: @ 0x080977F0 + bx lr + .align 2, 0 + + thumb_func_start sub_080977F4 +sub_080977F4: @ 0x080977F4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #4 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _08097854 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r7, _08097858 @ =0x00004022 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r2, [r6] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_0800015E + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08097844 + subs r1, r4, #1 + ldrb r2, [r6] + adds r0, r7, #0 + bl sub_0800015E +_08097844: + adds r1, r5, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08097852 + bl sub_0807CCC8 +_08097852: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08097854: .4byte gRoomControls +_08097858: .4byte 0x00004022 + + thumb_func_start sub_0809785C +sub_0809785C: @ 0x0809785C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + cmp r4, #0 + beq _08097948 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _0809786E + b _08097986 +_0809786E: + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r4, r5, #0 + adds r4, #0x68 + adds r6, r5, #0 + adds r6, #0x38 + cmp r0, #0 + bne _08097892 + ldrh r0, [r4] + ldrb r1, [r6] + bl sub_080002B0 + ldr r1, _08097940 @ =0x0000403F + cmp r0, r1 + bne _08097986 +_08097892: + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + movs r0, #0x40 + strb r0, [r5, #0xe] + strb r1, [r5, #0xf] + strb r1, [r5, #0x15] + strh r0, [r5, #0x24] + ldrh r4, [r4] + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0807B9B8 + ldrb r0, [r5, #0xb] + cmp r0, #2 + bne _08097934 + adds r0, r5, #0 + adds r0, #0x6a + ldrh r0, [r0] + adds r1, r4, #0 + subs r1, #0x41 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r1, r4, #0 + subs r1, #0x40 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + adds r1, r4, #0 + subs r1, #0x3f + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + subs r1, r4, #1 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #1 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x3f + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x40 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x7a + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x41 + ldrb r2, [r6] + bl sub_0807B9B8 +_08097934: + ldr r0, _08097944 @ =0x0000010F + bl sub_080A3268 + movs r0, #1 + b _08097988 + .align 2, 0 +_08097940: .4byte 0x0000403F +_08097944: .4byte 0x0000010F +_08097948: + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08097986 + movs r0, #2 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + movs r0, #0xf0 + strb r0, [r5, #0xe] + movs r0, #0x3c + strb r0, [r5, #0xf] + strb r4, [r5, #0x15] + movs r0, #0x40 + strh r0, [r5, #0x24] + adds r4, r5, #0 + adds r4, #0x68 + ldrh r0, [r4] + adds r5, #0x38 + ldrb r1, [r5] + bl sub_0807BA8C + ldrh r0, [r4] + subs r0, #1 + ldrb r1, [r5] + bl sub_0807BA8C + movs r0, #1 + b _08097988 +_08097986: + movs r0, #0 +_08097988: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809798C +sub_0809798C: @ 0x0809798C + push {r4, lr} + adds r1, r0, #0 + movs r4, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _0809799E + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _080979AE +_0809799E: + adds r0, r1, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080979AE + movs r4, #1 +_080979AE: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080979B4 +sub_080979B4: @ 0x080979B4 + push {lr} + ldr r2, _080979C8 @ =gUnk_081232E4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080979C8: .4byte gUnk_081232E4 + + thumb_func_start sub_080979CC +sub_080979CC: @ 0x080979CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + cmp r0, #3 + bne _08097A20 + movs r0, #0 + strb r0, [r5, #0x1e] + ldr r0, _08097A18 @ =gUnk_081232FE + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097A1C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 + b _08097A4E + .align 2, 0 +_08097A18: .4byte gUnk_081232FE +_08097A1C: .4byte gRoomControls +_08097A20: + strb r0, [r5, #0x1e] + ldr r0, _08097A50 @ =gUnk_081232EC + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097A54 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 +_08097A4E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097A50: .4byte gUnk_081232EC +_08097A54: .4byte gRoomControls + + thumb_func_start nullsub_529 +nullsub_529: @ 0x08097A58 + bx lr + .align 2, 0 + + thumb_func_start sub_08097A5C +sub_08097A5C: @ 0x08097A5C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08097AAC + movs r4, #1 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x5a + strb r0, [r5, #0xe] + bl sub_08000E50 + strb r0, [r5, #0xf] + lsrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x1e] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r5, #0x18] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xb] + bl sub_0804B128 + str r0, [r5, #0x54] + adds r1, r5, #0 + adds r1, #0x54 + adds r2, r5, #0 + adds r2, #0x70 + adds r0, r5, #0 + bl sub_080A2CC0 +_08097AAC: + adds r0, r5, #0 + bl sub_08097ADC + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_080A2BE4 + adds r0, r5, #0 + bl sub_08097B24 + adds r2, r5, #0 + adds r2, #0x70 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08097ADA + adds r1, r5, #0 + adds r1, #0x54 + adds r0, r5, #0 + bl sub_080A2CC0 +_08097ADA: + pop {r4, r5, pc} + + thumb_func_start sub_08097ADC +sub_08097ADC: @ 0x08097ADC + push {r4, r5, lr} + adds r2, r0, #0 + ldr r5, _08097B18 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08097B20 + ldr r4, _08097B1C @ =gLinkEntity + adds r0, r2, #0 + adds r1, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + beq _08097B20 + bl sub_08079F8C + cmp r0, #0 + beq _08097B20 + movs r0, #1 + strb r0, [r5, #0x14] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08097B20 + movs r0, #1 + b _08097B22 + .align 2, 0 +_08097B18: .4byte gUnk_03003F80 +_08097B1C: .4byte gLinkEntity +_08097B20: + movs r0, #0 +_08097B22: + pop {r4, r5, pc} + + thumb_func_start sub_08097B24 +sub_08097B24: @ 0x08097B24 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + movs r4, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08097B44 + movs r0, #0x5a + strb r0, [r3, #0xe] + ldrb r0, [r3, #0x1e] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r3, #0x1e] +_08097B44: + ldr r2, _08097B68 @ =gUnk_08123318 + ldrb r0, [r3, #0xf] + adds r0, #1 + strb r0, [r3, #0xf] + ands r0, r4 + lsrs r0, r0, #5 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r3, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_08097B68: .4byte gUnk_08123318 + + thumb_func_start sub_08097B6C +sub_08097B6C: @ 0x08097B6C + push {lr} + ldr r2, _08097B80 @ =gUnk_08123330 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097B80: .4byte gUnk_08123330 + + thumb_func_start sub_08097B84 +sub_08097B84: @ 0x08097B84 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08097BCC @ =gUnk_08123328 + str r0, [r4, #0x48] + adds r2, #0x5d + ldrh r1, [r2] + ldr r0, _08097BD0 @ =0x0000FFFF + cmp r1, r0 + beq _08097BB0 + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _08097BD4 +_08097BB0: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08097CFC + b _08097BD8 + .align 2, 0 +_08097BCC: .4byte gUnk_08123328 +_08097BD0: .4byte 0x0000FFFF +_08097BD4: + bl sub_0805BC4C +_08097BD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097BDC +sub_08097BDC: @ 0x08097BDC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08097C10 + movs r0, #1 + bl sub_08078A90 + ldr r0, _08097C14 @ =gUnk_02034490 + movs r1, #1 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + adds r0, r4, #0 + bl sub_08097CB0 + cmp r0, #0 + bne _08097C10 + adds r0, r4, #0 + bl sub_08097CB4 +_08097C10: + pop {r4, pc} + .align 2, 0 +_08097C14: .4byte gUnk_02034490 + + thumb_func_start sub_08097C18 +sub_08097C18: @ 0x08097C18 + bx lr + .align 2, 0 + + thumb_func_start sub_08097C1C +sub_08097C1C: @ 0x08097C1C + bx lr + .align 2, 0 + + thumb_func_start sub_08097C20 +sub_08097C20: @ 0x08097C20 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x1e + bl sub_0805E510 + adds r0, r4, #0 + bl sub_0800445C + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_080577AC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08097CA6 + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ands r1, r0 + ldr r6, _08097CA8 @ =gLCDControls + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r6, #0 + adds r1, #0x68 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bne _08097CA6 + movs r0, #0 + bl sub_08078A90 + ldr r1, _08097CAC @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x66 + strh r5, [r0] + adds r0, r4, #0 + bl sub_08097CFC + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + subs r0, #0x11 + ands r0, r1 + strb r0, [r4, #0x19] + movs r0, #0x72 + bl sub_080A3268 + movs r0, #0x63 + bl sub_0807CD04 +_08097CA6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097CA8: .4byte gLCDControls +_08097CAC: .4byte gUnk_02034490 + + thumb_func_start sub_08097CB0 +sub_08097CB0: @ 0x08097CB0 + movs r0, #0 + bx lr + + thumb_func_start sub_08097CB4 +sub_08097CB4: @ 0x08097CB4 + push {lr} + movs r3, #0 + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #7 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x19] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #0x19] + movs r1, #0x1e + strb r1, [r0, #0xe] + strb r3, [r0, #0xf] + ldr r1, _08097CF8 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + adds r0, #0xc0 + strh r0, [r1] + movs r0, #0xa5 + lsls r0, r0, #1 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08097CF8: .4byte gLCDControls + + thumb_func_start sub_08097CFC +sub_08097CFC: @ 0x08097CFC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r1, [r5, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08097D40 + ldr r0, _08097D38 @ =gUnk_0812336A + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097D3C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 + b _08097D6C + .align 2, 0 +_08097D38: .4byte gUnk_0812336A +_08097D3C: .4byte gRoomControls +_08097D40: + ldr r0, _08097D70 @ =gUnk_08123344 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097D74 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 +_08097D6C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097D70: .4byte gUnk_08123344 +_08097D74: .4byte gRoomControls + + thumb_func_start sub_08097D78 +sub_08097D78: @ 0x08097D78 + push {lr} + ldr r2, _08097D8C @ =gUnk_08123384 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097D8C: .4byte gUnk_08123384 + + thumb_func_start sub_08097D90 +sub_08097D90: @ 0x08097D90 + push {r4, lr} + adds r4, r0, #0 + movs r3, #1 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x38 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097DCC +sub_08097DCC: @ 0x08097DCC + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08097DD4 +sub_08097DD4: @ 0x08097DD4 + push {lr} + ldr r2, _08097DE8 @ =gUnk_081233B8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097DE8: .4byte gUnk_081233B8 + + thumb_func_start sub_08097DEC +sub_08097DEC: @ 0x08097DEC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08016A04 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _08097E46 + cmp r0, #1 + bgt _08097E0A + cmp r0, #0 + beq _08097E1C + b _08097EA2 +_08097E0A: + cmp r0, #3 + bgt _08097EA2 + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08097E9C +_08097E1C: + ldrh r2, [r4, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + ands r1, r0 + strh r1, [r4, #0x32] + adds r0, r4, #0 + bl sub_08097EB8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08097EA2 + adds r1, r0, #0 + adds r1, #0xb + adds r0, r4, #0 + bl sub_0801D2B4 + b _08097EA2 +_08097E46: + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + cmp r0, #1 + beq _08097E76 + cmp r0, #1 + bgt _08097E5C + cmp r0, #0 + beq _08097E68 + b _08097E9C +_08097E5C: + cmp r0, #2 + bne _08097E9C + adds r0, r4, #0 + movs r1, #0xd + bl sub_0801D2B4 +_08097E68: + ldrb r0, [r4, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] + b _08097E9C +_08097E76: + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0xb + bl sub_0801D2B4 +_08097E9C: + adds r0, r4, #0 + bl sub_08097F34 +_08097EA2: + pop {r4, pc} + + thumb_func_start sub_08097EA4 +sub_08097EA4: @ 0x08097EA4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _08097EB4 + adds r0, r1, #0 + bl sub_08097F10 +_08097EB4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08097EB8 +sub_08097EB8: @ 0x08097EB8 + push {r4, r5, r6, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _08097F04 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r5, r1, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + ldr r4, _08097F08 @ =gUnk_081233C0 + movs r2, #0 + ldrsh r0, [r4, r2] + ldr r1, _08097F0C @ =0x00007FFF + cmp r0, r1 + beq _08097F00 + adds r6, r1, #0 +_08097EE8: + ldrh r0, [r4, #2] + movs r2, #0 + ldrsh r1, [r4, r2] + adds r1, r5, r1 + movs r2, #1 + bl sub_0800015E + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r6 + bne _08097EE8 +_08097F00: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097F04: .4byte gRoomControls +_08097F08: .4byte gUnk_081233C0 +_08097F0C: .4byte 0x00007FFF + + thumb_func_start sub_08097F10 +sub_08097F10: @ 0x08097F10 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08097F30 @ =gRoomControls + movs r2, #0xc + ldrsh r1, [r0, r2] + ldrh r0, [r0, #8] + subs r1, r1, r0 + adds r0, r4, #0 + bl sub_08097F60 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + subs r1, r1, r0 + strh r1, [r4, #0x32] + pop {r4, pc} + .align 2, 0 +_08097F30: .4byte gRoomControls + + thumb_func_start sub_08097F34 +sub_08097F34: @ 0x08097F34 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08097F5C @ =gRoomControls + ldrh r0, [r0, #8] + subs r1, r1, r0 + adds r0, r4, #0 + bl sub_08097F60 + ldrh r1, [r4, #0x32] + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08097F10 + pop {r4, pc} + .align 2, 0 +_08097F5C: .4byte gRoomControls + + thumb_func_start sub_08097F60 +sub_08097F60: @ 0x08097F60 + push {lr} + ldrb r2, [r0, #0xa] + cmp r2, #1 + bne _08097F74 + ldrb r0, [r0, #0x1e] + lsrs r0, r0, #1 + cmp r0, #1 + bne _08097F7C + asrs r1, r1, #3 + b _08097F7E +_08097F74: + cmp r2, #1 + blt _08097F7E + cmp r2, #3 + bgt _08097F7E +_08097F7C: + asrs r1, r1, #1 +_08097F7E: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08097F84 +sub_08097F84: @ 0x08097F84 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08097FAC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08097F98 + bl sub_0805E780 +_08097F98: + ldr r0, _08097FB0 @ =gUnk_08123410 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08097FAC: .4byte gUnk_03003F80 +_08097FB0: .4byte gUnk_08123410 + + thumb_func_start sub_08097FB4 +sub_08097FB4: @ 0x08097FB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + movs r2, #0 + strh r1, [r4, #0x24] + str r1, [r4, #0x6c] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x90 + lsls r0, r0, #5 + strh r0, [r1] + strb r2, [r4, #0xe] + movs r0, #0x1e + strb r0, [r4, #0xf] + ldr r1, _08098014 @ =gUnk_0812341C + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #6 + str r0, [r4, #0x74] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08098018 + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0x40 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_080AE008 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080042AC + b _08098032 + .align 2, 0 +_08098014: .4byte gUnk_0812341C +_08098018: + ldr r0, [r4, #0x50] + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldr r2, [r4, #0x50] + ldrb r1, [r4, #0xa] + movs r0, #0xd + muls r0, r1, r0 + ldrb r2, [r2, #0x1e] + adds r0, r0, r2 + strb r0, [r4, #0x1e] +_08098032: + adds r0, r4, #0 + bl sub_08098130 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809803C +sub_0809803C: @ 0x0809803C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xa] + cmp r5, #0 + bne _08098070 + bl sub_080042B8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08098082 + ldr r0, _0809806C @ =gLinkEntity + strb r5, [r0, #0xf] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + movs r0, #0xbc + lsls r0, r0, #1 + bl sub_080A3268 + b _08098082 + .align 2, 0 +_0809806C: .4byte gLinkEntity +_08098070: + ldr r2, [r4, #0x50] + ldrb r1, [r4, #0xa] + movs r0, #0xd + muls r0, r1, r0 + ldrb r1, [r2, #0x1e] + adds r0, r0, r1 + strb r0, [r4, #0x1e] + ldrb r0, [r2, #0xc] + strb r0, [r4, #0xc] +_08098082: + pop {r4, r5, pc} + + thumb_func_start sub_08098084 +sub_08098084: @ 0x08098084 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x6c] + movs r0, #0xa0 + lsls r0, r0, #0xd + cmp r1, r0 + bls _080980A8 + ldr r0, _080980A4 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r2, #0x80 + orrs r1, r2 + str r1, [r0, #0x30] + bl sub_0805E780 + b _0809812E + .align 2, 0 +_080980A4: .4byte gUnk_03003F80 +_080980A8: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080980D8 + adds r0, r4, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x7e + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + ldr r1, _080980D4 @ =0xFFFF0000 + cmp r0, r1 + bne _080980E6 + movs r0, #0x40 + strh r0, [r2] + movs r0, #0xbc + lsls r0, r0, #1 + bl sub_080A3268 + b _080980E6 + .align 2, 0 +_080980D4: .4byte 0xFFFF0000 +_080980D8: + ldr r2, [r4, #0x50] + ldrb r1, [r4, #0xa] + movs r0, #0xd + muls r0, r1, r0 + ldrb r2, [r2, #0x1e] + adds r0, r0, r2 + strb r0, [r4, #0x1e] +_080980E6: + ldr r0, [r4, #0x6c] + movs r1, #0xa0 + lsls r1, r1, #5 + adds r0, r0, r1 + str r0, [r4, #0x6c] + ldr r0, [r4, #0x70] + ldr r1, [r4, #0x74] + adds r0, r0, r1 + str r0, [r4, #0x70] + adds r2, r4, #0 + adds r2, #0x72 + ldrh r1, [r2] + movs r0, #0x1f + ands r0, r1 + strh r0, [r2] + ldr r0, [r4, #0x74] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + str r0, [r4, #0x74] + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08098128 + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + movs r1, #1 + eors r0, r1 + strb r0, [r4, #0xe] +_08098128: + adds r0, r4, #0 + bl sub_08098130 +_0809812E: + pop {r4, pc} + + thumb_func_start sub_08098130 +sub_08098130: @ 0x08098130 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08098160 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x30] + ldr r1, _08098164 @ =0xFFEC0000 + adds r0, r0, r1 + ldr r1, [r4, #0x6c] + adds r0, r0, r1 + str r0, [r4, #0x30] + pop {r4, pc} + .align 2, 0 +_08098160: .4byte gLinkEntity +_08098164: .4byte 0xFFEC0000 + + thumb_func_start sub_08098168 +sub_08098168: @ 0x08098168 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _080981DA + movs r2, #1 + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + strb r3, [r4, #0xe] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x68 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A30 + ldr r1, _080981CC @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r3, #0 + movs r0, #0xbd + lsls r0, r0, #6 + strh r0, [r2] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080981D4 + adds r1, #0x68 + ldr r0, _080981D0 @ =0x0000060A + b _080981D8 + .align 2, 0 +_080981CC: .4byte gLCDControls +_080981D0: .4byte 0x0000060A +_080981D4: + adds r1, #0x68 + ldr r0, _08098208 @ =0x00000808 +_080981D8: + strh r0, [r1] +_080981DA: + ldrb r0, [r4, #0xa] + adds r3, r4, #0 + adds r3, #0x68 + cmp r0, #0 + beq _08098222 + ldr r0, _0809820C @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r0, _08098210 @ =gRoomControls + ldrh r0, [r0, #6] + subs r1, r1, r0 + movs r0, #0xf8 + lsls r0, r0, #1 + cmp r1, r0 + ble _08098214 + ldrb r1, [r3] + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0x3f + bgt _08098222 + adds r0, r1, #1 + b _08098220 + .align 2, 0 +_08098208: .4byte 0x00000808 +_0809820C: .4byte gLinkEntity +_08098210: .4byte gRoomControls +_08098214: + ldrb r1, [r3] + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + ble _08098222 + subs r0, r1, #1 +_08098220: + strb r0, [r3] +_08098222: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809823C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + strb r0, [r4, #0xf] +_0809823C: + ldr r1, _0809825C @ =gUnk_08123484 + ldrb r0, [r4, #0xf] + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x62 + strb r0, [r2] + ldrb r0, [r4, #0xf] + adds r0, r0, r1 + ldrb r1, [r3] + ldrb r0, [r0] + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_0809825C: .4byte gUnk_08123484 + + thumb_func_start sub_08098260 +sub_08098260: @ 0x08098260 + push {lr} + ldr r2, _08098274 @ =gUnk_08123494 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098274: .4byte gUnk_08123494 + + thumb_func_start sub_08098278 +sub_08098278: @ 0x08098278 + push {lr} + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #5 + orrs r1, r2 + strb r1, [r3] + bl sub_08098340 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08098294 +sub_08098294: @ 0x08098294 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08098418 + cmp r0, #0 + beq _080982FA + movs r5, #0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x62 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #0xf + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #0xb5 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + bl sub_08079F8C + cmp r0, #0 + beq _080982FA + ldr r2, _080982FC @ =gUnk_03003F80 + movs r0, #0x90 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08098300 @ =gLinkEntity + strh r5, [r1, #0x2c] + strh r5, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] +_080982FA: + pop {r4, r5, pc} + .align 2, 0 +_080982FC: .4byte gUnk_03003F80 +_08098300: .4byte gLinkEntity + + thumb_func_start sub_08098304 +sub_08098304: @ 0x08098304 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809833C + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0809832C + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _08098336 +_0809832C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 +_08098336: + adds r0, r4, #0 + bl sub_08098340 +_0809833C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08098340 +sub_08098340: @ 0x08098340 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x74 + movs r1, #0x3c + strh r1, [r2] + bl sub_08098354 + pop {pc} + + thumb_func_start sub_08098354 +sub_08098354: @ 0x08098354 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080983BC + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r1, _080983B4 @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + adds r1, #0x10 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r2, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldr r0, _080983B8 @ =0x00004053 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + adds r0, r6, #0 + movs r1, #1 + bl sub_08004260 + b _0809840C + .align 2, 0 +_080983B4: .4byte gRoomControls +_080983B8: .4byte 0x00004053 +_080983BC: + movs r0, #1 + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r1, _08098410 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, #0x10 + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r2, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldr r0, _08098414 @ =0x00004052 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 +_0809840C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08098410: .4byte gRoomControls +_08098414: .4byte 0x00004052 + + thumb_func_start sub_08098418 +sub_08098418: @ 0x08098418 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x70 + ldrh r0, [r6] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + ldr r1, _08098448 @ =0x00004054 + cmp r0, r1 + bne _0809846C + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809844C + movs r0, #1 + b _08098482 + .align 2, 0 +_08098448: .4byte 0x00004054 +_0809844C: + adds r0, r4, #0 + bl sub_08098484 + ldr r1, _08098468 @ =gUnk_081234A0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6] + ldrb r2, [r5] + bl sub_0800015E + b _08098480 + .align 2, 0 +_08098468: .4byte gUnk_081234A0 +_0809846C: + adds r1, r4, #0 + adds r1, #0x74 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x62 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] +_08098480: + movs r0, #0 +_08098482: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08098484 +sub_08098484: @ 0x08098484 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xb] + ldr r4, _080984C4 @ =gUnk_081234AC + cmp r0, #0 + bne _08098492 + ldr r4, _080984C8 @ =gUnk_081234A4 +_08098492: + adds r2, r3, #0 + adds r2, #0x74 + ldrh r0, [r2] + lsrs r0, r0, #2 + movs r1, #6 + ands r0, r1 + adds r4, r4, r0 + ldrb r0, [r4] + adds r1, r3, #0 + adds r1, #0x62 + strb r0, [r1] + ldrb r1, [r4, #1] + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] + ldrh r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080984C2 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_080984C2: + pop {r4, pc} + .align 2, 0 +_080984C4: .4byte gUnk_081234AC +_080984C8: .4byte gUnk_081234A4 + + thumb_func_start sub_080984CC +sub_080984CC: @ 0x080984CC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080984E8 @ =gUnk_08123504 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + .align 2, 0 +_080984E8: .4byte gUnk_08123504 + + thumb_func_start sub_080984EC +sub_080984EC: @ 0x080984EC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldr r2, _08098528 @ =gUnk_081234EC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0, #0x48] + ldrb r0, [r0, #0xb] + cmp r0, #1 + bne _08098524 + ldr r0, _0809852C @ =0x00004024 + movs r1, #0x82 + lsls r1, r1, #3 + movs r2, #1 + bl sub_0800015E + ldr r0, _08098530 @ =0x00004026 + ldr r1, _08098534 @ =0x00000411 + movs r2, #1 + bl sub_0800015E + ldr r0, _08098538 @ =0x00004025 + ldr r1, _0809853C @ =0x00000412 + movs r2, #1 + bl sub_0800015E +_08098524: + pop {pc} + .align 2, 0 +_08098528: .4byte gUnk_081234EC +_0809852C: .4byte 0x00004024 +_08098530: .4byte 0x00004026 +_08098534: .4byte 0x00000411 +_08098538: .4byte 0x00004025 +_0809853C: .4byte 0x00000412 + + thumb_func_start nullsub_532 +nullsub_532: @ 0x08098540 + bx lr + .align 2, 0 + + thumb_func_start sub_08098544 +sub_08098544: @ 0x08098544 + push {lr} + ldr r2, _08098558 @ =gUnk_0812350C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098558: .4byte gUnk_0812350C + + thumb_func_start sub_0809855C +sub_0809855C: @ 0x0809855C + push {r4, r5, lr} + adds r4, r0, #0 + movs r3, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x10] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x19] + strb r3, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #0x86 + strb r0, [r1] + strb r3, [r4, #0x16] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080985AC + movs r0, #2 + strb r0, [r4, #0x1c] + b _080985AE +_080985AC: + strb r5, [r4, #0x1c] +_080985AE: + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_08098918 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080985C0 +sub_080985C0: @ 0x080985C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080989E4 + cmp r0, #0 + bne _080985CE + b _080986FC +_080985CE: + ldrb r0, [r0, #0xc] + cmp r0, #4 + bls _080985D6 + b _080986E6 +_080985D6: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080985E6 + b _080986EE +_080985E6: + movs r0, #0x3f + ands r0, r1 + subs r0, #4 + cmp r0, #0x1c + bls _080985F2 + b _08098702 +_080985F2: + lsls r0, r0, #2 + ldr r1, _080985FC @ =_08098600 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080985FC: .4byte _08098600 +_08098600: @ jump table + .4byte _080986C4 @ case 0 + .4byte _080986C4 @ case 1 + .4byte _080986C4 @ case 2 + .4byte _08098702 @ case 3 + .4byte _080986C4 @ case 4 + .4byte _080986C4 @ case 5 + .4byte _080986C4 @ case 6 + .4byte _080986C4 @ case 7 + .4byte _080986C4 @ case 8 + .4byte _080986C4 @ case 9 + .4byte _08098702 @ case 10 + .4byte _0809867E @ case 11 + .4byte _080986C4 @ case 12 + .4byte _080986C4 @ case 13 + .4byte _080986C4 @ case 14 + .4byte _08098674 @ case 15 + .4byte _080986E0 @ case 16 + .4byte _08098702 @ case 17 + .4byte _080986E0 @ case 18 + .4byte _08098702 @ case 19 + .4byte _080986C4 @ case 20 + .4byte _080986C4 @ case 21 + .4byte _080986C4 @ case 22 + .4byte _08098702 @ case 23 + .4byte _08098702 @ case 24 + .4byte _0809867E @ case 25 + .4byte _08098702 @ case 26 + .4byte _08098702 @ case 27 + .4byte _080986E0 @ case 28 +_08098674: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _08098702 +_0809867E: + movs r2, #0 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x63 + strb r2, [r0] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r0, [r4, #0x50] + str r2, [r0, #0x54] + adds r0, r4, #0 + bl sub_080988E8 + b _08098702 +_080986C4: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080986E6 + ldr r0, _080986DC @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08098702 + b _080986E6 + .align 2, 0 +_080986DC: .4byte gUnk_03003F80 +_080986E0: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08098702 +_080986E6: + adds r0, r4, #0 + bl sub_080989C0 + b _08098702 +_080986EE: + adds r0, r4, #0 + bl sub_08098918 + adds r0, r4, #0 + bl sub_08078930 + b _08098702 +_080986FC: + adds r0, r4, #0 + bl sub_080989C0 +_08098702: + pop {r4, pc} + + thumb_func_start sub_08098704 +sub_08098704: @ 0x08098704 + push {lr} + ldr r2, _08098718 @ =gUnk_08123524 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098718: .4byte gUnk_08123524 + + thumb_func_start sub_0809871C +sub_0809871C: @ 0x0809871C + adds r3, r0, #0 + ldrb r1, [r3, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r3, #0x10] + adds r1, r3, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + ldr r0, _08098754 @ =gLinkEntity + adds r0, #0x3b + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x63 + strb r2, [r0] + ldr r0, [r3, #0x50] + str r2, [r0, #0x54] + ldrb r0, [r3, #0xd] + adds r0, #1 + strb r0, [r3, #0xd] + bx lr + .align 2, 0 +_08098754: .4byte gLinkEntity + + thumb_func_start nullsub_533 +nullsub_533: @ 0x08098758 + bx lr + .align 2, 0 + + thumb_func_start sub_0809875C +sub_0809875C: @ 0x0809875C + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08098770 +sub_08098770: @ 0x08098770 + push {r4, lr} + adds r4, r0, #0 + bl sub_080043E8 + cmp r0, #2 + beq _0809878C + cmp r0, #2 + bhi _08098786 + cmp r0, #1 + beq _08098792 + b _080987A4 +_08098786: + cmp r0, #3 + beq _08098798 + b _080987A4 +_0809878C: + adds r0, r4, #0 + movs r1, #0xb + b _0809879C +_08098792: + adds r0, r4, #0 + movs r1, #0 + b _0809879C +_08098798: + adds r0, r4, #0 + movs r1, #0xc +_0809879C: + movs r2, #0 + bl CreateFX + b _080987AC +_080987A4: + adds r0, r4, #0 + bl sub_080989C0 + b _080987B0 +_080987AC: + bl sub_0805E780 +_080987B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080987B4 +sub_080987B4: @ 0x080987B4 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080987BC +sub_080987BC: @ 0x080987BC + push {lr} + adds r1, r0, #0 + ldr r0, _080987D0 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080987CE + adds r0, r1, #0 + bl sub_080987D4 +_080987CE: + pop {pc} + .align 2, 0 +_080987D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080987D4 +sub_080987D4: @ 0x080987D4 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_080987E0 +sub_080987E0: @ 0x080987E0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809880C @ =gUnk_08123540 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xd] + cmp r0, #1 + bhi _0809880A + adds r0, r4, #0 + bl sub_080989E4 + cmp r0, #0 + bne _0809880A + adds r0, r4, #0 + bl sub_080989C0 +_0809880A: + pop {r4, pc} + .align 2, 0 +_0809880C: .4byte gUnk_08123540 + + thumb_func_start sub_08098810 +sub_08098810: @ 0x08098810 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x30 + strb r1, [r0, #0x1d] + strb r2, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08098820 +sub_08098820: @ 0x08098820 + push {lr} + adds r2, r0, #0 + ldr r0, _0809884C @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0809883E + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08098850 +_0809883E: + adds r1, r2, #0 + adds r1, #0x62 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + strb r0, [r2, #0xc] + b _08098856 + .align 2, 0 +_0809884C: .4byte gUnk_03003F80 +_08098850: + adds r0, r2, #0 + bl sub_0806F4E8 +_08098856: + pop {pc} + + thumb_func_start sub_08098858 +sub_08098858: @ 0x08098858 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + cmp r1, #0 + bne _08098878 + movs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + adds r2, r4, #0 + adds r2, #0x63 + movs r0, #0xfe + strb r0, [r2] + ldr r0, [r4, #0x50] + str r1, [r0, #0x54] +_08098878: + ldr r0, _0809889C @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _08098892 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _080988A0 +_08098892: + adds r0, r4, #0 + bl sub_080989C0 + b _080988B4 + .align 2, 0 +_0809889C: .4byte gUnk_03003F80 +_080988A0: + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080988B4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080988B4 + bl sub_0805E780 +_080988B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080988B8 +sub_080988B8: @ 0x080988B8 + push {lr} + adds r2, r0, #0 + ldr r0, _080988CC @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + cmp r0, #0 + bne _080988D0 + adds r0, r2, #0 + bl sub_080989C0 + b _080988D8 + .align 2, 0 +_080988CC: .4byte gUnk_03003F80 +_080988D0: + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_080988D8: + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_123 +nullsub_123: @ 0x080988DC + bx lr + .align 2, 0 + + thumb_func_start sub_080988E0 +sub_080988E0: @ 0x080988E0 + push {lr} + bl sub_080989C0 + pop {pc} + + thumb_func_start sub_080988E8 +sub_080988E8: @ 0x080988E8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080988FA + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080988FA: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0809890E + adds r0, r4, #0 + bl sub_080989C0 +_0809890E: + pop {r4, pc} + + thumb_func_start sub_08098910 +sub_08098910: @ 0x08098910 + push {lr} + bl sub_080989C0 + pop {pc} + + thumb_func_start sub_08098918 +sub_08098918: @ 0x08098918 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080989E4 + adds r6, r0, #0 + cmp r6, #0 + bne _0809892E + adds r0, r4, #0 + bl sub_080989C0 + b _080989BC +_0809892E: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r6, #0x10] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _08098990 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08098968 + adds r0, #1 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 +_08098968: + ldr r2, _0809898C @ =gUnk_08123558 + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, #8 + movs r1, #0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] + b _080989BC + .align 2, 0 +_0809898C: .4byte gUnk_08123558 +_08098990: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080989B2 + strb r5, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 +_080989B2: + strh r5, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #3 + strb r0, [r1] +_080989BC: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080989C0 +sub_080989C0: @ 0x080989C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080989E4 + cmp r0, #0 + beq _080989D2 + ldr r1, [r4, #0x50] + movs r0, #0 + str r0, [r1, #0x54] +_080989D2: + ldrb r1, [r4, #0xa] + adds r1, #3 + adds r0, r4, #0 + movs r2, #0 + bl CreateFX + bl sub_0805E780 + pop {r4, pc} + + thumb_func_start sub_080989E4 +sub_080989E4: @ 0x080989E4 + push {lr} + ldr r1, [r0, #0x50] + cmp r1, #0 + beq _080989F4 + ldr r0, [r1, #4] + cmp r0, #0 + bne _080989F4 + movs r1, #0 +_080989F4: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_080989F8 +sub_080989F8: @ 0x080989F8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08098A08 + bl sub_0805E780 +_08098A08: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08098A44 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x28 + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08098A38 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _08098A44 +_08098A38: + cmp r0, #2 + bne _08098A44 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_08098A44: + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #0 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08098A76 + ldr r3, [r4, #0x54] + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r3, #0x1e] + adds r0, #0x1f + strb r0, [r4, #0x1e] +_08098A76: + pop {r4, pc} + + thumb_func_start sub_08098A78 +sub_08098A78: @ 0x08098A78 + push {lr} + ldr r2, _08098A8C @ =gUnk_08123568 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098A8C: .4byte gUnk_08123568 + + thumb_func_start sub_08098A90 +sub_08098A90: @ 0x08098A90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08098A9C + movs r0, #2 +_08098A9C: + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x7f + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + ldr r1, _08098ACC @ =gUnk_08123574 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r4, #0xb] + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_08098ACC: .4byte gUnk_08123574 + + thumb_func_start sub_08098AD0 +sub_08098AD0: @ 0x08098AD0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08098AE6 + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] +_08098AE6: + pop {pc} + + thumb_func_start sub_08098AE8 +sub_08098AE8: @ 0x08098AE8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08098B08 + movs r0, #0xfe + ands r0, r1 + strb r0, [r4] + ldr r0, _08098B0C @ =0x0000021B + bl sub_08004488 +_08098B08: + pop {r4, pc} + .align 2, 0 +_08098B0C: .4byte 0x0000021B + + thumb_func_start sub_08098B10 +sub_08098B10: @ 0x08098B10 + push {lr} + ldr r2, _08098B24 @ =gUnk_08123664 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098B24: .4byte gUnk_08123664 + + thumb_func_start sub_08098B28 +sub_08098B28: @ 0x08098B28 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r2, [r5, #0xa] + lsls r2, r2, #1 + ldr r0, _08098BD4 @ =gUnk_0812366C + adds r2, r2, r0 + movs r3, #1 + movs r4, #1 + strb r4, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x1e] + ldrb r0, [r2] + adds r1, r5, #0 + adds r1, #0x82 + strb r0, [r1] + ldrb r0, [r2, #1] + adds r2, r5, #0 + adds r2, #0x83 + strb r0, [r2] + ldrb r0, [r1] + lsrs r0, r0, #1 + ldrh r1, [r5, #0x2e] + subs r1, r1, r0 + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r0, [r2] + lsrs r0, r0, #1 + ldrh r1, [r5, #0x32] + subs r1, r1, r0 + subs r2, #9 + strh r1, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _08098BD8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r6, r5, #0 + adds r6, #0x80 + strh r1, [r6] + adds r7, r5, #0 + adds r7, #0x38 + strb r4, [r7] + adds r0, r5, #0 + bl sub_08016A04 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08098BCA + ldr r0, _08098BDC @ =0x00004074 + ldrh r1, [r6] + subs r1, #0x40 + ldrb r2, [r7] + bl sub_0800015E +_08098BCA: + adds r0, r5, #0 + bl sub_08098BE8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08098BD4: .4byte gUnk_0812366C +_08098BD8: .4byte gRoomControls +_08098BDC: .4byte 0x00004074 + + thumb_func_start sub_08098BE0 +sub_08098BE0: @ 0x08098BE0 + push {lr} + bl sub_08098BE8 + pop {pc} + + thumb_func_start sub_08098BE8 +sub_08098BE8: @ 0x08098BE8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08098C28 @ =gUnk_03003F80 + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08098C26 + ldr r4, _08098C2C @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08098C30 + cmp r0, #0 + beq _08098C26 + bl sub_08079F8C + cmp r0, #0 + beq _08098C26 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08098C26 + movs r0, #1 + strb r0, [r6, #0x14] + adds r0, r5, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_0807AAF8 +_08098C26: + pop {r4, r5, r6, pc} + .align 2, 0 +_08098C28: .4byte gUnk_03003F80 +_08098C2C: .4byte gLinkEntity + + thumb_func_start sub_08098C30 +sub_08098C30: @ 0x08098C30 + push {r4, lr} + adds r3, r0, #0 + movs r4, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + adds r0, r3, #0 + adds r0, #0x78 + ldrh r0, [r0] + subs r2, r2, r0 + movs r0, #0x32 + ldrsh r1, [r1, r0] + adds r0, r3, #0 + adds r0, #0x7a + ldrh r0, [r0] + subs r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r2, r0 + bhi _08098C64 + adds r0, r3, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r1, r0 + bhi _08098C64 + movs r4, #1 +_08098C64: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_08098C68 +sub_08098C68: @ 0x08098C68 + push {lr} + ldr r2, _08098C7C @ =gUnk_08123674 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098C7C: .4byte gUnk_08123674 + + thumb_func_start sub_08098C80 +sub_08098C80: @ 0x08098C80 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + strb r0, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08098CC8 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldr r0, _08098CCC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08098CD0 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + b _08098CD6 + .align 2, 0 +_08098CC8: .4byte gRoomControls +_08098CCC: .4byte gUnk_03003F80 +_08098CD0: + adds r0, r4, #0 + adds r0, #0x38 + strb r5, [r0] +_08098CD6: + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + subs r1, #0x40 + movs r0, #0x47 + movs r2, #1 + bl sub_08000148 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start nullsub_124 +nullsub_124: @ 0x08098CF0 + bx lr + .align 2, 0 + + thumb_func_start sub_08098CF4 +sub_08098CF4: @ 0x08098CF4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08098D14 + ldr r0, _08098D10 @ =gUnk_0812367C + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08098D1A + .align 2, 0 +_08098D10: .4byte gUnk_0812367C +_08098D14: + adds r0, r2, #0 + bl sub_08098E3C +_08098D1A: + pop {pc} + + thumb_func_start sub_08098D1C +sub_08098D1C: @ 0x08098D1C + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldr r0, _08098D40 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + cmp r0, #0 + beq _08098D44 + bl sub_0807CBE4 + cmp r0, #0 + bne _08098D44 + strb r5, [r4, #0xc] + b _08098D5A + .align 2, 0 +_08098D40: .4byte 0x0000FFF0 +_08098D44: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08098E88 +_08098D5A: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + pop {r4, r5, pc} + + thumb_func_start sub_08098D6C +sub_08098D6C: @ 0x08098D6C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08098D9A + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x2d + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x43 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08098D9A + ldrh r0, [r1, #0x32] + adds r0, #8 + strh r0, [r1, #0x32] +_08098D9A: + pop {r4, pc} + + thumb_func_start sub_08098D9C +sub_08098D9C: @ 0x08098D9C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08098DC2 + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + bl sub_08098E88 +_08098DC2: + pop {pc} + + thumb_func_start sub_08098DC4 +sub_08098DC4: @ 0x08098DC4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08098E2C @ =gLinkEntity + adds r1, r6, #0 + movs r2, #8 + movs r3, #8 + bl sub_0800419C + cmp r0, #0 + beq _08098E24 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FA24 + adds r0, r5, #0 + bl sub_08004542 + adds r0, r6, #0 + bl sub_08004542 + adds r0, r6, #0 + adds r0, #0x38 + movs r4, #1 + strb r4, [r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FAB0 + ldr r1, _08098E30 @ =gUnk_03003F80 + movs r0, #0x1f + strb r0, [r1, #0xc] + adds r0, r1, #0 + adds r0, #0x38 + strb r4, [r0] + ldrb r0, [r5, #0xb] + adds r1, #0x39 + strb r0, [r1] + movs r1, #4 + strb r1, [r5, #0xc] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08098E20 + movs r0, #0x23 + bl sub_0807CD04 +_08098E20: + bl sub_08077B20 +_08098E24: + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, r6, pc} + .align 2, 0 +_08098E2C: .4byte gLinkEntity +_08098E30: .4byte gUnk_03003F80 + + thumb_func_start sub_08098E34 +sub_08098E34: @ 0x08098E34 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08098E3C +sub_08098E3C: @ 0x08098E3C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08098E5E + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080042AC +_08098E5E: + ldrb r1, [r4, #0xa] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r0, r0, #1 + ldr r1, _08098E84 @ =gUnk_08123690 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08098E84: .4byte gUnk_08123690 + + thumb_func_start sub_08098E88 +sub_08098E88: @ 0x08098E88 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x82 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08098EB0 + ldr r3, _08098ED8 @ =0xFFFF0000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #8 + strb r0, [r1] +_08098EB0: + movs r0, #0x82 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08098ED4 + ldr r3, _08098EDC @ =0xFFFE0000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0x10 + strb r0, [r1] +_08098ED4: + pop {r4, r5, pc} + .align 2, 0 +_08098ED8: .4byte 0xFFFF0000 +_08098EDC: .4byte 0xFFFE0000 + + thumb_func_start sub_08098EE0 +sub_08098EE0: @ 0x08098EE0 + push {lr} + ldr r2, _08098EF4 @ =gUnk_081236DC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098EF4: .4byte gUnk_081236DC + + thumb_func_start sub_08098EF8 +sub_08098EF8: @ 0x08098EF8 + push {lr} + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #5 + orrs r1, r2 + strb r1, [r3] + bl sub_08098FCC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08098F14 +sub_08098F14: @ 0x08098F14 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080990EC + cmp r0, #0 + beq _08098F84 + movs r6, #0 + movs r0, #2 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x72 + ldrh r1, [r1] + ldrb r2, [r4] + bl sub_0800015E + movs r0, #0x99 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r5, #0 + movs r1, #0x1e + bl sub_0805E4E0 + bl sub_08079F8C + cmp r0, #0 + beq _08098F84 + ldr r2, _08098F88 @ =gUnk_03003F80 + movs r0, #0x98 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08098F8C @ =gLinkEntity + strh r6, [r1, #0x2c] + strh r6, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] +_08098F84: + pop {r4, r5, r6, pc} + .align 2, 0 +_08098F88: .4byte gUnk_03003F80 +_08098F8C: .4byte gLinkEntity + + thumb_func_start sub_08098F90 +sub_08098F90: @ 0x08098F90 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08098FC8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08098FB8 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _08098FC2 +_08098FB8: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 +_08098FC2: + adds r0, r4, #0 + bl sub_08098FCC +_08098FC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08098FCC +sub_08098FCC: @ 0x08098FCC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x84 + movs r1, #0x3c + strh r1, [r2] + bl sub_08098FE0 + pop {pc} + + thumb_func_start sub_08098FE0 +sub_08098FE0: @ 0x08098FE0 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0809906C + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r1, _08099060 @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + adds r1, #0x10 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r5, r6, #0 + adds r5, #0x70 + strh r2, [r5] + subs r2, #0x40 + adds r7, r6, #0 + adds r7, #0x72 + strh r2, [r7] + ldrh r0, [r5] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r0, [r7] + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r0, _08099064 @ =0x00004057 + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08099068 @ =0x00004058 + ldrh r1, [r7] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + movs r1, #1 + bl sub_08004260 + b _080990DC + .align 2, 0 +_08099060: .4byte gRoomControls +_08099064: .4byte 0x00004057 +_08099068: .4byte 0x00004058 +_0809906C: + movs r0, #1 + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _080990E0 @ =gRoomControls + ldrh r0, [r2, #6] + adds r0, #0x10 + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r6, #0 + adds r5, #0x70 + strh r1, [r5] + subs r1, #1 + adds r7, r6, #0 + adds r7, #0x72 + strh r1, [r7] + ldrh r0, [r5] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r0, [r7] + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r0, _080990E4 @ =0x00004055 + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _080990E8 @ =0x00004056 + ldrh r1, [r7] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 +_080990DC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080990E0: .4byte gRoomControls +_080990E4: .4byte 0x00004055 +_080990E8: .4byte 0x00004056 + + thumb_func_start sub_080990EC +sub_080990EC: @ 0x080990EC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x72 + ldrh r0, [r6] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + ldr r1, _0809911C @ =0x00004059 + cmp r0, r1 + bne _08099140 + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08099120 + movs r0, #1 + b _08099156 + .align 2, 0 +_0809911C: .4byte 0x00004059 +_08099120: + adds r0, r4, #0 + bl sub_08099158 + ldr r1, _0809913C @ =gUnk_081236E8 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6] + ldrb r2, [r5] + bl sub_0800015E + b _08099154 + .align 2, 0 +_0809913C: .4byte gUnk_081236E8 +_08099140: + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x62 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] +_08099154: + movs r0, #0 +_08099156: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099158 +sub_08099158: @ 0x08099158 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xb] + ldr r4, _08099198 @ =gUnk_081236F4 + cmp r0, #0 + bne _08099166 + ldr r4, _0809919C @ =gUnk_081236EC +_08099166: + adds r2, r3, #0 + adds r2, #0x84 + ldrh r0, [r2] + lsrs r0, r0, #2 + movs r1, #6 + ands r0, r1 + adds r4, r4, r0 + ldrb r0, [r4] + adds r1, r3, #0 + adds r1, #0x62 + strb r0, [r1] + ldrb r1, [r4, #1] + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] + ldrh r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08099194 + ldr r0, _080991A0 @ =0x00000131 + bl sub_08004488 +_08099194: + pop {r4, pc} + .align 2, 0 +_08099198: .4byte gUnk_081236F4 +_0809919C: .4byte gUnk_081236EC +_080991A0: .4byte 0x00000131 + + thumb_func_start sub_080991A4 +sub_080991A4: @ 0x080991A4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #2 + bhi _080991C4 + ldr r0, _080991C0 @ =gUnk_08123734 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080991CA + .align 2, 0 +_080991C0: .4byte gUnk_08123734 +_080991C4: + adds r0, r2, #0 + bl sub_080996AC +_080991CA: + pop {pc} + + thumb_func_start sub_080991CC +sub_080991CC: @ 0x080991CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bgt _080991EC + cmp r0, #0 + blt _080991EC + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080991EC + bl sub_0805E780 +_080991EC: + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldr r0, _08099244 @ =gUnk_080FD408 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_08099468 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0x84 + movs r1, #3 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _08099242 + str r4, [r0, #0x50] +_08099242: + pop {r4, pc} + .align 2, 0 +_08099244: .4byte gUnk_080FD408 + + thumb_func_start sub_08099248 +sub_08099248: @ 0x08099248 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0809963C + cmp r0, #0 + beq _08099280 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldr r0, _0809927C @ =0x000001B3 + bl sub_08004488 + adds r0, r4, #0 + bl sub_08099330 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809930E + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0809930E + .align 2, 0 +_0809927C: .4byte 0x000001B3 +_08099280: + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0809930E + adds r7, r4, #0 + adds r7, #0x70 + ldrh r0, [r7] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080002B0 + adds r5, r0, #0 + ldr r0, _080992B8 @ =0x0000405A + cmp r5, r0 + beq _0809930E + adds r0, r5, #0 + bl sub_08099618 + cmp r0, #1 + beq _080992BC + cmp r0, #1 + blo _080992DC + cmp r0, #2 + beq _08099308 + b _0809930E + .align 2, 0 +_080992B8: .4byte 0x0000405A +_080992BC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x16 + strb r0, [r4, #0xe] + adds r0, r5, #0 + subs r0, #0x5b + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_080994B8 + b _0809930E +_080992DC: + movs r0, #0xf + movs r1, #0xd + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080992F2 + adds r0, r4, #0 + bl sub_0806FA24 +_080992F2: + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + ldrh r1, [r7] + ldrb r2, [r6] + bl sub_0800015E + adds r0, r4, #0 + bl sub_0805E7BC + b _0809930E +_08099308: + adds r0, r4, #0 + adds r0, #0x6c + strh r5, [r0] +_0809930E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08099310 +sub_08099310: @ 0x08099310 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809953C + cmp r0, #0 + beq _0809932E + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08099468 + movs r0, #0xd9 + lsls r0, r0, #1 + bl sub_08004488 +_0809932E: + pop {r4, pc} + + thumb_func_start sub_08099330 +sub_08099330: @ 0x08099330 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809963C + adds r1, r0, #0 + cmp r1, #0 + bne _0809935E + ldrb r0, [r4, #0xe] + cmp r0, #1 + bls _0809934A + subs r0, #2 + strb r0, [r4, #0xe] + b _0809934C +_0809934A: + strb r1, [r4, #0xe] +_0809934C: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08099364 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805EC60 + b _080993CA +_0809935E: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08099364: + movs r1, #0x80 + lsls r1, r1, #1 + ldr r2, _0809939C @ =gUnk_08123748 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080993A0 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r3, [r0] + adds r0, r4, #0 + movs r1, #0x53 + movs r2, #0 + bl sub_080A2A3C + movs r0, #0x72 + bl sub_080A3268 + b _080993BA + .align 2, 0 +_0809939C: .4byte gUnk_08123748 +_080993A0: + cmp r0, #2 + bne _080993BA + adds r0, r4, #0 + adds r0, #0x86 + ldrh r3, [r0] + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl sub_080A2A3C + movs r0, #0x72 + bl sub_080A3268 +_080993BA: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080993CA: + pop {r4, pc} + + thumb_func_start sub_080993CC +sub_080993CC: @ 0x080993CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080993E2 + bl sub_0805E780 + b _08099466 +_080993E2: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x30 + bne _08099400 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_08099400: + movs r1, #0x80 + lsls r1, r1, #1 + ldrb r0, [r5, #0xe] + movs r2, #0x3c + subs r2, r2, r0 + lsls r2, r2, #5 + adds r2, r2, r1 + adds r0, r5, #0 + movs r3, #0 + bl sub_0805EC9C + ldrb r1, [r5, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08099466 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r6, r0, #0 + cmp r6, #0 + beq _08099466 + bl sub_08000E50 + adds r4, r0, #0 + asrs r0, r4, #0x10 + movs r1, #9 + bl __modsi3 + adds r2, r0, #0 + subs r2, #4 + movs r3, #0xf + ands r3, r4 + adds r4, r6, #0 + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4] + lsls r2, r2, #0x10 + rsbs r3, r3, #0 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + bl PositionRelative +_08099466: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099468 +sub_08099468: @ 0x08099468 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _080994B0 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x6c + strh r0, [r1] + ldr r0, _080994B4 @ =0x0000405A + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_080994B0: .4byte gRoomControls +_080994B4: .4byte 0x0000405A + + thumb_func_start sub_080994B8 +sub_080994B8: @ 0x080994B8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08099530 @ =0x000001B1 + bl sub_08004488 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r6, r5, #0 + adds r6, #0x70 + ldrh r1, [r6] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldrb r0, [r4] + cmp r0, #2 + bne _080994F8 + ldrh r0, [r6] + movs r1, #1 + bl sub_080002B0 + ldr r1, _08099534 @ =0x0000405A + cmp r0, r1 + bne _080994F8 + movs r0, #0xc4 + lsls r0, r0, #2 + ldrh r1, [r6] + movs r2, #1 + bl sub_08000152 +_080994F8: + adds r2, r5, #0 + adds r2, #0x70 + ldr r1, _08099538 @ =gUnk_080B4488 + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + ldrh r2, [r2] + adds r0, r0, r2 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x79 + beq _08099524 + cmp r0, #0x77 + bne _0809952C +_08099524: + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] +_0809952C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08099530: .4byte 0x000001B1 +_08099534: .4byte 0x0000405A +_08099538: .4byte gUnk_080B4488 + + thumb_func_start sub_0809953C +sub_0809953C: @ 0x0809953C + push {r4, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + bne _08099612 + adds r0, r4, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_0800445C + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _08099570 + ldrh r0, [r4, #0x24] + adds r0, #0x10 + strh r0, [r4, #0x24] + subs r0, r1, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08099570 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_08099570: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _080995A0 + cmp r0, #1 + bgt _08099582 + cmp r0, #0 + beq _08099588 + b _080995E6 +_08099582: + cmp r0, #2 + beq _080995BA + b _080995E6 +_08099588: + ldrh r1, [r4, #0x2a] + movs r0, #0xe + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x32] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bls _080995D0 + b _080995DE +_080995A0: + ldrh r1, [r4, #0x2a] + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bls _080995FE + b _080995DE +_080995BA: + ldrh r1, [r4, #0x2a] + movs r0, #0xe0 + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x32] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bhi _080995DE +_080995D0: + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x32] + movs r0, #1 + b _08099614 +_080995DE: + adds r0, r4, #0 + bl sub_0809969C + b _08099612 +_080995E6: + ldrh r1, [r4, #0x2a] + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bhi _0809960C +_080995FE: + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x2e] + movs r0, #1 + b _08099614 +_0809960C: + adds r0, r4, #0 + bl sub_0809969C +_08099612: + movs r0, #0 +_08099614: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099618 +sub_08099618: @ 0x08099618 + push {lr} + adds r2, r0, #0 + ldr r1, _08099620 @ =gUnk_08123750 + b _08099630 + .align 2, 0 +_08099620: .4byte gUnk_08123750 +_08099624: + ldrh r0, [r1] + cmp r0, r2 + bne _0809962E + ldrh r0, [r1, #2] + b _08099638 +_0809962E: + adds r1, #4 +_08099630: + ldrh r0, [r1] + cmp r0, #0 + bne _08099624 + movs r0, #0 +_08099638: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809963C +sub_0809963C: @ 0x0809963C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _08099684 + bl sub_0804B128 + adds r4, r0, #0 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _08099684 + ldr r0, _08099694 @ =gRoomControls + ldrh r1, [r0, #6] + ldrh r2, [r4, #2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r0, [r0, #8] + ldrh r6, [r4, #4] + adds r0, r0, r6 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r2, [r4, #6] + movs r6, #0x2e + ldrsh r0, [r5, r6] + subs r0, r0, r1 + cmp r2, r0 + blo _08099684 + ldrh r1, [r4, #8] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r0, r0, r3 + cmp r1, r0 + bhs _08099698 +_08099684: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + beq _08099698 + movs r0, #0 + b _0809969A + .align 2, 0 +_08099694: .4byte gRoomControls +_08099698: + movs r0, #1 +_0809969A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809969C +sub_0809969C: @ 0x0809969C + push {lr} + movs r1, #0xd + movs r2, #0 + bl CreateFX + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080996AC +sub_080996AC: @ 0x080996AC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080996BC + bl sub_0805E780 +_080996BC: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080996CE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_080996CE: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bhi _08099726 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08099706 + movs r0, #0 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x78 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] +_08099706: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #0x11 + strb r0, [r1] + b _08099730 +_08099726: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08099730: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099734 +sub_08099734: @ 0x08099734 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #3 + bhi _08099754 + ldr r0, _08099750 @ =gUnk_081237A0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0809975A + .align 2, 0 +_08099750: .4byte gUnk_081237A0 +_08099754: + adds r0, r2, #0 + bl sub_08099D30 +_0809975A: + pop {pc} + + thumb_func_start sub_0809975C +sub_0809975C: @ 0x0809975C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08099770 + bl sub_0805E780 +_08099770: + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldr r0, _080997C8 @ =gUnk_080FD190 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_08099910 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0x85 + movs r1, #4 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _080997C6 + str r4, [r0, #0x50] +_080997C6: + pop {r4, pc} + .align 2, 0 +_080997C8: .4byte gUnk_080FD190 + + thumb_func_start sub_080997CC +sub_080997CC: @ 0x080997CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0809963C + cmp r0, #0 + beq _080997EC + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xe] + ldr r0, _080997F0 @ =0x000001B3 + bl sub_08004488 + adds r0, r4, #0 + bl sub_080997F4 +_080997EC: + pop {r4, pc} + .align 2, 0 +_080997F0: .4byte 0x000001B3 + + thumb_func_start sub_080997F4 +sub_080997F4: @ 0x080997F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809963C + adds r1, r0, #0 + cmp r1, #0 + bne _08099822 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bls _0809980E + subs r0, #2 + strb r0, [r4, #0xe] + b _08099810 +_0809980E: + strb r1, [r4, #0xe] +_08099810: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08099828 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805EC60 + b _0809987C +_08099822: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08099828: + ldr r1, _08099858 @ =gUnk_081237B0 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #5 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0809986C + cmp r0, #2 + beq _0809985C + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0809986C + .align 2, 0 +_08099858: .4byte gUnk_081237B0 +_0809985C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r3, [r0] + adds r0, r4, #0 + movs r1, #0x53 + movs r2, #0 + bl sub_080A2A3C +_0809986C: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_0809987C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099880 +sub_08099880: @ 0x08099880 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08099896 + bl sub_0805E780 + b _0809990E +_08099896: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x30 + bne _080998A4 + adds r0, r5, #0 + bl sub_08099C18 +_080998A4: + ldrb r0, [r5, #0xe] + movs r4, #0x3c + subs r4, r4, r0 + lsls r4, r4, #5 + movs r1, #0x80 + lsls r1, r1, #1 + adds r4, r4, r1 + adds r0, r5, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #2 + movs r3, #0 + bl sub_0806FCF4 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r6, r0, #0 + cmp r6, #0 + beq _0809990E + bl sub_08000E50 + adds r4, r0, #0 + asrs r0, r4, #0x10 + movs r1, #0x21 + bl __modsi3 + adds r2, r0, #0 + subs r2, #0x10 + movs r0, #0xf + ands r0, r4 + subs r4, r0, #4 + adds r3, r6, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + lsls r2, r2, #0x10 + lsls r3, r4, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + bl PositionRelative +_0809990E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099910 +sub_08099910: @ 0x08099910 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _08099968 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r6, r0, #4 + movs r2, #0x3f + ands r6, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r6, r0 + adds r0, r4, #0 + adds r0, #0x6e + strh r6, [r0] + ldrh r2, [r4, #0x2e] + movs r0, #8 + adds r1, r0, #0 + ands r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x13 + ldrh r2, [r4, #0x32] + ands r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x12 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + cmp r1, #2 + beq _08099A4C + cmp r1, #2 + bhi _0809996C + cmp r1, #1 + beq _080999A8 + b _08099972 + .align 2, 0 +_08099968: .4byte gRoomControls +_0809996C: + cmp r1, #3 + bne _08099972 + b _08099AF0 +_08099972: + ldr r5, _080999A4 @ =0x00004022 + adds r1, r6, #0 + subs r1, #0x41 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + subs r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0800015E + b _08099BF0 + .align 2, 0 +_080999A4: .4byte 0x00004022 +_080999A8: + adds r5, r6, #0 + subs r5, #0x41 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A40 @ =0x00004024 + cmp r0, #0x12 + bne _080999C0 + adds r1, #0x55 +_080999C0: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + ldr r7, _08099A44 @ =0x00004022 + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r7, #0 + bl sub_0800015E + adds r5, r6, #0 + subs r5, #0x3f + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A48 @ =0x00004025 + cmp r0, #0x12 + bne _080999EE + adds r1, #0x56 +_080999EE: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + subs r5, r6, #1 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A40 @ =0x00004024 + cmp r0, #0x12 + bne _08099A0C + adds r1, #0x55 +_08099A0C: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + ldrb r2, [r4] + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_0800015E + adds r5, r6, #1 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A48 @ =0x00004025 + cmp r0, #0x12 + bne _08099A32 + adds r1, #0x56 +_08099A32: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + b _08099BF0 + .align 2, 0 +_08099A40: .4byte 0x00004024 +_08099A44: .4byte 0x00004022 +_08099A48: .4byte 0x00004025 +_08099A4C: + adds r7, r6, #0 + subs r7, #0x41 + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AE4 @ =0x00004023 + cmp r0, #0x12 + bne _08099A66 + adds r1, #0x54 +_08099A66: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r7, #0 + bl sub_0800015E + adds r4, r6, #0 + subs r4, #0x40 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AE4 @ =0x00004023 + cmp r0, #0x12 + bne _08099A86 + adds r1, #0x54 +_08099A86: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0800015E + ldr r4, _08099AE8 @ =0x00004022 + subs r1, r6, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrb r2, [r5] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0800015E + adds r4, r6, #0 + adds r4, #0x3f + adds r0, r4, #0 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AEC @ =0x00004026 + cmp r0, #0x12 + bne _08099ABA + adds r1, #0x56 +_08099ABA: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0800015E + adds r4, r6, #0 + adds r4, #0x40 + adds r0, r4, #0 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AEC @ =0x00004026 + cmp r0, #0x12 + bne _08099AD8 + adds r1, #0x56 +_08099AD8: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0800015E + b _08099BF0 + .align 2, 0 +_08099AE4: .4byte 0x00004023 +_08099AE8: .4byte 0x00004022 +_08099AEC: .4byte 0x00004026 +_08099AF0: + adds r5, r6, #0 + subs r5, #0x41 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099BF4 @ =0x00004027 + cmp r0, #0x12 + bne _08099B08 + adds r1, #0x4e +_08099B08: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + adds r5, r6, #0 + subs r5, #0x40 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099BF8 @ =0x00004023 + cmp r0, #0x12 + bne _08099B28 + adds r1, #0x54 +_08099B28: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + adds r5, r6, #0 + subs r5, #0x3f + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099BFC @ =0x00004028 + cmp r0, #0x12 + bne _08099B48 + adds r1, #0x4e +_08099B48: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + subs r5, r6, #1 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C00 @ =0x00004024 + cmp r0, #0x12 + bne _08099B66 + adds r1, #0x55 +_08099B66: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + ldr r0, _08099C04 @ =0x00004022 + ldrb r2, [r4] + adds r1, r6, #0 + bl sub_0800015E + adds r5, r6, #1 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C08 @ =0x00004025 + cmp r0, #0x12 + bne _08099B8C + adds r1, #0x56 +_08099B8C: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + adds r5, r6, #0 + adds r5, #0x3f + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C0C @ =0x00004029 + cmp r0, #0x12 + bne _08099BAA + adds r1, #0x4f +_08099BAA: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + adds r5, r6, #0 + adds r5, #0x40 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C10 @ =0x00004026 + cmp r0, #0x12 + bne _08099BC8 + adds r1, #0x56 +_08099BC8: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + adds r5, r6, #0 + adds r5, #0x41 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C14 @ =0x0000402A + cmp r0, #0x12 + bne _08099BE6 + adds r1, #0x50 +_08099BE6: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E +_08099BF0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08099BF4: .4byte 0x00004027 +_08099BF8: .4byte 0x00004023 +_08099BFC: .4byte 0x00004028 +_08099C00: .4byte 0x00004024 +_08099C04: .4byte 0x00004022 +_08099C08: .4byte 0x00004025 +_08099C0C: .4byte 0x00004029 +_08099C10: .4byte 0x00004026 +_08099C14: .4byte 0x0000402A + + thumb_func_start sub_08099C18 +sub_08099C18: @ 0x08099C18 + push {r4, r5, lr} + adds r1, r0, #0 + adds r0, #0x6e + ldrh r5, [r0] + subs r0, #2 + ldrh r0, [r0] + cmp r0, #2 + beq _08099C96 + cmp r0, #2 + bgt _08099C32 + cmp r0, #1 + beq _08099C60 + b _08099C36 +_08099C32: + cmp r0, #3 + beq _08099CD4 +_08099C36: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + b _08099D2C +_08099C60: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #1 + b _08099CCC +_08099C96: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 +_08099CCC: + ldrb r1, [r4] + bl sub_0807BA8C + b _08099D2C +_08099CD4: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r4] + bl sub_0807BA8C +_08099D2C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08099D30 +sub_08099D30: @ 0x08099D30 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08099D40 + bl sub_0805E780 +_08099D40: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08099D6A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_08099D6A: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #1 + bhi _08099DAA + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08099DA2 + movs r0, #0 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x78 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] +_08099DA2: + adds r0, r4, #0 + bl sub_08004274 + b _08099DB4 +_08099DAA: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08099DB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099DB8 +sub_08099DB8: @ 0x08099DB8 + push {lr} + ldr r2, _08099DCC @ =gUnk_081237F8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08099DCC: .4byte gUnk_081237F8 + + thumb_func_start sub_08099DD0 +sub_08099DD0: @ 0x08099DD0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + movs r6, #0 + movs r5, #1 + strb r5, [r0] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + strb r6, [r4, #0xd] + movs r0, #0x46 + bl GetInventoryValue + cmp r0, #0 + beq _08099E04 + movs r0, #4 + strb r0, [r4, #0xc] + strb r6, [r4, #0x1e] + b _08099E0E +_08099E04: + strb r5, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08099E0E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099E10 +sub_08099E10: @ 0x08099E10 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x74 + bl sub_0807CBD0 + cmp r0, #0 + beq _08099E54 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #1 + bne _08099E3E + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08099E3E + strb r0, [r5] + adds r0, r4, #0 + bl sub_08099ECC +_08099E3E: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08099E54 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08099E54: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08099E58 +sub_08099E58: @ 0x08099E58 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08099E88 + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _08099E88 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0x1e] +_08099E88: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099E8C +sub_08099E8C: @ 0x08099E8C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08099EC4 @ =gLinkEntity + movs r2, #0xc + movs r3, #0xc + bl sub_080041A0 + cmp r0, #0 + beq _08099EC2 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08099EB2 + adds r0, r4, #0 + bl sub_08099ECC + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 +_08099EB2: + movs r0, #0x75 + bl sub_0807CBD0 + cmp r0, #0 + beq _08099EC2 + movs r0, #7 + bl sub_0805B390 +_08099EC2: + pop {r4, pc} + .align 2, 0 +_08099EC4: .4byte gLinkEntity + + thumb_func_start nullsub_534 +nullsub_534: @ 0x08099EC8 + bx lr + .align 2, 0 + + thumb_func_start sub_08099ECC +sub_08099ECC: @ 0x08099ECC + push {r4, lr} + movs r4, #0 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r1, _08099EF4 @ =gLinkEntity + bl sub_0806FA24 + ldr r2, _08099EF8 @ =gUnk_03003F80 + movs r0, #3 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + strb r4, [r0] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + pop {r4, pc} + .align 2, 0 +_08099EF4: .4byte gLinkEntity +_08099EF8: .4byte gUnk_03003F80 + + thumb_func_start sub_08099EFC +sub_08099EFC: @ 0x08099EFC + push {lr} + ldr r2, _08099F10 @ =gUnk_08123840 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08099F10: .4byte gUnk_08123840 + + thumb_func_start sub_08099F14 +sub_08099F14: @ 0x08099F14 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + ldrb r0, [r5, #0xa] + cmp r0, #9 + bls _08099F2A + b _0809A1B6 +_08099F2A: + lsls r0, r0, #2 + ldr r1, _08099F34 @ =_08099F38 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08099F34: .4byte _08099F38 +_08099F38: @ jump table + .4byte _08099F60 @ case 0 + .4byte _08099F70 @ case 1 + .4byte _08099F82 @ case 2 + .4byte _0809A00C @ case 3 + .4byte _0809A0AA @ case 4 + .4byte _0809A0B0 @ case 5 + .4byte _0809A058 @ case 6 + .4byte _0809A11C @ case 7 + .4byte _0809A132 @ case 8 + .4byte _0809A1B0 @ case 9 +_08099F60: + adds r2, r5, #0 + adds r2, #0x79 + movs r0, #0 + movs r1, #0x96 + strb r1, [r2] + strb r0, [r5, #0xe] + movs r0, #0x1e + strb r0, [r5, #0xf] +_08099F70: + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + b _0809A1B6 +_08099F82: + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x80 + rsbs r0, r0, #0 + strb r0, [r5, #0x15] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08099FCE + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _08099FBC + cmp r1, #1 + blo _08099FB6 + cmp r1, #2 + beq _08099FC2 + cmp r1, #3 + beq _08099FC8 + b _08099FCE +_08099FB6: + ldrb r0, [r5, #0x15] + subs r0, #0x10 + b _08099FCC +_08099FBC: + ldrb r0, [r5, #0x15] + adds r0, #0x10 + b _08099FCC +_08099FC2: + ldrb r0, [r5, #0x15] + subs r0, #8 + b _08099FCC +_08099FC8: + ldrb r0, [r5, #0x15] + adds r0, #8 +_08099FCC: + strb r0, [r5, #0x15] +_08099FCE: + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + movs r1, #0xf0 + subs r1, r1, r0 + strh r1, [r5, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + lsls r1, r1, #8 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + ldrh r1, [r5, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + lsls r1, r1, #8 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r5, #0 + movs r1, #5 + bl sub_08004260 + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + b _0809A1B6 +_0809A00C: + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x80 + rsbs r0, r0, #0 + strb r0, [r5, #0x15] + movs r1, #0x90 + lsls r1, r1, #7 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0809A040 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + adds r0, r0, r1 + strb r0, [r5, #0x15] + b _0809A04E +_0809A040: + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + subs r1, r1, r0 + strb r1, [r5, #0x15] +_0809A04E: + adds r0, r5, #0 + movs r1, #6 + bl sub_08004260 + b _0809A1B6 +_0809A058: + bl sub_08000E50 + movs r1, #0x2f + ands r1, r0 + movs r4, #0x30 + subs r4, r4, r1 + lsls r4, r4, #8 + bl sub_08000E50 + movs r2, #0xff + ands r2, r0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806F62C + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0809A092 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + adds r0, r0, r1 + strb r0, [r5, #0x15] + b _0809A0A0 +_0809A092: + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + subs r1, r1, r0 + strb r1, [r5, #0x15] +_0809A0A0: + adds r0, r5, #0 + movs r1, #5 + bl sub_08004260 + b _0809A1B6 +_0809A0AA: + movs r0, #0xc3 + lsls r0, r0, #2 + b _0809A1B4 +_0809A0B0: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0x18 + str r0, [r5, #0x78] + adds r7, r5, #0 + adds r7, #0x76 + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r7] + adds r4, r5, #0 + adds r4, #0x74 + strh r0, [r4] + adds r6, r5, #0 + adds r6, #0x7a + strh r1, [r6] + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r1, [r0] + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + ldr r3, _0809A118 @ =gUnk_0812388C + ldrb r2, [r5, #0xb] + lsls r0, r2, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r3 + lsrs r1, r1, #0x18 + ldrh r0, [r0] + adds r1, r1, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r2, [r2] + adds r0, r5, #0 + bl sub_0806F62C + ldrh r1, [r7] + ldrh r2, [r4] + ldrh r3, [r6] + adds r0, r5, #0 + bl sub_0805EC9C + adds r0, r5, #0 + movs r1, #7 + bl sub_08004260 + b _0809A1B6 + .align 2, 0 +_0809A118: .4byte gUnk_0812388C +_0809A11C: + movs r0, #0 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #8 + bl sub_08004260 + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 + b _0809A1B6 +_0809A132: + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r0, [r0] + movs r1, #0 + strb r0, [r5, #0xb] + movs r0, #4 + strb r0, [r5, #0xe] + strb r1, [r5, #0xf] + ldr r3, _0809A1A0 @ =gRoomControls + ldrh r0, [r5, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + movs r1, #0xf8 + lsls r1, r1, #1 + adds r2, r1, #0 + ands r0, r2 + movs r1, #0x82 + adds r1, r1, r5 + mov ip, r1 + strh r0, [r1] + ldrh r1, [r5, #0x32] + ldrh r0, [r3, #8] + subs r1, r1, r0 + ands r1, r2 + adds r3, r5, #0 + adds r3, #0x80 + strh r1, [r3] + adds r4, r5, #0 + adds r4, #0x84 + mov r0, ip + ldrh r2, [r0] + subs r2, #0x10 + asrs r2, r2, #4 + lsrs r1, r1, #4 + lsls r0, r1, #5 + subs r0, r0, r1 + adds r2, r2, r0 + str r2, [r4] + mov r1, ip + ldrh r0, [r1] + ldrh r1, [r3] + ldrb r3, [r5, #0xb] + bl sub_0809A6F8 + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809A1A8 + ldr r0, _0809A1A4 @ =0x000001A3 + bl sub_080A3268 + b _0809A1B6 + .align 2, 0 +_0809A1A0: .4byte gRoomControls +_0809A1A4: .4byte 0x000001A3 +_0809A1A8: + movs r0, #0xe8 + bl sub_080A3268 + b _0809A1B6 +_0809A1B0: + movs r0, #0xf0 + lsls r0, r0, #1 +_0809A1B4: + str r0, [r5, #0x78] +_0809A1B6: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809A1B8 +sub_0809A1B8: @ 0x0809A1B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + adds r7, r0, #0 + bl sub_08004274 + ldrb r0, [r7, #0xa] + cmp r0, #9 + bls _0809A1D2 + b _0809A632 +_0809A1D2: + lsls r0, r0, #2 + ldr r1, _0809A1DC @ =_0809A1E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809A1DC: .4byte _0809A1E0 +_0809A1E0: @ jump table + .4byte _0809A208 @ case 0 + .4byte _0809A25C @ case 1 + .4byte _0809A33E @ case 2 + .4byte _0809A378 @ case 3 + .4byte _0809A394 @ case 4 + .4byte _0809A3E0 @ case 5 + .4byte _0809A378 @ case 6 + .4byte _0809A46C @ case 7 + .4byte _0809A47C @ case 8 + .4byte _0809A616 @ case 9 +_0809A208: + adds r1, r7, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #0 + beq _0809A25C + subs r0, #1 + strb r0, [r1] + ldrb r0, [r7, #0xf] + subs r0, #1 + strb r0, [r7, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, #0xb + str r1, [sp, #0x20] + cmp r0, #0xff + bne _0809A254 + movs r0, #5 + strb r0, [r7, #0xf] + ldrb r3, [r7, #0xb] + adds r0, r7, #0 + movs r1, #0x87 + movs r2, #1 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r7, #0x54] + cmp r1, #0 + beq _0809A24E + ldr r0, [r7, #0x50] + str r0, [r1, #0x50] + ldr r0, [r7, #0x54] + adds r0, #0x84 + ldr r2, [sp, #0x20] + ldr r1, [r2] + str r1, [r0] +_0809A24E: + ldrb r0, [r7, #0xb] + adds r0, #1 + strb r0, [r7, #0xb] +_0809A254: + ldr r1, [sp, #0x20] + ldr r0, [r1] + ldr r0, [r0, #0xc] + b _0809A474 +_0809A25C: + adds r4, r7, #0 + adds r4, #0x84 + ldr r1, [r4] + ldrb r0, [r7, #0xe] + lsls r0, r0, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r2, [r1] + ldr r0, [r2, #0x2c] + ldr r1, [r7, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r7, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r7, #0x15] + movs r2, #0x24 + ldrsh r1, [r7, r2] + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + bl sub_0806F62C + ldr r1, [r4] + ldrb r0, [r7, #0xe] + lsls r0, r0, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r7, #0 + movs r2, #2 + movs r3, #2 + bl sub_080041A0 + cmp r0, #0 + bne _0809A2A6 + b _0809A632 +_0809A2A6: + ldrb r0, [r7, #0xa] + cmp r0, #0 + bne _0809A2CC + ldr r1, [r4] + ldrb r0, [r7, #0xe] + lsls r0, r0, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r3, [r1] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + subs r0, #2 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0809A2CC: + ldrb r1, [r7, #0xe] + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r0, #1 + cmp r1, r0 + bne _0809A338 + movs r0, #2 + strb r0, [r7, #0xc] + movs r0, #0xf0 + strb r0, [r7, #0xe] + bl sub_08000E50 + ldr r6, _0809A330 @ =gUnk_0812384C + ldrb r2, [r7, #0xb] + movs r3, #0xf + movs r4, #0xf + adds r1, r4, #0 + ands r1, r2 + lsls r1, r1, #2 + adds r1, r1, r6 + ands r0, r3 + ldrb r1, [r1] + adds r0, r0, r1 + strb r0, [r7, #0x15] + bl sub_08000E50 + ldrb r1, [r7, #0xb] + ands r4, r1 + lsls r4, r4, #1 + adds r4, #1 + lsls r4, r4, #1 + adds r4, r4, r6 + ldr r2, _0809A334 @ =0x000001FF + adds r1, r2, #0 + ands r0, r1 + ldrh r4, [r4] + adds r0, r0, r4 + strh r0, [r7, #0x24] + ldrb r0, [r7, #0xa] + cmp r0, #0 + beq _0809A320 + b _0809A632 +_0809A320: + ldr r1, [r7, #0x50] + movs r0, #4 + strb r0, [r1, #0xc] + ldr r1, [r7, #0x50] + movs r0, #0 + strb r0, [r1, #0xd] + b _0809A632 + .align 2, 0 +_0809A330: .4byte gUnk_0812384C +_0809A334: .4byte 0x000001FF +_0809A338: + adds r0, r1, #1 + strb r0, [r7, #0xe] + b _0809A632 +_0809A33E: + ldr r1, [r7, #0x50] + ldrb r0, [r1, #0xb] + cmp r0, #3 + bne _0809A38E + adds r0, r1, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r2, [r0, #8] + ldr r0, [r2, #0x2c] + ldr r1, [r7, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r7, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r7, #0x15] + movs r1, #0xa0 + lsls r1, r1, #2 + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + bl sub_0806F62C + ldr r1, [r7, #0x50] + adds r0, r7, #0 + movs r2, #0x48 + bl sub_0806FC80 + b _0809A388 +_0809A378: + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + movs r1, #0x80 + bl sub_0806F62C + adds r0, r7, #0 + adds r0, #0x5a + ldrb r0, [r0] +_0809A388: + cmp r0, #0 + bne _0809A38E + b _0809A632 +_0809A38E: + bl sub_0805E780 + b _0809A632 +_0809A394: + ldr r3, [r7, #0x78] + cmp r3, #0 + bne _0809A3B4 + ldr r0, _0809A3B0 @ =gUnk_02034350 + movs r2, #0xc + ldrsh r1, [r0, r2] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _0809A38E + movs r0, #8 + bl sub_0805308C + b _0809A632 + .align 2, 0 +_0809A3B0: .4byte gUnk_02034350 +_0809A3B4: + ldr r2, [r7, #0x50] + adds r0, r2, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _0809A3C8 + movs r0, #1 + strb r0, [r7, #0xd] + str r1, [r7, #0x78] + b _0809A632 +_0809A3C8: + ldrb r0, [r7, #0xd] + cmp r0, #0 + bne _0809A3D6 + ldrb r0, [r2, #0xb] + cmp r0, #0 + beq _0809A3D6 + b _0809A632 +_0809A3D6: + movs r0, #1 + strb r0, [r7, #0xd] + subs r0, r3, #1 + str r0, [r7, #0x78] + b _0809A632 +_0809A3E0: + ldr r0, [r7, #0x78] + cmp r0, #0 + bne _0809A432 + adds r0, r7, #0 + adds r0, #0x76 + ldrh r2, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + adds r5, r0, #0 + cmp r2, r1 + bne _0809A40E + ldr r0, [r7, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + adds r4, r7, #0 + adds r4, #0x74 + cmp r0, #0 + beq _0809A420 + bl sub_0805E780 + b _0809A420 +_0809A40E: + adds r0, r2, #0 + subs r0, #0x20 + strh r0, [r5] + adds r1, r7, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #0x20 + strh r0, [r1] + adds r4, r1, #0 +_0809A420: + ldrh r1, [r5] + ldrh r2, [r4] + adds r0, r7, #0 + adds r0, #0x7a + ldrh r3, [r0] + adds r0, r7, #0 + bl sub_0805EC9C + b _0809A436 +_0809A432: + subs r0, #1 + str r0, [r7, #0x78] +_0809A436: + ldr r0, [r7, #0x50] + adds r1, r7, #0 + bl sub_0806FA24 + ldr r4, _0809A468 @ =gUnk_0812388C + ldrb r3, [r7, #0xb] + lsls r0, r3, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r1, [r0] + ldr r0, [r7, #0x50] + adds r0, #0x7b + ldrb r2, [r0] + rsbs r2, r2, #0 + lsls r2, r2, #0x18 + lsls r3, r3, #2 + adds r3, r3, r4 + lsrs r2, r2, #0x18 + ldrh r3, [r3] + adds r2, r2, r3 + adds r0, r7, #0 + bl sub_0806F62C + b _0809A632 + .align 2, 0 +_0809A468: .4byte gUnk_0812388C +_0809A46C: + ldrb r0, [r7, #0xe] + cmp r0, #0 + bne _0809A38E + ldr r0, [r7, #0x50] +_0809A474: + adds r1, r7, #0 + bl sub_0806FA24 + b _0809A632 +_0809A47C: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0809A48C + b _0809A632 +_0809A48C: + movs r0, #4 + strb r0, [r7, #0xe] + ldrb r0, [r7, #0xf] + adds r0, #1 + strb r0, [r7, #0xf] + adds r0, r7, #0 + adds r0, #0x84 + str r0, [sp, #4] + ldrb r1, [r7, #0xf] + lsls r0, r1, #5 + subs r0, r0, r1 + ldr r2, [sp, #4] + ldr r1, [r2] + subs r1, r1, r0 + mov sl, r1 + mov r0, sl + str r0, [sp] + adds r1, r7, #0 + adds r1, #0x82 + str r1, [sp, #8] + ldrh r0, [r1] + adds r2, r7, #0 + adds r2, #0x7e + str r2, [sp, #0xc] + strh r0, [r2] + ldrh r0, [r1] + subs r1, #8 + str r1, [sp, #0x10] + strh r0, [r1] + movs r2, #0x80 + adds r2, r2, r7 + mov sb, r2 + ldrb r0, [r7, #0xf] + lsls r0, r0, #4 + ldrh r1, [r2] + subs r1, r1, r0 + movs r0, #0x7c + adds r0, r0, r7 + mov r8, r0 + strh r1, [r0] + adds r4, r7, #0 + adds r4, #0x78 + strh r1, [r4] + ldr r1, [sp, #0x10] + ldrh r0, [r1] + ldrh r1, [r4] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r0, #0 + ldrb r6, [r7, #0xf] + ldr r2, [sp, #4] + str r2, [sp, #0x20] + ldr r0, [sp, #0x10] + str r0, [sp, #0x28] + ldr r1, [sp, #8] + str r1, [sp, #0x1c] + ldr r2, [sp, #0xc] + str r2, [sp, #0x30] + mov r0, sb + str r0, [sp, #0x34] + mov r1, r8 + str r1, [sp, #0x2c] + str r4, [sp, #0x24] + cmp r6, #0 + beq _0809A568 + ldr r2, [sp, #0x28] + str r2, [sp, #0x14] + mov sb, r4 + ldr r0, [sp, #0x30] + mov r8, r0 + adds r4, r1, #0 +_0809A51E: + ldr r1, [sp, #0x14] + ldrh r0, [r1] + subs r0, #0x10 + strh r0, [r1] + mov r2, sb + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r2] + ldr r0, [sp] + adds r0, #0x1e + str r0, [sp] + ldrh r0, [r1] + ldrh r1, [r2] + ldrb r3, [r7, #0xb] + ldr r2, [sp] + bl sub_0809A6F8 + adds r5, r5, r0 + mov r1, r8 + ldrh r0, [r1] + adds r0, #0x10 + strh r0, [r1] + ldrh r0, [r4] + adds r0, #0x10 + strh r0, [r4] + movs r2, #0x20 + add sl, r2 + ldrh r0, [r1] + ldrh r1, [r4] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r5, r0 + subs r6, #1 + cmp r6, #0 + bne _0809A51E +_0809A568: + ldrb r1, [r7, #0xf] + lsls r0, r1, #5 + subs r0, r0, r1 + ldr r2, [sp, #0x20] + ldr r1, [r2] + adds r1, r1, r0 + mov sl, r1 + mov r0, sl + str r0, [sp] + ldr r1, [sp, #0x1c] + ldrh r0, [r1] + ldr r2, [sp, #0x30] + strh r0, [r2] + ldrh r0, [r1] + ldr r1, [sp, #0x28] + strh r0, [r1] + ldrb r0, [r7, #0xf] + lsls r0, r0, #4 + ldr r2, [sp, #0x34] + ldrh r2, [r2] + adds r0, r0, r2 + ldr r1, [sp, #0x2c] + strh r0, [r1] + ldr r2, [sp, #0x24] + strh r0, [r2] + ldr r1, [sp, #0x28] + ldrh r0, [r1] + ldrh r1, [r2] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r5, r0 + ldrb r0, [r7, #0xf] + subs r6, r0, #1 + cmp r6, #0 + beq _0809A610 + ldr r2, [sp, #0x28] + str r2, [sp, #0x18] + ldr r0, [sp, #0x24] + mov sb, r0 + ldr r1, [sp, #0x30] + mov r8, r1 + ldr r4, [sp, #0x2c] +_0809A5C0: + ldr r2, [sp, #0x18] + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r2] + mov r1, sb + ldrh r0, [r1] + subs r0, #0x10 + strh r0, [r1] + ldr r2, [sp] + subs r2, #0x20 + str r2, [sp] + ldr r1, [sp, #0x18] + ldrh r0, [r1] + mov r2, sb + ldrh r1, [r2] + ldrb r3, [r7, #0xb] + ldr r2, [sp] + bl sub_0809A6F8 + adds r5, r5, r0 + mov r1, r8 + ldrh r0, [r1] + adds r0, #0x10 + strh r0, [r1] + ldrh r0, [r4] + subs r0, #0x10 + strh r0, [r4] + movs r2, #0x1e + rsbs r2, r2, #0 + add sl, r2 + ldrh r0, [r1] + ldrh r1, [r4] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r5, r0 + subs r6, #1 + cmp r6, #0 + bne _0809A5C0 +_0809A610: + cmp r5, #0 + bne _0809A632 + b _0809A38E +_0809A616: + bl sub_08078B48 + ldr r0, [r7, #0x78] + subs r0, #1 + str r0, [r7, #0x78] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0809A632 + ldr r1, _0809A640 @ =gRoomControls + ldr r0, _0809A644 @ =gLinkEntity + str r0, [r1, #0x30] + bl sub_0805E780 +_0809A632: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809A640: .4byte gRoomControls +_0809A644: .4byte gLinkEntity + + thumb_func_start sub_0809A648 +sub_0809A648: @ 0x0809A648 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + bl sub_08004274 + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0809A6EC + ldr r4, [r7, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + movs r2, #0x24 + ldrsh r1, [r7, r2] + adds r5, r1, #0 + muls r5, r0, r5 + adds r4, #0x7b + ldrb r1, [r4] + ldrb r0, [r7, #0x15] + subs r0, r0, r1 + movs r1, #0x7b + adds r1, r1, r7 + mov r8, r1 + strb r0, [r1] + ldr r6, _0809A6E8 @ =gUnk_080C9160 + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r5, r5, #8 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl sub_0806FA04 + ldr r1, [r7, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r7, #0x2c] + mov r1, r8 + ldrb r0, [r1] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0806FA04 + ldr r1, [r7, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r7, #0x30] + b _0809A6F0 + .align 2, 0 +_0809A6E8: .4byte gUnk_080C9160 +_0809A6EC: + bl sub_0805E780 +_0809A6F0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809A6F8 +sub_0809A6F8: @ 0x0809A6F8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r7, r3, #0 + bl sub_0809A758 + cmp r0, #0 + beq _0809A754 + ldr r0, _0809A738 @ =gUnk_081238A0 + lsls r1, r6, #1 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _0809A750 + movs r0, #1 + ands r0, r7 + cmp r0, #0 + beq _0809A73C + ldrh r0, [r1] + lsrs r1, r4, #4 + movs r3, #0x3f + ands r1, r3 + lsrs r2, r5, #4 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl sub_0807B9B8 + b _0809A750 + .align 2, 0 +_0809A738: .4byte gUnk_081238A0 +_0809A73C: + lsrs r0, r4, #4 + movs r2, #0x3f + ands r0, r2 + lsrs r1, r5, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #1 + bl sub_0807BA8C +_0809A750: + movs r0, #1 + b _0809A756 +_0809A754: + movs r0, #0 +_0809A756: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809A758 +sub_0809A758: @ 0x0809A758 + push {lr} + adds r2, r0, #0 + cmp r2, #0xf + bls _0809A770 + movs r0, #0xf8 + lsls r0, r0, #1 + cmp r2, r0 + bhi _0809A770 + cmp r1, #0xf0 + bhi _0809A770 + movs r0, #1 + b _0809A772 +_0809A770: + movs r0, #0 +_0809A772: + pop {pc} + + thumb_func_start sub_0809A774 +sub_0809A774: @ 0x0809A774 + push {lr} + ldr r2, _0809A788 @ =gUnk_08123C80 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809A788: .4byte gUnk_08123C80 + + thumb_func_start sub_0809A78C +sub_0809A78C: @ 0x0809A78C + push {r4, r5, lr} + adds r4, r0, #0 + movs r3, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r2, #0x80 + strb r2, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r5, r4, #0 + adds r5, #0x80 + strh r2, [r5] + adds r0, r4, #0 + adds r0, #0x78 + strh r3, [r0] + ldrh r0, [r4, #0x2e] + subs r0, #4 + strh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrh r2, [r5] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + adds r0, r4, #0 + bl sub_08016A04 + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0809A958 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809A7F4 +sub_0809A7F4: @ 0x0809A7F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0809AA00 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _0809A810 + subs r0, #1 + strb r0, [r4, #0xe] + b _0809A840 +_0809A810: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809A840 + ldrb r0, [r4, #0xf] + cmp r0, #3 + bne _0809A838 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + b _0809A840 +_0809A838: + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_080042AC +_0809A840: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809A844 +sub_0809A844: @ 0x0809A844 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0809AA00 + ldrb r0, [r4, #0xf] + cmp r0, #1 + bhi _0809A85C + movs r1, #0 + b _0809A870 +_0809A85C: + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _0809A87C + subs r0, #1 + strb r0, [r4, #0xe] + ldr r0, _0809A878 @ =gUnk_03004040 + ldr r1, [r0] + cmp r1, #0 + bne _0809A8A0 +_0809A870: + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _0809A8A0 + .align 2, 0 +_0809A878: .4byte gUnk_03004040 +_0809A87C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809A8A0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r2, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #0x78 + bl sub_0805E4E0 +_0809A8A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809A8A4 +sub_0809A8A4: @ 0x0809A8A4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0xe0 + ands r0, r1 + cmp r0, #0x40 + beq _0809A8D4 + cmp r0, #0x40 + bgt _0809A8C0 + cmp r0, #0x20 + beq _0809A8E2 + b _0809A8FC +_0809A8C0: + cmp r0, #0x80 + bne _0809A8FC + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #0 + bne _0809A902 + bl sub_0805E780 + b _0809A902 +_0809A8D4: + movs r0, #0xbf + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0809A9D4 + b _0809A902 +_0809A8E2: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ldrb r1, [r2] + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] + movs r0, #0xff + bl sub_08078A90 + movs r0, #0x2a + bl sub_0807CD04 +_0809A8FC: + adds r0, r4, #0 + bl sub_080042B8 +_0809A902: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809A92A + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + ldr r0, [r4, #0x2c] + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r4, #0x2c] + ldrh r2, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0809A94E +_0809A92A: + ldr r1, [r4, #0x54] + adds r0, r4, #0 + movs r2, #0 + bl sub_0809AA9C + ldr r1, _0809A950 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #1 + bl sub_0809AA9C + ldr r0, _0809A954 @ =gUnk_03004040 + ldr r1, [r0] + cmp r1, #0 + beq _0809A94E + adds r0, r4, #0 + movs r2, #1 + bl sub_0809AA9C +_0809A94E: + pop {r4, pc} + .align 2, 0 +_0809A950: .4byte gLinkEntity +_0809A954: .4byte gUnk_03004040 + + thumb_func_start sub_0809A958 +sub_0809A958: @ 0x0809A958 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r1, #0x2e + ldrsh r3, [r0, r1] + ldr r2, _0809A9CC @ =gRoomControls + ldrh r1, [r2, #6] + subs r1, #4 + subs r3, r3, r1 + asrs r3, r3, #4 + movs r4, #0x3f + ands r3, r4 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r3, r1 + adds r0, #0x82 + strh r3, [r0] + ldrh r0, [r0] + adds r5, r0, #0 + subs r5, #0x82 + ldr r6, _0809A9D0 @ =gUnk_08123C90 + movs r0, #0 + movs r1, #0x80 + lsls r1, r1, #7 + mov sb, r1 +_0809A996: + movs r4, #0 + adds r0, #1 + mov r8, r0 + adds r7, r5, #0 + adds r7, #0x40 +_0809A9A0: + ldrh r0, [r6] + mov r1, sb + ands r0, r1 + cmp r0, #0 + beq _0809A9B4 + ldrh r0, [r6] + adds r1, r5, r4 + movs r2, #1 + bl sub_0800015E +_0809A9B4: + adds r4, #1 + adds r6, #2 + cmp r4, #3 + ble _0809A9A0 + mov r0, r8 + adds r5, r7, #0 + cmp r0, #4 + ble _0809A996 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809A9CC: .4byte gRoomControls +_0809A9D0: .4byte gUnk_08123C90 + + thumb_func_start sub_0809A9D4 +sub_0809A9D4: @ 0x0809A9D4 + push {r4, r5, r6, r7, lr} + adds r0, #0x82 + ldrh r0, [r0] + adds r5, r0, #0 + subs r5, #0x82 + movs r0, #0 +_0809A9E0: + movs r4, #0 + adds r7, r0, #1 + adds r6, r5, #0 + adds r6, #0x40 +_0809A9E8: + adds r0, r5, r4 + movs r1, #1 + bl sub_0807BA8C + adds r4, #1 + cmp r4, #3 + ble _0809A9E8 + adds r0, r7, #0 + adds r5, r6, #0 + cmp r0, #4 + ble _0809A9E0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809AA00 +sub_0809AA00: @ 0x0809AA00 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + movs r0, #0 + strb r0, [r5, #0xf] + ldr r1, [r5, #0x54] + cmp r1, #0 + bne _0809AA50 + movs r0, #7 + movs r1, #0x38 + movs r2, #7 + bl sub_0805EB00 + adds r4, r0, #0 + adds r7, r5, #0 + adds r7, #0x78 + cmp r4, #0 + beq _0809AA5C + movs r0, #0x80 + lsls r0, r0, #4 + mov r8, r0 + ldr r0, _0809AA4C @ =0x0000FFFF + adds r6, r0, #0 +_0809AA30: + ldrh r0, [r4, #0xa] + ands r0, r6 + cmp r0, r8 + bne _0809AA3A + str r4, [r5, #0x54] +_0809AA3A: + adds r0, r4, #0 + movs r1, #7 + bl sub_0805EB64 + adds r4, r0, #0 + cmp r4, #0 + bne _0809AA30 + b _0809AA5C + .align 2, 0 +_0809AA4C: .4byte 0x0000FFFF +_0809AA50: + adds r0, r5, #0 + movs r2, #0 + bl sub_0809AA9C + adds r7, r5, #0 + adds r7, #0x78 +_0809AA5C: + ldr r4, _0809AA94 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x20 + movs r3, #0x22 + bl sub_080041A0 + strh r0, [r7] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0809AA8E + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0809AA9C + ldr r0, _0809AA98 @ =gUnk_03004040 + ldr r4, [r0] + cmp r4, #0 + beq _0809AA8E + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0809AA9C +_0809AA8E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809AA94: .4byte gLinkEntity +_0809AA98: .4byte gUnk_03004040 + + thumb_func_start sub_0809AA9C +sub_0809AA9C: @ 0x0809AA9C + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #1 + beq _0809AAB2 + cmp r1, #2 + bne _0809AABC +_0809AAB2: + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] + adds r2, r0, #0 + b _0809AAC6 +_0809AABC: + adds r1, r3, #0 + adds r1, #0x63 + movs r0, #0 + strb r0, [r1] + adds r2, r1, #0 +_0809AAC6: + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r0, _0809AAE8 @ =gRoomControls + ldrh r0, [r0, #6] + movs r3, #0xad + lsls r3, r3, #1 + adds r0, r0, r3 + cmp r1, r0 + bgt _0809AAE4 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_0809AAE4: + pop {r4, pc} + .align 2, 0 +_0809AAE8: .4byte gRoomControls + + thumb_func_start sub_0809AAEC +sub_0809AAEC: @ 0x0809AAEC + push {lr} + ldr r2, _0809AB00 @ =gUnk_08123D28 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809AB00: .4byte gUnk_08123D28 + + thumb_func_start sub_0809AB04 +sub_0809AB04: @ 0x0809AB04 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x31 + bl sub_0807CBE4 + cmp r0, #0 + beq _0809AB22 + adds r0, r5, #0 + bl sub_0809AD68 + adds r0, r5, #0 + bl sub_0809AD8C + bl sub_0805E780 +_0809AB22: + movs r0, #0x36 + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0809AB9C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r4, [r5, #0x54] + ldr r2, _0809AB68 @ =gUnk_030010A0 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r1, [r0] + cmp r1, #0 + beq _0809AB70 + adds r0, #1 + ldrb r0, [r0] + cmp r0, #0 + beq _0809AB52 + bl sub_0805E780 +_0809AB52: + movs r0, #7 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #0xb + ands r0, r1 + strb r0, [r5, #0x18] + ldr r0, _0809AB6C @ =gRoomControls + str r5, [r0, #0x30] + bl sub_080809D4 + b _0809AB9C + .align 2, 0 +_0809AB68: .4byte gUnk_030010A0 +_0809AB6C: .4byte gRoomControls +_0809AB70: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] + strb r1, [r5, #0x1e] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0x20 + strb r0, [r1] + ldr r1, _0809ABA0 @ =gUnk_08012DD8 + adds r0, r5, #0 + bl sub_0807DAD0 + adds r1, r5, #0 + adds r1, #0x84 + str r0, [r1] +_0809AB9C: + pop {r4, r5, pc} + .align 2, 0 +_0809ABA0: .4byte gUnk_08012DD8 + + thumb_func_start sub_0809ABA4 +sub_0809ABA4: @ 0x0809ABA4 + push {lr} + movs r1, #0 + bl sub_0807DDAC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809ABB0 +sub_0809ABB0: @ 0x0809ABB0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809ABCE + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x78 + strb r0, [r2, #0xe] + ldr r1, _0809ABD0 @ =gRoomControls + ldr r0, [r2, #0x54] + str r0, [r1, #0x30] +_0809ABCE: + pop {pc} + .align 2, 0 +_0809ABD0: .4byte gRoomControls + + thumb_func_start sub_0809ABD4 +sub_0809ABD4: @ 0x0809ABD4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809ABF2 + movs r0, #4 + strb r0, [r1, #0xc] + movs r0, #0x5a + strb r0, [r1, #0xe] + ldr r1, [r1, #0x54] + movs r0, #1 + strb r0, [r1, #0xd] +_0809ABF2: + pop {pc} + + thumb_func_start sub_0809ABF4 +sub_0809ABF4: @ 0x0809ABF4 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + ldrb r0, [r0, #0xd] + cmp r0, #2 + bls _0809AC36 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0809AC36 + movs r0, #5 + strb r0, [r2, #0xc] + movs r0, #8 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + ldrb r1, [r2, #0x19] + subs r0, #0x15 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x19] + ldr r1, _0809AC38 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] +_0809AC36: + pop {pc} + .align 2, 0 +_0809AC38: .4byte gLCDControls + + thumb_func_start sub_0809AC3C +sub_0809AC3C: @ 0x0809AC3C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0809AC9A + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r2, [r4, #0xf] + adds r2, #1 + strb r2, [r4, #0xf] + adds r1, r2, #0 + ands r1, r3 + ldr r6, _0809AC9C @ =gLCDControls + lsls r3, r1, #8 + movs r0, #0x10 + subs r0, r0, r1 + movs r1, #0xff + ands r0, r1 + orrs r3, r0 + adds r0, r6, #0 + adds r0, #0x68 + strh r3, [r0] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r2, #0xf + bls _0809AC9A + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x19] + adds r0, r6, #0 + adds r0, #0x66 + strh r5, [r0] + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + strb r0, [r4, #0x18] +_0809AC9A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809AC9C: .4byte gLCDControls + + thumb_func_start sub_0809ACA0 +sub_0809ACA0: @ 0x0809ACA0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809ACC4 + ldr r1, [r2, #0x54] + movs r0, #6 + strb r0, [r1, #0xd] + ldr r0, _0809ACC8 @ =gUnk_030010A0 + adds r0, #0x38 + movs r1, #0xf1 + strb r1, [r0] + adds r0, r2, #0 + bl sub_0805E7BC +_0809ACC4: + pop {pc} + .align 2, 0 +_0809ACC8: .4byte gUnk_030010A0 + + thumb_func_start sub_0809ACCC +sub_0809ACCC: @ 0x0809ACCC + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #1 + bne _0809ACE4 + movs r0, #0 + movs r1, #8 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + movs r0, #0xb4 + strb r0, [r2, #0xe] +_0809ACE4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809ACE8 +sub_0809ACE8: @ 0x0809ACE8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0809AD1E + cmp r0, #2 + beq _0809AD3A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809AD58 + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x73 + bl sub_080A3268 + movs r0, #0x31 + bl sub_0807CCC8 + adds r0, r4, #0 + bl sub_0809AD8C + b _0809AD58 +_0809AD1E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809AD58 + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_0809AD68 + b _0809AD58 +_0809AD3A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809AD58 + ldr r1, _0809AD5C @ =gRoomControls + ldr r0, _0809AD60 @ =gLinkEntity + str r0, [r1, #0x30] + ldr r0, _0809AD64 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0805E780 +_0809AD58: + pop {r4, pc} + .align 2, 0 +_0809AD5C: .4byte gRoomControls +_0809AD60: .4byte gLinkEntity +_0809AD64: .4byte gUnk_03003F80 + + thumb_func_start sub_0809AD68 +sub_0809AD68: @ 0x0809AD68 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_0804B128 + bl LoadRoomEntityList + movs r0, #0x17 + bl GetInventoryValue + cmp r0, #0 + beq _0809AD8A + ldrb r0, [r4, #0xb] + bl sub_0804B128 + bl LoadRoomEntityList +_0809AD8A: + pop {r4, pc} + + thumb_func_start sub_0809AD8C +sub_0809AD8C: @ 0x0809AD8C + push {lr} + movs r0, #0x4f + movs r1, #0x22 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0809ADAC + ldr r0, _0809ADB0 @ =gRoomControls + ldrh r1, [r0, #6] + adds r1, #0xb8 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, #8 + strh r0, [r2, #0x32] +_0809ADAC: + pop {pc} + .align 2, 0 +_0809ADB0: .4byte gRoomControls + + thumb_func_start sub_0809ADB4 +sub_0809ADB4: @ 0x0809ADB4 + push {lr} + ldr r2, _0809ADC8 @ =gUnk_08123D4C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809ADC8: .4byte gUnk_08123D4C + + thumb_func_start sub_0809ADCC +sub_0809ADCC: @ 0x0809ADCC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0809AE14 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x80 + strh r1, [r5] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r7, [r0] + adds r0, r4, #0 + bl sub_08016A04 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0809AEBC + cmp r0, #1 + bgt _0809AE18 + cmp r0, #0 + beq _0809AE1E + b _0809AF46 + .align 2, 0 +_0809AE14: .4byte gRoomControls +_0809AE18: + cmp r0, #2 + beq _0809AF10 + b _0809AF46 +_0809AE1E: + movs r0, #2 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xa + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrh r5, [r5] + subs r6, r5, #1 + ldr r4, _0809AEB8 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x3f + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x41 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r4, #0x1b + adds r1, r5, #0 + subs r1, #0x41 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + subs r4, #0x17 + adds r1, r5, #0 + subs r1, #0x3f + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x81 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x80 + adds r0, r4, #0 + b _0809AF04 + .align 2, 0 +_0809AEB8: .4byte 0x00004022 +_0809AEBC: + strb r0, [r4, #0xc] + ldrh r6, [r5] + ldr r4, _0809AEF4 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809AEF8 @ =0x00004025 + adds r1, r6, #0 + adds r1, #0x41 + adds r2, r7, #0 + bl sub_0800015E + movs r0, #0x4f + bl sub_0807CBD0 + cmp r0, #0 + bne _0809AF00 + ldr r0, _0809AEFC @ =0x0000402F + b _0809AF02 + .align 2, 0 +_0809AEF4: .4byte 0x00004022 +_0809AEF8: .4byte 0x00004025 +_0809AEFC: .4byte 0x0000402F +_0809AF00: + ldr r0, _0809AF0C @ =0x0000402D +_0809AF02: + adds r1, r6, #1 +_0809AF04: + adds r2, r7, #0 + bl sub_0800015E + b _0809AF46 + .align 2, 0 +_0809AF0C: .4byte 0x0000402D +_0809AF10: + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r5, [r5] + adds r6, r5, #0 + subs r6, #0x41 + ldr r4, _0809AF48 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + subs r1, r5, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_0800015E +_0809AF46: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809AF48: .4byte 0x00004022 + + thumb_func_start nullsub_535 +nullsub_535: @ 0x0809AF4C + bx lr + .align 2, 0 + + thumb_func_start sub_0809AF50 +sub_0809AF50: @ 0x0809AF50 + push {lr} + bl nullsub_2 + pop {pc} + + thumb_func_start nullsub_2 +nullsub_2: @ 0x0809AF58 + bx lr + .align 2, 0 + + thumb_func_start sub_0809AF5C +sub_0809AF5C: @ 0x0809AF5C + push {lr} + ldr r2, _0809AF70 @ =gUnk_08123D58 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809AF70: .4byte gUnk_08123D58 + + thumb_func_start sub_0809AF74 +sub_0809AF74: @ 0x0809AF74 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + movs r0, #0x2e + ldrsh r2, [r4, r0] + ldr r1, _0809AFBC @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r0, r4, #0 + adds r0, #0x80 + movs r6, #0 + strh r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809AFC4 + movs r1, #1 + strb r1, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + bne _0809AFC0 + strb r6, [r4, #0xd] + b _0809B02C + .align 2, 0 +_0809AFBC: .4byte gRoomControls +_0809AFC0: + strb r1, [r4, #0xd] + b _0809B02C +_0809AFC4: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + strb r6, [r0] + adds r0, r4, #0 + bl sub_08016A04 + movs r0, #0x8b + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0809B026 + str r4, [r5, #0x50] + str r5, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0809B010 + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r3, #0 + bl PositionRelative + adds r0, r5, #0 + adds r0, #0x84 + strb r6, [r0] + b _0809B026 +_0809B010: + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + adds r1, r5, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] +_0809B026: + adds r0, r4, #0 + bl sub_0809B334 +_0809B02C: + adds r0, r4, #0 + bl sub_0809B0B0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809B034 +sub_0809B034: @ 0x0809B034 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x82 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r0, r4, #0 + bl sub_0809B234 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B050 +sub_0809B050: @ 0x0809B050 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809B0A2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0809B0A4 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + movs r0, #0 + bl sub_08078A90 + adds r0, r4, #0 + bl sub_0809B0B0 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_0809B0A2: + pop {r4, r5, pc} + .align 2, 0 +_0809B0A4: .4byte gRoomControls + + thumb_func_start sub_0809B0A8 +sub_0809B0A8: @ 0x0809B0A8 + push {lr} + bl sub_0809B234 + pop {pc} + + thumb_func_start sub_0809B0B0 +sub_0809B0B0: @ 0x0809B0B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r0, #0x80 + ldrh r0, [r0] + subs r6, r0, #1 + mov r0, r8 + adds r0, #0x38 + ldrb r7, [r0] + mov r1, r8 + ldrb r0, [r1, #0xd] + cmp r0, #4 + bls _0809B0CE + b _0809B228 +_0809B0CE: + lsls r0, r0, #2 + ldr r1, _0809B0D8 @ =_0809B0DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809B0D8: .4byte _0809B0DC +_0809B0DC: @ jump table + .4byte _0809B0F0 @ case 0 + .4byte _0809B130 @ case 1 + .4byte _0809B178 @ case 2 + .4byte _0809B1C0 @ case 3 + .4byte _0809B208 @ case 4 +_0809B0F0: + mov r1, r8 + adds r1, #0x84 + movs r0, #0 + strb r0, [r1] + adds r5, r6, #2 + mov r0, r8 + adds r0, #0x82 + strh r5, [r0] + ldr r0, _0809B128 @ =0x00004082 + subs r1, r6, #1 + adds r2, r7, #0 + bl sub_0800015E + ldr r4, _0809B12C @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r6, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + b _0809B162 + .align 2, 0 +_0809B128: .4byte 0x00004082 +_0809B12C: .4byte 0x00004022 +_0809B130: + mov r1, r8 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + mov r0, r8 + adds r0, #0x82 + strh r6, [r0] + ldr r0, _0809B16C @ =0x0000405F + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + ldr r4, _0809B170 @ =0x00004022 + adds r1, r6, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r6, #2 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809B174 @ =0x00004082 + adds r1, r6, #3 +_0809B162: + adds r2, r7, #0 + bl sub_0800015E + b _0809B228 + .align 2, 0 +_0809B16C: .4byte 0x0000405F +_0809B170: .4byte 0x00004022 +_0809B174: .4byte 0x00004082 +_0809B178: + mov r1, r8 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + mov r0, r8 + adds r0, #0x82 + strh r6, [r0] + ldr r0, _0809B1B4 @ =0x00004082 + adds r1, r6, #3 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809B1B8 @ =0x00004022 + adds r1, r6, #2 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809B1BC @ =0x0000405F + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + mov r1, r8 + ldr r0, [r1, #0x50] + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0809B228 + .align 2, 0 +_0809B1B4: .4byte 0x00004082 +_0809B1B8: .4byte 0x00004022 +_0809B1BC: .4byte 0x0000405F +_0809B1C0: + mov r1, r8 + adds r1, #0x84 + movs r0, #0 + strb r0, [r1] + adds r4, r6, #2 + mov r0, r8 + adds r0, #0x82 + strh r4, [r0] + ldr r0, _0809B1FC @ =0x00004082 + subs r1, r6, #1 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809B200 @ =0x00004022 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809B204 @ =0x0000405F + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + mov r1, r8 + ldr r0, [r1, #0x50] + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + b _0809B228 + .align 2, 0 +_0809B1FC: .4byte 0x00004082 +_0809B200: .4byte 0x00004022 +_0809B204: .4byte 0x0000405F +_0809B208: + ldr r4, _0809B230 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r6, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r6, #2 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E +_0809B228: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809B230: .4byte 0x00004022 + + thumb_func_start sub_0809B234 +sub_0809B234: @ 0x0809B234 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809B26A + ldr r2, [r4, #0x50] + ldrb r1, [r2, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r0, #0x3f + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _0809B270 +_0809B26A: + adds r0, r4, #0 + bl sub_0809B274 +_0809B270: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B274 +sub_0809B274: @ 0x0809B274 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _0809B290 @ =gLinkEntity + adds r2, r4, #0 + adds r2, #0x84 + ldrb r0, [r2] + cmp r0, #1 + beq _0809B2BA + cmp r0, #1 + bgt _0809B294 + cmp r0, #0 + beq _0809B29A + b _0809B332 + .align 2, 0 +_0809B290: .4byte gLinkEntity +_0809B294: + cmp r0, #2 + beq _0809B30C + b _0809B332 +_0809B29A: + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r0, #0x14 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0809B332 + movs r0, #1 + strb r0, [r2] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #5 + b _0809B306 +_0809B2BA: + movs r5, #0x2e + ldrsh r0, [r3, r5] + adds r0, #0x1c + movs r5, #0x2e + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _0809B2E8 + movs r0, #2 + strb r0, [r2] + ldr r0, _0809B2E4 @ =0x00004022 + adds r1, r4, #0 + adds r1, #0x80 + ldrh r1, [r1] + adds r1, #2 + movs r2, #1 + bl sub_0800015E + ldr r0, [r4, #0x54] + bl sub_0809B358 + b _0809B332 + .align 2, 0 +_0809B2E4: .4byte 0x00004022 +_0809B2E8: + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r0, #0x10 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _0809B332 + movs r0, #0 + strb r0, [r2] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #8 + ands r0, r1 + movs r1, #4 +_0809B306: + orrs r0, r1 + strb r0, [r2] + b _0809B332 +_0809B30C: + movs r5, #0x2e + ldrsh r0, [r3, r5] + adds r0, #0x20 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0809B332 + movs r0, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x80 + ldrh r0, [r0] + adds r0, #2 + movs r1, #1 + bl sub_0807BA8C + ldr r0, [r4, #0x54] + bl sub_0809B38C +_0809B332: + pop {r4, r5, pc} + + thumb_func_start sub_0809B334 +sub_0809B334: @ 0x0809B334 + push {r4, r5, lr} + adds r0, #0x80 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x81 + movs r5, #2 +_0809B340: + ldr r0, _0809B354 @ =0x00004026 + adds r1, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r5, #1 + adds r4, #1 + cmp r5, #0 + bge _0809B340 + pop {r4, r5, pc} + .align 2, 0 +_0809B354: .4byte 0x00004026 + + thumb_func_start sub_0809B358 +sub_0809B358: @ 0x0809B358 + push {r4, r5, r6, lr} + adds r1, r0, #0 + adds r1, #0x84 + ldrb r1, [r1] + lsls r1, r1, #1 + ldr r2, _0809B388 @ =gUnk_08123D68 + adds r5, r1, r2 + adds r0, #0x80 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x82 + movs r6, #4 +_0809B370: + ldrh r0, [r5] + adds r1, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r6, #1 + adds r4, #1 + adds r5, #4 + cmp r6, #0 + bge _0809B370 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809B388: .4byte gUnk_08123D68 + + thumb_func_start sub_0809B38C +sub_0809B38C: @ 0x0809B38C + push {r4, r5, lr} + adds r0, #0x80 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x82 + movs r5, #4 +_0809B398: + adds r0, r4, #0 + movs r1, #1 + bl sub_0807BA8C + subs r5, #1 + adds r4, #1 + cmp r5, #0 + bge _0809B398 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809B3AC +sub_0809B3AC: @ 0x0809B3AC + push {lr} + ldr r2, _0809B3C0 @ =gUnk_08123D7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809B3C0: .4byte gUnk_08123D7C + + thumb_func_start sub_0809B3C4 +sub_0809B3C4: @ 0x0809B3C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + adds r0, #0x39 + bl GetInventoryValue + adds r5, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #3 + beq _0809B3E2 + cmp r5, #0 + beq _0809B3FE + bl sub_0805E780 + b _0809B3FE +_0809B3E2: + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0809B3F0 + bl sub_0805E780 +_0809B3F0: + cmp r5, #2 + beq _0809B3FE + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0809B3FE: + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809B424 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0809B420 + ldrh r0, [r4, #0x32] + adds r0, #0x30 + strh r0, [r4, #0x32] +_0809B420: + movs r0, #2 + strb r0, [r4, #0xb] +_0809B424: + adds r0, r4, #0 + bl sub_08016A04 + ldrb r1, [r4, #0xa] + adds r1, #0x39 + adds r0, r4, #0 + bl sub_080042AC + ldrb r1, [r4, #0xb] + cmp r1, #1 + beq _0809B46C + cmp r1, #1 + bgt _0809B444 + cmp r1, #0 + beq _0809B44E + b _0809B4A6 +_0809B444: + cmp r1, #2 + beq _0809B488 + cmp r1, #3 + beq _0809B48E + b _0809B4A6 +_0809B44E: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x16 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + b _0809B49E +_0809B46C: + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0809B484 @ =gRoomControls + ldrh r0, [r0, #0xc] + subs r0, #0x10 + ldrh r1, [r4, #0x32] + subs r1, r1, r0 + ldrh r0, [r4, #0x36] + subs r0, r0, r1 + strh r0, [r4, #0x36] + b _0809B4A6 + .align 2, 0 +_0809B484: .4byte gRoomControls +_0809B488: + movs r0, #4 + strb r0, [r4, #0xc] + b _0809B4A6 +_0809B48E: + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xd +_0809B49E: + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_0809B4A6: + pop {r4, r5, pc} + + thumb_func_start sub_0809B4A8 +sub_0809B4A8: @ 0x0809B4A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _0809B4C0 + subs r0, #1 + strb r0, [r1] + b _0809B520 +_0809B4C0: + adds r0, r4, #0 + bl sub_0809B688 + cmp r0, #0 + beq _0809B51C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0809B520 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x40 + strh r0, [r4, #0x24] + movs r0, #0x10 + strb r0, [r4, #0x15] + ldr r2, _0809B510 @ =gUnk_03003F80 + movs r0, #0x9e + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _0809B514 @ =gLinkEntity + strh r3, [r1, #0x2c] + strh r3, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + ldr r0, _0809B518 @ =0x0000010F + bl sub_08004488 + b _0809B520 + .align 2, 0 +_0809B510: .4byte gUnk_03003F80 +_0809B514: .4byte gLinkEntity +_0809B518: .4byte 0x0000010F +_0809B51C: + movs r0, #0x16 + strb r0, [r4, #0xe] +_0809B520: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B524 +sub_0809B524: @ 0x0809B524 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809B564 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + ands r0, r1 + cmp r0, #0 + bne _0809B554 + movs r0, #3 + strb r0, [r2, #0xc] + ldrh r0, [r2, #0x32] + adds r0, #0x20 + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x36] + subs r0, #0x20 + strh r0, [r2, #0x36] + b _0809B564 +_0809B554: + movs r0, #1 + strb r0, [r2, #0xc] + movs r0, #0x16 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x80 + movs r0, #0x18 + strb r0, [r1] +_0809B564: + adds r0, r2, #0 + bl sub_0806F69C + pop {pc} + + thumb_func_start sub_0809B56C +sub_0809B56C: @ 0x0809B56C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_080044EC + cmp r0, #1 + bne _0809B5B0 + movs r2, #4 + movs r0, #4 + strb r0, [r4, #0xc] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0xc + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0809B5B0 + adds r0, r4, #0 + bl sub_0806FAB0 +_0809B5B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B5B4 +sub_0809B5B4: @ 0x0809B5B4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0809B5CC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809B5D0 + adds r0, r4, #0 + bl sub_0800445C + b _0809B5EA + .align 2, 0 +_0809B5CC: .4byte gUnk_03003F80 +_0809B5D0: + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _0809B5EA + ldrb r0, [r4, #0xa] + adds r0, #0x39 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0809B5EA: + pop {r4, pc} + + thumb_func_start sub_0809B5EC +sub_0809B5EC: @ 0x0809B5EC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r5, r0, #0x1e + cmp r5, #1 + bne _0809B646 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809B606 + cmp r0, #1 + beq _0809B630 + b _0809B682 +_0809B606: + movs r0, #7 + movs r1, #0x1a + movs r2, #7 + bl sub_0805EB00 + adds r2, r0, #0 + cmp r2, #0 + beq _0809B682 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r3, #0x2e + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _0809B682 + ldrb r0, [r2, #0x14] + cmp r0, #4 + bne _0809B682 + str r2, [r4, #0x50] + strb r5, [r4, #0xd] + adds r0, r2, #0 + b _0809B63E +_0809B630: + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _0809B650 + ldr r0, [r1, #4] + cmp r0, #0 + beq _0809B650 + adds r0, r1, #0 +_0809B63E: + adds r1, r4, #0 + bl sub_0809B6B0 + b _0809B682 +_0809B646: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809B656 + cmp r0, #1 + beq _0809B668 +_0809B650: + bl sub_0805E780 + b _0809B682 +_0809B656: + ldrb r0, [r4, #0xa] + adds r0, #0x39 + bl GetInventoryValue + cmp r0, #2 + bne _0809B682 + movs r0, #1 + strb r0, [r4, #0xd] + b _0809B682 +_0809B668: + ldr r0, _0809B684 @ =gTextBox + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + cmp r2, #0 + bne _0809B682 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0xd] +_0809B682: + pop {r4, r5, pc} + .align 2, 0 +_0809B684: .4byte gTextBox + + thumb_func_start sub_0809B688 +sub_0809B688: @ 0x0809B688 + push {lr} + ldr r1, _0809B6A8 @ =gLinkEntity + movs r2, #6 + movs r3, #0xc + bl sub_080041A0 + adds r1, r0, #0 + cmp r1, #1 + bne _0809B6A4 + ldr r0, _0809B6AC @ =gUnk_03003F80 + ldrb r0, [r0, #0xd] + cmp r0, #0x10 + beq _0809B6A4 + movs r1, #0 +_0809B6A4: + adds r0, r1, #0 + pop {pc} + .align 2, 0 +_0809B6A8: .4byte gLinkEntity +_0809B6AC: .4byte gUnk_03003F80 + + thumb_func_start sub_0809B6B0 +sub_0809B6B0: @ 0x0809B6B0 + push {r4, lr} + adds r4, r1, #0 + ldr r2, _0809B6EC @ =gUnk_08123D94 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, r1, r2 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + movs r1, #3 + subs r1, r1, r0 + adds r4, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0809B6EC: .4byte gUnk_08123D94 + + thumb_func_start sub_0809B6F0 +sub_0809B6F0: @ 0x0809B6F0 + push {lr} + ldr r2, _0809B704 @ =gUnk_08123D98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809B704: .4byte gUnk_08123D98 + + thumb_func_start sub_0809B708 +sub_0809B708: @ 0x0809B708 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r1, [r6, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r6, #0x18] + movs r0, #0x80 + strh r0, [r6, #0x24] + adds r0, r6, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809B73A + adds r0, r6, #0 + bl sub_0809B7DC + bl sub_0805E780 + b _0809B78A +_0809B73A: + ldr r0, _0809B794 @ =0x0000030B + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r5, _0809B798 @ =gRoomControls + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + ldr r0, _0809B79C @ =0x00004061 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0809B78A: + adds r0, r6, #0 + bl sub_0809B7A0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809B794: .4byte 0x0000030B +_0809B798: .4byte gRoomControls +_0809B79C: .4byte 0x00004061 + + thumb_func_start sub_0809B7A0 +sub_0809B7A0: @ 0x0809B7A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809B7C0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809B7BC + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + bl sub_0805E780 +_0809B7BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B7C0 +sub_0809B7C0: @ 0x0809B7C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080002A0 + ldr r1, _0809B7D8 @ =0xFFFFBF9F + adds r0, r0, r1 + cmp r0, #1 + bls _0809B7D6 + adds r0, r4, #0 + bl sub_0809B7DC +_0809B7D6: + pop {r4, pc} + .align 2, 0 +_0809B7D8: .4byte 0xFFFFBF9F + + thumb_func_start sub_0809B7DC +sub_0809B7DC: @ 0x0809B7DC + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0xc3 + lsls r0, r0, #2 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r5, _0809B838 @ =gRoomControls + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + ldr r0, _0809B83C @ =0x00004062 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #1 + strb r0, [r6, #0xe] + pop {r4, r5, r6, pc} + .align 2, 0 +_0809B838: .4byte gRoomControls +_0809B83C: .4byte 0x00004062 + + thumb_func_start sub_0809B840 +sub_0809B840: @ 0x0809B840 + push {lr} + ldr r2, _0809B854 @ =gUnk_08123DA0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809B854: .4byte gUnk_08123DA0 + + thumb_func_start sub_0809B858 +sub_0809B858: @ 0x0809B858 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _0809B8CC + cmp r3, #1 + bgt _0809B872 + cmp r3, #0 + beq _0809B878 + b _0809B972 +_0809B872: + cmp r3, #2 + beq _0809B948 + b _0809B972 +_0809B878: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldr r0, _0809B8BC @ =gRoomControls + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r5, _0809B8C0 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r2, #6 + cmp r1, r0 + ble _0809B89A + movs r2, #2 +_0809B89A: + strb r2, [r5, #0x14] + ldr r2, _0809B8C4 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809B8C8 @ =0x0000BFFF + ands r0, r1 + movs r4, #0xa0 + lsls r4, r4, #6 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + adds r0, r2, #0 + adds r0, #0x58 + strh r3, [r0] + adds r2, #0x5c + movs r0, #0xa0 + strh r0, [r2] + b _0809B972 + .align 2, 0 +_0809B8BC: .4byte gRoomControls +_0809B8C0: .4byte gLinkEntity +_0809B8C4: .4byte gLCDControls +_0809B8C8: .4byte 0x0000BFFF +_0809B8CC: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809B8D8 + subs r0, #1 + strb r0, [r4, #0xe] + b _0809B972 +_0809B8D8: + ldrb r0, [r4, #0xf] + cmp r0, #0x1f + bhi _0809B914 + ldr r5, _0809B90C @ =gUnk_030010A0 + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809B8F0 + ldr r0, _0809B910 @ =0x00000133 + bl sub_080A3268 +_0809B8F0: + ldr r0, [r5] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809B972 + ldrb r1, [r4, #0xf] + adds r1, #1 + strb r1, [r4, #0xf] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_0809B97C + b _0809B972 + .align 2, 0 +_0809B90C: .4byte gUnk_030010A0 +_0809B910: .4byte 0x00000133 +_0809B914: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r2, _0809B938 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809B93C @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + ldr r1, _0809B940 @ =gRoomControls + ldr r0, _0809B944 @ =gLinkEntity + str r0, [r1, #0x30] + movs r0, #0x9a + lsls r0, r0, #1 + bl sub_080A3268 + b _0809B972 + .align 2, 0 +_0809B938: .4byte gLCDControls +_0809B93C: .4byte 0x0000DFFF +_0809B940: .4byte gRoomControls +_0809B944: .4byte gLinkEntity +_0809B948: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809B972 + ldr r2, _0809B974 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0809B978 @ =gRoomControls + movs r0, #4 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809B972: + pop {r4, r5, pc} + .align 2, 0 +_0809B974: .4byte gLCDControls +_0809B978: .4byte gRoomControls + + thumb_func_start sub_0809B97C +sub_0809B97C: @ 0x0809B97C + push {lr} + movs r3, #0x2e + ldrsh r2, [r0, r3] + ldr r0, _0809B9B4 @ =gRoomControls + movs r3, #0xa + ldrsh r0, [r0, r3] + subs r2, r2, r0 + subs r0, r2, r1 + adds r2, r2, r1 + cmp r0, #0 + bge _0809B994 + movs r0, #0 +_0809B994: + cmp r0, #0xf0 + ble _0809B99A + movs r0, #0xf0 +_0809B99A: + cmp r2, #0 + bge _0809B9A0 + movs r2, #0 +_0809B9A0: + cmp r2, #0xf0 + ble _0809B9A6 + movs r2, #0xf0 +_0809B9A6: + ldr r1, _0809B9B8 @ =gLCDControls + lsls r0, r0, #8 + orrs r0, r2 + adds r1, #0x58 + strh r0, [r1] + pop {pc} + .align 2, 0 +_0809B9B4: .4byte gRoomControls +_0809B9B8: .4byte gLCDControls + + thumb_func_start sub_0809B9BC +sub_0809B9BC: @ 0x0809B9BC + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0809BA34 + cmp r0, #1 + bgt _0809B9D6 + cmp r0, #0 + beq _0809B9DC + b _0809BAC2 +_0809B9D6: + cmp r0, #2 + beq _0809BA9C + b _0809BAC2 +_0809B9DC: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + ldr r0, _0809BA24 @ =gRoomControls + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r3, _0809BA28 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BA00 + movs r2, #2 +_0809BA00: + strb r2, [r3, #0x14] + ldr r2, _0809BA2C @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809BA30 @ =0x0000BFFF + ands r0, r1 + movs r3, #0x80 + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x58 + movs r0, #0xf0 + strh r0, [r1] + adds r2, #0x5c + movs r0, #0xa0 + strh r0, [r2] + b _0809BAC2 + .align 2, 0 +_0809BA24: .4byte gRoomControls +_0809BA28: .4byte gLinkEntity +_0809BA2C: .4byte gLCDControls +_0809BA30: .4byte 0x0000BFFF +_0809BA34: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BA40 + subs r0, #1 + strb r0, [r4, #0xe] + b _0809BAC2 +_0809BA40: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0809BA7C + ldr r5, _0809BA74 @ =gUnk_030010A0 + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BA58 + ldr r0, _0809BA78 @ =0x00000133 + bl sub_080A3268 +_0809BA58: + ldr r0, [r5] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809BAC2 + ldrb r1, [r4, #0xf] + subs r1, #1 + strb r1, [r4, #0xf] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_0809B97C + b _0809BAC2 + .align 2, 0 +_0809BA74: .4byte gUnk_030010A0 +_0809BA78: .4byte 0x00000133 +_0809BA7C: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, _0809BA94 @ =gRoomControls + ldr r0, _0809BA98 @ =gLinkEntity + str r0, [r1, #0x30] + movs r0, #0x9a + lsls r0, r0, #1 + bl sub_080A3268 + b _0809BAC2 + .align 2, 0 +_0809BA94: .4byte gRoomControls +_0809BA98: .4byte gLinkEntity +_0809BA9C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BAC2 + ldr r1, _0809BAC4 @ =gRoomControls + movs r0, #4 + strb r0, [r1, #0xe] + ldr r2, _0809BAC8 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809BACC @ =0x0000D7FF + ands r0, r1 + strh r0, [r2] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809BAC2: + pop {r4, r5, pc} + .align 2, 0 +_0809BAC4: .4byte gRoomControls +_0809BAC8: .4byte gLCDControls +_0809BACC: .4byte 0x0000D7FF + + thumb_func_start sub_0809BAD0 +sub_0809BAD0: @ 0x0809BAD0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xa + bl sub_0805E4E0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bls _0809BAE2 + b _0809BC68 +_0809BAE2: + lsls r0, r0, #2 + ldr r1, _0809BAEC @ =_0809BAF0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809BAEC: .4byte _0809BAF0 +_0809BAF0: @ jump table + .4byte _0809BB04 @ case 0 + .4byte _0809BB4C @ case 1 + .4byte _0809BBF8 @ case 2 + .4byte _0809BC24 @ case 3 + .4byte _0809BC48 @ case 4 +_0809BB04: + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r1, _0809BB40 @ =gRoomControls + str r4, [r1, #0x30] + movs r0, #1 + strb r0, [r1, #0xe] + ldr r3, _0809BB44 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BB2C + movs r2, #2 +_0809BB2C: + strb r2, [r3, #0x14] + ldr r1, _0809BB48 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x58 + movs r0, #0x60 + strh r0, [r2] + adds r1, #0x5c + movs r0, #0xa0 + strh r0, [r1] + b _0809BC68 + .align 2, 0 +_0809BB40: .4byte gRoomControls +_0809BB44: .4byte gLinkEntity +_0809BB48: .4byte gLCDControls +_0809BB4C: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + bne _0809BB58 + b _0809BC68 +_0809BB58: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BB88 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809BB6A + b _0809BC68 +_0809BB6A: + ldr r2, _0809BB80 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809BB84 @ =0x0000BFFF + ands r0, r1 + movs r3, #0xa0 + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0809BC68 + .align 2, 0 +_0809BB80: .4byte gLCDControls +_0809BB84: .4byte 0x0000BFFF +_0809BB88: + ldr r2, _0809BBB8 @ =gLCDControls + adds r5, r2, #0 + adds r5, #0x58 + ldrh r0, [r5] + cmp r0, #0xdf + bhi _0809BBC4 + ldr r4, _0809BBBC @ =gUnk_030010A0 + ldr r0, [r4] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BBA6 + ldr r0, _0809BBC0 @ =0x00000133 + bl sub_080A3268 +_0809BBA6: + ldr r0, [r4] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0809BC68 + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0809BC68 + .align 2, 0 +_0809BBB8: .4byte gLCDControls +_0809BBBC: .4byte gUnk_030010A0 +_0809BBC0: .4byte 0x00000133 +_0809BBC4: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrh r1, [r2] + ldr r0, _0809BBF4 @ =0x0000DFFF + ands r0, r1 + movs r3, #0x90 + lsls r3, r3, #7 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, #0x2e] + adds r0, #0x68 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, #0x28 + strh r0, [r4, #0x32] + movs r0, #0x9a + lsls r0, r0, #1 + bl sub_080A3268 + b _0809BC68 + .align 2, 0 +_0809BBF4: .4byte 0x0000DFFF +_0809BBF8: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + beq _0809BC68 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BC68 + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x35 + bl sub_0807CCB4 + movs r0, #0x72 + bl sub_080A3268 + b _0809BC68 +_0809BC24: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BC68 + movs r0, #4 + strb r0, [r4, #0xc] + ldr r1, _0809BC40 @ =gRoomControls + ldr r0, _0809BC44 @ =gLinkEntity + str r0, [r1, #0x30] + movs r0, #2 + strb r0, [r1, #0xe] + b _0809BC68 + .align 2, 0 +_0809BC40: .4byte gRoomControls +_0809BC44: .4byte gLinkEntity +_0809BC48: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + beq _0809BC68 + ldr r1, _0809BC6C @ =gRoomControls + movs r0, #4 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + movs r0, #0x64 + bl sub_0807CD10 + bl sub_0805E780 +_0809BC68: + pop {r4, r5, pc} + .align 2, 0 +_0809BC6C: .4byte gRoomControls + + thumb_func_start sub_0809BC70 +sub_0809BC70: @ 0x0809BC70 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0809BCDC + cmp r5, #1 + bgt _0809BC8A + cmp r5, #0 + beq _0809BC92 + b _0809BDAE +_0809BC8A: + cmp r5, #2 + bne _0809BC90 + b _0809BD98 +_0809BC90: + b _0809BDAE +_0809BC92: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + ldr r0, _0809BCCC @ =gRoomControls + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r3, _0809BCD0 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BCB4 + movs r2, #2 +_0809BCB4: + strb r2, [r3, #0x14] + ldr r1, _0809BCD4 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x58 + ldr r0, _0809BCD8 @ =0x000080F0 + strh r0, [r2] + adds r1, #0x5c + movs r0, #0xa0 + strh r0, [r1] + movs r0, #0x80 + strb r0, [r4, #0xd] + b _0809BDAE + .align 2, 0 +_0809BCCC: .4byte gRoomControls +_0809BCD0: .4byte gLinkEntity +_0809BCD4: .4byte gLCDControls +_0809BCD8: .4byte 0x000080F0 +_0809BCDC: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + beq _0809BDAE + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BD20 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BDAE + movs r0, #6 + movs r1, #8 + bl sub_08050054 + movs r0, #3 + bl sub_0805AAF0 + ldr r2, _0809BD18 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809BD1C @ =0x0000BFFF + ands r0, r1 + movs r3, #0xa0 + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0809BDAE + .align 2, 0 +_0809BD18: .4byte gLCDControls +_0809BD1C: .4byte 0x0000BFFF +_0809BD20: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809BD64 + ldr r6, _0809BD58 @ =gUnk_030010A0 + ldr r0, [r6] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BD38 + ldr r0, _0809BD5C @ =0x00000133 + bl sub_080A3268 +_0809BD38: + ldr r0, [r6] + ands r0, r5 + cmp r0, #0 + bne _0809BDAE + ldrb r0, [r4, #0xd] + subs r0, #1 + strb r0, [r4, #0xd] + ldr r1, _0809BD60 @ =gLCDControls + ldrb r0, [r4, #0xd] + lsls r0, r0, #8 + movs r2, #0xf0 + adds r1, #0x58 + orrs r0, r2 + strh r0, [r1] + b _0809BDAE + .align 2, 0 +_0809BD58: .4byte gUnk_030010A0 +_0809BD5C: .4byte 0x00000133 +_0809BD60: .4byte gLCDControls +_0809BD64: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldr r2, _0809BD90 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _0809BD94 @ =0x0000DFFF + ands r0, r1 + movs r3, #0x90 + lsls r3, r3, #7 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + movs r0, #0x37 + bl sub_0807CCB4 + movs r0, #0x9a + lsls r0, r0, #1 + bl sub_080A3268 + b _0809BDAE + .align 2, 0 +_0809BD90: .4byte gLCDControls +_0809BD94: .4byte 0x0000DFFF +_0809BD98: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BDAE + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809BDAE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809BDB0 +sub_0809BDB0: @ 0x0809BDB0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0809BE00 + cmp r0, #1 + bgt _0809BDCA + cmp r0, #0 + beq _0809BDD0 + b _0809BE70 +_0809BDCA: + cmp r0, #2 + beq _0809BE54 + b _0809BE70 +_0809BDD0: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x80 + strb r0, [r4, #0xf] + ldr r0, _0809BDF8 @ =gRoomControls + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r3, _0809BDFC @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BDF4 + movs r2, #2 +_0809BDF4: + strb r2, [r3, #0x14] + b _0809BE70 + .align 2, 0 +_0809BDF8: .4byte gRoomControls +_0809BDFC: .4byte gLinkEntity +_0809BE00: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BE0C + subs r0, #1 + strb r0, [r4, #0xe] + b _0809BE70 +_0809BE0C: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809BE34 + ldr r0, _0809BE2C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BE70 + ldr r0, _0809BE30 @ =0x00000133 + bl sub_080A3268 + b _0809BE70 + .align 2, 0 +_0809BE2C: .4byte gUnk_030010A0 +_0809BE30: .4byte 0x00000133 +_0809BE34: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, _0809BE4C @ =gRoomControls + ldr r0, _0809BE50 @ =gLinkEntity + str r0, [r1, #0x30] + movs r0, #0x9a + lsls r0, r0, #1 + bl sub_080A3268 + b _0809BE70 + .align 2, 0 +_0809BE4C: .4byte gRoomControls +_0809BE50: .4byte gLinkEntity +_0809BE54: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BE70 + ldr r1, _0809BE74 @ =gRoomControls + movs r0, #4 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809BE70: + pop {r4, pc} + .align 2, 0 +_0809BE74: .4byte gRoomControls + + thumb_func_start sub_0809BE78 +sub_0809BE78: @ 0x0809BE78 + push {r4, r5, lr} + adds r3, r0, #0 + movs r5, #0 + adds r0, #0x68 + ldrh r2, [r0] + ldr r0, _0809BEB0 @ =gRoomControls + movs r4, #0xa + ldrsh r1, [r0, r4] + adds r4, r0, #0 + cmp r2, r1 + bne _0809BE9E + adds r0, r3, #0 + adds r0, #0x6a + ldrh r1, [r0] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _0809BE9E + movs r5, #1 +_0809BE9E: + ldrh r1, [r4, #0xa] + adds r0, r3, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r1, [r4, #0xc] + adds r0, #2 + strh r1, [r0] + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_0809BEB0: .4byte gRoomControls + + thumb_func_start sub_0809BEB4 +sub_0809BEB4: @ 0x0809BEB4 + push {lr} + ldr r2, _0809BEC8 @ =gUnk_08123DB4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809BEC8: .4byte gUnk_08123DB4 + + thumb_func_start sub_0809BECC +sub_0809BECC: @ 0x0809BECC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x9b + bl sub_0807CBE4 + cmp r0, #0 + beq _0809BEDE + bl sub_0805E780 +_0809BEDE: + movs r0, #0x91 + movs r1, #0 + movs r2, #0 + bl CreateObject + str r0, [r4, #0x54] + cmp r0, #0 + beq _0809BF1A + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + strb r2, [r4, #0x1e] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0809C0A8 + adds r0, r4, #0 + movs r1, #0xcc + movs r2, #0xcc + movs r3, #0 + bl sub_0805EC9C +_0809BF1A: + pop {r4, pc} + + thumb_func_start sub_0809BF1C +sub_0809BF1C: @ 0x0809BF1C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xcc + movs r2, #0xcc + movs r3, #0 + bl sub_0805EC9C + movs r0, #0x37 + bl sub_0807CBE4 + cmp r0, #0 + beq _0809BF6C + movs r0, #0x90 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809BF6C + ldr r0, _0809BF70 @ =gRoomControls + str r1, [r0, #0x30] + ldr r0, [r4, #0x54] + str r1, [r0, #0x54] + movs r3, #0x80 + lsls r3, r3, #0xb + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #2 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, #0x73 + bl sub_08004488 +_0809BF6C: + pop {r4, pc} + .align 2, 0 +_0809BF70: .4byte gRoomControls + + thumb_func_start sub_0809BF74 +sub_0809BF74: @ 0x0809BF74 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r5, r7, #0 + adds r5, #0x74 + ldrh r0, [r5] + subs r1, r0, #1 + strh r1, [r5] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _0809BFA0 + ldr r1, [r7, #0x54] + movs r0, #1 + strb r0, [r1, #0xf] + adds r0, r7, #0 + bl sub_0809C23C + movs r0, #0x9b + bl sub_0807CBE4 + bl sub_0805E780 + b _0809C09A +_0809BFA0: + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _0809BFAE + ldr r0, _0809C09C @ =0x000001B3 + bl sub_08004488 +_0809BFAE: + ldrh r0, [r5] + cmp r0, #0x77 + bhi _0809BFE0 + movs r1, #0x78 + subs r1, r1, r0 + lsls r4, r1, #5 + adds r4, #0xcc + lsls r1, r1, #4 + adds r1, #0xcc + adds r0, r7, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #8 + movs r3, #0 + bl sub_0806FCF4 + adds r1, r7, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] +_0809BFE0: + ldr r1, _0809C0A0 @ =gUnk_08123DC0 + ldrh r0, [r5] + lsrs r0, r0, #5 + adds r0, r0, r1 + ldrb r6, [r0] + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0809C044 + bl sub_08000E50 + adds r4, r0, #0 + asrs r0, r4, #0x10 + ands r0, r6 + adds r2, r6, #1 + lsrs r1, r2, #1 + subs r0, r0, r1 + mov ip, r0 + lsrs r0, r6, #1 + ands r0, r4 + lsrs r2, r2, #2 + subs r4, r0, r2 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r7, #0 + adds r1, #0x80 + ldr r2, _0809C0A4 @ =gRoomControls + ldrh r0, [r2, #6] + ldrh r1, [r1] + adds r0, r0, r1 + add r0, ip + strh r0, [r5, #0x2e] + adds r1, r7, #0 + adds r1, #0x82 + ldrh r0, [r2, #8] + ldrh r1, [r1] + adds r0, r0, r1 + adds r0, r0, r4 + strh r0, [r5, #0x32] +_0809C044: + movs r0, #0xf + movs r1, #2 + movs r2, #0x40 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0809C09A + bl sub_08000E50 + adds r4, r0, #0 + asrs r1, r4, #0x10 + ands r1, r6 + adds r0, r6, #1 + lsrs r0, r0, #1 + subs r1, r1, r0 + mov ip, r1 + lsrs r3, r6, #1 + ands r3, r4 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r7, #0 + adds r1, #0x80 + ldr r2, _0809C0A4 @ =gRoomControls + ldrh r0, [r2, #6] + ldrh r1, [r1] + adds r0, r0, r1 + add r0, ip + strh r0, [r5, #0x2e] + adds r1, r7, #0 + adds r1, #0x82 + ldrh r0, [r2, #8] + ldrh r1, [r1] + adds r0, r0, r1 + adds r0, r0, r3 + strh r0, [r5, #0x32] +_0809C09A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809C09C: .4byte 0x000001B3 +_0809C0A0: .4byte gUnk_08123DC0 +_0809C0A4: .4byte gRoomControls + + thumb_func_start sub_0809C0A8 +sub_0809C0A8: @ 0x0809C0A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0809C214 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r6, r0, #4 + movs r2, #0x3f + ands r6, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r6, r0 + ldr r5, _0809C218 @ =0x00004022 + adds r1, r6, #0 + subs r1, #0x41 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + subs r1, r6, #2 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + subs r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0800015E + adds r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #2 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x3e + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x42 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x7f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x81 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C21C @ =0x0000013F + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + movs r0, #0xa0 + lsls r0, r0, #1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C220 @ =0x00000141 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C224 @ =0x0000017F + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C228 @ =0x00000181 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C22C @ =0x000001BD + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + movs r0, #0xdf + lsls r0, r0, #1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C230 @ =0x000001BF + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C234 @ =0x000001C1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + movs r0, #0xe1 + lsls r0, r0, #1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C238 @ =0x000001C3 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0809C214: .4byte gRoomControls +_0809C218: .4byte 0x00004022 +_0809C21C: .4byte 0x0000013F +_0809C220: .4byte 0x00000141 +_0809C224: .4byte 0x0000017F +_0809C228: .4byte 0x00000181 +_0809C22C: .4byte 0x000001BD +_0809C230: .4byte 0x000001BF +_0809C234: .4byte 0x000001C1 +_0809C238: .4byte 0x000001C3 + + thumb_func_start sub_0809C23C +sub_0809C23C: @ 0x0809C23C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0809C370 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r5, #0 + subs r0, #0x41 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #2 + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #2 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3e + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x42 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x7f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x80 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x81 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C374 @ =0x0000013F + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C378 @ =0x00000141 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C37C @ =0x0000017F + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C380 @ =0x00000181 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C384 @ =0x000001BD + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + movs r1, #0xdf + lsls r1, r1, #1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C388 @ =0x000001BF + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C38C @ =0x000001C1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + movs r1, #0xe1 + lsls r1, r1, #1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C390 @ =0x000001C3 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + pop {r4, r5, pc} + .align 2, 0 +_0809C370: .4byte gRoomControls +_0809C374: .4byte 0x0000013F +_0809C378: .4byte 0x00000141 +_0809C37C: .4byte 0x0000017F +_0809C380: .4byte 0x00000181 +_0809C384: .4byte 0x000001BD +_0809C388: .4byte 0x000001BF +_0809C38C: .4byte 0x000001C1 +_0809C390: .4byte 0x000001C3 + + thumb_func_start sub_0809C394 +sub_0809C394: @ 0x0809C394 + push {lr} + ldr r2, _0809C3A8 @ =gUnk_08123DCC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809C3A8: .4byte gUnk_08123DCC + + thumb_func_start sub_0809C3AC +sub_0809C3AC: @ 0x0809C3AC + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0x1e] + adds r0, #0x29 + ldrb r2, [r0] + subs r1, #9 + ands r1, r2 + movs r2, #5 + orrs r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start nullsub_536 +nullsub_536: @ 0x0809C3C4 + bx lr + .align 2, 0 + + thumb_func_start sub_0809C3C8 +sub_0809C3C8: @ 0x0809C3C8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809C3E8 @ =gUnk_08123DD4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + pop {r4, pc} + .align 2, 0 +_0809C3E8: .4byte gUnk_08123DD4 + + thumb_func_start sub_0809C3EC +sub_0809C3EC: @ 0x0809C3EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #7 + bls _0809C400 + b _0809C5A4 +_0809C400: + lsls r0, r0, #2 + ldr r1, _0809C40C @ =_0809C410 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C40C: .4byte _0809C410 +_0809C410: @ jump table + .4byte _0809C430 @ case 0 + .4byte _0809C53E @ case 1 + .4byte _0809C53E @ case 2 + .4byte _0809C53E @ case 3 + .4byte _0809C53E @ case 4 + .4byte _0809C586 @ case 5 + .4byte _0809C440 @ case 6 + .4byte _0809C5BA @ case 7 +_0809C430: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0 + strh r0, [r1] +_0809C440: + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0xf0 + strb r0, [r1] + ldr r1, _0809C4B4 @ =gRoomControls + movs r2, #0x84 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + movs r2, #0xb4 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #0x80 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809C52E + subs r1, #0x19 + movs r0, #0x29 + strb r0, [r1] + adds r1, #1 + movs r0, #0xe0 + strb r0, [r1] + movs r0, #0x30 + bl sub_0801D8E0 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x84 + str r2, [r0] + mov r8, r0 + cmp r2, #0 + bne _0809C4B8 + bl sub_0805E780 + b _0809C5BA + .align 2, 0 +_0809C4B4: .4byte gRoomControls +_0809C4B8: + str r2, [r4, #0x64] + mov r0, r8 + ldr r1, [r0] + movs r0, #5 + strb r0, [r1, #1] + movs r5, #0 + mov r7, r8 +_0809C4C6: + adds r6, r5, #1 + adds r0, r4, #0 + movs r1, #0x91 + adds r2, r6, #0 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x54] + cmp r0, #0 + beq _0809C4EE + adds r1, r0, #0 + adds r1, #0x84 + ldr r0, [r7] + str r0, [r1] + ldr r1, [r7] + lsls r0, r5, #2 + adds r1, #0x20 + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_0809C4EE: + adds r5, r6, #0 + cmp r5, #3 + bls _0809C4C6 + adds r0, r4, #0 + movs r1, #0x91 + movs r2, #5 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x54] + cmp r0, #0 + beq _0809C510 + adds r1, r0, #0 + adds r1, #0x84 + mov r2, r8 + ldr r0, [r2] + str r0, [r1] +_0809C510: + adds r0, r4, #0 + movs r1, #0x91 + movs r2, #6 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x50] + cmp r0, #0 + beq _0809C5A4 + adds r1, r0, #0 + adds r1, #0x84 + mov r2, r8 + ldr r0, [r2] + str r0, [r1] + b _0809C5A4 +_0809C52E: + adds r1, r4, #0 + adds r1, #0x62 + movs r0, #0xd7 + strb r0, [r1] + adds r1, #1 + movs r0, #0xe0 + strb r0, [r1] + b _0809C5A4 +_0809C53E: + movs r1, #0 + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + ldrb r1, [r4, #0xa] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0809C55A + strb r2, [r4, #0xf] + b _0809C55E +_0809C55A: + movs r0, #0xfe + strb r0, [r4, #0xf] +_0809C55E: + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0x80 + lsls r2, r2, #1 + strh r2, [r0] + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0809C57E + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r1] + b _0809C5A4 +_0809C57E: + adds r0, r4, #0 + adds r0, #0x76 + strh r2, [r0] + b _0809C5A4 +_0809C586: + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x1c + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + str r4, [r0, #8] +_0809C5A4: + ldr r0, _0809C5C0 @ =gUnk_08123DDC + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0809C5C4 +_0809C5BA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809C5C0: .4byte gUnk_08123DDC + + thumb_func_start sub_0809C5C4 +sub_0809C5C4: @ 0x0809C5C4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #7 + bls _0809C5D0 + b _0809C7DE +_0809C5D0: + lsls r0, r0, #2 + ldr r1, _0809C5DC @ =_0809C5E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C5DC: .4byte _0809C5E0 +_0809C5E0: @ jump table + .4byte _0809C738 @ case 0 + .4byte _0809C600 @ case 1 + .4byte _0809C600 @ case 2 + .4byte _0809C600 @ case 3 + .4byte _0809C600 @ case 4 + .4byte _0809C6B8 @ case 5 + .4byte _0809C7B4 @ case 6 + .4byte _0809C7D2 @ case 7 +_0809C600: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xd] + adds r6, r5, #0 + adds r6, #0x84 + cmp r0, #6 + bne _0809C630 + movs r0, #0xf + ldrsb r0, [r5, r0] + cmp r0, #0 + bge _0809C624 + ldr r0, [r6] + ldrb r0, [r0] + rsbs r0, r0, #0 + b _0809C628 +_0809C624: + ldr r0, [r6] + ldrb r0, [r0] +_0809C628: + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_0809CBE4 +_0809C630: + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + lsls r0, r3, #0xd + lsrs r3, r0, #8 + ldr r0, _0809C660 @ =0xFFFFE000 + adds r3, r3, r0 + ldr r0, [r6] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bne _0809C664 + movs r1, #0x88 + lsls r1, r1, #6 + adds r3, r3, r1 + b _0809C66C + .align 2, 0 +_0809C660: .4byte 0xFFFFE000 +_0809C664: + lsrs r0, r3, #1 + movs r1, #0x88 + lsls r1, r1, #6 + adds r3, r0, r1 +_0809C66C: + adds r2, r4, #0 + adds r2, #0x7b + ldr r1, _0809C6B0 @ =gUnk_08123E18 + ldrb r0, [r5, #0xa] + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r2, [r2] + adds r0, r0, r2 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_0809CB70 + ldr r2, [r5, #0x50] + adds r2, #0x7b + ldr r1, _0809C6B4 @ =gUnk_08123E1C + ldrb r0, [r5, #0xa] + subs r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r2, [r2] + adds r1, r1, r2 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + adds r0, r0, r1 + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] + b _0809C7BC + .align 2, 0 +_0809C6B0: .4byte gUnk_08123E18 +_0809C6B4: .4byte gUnk_08123E1C +_0809C6B8: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xd] + adds r6, r5, #0 + adds r6, #0x79 + adds r7, r5, #0 + adds r7, #0x76 + cmp r0, #4 + beq _0809C6F6 + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + beq _0809C6F6 + ldrb r0, [r6] + cmp r0, #0x1c + bls _0809C6E4 + subs r0, #1 + strb r0, [r6] +_0809C6E4: + ldrh r0, [r7] + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _0809C6F4 + subs r0, #1 + strh r0, [r7] + b _0809C6F6 +_0809C6F4: + strh r1, [r7] +_0809C6F6: + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + ldrb r0, [r6] + lsls r0, r0, #8 + muls r0, r3, r0 + lsrs r3, r0, #8 + adds r4, #0x7b + ldrb r0, [r4] + adds r0, #0x80 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_0809CB70 + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] + ldrh r1, [r7] + adds r0, r5, #0 + adds r0, #0x74 + b _0809C7C4 +_0809C738: + movs r0, #0x37 + bl sub_0807CBE4 + cmp r0, #0 + beq _0809C74A + adds r0, r5, #0 + movs r1, #0x1e + bl sub_0805E4E0 +_0809C74A: + ldr r1, _0809C7A8 @ =gUnk_08123DF8 + ldrb r0, [r5, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0809C7BC + ldr r0, _0809C7AC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0809C772 + ldr r0, [r5, #0x54] + bl sub_080A2B80 +_0809C772: + adds r3, r5, #0 + adds r3, #0x7e + ldrh r0, [r3] + cmp r0, #0 + beq _0809C7BC + ldr r2, [r5, #0x54] + movs r1, #0 + ldrsh r0, [r3, r1] + ldr r1, [r2, #0x20] + subs r1, r1, r0 + str r1, [r2, #0x20] + ldr r0, [r2, #0x34] + adds r0, r0, r1 + str r0, [r2, #0x34] + ldr r0, [r5, #0x54] + ldr r1, [r0, #0x20] + movs r0, #0xc0 + lsls r0, r0, #6 + cmp r1, r0 + beq _0809C7A0 + ldr r0, _0809C7B0 @ =0xFFFFD000 + cmp r1, r0 + bne _0809C7BC +_0809C7A0: + ldrh r0, [r3] + rsbs r0, r0, #0 + strh r0, [r3] + b _0809C7BC + .align 2, 0 +_0809C7A8: .4byte gUnk_08123DF8 +_0809C7AC: .4byte gUnk_030010A0 +_0809C7B0: .4byte 0xFFFFD000 +_0809C7B4: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 +_0809C7BC: + adds r0, r5, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 +_0809C7C4: + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r5, #0 + bl sub_0805EC9C + b _0809C7DE +_0809C7D2: + ldr r0, _0809C7E0 @ =gRoomControls + ldr r0, [r0, #0x30] + cmp r0, r5 + beq _0809C7DE + bl sub_0805E780 +_0809C7DE: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809C7E0: .4byte gRoomControls + + thumb_func_start sub_0809C7E4 +sub_0809C7E4: @ 0x0809C7E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0809C84A + adds r3, r5, #0 + adds r3, #0x7e + ldrh r0, [r3] + cmp r0, #0 + bne _0809C82A + ldr r2, [r5, #0x54] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0809C814 + ldr r0, [r2, #0x34] + ldr r1, _0809C810 @ =0xFFFFC000 + adds r0, r0, r1 + str r0, [r2, #0x34] + b _0809C82A + .align 2, 0 +_0809C810: .4byte 0xFFFFC000 +_0809C814: + ldr r0, [r2, #0x34] + ldr r1, _0809C84C @ =0xFFFFF000 + adds r0, r0, r1 + str r0, [r2, #0x34] + ldr r1, [r5, #0x54] + movs r0, #0xc0 + lsls r0, r0, #6 + str r0, [r1, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r3] +_0809C82A: + adds r4, r5, #0 + adds r4, #0x79 + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C84A + ldr r0, _0809C850 @ =0x00000B43 + bl TextboxTryNoOverlap + movs r0, #1 + strb r0, [r5, #0xd] + movs r0, #8 + strb r0, [r4] +_0809C84A: + pop {r4, r5, pc} + .align 2, 0 +_0809C84C: .4byte 0xFFFFF000 +_0809C850: .4byte 0x00000B43 + + thumb_func_start sub_0809C854 +sub_0809C854: @ 0x0809C854 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0809C8A8 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0809C8B8 + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C8B8 + adds r0, r4, #0 + movs r1, #0x91 + movs r2, #7 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0809C892 + ldrh r0, [r1, #0x32] + subs r0, #0x50 + strh r0, [r1, #0x32] + ldr r0, _0809C8AC @ =gRoomControls + str r1, [r0, #0x30] +_0809C892: + ldrb r0, [r4, #0xf] + cmp r0, #2 + bhi _0809C8B0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r5] + movs r0, #0xe6 + bl sub_080A3268 + b _0809C8B8 + .align 2, 0 +_0809C8A8: .4byte gTextBox +_0809C8AC: .4byte gRoomControls +_0809C8B0: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x78 + strb r0, [r5] +_0809C8B8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809C8BC +sub_0809C8BC: @ 0x0809C8BC + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r3] + subs r1, r0, #1 + strb r1, [r3] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C8E2 + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x1e + strb r0, [r3] + ldrb r0, [r2, #0xf] + adds r0, #1 + strb r0, [r2, #0xf] + b _0809C922 +_0809C8E2: + movs r0, #3 + ands r0, r1 + cmp r0, #1 + beq _0809C90A + cmp r0, #1 + bgt _0809C8F4 + cmp r0, #0 + beq _0809C8FE + b _0809C922 +_0809C8F4: + cmp r0, #2 + beq _0809C8FE + cmp r0, #3 + beq _0809C916 + b _0809C922 +_0809C8FE: + ldrh r1, [r2, #0x2e] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #8 + b _0809C920 +_0809C90A: + ldrh r1, [r2, #0x2e] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #4 + b _0809C920 +_0809C916: + ldrh r1, [r2, #0x2e] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + subs r0, #4 +_0809C920: + strh r0, [r2, #0x2e] +_0809C922: + pop {pc} + + thumb_func_start sub_0809C924 +sub_0809C924: @ 0x0809C924 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0809C948 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #6 + movs r3, #0 + bl sub_080A2988 + b _0809C980 +_0809C948: + movs r0, #4 + strb r0, [r5, #0xd] + movs r0, #0x3c + strb r0, [r1] + ldr r4, _0809C984 @ =0x00000115 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080ADF80 + ldr r0, [r5, #0x50] + adds r1, r4, #0 + bl sub_080ADF80 + adds r0, r5, #0 + movs r1, #0xef + bl sub_0801D2B4 + ldr r0, [r5, #0x50] + movs r1, #0xef + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xef + bl sub_0809CC30 + movs r0, #0xe8 + bl sub_080A3268 +_0809C980: + pop {r4, r5, pc} + .align 2, 0 +_0809C984: .4byte 0x00000115 + + thumb_func_start sub_0809C988 +sub_0809C988: @ 0x0809C988 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C9AC + movs r0, #5 + strb r0, [r2, #0xd] + movs r0, #0xb4 + strb r0, [r1] + movs r0, #3 + strb r0, [r2, #0xb] + b _0809C9DC +_0809C9AC: + ldr r0, _0809C9C8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0809C9CC + adds r0, r2, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #4 + b _0809C9DA + .align 2, 0 +_0809C9C8: .4byte gUnk_030010A0 +_0809C9CC: + adds r0, r2, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #4 +_0809C9DA: + strh r0, [r1] +_0809C9DC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809C9E0 +sub_0809C9E0: @ 0x0809C9E0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _0809CA04 @ =gUnk_030010A0 + ldr r1, [r0] + movs r2, #2 + ands r1, r2 + adds r7, r0, #0 + cmp r1, #0 + beq _0809CA08 + adds r2, r4, #0 + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #8 + b _0809CA16 + .align 2, 0 +_0809CA04: .4byte gUnk_030010A0 +_0809CA08: + adds r2, r4, #0 + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #8 +_0809CA16: + strh r0, [r1] + adds r5, r2, #0 + ldr r0, [r7] + movs r6, #3 + ands r0, r6 + cmp r0, #0 + bne _0809CA30 + adds r0, r4, #0 + movs r1, #0x87 + movs r2, #2 + movs r3, #0 + bl sub_080A2988 +_0809CA30: + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + bne _0809CA92 + ldr r0, [r4, #0x54] + adds r0, #0x62 + strb r1, [r0] + ldr r0, [r4, #0x54] + movs r1, #0x80 + lsls r1, r1, #2 + adds r2, #2 + ldrb r2, [r2] + rsbs r2, r2, #0 + bl sub_0806F62C + ldr r1, [r4, #0x54] + adds r0, r4, #0 + movs r2, #0x48 + bl sub_0806FC80 + cmp r0, #0 + beq _0809CAC4 + movs r0, #6 + strb r0, [r4, #0xd] + movs r1, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + strb r1, [r4, #0xb] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #0xc4 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r5] + ldr r0, [r0, #8] + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + ldr r1, [r5] + movs r0, #1 + strb r0, [r1] + movs r0, #0xed + bl sub_080A3268 + b _0809CAC4 +_0809CA92: + subs r0, #1 + strb r0, [r2] + ldr r0, [r7] + ands r0, r6 + cmp r0, #1 + beq _0809CAB4 + cmp r0, #1 + blo _0809CAAC + cmp r0, #2 + beq _0809CAAC + cmp r0, #3 + beq _0809CABC + b _0809CAC4 +_0809CAAC: + ldr r0, [r4, #0x54] + adds r0, #0x62 + movs r1, #0 + b _0809CAC2 +_0809CAB4: + ldr r0, [r4, #0x54] + adds r0, #0x62 + movs r1, #0xfc + b _0809CAC2 +_0809CABC: + ldr r0, [r4, #0x54] + adds r0, #0x62 + movs r1, #4 +_0809CAC2: + strb r1, [r0] +_0809CAC4: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809CAC8 +sub_0809CAC8: @ 0x0809CAC8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0806F69C + ldr r2, _0809CB3C @ =gRoomControls + ldrh r0, [r2, #8] + movs r1, #0xe4 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r5, r3] + cmp r0, r1 + bge _0809CB26 + movs r0, #4 + strb r0, [r2, #0xe] + ldr r0, _0809CB40 @ =gLinkEntity + str r0, [r2, #0x30] + movs r0, #0x9b + bl sub_0807CCB4 + ldr r0, [r5, #0x50] + bl sub_0805E7BC + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x24] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x28] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x2c] + bl sub_0805E7BC + movs r0, #7 + strb r0, [r5, #0xd] +_0809CB26: + ldr r0, _0809CB44 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0809CB38 + ldr r0, _0809CB48 @ =0x00000163 + bl sub_080A3268 +_0809CB38: + pop {r4, r5, pc} + .align 2, 0 +_0809CB3C: .4byte gRoomControls +_0809CB40: .4byte gLinkEntity +_0809CB44: .4byte gUnk_030010A0 +_0809CB48: .4byte 0x00000163 + + thumb_func_start sub_0809CB4C +sub_0809CB4C: @ 0x0809CB4C + push {lr} + ldr r0, _0809CB68 @ =gRoomControls + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0809CB66 + ldr r0, _0809CB6C @ =0x00000B44 + movs r1, #0 + bl sub_08078AA8 + bl sub_0805E780 +_0809CB66: + pop {pc} + .align 2, 0 +_0809CB68: .4byte gRoomControls +_0809CB6C: .4byte 0x00000B44 + + thumb_func_start sub_0809CB70 +sub_0809CB70: @ 0x0809CB70 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + ldr r0, _0809CBE0 @ =gUnk_080C9160 + mov sb, r0 + lsls r0, r4, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + mov r8, r1 + bl sub_0806FA04 + ldr r1, [r6, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r6, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, sb + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, r8 + bl sub_0806FA04 + ldr r2, [r6, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x30] + subs r1, r1, r0 + str r1, [r6, #0x30] + ldr r0, [r2, #0x34] + str r0, [r6, #0x34] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809CBE0: .4byte gUnk_080C9160 + + thumb_func_start sub_0809CBE4 +sub_0809CBE4: @ 0x0809CBE4 + push {r4, lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r2, #0xf] + ldrb r4, [r3] + adds r1, r0, r4 + strb r1, [r3] + ldrb r4, [r2, #0xf] + movs r0, #0xf + ldrsb r0, [r2, r0] + cmp r0, #0 + bge _0809CC16 + ldrb r0, [r2, #0xe] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmn r1, r0 + bge _0809CC2C + rsbs r0, r4, #0 + strb r0, [r2, #0xf] + movs r0, #0xcf + lsls r0, r0, #1 + bl sub_080A3268 + b _0809CC2C +_0809CC16: + movs r0, #0 + ldrsb r0, [r3, r0] + ldrb r1, [r2, #0xe] + cmp r0, r1 + ble _0809CC2C + rsbs r0, r4, #0 + strb r0, [r2, #0xf] + movs r0, #0xcf + lsls r0, r0, #1 + bl sub_080A3268 +_0809CC2C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809CC30 +sub_0809CC30: @ 0x0809CC30 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + bl sub_0801D2B4 + movs r5, #0 +_0809CC42: + ldr r0, [r4] + lsls r1, r5, #2 + adds r0, #0x20 + adds r0, r0, r1 + ldr r0, [r0] + adds r1, r6, #0 + bl sub_0801D2B4 + adds r5, #1 + cmp r5, #3 + bls _0809CC42 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809CC5C +sub_0809CC5C: @ 0x0809CC5C + push {lr} + ldr r2, _0809CC70 @ =gUnk_08123E20 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CC70: .4byte gUnk_08123E20 + + thumb_func_start sub_0809CC74 +sub_0809CC74: @ 0x0809CC74 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #1 + strb r4, [r5, #0xc] + bl sub_08016A04 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0809CCD4 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #5 + orrs r1, r0 + strb r1, [r2] + movs r4, #0 +_0809CC9A: + movs r0, #0x92 + movs r1, #1 + adds r2, r4, #0 + bl CreateObject + adds r1, r0, #0 + adds r4, #1 + cmp r1, #0 + beq _0809CCBE + str r5, [r1, #0x50] + lsrs r2, r4, #1 + lsls r2, r2, #0x14 + ldr r0, _0809CCCC @ =0xFFF80000 + adds r2, r2, r0 + adds r0, r5, #0 + ldr r3, _0809CCD0 @ =0xFFF20000 + bl PositionRelative +_0809CCBE: + cmp r4, #2 + bls _0809CC9A + adds r0, r5, #0 + bl sub_0809CDF0 + b _0809CD0A + .align 2, 0 +_0809CCCC: .4byte 0xFFF80000 +_0809CCD0: .4byte 0xFFF20000 +_0809CCD4: + ldrb r1, [r5, #0xb] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0809CCF2 + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #0x14 + strb r0, [r5, #0xe] + b _0809CD02 +_0809CCF2: + movs r0, #2 + strb r0, [r5, #0xc] + ands r0, r1 + movs r1, #0x12 + cmp r0, #0 + beq _0809CD00 + movs r1, #0x14 +_0809CD00: + strb r1, [r5, #0xe] +_0809CD02: + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_0809CD0A: + pop {r4, r5, pc} + + thumb_func_start sub_0809CD0C +sub_0809CD0C: @ 0x0809CD0C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809CDAC + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x5a + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0809CD36 + movs r0, #0xfe + ands r0, r2 + strb r0, [r1] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_0809CD36: + ldrb r1, [r1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809CD56 + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #1 + bne _0809CD56 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] +_0809CD56: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0809CDAC + ldr r5, _0809CDB0 @ =gLinkEntity + adds r6, r5, #0 + adds r6, #0x3d + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _0809CDAC + ldrb r0, [r4, #0x1e] + cmp r0, #0 + beq _0809CDAC + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl sub_0806FC80 + cmp r0, #0 + beq _0809CDAC + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + adds r0, r5, #0 + movs r1, #0x7a + bl sub_0800449C + movs r1, #0x10 + strb r1, [r6] + adds r0, r5, #0 + adds r0, #0x3e + strb r1, [r0] + adds r2, r5, #0 + adds r2, #0x42 + movs r0, #0xc + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x46 + strh r1, [r0] +_0809CDAC: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809CDB0: .4byte gLinkEntity + + thumb_func_start sub_0809CDB4 +sub_0809CDB4: @ 0x0809CDB4 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0809CDEC + movs r2, #1 + movs r0, #1 + strb r0, [r3, #0xc] + movs r0, #0x1e + strb r0, [r3, #0xe] + strb r1, [r3, #0xf] + ldrb r1, [r3, #0x18] + subs r0, #0x22 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + ldr r0, [r3, #0x50] + ldrh r0, [r0, #0x32] + subs r0, #0xe + strh r0, [r3, #0x32] + adds r0, r3, #0 + movs r1, #0 + bl sub_08004260 +_0809CDEC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809CDF0 +sub_0809CDF0: @ 0x0809CDF0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0809CE80 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r6, [r0] + ldr r0, _0809CE84 @ =0x0000402E + subs r1, r6, #1 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldr r5, _0809CE88 @ =0x00004022 + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0800015E + adds r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r5, #4 + adds r1, r6, #0 + subs r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809CE8C @ =0x00004024 + adds r1, r6, #0 + subs r1, #0x3f + ldrb r2, [r4] + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x81 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0809CE80: .4byte gRoomControls +_0809CE84: .4byte 0x0000402E +_0809CE88: .4byte 0x00004022 +_0809CE8C: .4byte 0x00004024 + + thumb_func_start sub_0809CE90 +sub_0809CE90: @ 0x0809CE90 + push {lr} + ldr r2, _0809CEA4 @ =gUnk_08123E80 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CEA4: .4byte gUnk_08123E80 + + thumb_func_start sub_0809CEA8 +sub_0809CEA8: @ 0x0809CEA8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0809CEC0 +sub_0809CEC0: @ 0x0809CEC0 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0809CEC8 +sub_0809CEC8: @ 0x0809CEC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809CF06 + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809CEEE + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0809CEF4 +_0809CEEE: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0809CEF4: + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0809CF0C +_0809CF06: + adds r0, r4, #0 + bl sub_08004274 +_0809CF0C: + adds r4, #0x59 + ldrb r0, [r4] + cmp r0, #0xff + bne _0809CF20 + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0x10 + strb r0, [r4] +_0809CF20: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809CF24 +sub_0809CF24: @ 0x0809CF24 + push {lr} + ldr r2, _0809CF38 @ =gUnk_08123EC0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CF38: .4byte gUnk_08123EC0 + + thumb_func_start sub_0809CF3C +sub_0809CF3C: @ 0x0809CF3C + push {lr} + ldr r2, _0809CF50 @ =gUnk_08123EEC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CF50: .4byte gUnk_08123EEC + + thumb_func_start sub_0809CF54 +sub_0809CF54: @ 0x0809CF54 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x31 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + ldr r0, _0809CFDC @ =0xFFFE8000 + str r0, [r4, #0x20] + ldr r0, _0809CFE0 @ =0xFFC74000 + str r0, [r4, #0x34] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0xf8 + lsls r0, r0, #8 + strh r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #8 + strb r0, [r4, #0x15] + subs r1, #0x30 + movs r0, #2 + strb r0, [r1] + ldr r0, _0809CFE4 @ =gRoomControls + ldrh r0, [r0, #0xa] + strh r0, [r4, #0x2e] + ldr r0, _0809CFE8 @ =0x00000123 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + movs r0, #0x95 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0809CFD8 + str r4, [r5, #0x50] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FAB0 +_0809CFD8: + pop {r4, r5, pc} + .align 2, 0 +_0809CFDC: .4byte 0xFFFE8000 +_0809CFE0: .4byte 0xFFC74000 +_0809CFE4: .4byte gRoomControls +_0809CFE8: .4byte 0x00000123 + + thumb_func_start sub_0809CFEC +sub_0809CFEC: @ 0x0809CFEC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x68 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r0, r4, #0 + bl sub_08003FC4 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809D018 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0809D026 + strb r0, [r4, #0xf] + b _0809D026 +_0809D018: + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809D026 + bl sub_0805E780 +_0809D026: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D030 +sub_0809D030: @ 0x0809D030 + push {lr} + ldr r2, _0809D044 @ =gUnk_08123EF4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D044: .4byte gUnk_08123EF4 + + thumb_func_start sub_0809D048 +sub_0809D048: @ 0x0809D048 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0x17 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D06C +sub_0809D06C: @ 0x0809D06C + push {lr} + ldr r2, _0809D080 @ =gUnk_08123EFC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D080: .4byte gUnk_08123EFC + + thumb_func_start sub_0809D084 +sub_0809D084: @ 0x0809D084 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + cmp r0, #0 + beq _0809D0A8 + ldrb r2, [r0, #0xf] + cmp r2, #0 + beq _0809D0A0 + movs r3, #0x80 + lsls r3, r3, #0xc + movs r2, #0 + bl PositionRelative + b _0809D0A8 +_0809D0A0: + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + str r2, [r1, #0x20] +_0809D0A8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809D0AC +sub_0809D0AC: @ 0x0809D0AC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_080044EC + cmp r0, #1 + bhi _0809D0F0 + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xa] + movs r1, #1 + strb r1, [r4, #0xc] + str r2, [r4, #0x34] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + movs r0, #0x45 + bl sub_0807CCB4 + movs r0, #0x72 + bl sub_080A3268 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0809D0F0 + adds r0, r4, #0 + bl sub_0806FAD8 +_0809D0F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D0F4 +sub_0809D0F4: @ 0x0809D0F4 + push {lr} + ldr r2, _0809D108 @ =gUnk_08123F04 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D108: .4byte gUnk_08123F04 + + thumb_func_start sub_0809D10C +sub_0809D10C: @ 0x0809D10C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0x17 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D130 +sub_0809D130: @ 0x0809D130 + push {lr} + adds r2, r0, #0 + ldr r0, _0809D148 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809D14C + adds r0, r2, #0 + bl sub_0800445C + b _0809D170 + .align 2, 0 +_0809D148: .4byte gUnk_03003F80 +_0809D14C: + adds r0, r2, #0 + bl sub_08017850 + cmp r0, #0 + beq _0809D170 + movs r0, #0x17 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + ldr r0, _0809D174 @ =gUnk_02002A40 + ldr r1, [r0, #0x40] + movs r2, #0x80 + lsls r2, r2, #0x15 + orrs r1, r2 + str r1, [r0, #0x40] + bl sub_0805E780 +_0809D170: + pop {pc} + .align 2, 0 +_0809D174: .4byte gUnk_02002A40 + + thumb_func_start sub_0809D178 +sub_0809D178: @ 0x0809D178 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809D19C + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r1, r4, #0 + adds r1, #0x5a + movs r0, #0x80 + strb r0, [r1] +_0809D19C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809D1E8 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r0, r4, #0 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0x10 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0809D1EE + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + b _0809D1EE +_0809D1E8: + adds r0, r4, #0 + bl sub_08004274 +_0809D1EE: + pop {r4, pc} + + thumb_func_start sub_0809D1F0 +sub_0809D1F0: @ 0x0809D1F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + mov sb, r0 + cmp r0, #0 + beq _0809D224 + cmp r0, #1 + beq _0809D2B0 + bl sub_08078B48 + ldr r2, _0809D220 @ =gLinkEntity + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + movs r1, #0x68 + adds r1, r1, r5 + mov r8, r1 + b _0809D3A8 + .align 2, 0 +_0809D220: .4byte gLinkEntity +_0809D224: + ldrb r1, [r5, #0xe] + cmp r1, #0 + beq _0809D234 + movs r0, #0xff + strb r0, [r5, #0x1e] + subs r0, r1, #1 + strb r0, [r5, #0xe] + b _0809D488 +_0809D234: + movs r1, #1 + strb r1, [r5, #0xc] + mov r2, sb + str r2, [r5, #0x20] + ldr r0, _0809D2A0 @ =0xFFEC0000 + str r0, [r5, #0x34] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r2, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x1b] + ldr r0, _0809D2A4 @ =gRoomControls + ldrh r0, [r0, #0xa] + strh r0, [r5, #0x2e] + ldr r0, _0809D2A8 @ =gLinkEntity + ldrh r0, [r0, #0x32] + strh r0, [r5, #0x32] + mov r3, sb + str r3, [r5, #0x54] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, _0809D2AC @ =0x00000123 + bl sub_080A3268 + movs r0, #0x68 + adds r0, r0, r5 + mov r8, r0 + b _0809D3A8 + .align 2, 0 +_0809D2A0: .4byte 0xFFEC0000 +_0809D2A4: .4byte gRoomControls +_0809D2A8: .4byte gLinkEntity +_0809D2AC: .4byte 0x00000123 +_0809D2B0: + ldr r6, _0809D430 @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + ldrh r0, [r5, #0x24] + adds r0, #8 + strh r0, [r5, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #2 + mov sl, r1 + cmp r0, sl + ble _0809D2D6 + mov r2, sl + strh r2, [r5, #0x24] +_0809D2D6: + ldrb r1, [r6, #0x10] + movs r0, #0x80 + ands r0, r1 + movs r3, #0x68 + adds r3, r3, r5 + mov r8, r3 + cmp r0, #0 + beq _0809D3A8 + ldr r0, _0809D434 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0809D3A8 + ldrb r0, [r6, #0xc] + cmp r0, #0x1c + beq _0809D3A8 + cmp r0, #6 + beq _0809D3A8 + cmp r0, #9 + beq _0809D3A8 + ldr r7, _0809D438 @ =gUnk_03003F80 + adds r0, r7, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x18 + beq _0809D3A8 + cmp r0, #0xb + beq _0809D3A8 + cmp r0, #8 + beq _0809D3A8 + bl sub_08079F8C + cmp r0, #0 + beq _0809D3A8 + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0xe + movs r3, #0xe + bl sub_080041A0 + cmp r0, #0 + beq _0809D3A8 + movs r1, #0x36 + ldrsh r0, [r6, r1] + movs r2, #0x36 + ldrsh r1, [r5, r2] + subs r0, r0, r1 + subs r0, #8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1f + bhi _0809D3A8 + adds r0, r6, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0809D3A8 + movs r0, #0x95 + movs r1, #0xa + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809D3A8 + str r4, [r5, #0x54] + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + mov r3, sl + strh r3, [r5, #0x24] + movs r0, #0xe0 + lsls r0, r0, #8 + mov r1, r8 + strh r0, [r1] + bl sub_08079184 + bl sub_08078B48 + bl sub_080791D0 + bl sub_08077B20 + adds r0, r7, #0 + adds r0, #0x26 + movs r2, #0 + strb r2, [r0] + strb r2, [r7, #2] + ldrb r1, [r6, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6, #0x10] + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6, #0x18] + ldr r1, _0809D43C @ =gUnk_03003DC0 + movs r0, #6 + strb r0, [r1] + ldr r0, _0809D440 @ =gUnk_02034490 + mov r3, sb + strb r3, [r0] +_0809D3A8: + adds r0, r5, #0 + bl sub_0806F69C + mov r0, r8 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _0809D454 + ldr r2, _0809D430 @ =gLinkEntity + movs r3, #0x2e + ldrsh r1, [r2, r3] + movs r3, #0x2e + ldrsh r0, [r5, r3] + subs r0, #8 + cmp r1, r0 + bge _0809D3DA + movs r0, #0 + strb r0, [r5, #0xe] +_0809D3DA: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0809D448 + ldr r2, _0809D444 @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldrh r0, [r4, #0x36] + adds r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + b _0809D454 + .align 2, 0 +_0809D430: .4byte gLinkEntity +_0809D434: .4byte gTextBox +_0809D438: .4byte gUnk_03003F80 +_0809D43C: .4byte gUnk_03003DC0 +_0809D440: .4byte gUnk_02034490 +_0809D444: .4byte 0xFFF80000 +_0809D448: + subs r0, #1 + strb r0, [r5, #0xe] + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0809D454: + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809D488 + ldrb r0, [r5, #0xc] + cmp r0, #2 + bne _0809D478 + ldr r0, _0809D494 @ =gUnk_02002A40 + ldr r1, [r0, #0x40] + movs r2, #0x80 + lsls r2, r2, #0x15 + orrs r1, r2 + str r1, [r0, #0x40] + movs r0, #9 + movs r1, #0 + bl sub_080A7138 +_0809D478: + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _0809D484 + adds r0, r4, #0 + bl sub_0805E79C +_0809D484: + bl sub_0805E780 +_0809D488: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809D494: .4byte gUnk_02002A40 + + thumb_func_start sub_0809D498 +sub_0809D498: @ 0x0809D498 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0809D548 + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldr r0, _0809D534 @ =0xFFFD8000 + str r0, [r5, #0x20] + ldr r0, _0809D538 @ =0xFFB4C000 + str r0, [r5, #0x34] + adds r4, r5, #0 + adds r4, #0x68 + movs r0, #0xf0 + lsls r0, r0, #8 + strh r0, [r4] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x38 + strb r3, [r0] + adds r6, r5, #0 + adds r6, #0x29 + ldrb r1, [r6] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + ldrb r2, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x1b] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _0809D53C @ =gRoomControls + ldrh r0, [r0, #0xa] + strh r0, [r5, #0x2e] + ldr r0, _0809D540 @ =gLinkEntity + ldrh r0, [r0, #0x32] + strh r0, [r5, #0x32] + ldr r0, _0809D544 @ =0x00000123 + bl sub_080A3268 + ldrb r1, [r6] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + bl sub_08078B48 + adds r7, r4, #0 + b _0809D62E + .align 2, 0 +_0809D534: .4byte 0xFFFD8000 +_0809D538: .4byte 0xFFB4C000 +_0809D53C: .4byte gRoomControls +_0809D540: .4byte gLinkEntity +_0809D544: .4byte 0x00000123 +_0809D548: + adds r7, r5, #0 + adds r7, #0x68 + cmp r0, #1 + bne _0809D62E + ldr r6, _0809D658 @ =gLinkEntity + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r1 + strb r0, [r6, #0x18] + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _0809D5B0 + ldr r2, _0809D65C @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldrh r0, [r4, #0x36] + adds r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] +_0809D5B0: + bl sub_08078B48 + ldr r3, _0809D660 @ =gRoomControls + movs r1, #0xa + ldrsh r0, [r3, r1] + adds r0, #0x78 + movs r2, #0x2e + ldrsh r1, [r5, r2] + cmp r0, r1 + bge _0809D62E + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + cmp r4, #0 + beq _0809D5E6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0809D5E6: + str r6, [r3, #0x30] + ldrb r1, [r6, #0x18] + mov r0, r8 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r6, #0x18] + bl sub_080791D0 + bl sub_0805E564 + ldr r1, _0809D664 @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + movs r0, #0x52 + bl GetProgressFlag + cmp r0, #0 + bne _0809D62E + movs r0, #0x69 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809D62E + ldr r1, _0809D668 @ =gUnk_0800B0AC + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + movs r0, #0x52 + bl sub_0807CD04 +_0809D62E: + adds r0, r5, #0 + bl sub_0806F69C + movs r0, #0 + ldrsh r1, [r7, r0] + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809D652 + bl sub_0805E780 +_0809D652: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809D658: .4byte gLinkEntity +_0809D65C: .4byte 0xFFF80000 +_0809D660: .4byte gRoomControls +_0809D664: .4byte gUnk_02034490 +_0809D668: .4byte gUnk_0800B0AC + + thumb_func_start sub_0809D66C +sub_0809D66C: @ 0x0809D66C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0809D694 @ =gLinkEntity + ldrb r1, [r0, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0809D6EC + cmp r0, #1 + bgt _0809D698 + cmp r0, #0 + beq _0809D6A2 + b _0809D6FE + .align 2, 0 +_0809D694: .4byte gLinkEntity +_0809D698: + cmp r0, #2 + beq _0809D6F4 + cmp r0, #3 + beq _0809D6FA + b _0809D6FE +_0809D6A2: + movs r3, #1 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x38 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0xe0 + bl sub_080042AC +_0809D6EC: + adds r0, r4, #0 + bl sub_080042B8 + b _0809D6FE +_0809D6F4: + movs r0, #3 + strb r0, [r4, #0xc] + b _0809D6FE +_0809D6FA: + bl sub_0805E780 +_0809D6FE: + pop {r4, pc} + + thumb_func_start sub_0809D700 +sub_0809D700: @ 0x0809D700 + push {r4, lr} + sub sp, #4 + bl sub_08052654 + cmp r0, #0 + beq _0809D732 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x95 + movs r2, #6 + movs r3, #8 + bl sub_0805EB2C + adds r4, r0, #0 + cmp r4, #0 + bne _0809D732 + movs r0, #0x95 + movs r1, #8 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _0809D732 + strb r4, [r0, #0xe] +_0809D732: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D738 +sub_0809D738: @ 0x0809D738 + push {r4, lr} + movs r0, #0x95 + movs r1, #9 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809D77C + ldr r1, _0809D774 @ =gRoomControls + movs r0, #0 + str r0, [r1, #0x30] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + bl sub_0805E544 + movs r0, #0x95 + movs r1, #0xa + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _0809D76C + str r0, [r4, #0x54] +_0809D76C: + ldr r1, _0809D778 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + b _0809D780 + .align 2, 0 +_0809D774: .4byte gRoomControls +_0809D778: .4byte gUnk_02034490 +_0809D77C: + bl sub_080791D0 +_0809D780: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D784 +sub_0809D784: @ 0x0809D784 + push {lr} + ldr r1, _0809D7A0 @ =gUnk_081240B0 + ldrb r3, [r0, #0xc] + lsls r3, r3, #2 + adds r3, r3, r1 + ldrb r1, [r0, #0xa] + lsls r1, r1, #5 + ldr r2, _0809D7A4 @ =gUnk_08123FB0 + adds r1, r1, r2 + ldr r2, [r3] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0809D7A0: .4byte gUnk_081240B0 +_0809D7A4: .4byte gUnk_08123FB0 + + thumb_func_start sub_0809D7A8 +sub_0809D7A8: @ 0x0809D7A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + adds r0, #1 + movs r4, #0 + strb r0, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x38 + movs r0, #2 + strb r0, [r2] + ldrb r2, [r5, #0x19] + movs r0, #0x3f + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r5, #0x19] + ldr r0, [r1, #0x10] + str r0, [r5, #0x20] + ldrb r3, [r1, #0xf] + strb r3, [r5, #0x15] + ldrh r0, [r1, #0x18] + strh r0, [r5, #0x24] + ldrh r0, [r5, #0x32] + ldrh r2, [r1, #0x1a] + subs r0, r0, r2 + strh r0, [r5, #0x32] + str r4, [r5, #0x34] + ldrb r0, [r1, #0x1e] + strb r0, [r5, #0xe] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _0809D80C + ldrb r0, [r5, #0x15] + cmp r0, #0x81 + bne _0809D80C + bl sub_08000E50 + ldr r1, _0809D820 @ =gLinkEntity + ldrb r1, [r1, #0x14] + lsls r1, r1, #2 + movs r2, #3 + ands r0, r2 + adds r1, r1, r0 + subs r1, #2 + movs r0, #0x1f + ands r1, r0 + movs r0, #0x10 + eors r1, r0 + strb r1, [r5, #0x15] +_0809D80C: + adds r0, r5, #0 + bl sub_08016A04 + ldrb r4, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_0809D820: .4byte gLinkEntity + + thumb_func_start sub_0809D824 +sub_0809D824: @ 0x0809D824 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #1 + ldr r2, [r6, #4] + cmp r2, #0 + beq _0809D838 + adds r0, r5, #0 + bl _call_via_r2 +_0809D838: + cmp r0, #0 + beq _0809D850 + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + ldrh r1, [r6, #0x1a] + ldrh r2, [r5, #0x32] + adds r0, r1, r2 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x36] + subs r0, r0, r1 + strh r0, [r5, #0x36] +_0809D850: + ldrb r4, [r5, #0xa] + ldrb r0, [r6, #0xd] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809D860 +sub_0809D860: @ 0x0809D860 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + bl sub_0806F69C + ldr r1, [r6, #0x14] + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #1 + bhi _0809D8B2 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0809D888 + subs r0, #1 + strb r0, [r5, #0xe] + ldr r0, [r6, #0x14] + lsls r0, r0, #3 + str r0, [r5, #0x20] + b _0809D8AC +_0809D888: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + ldr r0, _0809D8C4 @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + bl sub_08016A04 + ldr r1, [r6] + cmp r1, #0 + beq _0809D8AC + adds r0, r5, #0 + bl _call_via_r1 +_0809D8AC: + movs r0, #0x6e + bl sub_080A3268 +_0809D8B2: + ldrb r4, [r5, #0xa] + ldrb r0, [r6, #0xd] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + .align 2, 0 +_0809D8C4: .4byte gLinkEntity + + thumb_func_start sub_0809D8C8 +sub_0809D8C8: @ 0x0809D8C8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, _0809D8E4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809D8E8 + adds r0, r5, #0 + bl sub_0800445C + b _0809D90A + .align 2, 0 +_0809D8E4: .4byte gUnk_03003F80 +_0809D8E8: + adds r0, r5, #0 + bl sub_08017850 + cmp r0, #0 + beq _0809D90A + ldrb r0, [r6, #0xd] + ldrb r1, [r5, #0xb] + movs r2, #0 + bl sub_080A7C00 + ldrh r0, [r6, #0x1c] + cmp r0, #0 + beq _0809D906 + bl sub_0807CCC8 +_0809D906: + bl sub_0805E780 +_0809D90A: + ldrb r4, [r5, #0xa] + ldrb r0, [r6, #0xd] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809D91C +sub_0809D91C: @ 0x0809D91C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0809D934 + adds r0, r4, #0 + bl sub_0806FAD8 +_0809D934: + movs r0, #0x72 + bl sub_080A3268 + pop {r4, pc} + + thumb_func_start sub_0809D93C +sub_0809D93C: @ 0x0809D93C + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldr r2, _0809D9A0 @ =gLinkEntity + ldrb r0, [r2, #0xc] + cmp r0, #6 + bne _0809D9A4 + ldrb r0, [r3, #0xc] + ldrb r1, [r2, #0x14] + asrs r0, r1 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0809D9A4 + movs r5, #0x2e + ldrsh r0, [r2, r5] + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r0, r0, r1 + movs r1, #8 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + ldrb r1, [r3, #0xa] + adds r0, r0, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809D9A4 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r4, #0x1a + ldrsh r1, [r3, r4] + adds r0, r0, r1 + subs r2, r2, r0 + movs r0, #9 + ldrsb r0, [r3, r0] + adds r2, r2, r0 + ldrb r1, [r3, #0xb] + adds r0, r2, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809D9A4 + movs r0, #1 + b _0809D9A6 + .align 2, 0 +_0809D9A0: .4byte gLinkEntity +_0809D9A4: + movs r0, #0 +_0809D9A6: + pop {r4, r5, pc} + + thumb_func_start sub_0809D9A8 +sub_0809D9A8: @ 0x0809D9A8 + push {lr} + ldr r2, _0809D9BC @ =gUnk_081240C0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D9BC: .4byte gUnk_081240C0 + + thumb_func_start sub_0809D9C0 +sub_0809D9C0: @ 0x0809D9C0 + push {lr} + ldr r2, _0809D9D4 @ =gUnk_081240D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D9D4: .4byte gUnk_081240D8 + + thumb_func_start sub_0809D9D8 +sub_0809D9D8: @ 0x0809D9D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + strh r2, [r4, #0x24] + movs r0, #0x18 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EB64 + cmp r0, #0 + beq _0809DA1E + str r4, [r0, #0x50] + str r0, [r4, #0x54] + b _0809DA28 +_0809DA1E: + movs r0, #0x20 + bl sub_0807CD04 + bl sub_0805E780 +_0809DA28: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DA2C +sub_0809DA2C: @ 0x0809DA2C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809DA5C + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + ldr r0, [r1, #0x30] + movs r2, #0x80 + lsls r2, r2, #0xd + adds r0, r0, r2 + str r0, [r1, #0x30] + ldr r0, [r1, #0x34] + ldr r2, _0809DA60 @ =0xFFF00000 + adds r0, r0, r2 + str r0, [r1, #0x34] + adds r0, r1, #0 + movs r1, #3 + bl sub_080042AC +_0809DA5C: + pop {pc} + .align 2, 0 +_0809DA60: .4byte 0xFFF00000 + + thumb_func_start sub_0809DA64 +sub_0809DA64: @ 0x0809DA64 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x54] + adds r1, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_0809E1C8 + adds r0, r5, #0 + bl sub_0809E1F0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r5, #0 + bl sub_080041DC + lsls r0, r0, #4 + movs r2, #0x24 + ldrsh r1, [r5, r2] + cmp r0, r1 + bge _0809DAAC + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x10 + strb r0, [r5, #0xe] + movs r0, #1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + movs r1, #2 + bl sub_080042AC +_0809DAAC: + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0809DAB4 +sub_0809DAB4: @ 0x0809DAB4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0809DB10 @ =gRoomControls + ldrh r1, [r5, #6] + adds r1, #0x78 + ldrh r2, [r5, #8] + adds r2, #0xa8 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0809E1C8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809DADE + subs r0, #1 + strb r0, [r4, #0xe] + ldrh r0, [r4, #0x24] + subs r0, #0x80 + strh r0, [r4, #0x24] +_0809DADE: + adds r0, r4, #0 + bl sub_0809E1F0 + ldrh r1, [r5, #6] + adds r1, #0x78 + ldrh r2, [r5, #8] + adds r2, #0xa8 + adds r0, r4, #0 + bl sub_080041DC + lsls r0, r0, #4 + movs r2, #0x24 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _0809DB02 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0809DB02: + adds r0, r4, #0 + bl sub_0809E210 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0809DB10: .4byte gRoomControls + + thumb_func_start sub_0809DB14 +sub_0809DB14: @ 0x0809DB14 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0809E1F0 + adds r0, r4, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _0809DB36 + movs r0, #0x20 + bl sub_0807CD04 + ldr r0, [r4, #0x54] + str r5, [r0, #0x50] + bl sub_0805E780 +_0809DB36: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809DB40 +sub_0809DB40: @ 0x0809DB40 + push {lr} + ldr r2, _0809DB54 @ =gUnk_081240EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DB54: .4byte gUnk_081240EC + + thumb_func_start sub_0809DB58 +sub_0809DB58: @ 0x0809DB58 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0x3c + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DB88 +sub_0809DB88: @ 0x0809DB88 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + cmp r4, #0 + beq _0809DBC4 + ldr r0, [r4, #4] + cmp r0, #0 + bne _0809DB9C + bl sub_0805E780 +_0809DB9C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0809DBB0 + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative +_0809DBB0: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldrb r2, [r5, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x18] + b _0809DBC8 +_0809DBC4: + bl sub_0805E780 +_0809DBC8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809DBCC +sub_0809DBCC: @ 0x0809DBCC + push {lr} + ldr r2, _0809DBE0 @ =gUnk_081240F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DBE0: .4byte gUnk_081240F4 + + thumb_func_start sub_0809DBE4 +sub_0809DBE4: @ 0x0809DBE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809DB58 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x18 + strb r0, [r4, #0x15] + adds r0, #0xe8 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x6e + bl sub_080A3268 + pop {r4, pc} + + thumb_func_start sub_0809DC14 +sub_0809DC14: @ 0x0809DC14 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bhi _0809DC5A + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809DC3C + subs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + b _0809DC54 +_0809DC3C: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0809DC64 @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08016A04 +_0809DC54: + movs r0, #0x6e + bl sub_080A3268 +_0809DC5A: + adds r0, r4, #0 + bl sub_0809DB88 + pop {r4, pc} + .align 2, 0 +_0809DC64: .4byte gLinkEntity + + thumb_func_start sub_0809DC68 +sub_0809DC68: @ 0x0809DC68 + push {lr} + ldr r2, _0809DC7C @ =gUnk_08124100 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DC7C: .4byte gUnk_08124100 + + thumb_func_start sub_0809DC80 +sub_0809DC80: @ 0x0809DC80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r3, #0 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0 + strh r3, [r4, #0x24] + movs r0, #0x18 + strb r0, [r4, #0x15] + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xd + adds r0, r0, r1 + str r0, [r4, #0x30] + ldr r0, [r4, #0x34] + ldr r1, _0809DCFC @ =0xFFF00000 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x6c + strh r3, [r0] + adds r0, #2 + strb r2, [r0] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EB64 + cmp r0, #0 + beq _0809DD00 + str r4, [r0, #0x50] + str r0, [r4, #0x54] + b _0809DD0A + .align 2, 0 +_0809DCFC: .4byte 0xFFF00000 +_0809DD00: + movs r0, #0x20 + bl sub_0807CD04 + bl sub_0805E780 +_0809DD0A: + pop {r4, pc} + + thumb_func_start sub_0809DD0C +sub_0809DD0C: @ 0x0809DD0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809DD2A + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa3 + lsls r0, r0, #1 + bl sub_080A3268 +_0809DD2A: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DD34 +sub_0809DD34: @ 0x0809DD34 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + subs r1, #2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x20 + bls _0809DD64 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x20 + strh r0, [r1] + movs r0, #0xa3 + lsls r0, r0, #1 + bl sub_080A3268 +_0809DD64: + adds r0, r4, #0 + bl sub_0809E238 + adds r0, r4, #0 + bl sub_0809E29C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0809DD78 +sub_0809DD78: @ 0x0809DD78 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + subs r1, #2 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809DDA8 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x5f + ands r0, r1 + strb r0, [r4, #0x18] + b _0809DDB4 +_0809DDA8: + adds r0, r4, #0 + bl sub_0809E238 + adds r0, r4, #0 + bl sub_0809E29C +_0809DDB4: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0809DDBC +sub_0809DDBC: @ 0x0809DDBC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809DDD8 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0809DDE0 @ =0x0000015B + bl sub_080A3268 +_0809DDD8: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_0809DDE0: .4byte 0x0000015B + + thumb_func_start sub_0809DDE4 +sub_0809DDE4: @ 0x0809DDE4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0809DE34 @ =gRoomControls + ldrh r1, [r0, #6] + adds r1, #0x40 + ldrh r2, [r0, #8] + movs r0, #0xbc + lsls r0, r0, #1 + adds r2, r2, r0 + adds r0, r4, #0 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0809E1C8 + adds r0, r4, #0 + bl sub_0809E1F0 + adds r0, r4, #0 + bl sub_0809E210 + adds r0, r4, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _0809DE2A + movs r0, #0x20 + bl sub_0807CD04 + ldr r0, [r4, #0x54] + str r5, [r0, #0x50] + bl sub_0805E780 +_0809DE2A: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0809DE34: .4byte gRoomControls + + thumb_func_start sub_0809DE38 +sub_0809DE38: @ 0x0809DE38 + push {lr} + ldr r2, _0809DE4C @ =gUnk_08124118 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DE4C: .4byte gUnk_08124118 + + thumb_func_start sub_0809DE50 +sub_0809DE50: @ 0x0809DE50 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + movs r0, #0xa + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + strh r2, [r4, #0x24] + ldr r1, _0809DEEC @ =gUnk_0812412D + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x15] + ldrb r1, [r4, #0xb] + lsls r1, r1, #2 + ldr r0, _0809DEF0 @ =gUnk_08124132 + adds r1, r1, r0 + ldr r2, _0809DEF4 @ =gRoomControls + ldrh r0, [r1] + ldrh r3, [r2, #6] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r0, #0x40 + strh r0, [r4, #0x32] + ldr r0, _0809DEF8 @ =0x0000FFC0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08016A04 + ldr r1, _0809DEFC @ =gUnk_08124128 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC + movs r0, #0x97 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _0809DEE8 + str r4, [r5, #0x50] + str r5, [r4, #0x54] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + movs r1, #0x10 + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + bne _0809DEE2 + rsbs r1, r1, #0 +_0809DEE2: + ldrh r0, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] +_0809DEE8: + pop {r4, r5, pc} + .align 2, 0 +_0809DEEC: .4byte gUnk_0812412D +_0809DEF0: .4byte gUnk_08124132 +_0809DEF4: .4byte gRoomControls +_0809DEF8: .4byte 0x0000FFC0 +_0809DEFC: .4byte gUnk_08124128 + + thumb_func_start sub_0809DF00 +sub_0809DF00: @ 0x0809DF00 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + bl sub_0809E2C4 + cmp r0, #1 + beq _0809DF16 + cmp r0, #2 + beq _0809DF64 + movs r0, #0xa + b _0809DF96 +_0809DF16: + ldrb r0, [r4, #0xc] + adds r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _0809DF60 @ =0x00000123 + bl sub_080A3268 + ldr r5, [r4, #0x54] + cmp r5, #0 + beq _0809DF98 + ldrb r1, [r4, #0xb] + adds r1, #2 + movs r0, #0x96 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809DF52 + adds r0, r5, #0 + bl sub_0806FA24 +_0809DF52: + adds r0, r5, #0 + bl sub_0805E79C + movs r0, #0 + str r0, [r4, #0x54] + b _0809DF98 + .align 2, 0 +_0809DF60: .4byte 0x00000123 +_0809DF64: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0809DF94 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _0809DF8C @ =0x00000123 + bl sub_080A3268 + ldr r0, _0809DF90 @ =0x000001F3 + bl sub_080A3268 + b _0809DF98 + .align 2, 0 +_0809DF8C: .4byte 0x00000123 +_0809DF90: .4byte 0x000001F3 +_0809DF94: + subs r0, #1 +_0809DF96: + strb r0, [r4, #0xe] +_0809DF98: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0809DFA0 +sub_0809DFA0: @ 0x0809DFA0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0809DFD6 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r4, r2] + subs r1, r1, r0 + ldrb r0, [r4, #0x15] + lsls r0, r0, #0xb + eors r1, r0 + movs r0, #0x80 + lsls r0, r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0809DFD6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x81 + lsls r0, r0, #1 + bl sub_080A3268 +_0809DFD6: + adds r0, r4, #0 + bl sub_0809DFE0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DFE0 +sub_0809DFE0: @ 0x0809DFE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809E028 + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _0809DFF4 + str r0, [r1, #0x50] +_0809DFF4: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0809E008 + bl sub_0805E780 + b _0809E034 +_0809E008: + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _0809E024 @ =gUnk_08124146 + movs r1, #1 + ands r1, r0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xb] + b _0809E034 + .align 2, 0 +_0809E024: .4byte gUnk_08124146 +_0809E028: + adds r0, r4, #0 + bl sub_0809E1F0 + adds r0, r4, #0 + bl sub_080042B8 +_0809E034: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E038 +sub_0809E038: @ 0x0809E038 + push {lr} + ldr r2, _0809E04C @ =gUnk_08124150 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E04C: .4byte gUnk_08124150 + + thumb_func_start sub_0809E050 +sub_0809E050: @ 0x0809E050 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r0, _0809E084 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 +_0809E084: .4byte 0x0000FFF0 + + thumb_func_start sub_0809E088 +sub_0809E088: @ 0x0809E088 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0809E0A0 +sub_0809E0A0: @ 0x0809E0A0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x97 + movs r1, #5 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809E0C8 + str r5, [r4, #0x50] + str r4, [r5, #0x54] + movs r0, #0 + strb r0, [r5, #0xf] + ldr r0, _0809E0CC @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _0809E0D0 @ =0x0000FFF8 + strh r0, [r4, #0x36] +_0809E0C8: + pop {r4, r5, pc} + .align 2, 0 +_0809E0CC: .4byte gLinkEntity +_0809E0D0: .4byte 0x0000FFF8 + + thumb_func_start sub_0809E0D4 +sub_0809E0D4: @ 0x0809E0D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r2, [r6, #0x18] + cmp r2, #0 + bne _0809E130 + ldr r1, [r5, #0x54] + cmp r1, #0 + beq _0809E0FC + ldrb r0, [r1, #0xc] + cmp r0, #1 + bhi _0809E0FE + ldr r0, _0809E0F8 @ =gUnk_02033280 + strb r2, [r0, #6] + b _0809E1BC + .align 2, 0 +_0809E0F8: .4byte gUnk_02033280 +_0809E0FC: + ldr r1, _0809E124 @ =gLinkEntity +_0809E0FE: + ldrb r0, [r6, #0x18] + adds r0, #1 + movs r4, #0 + strb r0, [r6, #0x18] + movs r0, #0x2e + ldrsh r2, [r1, r0] + movs r0, #0x32 + ldrsh r3, [r1, r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0807DEDC + ldr r0, _0809E128 @ =0x00000123 + bl sub_080A3268 + ldr r0, _0809E12C @ =gUnk_02033280 + strb r4, [r0, #6] + b _0809E1BC + .align 2, 0 +_0809E124: .4byte gLinkEntity +_0809E128: .4byte 0x00000123 +_0809E12C: .4byte gUnk_02033280 +_0809E130: + ldr r1, [r5, #0x54] + cmp r1, #0 + beq _0809E142 + movs r0, #0x2e + ldrsh r2, [r1, r0] + mov r8, r2 + movs r2, #0x32 + ldrsh r7, [r1, r2] + b _0809E14C +_0809E142: + movs r1, #0x1e + ldrsh r0, [r6, r1] + mov r8, r0 + movs r2, #0x22 + ldrsh r7, [r6, r2] +_0809E14C: + ldrb r0, [r6, #0x19] + subs r0, #1 + strb r0, [r6, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809E170 + movs r0, #8 + strb r0, [r6, #0x19] + movs r1, #0x2e + ldrsh r0, [r5, r1] + mov r2, r8 + subs r0, r2, r0 + movs r2, #0x32 + ldrsh r1, [r5, r2] + subs r1, r7, r1 + bl sub_080045DA + strb r0, [r5, #0x15] +_0809E170: + movs r0, #0x2e + ldrsh r4, [r5, r0] + mov r1, r8 + subs r4, r4, r1 + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r6, r0, r7 + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + movs r1, #0x2e + ldrsh r0, [r5, r1] + mov r2, r8 + subs r0, r0, r2 + muls r4, r0, r4 + movs r1, #0x32 + ldrsh r0, [r5, r1] + subs r0, r0, r7 + muls r6, r0, r6 + cmp r4, #0 + bgt _0809E1B6 + cmp r6, #0 + bgt _0809E1B6 + strh r2, [r5, #0x2e] + strh r7, [r5, #0x32] + movs r0, #1 + strb r0, [r5, #0xf] + movs r0, #0x81 + lsls r0, r0, #1 + bl sub_080A3268 + b _0809E1BC +_0809E1B6: + ldr r1, _0809E1C4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0809E1BC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809E1C4: .4byte gUnk_02033280 + + thumb_func_start sub_0809E1C8 +sub_0809E1C8: @ 0x0809E1C8 + push {lr} + adds r3, r0, #0 + adds r1, #0x20 + ldrb r2, [r3, #0x15] + subs r1, r1, r2 + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + beq _0809E1E6 + cmp r1, #0xf + bhi _0809E1E2 + adds r0, r2, #1 + b _0809E1E4 +_0809E1E2: + subs r0, r2, #1 +_0809E1E4: + strb r0, [r3, #0x15] +_0809E1E6: + ldrb r1, [r3, #0x15] + movs r0, #0x1f + ands r0, r1 + strb r0, [r3, #0x15] + pop {pc} + + thumb_func_start sub_0809E1F0 +sub_0809E1F0: @ 0x0809E1F0 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x24] + adds r0, #0x40 + strh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x80 + lsls r2, r2, #3 + cmp r0, r2 + ble _0809E208 + strh r2, [r1, #0x24] +_0809E208: + adds r0, r1, #0 + bl sub_0806F69C + pop {pc} + + thumb_func_start sub_0809E210 +sub_0809E210: @ 0x0809E210 + push {r4, lr} + adds r1, r0, #0 + ldr r4, _0809E230 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5B0 + movs r1, #0xfe + ands r0, r1 + strb r0, [r4, #0x14] + ldr r1, _0809E234 @ =gUnk_03003F80 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #8] + pop {r4, pc} + .align 2, 0 +_0809E230: .4byte gLinkEntity +_0809E234: .4byte gUnk_03003F80 + + thumb_func_start sub_0809E238 +sub_0809E238: @ 0x0809E238 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldr r6, _0809E298 @ =gUnk_080C9160 + movs r0, #0x6e + adds r0, r0, r7 + mov r8, r0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r5, r7, #0 + adds r5, #0x6c + movs r2, #0 + ldrsh r1, [r5, r2] + bl sub_0806F9EC + adds r4, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + mov r1, r8 + ldrb r0, [r1] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0 + ldrsh r1, [r5, r2] + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + adds r1, #0x68 + ldrh r1, [r1] + adds r1, r1, r4 + strh r1, [r7, #0x2e] + adds r1, r7, #0 + adds r1, #0x6a + ldrh r1, [r1] + subs r1, r1, r0 + strh r1, [r7, #0x32] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809E298: .4byte gUnk_080C9160 + + thumb_func_start sub_0809E29C +sub_0809E29C: @ 0x0809E29C + push {lr} + adds r2, r0, #0 + adds r0, #0x6e + ldrb r0, [r0] + adds r0, #0x40 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809E2B8 + ldrb r1, [r2, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0809E2BE +_0809E2B8: + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0809E2BE: + strb r0, [r2, #0x18] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809E2C4 +sub_0809E2C4: @ 0x0809E2C4 + push {r4, r5, r6, r7, lr} + lsls r1, r1, #2 + ldr r0, _0809E328 @ =gUnk_08124178 + adds r1, r1, r0 + ldr r3, _0809E32C @ =gLinkEntity + movs r0, #0x2e + ldrsh r5, [r3, r0] + ldr r4, _0809E330 @ =gRoomControls + ldrh r0, [r4, #6] + ldrh r2, [r1] + adds r0, r0, r2 + subs r6, r5, r0 + movs r0, #0x32 + ldrsh r2, [r3, r0] + ldrh r0, [r4, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + subs r5, r2, r0 + ldr r4, _0809E334 @ =gUnk_08124158 + movs r2, #0 + adds r7, r3, #0 +_0809E2EE: + movs r1, #0 + ldrsh r0, [r4, r1] + subs r0, r6, r0 + ldrb r1, [r4, #4] + adds r0, r0, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809E33C + movs r1, #2 + ldrsh r0, [r4, r1] + subs r0, r5, r0 + ldrb r1, [r4, #5] + adds r0, r0, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809E33C + ldrb r0, [r4, #6] + ldrb r7, [r7, #0x14] + cmp r0, r7 + bne _0809E338 + ldrb r0, [r3, #0xc] + cmp r0, #6 + bne _0809E338 + movs r0, #1 + b _0809E346 + .align 2, 0 +_0809E328: .4byte gUnk_08124178 +_0809E32C: .4byte gLinkEntity +_0809E330: .4byte gRoomControls +_0809E334: .4byte gUnk_08124158 +_0809E338: + movs r0, #2 + b _0809E346 +_0809E33C: + adds r2, #1 + adds r4, #8 + cmp r2, #3 + ble _0809E2EE + movs r0, #0 +_0809E346: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809E348 +sub_0809E348: @ 0x0809E348 + push {lr} + ldr r2, _0809E35C @ =gUnk_0812418C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E35C: .4byte gUnk_0812418C + + thumb_func_start sub_0809E360 +sub_0809E360: @ 0x0809E360 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #8 + bls _0809E372 + movs r0, #8 + strb r0, [r4, #0xe] +_0809E372: + ldrb r2, [r4, #0xe] + movs r0, #0x48 + subs r0, r0, r2 + ldr r1, _0809E3E0 @ =gUnk_03003DBC + ldrb r1, [r1] + cmp r0, r1 + ble _0809E3D8 + movs r5, #0 + adds r7, r4, #0 + adds r7, #0x7e + movs r0, #0x76 + adds r0, r0, r4 + mov r8, r0 + cmp r5, r2 + bhs _0809E3A6 + movs r6, #0xe +_0809E392: + movs r0, #0x17 + bl sub_080A7EE0 + strb r6, [r0, #0xe] + str r4, [r0, #0x50] + adds r6, #0xc + adds r5, #1 + ldrb r2, [r4, #0xe] + cmp r5, r2 + blo _0809E392 +_0809E3A6: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r7] + lsls r1, r0, #8 + mov r2, r8 + strh r1, [r2] + lsls r0, r0, #6 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809E3D8 + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x74 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809E3D8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809E3E0: .4byte gUnk_03003DBC + + thumb_func_start sub_0809E3E4 +sub_0809E3E4: @ 0x0809E3E4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x76 + ldrb r0, [r4, #0xb] + ldrh r1, [r2] + adds r1, r1, r0 + strh r1, [r2] + lsrs r1, r1, #2 + strb r1, [r4, #0x14] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809E428 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809E40E + adds r0, r4, #0 + bl sub_0806F69C +_0809E40E: + adds r2, r4, #0 + adds r2, #0x74 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809E428 + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809E428: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E42C +sub_0809E42C: @ 0x0809E42C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + ldr r0, [r6, #4] + cmp r0, #0 + bne _0809E444 + bl sub_0805E780 +_0809E444: + ldrb r0, [r4, #0xc] + movs r1, #0x76 + adds r1, r1, r4 + mov r8, r1 + adds r7, r4, #0 + adds r7, #0x62 + movs r2, #0x74 + adds r2, r2, r4 + mov sb, r2 + adds r5, r4, #0 + adds r5, #0x63 + movs r1, #0x75 + adds r1, r1, r4 + mov sl, r1 + cmp r0, #0 + bne _0809E482 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r6, #0x14] + mov r2, r8 + strb r0, [r2] + ldrb r0, [r7] + mov r1, sb + strb r0, [r1] + ldrb r0, [r5] + mov r2, sl + strb r0, [r2] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_0809E482: + ldrb r0, [r6, #0x14] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + beq _0809E490 + bl sub_0805E780 +_0809E490: + ldrb r1, [r6, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA6C + mov r2, sb + ldrb r0, [r2] + ldrb r1, [r7] + adds r0, r0, r1 + strb r0, [r7] + mov r2, sl + ldrb r0, [r2] + ldrb r1, [r5] + adds r0, r0, r1 + strb r0, [r5] + ldrb r0, [r4, #0x14] + cmp r0, #2 + beq _0809E4D0 + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + ldrb r0, [r5] + subs r0, #1 + b _0809E4DA +_0809E4D0: + ldrh r0, [r4, #0x32] + subs r0, #1 + strh r0, [r4, #0x32] + ldrb r0, [r5] + adds r0, #1 +_0809E4DA: + strb r0, [r5] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809E4F4 + bl sub_0805E780 +_0809E4F4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809E500 +sub_0809E500: @ 0x0809E500 + push {lr} + ldr r2, _0809E514 @ =gUnk_081242C8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E514: .4byte gUnk_081242C8 + + thumb_func_start sub_0809E518 +sub_0809E518: @ 0x0809E518 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #1 + strb r1, [r6, #0xc] + ldrb r2, [r6, #0xa] + adds r0, r2, #0 + cmp r0, #0xff + bne _0809E52E + ldrb r0, [r6, #0xb] + strb r0, [r6, #0x1e] + b _0809E5CA +_0809E52E: + ands r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r5, r0, #0x1f + movs r0, #4 + ands r5, r0 + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _0809E5A4 + ldr r0, _0809E5A0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bhi _0809E5B4 + strb r5, [r6, #0x1e] + adds r5, #1 + movs r0, #0x9a + movs r1, #0xff + adds r2, r5, #0 + bl CreateObject + adds r4, r0, #0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r5, #1 + movs r0, #0x9a + movs r1, #0xff + adds r2, r5, #0 + bl CreateObject + adds r4, r0, #0 + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + adds r5, #1 + movs r0, #0x9a + movs r1, #0xff + adds r2, r5, #0 + bl CreateObject + adds r4, r0, #0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + b _0809E5C4 + .align 2, 0 +_0809E5A0: .4byte gUnk_03003DBC +_0809E5A4: + adds r2, r5, #1 + movs r0, #0x9a + movs r1, #0xff + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + bne _0809E5BA +_0809E5B4: + bl sub_0805E780 + b _0809E5C4 +_0809E5BA: + strb r5, [r6, #0x1e] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0809E5C4: + adds r0, r6, #0 + bl sub_0809E5F0 +_0809E5CA: + ldrb r1, [r6, #0x1e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809E5E8 + ldrb r0, [r6, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r6, #0x19] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] +_0809E5E8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start nullsub_125 +nullsub_125: @ 0x0809E5EC + bx lr + .align 2, 0 + + thumb_func_start sub_0809E5F0 +sub_0809E5F0: @ 0x0809E5F0 + push {r4, r5, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r4, _0809E628 @ =gRoomControls + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r5, r1, #4 + movs r3, #0x3f + ands r5, r3 + movs r2, #0x32 + ldrsh r1, [r0, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r5, r1 + adds r1, r0, #0 + adds r1, #0x80 + strh r5, [r1] + ldrb r0, [r0, #0xa] + cmp r0, #1 + beq _0809E708 + cmp r0, #1 + bgt _0809E62C + cmp r0, #0 + beq _0809E64E + b _0809E792 + .align 2, 0 +_0809E628: .4byte gRoomControls +_0809E62C: + cmp r0, #2 + beq _0809E636 + cmp r0, #3 + beq _0809E6F0 + b _0809E792 +_0809E636: + ldr r0, _0809E6DC @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x3d + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E6E0 @ =0x0000406D + adds r1, r5, #0 + subs r1, #0x3c + movs r2, #1 + bl sub_0800015E +_0809E64E: + ldr r0, _0809E6E4 @ =0x0000406C + adds r1, r5, #0 + subs r1, #0x42 + movs r2, #1 + bl sub_0800015E + ldr r4, _0809E6DC @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x41 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x3f + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r1, r5, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E6E8 @ =0x0000406E + adds r1, r5, #0 + adds r1, #0x3e + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x3f + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E6EC @ =0x0000406F + adds r1, r5, #0 + adds r1, #0x41 + movs r2, #1 + bl sub_0800015E + b _0809E792 + .align 2, 0 +_0809E6DC: .4byte 0x00004022 +_0809E6E0: .4byte 0x0000406D +_0809E6E4: .4byte 0x0000406C +_0809E6E8: .4byte 0x0000406E +_0809E6EC: .4byte 0x0000406F +_0809E6F0: + ldr r0, _0809E794 @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x44 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E798 @ =0x0000406C + adds r1, r5, #0 + subs r1, #0x45 + movs r2, #1 + bl sub_0800015E +_0809E708: + ldr r4, _0809E794 @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x42 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x41 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E79C @ =0x0000406D + adds r1, r5, #0 + subs r1, #0x3f + movs r2, #1 + bl sub_0800015E + subs r1, r5, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E7A0 @ =0x0000406E + adds r1, r5, #0 + adds r1, #0x3e + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x3f + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E7A4 @ =0x0000406F + adds r1, r5, #0 + adds r1, #0x41 + movs r2, #1 + bl sub_0800015E +_0809E792: + pop {r4, r5, pc} + .align 2, 0 +_0809E794: .4byte 0x00004022 +_0809E798: .4byte 0x0000406C +_0809E79C: .4byte 0x0000406D +_0809E7A0: .4byte 0x0000406E +_0809E7A4: .4byte 0x0000406F + + thumb_func_start sub_0809E7A8 +sub_0809E7A8: @ 0x0809E7A8 + push {lr} + ldr r2, _0809E7BC @ =gUnk_081242D0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E7BC: .4byte gUnk_081242D0 + + thumb_func_start sub_0809E7C0 +sub_0809E7C0: @ 0x0809E7C0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + cmp r0, #0xff + beq _0809E7D4 + adds r0, r4, #0 + bl sub_0809E7FC +_0809E7D4: + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E7E0 +sub_0809E7E0: @ 0x0809E7E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809E7F8 + bl sub_0805E780 +_0809E7F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E7FC +sub_0809E7FC: @ 0x0809E7FC + push {lr} + adds r1, r0, #0 + ldrb r3, [r1, #0xb] + lsls r3, r3, #1 + ldr r0, _0809E820 @ =gUnk_081242D8 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + bl PositionRelative + pop {pc} + .align 2, 0 +_0809E820: .4byte gUnk_081242D8 + + thumb_func_start sub_0809E824 +sub_0809E824: @ 0x0809E824 + push {lr} + ldr r2, _0809E838 @ =gUnk_08124354 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E838: .4byte gUnk_08124354 + + thumb_func_start sub_0809E83C +sub_0809E83C: @ 0x0809E83C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809E856 + adds r0, r4, #0 + bl sub_0809E96C + bl sub_0805E780 +_0809E856: + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E86C +sub_0809E86C: @ 0x0809E86C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809E8B4 @ =gLinkEntity + movs r2, #0x30 + movs r3, #0x30 + bl sub_0800419C + cmp r0, #0 + beq _0809E89A + movs r0, #0x14 + bl GetProgressFlag + cmp r0, #0 + beq _0809E89A + ldr r0, _0809E8B8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809E89A + adds r0, r4, #0 + bl sub_080A2B80 +_0809E89A: + bl sub_0809E9A0 + cmp r0, #0x54 + bne _0809E8B0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + movs r0, #1 + bl sub_08078A90 +_0809E8B0: + pop {r4, pc} + .align 2, 0 +_0809E8B4: .4byte gLinkEntity +_0809E8B8: .4byte gUnk_030010A0 + + thumb_func_start sub_0809E8BC +sub_0809E8BC: @ 0x0809E8BC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809E8E8 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x40 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0809E96C + adds r0, r4, #0 + bl sub_0809E918 +_0809E8E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E8EC +sub_0809E8EC: @ 0x0809E8EC + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809E916 + adds r0, r1, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0 + bl sub_08078A90 + movs r0, #0x73 + bl sub_080A3268 + bl sub_0805E780 +_0809E916: + pop {pc} + + thumb_func_start sub_0809E918 +sub_0809E918: @ 0x0809E918 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0809E964 @ =gUnk_08124364 + movs r1, #0 + ldrsh r0, [r4, r1] + ldr r1, _0809E968 @ =0xFFFFFC18 + cmp r0, r1 + beq _0809E962 + adds r6, r1, #0 +_0809E92A: + adds r0, r5, #0 + movs r1, #3 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0809E958 + ldrh r0, [r4] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #2] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A04 +_0809E958: + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r6 + bne _0809E92A +_0809E962: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809E964: .4byte gUnk_08124364 +_0809E968: .4byte 0xFFFFFC18 + + thumb_func_start sub_0809E96C +sub_0809E96C: @ 0x0809E96C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0809E99C @ =gRoomControls + ldrh r1, [r2, #6] + adds r1, #0x20 + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + adds r2, #8 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_08018C1C + pop {r4, r5, pc} + .align 2, 0 +_0809E99C: .4byte gRoomControls + + thumb_func_start sub_0809E9A0 +sub_0809E9A0: @ 0x0809E9A0 + push {r4, r5, r6, lr} + ldr r5, _0809E9B0 @ =gLinkEntity + ldrb r2, [r5, #0xc] + cmp r2, #6 + beq _0809E9B4 + movs r0, #0 + b _0809E9F0 + .align 2, 0 +_0809E9B0: .4byte gLinkEntity +_0809E9B4: + ldrb r0, [r5, #0x14] + ands r2, r0 + lsls r2, r2, #1 + ldr r0, _0809E9F4 @ =gUnk_080B4468 + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r3, #0 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + ldr r4, _0809E9F8 @ =gRoomControls + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r5, r6] + movs r5, #2 + ldrsh r2, [r2, r5] + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #1 + bl sub_080002C8 +_0809E9F0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809E9F4: .4byte gUnk_080B4468 +_0809E9F8: .4byte gRoomControls + + thumb_func_start sub_0809E9FC +sub_0809E9FC: @ 0x0809E9FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809EA18 @ =gUnk_081243B4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0809EB30 + pop {r4, pc} + .align 2, 0 +_0809EA18: .4byte gUnk_081243B4 + + thumb_func_start sub_0809EA1C +sub_0809EA1C: @ 0x0809EA1C + push {lr} + ldr r2, _0809EA30 @ =gUnk_081243BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809EA30: .4byte gUnk_081243BC + + thumb_func_start sub_0809EA34 +sub_0809EA34: @ 0x0809EA34 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + strb r2, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + subs r1, #4 + movs r0, #0xa + strb r0, [r1] + ldr r0, _0809EA7C @ =gUnk_080FD150 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0809EAD8 + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_0809EABC + pop {r4, pc} + .align 2, 0 +_0809EA7C: .4byte gUnk_080FD150 + + thumb_func_start sub_0809EA80 +sub_0809EA80: @ 0x0809EA80 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809EAB4 + adds r4, r5, #0 + adds r4, #0x86 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EAA6 + ldrh r0, [r4] + bl sub_0807CD48 + b _0809EAAC +_0809EAA6: + ldrh r0, [r4] + bl sub_0807CCC8 +_0809EAAC: + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_08004488 +_0809EAB4: + adds r0, r5, #0 + bl sub_0809EABC + pop {r4, r5, pc} + + thumb_func_start sub_0809EABC +sub_0809EABC: @ 0x0809EABC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldrb r0, [r4, #0x1e] + cmp r0, r1 + beq _0809EAD6 + strb r1, [r4, #0x1e] +_0809EAD6: + pop {r4, pc} + + thumb_func_start sub_0809EAD8 +sub_0809EAD8: @ 0x0809EAD8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0809EAF8 + bl sub_0804B128 + str r0, [r5, #0x54] + adds r1, r5, #0 + adds r1, #0x54 + adds r2, r5, #0 + adds r2, #0x74 + adds r0, r5, #0 + bl sub_080A2CC0 + b _0809EB24 +_0809EAF8: + ldr r0, _0809EB28 @ =0x00004050 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0809EB2C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0809EB24: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809EB28: .4byte 0x00004050 +_0809EB2C: .4byte gRoomControls + + thumb_func_start sub_0809EB30 +sub_0809EB30: @ 0x0809EB30 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0809EB64 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809EB4A + adds r0, r4, #0 + bl sub_0806F69C +_0809EB4A: + adds r2, r4, #0 + adds r2, #0x74 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809EB64 + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809EB64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809EB68 +sub_0809EB68: @ 0x0809EB68 + push {lr} + ldr r2, _0809EB7C @ =gUnk_081243C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809EB7C: .4byte gUnk_081243C4 + + thumb_func_start sub_0809EB80 +sub_0809EB80: @ 0x0809EB80 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r5, #3 + strb r5, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + subs r1, #4 + movs r0, #0xa + strb r0, [r1] + ldr r0, _0809EBD4 @ =gUnk_080FD150 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0809EAD8 + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EBD2 + strb r5, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x1e] +_0809EBD2: + pop {r4, r5, pc} + .align 2, 0 +_0809EBD4: .4byte gUnk_080FD150 + + thumb_func_start sub_0809EBD8 +sub_0809EBD8: @ 0x0809EBD8 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809EC04 + movs r1, #2 + strb r1, [r2, #0xc] + movs r0, #0x10 + strb r0, [r2, #0xe] + strb r1, [r2, #0x1e] + adds r0, r2, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_08004488 +_0809EC04: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809EC08 +sub_0809EC08: @ 0x0809EC08 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EC1E + movs r0, #3 + strb r0, [r4, #0xc] + b _0809EC44 +_0809EC1E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809EC44 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #3 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_08004488 +_0809EC44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_126 +nullsub_126: @ 0x0809EC48 + bx lr + .align 2, 0 + + thumb_func_start sub_0809EC4C +sub_0809EC4C: @ 0x0809EC4C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r3, [r6, #0xc] + cmp r3, #0 + bne _0809ED14 + movs r4, #1 + strb r4, [r6, #0xc] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _0809ED04 + ldrb r0, [r6, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r6, #0x10] + strb r4, [r6, #0x1e] + adds r5, r6, #0 + adds r5, #0x38 + strb r4, [r5] + adds r1, r6, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x7a + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x3b + strb r4, [r0] + ldr r0, _0809ECF4 @ =gUnk_080FD168 + str r0, [r6, #0x48] + movs r0, #0x2e + ldrsh r4, [r6, r0] + ldr r1, _0809ECF8 @ =gRoomControls + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r0, _0809ECFC @ =0x00004066 + subs r1, r4, #1 + ldrb r2, [r5] + bl sub_0800015E + ldr r0, _0809ED00 @ =0x00004065 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r6, #0 + bl sub_08016A04 + movs r0, #0x9e + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0809ED14 + str r1, [r6, #0x54] + adds r0, r6, #0 + bl sub_0806FA24 + b _0809ED14 + .align 2, 0 +_0809ECF4: .4byte gUnk_080FD168 +_0809ECF8: .4byte gRoomControls +_0809ECFC: .4byte 0x00004066 +_0809ED00: .4byte 0x00004065 +_0809ED04: + strb r3, [r6, #0x1e] + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r6, #0 + bl sub_08016A04 +_0809ED14: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809ED18 +sub_0809ED18: @ 0x0809ED18 + push {lr} + ldr r2, _0809ED2C @ =gUnk_081243D4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809ED2C: .4byte gUnk_081243D4 + + thumb_func_start sub_0809ED30 +sub_0809ED30: @ 0x0809ED30 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + movs r1, #2 + eors r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0809EE34 + adds r0, r4, #0 + bl sub_0809EFB0 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0809ED54 +sub_0809ED54: @ 0x0809ED54 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + beq _0809ED6A + bl sub_0807CBE4 + cmp r0, #0 + beq _0809ED86 +_0809ED6A: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0809ED80 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809ED86 +_0809ED80: + adds r0, r4, #0 + bl sub_0809EE08 +_0809ED86: + pop {r4, pc} + + thumb_func_start sub_0809ED88 +sub_0809ED88: @ 0x0809ED88 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809F08C + adds r0, r4, #0 + bl sub_0809EE44 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r2, [r0] + cmp r2, #0 + beq _0809EDC6 + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, r2 + bne _0809EDB4 + bl sub_0807CBE4 + cmp r0, #0 + bne _0809EDE2 + b _0809EDBE +_0809EDB4: + ldrh r0, [r1] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EDE2 +_0809EDBE: + adds r0, r4, #0 + bl sub_0809EE24 + b _0809EDE2 +_0809EDC6: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0809EDE2 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809EDE2 + adds r0, r4, #0 + bl sub_0809EE24 +_0809EDE2: + pop {r4, pc} + + thumb_func_start sub_0809EDE4 +sub_0809EDE4: @ 0x0809EDE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809F08C + adds r0, r4, #0 + bl sub_0809EE44 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809EE06 + adds r0, r4, #0 + bl sub_0809EE34 +_0809EE06: + pop {r4, pc} + + thumb_func_start sub_0809EE08 +sub_0809EE08: @ 0x0809EE08 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x7f + ldrb r1, [r1] + lsls r1, r1, #2 + adds r2, r0, #0 + adds r2, #0x74 + strh r1, [r2] + ldrb r1, [r0, #0xa] + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0809EE24 +sub_0809EE24: @ 0x0809EE24 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xa] + adds r1, #4 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0809EE34 +sub_0809EE34: @ 0x0809EE34 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xe] + lsls r1, r1, #2 + adds r0, #0x74 + strh r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0809EE44 +sub_0809EE44: @ 0x0809EE44 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #7 + ands r1, r0 + adds r0, r5, #0 + adds r0, #0x7e + ldrb r0, [r0] + lsls r0, r1 + strh r0, [r5, #0x24] + cmp r1, #0 + bne _0809EE60 + b _0809EF74 +_0809EE60: + ldr r4, _0809EEA4 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0809EF78 + cmp r0, #0 + beq _0809EE80 + bl sub_08079F8C + cmp r0, #0 + beq _0809EE80 + movs r1, #0x24 + ldrsh r0, [r5, r1] + ldrb r1, [r5, #0x15] + bl sub_08079E58 +_0809EE80: + ldr r6, _0809EEA8 @ =gUnk_03003D80 + ldr r4, [r6, #4] + cmp r6, r4 + beq _0809EF74 +_0809EE88: + ldrb r0, [r4, #8] + cmp r0, #8 + bne _0809EF6E + movs r3, #0 + ldrb r0, [r4, #9] + subs r0, #2 + cmp r0, #0x17 + bhi _0809EF52 + lsls r0, r0, #2 + ldr r1, _0809EEAC @ =_0809EEB0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809EEA4: .4byte gLinkEntity +_0809EEA8: .4byte gUnk_03003D80 +_0809EEAC: .4byte _0809EEB0 +_0809EEB0: @ jump table + .4byte _0809EF1E @ case 0 + .4byte _0809EF26 @ case 1 + .4byte _0809EF48 @ case 2 + .4byte _0809EF52 @ case 3 + .4byte _0809EF52 @ case 4 + .4byte _0809EF52 @ case 5 + .4byte _0809EF52 @ case 6 + .4byte _0809EF52 @ case 7 + .4byte _0809EF52 @ case 8 + .4byte _0809EF52 @ case 9 + .4byte _0809EF52 @ case 10 + .4byte _0809EF52 @ case 11 + .4byte _0809EF52 @ case 12 + .4byte _0809EF52 @ case 13 + .4byte _0809EF52 @ case 14 + .4byte _0809EF50 @ case 15 + .4byte _0809EF52 @ case 16 + .4byte _0809EF10 @ case 17 + .4byte _0809EF52 @ case 18 + .4byte _0809EF52 @ case 19 + .4byte _0809EF52 @ case 20 + .4byte _0809EF52 @ case 21 + .4byte _0809EF52 @ case 22 + .4byte _0809EF50 @ case 23 +_0809EF10: + ldrb r0, [r4, #0xc] + cmp r0, #2 + bne _0809EF56 + ldrb r0, [r4, #0xd] + cmp r0, #1 + bls _0809EF52 + b _0809EF56 +_0809EF1E: + ldrb r0, [r4, #0xc] + cmp r0, #2 + beq _0809EF52 + b _0809EF56 +_0809EF26: + ldr r2, _0809EF44 @ =gLinkEntity + movs r7, #0x2e + ldrsh r1, [r4, r7] + movs r7, #0x2e + ldrsh r0, [r2, r7] + cmp r1, r0 + bne _0809EF56 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r7, #0x32 + ldrsh r0, [r2, r7] + cmp r1, r0 + beq _0809EF52 + b _0809EF56 + .align 2, 0 +_0809EF44: .4byte gLinkEntity +_0809EF48: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0809EF52 + b _0809EF56 +_0809EF50: + movs r3, #1 +_0809EF52: + cmp r3, #0 + beq _0809EF6E +_0809EF56: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0809EF78 + cmp r0, #0 + beq _0809EF6E + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r4, #0 + bl sub_080044AE +_0809EF6E: + ldr r4, [r4, #4] + cmp r6, r4 + bne _0809EE88 +_0809EF74: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809EF78 +sub_0809EF78: @ 0x0809EF78 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + movs r5, #0 + adds r0, #0x70 + ldrh r2, [r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r3, #0 + adds r1, #0x6c + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0809EFAC + adds r0, r3, #0 + adds r0, #0x72 + ldrh r2, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r1, r3, #0 + adds r1, #0x6e + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0809EFAC + movs r5, #1 +_0809EFAC: + adds r0, r5, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0809EFB0 +sub_0809EFB0: @ 0x0809EFB0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r0, _0809F010 @ =gUnk_081243E4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r2, r1, r0 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + mov sb, r2 + adds r1, #1 + adds r1, r1, r0 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + movs r0, #0x2e + ldrsh r6, [r4, r0] + movs r0, #0x32 + ldrsh r5, [r4, r0] + ldr r0, _0809F014 @ =gUnk_02027EB4 + mov sl, r0 + movs r7, #0 +_0809EFE6: + adds r7, #1 + add r6, sb + add r5, r8 + mov r0, sl + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #9 + bl sub_080AE4CC + cmp r0, #0 + beq _0809EFE6 + subs r0, r7, #1 + lsls r7, r0, #4 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0809F034 + cmp r0, #1 + bgt _0809F018 + cmp r0, #0 + beq _0809F022 + b _0809F082 + .align 2, 0 +_0809F010: .4byte gUnk_081243E4 +_0809F014: .4byte gUnk_02027EB4 +_0809F018: + cmp r0, #2 + beq _0809F03E + cmp r0, #3 + beq _0809F064 + b _0809F082 +_0809F022: + ldrh r0, [r4, #0x2e] + subs r0, #0x10 + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r0, #8 + adds r1, #2 + b _0809F054 +_0809F034: + adds r1, r7, #0 + adds r1, #8 + ldrh r0, [r4, #0x2e] + subs r0, r0, r1 + b _0809F068 +_0809F03E: + ldrh r0, [r4, #0x2e] + subs r0, #0x10 + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + adds r1, r7, #0 + adds r1, #8 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x6e +_0809F054: + strh r0, [r1] + adds r1, #2 + movs r0, #0x20 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x72 + strh r7, [r0] + b _0809F082 +_0809F064: + ldrh r0, [r4, #0x2e] + adds r0, #8 +_0809F068: + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + subs r0, #0x10 + adds r1, #2 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x70 + strh r7, [r0] + adds r1, #4 + movs r0, #0x20 + strh r0, [r1] +_0809F082: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809F08C +sub_0809F08C: @ 0x0809F08C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0809F09A + subs r0, #1 + strb r0, [r4, #0xf] +_0809F09A: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0809F0C0 + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] + movs r0, #0x14 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0809F0E4 + b _0809F0E0 +_0809F0C0: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0809F0E0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0809F0E0 + movs r0, #0x14 + strb r0, [r4, #0xf] + ldrb r0, [r2] + movs r1, #0x10 + eors r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0809F0E4 +_0809F0E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809F0E4 +sub_0809F0E4: @ 0x0809F0E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0809F124 @ =0x00000183 + bl sub_08004488 + ldrb r0, [r5, #0xa] + movs r1, #2 + eors r1, r0 + movs r0, #0xb2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809F120 + str r5, [r4, #0x50] + ldrb r0, [r5, #0xa] + lsls r0, r0, #1 + ldr r1, _0809F128 @ =gUnk_081243EC + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative +_0809F120: + pop {r4, r5, pc} + .align 2, 0 +_0809F124: .4byte 0x00000183 +_0809F128: .4byte gUnk_081243EC + + thumb_func_start sub_0809F12C +sub_0809F12C: @ 0x0809F12C + push {lr} + ldr r2, _0809F140 @ =gUnk_08124670 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F140: .4byte gUnk_08124670 + + thumb_func_start sub_0809F144 +sub_0809F144: @ 0x0809F144 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0809F188 @ =gUnk_080FD178 + str r0, [r4, #0x48] + ldr r0, _0809F18C @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _0809F190 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r6, #0x32 + ldrsh r2, [r4, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809F188: .4byte gUnk_080FD178 +_0809F18C: .4byte 0x00004022 +_0809F190: .4byte gRoomControls + + thumb_func_start sub_0809F194 +sub_0809F194: @ 0x0809F194 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + ldrb r0, [r0, #0xf] + cmp r0, #1 + bne _0809F1AE + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xa] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_0809F1AE: + pop {pc} + + thumb_func_start sub_0809F1B0 +sub_0809F1B0: @ 0x0809F1B0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0809F20C + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + movs r0, #0x1b + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _0809F21E + ldrb r0, [r4, #0xa] + strb r0, [r5, #0xa] + ldr r0, [r4, #0x50] + str r0, [r5, #0x50] + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + ldr r1, _0809F208 @ =gUnk_08124684 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative + movs r0, #0xec + bl sub_08004488 + b _0809F21E + .align 2, 0 +_0809F208: .4byte gUnk_08124684 +_0809F20C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F21E + strb r3, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_0809F21E: + pop {r4, r5, pc} + + thumb_func_start sub_0809F220 +sub_0809F220: @ 0x0809F220 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F242 + movs r0, #4 + strb r0, [r2, #0xc] + movs r0, #0xf + strb r0, [r2, #0xe] + ldrb r1, [r2, #0xa] + adds r0, r2, #0 + bl sub_08004260 + b _0809F252 +_0809F242: + ldr r0, [r2, #0x50] + adds r0, #0x36 + movs r1, #1 + ldrb r2, [r2, #0xb] + lsls r1, r2 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] +_0809F252: + pop {pc} + + thumb_func_start sub_0809F254 +sub_0809F254: @ 0x0809F254 + push {r4, r5, lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r5, #1 + eors r0, r5 + movs r4, #4 + rsbs r4, r4, #0 + adds r2, r4, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x18] + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F284 + movs r0, #1 + strb r5, [r3, #0xc] + ands r2, r4 + orrs r2, r0 + strb r2, [r3, #0x18] +_0809F284: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809F288 +sub_0809F288: @ 0x0809F288 + push {lr} + ldr r2, _0809F29C @ =gUnk_081246EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F29C: .4byte gUnk_081246EC + + thumb_func_start sub_0809F2A0 +sub_0809F2A0: @ 0x0809F2A0 + push {r4, r5, r6, lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xb] + strb r1, [r0, #0x1e] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + ldr r5, _0809F2EC @ =0x00004069 + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _0809F2F0 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r0, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0809F2EC: .4byte 0x00004069 +_0809F2F0: .4byte gRoomControls + + thumb_func_start nullsub_537 +nullsub_537: @ 0x0809F2F4 + bx lr + .align 2, 0 + + thumb_func_start sub_0809F2F8 +sub_0809F2F8: @ 0x0809F2F8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809F314 @ =gUnk_081246F4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0809F314: .4byte gUnk_081246F4 + + thumb_func_start sub_0809F318 +sub_0809F318: @ 0x0809F318 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _0809F336 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_0809F336: + movs r0, #0x28 + strh r0, [r4, #0x2e] + movs r0, #0x48 + strh r0, [r4, #0x32] + ldr r0, _0809F36C @ =0x0000FFB0 + strh r0, [r4, #0x36] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x1b] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _0809F370 @ =gUnk_08124704 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #7 + bl sub_0805E3A0 + pop {r4, pc} + .align 2, 0 +_0809F36C: .4byte 0x0000FFB0 +_0809F370: .4byte gUnk_08124704 + + thumb_func_start sub_0809F374 +sub_0809F374: @ 0x0809F374 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #1 + bhi _0809F3AE + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bhi _0809F3C0 + movs r0, #0 + str r0, [r4, #0x34] + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_080A3268 + b _0809F3E6 +_0809F3AE: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _0809F3C8 + cmp r0, #1 + beq _0809F3D4 +_0809F3C0: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + b _0809F3E6 +_0809F3C8: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0809F3D4: + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0809F448 + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_080A3268 +_0809F3E6: + pop {r4, pc} + + thumb_func_start sub_0809F3E8 +sub_0809F3E8: @ 0x0809F3E8 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F404 + movs r0, #3 + strb r0, [r2, #0xc] + adds r0, r2, #0 + movs r1, #2 + bl sub_08004260 +_0809F404: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809F408 +sub_0809F408: @ 0x0809F408 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #9 + beq _0809F41C + cmp r0, #0x80 + beq _0809F438 + b _0809F442 +_0809F41C: + movs r0, #0 + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x43 + movs r2, #0 + bl CreateFX + ldr r1, _0809F434 @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1] + b _0809F442 + .align 2, 0 +_0809F434: .4byte gUnk_02000080 +_0809F438: + ldr r1, _0809F444 @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1, #4] + bl sub_0805E780 +_0809F442: + pop {pc} + .align 2, 0 +_0809F444: .4byte gUnk_02000080 + + thumb_func_start sub_0809F448 +sub_0809F448: @ 0x0809F448 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + ldrb r0, [r6, #0xf] + lsls r2, r0, #1 + ldr r1, _0809F474 @ =gUnk_08124708 + adds r7, r2, r1 + adds r0, #1 + strb r0, [r6, #0xf] + ldr r1, [r6, #0x2c] + movs r0, #0xa0 + lsls r0, r0, #0xe + subs r4, r0, r1 + ldrb r0, [r7] + cmp r0, #0 + beq _0809F478 + cmp r0, #1 + beq _0809F492 + b _0809F49C + .align 2, 0 +_0809F474: .4byte gUnk_08124708 +_0809F478: + movs r1, #0xc0 + lsls r1, r1, #0xd + adds r0, r5, #0 + bl __modsi3 + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r5 + cmp r0, #0 + beq _0809F49C + rsbs r4, r4, #0 + b _0809F49C +_0809F492: + ldr r0, _0809F4BC @ =0xFFF80000 + adds r1, r4, r0 + ldr r0, _0809F4C0 @ =0x000FFFFF + ands r0, r5 + adds r4, r1, r0 +_0809F49C: + adds r0, r4, #0 + cmp r4, #0 + bge _0809F4A4 + rsbs r0, r4, #0 +_0809F4A4: + ldrb r1, [r7, #1] + lsls r1, r1, #8 + bl __divsi3 + strh r0, [r6, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_080045DA + lsrs r0, r0, #3 + strb r0, [r6, #0x15] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809F4BC: .4byte 0xFFF80000 +_0809F4C0: .4byte 0x000FFFFF + + thumb_func_start sub_0809F4C4 +sub_0809F4C4: @ 0x0809F4C4 + push {lr} + ldr r2, _0809F4D8 @ =gUnk_08124798 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F4D8: .4byte gUnk_08124798 + + thumb_func_start sub_0809F4DC +sub_0809F4DC: @ 0x0809F4DC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _0809F4FC + ldr r0, _0809F4F8 @ =gUnk_081247A0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0809F50C + .align 2, 0 +_0809F4F8: .4byte gUnk_081247A0 +_0809F4FC: + ldr r0, _0809F510 @ =gUnk_081247AC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_0809F50C: + pop {pc} + .align 2, 0 +_0809F510: .4byte gUnk_081247AC + + thumb_func_start sub_0809F514 +sub_0809F514: @ 0x0809F514 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x78 + strb r1, [r0, #0xe] + ldrb r2, [r0, #0x18] + subs r1, #0x7c + ands r1, r2 + strb r1, [r0, #0x18] + adds r2, r0, #0 + adds r2, #0x68 + movs r1, #0xc + strb r1, [r2] + ldr r1, _0809F540 @ =gRoomControls + str r0, [r1, #0x30] + ldr r2, _0809F544 @ =gUnk_02034490 + movs r1, #0xff + strb r1, [r2] + bl sub_0809F7BC + pop {pc} + .align 2, 0 +_0809F540: .4byte gRoomControls +_0809F544: .4byte gUnk_02034490 + + thumb_func_start sub_0809F548 +sub_0809F548: @ 0x0809F548 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F590 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + adds r0, #0xc3 + bl sub_080A3268 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0809F58C @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_0809F814 + b _0809F5A8 + .align 2, 0 +_0809F58C: .4byte gRoomControls +_0809F590: + ldr r0, _0809F5AC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0809F5A2 + adds r0, r4, #0 + bl sub_0809F7BC +_0809F5A2: + adds r0, r4, #0 + bl sub_0809F7F4 +_0809F5A8: + pop {r4, r5, pc} + .align 2, 0 +_0809F5AC: .4byte gUnk_030010A0 + + thumb_func_start sub_0809F5B0 +sub_0809F5B0: @ 0x0809F5B0 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _0809F5D4 + movs r0, #0x73 + bl sub_080A3268 + movs r0, #0x24 + bl sub_0807CD04 + ldr r0, _0809F5D8 @ =gUnk_080DD750 + bl LoadRoomEntityList + bl sub_0805E780 +_0809F5D4: + pop {pc} + .align 2, 0 +_0809F5D8: .4byte gUnk_080DD750 + + thumb_func_start sub_0809F5DC +sub_0809F5DC: @ 0x0809F5DC + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + strb r1, [r0, #0x18] + adds r0, #0x68 + movs r1, #0xc + strb r1, [r0] + bx lr + + thumb_func_start sub_0809F5F0 +sub_0809F5F0: @ 0x0809F5F0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + bl sub_0807CC3C + cmp r0, #0 + beq _0809F614 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + ldr r0, _0809F618 @ =gRoomControls + str r4, [r0, #0x30] +_0809F614: + pop {r4, pc} + .align 2, 0 +_0809F618: .4byte gRoomControls + + thumb_func_start sub_0809F61C +sub_0809F61C: @ 0x0809F61C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0809F678 @ =gRoomControls + ldrb r1, [r5, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0809F694 + ldrb r0, [r4, #0xe] + cmp r0, #0x1e + bne _0809F638 + ldrb r0, [r4, #0xb] + bl sub_0807CCB4 +_0809F638: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F67C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, #0xa5 + bl sub_080A3268 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_0809F814 + b _0809F694 + .align 2, 0 +_0809F678: .4byte gRoomControls +_0809F67C: + ldr r0, _0809F698 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0809F68E + adds r0, r4, #0 + bl sub_0809F7BC +_0809F68E: + adds r0, r4, #0 + bl sub_0809F7F4 +_0809F694: + pop {r4, r5, pc} + .align 2, 0 +_0809F698: .4byte gUnk_030010A0 + + thumb_func_start sub_0809F69C +sub_0809F69C: @ 0x0809F69C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F6C0 + movs r0, #0x1e + strb r0, [r1, #0xe] + movs r0, #4 + strb r0, [r1, #0xc] + ldr r1, _0809F6C4 @ =gRoomControls + ldr r0, _0809F6C8 @ =gLinkEntity + str r0, [r1, #0x30] + movs r0, #0x73 + bl sub_080A3268 +_0809F6C0: + pop {pc} + .align 2, 0 +_0809F6C4: .4byte gRoomControls +_0809F6C8: .4byte gLinkEntity + + thumb_func_start sub_0809F6CC +sub_0809F6CC: @ 0x0809F6CC + push {lr} + adds r2, r0, #0 + ldr r0, _0809F6F8 @ =gRoomControls + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0809F6F4 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F6F4 + ldr r0, _0809F6FC @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0805E780 +_0809F6F4: + pop {pc} + .align 2, 0 +_0809F6F8: .4byte gRoomControls +_0809F6FC: .4byte gUnk_03003F80 + + thumb_func_start sub_0809F700 +sub_0809F700: @ 0x0809F700 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809F722 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1e + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0xc + orrs r0, r1 + strb r0, [r4, #0x10] +_0809F722: + ldr r0, _0809F768 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809F750 + bl sub_08000E50 + ldr r3, _0809F76C @ =gUnk_081247C0 + movs r2, #7 + adds r1, r0, #0 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + movs r5, #0x62 + strb r1, [r5, r4] + lsrs r0, r0, #4 + ands r0, r2 + adds r0, r0, r3 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] +_0809F750: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F766 + bl sub_0805E780 +_0809F766: + pop {r4, r5, pc} + .align 2, 0 +_0809F768: .4byte gUnk_030010A0 +_0809F76C: .4byte gUnk_081247C0 + + thumb_func_start sub_0809F770 +sub_0809F770: @ 0x0809F770 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa3 + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0809F7B6 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA30 + bl sub_08000E50 + ldrh r2, [r4, #0x2e] + subs r2, #0x10 + movs r3, #0x1f + adds r1, r0, #0 + ands r1, r3 + adds r2, r2, r1 + strh r2, [r4, #0x2e] + ldrh r2, [r4, #0x32] + subs r2, #0x10 + asrs r1, r0, #8 + ands r1, r3 + adds r2, r2, r1 + strh r2, [r4, #0x32] + asrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x1e] + movs r0, #0xff + strb r0, [r4, #0x15] +_0809F7B6: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809F7BC +sub_0809F7BC: @ 0x0809F7BC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r5, #0 + ldr r7, _0809F7F0 @ =gUnk_081247C8 +_0809F7C4: + adds r0, r6, #0 + bl sub_0809F770 + adds r4, r0, #0 + cmp r4, #0 + beq _0809F7E8 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r7 + ldrh r1, [r1] + strh r1, [r4, #0x24] + lsrs r0, r0, #8 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_0809F7E8: + adds r5, #1 + cmp r5, #7 + bls _0809F7C4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809F7F0: .4byte gUnk_081247C8 + + thumb_func_start sub_0809F7F4 +sub_0809F7F4: @ 0x0809F7F4 + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F812 + movs r0, #0xc + strb r0, [r1] + movs r0, #0xc2 + lsls r0, r0, #1 + bl sub_080A3268 +_0809F812: + pop {pc} + + thumb_func_start sub_0809F814 +sub_0809F814: @ 0x0809F814 + push {lr} + adds r1, r0, #0 + ldr r0, _0809F824 @ =gUnk_081247D0 + movs r2, #1 + bl sub_0807BB68 + pop {pc} + .align 2, 0 +_0809F824: .4byte gUnk_081247D0 + + thumb_func_start sub_0809F828 +sub_0809F828: @ 0x0809F828 + push {lr} + ldr r2, _0809F83C @ =gUnk_081247F8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F83C: .4byte gUnk_081247F8 + + thumb_func_start sub_0809F840 +sub_0809F840: @ 0x0809F840 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0x1e] + movs r0, #0x20 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + ldrb r0, [r2, #0xb] + cmp r0, #0 + beq _0809F860 + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0x18] +_0809F860: + adds r0, r2, #0 + bl sub_08016A04 + pop {pc} + + thumb_func_start sub_0809F868 +sub_0809F868: @ 0x0809F868 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F8A2 + ldrb r0, [r1, #0xf] + cmp r0, #0 + bne _0809F890 + ldrb r0, [r1, #0x1e] + adds r0, #1 + strb r0, [r1, #0x1e] + ands r0, r2 + cmp r0, #3 + bne _0809F89E + movs r0, #1 + b _0809F89C +_0809F890: + ldrb r0, [r1, #0x1e] + subs r0, #1 + strb r0, [r1, #0x1e] + ands r0, r2 + cmp r0, #0 + bne _0809F89E +_0809F89C: + strb r0, [r1, #0xf] +_0809F89E: + movs r0, #0x20 + strb r0, [r1, #0xe] +_0809F8A2: + pop {pc} + + thumb_func_start sub_0809F8A4 +sub_0809F8A4: @ 0x0809F8A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _0809F904 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bhi _0809F8FC + movs r5, #0 +_0809F8B6: + movs r0, #0x1d + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r5, #0 + bne _0809F8C6 + mov r8, r4 + adds r7, r4, #0 +_0809F8C6: + strb r5, [r4, #0xa] + mov r0, r8 + str r0, [r4, #0x50] + str r7, [r4, #0x54] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r1, r4, #0 + adds r1, #0x68 + adds r3, r5, #1 + movs r2, #7 +_0809F8DE: + ldrh r0, [r6, #0x2e] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r6, #0x32] + strh r0, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _0809F8DE + adds r7, r4, #0 + adds r5, r3, #0 + cmp r5, #4 + ble _0809F8B6 + bl sub_0805E780 +_0809F8FC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809F904: .4byte gUnk_03003DBC + + thumb_func_start sub_0809F908 +sub_0809F908: @ 0x0809F908 + push {lr} + ldr r2, _0809F91C @ =gUnk_08124800 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F91C: .4byte gUnk_08124800 + + thumb_func_start sub_0809F920 +sub_0809F920: @ 0x0809F920 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809F934 + bl sub_0805E780 +_0809F934: + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #5 + movs r0, #2 + strb r0, [r1] + ldr r0, _0809F960 @ =gUnk_080FD150 + str r0, [r4, #0x48] + pop {r4, pc} + .align 2, 0 +_0809F960: .4byte gUnk_080FD150 + + thumb_func_start sub_0809F964 +sub_0809F964: @ 0x0809F964 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0xa1 + bne _0809F9A8 + adds r0, r4, #0 + movs r1, #0x4e + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0809F99A + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfb + strb r0, [r1] +_0809F99A: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + bl sub_0805E780 +_0809F9A8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809F9AC +sub_0809F9AC: @ 0x0809F9AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809F9D2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0809F9D2: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809F9DC +sub_0809F9DC: @ 0x0809F9DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809FA9A + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1f + bhi _0809FA9A + lsls r0, r0, #2 + ldr r1, _0809FA00 @ =_0809FA04 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809FA00: .4byte _0809FA04 +_0809FA04: @ jump table + .4byte _0809FA84 @ case 0 + .4byte _0809FA84 @ case 1 + .4byte _0809FA9A @ case 2 + .4byte _0809FA9A @ case 3 + .4byte _0809FA84 @ case 4 + .4byte _0809FA84 @ case 5 + .4byte _0809FA84 @ case 6 + .4byte _0809FA9A @ case 7 + .4byte _0809FA84 @ case 8 + .4byte _0809FA84 @ case 9 + .4byte _0809FA84 @ case 10 + .4byte _0809FA84 @ case 11 + .4byte _0809FA84 @ case 12 + .4byte _0809FA9A @ case 13 + .4byte _0809FA9A @ case 14 + .4byte _0809FA9A @ case 15 + .4byte _0809FA9A @ case 16 + .4byte _0809FA9A @ case 17 + .4byte _0809FA9A @ case 18 + .4byte _0809FA9A @ case 19 + .4byte _0809FA9A @ case 20 + .4byte _0809FA9A @ case 21 + .4byte _0809FA9A @ case 22 + .4byte _0809FA9A @ case 23 + .4byte _0809FA9A @ case 24 + .4byte _0809FA9A @ case 25 + .4byte _0809FA9A @ case 26 + .4byte _0809FA9A @ case 27 + .4byte _0809FA9A @ case 28 + .4byte _0809FA9A @ case 29 + .4byte _0809FA84 @ case 30 + .4byte _0809FA84 @ case 31 +_0809FA84: + movs r0, #5 + strb r0, [r4, #0xc] + ldr r0, _0809FAB4 @ =gLinkEntity + str r0, [r4, #0x54] + ldrb r0, [r4, #0xa] + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0809FA9A: + ldr r0, _0809FAB8 @ =gUnk_08124824 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_0809FAB4: .4byte gLinkEntity +_0809FAB8: .4byte gUnk_08124824 + + thumb_func_start sub_0809FABC +sub_0809FABC: @ 0x0809FABC + push {lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xc] + ldrb r0, [r3, #0xb] + cmp r0, #0 + beq _0809FAD0 + cmp r0, #2 + beq _0809FADE + b _0809FAE6 +_0809FAD0: + movs r0, #0xf0 + lsls r0, r0, #9 + str r0, [r3, #0x20] + ldrh r0, [r3, #0x36] + adds r0, #8 + strh r0, [r3, #0x36] + b _0809FAE6 +_0809FADE: + adds r0, r3, #0 + bl sub_0809FECC + b _0809FB30 +_0809FAE6: + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3c + movs r2, #0x17 + strb r2, [r0] + adds r1, #8 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #7 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3b + strb r2, [r0] + ldr r0, _0809FB34 @ =gUnk_080FD1A8 + str r0, [r3, #0x48] + movs r0, #1 + strb r0, [r3, #0x1c] + ldrh r1, [r3, #0x2e] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r3, #0 + movs r1, #3 + bl sub_0805E3A0 + movs r0, #0x9b + lsls r0, r0, #1 + bl sub_08004488 +_0809FB30: + pop {pc} + .align 2, 0 +_0809FB34: .4byte gUnk_080FD1A8 + + thumb_func_start sub_0809FB38 +sub_0809FB38: @ 0x0809FB38 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x34] + ldr r1, _0809FB60 @ =0xFFFF2000 + adds r0, r0, r1 + str r0, [r2, #0x34] + adds r0, r2, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _0809FB74 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0809FB64 + adds r1, r0, #0 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #1 + b _0809FB66 + .align 2, 0 +_0809FB60: .4byte 0xFFFF2000 +_0809FB64: + movs r0, #0xf0 +_0809FB66: + strb r0, [r2, #0xe] + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #1 + strb r0, [r2, #0xf] + movs r0, #0x80 + strh r0, [r2, #0x24] +_0809FB74: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809FB78 +sub_0809FB78: @ 0x0809FB78 + push {lr} + ldr r2, _0809FB8C @ =gUnk_08124840 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809FB8C: .4byte gUnk_08124840 + + thumb_func_start sub_0809FB90 +sub_0809FB90: @ 0x0809FB90 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xd] + strb r1, [r0, #0x1d] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bx lr + + thumb_func_start sub_0809FBA4 +sub_0809FBA4: @ 0x0809FBA4 + push {lr} + adds r2, r0, #0 + ldr r0, _0809FBC8 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0809FBC2 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _0809FBCC +_0809FBC2: + movs r0, #3 + strb r0, [r2, #0xc] + b _0809FBD2 + .align 2, 0 +_0809FBC8: .4byte gUnk_03003F80 +_0809FBCC: + adds r0, r2, #0 + bl sub_0806F4E8 +_0809FBD2: + pop {pc} + + thumb_func_start sub_0809FBD4 +sub_0809FBD4: @ 0x0809FBD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0809FBFC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0809FBF4 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r5, #0x7f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0x13 + beq _0809FC00 +_0809FBF4: + movs r0, #3 + strb r0, [r4, #0xc] + b _0809FC22 + .align 2, 0 +_0809FBFC: .4byte gUnk_03003F80 +_0809FC00: + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0809FC22 + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #5 + strb r0, [r4, #0xc] + ldr r0, _0809FC24 @ =gLinkEntity + str r0, [r4, #0x54] + ldrb r0, [r4, #0xa] + movs r1, #0 + bl sub_08053FF0 +_0809FC22: + pop {r4, r5, pc} + .align 2, 0 +_0809FC24: .4byte gLinkEntity + + thumb_func_start sub_0809FC28 +sub_0809FC28: @ 0x0809FC28 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809FCAC + bl sub_08000E50 + adds r5, r0, #0 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x20 + strb r0, [r4, #0xf] + ldr r2, _0809FC6C @ =gUnk_0812484C + lsrs r0, r5, #8 + movs r1, #1 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0809FE9C + cmp r0, #0 + beq _0809FC70 + movs r0, #0x1f + ands r5, r0 + strb r5, [r4, #0x15] + b _0809FC8A + .align 2, 0 +_0809FC6C: .4byte gUnk_0812484C +_0809FC70: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r4, #0 + adds r3, #0x76 + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r4, #0x15] +_0809FC8A: + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0809FCAC + movs r0, #0x10 + eors r1, r0 + lsrs r1, r1, #4 + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0809FCAC: + adds r0, r4, #0 + bl sub_080AEFB4 + bl sub_0805E40C + cmp r0, #0 + bne _0809FCF8 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809FCF8 + ldr r0, _0809FCFC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0809FCE0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809FCE0 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 +_0809FCE0: + ldrb r0, [r4, #0xe] + cmp r0, #0x3b + bhi _0809FCF8 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0809FCF8: + pop {r4, r5, pc} + .align 2, 0 +_0809FCFC: .4byte gUnk_030010A0 + + thumb_func_start sub_0809FD00 +sub_0809FD00: @ 0x0809FD00 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldrh r1, [r2, #8] + ldr r0, _0809FD18 @ =0x00000B08 + cmp r1, r0 + beq _0809FD1C + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _0809FD44 + .align 2, 0 +_0809FD18: .4byte 0x00000B08 +_0809FD1C: + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r1, _0809FD48 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _0809FD44 + adds r0, r4, #0 + bl sub_0809FECC + ldrb r0, [r4, #0xa] + movs r1, #0 + bl sub_08053FF0 +_0809FD44: + pop {r4, pc} + .align 2, 0 +_0809FD48: .4byte gLinkEntity + + thumb_func_start sub_0809FD4C +sub_0809FD4C: @ 0x0809FD4C + push {lr} + adds r1, r0, #0 + movs r2, #6 + strb r2, [r1, #0xc] + movs r0, #0x80 + strb r0, [r1, #0xe] + strb r2, [r1, #0xf] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + ldrb r2, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #1 + orrs r0, r2 + strb r0, [r1, #0x18] + adds r3, r1, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #0x10 + orrs r0, r2 + strb r0, [r3] + adds r2, r1, #0 + adds r2, #0x63 + movs r0, #0xfb + strb r0, [r2] + ldr r0, [r1, #0x54] + bl sub_0806FA24 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809FD94 +sub_0809FD94: @ 0x0809FD94 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + ldr r2, _0809FE24 @ =gUnk_080C9160 + ldrb r0, [r5, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + movs r3, #0 + ldrsh r1, [r0, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + cmp r0, #0 + bge _0809FDB4 + ldr r1, _0809FE28 @ =0x0000FFFF + adds r0, r0, r1 +_0809FDB4: + asrs r0, r0, #0x10 + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r5, #0x2e] + ldrb r0, [r5, #0xe] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #8 + cmp r0, #0 + bge _0809FDD6 + ldr r3, _0809FE28 @ =0x0000FFFF + adds r0, r0, r3 +_0809FDD6: + asrs r1, r0, #0x10 + ldrh r0, [r6, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r3, [r5, #0xe] + adds r0, r3, #0 + adds r0, #8 + strb r0, [r5, #0xe] + ldrh r0, [r6, #0x36] + strh r0, [r5, #0x36] + ldrb r2, [r6, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r6, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + subs r3, #0x39 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + cmp r3, #0x7e + bhi _0809FE2C + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + b _0809FE3A + .align 2, 0 +_0809FE24: .4byte gUnk_080C9160 +_0809FE28: .4byte 0x0000FFFF +_0809FE2C: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #5 +_0809FE3A: + orrs r1, r0 + strb r1, [r2] + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + adds r4, r5, #0 + adds r4, #0x63 + cmp r0, #0 + bne _0809FE6C + movs r0, #6 + strb r0, [r5, #0xf] + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x16 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0809FE6C + adds r0, r5, #0 + movs r1, #1 + bl sub_08081404 +_0809FE6C: + movs r1, #0 + ldrsb r1, [r4, r1] + movs r0, #0x11 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0809FE8A + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] +_0809FE8A: + adds r1, r5, #0 + adds r1, #0x87 + ldrb r0, [r1] + cmp r0, #0xa + bls _0809FE98 + movs r0, #0xa + strb r0, [r1] +_0809FE98: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809FE9C +sub_0809FE9C: @ 0x0809FE9C + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + adds r1, r2, #0 + adds r1, #0x74 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #0x48 + cmp r0, #0x90 + bhi _0809FEC8 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #0x30 + cmp r0, #0x60 + bhi _0809FEC8 + movs r0, #1 + b _0809FECA +_0809FEC8: + movs r0, #0 +_0809FECA: + pop {pc} + + thumb_func_start sub_0809FECC +sub_0809FECC: @ 0x0809FECC + ldr r1, _0809FEDC @ =gLinkEntity + str r1, [r0, #0x54] + movs r2, #0 + movs r1, #5 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 +_0809FEDC: .4byte gLinkEntity + + thumb_func_start sub_0809FEE0 +sub_0809FEE0: @ 0x0809FEE0 + push {lr} + ldr r2, _0809FEF4 @ =gUnk_08124850 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809FEF4: .4byte gUnk_08124850 + + thumb_func_start sub_0809FEF8 +sub_0809FEF8: @ 0x0809FEF8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _0809FF20 @ =gUnk_0812485C + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + ldr r1, _0809FF24 @ =gUnk_08124860 + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_0809FF20: .4byte gUnk_0812485C +_0809FF24: .4byte gUnk_08124860 + + thumb_func_start sub_0809FF28 +sub_0809FF28: @ 0x0809FF28 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809FF64 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xe] + strb r0, [r1, #0x10] + ldrb r2, [r4, #0xf] + movs r0, #3 + ands r2, r0 + ldrb r3, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0x18] + adds r1, #0x6d + ldrb r2, [r1] + movs r0, #0xef + ands r0, r2 + strb r0, [r1] +_0809FF64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809FF68 +sub_0809FF68: @ 0x0809FF68 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _0809FFA2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0809FFC4 @ =gUnk_08124868 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0x78 + strh r0, [r1] +_0809FFA2: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080A0068 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _080A00AA + ldrb r2, [r4, #0xd] + cmp r2, #1 + beq _080A0006 + cmp r2, #1 + bgt _0809FFC8 + cmp r2, #0 + beq _0809FFCE + b _080A005A + .align 2, 0 +_0809FFC4: .4byte gUnk_08124868 +_0809FFC8: + cmp r2, #2 + beq _080A0038 + b _080A005A +_0809FFCE: + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A005A + movs r0, #0x20 + strh r0, [r1] + movs r1, #1 + strb r1, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + strb r1, [r4, #0xd] + strb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080AE068 + movs r1, #0xc6 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_080ADF80 + movs r0, #0xf6 + bl sub_080A3268 + b _080A005A +_080A0006: + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A005A + movs r0, #0x2d + strh r0, [r1] + strb r2, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xd] + strb r0, [r4, #0xa] + adds r0, r4, #0 + bl sub_080AE068 + ldr r1, _080A0034 @ =0x0000018D + adds r0, r4, #0 + bl sub_080ADF80 + b _080A005A + .align 2, 0 +_080A0034: .4byte 0x0000018D +_080A0038: + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A005A + movs r0, #3 + strb r0, [r4, #0xd] + ldr r1, _080A0064 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #0x73 + bl sub_080A3268 +_080A005A: + adds r0, r4, #0 + bl sub_080A00B0 + b _080A00AA + .align 2, 0 +_080A0064: .4byte gUnk_02000080 +_080A0068: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A00A4 + cmp r0, #2 + bne _080A00A4 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080A00A4 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080A00AC @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0x39 + movs r2, #1 + bl sub_0807B314 +_080A00A4: + adds r0, r4, #0 + bl sub_080A00B0 +_080A00AA: + pop {r4, r5, pc} + .align 2, 0 +_080A00AC: .4byte gRoomControls + + thumb_func_start sub_080A00B0 +sub_080A00B0: @ 0x080A00B0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A00DA + movs r0, #8 + strb r0, [r2, #0xe] + ldr r1, _080A00DC @ =gUnk_08124868 + ldrb r0, [r2, #0xa] + adds r0, r0, r1 + ldrb r1, [r2, #0xf] + ldrb r0, [r0] + adds r0, r1, r0 + strb r0, [r2, #0x1e] + adds r1, #1 + movs r0, #3 + ands r1, r0 + strb r1, [r2, #0xf] +_080A00DA: + pop {pc} + .align 2, 0 +_080A00DC: .4byte gUnk_08124868 + + thumb_func_start sub_080A00E0 +sub_080A00E0: @ 0x080A00E0 + push {lr} + ldr r2, _080A00F4 @ =gUnk_0812486C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A00F4: .4byte gUnk_0812486C + + thumb_func_start sub_080A00F8 +sub_080A00F8: @ 0x080A00F8 + push {lr} + ldrb r1, [r0, #0xc] + adds r1, #1 + movs r3, #0 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #1 + strb r1, [r2] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + movs r2, #7 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + strb r3, [r0, #0xd] + movs r1, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_080A012C +sub_080A012C: @ 0x080A012C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _080A0154 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A0154 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_080A0154: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0158 +sub_080A0158: @ 0x080A0158 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _080A018A + adds r0, r4, #0 + bl sub_080A0190 + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldr r1, _080A018C @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0x10 + movs r3, #0x10 + bl sub_080041A0 + cmp r0, #0 + beq _080A018A + movs r0, #0x37 + bl sub_0805B390 +_080A018A: + pop {r4, pc} + .align 2, 0 +_080A018C: .4byte gLinkEntity + + thumb_func_start sub_080A0190 +sub_080A0190: @ 0x080A0190 + push {r4, lr} + movs r4, #0 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r1, _080A01B8 @ =gLinkEntity + bl sub_0806FA24 + ldr r2, _080A01BC @ =gUnk_03003F80 + movs r0, #3 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + strb r4, [r0] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + pop {r4, pc} + .align 2, 0 +_080A01B8: .4byte gLinkEntity +_080A01BC: .4byte gUnk_03003F80 + + thumb_func_start sub_080A01C0 +sub_080A01C0: @ 0x080A01C0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A01DC @ =gUnk_08124898 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_080A01DC: .4byte gUnk_08124898 + + thumb_func_start sub_080A01E0 +sub_080A01E0: @ 0x080A01E0 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r0, _080A027C @ =gUnk_080FD1A0 + str r0, [r4, #0x48] + ldr r0, _080A0280 @ =0x0000FF40 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x6a + movs r0, #0x40 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0x43 + bgt _080A0246 + cmp r0, #0x42 + bge _080A0246 + cmp r0, #0x40 + beq _080A0246 + cmp r0, #0x41 + bne _080A0246 + ldr r2, _080A0284 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _080A0288 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x38 + strb r3, [r0] +_080A0246: + ldr r0, _080A028C @ =gUnk_0800A0B4 + bl sub_0807DB2C + ldr r1, _080A0284 @ =gLCDControls + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + bl sub_0805BC4C + ldrb r2, [r4, #0xa] + subs r2, #0x40 + adds r0, r4, #0 + movs r1, #0xad + movs r3, #0 + bl sub_080A2988 + cmp r0, #0 + beq _080A027A + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_080A027A: + pop {r4, pc} + .align 2, 0 +_080A027C: .4byte gUnk_080FD1A0 +_080A0280: .4byte 0x0000FF40 +_080A0284: .4byte gLCDControls +_080A0288: .4byte 0x0000FDFF +_080A028C: .4byte gUnk_0800A0B4 + + thumb_func_start sub_080A0290 +sub_080A0290: @ 0x080A0290 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080A02BC @ =gUnk_02033280 + ldr r0, [r5] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _080A02CA + adds r0, r4, #0 + bl sub_080A0424 + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080A02C0 + adds r0, r2, #1 + strh r0, [r4, #0x36] + b _080A02CA + .align 2, 0 +_080A02BC: .4byte gUnk_02033280 +_080A02C0: + movs r1, #2 + strb r1, [r4, #0xc] + ldr r0, [r5] + orrs r0, r1 + str r0, [r5] +_080A02CA: + pop {r4, r5, pc} + + thumb_func_start sub_080A02CC +sub_080A02CC: @ 0x080A02CC + push {r4, lr} + adds r4, r0, #0 + bl sub_080A0424 + adds r0, r4, #0 + bl sub_080A0444 + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _080A0342 + ldr r0, [r4, #0x54] + bl sub_0805E7BC + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r2, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x2d + strb r0, [r4, #0xe] + ldr r0, _080A0344 @ =gLCDControls + adds r3, r0, #0 + adds r3, #0x66 + movs r1, #0xc8 + lsls r1, r1, #3 + strh r1, [r3] + adds r0, #0x68 + strh r2, [r0] + ldrb r0, [r4, #0xa] + movs r1, #0 + movs r2, #1 + bl sub_080A7C18 + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C650 + movs r0, #6 + movs r1, #2 + bl sub_08050054 + movs r0, #0xf8 + bl sub_080A3268 + movs r0, #0xa4 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #5 + bl sub_080A3268 + ldr r0, _080A0348 @ =0x80110000 + bl sub_080A3268 +_080A0342: + pop {r4, pc} + .align 2, 0 +_080A0344: .4byte gLCDControls +_080A0348: .4byte 0x80110000 + + thumb_func_start sub_080A034C +sub_080A034C: @ 0x080A034C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A0378 + adds r0, r4, #0 + bl sub_080A0424 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A038C + ldr r0, _080A0374 @ =gLinkEntity + movs r1, #0 + bl sub_0805E3A0 + b _080A038C + .align 2, 0 +_080A0374: .4byte gLinkEntity +_080A0378: + movs r0, #0 + movs r1, #0x3c + bl sub_0805E4E0 + bl sub_0808C67C + cmp r0, #0 + beq _080A038C + movs r0, #4 + strb r0, [r4, #0xc] +_080A038C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0390 +sub_080A0390: @ 0x080A0390 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #0x3c + bl sub_0805E4E0 + ldr r0, _080A03B4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A03B2 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0xd2 + lsls r0, r0, #1 + strh r0, [r1] +_080A03B2: + pop {r4, pc} + .align 2, 0 +_080A03B4: .4byte gUnk_03000FD0 + + thumb_func_start sub_080A03B8 +sub_080A03B8: @ 0x080A03B8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #0xa + bl sub_0805E4E0 + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A03E4 + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + bl sub_0805429C + adds r1, r4, #0 + bl TextboxNoOverlap +_080A03E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A03E8 +sub_080A03E8: @ 0x080A03E8 + push {lr} + movs r0, #0 + movs r1, #0xa + bl sub_0805E4E0 + ldr r0, _080A041C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080A041A + movs r0, #0x5a + bl sub_0805E510 + ldr r0, _080A0420 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0807DF50 + movs r0, #0 + bl sub_0807CD10 + bl sub_0805E780 +_080A041A: + pop {pc} + .align 2, 0 +_080A041C: .4byte gTextBox +_080A0420: .4byte gUnk_03003F80 + + thumb_func_start sub_080A0424 +sub_080A0424: @ 0x080A0424 + push {lr} + adds r1, r0, #0 + adds r1, #0x6a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0442 + movs r0, #0x40 + strb r0, [r1] + movs r0, #0xbc + lsls r0, r0, #1 + bl sub_080A3268 +_080A0442: + pop {pc} + + thumb_func_start sub_080A0444 +sub_080A0444: @ 0x080A0444 + ldr r3, _080A0460 @ =gUnk_081248B4 + ldrb r1, [r0, #0xf] + adds r2, r1, #1 + strb r2, [r0, #0xf] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + bx lr + .align 2, 0 +_080A0460: .4byte gUnk_081248B4 + + thumb_func_start sub_080A0464 +sub_080A0464: @ 0x080A0464 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #6 + movs r1, #0xac + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + beq _080A048A + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + adds r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC +_080A048A: + pop {r4, r5, pc} + + thumb_func_start sub_080A048C +sub_080A048C: @ 0x080A048C + push {lr} + ldr r2, _080A04A0 @ =gUnk_081248BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A04A0: .4byte gUnk_081248BC + + thumb_func_start sub_080A04A4 +sub_080A04A4: @ 0x080A04A4 + push {r4, lr} + movs r3, #0 + movs r1, #1 + strb r1, [r0, #0xc] + movs r4, #4 + movs r1, #4 + strb r1, [r0, #0x1e] + strb r3, [r0, #0xe] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + movs r2, #7 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + str r3, [r0, #0x34] + ldrb r2, [r0, #0x19] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r4 + strb r1, [r0, #0x19] + bl sub_080A04E8 + pop {r4, pc} + + thumb_func_start sub_080A04E0 +sub_080A04E0: @ 0x080A04E0 + push {lr} + bl sub_080A04E8 + pop {pc} + + thumb_func_start sub_080A04E8 +sub_080A04E8: @ 0x080A04E8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _080A04F8 + rsbs r0, r0, #0 +_080A04F8: + movs r1, #0x80 + lsls r1, r1, #1 + adds r4, r0, r1 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805EC9C + movs r1, #0xe0 + lsls r1, r1, #1 + subs r1, r1, r4 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r1, r4, #0 + bl __divsi3 + adds r4, r0, #0 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xa] + cmp r0, #0x41 + bne _080A0538 + lsls r3, r4, #1 + cmp r3, #0xc + bls _080A052E + movs r3, #0xc +_080A052E: + movs r0, #0x10 + subs r0, r0, r4 + lsls r4, r0, #8 + orrs r4, r3 + b _080A0540 +_080A0538: + movs r0, #0x10 + subs r0, r0, r4 + lsls r0, r0, #8 + orrs r4, r0 +_080A0540: + ldr r0, _080A054C @ =0x0000FFFF + ands r4, r0 + ldr r0, _080A0550 @ =gLCDControls + adds r0, #0x68 + strh r4, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080A054C: .4byte 0x0000FFFF +_080A0550: .4byte gLCDControls + + thumb_func_start sub_080A0554 +sub_080A0554: @ 0x080A0554 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _080A0588 + movs r2, #1 + strb r2, [r3, #0xc] + ldrb r0, [r3, #0xa] + strb r0, [r3, #0x1e] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x38 + strb r2, [r0] + adds r0, r3, #0 + bl sub_08016A04 +_080A0588: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A058C +sub_080A058C: @ 0x080A058C + push {lr} + ldr r2, _080A05A0 @ =gUnk_081248C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A05A0: .4byte gUnk_081248C4 + + thumb_func_start sub_080A05A4 +sub_080A05A4: @ 0x080A05A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + cmp r1, #2 + beq _080A05D2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080A0640 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _080A05F0 +_080A05D2: + movs r0, #0 + strb r1, [r4, #0xc] + ldrh r1, [r4, #0x32] + adds r1, #1 + strh r1, [r4, #0x32] + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_080A05F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A05F4 +sub_080A05F4: @ 0x080A05F4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + cmp r0, #0 + bne _080A060C + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _080A0622 +_080A060C: + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A0616 + bl sub_0805E780 +_080A0616: + adds r0, r4, #0 + bl sub_080A0640 + adds r0, r4, #0 + bl sub_08004274 +_080A0622: + pop {r4, pc} + + thumb_func_start sub_080A0624 +sub_080A0624: @ 0x080A0624 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A063C + bl sub_0805E780 +_080A063C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0640 +sub_080A0640: @ 0x080A0640 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080A065E + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x64] + ldr r0, [r0, #0x10] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + b _080A0666 +_080A065E: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 +_080A0666: + movs r0, #0 + strh r0, [r4, #0x36] + pop {r4, pc} + + thumb_func_start sub_080A066C +sub_080A066C: @ 0x080A066C + push {lr} + ldr r2, _080A0680 @ =gUnk_0812493C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A0680: .4byte gUnk_0812493C + + thumb_func_start sub_080A0684 +sub_080A0684: @ 0x080A0684 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r2] + ldr r0, _080A070C @ =0x0000FFFF + cmp r1, r0 + beq _080A06A2 + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _080A06A2 + bl sub_0805E780 +_080A06A2: + movs r0, #1 + strb r0, [r4, #0xc] + movs r2, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r2, [r4, #0x1e] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, _080A0710 @ =gUnk_080FD180 + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080A0714 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080A070C: .4byte 0x0000FFFF +_080A0710: .4byte gUnk_080FD180 +_080A0714: .4byte gRoomControls + + thumb_func_start sub_080A0718 +sub_080A0718: @ 0x080A0718 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08083734 + cmp r0, #0 + beq _080A074A + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x10 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0x15] + ldrh r0, [r4, #0x32] + adds r0, #0x24 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080A080C +_080A074A: + pop {r4, pc} + + thumb_func_start sub_080A074C +sub_080A074C: @ 0x080A074C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080A07B6 + movs r0, #3 + strb r0, [r4, #0xc] + strh r1, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080A0794 + ldrh r0, [r1, #0x2e] + adds r0, #0xc + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0xc + strh r0, [r1, #0x32] +_080A0794: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080A07B0 + ldrh r0, [r1, #0x2e] + subs r0, #0xc + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0xc + strh r0, [r1, #0x32] +_080A07B0: + ldr r0, _080A07B8 @ =0x0000010B + bl sub_08004488 +_080A07B6: + pop {r4, pc} + .align 2, 0 +_080A07B8: .4byte 0x0000010B + + thumb_func_start sub_080A07BC +sub_080A07BC: @ 0x080A07BC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080A07EA + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0x15] + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080A0870 + ldr r0, _080A07EC @ =0x0000010B + bl sub_080A3268 +_080A07EA: + pop {r4, pc} + .align 2, 0 +_080A07EC: .4byte 0x0000010B + + thumb_func_start sub_080A07F0 +sub_080A07F0: @ 0x080A07F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0808 + bl sub_0805E780 +_080A0808: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A080C +sub_080A080C: @ 0x080A080C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x74 + ldrh r0, [r6] + subs r0, #1 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r6] + adds r0, #1 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldr r4, _080A086C @ =0x00004022 + ldrh r1, [r6] + subs r1, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_080A086C: .4byte 0x00004022 + + thumb_func_start sub_080A0870 +sub_080A0870: @ 0x080A0870 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + subs r1, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x78 + ldrh r0, [r0] + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A08AC +sub_080A08AC: @ 0x080A08AC + push {lr} + ldr r2, _080A08C0 @ =gUnk_08124950 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A08C0: .4byte gUnk_08124950 + + thumb_func_start sub_080A08C4 +sub_080A08C4: @ 0x080A08C4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080A08E2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_080A0960 + b _080A08F6 +_080A08E2: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #1 + bl sub_080A0960 +_080A08F6: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0910 +sub_080A0910: @ 0x080A0910 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080A0932 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_080A0960 + ldr r0, _080A0934 @ =0x0000010B + bl sub_080A3268 +_080A0932: + pop {r4, pc} + .align 2, 0 +_080A0934: .4byte 0x0000010B + + thumb_func_start sub_080A0938 +sub_080A0938: @ 0x080A0938 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A095A + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080A095A: + pop {r4, pc} + + thumb_func_start nullsub_127 +nullsub_127: @ 0x080A095C + bx lr + .align 2, 0 + + thumb_func_start sub_080A0960 +sub_080A0960: @ 0x080A0960 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _080A0998 @ =gUnk_08124960 + cmp r1, #1 + bne _080A096C + ldr r5, _080A099C @ =gUnk_0812497A +_080A096C: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080A09A0 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + movs r2, #1 + bl sub_0801AF18 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A0998: .4byte gUnk_08124960 +_080A099C: .4byte gUnk_0812497A +_080A09A0: .4byte gRoomControls + + thumb_func_start sub_080A09A4 +sub_080A09A4: @ 0x080A09A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A09D4 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r1, _080A0A2C @ =gUnk_02027EB4 + cmp r0, #2 + bne _080A09CA + ldr r1, _080A0A30 @ =gUnk_0200D654 +_080A09CA: + str r1, [r4, #0x54] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_080A09D4: + ldr r0, [r4, #0x50] + ldrh r0, [r0, #0x24] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x54] + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r3, #0x32 + ldrsh r2, [r4, r3] + movs r3, #9 + bl sub_080AE4CC + cmp r0, #0 + beq _080A09F8 + bl sub_0805E780 +_080A09F8: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0x40 + bgt _080A0A22 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0A22 + bl sub_0805E780 +_080A0A22: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080A0A2C: .4byte gUnk_02027EB4 +_080A0A30: .4byte gUnk_0200D654 + + thumb_func_start sub_080A0A34 +sub_080A0A34: @ 0x080A0A34 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A0A44 + cmp r0, #1 + beq _080A0A5C + b _080A0A5E +_080A0A44: + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + ldr r1, _080A0A54 @ =gUnk_08124A18 + cmp r0, #0 + beq _080A0A5E + ldr r1, _080A0A58 @ =gUnk_08124A10 + b _080A0A5E + .align 2, 0 +_080A0A54: .4byte gUnk_08124A18 +_080A0A58: .4byte gUnk_08124A10 +_080A0A5C: + ldr r1, _080A0AB8 @ =gUnk_08124A20 +_080A0A5E: + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A0AB0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r4, #0x19] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r3 + strb r1, [r4, #0x1b] + ldr r1, _080A0ABC @ =gUnk_080C9CBC + ldr r0, _080A0AC0 @ =gUnk_02022740 + ldrb r0, [r0, #3] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 +_080A0AB0: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080A0AB8: .4byte gUnk_08124A20 +_080A0ABC: .4byte gUnk_080C9CBC +_080A0AC0: .4byte gUnk_02022740 + + thumb_func_start sub_080A0AC4 +sub_080A0AC4: @ 0x080A0AC4 + push {lr} + ldrb r1, [r0, #0xa] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0AD0 +sub_080A0AD0: @ 0x080A0AD0 + push {lr} + movs r1, #0x80 + bl sub_08003FC4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0ADC +sub_080A0ADC: @ 0x080A0ADC + push {r4, lr} + adds r4, r0, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0AF0 +sub_080A0AF0: @ 0x080A0AF0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #5 + bne _080A0B1C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A0B1C + bl sub_0805E780 +_080A0B1C: + adds r0, r4, #0 + movs r1, #0x80 + bl sub_08003FC4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0B28 +sub_080A0B28: @ 0x080A0B28 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r0, #0x32 + ldrsh r3, [r4, r0] + adds r0, r4, #0 + bl sub_0807DEDC + ldrh r0, [r4, #0x32] + subs r0, #0xb0 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + pop {r4, pc} + + thumb_func_start sub_080A0B4C +sub_080A0B4C: @ 0x080A0B4C + push {lr} + movs r1, #0x78 + strh r1, [r0, #0x2e] + movs r1, #0x50 + strh r1, [r0, #0x32] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0B60 +sub_080A0B60: @ 0x080A0B60 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A0B7C + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #0x9b + lsls r0, r0, #1 + bl sub_080A3268 +_080A0B7C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0B80 +sub_080A0B80: @ 0x080A0B80 + ldr r1, [r0, #0x30] + ldr r2, _080A0B8C @ =0xFFFD8000 + adds r1, r1, r2 + str r1, [r0, #0x30] + bx lr + .align 2, 0 +_080A0B8C: .4byte 0xFFFD8000 + + thumb_func_start sub_080A0B90 +sub_080A0B90: @ 0x080A0B90 + push {lr} + ldr r2, _080A0BA4 @ =gUnk_08124B20 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A0BA4: .4byte gUnk_08124B20 + + thumb_func_start sub_080A0BA8 +sub_080A0BA8: @ 0x080A0BA8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r2, [r5, #0xc] + cmp r2, #0 + beq _080A0BB8 + cmp r2, #1 + beq _080A0C08 + b _080A0CE0 +_080A0BB8: + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #9 + strb r0, [r5, #0x1e] + movs r0, #8 + strb r0, [r5, #0xe] + strb r2, [r5, #0xf] + ldrb r1, [r5, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r5, #0x19] + adds r4, r5, #0 + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0x1b] + ands r2, r0 + orrs r2, r3 + strb r2, [r5, #0x1b] + adds r0, r5, #0 + movs r1, #0xbf + movs r2, #0x48 + movs r3, #0x1e + bl sub_0806FB00 + b _080A0CE0 +_080A0C08: + ldrb r0, [r5, #0xf] + cmp r0, #6 + bhi _080A0C46 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0C46 + strb r2, [r5, #0xe] + ldrb r2, [r5, #0xf] + movs r0, #0xb4 + movs r1, #1 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080A0C40 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + movs r0, #0x68 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_080A0C40: + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] +_080A0C46: + adds r0, r5, #0 + bl sub_0806FB38 + cmp r0, #0 + bne _080A0C58 + ldr r0, _080A0CE4 @ =gUnk_02000080 + ldrb r0, [r0, #5] + cmp r0, #1 + bls _080A0CE0 +_080A0C58: + movs r0, #0xbf + strh r0, [r5, #0x2e] + movs r0, #0x48 + strh r0, [r5, #0x32] + movs r0, #0xa + strb r0, [r5, #0x1e] + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xf] + cmp r0, #6 + bhi _080A0CA0 +_080A0C6E: + ldrb r2, [r5, #0xf] + movs r0, #0xb4 + movs r1, #1 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080A0C92 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + movs r0, #0x68 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_080A0C92: + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bls _080A0C6E +_080A0CA0: + movs r0, #0xb4 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080A0CC0 + movs r0, #0xc4 + strh r0, [r4, #0x2e] + movs r0, #0x2c + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_080A0CC0: + movs r0, #0xb4 + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080A0CE0 + movs r0, #0xb4 + strh r0, [r4, #0x2e] + movs r0, #0x19 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_080A0CE0: + pop {r4, r5, pc} + .align 2, 0 +_080A0CE4: .4byte gUnk_02000080 + + thumb_func_start sub_080A0CE8 +sub_080A0CE8: @ 0x080A0CE8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _080A0CF8 + cmp r0, #1 + beq _080A0D28 + b _080A0D66 +_080A0CF8: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + adds r0, #2 + strb r0, [r4, #0x1e] + ldr r1, _080A0D24 @ =gUnk_08124B10 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #0x68 + movs r3, #0x14 + bl sub_0806FB00 + b _080A0D66 + .align 2, 0 +_080A0D24: .4byte gUnk_08124B10 +_080A0D28: + adds r0, r4, #0 + bl sub_0806FB38 + cmp r0, #0 + bne _080A0D3A + ldr r0, _080A0D68 @ =gUnk_02000080 + ldrb r0, [r0, #5] + cmp r0, #1 + bls _080A0D66 +_080A0D3A: + ldr r1, _080A0D6C @ =gUnk_08124B10 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + movs r0, #0x68 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0xb] + movs r0, #7 + subs r1, r0, r1 + adds r3, r4, #0 + adds r3, #0x29 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #2 + strb r0, [r4, #0xc] +_080A0D66: + pop {r4, pc} + .align 2, 0 +_080A0D68: .4byte gUnk_02000080 +_080A0D6C: .4byte gUnk_08124B10 + + thumb_func_start sub_080A0D70 +sub_080A0D70: @ 0x080A0D70 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r6, [r5, #0xc] + cmp r6, #0 + bne _080A0DC4 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x19] + movs r4, #0x3f + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r5, #0x19] + movs r0, #0x29 + adds r0, r0, r5 + mov ip, r0 + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r0, [r5, #0x1b] + ands r1, r0 + orrs r1, r3 + strb r1, [r5, #0x1b] + movs r0, #0xb + strb r0, [r5, #0x1e] + bl sub_08000E50 + ands r0, r4 + adds r0, #0x40 + strb r0, [r5, #0xe] + strb r6, [r5, #0xf] +_080A0DC4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080A0E02 + movs r0, #4 + strb r0, [r5, #0xe] + ldr r2, _080A0E04 @ =gUnk_08124B30 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r2 + ldrb r0, [r0] + adds r0, #2 + strb r0, [r5, #0x1e] + ldrb r0, [r5, #0xf] + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _080A0E02 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x40 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] +_080A0E02: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A0E04: .4byte gUnk_08124B30 + + thumb_func_start sub_080A0E08 +sub_080A0E08: @ 0x080A0E08 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080A0E26 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x18] + movs r0, #0xf + strb r0, [r2, #0x1e] +_080A0E26: + pop {pc} + + thumb_func_start sub_080A0E28 +sub_080A0E28: @ 0x080A0E28 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080A0E36 + movs r0, #1 + strb r0, [r1, #0xc] +_080A0E36: + ldr r0, _080A0E48 @ =gRoomControls + str r1, [r0, #0x30] + ldr r0, _080A0E4C @ =gLinkEntity + ldr r3, _080A0E50 @ =0xFFD80000 + movs r2, #0 + bl PositionRelative + pop {pc} + .align 2, 0 +_080A0E48: .4byte gRoomControls +_080A0E4C: .4byte gLinkEntity +_080A0E50: .4byte 0xFFD80000 + + thumb_func_start sub_080A0E54 +sub_080A0E54: @ 0x080A0E54 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + cmp r0, #3 + bls _080A0E64 + bl sub_0805E780 +_080A0E64: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A0E76 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_080A0E76: + ldr r0, [r4, #0x50] + ldrb r3, [r4, #0xa] + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + adds r2, r4, #0 + adds r2, #0x63 + ldrb r0, [r2] + ldrb r1, [r4, #0xa] + subs r0, r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0E98 +sub_080A0E98: @ 0x080A0E98 + push {lr} + ldr r2, _080A0EAC @ =gUnk_08124C08 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A0EAC: .4byte gUnk_08124C08 + + thumb_func_start sub_080A0EB0 +sub_080A0EB0: @ 0x080A0EB0 + push {r4, r5, lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, _080A0EE8 @ =gRoomControls + ldrh r1, [r3, #6] + subs r2, r2, r1 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldrh r3, [r3, #8] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r2, r1 + adds r0, #0x80 + strh r2, [r0] + ldr r2, _080A0EEC @ =0x0000407D + ldrh r1, [r0] + adds r0, r2, #0 + movs r2, #1 + bl sub_0800015E + pop {r4, r5, pc} + .align 2, 0 +_080A0EE8: .4byte gRoomControls +_080A0EEC: .4byte 0x0000407D + + thumb_func_start sub_080A0EF0 +sub_080A0EF0: @ 0x080A0EF0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r1, #1 + bl sub_080002B0 + ldr r1, _080A0F1C @ =0x0000407D + cmp r0, r1 + beq _080A0F18 + bl sub_08078B48 + ldr r1, _080A0F20 @ =gLinkEntity + ldr r0, [r4, #0x2c] + str r0, [r1, #0x2c] + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r1, #0x32] + bl sub_0805E780 +_080A0F18: + pop {r4, pc} + .align 2, 0 +_080A0F1C: .4byte 0x0000407D +_080A0F20: .4byte gLinkEntity + + thumb_func_start sub_080A0F24 +sub_080A0F24: @ 0x080A0F24 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A0F40 @ =gUnk_08124C10 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080A11E0 + pop {r4, pc} + .align 2, 0 +_080A0F40: .4byte gUnk_08124C10 + + thumb_func_start sub_080A0F44 +sub_080A0F44: @ 0x080A0F44 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #1 + strb r6, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x59 + movs r0, #8 + strb r0, [r1] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080A0FA8 @ =gUnk_080FD460 + str r0, [r5, #0x48] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_080A11C0 + cmp r0, #0 + beq _080A0FA4 + ldr r1, _080A0FAC @ =gLinkEntity + ldrh r0, [r5, #0x2e] + movs r4, #0 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r1, #0x32] + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + bl sub_0805E544 + movs r0, #0x89 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #3 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x68 + strb r6, [r0] +_080A0FA4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A0FA8: .4byte gUnk_080FD460 +_080A0FAC: .4byte gLinkEntity + + thumb_func_start sub_080A0FB0 +sub_080A0FB0: @ 0x080A0FB0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080A11C0 + adds r1, r0, #0 + cmp r1, #0 + beq _080A0FF8 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0 + bne _080A0FFE + ldr r1, _080A0FF4 @ =gLinkEntity + ldrh r0, [r5, #0x2e] + movs r4, #0 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r1, #0x32] + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + bl sub_0805E544 + movs r0, #0x89 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #2 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + b _080A0FFE + .align 2, 0 +_080A0FF4: .4byte gLinkEntity +_080A0FF8: + adds r0, r5, #0 + adds r0, #0x68 + strb r1, [r0] +_080A0FFE: + pop {r4, r5, pc} + + thumb_func_start sub_080A1000 +sub_080A1000: @ 0x080A1000 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xd] + cmp r1, #1 + beq _080A102A + cmp r1, #1 + bgt _080A1014 + cmp r1, #0 + beq _080A101E + b _080A1088 +_080A1014: + cmp r1, #2 + beq _080A1038 + cmp r1, #3 + beq _080A1064 + b _080A1088 +_080A101E: + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _080A10D4 +_080A102A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A10D4 + b _080A1070 +_080A1038: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A1056 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, #0xf5 + bl sub_080A3268 + b _080A10D4 +_080A1056: + ldr r0, _080A1060 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + b _080A10C2 + .align 2, 0 +_080A1060: .4byte gUnk_030010A0 +_080A1064: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A107C +_080A1070: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _080A10D4 +_080A107C: + ldr r0, _080A1084 @ =gUnk_030010A0 + ldr r0, [r0] + b _080A10C2 + .align 2, 0 +_080A1084: .4byte gUnk_030010A0 +_080A1088: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A10BC + ldr r0, _080A10B4 @ =gRoomControls + ldrb r0, [r0, #4] + cmp r0, #3 + bne _080A10A2 + movs r0, #0xf9 + bl sub_0807CCB4 +_080A10A2: + ldrb r1, [r4, #0xb] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A10B8 @ =gUnk_0813ADEC + adds r0, r0, r1 + bl sub_08080840 + b _080A10D4 + .align 2, 0 +_080A10B4: .4byte gRoomControls +_080A10B8: .4byte gUnk_0813ADEC +_080A10BC: + ldr r0, _080A10D8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 +_080A10C2: + ands r0, r1 + cmp r0, #0 + bne _080A10D4 + ldr r0, _080A10DC @ =gLinkEntity + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] +_080A10D4: + pop {r4, pc} + .align 2, 0 +_080A10D8: .4byte gUnk_030010A0 +_080A10DC: .4byte gLinkEntity + + thumb_func_start sub_080A10E0 +sub_080A10E0: @ 0x080A10E0 + push {r4, lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xd] + cmp r1, #1 + beq _080A110E + cmp r1, #1 + bgt _080A10F4 + cmp r1, #0 + beq _080A10FE + b _080A1180 +_080A10F4: + cmp r1, #2 + beq _080A1124 + cmp r1, #3 + beq _080A1148 + b _080A1180 +_080A10FE: + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x1e + strb r0, [r2, #0xe] + adds r0, #0xf6 + bl sub_080A3268 + b _080A11BA +_080A110E: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A1130 + ldr r0, _080A1120 @ =gUnk_030010A0 + ldr r0, [r0] + b _080A1162 + .align 2, 0 +_080A1120: .4byte gUnk_030010A0 +_080A1124: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A113C +_080A1130: + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x1e + strb r0, [r2, #0xe] + b _080A11BA +_080A113C: + ldr r0, _080A1144 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + b _080A1162 + .align 2, 0 +_080A1144: .4byte gUnk_030010A0 +_080A1148: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A115C + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + b _080A11BA +_080A115C: + ldr r0, _080A1178 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 +_080A1162: + ands r0, r1 + cmp r0, #0 + bne _080A11BA + ldr r0, _080A117C @ =gLinkEntity + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] + b _080A11BA + .align 2, 0 +_080A1178: .4byte gUnk_030010A0 +_080A117C: .4byte gLinkEntity +_080A1180: + ldr r4, _080A11A0 @ =gLinkEntity + ldrb r3, [r4, #0x14] + cmp r3, #4 + beq _080A11A8 + ldr r0, _080A11A4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080A11BA + adds r0, r3, #2 + movs r1, #6 + ands r0, r1 + strb r0, [r4, #0x14] + b _080A11BA + .align 2, 0 +_080A11A0: .4byte gLinkEntity +_080A11A4: .4byte gUnk_030010A0 +_080A11A8: + movs r0, #0 + movs r1, #1 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + ldr r0, _080A11BC @ =gUnk_03003F80 + adds r0, #0x8b + strb r1, [r0] + bl sub_0805E564 +_080A11BA: + pop {r4, pc} + .align 2, 0 +_080A11BC: .4byte gUnk_03003F80 + + thumb_func_start sub_080A11C0 +sub_080A11C0: @ 0x080A11C0 + push {lr} + adds r1, r0, #0 + ldr r0, _080A11D8 @ =gLinkEntity + movs r2, #0x36 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _080A11DC + adds r0, r1, #0 + bl sub_08017850 + b _080A11DE + .align 2, 0 +_080A11D8: .4byte gLinkEntity +_080A11DC: + movs r0, #0 +_080A11DE: + pop {pc} + + thumb_func_start sub_080A11E0 +sub_080A11E0: @ 0x080A11E0 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x59 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A1202 + movs r0, #8 + strb r0, [r1] + ldrb r0, [r2, #0x1e] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r2, #0x1e] +_080A1202: + pop {pc} + + thumb_func_start sub_080A1204 +sub_080A1204: @ 0x080A1204 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r5, r0, #0 + cmp r5, #0 + bne _080A1260 + adds r0, #1 + strb r0, [r4, #0xc] + bl sub_080A1514 + lsls r0, r0, #2 + ldr r1, _080A126C @ =gUnk_08124C20 + adds r0, r0, r1 + ldrh r2, [r0] + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r2, r4, #0 + adds r2, #0x68 + strh r1, [r2] + adds r1, r4, #0 + adds r1, #0x6a + strh r5, [r1] + ldrh r1, [r0, #2] + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x6e + movs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x70 + movs r2, #0 + movs r1, #9 +_080A124A: + strb r2, [r0] + adds r0, #1 + subs r1, #1 + cmp r1, #0 + bge _080A124A + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_0806EC20 +_080A1260: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, r5, pc} + .align 2, 0 +_080A126C: .4byte gUnk_08124C20 + + thumb_func_start sub_080A1270 +sub_080A1270: @ 0x080A1270 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov sb, r0 + movs r6, #0 + ldr r0, [r0, #0x64] + str r0, [sp, #4] + mov r4, sb + adds r4, #0x70 + ldr r0, _080A12F8 @ =gRoomControls + movs r2, #0xd8 + lsls r2, r2, #2 + adds r1, r2, #0 + ldrh r3, [r0, #6] + adds r1, r1, r3 + movs r7, #0xd4 + lsls r7, r7, #2 + adds r2, r7, #0 + ldrh r0, [r0, #8] + adds r2, r2, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x10 + asrs r3, r2, #0x10 + movs r0, #9 + mov sl, r0 + movs r1, #1 + rsbs r1, r1, #0 + adds r5, r1, #0 +_080A12B2: + ldr r7, [sp, #4] + ldr r2, [r7] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _080A1300 + ldr r0, [r2, #4] + cmp r0, #0 + beq _080A132C + cmp r2, #0 + beq _080A132C + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r8, r0 + bgt _080A132E + movs r7, #0x32 + ldrsh r0, [r2, r7] + cmp r3, r0 + bgt _080A132E + ldrb r0, [r2, #0xa] + adds r0, #1 + strb r0, [r4] + movs r0, #1 + strb r0, [r2, #0xb] + adds r6, #1 + ldr r1, _080A12FC @ =gUnk_08124EC8 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + str r3, [sp] + bl sub_080A3268 + ldr r3, [sp] + b _080A132E + .align 2, 0 +_080A12F8: .4byte gRoomControls +_080A12FC: .4byte gUnk_08124EC8 +_080A1300: + cmp r0, #0 + ble _080A132E + adds r6, #1 + ldr r0, [r2, #4] + cmp r0, #0 + beq _080A132C + cmp r2, #0 + beq _080A132C + mov r1, r8 + adds r1, #4 + movs r7, #0x2e + ldrsh r0, [r2, r7] + cmp r1, r0 + ble _080A131E + strh r1, [r2, #0x2e] +_080A131E: + adds r1, r3, #4 + movs r7, #0x32 + ldrsh r0, [r2, r7] + cmp r1, r0 + ble _080A132E + strh r1, [r2, #0x32] + b _080A132E +_080A132C: + strb r5, [r4] +_080A132E: + movs r0, #1 + rsbs r0, r0, #0 + add sl, r0 + adds r4, #1 + ldr r1, [sp, #4] + adds r1, #4 + str r1, [sp, #4] + mov r2, sl + cmp r2, #0 + bge _080A12B2 + mov r0, sb + adds r0, #0x6a + strh r6, [r0] + ldr r0, _080A136C @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0xff + strb r1, [r0] + mov r1, sb + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080A1370 + movs r0, #0xe2 + bl sub_080A3268 + bl sub_08050384 + b _080A1376 + .align 2, 0 +_080A136C: .4byte gUnk_03003F80 +_080A1370: + ldr r1, _080A1384 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_080A1376: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1384: .4byte gUnk_02033280 + + thumb_func_start sub_080A1388 +sub_080A1388: @ 0x080A1388 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r5, #0x70 + ldr r4, [r0, #0x64] + movs r6, #9 +_080A1392: + ldr r1, [r4] + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + blt _080A13A6 + cmp r1, #0 + beq _080A13A6 + adds r0, r1, #0 + bl sub_0805E79C +_080A13A6: + subs r6, #1 + adds r5, #1 + adds r4, #4 + cmp r6, #0 + bge _080A1392 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A13B4 +sub_080A13B4: @ 0x080A13B4 + push {r4, lr} + adds r4, r1, #0 + adds r1, r0, #0 + adds r1, #0x6a + adds r0, #0x6c + movs r2, #0 + ldrsh r1, [r1, r2] + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + blt _080A13D8 + ldr r0, _080A13D4 @ =0x0000300C + bl TextboxTryNoOverlap + movs r0, #1 + b _080A13E0 + .align 2, 0 +_080A13D4: .4byte 0x0000300C +_080A13D8: + ldr r0, _080A13E4 @ =0x00003005 + bl TextboxTryNoOverlap + movs r0, #0 +_080A13E0: + str r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_080A13E4: .4byte 0x00003005 + + thumb_func_start sub_080A13E8 +sub_080A13E8: @ 0x080A13E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080A1514 + lsls r0, r0, #2 + ldr r1, _080A1408 @ =gUnk_08124EA0 + adds r4, r0, r1 + movs r6, #0 + ldrb r0, [r4] + cmp r0, #0x5c + beq _080A141C + cmp r0, #0x5c + bgt _080A140C + cmp r0, #0x3f + beq _080A1412 + b _080A1444 + .align 2, 0 +_080A1408: .4byte gUnk_08124EA0 +_080A140C: + cmp r0, #0x63 + beq _080A1430 + b _080A1444 +_080A1412: + ldr r0, _080A1418 @ =gUnk_02002A40 + adds r0, #0xbb + b _080A1424 + .align 2, 0 +_080A1418: .4byte gUnk_02002A40 +_080A141C: + ldr r0, _080A142C @ =gUnk_02002A40 + movs r1, #0x8b + lsls r1, r1, #1 + adds r0, r0, r1 +_080A1424: + ldrb r0, [r0] + cmp r0, #0 + beq _080A1444 + b _080A1454 + .align 2, 0 +_080A142C: .4byte gUnk_02002A40 +_080A1430: + movs r0, #0x4f + bl GetProgressFlag + cmp r0, #0 + bne _080A1442 + movs r0, #0x4f + bl sub_0807CD04 + b _080A1444 +_080A1442: + movs r6, #1 +_080A1444: + cmp r6, #0 + bne _080A1454 + ldrb r0, [r4] + ldrb r1, [r4, #1] + movs r2, #0 + bl sub_080A7C18 + b _080A145C +_080A1454: + adds r1, r5, #0 + adds r1, #0x6e + movs r0, #2 + strh r0, [r1] +_080A145C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A1460 +sub_080A1460: @ 0x080A1460 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080A1514 + adds r1, r5, #0 + adds r1, #0x70 + movs r4, #0 + ldr r3, _080A149C @ =gUnk_08124ECC + movs r2, #9 +_080A1472: + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, r0, r3 + ldrb r0, [r0] + adds r4, r4, r0 + adds r1, #1 + subs r2, #1 + cmp r2, #0 + bge _080A1472 + adds r0, r4, #0 + bl sub_080526CC + ldr r0, _080A14A0 @ =0x00003007 + adds r1, r5, #0 + bl TextboxNoOverlap + ldr r1, _080A14A4 @ =gTextBox + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] + pop {r4, r5, pc} + .align 2, 0 +_080A149C: .4byte gUnk_08124ECC +_080A14A0: .4byte 0x00003007 +_080A14A4: .4byte gTextBox + + thumb_func_start sub_080A14A8 +sub_080A14A8: @ 0x080A14A8 + push {r4, lr} + bl sub_080A1514 + adds r4, r0, #0 + adds r4, #1 + cmp r4, #9 + ble _080A14B8 + movs r4, #9 +_080A14B8: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _080A14C8 + movs r0, #0x4b + bl sub_0807CD04 + b _080A14CE +_080A14C8: + movs r0, #0x4b + bl sub_0807CD80 +_080A14CE: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _080A14DE + movs r0, #0x4c + bl sub_0807CD04 + b _080A14E4 +_080A14DE: + movs r0, #0x4c + bl sub_0807CD80 +_080A14E4: + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _080A14F4 + movs r0, #0x4d + bl sub_0807CD04 + b _080A14FA +_080A14F4: + movs r0, #0x4d + bl sub_0807CD80 +_080A14FA: + movs r0, #8 + ands r0, r4 + cmp r0, #0 + beq _080A150A + movs r0, #0x4e + bl sub_0807CD04 + b _080A1510 +_080A150A: + movs r0, #0x4e + bl sub_0807CD80 +_080A1510: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A1514 +sub_080A1514: @ 0x080A1514 + push {r4, lr} + movs r0, #0x4b + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x4c + bl GetProgressFlag + cmp r0, #0 + beq _080A1530 + movs r0, #2 + orrs r4, r0 +_080A1530: + movs r0, #0x4d + bl GetProgressFlag + cmp r0, #0 + beq _080A153E + movs r0, #4 + orrs r4, r0 +_080A153E: + movs r0, #0x4e + bl GetProgressFlag + cmp r0, #0 + beq _080A154C + movs r0, #8 + orrs r4, r0 +_080A154C: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_080A1550 +sub_080A1550: @ 0x080A1550 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r1 + movs r0, #0 + str r0, [r1, #0x14] + movs r0, #0xb9 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _080A15FE + movs r0, #0x28 + bl sub_0801D8E0 + str r0, [r4, #0x64] + cmp r0, #0 + bne _080A1582 + adds r0, r4, #0 + bl sub_0805E79C + b _080A15FE +_080A1582: + mov r0, r8 + ldr r1, [r0, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + bl sub_080A1514 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080A15B4 @ =gUnk_08124C48 + adds r5, r1, r0 + ldr r4, [r4, #0x64] + mov sb, r4 + ldr r7, _080A15B8 @ =gRoomControls + movs r6, #9 +_080A15A8: + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bgt _080A15BC + movs r4, #0 + b _080A15E6 + .align 2, 0 +_080A15B4: .4byte gUnk_08124C48 +_080A15B8: .4byte gRoomControls +_080A15BC: + movs r0, #0 + ldrsh r1, [r5, r0] + subs r1, #1 + movs r0, #0x41 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _080A15E6 + ldrh r0, [r5, #2] + ldrh r1, [r7, #6] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #4] + ldrh r1, [r7, #8] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] +_080A15E6: + mov r0, sb + adds r0, #4 + mov sb, r0 + subs r0, #4 + stm r0!, {r4} + subs r6, #1 + adds r5, #6 + cmp r6, #0 + bge _080A15A8 + movs r0, #1 + mov r1, r8 + str r0, [r1, #0x14] +_080A15FE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080A1608 +sub_080A1608: @ 0x080A1608 + push {r4, lr} + ldr r4, _080A163C @ =0x00003002 + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _080A1618 + adds r4, #4 +_080A1618: + adds r0, r4, #0 + bl TextboxTryNoOverlap + ldr r4, _080A1640 @ =gTextBox + movs r1, #0 + movs r0, #1 + strb r0, [r4, #6] + strb r1, [r4, #7] + bl sub_080A1514 + lsls r0, r0, #2 + ldr r1, _080A1644 @ =gUnk_08124C20 + adds r0, r0, r1 + ldrh r1, [r0] + str r1, [r4, #0x10] + ldrh r0, [r0, #2] + str r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_080A163C: .4byte 0x00003002 +_080A1640: .4byte gTextBox +_080A1644: .4byte gUnk_08124C20 + + thumb_func_start sub_080A1648 +sub_080A1648: @ 0x080A1648 + push {r4, lr} + ldr r4, _080A1684 @ =0x0000407F + ldr r1, _080A1688 @ =0x00000D36 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _080A168C @ =0x00000D37 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _080A1690 @ =0x00000D38 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + subs r4, #1 + ldr r1, _080A1694 @ =0x00000D75 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _080A1698 @ =0x00000E75 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 +_080A1684: .4byte 0x0000407F +_080A1688: .4byte 0x00000D36 +_080A168C: .4byte 0x00000D37 +_080A1690: .4byte 0x00000D38 +_080A1694: .4byte 0x00000D75 +_080A1698: .4byte 0x00000E75 + + thumb_func_start sub_080A169C +sub_080A169C: @ 0x080A169C + push {lr} + ldr r0, _080A16C8 @ =0x00000D36 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16CC @ =0x00000D37 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16D0 @ =0x00000D38 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16D4 @ =0x00000D75 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16D8 @ =0x00000E75 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_080A16C8: .4byte 0x00000D36 +_080A16CC: .4byte 0x00000D37 +_080A16D0: .4byte 0x00000D38 +_080A16D4: .4byte 0x00000D75 +_080A16D8: .4byte 0x00000E75 + + thumb_func_start sub_080A16DC +sub_080A16DC: @ 0x080A16DC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A1700 @ =gUnk_08124ED0 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080A1DCC + adds r0, r4, #0 + bl sub_080A1C9C + pop {r4, pc} + .align 2, 0 +_080A1700: .4byte gUnk_08124ED0 + + thumb_func_start sub_080A1704 +sub_080A1704: @ 0x080A1704 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + movs r0, #0x7b + bl sub_0807CBE4 + cmp r0, #0 + beq _080A171E + bl sub_0805E780 +_080A171E: + ldr r0, _080A1828 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _080A181C + movs r0, #0x40 + bl sub_0801D8E0 + adds r7, r0, #0 + cmp r7, #0 + beq _080A181C + movs r6, #0 + movs r0, #1 + mov sb, r0 + mov r2, sb + mov r1, sl + strb r2, [r1, #0xc] + str r7, [r1, #0x64] + adds r1, #0x6e + movs r3, #0 + mov r8, r3 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] + mov r0, sl + adds r0, #0x6c + strh r6, [r0] + mov r0, sl + str r0, [r7] + movs r0, #0x5c + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + str r7, [r1, #0x64] + str r1, [r7, #4] + movs r0, #0x5d + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + ldr r4, _080A182C @ =gRoomControls + movs r2, #0x80 + lsls r2, r2, #2 + adds r5, r2, #0 + ldrh r3, [r4, #6] + adds r0, r5, r3 + strh r0, [r1, #0x2e] + movs r2, #0xcc + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r4, #8] + adds r0, r0, r3 + strh r0, [r1, #0x32] + str r7, [r1, #0x64] + str r1, [r7, #8] + movs r0, #0x5d + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + movs r2, #0x98 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r4, #6] + adds r0, r0, r3 + strh r0, [r1, #0x2e] + adds r2, #0xb0 + adds r0, r2, #0 + ldrh r3, [r4, #8] + adds r0, r0, r3 + strh r0, [r1, #0x32] + str r7, [r1, #0x64] + str r1, [r7, #0xc] + ldr r2, _080A1830 @ =gLCDControls + ldr r0, _080A1834 @ =0x00001E07 + strh r0, [r2, #0x2c] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + mov r0, sl + adds r0, #0x70 + strh r6, [r0] + adds r0, #2 + strh r6, [r0] + adds r0, #2 + mov r1, r8 + strb r1, [r0] + adds r0, #6 + strb r1, [r0] + subs r0, #4 + movs r1, #0xc0 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + ldr r0, _080A1838 @ =gUnk_030010A0 + adds r0, #0x39 + mov r2, sb + strb r2, [r0] + ldr r2, _080A183C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xa + orrs r0, r1 + str r0, [r2, #0x30] + ldrh r3, [r4, #6] + adds r5, r5, r3 + strh r5, [r2, #0x16] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r4, [r4, #8] + adds r0, r0, r4 + strh r0, [r2, #0x18] + ldr r0, _080A1840 @ =0x80100000 + bl sub_080A3268 + ldr r0, _080A1844 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + ldr r3, _080A1848 @ =0x00000864 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [r1] +_080A181C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1828: .4byte gUnk_03003DBC +_080A182C: .4byte gRoomControls +_080A1830: .4byte gLCDControls +_080A1834: .4byte 0x00001E07 +_080A1838: .4byte gUnk_030010A0 +_080A183C: .4byte gUnk_03003F80 +_080A1840: .4byte 0x80100000 +_080A1844: .4byte gUnk_02033A90 +_080A1848: .4byte 0x00000864 + + thumb_func_start sub_080A184C +sub_080A184C: @ 0x080A184C + push {lr} + adds r3, r0, #0 + adds r1, r3, #0 + adds r1, #0x6e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A1874 + movs r0, #2 + strb r0, [r3, #0xc] + subs r1, #2 + movs r2, #8 + movs r0, #8 + strh r0, [r1] + ldr r0, [r3, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + strb r2, [r0] +_080A1874: + ldr r2, _080A1894 @ =gUnk_03003F80 + ldr r1, _080A1898 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A1894: .4byte gUnk_03003F80 +_080A1898: .4byte gRoomControls + + thumb_func_start sub_080A189C +sub_080A189C: @ 0x080A189C + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A18E6 + movs r0, #3 + strb r0, [r3, #0xc] + movs r0, #0x23 + strb r0, [r3, #0xe] + adds r1, r3, #0 + adds r1, #0x6c + movs r2, #1 + movs r0, #1 + strh r0, [r1] + adds r1, #0xc + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0x7b + strb r2, [r0] + ldr r0, [r3, #0x64] + ldr r0, [r0, #8] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x96 + movs r1, #1 + bl sub_08080964 +_080A18E6: + ldr r2, _080A1904 @ =gUnk_03003F80 + ldr r1, _080A1908 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A1904: .4byte gUnk_03003F80 +_080A1908: .4byte gRoomControls + + thumb_func_start sub_080A190C +sub_080A190C: @ 0x080A190C + push {r4, lr} + adds r4, r0, #0 + bl sub_080A1FF0 + ldr r3, [r4, #0x64] + ldr r2, [r3, #8] + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A197C + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080A20B8 + cmp r0, #0 + beq _080A1956 + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0x10 + strh r0, [r1] + adds r1, #0xc + movs r0, #0xc0 + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + adds r0, r4, #0 + bl sub_080A1D70 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + movs r1, #0x18 + strb r1, [r0] +_080A1956: + ldr r2, _080A1974 @ =gUnk_03003F80 + ldr r1, _080A1978 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + b _080A1988 + .align 2, 0 +_080A1974: .4byte gUnk_03003F80 +_080A1978: .4byte gRoomControls +_080A197C: + ldr r1, _080A198C @ =gUnk_03003F80 + ldrh r0, [r2, #0x2e] + strh r0, [r1, #0x16] + ldr r0, [r3, #8] + ldrh r0, [r0, #0x32] + strh r0, [r1, #0x18] +_080A1988: + pop {r4, pc} + .align 2, 0 +_080A198C: .4byte gUnk_03003F80 + + thumb_func_start sub_080A1990 +sub_080A1990: @ 0x080A1990 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x64] + ldr r0, [r1, #4] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A19D6 + ldr r0, [r1, #8] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] + movs r0, #5 + strb r0, [r2, #0xc] + movs r0, #0x23 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x6c + movs r0, #2 + strh r0, [r1] + adds r1, #0xc + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x96 + movs r1, #1 + bl sub_08080964 +_080A19D6: + ldr r2, _080A19F4 @ =gUnk_03003F80 + ldr r1, _080A19F8 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A19F4: .4byte gUnk_03003F80 +_080A19F8: .4byte gRoomControls + + thumb_func_start sub_080A19FC +sub_080A19FC: @ 0x080A19FC + push {r4, lr} + adds r4, r0, #0 + bl sub_080A1FF0 + ldr r3, [r4, #0x64] + ldr r2, [r3, #0xc] + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A1A6C + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080A20B8 + cmp r0, #0 + beq _080A1A46 + movs r0, #6 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0x20 + strh r0, [r1] + adds r1, #0xc + movs r0, #0xc0 + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + adds r0, r4, #0 + bl sub_080A1D70 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + movs r1, #0x18 + strb r1, [r0] +_080A1A46: + ldr r2, _080A1A64 @ =gUnk_03003F80 + ldr r1, _080A1A68 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + b _080A1A78 + .align 2, 0 +_080A1A64: .4byte gUnk_03003F80 +_080A1A68: .4byte gRoomControls +_080A1A6C: + ldr r1, _080A1A7C @ =gUnk_03003F80 + ldrh r0, [r2, #0x2e] + strh r0, [r1, #0x16] + ldr r0, [r3, #0xc] + ldrh r0, [r0, #0x32] + strh r0, [r1, #0x18] +_080A1A78: + pop {r4, pc} + .align 2, 0 +_080A1A7C: .4byte gUnk_03003F80 + + thumb_func_start sub_080A1A80 +sub_080A1A80: @ 0x080A1A80 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x64] + ldr r0, [r1, #4] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A1AC0 + ldr r0, [r1, #0xc] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #0x23 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x6c + adds r0, #0xe1 + strh r0, [r1] + adds r1, #0xc + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x96 + movs r1, #1 + bl sub_08080964 +_080A1AC0: + ldr r2, _080A1AE0 @ =gUnk_03003F80 + ldr r1, _080A1AE4 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A1AE0: .4byte gUnk_03003F80 +_080A1AE4: .4byte gRoomControls + + thumb_func_start sub_080A1AE8 +sub_080A1AE8: @ 0x080A1AE8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080A1FF0 + ldr r0, [r4, #0x64] + ldr r1, [r0, #0xc] + adds r0, r1, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A1B24 + adds r0, r4, #0 + bl sub_080A20B8 + cmp r0, #0 + beq _080A1B24 + movs r0, #8 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0x40 + strh r0, [r1] + adds r1, #0xc + movs r0, #0xc0 + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] +_080A1B24: + ldr r2, _080A1B44 @ =gUnk_03003F80 + ldr r1, _080A1B48 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {r4, pc} + .align 2, 0 +_080A1B44: .4byte gUnk_03003F80 +_080A1B48: .4byte gRoomControls + + thumb_func_start sub_080A1B4C +sub_080A1B4C: @ 0x080A1B4C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + ldrb r7, [r0] + cmp r7, #0 + bne _080A1BD0 + adds r5, r4, #0 + adds r5, #0x6c + ldrh r0, [r5] + cmp r0, #0 + beq _080A1B80 + movs r0, #0x2d + movs r1, #1 + bl sub_08080964 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0xc0 + lsls r0, r0, #3 + strh r0, [r1] +_080A1B80: + movs r6, #0 + strh r7, [r5] + ldr r0, _080A1BF0 @ =gUnk_030010A0 + adds r0, #0x39 + strb r6, [r0] + bl sub_08079F8C + cmp r0, #0 + beq _080A1BD0 + ldr r3, _080A1BF4 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _080A1BD0 + movs r0, #9 + strb r0, [r4, #0xc] + strb r6, [r4, #0xe] + movs r0, #0xf0 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x6e + adds r0, #0xb4 + strh r0, [r1] + strb r6, [r4, #0x15] + movs r0, #0x60 + strh r0, [r4, #0x24] + ldr r2, _080A1BF8 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _080A1BFC @ =0xFFFDFFFF + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _080A1C00 @ =gRoomControls + str r4, [r0, #0x30] + movs r0, #2 + bl sub_08078A90 +_080A1BD0: + ldr r2, _080A1BF8 @ =gUnk_03003F80 + ldr r1, _080A1C00 @ =gRoomControls + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1BF0: .4byte gUnk_030010A0 +_080A1BF4: .4byte gLinkEntity +_080A1BF8: .4byte gUnk_03003F80 +_080A1BFC: .4byte 0xFFFDFFFF +_080A1C00: .4byte gRoomControls + + thumb_func_start sub_080A1C04 +sub_080A1C04: @ 0x080A1C04 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x6e + ldrh r0, [r1] + cmp r0, #0 + bne _080A1C52 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080A1E54 + ldrb r0, [r4, #0xf] + subs r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080A1C40 + movs r0, #0x7b + bl sub_0807CCC8 + ldr r0, _080A1C3C @ =gUnk_0813ABD0 + movs r1, #8 + bl sub_0808091C + b _080A1C9A + .align 2, 0 +_080A1C3C: .4byte gUnk_0813ABD0 +_080A1C40: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bne _080A1C9A + movs r0, #7 + movs r1, #4 + bl sub_08050054 + b _080A1C9A +_080A1C52: + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb3 + bhi _080A1C66 + adds r0, r4, #0 + bl sub_080A1E54 + b _080A1C9A +_080A1C66: + ldrh r1, [r1] + cmp r1, #0xb4 + beq _080A1C76 + movs r0, #0x96 + lsls r0, r0, #1 + cmp r1, r0 + beq _080A1C8A + b _080A1C9A +_080A1C76: + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0xb4 + lsls r0, r0, #2 + movs r1, #2 + bl sub_08080964 + b _080A1C9A +_080A1C8A: + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x4b + movs r1, #1 + bl sub_08080964 +_080A1C9A: + pop {r4, pc} + + thumb_func_start sub_080A1C9C +sub_080A1C9C: @ 0x080A1C9C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + beq _080A1D04 + adds r0, r4, #0 + adds r0, #0x74 + adds r7, r4, #0 + adds r7, #0x75 + ldrb r1, [r0] + adds r6, r0, #0 + ldrb r0, [r7] + cmp r1, r0 + beq _080A1CE4 + subs r5, #2 + movs r0, #0 + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0xc + bl sub_080A1D8C + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _080A1D14 + ldrb r0, [r7] + strb r0, [r6] + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + strh r0, [r5] + b _080A1D14 +_080A1CE4: + adds r0, r4, #0 + movs r1, #0xc + bl sub_080A1D8C + adds r0, r4, #0 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r0] + adds r2, r1, #0 + ldrh r1, [r2] + cmp r0, r1 + bne _080A1D14 + movs r0, #0 + strb r0, [r5] + b _080A1D14 +_080A1D04: + adds r0, r4, #0 + movs r1, #8 + bl sub_080A1D8C + adds r6, r4, #0 + adds r6, #0x74 + adds r2, r4, #0 + adds r2, #0x76 +_080A1D14: + adds r3, r4, #0 + adds r3, #0x70 + ldr r5, _080A1D68 @ =gUnk_080C9160 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + movs r7, #0 + ldrsh r1, [r0, r7] + ldrh r0, [r2] + muls r0, r1, r0 + cmp r0, #0 + bge _080A1D2E + adds r0, #0xff +_080A1D2E: + asrs r0, r0, #8 + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + adds r4, #0x72 + ldrb r0, [r6] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r5, #0 + ldrsh r1, [r0, r5] + ldrh r0, [r2] + muls r0, r1, r0 + cmp r0, #0 + bge _080A1D4E + adds r0, #0xff +_080A1D4E: + asrs r0, r0, #8 + ldrh r1, [r4] + subs r1, r1, r0 + strh r1, [r4] + ldr r2, _080A1D6C @ =gLCDControls + ldrh r0, [r3] + lsrs r0, r0, #8 + strh r0, [r2, #0x2e] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x18 + strh r1, [r2, #0x30] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1D68: .4byte gUnk_080C9160 +_080A1D6C: .4byte gLCDControls + + thumb_func_start sub_080A1D70 +sub_080A1D70: @ 0x080A1D70 + adds r2, r0, #0 + adds r0, #0x75 + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r1, [r0] + adds r0, #4 + strh r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_080A1D8C +sub_080A1D8C: @ 0x080A1D8C + push {r4, lr} + adds r4, r1, #0 + adds r3, r0, #0 + adds r3, #0x78 + adds r2, r0, #0 + adds r2, #0x76 + ldrh r1, [r3] + ldrh r0, [r2] + cmp r1, r0 + beq _080A1DC8 + cmp r1, r0 + bls _080A1DB6 + adds r3, r0, #0 + subs r0, r1, r3 + cmp r4, r0 + bge _080A1DB2 + adds r0, r3, r4 + strh r0, [r2] + b _080A1DC8 +_080A1DB2: + strh r1, [r2] + b _080A1DC8 +_080A1DB6: + ldrh r1, [r2] + ldrh r3, [r3] + subs r0, r1, r3 + cmp r4, r0 + bge _080A1DC6 + subs r0, r1, r4 + strh r0, [r2] + b _080A1DC8 +_080A1DC6: + strh r3, [r2] +_080A1DC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A1DCC +sub_080A1DCC: @ 0x080A1DCC + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x64] + ldr r3, [r1, #8] + cmp r3, #0 + bne _080A1DDE + ldr r3, [r1, #0xc] + cmp r3, #0 + beq _080A1E24 +_080A1DDE: + adds r0, r3, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _080A1E24 + ldrb r0, [r3, #0x19] + lsrs r0, r0, #6 + cmp r0, #2 + bne _080A1E24 + ldr r3, [r1, #0x10] + ldrb r2, [r3, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r0, [r4, #0x64] + ldr r3, [r0, #0x14] + ldrb r2, [r3, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r2, [r3, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r2, [r3, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + ands r1, r0 + b _080A1E50 +_080A1E24: + ldr r0, [r4, #0x64] + ldr r2, [r0, #0x10] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldr r0, [r4, #0x64] + ldr r3, [r0, #0x14] + ldrb r0, [r3, #0x10] + orrs r0, r1 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + orrs r0, r1 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + orrs r0, r1 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + orrs r1, r0 +_080A1E50: + strb r1, [r3, #0x10] + pop {r4, pc} + + thumb_func_start sub_080A1E54 +sub_080A1E54: @ 0x080A1E54 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + adds r0, #1 + strb r0, [r2, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _080A1ECA + adds r0, r2, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _080A1ECA + bl sub_08000E50 + ldr r3, _080A1ECC @ =gRoomControls + movs r1, #0xf0 + adds r2, r0, #0 + ands r2, r1 + movs r5, #0x80 + lsls r5, r5, #2 + adds r1, r5, #0 + adds r2, r2, r1 + ldrh r1, [r3, #6] + adds r1, r1, r2 + subs r1, #0x78 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + movs r1, #0x70 + ands r0, r1 + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrh r3, [r3, #8] + adds r0, r0, r3 + subs r0, #0x38 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_080A1ECA: + pop {r4, r5, pc} + .align 2, 0 +_080A1ECC: .4byte gRoomControls + + thumb_func_start sub_080A1ED0 +sub_080A1ED0: @ 0x080A1ED0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sb, r1 + adds r5, r2, #0 + movs r1, #0 + str r1, [sp] + ldr r4, _080A1F60 @ =gUnk_08124EF8 + lsls r1, r5, #2 + adds r1, r1, r4 + ldrh r2, [r1] + ldr r3, _080A1F64 @ =gRoomControls + ldrh r1, [r3, #6] + adds r2, r2, r1 + mov sl, r2 + lsls r1, r5, #1 + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r2, [r1] + ldrh r1, [r3, #8] + adds r2, r2, r1 + mov r8, r2 + ldr r1, _080A1F68 @ =gUnk_08124FF0 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080A1FB0 + lsls r7, r5, #3 + movs r0, #0x10 + adds r6, r7, #0 + eors r6, r0 +_080A1F1C: + movs r0, #0x60 + mov r1, sb + bl CreateEnemy + adds r2, r0, #0 + cmp r2, #0 + beq _080A1FA6 + mov r0, sp + ldrb r0, [r0] + strb r0, [r2, #0xb] + ldr r1, [sp] + adds r1, #1 + str r1, [sp] + mov r0, sl + strh r0, [r2, #0x2e] + mov r1, r8 + strh r1, [r2, #0x32] + strb r7, [r2, #0x15] + adds r0, r2, #0 + adds r0, #0x7a + strb r6, [r0] + ldrh r1, [r4, #4] + subs r0, #2 + strh r1, [r0] + cmp r5, #1 + beq _080A1F7A + cmp r5, #1 + blo _080A1F6C + cmp r5, #2 + beq _080A1F80 + cmp r5, #3 + beq _080A1F94 + b _080A1FA6 + .align 2, 0 +_080A1F60: .4byte gUnk_08124EF8 +_080A1F64: .4byte gRoomControls +_080A1F68: .4byte gUnk_08124FF0 +_080A1F6C: + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #2] + rsbs r0, r0, #0 + b _080A1F8C +_080A1F7A: + ldrh r0, [r4, #2] + adds r0, #0xf0 + b _080A1F98 +_080A1F80: + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #2] + adds r0, #0xa0 +_080A1F8C: + adds r1, r2, #0 + adds r1, #0x76 + strh r0, [r1] + b _080A1FA6 +_080A1F94: + ldrh r0, [r4, #2] + rsbs r0, r0, #0 +_080A1F98: + adds r1, r2, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x76 + strh r1, [r0] +_080A1FA6: + adds r4, #6 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _080A1F1C +_080A1FB0: + mov r0, sb + cmp r0, #0 + bne _080A1FE4 + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _080A1FE4 + mov r1, sl + strh r1, [r2, #0x2e] + mov r0, r8 + strh r0, [r2, #0x32] + ldrb r0, [r2, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r2, #0x1b] + ldrb r0, [r2, #0x19] + orrs r0, r1 + strb r0, [r2, #0x19] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] +_080A1FE4: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080A1FF0 +sub_080A1FF0: @ 0x080A1FF0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _080A2066 + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x20 + bhi _080A2066 + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _080A2066 + adds r0, r5, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _080A2066 + bl sub_08000E50 + ldr r3, _080A209C @ =gRoomControls + movs r1, #0x78 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #2 + adds r2, r1, #0 + adds r2, r0, r2 + ldrh r1, [r3, #6] + adds r1, r1, r2 + subs r1, #0x3c + strh r1, [r4, #0x2e] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrh r3, [r3, #8] + adds r0, r0, r3 + subs r0, #0x3c + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_080A2066: + adds r4, r5, #0 + adds r4, #0x7b + ldrb r0, [r4] + cmp r0, #0 + beq _080A20B4 + ldr r0, _080A20A0 @ =gLinkEntity + ldr r2, _080A209C @ =gRoomControls + ldrh r1, [r2, #6] + movs r3, #0x80 + lsls r3, r3, #2 + adds r1, r1, r3 + ldrh r2, [r2, #8] + adds r3, #0x10 + adds r2, r2, r3 + movs r3, #0x80 + lsls r3, r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + beq _080A20B2 + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _080A20A4 + movs r0, #0x78 + strb r0, [r5, #0xe] + b _080A20B4 + .align 2, 0 +_080A209C: .4byte gRoomControls +_080A20A0: .4byte gLinkEntity +_080A20A4: + cmp r0, #0x23 + bne _080A20B4 + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + b _080A20B4 +_080A20B2: + strb r0, [r4] +_080A20B4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A20B8 +sub_080A20B8: @ 0x080A20B8 + push {r4, lr} + adds r4, r1, #0 + cmp r4, #0 + bne _080A20C4 + movs r0, #1 + b _080A20FA +_080A20C4: + bl sub_08079F8C + cmp r0, #0 + beq _080A20F8 + ldr r0, _080A20F0 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080A20F8 + movs r1, #0 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _080A20EC + ldr r0, _080A20F4 @ =gUnk_03003F80 + ldrb r1, [r0, #0x14] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r1, r0, #0x1f +_080A20EC: + adds r0, r1, #0 + b _080A20FA + .align 2, 0 +_080A20F0: .4byte gLinkEntity +_080A20F4: .4byte gUnk_03003F80 +_080A20F8: + movs r0, #0 +_080A20FA: + pop {r4, pc} + + thumb_func_start sub_080A20FC +sub_080A20FC: @ 0x080A20FC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _080A2114 + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + bl sub_0807DD64 +_080A2114: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + pop {r4, pc} + + thumb_func_start sub_080A2124 +sub_080A2124: @ 0x080A2124 + push {lr} + ldr r3, _080A2134 @ =gUnk_08125010 + movs r1, #1 + movs r2, #0xe + bl sub_08078850 + pop {pc} + .align 2, 0 +_080A2134: .4byte gUnk_08125010 + + thumb_func_start sub_080A2138 +sub_080A2138: @ 0x080A2138 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x72 + bl sub_080A3268 + ldr r2, _080A2160 @ =gUnk_02002A40 + ldrb r0, [r4, #0xb] + adds r0, #0x18 + movs r1, #1 + lsls r1, r0 + ldr r0, [r2, #0x40] + orrs r0, r1 + str r0, [r2, #0x40] + adds r0, r4, #0 + movs r1, #0x46 + movs r2, #0 + bl CreateFX + pop {r4, pc} + .align 2, 0 +_080A2160: .4byte gUnk_02002A40 + + thumb_func_start sub_080A2164 +sub_080A2164: @ 0x080A2164 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A21DC + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _080A2180 + bl sub_0807CBE4 + cmp r0, #0 + beq _080A224E +_080A2180: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + subs r0, #0xe + ands r0, r1 + movs r1, #8 + orrs r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #3 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r0, _080A21D4 @ =gRoomControls + ldrb r0, [r0, #5] + strb r0, [r4, #0xf] + movs r0, #2 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x68 + ldr r0, _080A21D8 @ =0x0000FFFE + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0 + bl sub_0805EC9C + b _080A221E + .align 2, 0 +_080A21D4: .4byte gRoomControls +_080A21D8: .4byte 0x0000FFFE +_080A21DC: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A221E + movs r0, #2 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x6a + adds r2, r4, #0 + adds r2, #0x68 + ldrh r0, [r2] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x77 + bhi _080A2208 + movs r0, #1 + strh r0, [r2] +_080A2208: + ldrh r0, [r1] + cmp r0, #0x88 + bls _080A2212 + ldr r0, _080A2250 @ =0x0000FFFF + strh r0, [r2] +_080A2212: + ldrh r2, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_080A221E: + ldr r2, _080A2254 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #8 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r2, #0x62 + ldrb r0, [r2] + movs r3, #0xdc + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080A2258 @ =gRoomControls + ldrb r0, [r1, #5] + ldrb r4, [r4, #0xf] + cmp r0, r4 + beq _080A224E + ldrh r0, [r1] + cmp r0, #0 + bne _080A224E + bl sub_0805E780 +_080A224E: + pop {r4, pc} + .align 2, 0 +_080A2250: .4byte 0x0000FFFF +_080A2254: .4byte gLCDControls +_080A2258: .4byte gRoomControls + + thumb_func_start sub_080A225C +sub_080A225C: @ 0x080A225C + push {lr} + ldr r2, _080A2270 @ =gUnk_0812503C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A2270: .4byte gUnk_0812503C + + thumb_func_start sub_080A2274 +sub_080A2274: @ 0x080A2274 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080A22AE + adds r0, r1, #0 + bl sub_080A2340 + movs r0, #0xbd + movs r1, #1 + movs r2, #0 + bl CreateObject + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #3 + cmp r0, #1 + bne _080A229C + movs r1, #2 +_080A229C: + movs r0, #0xbd + movs r2, #0 + bl CreateObject + movs r0, #0xbd + movs r1, #4 + movs r2, #0 + bl CreateObject +_080A22AE: + pop {pc} + + thumb_func_start sub_080A22B0 +sub_080A22B0: @ 0x080A22B0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080A22C0 + adds r0, r1, #0 + bl sub_080A2340 +_080A22C0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A22C4 +sub_080A22C4: @ 0x080A22C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + beq _080A22FC + cmp r5, #1 + beq _080A231C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A233E + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0xd] + adds r0, r1, r0 + strb r0, [r4, #0x1e] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmp r1, r0 + bne _080A233E + b _080A233A +_080A22FC: + adds r0, r4, #0 + bl sub_080A2340 + movs r0, #8 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + ldrb r0, [r4, #0x1e] + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #0x1e + strh r0, [r4, #0x24] + b _080A233E +_080A231C: + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A233E + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #0x1e + strh r0, [r4, #0x24] + movs r0, #2 + b _080A233C +_080A233A: + movs r0, #1 +_080A233C: + strb r0, [r4, #0xc] +_080A233E: + pop {r4, r5, pc} + + thumb_func_start sub_080A2340 +sub_080A2340: @ 0x080A2340 + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _080A239C @ =gUnk_08125014 + adds r1, r1, r2 + ldrh r2, [r1] + strh r2, [r0, #0x2e] + ldrh r2, [r1, #2] + strh r2, [r0, #0x32] + ldrh r2, [r1, #4] + strb r2, [r0, #0x1e] + ldrb r1, [r1, #6] + movs r2, #0x29 + adds r2, r2, r0 + mov ip, r2 + movs r2, #7 + ands r2, r1 + mov r1, ip + ldrb r3, [r1] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + ldrb r3, [r0, #0x19] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r3, #0x40 + orrs r1, r3 + strb r1, [r0, #0x19] + ldrb r1, [r0, #0x1b] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, #0x1b] + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #2 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 +_080A239C: .4byte gUnk_08125014 + + thumb_func_start sub_080A23A0 +sub_080A23A0: @ 0x080A23A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080A23C0 + ldr r0, _080A23D4 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _080A23C0 + bl sub_0805E780 +_080A23C0: + ldr r0, _080A23D8 @ =gUnk_0812505C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A23D4: .4byte gUnk_020342F8 +_080A23D8: .4byte gUnk_0812505C + + thumb_func_start sub_080A23DC +sub_080A23DC: @ 0x080A23DC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A240C @ =gUnk_08125050 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r2, r4, #0 + adds r2, #0x68 + strh r0, [r2] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2] + bl sub_0807CBD0 + cmp r0, #0 + beq _080A2410 + movs r0, #2 + b _080A2412 + .align 2, 0 +_080A240C: .4byte gUnk_08125050 +_080A2410: + movs r0, #1 +_080A2412: + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A2420 +sub_080A2420: @ 0x080A2420 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x68 + ldrh r0, [r0] + bl sub_0807CBD0 + cmp r0, #0 + beq _080A243A + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A29BC +_080A243A: + pop {r4, pc} + + thumb_func_start sub_080A243C +sub_080A243C: @ 0x080A243C + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start nullsub_538 +nullsub_538: @ 0x080A2444 + bx lr + .align 2, 0 + + thumb_func_start sub_080A2448 +sub_080A2448: @ 0x080A2448 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080A245E + adds r0, r5, #0 + bl sub_080A2500 +_080A245E: + ldrb r0, [r5, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _080A24CE + adds r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xe] + strb r0, [r5, #0xa] + str r1, [r5, #0x54] + ldr r2, _080A24B4 @ =gUnk_03003D90 + ldr r4, [r2, #4] + cmp r4, r2 + beq _080A24BE +_080A2478: + ldrb r0, [r4, #8] + cmp r0, #3 + bne _080A24B8 + ldrb r0, [r5, #0xb] + ldrb r1, [r4, #9] + cmp r0, r1 + bne _080A24B8 + movs r3, #0x2e + ldrsh r0, [r4, r3] + movs r3, #0x2e + ldrsh r1, [r5, r3] + subs r0, r0, r1 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1f + bhi _080A24B8 + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r5, r3] + subs r0, r0, r1 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1f + bhi _080A24B8 + str r4, [r5, #0x54] + b _080A24BE + .align 2, 0 +_080A24B4: .4byte gUnk_03003D90 +_080A24B8: + ldr r4, [r4, #4] + cmp r4, r2 + bne _080A2478 +_080A24BE: + ldr r0, [r5, #0x54] + cmp r0, #0 + bne _080A24CA + adds r0, r5, #0 + bl sub_080A2534 +_080A24CA: + bl sub_08054564 +_080A24CE: + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _080A24F6 + movs r2, #0x80 + lsls r2, r2, #0xb + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative + ldrh r0, [r5, #0x36] + subs r0, #4 + strh r0, [r5, #0x36] + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A24F6 + adds r0, r5, #0 + bl sub_080A2508 +_080A24F6: + adds r0, r5, #0 + bl sub_08080CB4 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A2500 +sub_080A2500: @ 0x080A2500 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080A2508 +sub_080A2508: @ 0x080A2508 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + movs r1, #0 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _080A252C + movs r0, #5 + strb r0, [r2, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x86 + strh r1, [r0] +_080A252C: + adds r0, r4, #0 + bl sub_080A2500 + pop {r4, pc} + + thumb_func_start sub_080A2534 +sub_080A2534: @ 0x080A2534 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + movs r1, #0 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _080A2558 + movs r0, #4 + strb r0, [r2, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x86 + strh r1, [r0] +_080A2558: + adds r0, r4, #0 + bl sub_080A2500 + pop {r4, pc} + + thumb_func_start sub_080A2560 +sub_080A2560: @ 0x080A2560 + push {lr} + ldr r2, _080A2574 @ =gUnk_08125084 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A2574: .4byte gUnk_08125084 + + thumb_func_start sub_080A2578 +sub_080A2578: @ 0x080A2578 + push {lr} + movs r1, #8 + strb r1, [r0, #0xc] + bl sub_080A259C + pop {pc} + + thumb_func_start sub_080A2584 +sub_080A2584: @ 0x080A2584 + push {lr} + bl sub_0805E564 + ldr r1, _080A2598 @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + bl sub_0805E780 + pop {pc} + .align 2, 0 +_080A2598: .4byte gUnk_02034490 + + thumb_func_start sub_080A259C +sub_080A259C: @ 0x080A259C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, _080A25DC @ =gLinkEntity + ldrb r1, [r5, #0x10] + movs r7, #0x7f + adds r0, r7, #0 + ands r0, r1 + strb r0, [r5, #0x10] + ldrb r1, [r5, #0x18] + movs r6, #4 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r1, [r5, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _080A269C + cmp r0, #1 + bgt _080A25E0 + cmp r0, #0 + beq _080A25E6 + b _080A273C + .align 2, 0 +_080A25DC: .4byte gLinkEntity +_080A25E0: + cmp r0, #2 + beq _080A26B4 + b _080A273C +_080A25E6: + movs r0, #1 + movs r2, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _080A2670 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080A2678 + ldrb r0, [r4, #0xa] + bl sub_080542AC + ldr r1, _080A2674 @ =0x0000045B + cmp r0, #0 + beq _080A2688 + adds r1, #3 + b _080A2688 + .align 2, 0 +_080A2670: .4byte gUnk_03003F80 +_080A2674: .4byte 0x0000045B +_080A2678: + ldrb r0, [r4, #0xa] + bl sub_080542AC + ldr r1, _080A2698 @ =0x000001B9 + cmp r0, #0 + beq _080A2688 + movs r1, #0xb8 + lsls r1, r1, #2 +_080A2688: + lsrs r0, r1, #8 + strh r0, [r4, #0x12] + movs r0, #0xff + ands r1, r0 + adds r0, r4, #0 + bl sub_080042AC + b _080A273C + .align 2, 0 +_080A2698: .4byte 0x000001B9 +_080A269C: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _080A273C + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _080A273C +_080A26B4: + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, _080A2764 @ =gTextBox + ldrb r1, [r0] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _080A2762 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A273C + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + strb r0, [r5, #0x10] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + movs r0, #3 + ands r1, r0 + ldrb r2, [r5, #0x18] + adds r0, r6, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r1, _080A2768 @ =gUnk_03003F80 + adds r0, r4, #0 + adds r0, #0x6b + ldrb r0, [r0] + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x6c + ldrb r0, [r0] + strb r0, [r1, #0xb] + adds r0, r4, #0 + adds r0, #0x6d + ldrb r0, [r0] + strb r0, [r1, #0xa] + adds r0, r4, #0 + adds r0, #0x6e + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0x27 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + strb r0, [r1, #0x1a] + ldr r0, [r4, #0x70] + str r0, [r1, #0x30] + adds r0, r4, #0 + adds r0, #0x74 + ldrb r0, [r0] + adds r1, #0x8a + strb r0, [r1] +_080A273C: + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _080A2762 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA30 + ldrh r0, [r4, #0x12] + ldrb r1, [r4, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r1, [r0, #1] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] +_080A2762: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A2764: .4byte gTextBox +_080A2768: .4byte gUnk_03003F80 + + thumb_func_start sub_080A276C +sub_080A276C: @ 0x080A276C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r7, r2, #0 + bl sub_0805E744 + adds r6, r0, #0 + cmp r6, #0 + beq _080A2820 + movs r0, #0xc1 + strb r0, [r6, #9] + movs r0, #6 + mov r8, r0 + mov r1, r8 + strb r1, [r6, #8] + strb r4, [r6, #0xa] + strb r7, [r6, #0xb] + str r5, [r6, #0x50] + adds r0, r6, #0 + movs r1, #6 + bl sub_0805EA2C + adds r0, r6, #0 + movs r1, #6 + bl sub_0805EA78 + ldr r4, _080A2828 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0806FA24 + ldr r0, _080A282C @ =gUnk_03003DC0 + mov r1, r8 + strb r1, [r0] + ldr r1, _080A2830 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0x10] + adds r1, r6, #0 + adds r1, #0x69 + strb r0, [r1] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + subs r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + adds r1, #2 + strb r0, [r1] + ldr r1, _080A2834 @ =gUnk_03003F80 + ldrb r0, [r1, #7] + adds r2, r6, #0 + adds r2, #0x6b + strb r0, [r2] + ldrb r2, [r1, #0xb] + adds r0, r6, #0 + adds r0, #0x6c + strb r2, [r0] + ldrb r0, [r1, #0xa] + adds r2, r6, #0 + adds r2, #0x6d + strb r0, [r2] + adds r0, r1, #0 + adds r0, #0x27 + ldrb r0, [r0] + adds r2, #1 + strb r0, [r2] + ldrb r0, [r1, #0x1a] + adds r2, #1 + strb r0, [r2] + ldr r0, [r1, #0x30] + str r0, [r6, #0x70] + adds r1, #0x8a + ldrb r1, [r1] + adds r0, r6, #0 + adds r0, #0x74 + strb r1, [r0] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080A2820: + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A2828: .4byte gLinkEntity +_080A282C: .4byte gUnk_03003DC0 +_080A2830: .4byte gUnk_02034490 +_080A2834: .4byte gUnk_03003F80 \ No newline at end of file diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index e350decd..bef5d406 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -26,7 +26,7 @@ sub_080A29C8: @ 0x080A29C8 adds r2, r0, #0 cmp r2, #0 beq _080A29F4 - ldr r1, _080A29F8 @ =gUnk_03000BF0 + ldr r1, _080A29F8 @ =gRoomControls ldrh r0, [r1, #6] adds r0, r0, r4 strh r0, [r2, #0x2e] @@ -39,7 +39,7 @@ sub_080A29C8: @ 0x080A29C8 _080A29F4: pop {r4, r5, r6, pc} .align 2, 0 -_080A29F8: .4byte gUnk_03000BF0 +_080A29F8: .4byte gRoomControls thumb_func_start sub_080A29FC sub_080A29FC: @ 0x080A29FC @@ -1025,7 +1025,7 @@ _080A312A: _080A315C: movs r1, #0x2e ldrsh r0, [r4, r1] - ldr r2, _080A31F0 @ =gUnk_03000BF0 + ldr r2, _080A31F0 @ =gRoomControls ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 @@ -1092,7 +1092,7 @@ _080A31D6: str r4, [r0, #0x50] b _080A3200 .align 2, 0 -_080A31F0: .4byte gUnk_03000BF0 +_080A31F0: .4byte gRoomControls _080A31F4: .4byte gLinkEntity _080A31F8: .4byte gUnk_08003E44 _080A31FC: @@ -1698,7 +1698,7 @@ _080A365E: movs r0, #0 movs r1, #0 bl sub_0801D79C - ldr r2, _080A36B4 @ =gUnk_03000F50 + ldr r2, _080A36B4 @ =gLCDControls movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r2] @@ -1723,7 +1723,7 @@ _080A365E: pop {r4, r5, pc} .align 2, 0 _080A36B0: .4byte gUnk_081272F0 -_080A36B4: .4byte gUnk_03000F50 +_080A36B4: .4byte gLCDControls _080A36B8: .4byte 0x00002442 _080A36BC: .4byte 0x00001E4D @@ -1779,7 +1779,7 @@ sub_080A36F8: @ 0x080A36F8 movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 - ldr r1, _080A3764 @ =gUnk_03000F50 + ldr r1, _080A3764 @ =gLCDControls movs r2, #0 movs r0, #1 strh r0, [r1, #0x1a] @@ -1808,7 +1808,7 @@ _080A3754: .4byte gUnk_03000FD0 _080A3758: .4byte gUnk_02000080 _080A375C: .4byte gUnk_08127CEC _080A3760: .4byte gUnk_02021F30 -_080A3764: .4byte gUnk_03000F50 +_080A3764: .4byte gLCDControls thumb_func_start sub_080A3768 sub_080A3768: @ 0x080A3768 @@ -1843,7 +1843,7 @@ _080A378A: adds r1, r1, r2 ldr r1, [r1] bl sub_0805F46C - ldr r1, _080A37C0 @ =gUnk_03000F50 + ldr r1, _080A37C0 @ =gLCDControls movs r2, #0 movs r0, #1 strh r0, [r1, #0x1a] @@ -1855,7 +1855,7 @@ _080A378A: .align 2, 0 _080A37B8: .4byte gUnk_02021F30 _080A37BC: .4byte gUnk_081272E0 -_080A37C0: .4byte gUnk_03000F50 +_080A37C0: .4byte gLCDControls _080A37C4: ldr r0, _080A37F8 @ =gUnk_03000FD0 ldrb r0, [r0] @@ -1871,7 +1871,7 @@ _080A37C4: strb r1, [r4, #0x18] lsls r0, r1, #0x18 lsrs r3, r0, #0x18 - ldr r2, _080A3800 @ =gUnk_03000F50 + ldr r2, _080A3800 @ =gLCDControls movs r0, #0x10 subs r0, r0, r3 lsls r0, r0, #8 @@ -1886,7 +1886,7 @@ _080A37C4: .align 2, 0 _080A37F8: .4byte gUnk_03000FD0 _080A37FC: .4byte gUnk_030010A0 -_080A3800: .4byte gUnk_03000F50 +_080A3800: .4byte gLCDControls _080A3804: ldrh r0, [r4, #8] subs r0, #1 @@ -1907,7 +1907,7 @@ _080A3812: strb r1, [r4, #0x18] lsls r0, r1, #0x18 lsrs r3, r0, #0x18 - ldr r2, _080A3848 @ =gUnk_03000F50 + ldr r2, _080A3848 @ =gLCDControls movs r0, #0x10 subs r0, r0, r3 lsls r0, r0, #8 @@ -1924,7 +1924,7 @@ _080A383C: b _080A385E .align 2, 0 _080A3844: .4byte gUnk_030010A0 -_080A3848: .4byte gUnk_03000F50 +_080A3848: .4byte gLCDControls _080A384C: ldr r1, _080A3860 @ =gUnk_03000FD0 ldrb r0, [r1] @@ -2005,7 +2005,7 @@ sub_080A38D0: @ 0x080A38D0 lsls r6, r6, #4 adds r1, r6, #0 bl sub_0801D630 - ldr r4, _080A3924 @ =gUnk_03000F50 + ldr r4, _080A3924 @ =gLCDControls movs r0, #0 mov r8, r0 movs r5, #1 @@ -2031,7 +2031,7 @@ _080A3914: .align 2, 0 _080A391C: .4byte gUnk_03000FD0 _080A3920: .4byte gUnk_02021F30 -_080A3924: .4byte gUnk_03000F50 +_080A3924: .4byte gLCDControls _080A3928: .4byte gUnk_020344B0 _080A392C: .4byte gUnk_02000080 @@ -2140,7 +2140,7 @@ _080A39C8: movs r0, #0 movs r1, #0 bl sub_08052418 - ldr r2, _080A3A2C @ =gUnk_03000F50 + ldr r2, _080A3A2C @ =gLCDControls ldrh r0, [r2] movs r3, #0xc0 lsls r3, r3, #3 @@ -2157,7 +2157,7 @@ _080A39C8: bl sub_08050054 b _080A3B36 .align 2, 0 -_080A3A2C: .4byte gUnk_03000F50 +_080A3A2C: .4byte gLCDControls _080A3A30: .4byte 0x00001C01 _080A3A34: .4byte 0x00001D05 _080A3A38: @@ -2276,7 +2276,7 @@ _080A3AFC: .align 2, 0 _080A3B10: .4byte gUnk_03000FF0 _080A3B14: - ldr r2, _080A3B38 @ =gUnk_03000F50 + ldr r2, _080A3B38 @ =gLCDControls ldrh r1, [r2] ldr r0, _080A3B3C @ =0x0000FDFF ands r0, r1 @@ -2294,7 +2294,7 @@ _080A3B14: _080A3B36: pop {r4, r5, pc} .align 2, 0 -_080A3B38: .4byte gUnk_03000F50 +_080A3B38: .4byte gLCDControls _080A3B3C: .4byte 0x0000FDFF _080A3B40: .4byte gUnk_03001000 _080A3B44: .4byte gUnk_02000080 @@ -2396,7 +2396,7 @@ _080A3C04: _080A3C0A: adds r0, #0x76 bl sub_0801D7EC - ldr r1, _080A3C58 @ =gUnk_03000F50 + ldr r1, _080A3C58 @ =gLCDControls ldrh r2, [r1] movs r3, #0xf0 lsls r3, r3, #5 @@ -2426,7 +2426,7 @@ _080A3C0A: pop {r4, pc} .align 2, 0 _080A3C54: .4byte gUnk_02000080 -_080A3C58: .4byte gUnk_03000F50 +_080A3C58: .4byte gLCDControls _080A3C5C: .4byte 0x00001C01 _080A3C60: .4byte 0x00001D02 _080A3C64: .4byte 0x00001E0B @@ -2716,7 +2716,7 @@ _080A3E84: strb r0, [r3, #6] movs r0, #0x14 strh r0, [r3, #8] - ldr r3, _080A3ECC @ =gUnk_03000F50 + ldr r3, _080A3ECC @ =gLCDControls ldrh r0, [r3] movs r4, #0x80 lsls r4, r4, #6 @@ -2747,7 +2747,7 @@ _080A3E84: _080A3EC8: pop {r4, pc} .align 2, 0 -_080A3ECC: .4byte gUnk_03000F50 +_080A3ECC: .4byte gLCDControls _080A3ED0: .4byte 0x00006887 _080A3ED4: .4byte 0x0000405F _080A3ED8: .4byte 0x00003F90 @@ -2755,7 +2755,7 @@ _080A3ED8: .4byte 0x00003F90 thumb_func_start sub_080A3EDC sub_080A3EDC: @ 0x080A3EDC push {lr} - ldr r2, _080A3F08 @ =gUnk_03000F50 + ldr r2, _080A3F08 @ =gLCDControls adds r1, r2, #0 adds r1, #0x6a ldrh r0, [r1] @@ -2776,7 +2776,7 @@ sub_080A3EDC: @ 0x080A3EDC _080A3F04: pop {pc} .align 2, 0 -_080A3F08: .4byte gUnk_03000F50 +_080A3F08: .4byte gLCDControls _080A3F0C: .4byte 0x0000DFFF thumb_func_start sub_080A3F10 @@ -2873,7 +2873,7 @@ _080A3FC8: .4byte 0x00000702 thumb_func_start sub_080A3FCC sub_080A3FCC: @ 0x080A3FCC push {lr} - ldr r0, _080A3FE8 @ =gUnk_02000050 + ldr r0, _080A3FE8 @ =gTextBox ldrb r1, [r0] movs r0, #0x7f ands r0, r1 @@ -2887,7 +2887,7 @@ sub_080A3FCC: @ 0x080A3FCC _080A3FE6: pop {pc} .align 2, 0 -_080A3FE8: .4byte gUnk_02000050 +_080A3FE8: .4byte gTextBox _080A3FEC: .4byte gUnk_02000080 _080A3FF0: .4byte 0x00000147 @@ -3575,7 +3575,7 @@ sub_080A4528: @ 0x080A4528 ldrb r0, [r2, #9] ldrb r1, [r2, #0xa] ldrb r2, [r2, #0xb] - bl sub_0806ED50 + bl CreateNPC b _080A4550 .align 2, 0 _080A4540: .4byte gUnk_02022740 @@ -3700,7 +3700,7 @@ sub_080A4608: @ 0x080A4608 movs r1, #0x80 lsls r1, r1, #5 bl sub_0801D630 - ldr r2, _080A46AC @ =gUnk_03000F50 + ldr r2, _080A46AC @ =gLCDControls adds r1, r2, #0 adds r1, #0x58 movs r0, #0xf0 @@ -3749,7 +3749,7 @@ _080A4694: _080A46A0: .4byte gUnk_020176A0 _080A46A4: .4byte gUnk_02034CB0 _080A46A8: .4byte gUnk_02001A40 -_080A46AC: .4byte gUnk_03000F50 +_080A46AC: .4byte gLCDControls _080A46B0: .4byte 0x00007898 _080A46B4: .4byte gUnk_02000080 _080A46B8: .4byte gUnk_02032EC0 @@ -3842,7 +3842,7 @@ _080A475A: movs r0, #0x20 subs r1, r0, r1 _080A476A: - ldr r0, _080A4784 @ =gUnk_03000F50 + ldr r0, _080A4784 @ =gLCDControls adds r2, r0, #0 adds r2, #0x6a strh r1, [r2] @@ -3853,9 +3853,9 @@ _080A476A: .align 2, 0 _080A477C: .4byte gUnk_02002B0E _080A4780: .4byte gUnk_02000080 -_080A4784: .4byte gUnk_03000F50 +_080A4784: .4byte gLCDControls _080A4788: - ldr r2, _080A47C8 @ =gUnk_03000F50 + ldr r2, _080A47C8 @ =gLCDControls adds r0, r2, #0 adds r0, #0x6a strh r3, [r0] @@ -3886,7 +3886,7 @@ _080A47BE: _080A47C4: pop {r4, pc} .align 2, 0 -_080A47C8: .4byte gUnk_03000F50 +_080A47C8: .4byte gLCDControls _080A47CC: .4byte gUnk_0812813C thumb_func_start sub_080A47D0 @@ -3933,20 +3933,20 @@ _080A4814: adds r4, r0, #0 _080A481A: strb r4, [r1, #0x1f] - ldr r1, _080A482C @ =gUnk_03000F50 + ldr r1, _080A482C @ =gLCDControls adds r0, r4, #0 subs r0, #0x70 strh r0, [r1, #0x18] pop {r4, pc} .align 2, 0 _080A4828: .4byte gUnk_02000080 -_080A482C: .4byte gUnk_03000F50 +_080A482C: .4byte gLCDControls thumb_func_start sub_080A4830 sub_080A4830: @ 0x080A4830 push {lr} bl sub_080A4608 - ldr r2, _080A4858 @ =gUnk_03000F50 + ldr r2, _080A4858 @ =gLCDControls ldrh r1, [r2] movs r3, #0x80 lsls r3, r3, #6 @@ -3962,7 +3962,7 @@ sub_080A4830: @ 0x080A4830 bl sub_080A7114 pop {pc} .align 2, 0 -_080A4858: .4byte gUnk_03000F50 +_080A4858: .4byte gLCDControls _080A485C: .4byte gUnk_0812813C _080A4860: .4byte gUnk_02000080 @@ -4072,7 +4072,7 @@ _080A4916: adds r5, r0, #0 _080A491C: strb r5, [r6, #0x1f] - ldr r1, _080A4930 @ =gUnk_03000F50 + ldr r1, _080A4930 @ =gLCDControls adds r0, r5, #0 subs r0, #0x70 strh r0, [r1, #0x18] @@ -4081,7 +4081,7 @@ _080A4926: .align 2, 0 _080A4928: .4byte gUnk_02002A40 _080A492C: .4byte gUnk_02000080 -_080A4930: .4byte gUnk_03000F50 +_080A4930: .4byte gLCDControls thumb_func_start sub_080A4934 sub_080A4934: @ 0x080A4934 @@ -4526,14 +4526,14 @@ _080A4CA4: mov r1, sp bl sub_0805F46C _080A4CAC: - ldr r1, _080A4CB8 @ =gUnk_03000F50 + ldr r1, _080A4CB8 @ =gLCDControls movs r0, #1 strh r0, [r1, #0x32] _080A4CB2: add sp, #0x54 pop {r4, r5, r6, pc} .align 2, 0 -_080A4CB8: .4byte gUnk_03000F50 +_080A4CB8: .4byte gLCDControls thumb_func_start sub_080A4CBC sub_080A4CBC: @ 0x080A4CBC @@ -4564,7 +4564,7 @@ sub_080A4CBC: @ 0x080A4CBC ldr r1, _080A4D18 @ =gUnk_08128190 bl sub_0805F46C _080A4CF8: - ldr r1, _080A4D1C @ =gUnk_03000F50 + ldr r1, _080A4D1C @ =gLCDControls movs r0, #1 strh r0, [r1, #0x1a] _080A4CFE: @@ -4580,7 +4580,7 @@ _080A4D0C: .4byte gUnk_02000080 _080A4D10: .4byte gUnk_02021F30 _080A4D14: .4byte 0x0600E000 _080A4D18: .4byte gUnk_08128190 -_080A4D1C: .4byte gUnk_03000F50 +_080A4D1C: .4byte gLCDControls _080A4D20: adds r1, #0x40 adds r2, #1 @@ -4625,7 +4625,7 @@ _080A4D66: adds r0, r1, #0 adds r0, #0x56 bl sub_0801D7EC - ldr r1, _080A4D80 @ =gUnk_03000F50 + ldr r1, _080A4D80 @ =gLCDControls movs r0, #0 strh r0, [r1, #0x2e] strh r0, [r1, #0x30] @@ -4635,7 +4635,7 @@ _080A4D66: strh r0, [r1, #0x32] pop {pc} .align 2, 0 -_080A4D80: .4byte gUnk_03000F50 +_080A4D80: .4byte gLCDControls _080A4D84: .4byte 0x00001E0B thumb_func_start sub_080A4D88 @@ -4701,7 +4701,7 @@ sub_080A4DB8: @ 0x080A4DB8 lsls r0, r0, #3 ldr r1, _080A4E78 @ =gUnk_08128AD8 adds r4, r0, r1 - ldr r1, _080A4E7C @ =gUnk_03000F50 + ldr r1, _080A4E7C @ =gLCDControls ldrh r2, [r4, #2] movs r5, #0xca lsls r5, r5, #5 @@ -4747,7 +4747,7 @@ _080A4E6C: .4byte 0x0000FFFF _080A4E70: .4byte gUnk_02034490 _080A4E74: .4byte gUnk_08128A38 _080A4E78: .4byte gUnk_08128AD8 -_080A4E7C: .4byte gUnk_03000F50 +_080A4E7C: .4byte gLCDControls _080A4E80: .4byte 0x00001E0B thumb_func_start sub_080A4E84 @@ -4812,7 +4812,7 @@ _080A4EF0: beq _080A4F00 ldr r1, _080A4F20 @ =0x00000E46 _080A4F00: - ldr r2, _080A4F24 @ =gUnk_03000F50 + ldr r2, _080A4F24 @ =gLCDControls adds r0, r2, #0 adds r0, #0x66 strh r1, [r0] @@ -4828,7 +4828,7 @@ _080A4F14: _080A4F18: .4byte gUnk_08128B30 _080A4F1C: .4byte gUnk_08128A38 _080A4F20: .4byte 0x00000E46 -_080A4F24: .4byte gUnk_03000F50 +_080A4F24: .4byte gLCDControls thumb_func_start sub_080A4F28 sub_080A4F28: @ 0x080A4F28 @@ -5007,14 +5007,14 @@ _080A5080: movs r1, #0x80 lsls r1, r1, #4 bl sub_0801D630 - ldr r1, _080A509C @ =gUnk_03000F50 + ldr r1, _080A509C @ =gLCDControls movs r0, #1 strh r0, [r1, #0xe] _080A5096: pop {r4, r5, pc} .align 2, 0 _080A5098: .4byte gUnk_02034CB0 -_080A509C: .4byte gUnk_03000F50 +_080A509C: .4byte gLCDControls thumb_func_start sub_080A50A0 sub_080A50A0: @ 0x080A50A0 @@ -5040,7 +5040,7 @@ sub_080A50B8: @ 0x080A50B8 adds r0, #2 cmp r0, #0x10 ble _080A50D8 - ldr r2, _080A50E0 @ =gUnk_03000F50 + ldr r2, _080A50E0 @ =gLCDControls ldrh r1, [r2] ldr r0, _080A50E4 @ =0x0000F8FF ands r0, r1 @@ -5053,7 +5053,7 @@ _080A50D8: pop {r4, pc} .align 2, 0 _080A50DC: .4byte gUnk_02034490 -_080A50E0: .4byte gUnk_03000F50 +_080A50E0: .4byte gLCDControls _080A50E4: .4byte 0x0000F8FF thumb_func_start sub_080A50E8 @@ -5627,17343 +5627,3 @@ _080A553C: .4byte gUnk_08128B64 _080A5540: .4byte gUnk_03001000 _080A5544: .4byte 0x000001FB _080A5548: .4byte gUnk_02002A40 - - thumb_func_start sub_080A554C -sub_080A554C: @ 0x080A554C - push {lr} - adds r2, r0, #0 - cmp r2, #0 - beq _080A556E - movs r1, #0 - ldr r3, _080A5564 @ =gUnk_02000090 -_080A5558: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bne _080A5568 - adds r0, r1, #0 - b _080A5570 - .align 2, 0 -_080A5564: .4byte gUnk_02000090 -_080A5568: - adds r1, #1 - cmp r1, #0x10 - bls _080A5558 -_080A556E: - movs r0, #0x11 -_080A5570: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A5574 -sub_080A5574: @ 0x080A5574 - push {lr} - ldr r1, _080A558C @ =gUnk_08128BF8 - ldr r0, _080A5590 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_080A57F4 - pop {pc} - .align 2, 0 -_080A558C: .4byte gUnk_08128BF8 -_080A5590: .4byte gUnk_02000080 - - thumb_func_start sub_080A5594 -sub_080A5594: @ 0x080A5594 - push {r4, r5, r6, r7, lr} - ldr r4, _080A5620 @ =gUnk_02000080 - ldr r0, _080A5624 @ =gUnk_08128C00 - str r0, [r4, #0xc] - ldr r0, _080A5628 @ =gUnk_08128C04 - bl sub_080A70AC - movs r6, #6 - movs r5, #0x34 - adds r7, r4, #0 - adds r7, #0x10 -_080A55AA: - adds r0, r5, #0 - bl GetInventoryValue - cmp r0, #1 - bne _080A55EA - ldr r1, _080A562C @ =gUnk_080FD5B4 - lsls r0, r5, #3 - adds r0, r0, r1 - ldrb r1, [r0] - cmp r1, #3 - bne _080A55C8 - ldrb r0, [r4, #0x13] - cmp r0, #0 - beq _080A55C8 - movs r1, #0x63 -_080A55C8: - cmp r1, #0x63 - beq _080A55EA - cmp r1, #1 - bne _080A55D8 - adds r1, r6, #0 - cmp r1, #7 - bhi _080A55D8 - adds r6, r1, #1 -_080A55D8: - adds r0, r1, r7 - strb r5, [r0] - lsls r1, r1, #3 - movs r0, #0xe0 - lsls r0, r0, #2 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_080A5F48 -_080A55EA: - adds r5, #1 - cmp r5, #0x46 - bls _080A55AA - movs r0, #0x3d - bl GetInventoryValue - cmp r0, #0 - bne _080A564A - movs r5, #0 - movs r0, #0x67 - bl GetInventoryValue - cmp r0, #0 - beq _080A5646 - movs r4, #0 - ldr r1, _080A5630 @ =gUnk_02002B6B -_080A560A: - adds r0, r4, r1 - ldrb r0, [r0] - adds r5, r5, r0 - adds r4, #1 - cmp r4, #0x12 - bls _080A560A - cmp r5, #0x4f - ble _080A5634 - movs r5, #4 - b _080A5646 - .align 2, 0 -_080A5620: .4byte gUnk_02000080 -_080A5624: .4byte gUnk_08128C00 -_080A5628: .4byte gUnk_08128C04 -_080A562C: .4byte gUnk_080FD5B4 -_080A5630: .4byte gUnk_02002B6B -_080A5634: - cmp r5, #0x27 - ble _080A563C - movs r5, #3 - b _080A5646 -_080A563C: - cmp r5, #9 - ble _080A5644 - movs r5, #2 - b _080A5646 -_080A5644: - movs r5, #1 -_080A5646: - ldr r0, _080A5698 @ =gUnk_02000080 - strb r5, [r0, #0x10] -_080A564A: - ldr r0, _080A5698 @ =gUnk_02000080 - ldr r1, _080A569C @ =gUnk_02002A40 - adds r1, #0xa9 - ldrb r1, [r1] - adds r1, #1 - strb r1, [r0, #0x11] - movs r5, #0 - movs r4, #0x48 -_080A565A: - adds r0, r4, #0 - bl GetInventoryValue - cmp r0, #0 - beq _080A5666 - adds r5, #1 -_080A5666: - adds r4, #1 - cmp r4, #0x4f - bls _080A565A - ldr r4, _080A5698 @ =gUnk_02000080 - strb r5, [r4, #0x12] - movs r0, #0x3e - bl GetInventoryValue - cmp r0, #0 - bne _080A5688 - movs r0, #0x3f - bl GetInventoryValue - cmp r0, #0 - beq _080A5688 - movs r0, #0x3f - strb r0, [r4, #0x13] -_080A5688: - ldr r1, _080A5698 @ =gUnk_02000080 - movs r0, #1 - strb r0, [r1, #0x14] - strb r0, [r1, #0x15] - bl sub_080A7114 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A5698: .4byte gUnk_02000080 -_080A569C: .4byte gUnk_02002A40 - - thumb_func_start sub_080A56A0 -sub_080A56A0: @ 0x080A56A0 - push {r4, lr} - bl sub_080A51F4 - cmp r0, #0 - bne _080A56AC - b _080A57F0 -_080A56AC: - ldr r2, _080A56D0 @ =gUnk_02000080 - ldr r0, _080A56D4 @ =gUnk_08128C00 - str r0, [r2, #0xc] - ldrb r0, [r2, #3] - lsls r0, r0, #3 - ldr r1, _080A56D8 @ =gUnk_08128C14 - adds r4, r0, r1 - movs r3, #0xff - ldr r0, _080A56DC @ =gUnk_03000FF0 - ldrh r1, [r0, #4] - cmp r1, #0x20 - beq _080A56F2 - cmp r1, #0x20 - bgt _080A56E0 - cmp r1, #0x10 - beq _080A56F6 - b _080A56F8 - .align 2, 0 -_080A56D0: .4byte gUnk_02000080 -_080A56D4: .4byte gUnk_08128C00 -_080A56D8: .4byte gUnk_08128C14 -_080A56DC: .4byte gUnk_03000FF0 -_080A56E0: - cmp r1, #0x40 - beq _080A56EA - cmp r1, #0x80 - beq _080A56EE - b _080A56F8 -_080A56EA: - ldrb r3, [r4] - b _080A56F8 -_080A56EE: - ldrb r3, [r4, #1] - b _080A56F8 -_080A56F2: - ldrb r3, [r4, #2] - b _080A56F8 -_080A56F6: - ldrb r3, [r4, #3] -_080A56F8: - cmp r3, #0xff - beq _080A570C - ldr r0, _080A5708 @ =gUnk_02000080 - strb r3, [r0, #3] - movs r0, #0x69 - bl sub_080A3268 - b _080A575E - .align 2, 0 -_080A5708: .4byte gUnk_02000080 -_080A570C: - ldrh r0, [r0, #2] - cmp r0, #1 - bne _080A575E - ldrb r3, [r2, #3] - movs r1, #0 - cmp r3, #2 - beq _080A572E - cmp r3, #2 - bhi _080A5724 - cmp r3, #0 - beq _080A572E - b _080A574E -_080A5724: - cmp r3, #4 - beq _080A5748 - cmp r3, #5 - beq _080A574C - b _080A574E -_080A572E: - ldr r0, _080A5744 @ =gUnk_02000080 - adds r0, #0x10 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _080A574E - movs r1, #8 - cmp r3, #0 - bne _080A574E - movs r1, #7 - b _080A5752 - .align 2, 0 -_080A5744: .4byte gUnk_02000080 -_080A5748: - movs r1, #9 - b _080A5752 -_080A574C: - movs r1, #0xa -_080A574E: - cmp r1, #0 - beq _080A575E -_080A5752: - adds r0, r1, #0 - bl sub_080A4E84 - movs r0, #0x6a - bl sub_080A3268 -_080A575E: - ldr r0, _080A5780 @ =gUnk_02000080 - ldrb r1, [r0, #3] - adds r2, r0, #0 - cmp r1, #0 - beq _080A576C - cmp r1, #2 - bne _080A5788 -_080A576C: - adds r0, r2, #0 - adds r0, #0x10 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _080A5788 - ldr r1, _080A5784 @ =gUnk_0200AF00 - movs r0, #0x10 - b _080A578C - .align 2, 0 -_080A5780: .4byte gUnk_02000080 -_080A5784: .4byte gUnk_0200AF00 -_080A5788: - ldr r1, _080A57AC @ =gUnk_0200AF00 - ldr r0, _080A57B0 @ =0x0000FFF0 -_080A578C: - strh r0, [r1, #0x1c] - ldrb r3, [r2, #3] - adds r0, r2, #0 - adds r0, #0x10 - adds r0, r3, r0 - ldrb r2, [r0] - cmp r2, #0 - beq _080A57E6 - cmp r3, #5 - bhi _080A57E6 - lsls r0, r3, #2 - ldr r1, _080A57B4 @ =_080A57B8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A57AC: .4byte gUnk_0200AF00 -_080A57B0: .4byte 0x0000FFF0 -_080A57B4: .4byte _080A57B8 -_080A57B8: @ jump table - .4byte _080A57D0 @ case 0 - .4byte _080A57D8 @ case 1 - .4byte _080A57DC @ case 2 - .4byte _080A57E6 @ case 3 - .4byte _080A57E0 @ case 4 - .4byte _080A57E4 @ case 5 -_080A57D0: - cmp r2, #0x3d - beq _080A57E6 - movs r2, #0x67 - b _080A57E6 -_080A57D8: - movs r2, #0x63 - b _080A57E6 -_080A57DC: - movs r2, #0x70 - b _080A57E6 -_080A57E0: - movs r2, #0x74 - b _080A57E6 -_080A57E4: - movs r2, #0x73 -_080A57E6: - movs r0, #0x80 - lsls r0, r0, #3 - adds r0, r2, r0 - bl sub_080A6F6C -_080A57F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A57F4 -sub_080A57F4: @ 0x080A57F4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r2, _080A5890 @ =gUnk_03001010 - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r2, #4] - strh r1, [r2, #6] - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - ldr r1, _080A5894 @ =gUnk_08128C94 - mov sb, r1 - cmp r0, #0 - bne _080A581A - ldr r3, _080A5898 @ =gUnk_08128C14 - mov sb, r3 -_080A581A: - ldr r0, _080A589C @ =gUnk_02000080 - ldrb r0, [r0, #3] - lsls r0, r0, #3 - mov r1, sb - adds r3, r1, r0 - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r2, #8] - ldrb r0, [r3, #6] - strh r0, [r2] - ldrb r0, [r3, #7] - strh r0, [r2, #2] - ldrb r2, [r3, #4] - ldr r0, _080A58A0 @ =gUnk_03001000 - ldrh r1, [r0, #0xc] - movs r0, #0x10 - ands r0, r1 - adds r1, r2, #0 - adds r1, #0xa - cmp r0, #0 - bne _080A5846 - adds r1, #1 -_080A5846: - ldr r0, _080A58A4 @ =0x000001FB - bl sub_080ADA14 - movs r3, #0 - mov r8, r3 - mov r7, sb - adds r7, #5 -_080A5854: - ldr r0, _080A589C @ =gUnk_02000080 - adds r0, #0x10 - mov r1, r8 - adds r6, r1, r0 - ldrb r1, [r6] - cmp r1, #0 - beq _080A58E8 - mov r3, r8 - lsls r5, r3, #3 - mov r0, sb - adds r3, r0, r5 - ldr r4, _080A5890 @ =gUnk_03001010 - ldrb r0, [r7, #1] - strh r0, [r4] - ldrb r2, [r7, #2] - strh r2, [r4, #2] - movs r0, #0xe8 - lsls r0, r0, #8 - strh r0, [r4, #8] - cmp r1, #0x33 - bhi _080A58B8 - mov r1, r8 - cmp r1, #2 - bne _080A58A8 - ldrb r0, [r7] - adds r1, r0, #0 - adds r1, #0xa - ldr r0, _080A58A4 @ =0x000001FB - b _080A58E4 - .align 2, 0 -_080A5890: .4byte gUnk_03001010 -_080A5894: .4byte gUnk_08128C94 -_080A5898: .4byte gUnk_08128C14 -_080A589C: .4byte gUnk_02000080 -_080A58A0: .4byte gUnk_03001000 -_080A58A4: .4byte 0x000001FB -_080A58A8: - ldrb r0, [r6] - adds r0, #9 - ldrb r3, [r3, #5] - adds r1, r0, r3 - ldr r0, _080A58B4 @ =0x000001FB - b _080A58E4 - .align 2, 0 -_080A58B4: .4byte 0x000001FB -_080A58B8: - ldr r3, _080A58CC @ =0x0000EB80 - adds r0, r5, r3 - strh r0, [r4, #8] - cmp r1, #0x3d - beq _080A58D0 - cmp r1, #0x3e - bne _080A58D6 - adds r0, r2, #0 - adds r0, #8 - b _080A58D4 - .align 2, 0 -_080A58CC: .4byte 0x0000EB80 -_080A58D0: - adds r0, r2, #0 - adds r0, #0xd -_080A58D4: - strh r0, [r4, #2] -_080A58D6: - ldr r0, _080A5980 @ =gUnk_080FDFD8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - ldrb r1, [r0] - movs r0, #0xa1 - lsls r0, r0, #1 -_080A58E4: - bl sub_080ADA14 -_080A58E8: - adds r7, #8 - movs r0, #1 - add r8, r0 - mov r1, r8 - cmp r1, #0xf - bls _080A5854 - ldr r4, _080A5984 @ =gUnk_02000080 - ldrb r0, [r4, #0x12] - cmp r0, #0 - beq _080A5920 - ldr r2, _080A5988 @ =gUnk_03001010 - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r3, #0 - adds r0, r0, r1 - strh r0, [r2, #8] - mov r3, sb - adds r3, #0x10 - ldrb r0, [r3, #6] - adds r0, #9 - strh r0, [r2] - ldrb r0, [r3, #7] - adds r0, #7 - strh r0, [r2, #2] - movs r0, #0 - movs r1, #1 - bl sub_080ADA14 -_080A5920: - ldrb r0, [r4, #0x13] - cmp r0, #0x3f - bne _080A5976 - mov r3, sb - adds r3, #0x18 - ldr r1, _080A5988 @ =gUnk_03001010 - ldrb r0, [r3, #6] - adds r0, #8 - strh r0, [r1] - ldrb r0, [r3, #7] - adds r0, #8 - strh r0, [r1, #2] - ldr r0, _080A598C @ =gUnk_02002A40 - adds r0, #0xc2 - ldrh r4, [r0] - movs r0, #0 - mov r8, r0 - adds r5, r1, #0 -_080A5944: - adds r0, r4, #0 - movs r1, #0xa - bl __modsi3 - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r0, r1 - strh r0, [r5, #8] - movs r0, #0 - movs r1, #1 - bl sub_080ADA14 - adds r0, r4, #0 - movs r1, #0xa - bl __divsi3 - adds r4, r0, #0 - ldrh r0, [r5] - subs r0, #8 - strh r0, [r5] - movs r3, #1 - add r8, r3 - mov r0, r8 - cmp r0, #2 - bls _080A5944 -_080A5976: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A5980: .4byte gUnk_080FDFD8 -_080A5984: .4byte gUnk_02000080 -_080A5988: .4byte gUnk_03001010 -_080A598C: .4byte gUnk_02002A40 - - thumb_func_start sub_080A5990 -sub_080A5990: @ 0x080A5990 - push {lr} - ldr r1, _080A59A4 @ =gUnk_08128D14 - ldr r0, _080A59A8 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080A59A4: .4byte gUnk_08128D14 -_080A59A8: .4byte gUnk_02000080 - - thumb_func_start sub_080A59AC -sub_080A59AC: @ 0x080A59AC - push {lr} - ldr r1, _080A59C4 @ =gUnk_02000080 - movs r0, #0 - strb r0, [r1, #3] - movs r1, #0 - bl sub_08052418 - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_080A59C4: .4byte gUnk_02000080 - - thumb_func_start sub_080A59C8 -sub_080A59C8: @ 0x080A59C8 - push {lr} - bl sub_080A51F4 - cmp r0, #0 - beq _080A5A52 - ldr r1, _080A59EC @ =gUnk_02000080 - ldrb r2, [r1, #3] - movs r3, #0 - ldr r0, _080A59F0 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #2 - beq _080A5A02 - cmp r0, #2 - bgt _080A59F4 - cmp r0, #1 - beq _080A5A0A - b _080A5A0C - .align 2, 0 -_080A59EC: .4byte gUnk_02000080 -_080A59F0: .4byte gUnk_03000FF0 -_080A59F4: - cmp r0, #0x40 - beq _080A59FE - cmp r0, #0x80 - beq _080A5A06 - b _080A5A0C -_080A59FE: - movs r2, #0 - b _080A5A0C -_080A5A02: - cmp r2, #0 - bne _080A5A10 -_080A5A06: - movs r2, #1 - b _080A5A0C -_080A5A0A: - movs r3, #1 -_080A5A0C: - cmp r3, #0 - beq _080A5A3C -_080A5A10: - movs r0, #0xff - strh r0, [r1, #8] - cmp r2, #0 - bne _080A5A2E - movs r0, #8 - movs r1, #0 - bl sub_08050318 - movs r0, #2 - bl sub_080A7114 - movs r0, #0x6a - bl sub_080A3268 - b _080A5A52 -_080A5A2E: - movs r0, #3 - bl sub_080A7114 - movs r0, #0x6c - bl sub_080A3268 - b _080A5A52 -_080A5A3C: - ldrb r0, [r1, #3] - cmp r0, r2 - beq _080A5A52 - strb r2, [r1, #3] - movs r0, #0 - adds r1, r2, #0 - bl sub_08052418 - movs r0, #0x69 - bl sub_080A3268 -_080A5A52: - pop {pc} - - thumb_func_start sub_080A5A54 -sub_080A5A54: @ 0x080A5A54 - push {lr} - movs r0, #0 - bl sub_0807CDA4 - adds r1, r0, #0 - cmp r1, #0 - beq _080A5A8A - cmp r1, #0 - bgt _080A5A70 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080A5A76 - b _080A5A8A -_080A5A70: - cmp r1, #1 - beq _080A5A84 - b _080A5A8A -_080A5A76: - movs r0, #9 - movs r1, #0 - bl sub_08050318 - ldr r1, _080A5A8C @ =gUnk_02000080 - movs r0, #0x3c - strh r0, [r1, #8] -_080A5A84: - movs r0, #3 - bl sub_080A7114 -_080A5A8A: - pop {pc} - .align 2, 0 -_080A5A8C: .4byte gUnk_02000080 - - thumb_func_start sub_080A5A90 -sub_080A5A90: @ 0x080A5A90 - push {lr} - ldr r2, _080A5AA4 @ =gUnk_02000080 - ldrh r0, [r2, #8] - cmp r0, #0 - beq _080A5AA8 - cmp r0, #0xff - beq _080A5AC0 - subs r0, #1 - strh r0, [r2, #8] - b _080A5AD2 - .align 2, 0 -_080A5AA4: .4byte gUnk_02000080 -_080A5AA8: - ldr r0, _080A5ABC @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #0xb - ands r0, r1 - cmp r0, #0 - beq _080A5AD2 - movs r0, #0xff - strh r0, [r2, #8] - b _080A5AD2 - .align 2, 0 -_080A5ABC: .4byte gUnk_03000FF0 -_080A5AC0: - ldr r0, _080A5AD4 @ =gUnk_02034490 - ldrb r0, [r0, #1] - movs r1, #1 - cmp r0, #0xa - bne _080A5ACC - movs r1, #2 -_080A5ACC: - adds r0, r1, #0 - bl sub_080A4E84 -_080A5AD2: - pop {pc} - .align 2, 0 -_080A5AD4: .4byte gUnk_02034490 - - thumb_func_start sub_080A5AD8 -sub_080A5AD8: @ 0x080A5AD8 - push {lr} - ldr r1, _080A5AEC @ =gUnk_08128D24 - ldr r0, _080A5AF0 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080A5AEC: .4byte gUnk_08128D24 -_080A5AF0: .4byte gUnk_02000080 - - thumb_func_start sub_080A5AF4 -sub_080A5AF4: @ 0x080A5AF4 - push {r4, lr} - ldr r0, _080A5B18 @ =gUnk_02000080 - movs r4, #0 - strb r4, [r0, #3] - movs r0, #2 - movs r1, #0 - bl sub_08052418 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _080A5B24 - ldr r1, _080A5B1C @ =gUnk_03000F50 - ldr r0, _080A5B20 @ =0x0000FFFC - strh r0, [r1, #0x18] - b _080A5B28 - .align 2, 0 -_080A5B18: .4byte gUnk_02000080 -_080A5B1C: .4byte gUnk_03000F50 -_080A5B20: .4byte 0x0000FFFC -_080A5B24: - ldr r0, _080A5B30 @ =gUnk_03000F50 - strh r4, [r0, #0x18] -_080A5B28: - movs r0, #1 - bl sub_080A7114 - pop {r4, pc} - .align 2, 0 -_080A5B30: .4byte gUnk_03000F50 - - thumb_func_start sub_080A5B34 -sub_080A5B34: @ 0x080A5B34 - push {r4, r5, r6, lr} - bl sub_080A51F4 - cmp r0, #0 - beq _080A5BB6 - ldr r1, _080A5B58 @ =gUnk_02000080 - ldrb r4, [r1, #3] - movs r5, #0 - ldr r0, _080A5B5C @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - adds r6, r1, #0 - cmp r0, #2 - beq _080A5B6C - cmp r0, #2 - bgt _080A5B60 - cmp r0, #1 - beq _080A5B74 - b _080A5B76 - .align 2, 0 -_080A5B58: .4byte gUnk_02000080 -_080A5B5C: .4byte gUnk_03000FF0 -_080A5B60: - cmp r0, #0x10 - beq _080A5B70 - cmp r0, #0x20 - bne _080A5B76 - movs r4, #0 - b _080A5B76 -_080A5B6C: - cmp r4, #0 - bne _080A5B74 -_080A5B70: - movs r4, #1 - b _080A5B76 -_080A5B74: - movs r5, #1 -_080A5B76: - adds r1, r6, #0 - ldrb r0, [r1, #3] - cmp r0, r4 - beq _080A5B8E - strb r4, [r1, #3] - movs r0, #2 - adds r1, r4, #0 - bl sub_08052418 - movs r0, #0x69 - bl sub_080A3268 -_080A5B8E: - cmp r5, #0 - beq _080A5BB6 - cmp r4, #0 - bne _080A5BAA - movs r0, #7 - movs r1, #0x20 - bl sub_08050054 - movs r0, #0x3c - strh r0, [r6, #8] - movs r0, #2 - bl sub_080A7114 - b _080A5BB6 -_080A5BAA: - movs r0, #0x6c - bl sub_080A3268 - movs r0, #2 - bl sub_080A4E84 -_080A5BB6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080A5BB8 -sub_080A5BB8: @ 0x080A5BB8 - push {lr} - ldr r0, _080A5BE4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A5BE2 - bl sub_08050384 - ldr r1, _080A5BE8 @ =gUnk_03001000 - ldrb r0, [r1, #1] - movs r0, #1 - strb r0, [r1, #1] - movs r0, #6 - movs r1, #8 - bl sub_08050054 - movs r0, #2 - bl sub_080A4E84 - ldr r1, _080A5BEC @ =gUnk_02034490 - movs r0, #0x10 - strb r0, [r1, #0x16] -_080A5BE2: - pop {pc} - .align 2, 0 -_080A5BE4: .4byte gUnk_03000FD0 -_080A5BE8: .4byte gUnk_03001000 -_080A5BEC: .4byte gUnk_02034490 - - thumb_func_start sub_080A5BF0 -sub_080A5BF0: @ 0x080A5BF0 - push {r4, r5, lr} - ldr r1, _080A5C30 @ =gUnk_08128D30 - ldr r0, _080A5C34 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_080A5D1C - ldr r0, _080A5C38 @ =gUnk_03001000 - ldrh r0, [r0, #0xc] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _080A5C2E - ldr r4, _080A5C3C @ =gUnk_02017830 - ldrh r5, [r4] - adds r0, r4, #2 - adds r1, r4, #0 - movs r2, #0xe - bl sub_0801D66C - strh r5, [r4, #0xe] - ldr r2, _080A5C40 @ =gUnk_0200B644 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #5 - orrs r0, r1 - str r0, [r2] -_080A5C2E: - pop {r4, r5, pc} - .align 2, 0 -_080A5C30: .4byte gUnk_08128D30 -_080A5C34: .4byte gUnk_02000080 -_080A5C38: .4byte gUnk_03001000 -_080A5C3C: .4byte gUnk_02017830 -_080A5C40: .4byte gUnk_0200B644 - - thumb_func_start sub_080A5C44 -sub_080A5C44: @ 0x080A5C44 - push {r4, lr} - ldr r1, _080A5C88 @ =gUnk_02000080 - ldr r0, _080A5C8C @ =gUnk_08128D38 - str r0, [r1, #0xc] - ldrb r0, [r1, #3] - bl sub_080A5CFC - movs r0, #0x81 - bl sub_0801D7EC - ldr r4, _080A5C90 @ =gUnk_02033A90 - ldrb r0, [r4, #3] - movs r1, #1 - bl sub_080A6FB4 - movs r0, #1 - bl sub_080A7114 - ldrb r1, [r4, #3] - lsls r1, r1, #1 - ldr r0, _080A5C94 @ =gUnk_08128D43 - adds r1, r1, r0 - ldr r2, _080A5C98 @ =gUnk_03000F50 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r2, #0x16] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r2, #0x18] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {r4, pc} - .align 2, 0 -_080A5C88: .4byte gUnk_02000080 -_080A5C8C: .4byte gUnk_08128D38 -_080A5C90: .4byte gUnk_02033A90 -_080A5C94: .4byte gUnk_08128D43 -_080A5C98: .4byte gUnk_03000F50 - - thumb_func_start sub_080A5C9C -sub_080A5C9C: @ 0x080A5C9C - push {lr} - bl sub_080A51F4 - cmp r0, #0 - beq _080A5CFA - ldr r0, _080A5CC4 @ =gUnk_02033A90 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - ldr r1, _080A5CC8 @ =gUnk_080C9C6C - adds r3, r0, r1 - ldr r1, _080A5CCC @ =gUnk_02000080 - ldrb r2, [r1, #3] - ldr r0, _080A5CD0 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #0x40 - beq _080A5CD4 - cmp r0, #0x80 - beq _080A5CDC - b _080A5CE6 - .align 2, 0 -_080A5CC4: .4byte gUnk_02033A90 -_080A5CC8: .4byte gUnk_080C9C6C -_080A5CCC: .4byte gUnk_02000080 -_080A5CD0: .4byte gUnk_03000FF0 -_080A5CD4: - cmp r2, #0 - ble _080A5CE6 - subs r2, #1 - b _080A5CE6 -_080A5CDC: - ldrb r0, [r3] - subs r0, #1 - cmp r0, r2 - ble _080A5CE6 - adds r2, #1 -_080A5CE6: - ldrb r0, [r1, #3] - cmp r0, r2 - beq _080A5CFA - strb r2, [r1, #3] - adds r0, r2, #0 - bl sub_080A5CFC - movs r0, #0x69 - bl sub_080A3268 -_080A5CFA: - pop {pc} - - thumb_func_start sub_080A5CFC -sub_080A5CFC: @ 0x080A5CFC - push {r4, lr} - adds r4, r0, #0 - bl sub_0801DDA0 - bl sub_0801DD88 - ldr r1, _080A5D18 @ =gUnk_02019EE0 - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r4, #0 - bl sub_0801DBA0 - pop {r4, pc} - .align 2, 0 -_080A5D18: .4byte gUnk_02019EE0 - - thumb_func_start sub_080A5D1C -sub_080A5D1C: @ 0x080A5D1C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080A5E98 @ =gUnk_02033A90 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - ldr r1, _080A5E9C @ =gUnk_080C9C6C - adds r7, r0, r1 - ldr r1, _080A5EA0 @ =gUnk_08128D3C - ldrb r0, [r7] - adds r0, r0, r1 - ldrb r6, [r0] - bl sub_0801DB94 - mov r8, r0 - ldr r5, _080A5EA4 @ =gUnk_03001010 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r5, #4] - movs r0, #0 - strh r0, [r5, #6] - strh r0, [r5, #8] - movs r0, #0x34 - strh r0, [r5] - ldr r0, _080A5EA8 @ =gUnk_02000080 - ldrb r1, [r0, #3] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r6, r0 - strh r0, [r5, #2] - ldr r1, _080A5EAC @ =gUnk_03001000 - mov sl, r1 - ldrh r1, [r1, #0xc] - movs r0, #0x10 - ands r0, r1 - movs r1, #0x74 - cmp r0, #0 - bne _080A5D70 - movs r1, #0x75 -_080A5D70: - ldr r0, _080A5EB0 @ =0x000001FB - bl sub_080ADA14 - movs r0, #0x20 - mov sb, r0 - mov r1, sb - strh r1, [r5] - mov r1, r8 - lsls r0, r1, #1 - add r0, r8 - lsls r0, r0, #2 - adds r0, r6, r0 - strh r0, [r5, #2] - mov r0, sl - ldrh r1, [r0, #0xc] - mov r0, sb - ands r0, r1 - movs r1, #0x79 - cmp r0, #0 - beq _080A5D9A - movs r1, #0x78 -_080A5D9A: - ldr r0, _080A5EB0 @ =0x000001FB - bl sub_080ADA14 - movs r0, #0x7e - strh r0, [r5, #2] - movs r0, #0x87 - lsls r0, r0, #7 - strh r0, [r5, #8] - bl sub_080527CC - cmp r0, #0 - beq _080A5DCC - movs r0, #0x18 - strh r0, [r5] - ldr r0, _080A5EB4 @ =gUnk_080FDFD8 - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r4, [r0] - movs r0, #0xa2 - lsls r0, r0, #1 - adds r1, r4, #0 - bl sub_080ADA14 -_080A5DCC: - bl sub_08052764 - cmp r0, #0 - beq _080A5DEE - movs r0, #0x2e - strh r0, [r5] - ldr r0, _080A5EB4 @ =gUnk_080FDFD8 - movs r1, #0xa4 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r4, [r0] - movs r0, #0xa2 - lsls r0, r0, #1 - adds r1, r4, #0 - bl sub_080ADA14 -_080A5DEE: - bl sub_0805279C - cmp r0, #0 - beq _080A5E48 - movs r0, #0x45 - strh r0, [r5] - movs r0, #0xe0 - lsls r0, r0, #2 - strh r0, [r5, #8] - ldr r1, _080A5EB4 @ =gUnk_080FDFD8 - movs r0, #0xa2 - lsls r0, r0, #1 - adds r1, r1, r0 - ldr r1, [r1] - ldrb r4, [r1] - adds r1, r4, #0 - bl sub_080ADA14 - bl sub_080A5F24 - cmp r0, #0 - beq _080A5E48 - movs r0, #0 - strh r0, [r5, #8] - movs r0, #0x46 - strh r0, [r5] - ldrb r1, [r7, #1] - ldrb r0, [r7, #2] - subs r1, r1, r0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r6, r0 - strh r0, [r5, #2] - mov r0, sl - ldrh r1, [r0, #0xc] - mov r0, sb - ands r0, r1 - movs r1, #0x7b - cmp r0, #0 - beq _080A5E42 - movs r1, #0x7a -_080A5E42: - ldr r0, _080A5EB0 @ =0x000001FB - bl sub_080ADA14 -_080A5E48: - ldr r1, _080A5EA4 @ =gUnk_03001010 - movs r0, #0 - strh r0, [r1, #8] - movs r0, #0x34 - strh r0, [r1] - strh r6, [r1, #2] - ldrb r0, [r7, #1] - adds r4, r0, #0 - adds r4, #0x82 - movs r5, #0 - ldrb r0, [r7] - cmp r5, r0 - bhs _080A5E7C - adds r6, r1, #0 -_080A5E64: - ldr r0, _080A5EB0 @ =0x000001FB - adds r1, r4, #0 - bl sub_080ADA14 - subs r4, #1 - ldrh r0, [r6, #2] - adds r0, #0xc - strh r0, [r6, #2] - adds r5, #1 - ldrb r1, [r7] - cmp r5, r1 - blo _080A5E64 -_080A5E7C: - ldr r5, _080A5EB8 @ =gUnk_02019EE0 - ldrb r0, [r5] - cmp r0, #0 - beq _080A5F14 - ldr r7, _080A5EA4 @ =gUnk_03001010 - ldr r6, _080A5EBC @ =gUnk_03000F50 -_080A5E88: - ldrb r0, [r5] - cmp r0, #2 - beq _080A5EDC - cmp r0, #2 - bgt _080A5EC0 - cmp r0, #1 - beq _080A5ECA - b _080A5EEE - .align 2, 0 -_080A5E98: .4byte gUnk_02033A90 -_080A5E9C: .4byte gUnk_080C9C6C -_080A5EA0: .4byte gUnk_08128D3C -_080A5EA4: .4byte gUnk_03001010 -_080A5EA8: .4byte gUnk_02000080 -_080A5EAC: .4byte gUnk_03001000 -_080A5EB0: .4byte 0x000001FB -_080A5EB4: .4byte gUnk_080FDFD8 -_080A5EB8: .4byte gUnk_02019EE0 -_080A5EBC: .4byte gUnk_03000F50 -_080A5EC0: - cmp r0, #3 - beq _080A5EE0 - cmp r0, #4 - beq _080A5EE4 - b _080A5EEE -_080A5ECA: - movs r4, #0x7d - ldr r0, _080A5ED8 @ =gUnk_02000080 - ldrb r0, [r0, #3] - cmp r8, r0 - beq _080A5EF0 - movs r4, #0x7e - b _080A5EF0 - .align 2, 0 -_080A5ED8: .4byte gUnk_02000080 -_080A5EDC: - movs r4, #0x80 - b _080A5EF0 -_080A5EE0: - movs r4, #0x81 - b _080A5EF0 -_080A5EE4: - bl sub_080A5F24 - movs r4, #0x7f - cmp r0, #0 - bne _080A5EF0 -_080A5EEE: - movs r4, #0xff -_080A5EF0: - ldrb r0, [r5, #1] - adds r0, #0x50 - ldrh r1, [r6, #0x16] - subs r0, r0, r1 - strh r0, [r7] - ldrb r0, [r5, #2] - adds r0, #0x10 - ldrh r1, [r6, #0x18] - subs r0, r0, r1 - strh r0, [r7, #2] - ldr r0, _080A5F20 @ =0x000001FB - adds r1, r4, #0 - bl sub_080ADA14 - adds r5, #3 - ldrb r0, [r5] - cmp r0, #0 - bne _080A5E88 -_080A5F14: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A5F20: .4byte 0x000001FB - - thumb_func_start sub_080A5F24 -sub_080A5F24: @ 0x080A5F24 - push {r4, lr} - movs r4, #1 - ldr r0, _080A5F44 @ =gUnk_02033A90 - ldrb r0, [r0, #3] - cmp r0, #6 - bne _080A5F40 - movs r0, #0x8c - lsls r0, r0, #4 - movs r1, #0x7b - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _080A5F40 - movs r4, #0 -_080A5F40: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_080A5F44: .4byte gUnk_02033A90 - - thumb_func_start sub_080A5F48 -sub_080A5F48: @ 0x080A5F48 - push {r4, r5, lr} - adds r4, r0, #0 - cmp r4, #0x1f - bhi _080A5F5C - cmp r4, #0x1c - blo _080A5F5C - ldr r0, _080A5F9C @ =gUnk_02002A40 - adds r0, r0, r4 - adds r0, #0x9a - ldrb r4, [r0] -_080A5F5C: - lsls r0, r1, #5 - ldr r1, _080A5FA0 @ =0x06010000 - adds r5, r0, r1 - ldr r1, _080A5FA4 @ =gUnk_080FDFD8 - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrb r1, [r0] - ldr r3, _080A5FA8 @ =gUnk_08003DD4 - lsls r1, r1, #2 - ldr r0, [r3, #4] - adds r0, r0, r1 - ldr r2, _080A5FAC @ =0x040000D4 - ldrh r1, [r0, #2] - lsls r1, r1, #5 - ldr r0, [r3, #8] - adds r0, r0, r1 - str r0, [r2] - str r5, [r2, #4] - ldr r0, _080A5FB0 @ =0x84000040 - str r0, [r2, #8] - ldr r0, [r2, #8] - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, #7 - blo _080A5FBE - cmp r4, #8 - bhi _080A5FB4 - ldr r0, _080A5F9C @ =gUnk_02002A40 - adds r0, #0xac - b _080A5FBC - .align 2, 0 -_080A5F9C: .4byte gUnk_02002A40 -_080A5FA0: .4byte 0x06010000 -_080A5FA4: .4byte gUnk_080FDFD8 -_080A5FA8: .4byte gUnk_08003DD4 -_080A5FAC: .4byte 0x040000D4 -_080A5FB0: .4byte 0x84000040 -_080A5FB4: - cmp r4, #0xa - bhi _080A5FBE - ldr r0, _080A5FF8 @ =gUnk_02002A40 - adds r0, #0xad -_080A5FBC: - ldrb r0, [r0] -_080A5FBE: - cmp r0, #0 - blt _080A5FF6 - movs r1, #0xa - bl Div - adds r4, r1, #0 - cmp r0, #9 - ble _080A5FD0 - movs r0, #9 -_080A5FD0: - ldr r1, _080A5FFC @ =0x040000D4 - lsls r0, r0, #5 - ldr r2, _080A6000 @ =gUnk_085C4620 - adds r0, r0, r2 - str r0, [r1] - str r5, [r1, #4] - ldr r3, _080A6004 @ =0x84000008 - str r3, [r1, #8] - ldr r0, [r1, #8] - adds r0, r4, #0 - adds r0, #0xa - lsls r0, r0, #5 - adds r0, r0, r2 - str r0, [r1] - adds r0, r5, #0 - adds r0, #0x20 - str r0, [r1, #4] - str r3, [r1, #8] - ldr r0, [r1, #8] -_080A5FF6: - pop {r4, r5, pc} - .align 2, 0 -_080A5FF8: .4byte gUnk_02002A40 -_080A5FFC: .4byte 0x040000D4 -_080A6000: .4byte gUnk_085C4620 -_080A6004: .4byte 0x84000008 - - thumb_func_start sub_080A6008 -sub_080A6008: @ 0x080A6008 - push {lr} - ldr r1, _080A601C @ =gUnk_08128D58 - ldr r0, _080A6020 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080A601C: .4byte gUnk_08128D58 -_080A6020: .4byte gUnk_02000080 - - thumb_func_start sub_080A6024 -sub_080A6024: @ 0x080A6024 - push {lr} - ldr r0, _080A6040 @ =gUnk_08128D60 - bl sub_080A70AC - movs r0, #0 - bl sub_0801E738 - bl sub_080A4398 - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_080A6040: .4byte gUnk_08128D60 - - thumb_func_start sub_080A6044 -sub_080A6044: @ 0x080A6044 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - bl sub_080A51F4 - cmp r0, #0 - beq _080A60C2 - ldr r0, _080A60CC @ =gUnk_02000080 - ldr r1, _080A60D0 @ =gUnk_08128D51 - str r1, [r0, #0xc] - ldr r1, _080A60D4 @ =gUnk_03001010 - movs r0, #0 - strh r0, [r1, #4] - strh r0, [r1, #6] - movs r5, #0 - movs r4, #0 - ldr r0, _080A60D8 @ =gUnk_02002A40 - movs r2, #0x8c - lsls r2, r2, #1 - adds r3, r0, r2 - ldrb r2, [r3] - cmp r2, #0 - beq _080A60C2 - adds r6, r1, #0 - movs r1, #0 - mov sb, r1 - adds r7, r0, #0 - mov r8, r3 -_080A607E: - movs r1, #3 - ands r1, r5 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #4 - adds r0, #0x2b - strh r0, [r6] - lsrs r1, r5, #2 - lsls r0, r1, #3 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, #0x34 - strh r0, [r6, #2] - ldr r3, _080A60DC @ =0x0000012B - adds r0, r7, r3 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r0, _080A60CC @ =gUnk_02000080 - mov r3, sb - strb r3, [r0, #1] - adds r0, r2, #0 - bl sub_080A42E0 - adds r5, #1 - cmp r5, #0xa - bhi _080A60C2 - adds r4, #1 - cmp r4, #0x11 - bhi _080A60C2 - mov r1, r8 - adds r0, r4, r1 - ldrb r2, [r0] - cmp r2, #0 - bne _080A607E -_080A60C2: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A60CC: .4byte gUnk_02000080 -_080A60D0: .4byte gUnk_08128D51 -_080A60D4: .4byte gUnk_03001010 -_080A60D8: .4byte gUnk_02002A40 -_080A60DC: .4byte 0x0000012B - - thumb_func_start sub_080A60E0 -sub_080A60E0: @ 0x080A60E0 - push {r4, lr} - ldr r1, _080A6100 @ =gUnk_08128DB0 - ldr r4, _080A6104 @ =gUnk_02000080 - ldrb r0, [r4, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_080A617C - ldrb r0, [r4, #3] - bl sub_080A7040 - pop {r4, pc} - .align 2, 0 -_080A6100: .4byte gUnk_08128DB0 -_080A6104: .4byte gUnk_02000080 - - thumb_func_start sub_080A6108 -sub_080A6108: @ 0x080A6108 - push {lr} - ldr r0, _080A6120 @ =gUnk_02000080 - ldr r1, _080A6124 @ =gUnk_08128DB8 - str r1, [r0, #0xc] - ldr r0, _080A6128 @ =gUnk_08128DBC - bl sub_080A70AC - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_080A6120: .4byte gUnk_02000080 -_080A6124: .4byte gUnk_08128DB8 -_080A6128: .4byte gUnk_08128DBC - - thumb_func_start sub_080A612C -sub_080A612C: @ 0x080A612C - push {lr} - bl sub_080A51F4 - cmp r0, #0 - beq _080A6178 - ldr r1, _080A614C @ =gUnk_02000080 - ldrb r2, [r1, #3] - ldr r0, _080A6150 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #0x10 - beq _080A6154 - cmp r0, #0x20 - bne _080A6156 - subs r2, #1 - b _080A6156 - .align 2, 0 -_080A614C: .4byte gUnk_02000080 -_080A6150: .4byte gUnk_03000FF0 -_080A6154: - adds r2, #1 -_080A6156: - adds r3, r2, #0 - adds r3, #8 - adds r0, r3, #0 - cmp r3, #0 - bge _080A6164 - adds r0, r2, #0 - adds r0, #0xf -_080A6164: - asrs r2, r0, #3 - lsls r0, r2, #3 - subs r2, r3, r0 - ldrb r0, [r1, #3] - cmp r0, r2 - beq _080A6178 - strb r2, [r1, #3] - movs r0, #0x69 - bl sub_080A3268 -_080A6178: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A617C -sub_080A617C: @ 0x080A617C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r6, _080A6260 @ =gUnk_03001010 - movs r0, #0 - strh r0, [r6, #4] - strh r0, [r6, #6] - movs r7, #0xc0 - lsls r7, r7, #4 - strh r7, [r6, #8] - movs r0, #0x2f - mov r8, r0 - mov r2, r8 - strh r2, [r6, #2] - ldr r4, _080A6264 @ =gUnk_02000080 - ldrb r1, [r4, #3] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #2 - subs r0, r0, r1 - adds r0, #0x1a - strh r0, [r6] - ldr r0, _080A6268 @ =gUnk_03001000 - ldrh r1, [r0, #0xc] - movs r0, #0x20 - ands r0, r1 - movs r1, #9 - cmp r0, #0 - beq _080A61B8 - movs r1, #8 -_080A61B8: - movs r5, #0xfe - lsls r5, r5, #1 - adds r0, r5, #0 - bl sub_080ADA14 - ldrb r0, [r4, #3] - lsls r0, r0, #3 - ldr r1, _080A626C @ =gUnk_08128D70 - adds r4, r0, r1 - ldrb r0, [r4] - bl GetInventoryValue - cmp r0, #0 - beq _080A621C - strh r7, [r6, #8] - movs r0, #0xcc - strh r0, [r6] - movs r0, #0x88 - strh r0, [r6, #2] - adds r0, r5, #0 - movs r1, #0xb - bl sub_080ADA14 - movs r0, #0x30 - strh r0, [r6] - movs r0, #0x6c - strh r0, [r6, #2] - ldrb r0, [r4, #1] - lsls r0, r0, #0xc - movs r2, #0xd8 - lsls r2, r2, #4 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r6, #8] - ldrb r1, [r4, #2] - adds r0, r5, #0 - bl sub_080ADA14 - ldrb r0, [r4, #1] - lsls r0, r0, #0xc - orrs r0, r7 - strh r0, [r6, #8] - movs r0, #0x78 - strh r0, [r6] - movs r0, #0x68 - strh r0, [r6, #2] - adds r0, r5, #0 - movs r1, #0xc - bl sub_080ADA14 -_080A621C: - mov r0, r8 - strh r0, [r6, #2] - movs r5, #0 - adds r7, r6, #0 - movs r6, #0x18 -_080A6226: - lsls r1, r5, #3 - ldr r0, _080A626C @ =gUnk_08128D70 - adds r4, r1, r0 - ldrb r0, [r4] - bl GetInventoryValue - cmp r0, #0 - beq _080A6250 - ldrb r0, [r4, #1] - lsls r0, r0, #0xc - movs r2, #0xc0 - lsls r2, r2, #4 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r7, #8] - strh r6, [r7] - movs r0, #0xfe - lsls r0, r0, #1 - movs r1, #0xa - bl sub_080ADA14 -_080A6250: - adds r6, #0x1b - adds r5, #1 - cmp r5, #7 - bls _080A6226 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A6260: .4byte gUnk_03001010 -_080A6264: .4byte gUnk_02000080 -_080A6268: .4byte gUnk_03001000 -_080A626C: .4byte gUnk_08128D70 - - thumb_func_start sub_080A6270 -sub_080A6270: @ 0x080A6270 - push {lr} - ldr r1, _080A6288 @ =gUnk_08128DCC - ldr r0, _080A628C @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_080A6378 - pop {pc} - .align 2, 0 -_080A6288: .4byte gUnk_08128DCC -_080A628C: .4byte gUnk_02000080 - - thumb_func_start sub_080A6290 -sub_080A6290: @ 0x080A6290 - push {r4, lr} - ldr r0, _080A62C4 @ =gUnk_08128DD8 - bl sub_080A70AC - ldr r4, _080A62C8 @ =gUnk_02000080 - ldr r0, _080A62CC @ =gUnk_08128DD4 - str r0, [r4, #0xc] - movs r0, #0x81 - bl sub_0801D7EC - ldr r1, _080A62D0 @ =gUnk_03000F50 - ldr r0, _080A62D4 @ =0x0000FFFC - strh r0, [r1, #0x18] - strh r0, [r1, #0x24] - ldr r2, _080A62D8 @ =gUnk_02002A40 - ldr r0, [r2, #0x40] - ldr r1, _080A62DC @ =0x00010780 - orrs r0, r1 - str r0, [r2, #0x40] - bl sub_080A6F40 - strh r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #5] - pop {r4, pc} - .align 2, 0 -_080A62C4: .4byte gUnk_08128DD8 -_080A62C8: .4byte gUnk_02000080 -_080A62CC: .4byte gUnk_08128DD4 -_080A62D0: .4byte gUnk_03000F50 -_080A62D4: .4byte 0x0000FFFC -_080A62D8: .4byte gUnk_02002A40 -_080A62DC: .4byte 0x00010780 - - thumb_func_start sub_080A62E0 -sub_080A62E0: @ 0x080A62E0 - push {r4, lr} - bl sub_080A51F4 - cmp r0, #0 - beq _080A6372 - ldr r0, _080A6310 @ =gUnk_02000080 - ldrb r3, [r0, #3] - lsls r1, r3, #3 - ldr r0, _080A6314 @ =gUnk_08128DE8 - adds r1, r1, r0 - movs r4, #1 - rsbs r4, r4, #0 - ldr r0, _080A6318 @ =gUnk_03000FF0 - ldrh r2, [r0, #2] - cmp r2, #0x20 - beq _080A634E - cmp r2, #0x20 - bgt _080A631C - cmp r2, #1 - beq _080A6326 - cmp r2, #0x10 - beq _080A6354 - b _080A635A - .align 2, 0 -_080A6310: .4byte gUnk_02000080 -_080A6314: .4byte gUnk_08128DE8 -_080A6318: .4byte gUnk_03000FF0 -_080A631C: - cmp r2, #0x40 - beq _080A6344 - cmp r2, #0x80 - beq _080A634A - b _080A635A -_080A6326: - ldr r0, _080A6340 @ =gUnk_02002A40 - lsls r2, r3 - ldr r0, [r0, #0x40] - ands r0, r2 - cmp r0, #0 - beq _080A635A - movs r0, #0x6a - bl sub_080A3268 - movs r0, #6 - bl sub_080A4E84 - b _080A635A - .align 2, 0 -_080A6340: .4byte gUnk_02002A40 -_080A6344: - ldrb r0, [r1] - lsls r0, r0, #0x1b - b _080A6358 -_080A634A: - ldrh r0, [r1] - b _080A6356 -_080A634E: - ldrb r0, [r1, #2] - lsls r0, r0, #0x1b - b _080A6358 -_080A6354: - ldrh r0, [r1, #2] -_080A6356: - lsls r0, r0, #0x16 -_080A6358: - lsrs r4, r0, #0x1b -_080A635A: - cmp r4, #0 - blt _080A6368 - ldr r0, _080A6374 @ =gUnk_02000080 - strb r4, [r0, #3] - movs r0, #0x69 - bl sub_080A3268 -_080A6368: - ldr r0, _080A6374 @ =gUnk_02000080 - ldrb r0, [r0, #3] - movs r1, #0 - bl sub_080A6FB4 -_080A6372: - pop {r4, pc} - .align 2, 0 -_080A6374: .4byte gUnk_02000080 - - thumb_func_start sub_080A6378 -sub_080A6378: @ 0x080A6378 - push {r4, r5, r6, lr} - ldr r0, _080A6420 @ =gUnk_02000080 - adds r4, r0, #0 - adds r4, #0x2c - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - movs r6, #0x20 - ands r0, r6 - cmp r0, #0 - beq _080A6392 - bl sub_080A6438 -_080A6392: - ldr r5, _080A6424 @ =gUnk_03001010 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r5, #4] - movs r0, #0 - strh r0, [r5, #6] - movs r0, #0xe0 - lsls r0, r0, #7 - strh r0, [r5, #8] - ldrb r1, [r4] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _080A63EA - ldr r4, _080A6428 @ =gUnk_030010A0 - ldrh r1, [r4, #0x20] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #5 - movs r1, #0xf9 - lsls r1, r1, #4 - bl __divsi3 - adds r0, #0x28 - strh r0, [r5] - ldrh r0, [r4, #0x22] - lsls r0, r0, #7 - movs r1, #0xc6 - lsls r1, r1, #4 - bl __divsi3 - adds r0, #0xc - strh r0, [r5, #2] - ldr r0, _080A642C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #8 - ands r0, r1 - movs r1, #0x59 - cmp r0, #0 - beq _080A63E4 - movs r1, #0x5a -_080A63E4: - ldr r0, _080A6430 @ =0x000001FB - bl sub_080ADA14 -_080A63EA: - ldr r3, _080A6420 @ =gUnk_02000080 - ldrb r0, [r3, #3] - lsls r0, r0, #3 - ldr r1, _080A6434 @ =gUnk_08128DE8 - adds r0, r0, r1 - ldr r2, _080A6424 @ =gUnk_03001010 - ldrb r1, [r0, #6] - strh r1, [r2] - ldrb r0, [r0, #7] - strh r0, [r2, #2] - ldrb r0, [r3, #3] - lsls r2, r0, #1 - adds r2, r2, r0 - adds r2, #0x26 - adds r3, #0x2c - ldrb r1, [r3] - lsrs r1, r1, #4 - movs r0, #1 - bics r0, r1 - adds r1, r2, r0 - ldr r0, _080A6430 @ =0x000001FB - bl sub_080ADA14 - bl sub_080A6498 - pop {r4, r5, r6, pc} - .align 2, 0 -_080A6420: .4byte gUnk_02000080 -_080A6424: .4byte gUnk_03001010 -_080A6428: .4byte gUnk_030010A0 -_080A642C: .4byte gUnk_03003F80 -_080A6430: .4byte 0x000001FB -_080A6434: .4byte gUnk_08128DE8 - - thumb_func_start sub_080A6438 -sub_080A6438: @ 0x080A6438 - push {r4, r5, r6, r7, lr} - ldr r2, _080A6484 @ =gUnk_03001010 - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r2, #4] - strh r1, [r2, #6] - strh r1, [r2, #8] - ldr r0, _080A6488 @ =gUnk_02002A40 - ldr r1, _080A648C @ =gUnk_02000080 - ldrh r0, [r0, #0x20] - ldrh r5, [r1, #0x10] - ands r5, r0 - ldr r4, _080A6490 @ =gUnk_08128F58 - movs r6, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _080A6482 - adds r7, r2, #0 -_080A645E: - movs r0, #1 - lsls r0, r6 - ands r0, r5 - cmp r0, #0 - beq _080A6478 - ldrb r0, [r4, #1] - strh r0, [r7] - ldrb r0, [r4, #2] - strh r0, [r7, #2] - ldrb r1, [r4] - ldr r0, _080A6494 @ =0x000001FB - bl sub_080ADA14 -_080A6478: - adds r6, #1 - adds r4, #8 - ldrb r0, [r4] - cmp r0, #0 - bne _080A645E -_080A6482: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A6484: .4byte gUnk_03001010 -_080A6488: .4byte gUnk_02002A40 -_080A648C: .4byte gUnk_02000080 -_080A6490: .4byte gUnk_08128F58 -_080A6494: .4byte 0x000001FB - - thumb_func_start sub_080A6498 -sub_080A6498: @ 0x080A6498 - push {r4, r5, r6, r7, lr} - ldr r0, _080A64E4 @ =gUnk_03001010 - movs r2, #0 - movs r1, #0x80 - lsls r1, r1, #4 - strh r1, [r0, #4] - strh r2, [r0, #6] - strh r2, [r0, #8] - movs r4, #0 - ldr r7, _080A64E8 @ =gUnk_02002A40 - adds r6, r0, #0 - movs r5, #0x28 -_080A64B0: - movs r1, #1 - lsls r1, r4 - ldr r0, [r7, #0x40] - ands r0, r1 - cmp r0, #0 - bne _080A64D2 - lsls r1, r4, #3 - ldr r0, _080A64EC @ =gUnk_08128DE8 - adds r1, r1, r0 - ldrb r0, [r1, #6] - strh r0, [r6] - ldrb r0, [r1, #7] - strh r0, [r6, #2] - ldr r0, _080A64F0 @ =0x000001FB - adds r1, r5, #0 - bl sub_080ADA14 -_080A64D2: - adds r5, #3 - adds r4, #1 - cmp r4, #0x10 - bls _080A64B0 - ldr r0, _080A64F4 @ =gUnk_03000F50 - adds r0, #0x62 - ldr r1, _080A64F8 @ =0x00003D3F - strh r1, [r0] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A64E4: .4byte gUnk_03001010 -_080A64E8: .4byte gUnk_02002A40 -_080A64EC: .4byte gUnk_08128DE8 -_080A64F0: .4byte 0x000001FB -_080A64F4: .4byte gUnk_03000F50 -_080A64F8: .4byte 0x00003D3F - - thumb_func_start sub_080A64FC -sub_080A64FC: @ 0x080A64FC - push {r4, lr} - bl sub_080AD90C - ldr r1, _080A652C @ =gUnk_08128E70 - ldr r4, _080A6530 @ =gUnk_02000080 - ldrb r0, [r4, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - adds r4, #0x2c - ldrb r1, [r4] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080A6522 - bl sub_080A6438 -_080A6522: - bl sub_080A6498 - bl sub_080AD918 - pop {r4, pc} - .align 2, 0 -_080A652C: .4byte gUnk_08128E70 -_080A6530: .4byte gUnk_02000080 - - thumb_func_start sub_080A6534 -sub_080A6534: @ 0x080A6534 - push {r4, lr} - bl sub_080A4D34 - movs r0, #4 - bl sub_080A4DB8 - bl sub_080A6290 - ldr r2, _080A6590 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _080A6594 @ =0x0000F7FF - ands r0, r1 - movs r4, #0 - strh r0, [r2] - ldr r0, _080A6598 @ =gUnk_020176A0 - adds r0, #0xa2 - ldrh r1, [r0] - movs r0, #0 - bl sub_0801D79C - ldr r1, _080A659C @ =gUnk_08128F4C - ldr r0, _080A65A0 @ =gUnk_02032EC0 - ldrb r0, [r0, #3] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r2, [r0] - ldr r3, _080A65A4 @ =gUnk_02002A40 - ldrh r1, [r3, #0x20] - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r3, #0x20] - ldr r1, _080A65A8 @ =gUnk_02000080 - ldrh r0, [r1, #0x10] - ands r2, r0 - strh r2, [r1, #0x12] - strh r4, [r1, #0x10] - movs r0, #0x3c - strh r0, [r1, #8] - movs r0, #1 - bl sub_080A7114 - movs r0, #4 - movs r1, #8 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_080A6590: .4byte gUnk_03000F50 -_080A6594: .4byte 0x0000F7FF -_080A6598: .4byte gUnk_020176A0 -_080A659C: .4byte gUnk_08128F4C -_080A65A0: .4byte gUnk_02032EC0 -_080A65A4: .4byte gUnk_02002A40 -_080A65A8: .4byte gUnk_02000080 - - thumb_func_start sub_080A65AC -sub_080A65AC: @ 0x080A65AC - push {r4, lr} - ldr r0, _080A65E4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A6600 - ldr r4, _080A65E8 @ =gUnk_02000080 - adds r1, r4, #0 - adds r1, #0x2c - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldrh r0, [r4, #8] - cmp r0, #0 - beq _080A65EC - cmp r0, #0x1e - bne _080A65DA - ldrh r0, [r4, #0x12] - strh r0, [r4, #0x10] - movs r0, #0x20 - strb r0, [r1] - adds r0, #0xe3 - bl sub_080A3268 -_080A65DA: - ldrh r0, [r4, #8] - subs r0, #1 - strh r0, [r4, #8] - b _080A6600 - .align 2, 0 -_080A65E4: .4byte gUnk_03000FD0 -_080A65E8: .4byte gUnk_02000080 -_080A65EC: - ldr r0, _080A6604 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #1 - blt _080A6600 - cmp r0, #2 - ble _080A65FC - cmp r0, #8 - bne _080A6600 -_080A65FC: - bl sub_080A71DC -_080A6600: - pop {r4, pc} - .align 2, 0 -_080A6604: .4byte gUnk_03000FF0 - - thumb_func_start sub_080A6608 -sub_080A6608: @ 0x080A6608 - push {r4, lr} - ldr r1, _080A6640 @ =gUnk_08128E78 - ldr r4, _080A6644 @ =gUnk_02000080 - ldrb r0, [r4, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldrb r1, [r4, #3] - lsls r1, r1, #3 - ldr r0, _080A6648 @ =gUnk_08128E94 - adds r1, r1, r0 - ldr r2, _080A664C @ =gUnk_03000F50 - movs r0, #5 - ldrsb r0, [r1, r0] - rsbs r0, r0, #0 - strh r0, [r2, #0x18] - ldrb r1, [r1, #6] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0xa] - subs r0, r0, r1 - strh r0, [r2, #0x24] - bl sub_080A66D0 - pop {r4, pc} - .align 2, 0 -_080A6640: .4byte gUnk_08128E78 -_080A6644: .4byte gUnk_02000080 -_080A6648: .4byte gUnk_08128E94 -_080A664C: .4byte gUnk_03000F50 - - thumb_func_start sub_080A6650 -sub_080A6650: @ 0x080A6650 - push {lr} - ldr r0, _080A6670 @ =gUnk_08128E84 - bl sub_080A70AC - ldr r0, _080A6674 @ =gUnk_02034490 - ldrb r0, [r0, #6] - ldr r1, _080A6678 @ =gUnk_02000080 - strb r0, [r1, #3] - bl sub_080A67C4 - bl sub_080A68D4 - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_080A6670: .4byte gUnk_08128E84 -_080A6674: .4byte gUnk_02034490 -_080A6678: .4byte gUnk_02000080 - - thumb_func_start sub_080A667C -sub_080A667C: @ 0x080A667C - push {lr} - ldr r2, _080A669C @ =gUnk_02000080 - ldr r0, _080A66A0 @ =gUnk_08128E80 - str r0, [r2, #0xc] - ldrb r0, [r2, #3] - lsls r0, r0, #3 - ldr r1, _080A66A4 @ =gUnk_08128E94 - adds r3, r0, r1 - ldrh r1, [r2, #0xa] - ldr r0, _080A66A8 @ =gUnk_03000FF0 - ldrh r0, [r0] - cmp r0, #0x40 - beq _080A66AC - cmp r0, #0x80 - beq _080A66B4 - b _080A66C2 - .align 2, 0 -_080A669C: .4byte gUnk_02000080 -_080A66A0: .4byte gUnk_08128E80 -_080A66A4: .4byte gUnk_08128E94 -_080A66A8: .4byte gUnk_03000FF0 -_080A66AC: - cmp r1, #0 - beq _080A66C2 - subs r1, #2 - b _080A66C2 -_080A66B4: - ldrb r0, [r3, #2] - cmp r0, r1 - bls _080A66BC - adds r1, #2 -_080A66BC: - cmp r0, r1 - bhs _080A66C2 - adds r1, r0, #0 -_080A66C2: - strh r1, [r2, #0xa] - ldrb r0, [r2, #3] - movs r1, #0 - bl sub_080A6FB4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A66D0 -sub_080A66D0: @ 0x080A66D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r6, _080A677C @ =gUnk_03001010 - movs r0, #0 - strh r0, [r6, #4] - strh r0, [r6, #6] - movs r0, #0x78 - strh r0, [r6] - ldr r4, _080A6780 @ =gUnk_02000080 - ldrb r0, [r4, #3] - lsls r0, r0, #3 - ldr r1, _080A6784 @ =gUnk_08128E94 - adds r5, r0, r1 - adds r1, r4, #0 - adds r1, #0x2c - ldrb r0, [r1] - adds r2, r0, #1 - strb r2, [r1] - adds r0, r4, #0 - adds r0, #0x2b - ldrb r0, [r0] - cmp r0, #1 - beq _080A6738 - movs r0, #0x10 - ands r2, r0 - cmp r2, #0 - beq _080A6738 - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r6, #8] - ldrh r0, [r4, #0xa] - cmp r0, #0 - beq _080A6724 - movs r0, #0xc - strh r0, [r6, #2] - ldr r0, _080A6788 @ =0x000001FB - movs r1, #0x71 - bl sub_080ADA14 -_080A6724: - ldrb r0, [r5, #2] - ldrh r4, [r4, #0xa] - cmp r0, r4 - bls _080A6738 - movs r0, #0x84 - strh r0, [r6, #2] - ldr r0, _080A6788 @ =0x000001FB - movs r1, #0x72 - bl sub_080ADA14 -_080A6738: - ldrb r0, [r5, #7] - mov sl, r0 - ldrb r5, [r5, #3] - mov sb, r5 - ldr r1, _080A6780 @ =gUnk_02000080 - ldrh r0, [r1, #0xa] - mov r8, r0 - ldr r2, _080A677C @ =gUnk_03001010 - movs r0, #0 - strh r0, [r2, #4] - strh r0, [r2, #6] - movs r0, #0xc0 - lsls r0, r0, #4 - strh r0, [r2, #8] - adds r1, #0x2c - ldrb r1, [r1] - movs r0, #0x20 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - ldr r4, _080A678C @ =gUnk_02019EE0 - ldrh r0, [r4, #2] - cmp r0, #0 - beq _080A67BA - rsbs r5, r6, #0 - orrs r5, r6 - adds r7, r2, #0 -_080A676E: - movs r1, #0 - ldrb r0, [r4] - cmp r0, #1 - bne _080A6790 - lsrs r1, r5, #0x1f - b _080A6796 - .align 2, 0 -_080A677C: .4byte gUnk_03001010 -_080A6780: .4byte gUnk_02000080 -_080A6784: .4byte gUnk_08128E94 -_080A6788: .4byte 0x000001FB -_080A678C: .4byte gUnk_02019EE0 -_080A6790: - cmp r6, #0 - bne _080A6796 - movs r1, #1 -_080A6796: - cmp r1, #0 - beq _080A67B2 - ldrh r0, [r4, #4] - add r0, sl - strh r0, [r7] - ldrh r0, [r4, #6] - add r0, sb - mov r1, r8 - subs r0, r0, r1 - strh r0, [r7, #2] - ldrh r0, [r4, #2] - ldrb r1, [r4, #1] - bl sub_080ADA14 -_080A67B2: - adds r4, #8 - ldrh r0, [r4, #2] - cmp r0, #0 - bne _080A676E -_080A67BA: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080A67C4 -sub_080A67C4: @ 0x080A67C4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0xba - bl sub_0801D714 - adds r5, r4, #0 - adds r5, #0x5f - cmp r4, #0xb - beq _080A67F4 - cmp r4, #0xb - bhi _080A67E0 - cmp r4, #9 - beq _080A67E6 - b _080A6822 -_080A67E0: - cmp r4, #0xe - beq _080A6802 - b _080A6822 -_080A67E6: - movs r0, #0x18 - bl GetProgressFlag - cmp r0, #0 - beq _080A6822 - movs r5, #0x70 - b _080A6822 -_080A67F4: - movs r0, #0xe - bl sub_0801E7F4 - cmp r0, #0 - beq _080A6822 - movs r5, #0x71 - b _080A6822 -_080A6802: - ldr r1, _080A68AC @ =gUnk_02032EC0 - adds r0, r1, #0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #8 - bne _080A6822 - adds r0, r1, #0 - adds r0, #0x21 - ldrb r0, [r0] - movs r1, #3 - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, r0, #0 - adds r5, #0x72 -_080A6822: - adds r0, r5, #0 - bl sub_0801D7EC - lsls r1, r4, #3 - ldr r0, _080A68B0 @ =gUnk_08128E94 - adds r4, r1, r0 - ldr r0, _080A68B4 @ =gUnk_03003DE4 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _080A68B8 @ =gUnk_02017AA0 - adds r1, r0, r1 - ldr r2, _080A68BC @ =0x00001E0A - adds r0, r2, #0 - movs r2, #7 -_080A6842: - strh r0, [r1] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _080A6842 - movs r2, #8 - movs r0, #5 - ldrsb r0, [r4, r0] - ldrb r3, [r4, #4] - adds r0, r0, r3 - ldr r5, _080A68B4 @ =gUnk_03003DE4 - ldr r6, _080A68B8 @ =gUnk_02017AA0 - cmp r2, r0 - bge _080A6874 - ldr r7, _080A68C0 @ =0x00001E0B - adds r3, r7, #0 -_080A6862: - strh r3, [r1] - adds r1, #2 - adds r2, #1 - movs r0, #5 - ldrsb r0, [r4, r0] - ldrb r7, [r4, #4] - adds r0, r0, r7 - cmp r2, r0 - blt _080A6862 -_080A6874: - cmp r2, #0x9f - bgt _080A6886 - ldr r3, _080A68BC @ =0x00001E0A - adds r0, r3, #0 -_080A687C: - strh r0, [r1] - adds r1, #2 - adds r2, #1 - cmp r2, #0x9f - ble _080A687C -_080A6886: - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - adds r0, r0, r6 - ldr r1, _080A68C4 @ =0x0400000E - ldr r2, _080A68C8 @ =0xA2600001 - bl sub_0805622C - ldr r1, _080A68CC @ =gUnk_02000080 - ldrb r0, [r4, #2] - lsrs r0, r0, #1 - strh r0, [r1, #0xa] - ldr r0, _080A68D0 @ =gUnk_02019EE0 - movs r1, #0x80 - lsls r1, r1, #3 - bl sub_0801D630 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A68AC: .4byte gUnk_02032EC0 -_080A68B0: .4byte gUnk_08128E94 -_080A68B4: .4byte gUnk_03003DE4 -_080A68B8: .4byte gUnk_02017AA0 -_080A68BC: .4byte 0x00001E0A -_080A68C0: .4byte 0x00001E0B -_080A68C4: .4byte 0x0400000E -_080A68C8: .4byte 0xA2600001 -_080A68CC: .4byte gUnk_02000080 -_080A68D0: .4byte gUnk_02019EE0 - - thumb_func_start sub_080A68D4 -sub_080A68D4: @ 0x080A68D4 - push {r4, r5, r6, lr} - ldr r0, _080A690C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #8 - ands r0, r1 - movs r4, #0x64 - cmp r0, #0 - beq _080A68E6 - movs r4, #0x65 -_080A68E6: - ldr r1, _080A6910 @ =gUnk_030010A0 - ldrh r0, [r1, #0x20] - ldrh r1, [r1, #0x22] - ldr r2, _080A6914 @ =0x000001FB - movs r3, #0x80 - lsls r3, r3, #1 - adds r3, r4, r3 - bl sub_080A698C - bl sub_080A6F40 - adds r6, r0, #0 - ldr r0, _080A6918 @ =gUnk_02002A40 - ldrh r0, [r0, #0x20] - ands r6, r0 - ldr r4, _080A691C @ =gUnk_08128F58 - movs r5, #0 - b _080A693A - .align 2, 0 -_080A690C: .4byte gUnk_03003F80 -_080A6910: .4byte gUnk_030010A0 -_080A6914: .4byte 0x000001FB -_080A6918: .4byte gUnk_02002A40 -_080A691C: .4byte gUnk_08128F58 -_080A6920: - movs r0, #1 - lsls r0, r5 - ands r0, r6 - cmp r0, #0 - beq _080A6936 - ldrh r0, [r4, #4] - ldrh r1, [r4, #6] - ldrb r3, [r4, #3] - ldr r2, _080A6980 @ =0x000001FB - bl sub_080A698C -_080A6936: - adds r5, #1 - adds r4, #8 -_080A693A: - ldrb r0, [r4] - cmp r0, #0 - bne _080A6920 - movs r5, #0xa -_080A6942: - adds r0, r5, #0 - bl sub_0801E7F4 - cmp r0, #0 - beq _080A6976 - adds r0, r5, #0 - bl sub_0801E810 - cmp r0, #0 - bne _080A6976 - ldr r1, _080A6984 @ =gUnk_080C9CBC - lsls r0, r5, #3 - adds r0, r0, r1 - ldrb r3, [r0, #7] - ldrb r0, [r0, #4] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080A6988 @ =gUnk_080FE320 - adds r1, r1, r0 - ldrh r0, [r1, #0xc] - ldrh r1, [r1, #0xe] - adds r3, #0x64 - ldr r2, _080A6980 @ =0x000001FB - bl sub_080A698C -_080A6976: - adds r5, #1 - cmp r5, #0x64 - bls _080A6942 - pop {r4, r5, r6, pc} - .align 2, 0 -_080A6980: .4byte 0x000001FB -_080A6984: .4byte gUnk_080C9CBC -_080A6988: .4byte gUnk_080FE320 - - thumb_func_start sub_080A698C -sub_080A698C: @ 0x080A698C - push {r4, r5, r6, lr} - adds r6, r2, #0 - adds r5, r3, #0 - bl sub_080A69E0 - adds r4, r0, #0 - cmp r4, #0 - ble _080A69D4 - ldr r2, _080A69D8 @ =gUnk_02000080 - adds r2, #0x2d - ldrb r0, [r2] - lsls r0, r0, #3 - ldr r3, _080A69DC @ =gUnk_02019EE0 - adds r0, r0, r3 - lsrs r1, r5, #8 - strb r1, [r0] - ldrb r0, [r2] - lsls r0, r0, #3 - adds r0, r0, r3 - strb r5, [r0, #1] - ldrb r0, [r2] - lsls r0, r0, #3 - adds r0, r0, r3 - strh r6, [r0, #2] - ldrb r0, [r2] - lsls r0, r0, #3 - adds r0, r0, r3 - strh r4, [r0, #4] - ldrb r0, [r2] - lsls r0, r0, #3 - adds r0, r0, r3 - asrs r1, r4, #0x10 - strh r1, [r0, #6] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] -_080A69D4: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A69D8: .4byte gUnk_02000080 -_080A69DC: .4byte gUnk_02019EE0 - - thumb_func_start sub_080A69E0 -sub_080A69E0: @ 0x080A69E0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - adds r6, r1, #0 - orrs r0, r6 - cmp r0, #0 - beq _080A6A06 - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_080A6A80 - adds r3, r0, #0 - cmp r3, #0 - beq _080A6A06 - ldr r0, _080A6A0C @ =gUnk_02000080 - ldrb r1, [r0, #3] - ldrb r2, [r3, #4] - cmp r1, r2 - beq _080A6A10 -_080A6A06: - movs r0, #1 - rsbs r0, r0, #0 - b _080A6A74 - .align 2, 0 -_080A6A0C: .4byte gUnk_02000080 -_080A6A10: - ldrb r1, [r0, #3] - cmp r1, #7 - beq _080A6A26 - cmp r1, #7 - bgt _080A6A20 - cmp r1, #4 - beq _080A6A26 - b _080A6A48 -_080A6A20: - cmp r1, #0xf - beq _080A6A44 - b _080A6A48 -_080A6A26: - ldrb r0, [r0, #3] - movs r2, #7 - cmp r0, #4 - bne _080A6A30 - movs r2, #9 -_080A6A30: - ldr r1, _080A6A40 @ =gUnk_0811E214 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r0, [r0, #2] - subs r6, r6, r0 - b _080A6A48 - .align 2, 0 -_080A6A40: .4byte gUnk_0811E214 -_080A6A44: - ldr r0, _080A6A78 @ =0xFFFFFEF8 - adds r7, r7, r0 -_080A6A48: - ldrb r0, [r3] - lsls r0, r0, #4 - subs r0, r7, r0 - movs r4, #0x64 - muls r0, r4, r0 - ldr r5, _080A6A7C @ =0x0000023A - adds r1, r5, #0 - str r3, [sp] - bl __divsi3 - adds r7, r0, #0 - ldr r3, [sp] - ldrb r0, [r3, #1] - lsls r0, r0, #4 - subs r0, r6, r0 - muls r0, r4, r0 - adds r1, r5, #0 - bl __divsi3 - adds r6, r0, #0 - lsls r0, r6, #0x10 - orrs r0, r7 -_080A6A74: - add sp, #4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A6A78: .4byte 0xFFFFFEF8 -_080A6A7C: .4byte 0x0000023A - - thumb_func_start sub_080A6A80 -sub_080A6A80: @ 0x080A6A80 - push {lr} - adds r3, r0, #0 - lsrs r3, r3, #4 - lsrs r1, r1, #4 - ldr r2, _080A6A8C @ =gUnk_08127F94 - b _080A6AAE - .align 2, 0 -_080A6A8C: .4byte gUnk_08127F94 -_080A6A90: - ldrb r0, [r2] - cmp r0, r3 - bhi _080A6AAC - ldrb r0, [r2, #2] - cmp r0, r3 - blo _080A6AAC - ldrb r0, [r2, #1] - cmp r0, r1 - bhi _080A6AAC - ldrb r0, [r2, #3] - cmp r0, r1 - blo _080A6AAC - adds r0, r2, #0 - b _080A6AB6 -_080A6AAC: - adds r2, #8 -_080A6AAE: - ldrb r0, [r2] - cmp r0, #0xff - bne _080A6A90 - movs r0, #0 -_080A6AB6: - pop {pc} - - thumb_func_start sub_080A6AB8 -sub_080A6AB8: @ 0x080A6AB8 - push {r4, lr} - bl sub_080AD90C - ldr r1, _080A6AF4 @ =gUnk_08128F1C - ldr r4, _080A6AF8 @ =gUnk_02000080 - ldrb r0, [r4, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldrb r1, [r4, #3] - lsls r1, r1, #3 - ldr r0, _080A6AFC @ =gUnk_08128E94 - adds r1, r1, r0 - ldr r2, _080A6B00 @ =gUnk_03000F50 - movs r0, #5 - ldrsb r0, [r1, r0] - rsbs r0, r0, #0 - strh r0, [r2, #0x18] - ldrb r1, [r1, #6] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - ldrh r0, [r4, #0xa] - subs r0, r0, r1 - strh r0, [r2, #0x24] - bl sub_080AD918 - pop {r4, pc} - .align 2, 0 -_080A6AF4: .4byte gUnk_08128F1C -_080A6AF8: .4byte gUnk_02000080 -_080A6AFC: .4byte gUnk_08128E94 -_080A6B00: .4byte gUnk_03000F50 - - thumb_func_start sub_080A6B04 -sub_080A6B04: @ 0x080A6B04 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl sub_080A4D34 - movs r0, #6 - bl sub_080A4DB8 - ldr r0, _080A6BF0 @ =gUnk_02022740 - ldrb r2, [r0, #3] - lsls r2, r2, #3 - ldr r0, _080A6BF4 @ =gUnk_080C9CBC - adds r2, r2, r0 - ldrb r1, [r2, #4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A6BF8 @ =gUnk_080FE320 - adds r0, r0, r1 - ldrb r2, [r2, #7] - mov r8, r2 - ldrh r6, [r0, #0xc] - ldrh r5, [r0, #0xe] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080A6A80 - ldrb r4, [r0, #4] - ldr r7, _080A6BFC @ =gUnk_02000080 - strb r4, [r7, #3] - adds r1, r7, #0 - adds r1, #0x2b - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080A67C4 - adds r0, r4, #0 - movs r1, #2 - bl sub_080A6FB4 - ldr r4, _080A6C00 @ =0x0000475F - movs r0, #0 - adds r1, r4, #0 - bl sub_0801D79C - movs r0, #0x5f - adds r1, r4, #0 - bl sub_0801D79C - ldr r0, _080A6C04 @ =0x00005001 - ldr r1, _080A6C08 @ =gUnk_02001A40 - movs r2, #0x80 - lsls r2, r2, #5 - bl sub_0801D5EC - ldr r0, _080A6C0C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #8 - ands r0, r1 - movs r2, #0x64 - cmp r0, #0 - beq _080A6B84 - movs r2, #0x65 -_080A6B84: - ldr r1, _080A6C10 @ =gUnk_030010A0 - ldrh r0, [r1, #0x20] - ldrh r1, [r1, #0x22] - ldr r4, _080A6C14 @ =0x000001FB - movs r3, #0x80 - lsls r3, r3, #1 - adds r3, r2, r3 - adds r2, r4, #0 - bl sub_080A698C - mov r3, r8 - adds r3, #0x64 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r4, #0 - bl sub_080A698C - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080A69E0 - asrs r5, r0, #0x10 - ldrb r0, [r7, #3] - lsls r0, r0, #3 - ldr r1, _080A6C18 @ =gUnk_08128E94 - adds r1, r0, r1 - movs r0, #0 - strh r0, [r7, #0xa] - ldrb r0, [r1, #2] - cmp r0, #0 - beq _080A6BD4 - adds r0, r5, #0 - subs r0, #0x3c - cmp r0, #0 - ble _080A6BD4 - ldrb r1, [r1, #2] - cmp r1, r0 - bge _080A6BD2 - adds r0, r1, #0 -_080A6BD2: - strh r0, [r7, #0xa] -_080A6BD4: - ldr r1, _080A6BFC @ =gUnk_02000080 - movs r0, #0x1e - strh r0, [r1, #8] - movs r0, #1 - bl sub_080A7114 - movs r0, #4 - movs r1, #8 - bl sub_08050054 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A6BF0: .4byte gUnk_02022740 -_080A6BF4: .4byte gUnk_080C9CBC -_080A6BF8: .4byte gUnk_080FE320 -_080A6BFC: .4byte gUnk_02000080 -_080A6C00: .4byte 0x0000475F -_080A6C04: .4byte 0x00005001 -_080A6C08: .4byte gUnk_02001A40 -_080A6C0C: .4byte gUnk_03003F80 -_080A6C10: .4byte gUnk_030010A0 -_080A6C14: .4byte 0x000001FB -_080A6C18: .4byte gUnk_08128E94 - - thumb_func_start sub_080A6C1C -sub_080A6C1C: @ 0x080A6C1C - push {lr} - ldr r0, _080A6C34 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A6C6A - ldr r0, _080A6C38 @ =gUnk_02000080 - ldrh r0, [r0, #8] - cmp r0, #0 - beq _080A6C3C - cmp r0, #1 - beq _080A6C5C - b _080A6C62 - .align 2, 0 -_080A6C34: .4byte gUnk_03000FD0 -_080A6C38: .4byte gUnk_02000080 -_080A6C3C: - bl sub_080A66D0 - ldr r0, _080A6C58 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #1 - blt _080A6C6A - cmp r0, #2 - ble _080A6C50 - cmp r0, #8 - bne _080A6C6A -_080A6C50: - bl sub_080A71DC - b _080A6C6A - .align 2, 0 -_080A6C58: .4byte gUnk_03000FF0 -_080A6C5C: - ldr r0, _080A6C6C @ =0x00000103 - bl sub_080A3268 -_080A6C62: - ldr r1, _080A6C70 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] -_080A6C6A: - pop {pc} - .align 2, 0 -_080A6C6C: .4byte 0x00000103 -_080A6C70: .4byte gUnk_02000080 - - thumb_func_start sub_080A6C74 -sub_080A6C74: @ 0x080A6C74 - push {r4, lr} - bl sub_080AD90C - ldr r1, _080A6CA0 @ =gUnk_08128F24 - ldr r4, _080A6CA4 @ =gUnk_02000080 - ldrb r0, [r4, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldrb r0, [r4] - cmp r0, #0 - beq _080A6C94 - bl sub_080A6E70 -_080A6C94: - bl sub_080A6498 - bl sub_080AD918 - pop {r4, pc} - .align 2, 0 -_080A6CA0: .4byte gUnk_08128F24 -_080A6CA4: .4byte gUnk_02000080 - - thumb_func_start sub_080A6CA8 -sub_080A6CA8: @ 0x080A6CA8 - push {lr} - bl sub_080A4D34 - movs r0, #0xd - bl sub_080A4DB8 - bl sub_080A6290 - movs r0, #0 - bl sub_080A6D74 - ldr r1, _080A6CD4 @ =gUnk_02000080 - strb r0, [r1, #3] - movs r0, #1 - bl sub_080A7114 - movs r0, #4 - movs r1, #8 - bl sub_08050054 - pop {pc} - .align 2, 0 -_080A6CD4: .4byte gUnk_02000080 - - thumb_func_start sub_080A6CD8 -sub_080A6CD8: @ 0x080A6CD8 - push {r4, lr} - ldr r0, _080A6D08 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A6D6E - ldr r1, _080A6D0C @ =gUnk_02000080 - movs r0, #1 - strb r0, [r1] - movs r4, #0 - ldr r0, _080A6D10 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - adds r2, r1, #0 - cmp r0, #0x10 - beq _080A6D34 - cmp r0, #0x10 - bgt _080A6D1A - cmp r0, #2 - beq _080A6D4C - cmp r0, #2 - bgt _080A6D14 - cmp r0, #1 - beq _080A6D38 - b _080A6D54 - .align 2, 0 -_080A6D08: .4byte gUnk_03000FD0 -_080A6D0C: .4byte gUnk_02000080 -_080A6D10: .4byte gUnk_03000FF0 -_080A6D14: - cmp r0, #8 - beq _080A6D38 - b _080A6D54 -_080A6D1A: - cmp r0, #0x40 - beq _080A6D2E - cmp r0, #0x40 - bgt _080A6D28 - cmp r0, #0x20 - beq _080A6D2E - b _080A6D54 -_080A6D28: - cmp r0, #0x80 - beq _080A6D34 - b _080A6D54 -_080A6D2E: - movs r4, #1 - rsbs r4, r4, #0 - b _080A6D58 -_080A6D34: - movs r4, #1 - b _080A6D58 -_080A6D38: - movs r0, #2 - strb r0, [r2] - bl sub_080A7114 - ldr r0, _080A6D48 @ =0x00000704 - bl sub_08056378 - b _080A6D54 - .align 2, 0 -_080A6D48: .4byte 0x00000704 -_080A6D4C: - movs r0, #3 - strb r0, [r1] - bl sub_080A7114 -_080A6D54: - cmp r4, #0 - beq _080A6D6E -_080A6D58: - adds r0, r4, #0 - bl sub_080A6D74 - ldr r1, _080A6D70 @ =gUnk_02000080 - ldrb r2, [r1, #3] - cmp r0, r2 - beq _080A6D6E - strb r0, [r1, #3] - movs r0, #0x69 - bl sub_080A3268 -_080A6D6E: - pop {r4, pc} - .align 2, 0 -_080A6D70: .4byte gUnk_02000080 - - thumb_func_start sub_080A6D74 -sub_080A6D74: @ 0x080A6D74 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r0, _080A6DA4 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - lsrs r2, r0, #0x18 - ldr r0, _080A6DA8 @ =gUnk_02000080 - ldrb r1, [r0, #3] - cmp r3, #0 - bne _080A6DAC - movs r1, #0 - movs r0, #1 - ands r0, r2 - cmp r0, #0 - bne _080A6DC6 - movs r3, #1 -_080A6D92: - adds r1, #1 - cmp r1, #7 - bhi _080A6DC6 - adds r0, r3, #0 - lsls r0, r1 - ands r0, r2 - cmp r0, #0 - beq _080A6D92 - b _080A6DC6 - .align 2, 0 -_080A6DA4: .4byte gUnk_02002A40 -_080A6DA8: .4byte gUnk_02000080 -_080A6DAC: - cmp r2, #0 - beq _080A6DC6 - movs r4, #7 - movs r5, #1 -_080A6DB4: - adds r0, r1, r3 - adds r1, r0, #0 - adds r1, #8 - ands r1, r4 - adds r0, r5, #0 - lsls r0, r1 - ands r0, r2 - cmp r0, #0 - beq _080A6DB4 -_080A6DC6: - movs r0, #7 - ands r1, r0 - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A6DD0 -sub_080A6DD0: @ 0x080A6DD0 - push {lr} - bl sub_08056338 - cmp r0, #0 - beq _080A6DE0 - cmp r0, #1 - beq _080A6DF0 - b _080A6DF6 -_080A6DE0: - ldr r1, _080A6DEC @ =gUnk_02000080 - movs r0, #2 - strb r0, [r1] - movs r0, #3 - b _080A6DF2 - .align 2, 0 -_080A6DEC: .4byte gUnk_02000080 -_080A6DF0: - movs r0, #1 -_080A6DF2: - bl sub_080A7114 -_080A6DF6: - pop {pc} - - thumb_func_start sub_080A6DF8 -sub_080A6DF8: @ 0x080A6DF8 - push {lr} - ldr r0, _080A6E14 @ =gUnk_02000080 - ldrb r0, [r0] - cmp r0, #2 - bne _080A6E18 - movs r0, #4 - bl sub_080A7114 - movs r0, #5 - movs r1, #8 - bl sub_08050054 - b _080A6E3A - .align 2, 0 -_080A6E14: .4byte gUnk_02000080 -_080A6E18: - bl sub_080791D0 - ldr r0, _080A6E3C @ =gLinkEntity - adds r1, r0, #0 - adds r1, #0x58 - ldrb r1, [r1] - ldrh r2, [r0, #0x12] - bl sub_080042D0 - bl sub_080A71DC - ldr r1, _080A6E40 @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] - movs r0, #0x6c - bl sub_080A3268 -_080A6E3A: - pop {pc} - .align 2, 0 -_080A6E3C: .4byte gLinkEntity -_080A6E40: .4byte gUnk_02034490 - - thumb_func_start sub_080A6E44 -sub_080A6E44: @ 0x080A6E44 - push {lr} - ldr r0, _080A6E64 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A6E60 - ldr r0, _080A6E68 @ =gUnk_02000080 - ldrb r1, [r0, #3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080A6E6C @ =gUnk_08128024 - adds r0, r0, r1 - bl sub_080A71F4 -_080A6E60: - pop {pc} - .align 2, 0 -_080A6E64: .4byte gUnk_03000FD0 -_080A6E68: .4byte gUnk_02000080 -_080A6E6C: .4byte gUnk_08128024 - - thumb_func_start sub_080A6E70 -sub_080A6E70: @ 0x080A6E70 - push {r4, r5, lr} - ldr r1, _080A6ED0 @ =gUnk_03001010 - movs r0, #0 - strh r0, [r1, #4] - strh r0, [r1, #6] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1, #8] - ldr r1, _080A6ED4 @ =gUnk_02000080 - adds r4, r1, #0 - adds r4, #0x2c - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldrb r0, [r1, #3] - bl sub_080A6EE0 - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - movs r1, #0x5e - cmp r0, #0 - beq _080A6EA0 - movs r1, #0x5d -_080A6EA0: - ldr r0, _080A6ED8 @ =0x000001FB - bl sub_080ADA14 - movs r4, #0 - ldr r5, _080A6EDC @ =gUnk_02002A40 -_080A6EAA: - adds r0, r4, #0 - adds r0, #0x18 - movs r1, #1 - lsls r1, r0 - ldr r0, [r5, #0x40] - ands r0, r1 - cmp r0, #0 - beq _080A6EC8 - adds r0, r4, #0 - bl sub_080A6EE0 - ldr r0, _080A6ED8 @ =0x000001FB - movs r1, #0x5c - bl sub_080ADA14 -_080A6EC8: - adds r4, #1 - cmp r4, #7 - bls _080A6EAA - pop {r4, r5, pc} - .align 2, 0 -_080A6ED0: .4byte gUnk_03001010 -_080A6ED4: .4byte gUnk_02000080 -_080A6ED8: .4byte 0x000001FB -_080A6EDC: .4byte gUnk_02002A40 - - thumb_func_start sub_080A6EE0 -sub_080A6EE0: @ 0x080A6EE0 - push {r4, r5, r6, lr} - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080A6F34 @ =gUnk_08128024 - adds r1, r1, r0 - ldrh r3, [r1, #6] - ldrh r4, [r1, #8] - ldr r0, _080A6F38 @ =gUnk_0811E214 - ldrb r2, [r1, #0xb] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r1, [r1, #0xc] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, [r2] - adds r1, r1, r0 - ldrh r0, [r1] - adds r3, r3, r0 - ldrh r0, [r1, #2] - adds r4, r4, r0 - ldr r6, _080A6F3C @ =gUnk_03001010 - lsls r0, r3, #2 - adds r0, r0, r3 - lsls r0, r0, #5 - movs r5, #0xf9 - lsls r5, r5, #4 - adds r1, r5, #0 - bl __divsi3 - adds r0, #0x28 - strh r0, [r6] - lsls r0, r4, #2 - adds r0, r0, r4 - lsls r0, r0, #5 - adds r1, r5, #0 - bl __divsi3 - adds r0, #0xc - strh r0, [r6, #2] - pop {r4, r5, r6, pc} - .align 2, 0 -_080A6F34: .4byte gUnk_08128024 -_080A6F38: .4byte gUnk_0811E214 -_080A6F3C: .4byte gUnk_03001010 - - thumb_func_start sub_080A6F40 -sub_080A6F40: @ 0x080A6F40 - push {r4, r5, r6, lr} - movs r5, #0 - ldr r4, _080A6F4C @ =gUnk_08128F38 - movs r6, #0 - b _080A6F60 - .align 2, 0 -_080A6F4C: .4byte gUnk_08128F38 -_080A6F50: - ldrb r0, [r4] - ldrb r1, [r4, #1] - bl sub_0807CB24 - lsls r0, r5 - orrs r6, r0 - adds r5, #1 - adds r4, #2 -_080A6F60: - ldrb r0, [r4] - cmp r0, #0 - bne _080A6F50 - mvns r0, r6 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A6F6C -sub_080A6F6C: @ 0x080A6F6C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A6FA4 @ =gUnk_02000080 - ldrh r0, [r1, #0x2e] - cmp r0, r4 - beq _080A6F9A - strh r4, [r1, #0x2e] - ldr r0, _080A6FA8 @ =gUnk_020350F0 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0801D630 - movs r0, #0xff - ands r0, r4 - cmp r0, #0 - beq _080A6F94 - ldr r1, _080A6FAC @ =gUnk_08128FA8 - adds r0, r4, #0 - bl sub_0805F46C -_080A6F94: - ldr r1, _080A6FB0 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0xe] -_080A6F9A: - ldr r1, _080A6FB0 @ =gUnk_03000F50 - movs r0, #2 - strh r0, [r1, #0xc] - pop {r4, pc} - .align 2, 0 -_080A6FA4: .4byte gUnk_02000080 -_080A6FA8: .4byte gUnk_020350F0 -_080A6FAC: .4byte gUnk_08128FA8 -_080A6FB0: .4byte gUnk_03000F50 - - thumb_func_start sub_080A6FB4 -sub_080A6FB4: @ 0x080A6FB4 - push {r4, r5, lr} - adds r2, r0, #0 - movs r4, #0 - cmp r1, #1 - beq _080A6FF0 - cmp r1, #1 - blo _080A6FC8 - cmp r1, #2 - beq _080A6FD6 - b _080A6FFA -_080A6FC8: - ldr r0, _080A6FE4 @ =gUnk_02002A40 - movs r1, #1 - lsls r1, r2 - ldr r0, [r0, #0x40] - ands r0, r1 - cmp r0, #0 - beq _080A6FFA -_080A6FD6: - ldr r1, _080A6FE8 @ =gUnk_08127F94 - lsls r0, r2, #3 - adds r0, r0, r1 - ldrh r4, [r0, #6] - ldr r5, _080A6FEC @ =gUnk_08128FC0 - b _080A6FFA - .align 2, 0 -_080A6FE4: .4byte gUnk_02002A40 -_080A6FE8: .4byte gUnk_08127F94 -_080A6FEC: .4byte gUnk_08128FC0 -_080A6FF0: - ldr r1, _080A702C @ =gUnk_08128FF0 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r4, [r0] - ldr r5, _080A7030 @ =gUnk_08128FD8 -_080A6FFA: - ldr r1, _080A7034 @ =gUnk_02000080 - ldrh r0, [r1, #0x2e] - cmp r0, r4 - beq _080A7024 - strh r4, [r1, #0x2e] - ldr r0, _080A7038 @ =gUnk_020350F0 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0801D630 - movs r0, #0xff - ands r0, r4 - cmp r0, #0 - beq _080A701E - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0805F46C -_080A701E: - ldr r1, _080A703C @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0xe] -_080A7024: - ldr r1, _080A703C @ =gUnk_03000F50 - movs r0, #2 - strh r0, [r1, #0xc] - pop {r4, r5, pc} - .align 2, 0 -_080A702C: .4byte gUnk_08128FF0 -_080A7030: .4byte gUnk_08128FD8 -_080A7034: .4byte gUnk_02000080 -_080A7038: .4byte gUnk_020350F0 -_080A703C: .4byte gUnk_03000F50 - - thumb_func_start sub_080A7040 -sub_080A7040: @ 0x080A7040 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _080A7090 @ =gUnk_02000080 - ldrh r0, [r1, #0x2e] - cmp r0, r5 - beq _080A708C - strh r5, [r1, #0x2e] - ldr r4, _080A7094 @ =gUnk_02022130 - movs r1, #0xc0 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_0801D630 - ldr r0, _080A7098 @ =0xFFFFFE00 - adds r4, r4, r0 - ldr r1, _080A709C @ =0x0600E000 - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r4, #0 - bl sub_0801D66C - ldr r1, _080A70A0 @ =gUnk_08128D70 - lsls r0, r5, #3 - adds r4, r0, r1 - ldrb r0, [r4] - bl GetInventoryValue - cmp r0, #0 - beq _080A7082 - ldrh r0, [r4, #6] - ldr r1, _080A70A4 @ =gUnk_08129004 - bl sub_0805F46C -_080A7082: - ldr r0, _080A70A8 @ =gUnk_03000F50 - movs r1, #3 - strh r1, [r0, #0x18] - movs r1, #1 - strh r1, [r0, #0x1a] -_080A708C: - pop {r4, r5, pc} - .align 2, 0 -_080A7090: .4byte gUnk_02000080 -_080A7094: .4byte gUnk_02022130 -_080A7098: .4byte 0xFFFFFE00 -_080A709C: .4byte 0x0600E000 -_080A70A0: .4byte gUnk_08128D70 -_080A70A4: .4byte gUnk_08129004 -_080A70A8: .4byte gUnk_03000F50 - - thumb_func_start sub_080A70AC -sub_080A70AC: @ 0x080A70AC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A7110 @ =gUnk_0200AF34 - movs r1, #0xc0 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_0801D630 - adds r2, r4, #0 - subs r2, #0x34 - movs r0, #0x7f - strb r0, [r2, #0x13] - strb r0, [r2, #0x14] - ldrb r0, [r5] - strh r0, [r2, #0x16] - movs r0, #1 - ldrsb r0, [r5, r0] - strh r0, [r2, #0x1c] - ldrb r1, [r5, #2] - subs r0, r4, #4 - strb r1, [r0] - ldrb r0, [r5, #3] - strh r0, [r2, #0x18] - movs r0, #4 - ldrsb r0, [r5, r0] - strh r0, [r2, #0x1e] - ldrb r1, [r5, #5] - subs r0, r4, #3 - strb r1, [r0] - ldrb r0, [r5, #6] - strh r0, [r2, #0x1a] - movs r0, #7 - ldrsb r0, [r5, r0] - strh r0, [r2, #0x20] - ldrb r0, [r5, #8] - subs r4, #2 - strb r0, [r4] - adds r5, #9 - movs r4, #1 - rsbs r4, r4, #0 -_080A70FC: - ldrb r0, [r5] - ldrb r1, [r5, #1] - bl sub_0801CA6C - adds r5, #2 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, r4 - bne _080A70FC - pop {r4, r5, pc} - .align 2, 0 -_080A7110: .4byte gUnk_0200AF34 - - thumb_func_start sub_080A7114 -sub_080A7114: @ 0x080A7114 - ldr r1, _080A7120 @ =gUnk_02000080 - movs r2, #0 - strb r0, [r1, #5] - strb r2, [r1, #6] - strb r2, [r1, #7] - bx lr - .align 2, 0 -_080A7120: .4byte gUnk_02000080 - - thumb_func_start sub_080A7124 -sub_080A7124: @ 0x080A7124 - push {lr} - ldr r0, _080A7134 @ =gUnk_02032EC0 - movs r1, #0xed - lsls r1, r1, #2 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_080A7134: .4byte gUnk_02032EC0 - - thumb_func_start sub_080A7138 -sub_080A7138: @ 0x080A7138 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r4, _080A715C @ =gUnk_02032EC0 - ldrb r0, [r4] - cmp r0, #0 - bne _080A7164 - movs r1, #0xed - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_0801D630 - strb r5, [r4, #2] - strb r6, [r4, #3] - ldr r0, _080A7160 @ =gUnk_03001000 - ldrb r0, [r0, #4] - strb r0, [r4, #7] - b _080A716C - .align 2, 0 -_080A715C: .4byte gUnk_02032EC0 -_080A7160: .4byte gUnk_03001000 -_080A7164: - strb r5, [r4, #4] - strb r6, [r4, #5] - movs r0, #1 - strb r0, [r4] -_080A716C: - ldr r1, _080A7194 @ =gUnk_02032EC0 - movs r0, #0 - strb r0, [r1, #6] - ldr r0, _080A7198 @ =0x0000FFFF - strh r0, [r1, #8] - movs r4, #0 - movs r0, #0x20 - strh r0, [r1, #0xa] - ldr r1, _080A719C @ =gUnk_03001000 - movs r0, #7 - strb r0, [r1, #4] - movs r0, #5 - movs r1, #0x20 - bl sub_08050054 - ldr r0, _080A71A0 @ =gUnk_02018EB0 - strb r4, [r0] - strb r4, [r0, #1] - pop {r4, r5, r6, pc} - .align 2, 0 -_080A7194: .4byte gUnk_02032EC0 -_080A7198: .4byte 0x0000FFFF -_080A719C: .4byte gUnk_03001000 -_080A71A0: .4byte gUnk_02018EB0 - - thumb_func_start sub_080A71A4 -sub_080A71A4: @ 0x080A71A4 - push {r4, lr} - adds r4, r0, #0 - ldr r3, _080A71B4 @ =gUnk_02032EC0 - ldrb r0, [r3] - cmp r0, #0 - bne _080A71B8 - strb r2, [r3, #0xe] - b _080A71BA - .align 2, 0 -_080A71B4: .4byte gUnk_02032EC0 -_080A71B8: - strb r2, [r3, #0xf] -_080A71BA: - adds r0, r4, #0 - bl sub_080A7138 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A71C4 -sub_080A71C4: @ 0x080A71C4 - push {r4, r5, lr} - adds r4, r2, #0 - adds r5, r3, #0 - bl sub_080A7138 - ldr r0, _080A71D8 @ =gUnk_02032EC0 - strh r4, [r0, #8] - strh r5, [r0, #0xa] - pop {r4, r5, pc} - .align 2, 0 -_080A71D8: .4byte gUnk_02032EC0 - - thumb_func_start sub_080A71DC -sub_080A71DC: @ 0x080A71DC - push {lr} - ldr r1, _080A71F0 @ =gUnk_02032EC0 - movs r0, #3 - strb r0, [r1] - movs r0, #5 - movs r1, #0x20 - bl sub_08050054 - pop {pc} - .align 2, 0 -_080A71F0: .4byte gUnk_02032EC0 - - thumb_func_start sub_080A71F4 -sub_080A71F4: @ 0x080A71F4 - push {lr} - cmp r0, #0 - beq _080A71FE - bl sub_08080840 -_080A71FE: - bl sub_0805E89C - bl sub_0805E974 - bl sub_0805E89C - ldr r0, _080A7218 @ =gUnk_03001000 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #3] - strb r2, [r0, #4] - pop {pc} - .align 2, 0 -_080A7218: .4byte gUnk_03001000 - - thumb_func_start sub_080A721C -sub_080A721C: @ 0x080A721C - push {lr} - ldr r0, _080A7248 @ =gUnk_02032EC0 - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #2 - bhi _080A7238 - ldrb r3, [r2, #4] - cmp r3, #0 - beq _080A7238 - ldrb r0, [r2, #5] - movs r1, #0 - strb r0, [r2, #3] - strb r3, [r2, #2] - strb r1, [r2, #4] -_080A7238: - ldr r0, _080A724C @ =gUnk_0812901C - ldrb r1, [r2] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080A7248: .4byte gUnk_02032EC0 -_080A724C: .4byte gUnk_0812901C - - thumb_func_start sub_080A7250 -sub_080A7250: @ 0x080A7250 - push {r4, lr} - ldr r0, _080A72E8 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A72E4 - ldr r0, _080A72EC @ =gUnk_03000F50 - ldr r1, _080A72F0 @ =gUnk_03001020 - movs r2, #0x7c - bl sub_0801D66C - ldr r0, _080A72F4 @ =gUnk_020176A0 - ldr r1, _080A72F8 @ =gUnk_02024090 - movs r2, #0x80 - lsls r2, r2, #3 - bl sub_0801D66C - ldr r0, _080A72FC @ =gUnk_02024490 - ldr r4, _080A7300 @ =gUnk_02032F14 - movs r2, #0x85 - lsls r2, r2, #2 - adds r1, r4, #0 - bl sub_0801D66C - ldr r0, _080A7304 @ =gUnk_02001A00 - movs r2, #0x85 - lsls r2, r2, #2 - adds r1, r4, r2 - movs r2, #0x40 - bl sub_0801D66C - ldr r0, _080A7308 @ =gUnk_03000BF0 - adds r1, r4, #0 - subs r1, #0x38 - movs r2, #0x38 - bl sub_0801D66C - ldr r0, _080A730C @ =gUnk_03000420 - movs r2, #0x95 - lsls r2, r2, #2 - adds r1, r4, r2 - movs r2, #0x80 - lsls r2, r2, #1 - bl sub_0801D66C - ldr r0, _080A7310 @ =gUnk_02033280 - movs r2, #0xd5 - lsls r2, r2, #2 - adds r1, r4, r2 - movs r2, #0xc - bl sub_0801D66C - bl sub_0805E958 - adds r1, r4, #0 - subs r1, #0x54 - ldr r0, _080A7314 @ =gUnk_030010A0 - adds r0, #0x2f - ldrb r0, [r0] - strb r0, [r1, #0xd] - ldr r0, _080A7318 @ =gUnk_03003F80 - adds r0, #0x8b - ldrb r0, [r0] - strb r0, [r1, #0xc] - ldr r0, _080A731C @ =gUnk_02017654 - ldr r0, [r0] - str r0, [r1, #0x10] - ldr r0, _080A7320 @ =gUnk_02025EB0 - ldr r0, [r0] - str r0, [r1, #0x14] - ldr r0, _080A7324 @ =gUnk_0200B650 - ldr r0, [r0] - str r0, [r1, #0x18] - movs r0, #1 - strb r0, [r1] -_080A72E4: - pop {r4, pc} - .align 2, 0 -_080A72E8: .4byte gUnk_03000FD0 -_080A72EC: .4byte gUnk_03000F50 -_080A72F0: .4byte gUnk_03001020 -_080A72F4: .4byte gUnk_020176A0 -_080A72F8: .4byte gUnk_02024090 -_080A72FC: .4byte gUnk_02024490 -_080A7300: .4byte gUnk_02032F14 -_080A7304: .4byte gUnk_02001A00 -_080A7308: .4byte gUnk_03000BF0 -_080A730C: .4byte gUnk_03000420 -_080A7310: .4byte gUnk_02033280 -_080A7314: .4byte gUnk_030010A0 -_080A7318: .4byte gUnk_03003F80 -_080A731C: .4byte gUnk_02017654 -_080A7320: .4byte gUnk_02025EB0 -_080A7324: .4byte gUnk_0200B650 - - thumb_func_start sub_080A7328 -sub_080A7328: @ 0x080A7328 - push {r4, lr} - ldr r0, _080A7388 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080A7384 - bl sub_0805E89C - ldr r0, _080A738C @ =gUnk_02000080 - movs r1, #0x30 - bl sub_0801D630 - ldr r0, _080A7390 @ =gUnk_03000BF0 - movs r1, #0x38 - bl sub_0801D630 - ldr r0, _080A7394 @ =gUnk_03000420 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0801D630 - ldr r4, _080A7398 @ =gUnk_02033280 - adds r0, r4, #0 - movs r1, #0xc - bl sub_0801D630 - movs r0, #8 - strb r0, [r4, #8] - movs r0, #1 - bl sub_0801DA90 - bl sub_08056418 - bl sub_080ADD30 - movs r0, #0 - bl sub_0801CFA8 - ldr r0, _080A739C @ =gUnk_02024490 - movs r2, #1 - strb r2, [r0] - ldr r1, _080A73A0 @ =gUnk_02032EC0 - movs r0, #2 - strb r0, [r1] - ldr r0, _080A73A4 @ =gUnk_030010A0 - adds r0, #0x30 - strb r2, [r0] -_080A7384: - pop {r4, pc} - .align 2, 0 -_080A7388: .4byte gUnk_03000FD0 -_080A738C: .4byte gUnk_02000080 -_080A7390: .4byte gUnk_03000BF0 -_080A7394: .4byte gUnk_03000420 -_080A7398: .4byte gUnk_02033280 -_080A739C: .4byte gUnk_02024490 -_080A73A0: .4byte gUnk_02032EC0 -_080A73A4: .4byte gUnk_030010A0 - - thumb_func_start sub_080A73A8 -sub_080A73A8: @ 0x080A73A8 - push {r4, r5, lr} - ldr r0, _080A7468 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - beq _080A73B4 - b _080A74BC -_080A73B4: - bl sub_0805E89C - bl sub_0805E974 - ldr r1, _080A746C @ =gUnk_02017654 - ldr r5, _080A7470 @ =gUnk_02032EC0 - ldr r0, [r5, #0x10] - str r0, [r1] - ldr r0, _080A7474 @ =gUnk_03003F80 - ldrb r1, [r5, #0xc] - adds r0, #0x8b - strb r1, [r0] - ldr r1, _080A7478 @ =gUnk_02025EB0 - ldr r0, [r5, #0x14] - str r0, [r1] - ldr r1, _080A747C @ =gUnk_0200B650 - ldr r0, [r5, #0x18] - str r0, [r1] - movs r1, #0xea - lsls r1, r1, #2 - adds r0, r5, r1 - ldr r1, _080A7480 @ =gUnk_02033280 - movs r2, #0xc - bl sub_0801D66C - movs r1, #0xaa - lsls r1, r1, #2 - adds r0, r5, r1 - ldr r1, _080A7484 @ =gUnk_03000420 - movs r2, #0x80 - lsls r2, r2, #1 - bl sub_0801D66C - movs r1, #0x9a - lsls r1, r1, #2 - adds r0, r5, r1 - ldr r1, _080A7488 @ =gUnk_02001A00 - movs r2, #0x40 - bl sub_0801D66C - adds r0, r5, #0 - adds r0, #0x54 - ldr r1, _080A748C @ =gUnk_02024490 - movs r2, #0x85 - lsls r2, r2, #2 - bl sub_0801D66C - adds r0, r5, #0 - adds r0, #0x1c - ldr r4, _080A7490 @ =gUnk_03000BF0 - adds r1, r4, #0 - movs r2, #0x38 - bl sub_0801D66C - ldr r0, _080A7494 @ =gUnk_03001020 - ldr r1, _080A7498 @ =gUnk_03000F50 - movs r2, #0x7c - bl sub_0801D66C - ldrb r0, [r4, #4] - bl sub_08052D58 - ldr r4, _080A749C @ =gUnk_02033A90 - strh r0, [r4, #4] - bl sub_08052E8C - ldr r1, _080A74A0 @ =0x0000085C - adds r4, r4, r1 - str r0, [r4] - ldrb r0, [r5, #6] - bl sub_080527FC - ldrb r1, [r5, #0xd] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bl sub_0801D000 - bl sub_080A74F4 - ldrh r1, [r5, #8] - ldr r0, _080A74A4 @ =0x0000FFFF - cmp r1, r0 - beq _080A74A8 - adds r0, r1, #0 - ldrh r1, [r5, #0xa] - bl sub_08050054 - b _080A74AE - .align 2, 0 -_080A7468: .4byte gUnk_03000FD0 -_080A746C: .4byte gUnk_02017654 -_080A7470: .4byte gUnk_02032EC0 -_080A7474: .4byte gUnk_03003F80 -_080A7478: .4byte gUnk_02025EB0 -_080A747C: .4byte gUnk_0200B650 -_080A7480: .4byte gUnk_02033280 -_080A7484: .4byte gUnk_03000420 -_080A7488: .4byte gUnk_02001A00 -_080A748C: .4byte gUnk_02024490 -_080A7490: .4byte gUnk_03000BF0 -_080A7494: .4byte gUnk_03001020 -_080A7498: .4byte gUnk_03000F50 -_080A749C: .4byte gUnk_02033A90 -_080A74A0: .4byte 0x0000085C -_080A74A4: .4byte 0x0000FFFF -_080A74A8: - ldrh r0, [r5, #0xa] - bl sub_080500F4 -_080A74AE: - ldr r1, _080A74C0 @ =gUnk_02032EC0 - movs r2, #0 - movs r0, #4 - strb r0, [r1] - ldr r0, _080A74C4 @ =gUnk_030010A0 - adds r0, #0x30 - strb r2, [r0] -_080A74BC: - pop {r4, r5, pc} - .align 2, 0 -_080A74C0: .4byte gUnk_02032EC0 -_080A74C4: .4byte gUnk_030010A0 - - thumb_func_start sub_080A74C8 -sub_080A74C8: @ 0x080A74C8 - push {lr} - bl sub_080A74F4 - ldr r0, _080A74E8 @ =gUnk_03000FD0 - ldrb r3, [r0] - cmp r3, #0 - bne _080A74E6 - ldr r0, _080A74EC @ =gUnk_03001000 - ldr r1, _080A74F0 @ =gUnk_02032EC0 - ldrb r2, [r1, #7] - strb r2, [r0, #4] - strb r3, [r1] - strb r3, [r1, #2] - bl sub_0805E5B4 -_080A74E6: - pop {pc} - .align 2, 0 -_080A74E8: .4byte gUnk_03000FD0 -_080A74EC: .4byte gUnk_03001000 -_080A74F0: .4byte gUnk_02032EC0 - - thumb_func_start sub_080A74F4 -sub_080A74F4: @ 0x080A74F4 - push {lr} - bl sub_0805E5A8 - ldr r1, _080A7524 @ =gUnk_03001000 - movs r0, #0 - strb r0, [r1, #0xb] - bl sub_080AD90C - bl sub_0805E5C0 - bl sub_0805E5F8 - bl sub_0801C344 - bl sub_0801C208 - bl sub_08078CB4 - bl sub_080AD9B0 - bl sub_080AD918 - pop {pc} - .align 2, 0 -_080A7524: .4byte gUnk_03001000 - - thumb_func_start sub_080A7528 -sub_080A7528: @ 0x080A7528 - push {lr} - ldr r1, _080A753C @ =gUnk_08129030 - ldr r0, _080A7540 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080A753C: .4byte gUnk_08129030 -_080A7540: .4byte gUnk_02032EC0 - - thumb_func_start sub_080A7544 -sub_080A7544: @ 0x080A7544 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A7584 @ =gUnk_0812905C - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080A7582 - ldr r1, _080A7588 @ =gLinkEntity - adds r0, r4, #0 - bl sub_08078E84 - ldr r1, [r4, #0x48] - adds r0, r4, #0 - adds r0, #0x62 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - ldr r1, [r4, #0x48] - adds r0, r4, #0 - adds r0, #0x63 - ldrb r0, [r0] - ldrb r2, [r1, #1] - adds r0, r0, r2 - strb r0, [r1, #1] -_080A7582: - pop {r4, pc} - .align 2, 0 -_080A7584: .4byte gUnk_0812905C -_080A7588: .4byte gLinkEntity - - thumb_func_start sub_080A758C -sub_080A758C: @ 0x080A758C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _080A75AC - ldr r1, _080A7654 @ =gUnk_03003F80 - ldrb r0, [r1, #4] - cmp r0, #0 - bne _080A75AC - ldrb r1, [r1, #2] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080A75AC - bl sub_0805E780 -_080A75AC: - adds r0, r5, #0 - bl sub_0806FBD8 - cmp r0, #0 - bne _080A75BA - bl sub_0805E780 -_080A75BA: - adds r0, r5, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - ldr r1, _080A7658 @ =gLinkEntity - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #1 - movs r2, #0x20 - adds r3, r5, #0 - adds r3, #0x3c - movs r4, #0 - orrs r0, r2 - strb r0, [r3] - adds r1, #0x3b - ldrb r0, [r1] - adds r1, r5, #0 - adds r1, #0x3b - strb r0, [r1] - ldrb r1, [r5, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r5, #0x11] - adds r0, r5, #0 - adds r0, #0x41 - strb r4, [r0] - subs r0, #4 - strb r4, [r0] - adds r0, #5 - strb r4, [r0] - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - movs r0, #0xff - strb r0, [r5, #0x1e] - adds r0, r5, #0 - bl sub_0801766C - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _080A76BC - ldr r2, _080A7654 @ =gUnk_03003F80 - ldrb r1, [r2, #2] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080A767A - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - movs r0, #2 - strb r0, [r5, #0xb] - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1d - adds r0, #8 - adds r1, r5, #0 - adds r1, #0x44 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #1 - beq _080A765C - cmp r0, #6 - bne _080A7664 - subs r1, #4 - movs r0, #0x1a - b _080A766A - .align 2, 0 -_080A7654: .4byte gUnk_03003F80 -_080A7658: .4byte gLinkEntity -_080A765C: - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0x18 - b _080A766A -_080A7664: - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0x19 -_080A766A: - strb r0, [r1] - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_080A7824 - b _080A7692 -_080A767A: - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1d - adds r0, #4 - adds r1, r5, #0 - adds r1, #0x44 - strb r0, [r1] - adds r0, r5, #0 - bl sub_080A76CC -_080A7692: - ldr r0, _080A76B0 @ =gUnk_03003F80 - str r5, [r0, #0x2c] - adds r0, r5, #0 - bl sub_08079BD8 - ldr r4, _080A76B4 @ =gUnk_0812906C - ldr r0, _080A76B8 @ =gUnk_08129068 - bl sub_080028F4 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_080A3268 - b _080A76C2 - .align 2, 0 -_080A76B0: .4byte gUnk_03003F80 -_080A76B4: .4byte gUnk_0812906C -_080A76B8: .4byte gUnk_08129068 -_080A76BC: - adds r0, r5, #0 - bl sub_080A76CC -_080A76C2: - movs r0, #0x87 - lsls r0, r0, #1 - bl sub_080A3268 - pop {r4, r5, pc} - - thumb_func_start sub_080A76CC -sub_080A76CC: @ 0x080A76CC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080A76D8 - b _080A77DC -_080A76D8: - ldr r5, _080A771C @ =gUnk_03003F80 - ldr r0, [r5, #0x2c] - cmp r0, r4 - beq _080A76E4 - bl sub_0805E780 -_080A76E4: - ldrb r0, [r5, #4] - cmp r0, #0 - bne _080A76F2 - str r0, [r5, #0x2c] - strb r0, [r5, #0x1b] - bl sub_0805E780 -_080A76F2: - ldrb r2, [r5, #0x1b] - cmp r2, #0 - beq _080A7744 - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0xd - strb r0, [r1] - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _080A7728 - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #1 - beq _080A7720 - cmp r0, #6 - bne _080A7724 - movs r0, #0xa - b _080A7726 - .align 2, 0 -_080A771C: .4byte gUnk_03003F80 -_080A7720: - movs r0, #8 - b _080A7726 -_080A7724: - movs r0, #9 -_080A7726: - strb r0, [r1] -_080A7728: - ldr r0, _080A7740 @ =gLinkEntity - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080A77C4 - movs r0, #0x8b - lsls r0, r0, #1 - bl sub_080A3268 - b _080A77C4 - .align 2, 0 -_080A7740: .4byte gLinkEntity -_080A7744: - ldr r0, [r5, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x14 - ands r0, r1 - cmp r0, #0 - beq _080A776A - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #6 - bne _080A7762 - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0xc - b _080A7768 -_080A7762: - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0xb -_080A7768: - strb r0, [r1] -_080A776A: - ldr r0, _080A77D0 @ =gUnk_03003F80 - adds r0, #0x3e - ldrb r0, [r0] - movs r2, #3 - ands r2, r0 - cmp r2, #0 - beq _080A77C4 - ldr r0, _080A77D4 @ =gLinkEntity - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080A77C4 - movs r1, #0x12 - cmp r2, #1 - bne _080A778E - movs r1, #0x14 -_080A778E: - adds r0, r4, #0 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _080A77C4 - ldrb r1, [r4, #0x1e] - lsls r1, r1, #1 - ldr r0, _080A77D8 @ =gUnk_081292E2 - adds r1, r1, r0 - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r3, [r4, #0x32] - adds r0, r0, r3 - strh r0, [r2, #0x32] - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _080A77BE - rsbs r1, r1, #0 -_080A77BE: - ldrh r0, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] -_080A77C4: - ldr r1, _080A77D4 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080A78B8 - b _080A7806 - .align 2, 0 -_080A77D0: .4byte gUnk_03003F80 -_080A77D4: .4byte gLinkEntity -_080A77D8: .4byte gUnk_081292E2 -_080A77DC: - ldr r1, _080A7810 @ =gUnk_03003F80 - ldrb r0, [r1, #4] - cmp r0, #0 - beq _080A7814 - ldr r0, [r1, #0x2c] - adds r2, r0, #0 - adds r2, #0x40 - ldrb r0, [r2] - cmp r0, #0 - beq _080A7814 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r2] - adds r0, r4, #0 - adds r0, #0x40 - strb r1, [r0] - adds r0, r4, #0 - bl sub_080A7A54 -_080A7806: - adds r0, r4, #0 - bl sub_080A7A84 - b _080A7820 - .align 2, 0 -_080A7810: .4byte gUnk_03003F80 -_080A7814: - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_080A7820: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A7824 -sub_080A7824: @ 0x080A7824 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _080A7860 @ =gUnk_03003F80 - ldr r0, [r5, #0x2c] - cmp r0, r4 - beq _080A7834 - bl sub_0805E780 -_080A7834: - ldrb r0, [r5, #4] - cmp r0, #0 - beq _080A78AE - ldrb r0, [r5, #2] - cmp r0, #0 - bne _080A7846 - str r0, [r5, #0x2c] - bl sub_0805E780 -_080A7846: - ldr r2, _080A7864 @ =gLinkEntity - adds r6, r2, #0 - adds r6, #0x5a - ldrb r1, [r6] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A7868 - movs r0, #0 - str r0, [r5, #0x2c] - bl sub_0805E780 - b _080A78B4 - .align 2, 0 -_080A7860: .4byte gUnk_03003F80 -_080A7864: .4byte gLinkEntity -_080A7868: - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080A78B8 - ldrb r1, [r6] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080A7880 - movs r0, #0x77 - bl sub_080A3268 -_080A7880: - ldrb r0, [r4, #0x1e] - cmp r0, #0x8a - bls _080A788A - movs r0, #0xff - strb r0, [r4, #0x1e] -_080A788A: - ldrb r1, [r6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080A78A4 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_080A7B98 - b _080A78B4 -_080A78A4: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _080A78B4 -_080A78AE: - str r0, [r5, #0x2c] - bl sub_0805E780 -_080A78B4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A78B8 -sub_080A78B8: @ 0x080A78B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r0, _080A78E8 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1b] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080A78FC - ldrb r0, [r6, #0x1e] - subs r0, #0x6a - strb r0, [r4, #0x1e] - ldr r0, _080A78EC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _080A78F0 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #0xb1 - b _080A78F2 - .align 2, 0 -_080A78E8: .4byte gUnk_03003F80 -_080A78EC: .4byte gUnk_030010A0 -_080A78F0: - ldrb r1, [r4, #0x1e] -_080A78F2: - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 - b _080A7912 -_080A78FC: - ldrb r0, [r6, #0x1e] - subs r0, #0x6a - ldrb r1, [r4, #0x1e] - cmp r0, r1 - beq _080A7912 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_080A7912: - ldr r2, _080A792C @ =gUnk_03003F80 - ldrb r1, [r2, #0x1b] - movs r0, #0x40 - ands r0, r1 - adds r7, r2, #0 - cmp r0, #0 - beq _080A7930 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _080A7958 - .align 2, 0 -_080A792C: .4byte gUnk_03003F80 -_080A7930: - ldrb r1, [r6, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080A7946 - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x19 - lsrs r2, r0, #0x1f - movs r0, #1 - eors r2, r0 - b _080A794C -_080A7946: - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x19 - lsrs r2, r0, #0x1f -_080A794C: - lsls r2, r2, #6 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 -_080A7958: - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - mov r8, r2 - adds r5, r4, #0 - adds r5, #0x3d - cmp r0, #0 - beq _080A7A1C - adds r3, r6, #0 - adds r3, #0x3d - ldrb r0, [r3] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080A7980 - lsrs r0, r0, #0x18 - cmp r0, #0x81 - bne _080A79AE -_080A7980: - adds r2, r4, #0 - adds r2, #0x3d - ldrb r0, [r2] - movs r1, #0 - strb r0, [r3] - adds r5, r4, #0 - adds r5, #0x3e - ldrb r0, [r5] - adds r3, r6, #0 - adds r3, #0x3e - strb r0, [r3] - movs r3, #0x42 - adds r3, r3, r4 - mov ip, r3 - ldrb r0, [r3] - adds r3, r6, #0 - adds r3, #0x42 - strb r0, [r3] - mov r0, ip - strb r1, [r0] - strb r1, [r5] - strb r1, [r2] - adds r5, r2, #0 -_080A79AE: - ldr r0, [r7, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x14 - ands r0, r1 - cmp r0, #0 - beq _080A79C4 - ldrb r1, [r7, #0x1b] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r7, #0x1b] - b _080A7A1C -_080A79C4: - ldrb r0, [r7, #0x1b] - cmp r0, #0 - beq _080A7A1C - mov r1, r8 - ldrb r0, [r1] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0x43 - beq _080A79E6 - cmp r1, #0x43 - bgt _080A79E0 - cmp r1, #0xd - beq _080A79E6 - b _080A7A08 -_080A79E0: - cmp r1, #0x44 - bne _080A7A08 - b _080A7A1C -_080A79E6: - ldrb r1, [r7, #0x1b] - movs r0, #8 - orrs r0, r1 - strb r0, [r7, #0x1b] - adds r1, r6, #0 - adds r1, #0x42 - movs r0, #2 - strb r0, [r1] - ldrb r1, [r7, #0x1b] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080A7A1C - movs r0, #0xfe - ands r0, r1 - strb r0, [r7, #0x1b] - b _080A7A1C -_080A7A08: - ldrb r0, [r7, #0x1b] - movs r1, #0xc0 - ands r1, r0 - cmp r1, #0 - bne _080A7A1C - strb r1, [r7, #0x1b] - strb r1, [r7, #4] - str r1, [r7, #0x2c] - bl sub_0805E780 -_080A7A1C: - adds r1, r5, #0 - ldrb r0, [r1] - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _080A7A36 - cmp r2, #0 - ble _080A7A32 - subs r0, #1 - strb r0, [r1] - b _080A7A36 -_080A7A32: - adds r0, #1 - strb r0, [r5] -_080A7A36: - adds r0, r4, #0 - bl sub_080A7A54 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _080A7A4C - ldr r1, [r4, #0x48] - ldrb r0, [r1] - rsbs r0, r0, #0 - strb r0, [r1] -_080A7A4C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080A7A54 -sub_080A7A54: @ 0x080A7A54 - ldr r1, _080A7A7C @ =gLinkEntity - ldrb r1, [r1, #0x1e] - subs r1, #0x6a - lsls r1, r1, #2 - ldr r2, _080A7A80 @ =gUnk_08129096 - adds r1, r1, r2 - ldr r3, [r0, #0x48] - ldrb r2, [r1] - strb r2, [r3] - ldr r3, [r0, #0x48] - ldrb r2, [r1, #1] - strb r2, [r3, #1] - ldr r3, [r0, #0x48] - ldrb r2, [r1, #2] - strb r2, [r3, #6] - ldr r2, [r0, #0x48] - ldrb r0, [r1, #3] - strb r0, [r2, #7] - bx lr - .align 2, 0 -_080A7A7C: .4byte gLinkEntity -_080A7A80: .4byte gUnk_08129096 - - thumb_func_start sub_080A7A84 -sub_080A7A84: @ 0x080A7A84 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r6, _080A7AE0 @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r1, #0xf - ands r1, r0 - cmp r1, #0 - beq _080A7B8C - ldr r2, _080A7AE4 @ =gUnk_08129072 - subs r0, r1, #1 - lsls r0, r0, #1 - adds r1, r0, r2 - movs r3, #0 - ldrsb r3, [r1, r3] - adds r0, #1 - adds r0, r0, r2 - movs r5, #0 - ldrsb r5, [r0, r5] - ldr r2, _080A7AE8 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1b] - movs r0, #0xc0 - ands r0, r1 - adds r7, r2, #0 - cmp r0, #0 - bne _080A7AC4 - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _080A7AC4 - rsbs r3, r3, #0 -_080A7AC4: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080A7AEC - movs r0, #0x2e - ldrsh r2, [r4, r0] - adds r2, r2, r3 - movs r1, #0x32 - ldrsh r3, [r4, r1] - adds r3, r3, r5 - adds r0, r4, #0 - movs r1, #0 - bl sub_08008796 - b _080A7B8C - .align 2, 0 -_080A7AE0: .4byte gLinkEntity -_080A7AE4: .4byte gUnk_08129072 -_080A7AE8: .4byte gUnk_03003F80 -_080A7AEC: - ldr r0, [r4, #0x34] - cmp r0, #0 - bne _080A7B8C - adds r0, r7, #0 - adds r0, #0xac - ldrh r0, [r0] - movs r1, #8 - ands r1, r0 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - rsbs r1, r1, #0 - lsrs r1, r1, #0x1f - movs r0, #0x2e - ldrsh r2, [r4, r0] - adds r6, r3, #0 - adds r2, r2, r6 - movs r0, #0x32 - ldrsh r3, [r4, r0] - adds r3, r3, r5 - adds r0, r4, #0 - bl sub_08008796 - cmp r0, #0 - bne _080A7B8C - ldrb r2, [r7, #0x1b] - cmp r2, #0 - beq _080A7B8C - movs r0, #0xc0 - ands r0, r2 - cmp r0, #0 - bne _080A7B8C - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_080002B4 - cmp r0, #0x2e - bne _080A7B4C - ldr r0, _080A7B44 @ =gLinkEntity - ldr r1, _080A7B48 @ =0x00000119 - bl sub_0800449C - b _080A7B54 - .align 2, 0 -_080A7B44: .4byte gLinkEntity -_080A7B48: .4byte 0x00000119 -_080A7B4C: - ldr r0, _080A7B90 @ =gLinkEntity - movs r1, #0x74 - bl sub_0800449C -_080A7B54: - movs r0, #0xf - movs r1, #0x1a - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _080A7B8C - ldr r1, _080A7B94 @ =gUnk_0812908E - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r4, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrb r0, [r4, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldr r0, [r4, #0x34] - str r0, [r2, #0x34] -_080A7B8C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A7B90: .4byte gLinkEntity -_080A7B94: .4byte gUnk_0812908E - - thumb_func_start sub_080A7B98 -sub_080A7B98: @ 0x080A7B98 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - ldr r0, _080A7BFC @ =gUnk_03003F80 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #8 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - rsbs r0, r0, #0 - lsrs r0, r0, #0x1f - mov sl, r0 - movs r7, #0x10 - rsbs r7, r7, #0 - movs r0, #0 -_080A7BBE: - movs r5, #0x10 - rsbs r5, r5, #0 - movs r4, #0 - movs r1, #0x10 - adds r1, r1, r7 - mov sb, r1 - adds r0, #1 - mov r8, r0 -_080A7BCE: - movs r0, #0x2e - ldrsh r2, [r6, r0] - adds r2, r2, r5 - movs r1, #0x32 - ldrsh r3, [r6, r1] - adds r3, r3, r7 - adds r0, r6, #0 - mov r1, sl - bl sub_08008796 - adds r5, #0x10 - adds r4, #1 - cmp r4, #2 - bls _080A7BCE - mov r7, sb - mov r0, r8 - cmp r0, #2 - bls _080A7BBE - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A7BFC: .4byte gUnk_03003F80 - - thumb_func_start sub_080A7C00 -sub_080A7C00: @ 0x080A7C00 - push {r4, lr} - bl sub_080A7C38 - adds r4, r0, #0 - cmp r4, #0 - beq _080A7C16 - ldrb r1, [r4, #0xa] - movs r2, #0 - bl sub_080A276C - str r0, [r4, #0x50] -_080A7C16: - pop {r4, pc} - - thumb_func_start sub_080A7C18 -sub_080A7C18: @ 0x080A7C18 - push {lr} - bl sub_080A7C38 - adds r2, r0, #0 - cmp r2, #0 - beq _080A7C32 - ldr r0, _080A7C34 @ =gLinkEntity - str r0, [r2, #0x50] - ldrb r1, [r2, #0xa] - adds r0, r2, #0 - movs r2, #0 - bl sub_08078AF0 -_080A7C32: - pop {pc} - .align 2, 0 -_080A7C34: .4byte gLinkEntity - - thumb_func_start sub_080A7C38 -sub_080A7C38: @ 0x080A7C38 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - cmp r5, #0x3f - bne _080A7C52 - ldr r0, _080A7C78 @ =gUnk_02002A40 - adds r0, #0xbb - ldrb r0, [r0] - cmp r0, #0 - beq _080A7C52 - movs r5, #0x57 - movs r6, #0 -_080A7C52: - bl sub_0805E744 - adds r4, r0, #0 - cmp r4, #0 - beq _080A7C72 - strb r5, [r4, #0xa] - strb r6, [r4, #0xb] - strb r7, [r4, #0xe] - movs r0, #0xb - strb r0, [r4, #9] - movs r0, #6 - strb r0, [r4, #8] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805EA2C -_080A7C72: - adds r0, r4, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A7C78: .4byte gUnk_02002A40 - - thumb_func_start sub_080A7C7C -sub_080A7C7C: @ 0x080A7C7C - push {lr} - ldr r0, _080A7C88 @ =gUnk_02017660 - movs r1, #0x40 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_080A7C88: .4byte gUnk_02017660 - - thumb_func_start sub_080A7C8C -sub_080A7C8C: @ 0x080A7C8C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r4, _080A7C9C @ =gUnk_02017660 - movs r2, #0 - movs r1, #0 - b _080A7CA8 - .align 2, 0 -_080A7C9C: .4byte gUnk_02017660 -_080A7CA0: - adds r1, #1 - adds r4, #8 - cmp r1, #7 - bhi _080A7CB0 -_080A7CA8: - ldrh r0, [r4, #4] - cmp r0, r5 - bne _080A7CA0 - movs r2, #1 -_080A7CB0: - lsrs r1, r6, #1 - ldrb r0, [r4, #6] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - cmp r1, r0 - bne _080A7CF4 - cmp r2, #0 - beq _080A7CD2 - ldrb r0, [r4, #1] - bl sub_0807CCB4 - ldrb r0, [r4, #2] - ldrb r1, [r4, #3] - movs r2, #0 - bl sub_080A7C00 - b _080A7CDC -_080A7CD2: - movs r0, #0x60 - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 -_080A7CDC: - movs r0, #0x74 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0807B7D8 - movs r0, #0 - movs r1, #0x78 - bl sub_0805E4E0 - ldr r0, _080A7CF8 @ =0x0000011B - bl sub_080A3268 -_080A7CF4: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A7CF8: .4byte 0x0000011B - - thumb_func_start sub_080A7CFC -sub_080A7CFC: @ 0x080A7CFC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0xc0 - lsls r4, r4, #3 - movs r6, #0 - movs r0, #3 - bl sub_0804B128 - adds r1, r0, #0 - cmp r1, #0 - beq _080A7D38 -_080A7D12: - ldrh r0, [r1, #4] - cmp r0, r5 - bne _080A7D30 - ldrb r0, [r1] - cmp r0, #5 - beq _080A7D24 - cmp r0, #6 - beq _080A7D2A - b _080A7D38 -_080A7D24: - movs r6, #0 - ldrh r4, [r1, #6] - b _080A7D38 -_080A7D2A: - movs r6, #1 - ldrh r4, [r1, #6] - b _080A7D38 -_080A7D30: - adds r1, #8 - ldrh r0, [r1, #4] - cmp r0, #0 - bne _080A7D12 -_080A7D38: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080A7D44 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A7D44 -sub_080A7D44: @ 0x080A7D44 - push {lr} - cmp r1, #0 - beq _080A7D52 - movs r1, #0 - bl sub_08078AA8 - b _080A7D56 -_080A7D52: - bl sub_08056378 -_080A7D56: - pop {pc} - - thumb_func_start sub_080A7D58 -sub_080A7D58: @ 0x080A7D58 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #9] - lsls r0, r0, #4 - ldr r1, _080A7D78 @ =gUnk_0813210C - adds r2, r0, r1 - ldrh r1, [r2] - ldr r0, _080A7D7C @ =0x0000FFFF - cmp r1, r0 - bne _080A7D74 - ldrb r0, [r3, #0xa] - lsls r0, r0, #4 - ldr r1, [r2, #4] - adds r2, r1, r0 -_080A7D74: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_080A7D78: .4byte gUnk_0813210C -_080A7D7C: .4byte 0x0000FFFF - - thumb_func_start sub_080A7D80 -sub_080A7D80: @ 0x080A7D80 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080A7E4A - adds r0, r4, #0 - bl sub_080A7D58 - adds r5, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080A7E50 - cmp r0, #0 - bne _080A7DA6 - movs r0, #0 - b _080A7E4C -_080A7DA6: - ldrb r1, [r4, #0x10] - movs r0, #1 - adds r2, r1, #0 - orrs r2, r0 - strb r2, [r4, #0x10] - ldrb r1, [r5, #0xa] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080A7DC0 - movs r0, #0x80 - orrs r2, r0 - strb r2, [r4, #0x10] -_080A7DC0: - ldrh r0, [r5, #8] - lsls r0, r0, #0x14 - lsrs r0, r0, #0x14 - strh r0, [r4, #0x12] - ldrb r2, [r4, #0x18] - lsls r0, r2, #0x1e - cmp r0, #0 - bne _080A7DE0 - ldrb r1, [r5, #0xa] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080A7DE0: - ldrb r1, [r5, #0xa] - lsls r1, r1, #0x1d - adds r3, r4, #0 - adds r3, #0x29 - lsrs r1, r1, #0x1a - ldrb r2, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r5, #0xa] - lsrs r1, r1, #6 - lsls r1, r1, #4 - ldrb r2, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080A7E14 - ldrh r0, [r5, #0xc] - strh r0, [r4, #0x24] -_080A7E14: - ldrb r0, [r5, #9] - lsrs r0, r0, #4 - lsls r0, r0, #4 - movs r1, #7 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x3c - strb r0, [r1] - ldrb r0, [r5, #0xf] - subs r1, #1 - strb r0, [r1] - ldrb r0, [r5, #0xe] - adds r1, #4 - strb r0, [r1] - ldrb r1, [r5, #0xb] - adds r0, r4, #0 - adds r0, #0x40 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] - ldr r0, [r5, #4] - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_08016A04 -_080A7E4A: - movs r0, #1 -_080A7E4C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A7E50 -sub_080A7E50: @ 0x080A7E50 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrh r2, [r5] - lsls r1, r2, #0x10 - cmp r1, #0 - beq _080A7EA2 - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r2 - cmp r0, #0 - beq _080A7E78 - ldr r0, _080A7E74 @ =0x000003FF - ands r0, r2 - adds r1, r4, #0 - adds r1, #0x60 - strh r0, [r1] - b _080A7EA2 - .align 2, 0 -_080A7E74: .4byte 0x000003FF -_080A7E78: - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r2 - cmp r0, #0 - beq _080A7E92 - lsrs r1, r1, #0x14 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE008 - b _080A7E9A -_080A7E92: - ldrh r1, [r5] - adds r0, r4, #0 - bl sub_080ADF80 -_080A7E9A: - cmp r0, #0 - bne _080A7EA2 - movs r0, #0 - b _080A7EAC -_080A7EA2: - ldrh r1, [r5, #2] - adds r0, r4, #0 - bl sub_0801D040 - movs r0, #1 -_080A7EAC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A7EB0 -sub_080A7EB0: @ 0x080A7EB0 - push {lr} - adds r3, r0, #0 - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldr r2, _080A7ED8 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - ldrh r1, [r2, #0x1e] - cmp r0, r1 - bhi _080A7ED2 - movs r1, #0x32 - ldrsh r0, [r3, r1] - ldrh r1, [r2, #8] - subs r0, r0, r1 - ldrh r2, [r2, #0x20] - cmp r0, r2 - bls _080A7EDC -_080A7ED2: - movs r0, #1 - b _080A7EDE - .align 2, 0 -_080A7ED8: .4byte gUnk_03000BF0 -_080A7EDC: - movs r0, #0 -_080A7EDE: - pop {pc} - - thumb_func_start sub_080A7EE0 -sub_080A7EE0: @ 0x080A7EE0 - push {r4, r5, lr} - adds r5, r0, #0 - bl GetEmptyEntity - adds r4, r0, #0 - cmp r4, #0 - beq _080A7EFC - movs r0, #4 - strb r0, [r4, #8] - strb r5, [r4, #9] - adds r0, r4, #0 - movs r1, #5 - bl sub_0805EA2C -_080A7EFC: - adds r0, r4, #0 - pop {r4, r5, pc} - - thumb_func_start sub_080A7F00 -sub_080A7F00: @ 0x080A7F00 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A7F26 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A7F80 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080A7F26 - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x14] - adds r1, #0x18 - adds r0, r4, #0 - bl sub_080042AC -_080A7F26: - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _080A7F34 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A7F38 -_080A7F34: - bl sub_0805E780 -_080A7F38: - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A7F56 - ldr r1, [r4, #0x4c] - ldr r0, _080A7F7C @ =gLinkEntity - cmp r1, r0 - bne _080A7F56 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xd3 - strb r0, [r1] -_080A7F56: - movs r0, #0 - strb r0, [r2] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - adds r0, r4, #0 - bl sub_080A7F9C - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080A7F7A - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_080042B8 -_080A7F7A: - pop {r4, pc} - .align 2, 0 -_080A7F7C: .4byte gLinkEntity - - thumb_func_start sub_080A7F80 -sub_080A7F80: @ 0x080A7F80 - ldr r3, _080A7F98 @ =gUnk_081293B8 - ldr r2, [r0, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - ldrb r2, [r2, #0xa] - adds r1, r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - adds r0, #0x3f - strb r1, [r0] - bx lr - .align 2, 0 -_080A7F98: .4byte gUnk_081293B8 - - thumb_func_start sub_080A7F9C -sub_080A7F9C: @ 0x080A7F9C - push {lr} - ldr r2, _080A7FB0 @ =gUnk_081293CC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A7FB0: .4byte gUnk_081293CC - - thumb_func_start sub_080A7FB4 -sub_080A7FB4: @ 0x080A7FB4 - ldr r1, [r0, #0x50] - ldr r3, _080A7FD4 @ =gUnk_081293E0 - ldrb r2, [r1, #0x14] - lsls r2, r2, #2 - adds r2, r2, r3 - adds r1, #0x5a - ldrb r3, [r1] - movs r1, #0xf - ands r1, r3 - ldr r2, [r2] - lsls r1, r1, #2 - adds r1, r1, r2 - subs r1, #4 - ldr r1, [r1] - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A7FD4: .4byte gUnk_081293E0 - - thumb_func_start sub_080A7FD8 -sub_080A7FD8: @ 0x080A7FD8 - ldr r1, [r0, #0x50] - ldr r2, _080A7FE8 @ =gUnk_081293F0 - ldrb r1, [r1, #0x14] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A7FE8: .4byte gUnk_081293F0 - - thumb_func_start sub_080A7FEC -sub_080A7FEC: @ 0x080A7FEC - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x50] - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080A8008 - ldr r0, _080A8004 @ =gUnk_08129410 - b _080A800A - .align 2, 0 -_080A8004: .4byte gUnk_08129410 -_080A8008: - ldr r0, _080A8018 @ =gUnk_08129400 -_080A800A: - ldrb r1, [r2, #0x14] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r3, #0x48] - pop {pc} - .align 2, 0 -_080A8018: .4byte gUnk_08129400 - - thumb_func_start sub_080A801C -sub_080A801C: @ 0x080A801C - ldr r1, [r0, #0x50] - ldr r2, _080A802C @ =gUnk_08129420 - ldrb r1, [r1, #0x14] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A802C: .4byte gUnk_08129420 - - thumb_func_start sub_080A8030 -sub_080A8030: @ 0x080A8030 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8048 @ =gUnk_081295D0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8048: .4byte gUnk_081295D0 - - thumb_func_start sub_080A804C -sub_080A804C: @ 0x080A804C - push {lr} - ldr r2, _080A8060 @ =gUnk_081295E4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A8060: .4byte gUnk_081295E4 - - thumb_func_start sub_080A8064 -sub_080A8064: @ 0x080A8064 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A8078 - adds r0, r1, #0 - bl sub_0805E7BC - b _080A8086 -_080A8078: - adds r0, r1, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r1, #0x15] - adds r0, r1, #0 - bl sub_080A8178 -_080A8086: - pop {pc} - - thumb_func_start sub_080A8088 -sub_080A8088: @ 0x080A8088 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x30 - strb r1, [r0, #0xe] - movs r1, #0xa0 - lsls r1, r1, #8 - str r1, [r0, #0x20] - movs r1, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_080A80A0 -sub_080A80A0: @ 0x080A80A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - beq _080A80DC - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A80C4 - adds r0, r4, #0 - bl sub_0805E7BC - b _080A80F0 -_080A80C4: - adds r0, r4, #0 - bl sub_08016AD2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A80F0 - movs r0, #3 - strb r0, [r4, #0xc] - b _080A80F0 -_080A80DC: - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_080A8178 - adds r0, r4, #0 - bl sub_08016AD2 -_080A80F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A80F4 -sub_080A80F4: @ 0x080A80F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A8116 - adds r0, r4, #0 - bl sub_0805E7BC -_080A8116: - pop {r4, pc} - - thumb_func_start sub_080A8118 -sub_080A8118: @ 0x080A8118 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - beq _080A813A - cmp r0, #1 - beq _080A8142 - b _080A815A -_080A813A: - adds r0, r4, #0 - bl sub_0805E7BC - b _080A8176 -_080A8142: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _080A8176 -_080A815A: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A8176 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080A8176: - pop {r4, pc} - - thumb_func_start sub_080A8178 -sub_080A8178: @ 0x080A8178 - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x40 - strh r1, [r0, #0x24] - movs r1, #0xa0 - lsls r1, r1, #9 - str r1, [r0, #0x20] - bx lr - - thumb_func_start sub_080A8190 -sub_080A8190: @ 0x080A8190 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A81A8 @ =gUnk_0812960C - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A81A8: .4byte gUnk_0812960C - - thumb_func_start sub_080A81AC -sub_080A81AC: @ 0x080A81AC - push {lr} - ldr r2, _080A81C0 @ =gUnk_08129620 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A81C0: .4byte gUnk_08129620 - - thumb_func_start sub_080A81C4 -sub_080A81C4: @ 0x080A81C4 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A81D8 - adds r0, r1, #0 - bl sub_0805E7BC - b _080A81DE -_080A81D8: - adds r0, r1, #0 - bl sub_080A82D8 -_080A81DE: - pop {pc} - - thumb_func_start sub_080A81E0 -sub_080A81E0: @ 0x080A81E0 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x3c - strb r1, [r0, #0xe] - ldr r1, _080A81F8 @ =0x0000FFFE - strh r1, [r0, #0x36] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 -_080A81F8: .4byte 0x0000FFFE - - thumb_func_start sub_080A81FC -sub_080A81FC: @ 0x080A81FC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - bne _080A8240 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8222 - adds r0, r4, #0 - bl sub_0805E7BC - b _080A8246 -_080A8222: - adds r0, r4, #0 - bl sub_08016AD2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A8246 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _080A8246 -_080A8240: - adds r0, r4, #0 - bl sub_080A82D8 -_080A8246: - pop {r4, pc} - - thumb_func_start sub_080A8248 -sub_080A8248: @ 0x080A8248 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A827A - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xe0 - strh r0, [r4, #0x24] - movs r0, #0xe0 - lsls r0, r0, #8 - str r0, [r4, #0x20] -_080A827A: - pop {r4, pc} - - thumb_func_start sub_080A827C -sub_080A827C: @ 0x080A827C - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - bne _080A82B2 - adds r0, r4, #0 - bl sub_0805E7BC -_080A82B2: - pop {r4, pc} - - thumb_func_start sub_080A82B4 -sub_080A82B4: @ 0x080A82B4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A82D6 - adds r0, r4, #0 - bl sub_0805E7BC -_080A82D6: - pop {r4, pc} - - thumb_func_start sub_080A82D8 -sub_080A82D8: @ 0x080A82D8 - movs r1, #4 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x80 - lsls r1, r1, #9 - str r1, [r0, #0x20] - ldrb r1, [r0, #0x15] - movs r2, #0x10 - eors r1, r2 - strb r1, [r0, #0x15] - movs r1, #0x80 - strh r1, [r0, #0x24] - bx lr - - thumb_func_start sub_080A82F8 -sub_080A82F8: @ 0x080A82F8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8310 @ =gUnk_08129650 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8310: .4byte gUnk_08129650 - - thumb_func_start sub_080A8314 -sub_080A8314: @ 0x080A8314 - push {lr} - ldr r2, _080A8328 @ =gUnk_08129664 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A8328: .4byte gUnk_08129664 - - thumb_func_start sub_080A832C -sub_080A832C: @ 0x080A832C - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x41 - ldrb r0, [r2] - cmp r0, #0x80 - bne _080A8358 - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0x10 - strb r0, [r1] - adds r1, #5 - movs r0, #0xc - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - ldr r0, [r3, #0x50] - ldrb r1, [r2] - adds r0, #0x41 - strb r1, [r0] -_080A8358: - adds r0, r3, #0 - adds r0, #0x3d - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A836A - ldr r0, [r3, #0x50] - b _080A836E -_080A836A: - ldr r0, [r3, #0x50] - rsbs r1, r1, #0 -_080A836E: - adds r0, #0x3d - strb r1, [r0] - ldr r0, [r3, #0x50] - movs r1, #0x42 - adds r1, r1, r3 - mov ip, r1 - ldrb r1, [r1] - adds r0, #0x42 - strb r1, [r0] - ldr r0, [r3, #0x50] - adds r1, r3, #0 - adds r1, #0x46 - ldrh r1, [r1] - adds r0, #0x46 - movs r2, #0 - strh r1, [r0] - ldr r0, [r3, #0x50] - adds r1, r3, #0 - adds r1, #0x3e - ldrb r1, [r1] - adds r0, #0x3e - strb r1, [r0] - mov r0, ip - strb r2, [r0] - pop {pc} - - thumb_func_start sub_080A83A0 -sub_080A83A0: @ 0x080A83A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FBD8 - cmp r0, #0 - beq _080A83B0 - movs r0, #1 - strb r0, [r4, #0xc] -_080A83B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A83B4 -sub_080A83B4: @ 0x080A83B4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A83C2 - bl sub_0805E780 -_080A83C2: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A83CC - bl sub_0805E780 -_080A83CC: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x18 - ldr r1, _080A8424 @ =gUnk_0812966C - adds r2, r0, r1 - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r0, r5, #0 - adds r0, #0x5b - ldrb r0, [r0] - cmp r0, #0x40 - bne _080A83F4 - ldr r1, [r4, #0x48] - ldrb r0, [r1] - rsbs r0, r0, #0 - strb r0, [r1] -_080A83F4: - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1, #1] - adds r2, #1 - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #1] - strb r0, [r1, #7] - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080A8428 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8438 - movs r0, #0x7f - ands r0, r1 - b _080A8436 - .align 2, 0 -_080A8424: .4byte gUnk_0812966C -_080A8428: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A8438 - movs r0, #0x80 - orrs r0, r1 -_080A8436: - strb r0, [r4, #0x10] -_080A8438: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A843C -sub_080A843C: @ 0x080A843C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8454 @ =gUnk_081296F0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8454: .4byte gUnk_081296F0 - - thumb_func_start sub_080A8458 -sub_080A8458: @ 0x080A8458 - push {lr} - ldr r2, _080A846C @ =gUnk_08129704 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A846C: .4byte gUnk_08129704 - - thumb_func_start sub_080A8470 -sub_080A8470: @ 0x080A8470 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x41 - ldrb r0, [r2] - cmp r0, #0x80 - bne _080A8496 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x68 - bne _080A848E - movs r0, #0x86 - bl sub_08004488 -_080A848E: - adds r0, r4, #0 - bl sub_0805E7BC - b _080A84C6 -_080A8496: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r2] - adds r0, #0x7e - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080A84B8 - adds r0, r4, #0 - bl sub_080A8680 - b _080A84C6 -_080A84B8: - adds r0, r4, #0 - movs r1, #0x19 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080A86A0 -_080A84C6: - pop {r4, pc} - - thumb_func_start sub_080A84C8 -sub_080A84C8: @ 0x080A84C8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x30 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrh r0, [r4, #0x36] - subs r0, #4 - strh r0, [r4, #0x36] - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - bne _080A84F0 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x68 - strb r0, [r1] -_080A84F0: - ldr r0, _080A8500 @ =0x0000018D - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0x18 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_080A8500: .4byte 0x0000018D - - thumb_func_start sub_080A8504 -sub_080A8504: @ 0x080A8504 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - beq _080A853C - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8524 - bl sub_0805E780 -_080A8524: - adds r0, r4, #0 - bl sub_08016AD2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A8558 - movs r0, #4 - strb r0, [r4, #0xc] - b _080A8558 -_080A853C: - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_08016AD2 - adds r0, r4, #0 - movs r1, #0x19 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080A86A0 -_080A8558: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080A85B6 - ldr r5, [r4, #0x50] - ldr r0, [r5, #4] - cmp r0, #0 - beq _080A85B6 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080177A0 - cmp r0, #0 - beq _080A85B6 - adds r0, r4, #0 - adds r0, #0x3d - movs r3, #0 - movs r2, #0x10 - strb r2, [r0] - ldrb r0, [r4, #0x15] - rsbs r0, r0, #0 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r1, #3 - movs r0, #0x80 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x42 - movs r1, #0xc - strb r1, [r0] - adds r0, #4 - strh r3, [r0] - adds r0, r5, #0 - adds r0, #0x3d - strb r2, [r0] - ldrb r0, [r4, #0x15] - adds r2, r5, #0 - adds r2, #0x3e - strb r0, [r2] - adds r2, #3 - movs r0, #0xc2 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x42 - strb r1, [r0] - adds r0, #4 - strh r3, [r0] -_080A85B6: - pop {r4, r5, pc} - - thumb_func_start sub_080A85B8 -sub_080A85B8: @ 0x080A85B8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - beq _080A85F2 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A85D8 - bl sub_0805E780 -_080A85D8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A860E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - b _080A860E -_080A85F2: - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_08016AD2 - adds r0, r4, #0 - movs r1, #0x19 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080A86A0 -_080A860E: - pop {r4, pc} - - thumb_func_start sub_080A8610 -sub_080A8610: @ 0x080A8610 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8628 - bl sub_0805E780 -_080A8628: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A862C -sub_080A862C: @ 0x080A862C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - beq _080A864E - cmp r0, #1 - beq _080A8654 - b _080A8662 -_080A864E: - bl sub_0805E780 - b _080A867E -_080A8654: - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_080A8662: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A867E - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080A867E: - pop {r4, pc} - - thumb_func_start sub_080A8680 -sub_080A8680: @ 0x080A8680 - push {lr} - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #3 - strb r1, [r0, #0xe] - movs r1, #1 - strb r1, [r0, #0xf] - movs r0, #0x8c - lsls r0, r0, #1 - bl sub_08004488 - pop {pc} - - thumb_func_start sub_080A86A0 -sub_080A86A0: @ 0x080A86A0 - push {lr} - movs r3, #0 - movs r1, #3 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - strh r3, [r0, #0x24] - movs r0, #0xc7 - lsls r0, r0, #1 - bl sub_08004488 - pop {pc} - - thumb_func_start sub_080A86BC -sub_080A86BC: @ 0x080A86BC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A86D4 @ =gUnk_08129718 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A86D4: .4byte gUnk_08129718 - - thumb_func_start sub_080A86D8 -sub_080A86D8: @ 0x080A86D8 - push {lr} - ldr r2, _080A86EC @ =gUnk_0812972C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A86EC: .4byte gUnk_0812972C - - thumb_func_start sub_080A86F0 -sub_080A86F0: @ 0x080A86F0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x50] - cmp r1, #0 - bne _080A8700 - bl sub_0805E780 - b _080A876E -_080A8700: - adds r5, r1, #0 - adds r5, #0x83 - ldrb r1, [r5] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r1 - cmp r0, #3 - bne _080A8768 - ldr r0, _080A875C @ =gUnk_03003F80 - ldrb r0, [r0, #0xf] - cmp r0, #0 - beq _080A876E - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _080A8760 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _080A8764 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - cmp r0, #0 - bne _080A876E - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A876E - ldrb r1, [r5] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5] - bl sub_0805E780 - b _080A876E - .align 2, 0 -_080A875C: .4byte gUnk_03003F80 -_080A8760: .4byte gUnk_03000BF0 -_080A8764: .4byte gLinkEntity -_080A8768: - adds r0, r4, #0 - bl sub_0805E7BC -_080A876E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080A8770 -sub_080A8770: @ 0x080A8770 - movs r1, #1 - strb r1, [r0, #0xc] - adds r3, r0, #0 - adds r3, #0x3c - ldrb r2, [r3] - movs r1, #0x10 - orrs r1, r2 - strb r1, [r3] - ldr r1, _080A8788 @ =gUnk_08129734 - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A8788: .4byte gUnk_08129734 - - thumb_func_start sub_080A878C -sub_080A878C: @ 0x080A878C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - cmp r4, #0 - bne _080A879A - bl sub_0805E780 -_080A879A: - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A87A4 - bl sub_0805E780 -_080A87A4: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #3 - beq _080A87B6 - bl sub_0805E780 -_080A87B6: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - ldrh r0, [r5, #0x36] - adds r0, #2 - strh r0, [r5, #0x36] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A87C8 -sub_080A87C8: @ 0x080A87C8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A87E0 @ =gUnk_08129740 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A87E0: .4byte gUnk_08129740 - - thumb_func_start sub_080A87E4 -sub_080A87E4: @ 0x080A87E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080A8804 - ldr r0, [r4, #0x54] - cmp r0, #0 - bne _080A87F8 - bl sub_0805E780 -_080A87F8: - ldr r0, [r4, #0x54] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A8804 - bl sub_0805E780 -_080A8804: - ldr r0, _080A8818 @ =gUnk_08129754 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8818: .4byte gUnk_08129754 - - thumb_func_start sub_080A881C -sub_080A881C: @ 0x080A881C - push {lr} - adds r1, r0, #0 - adds r2, r1, #0 - adds r2, #0x46 - movs r0, #0 - strh r0, [r2] - ldrb r2, [r1, #0xa] - cmp r2, #0 - bne _080A8854 - ldr r0, [r1, #0x50] - str r2, [r0, #0x54] - adds r0, r1, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A884A - ldr r0, _080A8850 @ =gUnk_03003F80 - movs r1, #0xf0 - strb r1, [r0, #0xf] - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth -_080A884A: - bl sub_0805E780 - b _080A8866 - .align 2, 0 -_080A8850: .4byte gUnk_03003F80 -_080A8854: - ldrb r0, [r1, #0xc] - cmp r0, #1 - bhi _080A8866 - movs r0, #2 - strb r0, [r1, #0xc] - ldr r0, [r1, #0x50] - adds r0, #0x83 - movs r1, #0xc0 - strb r1, [r0] -_080A8866: - pop {pc} - - thumb_func_start sub_080A8868 -sub_080A8868: @ 0x080A8868 - push {r4, lr} - adds r3, r0, #0 - movs r4, #0 - movs r0, #1 - strb r0, [r3, #0xc] - strb r4, [r3, #0xd] - ldrb r1, [r3, #0x18] - subs r0, #0x32 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r3, #0x18] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r3, #0x20] - ldr r0, _080A88A4 @ =gUnk_08129764 - str r0, [r3, #0x48] - adds r2, r3, #0 - adds r2, #0x3c - ldrb r0, [r2] - orrs r1, r0 - strb r1, [r2] - ldrb r0, [r3, #0xa] - cmp r0, #1 - beq _080A88B8 - cmp r0, #1 - bgt _080A88A8 - cmp r0, #0 - beq _080A88AE - b _080A88C6 - .align 2, 0 -_080A88A4: .4byte gUnk_08129764 -_080A88A8: - cmp r0, #2 - beq _080A88BE - b _080A88C6 -_080A88AE: - adds r0, r3, #0 - movs r1, #0 - bl sub_08004260 - b _080A88C6 -_080A88B8: - strb r4, [r3, #0xe] - strb r4, [r3, #0xf] - b _080A88C6 -_080A88BE: - adds r0, r3, #0 - movs r1, #5 - bl sub_08004260 -_080A88C6: - pop {r4, pc} - - thumb_func_start sub_080A88C8 -sub_080A88C8: @ 0x080A88C8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, [r4, #0x50] - cmp r6, #0 - bne _080A88D6 - movs r0, #2 - strb r0, [r4, #0xc] -_080A88D6: - ldr r0, [r6, #4] - cmp r0, #0 - bne _080A88E0 - movs r0, #2 - strb r0, [r4, #0xc] -_080A88E0: - ldr r3, _080A88FC @ =0xFFFF0000 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrb r5, [r4, #0xa] - cmp r5, #1 - beq _080A890E - cmp r5, #1 - bgt _080A8900 - cmp r5, #0 - beq _080A8906 - b _080A8982 - .align 2, 0 -_080A88FC: .4byte 0xFFFF0000 -_080A8900: - cmp r5, #2 - beq _080A8962 - b _080A8982 -_080A8906: - ldrh r0, [r4, #0x36] - adds r0, #0x10 - strh r0, [r4, #0x36] - b _080A8982 -_080A890E: - ldrh r0, [r4, #0x36] - adds r0, #0xe - strh r0, [r4, #0x36] - ldr r0, [r4, #0x54] - bl sub_08078954 - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bls _080A8982 - ldr r2, [r4, #0x54] - ldrb r0, [r2, #0xe] - cmp r0, #0 - bne _080A8982 - movs r3, #2 - ands r1, r3 - cmp r1, #0 - beq _080A8946 - ldrb r0, [r2, #0xf] - adds r0, #1 - strb r0, [r2, #0xf] -_080A8946: - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0xf] - cmp r1, #0x1f - bhi _080A8982 - movs r0, #3 - ands r0, r1 - cmp r0, #3 - bne _080A8982 - adds r1, r6, #0 - adds r1, #0x83 - movs r0, #0xc0 - strb r0, [r1] - strb r3, [r4, #0xc] - b _080A8982 -_080A8962: - ldrh r0, [r4, #0x36] - adds r0, #0xe - strh r0, [r4, #0x36] - ldr r1, _080A8984 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0xe - movs r3, #0xe - bl sub_080041A0 - cmp r0, #0 - beq _080A8982 - strb r5, [r4, #0xc] - adds r1, r6, #0 - adds r1, #0x83 - movs r0, #0xc0 - strb r0, [r1] -_080A8982: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A8984: .4byte gLinkEntity - - thumb_func_start sub_080A8988 -sub_080A8988: @ 0x080A8988 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _080A89B4 - ldr r4, [r5, #0x54] - cmp r4, #0 - bne _080A899C - bl sub_0805E780 -_080A899C: - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A89A6 - bl sub_0805E780 -_080A89A6: - adds r0, r4, #0 - bl sub_08078954 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_080A89B4: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_080044EC - cmp r0, #1 - bne _080A8A44 - adds r0, r5, #0 - bl sub_080043E8 - cmp r0, #0 - beq _080A8A00 - cmp r0, #2 - beq _080A89E0 - cmp r0, #2 - bhi _080A89DA - cmp r0, #1 - beq _080A89E6 - b _080A89FC -_080A89DA: - cmp r0, #3 - beq _080A89F2 - b _080A89FC -_080A89E0: - adds r0, r5, #0 - movs r1, #0xb - b _080A89EA -_080A89E6: - adds r0, r5, #0 - movs r1, #0 -_080A89EA: - movs r2, #0 - bl CreateFX - b _080A89FC -_080A89F2: - adds r0, r5, #0 - movs r1, #0xc - movs r2, #0 - bl CreateFX -_080A89FC: - bl sub_0805E780 -_080A8A00: - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _080A8A3E - cmp r0, #1 - bgt _080A8A10 - cmp r0, #0 - beq _080A8A16 - b _080A8A44 -_080A8A10: - cmp r0, #2 - beq _080A8A2A - b _080A8A44 -_080A8A16: - adds r0, r5, #0 - movs r1, #1 - bl sub_08004260 - movs r0, #0x84 - bl sub_08004488 - movs r0, #3 - strb r0, [r5, #0xc] - b _080A8A44 -_080A8A2A: - adds r0, r5, #0 - movs r1, #5 - movs r2, #0x80 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _080A8A3E - movs r0, #0 - str r0, [r4, #0x50] -_080A8A3E: - adds r0, r5, #0 - bl sub_0805E7BC -_080A8A44: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8A48 -sub_080A8A48: @ 0x080A8A48 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8A64 - adds r0, r4, #0 - bl sub_0805E7BC -_080A8A64: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8A68 -sub_080A8A68: @ 0x080A8A68 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800279C - cmp r0, #0 - beq _080A8A78 - bl sub_0805E780 -_080A8A78: - ldr r0, _080A8A8C @ =gUnk_0812979C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8A8C: .4byte gUnk_0812979C - - thumb_func_start sub_080A8A90 -sub_080A8A90: @ 0x080A8A90 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A8AAA - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - adds r0, r2, #0 - bl sub_08004260 - b _080A8AC2 -_080A8AAA: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r2, #0 - bl sub_08004260 - ldr r0, _080A8AC4 @ =0x0000015F - bl sub_08004488 -_080A8AC2: - pop {pc} - .align 2, 0 -_080A8AC4: .4byte 0x0000015F - - thumb_func_start sub_080A8AC8 -sub_080A8AC8: @ 0x080A8AC8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A8AD8 - bl sub_0805E7BC - b _080A8B34 -_080A8AD8: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A8AE6 - adds r0, r4, #0 - bl sub_0805E7BC - b _080A8B34 -_080A8AE6: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080A8B2E - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r0, [r5, #0x15] - adds r2, r0, #4 - movs r0, #0x18 - ands r2, r0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A8B1A - movs r0, #0 - strb r2, [r4, #0x15] - lsrs r1, r2, #2 - strb r1, [r4, #0x14] - strb r0, [r4, #0xe] - lsrs r1, r2, #3 - adds r0, r4, #0 - bl sub_08004260 - b _080A8B2E -_080A8B1A: - lsrs r0, r2, #2 - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _080A8B2E - strb r2, [r4, #0x15] - strb r0, [r4, #0x14] - lsrs r1, r2, #3 - adds r0, r4, #0 - bl sub_08004260 -_080A8B2E: - adds r0, r4, #0 - bl sub_08004274 -_080A8B34: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8B38 -sub_080A8B38: @ 0x080A8B38 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - adds r2, r0, #0 - cmp r2, #0 - beq _080A8B66 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8B5E - adds r0, r4, #0 - bl sub_0805E7BC - b _080A8B74 -_080A8B5E: - adds r0, r4, #0 - bl sub_08016AD2 - b _080A8B74 -_080A8B66: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] -_080A8B74: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8B78 -sub_080A8B78: @ 0x080A8B78 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8B94 - adds r0, r4, #0 - bl sub_0805E7BC -_080A8B94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8B98 -sub_080A8B98: @ 0x080A8B98 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800279C - cmp r0, #0 - beq _080A8BA8 - bl sub_0805E780 -_080A8BA8: - ldr r0, _080A8BBC @ =gUnk_0812982C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8BBC: .4byte gUnk_0812982C - - thumb_func_start sub_080A8BC0 -sub_080A8BC0: @ 0x080A8BC0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A8BDA - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - adds r0, r2, #0 - bl sub_08004260 - b _080A8BF4 -_080A8BDA: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r2, #0 - bl sub_08004260 - movs r0, #0xaf - lsls r0, r0, #1 - bl sub_08004488 -_080A8BF4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A8BF8 -sub_080A8BF8: @ 0x080A8BF8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A8C08 - bl sub_0805E7BC - b _080A8C48 -_080A8C08: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A8C16 - adds r0, r4, #0 - bl sub_0805E7BC - b _080A8C48 -_080A8C16: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080A8C42 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A8C42 - ldrb r0, [r5, #0x15] - movs r1, #0x18 - ands r1, r0 - movs r0, #0 - strb r1, [r4, #0x15] - strb r0, [r4, #0xe] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 -_080A8C42: - adds r0, r4, #0 - bl sub_08004274 -_080A8C48: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8C4C -sub_080A8C4C: @ 0x080A8C4C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - adds r2, r0, #0 - cmp r2, #0 - beq _080A8C7A - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8C72 - adds r0, r4, #0 - bl sub_0805E7BC - b _080A8C88 -_080A8C72: - adds r0, r4, #0 - bl sub_08016AD2 - b _080A8C88 -_080A8C7A: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] -_080A8C88: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8C8C -sub_080A8C8C: @ 0x080A8C8C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8CA8 - adds r0, r4, #0 - bl sub_0805E7BC -_080A8CA8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8CAC -sub_080A8CAC: @ 0x080A8CAC - push {r4, lr} - adds r4, r0, #0 - bl sub_0800279C - cmp r0, #0 - beq _080A8CBC - bl sub_0805E780 -_080A8CBC: - ldr r0, _080A8CD0 @ =gUnk_081298B8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8CD0: .4byte gUnk_081298B8 - - thumb_func_start sub_080A8CD4 -sub_080A8CD4: @ 0x080A8CD4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A8CEE - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - adds r0, r2, #0 - bl sub_08004260 - b _080A8D08 -_080A8CEE: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r2, #0 - bl sub_08004260 - movs r0, #0xb0 - lsls r0, r0, #1 - bl sub_08004488 -_080A8D08: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A8D0C -sub_080A8D0C: @ 0x080A8D0C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A8D1C - bl sub_0805E7BC - b _080A8D5C -_080A8D1C: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A8D2A - adds r0, r4, #0 - bl sub_0805E7BC - b _080A8D5C -_080A8D2A: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080A8D56 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A8D56 - ldrb r0, [r5, #0x15] - movs r1, #0x18 - ands r1, r0 - movs r0, #0 - strb r1, [r4, #0x15] - strb r0, [r4, #0xe] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 -_080A8D56: - adds r0, r4, #0 - bl sub_08004274 -_080A8D5C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8D60 -sub_080A8D60: @ 0x080A8D60 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - adds r2, r0, #0 - cmp r2, #0 - beq _080A8D8E - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8D86 - adds r0, r4, #0 - bl sub_0805E7BC - b _080A8D9C -_080A8D86: - adds r0, r4, #0 - bl sub_08016AD2 - b _080A8D9C -_080A8D8E: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] -_080A8D9C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8DA0 -sub_080A8DA0: @ 0x080A8DA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8DBC - adds r0, r4, #0 - bl sub_0805E7BC -_080A8DBC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8DC0 -sub_080A8DC0: @ 0x080A8DC0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8DD8 @ =gUnk_08129954 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8DD8: .4byte gUnk_08129954 - - thumb_func_start sub_080A8DDC -sub_080A8DDC: @ 0x080A8DDC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #3 - beq _080A8E12 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8E12 - movs r2, #0x7f - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x1e - beq _080A8E12 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0x53 - bl sub_08004260 -_080A8E12: - ldr r0, _080A8E24 @ =gUnk_08129968 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8E24: .4byte gUnk_08129968 - - thumb_func_start sub_080A8E28 -sub_080A8E28: @ 0x080A8E28 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldr r0, _080A8E80 @ =0xFFFF0000 - str r0, [r5, #0x20] - ldrb r0, [r5, #0xa] - cmp r0, #3 - beq _080A8E6E - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FA24 - movs r1, #0x80 - lsls r1, r1, #5 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F5BC - ldr r0, [r5, #0x50] - ldr r2, [r5, #0x54] - ldr r1, [r0, #0x30] - ldr r0, [r2, #0x30] - subs r1, r1, r0 - str r1, [r5, #0x34] - ldr r0, [r5, #0x30] - subs r0, r0, r1 - str r0, [r5, #0x30] - adds r0, r5, #0 - movs r1, #0x51 - bl sub_08004260 - ldr r0, _080A8E84 @ =0x000001B5 - bl sub_080A3268 -_080A8E6E: - ldrb r4, [r5, #0xa] - cmp r4, #2 - beq _080A8EF2 - cmp r4, #2 - ble _080A8E88 - cmp r4, #3 - beq _080A8F02 - b _080A8FAE - .align 2, 0 -_080A8E80: .4byte 0xFFFF0000 -_080A8E84: .4byte 0x000001B5 -_080A8E88: - cmp r4, #0 - bge _080A8E8E - b _080A8FAE -_080A8E8E: - ldr r0, _080A8EC0 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r5, #0 - bl sub_080041DC - adds r4, r0, #0 - ldrb r6, [r5, #0xa] - cmp r6, #1 - bne _080A8ECE - bl sub_08000E50 - adds r2, r0, #0 - ldr r0, _080A8EC4 @ =0x000001FF - ands r2, r0 - ldr r0, _080A8EC8 @ =gUnk_030010A0 - ldr r0, [r0] - ands r0, r6 - cmp r0, #0 - bne _080A8ECC - adds r4, r4, r2 - b _080A8ECE - .align 2, 0 -_080A8EC0: .4byte gLinkEntity -_080A8EC4: .4byte 0x000001FF -_080A8EC8: .4byte gUnk_030010A0 -_080A8ECC: - subs r4, r4, r2 -_080A8ECE: - cmp r4, #0x1f - bgt _080A8ED6 - movs r4, #0x20 - b _080A8EE0 -_080A8ED6: - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - ble _080A8EE0 - adds r4, r0, #0 -_080A8EE0: - lsls r1, r4, #8 - ldr r0, [r5, #0x34] - bl __divsi3 - lsls r0, r0, #0xd - str r0, [r5, #0x20] - movs r0, #0x1e - strb r0, [r5, #0xf] - b _080A8FAE -_080A8EF2: - ldr r0, [r5, #0x34] - movs r1, #0xc0 - lsls r1, r1, #9 - bl __divsi3 - lsls r0, r0, #0xc - str r0, [r5, #0x20] - b _080A8FAE -_080A8F02: - ldr r0, _080A8F64 @ =0xFF600000 - str r0, [r5, #0x34] - bl sub_08000E50 - ands r4, r0 - lsls r2, r4, #1 - ldr r1, _080A8F68 @ =gUnk_08129978 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r5, #0x2e] - adds r0, r0, r3 - strh r0, [r5, #0x2e] - adds r0, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] - movs r0, #2 - ands r2, r0 - cmp r2, #0 - beq _080A8F74 - bl sub_08000E50 - ldr r2, _080A8F6C @ =gUnk_08129988 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r5, #0x2e] - adds r0, r0, r2 - strh r0, [r5, #0x2e] - bl sub_08000E50 - ldr r2, _080A8F70 @ =gUnk_08129980 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r5, #0x32] - adds r0, r0, r3 - b _080A8F9E - .align 2, 0 -_080A8F64: .4byte 0xFF600000 -_080A8F68: .4byte gUnk_08129978 -_080A8F6C: .4byte gUnk_08129988 -_080A8F70: .4byte gUnk_08129980 -_080A8F74: - bl sub_08000E50 - ldr r2, _080A8FB0 @ =gUnk_08129980 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - bl sub_08000E50 - ldr r2, _080A8FB4 @ =gUnk_08129988 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r5, #0x32] - adds r0, r0, r2 -_080A8F9E: - strh r0, [r5, #0x32] - adds r0, r5, #0 - bl sub_08004168 - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 -_080A8FAE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A8FB0: .4byte gUnk_08129980 -_080A8FB4: .4byte gUnk_08129988 - - thumb_func_start sub_080A8FB8 -sub_080A8FB8: @ 0x080A8FB8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080A8FE8 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9054 - adds r0, r4, #0 - movs r1, #7 - bl sub_08008790 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - bl sub_0805E780 - b _080A9054 -_080A8FE8: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _080A901C - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080A901C - movs r0, #0x1e - strb r0, [r4, #0xf] - ldr r1, _080A9048 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_080A901C: - adds r0, r4, #0 - movs r1, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9054 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A90D8 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _080A904C - movs r0, #0xf - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x54 - bl sub_08004260 - b _080A9054 - .align 2, 0 -_080A9048: .4byte gLinkEntity -_080A904C: - adds r0, r4, #0 - movs r1, #0x52 - bl sub_08004260 -_080A9054: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9058 -sub_080A9058: @ 0x080A9058 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _080A9098 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080A908A - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x55 - bl sub_08004260 - b _080A90BA -_080A908A: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080A90D8 - b _080A90BA -_080A9098: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A90BA - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0x53 - bl sub_08004260 -_080A90BA: - pop {r4, pc} - - thumb_func_start sub_080A90BC -sub_080A90BC: @ 0x080A90BC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A90D4 - bl sub_0805E780 -_080A90D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A90D8 -sub_080A90D8: @ 0x080A90D8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #0x74 - adds r0, r0, r5 - mov ip, r0 - ldrh r3, [r0] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r7, _080A9154 @ =gUnk_03000BF0 - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r6, #0x3f - adds r2, r4, #0 - ands r2, r6 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r7, #8] - subs r0, r0, r1 - asrs r1, r0, #4 - adds r0, r1, #0 - ands r0, r6 - lsls r0, r0, #6 - orrs r2, r0 - cmp r3, r2 - beq _080A9152 - movs r0, #0x3f - ands r4, r0 - ands r1, r0 - lsls r0, r1, #6 - orrs r4, r0 - mov r2, ip - strh r4, [r2] - adds r0, r5, #0 - bl sub_080002A0 - cmp r0, #0x13 - beq _080A9128 - cmp r0, #0x34 - bne _080A9152 -_080A9128: - movs r0, #0xd3 - lsls r0, r0, #2 - movs r3, #0x2e - ldrsh r1, [r5, r3] - ldrh r2, [r7, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - movs r3, #0x32 - ldrsh r2, [r5, r3] - ldrh r3, [r7, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 -_080A9152: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A9154: .4byte gUnk_03000BF0 - - thumb_func_start sub_080A9158 -sub_080A9158: @ 0x080A9158 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080A9166 - movs r0, #1 - strb r0, [r5, #0xc] -_080A9166: - ldr r4, [r5, #0x50] - cmp r4, #0 - beq _080A917C - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080A917C - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A91A4 -_080A917C: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A9198 - ldr r1, [r5, #0x4c] - ldr r0, _080A91A0 @ =gLinkEntity - cmp r1, r0 - bne _080A9198 - adds r0, r5, #0 - bl sub_0803C0AC -_080A9198: - adds r0, r5, #0 - bl sub_0805E7BC - b _080A91D8 - .align 2, 0 -_080A91A0: .4byte gLinkEntity -_080A91A4: - ldr r1, _080A91DC @ =gUnk_08129998 - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r5, #0x48] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080A91D8 - adds r1, r5, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _080A91D8 - movs r0, #0xff - strb r0, [r1] -_080A91D8: - pop {r4, r5, pc} - .align 2, 0 -_080A91DC: .4byte gUnk_08129998 - - thumb_func_start sub_080A91E0 -sub_080A91E0: @ 0x080A91E0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080A9288 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A9204 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080A9204: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A921C - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080A9218 - movs r0, #0xff - strb r0, [r1, #0xa] -_080A9218: - bl sub_0805E780 -_080A921C: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080A9230 - subs r0, #1 - strb r0, [r4, #0xf] - b _080A92F6 -_080A9230: - adds r0, r4, #0 - bl sub_080644C8 - cmp r0, #0 - beq _080A92F6 - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080A92F6 - movs r0, #0xc - bl sub_080A7EE0 - adds r5, r0, #0 - cmp r5, #0 - beq _080A92F6 - movs r0, #1 - strb r0, [r5, #0xa] - ldr r0, [r4, #0x50] - adds r0, #0x3e - ldrb r1, [r0] - ldr r3, _080A9284 @ =gUnk_081299C8 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #2 - movs r2, #7 - ands r0, r2 - adds r0, r0, r3 - lsls r1, r1, #3 - ldrb r0, [r0] - adds r1, r1, r0 - movs r0, #0x1f - ands r1, r0 - strb r1, [r5, #0x15] - ldr r0, [r4, #0x50] - str r0, [r5, #0x50] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - b _080A92F6 - .align 2, 0 -_080A9284: .4byte gUnk_081299C8 -_080A9288: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A92B0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x12 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x16 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r4, #0x24] - ldr r0, _080A92F8 @ =gUnk_080FD1E4 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_080A92B0: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A92C8 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080A92C4 - movs r0, #0xff - strb r0, [r1, #0xa] -_080A92C4: - bl sub_0805E780 -_080A92C8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A92D8 - bl sub_0805E780 -_080A92D8: - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, _080A92FC @ =gUnk_02027EB4 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r3, #0x32 - ldrsh r2, [r4, r3] - movs r3, #2 - bl sub_080AE4CC - cmp r0, #0 - beq _080A92F6 - bl sub_0805E780 -_080A92F6: - pop {r4, r5, pc} - .align 2, 0 -_080A92F8: .4byte gUnk_080FD1E4 -_080A92FC: .4byte gUnk_02027EB4 - - thumb_func_start sub_080A9300 -sub_080A9300: @ 0x080A9300 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A9318 @ =gUnk_081299D0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9318: .4byte gUnk_081299D0 - - thumb_func_start sub_080A931C -sub_080A931C: @ 0x080A931C - push {lr} - ldr r2, _080A9330 @ =gUnk_081299E4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9330: .4byte gUnk_081299E4 - - thumb_func_start sub_080A9334 -sub_080A9334: @ 0x080A9334 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A936C - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - beq _080A9368 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - adds r0, r4, #0 - bl sub_080A9488 - adds r0, r4, #0 - adds r0, #0x42 - movs r1, #0 - strb r1, [r0] - subs r0, #5 - strb r1, [r0] - b _080A936C -_080A9368: - bl sub_0805E780 -_080A936C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9370 -sub_080A9370: @ 0x080A9370 - push {r4, lr} - movs r4, #0 - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x6a - strb r1, [r0, #0xe] - strb r4, [r0, #0xf] - movs r1, #0xa0 - lsls r1, r1, #4 - str r1, [r0, #0x20] - ldrb r1, [r0, #0xa] - bl sub_080A94C0 - pop {r4, pc} - - thumb_func_start sub_080A93A0 -sub_080A93A0: @ 0x080A93A0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - beq _080A93B0 - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A93B4 -_080A93B0: - bl sub_0805E780 -_080A93B4: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080A93BE - bl sub_0805E780 -_080A93BE: - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _080A93DA - movs r2, #0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - str r2, [r5, #0x54] - movs r0, #0xfc - bl sub_080A3268 -_080A93DA: - pop {r4, r5, pc} - - thumb_func_start sub_080A93DC -sub_080A93DC: @ 0x080A93DC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080A9414 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #2 - adds r0, r4, #0 - bl sub_08004260 - movs r0, #0xc5 - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - bl sub_0806F69C - b _080A9424 -_080A9414: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9424 - bl sub_0805E780 -_080A9424: - adds r0, r4, #0 - bl sub_080AF090 - pop {r4, pc} - - thumb_func_start sub_080A942C -sub_080A942C: @ 0x080A942C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9440 - bl sub_0805E780 -_080A9440: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080A9448 -sub_080A9448: @ 0x080A9448 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa0 - lsls r1, r1, #6 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9464 - adds r0, r4, #0 - bl sub_080A29BC - bl sub_0805E780 - b _080A9486 -_080A9464: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9486 - movs r0, #2 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x14] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080A94C0 -_080A9486: - pop {r4, pc} - - thumb_func_start sub_080A9488 -sub_080A9488: @ 0x080A9488 - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #2 - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #0x18 - ands r0, r1 - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - movs r0, #0x74 - bl sub_08004488 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080A94C0 - pop {r4, pc} - - thumb_func_start sub_080A94C0 -sub_080A94C0: @ 0x080A94C0 - push {r4, lr} - lsls r1, r1, #3 - ldr r2, _080A94FC @ =gUnk_081299F8 - adds r1, r1, r2 - ldrb r3, [r1] - movs r2, #1 - ands r3, r2 - lsls r3, r3, #6 - ldrb r4, [r0, #0x18] - movs r2, #0x41 - rsbs r2, r2, #0 - ands r2, r4 - orrs r2, r3 - strb r2, [r0, #0x18] - ldrb r3, [r1, #1] - lsls r3, r3, #7 - movs r4, #0x7f - ands r2, r4 - orrs r2, r3 - strb r2, [r0, #0x18] - ldrb r2, [r1, #2] - adds r3, r0, #0 - adds r3, #0x58 - strb r2, [r3] - ldr r1, [r1, #4] - str r1, [r0, #0x48] - ldrb r1, [r3] - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_080A94FC: .4byte gUnk_081299F8 - - thumb_func_start sub_080A9500 -sub_080A9500: @ 0x080A9500 - push {lr} - ldr r2, _080A9514 @ =gUnk_08129A64 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9514: .4byte gUnk_08129A64 - - thumb_func_start sub_080A9518 -sub_080A9518: @ 0x080A9518 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0xa - strb r1, [r0, #0xe] - ldrh r1, [r0, #0x36] - subs r1, #2 - strh r1, [r0, #0x36] - ldrh r1, [r0, #0x32] - adds r1, #2 - strh r1, [r0, #0x32] - movs r1, #0 - bl sub_08004260 - ldr r0, _080A953C @ =0x00000149 - bl sub_080A3268 - pop {pc} - .align 2, 0 -_080A953C: .4byte 0x00000149 - - thumb_func_start sub_080A9540 -sub_080A9540: @ 0x080A9540 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9578 - movs r0, #2 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, #0x32] - adds r0, #6 - strh r0, [r3, #0x32] - adds r0, r3, #0 - movs r1, #1 - bl sub_08004260 - b _080A95B6 -_080A9578: - ldrh r1, [r3, #0x36] - movs r2, #0x36 - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _080A9586 - adds r0, r1, #1 - strh r0, [r3, #0x36] -_080A9586: - ldrb r1, [r3, #0x15] - lsls r1, r1, #1 - ldr r0, _080A95B8 @ =gUnk_080C9160 - adds r1, r1, r0 - movs r4, #0 - ldrsh r2, [r1, r4] - movs r4, #0x24 - ldrsh r0, [r3, r4] - muls r2, r0, r2 - ldr r0, [r3, #0x2c] - adds r0, r0, r2 - str r0, [r3, #0x2c] - adds r1, #0x80 - movs r0, #0 - ldrsh r1, [r1, r0] - movs r2, #0x24 - ldrsh r0, [r3, r2] - muls r1, r0, r1 - ldr r0, [r3, #0x30] - subs r0, r0, r1 - str r0, [r3, #0x30] - adds r0, r3, #0 - bl sub_08004274 -_080A95B6: - pop {r4, pc} - .align 2, 0 -_080A95B8: .4byte gUnk_080C9160 - - thumb_func_start sub_080A95BC -sub_080A95BC: @ 0x080A95BC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A95D8 - adds r0, r4, #0 - bl sub_0805E7BC -_080A95D8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A95DC -sub_080A95DC: @ 0x080A95DC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A95F4 @ =gUnk_08129ABC - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A95F4: .4byte gUnk_08129ABC - - thumb_func_start sub_080A95F8 -sub_080A95F8: @ 0x080A95F8 - push {lr} - ldr r2, _080A960C @ =gUnk_08129AD0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A960C: .4byte gUnk_08129AD0 - - thumb_func_start sub_080A9610 -sub_080A9610: @ 0x080A9610 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _080A9660 - cmp r0, #1 - bgt _080A9628 - cmp r0, #0 - beq _080A9632 - b _080A9756 -_080A9628: - cmp r0, #2 - beq _080A96D0 - cmp r0, #3 - beq _080A9718 - b _080A9756 -_080A9632: - movs r1, #0x90 - lsls r1, r1, #7 - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strb r1, [r4, #0xe] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _080A9756 -_080A9660: - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - bl sub_08000E50 - ldr r2, _080A96C8 @ =0x000001FF - adds r1, r2, #0 - ands r0, r1 - adds r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r4, #0x24] - bl sub_08000E50 - ldr r1, _080A96CC @ =0x00001FFF - ands r1, r0 - movs r0, #0xc0 - lsls r0, r0, #9 - adds r1, r1, r0 - str r1, [r4, #0x20] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - subs r0, #4 - ldrb r1, [r4, #0x15] - subs r1, r1, r0 - strb r1, [r4, #0x15] - movs r0, #0x96 - lsls r0, r0, #2 - str r0, [r4, #0x78] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - b _080A9756 - .align 2, 0 -_080A96C8: .4byte 0x000001FF -_080A96CC: .4byte 0x00001FFF -_080A96D0: - bl sub_08000E50 - ands r0, r5 - cmp r0, #0 - beq _080A96EA - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - strb r0, [r4, #0x15] - b _080A96F8 -_080A96EA: - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - ldrb r1, [r4, #0x15] - subs r1, r1, r0 - strb r1, [r4, #0x15] -_080A96F8: - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0x30 - strb r0, [r4, #0xe] - movs r1, #0xa0 - lsls r1, r1, #7 - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 - b _080A9756 -_080A9718: - ldr r0, _080A9760 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, _080A9764 @ =0xFF600000 - str r0, [r4, #0x34] - ldrh r0, [r4, #0x2e] - adds r0, #0x60 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, #0x40 - strh r0, [r4, #0x32] - bl sub_08000E50 - movs r1, #0xc0 - bl __modsi3 - ldrh r1, [r4, #0x2e] - subs r1, r1, r0 - strh r1, [r4, #0x2e] - bl sub_08000E50 - movs r1, #0x7f - ands r1, r0 - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_080A9756: - ldr r0, _080A9768 @ =0x000001B5 - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_080A9760: .4byte gLinkEntity -_080A9764: .4byte 0xFF600000 -_080A9768: .4byte 0x000001B5 - - thumb_func_start sub_080A976C -sub_080A976C: @ 0x080A976C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080A9778 - b _080A9908 -_080A9778: - cmp r0, #1 - bgt _080A9782 - cmp r0, #0 - beq _080A9790 - b _080A99EE -_080A9782: - cmp r0, #2 - bne _080A9788 - b _080A99A0 -_080A9788: - cmp r0, #3 - bne _080A978E - b _080A99D2 -_080A978E: - b _080A99EE -_080A9790: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _080A979C - bl sub_0805E780 -_080A979C: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080A97E0 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A97E0 - movs r5, #0x7f - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _080A97C0 - adds r0, r4, #0 - bl sub_080A99F0 -_080A97C0: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - movs r0, #1 - strb r0, [r4, #0xb] - strb r1, [r4, #0xe] - ldrb r1, [r4, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x10] -_080A97E0: - ldr r1, [r4, #0x50] - adds r0, r4, #0 - movs r2, #0x40 - bl sub_0806FC80 - cmp r0, #0 - beq _080A9848 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080A9804 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - eors r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - b _080A9848 -_080A9804: - ldr r1, [r4, #0x50] - adds r1, #0x45 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r0, #0x3d - movs r1, #0x1e - strb r1, [r0] - ldr r1, [r4, #0x50] - adds r0, r1, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _080A983C - adds r1, #0x42 - movs r0, #0x18 - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r0, #0x46 - movs r1, #0x80 - lsls r1, r1, #2 - strh r1, [r0] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - adds r1, #0x3e - strb r0, [r1] -_080A983C: - ldr r0, _080A98B8 @ =0x00000127 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_080A99F0 -_080A9848: - adds r0, r4, #0 - bl sub_080042B8 - adds r5, r4, #0 - adds r5, #0x78 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE58C - ldrh r1, [r4, #0x2a] - movs r0, #0xee - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080A9882 - ldrb r0, [r4, #0x15] - rsbs r0, r0, #0 - strb r0, [r4, #0x15] -_080A9882: - ldrh r1, [r4, #0x2a] - movs r0, #0xee - ands r0, r1 - cmp r0, #0 - beq _080A989A - ldrb r0, [r4, #0x15] - rsbs r0, r0, #0 - movs r2, #0x80 - rsbs r2, r2, #0 - adds r1, r2, #0 - eors r0, r1 - strb r0, [r4, #0x15] -_080A989A: - ldrb r0, [r4, #0x15] - ldrb r1, [r4, #0xf] - cmp r0, r1 - bne _080A98A4 - b _080A99EE -_080A98A4: - movs r0, #0xb2 - lsls r0, r0, #1 - bl sub_080A3268 - ldrh r0, [r5] - cmp r0, #0 - bne _080A98BC - movs r0, #4 - b _080A98C0 - .align 2, 0 -_080A98B8: .4byte 0x00000127 -_080A98BC: - ldrb r0, [r4, #0xe] - adds r0, #1 -_080A98C0: - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xe] - cmp r0, #1 - bhi _080A98CE - b _080A99EE -_080A98CE: - movs r5, #0 -_080A98D0: - adds r0, r4, #0 - movs r1, #0xf - movs r2, #1 - bl sub_0804A98C - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _080A98FC - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - ldr r1, [r4, #0x54] - ldr r0, _080A9904 @ =gUnk_08129ADC - adds r0, r5, r0 - ldrb r0, [r0] - ldrb r2, [r4, #0x15] - adds r0, r0, r2 - strb r0, [r1, #0x15] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 -_080A98FC: - adds r5, #1 - cmp r5, #2 - bls _080A98D0 - b _080A9998 - .align 2, 0 -_080A9904: .4byte gUnk_08129ADC -_080A9908: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _080A9916 - adds r0, r4, #0 - bl sub_080A99F0 -_080A9916: - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _080A9950 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE58C - ldrh r0, [r4, #0x2a] - cmp r0, #0 - bne _080A994A - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - b _080A9950 -_080A994A: - adds r0, r4, #0 - bl sub_080A99F0 -_080A9950: - ldr r2, [r4, #0x78] - cmp r2, #0x1d - bhi _080A9978 - movs r0, #7 - ands r0, r2 - cmp r0, #0 - beq _080A996E - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _080A9978 -_080A996E: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080A9978: - subs r1, r2, #1 - str r1, [r4, #0x78] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080A998A - adds r0, r4, #0 - bl sub_080A99F0 -_080A998A: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A99EE -_080A9998: - adds r0, r4, #0 - bl sub_080A99F0 - b _080A99EE -_080A99A0: - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080A99C2 - movs r2, #0x24 - ldrsh r1, [r4, r2] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - b _080A99EE -_080A99C2: - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _080A99CC - movs r0, #1 - strb r0, [r1, #0xe] -_080A99CC: - bl sub_0805E780 - b _080A99EE -_080A99D2: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A99EE - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_080A99EE: - pop {r4, r5, pc} - - thumb_func_start sub_080A99F0 -sub_080A99F0: @ 0x080A99F0 - push {lr} - movs r1, #4 - movs r2, #0 - bl CreateFX - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080A9A00 -sub_080A9A00: @ 0x080A9A00 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A9A18 @ =gUnk_08129AE0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9A18: .4byte gUnk_08129AE0 - - thumb_func_start sub_080A9A1C -sub_080A9A1C: @ 0x080A9A1C - push {lr} - ldr r2, _080A9A30 @ =gUnk_08129AF8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9A30: .4byte gUnk_08129AF8 - - thumb_func_start sub_080A9A34 -sub_080A9A34: @ 0x080A9A34 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _080A9A62 - movs r0, #3 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] -_080A9A62: - pop {pc} - - thumb_func_start sub_080A9A64 -sub_080A9A64: @ 0x080A9A64 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _080A9A7E - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080A9A7E - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9A7E: - ldr r0, _080A9A90 @ =gUnk_08129B08 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A9A90: .4byte gUnk_08129B08 - - thumb_func_start sub_080A9A94 -sub_080A9A94: @ 0x080A9A94 - movs r1, #2 - strb r1, [r0, #0xd] - ldr r1, _080A9AA0 @ =0x0000FFFE - strh r1, [r0, #0x36] - bx lr - .align 2, 0 -_080A9AA0: .4byte 0x0000FFFE - - thumb_func_start sub_080A9AA4 -sub_080A9AA4: @ 0x080A9AA4 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080A9AAC -sub_080A9AAC: @ 0x080A9AAC - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_080A9AB4 -sub_080A9AB4: @ 0x080A9AB4 - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - bx lr - .align 2, 0 - - thumb_func_start nullsub_128 -nullsub_128: @ 0x080A9AC0 - bx lr - .align 2, 0 - - thumb_func_start sub_080A9AC4 -sub_080A9AC4: @ 0x080A9AC4 - push {lr} - bl sub_080A9BA8 - pop {pc} - - thumb_func_start sub_080A9ACC -sub_080A9ACC: @ 0x080A9ACC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xb] - cmp r0, #1 - beq _080A9AE0 - cmp r0, #2 - beq _080A9AEE - movs r0, #1 - strb r0, [r2, #0xc] - b _080A9B0A -_080A9AE0: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - b _080A9B0A -_080A9AEE: - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r3] -_080A9B0A: - movs r0, #2 - strb r0, [r2, #0x1c] - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A9B1E - adds r0, r2, #0 - movs r1, #5 - bl sub_08004260 - b _080A9B22 -_080A9B1E: - movs r0, #0 - strb r0, [r2, #0x1e] -_080A9B22: - pop {pc} - - thumb_func_start sub_080A9B24 -sub_080A9B24: @ 0x080A9B24 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A9B36 - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9B36: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #0xb - bne _080A9B46 - adds r0, r4, #0 - bl sub_080A9BD0 - b _080A9B50 -_080A9B46: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A9C34 -_080A9B50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9B54 -sub_080A9B54: @ 0x080A9B54 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A9B66 - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9B66: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #9 - bne _080A9B76 - adds r0, r4, #0 - bl sub_080A9C34 - b _080A9B7C -_080A9B76: - adds r0, r4, #0 - bl sub_080A9C50 -_080A9B7C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9B80 -sub_080A9B80: @ 0x080A9B80 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _080A9B92 - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_080A9B92: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9BA6 - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9BA6: - pop {r4, pc} - - thumb_func_start sub_080A9BA8 -sub_080A9BA8: @ 0x080A9BA8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _080A9BBE - adds r0, r1, #0 - movs r1, #5 - movs r2, #0 - bl CreateFX - b _080A9BC8 -_080A9BBE: - adds r0, r1, #0 - movs r1, #0x3c - movs r2, #0 - bl CreateFX -_080A9BC8: - bl sub_0805E780 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A9BD0 -sub_080A9BD0: @ 0x080A9BD0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, [r5, #0x50] - ldrb r0, [r1, #0x14] - cmp r0, #1 - beq _080A9BF8 - cmp r0, #1 - bgt _080A9BE6 - cmp r0, #0 - beq _080A9BF0 - b _080A9C06 -_080A9BE6: - cmp r0, #2 - beq _080A9C00 - cmp r0, #3 - beq _080A9BF8 - b _080A9C06 -_080A9BF0: - ldrb r0, [r1, #0x1e] - adds r2, r0, #0 - subs r2, #0x39 - b _080A9C06 -_080A9BF8: - ldrb r0, [r1, #0x1e] - adds r2, r0, #0 - subs r2, #0x3d - b _080A9C06 -_080A9C00: - ldrb r0, [r1, #0x1e] - adds r2, r0, #0 - subs r2, #0x41 -_080A9C06: - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - adds r0, r2, r0 - lsls r4, r0, #1 - adds r4, r4, r0 - ldr r0, _080A9C30 @ =gUnk_08129B20 - adds r4, r4, r0 - movs r2, #0 - ldrsb r2, [r4, r2] - movs r3, #1 - ldrsb r3, [r4, r3] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0806FA90 - movs r0, #2 - ldrsb r0, [r4, r0] - ldrh r1, [r5, #0x36] - adds r0, r0, r1 - strh r0, [r5, #0x36] - pop {r4, r5, pc} - .align 2, 0 -_080A9C30: .4byte gUnk_08129B20 - - thumb_func_start sub_080A9C34 -sub_080A9C34: @ 0x080A9C34 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r4, #0x63 - ldrb r0, [r4] - subs r0, #0xe - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9C50 -sub_080A9C50: @ 0x080A9C50 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, [r5, #0x50] - ldrb r0, [r1, #0x14] - cmp r0, #1 - beq _080A9C78 - cmp r0, #1 - bgt _080A9C66 - cmp r0, #0 - beq _080A9C70 - b _080A9C86 -_080A9C66: - cmp r0, #2 - beq _080A9C80 - cmp r0, #3 - beq _080A9C78 - b _080A9C86 -_080A9C70: - ldrb r0, [r1, #0x1e] - adds r4, r0, #0 - subs r4, #0x27 - b _080A9C86 -_080A9C78: - ldrb r0, [r1, #0x1e] - adds r4, r0, #0 - subs r4, #0x2d - b _080A9C86 -_080A9C80: - ldrb r0, [r1, #0x1e] - adds r4, r0, #0 - subs r4, #0x33 -_080A9C86: - adds r0, r1, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r0, r5, #0 - adds r0, #0x63 - ldr r1, _080A9CA4 @ =gUnk_08129B50 - adds r1, r4, r1 - ldrb r1, [r1] - ldrb r2, [r0] - adds r1, r1, r2 - strb r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_080A9CA4: .4byte gUnk_08129B50 - - thumb_func_start sub_080A9CA8 -sub_080A9CA8: @ 0x080A9CA8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A9CB8 - bl sub_0805E780 -_080A9CB8: - ldr r4, _080A9CD0 @ =gUnk_08129B58 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9CD0: .4byte gUnk_08129B58 - - thumb_func_start sub_080A9CD4 -sub_080A9CD4: @ 0x080A9CD4 - push {lr} - ldr r2, _080A9CE8 @ =gUnk_08129B70 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9CE8: .4byte gUnk_08129B70 - - thumb_func_start nullsub_539 -nullsub_539: @ 0x080A9CEC - bx lr - .align 2, 0 - - thumb_func_start sub_080A9CF0 -sub_080A9CF0: @ 0x080A9CF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080A9D0A - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_080A9D0A: - ldr r0, _080A9D1C @ =gUnk_08129B78 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A9D1C: .4byte gUnk_08129B78 - - thumb_func_start sub_080A9D20 -sub_080A9D20: @ 0x080A9D20 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start nullsub_540 -nullsub_540: @ 0x080A9D28 - bx lr - .align 2, 0 - - thumb_func_start sub_080A9D2C -sub_080A9D2C: @ 0x080A9D2C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080A9D64 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0xa6 - bne _080A9D56 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - ldr r0, _080A9D68 @ =gLinkEntity - movs r1, #0x7a - bl sub_0800449C - bl sub_08079D84 -_080A9D56: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_080A9D64: - pop {r4, pc} - .align 2, 0 -_080A9D68: .4byte gLinkEntity - - thumb_func_start sub_080A9D6C -sub_080A9D6C: @ 0x080A9D6C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldr r1, [r0, #0x50] - ldrb r1, [r1, #0x14] - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - bl sub_080042AC - pop {pc} - - thumb_func_start sub_080A9D80 -sub_080A9D80: @ 0x080A9D80 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r3, _080A9D9C @ =0xFFFF0000 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldr r0, _080A9DA0 @ =0x0000FFFE - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_080A9D9C: .4byte 0xFFFF0000 -_080A9DA0: .4byte 0x0000FFFE - - thumb_func_start sub_080A9DA4 -sub_080A9DA4: @ 0x080A9DA4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A9DBC @ =gUnk_08129BEC - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9DBC: .4byte gUnk_08129BEC - - thumb_func_start sub_080A9DC0 -sub_080A9DC0: @ 0x080A9DC0 - push {lr} - ldr r2, _080A9DD4 @ =gUnk_08129C00 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9DD4: .4byte gUnk_08129C00 - - thumb_func_start sub_080A9DD8 -sub_080A9DD8: @ 0x080A9DD8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080A9DEE - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A9DF2 -_080A9DEE: - bl sub_0805E780 -_080A9DF2: - adds r0, r4, #0 - bl sub_080A9DC0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9DFC -sub_080A9DFC: @ 0x080A9DFC - push {lr} - movs r2, #1 - strb r2, [r0, #0xc] - movs r1, #0xb4 - strb r1, [r0, #0xe] - adds r1, r0, #0 - adds r1, #0x45 - strb r2, [r1] - movs r1, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_080A9E14 -sub_080A9E14: @ 0x080A9E14 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - bne _080A9E34 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9E42 -_080A9E34: - adds r0, r4, #0 - movs r1, #0x4f - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_080A9E42: - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A9E50 - bl sub_0805E780 -_080A9E50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9E54 -sub_080A9E54: @ 0x080A9E54 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x54] - cmp r0, #0 - bne _080A9E60 - ldr r0, [r5, #0x50] -_080A9E60: - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _080A9E78 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A9E78 - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] -_080A9E78: - ldr r4, _080A9E90 @ =gUnk_08129C7C - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9E90: .4byte gUnk_08129C7C - - thumb_func_start sub_080A9E94 -sub_080A9E94: @ 0x080A9E94 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #2 - bhi _080A9EA4 - adds r0, r4, #0 - bl sub_080AA1D8 -_080A9EA4: - ldr r0, _080A9EB8 @ =gUnk_08129C90 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A9EB8: .4byte gUnk_08129C90 - - thumb_func_start sub_080A9EBC -sub_080A9EBC: @ 0x080A9EBC - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A9F4E - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _080A9EF2 - cmp r0, #4 - bne _080A9F18 - movs r0, #0 - strb r0, [r4, #0xf] - subs r0, #2 - bl ModHealth - adds r0, r4, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl sub_080042B8 - adds r5, r4, #0 - adds r5, #0x42 - b _080A9F4A -_080A9EF2: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - adds r5, r4, #0 - adds r5, #0x42 - cmp r0, #0 - beq _080A9F4A - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #2 - strb r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_080AA270 - movs r0, #0x20 - strb r0, [r4, #0xf] - b _080A9F4A -_080A9F18: - ldr r3, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x3d - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x42 - ldrb r1, [r2] - adds r0, r3, #0 - adds r0, #0x42 - strb r1, [r0] - ldrb r0, [r4, #0xc] - adds r5, r2, #0 - cmp r0, #1 - bne _080A9F4A - adds r0, r4, #0 - bl sub_080AA320 -_080A9F4A: - movs r0, #0 - strb r0, [r5] -_080A9F4E: - pop {r4, r5, pc} - - thumb_func_start sub_080A9F50 -sub_080A9F50: @ 0x080A9F50 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x80 - movs r2, #0 - strh r1, [r0] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x82 - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_0806FAD8 - adds r0, r4, #0 - bl sub_080AA270 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9F90 -sub_080A9F90: @ 0x080A9F90 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x80 - ldrh r0, [r1] - cmp r0, #0 - beq _080A9FA4 - subs r0, #1 - strh r0, [r1] - b _080A9FC8 -_080A9FA4: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9FB8 - adds r0, r4, #0 - bl sub_080AA270 - b _080A9FC8 -_080A9FB8: - adds r0, r4, #0 - bl sub_080AA2E0 - cmp r0, #0 - beq _080A9FC8 - adds r0, r4, #0 - bl sub_080AA320 -_080A9FC8: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_080A9FD0 -sub_080A9FD0: @ 0x080A9FD0 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080042B8 - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080A9FF2 - movs r0, #0xbf - ands r0, r1 - strb r0, [r2] - ldr r0, _080AA038 @ =0x0000015D - bl sub_08004488 -_080A9FF2: - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080AA03C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r5, #0 - adds r4, #0x78 - strh r1, [r4] - ldrh r0, [r4] - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080002B0 - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, r1 - bne _080AA034 - ldr r0, _080AA040 @ =0x00004005 - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E -_080AA034: - pop {r4, r5, pc} - .align 2, 0 -_080AA038: .4byte 0x0000015D -_080AA03C: .4byte gUnk_03000BF0 -_080AA040: .4byte 0x00004005 - - thumb_func_start sub_080AA044 -sub_080AA044: @ 0x080AA044 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - cmp r5, #0 - bne _080AA052 - bl sub_0805E780 -_080AA052: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080AA05E - bl sub_0805E780 - b _080AA0A2 -_080AA05E: - ldrh r0, [r5, #0x12] - ldrb r1, [r5, #0x1e] - bl sub_080700C8 - adds r3, r0, #0 - ldrb r1, [r5, #0x14] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080AA08C - movs r2, #0 - ldrsb r2, [r3, r2] - rsbs r2, r2, #0 - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - b _080AA0A2 -_080AA08C: - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_080AA0A2: - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _080AA108 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080AA0B8 - subs r0, #1 - strb r0, [r4, #0xf] - b _080AA108 -_080AA0B8: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AA108 - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #3 - strb r0, [r1] - movs r0, #0x40 - strb r0, [r4, #0xf] - ldrb r0, [r5, #0x14] - lsls r1, r0, #2 - strb r1, [r4, #0x15] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - strb r0, [r4, #0x14] - ldr r0, _080AA10C @ =gUnk_080FD150 - str r0, [r4, #0x48] - bl sub_08052660 - cmp r0, #0 - beq _080AA100 - ldrb r0, [r4, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x1b] -_080AA100: - adds r0, r4, #0 - movs r1, #0 - bl sub_080AA3E0 -_080AA108: - pop {r4, r5, pc} - .align 2, 0 -_080AA10C: .4byte gUnk_080FD150 - - thumb_func_start sub_080AA110 -sub_080AA110: @ 0x080AA110 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldr r7, [r6, #0x54] - cmp r7, #0 - beq _080AA1B6 - ldr r0, [r7, #4] - cmp r0, #0 - bne _080AA128 - str r0, [r6, #0x54] -_080AA128: - ldrb r0, [r6, #0xf] - adds r5, r0, #0 - cmp r5, #0 - beq _080AA136 - subs r0, #1 - strb r0, [r6, #0xf] - b _080AA1C4 -_080AA136: - adds r0, r6, #0 - bl sub_080AA374 - cmp r0, #0 - beq _080AA1C4 - adds r0, r7, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080AA14E - bl sub_0805E780 -_080AA14E: - movs r0, #0xf2 - bl sub_08004488 - movs r4, #1 - strb r4, [r6, #0xc] - movs r0, #0xff - strb r0, [r6, #0x14] - adds r0, r6, #0 - adds r0, #0x82 - strb r5, [r0] - strb r5, [r6, #0xe] - subs r0, #2 - movs r1, #0 - mov sb, r1 - movs r1, #0x20 - mov r8, r1 - mov r1, r8 - strh r1, [r0] - ldrb r1, [r6, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r6, #0x1b] - ldr r0, [r6, #0x54] - str r0, [r6, #0x50] - str r5, [r6, #0x54] - adds r0, r6, #0 - bl sub_080AA270 - ldr r7, [r6, #0x50] - strb r4, [r7, #0xc] - ldrb r0, [r7, #0x14] - lsls r0, r0, #2 - strb r0, [r7, #0x15] - strh r5, [r7, #0x24] - adds r0, r7, #0 - adds r0, #0x82 - strb r4, [r0] - mov r0, sb - strb r0, [r7, #0xe] - movs r0, #0x78 - strb r0, [r7, #0xf] - adds r0, r7, #0 - adds r0, #0x80 - mov r1, r8 - strh r1, [r0] - adds r0, r7, #0 - movs r1, #1 - bl sub_080AA3E0 - b _080AA1C4 -_080AA1B6: - adds r0, r6, #0 - bl sub_080040A8 - cmp r0, #0 - bne _080AA1C4 - bl sub_0805E780 -_080AA1C4: - adds r0, r6, #0 - bl sub_0806F69C - adds r0, r6, #0 - bl sub_080042B8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AA1D8 -sub_080AA1D8: @ 0x080AA1D8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - cmp r4, #0 - beq _080AA268 - ldr r0, [r4, #4] - cmp r0, #0 - bne _080AA1EC - bl sub_0805E780 -_080AA1EC: - ldrb r1, [r4, #0x1e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080AA26C - ldrh r0, [r4, #0x12] - ldrb r1, [r4, #0x1e] - bl sub_080700C8 - adds r3, r0, #0 - ldrb r1, [r4, #0x14] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080AA224 - movs r2, #0 - ldrsb r2, [r3, r2] - rsbs r2, r2, #0 - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative - b _080AA23A -_080AA224: - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative -_080AA23A: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080AA256 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AA26C - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - b _080AA26C -_080AA256: - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AA26C - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - b _080AA26C -_080AA268: - bl sub_0805E780 -_080AA26C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AA270 -sub_080AA270: @ 0x080AA270 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - bl sub_08000E50 - ldr r1, _080AA2A4 @ =gUnk_08129CA4 - movs r6, #7 - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xf] - ldrb r4, [r4, #0x14] - ldrb r0, [r5, #0x14] - cmp r0, #0xff - bne _080AA2AC - strb r4, [r5, #0x14] - ldr r0, _080AA2A8 @ =gUnk_08129CF4 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r5, #0x48] - adds r0, r5, #0 - movs r1, #0 - bl sub_080AA3E0 - b _080AA2D6 - .align 2, 0 -_080AA2A4: .4byte gUnk_08129CA4 -_080AA2A8: .4byte gUnk_08129CF4 -_080AA2AC: - bl sub_08000E50 - ldr r1, _080AA2D8 @ =gUnk_08129CAC - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - adds r4, r0, r4 - ands r4, r6 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _080AA2D6 - strb r4, [r5, #0x14] - ldr r0, _080AA2DC @ =gUnk_08129CF4 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r5, #0x48] - adds r0, r5, #0 - movs r1, #0 - bl sub_080AA3E0 -_080AA2D6: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AA2D8: .4byte gUnk_08129CAC -_080AA2DC: .4byte gUnk_08129CF4 - - thumb_func_start sub_080AA2E0 -sub_080AA2E0: @ 0x080AA2E0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _080AA31C - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - ldrb r1, [r5, #0x14] - lsls r1, r1, #2 - adds r0, #4 - movs r2, #0x1c - ands r0, r2 - adds r1, #4 - ands r1, r2 - cmp r0, r1 - bne _080AA31C - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x40 - bl sub_08049F1C - cmp r0, #0 - beq _080AA31C - movs r0, #1 - b _080AA31E -_080AA31C: - movs r0, #0 -_080AA31E: - pop {r4, r5, pc} - - thumb_func_start sub_080AA320 -sub_080AA320: @ 0x080AA320 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - movs r2, #0 - movs r1, #2 - strb r1, [r5, #0xc] - adds r3, r5, #0 - adds r3, #0x82 - movs r0, #1 - strb r0, [r3] - strb r2, [r5, #0xf] - strb r1, [r4, #0xc] - movs r0, #0x30 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0x50 - strh r0, [r1] - strh r2, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0 - bl sub_08049F84 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x1c - ands r0, r1 - lsrs r1, r0, #2 - strb r1, [r5, #0x14] - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #1 - bl sub_080AA3E0 - adds r0, r5, #0 - bl sub_080AA1D8 - pop {r4, r5, pc} - - thumb_func_start sub_080AA374 -sub_080AA374: @ 0x080AA374 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r0, #0 - mov r8, r0 - ldr r5, [r6, #0x54] - cmp r5, #0 - beq _080AA3D8 - ldr r0, [r5, #4] - cmp r0, #0 - beq _080AA3D8 - ldrb r4, [r5, #0x14] - ldr r0, _080AA3CC @ =gUnk_08129D14 - adds r4, r4, r0 - movs r2, #0 - ldrsb r2, [r4, r2] - movs r3, #1 - ldrsb r3, [r4, r3] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0806F824 - adds r7, r0, #0 - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0 - ldrsb r0, [r4, r0] - adds r1, r1, r0 - movs r0, #0x32 - ldrsh r2, [r5, r0] - movs r0, #1 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - adds r0, r6, #0 - movs r3, #8 - bl sub_0806FCB8 - cmp r0, #0 - beq _080AA3D0 - movs r0, #1 - mov r8, r0 - b _080AA3D8 - .align 2, 0 -_080AA3CC: .4byte gUnk_08129D14 -_080AA3D0: - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08004596 -_080AA3D8: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AA3E0 -sub_080AA3E0: @ 0x080AA3E0 - push {lr} - adds r3, r0, #0 - ldrb r2, [r3, #0x14] - adds r0, #0x82 - ldrb r0, [r0] - lsls r0, r0, #3 - orrs r2, r0 - cmp r1, #0 - beq _080AA3F4 - lsrs r2, r2, #1 -_080AA3F4: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AA400 -sub_080AA400: @ 0x080AA400 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AA418 @ =gUnk_08129FB8 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AA418: .4byte gUnk_08129FB8 - - thumb_func_start sub_080AA41C -sub_080AA41C: @ 0x080AA41C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080AA44C - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xa] - strb r1, [r2, #0x1e] - strb r0, [r2, #0x1c] - adds r0, r2, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r2, #0x24] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _080AA446 - adds r0, r2, #0 - bl sub_080AA494 - b _080AA44C -_080AA446: - adds r0, r2, #0 - bl sub_080AA534 -_080AA44C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AA450 -sub_080AA450: @ 0x080AA450 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x96 - bne _080AA462 - adds r0, r1, #0 - bl sub_080AA464 -_080AA462: - pop {pc} - - thumb_func_start sub_080AA464 -sub_080AA464: @ 0x080AA464 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AA474 - adds r0, r4, #0 - bl sub_080AA544 -_080AA474: - movs r0, #0x21 - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080AA48A - adds r0, r4, #0 - bl sub_0806FA24 -_080AA48A: - adds r0, r4, #0 - bl sub_0805E7BC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AA494 -sub_080AA494: @ 0x080AA494 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - bl sub_080002A0 - adds r2, r0, #0 - ldr r1, _080AA4A4 @ =gUnk_08129FD0 - b _080AA4AA - .align 2, 0 -_080AA4A4: .4byte gUnk_08129FD0 -_080AA4A8: - adds r4, #1 -_080AA4AA: - ldrh r0, [r1] - cmp r0, #0 - beq _080AA4B6 - adds r1, #2 - cmp r0, r2 - bne _080AA4A8 -_080AA4B6: - ldrh r0, [r5, #0x24] - bl sub_0807CBE4 - cmp r0, #0 - beq _080AA4EE - cmp r4, #4 - bne _080AA4EA - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080AA52C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r5, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_080AA654 -_080AA4EA: - bl sub_0805E780 -_080AA4EE: - strb r4, [r5, #0xb] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080AA530 @ =0x00004068 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080AA52C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_080AA52C: .4byte gUnk_03000BF0 -_080AA530: .4byte 0x00004068 - - thumb_func_start sub_080AA534 -sub_080AA534: @ 0x080AA534 - push {lr} - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #3 - strb r1, [r2] - bl sub_08016A04 - pop {pc} - - thumb_func_start sub_080AA544 -sub_080AA544: @ 0x080AA544 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldrb r0, [r6, #0xb] - cmp r0, #8 - bhi _080AA618 - ldr r0, _080AA5E8 @ =gUnk_08129FF8 - mov sb, r0 - movs r1, #0x2e - ldrsh r2, [r6, r1] - ldr r1, _080AA5EC @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - ldrb r0, [r6, #0xb] - add r0, sb - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r7, r2, r0 - movs r4, #0 - movs r5, #0 - movs r0, #0x38 - adds r0, r0, r6 - mov r8, r0 -_080AA58E: - mov r1, sb - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r7, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r2, r8 - ldrb r1, [r2] - bl sub_080002C8 - cmp r0, #0x3e - bne _080AA5AC - adds r5, #1 -_080AA5AC: - adds r4, #1 - cmp r4, #8 - bls _080AA58E - cmp r5, #8 - bne _080AA5F4 - movs r4, #0 - ldr r5, _080AA5F0 @ =gUnk_08129FD0 -_080AA5BA: - ldrh r0, [r5] - mov r3, sb - adds r1, r3, r4 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r1, r7, r1 - mov r3, r8 - ldrb r2, [r3] - bl sub_0807B7D8 - adds r5, #2 - adds r4, #1 - cmp r4, #8 - bls _080AA5BA - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_080AA654 - ldrh r0, [r6, #0x24] - bl sub_0807CCC8 - b _080AA648 - .align 2, 0 -_080AA5E8: .4byte gUnk_08129FF8 -_080AA5EC: .4byte gUnk_03000BF0 -_080AA5F0: .4byte gUnk_08129FD0 -_080AA5F4: - ldr r2, _080AA614 @ =gUnk_08129FE4 - ldrb r1, [r6, #0xb] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - add r1, sb - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r1, r7, r1 - mov r4, r8 - ldrb r2, [r4] - bl sub_0807B7D8 - b _080AA648 - .align 2, 0 -_080AA614: .4byte gUnk_08129FE4 -_080AA618: - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r2, _080AA650 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r4, #0x32 - ldrsh r1, [r6, r4] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r6, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - ldrh r0, [r6, #0x24] - bl sub_0807CCC8 -_080AA648: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AA650: .4byte gUnk_03000BF0 - - thumb_func_start sub_080AA654 -sub_080AA654: @ 0x080AA654 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r4, #0x68 - ldr r0, _080AA688 @ =gUnk_0812A004 - adds r1, r4, #0 - movs r2, #0x10 - bl sub_0801D66C - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - strh r0, [r4, #8] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - strh r0, [r4, #0xa] - adds r0, r4, #0 - bl CreateEntity - pop {r4, r5, pc} - .align 2, 0 -_080AA688: .4byte gUnk_0812A004 - - thumb_func_start sub_080AA68C -sub_080AA68C: @ 0x080AA68C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AA6A4 @ =gUnk_0812A014 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AA6A4: .4byte gUnk_0812A014 - - thumb_func_start sub_080AA6A8 -sub_080AA6A8: @ 0x080AA6A8 - push {lr} - ldr r2, _080AA6BC @ =gUnk_0812A02C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AA6BC: .4byte gUnk_0812A02C - - thumb_func_start sub_080AA6C0 -sub_080AA6C0: @ 0x080AA6C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x87 - bne _080AA774 - movs r6, #3 - movs r0, #3 - strb r0, [r4, #0xc] - movs r5, #0x5a - strb r5, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0xa] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_080042AC - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _080AA72A - strb r5, [r3, #0xb] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r1, _080AA770 @ =gUnk_0812A03C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, #0x39 - strb r0, [r2] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x63 - strb r0, [r1] - str r4, [r3, #0x50] -_080AA72A: - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _080AA784 - strb r5, [r3, #0xb] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r1, _080AA770 @ =gUnk_0812A03C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, #0x39 - strb r0, [r2] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x63 - strb r0, [r1] - str r4, [r3, #0x50] - b _080AA784 - .align 2, 0 -_080AA770: .4byte gUnk_0812A03C -_080AA774: - ldrb r1, [r4, #0xa] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_080042AC - ldr r0, _080AA788 @ =0x00000101 - bl sub_08004488 -_080AA784: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AA788: .4byte 0x00000101 - - thumb_func_start sub_080AA78C -sub_080AA78C: @ 0x080AA78C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080AA7DA - ldr r0, _080AA7C8 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r2, r0, #1 - ldrb r0, [r4, #0xa] - cmp r2, r0 - beq _080AA7CC - adds r3, r4, #0 - adds r3, #0x3a - ldrb r0, [r3] - movs r1, #0xfb - ands r1, r0 - strb r1, [r3] - movs r0, #2 - eors r2, r0 - ldrb r0, [r4, #0xa] - cmp r2, r0 - bne _080AA832 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xe2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080AA6C0 - b _080AA832 - .align 2, 0 -_080AA7C8: .4byte gLinkEntity -_080AA7CC: - movs r0, #1 - strb r0, [r4, #0xd] - adds r1, r2, #0 - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC -_080AA7DA: - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080AA812 - adds r0, r4, #0 - bl sub_080042B8 - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080AA806 - movs r0, #0xef - ands r0, r1 - strb r0, [r5] - movs r0, #0x80 - lsls r0, r0, #1 - bl sub_08004488 -_080AA806: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AA832 - b _080AA820 -_080AA812: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AA828 -_080AA820: - adds r0, r4, #0 - bl sub_080AAAA8 - b _080AA832 -_080AA828: - ldrb r1, [r4, #0xa] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_080042AC -_080AA832: - pop {r4, r5, pc} - - thumb_func_start sub_080AA834 -sub_080AA834: @ 0x080AA834 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080AA848 - bl sub_0805E780 -_080AA848: - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0x1c] - strb r0, [r4, #0x16] - ldr r1, _080AA874 @ =gUnk_0812A04C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - adds r0, r4, #0 - adds r0, #0x84 - strb r2, [r0] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_080AAA68 - pop {r4, pc} - .align 2, 0 -_080AA874: .4byte gUnk_0812A04C - - thumb_func_start sub_080AA878 -sub_080AA878: @ 0x080AA878 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AA88E - adds r0, r4, #0 - bl sub_080042B8 -_080AA88E: - adds r0, r4, #0 - bl sub_080AA9E0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AA898 -sub_080AA898: @ 0x080AA898 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FBB4 - ldr r1, _080AA8B4 @ =gUnk_0812A05C - ldrb r0, [r4, #0xd] - subs r0, #5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080AA8B4: .4byte gUnk_0812A05C - - thumb_func_start sub_080AA8B8 -sub_080AA8B8: @ 0x080AA8B8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r7, _080AA99C @ =gLinkEntity - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #0 - bne _080AA920 - ldrb r0, [r4, #0xa] - lsls r2, r0, #1 - ldrb r0, [r7, #0x14] - cmp r2, r0 - bne _080AA90A - ldr r1, _080AA9A0 @ =gUnk_0812A064 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r4, #0x2e] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r7, #0 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080002D4 - cmp r0, #0 - bne _080AA90A - strh r6, [r7, #0x2e] - strh r5, [r7, #0x32] -_080AA90A: - adds r1, r4, #0 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0xa] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_080AA920: - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - ldrb r2, [r4, #0xa] - cmp r0, r2 - bne _080AA99A - ldr r1, _080AA9A4 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x1a - bne _080AA99A - ldrb r1, [r1, #5] - movs r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080AA99A - ldr r0, _080AA99C @ =gLinkEntity - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080AA99A - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AA99A - adds r0, r4, #0 - bl sub_080042B8 - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AA99A - ldr r1, _080AA9A8 @ =gUnk_0812A06C - ldrb r0, [r7, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r7, #0x2e] - adds r0, r0, r3 - strh r0, [r7, #0x2e] - ldrb r0, [r7, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r7, #0x32] - adds r0, r0, r1 - strh r0, [r7, #0x32] - movs r0, #0x80 - lsls r0, r0, #1 - bl sub_08004488 -_080AA99A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AA99C: .4byte gLinkEntity -_080AA9A0: .4byte gUnk_0812A064 -_080AA9A4: .4byte gUnk_03003F80 -_080AA9A8: .4byte gUnk_0812A06C - - thumb_func_start sub_080AA9AC -sub_080AA9AC: @ 0x080AA9AC - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x84 - strb r2, [r1] - ldrb r1, [r0, #0xa] - adds r1, #0xc - bl sub_080042AC - pop {pc} - - thumb_func_start sub_080AA9C4 -sub_080AA9C4: @ 0x080AA9C4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AA9DE - adds r0, r4, #0 - bl sub_080AAAA8 -_080AA9DE: - pop {r4, pc} - - thumb_func_start sub_080AA9E0 -sub_080AA9E0: @ 0x080AA9E0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AAA00 - ldr r0, _080AA9FC @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r5, r2] - b _080AAA0A - .align 2, 0 -_080AA9FC: .4byte gLinkEntity -_080AAA00: - ldr r0, _080AAA24 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r5, r2] -_080AAA0A: - subs r4, r1, r0 - ldrb r2, [r5, #0xa] - lsls r1, r2, #2 - ldr r0, _080AAA28 @ =gUnk_0812A074 - adds r3, r1, r0 - cmp r2, #2 - bgt _080AAA2C - cmp r2, #1 - bge _080AAA36 - cmp r2, #0 - beq _080AAA30 - b _080AAA40 - .align 2, 0 -_080AAA24: .4byte gLinkEntity -_080AAA28: .4byte gUnk_0812A074 -_080AAA2C: - cmp r2, #3 - bne _080AAA40 -_080AAA30: - cmp r4, #4 - ble _080AAA40 - b _080AAA3E -_080AAA36: - movs r0, #4 - rsbs r0, r0, #0 - cmp r4, r0 - bge _080AAA40 -_080AAA3E: - adds r3, #2 -_080AAA40: - ldrb r0, [r3] - adds r4, r5, #0 - adds r4, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r3, #1] - strb r0, [r5, #0x15] - ldrb r0, [r3] - cmp r0, #5 - bne _080AAA66 - adds r0, r5, #0 - bl sub_08078930 -_080AAA66: - pop {r4, r5, pc} - - thumb_func_start sub_080AAA68 -sub_080AAA68: @ 0x080AAA68 - push {r4, r5, r6, lr} - ldr r2, _080AAAA0 @ =gUnk_0812A084 - ldrb r1, [r0, #0xa] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r5, [r1] - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _080AAAA4 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r0, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_080AAAA0: .4byte gUnk_0812A084 -_080AAAA4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080AAAA8 -sub_080AAAA8: @ 0x080AAAA8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _080AAAE4 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - bl sub_0805E780 - pop {r4, r5, pc} - .align 2, 0 -_080AAAE4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080AAAE8 -sub_080AAAE8: @ 0x080AAAE8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AAB00 @ =gUnk_0812A3C0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AAB00: .4byte gUnk_0812A3C0 - - thumb_func_start sub_080AAB04 -sub_080AAB04: @ 0x080AAB04 - push {lr} - ldr r2, _080AAB18 @ =gUnk_0812A3D4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AAB18: .4byte gUnk_0812A3D4 - - thumb_func_start sub_080AAB1C -sub_080AAB1C: @ 0x080AAB1C - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080AAB24 -sub_080AAB24: @ 0x080AAB24 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AAB38 -sub_080AAB38: @ 0x080AAB38 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080AAB4C - subs r0, #1 - strb r0, [r4, #0xe] - b _080AAB62 -_080AAB4C: - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - bne _080AAB5E - adds r0, r4, #0 - bl sub_0806F69C - b _080AAB62 -_080AAB5E: - movs r0, #2 - strb r0, [r4, #0xc] -_080AAB62: - pop {r4, pc} - - thumb_func_start sub_080AAB64 -sub_080AAB64: @ 0x080AAB64 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080AAB7C - bl sub_0805E780 -_080AAB7C: - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080AAB8A - bl sub_0805E780 -_080AAB8A: - pop {r4, pc} - - thumb_func_start sub_080AAB8C -sub_080AAB8C: @ 0x080AAB8C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AABA2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_080AABA2: - adds r0, r4, #0 - bl sub_080AABB0 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080AABB0 -sub_080AABB0: @ 0x080AABB0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r1, [r5, #0x14] - lsls r1, r1, #1 - ldr r0, _080AABEC @ =gUnk_080C9160 - adds r1, r1, r0 - ldrb r2, [r4, #0xe] - lsls r2, r2, #8 - movs r3, #0 - ldrsh r0, [r1, r3] - adds r3, r0, #0 - muls r3, r2, r3 - ldr r0, [r4, #0x2c] - adds r0, r0, r3 - str r0, [r4, #0x2c] - adds r1, #0x80 - movs r3, #0 - ldrsh r0, [r1, r3] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r4, #0x30] - pop {r4, r5, pc} - .align 2, 0 -_080AABEC: .4byte gUnk_080C9160 - - thumb_func_start sub_080AABF0 -sub_080AABF0: @ 0x080AABF0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AAC08 @ =gUnk_0812A418 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AAC08: .4byte gUnk_0812A418 - - thumb_func_start sub_080AAC0C -sub_080AAC0C: @ 0x080AAC0C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080AAC40 @ =gUnk_0812A430 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080AAC3C - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AAC3C - subs r1, #0x3f - movs r0, #0 - strb r0, [r1] -_080AAC3C: - pop {r4, pc} - .align 2, 0 -_080AAC40: .4byte gUnk_0812A430 - - thumb_func_start sub_080AAC44 -sub_080AAC44: @ 0x080AAC44 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AACCA - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080AACBC - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080AACA0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AAC84 - ldr r0, _080AAC80 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FAB0 - b _080AAC8C - .align 2, 0 -_080AAC80: .4byte gLinkEntity -_080AAC84: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FAB0 -_080AAC8C: - bl sub_08077B2C - ldr r2, _080AACB4 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] -_080AACA0: - ldr r0, _080AACB8 @ =gLinkEntity - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _080AACCA - adds r0, r4, #0 - adds r0, #0x45 - strb r1, [r0] - b _080AACCA - .align 2, 0 -_080AACB4: .4byte gUnk_03003F80 -_080AACB8: .4byte gLinkEntity -_080AACBC: - ldr r0, _080AACDC @ =0x00000119 - bl sub_080A3268 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 -_080AACCA: - adds r1, r4, #0 - adds r1, #0x42 - ldrb r0, [r1] - cmp r0, #0 - beq _080AACD8 - movs r0, #0 - strb r0, [r1] -_080AACD8: - pop {r4, pc} - .align 2, 0 -_080AACDC: .4byte 0x00000119 - - thumb_func_start sub_080AACE0 -sub_080AACE0: @ 0x080AACE0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080AACF4 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _080AACF4 - bl sub_0805E780 -_080AACF4: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r2, r0, #0x1e - adds r5, r4, #0 - adds r5, #0x86 - cmp r2, #1 - bne _080AAD16 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - strb r2, [r5] - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX -_080AAD16: - ldr r2, [r4, #0x50] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080AAD4A - adds r1, r2, #0 - adds r1, #0x74 - movs r0, #3 - strb r0, [r1] - adds r1, #0xc - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - lsrs r0, r0, #1 - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bls _080AAD42 - movs r0, #8 - b _080AAD56 -_080AAD42: - cmp r0, #0 - bne _080AAD58 - movs r0, #1 - b _080AAD56 -_080AAD4A: - adds r1, r2, #0 - adds r1, #0x84 - movs r0, #0 - strb r0, [r1] - subs r1, #0x45 - movs r0, #0x2b -_080AAD56: - strb r0, [r1] -_080AAD58: - ldrb r0, [r5] - cmp r0, #0 - bne _080AAD68 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX -_080AAD68: - bl sub_0805E780 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AAD70 -sub_080AAD70: @ 0x080AAD70 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080AAD82 - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_080AAD82: - ldr r0, _080AAD94 @ =gUnk_0812A440 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080AAD94: .4byte gUnk_0812A440 - - thumb_func_start sub_080AAD98 -sub_080AAD98: @ 0x080AAD98 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start nullsub_541 -nullsub_541: @ 0x080AADA0 - bx lr - .align 2, 0 - - thumb_func_start sub_080AADA4 -sub_080AADA4: @ 0x080AADA4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080AADB8 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_080AADB8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AADBC -sub_080AADBC: @ 0x080AADBC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _080AADCC - movs r0, #1 - strb r0, [r5, #0xc] - b _080AADE0 -_080AADCC: - movs r0, #3 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x2c - strb r0, [r1] - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAB0 -_080AADE0: - ldrb r1, [r5, #0xa] - cmp r1, #0 - bne _080AAE64 - strb r1, [r5, #0xe] - movs r3, #4 - movs r0, #4 - strb r0, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x80 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x45 - movs r0, #0x10 - strb r0, [r1] - ldrh r0, [r5, #0x36] - adds r0, #4 - movs r4, #0 - strh r0, [r5, #0x36] - ldrb r2, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldr r1, _080AAE60 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x86 - strb r4, [r0] - adds r1, r5, #0 - adds r1, #0x84 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - movs r0, #0x18 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _080AAE7C - movs r0, #1 - strb r0, [r1, #0xa] - ldrb r0, [r5, #0xb] - strb r0, [r1, #0xb] - str r5, [r1, #0x50] - b _080AAE7C - .align 2, 0 -_080AAE60: .4byte gLinkEntity -_080AAE64: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAB0 - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FA24 -_080AAE7C: - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl sub_08004260 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AAE88 -sub_080AAE88: @ 0x080AAE88 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _080AAED0 - cmp r0, #1 - bgt _080AAE9C - cmp r0, #0 - beq _080AAEA2 - b _080AAEF6 -_080AAE9C: - cmp r0, #2 - beq _080AAEE0 - b _080AAEF6 -_080AAEA2: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AAEC2 - movs r0, #4 - strb r0, [r4, #0xf] - ldr r1, _080AAECC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_080AAEC2: - adds r0, r4, #0 - bl sub_0806F69C - b _080AAEF6 - .align 2, 0 -_080AAECC: .4byte gLinkEntity -_080AAED0: - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _080AAEDC - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AAEE0 -_080AAEDC: - bl sub_0805E780 -_080AAEE0: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080AAEEE - bl sub_0805E780 -_080AAEEE: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 -_080AAEF6: - adds r0, r4, #0 - bl sub_080AB034 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AAF00 -sub_080AAF00: @ 0x080AAF00 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AAF74 - adds r0, r4, #0 - bl sub_080AB034 - pop {r4, pc} - - thumb_func_start sub_080AAF10 -sub_080AAF10: @ 0x080AAF10 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - bl sub_080AB034 - ldr r3, [r4, #0x50] - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080AAF48 - adds r0, r3, #0 - adds r0, #0x45 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_080AAF48: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _080AAF60 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AAF70 - movs r0, #0x7f - ands r0, r1 - b _080AAF6E -_080AAF60: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AAF70 - movs r0, #0x80 - orrs r0, r1 -_080AAF6E: - strb r0, [r4, #0x10] -_080AAF70: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AAF74 -sub_080AAF74: @ 0x080AAF74 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0807953C - cmp r0, #0 - beq _080AAF94 - bl sub_08000E50 - adds r3, r5, #0 - adds r3, #0x80 - ldrb r1, [r3] - adds r1, #1 - movs r2, #1 - ands r0, r2 - adds r1, r1, r0 - strb r1, [r3] -_080AAF94: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bne _080AAFCC - movs r0, #0x1e - strb r0, [r5, #0xe] - ldr r4, _080AAFFC @ =gLinkEntity - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #8 - strb r0, [r1] - subs r0, #0xc - bl ModHealth - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0800449C - adds r4, #0x45 - ldrb r1, [r4] - cmp r1, #0 - bne _080AAFCC - adds r0, r5, #0 - adds r0, #0x45 - strb r1, [r0] -_080AAFCC: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0x30 - bhi _080AAFE0 - adds r0, r5, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0x10 - bne _080AB004 -_080AAFE0: - movs r2, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r2, [r1] - ldr r0, _080AAFFC @ =gLinkEntity - adds r0, #0x3d - movs r1, #0xf0 - strb r1, [r0] - ldr r0, _080AB000 @ =gUnk_03003F80 - strb r2, [r0, #0x1a] - adds r0, r5, #0 - adds r0, #0x45 - strb r2, [r0] - b _080AB028 - .align 2, 0 -_080AAFFC: .4byte gLinkEntity -_080AB000: .4byte gUnk_03003F80 -_080AB004: - bl sub_08077B2C - ldr r2, _080AB02C @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldr r4, _080AB030 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x36] - subs r0, #4 - strh r0, [r5, #0x36] -_080AB028: - pop {r4, r5, pc} - .align 2, 0 -_080AB02C: .4byte gUnk_03003F80 -_080AB030: .4byte gLinkEntity - - thumb_func_start sub_080AB034 -sub_080AB034: @ 0x080AB034 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - ldr r1, _080AB058 @ =0x00000139 - cmp r0, #0 - beq _080AB04E - movs r1, #0 -_080AB04E: - adds r0, r4, #0 - bl sub_0801D2B4 - pop {r4, pc} - .align 2, 0 -_080AB058: .4byte 0x00000139 - - thumb_func_start sub_080AB05C -sub_080AB05C: @ 0x080AB05C - push {lr} - ldr r2, _080AB070 @ =gUnk_0812A494 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AB070: .4byte gUnk_0812A494 - - thumb_func_start sub_080AB074 -sub_080AB074: @ 0x080AB074 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - ldr r0, [r5, #4] - cmp r0, #0 - bne _080AB084 - bl sub_0805E780 -_080AB084: - ldrb r6, [r4, #0xc] - cmp r6, #0 - bne _080AB0AA - adds r0, r4, #0 - bl sub_080AB12C - cmp r0, #0 - beq _080AB124 - movs r0, #1 - strb r0, [r4, #0xc] - strb r6, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] -_080AB0AA: - ldr r0, [r4, #0x50] - adds r7, r5, #0 - adds r7, #0x7f - movs r3, #0 - ldrsb r3, [r7, r3] - rsbs r3, r3, #0 - subs r3, #0xa - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 - ldr r3, _080AB128 @ =gUnk_080C9160 - adds r2, r5, #0 - adds r2, #0x7c - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r6, #0 - ldrsh r1, [r0, r6] - adds r6, r5, #0 - adds r6, #0x7e - ldrb r0, [r6] - lsls r0, r0, #8 - muls r1, r0, r1 - ldr r0, [r4, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldrb r0, [r2] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r1, [r0, r2] - ldrb r0, [r6] - lsls r0, r0, #8 - muls r1, r0, r1 - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r4, #0x30] - movs r0, #0 - ldrsb r0, [r7, r0] - ldrh r6, [r4, #0x36] - adds r0, r0, r6 - strh r0, [r4, #0x36] - adds r0, r5, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _080AB124 - movs r0, #0x19 - bl sub_080A7EE0 - adds r5, r0, #0 - cmp r5, #0 - beq _080AB124 - movs r0, #4 - strb r0, [r5, #0xa] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA6C -_080AB124: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AB128: .4byte gUnk_080C9160 - - thumb_func_start sub_080AB12C -sub_080AB12C: @ 0x080AB12C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080AB168 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x44 - bhi _080AB16C - movs r0, #0x19 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r0, #1 - strb r0, [r1, #0xa] - str r4, [r1, #0x50] - movs r0, #0x19 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r0, #2 - strb r0, [r1, #0xa] - str r4, [r1, #0x50] - movs r0, #0x19 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r0, #3 - strb r0, [r1, #0xa] - str r4, [r1, #0x50] - movs r0, #1 - b _080AB16E - .align 2, 0 -_080AB168: .4byte gUnk_03003DBC -_080AB16C: - movs r0, #0 -_080AB16E: - pop {r4, pc} - - thumb_func_start sub_080AB170 -sub_080AB170: @ 0x080AB170 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, [r4, #0x50] - ldr r0, [r6, #4] - cmp r0, #0 - bne _080AB180 - bl sub_0805E780 -_080AB180: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AB1AA - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3a - ands r0, r1 - strb r0, [r2] - movs r0, #5 - strb r0, [r4, #0x1e] - ldrb r1, [r2] - subs r0, #0xd - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080AB1C8 @ =gUnk_080FD460 - str r0, [r4, #0x48] -_080AB1AA: - ldr r5, [r6, #0x50] - adds r0, r4, #0 - adds r0, #0x7c - adds r2, r5, #0 - adds r2, #0x7c - ldrb r1, [r0] - adds r3, r0, #0 - ldrb r2, [r2] - cmp r1, r2 - beq _080AB1CC - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - b _080AB1D2 - .align 2, 0 -_080AB1C8: .4byte gUnk_080FD460 -_080AB1CC: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 -_080AB1D2: - strb r0, [r4, #0x10] - adds r0, r5, #0 - adds r0, #0x7c - ldrb r0, [r0] - strb r0, [r3] - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080AB208 - movs r0, #0x1f - ands r0, r1 - ldr r1, _080AB204 @ =gUnk_0812A4A8 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - movs r3, #1 - ldrsb r3, [r0, r3] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA90 - b _080AB216 - .align 2, 0 -_080AB204: .4byte gUnk_0812A4A8 -_080AB208: - movs r3, #0xa - rsbs r3, r3, #0 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 -_080AB216: - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrb r2, [r4, #0xa] - muls r0, r2, r0 - adds r3, r2, #0 - cmp r0, #0 - bge _080AB22C - adds r0, #3 -_080AB22C: - asrs r0, r0, #2 - ldrh r5, [r4, #0x2e] - adds r0, r0, r5 - strh r0, [r4, #0x2e] - movs r1, #0x32 - ldrsh r0, [r6, r1] - movs r5, #0x32 - ldrsh r1, [r4, r5] - subs r0, r0, r1 - muls r0, r3, r0 - cmp r0, #0 - bge _080AB246 - adds r0, #3 -_080AB246: - asrs r0, r0, #2 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - movs r3, #0x36 - ldrsh r0, [r6, r3] - movs r5, #0x36 - ldrsh r1, [r4, r5] - subs r0, r0, r1 - muls r0, r2, r0 - cmp r0, #0 - bge _080AB260 - adds r0, #3 -_080AB260: - asrs r0, r0, #2 - ldrh r1, [r4, #0x36] - adds r0, r0, r1 - strh r0, [r4, #0x36] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080AB26C -sub_080AB26C: @ 0x080AB26C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xc] - cmp r1, #0 - bne _080AB28C - movs r0, #1 - strb r0, [r2, #0xc] - movs r0, #5 - strb r0, [r2, #0xe] - strb r1, [r2, #0x1e] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x3e - ands r0, r1 - strb r0, [r3] -_080AB28C: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AB29E - bl sub_0805E780 - b _080AB2A4 -_080AB29E: - ldrb r0, [r2, #0x1e] - adds r0, #1 - strb r0, [r2, #0x1e] -_080AB2A4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AB2A8 -sub_080AB2A8: @ 0x080AB2A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AB2C0 @ =gUnk_0812A4C8 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AB2C0: .4byte gUnk_0812A4C8 - - thumb_func_start sub_080AB2C4 -sub_080AB2C4: @ 0x080AB2C4 - push {lr} - ldr r2, _080AB2D8 @ =gUnk_0812A4DC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AB2D8: .4byte gUnk_0812A4DC - - thumb_func_start sub_080AB2DC -sub_080AB2DC: @ 0x080AB2DC - push {r4, r5, lr} - adds r2, r0, #0 - adds r5, r2, #0 - adds r5, #0x41 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB314 - movs r0, #3 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r4, #0x7f - adds r0, r4, #0 - ands r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - movs r1, #0x53 - bl sub_08004260 - ldrb r0, [r5] - ands r4, r0 - cmp r4, #0 - bne _080AB314 - movs r0, #4 - rsbs r0, r0, #0 - bl ModHealth -_080AB314: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AB318 -sub_080AB318: @ 0x080AB318 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r4, #1 - movs r0, #1 - mov r8, r0 - mov r1, r8 - strb r1, [r6, #0xc] - ldr r0, _080AB3D8 @ =0xFFFF0000 - str r0, [r6, #0x20] - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r2, _080AB3DC @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r6, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r6, #0 - adds r0, #0x76 - strh r1, [r0] - ldr r0, [r6, #0x50] - adds r1, r6, #0 - bl sub_0806FA24 - movs r1, #0x80 - lsls r1, r1, #5 - ldrb r2, [r6, #0x15] - adds r0, r6, #0 - bl sub_0806F5BC - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - ldr r0, [r6, #0x50] - ldr r0, [r0, #0x34] - str r0, [r6, #0x34] - adds r0, r6, #0 - movs r1, #0x51 - bl sub_08004260 - ldr r0, _080AB3E0 @ =0x000001B5 - bl sub_080A3268 - adds r0, r6, #0 - bl sub_080AB4F8 - movs r1, #0x2e - ldrsh r2, [r6, r1] - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r2, r1 - movs r2, #0x32 - ldrsh r1, [r6, r2] - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r7, r1, r0 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_080041DC - adds r4, r0, #0 - bl sub_08000E50 - adds r1, r0, #0 - ldr r0, _080AB3E4 @ =0x000001FF - ands r1, r0 - ldr r0, _080AB3E8 @ =gUnk_030010A0 - ldr r0, [r0] - mov r2, r8 - ands r0, r2 - cmp r0, #0 - beq _080AB3EC - adds r4, r4, r1 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - ble _080AB3F4 - adds r4, r0, #0 - b _080AB3F4 - .align 2, 0 -_080AB3D8: .4byte 0xFFFF0000 -_080AB3DC: .4byte gUnk_03000BF0 -_080AB3E0: .4byte 0x000001B5 -_080AB3E4: .4byte 0x000001FF -_080AB3E8: .4byte gUnk_030010A0 -_080AB3EC: - subs r4, r4, r1 - cmp r4, #0x1f - bgt _080AB3F4 - movs r4, #0x20 -_080AB3F4: - lsls r1, r4, #8 - ldr r0, [r6, #0x34] - bl __divsi3 - lsls r0, r0, #0xd - str r0, [r6, #0x20] - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_080045B4 - strb r0, [r6, #0x15] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080AB414 -sub_080AB414: @ 0x080AB414 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - movs r1, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080AB446 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x54 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080AB4A4 - b _080AB458 -_080AB446: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe0 - bls _080AB458 - bl sub_0805E780 -_080AB458: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB45C -sub_080AB45C: @ 0x080AB45C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB486 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0x53 - bl sub_08004260 -_080AB486: - pop {r4, pc} - - thumb_func_start sub_080AB488 -sub_080AB488: @ 0x080AB488 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB4A0 - bl sub_0805E780 -_080AB4A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB4A4 -sub_080AB4A4: @ 0x080AB4A4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r6, #0 - adds r7, #0x76 - ldrh r4, [r7] - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r3, _080AB4F4 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - cmp r4, r5 - beq _080AB4F2 - strh r5, [r7] - adds r0, r6, #0 - bl sub_080002A0 - cmp r0, #0x13 - beq _080AB4E2 - cmp r0, #0x34 - bne _080AB4F2 -_080AB4E2: - movs r0, #0xd3 - lsls r0, r0, #2 - ldrh r1, [r7] - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 -_080AB4F2: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AB4F4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080AB4F8 -sub_080AB4F8: @ 0x080AB4F8 - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #5 - ldrb r1, [r1, #0xf] - lsls r1, r1, #1 - orrs r0, r1 - ldr r1, _080AB50C @ =gUnk_0812A4EC - adds r0, r0, r1 - bx lr - .align 2, 0 -_080AB50C: .4byte gUnk_0812A4EC - - thumb_func_start sub_080AB510 -sub_080AB510: @ 0x080AB510 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AB528 @ =gUnk_0812A58C - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AB528: .4byte gUnk_0812A58C - - thumb_func_start sub_080AB52C -sub_080AB52C: @ 0x080AB52C - push {lr} - ldr r2, _080AB540 @ =gUnk_0812A5A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AB540: .4byte gUnk_0812A5A0 - - thumb_func_start sub_080AB544 -sub_080AB544: @ 0x080AB544 - push {lr} - adds r2, r0, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #4 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080AB57C - movs r1, #2 - movs r0, #2 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r2, #0x15] - ldrb r0, [r2, #0xa] - eors r1, r0 - lsls r1, r1, #3 - ldrb r0, [r2, #0x15] - subs r0, r0, r1 - adds r0, #1 - cmp r0, #2 - bhi _080AB576 - strb r1, [r2, #0x15] -_080AB576: - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r2, #0x24] -_080AB57C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AB580 -sub_080AB580: @ 0x080AB580 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - strb r1, [r0, #0x15] - ldr r1, _080AB598 @ =0x0000FFFC - strh r1, [r0, #0x36] - ldrb r1, [r0, #0xa] - bl sub_08004260 - pop {pc} - .align 2, 0 -_080AB598: .4byte 0x0000FFFC - - thumb_func_start sub_080AB59C -sub_080AB59C: @ 0x080AB59C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - bne _080AB5BC - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_080AB5BC: - adds r0, r4, #0 - bl sub_080AB5F4 - pop {r4, pc} - - thumb_func_start sub_080AB5C4 -sub_080AB5C4: @ 0x080AB5C4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl sub_080AB634 - cmp r0, #0 - bne _080AB5F0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080AB5F0 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_080AB5F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB5F4 -sub_080AB5F4: @ 0x080AB5F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080043E8 - cmp r0, #2 - beq _080AB61A - cmp r0, #2 - bhi _080AB60A - cmp r0, #1 - beq _080AB610 - b _080AB62E -_080AB60A: - cmp r0, #3 - beq _080AB624 - b _080AB62E -_080AB610: - adds r0, r4, #0 - bl sub_080043B4 - movs r0, #1 - b _080AB630 -_080AB61A: - adds r0, r4, #0 - bl sub_080043A8 - movs r0, #1 - b _080AB630 -_080AB624: - adds r0, r4, #0 - bl sub_080043AC - movs r0, #1 - b _080AB630 -_080AB62E: - movs r0, #0 -_080AB630: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB634 -sub_080AB634: @ 0x080AB634 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, [r6, #0x50] - movs r5, #0 - adds r4, r0, #0 - adds r4, #0x20 -_080AB640: - ldr r1, [r4] - cmp r1, #0 - beq _080AB684 - adds r0, r6, #0 - bl sub_080177A0 - cmp r0, #0 - beq _080AB684 - ldr r1, [r4] - ldrb r0, [r1, #0xc] - cmp r0, #2 - bhi _080AB67A - movs r0, #3 - strb r0, [r1, #0xc] - ldr r1, [r4] - movs r0, #0x1e - strb r0, [r1, #0xe] - ldr r2, [r4] - ldrb r0, [r2, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r2, #0x18] - ldr r0, [r4] - movs r1, #0x45 - movs r2, #0 - bl CreateFX -_080AB67A: - adds r0, r6, #0 - bl sub_0805E7BC - movs r0, #1 - b _080AB68E -_080AB684: - adds r4, #4 - adds r5, #1 - cmp r5, #3 - bls _080AB640 - movs r0, #0 -_080AB68E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080AB690 -sub_080AB690: @ 0x080AB690 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080AB6A2 - bl sub_0805E780 -_080AB6A2: - ldr r0, _080AB6B4 @ =gUnk_0812A5E8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080AB6B4: .4byte gUnk_0812A5E8 - - thumb_func_start sub_080AB6B8 -sub_080AB6B8: @ 0x080AB6B8 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - ldr r0, [r0, #0x2c] - str r0, [r2, #0x74] - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080AB6E8 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldr r0, _080AB6E4 @ =gUnk_0812A614 - str r0, [r2, #0x48] - adds r0, r2, #0 - movs r1, #0 - bl sub_08004260 - b _080AB6F8 - .align 2, 0 -_080AB6E4: .4byte gUnk_0812A614 -_080AB6E8: - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #4 - strb r0, [r2, #0xf] - ldrb r1, [r2, #0xe] - adds r0, r2, #0 - bl sub_08004260 -_080AB6F8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AB6FC -sub_080AB6FC: @ 0x080AB6FC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB724 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080AB758 -_080AB724: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB728 -sub_080AB728: @ 0x080AB728 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r2, [r4, #0x50] - ldr r1, [r2, #0x2c] - ldr r0, [r4, #0x74] - subs r1, r1, r0 - ldr r0, [r4, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldr r0, [r2, #0x2c] - str r0, [r4, #0x74] - adds r0, r4, #0 - bl sub_080AB888 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - cmp r0, #0 - bne _080AB754 - bl sub_0805E780 -_080AB754: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB758 -sub_080AB758: @ 0x080AB758 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r5, r0, #0 - movs r6, #6 - movs r7, #0 - movs r4, #0 - movs r0, #0x32 - ldrsh r2, [r5, r0] - ldr r1, _080AB818 @ =gUnk_03000BF0 - ldrh r0, [r1, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r1 - cmp r2, r0 - bhi _080AB7B4 - movs r3, #7 -_080AB77E: - adds r0, r4, #0 - ands r0, r3 - cmp r0, #7 - bne _080AB798 - adds r0, r5, #0 - movs r1, #4 - adds r2, r6, #0 - str r3, [sp] - bl sub_080AB844 - adds r6, #0x3e - adds r7, #0x3e - ldr r3, [sp] -_080AB798: - adds r4, #1 - ands r4, r3 - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r0, r0, r7 - lsls r1, r4, #3 - adds r2, r0, r1 - ldr r0, _080AB818 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bls _080AB77E -_080AB7B4: - movs r4, #0 - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r2, r0, r7 - mov r1, r8 - ldrh r0, [r1, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bhi _080AB802 - movs r3, #3 -_080AB7CC: - adds r0, r4, #0 - ands r0, r3 - cmp r0, #3 - bne _080AB7E6 - adds r0, r5, #0 - movs r1, #3 - adds r2, r6, #0 - str r3, [sp] - bl sub_080AB844 - adds r6, #0x1e - adds r7, #0x1e - ldr r3, [sp] -_080AB7E6: - adds r4, #1 - ands r4, r3 - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r0, r0, r7 - lsls r1, r4, #3 - adds r2, r0, r1 - ldr r0, _080AB818 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bls _080AB7CC -_080AB802: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _080AB81C - adds r0, r5, #0 - movs r1, #2 - adds r2, r6, #0 - bl sub_080AB844 - adds r6, #0xe - b _080AB830 - .align 2, 0 -_080AB818: .4byte gUnk_03000BF0 -_080AB81C: - movs r0, #1 - ands r4, r0 - cmp r4, #0 - beq _080AB830 - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - bl sub_080AB844 - adds r6, #6 -_080AB830: - adds r0, r5, #0 - movs r1, #6 - adds r2, r6, #0 - bl sub_080AB844 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080AB844 -sub_080AB844: @ 0x080AB844 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r0, #0x1c - bl sub_080A7EE0 - adds r4, r0, #0 - cmp r4, #0 - beq _080AB880 - movs r0, #1 - strb r0, [r4, #0xa] - strb r7, [r4, #0xe] - ldr r0, [r5, #0x50] - str r0, [r4, #0x50] - lsls r3, r6, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - cmp r7, #1 - beq _080AB87C - ldr r0, _080AB878 @ =gUnk_0812A61C - b _080AB87E - .align 2, 0 -_080AB878: .4byte gUnk_0812A61C -_080AB87C: - ldr r0, _080AB884 @ =gUnk_0812A614 -_080AB87E: - str r0, [r4, #0x48] -_080AB880: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AB884: .4byte gUnk_0812A614 - - thumb_func_start sub_080AB888 -sub_080AB888: @ 0x080AB888 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - movs r3, #0 - ldrb r0, [r2, #0xe] - cmp r0, #3 - beq _080AB8A4 - cmp r0, #3 - ble _080AB8B6 - cmp r0, #4 - beq _080AB8A6 - b _080AB8B6 -_080AB8A4: - movs r3, #1 -_080AB8A6: - ldr r0, _080AB8C4 @ =gUnk_0812A5F4 - ldrb r1, [r2, #0xf] - lsls r1, r1, #1 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2, #0x48] -_080AB8B6: - ldrb r0, [r2, #0xf] - cmp r0, #0 - bne _080AB8C0 - movs r0, #4 - strb r0, [r2, #0xf] -_080AB8C0: - pop {pc} - .align 2, 0 -_080AB8C4: .4byte gUnk_0812A5F4 - - thumb_func_start sub_080AB8C8 -sub_080AB8C8: @ 0x080AB8C8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080AB8E4 @ =gUnk_0812A6B4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080AB9DC - pop {r4, pc} - .align 2, 0 -_080AB8E4: .4byte gUnk_0812A6B4 - - thumb_func_start sub_080AB8E8 -sub_080AB8E8: @ 0x080AB8E8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - str r1, [r4, #0x34] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AB90E - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - str r4, [r4, #0x50] -_080AB90E: - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bhi _080AB936 - movs r0, #0x1d - bl sub_080A7EE0 - adds r1, r0, #0 - ldrb r0, [r4, #0xa] - adds r0, #1 - strb r0, [r1, #0xa] - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - str r4, [r1, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 -_080AB936: - adds r1, r4, #0 - adds r1, #0x68 - movs r2, #7 -_080AB93C: - ldrh r0, [r4, #0x2e] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r4, #0x32] - strh r0, [r1] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _080AB93C - pop {r4, pc} - - thumb_func_start sub_080AB950 -sub_080AB950: @ 0x080AB950 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AB99C - adds r0, r4, #0 - bl sub_080AEF88 - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - ldr r1, _080AB994 @ =gUnk_0812A6C4 - lsls r5, r0, #1 - adds r1, r5, r1 - ldrh r1, [r1] - ldrh r0, [r4, #0x2a] - ands r0, r1 - cmp r0, #0 - bne _080AB980 - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_080AB9FC - cmp r0, #0 - beq _080AB9D4 -_080AB980: - bl sub_08000E50 - ldr r2, _080AB998 @ =gUnk_0812A6BC - movs r1, #1 - ands r1, r0 - adds r1, r1, r5 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0x15] - b _080AB9D4 - .align 2, 0 -_080AB994: .4byte gUnk_0812A6C4 -_080AB998: .4byte gUnk_0812A6BC -_080AB99C: - ldr r0, [r4, #0x50] - cmp r0, #0 - bne _080AB9A6 - bl sub_0805E780 -_080AB9A6: - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AB9B2 - bl sub_0805E780 -_080AB9B2: - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _080AB9D0 - ldr r0, [r1, #4] - cmp r0, #0 - beq _080AB9D0 - adds r0, r1, #0 - adds r0, #0x68 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r1, #0 - adds r0, #0x6a - ldrh r0, [r0] - strh r0, [r4, #0x32] - b _080AB9D4 -_080AB9D0: - bl sub_0805E780 -_080AB9D4: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - - thumb_func_start sub_080AB9DC -sub_080AB9DC: @ 0x080AB9DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x6c - adds r1, r4, #0 - adds r1, #0x68 - movs r2, #0x1c - bl sub_0801D66C - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x84 - strh r1, [r0] - ldrh r1, [r4, #0x32] - adds r0, #2 - strh r1, [r0] - pop {r4, pc} - - thumb_func_start sub_080AB9FC -sub_080AB9FC: @ 0x080AB9FC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_0808094C - movs r1, #0x2e - ldrsh r3, [r5, r1] - ldr r2, _080ABA4C @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r3, r3, r1 - asrs r3, r3, #4 - movs r6, #0x3f - ands r3, r6 - movs r7, #0x32 - ldrsh r1, [r5, r7] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r3, r1 - ldr r1, _080ABA50 @ =gUnk_080B4488 - lsrs r4, r4, #3 - lsls r4, r4, #1 - adds r4, r4, r1 - movs r2, #0 - ldrsh r1, [r4, r2] - adds r3, r3, r1 - ldr r7, _080ABA54 @ =0x00002004 - adds r0, r0, r7 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0x1f - bls _080ABA58 - cmp r0, #0x3f - bhi _080ABA58 - movs r0, #1 - b _080ABA5A - .align 2, 0 -_080ABA4C: .4byte gUnk_03000BF0 -_080ABA50: .4byte gUnk_080B4488 -_080ABA54: .4byte 0x00002004 -_080ABA58: - movs r0, #0 -_080ABA5A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080ABA5C -sub_080ABA5C: @ 0x080ABA5C - push {lr} - ldr r2, _080ABA70 @ =gUnk_0812A6CC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ABA70: .4byte gUnk_0812A6CC - - thumb_func_start sub_080ABA74 -sub_080ABA74: @ 0x080ABA74 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r2, #0x24] - ldrh r1, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x84 - ldrh r1, [r0] - subs r0, #0x18 - strh r1, [r0] - ldrb r0, [r2, #0xa] - cmp r0, #6 - bhi _080ABAAA - movs r0, #0 - b _080ABAAC -_080ABAAA: - movs r0, #1 -_080ABAAC: - strb r0, [r2, #0xb] - ldr r0, _080ABAC8 @ =gUnk_0812A6D4 - ldrb r1, [r2, #0xa] - adds r0, r1, r0 - ldrb r3, [r0] - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _080ABACC - movs r0, #8 - strb r0, [r2, #0x15] - ldrh r0, [r2, #0x32] - adds r0, r0, r3 - strh r0, [r2, #0x32] - b _080ABAD6 - .align 2, 0 -_080ABAC8: .4byte gUnk_0812A6D4 -_080ABACC: - movs r0, #0x10 - strb r0, [r2, #0x15] - ldrh r0, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] -_080ABAD6: - adds r0, r2, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080ABAE0 -sub_080ABAE0: @ 0x080ABAE0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080AF090 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080ABAFE - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x68 - movs r2, #0 - ldrsh r1, [r1, r2] - subs r3, r0, r1 - b _080ABB0C -_080ABAFE: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x6a - movs r2, #0 - ldrsh r0, [r0, r2] - subs r3, r1, r0 -_080ABB0C: - adds r0, r4, #0 - adds r0, #0x6c - movs r1, #0 - ldrsh r2, [r0, r1] - adds r6, r0, #0 - cmp r2, #0 - bge _080ABB1E - rsbs r3, r3, #0 - rsbs r2, r2, #0 -_080ABB1E: - lsls r1, r3, #0x10 - lsls r0, r2, #0x10 - cmp r1, r0 - bls _080ABB84 - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0xb] - adds r5, r0, #0 - cmp r5, #0 - bne _080ABB4E - adds r0, r4, #0 - adds r0, #0x68 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x19 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #6 - subs r0, #0x42 - b _080ABB62 -_080ABB4E: - adds r0, r4, #0 - adds r0, #0x6a - ldrh r0, [r0] - strh r0, [r4, #0x32] - ldrb r2, [r4, #0x18] - lsrs r1, r2, #7 - movs r0, #1 - eors r1, r0 - lsls r1, r1, #7 - movs r0, #0x7f -_080ABB62: - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - cmp r3, #0 - ble _080ABB84 - lsls r0, r5, #0x18 - cmp r0, #0 - bne _080ABB7C - ldrh r0, [r6] - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - b _080ABB84 -_080ABB7C: - ldrh r0, [r6] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_080ABB84: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, r6, pc} - - thumb_func_start sub_080ABB8C -sub_080ABB8C: @ 0x080ABB8C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ABBA4 @ =gUnk_0812A7D4 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ABBA4: .4byte gUnk_0812A7D4 - - thumb_func_start sub_080ABBA8 -sub_080ABBA8: @ 0x080ABBA8 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #1 - beq _080ABBC4 - cmp r0, #1 - bgt _080ABBDC - cmp r0, #0 - bne _080ABBDC - ldr r0, _080ABBC0 @ =gUnk_0812A7EC - b _080ABBC6 - .align 2, 0 -_080ABBC0: .4byte gUnk_0812A7EC -_080ABBC4: - ldr r0, _080ABBD8 @ =gUnk_0812A7F8 -_080ABBC6: - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _080ABBEC - .align 2, 0 -_080ABBD8: .4byte gUnk_0812A7F8 -_080ABBDC: - ldr r0, _080ABBF0 @ =gUnk_0812A800 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080ABBEC: - pop {pc} - .align 2, 0 -_080ABBF0: .4byte gUnk_0812A800 - - thumb_func_start sub_080ABBF4 -sub_080ABBF4: @ 0x080ABBF4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ABC52 - ldrb r0, [r4, #0xa] - cmp r0, #0 - blt _080ABC52 - cmp r0, #1 - ble _080ABC3E - cmp r0, #2 - bne _080ABC52 - movs r0, #0x3f - ands r0, r1 - cmp r0, #3 - beq _080ABC32 - cmp r0, #3 - bgt _080ABC24 - cmp r0, #0 - beq _080ABC2A - b _080ABC52 -_080ABC24: - cmp r0, #0x14 - beq _080ABC32 - b _080ABC52 -_080ABC2A: - movs r0, #4 - rsbs r0, r0, #0 - bl ModHealth -_080ABC32: - adds r0, r4, #0 - bl sub_080A29BC - bl sub_0805E780 - b _080ABC52 -_080ABC3E: - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080ABC52 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - bl sub_0805E780 -_080ABC52: - pop {r4, pc} - - thumb_func_start sub_080ABC54 -sub_080ABC54: @ 0x080ABC54 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080ABC6E - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_080ABC6E: - ldr r0, _080ABC80 @ =gUnk_0812A808 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080ABC80: .4byte gUnk_0812A808 - - thumb_func_start sub_080ABC84 -sub_080ABC84: @ 0x080ABC84 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start nullsub_542 -nullsub_542: @ 0x080ABC8C - bx lr - .align 2, 0 - - thumb_func_start sub_080ABC90 -sub_080ABC90: @ 0x080ABC90 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080ABCBE - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - ldr r0, _080ABCC0 @ =gLinkEntity - movs r1, #0x7a - bl sub_0800449C - bl sub_08079D84 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_080ABCBE: - pop {r4, pc} - .align 2, 0 -_080ABCC0: .4byte gLinkEntity - - thumb_func_start sub_080ABCC4 -sub_080ABCC4: @ 0x080ABCC4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x30 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080ABD3C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r0] - movs r1, #2 - bl sub_080002B0 - adds r1, r5, #0 - adds r1, #0x76 - strh r0, [r1] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, _080ABD40 @ =0x0000014B - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_080ABD3C: .4byte gUnk_03000BF0 -_080ABD40: .4byte 0x0000014B - - thumb_func_start sub_080ABD44 -sub_080ABD44: @ 0x080ABD44 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080ABD60 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_080ABD60: - adds r0, r4, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ABD70 -sub_080ABD70: @ 0x080ABD70 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08004274 - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080ABDEE - movs r0, #0xef - ands r0, r1 - movs r1, #0 - strb r0, [r2] - strh r1, [r5, #0x24] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080ABDDC @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r5, #0 - adds r4, #0x74 - strh r1, [r4] - ldrh r0, [r4] - movs r1, #2 - bl sub_080002B0 - adds r1, r5, #0 - adds r1, #0x76 - strh r0, [r1] - ldrh r1, [r1] - cmp r1, #0x13 - beq _080ABDE4 - ldr r0, _080ABDE0 @ =0x00000315 - cmp r1, r0 - bne _080ABDEE - ldrh r1, [r4] - movs r0, #0x6e - movs r2, #2 - bl sub_0807B314 - b _080ABDEE - .align 2, 0 -_080ABDDC: .4byte gUnk_03000BF0 -_080ABDE0: .4byte 0x00000315 -_080ABDE4: - ldrh r1, [r4] - movs r0, #0x6d - movs r2, #2 - bl sub_0807B314 -_080ABDEE: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ABE00 - bl sub_0805E780 -_080ABE00: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080ABE04 -sub_080ABE04: @ 0x080ABE04 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #0xff - ands r5, r0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080ABE48 @ =0xFFFF0000 - str r0, [r4, #0x20] - ldrh r0, [r4, #0x36] - subs r0, #0xa0 - strh r0, [r4, #0x36] - ldr r3, _080ABE4C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - ldr r1, _080ABE50 @ =0x00007FF0 - adds r0, r1, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r3, #8] - ands r1, r0 - orrs r1, r2 - strh r1, [r4, #0x32] - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x10 - ands r0, r5 - cmp r0, #0 - beq _080ABE54 - adds r1, #0x10 - b _080ABE56 - .align 2, 0 -_080ABE48: .4byte 0xFFFF0000 -_080ABE4C: .4byte gUnk_03000BF0 -_080ABE50: .4byte 0x00007FF0 -_080ABE54: - adds r1, #0xc0 -_080ABE56: - movs r0, #0xe0 - ands r0, r5 - lsrs r0, r0, #1 - adds r0, r1, r0 - strh r0, [r4, #0x2e] - movs r0, #0xf - ands r5, r0 - lsls r0, r5, #4 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_08004168 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, _080ABE84 @ =0x0000012D - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_080ABE84: .4byte 0x0000012D - - thumb_func_start sub_080ABE88 -sub_080ABE88: @ 0x080ABE88 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _080ABEA6 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_080ABEA6: - pop {r4, pc} - - thumb_func_start sub_080ABEA8 -sub_080ABEA8: @ 0x080ABEA8 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - strb r2, [r4, #0xc] - movs r0, #0x60 - strb r0, [r4, #0xe] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x68 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - strb r2, [r4, #0x1c] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080ABEDA - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - strb r0, [r4, #0x15] - b _080ABEEC -_080ABEDA: - adds r0, r4, #0 - movs r1, #0 - bl sub_08049F84 - strb r0, [r4, #0x15] - ldr r1, _080ABEFC @ =0x0000013F - adds r0, r4, #0 - bl sub_0801D2B4 -_080ABEEC: - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, _080ABF00 @ =0x00000193 - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_080ABEFC: .4byte 0x0000013F -_080ABF00: .4byte 0x00000193 - - thumb_func_start sub_080ABF04 -sub_080ABF04: @ 0x080ABF04 - push {r4, lr} - adds r4, r0, #0 - bl sub_080040A8 - cmp r0, #0 - bne _080ABF14 - bl sub_0805E780 -_080ABF14: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ABF24 -sub_080ABF24: @ 0x080ABF24 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ABF3C @ =gUnk_0812A84C - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ABF3C: .4byte gUnk_0812A84C - - thumb_func_start sub_080ABF40 -sub_080ABF40: @ 0x080ABF40 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080ABF66 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _080ABFA0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, _080ABFA4 @ =0x00000199 - bl sub_080A3268 -_080ABF66: - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080ABF78 - adds r0, r2, #2 - strh r0, [r4, #0x36] -_080ABF78: - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080ABF88 - bl sub_0805E780 -_080ABF88: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080ABF9C - bl sub_0805E780 -_080ABF9C: - pop {r4, pc} - .align 2, 0 -_080ABFA0: .4byte gLinkEntity -_080ABFA4: .4byte 0x00000199 - - thumb_func_start sub_080ABFA8 -sub_080ABFA8: @ 0x080ABFA8 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080ABFB0 -sub_080ABFB0: @ 0x080ABFB0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ABFC8 @ =gUnk_0812A954 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ABFC8: .4byte gUnk_0812A954 - - thumb_func_start sub_080ABFCC -sub_080ABFCC: @ 0x080ABFCC - push {lr} - ldr r2, _080ABFE0 @ =gUnk_0812A968 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ABFE0: .4byte gUnk_0812A968 - - thumb_func_start sub_080ABFE4 -sub_080ABFE4: @ 0x080ABFE4 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080ABFEC -sub_080ABFEC: @ 0x080ABFEC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - adds r1, #1 - bl sub_08004260 - ldrb r1, [r4, #0xa] - cmp r1, #0 - beq _080AC030 - cmp r1, #1 - beq _080AC048 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0xf] - ldr r1, _080AC028 @ =gUnk_0812A97C - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x44 - movs r0, #0x88 - strb r0, [r1] - ldr r0, _080AC02C @ =0x00000193 - b _080AC06A - .align 2, 0 -_080AC028: .4byte gUnk_0812A97C -_080AC02C: .4byte 0x00000193 -_080AC030: - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - movs r0, #7 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x85 - movs r0, #0x18 - strb r0, [r1] - subs r1, #0x41 - movs r0, #0x88 - b _080AC058 -_080AC048: - strb r1, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x85 - movs r0, #0x18 -_080AC058: - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - ldrh r0, [r4, #0x36] - subs r0, #0x14 - strh r0, [r4, #0x36] - ldr r0, _080AC070 @ =0x00000149 -_080AC06A: - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_080AC070: .4byte 0x00000149 - - thumb_func_start sub_080AC074 -sub_080AC074: @ 0x080AC074 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AC084 - bl sub_0805E780 -_080AC084: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - ldrh r0, [r4, #0x36] - subs r0, #0x14 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x85 - ldrb r0, [r1] - cmp r0, #0 - beq _080AC0B2 - subs r0, #1 - strb r0, [r1] - movs r1, #0xff - ands r0, r1 - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _080AC0B2 - ldr r0, _080AC0E8 @ =0x00000149 - bl sub_080A3268 -_080AC0B2: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AC0FE - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AC0F0 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r1, _080AC0EC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, #0x13 - bl sub_080A3268 - b _080AC0F8 - .align 2, 0 -_080AC0E8: .4byte 0x00000149 -_080AC0EC: .4byte gLinkEntity -_080AC0F0: - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] -_080AC0F8: - ldrh r0, [r4, #0x36] - subs r0, #0x28 - strh r0, [r4, #0x36] -_080AC0FE: - pop {r4, pc} - - thumb_func_start sub_080AC100 -sub_080AC100: @ 0x080AC100 - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080AC116 - adds r0, r2, #3 - strh r0, [r4, #0x36] -_080AC116: - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080AC126 - bl sub_0805E780 -_080AC126: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080AC13A - bl sub_0805E780 -_080AC13A: - ldrb r0, [r4, #0xe] - cmp r0, #0x1d - bhi _080AC160 - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - ldrb r1, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _080AC160 - ldr r1, _080AC164 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_080AC160: - pop {r4, pc} - .align 2, 0 -_080AC164: .4byte gLinkEntity - - thumb_func_start sub_080AC168 -sub_080AC168: @ 0x080AC168 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r0, [r4, #0x34] - ldr r1, _080AC1C0 @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _080AC1F8 - movs r0, #4 - strb r0, [r4, #0xc] - strb r0, [r4, #0xe] - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #7 - ands r5, r0 - ldr r0, _080AC1C4 @ =gUnk_0812A982 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r4, #0xf] - ldr r1, _080AC1C8 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #3 - bne _080AC1D0 - ldr r0, _080AC1CC @ =gUnk_0812A98A - adds r0, r5, r0 - ldrb r0, [r0] - subs r1, r1, r0 - strb r6, [r4, #0xb] - b _080AC1F2 - .align 2, 0 -_080AC1C0: .4byte 0xFFFF8000 -_080AC1C4: .4byte gUnk_0812A982 -_080AC1C8: .4byte gLinkEntity -_080AC1CC: .4byte gUnk_0812A98A -_080AC1D0: - cmp r0, #2 - bne _080AC1E4 - ldr r0, _080AC1E0 @ =gUnk_0812A98A - adds r0, r5, r0 - ldrb r0, [r0] - subs r1, r1, r0 - movs r0, #1 - b _080AC1F0 - .align 2, 0 -_080AC1E0: .4byte gUnk_0812A98A -_080AC1E4: - ldr r0, _080AC1FC @ =gUnk_0812A98A - adds r0, r5, r0 - ldrb r0, [r0] - lsrs r0, r0, #1 - subs r1, r1, r0 - movs r0, #2 -_080AC1F0: - strb r0, [r4, #0xb] -_080AC1F2: - movs r0, #0x1f - ands r1, r0 - strb r1, [r4, #0x15] -_080AC1F8: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AC1FC: .4byte gUnk_0812A98A - - thumb_func_start sub_080AC200 -sub_080AC200: @ 0x080AC200 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC270 - movs r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #0x21 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _080AC23C - movs r0, #2 - strb r0, [r1, #0xa] - ldrb r0, [r4, #0xb] - strb r0, [r1, #0xb] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r0, r4, #0 - bl sub_0806FA24 -_080AC23C: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _080AC24C - bl sub_0805E780 -_080AC24C: - ldr r0, [r4, #0x50] - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #3 - bne _080AC25C - ldrb r0, [r4, #0x15] - adds r0, #3 - b _080AC26A -_080AC25C: - cmp r0, #2 - bne _080AC266 - ldrb r0, [r4, #0x15] - adds r0, #3 - b _080AC26A -_080AC266: - ldrb r0, [r4, #0x15] - adds r0, #2 -_080AC26A: - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080AC270: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AC274 -sub_080AC274: @ 0x080AC274 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AC284 - bl sub_0805E780 -_080AC284: - ldr r1, _080AC2BC @ =gUnk_0812A994 - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AC2C0 - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - b _080AC324 - .align 2, 0 -_080AC2BC: .4byte gUnk_0812A994 -_080AC2C0: - ldr r5, [r4, #0x50] - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x19] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #2 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _080AC31C - adds r0, r5, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _080AC31C - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - b _080AC322 -_080AC31C: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 -_080AC322: - strb r0, [r4, #0x10] -_080AC324: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AC328 -sub_080AC328: @ 0x080AC328 - push {lr} - ldr r2, _080AC33C @ =gUnk_0812A9A8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AC33C: .4byte gUnk_0812A9A8 - - thumb_func_start sub_080AC340 -sub_080AC340: @ 0x080AC340 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080AC5E4 - cmp r0, #0 - beq _080AC380 - movs r2, #1 - movs r4, #1 - strb r4, [r5, #0xc] - movs r0, #0xc - strb r0, [r5, #0x1e] - ldrb r1, [r5, #0x18] - subs r0, #0x10 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - bl sub_08000E50 - ldr r1, _080AC384 @ =gUnk_0812A9B4 - ands r0, r4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x7a - strh r0, [r1] - subs r1, #0x42 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - bl sub_080AC388 -_080AC380: - pop {r4, r5, pc} - .align 2, 0 -_080AC384: .4byte gUnk_0812A9B4 - - thumb_func_start sub_080AC388 -sub_080AC388: @ 0x080AC388 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - ldr r1, _080AC3E4 @ =gUnk_0812A9B8 - ldrb r0, [r5, #0xa] - adds r0, r0, r1 - ldrb r3, [r0] - ldr r0, [r5, #0x50] - mov sl, r0 - ldrb r0, [r0, #0x14] - movs r1, #0x80 - mov sb, r1 - mov r1, sb - eors r1, r0 - adds r6, r5, #0 - adds r6, #0x7c - ldrh r4, [r6] - lsrs r0, r4, #8 - subs r1, r1, r0 - adds r2, r5, #0 - adds r2, #0x7a - ldrh r7, [r2] - mov ip, r7 - movs r7, #0 - ldrsh r0, [r2, r7] - cmp r0, #0 - bge _080AC404 - subs r0, r1, r3 - movs r7, #0xff - mov r8, r7 - ands r0, r7 - cmp r0, #0x7f - bhi _080AC3E8 - movs r1, #0 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - strh r0, [r2] - mov r2, sl - ldrb r0, [r2, #0x14] - mov r7, sb - eors r0, r7 - subs r0, r0, r3 - b _080AC422 - .align 2, 0 -_080AC3E4: .4byte gUnk_0812A9B8 -_080AC3E8: - mov r2, ip - adds r0, r4, r2 - strh r0, [r6] - adds r0, r1, r3 - mov r7, r8 - ands r0, r7 - cmp r0, #0x80 - bls _080AC45A - mov r1, sl - ldrb r0, [r1, #0x14] - mov r2, sb - eors r0, r2 - adds r0, r0, r3 - b _080AC44E -_080AC404: - adds r0, r1, r3 - movs r7, #0xff - mov r8, r7 - ands r0, r7 - cmp r0, #0x80 - bls _080AC432 - movs r1, #0 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - strh r0, [r2] - mov r2, sl - ldrb r0, [r2, #0x14] - mov r7, sb - eors r0, r7 - adds r0, r0, r3 -_080AC422: - movs r1, #0xff - ands r0, r1 - lsls r0, r0, #8 - strh r0, [r6] - adds r0, r5, #0 - bl sub_080AC884 - b _080AC45A -_080AC432: - mov r2, ip - adds r0, r4, r2 - strh r0, [r6] - subs r0, r1, r3 - mov r7, r8 - ands r0, r7 - subs r0, #1 - cmp r0, #0x7e - bhi _080AC45A - mov r1, sl - ldrb r0, [r1, #0x14] - mov r2, sb - eors r0, r2 - subs r0, r0, r3 -_080AC44E: - movs r1, #0xff - ands r0, r1 - lsls r0, r0, #8 - movs r1, #0x80 - orrs r0, r1 - strh r0, [r6] -_080AC45A: - adds r0, r5, #0 - adds r0, #0x7c - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_080AC6F0 - adds r0, r5, #0 - bl sub_080AC760 - adds r0, r5, #0 - bl sub_080AC7C4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AC480 -sub_080AC480: @ 0x080AC480 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _080AC4BE - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080AC4A2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1d - strb r0, [r1] - b _080AC50A -_080AC4A2: - subs r0, r1, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC50A - adds r0, r4, #0 - adds r0, #0x3f - movs r1, #0x1c - strb r1, [r0] - movs r0, #0x8b - lsls r0, r0, #1 - bl sub_080A3268 - b _080AC50A -_080AC4BE: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC4D6 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1d - strb r0, [r1] -_080AC4D6: - adds r1, r4, #0 - adds r1, #0x7c - ldrh r2, [r1] - adds r0, r4, #0 - adds r0, #0x7a - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0 - ble _080AC4EE - movs r3, #0xc0 - lsls r3, r3, #2 - b _080AC4F0 -_080AC4EE: - ldr r3, _080AC50C @ =0xFFFFFD00 -_080AC4F0: - adds r0, r2, r3 - strh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080AC6F0 - adds r0, r4, #0 - bl sub_080AC760 - adds r0, r4, #0 - bl sub_080AC7C4 -_080AC50A: - pop {r4, pc} - .align 2, 0 -_080AC50C: .4byte 0xFFFFFD00 - - thumb_func_start sub_080AC510 -sub_080AC510: @ 0x080AC510 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AC556 - movs r3, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _080AC558 @ =gUnk_0812A9BA - ldrb r1, [r4, #0xa] - lsls r0, r1, #1 - adds r0, r0, r1 - ldrb r1, [r4, #0xb] - adds r0, r0, r1 - subs r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrh r1, [r4, #0xa] - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r1, r0 - bne _080AC556 - ldr r0, _080AC55C @ =gUnk_080FD458 - str r0, [r4, #0x48] -_080AC556: - pop {r4, pc} - .align 2, 0 -_080AC558: .4byte gUnk_0812A9BA -_080AC55C: .4byte gUnk_080FD458 - - thumb_func_start sub_080AC560 -sub_080AC560: @ 0x080AC560 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - ldr r0, [r5, #4] - cmp r0, #0 - bne _080AC570 - bl sub_0805E780 -_080AC570: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AC5A6 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AC590 - ldr r0, _080AC58C @ =gUnk_080FD168 - b _080AC592 - .align 2, 0 -_080AC58C: .4byte gUnk_080FD168 -_080AC590: - ldr r0, _080AC5DC @ =gUnk_080FD448 -_080AC592: - str r0, [r4, #0x48] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_080AC5A6: - adds r0, r4, #0 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - ldr r3, _080AC5E0 @ =gUnk_080C9160 - ldrb r0, [r5, #0x15] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldrb r0, [r5, #0x15] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x30] - subs r0, r0, r1 - str r0, [r4, #0x30] - pop {r4, r5, pc} - .align 2, 0 -_080AC5DC: .4byte gUnk_080FD448 -_080AC5E0: .4byte gUnk_080C9160 - - thumb_func_start sub_080AC5E4 -sub_080AC5E4: @ 0x080AC5E4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - ldrb r4, [r5, #0xa] - cmp r4, #0 - bne _080AC668 - ldr r0, _080AC664 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x43 - bhi _080AC670 - adds r1, r5, #0 - adds r1, #0x79 - movs r0, #0x11 - strb r0, [r1] - movs r0, #0x22 - bl sub_080A7EE0 - adds r6, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r6, #0xa] - movs r0, #1 - strb r0, [r6, #0xb] - ldr r0, [r5, #0x50] - str r0, [r6, #0x50] - adds r1, r6, #0 - adds r1, #0x79 - movs r0, #0x12 - strb r0, [r1] - str r6, [r5, #0x54] - movs r0, #0x22 - bl sub_080A7EE0 - adds r7, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r7, #0xa] - movs r0, #2 - strb r0, [r7, #0xb] - ldr r0, [r5, #0x50] - str r0, [r7, #0x50] - adds r0, r7, #0 - adds r0, #0x79 - movs r1, #0x14 - mov r8, r1 - mov r1, r8 - strb r1, [r0] - str r7, [r6, #0x54] - movs r0, #0x22 - bl sub_080A7EE0 - ldrb r1, [r5, #0xa] - strb r1, [r0, #0xa] - movs r1, #3 - strb r1, [r0, #0xb] - ldr r1, [r5, #0x50] - str r1, [r0, #0x50] - str r4, [r0, #0x54] - adds r1, r0, #0 - adds r1, #0x79 - strb r4, [r1] - str r0, [r7, #0x54] - b _080AC6C8 - .align 2, 0 -_080AC664: .4byte gUnk_03003DBC -_080AC668: - ldr r0, _080AC674 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x44 - bls _080AC678 -_080AC670: - movs r0, #0 - b _080AC6E8 - .align 2, 0 -_080AC674: .4byte gUnk_03003DBC -_080AC678: - adds r1, r5, #0 - adds r1, #0x79 - movs r0, #0 - mov sb, r0 - movs r0, #0xf - strb r0, [r1] - movs r0, #0x22 - bl sub_080A7EE0 - adds r6, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r6, #0xa] - movs r0, #1 - strb r0, [r6, #0xb] - ldr r0, [r5, #0x50] - str r0, [r6, #0x50] - adds r0, r6, #0 - adds r0, #0x79 - movs r1, #0x10 - mov r8, r1 - mov r1, r8 - strb r1, [r0] - str r6, [r5, #0x54] - movs r0, #0x22 - bl sub_080A7EE0 - adds r7, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r7, #0xa] - movs r0, #2 - strb r0, [r7, #0xb] - ldr r0, [r5, #0x50] - str r0, [r7, #0x50] - mov r0, sb - str r0, [r7, #0x54] - adds r1, r7, #0 - adds r1, #0x79 - movs r0, #0x20 - strb r0, [r1] - str r7, [r6, #0x54] -_080AC6C8: - movs r0, #0x22 - bl sub_080A7EE0 - adds r6, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r6, #0xa] - movs r0, #4 - strb r0, [r6, #0xb] - ldr r0, [r5, #0x50] - str r0, [r6, #0x50] - str r5, [r6, #0x54] - adds r0, r6, #0 - adds r0, #0x79 - mov r1, r8 - strb r1, [r0] - movs r0, #1 -_080AC6E8: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AC6F0 -sub_080AC6F0: @ 0x080AC6F0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r2, #0x1f - ands r2, r0 - lsrs r0, r0, #5 - lsls r1, r0, #1 - adds r3, r1, r0 - ldr r1, _080AC724 @ =gUnk_0812A9C0 - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - subs r0, r0, r3 - adds r5, r1, #0 - cmp r0, #3 - bhi _080AC73A - cmp r0, #1 - beq _080AC72E - cmp r0, #1 - blo _080AC728 - cmp r0, #2 - beq _080AC732 - cmp r2, #0x19 - bhi _080AC75C - b _080AC73A - .align 2, 0 -_080AC724: .4byte gUnk_0812A9C0 -_080AC728: - cmp r2, #6 - bls _080AC75C - b _080AC73A -_080AC72E: - subs r0, r2, #5 - b _080AC736 -_080AC732: - adds r0, r2, #0 - subs r0, #0xf -_080AC736: - cmp r0, #0xc - bls _080AC75C -_080AC73A: - adds r0, r3, #3 - cmp r2, #0x1a - bhi _080AC74E - adds r0, r3, #2 - cmp r2, #0x10 - bhi _080AC74E - adds r0, r3, #0 - cmp r2, #5 - bls _080AC74E - adds r0, #1 -_080AC74E: - movs r1, #0x18 - bl __modsi3 - strb r0, [r4, #0x14] - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r4, #0x1e] -_080AC75C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AC760 -sub_080AC760: @ 0x080AC760 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r4, [r6, #0x54] - ldrb r0, [r4, #0x15] - ldrb r3, [r6, #0x15] - subs r2, r0, r3 - movs r1, #0xff - ands r2, r1 - adds r0, r2, #0 - adds r0, #8 - ands r0, r1 - cmp r0, #0x10 - ble _080AC78A - cmp r2, #0x80 - ble _080AC784 - adds r0, r3, #0 - subs r0, #8 - b _080AC788 -_080AC784: - adds r0, r3, #0 - adds r0, #8 -_080AC788: - strb r0, [r4, #0x15] -_080AC78A: - ldr r5, [r4, #0x54] - ldr r0, [r5, #0x54] - cmp r0, #0 - bne _080AC79C - ldr r0, [r6, #0x50] - ldrb r0, [r0, #0x14] - movs r1, #0x80 - eors r0, r1 - b _080AC7BE -_080AC79C: - ldrb r0, [r5, #0x15] - ldrb r3, [r4, #0x15] - subs r2, r0, r3 - movs r1, #0xff - ands r2, r1 - adds r0, r2, #0 - adds r0, #8 - ands r0, r1 - cmp r0, #0x10 - ble _080AC7C0 - cmp r2, #0x80 - ble _080AC7BA - adds r0, r3, #0 - subs r0, #8 - b _080AC7BE -_080AC7BA: - adds r0, r3, #0 - adds r0, #8 -_080AC7BE: - strb r0, [r5, #0x15] -_080AC7C0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080AC7C4 -sub_080AC7C4: @ 0x080AC7C4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - mov r8, r0 - ldr r7, [r0, #0x54] - ldr r5, [r7, #0x54] - cmp r5, #0 - beq _080AC7E4 - ldr r0, [r4, #0x50] - adds r1, r5, #0 - bl sub_0806FA24 - b _080AC7E6 -_080AC7E4: - ldr r5, [r4, #0x50] -_080AC7E6: - adds r0, r7, #0 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - ldr r3, _080AC880 @ =gUnk_080C9160 - mov sb, r3 - ldrb r1, [r7, #0x15] - lsls r0, r1, #1 - add r0, sb - movs r3, #0 - ldrsh r0, [r0, r3] - adds r6, r0, #0 - muls r6, r2, r6 - adds r1, #0x40 - lsls r1, r1, #1 - add r1, sb - movs r3, #0 - ldrsh r0, [r1, r3] - muls r0, r2, r0 - rsbs r3, r0, #0 - adds r0, r5, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl PositionRelative - mov r0, r8 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - mov r0, r8 - ldrb r1, [r0, #0x15] - lsls r0, r1, #1 - add r0, sb - movs r3, #0 - ldrsh r0, [r0, r3] - adds r6, r0, #0 - muls r6, r2, r6 - adds r1, #0x40 - lsls r1, r1, #1 - add r1, sb - movs r3, #0 - ldrsh r0, [r1, r3] - muls r0, r2, r0 - rsbs r3, r0, #0 - adds r0, r7, #0 - mov r1, r8 - adds r2, r6, #0 - bl PositionRelative - adds r0, r4, #0 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - ldrb r1, [r4, #0x15] - lsls r0, r1, #1 - add r0, sb - movs r3, #0 - ldrsh r0, [r0, r3] - adds r6, r0, #0 - muls r6, r2, r6 - adds r1, #0x40 - lsls r1, r1, #1 - add r1, sb - movs r3, #0 - ldrsh r0, [r1, r3] - muls r0, r2, r0 - rsbs r3, r0, #0 - mov r0, r8 - adds r1, r4, #0 - adds r2, r6, #0 - bl PositionRelative - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AC880: .4byte gUnk_080C9160 - - thumb_func_start sub_080AC884 -sub_080AC884: @ 0x080AC884 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - adds r2, r0, #0 - adds r2, #0x72 - ldrh r0, [r2] - cmp r0, #0 - beq _080AC8A4 - movs r0, #0 - strh r0, [r2] - movs r0, #2 - strb r0, [r1, #0xc] - movs r0, #0x3c - strb r0, [r1, #0xe] - movs r0, #0x56 - strb r0, [r1, #0xf] -_080AC8A4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AC8A8 -sub_080AC8A8: @ 0x080AC8A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AC8C0 @ =gUnk_0812A9D8 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AC8C0: .4byte gUnk_0812A9D8 - - thumb_func_start sub_080AC8C4 -sub_080AC8C4: @ 0x080AC8C4 - push {lr} - ldr r2, _080AC8D8 @ =gUnk_0812A9EC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AC8D8: .4byte gUnk_0812A9EC - - thumb_func_start sub_080AC8DC -sub_080AC8DC: @ 0x080AC8DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - blt _080AC8FE - cmp r1, #3 - ble _080AC8F8 - cmp r1, #0x1f - bgt _080AC8FE - cmp r1, #0x1e - blt _080AC8FE -_080AC8F8: - bl sub_0805E780 - b _080AC920 -_080AC8FE: - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _080AC920 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_080AC920: - adds r0, r4, #0 - bl sub_080AC8C4 - pop {r4, pc} - - thumb_func_start sub_080AC928 -sub_080AC928: @ 0x080AC928 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080AC954 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AC954 -sub_080AC954: @ 0x080AC954 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AC964 - bl sub_0805E780 -_080AC964: - ldr r0, [r5, #0x50] - ldrb r3, [r0, #0x14] - ldr r4, _080AC9C4 @ =gUnk_080C9160 - lsls r1, r3, #1 - adds r1, r1, r4 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r2, r1, #2 - adds r2, r2, r1 - lsls r2, r2, #0xb - adds r3, #0x40 - lsls r3, r3, #1 - adds r3, r3, r4 - movs r4, #0 - ldrsh r1, [r3, r4] - lsls r3, r1, #2 - adds r3, r3, r1 - lsls r3, r3, #0xb - rsbs r3, r3, #0 - adds r1, r5, #0 - bl PositionRelative - adds r0, r5, #0 - bl sub_08004274 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC9C0 - movs r0, #2 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - ldr r1, _080AC9C8 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - movs r0, #0x97 - lsls r0, r0, #1 - bl sub_080A3268 -_080AC9C0: - pop {r4, r5, pc} - .align 2, 0 -_080AC9C4: .4byte gUnk_080C9160 -_080AC9C8: .4byte gLinkEntity - - thumb_func_start sub_080AC9CC -sub_080AC9CC: @ 0x080AC9CC - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080AC9E8 - bl sub_0805E780 -_080AC9E8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080ACA10 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_080ACA10: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACA14 -sub_080ACA14: @ 0x080ACA14 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ACA32 - bl sub_0805E780 -_080ACA32: - pop {r4, pc} - - thumb_func_start sub_080ACA34 -sub_080ACA34: @ 0x080ACA34 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ACA4C @ =gUnk_0812AA5C - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ACA4C: .4byte gUnk_0812AA5C - - thumb_func_start sub_080ACA50 -sub_080ACA50: @ 0x080ACA50 - push {lr} - ldr r2, _080ACA64 @ =gUnk_0812AA74 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ACA64: .4byte gUnk_0812AA74 - - thumb_func_start sub_080ACA68 -sub_080ACA68: @ 0x080ACA68 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0xc - bgt _080ACA82 - cmp r1, #0xa - bge _080ACA86 - cmp r1, #6 - beq _080ACA86 - b _080ACAC0 -_080ACA82: - cmp r1, #0x1a - bne _080ACAC0 -_080ACA86: - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - ldr r0, [r4, #0x4c] - str r0, [r4, #0x54] - adds r0, r4, #0 - bl sub_080ACB40 - cmp r0, #0 - beq _080ACAB0 - movs r0, #0 - b _080ACAB6 -_080ACAB0: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] -_080ACAB6: - strb r0, [r4, #0x15] - movs r0, #0xd8 - bl sub_080A3268 - b _080ACAC4 -_080ACAC0: - bl sub_0805E780 -_080ACAC4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACAC8 -sub_080ACAC8: @ 0x080ACAC8 - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x10 - strb r1, [r0, #0x15] - ldr r1, _080ACAE8 @ =0x0000FFFC - strh r1, [r0, #0x36] - str r2, [r0, #0x54] - movs r1, #7 - bl sub_08004260 - ldr r0, _080ACAEC @ =0x00000199 - bl sub_080A3268 - pop {pc} - .align 2, 0 -_080ACAE8: .4byte 0x0000FFFC -_080ACAEC: .4byte 0x00000199 - - thumb_func_start sub_080ACAF0 -sub_080ACAF0: @ 0x080ACAF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080ACB0C - bl sub_0805E780 -_080ACB0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACB10 -sub_080ACB10: @ 0x080ACB10 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080ACB22 - bl sub_0805E780 -_080ACB22: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080ACB90 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080ACB3C - bl sub_0805E780 -_080ACB3C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACB40 -sub_080ACB40: @ 0x080ACB40 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - ldr r1, [r0, #0x50] - ldr r3, [r2, #0x54] - ldr r0, [r1, #0x64] - ldr r0, [r0, #0x1c] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB5A - ldr r0, [r0, #0x54] - cmp r3, r0 - beq _080ACB86 -_080ACB5A: - ldr r1, [r1, #0x64] - ldr r0, [r1, #0x20] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB6A - ldr r0, [r0, #0x54] - cmp r3, r0 - beq _080ACB86 -_080ACB6A: - ldr r0, [r1, #0x24] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB78 - ldr r0, [r0, #0x54] - cmp r3, r0 - beq _080ACB86 -_080ACB78: - ldr r0, [r1, #0x28] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB8A - ldr r0, [r0, #0x54] - cmp r3, r0 - bne _080ACB8A -_080ACB86: - movs r0, #0 - b _080ACB8C -_080ACB8A: - movs r0, #1 -_080ACB8C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080ACB90 -sub_080ACB90: @ 0x080ACB90 - push {r4, lr} - adds r2, r0, #0 - ldr r3, [r2, #0x50] - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r4, #0x2e - ldrsh r0, [r3, r4] - cmp r1, r0 - bne _080ACBC6 - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r4, #0x32 - ldrsh r0, [r3, r4] - cmp r1, r0 - bgt _080ACBC6 - movs r0, #1 - strb r0, [r3, #0xf] - adds r0, r2, #0 - movs r1, #0x1f - movs r2, #0x40 - bl CreateFX - ldr r0, _080ACBC8 @ =0x00000119 - bl sub_08004488 - bl sub_0805E780 -_080ACBC6: - pop {r4, pc} - .align 2, 0 -_080ACBC8: .4byte 0x00000119 - - thumb_func_start sub_080ACBCC -sub_080ACBCC: @ 0x080ACBCC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080ACBFC @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0x7f - ands r0, r1 - cmp r0, #1 - beq _080ACBE0 - bl sub_0805E780 -_080ACBE0: - ldr r1, _080ACC00 @ =gUnk_0812AA80 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_080ACBFC: .4byte gUnk_03003F80 -_080ACC00: .4byte gUnk_0812AA80 - - thumb_func_start sub_080ACC04 -sub_080ACC04: @ 0x080ACC04 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080ACC54 @ =gLinkEntity - adds r0, #0x3b - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x3b - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x10] - movs r0, #0xa0 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #2 - strb r0, [r1] - ldr r1, _080ACC58 @ =gUnk_0812AAD8 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - movs r0, #0x10 - str r0, [r4, #0x70] - adds r0, r4, #0 - bl sub_080ACDB0 - adds r0, r4, #0 - bl sub_0801766C - pop {r4, pc} - .align 2, 0 -_080ACC54: .4byte gLinkEntity -_080ACC58: .4byte gUnk_0812AAD8 - - thumb_func_start sub_080ACC5C -sub_080ACC5C: @ 0x080ACC5C - push {r4, lr} - adds r4, r0, #0 - bl sub_080ACDB0 - cmp r0, #0 - bne _080ACC74 - adds r0, r4, #0 - bl sub_080ACC78 - adds r0, r4, #0 - bl sub_080ACECC -_080ACC74: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACC78 -sub_080ACC78: @ 0x080ACC78 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xa] - ldr r0, _080ACD20 @ =gUnk_030010A0 - ldr r0, [r0] - adds r0, r2, r0 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _080ACCF8 - ldr r0, _080ACD24 @ =gUnk_0812AAAC - lsls r1, r2, #2 - adds r1, r1, r0 - ldr r7, [r1] - ldr r0, [r4, #0x74] - adds r0, r7, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080ACCA4 - str r0, [r4, #0x74] -_080ACCA4: - ldr r0, [r4, #0x74] - adds r0, r7, r0 - movs r2, #0 - ldrsb r2, [r0, r2] - movs r3, #1 - ldrsb r3, [r0, r3] - adds r0, r4, #0 - movs r1, #0xe - bl sub_08008782 - adds r5, r0, #0 - cmp r5, #0 - beq _080ACCF2 - ldrb r1, [r5, #5] - ldrb r2, [r5, #2] - movs r0, #0x11 - bl CreateObject - adds r6, r0, #0 - cmp r6, #0 - beq _080ACCF2 - ldrb r0, [r5, #3] - strb r0, [r6, #0xe] - ldr r0, [r4, #0x74] - adds r0, r7, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r6, #0x2e] - ldr r0, [r4, #0x74] - adds r0, r0, r7 - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r6, #0x32] -_080ACCF2: - ldr r0, [r4, #0x74] - adds r0, #2 - str r0, [r4, #0x74] -_080ACCF8: - ldr r2, [r4, #0x54] - cmp r2, #0 - bne _080ACD08 - ldr r0, [r4, #0x70] - cmp r0, #2 - bls _080ACD08 - movs r0, #1 - str r0, [r4, #0x70] -_080ACD08: - ldr r0, [r4, #0x70] - subs r0, #1 - str r0, [r4, #0x70] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _080ACDAE - cmp r2, #0 - bne _080ACD28 - movs r0, #2 - b _080ACD32 - .align 2, 0 -_080ACD20: .4byte gUnk_030010A0 -_080ACD24: .4byte gUnk_0812AAAC -_080ACD28: - ldr r0, _080ACD74 @ =gUnk_0812AABC - ldrb r1, [r4, #0xa] - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] -_080ACD32: - str r0, [r4, #0x70] - movs r0, #0x17 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r6, r0, #0 - cmp r6, #0 - beq _080ACDAE - bl sub_08000E50 - adds r2, r0, #0 - movs r0, #0xf - ands r2, r0 - ldr r3, [r4, #0x48] - ldrb r1, [r3, #6] - cmp r1, r2 - bge _080ACD58 - adds r2, r1, #0 -_080ACD58: - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080ACD62 - rsbs r2, r2, #0 -_080ACD62: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _080ACD9C - cmp r0, #1 - bgt _080ACD78 - cmp r0, #0 - beq _080ACD82 - b _080ACDAE - .align 2, 0 -_080ACD74: .4byte gUnk_0812AABC -_080ACD78: - cmp r0, #2 - beq _080ACD8C - cmp r0, #3 - beq _080ACDA2 - b _080ACDAE -_080ACD82: - ldrb r0, [r3, #7] - ldrh r1, [r4, #0x32] - subs r1, r1, r0 - strh r1, [r6, #0x32] - b _080ACD94 -_080ACD8C: - ldrh r0, [r4, #0x32] - ldrb r3, [r3, #7] - adds r0, r0, r3 - strh r0, [r6, #0x32] -_080ACD94: - ldrh r0, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r6, #0x2e] - b _080ACDAE -_080ACD9C: - ldrh r0, [r4, #0x2e] - adds r0, r0, r1 - b _080ACDA6 -_080ACDA2: - ldrh r0, [r4, #0x2e] - subs r0, r0, r1 -_080ACDA6: - strh r0, [r6, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r6, #0x32] -_080ACDAE: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080ACDB0 -sub_080ACDB0: @ 0x080ACDB0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080ACDE8 - ldr r2, _080ACDE0 @ =gLinkEntity - ldr r1, _080ACDE4 @ =gUnk_08126EE4 - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - ldrb r0, [r4, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r2, #0x32] - adds r0, r0, r2 - b _080ACEB4 - .align 2, 0 -_080ACDE0: .4byte gLinkEntity -_080ACDE4: .4byte gUnk_08126EE4 -_080ACDE8: - ldrb r2, [r4, #0x14] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080ACE48 - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x32] - subs r1, #3 - strh r1, [r4, #0x32] - movs r1, #4 - ands r1, r2 - adds r3, r0, #0 - cmp r1, #0 - beq _080ACE20 - movs r0, #0x2e - ldrsh r7, [r3, r0] - movs r0, #0x2e - ldrsh r6, [r4, r0] - ldr r1, _080ACE1C @ =gUnk_0812AAE8 - ldrb r2, [r4, #0xa] - adds r0, r2, r1 - ldrb r0, [r0] - rsbs r5, r0, #0 - adds r0, r1, #0 - b _080ACE30 - .align 2, 0 -_080ACE1C: .4byte gUnk_0812AAE8 -_080ACE20: - movs r0, #0x2e - ldrsh r6, [r3, r0] - movs r0, #0x2e - ldrsh r7, [r4, r0] - ldr r0, _080ACE44 @ =gUnk_0812AAE8 - ldrb r2, [r4, #0xa] - adds r1, r2, r0 - ldrb r5, [r1] -_080ACE30: - subs r1, r7, r6 - str r1, [r4, #0x78] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r1 - bhi _080ACE90 - ldrh r0, [r3, #0x2e] - adds r0, r0, r5 - strh r0, [r4, #0x2e] - b _080ACEB6 - .align 2, 0 -_080ACE44: .4byte gUnk_0812AAE8 -_080ACE48: - ldr r1, [r4, #0x50] - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - movs r0, #4 - ands r0, r2 - adds r3, r1, #0 - cmp r0, #0 - beq _080ACE70 - movs r0, #0x32 - ldrsh r6, [r3, r0] - movs r0, #0x32 - ldrsh r7, [r4, r0] - ldr r0, _080ACE6C @ =gUnk_0812AAE8 - ldrb r2, [r4, #0xa] - adds r1, r2, r0 - ldrb r5, [r1] - b _080ACE84 - .align 2, 0 -_080ACE6C: .4byte gUnk_0812AAE8 -_080ACE70: - movs r0, #0x32 - ldrsh r7, [r3, r0] - movs r0, #0x32 - ldrsh r6, [r4, r0] - ldr r1, _080ACEAC @ =gUnk_0812AAE8 - ldrb r2, [r4, #0xa] - adds r0, r2, r1 - ldrb r0, [r0] - rsbs r5, r0, #0 - adds r0, r1, #0 -_080ACE84: - subs r1, r7, r6 - str r1, [r4, #0x78] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r1 - bls _080ACEB0 -_080ACE90: - subs r0, r0, r1 - lsls r1, r0, #8 - strh r1, [r4, #0x24] - lsls r0, r0, #0x18 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #2 - cmp r0, r1 - ble _080ACEA4 - strh r1, [r4, #0x24] -_080ACEA4: - adds r0, r4, #0 - bl sub_080AEFB4 - b _080ACEB6 - .align 2, 0 -_080ACEAC: .4byte gUnk_0812AAE8 -_080ACEB0: - ldrh r0, [r3, #0x32] - adds r0, r0, r5 -_080ACEB4: - strh r0, [r4, #0x32] -_080ACEB6: - ldr r0, _080ACEC8 @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - movs r0, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080ACEC8: .4byte gLinkEntity - - thumb_func_start sub_080ACECC -sub_080ACECC: @ 0x080ACECC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bhi _080ACF0C - ldr r0, [r4, #0x54] - cmp r0, #0 - bne _080ACF0C - ldr r2, [r4, #0x78] - cmp r2, #0 - blt _080ACF0C - ldr r0, _080ACF10 @ =gUnk_0812AAE8 - ldrb r1, [r4, #0xa] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, r2 - bhi _080ACF0C - adds r1, #1 - movs r0, #0x10 - movs r2, #0 - movs r3, #0 - bl sub_08077CB8 - adds r1, r0, #0 - cmp r1, #0 - beq _080ACF0C - str r4, [r1, #0x50] - str r1, [r4, #0x54] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] -_080ACF0C: - pop {r4, pc} - .align 2, 0 -_080ACF10: .4byte gUnk_0812AAE8 - - thumb_func_start sub_080ACF14 -sub_080ACF14: @ 0x080ACF14 - push {lr} - ldr r2, _080ACF28 @ =gUnk_081320A8 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ACF28: .4byte gUnk_081320A8 - - thumb_func_start sub_080ACF2C -sub_080ACF2C: @ 0x080ACF2C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldr r0, _080ACF60 @ =gUnk_081320E4 - str r0, [r4, #0x48] - ldr r5, [r4, #0x54] - adds r6, r5, #0 - cmp r5, #0 - beq _080ACF64 - ldr r0, [r5, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r5, #0x30] - str r0, [r4, #0x30] - ldr r0, [r5, #0x34] - str r0, [r4, #0x34] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r0, [r5, #0x16] - strb r0, [r4, #0x16] - b _080ACFB6 - .align 2, 0 -_080ACF60: .4byte gUnk_081320E4 -_080ACF64: - adds r5, r4, #0 - str r4, [r4, #0x54] - movs r0, #2 - strb r0, [r4, #0xc] - ldr r3, _080ACFC8 @ =gUnk_081320B8 - ldrb r0, [r4, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #1] - movs r0, #0xf - ands r1, r0 - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r6, [r4, #0x16] - ldrb r0, [r4, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #2] - adds r0, r4, #0 - adds r0, #0x60 - strh r1, [r0] - ldrb r0, [r4, #0xf] - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - bl sub_08078D60 -_080ACFB6: - ldrb r1, [r5, #8] - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - ldrb r1, [r5, #9] - adds r0, #2 - strh r1, [r0] - pop {r4, r5, r6, pc} - .align 2, 0 -_080ACFC8: .4byte gUnk_081320B8 - - thumb_func_start sub_080ACFCC -sub_080ACFCC: @ 0x080ACFCC - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x54] - adds r0, #0x6c - ldrh r0, [r0] - ldrb r2, [r1, #8] - cmp r0, r2 - beq _080ACFE8 - adds r0, r4, #0 - adds r0, #0x6e - ldrh r0, [r0] - ldrb r2, [r1, #9] - cmp r0, r2 - bne _080AD034 -_080ACFE8: - ldrb r0, [r1, #0xc] - cmp r0, #2 - beq _080ACFF8 - bl sub_08079184 - bl sub_0805E780 - b _080AD03C -_080ACFF8: - ldr r0, _080AD02C @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - beq _080AD00E - ldr r0, _080AD030 @ =gLinkEntity - adds r0, #0x79 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _080AD03C -_080AD00E: - adds r0, r4, #0 - bl sub_080AD27C - ldrb r0, [r4, #0xd] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xff - strb r0, [r4, #0x15] - str r2, [r4, #0x20] - b _080AD03C - .align 2, 0 -_080AD02C: .4byte gUnk_03003F80 -_080AD030: .4byte gLinkEntity -_080AD034: - bl sub_08079184 - bl sub_0805E780 -_080AD03C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AD040 -sub_080AD040: @ 0x080AD040 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - ldrb r0, [r5, #0xc] - cmp r0, #2 - beq _080AD050 - bl sub_0805E780 -_080AD050: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r3, #0x80 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080AD064 - movs r0, #0 - str r0, [r4, #0x34] -_080AD064: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080AD06E - b _080AD220 -_080AD06E: - adds r2, r4, #0 - adds r2, #0x42 - ldrb r1, [r2] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080AD088 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - movs r1, #0 - strb r0, [r4, #0x15] - strb r1, [r2] -_080AD088: - ldr r2, _080AD0B0 @ =gUnk_081320C4 - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r0, r4, #0 - bl sub_080002B4 - cmp r0, #0x74 - bne _080AD0B4 - adds r0, r4, #0 - bl sub_0806F69C - b _080AD0C8 - .align 2, 0 -_080AD0B0: .4byte gUnk_081320C4 -_080AD0B4: - adds r0, r4, #0 - bl sub_080002D0 - cmp r0, #0x24 - beq _080AD0C8 - cmp r0, #0x26 - beq _080AD0C8 - adds r0, r4, #0 - bl sub_080AF00C -_080AD0C8: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _080AD0D8 - b _080AD202 -_080AD0D8: - ldr r0, [r4, #0x20] - str r0, [r5, #0x20] - ldr r0, [r4, #0x2c] - str r0, [r5, #0x2c] - ldr r0, [r4, #0x30] - str r0, [r5, #0x30] - ldr r0, [r4, #0x34] - str r0, [r5, #0x34] - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0x11 - bhi _080AD0FC - cmp r0, #0x10 - bhs _080AD104 - cmp r0, #0xd - beq _080AD104 - b _080AD14E -_080AD0FC: - cmp r0, #0x13 - beq _080AD104 - cmp r0, #0x5a - bne _080AD14E -_080AD104: - cmp r5, r4 - bne _080AD146 - cmp r0, #0x11 - bhi _080AD116 - cmp r0, #0x10 - bhs _080AD12C - cmp r0, #0xd - beq _080AD120 - b _080AD142 -_080AD116: - cmp r0, #0x13 - beq _080AD138 - cmp r0, #0x5a - beq _080AD126 - b _080AD142 -_080AD120: - adds r0, r4, #0 - movs r1, #0 - b _080AD130 -_080AD126: - adds r0, r4, #0 - movs r1, #0xc - b _080AD130 -_080AD12C: - adds r0, r4, #0 - movs r1, #0xb -_080AD130: - movs r2, #0 - bl CreateFX - b _080AD142 -_080AD138: - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFX -_080AD142: - movs r0, #4 - b _080AD148 -_080AD146: - movs r0, #3 -_080AD148: - strb r0, [r5, #0xd] - bl sub_0805E780 -_080AD14E: - ldr r0, [r4, #0x54] - cmp r0, r4 - bne _080AD178 - ldrb r0, [r4, #0xb] - cmp r0, #0xff - beq _080AD1DA - cmp r0, #0xf - bne _080AD16A - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - movs r2, #0x80 - bl CreateFX - b _080AD1DA -_080AD16A: - ldrb r1, [r4, #0xb] - ldrb r2, [r4, #0xe] - adds r0, r4, #0 - movs r3, #0 - bl sub_080A2988 - b _080AD1DA -_080AD178: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080AD188 - adds r0, r5, #0 - bl sub_080AD32C - cmp r0, #0 - beq _080AD1E0 -_080AD188: - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _080AD196 - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_080A3268 -_080AD196: - adds r0, r4, #0 - bl sub_08016A04 - movs r0, #3 - strb r0, [r5, #0xd] - ldrb r2, [r4, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r5, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, #0x19] - ldrb r0, [r4, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x1b] - adds r0, r4, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - adds r3, r5, #0 - adds r3, #0x29 - lsrs r1, r1, #0x1d - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080AD1DA: - bl sub_0805E780 - b _080AD26E -_080AD1E0: - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_080A3268 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r1, #0x24 - ldrsh r0, [r4, r1] - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x24] - b _080AD26E -_080AD202: - adds r0, r4, #0 - bl sub_0800451C - adds r0, r4, #0 - bl sub_0806F8DC - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x20] - str r0, [r5, #0x20] - ldrb r0, [r4, #0x15] - strb r0, [r5, #0x15] - b _080AD26E -_080AD220: - ldr r1, _080AD240 @ =gLinkEntity - adds r0, r1, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r5, #1 - ands r5, r0 - cmp r5, #0 - beq _080AD244 - movs r0, #0x79 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_080AD27C - b _080AD26E - .align 2, 0 -_080AD240: .4byte gLinkEntity -_080AD244: - ldr r0, _080AD270 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - beq _080AD25A - adds r0, r1, #0 - adds r0, #0x79 - ldrb r1, [r0] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080AD26E -_080AD25A: - adds r0, r4, #0 - bl sub_080AD27C - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #0xff - strb r0, [r4, #0x15] - str r5, [r4, #0x20] -_080AD26E: - pop {r4, r5, pc} - .align 2, 0 -_080AD270: .4byte gUnk_03003F80 - - thumb_func_start sub_080AD274 -sub_080AD274: @ 0x080AD274 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_080AD27C -sub_080AD27C: @ 0x080AD27C - push {r4, r5, lr} - adds r3, r0, #0 - ldr r4, [r3, #0x54] - ldr r1, _080AD2AC @ =gLinkEntity - movs r0, #0 - str r0, [r1, #0x74] - adds r0, r3, #0 - adds r0, #0x6c - ldrh r0, [r0] - adds r5, r1, #0 - ldrb r1, [r4, #8] - cmp r0, r1 - bne _080AD320 - adds r0, r3, #0 - adds r0, #0x6e - ldrh r0, [r0] - ldrb r1, [r4, #9] - cmp r0, r1 - bne _080AD320 - cmp r4, r3 - beq _080AD2B0 - movs r0, #2 - strb r0, [r4, #0xd] - b _080AD2C2 - .align 2, 0 -_080AD2AC: .4byte gLinkEntity -_080AD2B0: - adds r2, r3, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x18 - orrs r1, r0 - strb r1, [r2] -_080AD2C2: - ldr r0, [r4, #0x48] - str r0, [r3, #0x48] - ldrb r1, [r3, #0x16] - lsrs r1, r1, #4 - ldr r2, _080AD318 @ =gUnk_081320CC - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r3, #0x24] - ldr r0, _080AD31C @ =gUnk_081320D4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r3, #0x20] - ldrh r0, [r4, #0x36] - adds r0, #8 - strh r0, [r4, #0x36] - strh r0, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrh r0, [r5, #0x32] - strh r0, [r3, #0x32] - ldrh r0, [r5, #0x2e] - strh r0, [r3, #0x2e] - adds r0, r5, #0 - adds r0, #0x3c - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x3c - strb r1, [r0] - ldrb r1, [r3, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r3, #0x10] - adds r0, r3, #0 - bl sub_0801766C - b _080AD328 - .align 2, 0 -_080AD318: .4byte gUnk_081320CC -_080AD31C: .4byte gUnk_081320D4 -_080AD320: - bl sub_08079184 - bl sub_0805E780 -_080AD328: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AD32C -sub_080AD32C: @ 0x080AD32C - push {lr} - adds r2, r0, #0 - movs r3, #0 - ldrb r1, [r2, #0x16] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x10 - beq _080AD34C - ldrb r0, [r2, #8] - cmp r0, #6 - bne _080AD34E - ldrb r0, [r2, #9] - cmp r0, #5 - beq _080AD34C - cmp r0, #0x7d - bne _080AD34E -_080AD34C: - movs r3, #1 -_080AD34E: - adds r0, r3, #0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AD354 -sub_080AD354: @ 0x080AD354 - push {lr} - ldr r1, _080AD374 @ =gUnk_02032EC0 - strb r0, [r1, #2] - ldr r1, _080AD378 @ =gUnk_03001000 - movs r0, #2 - strb r0, [r1, #3] - ldr r0, _080AD37C @ =gUnk_02000080 - movs r1, #0x30 - bl sub_0801D630 - movs r0, #7 - movs r1, #8 - bl sub_08050054 - pop {pc} - .align 2, 0 -_080AD374: .4byte gUnk_02032EC0 -_080AD378: .4byte gUnk_03001000 -_080AD37C: .4byte gUnk_02000080 - - thumb_func_start sub_080AD380 -sub_080AD380: @ 0x080AD380 - push {r4, lr} - bl sub_080AD90C - ldr r4, _080AD398 @ =gUnk_03001000 - ldrb r0, [r4, #3] - cmp r0, #1 - beq _080AD3BC - cmp r0, #1 - bgt _080AD39C - cmp r0, #0 - beq _080AD3A2 - b _080AD3EA - .align 2, 0 -_080AD398: .4byte gUnk_03001000 -_080AD39C: - cmp r0, #2 - beq _080AD3D8 - b _080AD3EA -_080AD3A2: - bl sub_08056418 - ldr r0, _080AD3B8 @ =gUnk_02032EC0 - movs r1, #0xed - lsls r1, r1, #2 - bl sub_0801D630 - movs r0, #0 - bl sub_080AD354 - b _080AD3EA - .align 2, 0 -_080AD3B8: .4byte gUnk_02032EC0 -_080AD3BC: - ldr r1, _080AD3D0 @ =gUnk_081320F0 - ldr r0, _080AD3D4 @ =gUnk_02032EC0 - ldrb r0, [r0, #2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _080AD3EA - .align 2, 0 -_080AD3D0: .4byte gUnk_081320F0 -_080AD3D4: .4byte gUnk_02032EC0 -_080AD3D8: - ldr r0, _080AD3F0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD3EE - movs r0, #1 - bl sub_0801DA90 - movs r0, #1 - strb r0, [r4, #3] -_080AD3EA: - bl sub_080AD918 -_080AD3EE: - pop {r4, pc} - .align 2, 0 -_080AD3F0: .4byte gUnk_03000FD0 - - thumb_func_start sub_080AD3F4 -sub_080AD3F4: @ 0x080AD3F4 - push {r4, r5, lr} - bl sub_080AD84C - adds r1, r0, #0 - ldr r4, _080AD450 @ =gUnk_02000080 - ldrb r0, [r4, #5] - cmp r0, #0 - bne _080AD458 - movs r0, #1 - bl sub_0801DA90 - movs r5, #1 - strb r5, [r4, #5] - movs r0, #0x78 - strh r0, [r4, #8] - movs r0, #0x10 - bl sub_0801D7EC - movs r0, #1 - bl sub_0801D7EC - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #2 - cmp r0, #0 - bne _080AD42C - movs r1, #1 -_080AD42C: - adds r0, r1, #0 - bl sub_0801D714 - ldr r0, _080AD454 @ =gUnk_03000F50 - ldrh r1, [r0] - movs r3, #0x80 - lsls r3, r3, #3 - adds r2, r3, #0 - orrs r1, r2 - strh r1, [r0] - strh r5, [r0, #0x1a] - movs r0, #6 - movs r1, #8 - bl sub_08050054 - movs r1, #0 - b _080AD45E - .align 2, 0 -_080AD450: .4byte gUnk_02000080 -_080AD454: .4byte gUnk_03000F50 -_080AD458: - cmp r1, #1 - bne _080AD45E - movs r1, #2 -_080AD45E: - cmp r1, #2 - bne _080AD46C - ldr r1, _080AD470 @ =gUnk_02000010 - movs r0, #1 - strb r0, [r1, #5] - bl sub_080AD354 -_080AD46C: - pop {r4, r5, pc} - .align 2, 0 -_080AD470: .4byte gUnk_02000010 - - thumb_func_start sub_080AD474 -sub_080AD474: @ 0x080AD474 - push {r4, r5, r6, lr} - ldr r5, _080AD490 @ =gUnk_02000080 - ldrb r0, [r5, #0x12] - adds r0, #1 - strb r0, [r5, #0x12] - ldrb r0, [r5, #5] - cmp r0, #1 - bne _080AD486 - b _080AD588 -_080AD486: - cmp r0, #1 - bgt _080AD494 - cmp r0, #0 - beq _080AD49C - b _080AD5C8 - .align 2, 0 -_080AD490: .4byte gUnk_02000080 -_080AD494: - cmp r0, #2 - bne _080AD49A - b _080AD5AA -_080AD49A: - b _080AD5C8 -_080AD49C: - movs r4, #1 - strb r4, [r5, #5] - strb r0, [r5, #6] - movs r6, #0 - movs r0, #0x1e - strh r0, [r5, #8] - movs r0, #7 - strb r0, [r5, #4] - bl sub_0805E60C - movs r0, #0 - bl sub_0801CFA8 - bl sub_080ADD30 - ldr r0, _080AD50C @ =gUnk_02024490 - strb r4, [r0] - movs r0, #2 - bl sub_0801D7EC - movs r4, #0x80 - lsls r4, r4, #0x12 - ldrb r0, [r4, #7] - movs r1, #4 - cmp r0, #0 - bne _080AD4D2 - movs r1, #3 -_080AD4D2: - adds r0, r1, #0 - bl sub_0801D714 - ldrb r0, [r4, #7] - cmp r0, #0 - bne _080AD524 - ldr r2, _080AD510 @ =gUnk_03000F50 - adds r1, r2, #0 - adds r1, #0x66 - ldr r0, _080AD514 @ =0x00000844 - strh r0, [r1] - adds r1, #2 - adds r0, #0xc5 - strh r0, [r1] - ldr r0, _080AD518 @ =0x00001C09 - strh r0, [r2, #0x14] - adds r0, #0xf9 - strh r0, [r2, #0x20] - ldr r0, _080AD51C @ =0x00001E03 - strh r0, [r2, #0x2c] - ldrh r0, [r2] - movs r3, #0xf0 - lsls r3, r3, #5 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r0, _080AD520 @ =0x0000FF60 - strh r0, [r2, #0x18] - b _080AD55A - .align 2, 0 -_080AD50C: .4byte gUnk_02024490 -_080AD510: .4byte gUnk_03000F50 -_080AD514: .4byte 0x00000844 -_080AD518: .4byte 0x00001C09 -_080AD51C: .4byte 0x00001E03 -_080AD520: .4byte 0x0000FF60 -_080AD524: - ldr r2, _080AD570 @ =gUnk_03000F50 - adds r1, r2, #0 - adds r1, #0x66 - ldr r0, _080AD574 @ =0x00000241 - strh r0, [r1] - adds r1, #2 - ldr r0, _080AD578 @ =0x00000909 - strh r0, [r1] - ldr r0, _080AD57C @ =0x00001D02 - strh r0, [r2, #8] - ldr r0, _080AD580 @ =0x00001E03 - strh r0, [r2, #0x14] - ldr r0, _080AD584 @ =0x00007C89 - strh r0, [r2, #0x20] - ldrh r0, [r2] - movs r1, #1 - orrs r0, r1 - orrs r0, r6 - movs r3, #0x98 - lsls r3, r3, #5 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - movs r0, #0x10 - str r0, [r5, #0x2c] - bl sub_080AD670 -_080AD55A: - bl sub_080A3210 - movs r0, #3 - bl sub_080A3268 - movs r0, #6 - movs r1, #8 - bl sub_08050054 - b _080AD610 - .align 2, 0 -_080AD570: .4byte gUnk_03000F50 -_080AD574: .4byte 0x00000241 -_080AD578: .4byte 0x00000909 -_080AD57C: .4byte 0x00001D02 -_080AD580: .4byte 0x00001E03 -_080AD584: .4byte 0x00007C89 -_080AD588: - ldr r0, _080AD5A0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD632 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _080AD5A4 - bl sub_080AD6AC - b _080AD610 - .align 2, 0 -_080AD5A0: .4byte gUnk_03000FD0 -_080AD5A4: - bl sub_080AD76C - b _080AD610 -_080AD5AA: - ldrh r0, [r5, #8] - subs r0, #1 - strh r0, [r5, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AD5C2 - movs r0, #0xe1 - lsls r0, r0, #4 - strh r0, [r5, #8] - ldrb r0, [r5, #5] - adds r0, #1 - strb r0, [r5, #5] -_080AD5C2: - bl sub_080AD644 - b _080AD610 -_080AD5C8: - bl sub_080AD84C - adds r4, r0, #0 - cmp r4, #0 - beq _080AD5EC - cmp r4, #2 - bne _080AD5DE - movs r0, #0x6a - bl sub_080A3268 - b _080AD5E0 -_080AD5DE: - movs r4, #0 -_080AD5E0: - adds r0, r4, #0 - bl sub_080AD354 - ldr r0, _080AD634 @ =0x80080000 - bl sub_080A3268 -_080AD5EC: - bl sub_080AD644 - ldr r0, _080AD638 @ =gUnk_02000080 - ldrh r1, [r0, #8] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080AD610 - ldr r1, _080AD63C @ =gUnk_03001010 - movs r0, #0xe0 - lsls r0, r0, #8 - strh r0, [r1, #8] - movs r0, #0x84 - strh r0, [r1, #2] - ldr r0, _080AD640 @ =0x000001FF - movs r1, #0 - bl sub_080ADA14 -_080AD610: - ldr r2, _080AD638 @ =gUnk_02000080 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #7] - ldrb r0, [r2, #4] - cmp r0, r1 - beq _080AD626 - strb r1, [r2, #4] - movs r0, #3 - bl sub_0801D7EC -_080AD626: - bl sub_080AD89C - bl sub_0805E5C0 - bl sub_080AD9B0 -_080AD632: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AD634: .4byte 0x80080000 -_080AD638: .4byte gUnk_02000080 -_080AD63C: .4byte gUnk_03001010 -_080AD640: .4byte 0x000001FF - - thumb_func_start sub_080AD644 -sub_080AD644: @ 0x080AD644 - push {lr} - ldr r1, _080AD664 @ =gUnk_03001010 - movs r0, #0 - strh r0, [r1, #4] - strh r0, [r1, #6] - ldr r0, _080AD668 @ =0x0000E020 - strh r0, [r1, #8] - movs r0, #0x78 - strh r0, [r1] - movs r0, #0x98 - strh r0, [r1, #2] - ldr r0, _080AD66C @ =0x000001FF - movs r1, #1 - bl sub_080ADA14 - pop {pc} - .align 2, 0 -_080AD664: .4byte gUnk_03001010 -_080AD668: .4byte 0x0000E020 -_080AD66C: .4byte 0x000001FF - - thumb_func_start sub_080AD670 -sub_080AD670: @ 0x080AD670 - push {lr} - sub sp, #0x14 - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [sp, #4] - str r0, [sp] - mov r1, sp - movs r2, #0 - movs r0, #0x78 - strh r0, [r1, #8] - movs r0, #0x48 - strh r0, [r1, #0xa] - mov r0, sp - strh r2, [r0, #0x10] - mov r2, sp - ldr r0, _080AD6A4 @ =gUnk_02000080 - ldr r0, [r0, #0x2c] - strh r0, [r1, #0xc] - strh r0, [r2, #0xe] - ldr r1, _080AD6A8 @ =gUnk_03000F88 - mov r0, sp - movs r2, #1 - bl BgAffineSet - add sp, #0x14 - pop {pc} - .align 2, 0 -_080AD6A4: .4byte gUnk_02000080 -_080AD6A8: .4byte gUnk_03000F88 - - thumb_func_start sub_080AD6AC -sub_080AD6AC: @ 0x080AD6AC - push {r4, r5, r6, lr} - ldr r4, _080AD6C0 @ =gUnk_02000080 - ldrb r0, [r4, #6] - cmp r0, #1 - beq _080AD724 - cmp r0, #1 - bgt _080AD6C4 - cmp r0, #0 - beq _080AD6CA - b _080AD76A - .align 2, 0 -_080AD6C0: .4byte gUnk_02000080 -_080AD6C4: - cmp r0, #2 - beq _080AD758 - b _080AD76A -_080AD6CA: - ldr r6, _080AD718 @ =gUnk_03000FD0 - ldrb r5, [r6] - cmp r5, #0 - bne _080AD76A - ldrb r1, [r4, #0x12] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080AD6E4 - ldr r1, _080AD71C @ =gUnk_03000F50 - ldrh r0, [r1, #0x18] - adds r0, #1 - strh r0, [r1, #0x18] -_080AD6E4: - bl sub_080AD84C - cmp r0, #2 - beq _080AD6F4 - ldr r0, _080AD71C @ =gUnk_03000F50 - ldrh r0, [r0, #0x18] - cmp r0, #0 - bne _080AD76A -_080AD6F4: - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _080AD71C @ =gUnk_03000F50 - strh r5, [r1, #0x18] - ldr r0, _080AD720 @ =0x00000C09 - strh r0, [r1, #0x14] - movs r0, #0x40 - str r0, [r6, #4] - movs r0, #6 - movs r1, #0x10 - bl sub_08050054 - movs r0, #0xf8 - bl sub_080A3268 - b _080AD76A - .align 2, 0 -_080AD718: .4byte gUnk_03000FD0 -_080AD71C: .4byte gUnk_03000F50 -_080AD720: .4byte 0x00000C09 -_080AD724: - ldr r1, _080AD754 @ =gUnk_03000FD0 - ldrb r5, [r1] - cmp r5, #0 - bne _080AD76A - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1, #4] - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #0x5a - strh r0, [r4, #8] - movs r0, #0xb4 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080AD76A - strh r5, [r1, #0x2e] - movs r0, #0x48 - strh r0, [r1, #0x32] - b _080AD76A - .align 2, 0 -_080AD754: .4byte gUnk_03000FD0 -_080AD758: - bl sub_080AD84C - cmp r0, #0 - beq _080AD76A - ldrb r0, [r4, #5] - adds r0, #1 - strb r0, [r4, #5] - movs r0, #0x3c - strh r0, [r4, #8] -_080AD76A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080AD76C -sub_080AD76C: @ 0x080AD76C - push {lr} - ldr r1, _080AD780 @ =gUnk_02000080 - ldrb r0, [r1, #6] - cmp r0, #1 - beq _080AD7B4 - cmp r0, #1 - bgt _080AD784 - cmp r0, #0 - beq _080AD78A - b _080AD80E - .align 2, 0 -_080AD780: .4byte gUnk_02000080 -_080AD784: - cmp r0, #2 - beq _080AD7DC - b _080AD80E -_080AD78A: - ldr r0, _080AD7AC @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD82A - movs r0, #1 - strb r0, [r1, #6] - ldr r2, _080AD7B0 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #3 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - movs r0, #0xf6 - bl sub_080A3268 - b _080AD82A - .align 2, 0 -_080AD7AC: .4byte gUnk_03000FD0 -_080AD7B0: .4byte gUnk_03000F50 -_080AD7B4: - ldr r0, [r1, #0x2c] - adds r0, #0x10 - str r0, [r1, #0x2c] - movs r2, #0x80 - lsls r2, r2, #1 - cmp r0, r2 - ble _080AD7D6 - str r2, [r1, #0x2c] - movs r0, #0x28 - strh r0, [r1, #8] - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - movs r0, #6 - movs r1, #0x10 - bl sub_08050054 -_080AD7D6: - bl sub_080AD670 - b _080AD82A -_080AD7DC: - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AD82A - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1, #8] - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - movs r0, #0xbd - movs r1, #0 - movs r2, #0 - bl CreateObject - movs r0, #6 - movs r1, #0x10 - bl sub_08050054 - movs r0, #0xf8 - bl sub_080A3268 - b _080AD82A -_080AD80E: - ldr r0, _080AD82C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD82A - bl sub_080AD84C - cmp r0, #0 - beq _080AD82A - ldr r0, _080AD830 @ =gUnk_02000080 - ldrb r1, [r0, #5] - adds r1, #1 - strb r1, [r0, #5] - movs r1, #0x3c - strh r1, [r0, #8] -_080AD82A: - pop {pc} - .align 2, 0 -_080AD82C: .4byte gUnk_03000FD0 -_080AD830: .4byte gUnk_02000080 - - thumb_func_start sub_080AD834 -sub_080AD834: @ 0x080AD834 - push {lr} - ldr r0, _080AD848 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD844 - movs r0, #1 - bl sub_08056010 -_080AD844: - pop {pc} - .align 2, 0 -_080AD848: .4byte gUnk_03000FD0 - - thumb_func_start sub_080AD84C -sub_080AD84C: @ 0x080AD84C - push {lr} - ldr r0, _080AD864 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080AD894 - ldr r0, _080AD868 @ =gUnk_02000010 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _080AD86C - movs r2, #0 - b _080AD874 - .align 2, 0 -_080AD864: .4byte gUnk_03000FD0 -_080AD868: .4byte gUnk_02000010 -_080AD86C: - ldr r0, _080AD888 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - movs r2, #9 - ands r2, r0 -_080AD874: - ldr r1, _080AD88C @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AD890 - movs r0, #1 - b _080AD89A - .align 2, 0 -_080AD888: .4byte gUnk_03000FF0 -_080AD88C: .4byte gUnk_02000080 -_080AD890: - cmp r2, #0 - bne _080AD898 -_080AD894: - movs r0, #0 - b _080AD89A -_080AD898: - movs r0, #2 -_080AD89A: - pop {pc} - - thumb_func_start sub_080AD89C -sub_080AD89C: @ 0x080AD89C - push {r4, lr} - ldr r4, _080AD8E4 @ =gUnk_02000080 - ldrb r1, [r4, #0x12] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _080AD8BC - ldrb r0, [r4, #0x10] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0x10] - adds r0, #5 - bl sub_0801D714 -_080AD8BC: - ldrb r1, [r4, #0x12] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - bne _080AD8E0 - ldrb r0, [r4, #0x11] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0x11] - ldr r1, _080AD8E8 @ =gUnk_03000F50 - ldr r2, _080AD8EC @ =gUnk_081320FC - ldrb r0, [r4, #0x11] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, #0x68 - strh r0, [r1] -_080AD8E0: - pop {r4, pc} - .align 2, 0 -_080AD8E4: .4byte gUnk_02000080 -_080AD8E8: .4byte gUnk_03000F50 -_080AD8EC: .4byte gUnk_081320FC diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s new file mode 100644 index 00000000..d568d5df --- /dev/null +++ b/asm/code_080A5574.s @@ -0,0 +1,16610 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080A5574 +sub_080A5574: @ 0x080A5574 + push {lr} + ldr r1, _080A558C @ =gUnk_08128BF8 + ldr r0, _080A5590 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A57F4 + pop {pc} + .align 2, 0 +_080A558C: .4byte gUnk_08128BF8 +_080A5590: .4byte gUnk_02000080 + + thumb_func_start sub_080A5594 +sub_080A5594: @ 0x080A5594 + push {r4, r5, r6, r7, lr} + ldr r4, _080A5620 @ =gUnk_02000080 + ldr r0, _080A5624 @ =gUnk_08128C00 + str r0, [r4, #0xc] + ldr r0, _080A5628 @ =gUnk_08128C04 + bl sub_080A70AC + movs r6, #6 + movs r5, #0x34 + adds r7, r4, #0 + adds r7, #0x10 +_080A55AA: + adds r0, r5, #0 + bl GetInventoryValue + cmp r0, #1 + bne _080A55EA + ldr r1, _080A562C @ =gUnk_080FD5B4 + lsls r0, r5, #3 + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #3 + bne _080A55C8 + ldrb r0, [r4, #0x13] + cmp r0, #0 + beq _080A55C8 + movs r1, #0x63 +_080A55C8: + cmp r1, #0x63 + beq _080A55EA + cmp r1, #1 + bne _080A55D8 + adds r1, r6, #0 + cmp r1, #7 + bhi _080A55D8 + adds r6, r1, #1 +_080A55D8: + adds r0, r1, r7 + strb r5, [r0] + lsls r1, r1, #3 + movs r0, #0xe0 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_080A5F48 +_080A55EA: + adds r5, #1 + cmp r5, #0x46 + bls _080A55AA + movs r0, #0x3d + bl GetInventoryValue + cmp r0, #0 + bne _080A564A + movs r5, #0 + movs r0, #0x67 + bl GetInventoryValue + cmp r0, #0 + beq _080A5646 + movs r4, #0 + ldr r1, _080A5630 @ =gUnk_02002B6B +_080A560A: + adds r0, r4, r1 + ldrb r0, [r0] + adds r5, r5, r0 + adds r4, #1 + cmp r4, #0x12 + bls _080A560A + cmp r5, #0x4f + ble _080A5634 + movs r5, #4 + b _080A5646 + .align 2, 0 +_080A5620: .4byte gUnk_02000080 +_080A5624: .4byte gUnk_08128C00 +_080A5628: .4byte gUnk_08128C04 +_080A562C: .4byte gUnk_080FD5B4 +_080A5630: .4byte gUnk_02002B6B +_080A5634: + cmp r5, #0x27 + ble _080A563C + movs r5, #3 + b _080A5646 +_080A563C: + cmp r5, #9 + ble _080A5644 + movs r5, #2 + b _080A5646 +_080A5644: + movs r5, #1 +_080A5646: + ldr r0, _080A5698 @ =gUnk_02000080 + strb r5, [r0, #0x10] +_080A564A: + ldr r0, _080A5698 @ =gUnk_02000080 + ldr r1, _080A569C @ =gUnk_02002A40 + adds r1, #0xa9 + ldrb r1, [r1] + adds r1, #1 + strb r1, [r0, #0x11] + movs r5, #0 + movs r4, #0x48 +_080A565A: + adds r0, r4, #0 + bl GetInventoryValue + cmp r0, #0 + beq _080A5666 + adds r5, #1 +_080A5666: + adds r4, #1 + cmp r4, #0x4f + bls _080A565A + ldr r4, _080A5698 @ =gUnk_02000080 + strb r5, [r4, #0x12] + movs r0, #0x3e + bl GetInventoryValue + cmp r0, #0 + bne _080A5688 + movs r0, #0x3f + bl GetInventoryValue + cmp r0, #0 + beq _080A5688 + movs r0, #0x3f + strb r0, [r4, #0x13] +_080A5688: + ldr r1, _080A5698 @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1, #0x14] + strb r0, [r1, #0x15] + bl sub_080A7114 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A5698: .4byte gUnk_02000080 +_080A569C: .4byte gUnk_02002A40 + + thumb_func_start sub_080A56A0 +sub_080A56A0: @ 0x080A56A0 + push {r4, lr} + bl sub_080A51F4 + cmp r0, #0 + bne _080A56AC + b _080A57F0 +_080A56AC: + ldr r2, _080A56D0 @ =gUnk_02000080 + ldr r0, _080A56D4 @ =gUnk_08128C00 + str r0, [r2, #0xc] + ldrb r0, [r2, #3] + lsls r0, r0, #3 + ldr r1, _080A56D8 @ =gUnk_08128C14 + adds r4, r0, r1 + movs r3, #0xff + ldr r0, _080A56DC @ =gUnk_03000FF0 + ldrh r1, [r0, #4] + cmp r1, #0x20 + beq _080A56F2 + cmp r1, #0x20 + bgt _080A56E0 + cmp r1, #0x10 + beq _080A56F6 + b _080A56F8 + .align 2, 0 +_080A56D0: .4byte gUnk_02000080 +_080A56D4: .4byte gUnk_08128C00 +_080A56D8: .4byte gUnk_08128C14 +_080A56DC: .4byte gUnk_03000FF0 +_080A56E0: + cmp r1, #0x40 + beq _080A56EA + cmp r1, #0x80 + beq _080A56EE + b _080A56F8 +_080A56EA: + ldrb r3, [r4] + b _080A56F8 +_080A56EE: + ldrb r3, [r4, #1] + b _080A56F8 +_080A56F2: + ldrb r3, [r4, #2] + b _080A56F8 +_080A56F6: + ldrb r3, [r4, #3] +_080A56F8: + cmp r3, #0xff + beq _080A570C + ldr r0, _080A5708 @ =gUnk_02000080 + strb r3, [r0, #3] + movs r0, #0x69 + bl sub_080A3268 + b _080A575E + .align 2, 0 +_080A5708: .4byte gUnk_02000080 +_080A570C: + ldrh r0, [r0, #2] + cmp r0, #1 + bne _080A575E + ldrb r3, [r2, #3] + movs r1, #0 + cmp r3, #2 + beq _080A572E + cmp r3, #2 + bhi _080A5724 + cmp r3, #0 + beq _080A572E + b _080A574E +_080A5724: + cmp r3, #4 + beq _080A5748 + cmp r3, #5 + beq _080A574C + b _080A574E +_080A572E: + ldr r0, _080A5744 @ =gUnk_02000080 + adds r0, #0x10 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A574E + movs r1, #8 + cmp r3, #0 + bne _080A574E + movs r1, #7 + b _080A5752 + .align 2, 0 +_080A5744: .4byte gUnk_02000080 +_080A5748: + movs r1, #9 + b _080A5752 +_080A574C: + movs r1, #0xa +_080A574E: + cmp r1, #0 + beq _080A575E +_080A5752: + adds r0, r1, #0 + bl sub_080A4E84 + movs r0, #0x6a + bl sub_080A3268 +_080A575E: + ldr r0, _080A5780 @ =gUnk_02000080 + ldrb r1, [r0, #3] + adds r2, r0, #0 + cmp r1, #0 + beq _080A576C + cmp r1, #2 + bne _080A5788 +_080A576C: + adds r0, r2, #0 + adds r0, #0x10 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A5788 + ldr r1, _080A5784 @ =gUnk_0200AF00 + movs r0, #0x10 + b _080A578C + .align 2, 0 +_080A5780: .4byte gUnk_02000080 +_080A5784: .4byte gUnk_0200AF00 +_080A5788: + ldr r1, _080A57AC @ =gUnk_0200AF00 + ldr r0, _080A57B0 @ =0x0000FFF0 +_080A578C: + strh r0, [r1, #0x1c] + ldrb r3, [r2, #3] + adds r0, r2, #0 + adds r0, #0x10 + adds r0, r3, r0 + ldrb r2, [r0] + cmp r2, #0 + beq _080A57E6 + cmp r3, #5 + bhi _080A57E6 + lsls r0, r3, #2 + ldr r1, _080A57B4 @ =_080A57B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A57AC: .4byte gUnk_0200AF00 +_080A57B0: .4byte 0x0000FFF0 +_080A57B4: .4byte _080A57B8 +_080A57B8: @ jump table + .4byte _080A57D0 @ case 0 + .4byte _080A57D8 @ case 1 + .4byte _080A57DC @ case 2 + .4byte _080A57E6 @ case 3 + .4byte _080A57E0 @ case 4 + .4byte _080A57E4 @ case 5 +_080A57D0: + cmp r2, #0x3d + beq _080A57E6 + movs r2, #0x67 + b _080A57E6 +_080A57D8: + movs r2, #0x63 + b _080A57E6 +_080A57DC: + movs r2, #0x70 + b _080A57E6 +_080A57E0: + movs r2, #0x74 + b _080A57E6 +_080A57E4: + movs r2, #0x73 +_080A57E6: + movs r0, #0x80 + lsls r0, r0, #3 + adds r0, r2, r0 + bl sub_080A6F6C +_080A57F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A57F4 +sub_080A57F4: @ 0x080A57F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r2, _080A5890 @ =gUnk_03001010 + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2, #4] + strh r1, [r2, #6] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + ldr r1, _080A5894 @ =gUnk_08128C94 + mov sb, r1 + cmp r0, #0 + bne _080A581A + ldr r3, _080A5898 @ =gUnk_08128C14 + mov sb, r3 +_080A581A: + ldr r0, _080A589C @ =gUnk_02000080 + ldrb r0, [r0, #3] + lsls r0, r0, #3 + mov r1, sb + adds r3, r1, r0 + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r2, #8] + ldrb r0, [r3, #6] + strh r0, [r2] + ldrb r0, [r3, #7] + strh r0, [r2, #2] + ldrb r2, [r3, #4] + ldr r0, _080A58A0 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r0, #0x10 + ands r0, r1 + adds r1, r2, #0 + adds r1, #0xa + cmp r0, #0 + bne _080A5846 + adds r1, #1 +_080A5846: + ldr r0, _080A58A4 @ =0x000001FB + bl sub_080ADA14 + movs r3, #0 + mov r8, r3 + mov r7, sb + adds r7, #5 +_080A5854: + ldr r0, _080A589C @ =gUnk_02000080 + adds r0, #0x10 + mov r1, r8 + adds r6, r1, r0 + ldrb r1, [r6] + cmp r1, #0 + beq _080A58E8 + mov r3, r8 + lsls r5, r3, #3 + mov r0, sb + adds r3, r0, r5 + ldr r4, _080A5890 @ =gUnk_03001010 + ldrb r0, [r7, #1] + strh r0, [r4] + ldrb r2, [r7, #2] + strh r2, [r4, #2] + movs r0, #0xe8 + lsls r0, r0, #8 + strh r0, [r4, #8] + cmp r1, #0x33 + bhi _080A58B8 + mov r1, r8 + cmp r1, #2 + bne _080A58A8 + ldrb r0, [r7] + adds r1, r0, #0 + adds r1, #0xa + ldr r0, _080A58A4 @ =0x000001FB + b _080A58E4 + .align 2, 0 +_080A5890: .4byte gUnk_03001010 +_080A5894: .4byte gUnk_08128C94 +_080A5898: .4byte gUnk_08128C14 +_080A589C: .4byte gUnk_02000080 +_080A58A0: .4byte gUnk_03001000 +_080A58A4: .4byte 0x000001FB +_080A58A8: + ldrb r0, [r6] + adds r0, #9 + ldrb r3, [r3, #5] + adds r1, r0, r3 + ldr r0, _080A58B4 @ =0x000001FB + b _080A58E4 + .align 2, 0 +_080A58B4: .4byte 0x000001FB +_080A58B8: + ldr r3, _080A58CC @ =0x0000EB80 + adds r0, r5, r3 + strh r0, [r4, #8] + cmp r1, #0x3d + beq _080A58D0 + cmp r1, #0x3e + bne _080A58D6 + adds r0, r2, #0 + adds r0, #8 + b _080A58D4 + .align 2, 0 +_080A58CC: .4byte 0x0000EB80 +_080A58D0: + adds r0, r2, #0 + adds r0, #0xd +_080A58D4: + strh r0, [r4, #2] +_080A58D6: + ldr r0, _080A5980 @ =gUnk_080FDFD8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + ldrb r1, [r0] + movs r0, #0xa1 + lsls r0, r0, #1 +_080A58E4: + bl sub_080ADA14 +_080A58E8: + adds r7, #8 + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #0xf + bls _080A5854 + ldr r4, _080A5984 @ =gUnk_02000080 + ldrb r0, [r4, #0x12] + cmp r0, #0 + beq _080A5920 + ldr r2, _080A5988 @ =gUnk_03001010 + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r2, #8] + mov r3, sb + adds r3, #0x10 + ldrb r0, [r3, #6] + adds r0, #9 + strh r0, [r2] + ldrb r0, [r3, #7] + adds r0, #7 + strh r0, [r2, #2] + movs r0, #0 + movs r1, #1 + bl sub_080ADA14 +_080A5920: + ldrb r0, [r4, #0x13] + cmp r0, #0x3f + bne _080A5976 + mov r3, sb + adds r3, #0x18 + ldr r1, _080A5988 @ =gUnk_03001010 + ldrb r0, [r3, #6] + adds r0, #8 + strh r0, [r1] + ldrb r0, [r3, #7] + adds r0, #8 + strh r0, [r1, #2] + ldr r0, _080A598C @ =gUnk_02002A40 + adds r0, #0xc2 + ldrh r4, [r0] + movs r0, #0 + mov r8, r0 + adds r5, r1, #0 +_080A5944: + adds r0, r4, #0 + movs r1, #0xa + bl __modsi3 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r0, r1 + strh r0, [r5, #8] + movs r0, #0 + movs r1, #1 + bl sub_080ADA14 + adds r0, r4, #0 + movs r1, #0xa + bl __divsi3 + adds r4, r0, #0 + ldrh r0, [r5] + subs r0, #8 + strh r0, [r5] + movs r3, #1 + add r8, r3 + mov r0, r8 + cmp r0, #2 + bls _080A5944 +_080A5976: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A5980: .4byte gUnk_080FDFD8 +_080A5984: .4byte gUnk_02000080 +_080A5988: .4byte gUnk_03001010 +_080A598C: .4byte gUnk_02002A40 + + thumb_func_start sub_080A5990 +sub_080A5990: @ 0x080A5990 + push {lr} + ldr r1, _080A59A4 @ =gUnk_08128D14 + ldr r0, _080A59A8 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A59A4: .4byte gUnk_08128D14 +_080A59A8: .4byte gUnk_02000080 + + thumb_func_start sub_080A59AC +sub_080A59AC: @ 0x080A59AC + push {lr} + ldr r1, _080A59C4 @ =gUnk_02000080 + movs r0, #0 + strb r0, [r1, #3] + movs r1, #0 + bl sub_08052418 + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080A59C4: .4byte gUnk_02000080 + + thumb_func_start sub_080A59C8 +sub_080A59C8: @ 0x080A59C8 + push {lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A5A52 + ldr r1, _080A59EC @ =gUnk_02000080 + ldrb r2, [r1, #3] + movs r3, #0 + ldr r0, _080A59F0 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #2 + beq _080A5A02 + cmp r0, #2 + bgt _080A59F4 + cmp r0, #1 + beq _080A5A0A + b _080A5A0C + .align 2, 0 +_080A59EC: .4byte gUnk_02000080 +_080A59F0: .4byte gUnk_03000FF0 +_080A59F4: + cmp r0, #0x40 + beq _080A59FE + cmp r0, #0x80 + beq _080A5A06 + b _080A5A0C +_080A59FE: + movs r2, #0 + b _080A5A0C +_080A5A02: + cmp r2, #0 + bne _080A5A10 +_080A5A06: + movs r2, #1 + b _080A5A0C +_080A5A0A: + movs r3, #1 +_080A5A0C: + cmp r3, #0 + beq _080A5A3C +_080A5A10: + movs r0, #0xff + strh r0, [r1, #8] + cmp r2, #0 + bne _080A5A2E + movs r0, #8 + movs r1, #0 + bl sub_08050318 + movs r0, #2 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 + b _080A5A52 +_080A5A2E: + movs r0, #3 + bl sub_080A7114 + movs r0, #0x6c + bl sub_080A3268 + b _080A5A52 +_080A5A3C: + ldrb r0, [r1, #3] + cmp r0, r2 + beq _080A5A52 + strb r2, [r1, #3] + movs r0, #0 + adds r1, r2, #0 + bl sub_08052418 + movs r0, #0x69 + bl sub_080A3268 +_080A5A52: + pop {pc} + + thumb_func_start sub_080A5A54 +sub_080A5A54: @ 0x080A5A54 + push {lr} + movs r0, #0 + bl sub_0807CDA4 + adds r1, r0, #0 + cmp r1, #0 + beq _080A5A8A + cmp r1, #0 + bgt _080A5A70 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080A5A76 + b _080A5A8A +_080A5A70: + cmp r1, #1 + beq _080A5A84 + b _080A5A8A +_080A5A76: + movs r0, #9 + movs r1, #0 + bl sub_08050318 + ldr r1, _080A5A8C @ =gUnk_02000080 + movs r0, #0x3c + strh r0, [r1, #8] +_080A5A84: + movs r0, #3 + bl sub_080A7114 +_080A5A8A: + pop {pc} + .align 2, 0 +_080A5A8C: .4byte gUnk_02000080 + + thumb_func_start sub_080A5A90 +sub_080A5A90: @ 0x080A5A90 + push {lr} + ldr r2, _080A5AA4 @ =gUnk_02000080 + ldrh r0, [r2, #8] + cmp r0, #0 + beq _080A5AA8 + cmp r0, #0xff + beq _080A5AC0 + subs r0, #1 + strh r0, [r2, #8] + b _080A5AD2 + .align 2, 0 +_080A5AA4: .4byte gUnk_02000080 +_080A5AA8: + ldr r0, _080A5ABC @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0xb + ands r0, r1 + cmp r0, #0 + beq _080A5AD2 + movs r0, #0xff + strh r0, [r2, #8] + b _080A5AD2 + .align 2, 0 +_080A5ABC: .4byte gUnk_03000FF0 +_080A5AC0: + ldr r0, _080A5AD4 @ =gUnk_02034490 + ldrb r0, [r0, #1] + movs r1, #1 + cmp r0, #0xa + bne _080A5ACC + movs r1, #2 +_080A5ACC: + adds r0, r1, #0 + bl sub_080A4E84 +_080A5AD2: + pop {pc} + .align 2, 0 +_080A5AD4: .4byte gUnk_02034490 + + thumb_func_start sub_080A5AD8 +sub_080A5AD8: @ 0x080A5AD8 + push {lr} + ldr r1, _080A5AEC @ =gUnk_08128D24 + ldr r0, _080A5AF0 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A5AEC: .4byte gUnk_08128D24 +_080A5AF0: .4byte gUnk_02000080 + + thumb_func_start sub_080A5AF4 +sub_080A5AF4: @ 0x080A5AF4 + push {r4, lr} + ldr r0, _080A5B18 @ =gUnk_02000080 + movs r4, #0 + strb r4, [r0, #3] + movs r0, #2 + movs r1, #0 + bl sub_08052418 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _080A5B24 + ldr r1, _080A5B1C @ =gLCDControls + ldr r0, _080A5B20 @ =0x0000FFFC + strh r0, [r1, #0x18] + b _080A5B28 + .align 2, 0 +_080A5B18: .4byte gUnk_02000080 +_080A5B1C: .4byte gLCDControls +_080A5B20: .4byte 0x0000FFFC +_080A5B24: + ldr r0, _080A5B30 @ =gLCDControls + strh r4, [r0, #0x18] +_080A5B28: + movs r0, #1 + bl sub_080A7114 + pop {r4, pc} + .align 2, 0 +_080A5B30: .4byte gLCDControls + + thumb_func_start sub_080A5B34 +sub_080A5B34: @ 0x080A5B34 + push {r4, r5, r6, lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A5BB6 + ldr r1, _080A5B58 @ =gUnk_02000080 + ldrb r4, [r1, #3] + movs r5, #0 + ldr r0, _080A5B5C @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + adds r6, r1, #0 + cmp r0, #2 + beq _080A5B6C + cmp r0, #2 + bgt _080A5B60 + cmp r0, #1 + beq _080A5B74 + b _080A5B76 + .align 2, 0 +_080A5B58: .4byte gUnk_02000080 +_080A5B5C: .4byte gUnk_03000FF0 +_080A5B60: + cmp r0, #0x10 + beq _080A5B70 + cmp r0, #0x20 + bne _080A5B76 + movs r4, #0 + b _080A5B76 +_080A5B6C: + cmp r4, #0 + bne _080A5B74 +_080A5B70: + movs r4, #1 + b _080A5B76 +_080A5B74: + movs r5, #1 +_080A5B76: + adds r1, r6, #0 + ldrb r0, [r1, #3] + cmp r0, r4 + beq _080A5B8E + strb r4, [r1, #3] + movs r0, #2 + adds r1, r4, #0 + bl sub_08052418 + movs r0, #0x69 + bl sub_080A3268 +_080A5B8E: + cmp r5, #0 + beq _080A5BB6 + cmp r4, #0 + bne _080A5BAA + movs r0, #7 + movs r1, #0x20 + bl sub_08050054 + movs r0, #0x3c + strh r0, [r6, #8] + movs r0, #2 + bl sub_080A7114 + b _080A5BB6 +_080A5BAA: + movs r0, #0x6c + bl sub_080A3268 + movs r0, #2 + bl sub_080A4E84 +_080A5BB6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080A5BB8 +sub_080A5BB8: @ 0x080A5BB8 + push {lr} + ldr r0, _080A5BE4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A5BE2 + bl sub_08050384 + ldr r1, _080A5BE8 @ =gUnk_03001000 + ldrb r0, [r1, #1] + movs r0, #1 + strb r0, [r1, #1] + movs r0, #6 + movs r1, #8 + bl sub_08050054 + movs r0, #2 + bl sub_080A4E84 + ldr r1, _080A5BEC @ =gUnk_02034490 + movs r0, #0x10 + strb r0, [r1, #0x16] +_080A5BE2: + pop {pc} + .align 2, 0 +_080A5BE4: .4byte gUnk_03000FD0 +_080A5BE8: .4byte gUnk_03001000 +_080A5BEC: .4byte gUnk_02034490 + + thumb_func_start sub_080A5BF0 +sub_080A5BF0: @ 0x080A5BF0 + push {r4, r5, lr} + ldr r1, _080A5C30 @ =gUnk_08128D30 + ldr r0, _080A5C34 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A5D1C + ldr r0, _080A5C38 @ =gUnk_03001000 + ldrh r0, [r0, #0xc] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080A5C2E + ldr r4, _080A5C3C @ =gUnk_02017830 + ldrh r5, [r4] + adds r0, r4, #2 + adds r1, r4, #0 + movs r2, #0xe + bl sub_0801D66C + strh r5, [r4, #0xe] + ldr r2, _080A5C40 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #5 + orrs r0, r1 + str r0, [r2] +_080A5C2E: + pop {r4, r5, pc} + .align 2, 0 +_080A5C30: .4byte gUnk_08128D30 +_080A5C34: .4byte gUnk_02000080 +_080A5C38: .4byte gUnk_03001000 +_080A5C3C: .4byte gUnk_02017830 +_080A5C40: .4byte gUnk_0200B644 + + thumb_func_start sub_080A5C44 +sub_080A5C44: @ 0x080A5C44 + push {r4, lr} + ldr r1, _080A5C88 @ =gUnk_02000080 + ldr r0, _080A5C8C @ =gUnk_08128D38 + str r0, [r1, #0xc] + ldrb r0, [r1, #3] + bl sub_080A5CFC + movs r0, #0x81 + bl sub_0801D7EC + ldr r4, _080A5C90 @ =gUnk_02033A90 + ldrb r0, [r4, #3] + movs r1, #1 + bl sub_080A6FB4 + movs r0, #1 + bl sub_080A7114 + ldrb r1, [r4, #3] + lsls r1, r1, #1 + ldr r0, _080A5C94 @ =gUnk_08128D43 + adds r1, r1, r0 + ldr r2, _080A5C98 @ =gLCDControls + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x16] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x18] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {r4, pc} + .align 2, 0 +_080A5C88: .4byte gUnk_02000080 +_080A5C8C: .4byte gUnk_08128D38 +_080A5C90: .4byte gUnk_02033A90 +_080A5C94: .4byte gUnk_08128D43 +_080A5C98: .4byte gLCDControls + + thumb_func_start sub_080A5C9C +sub_080A5C9C: @ 0x080A5C9C + push {lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A5CFA + ldr r0, _080A5CC4 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + ldr r1, _080A5CC8 @ =gUnk_080C9C6C + adds r3, r0, r1 + ldr r1, _080A5CCC @ =gUnk_02000080 + ldrb r2, [r1, #3] + ldr r0, _080A5CD0 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #0x40 + beq _080A5CD4 + cmp r0, #0x80 + beq _080A5CDC + b _080A5CE6 + .align 2, 0 +_080A5CC4: .4byte gUnk_02033A90 +_080A5CC8: .4byte gUnk_080C9C6C +_080A5CCC: .4byte gUnk_02000080 +_080A5CD0: .4byte gUnk_03000FF0 +_080A5CD4: + cmp r2, #0 + ble _080A5CE6 + subs r2, #1 + b _080A5CE6 +_080A5CDC: + ldrb r0, [r3] + subs r0, #1 + cmp r0, r2 + ble _080A5CE6 + adds r2, #1 +_080A5CE6: + ldrb r0, [r1, #3] + cmp r0, r2 + beq _080A5CFA + strb r2, [r1, #3] + adds r0, r2, #0 + bl sub_080A5CFC + movs r0, #0x69 + bl sub_080A3268 +_080A5CFA: + pop {pc} + + thumb_func_start sub_080A5CFC +sub_080A5CFC: @ 0x080A5CFC + push {r4, lr} + adds r4, r0, #0 + bl sub_0801DDA0 + bl sub_0801DD88 + ldr r1, _080A5D18 @ =gUnk_02019EE0 + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r4, #0 + bl sub_0801DBA0 + pop {r4, pc} + .align 2, 0 +_080A5D18: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A5D1C +sub_080A5D1C: @ 0x080A5D1C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080A5E98 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + ldr r1, _080A5E9C @ =gUnk_080C9C6C + adds r7, r0, r1 + ldr r1, _080A5EA0 @ =gUnk_08128D3C + ldrb r0, [r7] + adds r0, r0, r1 + ldrb r6, [r0] + bl sub_0801DB94 + mov r8, r0 + ldr r5, _080A5EA4 @ =gUnk_03001010 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r5, #4] + movs r0, #0 + strh r0, [r5, #6] + strh r0, [r5, #8] + movs r0, #0x34 + strh r0, [r5] + ldr r0, _080A5EA8 @ =gUnk_02000080 + ldrb r1, [r0, #3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r6, r0 + strh r0, [r5, #2] + ldr r1, _080A5EAC @ =gUnk_03001000 + mov sl, r1 + ldrh r1, [r1, #0xc] + movs r0, #0x10 + ands r0, r1 + movs r1, #0x74 + cmp r0, #0 + bne _080A5D70 + movs r1, #0x75 +_080A5D70: + ldr r0, _080A5EB0 @ =0x000001FB + bl sub_080ADA14 + movs r0, #0x20 + mov sb, r0 + mov r1, sb + strh r1, [r5] + mov r1, r8 + lsls r0, r1, #1 + add r0, r8 + lsls r0, r0, #2 + adds r0, r6, r0 + strh r0, [r5, #2] + mov r0, sl + ldrh r1, [r0, #0xc] + mov r0, sb + ands r0, r1 + movs r1, #0x79 + cmp r0, #0 + beq _080A5D9A + movs r1, #0x78 +_080A5D9A: + ldr r0, _080A5EB0 @ =0x000001FB + bl sub_080ADA14 + movs r0, #0x7e + strh r0, [r5, #2] + movs r0, #0x87 + lsls r0, r0, #7 + strh r0, [r5, #8] + bl sub_080527CC + cmp r0, #0 + beq _080A5DCC + movs r0, #0x18 + strh r0, [r5] + ldr r0, _080A5EB4 @ =gUnk_080FDFD8 + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r4, [r0] + movs r0, #0xa2 + lsls r0, r0, #1 + adds r1, r4, #0 + bl sub_080ADA14 +_080A5DCC: + bl sub_08052764 + cmp r0, #0 + beq _080A5DEE + movs r0, #0x2e + strh r0, [r5] + ldr r0, _080A5EB4 @ =gUnk_080FDFD8 + movs r1, #0xa4 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r4, [r0] + movs r0, #0xa2 + lsls r0, r0, #1 + adds r1, r4, #0 + bl sub_080ADA14 +_080A5DEE: + bl sub_0805279C + cmp r0, #0 + beq _080A5E48 + movs r0, #0x45 + strh r0, [r5] + movs r0, #0xe0 + lsls r0, r0, #2 + strh r0, [r5, #8] + ldr r1, _080A5EB4 @ =gUnk_080FDFD8 + movs r0, #0xa2 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r1, [r1] + ldrb r4, [r1] + adds r1, r4, #0 + bl sub_080ADA14 + bl sub_080A5F24 + cmp r0, #0 + beq _080A5E48 + movs r0, #0 + strh r0, [r5, #8] + movs r0, #0x46 + strh r0, [r5] + ldrb r1, [r7, #1] + ldrb r0, [r7, #2] + subs r1, r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r6, r0 + strh r0, [r5, #2] + mov r0, sl + ldrh r1, [r0, #0xc] + mov r0, sb + ands r0, r1 + movs r1, #0x7b + cmp r0, #0 + beq _080A5E42 + movs r1, #0x7a +_080A5E42: + ldr r0, _080A5EB0 @ =0x000001FB + bl sub_080ADA14 +_080A5E48: + ldr r1, _080A5EA4 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r1, #8] + movs r0, #0x34 + strh r0, [r1] + strh r6, [r1, #2] + ldrb r0, [r7, #1] + adds r4, r0, #0 + adds r4, #0x82 + movs r5, #0 + ldrb r0, [r7] + cmp r5, r0 + bhs _080A5E7C + adds r6, r1, #0 +_080A5E64: + ldr r0, _080A5EB0 @ =0x000001FB + adds r1, r4, #0 + bl sub_080ADA14 + subs r4, #1 + ldrh r0, [r6, #2] + adds r0, #0xc + strh r0, [r6, #2] + adds r5, #1 + ldrb r1, [r7] + cmp r5, r1 + blo _080A5E64 +_080A5E7C: + ldr r5, _080A5EB8 @ =gUnk_02019EE0 + ldrb r0, [r5] + cmp r0, #0 + beq _080A5F14 + ldr r7, _080A5EA4 @ =gUnk_03001010 + ldr r6, _080A5EBC @ =gLCDControls +_080A5E88: + ldrb r0, [r5] + cmp r0, #2 + beq _080A5EDC + cmp r0, #2 + bgt _080A5EC0 + cmp r0, #1 + beq _080A5ECA + b _080A5EEE + .align 2, 0 +_080A5E98: .4byte gUnk_02033A90 +_080A5E9C: .4byte gUnk_080C9C6C +_080A5EA0: .4byte gUnk_08128D3C +_080A5EA4: .4byte gUnk_03001010 +_080A5EA8: .4byte gUnk_02000080 +_080A5EAC: .4byte gUnk_03001000 +_080A5EB0: .4byte 0x000001FB +_080A5EB4: .4byte gUnk_080FDFD8 +_080A5EB8: .4byte gUnk_02019EE0 +_080A5EBC: .4byte gLCDControls +_080A5EC0: + cmp r0, #3 + beq _080A5EE0 + cmp r0, #4 + beq _080A5EE4 + b _080A5EEE +_080A5ECA: + movs r4, #0x7d + ldr r0, _080A5ED8 @ =gUnk_02000080 + ldrb r0, [r0, #3] + cmp r8, r0 + beq _080A5EF0 + movs r4, #0x7e + b _080A5EF0 + .align 2, 0 +_080A5ED8: .4byte gUnk_02000080 +_080A5EDC: + movs r4, #0x80 + b _080A5EF0 +_080A5EE0: + movs r4, #0x81 + b _080A5EF0 +_080A5EE4: + bl sub_080A5F24 + movs r4, #0x7f + cmp r0, #0 + bne _080A5EF0 +_080A5EEE: + movs r4, #0xff +_080A5EF0: + ldrb r0, [r5, #1] + adds r0, #0x50 + ldrh r1, [r6, #0x16] + subs r0, r0, r1 + strh r0, [r7] + ldrb r0, [r5, #2] + adds r0, #0x10 + ldrh r1, [r6, #0x18] + subs r0, r0, r1 + strh r0, [r7, #2] + ldr r0, _080A5F20 @ =0x000001FB + adds r1, r4, #0 + bl sub_080ADA14 + adds r5, #3 + ldrb r0, [r5] + cmp r0, #0 + bne _080A5E88 +_080A5F14: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A5F20: .4byte 0x000001FB + + thumb_func_start sub_080A5F24 +sub_080A5F24: @ 0x080A5F24 + push {r4, lr} + movs r4, #1 + ldr r0, _080A5F44 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + cmp r0, #6 + bne _080A5F40 + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x7b + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _080A5F40 + movs r4, #0 +_080A5F40: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_080A5F44: .4byte gUnk_02033A90 + + thumb_func_start sub_080A5F48 +sub_080A5F48: @ 0x080A5F48 + push {r4, r5, lr} + adds r4, r0, #0 + cmp r4, #0x1f + bhi _080A5F5C + cmp r4, #0x1c + blo _080A5F5C + ldr r0, _080A5F9C @ =gUnk_02002A40 + adds r0, r0, r4 + adds r0, #0x9a + ldrb r4, [r0] +_080A5F5C: + lsls r0, r1, #5 + ldr r1, _080A5FA0 @ =0x06010000 + adds r5, r0, r1 + ldr r1, _080A5FA4 @ =gUnk_080FDFD8 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r1, [r0] + ldr r3, _080A5FA8 @ =gUnk_08003DD4 + lsls r1, r1, #2 + ldr r0, [r3, #4] + adds r0, r0, r1 + ldr r2, _080A5FAC @ =0x040000D4 + ldrh r1, [r0, #2] + lsls r1, r1, #5 + ldr r0, [r3, #8] + adds r0, r0, r1 + str r0, [r2] + str r5, [r2, #4] + ldr r0, _080A5FB0 @ =0x84000040 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, #7 + blo _080A5FBE + cmp r4, #8 + bhi _080A5FB4 + ldr r0, _080A5F9C @ =gUnk_02002A40 + adds r0, #0xac + b _080A5FBC + .align 2, 0 +_080A5F9C: .4byte gUnk_02002A40 +_080A5FA0: .4byte 0x06010000 +_080A5FA4: .4byte gUnk_080FDFD8 +_080A5FA8: .4byte gUnk_08003DD4 +_080A5FAC: .4byte 0x040000D4 +_080A5FB0: .4byte 0x84000040 +_080A5FB4: + cmp r4, #0xa + bhi _080A5FBE + ldr r0, _080A5FF8 @ =gUnk_02002A40 + adds r0, #0xad +_080A5FBC: + ldrb r0, [r0] +_080A5FBE: + cmp r0, #0 + blt _080A5FF6 + movs r1, #0xa + bl Div + adds r4, r1, #0 + cmp r0, #9 + ble _080A5FD0 + movs r0, #9 +_080A5FD0: + ldr r1, _080A5FFC @ =0x040000D4 + lsls r0, r0, #5 + ldr r2, _080A6000 @ =gUnk_085C4620 + adds r0, r0, r2 + str r0, [r1] + str r5, [r1, #4] + ldr r3, _080A6004 @ =0x84000008 + str r3, [r1, #8] + ldr r0, [r1, #8] + adds r0, r4, #0 + adds r0, #0xa + lsls r0, r0, #5 + adds r0, r0, r2 + str r0, [r1] + adds r0, r5, #0 + adds r0, #0x20 + str r0, [r1, #4] + str r3, [r1, #8] + ldr r0, [r1, #8] +_080A5FF6: + pop {r4, r5, pc} + .align 2, 0 +_080A5FF8: .4byte gUnk_02002A40 +_080A5FFC: .4byte 0x040000D4 +_080A6000: .4byte gUnk_085C4620 +_080A6004: .4byte 0x84000008 + + thumb_func_start sub_080A6008 +sub_080A6008: @ 0x080A6008 + push {lr} + ldr r1, _080A601C @ =gUnk_08128D58 + ldr r0, _080A6020 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A601C: .4byte gUnk_08128D58 +_080A6020: .4byte gUnk_02000080 + + thumb_func_start sub_080A6024 +sub_080A6024: @ 0x080A6024 + push {lr} + ldr r0, _080A6040 @ =gUnk_08128D60 + bl sub_080A70AC + movs r0, #0 + bl sub_0801E738 + bl sub_080A4398 + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080A6040: .4byte gUnk_08128D60 + + thumb_func_start sub_080A6044 +sub_080A6044: @ 0x080A6044 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + bl sub_080A51F4 + cmp r0, #0 + beq _080A60C2 + ldr r0, _080A60CC @ =gUnk_02000080 + ldr r1, _080A60D0 @ =gUnk_08128D51 + str r1, [r0, #0xc] + ldr r1, _080A60D4 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #6] + movs r5, #0 + movs r4, #0 + ldr r0, _080A60D8 @ =gUnk_02002A40 + movs r2, #0x8c + lsls r2, r2, #1 + adds r3, r0, r2 + ldrb r2, [r3] + cmp r2, #0 + beq _080A60C2 + adds r6, r1, #0 + movs r1, #0 + mov sb, r1 + adds r7, r0, #0 + mov r8, r3 +_080A607E: + movs r1, #3 + ands r1, r5 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, #0x2b + strh r0, [r6] + lsrs r1, r5, #2 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, #0x34 + strh r0, [r6, #2] + ldr r3, _080A60DC @ =0x0000012B + adds r0, r7, r3 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, _080A60CC @ =gUnk_02000080 + mov r3, sb + strb r3, [r0, #1] + adds r0, r2, #0 + bl sub_080A42E0 + adds r5, #1 + cmp r5, #0xa + bhi _080A60C2 + adds r4, #1 + cmp r4, #0x11 + bhi _080A60C2 + mov r1, r8 + adds r0, r4, r1 + ldrb r2, [r0] + cmp r2, #0 + bne _080A607E +_080A60C2: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A60CC: .4byte gUnk_02000080 +_080A60D0: .4byte gUnk_08128D51 +_080A60D4: .4byte gUnk_03001010 +_080A60D8: .4byte gUnk_02002A40 +_080A60DC: .4byte 0x0000012B + + thumb_func_start sub_080A60E0 +sub_080A60E0: @ 0x080A60E0 + push {r4, lr} + ldr r1, _080A6100 @ =gUnk_08128DB0 + ldr r4, _080A6104 @ =gUnk_02000080 + ldrb r0, [r4, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A617C + ldrb r0, [r4, #3] + bl sub_080A7040 + pop {r4, pc} + .align 2, 0 +_080A6100: .4byte gUnk_08128DB0 +_080A6104: .4byte gUnk_02000080 + + thumb_func_start sub_080A6108 +sub_080A6108: @ 0x080A6108 + push {lr} + ldr r0, _080A6120 @ =gUnk_02000080 + ldr r1, _080A6124 @ =gUnk_08128DB8 + str r1, [r0, #0xc] + ldr r0, _080A6128 @ =gUnk_08128DBC + bl sub_080A70AC + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080A6120: .4byte gUnk_02000080 +_080A6124: .4byte gUnk_08128DB8 +_080A6128: .4byte gUnk_08128DBC + + thumb_func_start sub_080A612C +sub_080A612C: @ 0x080A612C + push {lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A6178 + ldr r1, _080A614C @ =gUnk_02000080 + ldrb r2, [r1, #3] + ldr r0, _080A6150 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #0x10 + beq _080A6154 + cmp r0, #0x20 + bne _080A6156 + subs r2, #1 + b _080A6156 + .align 2, 0 +_080A614C: .4byte gUnk_02000080 +_080A6150: .4byte gUnk_03000FF0 +_080A6154: + adds r2, #1 +_080A6156: + adds r3, r2, #0 + adds r3, #8 + adds r0, r3, #0 + cmp r3, #0 + bge _080A6164 + adds r0, r2, #0 + adds r0, #0xf +_080A6164: + asrs r2, r0, #3 + lsls r0, r2, #3 + subs r2, r3, r0 + ldrb r0, [r1, #3] + cmp r0, r2 + beq _080A6178 + strb r2, [r1, #3] + movs r0, #0x69 + bl sub_080A3268 +_080A6178: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A617C +sub_080A617C: @ 0x080A617C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r6, _080A6260 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r6, #4] + strh r0, [r6, #6] + movs r7, #0xc0 + lsls r7, r7, #4 + strh r7, [r6, #8] + movs r0, #0x2f + mov r8, r0 + mov r2, r8 + strh r2, [r6, #2] + ldr r4, _080A6264 @ =gUnk_02000080 + ldrb r1, [r4, #3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + subs r0, r0, r1 + adds r0, #0x1a + strh r0, [r6] + ldr r0, _080A6268 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r0, #0x20 + ands r0, r1 + movs r1, #9 + cmp r0, #0 + beq _080A61B8 + movs r1, #8 +_080A61B8: + movs r5, #0xfe + lsls r5, r5, #1 + adds r0, r5, #0 + bl sub_080ADA14 + ldrb r0, [r4, #3] + lsls r0, r0, #3 + ldr r1, _080A626C @ =gUnk_08128D70 + adds r4, r0, r1 + ldrb r0, [r4] + bl GetInventoryValue + cmp r0, #0 + beq _080A621C + strh r7, [r6, #8] + movs r0, #0xcc + strh r0, [r6] + movs r0, #0x88 + strh r0, [r6, #2] + adds r0, r5, #0 + movs r1, #0xb + bl sub_080ADA14 + movs r0, #0x30 + strh r0, [r6] + movs r0, #0x6c + strh r0, [r6, #2] + ldrb r0, [r4, #1] + lsls r0, r0, #0xc + movs r2, #0xd8 + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r6, #8] + ldrb r1, [r4, #2] + adds r0, r5, #0 + bl sub_080ADA14 + ldrb r0, [r4, #1] + lsls r0, r0, #0xc + orrs r0, r7 + strh r0, [r6, #8] + movs r0, #0x78 + strh r0, [r6] + movs r0, #0x68 + strh r0, [r6, #2] + adds r0, r5, #0 + movs r1, #0xc + bl sub_080ADA14 +_080A621C: + mov r0, r8 + strh r0, [r6, #2] + movs r5, #0 + adds r7, r6, #0 + movs r6, #0x18 +_080A6226: + lsls r1, r5, #3 + ldr r0, _080A626C @ =gUnk_08128D70 + adds r4, r1, r0 + ldrb r0, [r4] + bl GetInventoryValue + cmp r0, #0 + beq _080A6250 + ldrb r0, [r4, #1] + lsls r0, r0, #0xc + movs r2, #0xc0 + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r7, #8] + strh r6, [r7] + movs r0, #0xfe + lsls r0, r0, #1 + movs r1, #0xa + bl sub_080ADA14 +_080A6250: + adds r6, #0x1b + adds r5, #1 + cmp r5, #7 + bls _080A6226 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A6260: .4byte gUnk_03001010 +_080A6264: .4byte gUnk_02000080 +_080A6268: .4byte gUnk_03001000 +_080A626C: .4byte gUnk_08128D70 + + thumb_func_start sub_080A6270 +sub_080A6270: @ 0x080A6270 + push {lr} + ldr r1, _080A6288 @ =gUnk_08128DCC + ldr r0, _080A628C @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A6378 + pop {pc} + .align 2, 0 +_080A6288: .4byte gUnk_08128DCC +_080A628C: .4byte gUnk_02000080 + + thumb_func_start sub_080A6290 +sub_080A6290: @ 0x080A6290 + push {r4, lr} + ldr r0, _080A62C4 @ =gUnk_08128DD8 + bl sub_080A70AC + ldr r4, _080A62C8 @ =gUnk_02000080 + ldr r0, _080A62CC @ =gUnk_08128DD4 + str r0, [r4, #0xc] + movs r0, #0x81 + bl sub_0801D7EC + ldr r1, _080A62D0 @ =gLCDControls + ldr r0, _080A62D4 @ =0x0000FFFC + strh r0, [r1, #0x18] + strh r0, [r1, #0x24] + ldr r2, _080A62D8 @ =gUnk_02002A40 + ldr r0, [r2, #0x40] + ldr r1, _080A62DC @ =0x00010780 + orrs r0, r1 + str r0, [r2, #0x40] + bl sub_080A6F40 + strh r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #5] + pop {r4, pc} + .align 2, 0 +_080A62C4: .4byte gUnk_08128DD8 +_080A62C8: .4byte gUnk_02000080 +_080A62CC: .4byte gUnk_08128DD4 +_080A62D0: .4byte gLCDControls +_080A62D4: .4byte 0x0000FFFC +_080A62D8: .4byte gUnk_02002A40 +_080A62DC: .4byte 0x00010780 + + thumb_func_start sub_080A62E0 +sub_080A62E0: @ 0x080A62E0 + push {r4, lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A6372 + ldr r0, _080A6310 @ =gUnk_02000080 + ldrb r3, [r0, #3] + lsls r1, r3, #3 + ldr r0, _080A6314 @ =gUnk_08128DE8 + adds r1, r1, r0 + movs r4, #1 + rsbs r4, r4, #0 + ldr r0, _080A6318 @ =gUnk_03000FF0 + ldrh r2, [r0, #2] + cmp r2, #0x20 + beq _080A634E + cmp r2, #0x20 + bgt _080A631C + cmp r2, #1 + beq _080A6326 + cmp r2, #0x10 + beq _080A6354 + b _080A635A + .align 2, 0 +_080A6310: .4byte gUnk_02000080 +_080A6314: .4byte gUnk_08128DE8 +_080A6318: .4byte gUnk_03000FF0 +_080A631C: + cmp r2, #0x40 + beq _080A6344 + cmp r2, #0x80 + beq _080A634A + b _080A635A +_080A6326: + ldr r0, _080A6340 @ =gUnk_02002A40 + lsls r2, r3 + ldr r0, [r0, #0x40] + ands r0, r2 + cmp r0, #0 + beq _080A635A + movs r0, #0x6a + bl sub_080A3268 + movs r0, #6 + bl sub_080A4E84 + b _080A635A + .align 2, 0 +_080A6340: .4byte gUnk_02002A40 +_080A6344: + ldrb r0, [r1] + lsls r0, r0, #0x1b + b _080A6358 +_080A634A: + ldrh r0, [r1] + b _080A6356 +_080A634E: + ldrb r0, [r1, #2] + lsls r0, r0, #0x1b + b _080A6358 +_080A6354: + ldrh r0, [r1, #2] +_080A6356: + lsls r0, r0, #0x16 +_080A6358: + lsrs r4, r0, #0x1b +_080A635A: + cmp r4, #0 + blt _080A6368 + ldr r0, _080A6374 @ =gUnk_02000080 + strb r4, [r0, #3] + movs r0, #0x69 + bl sub_080A3268 +_080A6368: + ldr r0, _080A6374 @ =gUnk_02000080 + ldrb r0, [r0, #3] + movs r1, #0 + bl sub_080A6FB4 +_080A6372: + pop {r4, pc} + .align 2, 0 +_080A6374: .4byte gUnk_02000080 + + thumb_func_start sub_080A6378 +sub_080A6378: @ 0x080A6378 + push {r4, r5, r6, lr} + ldr r0, _080A6420 @ =gUnk_02000080 + adds r4, r0, #0 + adds r4, #0x2c + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r6, #0x20 + ands r0, r6 + cmp r0, #0 + beq _080A6392 + bl sub_080A6438 +_080A6392: + ldr r5, _080A6424 @ =gUnk_03001010 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r5, #4] + movs r0, #0 + strh r0, [r5, #6] + movs r0, #0xe0 + lsls r0, r0, #7 + strh r0, [r5, #8] + ldrb r1, [r4] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _080A63EA + ldr r4, _080A6428 @ =gUnk_030010A0 + ldrh r1, [r4, #0x20] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #5 + movs r1, #0xf9 + lsls r1, r1, #4 + bl __divsi3 + adds r0, #0x28 + strh r0, [r5] + ldrh r0, [r4, #0x22] + lsls r0, r0, #7 + movs r1, #0xc6 + lsls r1, r1, #4 + bl __divsi3 + adds r0, #0xc + strh r0, [r5, #2] + ldr r0, _080A642C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + movs r1, #0x59 + cmp r0, #0 + beq _080A63E4 + movs r1, #0x5a +_080A63E4: + ldr r0, _080A6430 @ =0x000001FB + bl sub_080ADA14 +_080A63EA: + ldr r3, _080A6420 @ =gUnk_02000080 + ldrb r0, [r3, #3] + lsls r0, r0, #3 + ldr r1, _080A6434 @ =gUnk_08128DE8 + adds r0, r0, r1 + ldr r2, _080A6424 @ =gUnk_03001010 + ldrb r1, [r0, #6] + strh r1, [r2] + ldrb r0, [r0, #7] + strh r0, [r2, #2] + ldrb r0, [r3, #3] + lsls r2, r0, #1 + adds r2, r2, r0 + adds r2, #0x26 + adds r3, #0x2c + ldrb r1, [r3] + lsrs r1, r1, #4 + movs r0, #1 + bics r0, r1 + adds r1, r2, r0 + ldr r0, _080A6430 @ =0x000001FB + bl sub_080ADA14 + bl sub_080A6498 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A6420: .4byte gUnk_02000080 +_080A6424: .4byte gUnk_03001010 +_080A6428: .4byte gUnk_030010A0 +_080A642C: .4byte gUnk_03003F80 +_080A6430: .4byte 0x000001FB +_080A6434: .4byte gUnk_08128DE8 + + thumb_func_start sub_080A6438 +sub_080A6438: @ 0x080A6438 + push {r4, r5, r6, r7, lr} + ldr r2, _080A6484 @ =gUnk_03001010 + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2, #4] + strh r1, [r2, #6] + strh r1, [r2, #8] + ldr r0, _080A6488 @ =gUnk_02002A40 + ldr r1, _080A648C @ =gUnk_02000080 + ldrh r0, [r0, #0x20] + ldrh r5, [r1, #0x10] + ands r5, r0 + ldr r4, _080A6490 @ =gUnk_08128F58 + movs r6, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _080A6482 + adds r7, r2, #0 +_080A645E: + movs r0, #1 + lsls r0, r6 + ands r0, r5 + cmp r0, #0 + beq _080A6478 + ldrb r0, [r4, #1] + strh r0, [r7] + ldrb r0, [r4, #2] + strh r0, [r7, #2] + ldrb r1, [r4] + ldr r0, _080A6494 @ =0x000001FB + bl sub_080ADA14 +_080A6478: + adds r6, #1 + adds r4, #8 + ldrb r0, [r4] + cmp r0, #0 + bne _080A645E +_080A6482: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A6484: .4byte gUnk_03001010 +_080A6488: .4byte gUnk_02002A40 +_080A648C: .4byte gUnk_02000080 +_080A6490: .4byte gUnk_08128F58 +_080A6494: .4byte 0x000001FB + + thumb_func_start sub_080A6498 +sub_080A6498: @ 0x080A6498 + push {r4, r5, r6, r7, lr} + ldr r0, _080A64E4 @ =gUnk_03001010 + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #4 + strh r1, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + movs r4, #0 + ldr r7, _080A64E8 @ =gUnk_02002A40 + adds r6, r0, #0 + movs r5, #0x28 +_080A64B0: + movs r1, #1 + lsls r1, r4 + ldr r0, [r7, #0x40] + ands r0, r1 + cmp r0, #0 + bne _080A64D2 + lsls r1, r4, #3 + ldr r0, _080A64EC @ =gUnk_08128DE8 + adds r1, r1, r0 + ldrb r0, [r1, #6] + strh r0, [r6] + ldrb r0, [r1, #7] + strh r0, [r6, #2] + ldr r0, _080A64F0 @ =0x000001FB + adds r1, r5, #0 + bl sub_080ADA14 +_080A64D2: + adds r5, #3 + adds r4, #1 + cmp r4, #0x10 + bls _080A64B0 + ldr r0, _080A64F4 @ =gLCDControls + adds r0, #0x62 + ldr r1, _080A64F8 @ =0x00003D3F + strh r1, [r0] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A64E4: .4byte gUnk_03001010 +_080A64E8: .4byte gUnk_02002A40 +_080A64EC: .4byte gUnk_08128DE8 +_080A64F0: .4byte 0x000001FB +_080A64F4: .4byte gLCDControls +_080A64F8: .4byte 0x00003D3F + + thumb_func_start sub_080A64FC +sub_080A64FC: @ 0x080A64FC + push {r4, lr} + bl sub_080AD90C + ldr r1, _080A652C @ =gUnk_08128E70 + ldr r4, _080A6530 @ =gUnk_02000080 + ldrb r0, [r4, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + adds r4, #0x2c + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A6522 + bl sub_080A6438 +_080A6522: + bl sub_080A6498 + bl sub_080AD918 + pop {r4, pc} + .align 2, 0 +_080A652C: .4byte gUnk_08128E70 +_080A6530: .4byte gUnk_02000080 + + thumb_func_start sub_080A6534 +sub_080A6534: @ 0x080A6534 + push {r4, lr} + bl sub_080A4D34 + movs r0, #4 + bl sub_080A4DB8 + bl sub_080A6290 + ldr r2, _080A6590 @ =gLCDControls + ldrh r1, [r2] + ldr r0, _080A6594 @ =0x0000F7FF + ands r0, r1 + movs r4, #0 + strh r0, [r2] + ldr r0, _080A6598 @ =gUnk_020176A0 + adds r0, #0xa2 + ldrh r1, [r0] + movs r0, #0 + bl sub_0801D79C + ldr r1, _080A659C @ =gUnk_08128F4C + ldr r0, _080A65A0 @ =gUnk_02032EC0 + ldrb r0, [r0, #3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r3, _080A65A4 @ =gUnk_02002A40 + ldrh r1, [r3, #0x20] + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r3, #0x20] + ldr r1, _080A65A8 @ =gUnk_02000080 + ldrh r0, [r1, #0x10] + ands r2, r0 + strh r2, [r1, #0x12] + strh r4, [r1, #0x10] + movs r0, #0x3c + strh r0, [r1, #8] + movs r0, #1 + bl sub_080A7114 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080A6590: .4byte gLCDControls +_080A6594: .4byte 0x0000F7FF +_080A6598: .4byte gUnk_020176A0 +_080A659C: .4byte gUnk_08128F4C +_080A65A0: .4byte gUnk_02032EC0 +_080A65A4: .4byte gUnk_02002A40 +_080A65A8: .4byte gUnk_02000080 + + thumb_func_start sub_080A65AC +sub_080A65AC: @ 0x080A65AC + push {r4, lr} + ldr r0, _080A65E4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A6600 + ldr r4, _080A65E8 @ =gUnk_02000080 + adds r1, r4, #0 + adds r1, #0x2c + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrh r0, [r4, #8] + cmp r0, #0 + beq _080A65EC + cmp r0, #0x1e + bne _080A65DA + ldrh r0, [r4, #0x12] + strh r0, [r4, #0x10] + movs r0, #0x20 + strb r0, [r1] + adds r0, #0xe3 + bl sub_080A3268 +_080A65DA: + ldrh r0, [r4, #8] + subs r0, #1 + strh r0, [r4, #8] + b _080A6600 + .align 2, 0 +_080A65E4: .4byte gUnk_03000FD0 +_080A65E8: .4byte gUnk_02000080 +_080A65EC: + ldr r0, _080A6604 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #1 + blt _080A6600 + cmp r0, #2 + ble _080A65FC + cmp r0, #8 + bne _080A6600 +_080A65FC: + bl sub_080A71DC +_080A6600: + pop {r4, pc} + .align 2, 0 +_080A6604: .4byte gUnk_03000FF0 + + thumb_func_start sub_080A6608 +sub_080A6608: @ 0x080A6608 + push {r4, lr} + ldr r1, _080A6640 @ =gUnk_08128E78 + ldr r4, _080A6644 @ =gUnk_02000080 + ldrb r0, [r4, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldrb r1, [r4, #3] + lsls r1, r1, #3 + ldr r0, _080A6648 @ =gUnk_08128E94 + adds r1, r1, r0 + ldr r2, _080A664C @ =gLCDControls + movs r0, #5 + ldrsb r0, [r1, r0] + rsbs r0, r0, #0 + strh r0, [r2, #0x18] + ldrb r1, [r1, #6] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0xa] + subs r0, r0, r1 + strh r0, [r2, #0x24] + bl sub_080A66D0 + pop {r4, pc} + .align 2, 0 +_080A6640: .4byte gUnk_08128E78 +_080A6644: .4byte gUnk_02000080 +_080A6648: .4byte gUnk_08128E94 +_080A664C: .4byte gLCDControls + + thumb_func_start sub_080A6650 +sub_080A6650: @ 0x080A6650 + push {lr} + ldr r0, _080A6670 @ =gUnk_08128E84 + bl sub_080A70AC + ldr r0, _080A6674 @ =gUnk_02034490 + ldrb r0, [r0, #6] + ldr r1, _080A6678 @ =gUnk_02000080 + strb r0, [r1, #3] + bl sub_080A67C4 + bl sub_080A68D4 + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080A6670: .4byte gUnk_08128E84 +_080A6674: .4byte gUnk_02034490 +_080A6678: .4byte gUnk_02000080 + + thumb_func_start sub_080A667C +sub_080A667C: @ 0x080A667C + push {lr} + ldr r2, _080A669C @ =gUnk_02000080 + ldr r0, _080A66A0 @ =gUnk_08128E80 + str r0, [r2, #0xc] + ldrb r0, [r2, #3] + lsls r0, r0, #3 + ldr r1, _080A66A4 @ =gUnk_08128E94 + adds r3, r0, r1 + ldrh r1, [r2, #0xa] + ldr r0, _080A66A8 @ =gUnk_03000FF0 + ldrh r0, [r0] + cmp r0, #0x40 + beq _080A66AC + cmp r0, #0x80 + beq _080A66B4 + b _080A66C2 + .align 2, 0 +_080A669C: .4byte gUnk_02000080 +_080A66A0: .4byte gUnk_08128E80 +_080A66A4: .4byte gUnk_08128E94 +_080A66A8: .4byte gUnk_03000FF0 +_080A66AC: + cmp r1, #0 + beq _080A66C2 + subs r1, #2 + b _080A66C2 +_080A66B4: + ldrb r0, [r3, #2] + cmp r0, r1 + bls _080A66BC + adds r1, #2 +_080A66BC: + cmp r0, r1 + bhs _080A66C2 + adds r1, r0, #0 +_080A66C2: + strh r1, [r2, #0xa] + ldrb r0, [r2, #3] + movs r1, #0 + bl sub_080A6FB4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A66D0 +sub_080A66D0: @ 0x080A66D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r6, _080A677C @ =gUnk_03001010 + movs r0, #0 + strh r0, [r6, #4] + strh r0, [r6, #6] + movs r0, #0x78 + strh r0, [r6] + ldr r4, _080A6780 @ =gUnk_02000080 + ldrb r0, [r4, #3] + lsls r0, r0, #3 + ldr r1, _080A6784 @ =gUnk_08128E94 + adds r5, r0, r1 + adds r1, r4, #0 + adds r1, #0x2c + ldrb r0, [r1] + adds r2, r0, #1 + strb r2, [r1] + adds r0, r4, #0 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + beq _080A6738 + movs r0, #0x10 + ands r2, r0 + cmp r2, #0 + beq _080A6738 + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r6, #8] + ldrh r0, [r4, #0xa] + cmp r0, #0 + beq _080A6724 + movs r0, #0xc + strh r0, [r6, #2] + ldr r0, _080A6788 @ =0x000001FB + movs r1, #0x71 + bl sub_080ADA14 +_080A6724: + ldrb r0, [r5, #2] + ldrh r4, [r4, #0xa] + cmp r0, r4 + bls _080A6738 + movs r0, #0x84 + strh r0, [r6, #2] + ldr r0, _080A6788 @ =0x000001FB + movs r1, #0x72 + bl sub_080ADA14 +_080A6738: + ldrb r0, [r5, #7] + mov sl, r0 + ldrb r5, [r5, #3] + mov sb, r5 + ldr r1, _080A6780 @ =gUnk_02000080 + ldrh r0, [r1, #0xa] + mov r8, r0 + ldr r2, _080A677C @ =gUnk_03001010 + movs r0, #0 + strh r0, [r2, #4] + strh r0, [r2, #6] + movs r0, #0xc0 + lsls r0, r0, #4 + strh r0, [r2, #8] + adds r1, #0x2c + ldrb r1, [r1] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _080A678C @ =gUnk_02019EE0 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _080A67BA + rsbs r5, r6, #0 + orrs r5, r6 + adds r7, r2, #0 +_080A676E: + movs r1, #0 + ldrb r0, [r4] + cmp r0, #1 + bne _080A6790 + lsrs r1, r5, #0x1f + b _080A6796 + .align 2, 0 +_080A677C: .4byte gUnk_03001010 +_080A6780: .4byte gUnk_02000080 +_080A6784: .4byte gUnk_08128E94 +_080A6788: .4byte 0x000001FB +_080A678C: .4byte gUnk_02019EE0 +_080A6790: + cmp r6, #0 + bne _080A6796 + movs r1, #1 +_080A6796: + cmp r1, #0 + beq _080A67B2 + ldrh r0, [r4, #4] + add r0, sl + strh r0, [r7] + ldrh r0, [r4, #6] + add r0, sb + mov r1, r8 + subs r0, r0, r1 + strh r0, [r7, #2] + ldrh r0, [r4, #2] + ldrb r1, [r4, #1] + bl sub_080ADA14 +_080A67B2: + adds r4, #8 + ldrh r0, [r4, #2] + cmp r0, #0 + bne _080A676E +_080A67BA: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080A67C4 +sub_080A67C4: @ 0x080A67C4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0xba + bl sub_0801D714 + adds r5, r4, #0 + adds r5, #0x5f + cmp r4, #0xb + beq _080A67F4 + cmp r4, #0xb + bhi _080A67E0 + cmp r4, #9 + beq _080A67E6 + b _080A6822 +_080A67E0: + cmp r4, #0xe + beq _080A6802 + b _080A6822 +_080A67E6: + movs r0, #0x18 + bl GetProgressFlag + cmp r0, #0 + beq _080A6822 + movs r5, #0x70 + b _080A6822 +_080A67F4: + movs r0, #0xe + bl sub_0801E7F4 + cmp r0, #0 + beq _080A6822 + movs r5, #0x71 + b _080A6822 +_080A6802: + ldr r1, _080A68AC @ =gUnk_02032EC0 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #8 + bne _080A6822 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + adds r5, #0x72 +_080A6822: + adds r0, r5, #0 + bl sub_0801D7EC + lsls r1, r4, #3 + ldr r0, _080A68B0 @ =gUnk_08128E94 + adds r4, r1, r0 + ldr r0, _080A68B4 @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _080A68B8 @ =gUnk_02017AA0 + adds r1, r0, r1 + ldr r2, _080A68BC @ =0x00001E0A + adds r0, r2, #0 + movs r2, #7 +_080A6842: + strh r0, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _080A6842 + movs r2, #8 + movs r0, #5 + ldrsb r0, [r4, r0] + ldrb r3, [r4, #4] + adds r0, r0, r3 + ldr r5, _080A68B4 @ =gUnk_03003DE4 + ldr r6, _080A68B8 @ =gUnk_02017AA0 + cmp r2, r0 + bge _080A6874 + ldr r7, _080A68C0 @ =0x00001E0B + adds r3, r7, #0 +_080A6862: + strh r3, [r1] + adds r1, #2 + adds r2, #1 + movs r0, #5 + ldrsb r0, [r4, r0] + ldrb r7, [r4, #4] + adds r0, r0, r7 + cmp r2, r0 + blt _080A6862 +_080A6874: + cmp r2, #0x9f + bgt _080A6886 + ldr r3, _080A68BC @ =0x00001E0A + adds r0, r3, #0 +_080A687C: + strh r0, [r1] + adds r1, #2 + adds r2, #1 + cmp r2, #0x9f + ble _080A687C +_080A6886: + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + adds r0, r0, r6 + ldr r1, _080A68C4 @ =0x0400000E + ldr r2, _080A68C8 @ =0xA2600001 + bl sub_0805622C + ldr r1, _080A68CC @ =gUnk_02000080 + ldrb r0, [r4, #2] + lsrs r0, r0, #1 + strh r0, [r1, #0xa] + ldr r0, _080A68D0 @ =gUnk_02019EE0 + movs r1, #0x80 + lsls r1, r1, #3 + bl sub_0801D630 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A68AC: .4byte gUnk_02032EC0 +_080A68B0: .4byte gUnk_08128E94 +_080A68B4: .4byte gUnk_03003DE4 +_080A68B8: .4byte gUnk_02017AA0 +_080A68BC: .4byte 0x00001E0A +_080A68C0: .4byte 0x00001E0B +_080A68C4: .4byte 0x0400000E +_080A68C8: .4byte 0xA2600001 +_080A68CC: .4byte gUnk_02000080 +_080A68D0: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A68D4 +sub_080A68D4: @ 0x080A68D4 + push {r4, r5, r6, lr} + ldr r0, _080A690C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + movs r4, #0x64 + cmp r0, #0 + beq _080A68E6 + movs r4, #0x65 +_080A68E6: + ldr r1, _080A6910 @ =gUnk_030010A0 + ldrh r0, [r1, #0x20] + ldrh r1, [r1, #0x22] + ldr r2, _080A6914 @ =0x000001FB + movs r3, #0x80 + lsls r3, r3, #1 + adds r3, r4, r3 + bl sub_080A698C + bl sub_080A6F40 + adds r6, r0, #0 + ldr r0, _080A6918 @ =gUnk_02002A40 + ldrh r0, [r0, #0x20] + ands r6, r0 + ldr r4, _080A691C @ =gUnk_08128F58 + movs r5, #0 + b _080A693A + .align 2, 0 +_080A690C: .4byte gUnk_03003F80 +_080A6910: .4byte gUnk_030010A0 +_080A6914: .4byte 0x000001FB +_080A6918: .4byte gUnk_02002A40 +_080A691C: .4byte gUnk_08128F58 +_080A6920: + movs r0, #1 + lsls r0, r5 + ands r0, r6 + cmp r0, #0 + beq _080A6936 + ldrh r0, [r4, #4] + ldrh r1, [r4, #6] + ldrb r3, [r4, #3] + ldr r2, _080A6980 @ =0x000001FB + bl sub_080A698C +_080A6936: + adds r5, #1 + adds r4, #8 +_080A693A: + ldrb r0, [r4] + cmp r0, #0 + bne _080A6920 + movs r5, #0xa +_080A6942: + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _080A6976 + adds r0, r5, #0 + bl sub_0801E810 + cmp r0, #0 + bne _080A6976 + ldr r1, _080A6984 @ =gUnk_080C9CBC + lsls r0, r5, #3 + adds r0, r0, r1 + ldrb r3, [r0, #7] + ldrb r0, [r0, #4] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080A6988 @ =gUnk_080FE320 + adds r1, r1, r0 + ldrh r0, [r1, #0xc] + ldrh r1, [r1, #0xe] + adds r3, #0x64 + ldr r2, _080A6980 @ =0x000001FB + bl sub_080A698C +_080A6976: + adds r5, #1 + cmp r5, #0x64 + bls _080A6942 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A6980: .4byte 0x000001FB +_080A6984: .4byte gUnk_080C9CBC +_080A6988: .4byte gUnk_080FE320 + + thumb_func_start sub_080A698C +sub_080A698C: @ 0x080A698C + push {r4, r5, r6, lr} + adds r6, r2, #0 + adds r5, r3, #0 + bl sub_080A69E0 + adds r4, r0, #0 + cmp r4, #0 + ble _080A69D4 + ldr r2, _080A69D8 @ =gUnk_02000080 + adds r2, #0x2d + ldrb r0, [r2] + lsls r0, r0, #3 + ldr r3, _080A69DC @ =gUnk_02019EE0 + adds r0, r0, r3 + lsrs r1, r5, #8 + strb r1, [r0] + ldrb r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r3 + strb r5, [r0, #1] + ldrb r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r3 + strh r6, [r0, #2] + ldrb r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r3 + strh r4, [r0, #4] + ldrb r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r3 + asrs r1, r4, #0x10 + strh r1, [r0, #6] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_080A69D4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A69D8: .4byte gUnk_02000080 +_080A69DC: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A69E0 +sub_080A69E0: @ 0x080A69E0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + adds r6, r1, #0 + orrs r0, r6 + cmp r0, #0 + beq _080A6A06 + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_080A6A80 + adds r3, r0, #0 + cmp r3, #0 + beq _080A6A06 + ldr r0, _080A6A0C @ =gUnk_02000080 + ldrb r1, [r0, #3] + ldrb r2, [r3, #4] + cmp r1, r2 + beq _080A6A10 +_080A6A06: + movs r0, #1 + rsbs r0, r0, #0 + b _080A6A74 + .align 2, 0 +_080A6A0C: .4byte gUnk_02000080 +_080A6A10: + ldrb r1, [r0, #3] + cmp r1, #7 + beq _080A6A26 + cmp r1, #7 + bgt _080A6A20 + cmp r1, #4 + beq _080A6A26 + b _080A6A48 +_080A6A20: + cmp r1, #0xf + beq _080A6A44 + b _080A6A48 +_080A6A26: + ldrb r0, [r0, #3] + movs r2, #7 + cmp r0, #4 + bne _080A6A30 + movs r2, #9 +_080A6A30: + ldr r1, _080A6A40 @ =gUnk_0811E214 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r0, [r0, #2] + subs r6, r6, r0 + b _080A6A48 + .align 2, 0 +_080A6A40: .4byte gUnk_0811E214 +_080A6A44: + ldr r0, _080A6A78 @ =0xFFFFFEF8 + adds r7, r7, r0 +_080A6A48: + ldrb r0, [r3] + lsls r0, r0, #4 + subs r0, r7, r0 + movs r4, #0x64 + muls r0, r4, r0 + ldr r5, _080A6A7C @ =0x0000023A + adds r1, r5, #0 + str r3, [sp] + bl __divsi3 + adds r7, r0, #0 + ldr r3, [sp] + ldrb r0, [r3, #1] + lsls r0, r0, #4 + subs r0, r6, r0 + muls r0, r4, r0 + adds r1, r5, #0 + bl __divsi3 + adds r6, r0, #0 + lsls r0, r6, #0x10 + orrs r0, r7 +_080A6A74: + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A6A78: .4byte 0xFFFFFEF8 +_080A6A7C: .4byte 0x0000023A + + thumb_func_start sub_080A6A80 +sub_080A6A80: @ 0x080A6A80 + push {lr} + adds r3, r0, #0 + lsrs r3, r3, #4 + lsrs r1, r1, #4 + ldr r2, _080A6A8C @ =gUnk_08127F94 + b _080A6AAE + .align 2, 0 +_080A6A8C: .4byte gUnk_08127F94 +_080A6A90: + ldrb r0, [r2] + cmp r0, r3 + bhi _080A6AAC + ldrb r0, [r2, #2] + cmp r0, r3 + blo _080A6AAC + ldrb r0, [r2, #1] + cmp r0, r1 + bhi _080A6AAC + ldrb r0, [r2, #3] + cmp r0, r1 + blo _080A6AAC + adds r0, r2, #0 + b _080A6AB6 +_080A6AAC: + adds r2, #8 +_080A6AAE: + ldrb r0, [r2] + cmp r0, #0xff + bne _080A6A90 + movs r0, #0 +_080A6AB6: + pop {pc} + + thumb_func_start sub_080A6AB8 +sub_080A6AB8: @ 0x080A6AB8 + push {r4, lr} + bl sub_080AD90C + ldr r1, _080A6AF4 @ =gUnk_08128F1C + ldr r4, _080A6AF8 @ =gUnk_02000080 + ldrb r0, [r4, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldrb r1, [r4, #3] + lsls r1, r1, #3 + ldr r0, _080A6AFC @ =gUnk_08128E94 + adds r1, r1, r0 + ldr r2, _080A6B00 @ =gLCDControls + movs r0, #5 + ldrsb r0, [r1, r0] + rsbs r0, r0, #0 + strh r0, [r2, #0x18] + ldrb r1, [r1, #6] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0xa] + subs r0, r0, r1 + strh r0, [r2, #0x24] + bl sub_080AD918 + pop {r4, pc} + .align 2, 0 +_080A6AF4: .4byte gUnk_08128F1C +_080A6AF8: .4byte gUnk_02000080 +_080A6AFC: .4byte gUnk_08128E94 +_080A6B00: .4byte gLCDControls + + thumb_func_start sub_080A6B04 +sub_080A6B04: @ 0x080A6B04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_080A4D34 + movs r0, #6 + bl sub_080A4DB8 + ldr r0, _080A6BF0 @ =gUnk_02022740 + ldrb r2, [r0, #3] + lsls r2, r2, #3 + ldr r0, _080A6BF4 @ =gUnk_080C9CBC + adds r2, r2, r0 + ldrb r1, [r2, #4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A6BF8 @ =gUnk_080FE320 + adds r0, r0, r1 + ldrb r2, [r2, #7] + mov r8, r2 + ldrh r6, [r0, #0xc] + ldrh r5, [r0, #0xe] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080A6A80 + ldrb r4, [r0, #4] + ldr r7, _080A6BFC @ =gUnk_02000080 + strb r4, [r7, #3] + adds r1, r7, #0 + adds r1, #0x2b + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080A67C4 + adds r0, r4, #0 + movs r1, #2 + bl sub_080A6FB4 + ldr r4, _080A6C00 @ =0x0000475F + movs r0, #0 + adds r1, r4, #0 + bl sub_0801D79C + movs r0, #0x5f + adds r1, r4, #0 + bl sub_0801D79C + ldr r0, _080A6C04 @ =0x00005001 + ldr r1, _080A6C08 @ =gUnk_02001A40 + movs r2, #0x80 + lsls r2, r2, #5 + bl sub_0801D5EC + ldr r0, _080A6C0C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + movs r2, #0x64 + cmp r0, #0 + beq _080A6B84 + movs r2, #0x65 +_080A6B84: + ldr r1, _080A6C10 @ =gUnk_030010A0 + ldrh r0, [r1, #0x20] + ldrh r1, [r1, #0x22] + ldr r4, _080A6C14 @ =0x000001FB + movs r3, #0x80 + lsls r3, r3, #1 + adds r3, r2, r3 + adds r2, r4, #0 + bl sub_080A698C + mov r3, r8 + adds r3, #0x64 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_080A698C + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080A69E0 + asrs r5, r0, #0x10 + ldrb r0, [r7, #3] + lsls r0, r0, #3 + ldr r1, _080A6C18 @ =gUnk_08128E94 + adds r1, r0, r1 + movs r0, #0 + strh r0, [r7, #0xa] + ldrb r0, [r1, #2] + cmp r0, #0 + beq _080A6BD4 + adds r0, r5, #0 + subs r0, #0x3c + cmp r0, #0 + ble _080A6BD4 + ldrb r1, [r1, #2] + cmp r1, r0 + bge _080A6BD2 + adds r0, r1, #0 +_080A6BD2: + strh r0, [r7, #0xa] +_080A6BD4: + ldr r1, _080A6BFC @ =gUnk_02000080 + movs r0, #0x1e + strh r0, [r1, #8] + movs r0, #1 + bl sub_080A7114 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A6BF0: .4byte gUnk_02022740 +_080A6BF4: .4byte gUnk_080C9CBC +_080A6BF8: .4byte gUnk_080FE320 +_080A6BFC: .4byte gUnk_02000080 +_080A6C00: .4byte 0x0000475F +_080A6C04: .4byte 0x00005001 +_080A6C08: .4byte gUnk_02001A40 +_080A6C0C: .4byte gUnk_03003F80 +_080A6C10: .4byte gUnk_030010A0 +_080A6C14: .4byte 0x000001FB +_080A6C18: .4byte gUnk_08128E94 + + thumb_func_start sub_080A6C1C +sub_080A6C1C: @ 0x080A6C1C + push {lr} + ldr r0, _080A6C34 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A6C6A + ldr r0, _080A6C38 @ =gUnk_02000080 + ldrh r0, [r0, #8] + cmp r0, #0 + beq _080A6C3C + cmp r0, #1 + beq _080A6C5C + b _080A6C62 + .align 2, 0 +_080A6C34: .4byte gUnk_03000FD0 +_080A6C38: .4byte gUnk_02000080 +_080A6C3C: + bl sub_080A66D0 + ldr r0, _080A6C58 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #1 + blt _080A6C6A + cmp r0, #2 + ble _080A6C50 + cmp r0, #8 + bne _080A6C6A +_080A6C50: + bl sub_080A71DC + b _080A6C6A + .align 2, 0 +_080A6C58: .4byte gUnk_03000FF0 +_080A6C5C: + ldr r0, _080A6C6C @ =0x00000103 + bl sub_080A3268 +_080A6C62: + ldr r1, _080A6C70 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] +_080A6C6A: + pop {pc} + .align 2, 0 +_080A6C6C: .4byte 0x00000103 +_080A6C70: .4byte gUnk_02000080 + + thumb_func_start sub_080A6C74 +sub_080A6C74: @ 0x080A6C74 + push {r4, lr} + bl sub_080AD90C + ldr r1, _080A6CA0 @ =gUnk_08128F24 + ldr r4, _080A6CA4 @ =gUnk_02000080 + ldrb r0, [r4, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldrb r0, [r4] + cmp r0, #0 + beq _080A6C94 + bl sub_080A6E70 +_080A6C94: + bl sub_080A6498 + bl sub_080AD918 + pop {r4, pc} + .align 2, 0 +_080A6CA0: .4byte gUnk_08128F24 +_080A6CA4: .4byte gUnk_02000080 + + thumb_func_start sub_080A6CA8 +sub_080A6CA8: @ 0x080A6CA8 + push {lr} + bl sub_080A4D34 + movs r0, #0xd + bl sub_080A4DB8 + bl sub_080A6290 + movs r0, #0 + bl sub_080A6D74 + ldr r1, _080A6CD4 @ =gUnk_02000080 + strb r0, [r1, #3] + movs r0, #1 + bl sub_080A7114 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {pc} + .align 2, 0 +_080A6CD4: .4byte gUnk_02000080 + + thumb_func_start sub_080A6CD8 +sub_080A6CD8: @ 0x080A6CD8 + push {r4, lr} + ldr r0, _080A6D08 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A6D6E + ldr r1, _080A6D0C @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1] + movs r4, #0 + ldr r0, _080A6D10 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + adds r2, r1, #0 + cmp r0, #0x10 + beq _080A6D34 + cmp r0, #0x10 + bgt _080A6D1A + cmp r0, #2 + beq _080A6D4C + cmp r0, #2 + bgt _080A6D14 + cmp r0, #1 + beq _080A6D38 + b _080A6D54 + .align 2, 0 +_080A6D08: .4byte gUnk_03000FD0 +_080A6D0C: .4byte gUnk_02000080 +_080A6D10: .4byte gUnk_03000FF0 +_080A6D14: + cmp r0, #8 + beq _080A6D38 + b _080A6D54 +_080A6D1A: + cmp r0, #0x40 + beq _080A6D2E + cmp r0, #0x40 + bgt _080A6D28 + cmp r0, #0x20 + beq _080A6D2E + b _080A6D54 +_080A6D28: + cmp r0, #0x80 + beq _080A6D34 + b _080A6D54 +_080A6D2E: + movs r4, #1 + rsbs r4, r4, #0 + b _080A6D58 +_080A6D34: + movs r4, #1 + b _080A6D58 +_080A6D38: + movs r0, #2 + strb r0, [r2] + bl sub_080A7114 + ldr r0, _080A6D48 @ =0x00000704 + bl TextboxTryNoOverlap + b _080A6D54 + .align 2, 0 +_080A6D48: .4byte 0x00000704 +_080A6D4C: + movs r0, #3 + strb r0, [r1] + bl sub_080A7114 +_080A6D54: + cmp r4, #0 + beq _080A6D6E +_080A6D58: + adds r0, r4, #0 + bl sub_080A6D74 + ldr r1, _080A6D70 @ =gUnk_02000080 + ldrb r2, [r1, #3] + cmp r0, r2 + beq _080A6D6E + strb r0, [r1, #3] + movs r0, #0x69 + bl sub_080A3268 +_080A6D6E: + pop {r4, pc} + .align 2, 0 +_080A6D70: .4byte gUnk_02000080 + + thumb_func_start sub_080A6D74 +sub_080A6D74: @ 0x080A6D74 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r0, _080A6DA4 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + lsrs r2, r0, #0x18 + ldr r0, _080A6DA8 @ =gUnk_02000080 + ldrb r1, [r0, #3] + cmp r3, #0 + bne _080A6DAC + movs r1, #0 + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _080A6DC6 + movs r3, #1 +_080A6D92: + adds r1, #1 + cmp r1, #7 + bhi _080A6DC6 + adds r0, r3, #0 + lsls r0, r1 + ands r0, r2 + cmp r0, #0 + beq _080A6D92 + b _080A6DC6 + .align 2, 0 +_080A6DA4: .4byte gUnk_02002A40 +_080A6DA8: .4byte gUnk_02000080 +_080A6DAC: + cmp r2, #0 + beq _080A6DC6 + movs r4, #7 + movs r5, #1 +_080A6DB4: + adds r0, r1, r3 + adds r1, r0, #0 + adds r1, #8 + ands r1, r4 + adds r0, r5, #0 + lsls r0, r1 + ands r0, r2 + cmp r0, #0 + beq _080A6DB4 +_080A6DC6: + movs r0, #7 + ands r1, r0 + adds r0, r1, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A6DD0 +sub_080A6DD0: @ 0x080A6DD0 + push {lr} + bl sub_08056338 + cmp r0, #0 + beq _080A6DE0 + cmp r0, #1 + beq _080A6DF0 + b _080A6DF6 +_080A6DE0: + ldr r1, _080A6DEC @ =gUnk_02000080 + movs r0, #2 + strb r0, [r1] + movs r0, #3 + b _080A6DF2 + .align 2, 0 +_080A6DEC: .4byte gUnk_02000080 +_080A6DF0: + movs r0, #1 +_080A6DF2: + bl sub_080A7114 +_080A6DF6: + pop {pc} + + thumb_func_start sub_080A6DF8 +sub_080A6DF8: @ 0x080A6DF8 + push {lr} + ldr r0, _080A6E14 @ =gUnk_02000080 + ldrb r0, [r0] + cmp r0, #2 + bne _080A6E18 + movs r0, #4 + bl sub_080A7114 + movs r0, #5 + movs r1, #8 + bl sub_08050054 + b _080A6E3A + .align 2, 0 +_080A6E14: .4byte gUnk_02000080 +_080A6E18: + bl sub_080791D0 + ldr r0, _080A6E3C @ =gLinkEntity + adds r1, r0, #0 + adds r1, #0x58 + ldrb r1, [r1] + ldrh r2, [r0, #0x12] + bl sub_080042D0 + bl sub_080A71DC + ldr r1, _080A6E40 @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + movs r0, #0x6c + bl sub_080A3268 +_080A6E3A: + pop {pc} + .align 2, 0 +_080A6E3C: .4byte gLinkEntity +_080A6E40: .4byte gUnk_02034490 + + thumb_func_start sub_080A6E44 +sub_080A6E44: @ 0x080A6E44 + push {lr} + ldr r0, _080A6E64 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A6E60 + ldr r0, _080A6E68 @ =gUnk_02000080 + ldrb r1, [r0, #3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A6E6C @ =gUnk_08128024 + adds r0, r0, r1 + bl sub_080A71F4 +_080A6E60: + pop {pc} + .align 2, 0 +_080A6E64: .4byte gUnk_03000FD0 +_080A6E68: .4byte gUnk_02000080 +_080A6E6C: .4byte gUnk_08128024 + + thumb_func_start sub_080A6E70 +sub_080A6E70: @ 0x080A6E70 + push {r4, r5, lr} + ldr r1, _080A6ED0 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #6] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #8] + ldr r1, _080A6ED4 @ =gUnk_02000080 + adds r4, r1, #0 + adds r4, #0x2c + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldrb r0, [r1, #3] + bl sub_080A6EE0 + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + movs r1, #0x5e + cmp r0, #0 + beq _080A6EA0 + movs r1, #0x5d +_080A6EA0: + ldr r0, _080A6ED8 @ =0x000001FB + bl sub_080ADA14 + movs r4, #0 + ldr r5, _080A6EDC @ =gUnk_02002A40 +_080A6EAA: + adds r0, r4, #0 + adds r0, #0x18 + movs r1, #1 + lsls r1, r0 + ldr r0, [r5, #0x40] + ands r0, r1 + cmp r0, #0 + beq _080A6EC8 + adds r0, r4, #0 + bl sub_080A6EE0 + ldr r0, _080A6ED8 @ =0x000001FB + movs r1, #0x5c + bl sub_080ADA14 +_080A6EC8: + adds r4, #1 + cmp r4, #7 + bls _080A6EAA + pop {r4, r5, pc} + .align 2, 0 +_080A6ED0: .4byte gUnk_03001010 +_080A6ED4: .4byte gUnk_02000080 +_080A6ED8: .4byte 0x000001FB +_080A6EDC: .4byte gUnk_02002A40 + + thumb_func_start sub_080A6EE0 +sub_080A6EE0: @ 0x080A6EE0 + push {r4, r5, r6, lr} + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080A6F34 @ =gUnk_08128024 + adds r1, r1, r0 + ldrh r3, [r1, #6] + ldrh r4, [r1, #8] + ldr r0, _080A6F38 @ =gUnk_0811E214 + ldrb r2, [r1, #0xb] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r1, #0xc] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r2] + adds r1, r1, r0 + ldrh r0, [r1] + adds r3, r3, r0 + ldrh r0, [r1, #2] + adds r4, r4, r0 + ldr r6, _080A6F3C @ =gUnk_03001010 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #5 + movs r5, #0xf9 + lsls r5, r5, #4 + adds r1, r5, #0 + bl __divsi3 + adds r0, #0x28 + strh r0, [r6] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #5 + adds r1, r5, #0 + bl __divsi3 + adds r0, #0xc + strh r0, [r6, #2] + pop {r4, r5, r6, pc} + .align 2, 0 +_080A6F34: .4byte gUnk_08128024 +_080A6F38: .4byte gUnk_0811E214 +_080A6F3C: .4byte gUnk_03001010 + + thumb_func_start sub_080A6F40 +sub_080A6F40: @ 0x080A6F40 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r4, _080A6F4C @ =gUnk_08128F38 + movs r6, #0 + b _080A6F60 + .align 2, 0 +_080A6F4C: .4byte gUnk_08128F38 +_080A6F50: + ldrb r0, [r4] + ldrb r1, [r4, #1] + bl sub_0807CB24 + lsls r0, r5 + orrs r6, r0 + adds r5, #1 + adds r4, #2 +_080A6F60: + ldrb r0, [r4] + cmp r0, #0 + bne _080A6F50 + mvns r0, r6 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A6F6C +sub_080A6F6C: @ 0x080A6F6C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A6FA4 @ =gUnk_02000080 + ldrh r0, [r1, #0x2e] + cmp r0, r4 + beq _080A6F9A + strh r4, [r1, #0x2e] + ldr r0, _080A6FA8 @ =gUnk_020350F0 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0801D630 + movs r0, #0xff + ands r0, r4 + cmp r0, #0 + beq _080A6F94 + ldr r1, _080A6FAC @ =gUnk_08128FA8 + adds r0, r4, #0 + bl sub_0805F46C +_080A6F94: + ldr r1, _080A6FB0 @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] +_080A6F9A: + ldr r1, _080A6FB0 @ =gLCDControls + movs r0, #2 + strh r0, [r1, #0xc] + pop {r4, pc} + .align 2, 0 +_080A6FA4: .4byte gUnk_02000080 +_080A6FA8: .4byte gUnk_020350F0 +_080A6FAC: .4byte gUnk_08128FA8 +_080A6FB0: .4byte gLCDControls + + thumb_func_start sub_080A6FB4 +sub_080A6FB4: @ 0x080A6FB4 + push {r4, r5, lr} + adds r2, r0, #0 + movs r4, #0 + cmp r1, #1 + beq _080A6FF0 + cmp r1, #1 + blo _080A6FC8 + cmp r1, #2 + beq _080A6FD6 + b _080A6FFA +_080A6FC8: + ldr r0, _080A6FE4 @ =gUnk_02002A40 + movs r1, #1 + lsls r1, r2 + ldr r0, [r0, #0x40] + ands r0, r1 + cmp r0, #0 + beq _080A6FFA +_080A6FD6: + ldr r1, _080A6FE8 @ =gUnk_08127F94 + lsls r0, r2, #3 + adds r0, r0, r1 + ldrh r4, [r0, #6] + ldr r5, _080A6FEC @ =gUnk_08128FC0 + b _080A6FFA + .align 2, 0 +_080A6FE4: .4byte gUnk_02002A40 +_080A6FE8: .4byte gUnk_08127F94 +_080A6FEC: .4byte gUnk_08128FC0 +_080A6FF0: + ldr r1, _080A702C @ =gUnk_08128FF0 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r4, [r0] + ldr r5, _080A7030 @ =gUnk_08128FD8 +_080A6FFA: + ldr r1, _080A7034 @ =gUnk_02000080 + ldrh r0, [r1, #0x2e] + cmp r0, r4 + beq _080A7024 + strh r4, [r1, #0x2e] + ldr r0, _080A7038 @ =gUnk_020350F0 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0801D630 + movs r0, #0xff + ands r0, r4 + cmp r0, #0 + beq _080A701E + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805F46C +_080A701E: + ldr r1, _080A703C @ =gLCDControls + movs r0, #1 + strh r0, [r1, #0xe] +_080A7024: + ldr r1, _080A703C @ =gLCDControls + movs r0, #2 + strh r0, [r1, #0xc] + pop {r4, r5, pc} + .align 2, 0 +_080A702C: .4byte gUnk_08128FF0 +_080A7030: .4byte gUnk_08128FD8 +_080A7034: .4byte gUnk_02000080 +_080A7038: .4byte gUnk_020350F0 +_080A703C: .4byte gLCDControls + + thumb_func_start sub_080A7040 +sub_080A7040: @ 0x080A7040 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _080A7090 @ =gUnk_02000080 + ldrh r0, [r1, #0x2e] + cmp r0, r5 + beq _080A708C + strh r5, [r1, #0x2e] + ldr r4, _080A7094 @ =gUnk_02022130 + movs r1, #0xc0 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0801D630 + ldr r0, _080A7098 @ =0xFFFFFE00 + adds r4, r4, r0 + ldr r1, _080A709C @ =0x0600E000 + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r4, #0 + bl sub_0801D66C + ldr r1, _080A70A0 @ =gUnk_08128D70 + lsls r0, r5, #3 + adds r4, r0, r1 + ldrb r0, [r4] + bl GetInventoryValue + cmp r0, #0 + beq _080A7082 + ldrh r0, [r4, #6] + ldr r1, _080A70A4 @ =gUnk_08129004 + bl sub_0805F46C +_080A7082: + ldr r0, _080A70A8 @ =gLCDControls + movs r1, #3 + strh r1, [r0, #0x18] + movs r1, #1 + strh r1, [r0, #0x1a] +_080A708C: + pop {r4, r5, pc} + .align 2, 0 +_080A7090: .4byte gUnk_02000080 +_080A7094: .4byte gUnk_02022130 +_080A7098: .4byte 0xFFFFFE00 +_080A709C: .4byte 0x0600E000 +_080A70A0: .4byte gUnk_08128D70 +_080A70A4: .4byte gUnk_08129004 +_080A70A8: .4byte gLCDControls + + thumb_func_start sub_080A70AC +sub_080A70AC: @ 0x080A70AC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A7110 @ =gUnk_0200AF34 + movs r1, #0xc0 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0801D630 + adds r2, r4, #0 + subs r2, #0x34 + movs r0, #0x7f + strb r0, [r2, #0x13] + strb r0, [r2, #0x14] + ldrb r0, [r5] + strh r0, [r2, #0x16] + movs r0, #1 + ldrsb r0, [r5, r0] + strh r0, [r2, #0x1c] + ldrb r1, [r5, #2] + subs r0, r4, #4 + strb r1, [r0] + ldrb r0, [r5, #3] + strh r0, [r2, #0x18] + movs r0, #4 + ldrsb r0, [r5, r0] + strh r0, [r2, #0x1e] + ldrb r1, [r5, #5] + subs r0, r4, #3 + strb r1, [r0] + ldrb r0, [r5, #6] + strh r0, [r2, #0x1a] + movs r0, #7 + ldrsb r0, [r5, r0] + strh r0, [r2, #0x20] + ldrb r0, [r5, #8] + subs r4, #2 + strb r0, [r4] + adds r5, #9 + movs r4, #1 + rsbs r4, r4, #0 +_080A70FC: + ldrb r0, [r5] + ldrb r1, [r5, #1] + bl sub_0801CA6C + adds r5, #2 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, r4 + bne _080A70FC + pop {r4, r5, pc} + .align 2, 0 +_080A7110: .4byte gUnk_0200AF34 + + thumb_func_start sub_080A7114 +sub_080A7114: @ 0x080A7114 + ldr r1, _080A7120 @ =gUnk_02000080 + movs r2, #0 + strb r0, [r1, #5] + strb r2, [r1, #6] + strb r2, [r1, #7] + bx lr + .align 2, 0 +_080A7120: .4byte gUnk_02000080 + + thumb_func_start sub_080A7124 +sub_080A7124: @ 0x080A7124 + push {lr} + ldr r0, _080A7134 @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_080A7134: .4byte gUnk_02032EC0 + + thumb_func_start sub_080A7138 +sub_080A7138: @ 0x080A7138 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r4, _080A715C @ =gUnk_02032EC0 + ldrb r0, [r4] + cmp r0, #0 + bne _080A7164 + movs r1, #0xed + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0801D630 + strb r5, [r4, #2] + strb r6, [r4, #3] + ldr r0, _080A7160 @ =gUnk_03001000 + ldrb r0, [r0, #4] + strb r0, [r4, #7] + b _080A716C + .align 2, 0 +_080A715C: .4byte gUnk_02032EC0 +_080A7160: .4byte gUnk_03001000 +_080A7164: + strb r5, [r4, #4] + strb r6, [r4, #5] + movs r0, #1 + strb r0, [r4] +_080A716C: + ldr r1, _080A7194 @ =gUnk_02032EC0 + movs r0, #0 + strb r0, [r1, #6] + ldr r0, _080A7198 @ =0x0000FFFF + strh r0, [r1, #8] + movs r4, #0 + movs r0, #0x20 + strh r0, [r1, #0xa] + ldr r1, _080A719C @ =gUnk_03001000 + movs r0, #7 + strb r0, [r1, #4] + movs r0, #5 + movs r1, #0x20 + bl sub_08050054 + ldr r0, _080A71A0 @ =gUnk_02018EB0 + strb r4, [r0] + strb r4, [r0, #1] + pop {r4, r5, r6, pc} + .align 2, 0 +_080A7194: .4byte gUnk_02032EC0 +_080A7198: .4byte 0x0000FFFF +_080A719C: .4byte gUnk_03001000 +_080A71A0: .4byte gUnk_02018EB0 + + thumb_func_start sub_080A71A4 +sub_080A71A4: @ 0x080A71A4 + push {r4, lr} + adds r4, r0, #0 + ldr r3, _080A71B4 @ =gUnk_02032EC0 + ldrb r0, [r3] + cmp r0, #0 + bne _080A71B8 + strb r2, [r3, #0xe] + b _080A71BA + .align 2, 0 +_080A71B4: .4byte gUnk_02032EC0 +_080A71B8: + strb r2, [r3, #0xf] +_080A71BA: + adds r0, r4, #0 + bl sub_080A7138 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A71C4 +sub_080A71C4: @ 0x080A71C4 + push {r4, r5, lr} + adds r4, r2, #0 + adds r5, r3, #0 + bl sub_080A7138 + ldr r0, _080A71D8 @ =gUnk_02032EC0 + strh r4, [r0, #8] + strh r5, [r0, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_080A71D8: .4byte gUnk_02032EC0 + + thumb_func_start sub_080A71DC +sub_080A71DC: @ 0x080A71DC + push {lr} + ldr r1, _080A71F0 @ =gUnk_02032EC0 + movs r0, #3 + strb r0, [r1] + movs r0, #5 + movs r1, #0x20 + bl sub_08050054 + pop {pc} + .align 2, 0 +_080A71F0: .4byte gUnk_02032EC0 + + thumb_func_start sub_080A71F4 +sub_080A71F4: @ 0x080A71F4 + push {lr} + cmp r0, #0 + beq _080A71FE + bl sub_08080840 +_080A71FE: + bl sub_0805E89C + bl sub_0805E974 + bl sub_0805E89C + ldr r0, _080A7218 @ =gUnk_03001000 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #3] + strb r2, [r0, #4] + pop {pc} + .align 2, 0 +_080A7218: .4byte gUnk_03001000 + + thumb_func_start sub_080A721C +sub_080A721C: @ 0x080A721C + push {lr} + ldr r0, _080A7248 @ =gUnk_02032EC0 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #2 + bhi _080A7238 + ldrb r3, [r2, #4] + cmp r3, #0 + beq _080A7238 + ldrb r0, [r2, #5] + movs r1, #0 + strb r0, [r2, #3] + strb r3, [r2, #2] + strb r1, [r2, #4] +_080A7238: + ldr r0, _080A724C @ =gUnk_0812901C + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A7248: .4byte gUnk_02032EC0 +_080A724C: .4byte gUnk_0812901C + + thumb_func_start sub_080A7250 +sub_080A7250: @ 0x080A7250 + push {r4, lr} + ldr r0, _080A72E8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A72E4 + ldr r0, _080A72EC @ =gLCDControls + ldr r1, _080A72F0 @ =gUnk_03001020 + movs r2, #0x7c + bl sub_0801D66C + ldr r0, _080A72F4 @ =gUnk_020176A0 + ldr r1, _080A72F8 @ =gUnk_02024090 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_0801D66C + ldr r0, _080A72FC @ =gUnk_02024490 + ldr r4, _080A7300 @ =gUnk_02032F14 + movs r2, #0x85 + lsls r2, r2, #2 + adds r1, r4, #0 + bl sub_0801D66C + ldr r0, _080A7304 @ =gUnk_02001A00 + movs r2, #0x85 + lsls r2, r2, #2 + adds r1, r4, r2 + movs r2, #0x40 + bl sub_0801D66C + ldr r0, _080A7308 @ =gRoomControls + adds r1, r4, #0 + subs r1, #0x38 + movs r2, #0x38 + bl sub_0801D66C + ldr r0, _080A730C @ =gUnk_03000420 + movs r2, #0x95 + lsls r2, r2, #2 + adds r1, r4, r2 + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_0801D66C + ldr r0, _080A7310 @ =gUnk_02033280 + movs r2, #0xd5 + lsls r2, r2, #2 + adds r1, r4, r2 + movs r2, #0xc + bl sub_0801D66C + bl sub_0805E958 + adds r1, r4, #0 + subs r1, #0x54 + ldr r0, _080A7314 @ =gUnk_030010A0 + adds r0, #0x2f + ldrb r0, [r0] + strb r0, [r1, #0xd] + ldr r0, _080A7318 @ =gUnk_03003F80 + adds r0, #0x8b + ldrb r0, [r0] + strb r0, [r1, #0xc] + ldr r0, _080A731C @ =gUnk_02017654 + ldr r0, [r0] + str r0, [r1, #0x10] + ldr r0, _080A7320 @ =gUnk_02025EB0 + ldr r0, [r0] + str r0, [r1, #0x14] + ldr r0, _080A7324 @ =gUnk_0200B650 + ldr r0, [r0] + str r0, [r1, #0x18] + movs r0, #1 + strb r0, [r1] +_080A72E4: + pop {r4, pc} + .align 2, 0 +_080A72E8: .4byte gUnk_03000FD0 +_080A72EC: .4byte gLCDControls +_080A72F0: .4byte gUnk_03001020 +_080A72F4: .4byte gUnk_020176A0 +_080A72F8: .4byte gUnk_02024090 +_080A72FC: .4byte gUnk_02024490 +_080A7300: .4byte gUnk_02032F14 +_080A7304: .4byte gUnk_02001A00 +_080A7308: .4byte gRoomControls +_080A730C: .4byte gUnk_03000420 +_080A7310: .4byte gUnk_02033280 +_080A7314: .4byte gUnk_030010A0 +_080A7318: .4byte gUnk_03003F80 +_080A731C: .4byte gUnk_02017654 +_080A7320: .4byte gUnk_02025EB0 +_080A7324: .4byte gUnk_0200B650 + + thumb_func_start sub_080A7328 +sub_080A7328: @ 0x080A7328 + push {r4, lr} + ldr r0, _080A7388 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A7384 + bl sub_0805E89C + ldr r0, _080A738C @ =gUnk_02000080 + movs r1, #0x30 + bl sub_0801D630 + ldr r0, _080A7390 @ =gRoomControls + movs r1, #0x38 + bl sub_0801D630 + ldr r0, _080A7394 @ =gUnk_03000420 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0801D630 + ldr r4, _080A7398 @ =gUnk_02033280 + adds r0, r4, #0 + movs r1, #0xc + bl sub_0801D630 + movs r0, #8 + strb r0, [r4, #8] + movs r0, #1 + bl sub_0801DA90 + bl sub_08056418 + bl sub_080ADD30 + movs r0, #0 + bl sub_0801CFA8 + ldr r0, _080A739C @ =gUnk_02024490 + movs r2, #1 + strb r2, [r0] + ldr r1, _080A73A0 @ =gUnk_02032EC0 + movs r0, #2 + strb r0, [r1] + ldr r0, _080A73A4 @ =gUnk_030010A0 + adds r0, #0x30 + strb r2, [r0] +_080A7384: + pop {r4, pc} + .align 2, 0 +_080A7388: .4byte gUnk_03000FD0 +_080A738C: .4byte gUnk_02000080 +_080A7390: .4byte gRoomControls +_080A7394: .4byte gUnk_03000420 +_080A7398: .4byte gUnk_02033280 +_080A739C: .4byte gUnk_02024490 +_080A73A0: .4byte gUnk_02032EC0 +_080A73A4: .4byte gUnk_030010A0 + + thumb_func_start sub_080A73A8 +sub_080A73A8: @ 0x080A73A8 + push {r4, r5, lr} + ldr r0, _080A7468 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A73B4 + b _080A74BC +_080A73B4: + bl sub_0805E89C + bl sub_0805E974 + ldr r1, _080A746C @ =gUnk_02017654 + ldr r5, _080A7470 @ =gUnk_02032EC0 + ldr r0, [r5, #0x10] + str r0, [r1] + ldr r0, _080A7474 @ =gUnk_03003F80 + ldrb r1, [r5, #0xc] + adds r0, #0x8b + strb r1, [r0] + ldr r1, _080A7478 @ =gUnk_02025EB0 + ldr r0, [r5, #0x14] + str r0, [r1] + ldr r1, _080A747C @ =gUnk_0200B650 + ldr r0, [r5, #0x18] + str r0, [r1] + movs r1, #0xea + lsls r1, r1, #2 + adds r0, r5, r1 + ldr r1, _080A7480 @ =gUnk_02033280 + movs r2, #0xc + bl sub_0801D66C + movs r1, #0xaa + lsls r1, r1, #2 + adds r0, r5, r1 + ldr r1, _080A7484 @ =gUnk_03000420 + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_0801D66C + movs r1, #0x9a + lsls r1, r1, #2 + adds r0, r5, r1 + ldr r1, _080A7488 @ =gUnk_02001A00 + movs r2, #0x40 + bl sub_0801D66C + adds r0, r5, #0 + adds r0, #0x54 + ldr r1, _080A748C @ =gUnk_02024490 + movs r2, #0x85 + lsls r2, r2, #2 + bl sub_0801D66C + adds r0, r5, #0 + adds r0, #0x1c + ldr r4, _080A7490 @ =gRoomControls + adds r1, r4, #0 + movs r2, #0x38 + bl sub_0801D66C + ldr r0, _080A7494 @ =gUnk_03001020 + ldr r1, _080A7498 @ =gLCDControls + movs r2, #0x7c + bl sub_0801D66C + ldrb r0, [r4, #4] + bl sub_08052D58 + ldr r4, _080A749C @ =gUnk_02033A90 + strh r0, [r4, #4] + bl sub_08052E8C + ldr r1, _080A74A0 @ =0x0000085C + adds r4, r4, r1 + str r0, [r4] + ldrb r0, [r5, #6] + bl sub_080527FC + ldrb r1, [r5, #0xd] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bl sub_0801D000 + bl sub_080A74F4 + ldrh r1, [r5, #8] + ldr r0, _080A74A4 @ =0x0000FFFF + cmp r1, r0 + beq _080A74A8 + adds r0, r1, #0 + ldrh r1, [r5, #0xa] + bl sub_08050054 + b _080A74AE + .align 2, 0 +_080A7468: .4byte gUnk_03000FD0 +_080A746C: .4byte gUnk_02017654 +_080A7470: .4byte gUnk_02032EC0 +_080A7474: .4byte gUnk_03003F80 +_080A7478: .4byte gUnk_02025EB0 +_080A747C: .4byte gUnk_0200B650 +_080A7480: .4byte gUnk_02033280 +_080A7484: .4byte gUnk_03000420 +_080A7488: .4byte gUnk_02001A00 +_080A748C: .4byte gUnk_02024490 +_080A7490: .4byte gRoomControls +_080A7494: .4byte gUnk_03001020 +_080A7498: .4byte gLCDControls +_080A749C: .4byte gUnk_02033A90 +_080A74A0: .4byte 0x0000085C +_080A74A4: .4byte 0x0000FFFF +_080A74A8: + ldrh r0, [r5, #0xa] + bl sub_080500F4 +_080A74AE: + ldr r1, _080A74C0 @ =gUnk_02032EC0 + movs r2, #0 + movs r0, #4 + strb r0, [r1] + ldr r0, _080A74C4 @ =gUnk_030010A0 + adds r0, #0x30 + strb r2, [r0] +_080A74BC: + pop {r4, r5, pc} + .align 2, 0 +_080A74C0: .4byte gUnk_02032EC0 +_080A74C4: .4byte gUnk_030010A0 + + thumb_func_start sub_080A74C8 +sub_080A74C8: @ 0x080A74C8 + push {lr} + bl sub_080A74F4 + ldr r0, _080A74E8 @ =gUnk_03000FD0 + ldrb r3, [r0] + cmp r3, #0 + bne _080A74E6 + ldr r0, _080A74EC @ =gUnk_03001000 + ldr r1, _080A74F0 @ =gUnk_02032EC0 + ldrb r2, [r1, #7] + strb r2, [r0, #4] + strb r3, [r1] + strb r3, [r1, #2] + bl sub_0805E5B4 +_080A74E6: + pop {pc} + .align 2, 0 +_080A74E8: .4byte gUnk_03000FD0 +_080A74EC: .4byte gUnk_03001000 +_080A74F0: .4byte gUnk_02032EC0 + + thumb_func_start sub_080A74F4 +sub_080A74F4: @ 0x080A74F4 + push {lr} + bl sub_0805E5A8 + ldr r1, _080A7524 @ =gUnk_03001000 + movs r0, #0 + strb r0, [r1, #0xb] + bl sub_080AD90C + bl sub_0805E5C0 + bl sub_0805E5F8 + bl sub_0801C344 + bl sub_0801C208 + bl sub_08078CB4 + bl sub_080AD9B0 + bl sub_080AD918 + pop {pc} + .align 2, 0 +_080A7524: .4byte gUnk_03001000 + + thumb_func_start sub_080A7528 +sub_080A7528: @ 0x080A7528 + push {lr} + ldr r1, _080A753C @ =gUnk_08129030 + ldr r0, _080A7540 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A753C: .4byte gUnk_08129030 +_080A7540: .4byte gUnk_02032EC0 + + thumb_func_start sub_080A7544 +sub_080A7544: @ 0x080A7544 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A7584 @ =gUnk_0812905C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080A7582 + ldr r1, _080A7588 @ =gLinkEntity + adds r0, r4, #0 + bl sub_08078E84 + ldr r1, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x62 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + ldr r1, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x63 + ldrb r0, [r0] + ldrb r2, [r1, #1] + adds r0, r0, r2 + strb r0, [r1, #1] +_080A7582: + pop {r4, pc} + .align 2, 0 +_080A7584: .4byte gUnk_0812905C +_080A7588: .4byte gLinkEntity + + thumb_func_start sub_080A758C +sub_080A758C: @ 0x080A758C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _080A75AC + ldr r1, _080A7654 @ =gUnk_03003F80 + ldrb r0, [r1, #4] + cmp r0, #0 + bne _080A75AC + ldrb r1, [r1, #2] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080A75AC + bl sub_0805E780 +_080A75AC: + adds r0, r5, #0 + bl sub_0806FBD8 + cmp r0, #0 + bne _080A75BA + bl sub_0805E780 +_080A75BA: + adds r0, r5, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + ldr r1, _080A7658 @ =gLinkEntity + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + movs r2, #0x20 + adds r3, r5, #0 + adds r3, #0x3c + movs r4, #0 + orrs r0, r2 + strb r0, [r3] + adds r1, #0x3b + ldrb r0, [r1] + adds r1, r5, #0 + adds r1, #0x3b + strb r0, [r1] + ldrb r1, [r5, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r5, #0x11] + adds r0, r5, #0 + adds r0, #0x41 + strb r4, [r0] + subs r0, #4 + strb r4, [r0] + adds r0, #5 + strb r4, [r0] + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + movs r0, #0xff + strb r0, [r5, #0x1e] + adds r0, r5, #0 + bl sub_0801766C + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _080A76BC + ldr r2, _080A7654 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A767A + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #2 + strb r0, [r5, #0xb] + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + adds r0, #8 + adds r1, r5, #0 + adds r1, #0x44 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #1 + beq _080A765C + cmp r0, #6 + bne _080A7664 + subs r1, #4 + movs r0, #0x1a + b _080A766A + .align 2, 0 +_080A7654: .4byte gUnk_03003F80 +_080A7658: .4byte gLinkEntity +_080A765C: + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0x18 + b _080A766A +_080A7664: + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0x19 +_080A766A: + strb r0, [r1] + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_080A7824 + b _080A7692 +_080A767A: + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + adds r0, #4 + adds r1, r5, #0 + adds r1, #0x44 + strb r0, [r1] + adds r0, r5, #0 + bl sub_080A76CC +_080A7692: + ldr r0, _080A76B0 @ =gUnk_03003F80 + str r5, [r0, #0x2c] + adds r0, r5, #0 + bl sub_08079BD8 + ldr r4, _080A76B4 @ =gUnk_0812906C + ldr r0, _080A76B8 @ =gUnk_08129068 + bl sub_080028F4 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_080A3268 + b _080A76C2 + .align 2, 0 +_080A76B0: .4byte gUnk_03003F80 +_080A76B4: .4byte gUnk_0812906C +_080A76B8: .4byte gUnk_08129068 +_080A76BC: + adds r0, r5, #0 + bl sub_080A76CC +_080A76C2: + movs r0, #0x87 + lsls r0, r0, #1 + bl sub_080A3268 + pop {r4, r5, pc} + + thumb_func_start sub_080A76CC +sub_080A76CC: @ 0x080A76CC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A76D8 + b _080A77DC +_080A76D8: + ldr r5, _080A771C @ =gUnk_03003F80 + ldr r0, [r5, #0x2c] + cmp r0, r4 + beq _080A76E4 + bl sub_0805E780 +_080A76E4: + ldrb r0, [r5, #4] + cmp r0, #0 + bne _080A76F2 + str r0, [r5, #0x2c] + strb r0, [r5, #0x1b] + bl sub_0805E780 +_080A76F2: + ldrb r2, [r5, #0x1b] + cmp r2, #0 + beq _080A7744 + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0xd + strb r0, [r1] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080A7728 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #1 + beq _080A7720 + cmp r0, #6 + bne _080A7724 + movs r0, #0xa + b _080A7726 + .align 2, 0 +_080A771C: .4byte gUnk_03003F80 +_080A7720: + movs r0, #8 + b _080A7726 +_080A7724: + movs r0, #9 +_080A7726: + strb r0, [r1] +_080A7728: + ldr r0, _080A7740 @ =gLinkEntity + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A77C4 + movs r0, #0x8b + lsls r0, r0, #1 + bl sub_080A3268 + b _080A77C4 + .align 2, 0 +_080A7740: .4byte gLinkEntity +_080A7744: + ldr r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x14 + ands r0, r1 + cmp r0, #0 + beq _080A776A + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #6 + bne _080A7762 + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0xc + b _080A7768 +_080A7762: + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0xb +_080A7768: + strb r0, [r1] +_080A776A: + ldr r0, _080A77D0 @ =gUnk_03003F80 + adds r0, #0x3e + ldrb r0, [r0] + movs r2, #3 + ands r2, r0 + cmp r2, #0 + beq _080A77C4 + ldr r0, _080A77D4 @ =gLinkEntity + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A77C4 + movs r1, #0x12 + cmp r2, #1 + bne _080A778E + movs r1, #0x14 +_080A778E: + adds r0, r4, #0 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _080A77C4 + ldrb r1, [r4, #0x1e] + lsls r1, r1, #1 + ldr r0, _080A77D8 @ =gUnk_081292E2 + adds r1, r1, r0 + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r3, [r4, #0x32] + adds r0, r0, r3 + strh r0, [r2, #0x32] + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080A77BE + rsbs r1, r1, #0 +_080A77BE: + ldrh r0, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] +_080A77C4: + ldr r1, _080A77D4 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080A78B8 + b _080A7806 + .align 2, 0 +_080A77D0: .4byte gUnk_03003F80 +_080A77D4: .4byte gLinkEntity +_080A77D8: .4byte gUnk_081292E2 +_080A77DC: + ldr r1, _080A7810 @ =gUnk_03003F80 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _080A7814 + ldr r0, [r1, #0x2c] + adds r2, r0, #0 + adds r2, #0x40 + ldrb r0, [r2] + cmp r0, #0 + beq _080A7814 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r2] + adds r0, r4, #0 + adds r0, #0x40 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080A7A54 +_080A7806: + adds r0, r4, #0 + bl sub_080A7A84 + b _080A7820 + .align 2, 0 +_080A7810: .4byte gUnk_03003F80 +_080A7814: + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080A7820: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A7824 +sub_080A7824: @ 0x080A7824 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _080A7860 @ =gUnk_03003F80 + ldr r0, [r5, #0x2c] + cmp r0, r4 + beq _080A7834 + bl sub_0805E780 +_080A7834: + ldrb r0, [r5, #4] + cmp r0, #0 + beq _080A78AE + ldrb r0, [r5, #2] + cmp r0, #0 + bne _080A7846 + str r0, [r5, #0x2c] + bl sub_0805E780 +_080A7846: + ldr r2, _080A7864 @ =gLinkEntity + adds r6, r2, #0 + adds r6, #0x5a + ldrb r1, [r6] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A7868 + movs r0, #0 + str r0, [r5, #0x2c] + bl sub_0805E780 + b _080A78B4 + .align 2, 0 +_080A7860: .4byte gUnk_03003F80 +_080A7864: .4byte gLinkEntity +_080A7868: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080A78B8 + ldrb r1, [r6] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A7880 + movs r0, #0x77 + bl sub_080A3268 +_080A7880: + ldrb r0, [r4, #0x1e] + cmp r0, #0x8a + bls _080A788A + movs r0, #0xff + strb r0, [r4, #0x1e] +_080A788A: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A78A4 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_080A7B98 + b _080A78B4 +_080A78A4: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _080A78B4 +_080A78AE: + str r0, [r5, #0x2c] + bl sub_0805E780 +_080A78B4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A78B8 +sub_080A78B8: @ 0x080A78B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, _080A78E8 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A78FC + ldrb r0, [r6, #0x1e] + subs r0, #0x6a + strb r0, [r4, #0x1e] + ldr r0, _080A78EC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _080A78F0 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #0xb1 + b _080A78F2 + .align 2, 0 +_080A78E8: .4byte gUnk_03003F80 +_080A78EC: .4byte gUnk_030010A0 +_080A78F0: + ldrb r1, [r4, #0x1e] +_080A78F2: + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 + b _080A7912 +_080A78FC: + ldrb r0, [r6, #0x1e] + subs r0, #0x6a + ldrb r1, [r4, #0x1e] + cmp r0, r1 + beq _080A7912 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_080A7912: + ldr r2, _080A792C @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0x40 + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0 + beq _080A7930 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _080A7958 + .align 2, 0 +_080A792C: .4byte gUnk_03003F80 +_080A7930: + ldrb r1, [r6, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080A7946 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1f + movs r0, #1 + eors r2, r0 + b _080A794C +_080A7946: + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1f +_080A794C: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 +_080A7958: + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + mov r8, r2 + adds r5, r4, #0 + adds r5, #0x3d + cmp r0, #0 + beq _080A7A1C + adds r3, r6, #0 + adds r3, #0x3d + ldrb r0, [r3] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7980 + lsrs r0, r0, #0x18 + cmp r0, #0x81 + bne _080A79AE +_080A7980: + adds r2, r4, #0 + adds r2, #0x3d + ldrb r0, [r2] + movs r1, #0 + strb r0, [r3] + adds r5, r4, #0 + adds r5, #0x3e + ldrb r0, [r5] + adds r3, r6, #0 + adds r3, #0x3e + strb r0, [r3] + movs r3, #0x42 + adds r3, r3, r4 + mov ip, r3 + ldrb r0, [r3] + adds r3, r6, #0 + adds r3, #0x42 + strb r0, [r3] + mov r0, ip + strb r1, [r0] + strb r1, [r5] + strb r1, [r2] + adds r5, r2, #0 +_080A79AE: + ldr r0, [r7, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x14 + ands r0, r1 + cmp r0, #0 + beq _080A79C4 + ldrb r1, [r7, #0x1b] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x1b] + b _080A7A1C +_080A79C4: + ldrb r0, [r7, #0x1b] + cmp r0, #0 + beq _080A7A1C + mov r1, r8 + ldrb r0, [r1] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x43 + beq _080A79E6 + cmp r1, #0x43 + bgt _080A79E0 + cmp r1, #0xd + beq _080A79E6 + b _080A7A08 +_080A79E0: + cmp r1, #0x44 + bne _080A7A08 + b _080A7A1C +_080A79E6: + ldrb r1, [r7, #0x1b] + movs r0, #8 + orrs r0, r1 + strb r0, [r7, #0x1b] + adds r1, r6, #0 + adds r1, #0x42 + movs r0, #2 + strb r0, [r1] + ldrb r1, [r7, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080A7A1C + movs r0, #0xfe + ands r0, r1 + strb r0, [r7, #0x1b] + b _080A7A1C +_080A7A08: + ldrb r0, [r7, #0x1b] + movs r1, #0xc0 + ands r1, r0 + cmp r1, #0 + bne _080A7A1C + strb r1, [r7, #0x1b] + strb r1, [r7, #4] + str r1, [r7, #0x2c] + bl sub_0805E780 +_080A7A1C: + adds r1, r5, #0 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _080A7A36 + cmp r2, #0 + ble _080A7A32 + subs r0, #1 + strb r0, [r1] + b _080A7A36 +_080A7A32: + adds r0, #1 + strb r0, [r5] +_080A7A36: + adds r0, r4, #0 + bl sub_080A7A54 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080A7A4C + ldr r1, [r4, #0x48] + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] +_080A7A4C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080A7A54 +sub_080A7A54: @ 0x080A7A54 + ldr r1, _080A7A7C @ =gLinkEntity + ldrb r1, [r1, #0x1e] + subs r1, #0x6a + lsls r1, r1, #2 + ldr r2, _080A7A80 @ =gUnk_08129096 + adds r1, r1, r2 + ldr r3, [r0, #0x48] + ldrb r2, [r1] + strb r2, [r3] + ldr r3, [r0, #0x48] + ldrb r2, [r1, #1] + strb r2, [r3, #1] + ldr r3, [r0, #0x48] + ldrb r2, [r1, #2] + strb r2, [r3, #6] + ldr r2, [r0, #0x48] + ldrb r0, [r1, #3] + strb r0, [r2, #7] + bx lr + .align 2, 0 +_080A7A7C: .4byte gLinkEntity +_080A7A80: .4byte gUnk_08129096 + + thumb_func_start sub_080A7A84 +sub_080A7A84: @ 0x080A7A84 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r6, _080A7AE0 @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + beq _080A7B8C + ldr r2, _080A7AE4 @ =gUnk_08129072 + subs r0, r1, #1 + lsls r0, r0, #1 + adds r1, r0, r2 + movs r3, #0 + ldrsb r3, [r1, r3] + adds r0, #1 + adds r0, r0, r2 + movs r5, #0 + ldrsb r5, [r0, r5] + ldr r2, _080A7AE8 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0xc0 + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0 + bne _080A7AC4 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080A7AC4 + rsbs r3, r3, #0 +_080A7AC4: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A7AEC + movs r0, #0x2e + ldrsh r2, [r4, r0] + adds r2, r2, r3 + movs r1, #0x32 + ldrsh r3, [r4, r1] + adds r3, r3, r5 + adds r0, r4, #0 + movs r1, #0 + bl sub_08008796 + b _080A7B8C + .align 2, 0 +_080A7AE0: .4byte gLinkEntity +_080A7AE4: .4byte gUnk_08129072 +_080A7AE8: .4byte gUnk_03003F80 +_080A7AEC: + ldr r0, [r4, #0x34] + cmp r0, #0 + bne _080A7B8C + adds r0, r7, #0 + adds r0, #0xac + ldrh r0, [r0] + movs r1, #8 + ands r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + rsbs r1, r1, #0 + lsrs r1, r1, #0x1f + movs r0, #0x2e + ldrsh r2, [r4, r0] + adds r6, r3, #0 + adds r2, r2, r6 + movs r0, #0x32 + ldrsh r3, [r4, r0] + adds r3, r3, r5 + adds r0, r4, #0 + bl sub_08008796 + cmp r0, #0 + bne _080A7B8C + ldrb r2, [r7, #0x1b] + cmp r2, #0 + beq _080A7B8C + movs r0, #0xc0 + ands r0, r2 + cmp r0, #0 + bne _080A7B8C + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_080002B4 + cmp r0, #0x2e + bne _080A7B4C + ldr r0, _080A7B44 @ =gLinkEntity + ldr r1, _080A7B48 @ =0x00000119 + bl sub_0800449C + b _080A7B54 + .align 2, 0 +_080A7B44: .4byte gLinkEntity +_080A7B48: .4byte 0x00000119 +_080A7B4C: + ldr r0, _080A7B90 @ =gLinkEntity + movs r1, #0x74 + bl sub_0800449C +_080A7B54: + movs r0, #0xf + movs r1, #0x1a + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _080A7B8C + ldr r1, _080A7B94 @ =gUnk_0812908E + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r0, [r4, #0x34] + str r0, [r2, #0x34] +_080A7B8C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A7B90: .4byte gLinkEntity +_080A7B94: .4byte gUnk_0812908E + + thumb_func_start sub_080A7B98 +sub_080A7B98: @ 0x080A7B98 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + ldr r0, _080A7BFC @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + rsbs r0, r0, #0 + lsrs r0, r0, #0x1f + mov sl, r0 + movs r7, #0x10 + rsbs r7, r7, #0 + movs r0, #0 +_080A7BBE: + movs r5, #0x10 + rsbs r5, r5, #0 + movs r4, #0 + movs r1, #0x10 + adds r1, r1, r7 + mov sb, r1 + adds r0, #1 + mov r8, r0 +_080A7BCE: + movs r0, #0x2e + ldrsh r2, [r6, r0] + adds r2, r2, r5 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r3, r3, r7 + adds r0, r6, #0 + mov r1, sl + bl sub_08008796 + adds r5, #0x10 + adds r4, #1 + cmp r4, #2 + bls _080A7BCE + mov r7, sb + mov r0, r8 + cmp r0, #2 + bls _080A7BBE + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A7BFC: .4byte gUnk_03003F80 + + thumb_func_start sub_080A7C00 +sub_080A7C00: @ 0x080A7C00 + push {r4, lr} + bl sub_080A7C38 + adds r4, r0, #0 + cmp r4, #0 + beq _080A7C16 + ldrb r1, [r4, #0xa] + movs r2, #0 + bl sub_080A276C + str r0, [r4, #0x50] +_080A7C16: + pop {r4, pc} + + thumb_func_start sub_080A7C18 +sub_080A7C18: @ 0x080A7C18 + push {lr} + bl sub_080A7C38 + adds r2, r0, #0 + cmp r2, #0 + beq _080A7C32 + ldr r0, _080A7C34 @ =gLinkEntity + str r0, [r2, #0x50] + ldrb r1, [r2, #0xa] + adds r0, r2, #0 + movs r2, #0 + bl sub_08078AF0 +_080A7C32: + pop {pc} + .align 2, 0 +_080A7C34: .4byte gLinkEntity + + thumb_func_start sub_080A7C38 +sub_080A7C38: @ 0x080A7C38 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + cmp r5, #0x3f + bne _080A7C52 + ldr r0, _080A7C78 @ =gUnk_02002A40 + adds r0, #0xbb + ldrb r0, [r0] + cmp r0, #0 + beq _080A7C52 + movs r5, #0x57 + movs r6, #0 +_080A7C52: + bl sub_0805E744 + adds r4, r0, #0 + cmp r4, #0 + beq _080A7C72 + strb r5, [r4, #0xa] + strb r6, [r4, #0xb] + strb r7, [r4, #0xe] + movs r0, #0xb + strb r0, [r4, #9] + movs r0, #6 + strb r0, [r4, #8] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EA2C +_080A7C72: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A7C78: .4byte gUnk_02002A40 + + thumb_func_start sub_080A7C7C +sub_080A7C7C: @ 0x080A7C7C + push {lr} + ldr r0, _080A7C88 @ =gUnk_02017660 + movs r1, #0x40 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_080A7C88: .4byte gUnk_02017660 + + thumb_func_start sub_080A7C8C +sub_080A7C8C: @ 0x080A7C8C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r4, _080A7C9C @ =gUnk_02017660 + movs r2, #0 + movs r1, #0 + b _080A7CA8 + .align 2, 0 +_080A7C9C: .4byte gUnk_02017660 +_080A7CA0: + adds r1, #1 + adds r4, #8 + cmp r1, #7 + bhi _080A7CB0 +_080A7CA8: + ldrh r0, [r4, #4] + cmp r0, r5 + bne _080A7CA0 + movs r2, #1 +_080A7CB0: + lsrs r1, r6, #1 + ldrb r0, [r4, #6] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + cmp r1, r0 + bne _080A7CF4 + cmp r2, #0 + beq _080A7CD2 + ldrb r0, [r4, #1] + bl sub_0807CCB4 + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + movs r2, #0 + bl sub_080A7C00 + b _080A7CDC +_080A7CD2: + movs r0, #0x60 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 +_080A7CDC: + movs r0, #0x74 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0807B7D8 + movs r0, #0 + movs r1, #0x78 + bl sub_0805E4E0 + ldr r0, _080A7CF8 @ =0x0000011B + bl sub_080A3268 +_080A7CF4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A7CF8: .4byte 0x0000011B + + thumb_func_start sub_080A7CFC +sub_080A7CFC: @ 0x080A7CFC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0xc0 + lsls r4, r4, #3 + movs r6, #0 + movs r0, #3 + bl sub_0804B128 + adds r1, r0, #0 + cmp r1, #0 + beq _080A7D38 +_080A7D12: + ldrh r0, [r1, #4] + cmp r0, r5 + bne _080A7D30 + ldrb r0, [r1] + cmp r0, #5 + beq _080A7D24 + cmp r0, #6 + beq _080A7D2A + b _080A7D38 +_080A7D24: + movs r6, #0 + ldrh r4, [r1, #6] + b _080A7D38 +_080A7D2A: + movs r6, #1 + ldrh r4, [r1, #6] + b _080A7D38 +_080A7D30: + adds r1, #8 + ldrh r0, [r1, #4] + cmp r0, #0 + bne _080A7D12 +_080A7D38: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080A7D44 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A7D44 +sub_080A7D44: @ 0x080A7D44 + push {lr} + cmp r1, #0 + beq _080A7D52 + movs r1, #0 + bl sub_08078AA8 + b _080A7D56 +_080A7D52: + bl TextboxTryNoOverlap +_080A7D56: + pop {pc} + + thumb_func_start sub_080A7D58 +sub_080A7D58: @ 0x080A7D58 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + lsls r0, r0, #4 + ldr r1, _080A7D78 @ =gUnk_0813210C + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, _080A7D7C @ =0x0000FFFF + cmp r1, r0 + bne _080A7D74 + ldrb r0, [r3, #0xa] + lsls r0, r0, #4 + ldr r1, [r2, #4] + adds r2, r1, r0 +_080A7D74: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_080A7D78: .4byte gUnk_0813210C +_080A7D7C: .4byte 0x0000FFFF + + thumb_func_start sub_080A7D80 +sub_080A7D80: @ 0x080A7D80 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080A7E4A + adds r0, r4, #0 + bl sub_080A7D58 + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080A7E50 + cmp r0, #0 + bne _080A7DA6 + movs r0, #0 + b _080A7E4C +_080A7DA6: + ldrb r1, [r4, #0x10] + movs r0, #1 + adds r2, r1, #0 + orrs r2, r0 + strb r2, [r4, #0x10] + ldrb r1, [r5, #0xa] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A7DC0 + movs r0, #0x80 + orrs r2, r0 + strb r2, [r4, #0x10] +_080A7DC0: + ldrh r0, [r5, #8] + lsls r0, r0, #0x14 + lsrs r0, r0, #0x14 + strh r0, [r4, #0x12] + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x1e + cmp r0, #0 + bne _080A7DE0 + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A7DE0: + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1a + ldrb r2, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r5, #0xa] + lsrs r1, r1, #6 + lsls r1, r1, #4 + ldrb r2, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080A7E14 + ldrh r0, [r5, #0xc] + strh r0, [r4, #0x24] +_080A7E14: + ldrb r0, [r5, #9] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r1, #7 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x3c + strb r0, [r1] + ldrb r0, [r5, #0xf] + subs r1, #1 + strb r0, [r1] + ldrb r0, [r5, #0xe] + adds r1, #4 + strb r0, [r1] + ldrb r1, [r5, #0xb] + adds r0, r4, #0 + adds r0, #0x40 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + ldr r0, [r5, #4] + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_08016A04 +_080A7E4A: + movs r0, #1 +_080A7E4C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A7E50 +sub_080A7E50: @ 0x080A7E50 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrh r2, [r5] + lsls r1, r2, #0x10 + cmp r1, #0 + beq _080A7EA2 + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _080A7E78 + ldr r0, _080A7E74 @ =0x000003FF + ands r0, r2 + adds r1, r4, #0 + adds r1, #0x60 + strh r0, [r1] + b _080A7EA2 + .align 2, 0 +_080A7E74: .4byte 0x000003FF +_080A7E78: + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r2 + cmp r0, #0 + beq _080A7E92 + lsrs r1, r1, #0x14 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _080A7E9A +_080A7E92: + ldrh r1, [r5] + adds r0, r4, #0 + bl sub_080ADF80 +_080A7E9A: + cmp r0, #0 + bne _080A7EA2 + movs r0, #0 + b _080A7EAC +_080A7EA2: + ldrh r1, [r5, #2] + adds r0, r4, #0 + bl sub_0801D040 + movs r0, #1 +_080A7EAC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A7EB0 +sub_080A7EB0: @ 0x080A7EB0 + push {lr} + adds r3, r0, #0 + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r2, _080A7ED8 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + ldrh r1, [r2, #0x1e] + cmp r0, r1 + bhi _080A7ED2 + movs r1, #0x32 + ldrsh r0, [r3, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + ldrh r2, [r2, #0x20] + cmp r0, r2 + bls _080A7EDC +_080A7ED2: + movs r0, #1 + b _080A7EDE + .align 2, 0 +_080A7ED8: .4byte gRoomControls +_080A7EDC: + movs r0, #0 +_080A7EDE: + pop {pc} + + thumb_func_start sub_080A7EE0 +sub_080A7EE0: @ 0x080A7EE0 + push {r4, r5, lr} + adds r5, r0, #0 + bl GetEmptyEntity + adds r4, r0, #0 + cmp r4, #0 + beq _080A7EFC + movs r0, #4 + strb r0, [r4, #8] + strb r5, [r4, #9] + adds r0, r4, #0 + movs r1, #5 + bl sub_0805EA2C +_080A7EFC: + adds r0, r4, #0 + pop {r4, r5, pc} + + thumb_func_start sub_080A7F00 +sub_080A7F00: @ 0x080A7F00 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A7F26 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A7F80 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080A7F26 + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x14] + adds r1, #0x18 + adds r0, r4, #0 + bl sub_080042AC +_080A7F26: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080A7F34 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A7F38 +_080A7F34: + bl sub_0805E780 +_080A7F38: + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A7F56 + ldr r1, [r4, #0x4c] + ldr r0, _080A7F7C @ =gLinkEntity + cmp r1, r0 + bne _080A7F56 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xd3 + strb r0, [r1] +_080A7F56: + movs r0, #0 + strb r0, [r2] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + adds r0, r4, #0 + bl sub_080A7F9C + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080A7F7A + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080042B8 +_080A7F7A: + pop {r4, pc} + .align 2, 0 +_080A7F7C: .4byte gLinkEntity + + thumb_func_start sub_080A7F80 +sub_080A7F80: @ 0x080A7F80 + ldr r3, _080A7F98 @ =gUnk_081293B8 + ldr r2, [r0, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + ldrb r2, [r2, #0xa] + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + adds r0, #0x3f + strb r1, [r0] + bx lr + .align 2, 0 +_080A7F98: .4byte gUnk_081293B8 + + thumb_func_start sub_080A7F9C +sub_080A7F9C: @ 0x080A7F9C + push {lr} + ldr r2, _080A7FB0 @ =gUnk_081293CC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A7FB0: .4byte gUnk_081293CC + + thumb_func_start sub_080A7FB4 +sub_080A7FB4: @ 0x080A7FB4 + ldr r1, [r0, #0x50] + ldr r3, _080A7FD4 @ =gUnk_081293E0 + ldrb r2, [r1, #0x14] + lsls r2, r2, #2 + adds r2, r2, r3 + adds r1, #0x5a + ldrb r3, [r1] + movs r1, #0xf + ands r1, r3 + ldr r2, [r2] + lsls r1, r1, #2 + adds r1, r1, r2 + subs r1, #4 + ldr r1, [r1] + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A7FD4: .4byte gUnk_081293E0 + + thumb_func_start sub_080A7FD8 +sub_080A7FD8: @ 0x080A7FD8 + ldr r1, [r0, #0x50] + ldr r2, _080A7FE8 @ =gUnk_081293F0 + ldrb r1, [r1, #0x14] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A7FE8: .4byte gUnk_081293F0 + + thumb_func_start sub_080A7FEC +sub_080A7FEC: @ 0x080A7FEC + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x50] + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080A8008 + ldr r0, _080A8004 @ =gUnk_08129410 + b _080A800A + .align 2, 0 +_080A8004: .4byte gUnk_08129410 +_080A8008: + ldr r0, _080A8018 @ =gUnk_08129400 +_080A800A: + ldrb r1, [r2, #0x14] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r3, #0x48] + pop {pc} + .align 2, 0 +_080A8018: .4byte gUnk_08129400 + + thumb_func_start sub_080A801C +sub_080A801C: @ 0x080A801C + ldr r1, [r0, #0x50] + ldr r2, _080A802C @ =gUnk_08129420 + ldrb r1, [r1, #0x14] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A802C: .4byte gUnk_08129420 + + thumb_func_start sub_080A8030 +sub_080A8030: @ 0x080A8030 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8048 @ =gUnk_081295D0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8048: .4byte gUnk_081295D0 + + thumb_func_start sub_080A804C +sub_080A804C: @ 0x080A804C + push {lr} + ldr r2, _080A8060 @ =gUnk_081295E4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A8060: .4byte gUnk_081295E4 + + thumb_func_start sub_080A8064 +sub_080A8064: @ 0x080A8064 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A8078 + adds r0, r1, #0 + bl sub_0805E7BC + b _080A8086 +_080A8078: + adds r0, r1, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r1, #0x15] + adds r0, r1, #0 + bl sub_080A8178 +_080A8086: + pop {pc} + + thumb_func_start sub_080A8088 +sub_080A8088: @ 0x080A8088 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x30 + strb r1, [r0, #0xe] + movs r1, #0xa0 + lsls r1, r1, #8 + str r1, [r0, #0x20] + movs r1, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_080A80A0 +sub_080A80A0: @ 0x080A80A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + beq _080A80DC + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A80C4 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A80F0 +_080A80C4: + adds r0, r4, #0 + bl sub_08016AD2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A80F0 + movs r0, #3 + strb r0, [r4, #0xc] + b _080A80F0 +_080A80DC: + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_080A8178 + adds r0, r4, #0 + bl sub_08016AD2 +_080A80F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A80F4 +sub_080A80F4: @ 0x080A80F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A8116 + adds r0, r4, #0 + bl sub_0805E7BC +_080A8116: + pop {r4, pc} + + thumb_func_start sub_080A8118 +sub_080A8118: @ 0x080A8118 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _080A813A + cmp r0, #1 + beq _080A8142 + b _080A815A +_080A813A: + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8176 +_080A8142: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _080A8176 +_080A815A: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A8176 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A8176: + pop {r4, pc} + + thumb_func_start sub_080A8178 +sub_080A8178: @ 0x080A8178 + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x40 + strh r1, [r0, #0x24] + movs r1, #0xa0 + lsls r1, r1, #9 + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_080A8190 +sub_080A8190: @ 0x080A8190 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A81A8 @ =gUnk_0812960C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A81A8: .4byte gUnk_0812960C + + thumb_func_start sub_080A81AC +sub_080A81AC: @ 0x080A81AC + push {lr} + ldr r2, _080A81C0 @ =gUnk_08129620 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A81C0: .4byte gUnk_08129620 + + thumb_func_start sub_080A81C4 +sub_080A81C4: @ 0x080A81C4 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A81D8 + adds r0, r1, #0 + bl sub_0805E7BC + b _080A81DE +_080A81D8: + adds r0, r1, #0 + bl sub_080A82D8 +_080A81DE: + pop {pc} + + thumb_func_start sub_080A81E0 +sub_080A81E0: @ 0x080A81E0 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + ldr r1, _080A81F8 @ =0x0000FFFE + strh r1, [r0, #0x36] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 +_080A81F8: .4byte 0x0000FFFE + + thumb_func_start sub_080A81FC +sub_080A81FC: @ 0x080A81FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + bne _080A8240 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8222 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8246 +_080A8222: + adds r0, r4, #0 + bl sub_08016AD2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A8246 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _080A8246 +_080A8240: + adds r0, r4, #0 + bl sub_080A82D8 +_080A8246: + pop {r4, pc} + + thumb_func_start sub_080A8248 +sub_080A8248: @ 0x080A8248 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A827A + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xe0 + strh r0, [r4, #0x24] + movs r0, #0xe0 + lsls r0, r0, #8 + str r0, [r4, #0x20] +_080A827A: + pop {r4, pc} + + thumb_func_start sub_080A827C +sub_080A827C: @ 0x080A827C + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _080A82B2 + adds r0, r4, #0 + bl sub_0805E7BC +_080A82B2: + pop {r4, pc} + + thumb_func_start sub_080A82B4 +sub_080A82B4: @ 0x080A82B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A82D6 + adds r0, r4, #0 + bl sub_0805E7BC +_080A82D6: + pop {r4, pc} + + thumb_func_start sub_080A82D8 +sub_080A82D8: @ 0x080A82D8 + movs r1, #4 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x80 + lsls r1, r1, #9 + str r1, [r0, #0x20] + ldrb r1, [r0, #0x15] + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + movs r1, #0x80 + strh r1, [r0, #0x24] + bx lr + + thumb_func_start sub_080A82F8 +sub_080A82F8: @ 0x080A82F8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8310 @ =gUnk_08129650 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8310: .4byte gUnk_08129650 + + thumb_func_start sub_080A8314 +sub_080A8314: @ 0x080A8314 + push {lr} + ldr r2, _080A8328 @ =gUnk_08129664 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A8328: .4byte gUnk_08129664 + + thumb_func_start sub_080A832C +sub_080A832C: @ 0x080A832C + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x41 + ldrb r0, [r2] + cmp r0, #0x80 + bne _080A8358 + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0x10 + strb r0, [r1] + adds r1, #5 + movs r0, #0xc + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + ldr r0, [r3, #0x50] + ldrb r1, [r2] + adds r0, #0x41 + strb r1, [r0] +_080A8358: + adds r0, r3, #0 + adds r0, #0x3d + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A836A + ldr r0, [r3, #0x50] + b _080A836E +_080A836A: + ldr r0, [r3, #0x50] + rsbs r1, r1, #0 +_080A836E: + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r3, #0x50] + movs r1, #0x42 + adds r1, r1, r3 + mov ip, r1 + ldrb r1, [r1] + adds r0, #0x42 + strb r1, [r0] + ldr r0, [r3, #0x50] + adds r1, r3, #0 + adds r1, #0x46 + ldrh r1, [r1] + adds r0, #0x46 + movs r2, #0 + strh r1, [r0] + ldr r0, [r3, #0x50] + adds r1, r3, #0 + adds r1, #0x3e + ldrb r1, [r1] + adds r0, #0x3e + strb r1, [r0] + mov r0, ip + strb r2, [r0] + pop {pc} + + thumb_func_start sub_080A83A0 +sub_080A83A0: @ 0x080A83A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBD8 + cmp r0, #0 + beq _080A83B0 + movs r0, #1 + strb r0, [r4, #0xc] +_080A83B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A83B4 +sub_080A83B4: @ 0x080A83B4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A83C2 + bl sub_0805E780 +_080A83C2: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A83CC + bl sub_0805E780 +_080A83CC: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x18 + ldr r1, _080A8424 @ =gUnk_0812966C + adds r2, r0, r1 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r0, r5, #0 + adds r0, #0x5b + ldrb r0, [r0] + cmp r0, #0x40 + bne _080A83F4 + ldr r1, [r4, #0x48] + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] +_080A83F4: + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1, #1] + adds r2, #1 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #7] + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080A8428 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8438 + movs r0, #0x7f + ands r0, r1 + b _080A8436 + .align 2, 0 +_080A8424: .4byte gUnk_0812966C +_080A8428: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A8438 + movs r0, #0x80 + orrs r0, r1 +_080A8436: + strb r0, [r4, #0x10] +_080A8438: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A843C +sub_080A843C: @ 0x080A843C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8454 @ =gUnk_081296F0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8454: .4byte gUnk_081296F0 + + thumb_func_start sub_080A8458 +sub_080A8458: @ 0x080A8458 + push {lr} + ldr r2, _080A846C @ =gUnk_08129704 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A846C: .4byte gUnk_08129704 + + thumb_func_start sub_080A8470 +sub_080A8470: @ 0x080A8470 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r0, [r2] + cmp r0, #0x80 + bne _080A8496 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x68 + bne _080A848E + movs r0, #0x86 + bl sub_08004488 +_080A848E: + adds r0, r4, #0 + bl sub_0805E7BC + b _080A84C6 +_080A8496: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r2] + adds r0, #0x7e + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080A84B8 + adds r0, r4, #0 + bl sub_080A8680 + b _080A84C6 +_080A84B8: + adds r0, r4, #0 + movs r1, #0x19 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A86A0 +_080A84C6: + pop {r4, pc} + + thumb_func_start sub_080A84C8 +sub_080A84C8: @ 0x080A84C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x30 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrh r0, [r4, #0x36] + subs r0, #4 + strh r0, [r4, #0x36] + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + bne _080A84F0 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x68 + strb r0, [r1] +_080A84F0: + ldr r0, _080A8500 @ =0x0000018D + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x18 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_080A8500: .4byte 0x0000018D + + thumb_func_start sub_080A8504 +sub_080A8504: @ 0x080A8504 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + beq _080A853C + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8524 + bl sub_0805E780 +_080A8524: + adds r0, r4, #0 + bl sub_08016AD2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A8558 + movs r0, #4 + strb r0, [r4, #0xc] + b _080A8558 +_080A853C: + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_08016AD2 + adds r0, r4, #0 + movs r1, #0x19 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A86A0 +_080A8558: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080A85B6 + ldr r5, [r4, #0x50] + ldr r0, [r5, #4] + cmp r0, #0 + beq _080A85B6 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080177A0 + cmp r0, #0 + beq _080A85B6 + adds r0, r4, #0 + adds r0, #0x3d + movs r3, #0 + movs r2, #0x10 + strb r2, [r0] + ldrb r0, [r4, #0x15] + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r1, #3 + movs r0, #0x80 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x42 + movs r1, #0xc + strb r1, [r0] + adds r0, #4 + strh r3, [r0] + adds r0, r5, #0 + adds r0, #0x3d + strb r2, [r0] + ldrb r0, [r4, #0x15] + adds r2, r5, #0 + adds r2, #0x3e + strb r0, [r2] + adds r2, #3 + movs r0, #0xc2 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x42 + strb r1, [r0] + adds r0, #4 + strh r3, [r0] +_080A85B6: + pop {r4, r5, pc} + + thumb_func_start sub_080A85B8 +sub_080A85B8: @ 0x080A85B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + beq _080A85F2 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A85D8 + bl sub_0805E780 +_080A85D8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A860E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _080A860E +_080A85F2: + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_08016AD2 + adds r0, r4, #0 + movs r1, #0x19 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A86A0 +_080A860E: + pop {r4, pc} + + thumb_func_start sub_080A8610 +sub_080A8610: @ 0x080A8610 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8628 + bl sub_0805E780 +_080A8628: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A862C +sub_080A862C: @ 0x080A862C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _080A864E + cmp r0, #1 + beq _080A8654 + b _080A8662 +_080A864E: + bl sub_0805E780 + b _080A867E +_080A8654: + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_080A8662: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A867E + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A867E: + pop {r4, pc} + + thumb_func_start sub_080A8680 +sub_080A8680: @ 0x080A8680 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #3 + strb r1, [r0, #0xe] + movs r1, #1 + strb r1, [r0, #0xf] + movs r0, #0x8c + lsls r0, r0, #1 + bl sub_08004488 + pop {pc} + + thumb_func_start sub_080A86A0 +sub_080A86A0: @ 0x080A86A0 + push {lr} + movs r3, #0 + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + strh r3, [r0, #0x24] + movs r0, #0xc7 + lsls r0, r0, #1 + bl sub_08004488 + pop {pc} + + thumb_func_start sub_080A86BC +sub_080A86BC: @ 0x080A86BC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A86D4 @ =gUnk_08129718 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A86D4: .4byte gUnk_08129718 + + thumb_func_start sub_080A86D8 +sub_080A86D8: @ 0x080A86D8 + push {lr} + ldr r2, _080A86EC @ =gUnk_0812972C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A86EC: .4byte gUnk_0812972C + + thumb_func_start sub_080A86F0 +sub_080A86F0: @ 0x080A86F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x50] + cmp r1, #0 + bne _080A8700 + bl sub_0805E780 + b _080A876E +_080A8700: + adds r5, r1, #0 + adds r5, #0x83 + ldrb r1, [r5] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r1 + cmp r0, #3 + bne _080A8768 + ldr r0, _080A875C @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + cmp r0, #0 + beq _080A876E + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _080A8760 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _080A8764 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0 + bne _080A876E + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A876E + ldrb r1, [r5] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5] + bl sub_0805E780 + b _080A876E + .align 2, 0 +_080A875C: .4byte gUnk_03003F80 +_080A8760: .4byte gRoomControls +_080A8764: .4byte gLinkEntity +_080A8768: + adds r0, r4, #0 + bl sub_0805E7BC +_080A876E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080A8770 +sub_080A8770: @ 0x080A8770 + movs r1, #1 + strb r1, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x3c + ldrb r2, [r3] + movs r1, #0x10 + orrs r1, r2 + strb r1, [r3] + ldr r1, _080A8788 @ =gUnk_08129734 + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A8788: .4byte gUnk_08129734 + + thumb_func_start sub_080A878C +sub_080A878C: @ 0x080A878C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + cmp r4, #0 + bne _080A879A + bl sub_0805E780 +_080A879A: + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A87A4 + bl sub_0805E780 +_080A87A4: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #3 + beq _080A87B6 + bl sub_0805E780 +_080A87B6: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrh r0, [r5, #0x36] + adds r0, #2 + strh r0, [r5, #0x36] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A87C8 +sub_080A87C8: @ 0x080A87C8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A87E0 @ =gUnk_08129740 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A87E0: .4byte gUnk_08129740 + + thumb_func_start sub_080A87E4 +sub_080A87E4: @ 0x080A87E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080A8804 + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _080A87F8 + bl sub_0805E780 +_080A87F8: + ldr r0, [r4, #0x54] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A8804 + bl sub_0805E780 +_080A8804: + ldr r0, _080A8818 @ =gUnk_08129754 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8818: .4byte gUnk_08129754 + + thumb_func_start sub_080A881C +sub_080A881C: @ 0x080A881C + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x46 + movs r0, #0 + strh r0, [r2] + ldrb r2, [r1, #0xa] + cmp r2, #0 + bne _080A8854 + ldr r0, [r1, #0x50] + str r2, [r0, #0x54] + adds r0, r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A884A + ldr r0, _080A8850 @ =gUnk_03003F80 + movs r1, #0xf0 + strb r1, [r0, #0xf] + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth +_080A884A: + bl sub_0805E780 + b _080A8866 + .align 2, 0 +_080A8850: .4byte gUnk_03003F80 +_080A8854: + ldrb r0, [r1, #0xc] + cmp r0, #1 + bhi _080A8866 + movs r0, #2 + strb r0, [r1, #0xc] + ldr r0, [r1, #0x50] + adds r0, #0x83 + movs r1, #0xc0 + strb r1, [r0] +_080A8866: + pop {pc} + + thumb_func_start sub_080A8868 +sub_080A8868: @ 0x080A8868 + push {r4, lr} + adds r3, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r3, #0xc] + strb r4, [r3, #0xd] + ldrb r1, [r3, #0x18] + subs r0, #0x32 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r3, #0x18] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r3, #0x20] + ldr r0, _080A88A4 @ =gUnk_08129764 + str r0, [r3, #0x48] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] + ldrb r0, [r3, #0xa] + cmp r0, #1 + beq _080A88B8 + cmp r0, #1 + bgt _080A88A8 + cmp r0, #0 + beq _080A88AE + b _080A88C6 + .align 2, 0 +_080A88A4: .4byte gUnk_08129764 +_080A88A8: + cmp r0, #2 + beq _080A88BE + b _080A88C6 +_080A88AE: + adds r0, r3, #0 + movs r1, #0 + bl sub_08004260 + b _080A88C6 +_080A88B8: + strb r4, [r3, #0xe] + strb r4, [r3, #0xf] + b _080A88C6 +_080A88BE: + adds r0, r3, #0 + movs r1, #5 + bl sub_08004260 +_080A88C6: + pop {r4, pc} + + thumb_func_start sub_080A88C8 +sub_080A88C8: @ 0x080A88C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + cmp r6, #0 + bne _080A88D6 + movs r0, #2 + strb r0, [r4, #0xc] +_080A88D6: + ldr r0, [r6, #4] + cmp r0, #0 + bne _080A88E0 + movs r0, #2 + strb r0, [r4, #0xc] +_080A88E0: + ldr r3, _080A88FC @ =0xFFFF0000 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldrb r5, [r4, #0xa] + cmp r5, #1 + beq _080A890E + cmp r5, #1 + bgt _080A8900 + cmp r5, #0 + beq _080A8906 + b _080A8982 + .align 2, 0 +_080A88FC: .4byte 0xFFFF0000 +_080A8900: + cmp r5, #2 + beq _080A8962 + b _080A8982 +_080A8906: + ldrh r0, [r4, #0x36] + adds r0, #0x10 + strh r0, [r4, #0x36] + b _080A8982 +_080A890E: + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + ldr r0, [r4, #0x54] + bl sub_08078954 + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _080A8982 + ldr r2, [r4, #0x54] + ldrb r0, [r2, #0xe] + cmp r0, #0 + bne _080A8982 + movs r3, #2 + ands r1, r3 + cmp r1, #0 + beq _080A8946 + ldrb r0, [r2, #0xf] + adds r0, #1 + strb r0, [r2, #0xf] +_080A8946: + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0xf] + cmp r1, #0x1f + bhi _080A8982 + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _080A8982 + adds r1, r6, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] + strb r3, [r4, #0xc] + b _080A8982 +_080A8962: + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + ldr r1, _080A8984 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0xe + movs r3, #0xe + bl sub_080041A0 + cmp r0, #0 + beq _080A8982 + strb r5, [r4, #0xc] + adds r1, r6, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] +_080A8982: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A8984: .4byte gLinkEntity + + thumb_func_start sub_080A8988 +sub_080A8988: @ 0x080A8988 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _080A89B4 + ldr r4, [r5, #0x54] + cmp r4, #0 + bne _080A899C + bl sub_0805E780 +_080A899C: + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A89A6 + bl sub_0805E780 +_080A89A6: + adds r0, r4, #0 + bl sub_08078954 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_080A89B4: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #1 + bne _080A8A44 + adds r0, r5, #0 + bl sub_080043E8 + cmp r0, #0 + beq _080A8A00 + cmp r0, #2 + beq _080A89E0 + cmp r0, #2 + bhi _080A89DA + cmp r0, #1 + beq _080A89E6 + b _080A89FC +_080A89DA: + cmp r0, #3 + beq _080A89F2 + b _080A89FC +_080A89E0: + adds r0, r5, #0 + movs r1, #0xb + b _080A89EA +_080A89E6: + adds r0, r5, #0 + movs r1, #0 +_080A89EA: + movs r2, #0 + bl CreateFX + b _080A89FC +_080A89F2: + adds r0, r5, #0 + movs r1, #0xc + movs r2, #0 + bl CreateFX +_080A89FC: + bl sub_0805E780 +_080A8A00: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080A8A3E + cmp r0, #1 + bgt _080A8A10 + cmp r0, #0 + beq _080A8A16 + b _080A8A44 +_080A8A10: + cmp r0, #2 + beq _080A8A2A + b _080A8A44 +_080A8A16: + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 + movs r0, #0x84 + bl sub_08004488 + movs r0, #3 + strb r0, [r5, #0xc] + b _080A8A44 +_080A8A2A: + adds r0, r5, #0 + movs r1, #5 + movs r2, #0x80 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _080A8A3E + movs r0, #0 + str r0, [r4, #0x50] +_080A8A3E: + adds r0, r5, #0 + bl sub_0805E7BC +_080A8A44: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8A48 +sub_080A8A48: @ 0x080A8A48 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8A64 + adds r0, r4, #0 + bl sub_0805E7BC +_080A8A64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8A68 +sub_080A8A68: @ 0x080A8A68 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800279C + cmp r0, #0 + beq _080A8A78 + bl sub_0805E780 +_080A8A78: + ldr r0, _080A8A8C @ =gUnk_0812979C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8A8C: .4byte gUnk_0812979C + + thumb_func_start sub_080A8A90 +sub_080A8A90: @ 0x080A8A90 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A8AAA + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + adds r0, r2, #0 + bl sub_08004260 + b _080A8AC2 +_080A8AAA: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r2, #0 + bl sub_08004260 + ldr r0, _080A8AC4 @ =0x0000015F + bl sub_08004488 +_080A8AC2: + pop {pc} + .align 2, 0 +_080A8AC4: .4byte 0x0000015F + + thumb_func_start sub_080A8AC8 +sub_080A8AC8: @ 0x080A8AC8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A8AD8 + bl sub_0805E7BC + b _080A8B34 +_080A8AD8: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A8AE6 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8B34 +_080A8AE6: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080A8B2E + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r0, [r5, #0x15] + adds r2, r0, #4 + movs r0, #0x18 + ands r2, r0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A8B1A + movs r0, #0 + strb r2, [r4, #0x15] + lsrs r1, r2, #2 + strb r1, [r4, #0x14] + strb r0, [r4, #0xe] + lsrs r1, r2, #3 + adds r0, r4, #0 + bl sub_08004260 + b _080A8B2E +_080A8B1A: + lsrs r0, r2, #2 + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _080A8B2E + strb r2, [r4, #0x15] + strb r0, [r4, #0x14] + lsrs r1, r2, #3 + adds r0, r4, #0 + bl sub_08004260 +_080A8B2E: + adds r0, r4, #0 + bl sub_08004274 +_080A8B34: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8B38 +sub_080A8B38: @ 0x080A8B38 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + adds r2, r0, #0 + cmp r2, #0 + beq _080A8B66 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8B5E + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8B74 +_080A8B5E: + adds r0, r4, #0 + bl sub_08016AD2 + b _080A8B74 +_080A8B66: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] +_080A8B74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8B78 +sub_080A8B78: @ 0x080A8B78 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8B94 + adds r0, r4, #0 + bl sub_0805E7BC +_080A8B94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8B98 +sub_080A8B98: @ 0x080A8B98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800279C + cmp r0, #0 + beq _080A8BA8 + bl sub_0805E780 +_080A8BA8: + ldr r0, _080A8BBC @ =gUnk_0812982C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8BBC: .4byte gUnk_0812982C + + thumb_func_start sub_080A8BC0 +sub_080A8BC0: @ 0x080A8BC0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A8BDA + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + adds r0, r2, #0 + bl sub_08004260 + b _080A8BF4 +_080A8BDA: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r2, #0 + bl sub_08004260 + movs r0, #0xaf + lsls r0, r0, #1 + bl sub_08004488 +_080A8BF4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A8BF8 +sub_080A8BF8: @ 0x080A8BF8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A8C08 + bl sub_0805E7BC + b _080A8C48 +_080A8C08: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A8C16 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8C48 +_080A8C16: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080A8C42 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A8C42 + ldrb r0, [r5, #0x15] + movs r1, #0x18 + ands r1, r0 + movs r0, #0 + strb r1, [r4, #0x15] + strb r0, [r4, #0xe] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_080A8C42: + adds r0, r4, #0 + bl sub_08004274 +_080A8C48: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8C4C +sub_080A8C4C: @ 0x080A8C4C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + adds r2, r0, #0 + cmp r2, #0 + beq _080A8C7A + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8C72 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8C88 +_080A8C72: + adds r0, r4, #0 + bl sub_08016AD2 + b _080A8C88 +_080A8C7A: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] +_080A8C88: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8C8C +sub_080A8C8C: @ 0x080A8C8C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8CA8 + adds r0, r4, #0 + bl sub_0805E7BC +_080A8CA8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8CAC +sub_080A8CAC: @ 0x080A8CAC + push {r4, lr} + adds r4, r0, #0 + bl sub_0800279C + cmp r0, #0 + beq _080A8CBC + bl sub_0805E780 +_080A8CBC: + ldr r0, _080A8CD0 @ =gUnk_081298B8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8CD0: .4byte gUnk_081298B8 + + thumb_func_start sub_080A8CD4 +sub_080A8CD4: @ 0x080A8CD4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A8CEE + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + adds r0, r2, #0 + bl sub_08004260 + b _080A8D08 +_080A8CEE: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r2, #0 + bl sub_08004260 + movs r0, #0xb0 + lsls r0, r0, #1 + bl sub_08004488 +_080A8D08: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A8D0C +sub_080A8D0C: @ 0x080A8D0C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A8D1C + bl sub_0805E7BC + b _080A8D5C +_080A8D1C: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A8D2A + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8D5C +_080A8D2A: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080A8D56 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A8D56 + ldrb r0, [r5, #0x15] + movs r1, #0x18 + ands r1, r0 + movs r0, #0 + strb r1, [r4, #0x15] + strb r0, [r4, #0xe] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_080A8D56: + adds r0, r4, #0 + bl sub_08004274 +_080A8D5C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8D60 +sub_080A8D60: @ 0x080A8D60 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + adds r2, r0, #0 + cmp r2, #0 + beq _080A8D8E + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8D86 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8D9C +_080A8D86: + adds r0, r4, #0 + bl sub_08016AD2 + b _080A8D9C +_080A8D8E: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] +_080A8D9C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8DA0 +sub_080A8DA0: @ 0x080A8DA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8DBC + adds r0, r4, #0 + bl sub_0805E7BC +_080A8DBC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8DC0 +sub_080A8DC0: @ 0x080A8DC0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8DD8 @ =gUnk_08129954 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8DD8: .4byte gUnk_08129954 + + thumb_func_start sub_080A8DDC +sub_080A8DDC: @ 0x080A8DDC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #3 + beq _080A8E12 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8E12 + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x1e + beq _080A8E12 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0x53 + bl sub_08004260 +_080A8E12: + ldr r0, _080A8E24 @ =gUnk_08129968 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8E24: .4byte gUnk_08129968 + + thumb_func_start sub_080A8E28 +sub_080A8E28: @ 0x080A8E28 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldr r0, _080A8E80 @ =0xFFFF0000 + str r0, [r5, #0x20] + ldrb r0, [r5, #0xa] + cmp r0, #3 + beq _080A8E6E + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 + movs r1, #0x80 + lsls r1, r1, #5 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F5BC + ldr r0, [r5, #0x50] + ldr r2, [r5, #0x54] + ldr r1, [r0, #0x30] + ldr r0, [r2, #0x30] + subs r1, r1, r0 + str r1, [r5, #0x34] + ldr r0, [r5, #0x30] + subs r0, r0, r1 + str r0, [r5, #0x30] + adds r0, r5, #0 + movs r1, #0x51 + bl sub_08004260 + ldr r0, _080A8E84 @ =0x000001B5 + bl sub_080A3268 +_080A8E6E: + ldrb r4, [r5, #0xa] + cmp r4, #2 + beq _080A8EF2 + cmp r4, #2 + ble _080A8E88 + cmp r4, #3 + beq _080A8F02 + b _080A8FAE + .align 2, 0 +_080A8E80: .4byte 0xFFFF0000 +_080A8E84: .4byte 0x000001B5 +_080A8E88: + cmp r4, #0 + bge _080A8E8E + b _080A8FAE +_080A8E8E: + ldr r0, _080A8EC0 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r5, #0 + bl sub_080041DC + adds r4, r0, #0 + ldrb r6, [r5, #0xa] + cmp r6, #1 + bne _080A8ECE + bl sub_08000E50 + adds r2, r0, #0 + ldr r0, _080A8EC4 @ =0x000001FF + ands r2, r0 + ldr r0, _080A8EC8 @ =gUnk_030010A0 + ldr r0, [r0] + ands r0, r6 + cmp r0, #0 + bne _080A8ECC + adds r4, r4, r2 + b _080A8ECE + .align 2, 0 +_080A8EC0: .4byte gLinkEntity +_080A8EC4: .4byte 0x000001FF +_080A8EC8: .4byte gUnk_030010A0 +_080A8ECC: + subs r4, r4, r2 +_080A8ECE: + cmp r4, #0x1f + bgt _080A8ED6 + movs r4, #0x20 + b _080A8EE0 +_080A8ED6: + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + ble _080A8EE0 + adds r4, r0, #0 +_080A8EE0: + lsls r1, r4, #8 + ldr r0, [r5, #0x34] + bl __divsi3 + lsls r0, r0, #0xd + str r0, [r5, #0x20] + movs r0, #0x1e + strb r0, [r5, #0xf] + b _080A8FAE +_080A8EF2: + ldr r0, [r5, #0x34] + movs r1, #0xc0 + lsls r1, r1, #9 + bl __divsi3 + lsls r0, r0, #0xc + str r0, [r5, #0x20] + b _080A8FAE +_080A8F02: + ldr r0, _080A8F64 @ =0xFF600000 + str r0, [r5, #0x34] + bl sub_08000E50 + ands r4, r0 + lsls r2, r4, #1 + ldr r1, _080A8F68 @ =gUnk_08129978 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r5, #0x2e] + adds r0, r0, r3 + strh r0, [r5, #0x2e] + adds r0, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] + movs r0, #2 + ands r2, r0 + cmp r2, #0 + beq _080A8F74 + bl sub_08000E50 + ldr r2, _080A8F6C @ =gUnk_08129988 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r5, #0x2e] + adds r0, r0, r2 + strh r0, [r5, #0x2e] + bl sub_08000E50 + ldr r2, _080A8F70 @ =gUnk_08129980 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r5, #0x32] + adds r0, r0, r3 + b _080A8F9E + .align 2, 0 +_080A8F64: .4byte 0xFF600000 +_080A8F68: .4byte gUnk_08129978 +_080A8F6C: .4byte gUnk_08129988 +_080A8F70: .4byte gUnk_08129980 +_080A8F74: + bl sub_08000E50 + ldr r2, _080A8FB0 @ =gUnk_08129980 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + bl sub_08000E50 + ldr r2, _080A8FB4 @ =gUnk_08129988 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r5, #0x32] + adds r0, r0, r2 +_080A8F9E: + strh r0, [r5, #0x32] + adds r0, r5, #0 + bl sub_08004168 + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_080A8FAE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A8FB0: .4byte gUnk_08129980 +_080A8FB4: .4byte gUnk_08129988 + + thumb_func_start sub_080A8FB8 +sub_080A8FB8: @ 0x080A8FB8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080A8FE8 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9054 + adds r0, r4, #0 + movs r1, #7 + bl sub_08008790 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + bl sub_0805E780 + b _080A9054 +_080A8FE8: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _080A901C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080A901C + movs r0, #0x1e + strb r0, [r4, #0xf] + ldr r1, _080A9048 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080A901C: + adds r0, r4, #0 + movs r1, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9054 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A90D8 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _080A904C + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x54 + bl sub_08004260 + b _080A9054 + .align 2, 0 +_080A9048: .4byte gLinkEntity +_080A904C: + adds r0, r4, #0 + movs r1, #0x52 + bl sub_08004260 +_080A9054: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9058 +sub_080A9058: @ 0x080A9058 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _080A9098 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080A908A + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x55 + bl sub_08004260 + b _080A90BA +_080A908A: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080A90D8 + b _080A90BA +_080A9098: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A90BA + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0x53 + bl sub_08004260 +_080A90BA: + pop {r4, pc} + + thumb_func_start sub_080A90BC +sub_080A90BC: @ 0x080A90BC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A90D4 + bl sub_0805E780 +_080A90D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A90D8 +sub_080A90D8: @ 0x080A90D8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #0x74 + adds r0, r0, r5 + mov ip, r0 + ldrh r3, [r0] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _080A9154 @ =gRoomControls + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r6, #0x3f + adds r2, r4, #0 + ands r2, r6 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r7, #8] + subs r0, r0, r1 + asrs r1, r0, #4 + adds r0, r1, #0 + ands r0, r6 + lsls r0, r0, #6 + orrs r2, r0 + cmp r3, r2 + beq _080A9152 + movs r0, #0x3f + ands r4, r0 + ands r1, r0 + lsls r0, r1, #6 + orrs r4, r0 + mov r2, ip + strh r4, [r2] + adds r0, r5, #0 + bl sub_080002A0 + cmp r0, #0x13 + beq _080A9128 + cmp r0, #0x34 + bne _080A9152 +_080A9128: + movs r0, #0xd3 + lsls r0, r0, #2 + movs r3, #0x2e + ldrsh r1, [r5, r3] + ldrh r2, [r7, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r5, r3] + ldrh r3, [r7, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_080A9152: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A9154: .4byte gRoomControls + + thumb_func_start sub_080A9158 +sub_080A9158: @ 0x080A9158 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080A9166 + movs r0, #1 + strb r0, [r5, #0xc] +_080A9166: + ldr r4, [r5, #0x50] + cmp r4, #0 + beq _080A917C + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080A917C + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A91A4 +_080A917C: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A9198 + ldr r1, [r5, #0x4c] + ldr r0, _080A91A0 @ =gLinkEntity + cmp r1, r0 + bne _080A9198 + adds r0, r5, #0 + bl sub_0803C0AC +_080A9198: + adds r0, r5, #0 + bl sub_0805E7BC + b _080A91D8 + .align 2, 0 +_080A91A0: .4byte gLinkEntity +_080A91A4: + ldr r1, _080A91DC @ =gUnk_08129998 + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5, #0x48] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080A91D8 + adds r1, r5, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _080A91D8 + movs r0, #0xff + strb r0, [r1] +_080A91D8: + pop {r4, r5, pc} + .align 2, 0 +_080A91DC: .4byte gUnk_08129998 + + thumb_func_start sub_080A91E0 +sub_080A91E0: @ 0x080A91E0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080A9288 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A9204 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080A9204: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A921C + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080A9218 + movs r0, #0xff + strb r0, [r1, #0xa] +_080A9218: + bl sub_0805E780 +_080A921C: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080A9230 + subs r0, #1 + strb r0, [r4, #0xf] + b _080A92F6 +_080A9230: + adds r0, r4, #0 + bl sub_080644C8 + cmp r0, #0 + beq _080A92F6 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080A92F6 + movs r0, #0xc + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _080A92F6 + movs r0, #1 + strb r0, [r5, #0xa] + ldr r0, [r4, #0x50] + adds r0, #0x3e + ldrb r1, [r0] + ldr r3, _080A9284 @ =gUnk_081299C8 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #2 + movs r2, #7 + ands r0, r2 + adds r0, r0, r3 + lsls r1, r1, #3 + ldrb r0, [r0] + adds r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r5, #0x15] + ldr r0, [r4, #0x50] + str r0, [r5, #0x50] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + b _080A92F6 + .align 2, 0 +_080A9284: .4byte gUnk_081299C8 +_080A9288: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A92B0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x12 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x16 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r4, #0x24] + ldr r0, _080A92F8 @ =gUnk_080FD1E4 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_080A92B0: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A92C8 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080A92C4 + movs r0, #0xff + strb r0, [r1, #0xa] +_080A92C4: + bl sub_0805E780 +_080A92C8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A92D8 + bl sub_0805E780 +_080A92D8: + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _080A92FC @ =gUnk_02027EB4 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r3, #0x32 + ldrsh r2, [r4, r3] + movs r3, #2 + bl sub_080AE4CC + cmp r0, #0 + beq _080A92F6 + bl sub_0805E780 +_080A92F6: + pop {r4, r5, pc} + .align 2, 0 +_080A92F8: .4byte gUnk_080FD1E4 +_080A92FC: .4byte gUnk_02027EB4 + + thumb_func_start sub_080A9300 +sub_080A9300: @ 0x080A9300 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A9318 @ =gUnk_081299D0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9318: .4byte gUnk_081299D0 + + thumb_func_start sub_080A931C +sub_080A931C: @ 0x080A931C + push {lr} + ldr r2, _080A9330 @ =gUnk_081299E4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9330: .4byte gUnk_081299E4 + + thumb_func_start sub_080A9334 +sub_080A9334: @ 0x080A9334 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A936C + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + beq _080A9368 + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + adds r0, r4, #0 + bl sub_080A9488 + adds r0, r4, #0 + adds r0, #0x42 + movs r1, #0 + strb r1, [r0] + subs r0, #5 + strb r1, [r0] + b _080A936C +_080A9368: + bl sub_0805E780 +_080A936C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9370 +sub_080A9370: @ 0x080A9370 + push {r4, lr} + movs r4, #0 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x6a + strb r1, [r0, #0xe] + strb r4, [r0, #0xf] + movs r1, #0xa0 + lsls r1, r1, #4 + str r1, [r0, #0x20] + ldrb r1, [r0, #0xa] + bl sub_080A94C0 + pop {r4, pc} + + thumb_func_start sub_080A93A0 +sub_080A93A0: @ 0x080A93A0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _080A93B0 + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A93B4 +_080A93B0: + bl sub_0805E780 +_080A93B4: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080A93BE + bl sub_0805E780 +_080A93BE: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _080A93DA + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + str r2, [r5, #0x54] + movs r0, #0xfc + bl sub_080A3268 +_080A93DA: + pop {r4, r5, pc} + + thumb_func_start sub_080A93DC +sub_080A93DC: @ 0x080A93DC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080A9414 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0xc5 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0806F69C + b _080A9424 +_080A9414: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9424 + bl sub_0805E780 +_080A9424: + adds r0, r4, #0 + bl sub_080AF090 + pop {r4, pc} + + thumb_func_start sub_080A942C +sub_080A942C: @ 0x080A942C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9440 + bl sub_0805E780 +_080A9440: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080A9448 +sub_080A9448: @ 0x080A9448 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9464 + adds r0, r4, #0 + bl sub_080A29BC + bl sub_0805E780 + b _080A9486 +_080A9464: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9486 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080A94C0 +_080A9486: + pop {r4, pc} + + thumb_func_start sub_080A9488 +sub_080A9488: @ 0x080A9488 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #2 + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #0x18 + ands r0, r1 + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + movs r0, #0x74 + bl sub_08004488 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080A94C0 + pop {r4, pc} + + thumb_func_start sub_080A94C0 +sub_080A94C0: @ 0x080A94C0 + push {r4, lr} + lsls r1, r1, #3 + ldr r2, _080A94FC @ =gUnk_081299F8 + adds r1, r1, r2 + ldrb r3, [r1] + movs r2, #1 + ands r3, r2 + lsls r3, r3, #6 + ldrb r4, [r0, #0x18] + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r4 + orrs r2, r3 + strb r2, [r0, #0x18] + ldrb r3, [r1, #1] + lsls r3, r3, #7 + movs r4, #0x7f + ands r2, r4 + orrs r2, r3 + strb r2, [r0, #0x18] + ldrb r2, [r1, #2] + adds r3, r0, #0 + adds r3, #0x58 + strb r2, [r3] + ldr r1, [r1, #4] + str r1, [r0, #0x48] + ldrb r1, [r3] + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_080A94FC: .4byte gUnk_081299F8 + + thumb_func_start sub_080A9500 +sub_080A9500: @ 0x080A9500 + push {lr} + ldr r2, _080A9514 @ =gUnk_08129A64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9514: .4byte gUnk_08129A64 + + thumb_func_start sub_080A9518 +sub_080A9518: @ 0x080A9518 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0xa + strb r1, [r0, #0xe] + ldrh r1, [r0, #0x36] + subs r1, #2 + strh r1, [r0, #0x36] + ldrh r1, [r0, #0x32] + adds r1, #2 + strh r1, [r0, #0x32] + movs r1, #0 + bl sub_08004260 + ldr r0, _080A953C @ =0x00000149 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_080A953C: .4byte 0x00000149 + + thumb_func_start sub_080A9540 +sub_080A9540: @ 0x080A9540 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9578 + movs r0, #2 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, #0x32] + adds r0, #6 + strh r0, [r3, #0x32] + adds r0, r3, #0 + movs r1, #1 + bl sub_08004260 + b _080A95B6 +_080A9578: + ldrh r1, [r3, #0x36] + movs r2, #0x36 + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _080A9586 + adds r0, r1, #1 + strh r0, [r3, #0x36] +_080A9586: + ldrb r1, [r3, #0x15] + lsls r1, r1, #1 + ldr r0, _080A95B8 @ =gUnk_080C9160 + adds r1, r1, r0 + movs r4, #0 + ldrsh r2, [r1, r4] + movs r4, #0x24 + ldrsh r0, [r3, r4] + muls r2, r0, r2 + ldr r0, [r3, #0x2c] + adds r0, r0, r2 + str r0, [r3, #0x2c] + adds r1, #0x80 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r2, #0x24 + ldrsh r0, [r3, r2] + muls r1, r0, r1 + ldr r0, [r3, #0x30] + subs r0, r0, r1 + str r0, [r3, #0x30] + adds r0, r3, #0 + bl sub_08004274 +_080A95B6: + pop {r4, pc} + .align 2, 0 +_080A95B8: .4byte gUnk_080C9160 + + thumb_func_start sub_080A95BC +sub_080A95BC: @ 0x080A95BC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A95D8 + adds r0, r4, #0 + bl sub_0805E7BC +_080A95D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A95DC +sub_080A95DC: @ 0x080A95DC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A95F4 @ =gUnk_08129ABC + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A95F4: .4byte gUnk_08129ABC + + thumb_func_start sub_080A95F8 +sub_080A95F8: @ 0x080A95F8 + push {lr} + ldr r2, _080A960C @ =gUnk_08129AD0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A960C: .4byte gUnk_08129AD0 + + thumb_func_start sub_080A9610 +sub_080A9610: @ 0x080A9610 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _080A9660 + cmp r0, #1 + bgt _080A9628 + cmp r0, #0 + beq _080A9632 + b _080A9756 +_080A9628: + cmp r0, #2 + beq _080A96D0 + cmp r0, #3 + beq _080A9718 + b _080A9756 +_080A9632: + movs r1, #0x90 + lsls r1, r1, #7 + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strb r1, [r4, #0xe] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _080A9756 +_080A9660: + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + bl sub_08000E50 + ldr r2, _080A96C8 @ =0x000001FF + adds r1, r2, #0 + ands r0, r1 + adds r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r4, #0x24] + bl sub_08000E50 + ldr r1, _080A96CC @ =0x00001FFF + ands r1, r0 + movs r0, #0xc0 + lsls r0, r0, #9 + adds r1, r1, r0 + str r1, [r4, #0x20] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + subs r0, #4 + ldrb r1, [r4, #0x15] + subs r1, r1, r0 + strb r1, [r4, #0x15] + movs r0, #0x96 + lsls r0, r0, #2 + str r0, [r4, #0x78] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _080A9756 + .align 2, 0 +_080A96C8: .4byte 0x000001FF +_080A96CC: .4byte 0x00001FFF +_080A96D0: + bl sub_08000E50 + ands r0, r5 + cmp r0, #0 + beq _080A96EA + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + strb r0, [r4, #0x15] + b _080A96F8 +_080A96EA: + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + ldrb r1, [r4, #0x15] + subs r1, r1, r0 + strb r1, [r4, #0x15] +_080A96F8: + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x30 + strb r0, [r4, #0xe] + movs r1, #0xa0 + lsls r1, r1, #7 + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + b _080A9756 +_080A9718: + ldr r0, _080A9760 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _080A9764 @ =0xFF600000 + str r0, [r4, #0x34] + ldrh r0, [r4, #0x2e] + adds r0, #0x60 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, #0x40 + strh r0, [r4, #0x32] + bl sub_08000E50 + movs r1, #0xc0 + bl __modsi3 + ldrh r1, [r4, #0x2e] + subs r1, r1, r0 + strh r1, [r4, #0x2e] + bl sub_08000E50 + movs r1, #0x7f + ands r1, r0 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_080A9756: + ldr r0, _080A9768 @ =0x000001B5 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_080A9760: .4byte gLinkEntity +_080A9764: .4byte 0xFF600000 +_080A9768: .4byte 0x000001B5 + + thumb_func_start sub_080A976C +sub_080A976C: @ 0x080A976C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080A9778 + b _080A9908 +_080A9778: + cmp r0, #1 + bgt _080A9782 + cmp r0, #0 + beq _080A9790 + b _080A99EE +_080A9782: + cmp r0, #2 + bne _080A9788 + b _080A99A0 +_080A9788: + cmp r0, #3 + bne _080A978E + b _080A99D2 +_080A978E: + b _080A99EE +_080A9790: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _080A979C + bl sub_0805E780 +_080A979C: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080A97E0 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A97E0 + movs r5, #0x7f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _080A97C0 + adds r0, r4, #0 + bl sub_080A99F0 +_080A97C0: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + movs r0, #1 + strb r0, [r4, #0xb] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] +_080A97E0: + ldr r1, [r4, #0x50] + adds r0, r4, #0 + movs r2, #0x40 + bl sub_0806FC80 + cmp r0, #0 + beq _080A9848 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080A9804 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + b _080A9848 +_080A9804: + ldr r1, [r4, #0x50] + adds r1, #0x45 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x3d + movs r1, #0x1e + strb r1, [r0] + ldr r1, [r4, #0x50] + adds r0, r1, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _080A983C + adds r1, #0x42 + movs r0, #0x18 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x46 + movs r1, #0x80 + lsls r1, r1, #2 + strh r1, [r0] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + adds r1, #0x3e + strb r0, [r1] +_080A983C: + ldr r0, _080A98B8 @ =0x00000127 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_080A99F0 +_080A9848: + adds r0, r4, #0 + bl sub_080042B8 + adds r5, r4, #0 + adds r5, #0x78 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + movs r0, #0xee + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A9882 + ldrb r0, [r4, #0x15] + rsbs r0, r0, #0 + strb r0, [r4, #0x15] +_080A9882: + ldrh r1, [r4, #0x2a] + movs r0, #0xee + ands r0, r1 + cmp r0, #0 + beq _080A989A + ldrb r0, [r4, #0x15] + rsbs r0, r0, #0 + movs r2, #0x80 + rsbs r2, r2, #0 + adds r1, r2, #0 + eors r0, r1 + strb r0, [r4, #0x15] +_080A989A: + ldrb r0, [r4, #0x15] + ldrb r1, [r4, #0xf] + cmp r0, r1 + bne _080A98A4 + b _080A99EE +_080A98A4: + movs r0, #0xb2 + lsls r0, r0, #1 + bl sub_080A3268 + ldrh r0, [r5] + cmp r0, #0 + bne _080A98BC + movs r0, #4 + b _080A98C0 + .align 2, 0 +_080A98B8: .4byte 0x00000127 +_080A98BC: + ldrb r0, [r4, #0xe] + adds r0, #1 +_080A98C0: + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + cmp r0, #1 + bhi _080A98CE + b _080A99EE +_080A98CE: + movs r5, #0 +_080A98D0: + adds r0, r4, #0 + movs r1, #0xf + movs r2, #1 + bl sub_0804A98C + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _080A98FC + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r1, [r4, #0x54] + ldr r0, _080A9904 @ =gUnk_08129ADC + adds r0, r5, r0 + ldrb r0, [r0] + ldrb r2, [r4, #0x15] + adds r0, r0, r2 + strb r0, [r1, #0x15] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 +_080A98FC: + adds r5, #1 + cmp r5, #2 + bls _080A98D0 + b _080A9998 + .align 2, 0 +_080A9904: .4byte gUnk_08129ADC +_080A9908: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _080A9916 + adds r0, r4, #0 + bl sub_080A99F0 +_080A9916: + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _080A9950 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE58C + ldrh r0, [r4, #0x2a] + cmp r0, #0 + bne _080A994A + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + b _080A9950 +_080A994A: + adds r0, r4, #0 + bl sub_080A99F0 +_080A9950: + ldr r2, [r4, #0x78] + cmp r2, #0x1d + bhi _080A9978 + movs r0, #7 + ands r0, r2 + cmp r0, #0 + beq _080A996E + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _080A9978 +_080A996E: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080A9978: + subs r1, r2, #1 + str r1, [r4, #0x78] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080A998A + adds r0, r4, #0 + bl sub_080A99F0 +_080A998A: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A99EE +_080A9998: + adds r0, r4, #0 + bl sub_080A99F0 + b _080A99EE +_080A99A0: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080A99C2 + movs r2, #0x24 + ldrsh r1, [r4, r2] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + b _080A99EE +_080A99C2: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080A99CC + movs r0, #1 + strb r0, [r1, #0xe] +_080A99CC: + bl sub_0805E780 + b _080A99EE +_080A99D2: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A99EE + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_080A99EE: + pop {r4, r5, pc} + + thumb_func_start sub_080A99F0 +sub_080A99F0: @ 0x080A99F0 + push {lr} + movs r1, #4 + movs r2, #0 + bl CreateFX + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080A9A00 +sub_080A9A00: @ 0x080A9A00 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A9A18 @ =gUnk_08129AE0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9A18: .4byte gUnk_08129AE0 + + thumb_func_start sub_080A9A1C +sub_080A9A1C: @ 0x080A9A1C + push {lr} + ldr r2, _080A9A30 @ =gUnk_08129AF8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9A30: .4byte gUnk_08129AF8 + + thumb_func_start sub_080A9A34 +sub_080A9A34: @ 0x080A9A34 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _080A9A62 + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] +_080A9A62: + pop {pc} + + thumb_func_start sub_080A9A64 +sub_080A9A64: @ 0x080A9A64 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _080A9A7E + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080A9A7E + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9A7E: + ldr r0, _080A9A90 @ =gUnk_08129B08 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A9A90: .4byte gUnk_08129B08 + + thumb_func_start sub_080A9A94 +sub_080A9A94: @ 0x080A9A94 + movs r1, #2 + strb r1, [r0, #0xd] + ldr r1, _080A9AA0 @ =0x0000FFFE + strh r1, [r0, #0x36] + bx lr + .align 2, 0 +_080A9AA0: .4byte 0x0000FFFE + + thumb_func_start sub_080A9AA4 +sub_080A9AA4: @ 0x080A9AA4 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080A9AAC +sub_080A9AAC: @ 0x080A9AAC + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_080A9AB4 +sub_080A9AB4: @ 0x080A9AB4 + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + bx lr + .align 2, 0 + + thumb_func_start nullsub_128 +nullsub_128: @ 0x080A9AC0 + bx lr + .align 2, 0 + + thumb_func_start sub_080A9AC4 +sub_080A9AC4: @ 0x080A9AC4 + push {lr} + bl sub_080A9BA8 + pop {pc} + + thumb_func_start sub_080A9ACC +sub_080A9ACC: @ 0x080A9ACC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + cmp r0, #1 + beq _080A9AE0 + cmp r0, #2 + beq _080A9AEE + movs r0, #1 + strb r0, [r2, #0xc] + b _080A9B0A +_080A9AE0: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + b _080A9B0A +_080A9AEE: + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r3] +_080A9B0A: + movs r0, #2 + strb r0, [r2, #0x1c] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A9B1E + adds r0, r2, #0 + movs r1, #5 + bl sub_08004260 + b _080A9B22 +_080A9B1E: + movs r0, #0 + strb r0, [r2, #0x1e] +_080A9B22: + pop {pc} + + thumb_func_start sub_080A9B24 +sub_080A9B24: @ 0x080A9B24 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A9B36 + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9B36: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #0xb + bne _080A9B46 + adds r0, r4, #0 + bl sub_080A9BD0 + b _080A9B50 +_080A9B46: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A9C34 +_080A9B50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9B54 +sub_080A9B54: @ 0x080A9B54 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A9B66 + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9B66: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #9 + bne _080A9B76 + adds r0, r4, #0 + bl sub_080A9C34 + b _080A9B7C +_080A9B76: + adds r0, r4, #0 + bl sub_080A9C50 +_080A9B7C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9B80 +sub_080A9B80: @ 0x080A9B80 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080A9B92 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A9B92: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9BA6 + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9BA6: + pop {r4, pc} + + thumb_func_start sub_080A9BA8 +sub_080A9BA8: @ 0x080A9BA8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _080A9BBE + adds r0, r1, #0 + movs r1, #5 + movs r2, #0 + bl CreateFX + b _080A9BC8 +_080A9BBE: + adds r0, r1, #0 + movs r1, #0x3c + movs r2, #0 + bl CreateFX +_080A9BC8: + bl sub_0805E780 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A9BD0 +sub_080A9BD0: @ 0x080A9BD0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, [r5, #0x50] + ldrb r0, [r1, #0x14] + cmp r0, #1 + beq _080A9BF8 + cmp r0, #1 + bgt _080A9BE6 + cmp r0, #0 + beq _080A9BF0 + b _080A9C06 +_080A9BE6: + cmp r0, #2 + beq _080A9C00 + cmp r0, #3 + beq _080A9BF8 + b _080A9C06 +_080A9BF0: + ldrb r0, [r1, #0x1e] + adds r2, r0, #0 + subs r2, #0x39 + b _080A9C06 +_080A9BF8: + ldrb r0, [r1, #0x1e] + adds r2, r0, #0 + subs r2, #0x3d + b _080A9C06 +_080A9C00: + ldrb r0, [r1, #0x1e] + adds r2, r0, #0 + subs r2, #0x41 +_080A9C06: + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + adds r0, r2, r0 + lsls r4, r0, #1 + adds r4, r4, r0 + ldr r0, _080A9C30 @ =gUnk_08129B20 + adds r4, r4, r0 + movs r2, #0 + ldrsb r2, [r4, r2] + movs r3, #1 + ldrsb r3, [r4, r3] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0806FA90 + movs r0, #2 + ldrsb r0, [r4, r0] + ldrh r1, [r5, #0x36] + adds r0, r0, r1 + strh r0, [r5, #0x36] + pop {r4, r5, pc} + .align 2, 0 +_080A9C30: .4byte gUnk_08129B20 + + thumb_func_start sub_080A9C34 +sub_080A9C34: @ 0x080A9C34 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r4, #0x63 + ldrb r0, [r4] + subs r0, #0xe + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9C50 +sub_080A9C50: @ 0x080A9C50 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, [r5, #0x50] + ldrb r0, [r1, #0x14] + cmp r0, #1 + beq _080A9C78 + cmp r0, #1 + bgt _080A9C66 + cmp r0, #0 + beq _080A9C70 + b _080A9C86 +_080A9C66: + cmp r0, #2 + beq _080A9C80 + cmp r0, #3 + beq _080A9C78 + b _080A9C86 +_080A9C70: + ldrb r0, [r1, #0x1e] + adds r4, r0, #0 + subs r4, #0x27 + b _080A9C86 +_080A9C78: + ldrb r0, [r1, #0x1e] + adds r4, r0, #0 + subs r4, #0x2d + b _080A9C86 +_080A9C80: + ldrb r0, [r1, #0x1e] + adds r4, r0, #0 + subs r4, #0x33 +_080A9C86: + adds r0, r1, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r0, r5, #0 + adds r0, #0x63 + ldr r1, _080A9CA4 @ =gUnk_08129B50 + adds r1, r4, r1 + ldrb r1, [r1] + ldrb r2, [r0] + adds r1, r1, r2 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080A9CA4: .4byte gUnk_08129B50 + + thumb_func_start sub_080A9CA8 +sub_080A9CA8: @ 0x080A9CA8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A9CB8 + bl sub_0805E780 +_080A9CB8: + ldr r4, _080A9CD0 @ =gUnk_08129B58 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9CD0: .4byte gUnk_08129B58 + + thumb_func_start sub_080A9CD4 +sub_080A9CD4: @ 0x080A9CD4 + push {lr} + ldr r2, _080A9CE8 @ =gUnk_08129B70 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9CE8: .4byte gUnk_08129B70 + + thumb_func_start nullsub_539 +nullsub_539: @ 0x080A9CEC + bx lr + .align 2, 0 + + thumb_func_start sub_080A9CF0 +sub_080A9CF0: @ 0x080A9CF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080A9D0A + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_080A9D0A: + ldr r0, _080A9D1C @ =gUnk_08129B78 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A9D1C: .4byte gUnk_08129B78 + + thumb_func_start sub_080A9D20 +sub_080A9D20: @ 0x080A9D20 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_540 +nullsub_540: @ 0x080A9D28 + bx lr + .align 2, 0 + + thumb_func_start sub_080A9D2C +sub_080A9D2C: @ 0x080A9D2C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080A9D64 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0xa6 + bne _080A9D56 + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + ldr r0, _080A9D68 @ =gLinkEntity + movs r1, #0x7a + bl sub_0800449C + bl sub_08079D84 +_080A9D56: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_080A9D64: + pop {r4, pc} + .align 2, 0 +_080A9D68: .4byte gLinkEntity + + thumb_func_start sub_080A9D6C +sub_080A9D6C: @ 0x080A9D6C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldr r1, [r0, #0x50] + ldrb r1, [r1, #0x14] + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_080042AC + pop {pc} + + thumb_func_start sub_080A9D80 +sub_080A9D80: @ 0x080A9D80 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r3, _080A9D9C @ =0xFFFF0000 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldr r0, _080A9DA0 @ =0x0000FFFE + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_080A9D9C: .4byte 0xFFFF0000 +_080A9DA0: .4byte 0x0000FFFE + + thumb_func_start sub_080A9DA4 +sub_080A9DA4: @ 0x080A9DA4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A9DBC @ =gUnk_08129BEC + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9DBC: .4byte gUnk_08129BEC + + thumb_func_start sub_080A9DC0 +sub_080A9DC0: @ 0x080A9DC0 + push {lr} + ldr r2, _080A9DD4 @ =gUnk_08129C00 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9DD4: .4byte gUnk_08129C00 + + thumb_func_start sub_080A9DD8 +sub_080A9DD8: @ 0x080A9DD8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080A9DEE + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A9DF2 +_080A9DEE: + bl sub_0805E780 +_080A9DF2: + adds r0, r4, #0 + bl sub_080A9DC0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9DFC +sub_080A9DFC: @ 0x080A9DFC + push {lr} + movs r2, #1 + strb r2, [r0, #0xc] + movs r1, #0xb4 + strb r1, [r0, #0xe] + adds r1, r0, #0 + adds r1, #0x45 + strb r2, [r1] + movs r1, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_080A9E14 +sub_080A9E14: @ 0x080A9E14 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + bne _080A9E34 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9E42 +_080A9E34: + adds r0, r4, #0 + movs r1, #0x4f + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_080A9E42: + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A9E50 + bl sub_0805E780 +_080A9E50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9E54 +sub_080A9E54: @ 0x080A9E54 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x54] + cmp r0, #0 + bne _080A9E60 + ldr r0, [r5, #0x50] +_080A9E60: + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _080A9E78 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A9E78 + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] +_080A9E78: + ldr r4, _080A9E90 @ =gUnk_08129C7C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9E90: .4byte gUnk_08129C7C + + thumb_func_start sub_080A9E94 +sub_080A9E94: @ 0x080A9E94 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #2 + bhi _080A9EA4 + adds r0, r4, #0 + bl sub_080AA1D8 +_080A9EA4: + ldr r0, _080A9EB8 @ =gUnk_08129C90 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A9EB8: .4byte gUnk_08129C90 + + thumb_func_start sub_080A9EBC +sub_080A9EBC: @ 0x080A9EBC + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A9F4E + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _080A9EF2 + cmp r0, #4 + bne _080A9F18 + movs r0, #0 + strb r0, [r4, #0xf] + subs r0, #2 + bl ModHealth + adds r0, r4, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_080042B8 + adds r5, r4, #0 + adds r5, #0x42 + b _080A9F4A +_080A9EF2: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + adds r5, r4, #0 + adds r5, #0x42 + cmp r0, #0 + beq _080A9F4A + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #2 + strb r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080AA270 + movs r0, #0x20 + strb r0, [r4, #0xf] + b _080A9F4A +_080A9F18: + ldr r3, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x3d + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x42 + ldrb r1, [r2] + adds r0, r3, #0 + adds r0, #0x42 + strb r1, [r0] + ldrb r0, [r4, #0xc] + adds r5, r2, #0 + cmp r0, #1 + bne _080A9F4A + adds r0, r4, #0 + bl sub_080AA320 +_080A9F4A: + movs r0, #0 + strb r0, [r5] +_080A9F4E: + pop {r4, r5, pc} + + thumb_func_start sub_080A9F50 +sub_080A9F50: @ 0x080A9F50 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + movs r2, #0 + strh r1, [r0] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x82 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_080AA270 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9F90 +sub_080A9F90: @ 0x080A9F90 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r1] + cmp r0, #0 + beq _080A9FA4 + subs r0, #1 + strh r0, [r1] + b _080A9FC8 +_080A9FA4: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9FB8 + adds r0, r4, #0 + bl sub_080AA270 + b _080A9FC8 +_080A9FB8: + adds r0, r4, #0 + bl sub_080AA2E0 + cmp r0, #0 + beq _080A9FC8 + adds r0, r4, #0 + bl sub_080AA320 +_080A9FC8: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_080A9FD0 +sub_080A9FD0: @ 0x080A9FD0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A9FF2 + movs r0, #0xbf + ands r0, r1 + strb r0, [r2] + ldr r0, _080AA038 @ =0x0000015D + bl sub_08004488 +_080A9FF2: + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080AA03C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r5, #0 + adds r4, #0x78 + strh r1, [r4] + ldrh r0, [r4] + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002B0 + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, r1 + bne _080AA034 + ldr r0, _080AA040 @ =0x00004005 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E +_080AA034: + pop {r4, r5, pc} + .align 2, 0 +_080AA038: .4byte 0x0000015D +_080AA03C: .4byte gRoomControls +_080AA040: .4byte 0x00004005 + + thumb_func_start sub_080AA044 +sub_080AA044: @ 0x080AA044 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + cmp r5, #0 + bne _080AA052 + bl sub_0805E780 +_080AA052: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080AA05E + bl sub_0805E780 + b _080AA0A2 +_080AA05E: + ldrh r0, [r5, #0x12] + ldrb r1, [r5, #0x1e] + bl sub_080700C8 + adds r3, r0, #0 + ldrb r1, [r5, #0x14] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080AA08C + movs r2, #0 + ldrsb r2, [r3, r2] + rsbs r2, r2, #0 + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + b _080AA0A2 +_080AA08C: + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative +_080AA0A2: + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _080AA108 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080AA0B8 + subs r0, #1 + strb r0, [r4, #0xf] + b _080AA108 +_080AA0B8: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AA108 + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #3 + strb r0, [r1] + movs r0, #0x40 + strb r0, [r4, #0xf] + ldrb r0, [r5, #0x14] + lsls r1, r0, #2 + strb r1, [r4, #0x15] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r4, #0x14] + ldr r0, _080AA10C @ =gUnk_080FD150 + str r0, [r4, #0x48] + bl sub_08052660 + cmp r0, #0 + beq _080AA100 + ldrb r0, [r4, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] +_080AA100: + adds r0, r4, #0 + movs r1, #0 + bl sub_080AA3E0 +_080AA108: + pop {r4, r5, pc} + .align 2, 0 +_080AA10C: .4byte gUnk_080FD150 + + thumb_func_start sub_080AA110 +sub_080AA110: @ 0x080AA110 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldr r7, [r6, #0x54] + cmp r7, #0 + beq _080AA1B6 + ldr r0, [r7, #4] + cmp r0, #0 + bne _080AA128 + str r0, [r6, #0x54] +_080AA128: + ldrb r0, [r6, #0xf] + adds r5, r0, #0 + cmp r5, #0 + beq _080AA136 + subs r0, #1 + strb r0, [r6, #0xf] + b _080AA1C4 +_080AA136: + adds r0, r6, #0 + bl sub_080AA374 + cmp r0, #0 + beq _080AA1C4 + adds r0, r7, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080AA14E + bl sub_0805E780 +_080AA14E: + movs r0, #0xf2 + bl sub_08004488 + movs r4, #1 + strb r4, [r6, #0xc] + movs r0, #0xff + strb r0, [r6, #0x14] + adds r0, r6, #0 + adds r0, #0x82 + strb r5, [r0] + strb r5, [r6, #0xe] + subs r0, #2 + movs r1, #0 + mov sb, r1 + movs r1, #0x20 + mov r8, r1 + mov r1, r8 + strh r1, [r0] + ldrb r1, [r6, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r6, #0x1b] + ldr r0, [r6, #0x54] + str r0, [r6, #0x50] + str r5, [r6, #0x54] + adds r0, r6, #0 + bl sub_080AA270 + ldr r7, [r6, #0x50] + strb r4, [r7, #0xc] + ldrb r0, [r7, #0x14] + lsls r0, r0, #2 + strb r0, [r7, #0x15] + strh r5, [r7, #0x24] + adds r0, r7, #0 + adds r0, #0x82 + strb r4, [r0] + mov r0, sb + strb r0, [r7, #0xe] + movs r0, #0x78 + strb r0, [r7, #0xf] + adds r0, r7, #0 + adds r0, #0x80 + mov r1, r8 + strh r1, [r0] + adds r0, r7, #0 + movs r1, #1 + bl sub_080AA3E0 + b _080AA1C4 +_080AA1B6: + adds r0, r6, #0 + bl sub_080040A8 + cmp r0, #0 + bne _080AA1C4 + bl sub_0805E780 +_080AA1C4: + adds r0, r6, #0 + bl sub_0806F69C + adds r0, r6, #0 + bl sub_080042B8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AA1D8 +sub_080AA1D8: @ 0x080AA1D8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + cmp r4, #0 + beq _080AA268 + ldr r0, [r4, #4] + cmp r0, #0 + bne _080AA1EC + bl sub_0805E780 +_080AA1EC: + ldrb r1, [r4, #0x1e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080AA26C + ldrh r0, [r4, #0x12] + ldrb r1, [r4, #0x1e] + bl sub_080700C8 + adds r3, r0, #0 + ldrb r1, [r4, #0x14] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080AA224 + movs r2, #0 + ldrsb r2, [r3, r2] + rsbs r2, r2, #0 + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative + b _080AA23A +_080AA224: + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative +_080AA23A: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080AA256 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AA26C + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + b _080AA26C +_080AA256: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AA26C + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _080AA26C +_080AA268: + bl sub_0805E780 +_080AA26C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AA270 +sub_080AA270: @ 0x080AA270 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + bl sub_08000E50 + ldr r1, _080AA2A4 @ =gUnk_08129CA4 + movs r6, #7 + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xf] + ldrb r4, [r4, #0x14] + ldrb r0, [r5, #0x14] + cmp r0, #0xff + bne _080AA2AC + strb r4, [r5, #0x14] + ldr r0, _080AA2A8 @ =gUnk_08129CF4 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r5, #0x48] + adds r0, r5, #0 + movs r1, #0 + bl sub_080AA3E0 + b _080AA2D6 + .align 2, 0 +_080AA2A4: .4byte gUnk_08129CA4 +_080AA2A8: .4byte gUnk_08129CF4 +_080AA2AC: + bl sub_08000E50 + ldr r1, _080AA2D8 @ =gUnk_08129CAC + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, r0, r4 + ands r4, r6 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _080AA2D6 + strb r4, [r5, #0x14] + ldr r0, _080AA2DC @ =gUnk_08129CF4 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r5, #0x48] + adds r0, r5, #0 + movs r1, #0 + bl sub_080AA3E0 +_080AA2D6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AA2D8: .4byte gUnk_08129CAC +_080AA2DC: .4byte gUnk_08129CF4 + + thumb_func_start sub_080AA2E0 +sub_080AA2E0: @ 0x080AA2E0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _080AA31C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + ldrb r1, [r5, #0x14] + lsls r1, r1, #2 + adds r0, #4 + movs r2, #0x1c + ands r0, r2 + adds r1, #4 + ands r1, r2 + cmp r0, r1 + bne _080AA31C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_08049F1C + cmp r0, #0 + beq _080AA31C + movs r0, #1 + b _080AA31E +_080AA31C: + movs r0, #0 +_080AA31E: + pop {r4, r5, pc} + + thumb_func_start sub_080AA320 +sub_080AA320: @ 0x080AA320 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + movs r2, #0 + movs r1, #2 + strb r1, [r5, #0xc] + adds r3, r5, #0 + adds r3, #0x82 + movs r0, #1 + strb r0, [r3] + strb r2, [r5, #0xf] + strb r1, [r4, #0xc] + movs r0, #0x30 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x50 + strh r0, [r1] + strh r2, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x1c + ands r0, r1 + lsrs r1, r0, #2 + strb r1, [r5, #0x14] + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #1 + bl sub_080AA3E0 + adds r0, r5, #0 + bl sub_080AA1D8 + pop {r4, r5, pc} + + thumb_func_start sub_080AA374 +sub_080AA374: @ 0x080AA374 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r0, #0 + mov r8, r0 + ldr r5, [r6, #0x54] + cmp r5, #0 + beq _080AA3D8 + ldr r0, [r5, #4] + cmp r0, #0 + beq _080AA3D8 + ldrb r4, [r5, #0x14] + ldr r0, _080AA3CC @ =gUnk_08129D14 + adds r4, r4, r0 + movs r2, #0 + ldrsb r2, [r4, r2] + movs r3, #1 + ldrsb r3, [r4, r3] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0806F824 + adds r7, r0, #0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + movs r0, #1 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + adds r0, r6, #0 + movs r3, #8 + bl sub_0806FCB8 + cmp r0, #0 + beq _080AA3D0 + movs r0, #1 + mov r8, r0 + b _080AA3D8 + .align 2, 0 +_080AA3CC: .4byte gUnk_08129D14 +_080AA3D0: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08004596 +_080AA3D8: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AA3E0 +sub_080AA3E0: @ 0x080AA3E0 + push {lr} + adds r3, r0, #0 + ldrb r2, [r3, #0x14] + adds r0, #0x82 + ldrb r0, [r0] + lsls r0, r0, #3 + orrs r2, r0 + cmp r1, #0 + beq _080AA3F4 + lsrs r2, r2, #1 +_080AA3F4: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AA400 +sub_080AA400: @ 0x080AA400 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AA418 @ =gUnk_08129FB8 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AA418: .4byte gUnk_08129FB8 + + thumb_func_start sub_080AA41C +sub_080AA41C: @ 0x080AA41C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080AA44C + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xa] + strb r1, [r2, #0x1e] + strb r0, [r2, #0x1c] + adds r0, r2, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r2, #0x24] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _080AA446 + adds r0, r2, #0 + bl sub_080AA494 + b _080AA44C +_080AA446: + adds r0, r2, #0 + bl sub_080AA534 +_080AA44C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AA450 +sub_080AA450: @ 0x080AA450 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x96 + bne _080AA462 + adds r0, r1, #0 + bl sub_080AA464 +_080AA462: + pop {pc} + + thumb_func_start sub_080AA464 +sub_080AA464: @ 0x080AA464 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AA474 + adds r0, r4, #0 + bl sub_080AA544 +_080AA474: + movs r0, #0x21 + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080AA48A + adds r0, r4, #0 + bl sub_0806FA24 +_080AA48A: + adds r0, r4, #0 + bl sub_0805E7BC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AA494 +sub_080AA494: @ 0x080AA494 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + bl sub_080002A0 + adds r2, r0, #0 + ldr r1, _080AA4A4 @ =gUnk_08129FD0 + b _080AA4AA + .align 2, 0 +_080AA4A4: .4byte gUnk_08129FD0 +_080AA4A8: + adds r4, #1 +_080AA4AA: + ldrh r0, [r1] + cmp r0, #0 + beq _080AA4B6 + adds r1, #2 + cmp r0, r2 + bne _080AA4A8 +_080AA4B6: + ldrh r0, [r5, #0x24] + bl sub_0807CBE4 + cmp r0, #0 + beq _080AA4EE + cmp r4, #4 + bne _080AA4EA + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080AA52C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_080AA654 +_080AA4EA: + bl sub_0805E780 +_080AA4EE: + strb r4, [r5, #0xb] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080AA530 @ =0x00004068 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080AA52C @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_080AA52C: .4byte gRoomControls +_080AA530: .4byte 0x00004068 + + thumb_func_start sub_080AA534 +sub_080AA534: @ 0x080AA534 + push {lr} + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #3 + strb r1, [r2] + bl sub_08016A04 + pop {pc} + + thumb_func_start sub_080AA544 +sub_080AA544: @ 0x080AA544 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xb] + cmp r0, #8 + bhi _080AA618 + ldr r0, _080AA5E8 @ =gUnk_08129FF8 + mov sb, r0 + movs r1, #0x2e + ldrsh r2, [r6, r1] + ldr r1, _080AA5EC @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + ldrb r0, [r6, #0xb] + add r0, sb + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r7, r2, r0 + movs r4, #0 + movs r5, #0 + movs r0, #0x38 + adds r0, r0, r6 + mov r8, r0 +_080AA58E: + mov r1, sb + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r7, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, r8 + ldrb r1, [r2] + bl sub_080002C8 + cmp r0, #0x3e + bne _080AA5AC + adds r5, #1 +_080AA5AC: + adds r4, #1 + cmp r4, #8 + bls _080AA58E + cmp r5, #8 + bne _080AA5F4 + movs r4, #0 + ldr r5, _080AA5F0 @ =gUnk_08129FD0 +_080AA5BA: + ldrh r0, [r5] + mov r3, sb + adds r1, r3, r4 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r1, r7, r1 + mov r3, r8 + ldrb r2, [r3] + bl sub_0807B7D8 + adds r5, #2 + adds r4, #1 + cmp r4, #8 + bls _080AA5BA + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_080AA654 + ldrh r0, [r6, #0x24] + bl sub_0807CCC8 + b _080AA648 + .align 2, 0 +_080AA5E8: .4byte gUnk_08129FF8 +_080AA5EC: .4byte gRoomControls +_080AA5F0: .4byte gUnk_08129FD0 +_080AA5F4: + ldr r2, _080AA614 @ =gUnk_08129FE4 + ldrb r1, [r6, #0xb] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + add r1, sb + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r1, r7, r1 + mov r4, r8 + ldrb r2, [r4] + bl sub_0807B7D8 + b _080AA648 + .align 2, 0 +_080AA614: .4byte gUnk_08129FE4 +_080AA618: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, _080AA650 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r4, #0x32 + ldrsh r1, [r6, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r6, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + ldrh r0, [r6, #0x24] + bl sub_0807CCC8 +_080AA648: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AA650: .4byte gRoomControls + + thumb_func_start sub_080AA654 +sub_080AA654: @ 0x080AA654 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r4, #0x68 + ldr r0, _080AA688 @ =gUnk_0812A004 + adds r1, r4, #0 + movs r2, #0x10 + bl sub_0801D66C + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + strh r0, [r4, #8] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + strh r0, [r4, #0xa] + adds r0, r4, #0 + bl CreateEntity + pop {r4, r5, pc} + .align 2, 0 +_080AA688: .4byte gUnk_0812A004 + + thumb_func_start sub_080AA68C +sub_080AA68C: @ 0x080AA68C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AA6A4 @ =gUnk_0812A014 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AA6A4: .4byte gUnk_0812A014 + + thumb_func_start sub_080AA6A8 +sub_080AA6A8: @ 0x080AA6A8 + push {lr} + ldr r2, _080AA6BC @ =gUnk_0812A02C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AA6BC: .4byte gUnk_0812A02C + + thumb_func_start sub_080AA6C0 +sub_080AA6C0: @ 0x080AA6C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + bne _080AA774 + movs r6, #3 + movs r0, #3 + strb r0, [r4, #0xc] + movs r5, #0x5a + strb r5, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0xa] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_080042AC + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _080AA72A + strb r5, [r3, #0xb] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r1, _080AA770 @ =gUnk_0812A03C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, #0x39 + strb r0, [r2] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x63 + strb r0, [r1] + str r4, [r3, #0x50] +_080AA72A: + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _080AA784 + strb r5, [r3, #0xb] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r1, _080AA770 @ =gUnk_0812A03C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, #0x39 + strb r0, [r2] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x63 + strb r0, [r1] + str r4, [r3, #0x50] + b _080AA784 + .align 2, 0 +_080AA770: .4byte gUnk_0812A03C +_080AA774: + ldrb r1, [r4, #0xa] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _080AA788 @ =0x00000101 + bl sub_08004488 +_080AA784: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AA788: .4byte 0x00000101 + + thumb_func_start sub_080AA78C +sub_080AA78C: @ 0x080AA78C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080AA7DA + ldr r0, _080AA7C8 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r2, r0, #1 + ldrb r0, [r4, #0xa] + cmp r2, r0 + beq _080AA7CC + adds r3, r4, #0 + adds r3, #0x3a + ldrb r0, [r3] + movs r1, #0xfb + ands r1, r0 + strb r1, [r3] + movs r0, #2 + eors r2, r0 + ldrb r0, [r4, #0xa] + cmp r2, r0 + bne _080AA832 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080AA6C0 + b _080AA832 + .align 2, 0 +_080AA7C8: .4byte gLinkEntity +_080AA7CC: + movs r0, #1 + strb r0, [r4, #0xd] + adds r1, r2, #0 + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC +_080AA7DA: + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080AA812 + adds r0, r4, #0 + bl sub_080042B8 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080AA806 + movs r0, #0xef + ands r0, r1 + strb r0, [r5] + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_08004488 +_080AA806: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AA832 + b _080AA820 +_080AA812: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AA828 +_080AA820: + adds r0, r4, #0 + bl sub_080AAAA8 + b _080AA832 +_080AA828: + ldrb r1, [r4, #0xa] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_080042AC +_080AA832: + pop {r4, r5, pc} + + thumb_func_start sub_080AA834 +sub_080AA834: @ 0x080AA834 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080AA848 + bl sub_0805E780 +_080AA848: + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0x1c] + strb r0, [r4, #0x16] + ldr r1, _080AA874 @ =gUnk_0812A04C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x84 + strb r2, [r0] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_080AAA68 + pop {r4, pc} + .align 2, 0 +_080AA874: .4byte gUnk_0812A04C + + thumb_func_start sub_080AA878 +sub_080AA878: @ 0x080AA878 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AA88E + adds r0, r4, #0 + bl sub_080042B8 +_080AA88E: + adds r0, r4, #0 + bl sub_080AA9E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AA898 +sub_080AA898: @ 0x080AA898 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBB4 + ldr r1, _080AA8B4 @ =gUnk_0812A05C + ldrb r0, [r4, #0xd] + subs r0, #5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080AA8B4: .4byte gUnk_0812A05C + + thumb_func_start sub_080AA8B8 +sub_080AA8B8: @ 0x080AA8B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r7, _080AA99C @ =gLinkEntity + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + bne _080AA920 + ldrb r0, [r4, #0xa] + lsls r2, r0, #1 + ldrb r0, [r7, #0x14] + cmp r2, r0 + bne _080AA90A + ldr r1, _080AA9A0 @ =gUnk_0812A064 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080002D4 + cmp r0, #0 + bne _080AA90A + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] +_080AA90A: + adds r1, r4, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0xa] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_080AA920: + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + ldrb r2, [r4, #0xa] + cmp r0, r2 + bne _080AA99A + ldr r1, _080AA9A4 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x1a + bne _080AA99A + ldrb r1, [r1, #5] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080AA99A + ldr r0, _080AA99C @ =gLinkEntity + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080AA99A + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AA99A + adds r0, r4, #0 + bl sub_080042B8 + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AA99A + ldr r1, _080AA9A8 @ =gUnk_0812A06C + ldrb r0, [r7, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r7, #0x2e] + adds r0, r0, r3 + strh r0, [r7, #0x2e] + ldrb r0, [r7, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r7, #0x32] + adds r0, r0, r1 + strh r0, [r7, #0x32] + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_08004488 +_080AA99A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AA99C: .4byte gLinkEntity +_080AA9A0: .4byte gUnk_0812A064 +_080AA9A4: .4byte gUnk_03003F80 +_080AA9A8: .4byte gUnk_0812A06C + + thumb_func_start sub_080AA9AC +sub_080AA9AC: @ 0x080AA9AC + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x84 + strb r2, [r1] + ldrb r1, [r0, #0xa] + adds r1, #0xc + bl sub_080042AC + pop {pc} + + thumb_func_start sub_080AA9C4 +sub_080AA9C4: @ 0x080AA9C4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AA9DE + adds r0, r4, #0 + bl sub_080AAAA8 +_080AA9DE: + pop {r4, pc} + + thumb_func_start sub_080AA9E0 +sub_080AA9E0: @ 0x080AA9E0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AAA00 + ldr r0, _080AA9FC @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + b _080AAA0A + .align 2, 0 +_080AA9FC: .4byte gLinkEntity +_080AAA00: + ldr r0, _080AAA24 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] +_080AAA0A: + subs r4, r1, r0 + ldrb r2, [r5, #0xa] + lsls r1, r2, #2 + ldr r0, _080AAA28 @ =gUnk_0812A074 + adds r3, r1, r0 + cmp r2, #2 + bgt _080AAA2C + cmp r2, #1 + bge _080AAA36 + cmp r2, #0 + beq _080AAA30 + b _080AAA40 + .align 2, 0 +_080AAA24: .4byte gLinkEntity +_080AAA28: .4byte gUnk_0812A074 +_080AAA2C: + cmp r2, #3 + bne _080AAA40 +_080AAA30: + cmp r4, #4 + ble _080AAA40 + b _080AAA3E +_080AAA36: + movs r0, #4 + rsbs r0, r0, #0 + cmp r4, r0 + bge _080AAA40 +_080AAA3E: + adds r3, #2 +_080AAA40: + ldrb r0, [r3] + adds r4, r5, #0 + adds r4, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r3, #1] + strb r0, [r5, #0x15] + ldrb r0, [r3] + cmp r0, #5 + bne _080AAA66 + adds r0, r5, #0 + bl sub_08078930 +_080AAA66: + pop {r4, r5, pc} + + thumb_func_start sub_080AAA68 +sub_080AAA68: @ 0x080AAA68 + push {r4, r5, r6, lr} + ldr r2, _080AAAA0 @ =gUnk_0812A084 + ldrb r1, [r0, #0xa] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r5, [r1] + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _080AAAA4 @ =gRoomControls + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r0, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_080AAAA0: .4byte gUnk_0812A084 +_080AAAA4: .4byte gRoomControls + + thumb_func_start sub_080AAAA8 +sub_080AAAA8: @ 0x080AAAA8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _080AAAE4 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + bl sub_0805E780 + pop {r4, r5, pc} + .align 2, 0 +_080AAAE4: .4byte gRoomControls + + thumb_func_start sub_080AAAE8 +sub_080AAAE8: @ 0x080AAAE8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AAB00 @ =gUnk_0812A3C0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AAB00: .4byte gUnk_0812A3C0 + + thumb_func_start sub_080AAB04 +sub_080AAB04: @ 0x080AAB04 + push {lr} + ldr r2, _080AAB18 @ =gUnk_0812A3D4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AAB18: .4byte gUnk_0812A3D4 + + thumb_func_start sub_080AAB1C +sub_080AAB1C: @ 0x080AAB1C + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080AAB24 +sub_080AAB24: @ 0x080AAB24 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AAB38 +sub_080AAB38: @ 0x080AAB38 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080AAB4C + subs r0, #1 + strb r0, [r4, #0xe] + b _080AAB62 +_080AAB4C: + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + bne _080AAB5E + adds r0, r4, #0 + bl sub_0806F69C + b _080AAB62 +_080AAB5E: + movs r0, #2 + strb r0, [r4, #0xc] +_080AAB62: + pop {r4, pc} + + thumb_func_start sub_080AAB64 +sub_080AAB64: @ 0x080AAB64 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080AAB7C + bl sub_0805E780 +_080AAB7C: + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080AAB8A + bl sub_0805E780 +_080AAB8A: + pop {r4, pc} + + thumb_func_start sub_080AAB8C +sub_080AAB8C: @ 0x080AAB8C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AABA2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_080AABA2: + adds r0, r4, #0 + bl sub_080AABB0 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080AABB0 +sub_080AABB0: @ 0x080AABB0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r5, #0x14] + lsls r1, r1, #1 + ldr r0, _080AABEC @ =gUnk_080C9160 + adds r1, r1, r0 + ldrb r2, [r4, #0xe] + lsls r2, r2, #8 + movs r3, #0 + ldrsh r0, [r1, r3] + adds r3, r0, #0 + muls r3, r2, r3 + ldr r0, [r4, #0x2c] + adds r0, r0, r3 + str r0, [r4, #0x2c] + adds r1, #0x80 + movs r3, #0 + ldrsh r0, [r1, r3] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r4, #0x30] + pop {r4, r5, pc} + .align 2, 0 +_080AABEC: .4byte gUnk_080C9160 + + thumb_func_start sub_080AABF0 +sub_080AABF0: @ 0x080AABF0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AAC08 @ =gUnk_0812A418 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AAC08: .4byte gUnk_0812A418 + + thumb_func_start sub_080AAC0C +sub_080AAC0C: @ 0x080AAC0C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080AAC40 @ =gUnk_0812A430 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080AAC3C + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AAC3C + subs r1, #0x3f + movs r0, #0 + strb r0, [r1] +_080AAC3C: + pop {r4, pc} + .align 2, 0 +_080AAC40: .4byte gUnk_0812A430 + + thumb_func_start sub_080AAC44 +sub_080AAC44: @ 0x080AAC44 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AACCA + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080AACBC + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080AACA0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AAC84 + ldr r0, _080AAC80 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FAB0 + b _080AAC8C + .align 2, 0 +_080AAC80: .4byte gLinkEntity +_080AAC84: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FAB0 +_080AAC8C: + bl sub_08077B2C + ldr r2, _080AACB4 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] +_080AACA0: + ldr r0, _080AACB8 @ =gLinkEntity + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _080AACCA + adds r0, r4, #0 + adds r0, #0x45 + strb r1, [r0] + b _080AACCA + .align 2, 0 +_080AACB4: .4byte gUnk_03003F80 +_080AACB8: .4byte gLinkEntity +_080AACBC: + ldr r0, _080AACDC @ =0x00000119 + bl sub_080A3268 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 +_080AACCA: + adds r1, r4, #0 + adds r1, #0x42 + ldrb r0, [r1] + cmp r0, #0 + beq _080AACD8 + movs r0, #0 + strb r0, [r1] +_080AACD8: + pop {r4, pc} + .align 2, 0 +_080AACDC: .4byte 0x00000119 + + thumb_func_start sub_080AACE0 +sub_080AACE0: @ 0x080AACE0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080AACF4 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080AACF4 + bl sub_0805E780 +_080AACF4: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r2, r0, #0x1e + adds r5, r4, #0 + adds r5, #0x86 + cmp r2, #1 + bne _080AAD16 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r2, [r5] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX +_080AAD16: + ldr r2, [r4, #0x50] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080AAD4A + adds r1, r2, #0 + adds r1, #0x74 + movs r0, #3 + strb r0, [r1] + adds r1, #0xc + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + lsrs r0, r0, #1 + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _080AAD42 + movs r0, #8 + b _080AAD56 +_080AAD42: + cmp r0, #0 + bne _080AAD58 + movs r0, #1 + b _080AAD56 +_080AAD4A: + adds r1, r2, #0 + adds r1, #0x84 + movs r0, #0 + strb r0, [r1] + subs r1, #0x45 + movs r0, #0x2b +_080AAD56: + strb r0, [r1] +_080AAD58: + ldrb r0, [r5] + cmp r0, #0 + bne _080AAD68 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX +_080AAD68: + bl sub_0805E780 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AAD70 +sub_080AAD70: @ 0x080AAD70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080AAD82 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080AAD82: + ldr r0, _080AAD94 @ =gUnk_0812A440 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080AAD94: .4byte gUnk_0812A440 + + thumb_func_start sub_080AAD98 +sub_080AAD98: @ 0x080AAD98 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_541 +nullsub_541: @ 0x080AADA0 + bx lr + .align 2, 0 + + thumb_func_start sub_080AADA4 +sub_080AADA4: @ 0x080AADA4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080AADB8 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_080AADB8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AADBC +sub_080AADBC: @ 0x080AADBC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _080AADCC + movs r0, #1 + strb r0, [r5, #0xc] + b _080AADE0 +_080AADCC: + movs r0, #3 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x2c + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAB0 +_080AADE0: + ldrb r1, [r5, #0xa] + cmp r1, #0 + bne _080AAE64 + strb r1, [r5, #0xe] + movs r3, #4 + movs r0, #4 + strb r0, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x45 + movs r0, #0x10 + strb r0, [r1] + ldrh r0, [r5, #0x36] + adds r0, #4 + movs r4, #0 + strh r0, [r5, #0x36] + ldrb r2, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + ldr r1, _080AAE60 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x86 + strb r4, [r0] + adds r1, r5, #0 + adds r1, #0x84 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + movs r0, #0x18 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _080AAE7C + movs r0, #1 + strb r0, [r1, #0xa] + ldrb r0, [r5, #0xb] + strb r0, [r1, #0xb] + str r5, [r1, #0x50] + b _080AAE7C + .align 2, 0 +_080AAE60: .4byte gLinkEntity +_080AAE64: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAB0 + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 +_080AAE7C: + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AAE88 +sub_080AAE88: @ 0x080AAE88 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _080AAED0 + cmp r0, #1 + bgt _080AAE9C + cmp r0, #0 + beq _080AAEA2 + b _080AAEF6 +_080AAE9C: + cmp r0, #2 + beq _080AAEE0 + b _080AAEF6 +_080AAEA2: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AAEC2 + movs r0, #4 + strb r0, [r4, #0xf] + ldr r1, _080AAECC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080AAEC2: + adds r0, r4, #0 + bl sub_0806F69C + b _080AAEF6 + .align 2, 0 +_080AAECC: .4byte gLinkEntity +_080AAED0: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080AAEDC + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AAEE0 +_080AAEDC: + bl sub_0805E780 +_080AAEE0: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080AAEEE + bl sub_0805E780 +_080AAEEE: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 +_080AAEF6: + adds r0, r4, #0 + bl sub_080AB034 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AAF00 +sub_080AAF00: @ 0x080AAF00 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AAF74 + adds r0, r4, #0 + bl sub_080AB034 + pop {r4, pc} + + thumb_func_start sub_080AAF10 +sub_080AAF10: @ 0x080AAF10 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_080AB034 + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080AAF48 + adds r0, r3, #0 + adds r0, #0x45 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080AAF48: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _080AAF60 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AAF70 + movs r0, #0x7f + ands r0, r1 + b _080AAF6E +_080AAF60: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AAF70 + movs r0, #0x80 + orrs r0, r1 +_080AAF6E: + strb r0, [r4, #0x10] +_080AAF70: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AAF74 +sub_080AAF74: @ 0x080AAF74 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0807953C + cmp r0, #0 + beq _080AAF94 + bl sub_08000E50 + adds r3, r5, #0 + adds r3, #0x80 + ldrb r1, [r3] + adds r1, #1 + movs r2, #1 + ands r0, r2 + adds r1, r1, r0 + strb r1, [r3] +_080AAF94: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bne _080AAFCC + movs r0, #0x1e + strb r0, [r5, #0xe] + ldr r4, _080AAFFC @ =gLinkEntity + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #8 + strb r0, [r1] + subs r0, #0xc + bl ModHealth + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + adds r4, #0x45 + ldrb r1, [r4] + cmp r1, #0 + bne _080AAFCC + adds r0, r5, #0 + adds r0, #0x45 + strb r1, [r0] +_080AAFCC: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0x30 + bhi _080AAFE0 + adds r0, r5, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0x10 + bne _080AB004 +_080AAFE0: + movs r2, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r2, [r1] + ldr r0, _080AAFFC @ =gLinkEntity + adds r0, #0x3d + movs r1, #0xf0 + strb r1, [r0] + ldr r0, _080AB000 @ =gUnk_03003F80 + strb r2, [r0, #0x1a] + adds r0, r5, #0 + adds r0, #0x45 + strb r2, [r0] + b _080AB028 + .align 2, 0 +_080AAFFC: .4byte gLinkEntity +_080AB000: .4byte gUnk_03003F80 +_080AB004: + bl sub_08077B2C + ldr r2, _080AB02C @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r4, _080AB030 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #4 + strh r0, [r5, #0x36] +_080AB028: + pop {r4, r5, pc} + .align 2, 0 +_080AB02C: .4byte gUnk_03003F80 +_080AB030: .4byte gLinkEntity + + thumb_func_start sub_080AB034 +sub_080AB034: @ 0x080AB034 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + ldr r1, _080AB058 @ =0x00000139 + cmp r0, #0 + beq _080AB04E + movs r1, #0 +_080AB04E: + adds r0, r4, #0 + bl sub_0801D2B4 + pop {r4, pc} + .align 2, 0 +_080AB058: .4byte 0x00000139 + + thumb_func_start sub_080AB05C +sub_080AB05C: @ 0x080AB05C + push {lr} + ldr r2, _080AB070 @ =gUnk_0812A494 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AB070: .4byte gUnk_0812A494 + + thumb_func_start sub_080AB074 +sub_080AB074: @ 0x080AB074 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + ldr r0, [r5, #4] + cmp r0, #0 + bne _080AB084 + bl sub_0805E780 +_080AB084: + ldrb r6, [r4, #0xc] + cmp r6, #0 + bne _080AB0AA + adds r0, r4, #0 + bl sub_080AB12C + cmp r0, #0 + beq _080AB124 + movs r0, #1 + strb r0, [r4, #0xc] + strb r6, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_080AB0AA: + ldr r0, [r4, #0x50] + adds r7, r5, #0 + adds r7, #0x7f + movs r3, #0 + ldrsb r3, [r7, r3] + rsbs r3, r3, #0 + subs r3, #0xa + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + ldr r3, _080AB128 @ =gUnk_080C9160 + adds r2, r5, #0 + adds r2, #0x7c + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r6, #0 + ldrsh r1, [r0, r6] + adds r6, r5, #0 + adds r6, #0x7e + ldrb r0, [r6] + lsls r0, r0, #8 + muls r1, r0, r1 + ldr r0, [r4, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldrb r0, [r2] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + ldrb r0, [r6] + lsls r0, r0, #8 + muls r1, r0, r1 + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r4, #0x30] + movs r0, #0 + ldrsb r0, [r7, r0] + ldrh r6, [r4, #0x36] + adds r0, r0, r6 + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _080AB124 + movs r0, #0x19 + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _080AB124 + movs r0, #4 + strb r0, [r5, #0xa] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA6C +_080AB124: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AB128: .4byte gUnk_080C9160 + + thumb_func_start sub_080AB12C +sub_080AB12C: @ 0x080AB12C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080AB168 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bhi _080AB16C + movs r0, #0x19 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r0, #1 + strb r0, [r1, #0xa] + str r4, [r1, #0x50] + movs r0, #0x19 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r0, #2 + strb r0, [r1, #0xa] + str r4, [r1, #0x50] + movs r0, #0x19 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r0, #3 + strb r0, [r1, #0xa] + str r4, [r1, #0x50] + movs r0, #1 + b _080AB16E + .align 2, 0 +_080AB168: .4byte gUnk_03003DBC +_080AB16C: + movs r0, #0 +_080AB16E: + pop {r4, pc} + + thumb_func_start sub_080AB170 +sub_080AB170: @ 0x080AB170 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + ldr r0, [r6, #4] + cmp r0, #0 + bne _080AB180 + bl sub_0805E780 +_080AB180: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AB1AA + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3a + ands r0, r1 + strb r0, [r2] + movs r0, #5 + strb r0, [r4, #0x1e] + ldrb r1, [r2] + subs r0, #0xd + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080AB1C8 @ =gUnk_080FD460 + str r0, [r4, #0x48] +_080AB1AA: + ldr r5, [r6, #0x50] + adds r0, r4, #0 + adds r0, #0x7c + adds r2, r5, #0 + adds r2, #0x7c + ldrb r1, [r0] + adds r3, r0, #0 + ldrb r2, [r2] + cmp r1, r2 + beq _080AB1CC + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _080AB1D2 + .align 2, 0 +_080AB1C8: .4byte gUnk_080FD460 +_080AB1CC: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_080AB1D2: + strb r0, [r4, #0x10] + adds r0, r5, #0 + adds r0, #0x7c + ldrb r0, [r0] + strb r0, [r3] + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080AB208 + movs r0, #0x1f + ands r0, r1 + ldr r1, _080AB204 @ =gUnk_0812A4A8 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA90 + b _080AB216 + .align 2, 0 +_080AB204: .4byte gUnk_0812A4A8 +_080AB208: + movs r3, #0xa + rsbs r3, r3, #0 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 +_080AB216: + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrb r2, [r4, #0xa] + muls r0, r2, r0 + adds r3, r2, #0 + cmp r0, #0 + bge _080AB22C + adds r0, #3 +_080AB22C: + asrs r0, r0, #2 + ldrh r5, [r4, #0x2e] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r5, #0x32 + ldrsh r1, [r4, r5] + subs r0, r0, r1 + muls r0, r3, r0 + cmp r0, #0 + bge _080AB246 + adds r0, #3 +_080AB246: + asrs r0, r0, #2 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + movs r3, #0x36 + ldrsh r0, [r6, r3] + movs r5, #0x36 + ldrsh r1, [r4, r5] + subs r0, r0, r1 + muls r0, r2, r0 + cmp r0, #0 + bge _080AB260 + adds r0, #3 +_080AB260: + asrs r0, r0, #2 + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080AB26C +sub_080AB26C: @ 0x080AB26C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xc] + cmp r1, #0 + bne _080AB28C + movs r0, #1 + strb r0, [r2, #0xc] + movs r0, #5 + strb r0, [r2, #0xe] + strb r1, [r2, #0x1e] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x3e + ands r0, r1 + strb r0, [r3] +_080AB28C: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AB29E + bl sub_0805E780 + b _080AB2A4 +_080AB29E: + ldrb r0, [r2, #0x1e] + adds r0, #1 + strb r0, [r2, #0x1e] +_080AB2A4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AB2A8 +sub_080AB2A8: @ 0x080AB2A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AB2C0 @ =gUnk_0812A4C8 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AB2C0: .4byte gUnk_0812A4C8 + + thumb_func_start sub_080AB2C4 +sub_080AB2C4: @ 0x080AB2C4 + push {lr} + ldr r2, _080AB2D8 @ =gUnk_0812A4DC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AB2D8: .4byte gUnk_0812A4DC + + thumb_func_start sub_080AB2DC +sub_080AB2DC: @ 0x080AB2DC + push {r4, r5, lr} + adds r2, r0, #0 + adds r5, r2, #0 + adds r5, #0x41 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB314 + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r4, #0x7f + adds r0, r4, #0 + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + movs r1, #0x53 + bl sub_08004260 + ldrb r0, [r5] + ands r4, r0 + cmp r4, #0 + bne _080AB314 + movs r0, #4 + rsbs r0, r0, #0 + bl ModHealth +_080AB314: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AB318 +sub_080AB318: @ 0x080AB318 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r4, #1 + movs r0, #1 + mov r8, r0 + mov r1, r8 + strb r1, [r6, #0xc] + ldr r0, _080AB3D8 @ =0xFFFF0000 + str r0, [r6, #0x20] + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r2, _080AB3DC @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r6, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r6, #0 + adds r0, #0x76 + strh r1, [r0] + ldr r0, [r6, #0x50] + adds r1, r6, #0 + bl sub_0806FA24 + movs r1, #0x80 + lsls r1, r1, #5 + ldrb r2, [r6, #0x15] + adds r0, r6, #0 + bl sub_0806F5BC + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r2] + ldr r0, [r6, #0x50] + ldr r0, [r0, #0x34] + str r0, [r6, #0x34] + adds r0, r6, #0 + movs r1, #0x51 + bl sub_08004260 + ldr r0, _080AB3E0 @ =0x000001B5 + bl sub_080A3268 + adds r0, r6, #0 + bl sub_080AB4F8 + movs r1, #0x2e + ldrsh r2, [r6, r1] + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r2, r1 + movs r2, #0x32 + ldrsh r1, [r6, r2] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r7, r1, r0 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_080041DC + adds r4, r0, #0 + bl sub_08000E50 + adds r1, r0, #0 + ldr r0, _080AB3E4 @ =0x000001FF + ands r1, r0 + ldr r0, _080AB3E8 @ =gUnk_030010A0 + ldr r0, [r0] + mov r2, r8 + ands r0, r2 + cmp r0, #0 + beq _080AB3EC + adds r4, r4, r1 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + ble _080AB3F4 + adds r4, r0, #0 + b _080AB3F4 + .align 2, 0 +_080AB3D8: .4byte 0xFFFF0000 +_080AB3DC: .4byte gRoomControls +_080AB3E0: .4byte 0x000001B5 +_080AB3E4: .4byte 0x000001FF +_080AB3E8: .4byte gUnk_030010A0 +_080AB3EC: + subs r4, r4, r1 + cmp r4, #0x1f + bgt _080AB3F4 + movs r4, #0x20 +_080AB3F4: + lsls r1, r4, #8 + ldr r0, [r6, #0x34] + bl __divsi3 + lsls r0, r0, #0xd + str r0, [r6, #0x20] + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_080045B4 + strb r0, [r6, #0x15] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AB414 +sub_080AB414: @ 0x080AB414 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + movs r1, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080AB446 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x54 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080AB4A4 + b _080AB458 +_080AB446: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe0 + bls _080AB458 + bl sub_0805E780 +_080AB458: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB45C +sub_080AB45C: @ 0x080AB45C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB486 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0x53 + bl sub_08004260 +_080AB486: + pop {r4, pc} + + thumb_func_start sub_080AB488 +sub_080AB488: @ 0x080AB488 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB4A0 + bl sub_0805E780 +_080AB4A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB4A4 +sub_080AB4A4: @ 0x080AB4A4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r6, #0 + adds r7, #0x76 + ldrh r4, [r7] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r3, _080AB4F4 @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + cmp r4, r5 + beq _080AB4F2 + strh r5, [r7] + adds r0, r6, #0 + bl sub_080002A0 + cmp r0, #0x13 + beq _080AB4E2 + cmp r0, #0x34 + bne _080AB4F2 +_080AB4E2: + movs r0, #0xd3 + lsls r0, r0, #2 + ldrh r1, [r7] + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_080AB4F2: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AB4F4: .4byte gRoomControls + + thumb_func_start sub_080AB4F8 +sub_080AB4F8: @ 0x080AB4F8 + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #5 + ldrb r1, [r1, #0xf] + lsls r1, r1, #1 + orrs r0, r1 + ldr r1, _080AB50C @ =gUnk_0812A4EC + adds r0, r0, r1 + bx lr + .align 2, 0 +_080AB50C: .4byte gUnk_0812A4EC + + thumb_func_start sub_080AB510 +sub_080AB510: @ 0x080AB510 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AB528 @ =gUnk_0812A58C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AB528: .4byte gUnk_0812A58C + + thumb_func_start sub_080AB52C +sub_080AB52C: @ 0x080AB52C + push {lr} + ldr r2, _080AB540 @ =gUnk_0812A5A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AB540: .4byte gUnk_0812A5A0 + + thumb_func_start sub_080AB544 +sub_080AB544: @ 0x080AB544 + push {lr} + adds r2, r0, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #4 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080AB57C + movs r1, #2 + movs r0, #2 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r2, #0x15] + ldrb r0, [r2, #0xa] + eors r1, r0 + lsls r1, r1, #3 + ldrb r0, [r2, #0x15] + subs r0, r0, r1 + adds r0, #1 + cmp r0, #2 + bhi _080AB576 + strb r1, [r2, #0x15] +_080AB576: + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r2, #0x24] +_080AB57C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AB580 +sub_080AB580: @ 0x080AB580 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldr r1, _080AB598 @ =0x0000FFFC + strh r1, [r0, #0x36] + ldrb r1, [r0, #0xa] + bl sub_08004260 + pop {pc} + .align 2, 0 +_080AB598: .4byte 0x0000FFFC + + thumb_func_start sub_080AB59C +sub_080AB59C: @ 0x080AB59C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + bne _080AB5BC + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_080AB5BC: + adds r0, r4, #0 + bl sub_080AB5F4 + pop {r4, pc} + + thumb_func_start sub_080AB5C4 +sub_080AB5C4: @ 0x080AB5C4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_080AB634 + cmp r0, #0 + bne _080AB5F0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080AB5F0 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_080AB5F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB5F4 +sub_080AB5F4: @ 0x080AB5F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080043E8 + cmp r0, #2 + beq _080AB61A + cmp r0, #2 + bhi _080AB60A + cmp r0, #1 + beq _080AB610 + b _080AB62E +_080AB60A: + cmp r0, #3 + beq _080AB624 + b _080AB62E +_080AB610: + adds r0, r4, #0 + bl sub_080043B4 + movs r0, #1 + b _080AB630 +_080AB61A: + adds r0, r4, #0 + bl sub_080043A8 + movs r0, #1 + b _080AB630 +_080AB624: + adds r0, r4, #0 + bl sub_080043AC + movs r0, #1 + b _080AB630 +_080AB62E: + movs r0, #0 +_080AB630: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB634 +sub_080AB634: @ 0x080AB634 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, [r6, #0x50] + movs r5, #0 + adds r4, r0, #0 + adds r4, #0x20 +_080AB640: + ldr r1, [r4] + cmp r1, #0 + beq _080AB684 + adds r0, r6, #0 + bl sub_080177A0 + cmp r0, #0 + beq _080AB684 + ldr r1, [r4] + ldrb r0, [r1, #0xc] + cmp r0, #2 + bhi _080AB67A + movs r0, #3 + strb r0, [r1, #0xc] + ldr r1, [r4] + movs r0, #0x1e + strb r0, [r1, #0xe] + ldr r2, [r4] + ldrb r0, [r2, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r4] + movs r1, #0x45 + movs r2, #0 + bl CreateFX +_080AB67A: + adds r0, r6, #0 + bl sub_0805E7BC + movs r0, #1 + b _080AB68E +_080AB684: + adds r4, #4 + adds r5, #1 + cmp r5, #3 + bls _080AB640 + movs r0, #0 +_080AB68E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080AB690 +sub_080AB690: @ 0x080AB690 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080AB6A2 + bl sub_0805E780 +_080AB6A2: + ldr r0, _080AB6B4 @ =gUnk_0812A5E8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080AB6B4: .4byte gUnk_0812A5E8 + + thumb_func_start sub_080AB6B8 +sub_080AB6B8: @ 0x080AB6B8 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + ldr r0, [r0, #0x2c] + str r0, [r2, #0x74] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080AB6E8 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldr r0, _080AB6E4 @ =gUnk_0812A614 + str r0, [r2, #0x48] + adds r0, r2, #0 + movs r1, #0 + bl sub_08004260 + b _080AB6F8 + .align 2, 0 +_080AB6E4: .4byte gUnk_0812A614 +_080AB6E8: + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #4 + strb r0, [r2, #0xf] + ldrb r1, [r2, #0xe] + adds r0, r2, #0 + bl sub_08004260 +_080AB6F8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AB6FC +sub_080AB6FC: @ 0x080AB6FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB724 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080AB758 +_080AB724: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB728 +sub_080AB728: @ 0x080AB728 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r2, [r4, #0x50] + ldr r1, [r2, #0x2c] + ldr r0, [r4, #0x74] + subs r1, r1, r0 + ldr r0, [r4, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldr r0, [r2, #0x2c] + str r0, [r4, #0x74] + adds r0, r4, #0 + bl sub_080AB888 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _080AB754 + bl sub_0805E780 +_080AB754: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB758 +sub_080AB758: @ 0x080AB758 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + movs r6, #6 + movs r7, #0 + movs r4, #0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + ldr r1, _080AB818 @ =gRoomControls + ldrh r0, [r1, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r1 + cmp r2, r0 + bhi _080AB7B4 + movs r3, #7 +_080AB77E: + adds r0, r4, #0 + ands r0, r3 + cmp r0, #7 + bne _080AB798 + adds r0, r5, #0 + movs r1, #4 + adds r2, r6, #0 + str r3, [sp] + bl sub_080AB844 + adds r6, #0x3e + adds r7, #0x3e + ldr r3, [sp] +_080AB798: + adds r4, #1 + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r0, r0, r7 + lsls r1, r4, #3 + adds r2, r0, r1 + ldr r0, _080AB818 @ =gRoomControls + ldrh r0, [r0, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bls _080AB77E +_080AB7B4: + movs r4, #0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r2, r0, r7 + mov r1, r8 + ldrh r0, [r1, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bhi _080AB802 + movs r3, #3 +_080AB7CC: + adds r0, r4, #0 + ands r0, r3 + cmp r0, #3 + bne _080AB7E6 + adds r0, r5, #0 + movs r1, #3 + adds r2, r6, #0 + str r3, [sp] + bl sub_080AB844 + adds r6, #0x1e + adds r7, #0x1e + ldr r3, [sp] +_080AB7E6: + adds r4, #1 + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r0, r0, r7 + lsls r1, r4, #3 + adds r2, r0, r1 + ldr r0, _080AB818 @ =gRoomControls + ldrh r0, [r0, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bls _080AB7CC +_080AB802: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _080AB81C + adds r0, r5, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_080AB844 + adds r6, #0xe + b _080AB830 + .align 2, 0 +_080AB818: .4byte gRoomControls +_080AB81C: + movs r0, #1 + ands r4, r0 + cmp r4, #0 + beq _080AB830 + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_080AB844 + adds r6, #6 +_080AB830: + adds r0, r5, #0 + movs r1, #6 + adds r2, r6, #0 + bl sub_080AB844 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AB844 +sub_080AB844: @ 0x080AB844 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r0, #0x1c + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r4, #0 + beq _080AB880 + movs r0, #1 + strb r0, [r4, #0xa] + strb r7, [r4, #0xe] + ldr r0, [r5, #0x50] + str r0, [r4, #0x50] + lsls r3, r6, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + cmp r7, #1 + beq _080AB87C + ldr r0, _080AB878 @ =gUnk_0812A61C + b _080AB87E + .align 2, 0 +_080AB878: .4byte gUnk_0812A61C +_080AB87C: + ldr r0, _080AB884 @ =gUnk_0812A614 +_080AB87E: + str r0, [r4, #0x48] +_080AB880: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AB884: .4byte gUnk_0812A614 + + thumb_func_start sub_080AB888 +sub_080AB888: @ 0x080AB888 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + movs r3, #0 + ldrb r0, [r2, #0xe] + cmp r0, #3 + beq _080AB8A4 + cmp r0, #3 + ble _080AB8B6 + cmp r0, #4 + beq _080AB8A6 + b _080AB8B6 +_080AB8A4: + movs r3, #1 +_080AB8A6: + ldr r0, _080AB8C4 @ =gUnk_0812A5F4 + ldrb r1, [r2, #0xf] + lsls r1, r1, #1 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2, #0x48] +_080AB8B6: + ldrb r0, [r2, #0xf] + cmp r0, #0 + bne _080AB8C0 + movs r0, #4 + strb r0, [r2, #0xf] +_080AB8C0: + pop {pc} + .align 2, 0 +_080AB8C4: .4byte gUnk_0812A5F4 + + thumb_func_start sub_080AB8C8 +sub_080AB8C8: @ 0x080AB8C8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080AB8E4 @ =gUnk_0812A6B4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080AB9DC + pop {r4, pc} + .align 2, 0 +_080AB8E4: .4byte gUnk_0812A6B4 + + thumb_func_start sub_080AB8E8 +sub_080AB8E8: @ 0x080AB8E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + str r1, [r4, #0x34] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AB90E + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + str r4, [r4, #0x50] +_080AB90E: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bhi _080AB936 + movs r0, #0x1d + bl sub_080A7EE0 + adds r1, r0, #0 + ldrb r0, [r4, #0xa] + adds r0, #1 + strb r0, [r1, #0xa] + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + str r4, [r1, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 +_080AB936: + adds r1, r4, #0 + adds r1, #0x68 + movs r2, #7 +_080AB93C: + ldrh r0, [r4, #0x2e] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r4, #0x32] + strh r0, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _080AB93C + pop {r4, pc} + + thumb_func_start sub_080AB950 +sub_080AB950: @ 0x080AB950 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AB99C + adds r0, r4, #0 + bl sub_080AEF88 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + ldr r1, _080AB994 @ =gUnk_0812A6C4 + lsls r5, r0, #1 + adds r1, r5, r1 + ldrh r1, [r1] + ldrh r0, [r4, #0x2a] + ands r0, r1 + cmp r0, #0 + bne _080AB980 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AB9FC + cmp r0, #0 + beq _080AB9D4 +_080AB980: + bl sub_08000E50 + ldr r2, _080AB998 @ =gUnk_0812A6BC + movs r1, #1 + ands r1, r0 + adds r1, r1, r5 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0x15] + b _080AB9D4 + .align 2, 0 +_080AB994: .4byte gUnk_0812A6C4 +_080AB998: .4byte gUnk_0812A6BC +_080AB99C: + ldr r0, [r4, #0x50] + cmp r0, #0 + bne _080AB9A6 + bl sub_0805E780 +_080AB9A6: + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AB9B2 + bl sub_0805E780 +_080AB9B2: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080AB9D0 + ldr r0, [r1, #4] + cmp r0, #0 + beq _080AB9D0 + adds r0, r1, #0 + adds r0, #0x68 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r1, #0 + adds r0, #0x6a + ldrh r0, [r0] + strh r0, [r4, #0x32] + b _080AB9D4 +_080AB9D0: + bl sub_0805E780 +_080AB9D4: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_080AB9DC +sub_080AB9DC: @ 0x080AB9DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x6c + adds r1, r4, #0 + adds r1, #0x68 + movs r2, #0x1c + bl sub_0801D66C + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x84 + strh r1, [r0] + ldrh r1, [r4, #0x32] + adds r0, #2 + strh r1, [r0] + pop {r4, pc} + + thumb_func_start sub_080AB9FC +sub_080AB9FC: @ 0x080AB9FC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + movs r1, #0x2e + ldrsh r3, [r5, r1] + ldr r2, _080ABA4C @ =gRoomControls + ldrh r1, [r2, #6] + subs r3, r3, r1 + asrs r3, r3, #4 + movs r6, #0x3f + ands r3, r6 + movs r7, #0x32 + ldrsh r1, [r5, r7] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r3, r1 + ldr r1, _080ABA50 @ =gUnk_080B4488 + lsrs r4, r4, #3 + lsls r4, r4, #1 + adds r4, r4, r1 + movs r2, #0 + ldrsh r1, [r4, r2] + adds r3, r3, r1 + ldr r7, _080ABA54 @ =0x00002004 + adds r0, r0, r7 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0x1f + bls _080ABA58 + cmp r0, #0x3f + bhi _080ABA58 + movs r0, #1 + b _080ABA5A + .align 2, 0 +_080ABA4C: .4byte gRoomControls +_080ABA50: .4byte gUnk_080B4488 +_080ABA54: .4byte 0x00002004 +_080ABA58: + movs r0, #0 +_080ABA5A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080ABA5C +sub_080ABA5C: @ 0x080ABA5C + push {lr} + ldr r2, _080ABA70 @ =gUnk_0812A6CC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ABA70: .4byte gUnk_0812A6CC + + thumb_func_start sub_080ABA74 +sub_080ABA74: @ 0x080ABA74 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r2, #0x24] + ldrh r1, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x84 + ldrh r1, [r0] + subs r0, #0x18 + strh r1, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #6 + bhi _080ABAAA + movs r0, #0 + b _080ABAAC +_080ABAAA: + movs r0, #1 +_080ABAAC: + strb r0, [r2, #0xb] + ldr r0, _080ABAC8 @ =gUnk_0812A6D4 + ldrb r1, [r2, #0xa] + adds r0, r1, r0 + ldrb r3, [r0] + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _080ABACC + movs r0, #8 + strb r0, [r2, #0x15] + ldrh r0, [r2, #0x32] + adds r0, r0, r3 + strh r0, [r2, #0x32] + b _080ABAD6 + .align 2, 0 +_080ABAC8: .4byte gUnk_0812A6D4 +_080ABACC: + movs r0, #0x10 + strb r0, [r2, #0x15] + ldrh r0, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] +_080ABAD6: + adds r0, r2, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080ABAE0 +sub_080ABAE0: @ 0x080ABAE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080AF090 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080ABAFE + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x68 + movs r2, #0 + ldrsh r1, [r1, r2] + subs r3, r0, r1 + b _080ABB0C +_080ABAFE: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6a + movs r2, #0 + ldrsh r0, [r0, r2] + subs r3, r1, r0 +_080ABB0C: + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + ldrsh r2, [r0, r1] + adds r6, r0, #0 + cmp r2, #0 + bge _080ABB1E + rsbs r3, r3, #0 + rsbs r2, r2, #0 +_080ABB1E: + lsls r1, r3, #0x10 + lsls r0, r2, #0x10 + cmp r1, r0 + bls _080ABB84 + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xb] + adds r5, r0, #0 + cmp r5, #0 + bne _080ABB4E + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x19 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #6 + subs r0, #0x42 + b _080ABB62 +_080ABB4E: + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldrb r2, [r4, #0x18] + lsrs r1, r2, #7 + movs r0, #1 + eors r1, r0 + lsls r1, r1, #7 + movs r0, #0x7f +_080ABB62: + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + cmp r3, #0 + ble _080ABB84 + lsls r0, r5, #0x18 + cmp r0, #0 + bne _080ABB7C + ldrh r0, [r6] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + b _080ABB84 +_080ABB7C: + ldrh r0, [r6] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_080ABB84: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, r6, pc} + + thumb_func_start sub_080ABB8C +sub_080ABB8C: @ 0x080ABB8C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ABBA4 @ =gUnk_0812A7D4 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ABBA4: .4byte gUnk_0812A7D4 + + thumb_func_start sub_080ABBA8 +sub_080ABBA8: @ 0x080ABBA8 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #1 + beq _080ABBC4 + cmp r0, #1 + bgt _080ABBDC + cmp r0, #0 + bne _080ABBDC + ldr r0, _080ABBC0 @ =gUnk_0812A7EC + b _080ABBC6 + .align 2, 0 +_080ABBC0: .4byte gUnk_0812A7EC +_080ABBC4: + ldr r0, _080ABBD8 @ =gUnk_0812A7F8 +_080ABBC6: + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080ABBEC + .align 2, 0 +_080ABBD8: .4byte gUnk_0812A7F8 +_080ABBDC: + ldr r0, _080ABBF0 @ =gUnk_0812A800 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080ABBEC: + pop {pc} + .align 2, 0 +_080ABBF0: .4byte gUnk_0812A800 + + thumb_func_start sub_080ABBF4 +sub_080ABBF4: @ 0x080ABBF4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ABC52 + ldrb r0, [r4, #0xa] + cmp r0, #0 + blt _080ABC52 + cmp r0, #1 + ble _080ABC3E + cmp r0, #2 + bne _080ABC52 + movs r0, #0x3f + ands r0, r1 + cmp r0, #3 + beq _080ABC32 + cmp r0, #3 + bgt _080ABC24 + cmp r0, #0 + beq _080ABC2A + b _080ABC52 +_080ABC24: + cmp r0, #0x14 + beq _080ABC32 + b _080ABC52 +_080ABC2A: + movs r0, #4 + rsbs r0, r0, #0 + bl ModHealth +_080ABC32: + adds r0, r4, #0 + bl sub_080A29BC + bl sub_0805E780 + b _080ABC52 +_080ABC3E: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080ABC52 + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + bl sub_0805E780 +_080ABC52: + pop {r4, pc} + + thumb_func_start sub_080ABC54 +sub_080ABC54: @ 0x080ABC54 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080ABC6E + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_080ABC6E: + ldr r0, _080ABC80 @ =gUnk_0812A808 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080ABC80: .4byte gUnk_0812A808 + + thumb_func_start sub_080ABC84 +sub_080ABC84: @ 0x080ABC84 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_542 +nullsub_542: @ 0x080ABC8C + bx lr + .align 2, 0 + + thumb_func_start sub_080ABC90 +sub_080ABC90: @ 0x080ABC90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080ABCBE + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + ldr r0, _080ABCC0 @ =gLinkEntity + movs r1, #0x7a + bl sub_0800449C + bl sub_08079D84 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_080ABCBE: + pop {r4, pc} + .align 2, 0 +_080ABCC0: .4byte gLinkEntity + + thumb_func_start sub_080ABCC4 +sub_080ABCC4: @ 0x080ABCC4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x30 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080ABD3C @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r0] + movs r1, #2 + bl sub_080002B0 + adds r1, r5, #0 + adds r1, #0x76 + strh r0, [r1] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _080ABD40 @ =0x0000014B + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_080ABD3C: .4byte gRoomControls +_080ABD40: .4byte 0x0000014B + + thumb_func_start sub_080ABD44 +sub_080ABD44: @ 0x080ABD44 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080ABD60 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080ABD60: + adds r0, r4, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ABD70 +sub_080ABD70: @ 0x080ABD70 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080ABDEE + movs r0, #0xef + ands r0, r1 + movs r1, #0 + strb r0, [r2] + strh r1, [r5, #0x24] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080ABDDC @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r5, #0 + adds r4, #0x74 + strh r1, [r4] + ldrh r0, [r4] + movs r1, #2 + bl sub_080002B0 + adds r1, r5, #0 + adds r1, #0x76 + strh r0, [r1] + ldrh r1, [r1] + cmp r1, #0x13 + beq _080ABDE4 + ldr r0, _080ABDE0 @ =0x00000315 + cmp r1, r0 + bne _080ABDEE + ldrh r1, [r4] + movs r0, #0x6e + movs r2, #2 + bl sub_0807B314 + b _080ABDEE + .align 2, 0 +_080ABDDC: .4byte gRoomControls +_080ABDE0: .4byte 0x00000315 +_080ABDE4: + ldrh r1, [r4] + movs r0, #0x6d + movs r2, #2 + bl sub_0807B314 +_080ABDEE: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ABE00 + bl sub_0805E780 +_080ABE00: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080ABE04 +sub_080ABE04: @ 0x080ABE04 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xff + ands r5, r0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ABE48 @ =0xFFFF0000 + str r0, [r4, #0x20] + ldrh r0, [r4, #0x36] + subs r0, #0xa0 + strh r0, [r4, #0x36] + ldr r3, _080ABE4C @ =gRoomControls + ldrh r2, [r3, #6] + ldr r1, _080ABE50 @ =0x00007FF0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r3, #8] + ands r1, r0 + orrs r1, r2 + strh r1, [r4, #0x32] + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x10 + ands r0, r5 + cmp r0, #0 + beq _080ABE54 + adds r1, #0x10 + b _080ABE56 + .align 2, 0 +_080ABE48: .4byte 0xFFFF0000 +_080ABE4C: .4byte gRoomControls +_080ABE50: .4byte 0x00007FF0 +_080ABE54: + adds r1, #0xc0 +_080ABE56: + movs r0, #0xe0 + ands r0, r5 + lsrs r0, r0, #1 + adds r0, r1, r0 + strh r0, [r4, #0x2e] + movs r0, #0xf + ands r5, r0 + lsls r0, r5, #4 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08004168 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _080ABE84 @ =0x0000012D + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_080ABE84: .4byte 0x0000012D + + thumb_func_start sub_080ABE88 +sub_080ABE88: @ 0x080ABE88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _080ABEA6 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_080ABEA6: + pop {r4, pc} + + thumb_func_start sub_080ABEA8 +sub_080ABEA8: @ 0x080ABEA8 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xc] + movs r0, #0x60 + strb r0, [r4, #0xe] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x68 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + strb r2, [r4, #0x1c] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080ABEDA + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + strb r0, [r4, #0x15] + b _080ABEEC +_080ABEDA: + adds r0, r4, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r4, #0x15] + ldr r1, _080ABEFC @ =0x0000013F + adds r0, r4, #0 + bl sub_0801D2B4 +_080ABEEC: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _080ABF00 @ =0x00000193 + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_080ABEFC: .4byte 0x0000013F +_080ABF00: .4byte 0x00000193 + + thumb_func_start sub_080ABF04 +sub_080ABF04: @ 0x080ABF04 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _080ABF14 + bl sub_0805E780 +_080ABF14: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ABF24 +sub_080ABF24: @ 0x080ABF24 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ABF3C @ =gUnk_0812A84C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ABF3C: .4byte gUnk_0812A84C + + thumb_func_start sub_080ABF40 +sub_080ABF40: @ 0x080ABF40 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080ABF66 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _080ABFA0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _080ABFA4 @ =0x00000199 + bl sub_080A3268 +_080ABF66: + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080ABF78 + adds r0, r2, #2 + strh r0, [r4, #0x36] +_080ABF78: + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080ABF88 + bl sub_0805E780 +_080ABF88: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080ABF9C + bl sub_0805E780 +_080ABF9C: + pop {r4, pc} + .align 2, 0 +_080ABFA0: .4byte gLinkEntity +_080ABFA4: .4byte 0x00000199 + + thumb_func_start sub_080ABFA8 +sub_080ABFA8: @ 0x080ABFA8 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080ABFB0 +sub_080ABFB0: @ 0x080ABFB0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ABFC8 @ =gUnk_0812A954 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ABFC8: .4byte gUnk_0812A954 + + thumb_func_start sub_080ABFCC +sub_080ABFCC: @ 0x080ABFCC + push {lr} + ldr r2, _080ABFE0 @ =gUnk_0812A968 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ABFE0: .4byte gUnk_0812A968 + + thumb_func_start sub_080ABFE4 +sub_080ABFE4: @ 0x080ABFE4 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080ABFEC +sub_080ABFEC: @ 0x080ABFEC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + adds r1, #1 + bl sub_08004260 + ldrb r1, [r4, #0xa] + cmp r1, #0 + beq _080AC030 + cmp r1, #1 + beq _080AC048 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0xf] + ldr r1, _080AC028 @ =gUnk_0812A97C + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x44 + movs r0, #0x88 + strb r0, [r1] + ldr r0, _080AC02C @ =0x00000193 + b _080AC06A + .align 2, 0 +_080AC028: .4byte gUnk_0812A97C +_080AC02C: .4byte 0x00000193 +_080AC030: + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + movs r0, #7 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0x18 + strb r0, [r1] + subs r1, #0x41 + movs r0, #0x88 + b _080AC058 +_080AC048: + strb r1, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0x18 +_080AC058: + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x36] + subs r0, #0x14 + strh r0, [r4, #0x36] + ldr r0, _080AC070 @ =0x00000149 +_080AC06A: + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_080AC070: .4byte 0x00000149 + + thumb_func_start sub_080AC074 +sub_080AC074: @ 0x080AC074 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AC084 + bl sub_0805E780 +_080AC084: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x36] + subs r0, #0x14 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x85 + ldrb r0, [r1] + cmp r0, #0 + beq _080AC0B2 + subs r0, #1 + strb r0, [r1] + movs r1, #0xff + ands r0, r1 + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080AC0B2 + ldr r0, _080AC0E8 @ =0x00000149 + bl sub_080A3268 +_080AC0B2: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AC0FE + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AC0F0 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r1, _080AC0EC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, #0x13 + bl sub_080A3268 + b _080AC0F8 + .align 2, 0 +_080AC0E8: .4byte 0x00000149 +_080AC0EC: .4byte gLinkEntity +_080AC0F0: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] +_080AC0F8: + ldrh r0, [r4, #0x36] + subs r0, #0x28 + strh r0, [r4, #0x36] +_080AC0FE: + pop {r4, pc} + + thumb_func_start sub_080AC100 +sub_080AC100: @ 0x080AC100 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080AC116 + adds r0, r2, #3 + strh r0, [r4, #0x36] +_080AC116: + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080AC126 + bl sub_0805E780 +_080AC126: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080AC13A + bl sub_0805E780 +_080AC13A: + ldrb r0, [r4, #0xe] + cmp r0, #0x1d + bhi _080AC160 + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + ldrb r1, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _080AC160 + ldr r1, _080AC164 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080AC160: + pop {r4, pc} + .align 2, 0 +_080AC164: .4byte gLinkEntity + + thumb_func_start sub_080AC168 +sub_080AC168: @ 0x080AC168 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x34] + ldr r1, _080AC1C0 @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080AC1F8 + movs r0, #4 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #7 + ands r5, r0 + ldr r0, _080AC1C4 @ =gUnk_0812A982 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r4, #0xf] + ldr r1, _080AC1C8 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #3 + bne _080AC1D0 + ldr r0, _080AC1CC @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + subs r1, r1, r0 + strb r6, [r4, #0xb] + b _080AC1F2 + .align 2, 0 +_080AC1C0: .4byte 0xFFFF8000 +_080AC1C4: .4byte gUnk_0812A982 +_080AC1C8: .4byte gLinkEntity +_080AC1CC: .4byte gUnk_0812A98A +_080AC1D0: + cmp r0, #2 + bne _080AC1E4 + ldr r0, _080AC1E0 @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + subs r1, r1, r0 + movs r0, #1 + b _080AC1F0 + .align 2, 0 +_080AC1E0: .4byte gUnk_0812A98A +_080AC1E4: + ldr r0, _080AC1FC @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + lsrs r0, r0, #1 + subs r1, r1, r0 + movs r0, #2 +_080AC1F0: + strb r0, [r4, #0xb] +_080AC1F2: + movs r0, #0x1f + ands r1, r0 + strb r1, [r4, #0x15] +_080AC1F8: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AC1FC: .4byte gUnk_0812A98A + + thumb_func_start sub_080AC200 +sub_080AC200: @ 0x080AC200 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC270 + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #0x21 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _080AC23C + movs r0, #2 + strb r0, [r1, #0xa] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xb] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r0, r4, #0 + bl sub_0806FA24 +_080AC23C: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _080AC24C + bl sub_0805E780 +_080AC24C: + ldr r0, [r4, #0x50] + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #3 + bne _080AC25C + ldrb r0, [r4, #0x15] + adds r0, #3 + b _080AC26A +_080AC25C: + cmp r0, #2 + bne _080AC266 + ldrb r0, [r4, #0x15] + adds r0, #3 + b _080AC26A +_080AC266: + ldrb r0, [r4, #0x15] + adds r0, #2 +_080AC26A: + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080AC270: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AC274 +sub_080AC274: @ 0x080AC274 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AC284 + bl sub_0805E780 +_080AC284: + ldr r1, _080AC2BC @ =gUnk_0812A994 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AC2C0 + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + b _080AC324 + .align 2, 0 +_080AC2BC: .4byte gUnk_0812A994 +_080AC2C0: + ldr r5, [r4, #0x50] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #2 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + bne _080AC31C + adds r0, r5, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _080AC31C + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + b _080AC322 +_080AC31C: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 +_080AC322: + strb r0, [r4, #0x10] +_080AC324: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AC328 +sub_080AC328: @ 0x080AC328 + push {lr} + ldr r2, _080AC33C @ =gUnk_0812A9A8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AC33C: .4byte gUnk_0812A9A8 + + thumb_func_start sub_080AC340 +sub_080AC340: @ 0x080AC340 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080AC5E4 + cmp r0, #0 + beq _080AC380 + movs r2, #1 + movs r4, #1 + strb r4, [r5, #0xc] + movs r0, #0xc + strb r0, [r5, #0x1e] + ldrb r1, [r5, #0x18] + subs r0, #0x10 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + bl sub_08000E50 + ldr r1, _080AC384 @ =gUnk_0812A9B4 + ands r0, r4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + subs r1, #0x42 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + bl sub_080AC388 +_080AC380: + pop {r4, r5, pc} + .align 2, 0 +_080AC384: .4byte gUnk_0812A9B4 + + thumb_func_start sub_080AC388 +sub_080AC388: @ 0x080AC388 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldr r1, _080AC3E4 @ =gUnk_0812A9B8 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r3, [r0] + ldr r0, [r5, #0x50] + mov sl, r0 + ldrb r0, [r0, #0x14] + movs r1, #0x80 + mov sb, r1 + mov r1, sb + eors r1, r0 + adds r6, r5, #0 + adds r6, #0x7c + ldrh r4, [r6] + lsrs r0, r4, #8 + subs r1, r1, r0 + adds r2, r5, #0 + adds r2, #0x7a + ldrh r7, [r2] + mov ip, r7 + movs r7, #0 + ldrsh r0, [r2, r7] + cmp r0, #0 + bge _080AC404 + subs r0, r1, r3 + movs r7, #0xff + mov r8, r7 + ands r0, r7 + cmp r0, #0x7f + bhi _080AC3E8 + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2] + mov r2, sl + ldrb r0, [r2, #0x14] + mov r7, sb + eors r0, r7 + subs r0, r0, r3 + b _080AC422 + .align 2, 0 +_080AC3E4: .4byte gUnk_0812A9B8 +_080AC3E8: + mov r2, ip + adds r0, r4, r2 + strh r0, [r6] + adds r0, r1, r3 + mov r7, r8 + ands r0, r7 + cmp r0, #0x80 + bls _080AC45A + mov r1, sl + ldrb r0, [r1, #0x14] + mov r2, sb + eors r0, r2 + adds r0, r0, r3 + b _080AC44E +_080AC404: + adds r0, r1, r3 + movs r7, #0xff + mov r8, r7 + ands r0, r7 + cmp r0, #0x80 + bls _080AC432 + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2] + mov r2, sl + ldrb r0, [r2, #0x14] + mov r7, sb + eors r0, r7 + adds r0, r0, r3 +_080AC422: + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #8 + strh r0, [r6] + adds r0, r5, #0 + bl sub_080AC884 + b _080AC45A +_080AC432: + mov r2, ip + adds r0, r4, r2 + strh r0, [r6] + subs r0, r1, r3 + mov r7, r8 + ands r0, r7 + subs r0, #1 + cmp r0, #0x7e + bhi _080AC45A + mov r1, sl + ldrb r0, [r1, #0x14] + mov r2, sb + eors r0, r2 + subs r0, r0, r3 +_080AC44E: + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #8 + movs r1, #0x80 + orrs r0, r1 + strh r0, [r6] +_080AC45A: + adds r0, r5, #0 + adds r0, #0x7c + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AC6F0 + adds r0, r5, #0 + bl sub_080AC760 + adds r0, r5, #0 + bl sub_080AC7C4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AC480 +sub_080AC480: @ 0x080AC480 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _080AC4BE + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080AC4A2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1d + strb r0, [r1] + b _080AC50A +_080AC4A2: + subs r0, r1, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC50A + adds r0, r4, #0 + adds r0, #0x3f + movs r1, #0x1c + strb r1, [r0] + movs r0, #0x8b + lsls r0, r0, #1 + bl sub_080A3268 + b _080AC50A +_080AC4BE: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC4D6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1d + strb r0, [r1] +_080AC4D6: + adds r1, r4, #0 + adds r1, #0x7c + ldrh r2, [r1] + adds r0, r4, #0 + adds r0, #0x7a + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #0 + ble _080AC4EE + movs r3, #0xc0 + lsls r3, r3, #2 + b _080AC4F0 +_080AC4EE: + ldr r3, _080AC50C @ =0xFFFFFD00 +_080AC4F0: + adds r0, r2, r3 + strh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AC6F0 + adds r0, r4, #0 + bl sub_080AC760 + adds r0, r4, #0 + bl sub_080AC7C4 +_080AC50A: + pop {r4, pc} + .align 2, 0 +_080AC50C: .4byte 0xFFFFFD00 + + thumb_func_start sub_080AC510 +sub_080AC510: @ 0x080AC510 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AC556 + movs r3, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _080AC558 @ =gUnk_0812A9BA + ldrb r1, [r4, #0xa] + lsls r0, r1, #1 + adds r0, r0, r1 + ldrb r1, [r4, #0xb] + adds r0, r0, r1 + subs r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrh r1, [r4, #0xa] + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + bne _080AC556 + ldr r0, _080AC55C @ =gUnk_080FD458 + str r0, [r4, #0x48] +_080AC556: + pop {r4, pc} + .align 2, 0 +_080AC558: .4byte gUnk_0812A9BA +_080AC55C: .4byte gUnk_080FD458 + + thumb_func_start sub_080AC560 +sub_080AC560: @ 0x080AC560 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + ldr r0, [r5, #4] + cmp r0, #0 + bne _080AC570 + bl sub_0805E780 +_080AC570: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AC5A6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AC590 + ldr r0, _080AC58C @ =gUnk_080FD168 + b _080AC592 + .align 2, 0 +_080AC58C: .4byte gUnk_080FD168 +_080AC590: + ldr r0, _080AC5DC @ =gUnk_080FD448 +_080AC592: + str r0, [r4, #0x48] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_080AC5A6: + adds r0, r4, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldr r3, _080AC5E0 @ =gUnk_080C9160 + ldrb r0, [r5, #0x15] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldrb r0, [r5, #0x15] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x30] + subs r0, r0, r1 + str r0, [r4, #0x30] + pop {r4, r5, pc} + .align 2, 0 +_080AC5DC: .4byte gUnk_080FD448 +_080AC5E0: .4byte gUnk_080C9160 + + thumb_func_start sub_080AC5E4 +sub_080AC5E4: @ 0x080AC5E4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + cmp r4, #0 + bne _080AC668 + ldr r0, _080AC664 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bhi _080AC670 + adds r1, r5, #0 + adds r1, #0x79 + movs r0, #0x11 + strb r0, [r1] + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #1 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + adds r1, r6, #0 + adds r1, #0x79 + movs r0, #0x12 + strb r0, [r1] + str r6, [r5, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r7, #0xa] + movs r0, #2 + strb r0, [r7, #0xb] + ldr r0, [r5, #0x50] + str r0, [r7, #0x50] + adds r0, r7, #0 + adds r0, #0x79 + movs r1, #0x14 + mov r8, r1 + mov r1, r8 + strb r1, [r0] + str r7, [r6, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + ldrb r1, [r5, #0xa] + strb r1, [r0, #0xa] + movs r1, #3 + strb r1, [r0, #0xb] + ldr r1, [r5, #0x50] + str r1, [r0, #0x50] + str r4, [r0, #0x54] + adds r1, r0, #0 + adds r1, #0x79 + strb r4, [r1] + str r0, [r7, #0x54] + b _080AC6C8 + .align 2, 0 +_080AC664: .4byte gUnk_03003DBC +_080AC668: + ldr r0, _080AC674 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bls _080AC678 +_080AC670: + movs r0, #0 + b _080AC6E8 + .align 2, 0 +_080AC674: .4byte gUnk_03003DBC +_080AC678: + adds r1, r5, #0 + adds r1, #0x79 + movs r0, #0 + mov sb, r0 + movs r0, #0xf + strb r0, [r1] + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #1 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + adds r0, r6, #0 + adds r0, #0x79 + movs r1, #0x10 + mov r8, r1 + mov r1, r8 + strb r1, [r0] + str r6, [r5, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r7, #0xa] + movs r0, #2 + strb r0, [r7, #0xb] + ldr r0, [r5, #0x50] + str r0, [r7, #0x50] + mov r0, sb + str r0, [r7, #0x54] + adds r1, r7, #0 + adds r1, #0x79 + movs r0, #0x20 + strb r0, [r1] + str r7, [r6, #0x54] +_080AC6C8: + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #4 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + str r5, [r6, #0x54] + adds r0, r6, #0 + adds r0, #0x79 + mov r1, r8 + strb r1, [r0] + movs r0, #1 +_080AC6E8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AC6F0 +sub_080AC6F0: @ 0x080AC6F0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r2, #0x1f + ands r2, r0 + lsrs r0, r0, #5 + lsls r1, r0, #1 + adds r3, r1, r0 + ldr r1, _080AC724 @ =gUnk_0812A9C0 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + subs r0, r0, r3 + adds r5, r1, #0 + cmp r0, #3 + bhi _080AC73A + cmp r0, #1 + beq _080AC72E + cmp r0, #1 + blo _080AC728 + cmp r0, #2 + beq _080AC732 + cmp r2, #0x19 + bhi _080AC75C + b _080AC73A + .align 2, 0 +_080AC724: .4byte gUnk_0812A9C0 +_080AC728: + cmp r2, #6 + bls _080AC75C + b _080AC73A +_080AC72E: + subs r0, r2, #5 + b _080AC736 +_080AC732: + adds r0, r2, #0 + subs r0, #0xf +_080AC736: + cmp r0, #0xc + bls _080AC75C +_080AC73A: + adds r0, r3, #3 + cmp r2, #0x1a + bhi _080AC74E + adds r0, r3, #2 + cmp r2, #0x10 + bhi _080AC74E + adds r0, r3, #0 + cmp r2, #5 + bls _080AC74E + adds r0, #1 +_080AC74E: + movs r1, #0x18 + bl __modsi3 + strb r0, [r4, #0x14] + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r4, #0x1e] +_080AC75C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AC760 +sub_080AC760: @ 0x080AC760 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r4, [r6, #0x54] + ldrb r0, [r4, #0x15] + ldrb r3, [r6, #0x15] + subs r2, r0, r3 + movs r1, #0xff + ands r2, r1 + adds r0, r2, #0 + adds r0, #8 + ands r0, r1 + cmp r0, #0x10 + ble _080AC78A + cmp r2, #0x80 + ble _080AC784 + adds r0, r3, #0 + subs r0, #8 + b _080AC788 +_080AC784: + adds r0, r3, #0 + adds r0, #8 +_080AC788: + strb r0, [r4, #0x15] +_080AC78A: + ldr r5, [r4, #0x54] + ldr r0, [r5, #0x54] + cmp r0, #0 + bne _080AC79C + ldr r0, [r6, #0x50] + ldrb r0, [r0, #0x14] + movs r1, #0x80 + eors r0, r1 + b _080AC7BE +_080AC79C: + ldrb r0, [r5, #0x15] + ldrb r3, [r4, #0x15] + subs r2, r0, r3 + movs r1, #0xff + ands r2, r1 + adds r0, r2, #0 + adds r0, #8 + ands r0, r1 + cmp r0, #0x10 + ble _080AC7C0 + cmp r2, #0x80 + ble _080AC7BA + adds r0, r3, #0 + subs r0, #8 + b _080AC7BE +_080AC7BA: + adds r0, r3, #0 + adds r0, #8 +_080AC7BE: + strb r0, [r5, #0x15] +_080AC7C0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080AC7C4 +sub_080AC7C4: @ 0x080AC7C4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + mov r8, r0 + ldr r7, [r0, #0x54] + ldr r5, [r7, #0x54] + cmp r5, #0 + beq _080AC7E4 + ldr r0, [r4, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 + b _080AC7E6 +_080AC7E4: + ldr r5, [r4, #0x50] +_080AC7E6: + adds r0, r7, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldr r3, _080AC880 @ =gUnk_080C9160 + mov sb, r3 + ldrb r1, [r7, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl PositionRelative + mov r0, r8 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + mov r0, r8 + ldrb r1, [r0, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + adds r0, r7, #0 + mov r1, r8 + adds r2, r6, #0 + bl PositionRelative + adds r0, r4, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldrb r1, [r4, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + mov r0, r8 + adds r1, r4, #0 + adds r2, r6, #0 + bl PositionRelative + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AC880: .4byte gUnk_080C9160 + + thumb_func_start sub_080AC884 +sub_080AC884: @ 0x080AC884 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + adds r2, r0, #0 + adds r2, #0x72 + ldrh r0, [r2] + cmp r0, #0 + beq _080AC8A4 + movs r0, #0 + strh r0, [r2] + movs r0, #2 + strb r0, [r1, #0xc] + movs r0, #0x3c + strb r0, [r1, #0xe] + movs r0, #0x56 + strb r0, [r1, #0xf] +_080AC8A4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AC8A8 +sub_080AC8A8: @ 0x080AC8A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AC8C0 @ =gUnk_0812A9D8 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AC8C0: .4byte gUnk_0812A9D8 + + thumb_func_start sub_080AC8C4 +sub_080AC8C4: @ 0x080AC8C4 + push {lr} + ldr r2, _080AC8D8 @ =gUnk_0812A9EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AC8D8: .4byte gUnk_0812A9EC + + thumb_func_start sub_080AC8DC +sub_080AC8DC: @ 0x080AC8DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + blt _080AC8FE + cmp r1, #3 + ble _080AC8F8 + cmp r1, #0x1f + bgt _080AC8FE + cmp r1, #0x1e + blt _080AC8FE +_080AC8F8: + bl sub_0805E780 + b _080AC920 +_080AC8FE: + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _080AC920 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080AC920: + adds r0, r4, #0 + bl sub_080AC8C4 + pop {r4, pc} + + thumb_func_start sub_080AC928 +sub_080AC928: @ 0x080AC928 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080AC954 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AC954 +sub_080AC954: @ 0x080AC954 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AC964 + bl sub_0805E780 +_080AC964: + ldr r0, [r5, #0x50] + ldrb r3, [r0, #0x14] + ldr r4, _080AC9C4 @ =gUnk_080C9160 + lsls r1, r3, #1 + adds r1, r1, r4 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r2, r1, #2 + adds r2, r2, r1 + lsls r2, r2, #0xb + adds r3, #0x40 + lsls r3, r3, #1 + adds r3, r3, r4 + movs r4, #0 + ldrsh r1, [r3, r4] + lsls r3, r1, #2 + adds r3, r3, r1 + lsls r3, r3, #0xb + rsbs r3, r3, #0 + adds r1, r5, #0 + bl PositionRelative + adds r0, r5, #0 + bl sub_08004274 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC9C0 + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldr r1, _080AC9C8 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_080A3268 +_080AC9C0: + pop {r4, r5, pc} + .align 2, 0 +_080AC9C4: .4byte gUnk_080C9160 +_080AC9C8: .4byte gLinkEntity + + thumb_func_start sub_080AC9CC +sub_080AC9CC: @ 0x080AC9CC + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080AC9E8 + bl sub_0805E780 +_080AC9E8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080ACA10 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080ACA10: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACA14 +sub_080ACA14: @ 0x080ACA14 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ACA32 + bl sub_0805E780 +_080ACA32: + pop {r4, pc} + + thumb_func_start sub_080ACA34 +sub_080ACA34: @ 0x080ACA34 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ACA4C @ =gUnk_0812AA5C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ACA4C: .4byte gUnk_0812AA5C + + thumb_func_start sub_080ACA50 +sub_080ACA50: @ 0x080ACA50 + push {lr} + ldr r2, _080ACA64 @ =gUnk_0812AA74 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ACA64: .4byte gUnk_0812AA74 + + thumb_func_start sub_080ACA68 +sub_080ACA68: @ 0x080ACA68 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0xc + bgt _080ACA82 + cmp r1, #0xa + bge _080ACA86 + cmp r1, #6 + beq _080ACA86 + b _080ACAC0 +_080ACA82: + cmp r1, #0x1a + bne _080ACAC0 +_080ACA86: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + ldr r0, [r4, #0x4c] + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_080ACB40 + cmp r0, #0 + beq _080ACAB0 + movs r0, #0 + b _080ACAB6 +_080ACAB0: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] +_080ACAB6: + strb r0, [r4, #0x15] + movs r0, #0xd8 + bl sub_080A3268 + b _080ACAC4 +_080ACAC0: + bl sub_0805E780 +_080ACAC4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACAC8 +sub_080ACAC8: @ 0x080ACAC8 + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x10 + strb r1, [r0, #0x15] + ldr r1, _080ACAE8 @ =0x0000FFFC + strh r1, [r0, #0x36] + str r2, [r0, #0x54] + movs r1, #7 + bl sub_08004260 + ldr r0, _080ACAEC @ =0x00000199 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_080ACAE8: .4byte 0x0000FFFC +_080ACAEC: .4byte 0x00000199 + + thumb_func_start sub_080ACAF0 +sub_080ACAF0: @ 0x080ACAF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080ACB0C + bl sub_0805E780 +_080ACB0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACB10 +sub_080ACB10: @ 0x080ACB10 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080ACB22 + bl sub_0805E780 +_080ACB22: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080ACB90 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080ACB3C + bl sub_0805E780 +_080ACB3C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACB40 +sub_080ACB40: @ 0x080ACB40 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + ldr r1, [r0, #0x50] + ldr r3, [r2, #0x54] + ldr r0, [r1, #0x64] + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB5A + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB5A: + ldr r1, [r1, #0x64] + ldr r0, [r1, #0x20] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB6A + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB6A: + ldr r0, [r1, #0x24] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB78 + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB78: + ldr r0, [r1, #0x28] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB8A + ldr r0, [r0, #0x54] + cmp r3, r0 + bne _080ACB8A +_080ACB86: + movs r0, #0 + b _080ACB8C +_080ACB8A: + movs r0, #1 +_080ACB8C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080ACB90 +sub_080ACB90: @ 0x080ACB90 + push {r4, lr} + adds r2, r0, #0 + ldr r3, [r2, #0x50] + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r4, #0x2e + ldrsh r0, [r3, r4] + cmp r1, r0 + bne _080ACBC6 + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r4, #0x32 + ldrsh r0, [r3, r4] + cmp r1, r0 + bgt _080ACBC6 + movs r0, #1 + strb r0, [r3, #0xf] + adds r0, r2, #0 + movs r1, #0x1f + movs r2, #0x40 + bl CreateFX + ldr r0, _080ACBC8 @ =0x00000119 + bl sub_08004488 + bl sub_0805E780 +_080ACBC6: + pop {r4, pc} + .align 2, 0 +_080ACBC8: .4byte 0x00000119 + + thumb_func_start sub_080ACBCC +sub_080ACBCC: @ 0x080ACBCC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080ACBFC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0x7f + ands r0, r1 + cmp r0, #1 + beq _080ACBE0 + bl sub_0805E780 +_080ACBE0: + ldr r1, _080ACC00 @ =gUnk_0812AA80 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_080ACBFC: .4byte gUnk_03003F80 +_080ACC00: .4byte gUnk_0812AA80 + + thumb_func_start sub_080ACC04 +sub_080ACC04: @ 0x080ACC04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ACC54 @ =gLinkEntity + adds r0, #0x3b + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x10] + movs r0, #0xa0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #2 + strb r0, [r1] + ldr r1, _080ACC58 @ =gUnk_0812AAD8 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + movs r0, #0x10 + str r0, [r4, #0x70] + adds r0, r4, #0 + bl sub_080ACDB0 + adds r0, r4, #0 + bl sub_0801766C + pop {r4, pc} + .align 2, 0 +_080ACC54: .4byte gLinkEntity +_080ACC58: .4byte gUnk_0812AAD8 + + thumb_func_start sub_080ACC5C +sub_080ACC5C: @ 0x080ACC5C + push {r4, lr} + adds r4, r0, #0 + bl sub_080ACDB0 + cmp r0, #0 + bne _080ACC74 + adds r0, r4, #0 + bl sub_080ACC78 + adds r0, r4, #0 + bl sub_080ACECC +_080ACC74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACC78 +sub_080ACC78: @ 0x080ACC78 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + ldr r0, _080ACD20 @ =gUnk_030010A0 + ldr r0, [r0] + adds r0, r2, r0 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080ACCF8 + ldr r0, _080ACD24 @ =gUnk_0812AAAC + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r7, [r1] + ldr r0, [r4, #0x74] + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080ACCA4 + str r0, [r4, #0x74] +_080ACCA4: + ldr r0, [r4, #0x74] + adds r0, r7, r0 + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08008782 + adds r5, r0, #0 + cmp r5, #0 + beq _080ACCF2 + ldrb r1, [r5, #5] + ldrb r2, [r5, #2] + movs r0, #0x11 + bl CreateObject + adds r6, r0, #0 + cmp r6, #0 + beq _080ACCF2 + ldrb r0, [r5, #3] + strb r0, [r6, #0xe] + ldr r0, [r4, #0x74] + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + ldr r0, [r4, #0x74] + adds r0, r0, r7 + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r6, #0x32] +_080ACCF2: + ldr r0, [r4, #0x74] + adds r0, #2 + str r0, [r4, #0x74] +_080ACCF8: + ldr r2, [r4, #0x54] + cmp r2, #0 + bne _080ACD08 + ldr r0, [r4, #0x70] + cmp r0, #2 + bls _080ACD08 + movs r0, #1 + str r0, [r4, #0x70] +_080ACD08: + ldr r0, [r4, #0x70] + subs r0, #1 + str r0, [r4, #0x70] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080ACDAE + cmp r2, #0 + bne _080ACD28 + movs r0, #2 + b _080ACD32 + .align 2, 0 +_080ACD20: .4byte gUnk_030010A0 +_080ACD24: .4byte gUnk_0812AAAC +_080ACD28: + ldr r0, _080ACD74 @ =gUnk_0812AABC + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] +_080ACD32: + str r0, [r4, #0x70] + movs r0, #0x17 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r6, r0, #0 + cmp r6, #0 + beq _080ACDAE + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #0xf + ands r2, r0 + ldr r3, [r4, #0x48] + ldrb r1, [r3, #6] + cmp r1, r2 + bge _080ACD58 + adds r2, r1, #0 +_080ACD58: + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080ACD62 + rsbs r2, r2, #0 +_080ACD62: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _080ACD9C + cmp r0, #1 + bgt _080ACD78 + cmp r0, #0 + beq _080ACD82 + b _080ACDAE + .align 2, 0 +_080ACD74: .4byte gUnk_0812AABC +_080ACD78: + cmp r0, #2 + beq _080ACD8C + cmp r0, #3 + beq _080ACDA2 + b _080ACDAE +_080ACD82: + ldrb r0, [r3, #7] + ldrh r1, [r4, #0x32] + subs r1, r1, r0 + strh r1, [r6, #0x32] + b _080ACD94 +_080ACD8C: + ldrh r0, [r4, #0x32] + ldrb r3, [r3, #7] + adds r0, r0, r3 + strh r0, [r6, #0x32] +_080ACD94: + ldrh r0, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r6, #0x2e] + b _080ACDAE +_080ACD9C: + ldrh r0, [r4, #0x2e] + adds r0, r0, r1 + b _080ACDA6 +_080ACDA2: + ldrh r0, [r4, #0x2e] + subs r0, r0, r1 +_080ACDA6: + strh r0, [r6, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r6, #0x32] +_080ACDAE: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080ACDB0 +sub_080ACDB0: @ 0x080ACDB0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080ACDE8 + ldr r2, _080ACDE0 @ =gLinkEntity + ldr r1, _080ACDE4 @ =gUnk_08126EE4 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r2, #0x32] + adds r0, r0, r2 + b _080ACEB4 + .align 2, 0 +_080ACDE0: .4byte gLinkEntity +_080ACDE4: .4byte gUnk_08126EE4 +_080ACDE8: + ldrb r2, [r4, #0x14] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080ACE48 + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x32] + subs r1, #3 + strh r1, [r4, #0x32] + movs r1, #4 + ands r1, r2 + adds r3, r0, #0 + cmp r1, #0 + beq _080ACE20 + movs r0, #0x2e + ldrsh r7, [r3, r0] + movs r0, #0x2e + ldrsh r6, [r4, r0] + ldr r1, _080ACE1C @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r0, r2, r1 + ldrb r0, [r0] + rsbs r5, r0, #0 + adds r0, r1, #0 + b _080ACE30 + .align 2, 0 +_080ACE1C: .4byte gUnk_0812AAE8 +_080ACE20: + movs r0, #0x2e + ldrsh r6, [r3, r0] + movs r0, #0x2e + ldrsh r7, [r4, r0] + ldr r0, _080ACE44 @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r1, r2, r0 + ldrb r5, [r1] +_080ACE30: + subs r1, r7, r6 + str r1, [r4, #0x78] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r1 + bhi _080ACE90 + ldrh r0, [r3, #0x2e] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + b _080ACEB6 + .align 2, 0 +_080ACE44: .4byte gUnk_0812AAE8 +_080ACE48: + ldr r1, [r4, #0x50] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + movs r0, #4 + ands r0, r2 + adds r3, r1, #0 + cmp r0, #0 + beq _080ACE70 + movs r0, #0x32 + ldrsh r6, [r3, r0] + movs r0, #0x32 + ldrsh r7, [r4, r0] + ldr r0, _080ACE6C @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r1, r2, r0 + ldrb r5, [r1] + b _080ACE84 + .align 2, 0 +_080ACE6C: .4byte gUnk_0812AAE8 +_080ACE70: + movs r0, #0x32 + ldrsh r7, [r3, r0] + movs r0, #0x32 + ldrsh r6, [r4, r0] + ldr r1, _080ACEAC @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r0, r2, r1 + ldrb r0, [r0] + rsbs r5, r0, #0 + adds r0, r1, #0 +_080ACE84: + subs r1, r7, r6 + str r1, [r4, #0x78] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r1 + bls _080ACEB0 +_080ACE90: + subs r0, r0, r1 + lsls r1, r0, #8 + strh r1, [r4, #0x24] + lsls r0, r0, #0x18 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #2 + cmp r0, r1 + ble _080ACEA4 + strh r1, [r4, #0x24] +_080ACEA4: + adds r0, r4, #0 + bl sub_080AEFB4 + b _080ACEB6 + .align 2, 0 +_080ACEAC: .4byte gUnk_0812AAE8 +_080ACEB0: + ldrh r0, [r3, #0x32] + adds r0, r0, r5 +_080ACEB4: + strh r0, [r4, #0x32] +_080ACEB6: + ldr r0, _080ACEC8 @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + movs r0, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080ACEC8: .4byte gLinkEntity + + thumb_func_start sub_080ACECC +sub_080ACECC: @ 0x080ACECC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bhi _080ACF0C + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _080ACF0C + ldr r2, [r4, #0x78] + cmp r2, #0 + blt _080ACF0C + ldr r0, _080ACF10 @ =gUnk_0812AAE8 + ldrb r1, [r4, #0xa] + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, r2 + bhi _080ACF0C + adds r1, #1 + movs r0, #0x10 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + adds r1, r0, #0 + cmp r1, #0 + beq _080ACF0C + str r4, [r1, #0x50] + str r1, [r4, #0x54] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_080ACF0C: + pop {r4, pc} + .align 2, 0 +_080ACF10: .4byte gUnk_0812AAE8 + + thumb_func_start sub_080ACF14 +sub_080ACF14: @ 0x080ACF14 + push {lr} + ldr r2, _080ACF28 @ =gUnk_081320A8 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ACF28: .4byte gUnk_081320A8 + + thumb_func_start sub_080ACF2C +sub_080ACF2C: @ 0x080ACF2C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldr r0, _080ACF60 @ =gUnk_081320E4 + str r0, [r4, #0x48] + ldr r5, [r4, #0x54] + adds r6, r5, #0 + cmp r5, #0 + beq _080ACF64 + ldr r0, [r5, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r5, #0x30] + str r0, [r4, #0x30] + ldr r0, [r5, #0x34] + str r0, [r4, #0x34] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r0, [r5, #0x16] + strb r0, [r4, #0x16] + b _080ACFB6 + .align 2, 0 +_080ACF60: .4byte gUnk_081320E4 +_080ACF64: + adds r5, r4, #0 + str r4, [r4, #0x54] + movs r0, #2 + strb r0, [r4, #0xc] + ldr r3, _080ACFC8 @ =gUnk_081320B8 + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r6, [r4, #0x16] + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #2] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + bl sub_08078D60 +_080ACFB6: + ldrb r1, [r5, #8] + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + ldrb r1, [r5, #9] + adds r0, #2 + strh r1, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 +_080ACFC8: .4byte gUnk_081320B8 + + thumb_func_start sub_080ACFCC +sub_080ACFCC: @ 0x080ACFCC + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + adds r0, #0x6c + ldrh r0, [r0] + ldrb r2, [r1, #8] + cmp r0, r2 + beq _080ACFE8 + adds r0, r4, #0 + adds r0, #0x6e + ldrh r0, [r0] + ldrb r2, [r1, #9] + cmp r0, r2 + bne _080AD034 +_080ACFE8: + ldrb r0, [r1, #0xc] + cmp r0, #2 + beq _080ACFF8 + bl sub_08079184 + bl sub_0805E780 + b _080AD03C +_080ACFF8: + ldr r0, _080AD02C @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + beq _080AD00E + ldr r0, _080AD030 @ =gLinkEntity + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080AD03C +_080AD00E: + adds r0, r4, #0 + bl sub_080AD27C + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r4, #0x15] + str r2, [r4, #0x20] + b _080AD03C + .align 2, 0 +_080AD02C: .4byte gUnk_03003F80 +_080AD030: .4byte gLinkEntity +_080AD034: + bl sub_08079184 + bl sub_0805E780 +_080AD03C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AD040 +sub_080AD040: @ 0x080AD040 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + ldrb r0, [r5, #0xc] + cmp r0, #2 + beq _080AD050 + bl sub_0805E780 +_080AD050: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080AD064 + movs r0, #0 + str r0, [r4, #0x34] +_080AD064: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080AD06E + b _080AD220 +_080AD06E: + adds r2, r4, #0 + adds r2, #0x42 + ldrb r1, [r2] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080AD088 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r1, #0 + strb r0, [r4, #0x15] + strb r1, [r2] +_080AD088: + ldr r2, _080AD0B0 @ =gUnk_081320C4 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002B4 + cmp r0, #0x74 + bne _080AD0B4 + adds r0, r4, #0 + bl sub_0806F69C + b _080AD0C8 + .align 2, 0 +_080AD0B0: .4byte gUnk_081320C4 +_080AD0B4: + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0x24 + beq _080AD0C8 + cmp r0, #0x26 + beq _080AD0C8 + adds r0, r4, #0 + bl sub_080AF00C +_080AD0C8: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _080AD0D8 + b _080AD202 +_080AD0D8: + ldr r0, [r4, #0x20] + str r0, [r5, #0x20] + ldr r0, [r4, #0x2c] + str r0, [r5, #0x2c] + ldr r0, [r4, #0x30] + str r0, [r5, #0x30] + ldr r0, [r4, #0x34] + str r0, [r5, #0x34] + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x11 + bhi _080AD0FC + cmp r0, #0x10 + bhs _080AD104 + cmp r0, #0xd + beq _080AD104 + b _080AD14E +_080AD0FC: + cmp r0, #0x13 + beq _080AD104 + cmp r0, #0x5a + bne _080AD14E +_080AD104: + cmp r5, r4 + bne _080AD146 + cmp r0, #0x11 + bhi _080AD116 + cmp r0, #0x10 + bhs _080AD12C + cmp r0, #0xd + beq _080AD120 + b _080AD142 +_080AD116: + cmp r0, #0x13 + beq _080AD138 + cmp r0, #0x5a + beq _080AD126 + b _080AD142 +_080AD120: + adds r0, r4, #0 + movs r1, #0 + b _080AD130 +_080AD126: + adds r0, r4, #0 + movs r1, #0xc + b _080AD130 +_080AD12C: + adds r0, r4, #0 + movs r1, #0xb +_080AD130: + movs r2, #0 + bl CreateFX + b _080AD142 +_080AD138: + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFX +_080AD142: + movs r0, #4 + b _080AD148 +_080AD146: + movs r0, #3 +_080AD148: + strb r0, [r5, #0xd] + bl sub_0805E780 +_080AD14E: + ldr r0, [r4, #0x54] + cmp r0, r4 + bne _080AD178 + ldrb r0, [r4, #0xb] + cmp r0, #0xff + beq _080AD1DA + cmp r0, #0xf + bne _080AD16A + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + movs r2, #0x80 + bl CreateFX + b _080AD1DA +_080AD16A: + ldrb r1, [r4, #0xb] + ldrb r2, [r4, #0xe] + adds r0, r4, #0 + movs r3, #0 + bl sub_080A2988 + b _080AD1DA +_080AD178: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080AD188 + adds r0, r5, #0 + bl sub_080AD32C + cmp r0, #0 + beq _080AD1E0 +_080AD188: + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _080AD196 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_080A3268 +_080AD196: + adds r0, r4, #0 + bl sub_08016A04 + movs r0, #3 + strb r0, [r5, #0xd] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r5, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080AD1DA: + bl sub_0805E780 + b _080AD26E +_080AD1E0: + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_080A3268 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r1, #0x24 + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r4, #0x24] + b _080AD26E +_080AD202: + adds r0, r4, #0 + bl sub_0800451C + adds r0, r4, #0 + bl sub_0806F8DC + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x20] + str r0, [r5, #0x20] + ldrb r0, [r4, #0x15] + strb r0, [r5, #0x15] + b _080AD26E +_080AD220: + ldr r1, _080AD240 @ =gLinkEntity + adds r0, r1, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r5, #1 + ands r5, r0 + cmp r5, #0 + beq _080AD244 + movs r0, #0x79 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_080AD27C + b _080AD26E + .align 2, 0 +_080AD240: .4byte gLinkEntity +_080AD244: + ldr r0, _080AD270 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + beq _080AD25A + adds r0, r1, #0 + adds r0, #0x79 + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080AD26E +_080AD25A: + adds r0, r4, #0 + bl sub_080AD27C + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #0xff + strb r0, [r4, #0x15] + str r5, [r4, #0x20] +_080AD26E: + pop {r4, r5, pc} + .align 2, 0 +_080AD270: .4byte gUnk_03003F80 + + thumb_func_start sub_080AD274 +sub_080AD274: @ 0x080AD274 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080AD27C +sub_080AD27C: @ 0x080AD27C + push {r4, r5, lr} + adds r3, r0, #0 + ldr r4, [r3, #0x54] + ldr r1, _080AD2AC @ =gLinkEntity + movs r0, #0 + str r0, [r1, #0x74] + adds r0, r3, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r5, r1, #0 + ldrb r1, [r4, #8] + cmp r0, r1 + bne _080AD320 + adds r0, r3, #0 + adds r0, #0x6e + ldrh r0, [r0] + ldrb r1, [r4, #9] + cmp r0, r1 + bne _080AD320 + cmp r4, r3 + beq _080AD2B0 + movs r0, #2 + strb r0, [r4, #0xd] + b _080AD2C2 + .align 2, 0 +_080AD2AC: .4byte gLinkEntity +_080AD2B0: + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x18 + orrs r1, r0 + strb r1, [r2] +_080AD2C2: + ldr r0, [r4, #0x48] + str r0, [r3, #0x48] + ldrb r1, [r3, #0x16] + lsrs r1, r1, #4 + ldr r2, _080AD318 @ =gUnk_081320CC + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r3, #0x24] + ldr r0, _080AD31C @ =gUnk_081320D4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r3, #0x20] + ldrh r0, [r4, #0x36] + adds r0, #8 + strh r0, [r4, #0x36] + strh r0, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrh r0, [r5, #0x32] + strh r0, [r3, #0x32] + ldrh r0, [r5, #0x2e] + strh r0, [r3, #0x2e] + adds r0, r5, #0 + adds r0, #0x3c + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x3c + strb r1, [r0] + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + bl sub_0801766C + b _080AD328 + .align 2, 0 +_080AD318: .4byte gUnk_081320CC +_080AD31C: .4byte gUnk_081320D4 +_080AD320: + bl sub_08079184 + bl sub_0805E780 +_080AD328: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AD32C +sub_080AD32C: @ 0x080AD32C + push {lr} + adds r2, r0, #0 + movs r3, #0 + ldrb r1, [r2, #0x16] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + beq _080AD34C + ldrb r0, [r2, #8] + cmp r0, #6 + bne _080AD34E + ldrb r0, [r2, #9] + cmp r0, #5 + beq _080AD34C + cmp r0, #0x7d + bne _080AD34E +_080AD34C: + movs r3, #1 +_080AD34E: + adds r0, r3, #0 + pop {pc} + .align 2, 0 diff --git a/asm/code_080AD90C.s b/asm/code_080AD90C.s index 739b5e95..28583261 100644 --- a/asm/code_080AD90C.s +++ b/asm/code_080AD90C.s @@ -104,7 +104,7 @@ sub_080AD9B0: @ 0x080AD9B0 movs r1, #0xf _080AD9C2: strb r1, [r2, #0xe] - ldr r1, _080AD9FC @ =gUnk_03000BF0 + ldr r1, _080AD9FC @ =gRoomControls adds r0, r1, #0 adds r0, #0x24 ldrb r0, [r0] @@ -130,7 +130,7 @@ _080AD9C2: .align 2, 0 _080AD9F4: .4byte gUnk_03000000 _080AD9F8: .4byte gUnk_030010A0 -_080AD9FC: .4byte gUnk_03000BF0 +_080AD9FC: .4byte gRoomControls _080ADA00: .4byte gUnk_03006164 thumb_func_start sub_080ADA04 @@ -1628,7 +1628,7 @@ sub_080AE4CC: @ 0x080AE4CC adds r6, r1, #0 adds r5, r2, #0 adds r4, r3, #0 - ldr r1, _080AE4FC @ =gUnk_03000BF0 + ldr r1, _080AE4FC @ =gRoomControls ldrh r2, [r1, #6] subs r2, r6, r2 asrs r2, r2, #4 @@ -1648,7 +1648,7 @@ sub_080AE4CC: @ 0x080AE4CC beq _080AE588 b _080AE516 .align 2, 0 -_080AE4FC: .4byte gUnk_03000BF0 +_080AE4FC: .4byte gRoomControls _080AE500: cmp r3, #0xf bhi _080AE53E @@ -3467,7 +3467,7 @@ _080AF280: .4byte gUnk_08135168 thumb_func_start sub_080AF284 sub_080AF284: @ 0x080AF284 push {lr} - ldr r0, _080AF2AC @ =gUnk_03000BF0 + ldr r0, _080AF2AC @ =gRoomControls ldrh r1, [r0, #0x20] subs r1, #0x50 movs r0, #0x78 @@ -3484,7 +3484,7 @@ sub_080AF284: @ 0x080AF284 ldr r1, _080AF2B8 @ =gUnk_08135048 b _080AF2D4 .align 2, 0 -_080AF2AC: .4byte gUnk_03000BF0 +_080AF2AC: .4byte gRoomControls _080AF2B0: .4byte gUnk_02033A90 _080AF2B4: .4byte 0x0000085C _080AF2B8: .4byte gUnk_08135048 diff --git a/asm/createEntity.s b/asm/createEntity.s index 4dc2fcf5..11de294a 100644 --- a/asm/createEntity.s +++ b/asm/createEntity.s @@ -77,7 +77,7 @@ _0804AE1C: strb r0, [r1] b _0804AEAA _0804AE88: - ldr r0, _0804AEA0 @ =gUnk_03000BF0 + ldr r0, _0804AEA0 @ =gRoomControls ldrb r1, [r0, #0xf] movs r0, #2 ands r0, r1 @@ -90,7 +90,7 @@ _0804AE94: strb r0, [r1] b _0804AEAA .align 2, 0 -_0804AEA0: .4byte gUnk_03000BF0 +_0804AEA0: .4byte gRoomControls _0804AEA4: adds r0, r5, #0 bl sub_08016A30 diff --git a/asm/intr.s b/asm/intr.s index 82f9f383..b9fdde44 100644 --- a/asm/intr.s +++ b/asm/intr.s @@ -8,7 +8,7 @@ .code 16 sub_080B197C:: @ 0x080B197C push {r4, r5, r6} - ldr r2, _080B19C0 @ =gUnk_03000BF0 + ldr r2, _080B19C0 @ =gRoomControls ldrh r3, [r2, #0xa] ldrh r4, [r2, #6] subs r3, r3, r4 @@ -45,7 +45,7 @@ _080B19B4: pop {r4, r5, r6} bx lr .align 2, 0 -_080B19C0: .4byte gUnk_03000BF0 +_080B19C0: .4byte gRoomControls _080B19C4: .4byte 0x80000020 _080B19C8: .4byte 0x040000D4 @@ -54,7 +54,7 @@ sub_080B19CC: @ 0x080B19CC ldrb r2, [r0, #0x38] ldrh r1, [r0, #0x32] ldrh r0, [r0, #0x2e] - ldr ip, _080B1C10 @ =gUnk_03000BF0 + ldr ip, _080B1C10 @ =gRoomControls ldrh r3, [ip, #6] sub r0, r0, r3 ldrh r3, [ip, #8] @@ -82,7 +82,7 @@ _080B1A28: ldrh r1, [r0, #0x32] ldrh r0, [r0, #0x2e] _080B1A34: - ldr ip, _080B1C18 @ =gUnk_03000BF0 + ldr ip, _080B1C18 @ =gRoomControls ldrh r3, [ip, #6] sub r0, r0, r3 ldrh r3, [ip, #8] @@ -123,7 +123,7 @@ _080B1AA8: ldrh r1, [r0, #0x32] ldrh r0, [r0, #0x2e] _080B1AB4: - ldr ip, _080B1C20 @ =gUnk_03000BF0 + ldr ip, _080B1C20 @ =gRoomControls ldrh r3, [ip, #6] sub r0, r0, r3 ldrh r3, [ip, #8] @@ -153,7 +153,7 @@ _080B1B0C: ldrh r1, [r0, #0x32] ldrh r0, [r0, #0x2e] _080B1B18: - ldr ip, _080B1C28 @ =gUnk_03000BF0 + ldr ip, _080B1C28 @ =gRoomControls ldrh r3, [ip, #6] sub r0, r0, r3 ldrh r3, [ip, #8] @@ -217,7 +217,7 @@ sub_080B1BCC: @ 0x080B1BCC add r1, r1, r3 ldrh r3, [r0, #0x32] add r2, r2, r3 - ldr ip, _080B1C4C @ =gUnk_03000BF0 + ldr ip, _080B1C4C @ =gRoomControls ldrh r3, [ip, #6] sub r1, r1, r3 ldrh r3, [ip, #8] @@ -231,13 +231,13 @@ sub_080B1BCC: @ 0x080B1BCC ldrb r0, [r2, r1, lsr #4] bx lr .align 2, 0 -_080B1C10: .4byte gUnk_03000BF0 +_080B1C10: .4byte gRoomControls _080B1C14: .4byte gUnk_08000258 -_080B1C18: .4byte gUnk_03000BF0 +_080B1C18: .4byte gRoomControls _080B1C1C: .4byte gUnk_08000228 -_080B1C20: .4byte gUnk_03000BF0 +_080B1C20: .4byte gRoomControls _080B1C24: .4byte gUnk_08000278 -_080B1C28: .4byte gUnk_03000BF0 +_080B1C28: .4byte gRoomControls _080B1C2C: .4byte gUnk_08000248 _080B1C30: .4byte gUnk_080B37A0 _080B1C34: .4byte gUnk_080B7910 @@ -246,7 +246,7 @@ _080B1C3C: .4byte gUnk_08000360 _080B1C40: .4byte gUnk_080B7A3E _080B1C44: .4byte gUnk_08000360 _080B1C48: .4byte gUnk_080B7A3E -_080B1C4C: .4byte gUnk_03000BF0 +_080B1C4C: .4byte gRoomControls _080B1C50: .4byte gUnk_08000278 arm_func_start sub_080B1C54 diff --git a/asm/sub_08007DE0.s b/asm/sub_08007DE0.s new file mode 100644 index 00000000..c43a9bd0 --- /dev/null +++ b/asm/sub_08007DE0.s @@ -0,0 +1,22 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08007DE0 +sub_08007DE0: @ 0x08007DE0 + subs r1, #4 +_08007DE2: + adds r1, #4 + ldrh r3, [r1] + cmp r3, #0 + beq _08007DF2 + cmp r0, r3 + bne _08007DE2 + ldrh r3, [r1, #2] + movs r2, #1 +_08007DF2: + bx lr \ No newline at end of file diff --git a/asm/sub_08016AE4.s b/asm/sub_08016AE4.s new file mode 100644 index 00000000..312d3769 --- /dev/null +++ b/asm/sub_08016AE4.s @@ -0,0 +1,44 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08016AE4 +sub_08016AE4: @ 0x08016AE4 + mov r3, lr + push {r3, r4} + adds r4, r0, #0 + ldrb r2, [r0, #0xc] + cmp r2, #0 + bne _08016AFC + bl sub_080A7D80 + cmp r0, #0 + bne _08016B0A + bl sub_0805E780 +_08016AFC: + bl sub_0805E3B0 + cmp r0, #0 + bne _08016B22 + adds r0, r4, #0 + bl sub_080028E0 +_08016B0A: + adds r0, r4, #0 + ldrb r1, [r0, #9] + lsls r1, r1, #2 + ldr r2, _08016B2C @ =gUnk_08129320 + ldr r1, [r2, r1] + bl _call_via_r1 + movs r1, #0x41 + movs r3, #0x7f + ldrb r2, [r4, r1] + ands r2, r3 + strb r2, [r4, r1] +_08016B22: + adds r0, r4, #0 + bl sub_0800404C + pop {r3, r4} + bx r3 + .align 2, 0 +_08016B2C: .4byte gUnk_08129320 diff --git a/asm/sub_08052418.s b/asm/sub_08052418.s new file mode 100644 index 00000000..95b6ff5d --- /dev/null +++ b/asm/sub_08052418.s @@ -0,0 +1,73 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08052418 +sub_08052418: @ 0x08052418 + push {r4, r5, r6, lr} + sub sp, #0x18 + adds r6, r0, #0 + adds r4, r1, #0 + ldr r0, _08052494 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r0, _08052498 @ =gUnk_020227E8 + movs r1, #0xf + str r1, [r0] + str r1, [r0, #8] + str r1, [r0, #0x10] + str r1, [r0, #0x18] + lsls r4, r4, #3 + adds r0, #1 + adds r4, r4, r0 + movs r5, #1 + strb r5, [r4] + ldr r4, _0805249C @ =gUnk_080FCA8C + adds r0, r4, #0 + mov r1, sp + movs r2, #0x18 + bl sub_0801D66C + lsls r2, r6, #1 + adds r2, r2, r6 + lsls r2, r2, #2 + ldr r0, _080524A0 @ =gUnk_080FCAA4 + adds r2, r2, r0 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #7] + adds r1, r2, r1 + ldrb r0, [r2, #8] + lsls r0, r0, #5 + ldrb r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r4] + adds r1, r1, r0 + str r1, [sp] + mov r4, sp + ldrb r0, [r2, #9] + adds r1, r5, #0 + ands r1, r0 + ldrb r3, [r4, #0x13] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x13] + ldrh r0, [r2, #0xa] + mov r1, sp + bl sub_0805F46C + ldr r0, _080524A4 @ =gLCDControls + strh r5, [r0, #0x1a] + add sp, #0x18 + pop {r4, r5, r6, pc} + .align 2, 0 +_08052494: .4byte gUnk_02021F30 +_08052498: .4byte gUnk_020227E8 +_0805249C: .4byte gUnk_080FCA8C +_080524A0: .4byte gUnk_080FCAA4 +_080524A4: .4byte gLCDControls \ No newline at end of file diff --git a/asm/sub_080AD380.s b/asm/sub_080AD380.s new file mode 100644 index 00000000..db8f0890 --- /dev/null +++ b/asm/sub_080AD380.s @@ -0,0 +1,65 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080AD380 +sub_080AD380: @ 0x080AD380 + push {r4, lr} + bl sub_080AD90C + ldr r4, _080AD398 @ =gUnk_03001000 + ldrb r0, [r4, #3] + cmp r0, #1 + beq _080AD3BC + cmp r0, #1 + bgt _080AD39C + cmp r0, #0 + beq _080AD3A2 + b _080AD3EA + .align 2, 0 +_080AD398: .4byte gUnk_03001000 +_080AD39C: + cmp r0, #2 + beq _080AD3D8 + b _080AD3EA +_080AD3A2: + bl sub_08056418 + ldr r0, _080AD3B8 @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + bl sub_0801D630 + movs r0, #0 + bl IntroSetTransition + b _080AD3EA + .align 2, 0 +_080AD3B8: .4byte gUnk_02032EC0 +_080AD3BC: + ldr r1, _080AD3D0 @ =gUnk_081320F0 + ldr r0, _080AD3D4 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + b _080AD3EA + .align 2, 0 +_080AD3D0: .4byte gUnk_081320F0 +_080AD3D4: .4byte gUnk_02032EC0 +_080AD3D8: + ldr r0, _080AD3F0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD3EE + movs r0, #1 + bl sub_0801DA90 + movs r0, #1 + strb r0, [r4, #3] +_080AD3EA: + bl sub_080AD918 +_080AD3EE: + pop {r4, pc} + .align 2, 0 +_080AD3F0: .4byte gUnk_03000FD0 \ No newline at end of file diff --git a/asm/sub_080AD3F4.s b/asm/sub_080AD3F4.s new file mode 100644 index 00000000..008831d2 --- /dev/null +++ b/asm/sub_080AD3F4.s @@ -0,0 +1,68 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080AD3F4 +sub_080AD3F4: @ 0x080AD3F4 + push {r4, r5, lr} + bl sub_080AD84C + adds r1, r0, #0 + ldr r4, _080AD450 @ =gUnk_02000080 + ldrb r0, [r4, #5] + cmp r0, #0 + bne _080AD458 + movs r0, #1 + bl sub_0801DA90 + movs r5, #1 + strb r5, [r4, #5] + movs r0, #0x78 + strh r0, [r4, #8] + movs r0, #0x10 + bl sub_0801D7EC + movs r0, #1 + bl sub_0801D7EC + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #2 + cmp r0, #0 + bne _080AD42C + movs r1, #1 +_080AD42C: + adds r0, r1, #0 + bl sub_0801D714 + ldr r0, _080AD454 @ =gLCDControls + ldrh r1, [r0] + movs r3, #0x80 + lsls r3, r3, #3 + adds r2, r3, #0 + orrs r1, r2 + strh r1, [r0] + strh r5, [r0, #0x1a] + movs r0, #6 + movs r1, #8 + bl sub_08050054 + movs r1, #0 + b _080AD45E + .align 2, 0 +_080AD450: .4byte gUnk_02000080 +_080AD454: .4byte gLCDControls +_080AD458: + cmp r1, #1 + bne _080AD45E + movs r1, #2 +_080AD45E: + cmp r1, #2 + bne _080AD46C + ldr r1, _080AD470 @ =gUnk_02000010 + movs r0, #1 + strb r0, [r1, #5] + bl IntroSetTransition +_080AD46C: + pop {r4, r5, pc} + .align 2, 0 +_080AD470: .4byte gUnk_02000010 \ No newline at end of file diff --git a/asm/sub_080AD474.s b/asm/sub_080AD474.s new file mode 100644 index 00000000..cee26868 --- /dev/null +++ b/asm/sub_080AD474.s @@ -0,0 +1,224 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080AD474 +sub_080AD474: @ 0x080AD474 + push {r4, r5, r6, lr} + ldr r5, _080AD490 @ =gUnk_02000080 + ldrb r0, [r5, #0x12] + adds r0, #1 + strb r0, [r5, #0x12] + ldrb r0, [r5, #5] + cmp r0, #1 + bne _080AD486 + b _080AD588 +_080AD486: + cmp r0, #1 + bgt _080AD494 + cmp r0, #0 + beq _080AD49C + b _080AD5C8 + .align 2, 0 +_080AD490: .4byte gUnk_02000080 +_080AD494: + cmp r0, #2 + bne _080AD49A + b _080AD5AA +_080AD49A: + b _080AD5C8 +_080AD49C: + movs r4, #1 + strb r4, [r5, #5] + strb r0, [r5, #6] + movs r6, #0 + movs r0, #0x1e + strh r0, [r5, #8] + movs r0, #7 + strb r0, [r5, #4] + bl sub_0805E60C + movs r0, #0 + bl sub_0801CFA8 + bl sub_080ADD30 + ldr r0, _080AD50C @ =gUnk_02024490 + strb r4, [r0] + movs r0, #2 + bl sub_0801D7EC + movs r4, #0x80 + lsls r4, r4, #0x12 + ldrb r0, [r4, #7] + movs r1, #4 + cmp r0, #0 + bne _080AD4D2 + movs r1, #3 +_080AD4D2: + adds r0, r1, #0 + bl sub_0801D714 + ldrb r0, [r4, #7] + cmp r0, #0 + bne _080AD524 + ldr r2, _080AD510 @ =gLCDControls + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _080AD514 @ =0x00000844 + strh r0, [r1] + adds r1, #2 + adds r0, #0xc5 + strh r0, [r1] + ldr r0, _080AD518 @ =0x00001C09 + strh r0, [r2, #0x14] + adds r0, #0xf9 + strh r0, [r2, #0x20] + ldr r0, _080AD51C @ =0x00001E03 + strh r0, [r2, #0x2c] + ldrh r0, [r2] + movs r3, #0xf0 + lsls r3, r3, #5 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _080AD520 @ =0x0000FF60 + strh r0, [r2, #0x18] + b _080AD55A + .align 2, 0 +_080AD50C: .4byte gUnk_02024490 +_080AD510: .4byte gLCDControls +_080AD514: .4byte 0x00000844 +_080AD518: .4byte 0x00001C09 +_080AD51C: .4byte 0x00001E03 +_080AD520: .4byte 0x0000FF60 +_080AD524: + ldr r2, _080AD570 @ =gLCDControls + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _080AD574 @ =0x00000241 + strh r0, [r1] + adds r1, #2 + ldr r0, _080AD578 @ =0x00000909 + strh r0, [r1] + ldr r0, _080AD57C @ =0x00001D02 + strh r0, [r2, #8] + ldr r0, _080AD580 @ =0x00001E03 + strh r0, [r2, #0x14] + ldr r0, _080AD584 @ =0x00007C89 + strh r0, [r2, #0x20] + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + orrs r0, r6 + movs r3, #0x98 + lsls r3, r3, #5 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + movs r0, #0x10 + str r0, [r5, #0x2c] + bl sub_080AD670 +_080AD55A: + bl sub_080A3210 + movs r0, #3 + bl sub_080A3268 + movs r0, #6 + movs r1, #8 + bl sub_08050054 + b _080AD610 + .align 2, 0 +_080AD570: .4byte gLCDControls +_080AD574: .4byte 0x00000241 +_080AD578: .4byte 0x00000909 +_080AD57C: .4byte 0x00001D02 +_080AD580: .4byte 0x00001E03 +_080AD584: .4byte 0x00007C89 +_080AD588: + ldr r0, _080AD5A0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD632 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _080AD5A4 + bl sub_080AD6AC + b _080AD610 + .align 2, 0 +_080AD5A0: .4byte gUnk_03000FD0 +_080AD5A4: + bl sub_080AD76C + b _080AD610 +_080AD5AA: + ldrh r0, [r5, #8] + subs r0, #1 + strh r0, [r5, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AD5C2 + movs r0, #0xe1 + lsls r0, r0, #4 + strh r0, [r5, #8] + ldrb r0, [r5, #5] + adds r0, #1 + strb r0, [r5, #5] +_080AD5C2: + bl sub_080AD644 + b _080AD610 +_080AD5C8: + bl sub_080AD84C + adds r4, r0, #0 + cmp r4, #0 + beq _080AD5EC + cmp r4, #2 + bne _080AD5DE + movs r0, #0x6a + bl sub_080A3268 + b _080AD5E0 +_080AD5DE: + movs r4, #0 +_080AD5E0: + adds r0, r4, #0 + bl IntroSetTransition + ldr r0, _080AD634 @ =0x80080000 + bl sub_080A3268 +_080AD5EC: + bl sub_080AD644 + ldr r0, _080AD638 @ =gUnk_02000080 + ldrh r1, [r0, #8] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080AD610 + ldr r1, _080AD63C @ =gUnk_03001010 + movs r0, #0xe0 + lsls r0, r0, #8 + strh r0, [r1, #8] + movs r0, #0x84 + strh r0, [r1, #2] + ldr r0, _080AD640 @ =0x000001FF + movs r1, #0 + bl sub_080ADA14 +_080AD610: + ldr r2, _080AD638 @ =gUnk_02000080 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #7] + ldrb r0, [r2, #4] + cmp r0, r1 + beq _080AD626 + strb r1, [r2, #4] + movs r0, #3 + bl sub_0801D7EC +_080AD626: + bl sub_080AD89C + bl sub_0805E5C0 + bl sub_080AD9B0 +_080AD632: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AD634: .4byte 0x80080000 +_080AD638: .4byte gUnk_02000080 +_080AD63C: .4byte gUnk_03001010 +_080AD640: .4byte 0x000001FF diff --git a/asm/sub_080AD670.s b/asm/sub_080AD670.s new file mode 100644 index 00000000..f3c634c5 --- /dev/null +++ b/asm/sub_080AD670.s @@ -0,0 +1,38 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080AD670 +sub_080AD670: @ 0x080AD670 + push {lr} + sub sp, #0x14 + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [sp, #4] + str r0, [sp] + mov r1, sp + movs r2, #0 + movs r0, #0x78 + strh r0, [r1, #8] + movs r0, #0x48 + strh r0, [r1, #0xa] + mov r0, sp + strh r2, [r0, #0x10] + mov r2, sp + ldr r0, _080AD6A4 @ =gUnk_02000080 + ldr r0, [r0, #0x2c] + strh r0, [r1, #0xc] + strh r0, [r2, #0xe] + ldr r1, _080AD6A8 @ =gBgControls + mov r0, sp + movs r2, #1 + bl BgAffineSet + add sp, #0x14 + pop {pc} + .align 2, 0 +_080AD6A4: .4byte gUnk_02000080 +_080AD6A8: .4byte gBgControls diff --git a/asm/sub_080AD6Ac.s b/asm/sub_080AD6Ac.s new file mode 100644 index 00000000..76b5f3c8 --- /dev/null +++ b/asm/sub_080AD6Ac.s @@ -0,0 +1,105 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080AD6AC +sub_080AD6AC: @ 0x080AD6AC + push {r4, r5, r6, lr} + ldr r4, _080AD6C0 @ =gUnk_02000080 + ldrb r0, [r4, #6] + cmp r0, #1 + beq _080AD724 + cmp r0, #1 + bgt _080AD6C4 + cmp r0, #0 + beq _080AD6CA + b _080AD76A + .align 2, 0 +_080AD6C0: .4byte gUnk_02000080 +_080AD6C4: + cmp r0, #2 + beq _080AD758 + b _080AD76A +_080AD6CA: + ldr r6, _080AD718 @ =gUnk_03000FD0 + ldrb r5, [r6] + cmp r5, #0 + bne _080AD76A + ldrb r1, [r4, #0x12] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080AD6E4 + ldr r1, _080AD71C @ =gLCDControls + ldrh r0, [r1, #0x18] + adds r0, #1 + strh r0, [r1, #0x18] +_080AD6E4: + bl sub_080AD84C + cmp r0, #2 + beq _080AD6F4 + ldr r0, _080AD71C @ =gLCDControls + ldrh r0, [r0, #0x18] + cmp r0, #0 + bne _080AD76A +_080AD6F4: + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _080AD71C @ =gLCDControls + strh r5, [r1, #0x18] + ldr r0, _080AD720 @ =0x00000C09 + strh r0, [r1, #0x14] + movs r0, #0x40 + str r0, [r6, #4] + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0xf8 + bl sub_080A3268 + b _080AD76A + .align 2, 0 +_080AD718: .4byte gUnk_03000FD0 +_080AD71C: .4byte gLCDControls +_080AD720: .4byte 0x00000C09 +_080AD724: + ldr r1, _080AD754 @ =gUnk_03000FD0 + ldrb r5, [r1] + cmp r5, #0 + bne _080AD76A + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #4] + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x5a + strh r0, [r4, #8] + movs r0, #0xb4 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080AD76A + strh r5, [r1, #0x2e] + movs r0, #0x48 + strh r0, [r1, #0x32] + b _080AD76A + .align 2, 0 +_080AD754: .4byte gUnk_03000FD0 +_080AD758: + bl sub_080AD84C + cmp r0, #0 + beq _080AD76A + ldrb r0, [r4, #5] + adds r0, #1 + strb r0, [r4, #5] + movs r0, #0x3c + strh r0, [r4, #8] +_080AD76A: + pop {r4, r5, r6, pc} diff --git a/asm/sub_080AD76C.s b/asm/sub_080AD76C.s new file mode 100644 index 00000000..2a310748 --- /dev/null +++ b/asm/sub_080AD76C.s @@ -0,0 +1,108 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080AD76C +sub_080AD76C: @ 0x080AD76C + push {lr} + ldr r1, _080AD780 @ =gUnk_02000080 + ldrb r0, [r1, #6] + cmp r0, #1 + beq _080AD7B4 + cmp r0, #1 + bgt _080AD784 + cmp r0, #0 + beq _080AD78A + b _080AD80E + .align 2, 0 +_080AD780: .4byte gUnk_02000080 +_080AD784: + cmp r0, #2 + beq _080AD7DC + b _080AD80E +_080AD78A: + ldr r0, _080AD7AC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD82A + movs r0, #1 + strb r0, [r1, #6] + ldr r2, _080AD7B0 @ =gLCDControls + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #3 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + movs r0, #0xf6 + bl sub_080A3268 + b _080AD82A + .align 2, 0 +_080AD7AC: .4byte gUnk_03000FD0 +_080AD7B0: .4byte gLCDControls +_080AD7B4: + ldr r0, [r1, #0x2c] + adds r0, #0x10 + str r0, [r1, #0x2c] + movs r2, #0x80 + lsls r2, r2, #1 + cmp r0, r2 + ble _080AD7D6 + str r2, [r1, #0x2c] + movs r0, #0x28 + strh r0, [r1, #8] + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 +_080AD7D6: + bl sub_080AD670 + b _080AD82A +_080AD7DC: + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AD82A + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1, #8] + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #0xbd + movs r1, #0 + movs r2, #0 + bl CreateObject + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0xf8 + bl sub_080A3268 + b _080AD82A +_080AD80E: + ldr r0, _080AD82C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD82A + bl sub_080AD84C + cmp r0, #0 + beq _080AD82A + ldr r0, _080AD830 @ =gUnk_02000080 + ldrb r1, [r0, #5] + adds r1, #1 + strb r1, [r0, #5] + movs r1, #0x3c + strh r1, [r0, #8] +_080AD82A: + pop {pc} + .align 2, 0 +_080AD82C: .4byte gUnk_03000FD0 +_080AD830: .4byte gUnk_02000080 diff --git a/asm/sub_080AD84C.s b/asm/sub_080AD84C.s new file mode 100644 index 00000000..31854c4b --- /dev/null +++ b/asm/sub_080AD84C.s @@ -0,0 +1,51 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080AD84C +sub_080AD84C: @ 0x080AD84C + push {lr} + ldr r0, _080AD864 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD894 + ldr r0, _080AD868 @ =gUnk_02000010 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080AD86C + movs r2, #0 + b _080AD874 + .align 2, 0 +_080AD864: .4byte gUnk_03000FD0 +_080AD868: .4byte gUnk_02000010 +_080AD86C: + ldr r0, _080AD888 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + movs r2, #9 + ands r2, r0 +_080AD874: + ldr r1, _080AD88C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AD890 + movs r0, #1 + b _080AD89A + .align 2, 0 +_080AD888: .4byte gUnk_03000FF0 +_080AD88C: .4byte gUnk_02000080 +_080AD890: + cmp r2, #0 + bne _080AD898 +_080AD894: + movs r0, #0 + b _080AD89A +_080AD898: + movs r0, #2 +_080AD89A: + pop {pc} \ No newline at end of file diff --git a/asm/sub_080AD89C.s b/asm/sub_080AD89C.s new file mode 100644 index 00000000..039218e1 --- /dev/null +++ b/asm/sub_080AD89C.s @@ -0,0 +1,49 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080AD89C +sub_080AD89C: @ 0x080AD89C + push {r4, lr} + ldr r4, _080AD8E4 @ =gUnk_02000080 + ldrb r1, [r4, #0x12] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _080AD8BC + ldrb r0, [r4, #0x10] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x10] + adds r0, #5 + bl sub_0801D714 +_080AD8BC: + ldrb r1, [r4, #0x12] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _080AD8E0 + ldrb r0, [r4, #0x11] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x11] + ldr r1, _080AD8E8 @ =gLCDControls + ldr r2, _080AD8EC @ =gUnk_081320FC + ldrb r0, [r4, #0x11] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] +_080AD8E0: + pop {r4, pc} + .align 2, 0 +_080AD8E4: .4byte gUnk_02000080 +_080AD8E8: .4byte gLCDControls +_080AD8EC: .4byte gUnk_081320FC diff --git a/asm/updateBackgroundRegisters.s b/asm/updateBackgroundRegisters.s index 54aa93bf..7ca8d9d7 100644 --- a/asm/updateBackgroundRegisters.s +++ b/asm/updateBackgroundRegisters.s @@ -7,7 +7,7 @@ thumb_func_start sub_08016CF4 sub_08016CF4: @ 0x08016CF4 - ldr r3, _08016DF0 @ =gUnk_03000F50 + ldr r3, _08016DF0 @ =gLCDControls ldrh r1, [r3] ldrh r0, [r3, #6] ands r0, r1 @@ -134,5 +134,5 @@ sub_08016CF4: @ 0x08016CF4 strh r0, [r2] bx lr .align 2, 0 -_08016DF0: .4byte gUnk_03000F50 +_08016DF0: .4byte gLCDControls _08016DF4: .4byte 0x04000020 diff --git a/include/New Text Document.txt b/include/New Text Document.txt deleted file mode 100644 index 9b77f912..00000000 --- a/include/New Text Document.txt +++ /dev/null @@ -1 +0,0 @@ -void LoadRoom(void); \ No newline at end of file diff --git a/include/bg.h b/include/bg.h new file mode 100644 index 00000000..9e6d2c8d --- /dev/null +++ b/include/bg.h @@ -0,0 +1,63 @@ +#ifndef BG_H +#define BG_H + +#include "global.h" + +typedef struct { + u16 lcdControl2; + u32 unk; + u16 lcdControl1; +} LcdControls; + +typedef struct { + u16 bg0Control; + u16 bg0xOffset; + u16 bg0yOffset; + u16 bg0Updated; + u32 unk; +} BgSettings; + +typedef struct { + u16 bg2Control; + u16 bg2xOffset; + u16 bg2yOffset; + u16 unk; + u32 unk2; + u16 unk3; + u16 bg3Control; + u16 bg3xOffset; + u16 bg3yOffset; + u16 unk4; + u32 unk5; +} BgAffSettings; + +typedef struct { + u16 bg2dx; + u16 bg2dmx; + u16 bg2dy; + u16 bg2dmy; + u16 bg2xPointLeastSig; + u16 bg2xPointMostSig; + u16 bg2yPointLeastSig; + u16 bg2yPointMostSig; + u16 bg3dx; + u16 bg3dmx; + u16 bg3dy; + u16 bg3dmy; + u16 bg3xPointLeastSig; + u16 bg3xPointMostSig; + u16 bg3yPointLeastSig; + u16 bg3yPointMostSig; + u16 window0HorizontalDimensions; + u16 window1HorizontalDimensions; + u16 window0VerticalDimensions; + u16 window1VerticalDimensions; + u16 windowInsideControl; + u16 windowOutsideControl; + u16 mosaicSize; + u16 layerFXControl; + u16 alphaBlend; + u16 layerBrightness; +} BgControls; + +#endif \ No newline at end of file diff --git a/include/entity.h b/include/entity.h index 63d0fec7..0753a074 100644 --- a/include/entity.h +++ b/include/entity.h @@ -18,6 +18,11 @@ union SplitWord { u16 LO, HI; }; +typedef struct { + u16 LO; + u16 HI; +} Pos; + typedef struct { u32 *field_0x0; diff --git a/include/menu.h b/include/menu.h new file mode 100644 index 00000000..b1f799b7 --- /dev/null +++ b/include/menu.h @@ -0,0 +1,20 @@ +#ifndef MENU_H +#define MENU_H + +#include "global.h" + +typedef struct { + u16 unk; + u8 transitionType; + u8 unk4; + u8 state; + u8 unk6; + u8 unk7; + u8 unk8; + u16 unk2; + u16 fadeInTime; + u8 filler2 [4]; + u32 filler3[3]; +} Menu; + +#endif \ No newline at end of file diff --git a/include/room.h b/include/room.h new file mode 100644 index 00000000..c44b06c7 --- /dev/null +++ b/include/room.h @@ -0,0 +1,32 @@ +#ifndef ROOM_H +#define ROOM_H + +#include "global.h" +#include "entity.h" + +/* +typedef struct { + u8 areaID; + u8 roomID; +} RoomID; +*/ + +typedef struct { + u16 unk2; + u8 unk3; + u8 unk4; + u8 areaID; + u8 roomID; + u16 roomOriginX; + u16 roomOriginY; + s16 roomScrollX; + s16 roomScrollY; + u8 filler[8]; + u16 screenShakeTime; + u16 filler2[6]; + u8 filler3[4]; + u16 filler4[4]; + Entity * cameraTarget; +} RoomControls; + +#endif \ No newline at end of file diff --git a/include/textbox.h b/include/textbox.h new file mode 100644 index 00000000..94293be9 --- /dev/null +++ b/include/textbox.h @@ -0,0 +1,19 @@ +#ifndef TEXTBOX_H +#define TEXTBOX_H + +#include "global.h" + +typedef struct { + u8 doTextBox; + u8 unk; + u8 textSpeed; + u8 unk3; //HI? + u8 textWindowWidth; + u8 textWindowHeight; + u8 textWindowPosX; + u8 textWindowPosY; + u16 textIndex; + u16 unk2; //HI? +} TextBox; + +#endif \ No newline at end of file diff --git a/linker.ld b/linker.ld index 95a14cfd..73dd0143 100644 --- a/linker.ld +++ b/linker.ld @@ -13,7 +13,7 @@ SECTIONS { . = 0x00000020; gUnk_02000020 = .; . = 0x00000030; gUnk_02000030 = .; . = 0x00000040; gUnk_02000040 = .; - . = 0x00000050; gUnk_02000050 = .; + . = 0x00000050; gTextBox = .; . = 0x0000005C; gUnk_0200005C = .; . = 0x00000070; gUnk_02000070 = .; . = 0x00000080; gUnk_02000080 = .; @@ -157,17 +157,17 @@ SECTIONS { . = 0x00000420; gUnk_03000420 = .; . = 0x00000B80; gUnk_03000B80 = .; . = 0x00000BD4; gUnk_03000BD4 = .; - . = 0x00000BF0; gUnk_03000BF0 = .; + . = 0x00000BF0; gRoomControls = .; . = 0x00000BF6; gUnk_03000BF6 = .; . = 0x00000BF8; gUnk_03000BF8 = .; . = 0x00000C24; gUnk_03000C24 = .; . = 0x00000C30; gUnk_03000C30 = .; . = 0x00000E10; gUnk_03000E10 = .; - . = 0x00000F50; gUnk_03000F50 = .; - . = 0x00000F58; gUnk_03000F58 = .; - . = 0x00000F64; gUnk_03000F64 = .; - . = 0x00000F70; gUnk_03000F70 = .; - . = 0x00000F88; gUnk_03000F88 = .; + . = 0x00000F50; gLCDControls = .; + . = 0x00000F58; gBG0Settings = .; + . = 0x00000F64; gBG1Settings = .; + . = 0x00000F70; gBGAffSettings = .; + . = 0x00000F88; gBgControls = .; . = 0x00000FBC; gUnk_03000FBC = .; . = 0x00000FD0; gUnk_03000FD0 = .; . = 0x00000FF0; gUnk_03000FF0 = .; @@ -290,6 +290,7 @@ SECTIONS { asm/code_080043E8.o(.text); data/data_6.o(.rodata); asm/code_0800857C.o(.text); + asm/sub_08016AE4.o(.text); /* C source compiled with interworking */ @@ -320,8 +321,10 @@ SECTIONS { src/sub_08050008.o(.text); src/sub_08050024.o(.text); asm/code_08050038.o(.text); + asm/sub_08052418.o(.text); asm/initializeLink.o(.text); - asm/code_08052620.o(.text); + src/sub_08052620.o(.text); + src/sub_08052638.o(.text); src/bitGetters.o(.text); src/modHealth.o(.text); asm/code_080526CC.o(.text); @@ -330,17 +333,26 @@ SECTIONS { asm/mainLoop.o(.text); asm/sub_08055F70.o(.text); asm/code_08055FF4.o(.text); + src/textbox.o(.text); + asm/code_08056418.o(.text); src/sub_0805E374.o(.text); src/sub_0805E3A0.o(.text); asm/code_0805E3B0.o(.text); asm/getEmptyEntity.o(.text); asm/code_0805E744.o(.text); + src/createNPC.o(.text); + asm/code_0806ED78.o(.text); src/sub_0806F9EC.o(.text); src/sub_0806FA04.o(.text); src/sub_0806FA24.o(.text); src/sub_0806FA30.o(.text); src/positionRelative.o(.text); asm/code_0806FA6C.o(.text); + src/sub_0807B7D8.o(.text); + src/sub_0807B820.o(.text); + src/sub_0807B8A8.o(.text); + src/sub_0807B930.o(.text); + asm/code_0807B9B8.o(.text); src/sub_0807C998.o(.text); src/sub_0801D754.o(.text); asm/sub_0807CA18.o(.text); @@ -348,12 +360,26 @@ SECTIONS { asm/code_0807CAA0.o(.text); src/getProgressFlag.o(.text); asm/code_0807CC3C.o(.text); + asm/code_08080974.o(.text); asm/sub_080A2838.o(.text); asm/sub_080A285C.o(.text); src/createObject.o(.text); asm/sub_080A2988.o(.text); asm/createFx.o(.text); asm/code_080A29BC.o(.text); + src/sub_080A554C.o(.text); + asm/code_080A5574.o(.text); + src/introSetTransition.o(.text); + asm/sub_080AD380.o(.text); + asm/sub_080AD3F4.o(.text); + asm/sub_080AD474.o(.text); + src/sub_080AD644.o(.text); + asm/sub_080AD670.o(.text); + asm/sub_080AD6Ac.o(.text); + asm/sub_080AD76C.o(.text); + src/sub_080AD834.o(.text); + asm/sub_080AD84C.o(.text); + asm/sub_080AD89C.o(.text); asm/sub_080AD8F0.o(.text); asm/code_080AD90C.o(.text); /* library functions */ diff --git a/src/bitGetters.c b/src/bitGetters.c index 35cb4017..15c27ac0 100644 --- a/src/bitGetters.c +++ b/src/bitGetters.c @@ -1,8 +1,5 @@ #include "global.h" -extern u8 gUnk_02033A90; -#include "global.h" - extern u8 gUnk_02033A90; u32 sub_08052654() diff --git a/src/createEntity.c b/src/createEntity.c index 366c83ab..92fef210 100644 --- a/src/createEntity.c +++ b/src/createEntity.c @@ -7,7 +7,7 @@ // extern void sub_0804AEB0(Entity *, EntityData *); // extern u32 sub_0804AF0C(Entity *, EntityData *); // extern void sub_08016A30(Entity *); -// extern u32 gUnk_03000BF0; +// extern u32 gRoomControls; // Entity * CreateEntity(EntityData *param_1) // { @@ -37,7 +37,7 @@ // entity->collisionLayer = 2; // return entity; // } - // if ((gUnk_03000BF0 & 2) == 0) { + // if ((gRoomControls & 2) == 0) { // sub_08016A30(entity); // return entity; // } diff --git a/src/createNPC.c b/src/createNPC.c new file mode 100644 index 00000000..fc6b575e --- /dev/null +++ b/src/createNPC.c @@ -0,0 +1,22 @@ +#include "global.h" +#include "entity.h" + + +extern Entity * GetEmptyEntity(); +extern void sub_0805EA2C(Entity *, u8); + +Entity * CreateNPC(u32 subtype,u32 parameter1,u32 parameter2) + +{ + Entity *pEVar1; + + pEVar1 = GetEmptyEntity(); + if (pEVar1 != NULL) { + (pEVar1->entityType).type = 7; + (pEVar1->entityType).subtype = subtype; + (pEVar1->entityType).parameter1 = parameter1; + (pEVar1->entityType).parameter2 = parameter2; + sub_0805EA2C(pEVar1,7); + } + return pEVar1; +} \ No newline at end of file diff --git a/src/introSetTransition.c b/src/introSetTransition.c new file mode 100644 index 00000000..a7734a90 --- /dev/null +++ b/src/introSetTransition.c @@ -0,0 +1,29 @@ +#include "global.h" +#include "menu.h" + +typedef struct { + u8 unk; + u8 unk2; + u8 unk3; + u8 functionIndex; + u16 unk6; + u8 filler[5]; + u32 ticks; + u16 unk7; +} TransitionStruct; + +extern u32 sub_08050054(u32, u32); +extern void sub_0801D630(u32 *, u32, u32); +extern u32 gUnk_02000080; +extern TransitionStruct gUnk_03001000; +extern Menu gUnk_02032EC0; + + +u32 IntroSetTransition(u8 transition,u32 param_2,u32 param_3) + +{ + gUnk_02032EC0.transitionType = transition; + gUnk_03001000.functionIndex = 2; + sub_0801D630(&gUnk_02000080,48,param_3); + return sub_08050054(7,8); +} diff --git a/src/sub_08052620.c b/src/sub_08052620.c new file mode 100644 index 00000000..d74b2f4b --- /dev/null +++ b/src/sub_08052620.c @@ -0,0 +1,8 @@ +#include "global.h" + +extern u8 gUnk_02033A90; + +bool32 sub_08052620(u32 r0) +{ + return gUnk_02033A90 == 0x81; +} \ No newline at end of file diff --git a/src/sub_08052638.c b/src/sub_08052638.c new file mode 100644 index 00000000..5271d607 --- /dev/null +++ b/src/sub_08052638.c @@ -0,0 +1,11 @@ +#include "global.h" + +extern u8 gUnk_08127D30[69]; + +u32 sub_08052638(u32 r0) +{ + //u32 r1 = gUnk_08127D30; + //u32 r1 = gUnk_08127D30; + + return gUnk_08127D30[r0 * 4] == 129; +} \ No newline at end of file diff --git a/src/sub_0807B7D8.c b/src/sub_0807B7D8.c new file mode 100644 index 00000000..deafe926 --- /dev/null +++ b/src/sub_0807B7D8.c @@ -0,0 +1,22 @@ +#include "global.h" + +extern void sub_08000152(u32); +extern void sub_0807B778(u32, u32); +extern void sub_0807B314(u32, u32, u32); + +void sub_0807B7D8(u32 param_1,u32 param_2,u32 param_3) + +{ + if (param_1 == 53) { + sub_08000152(53); + sub_0807B778(param_2,param_3); + sub_0807B778(param_2 + 1,param_3); + sub_0807B778(param_2 + -1,param_3); + sub_0807B778(param_2 + 64,param_3); + sub_0807B778(param_2 + -64,param_3); + } + else { + sub_0807B314(param_1,param_2,param_3); + } + return; +} \ No newline at end of file diff --git a/src/sub_0807B820.c b/src/sub_0807B820.c new file mode 100644 index 00000000..e6f4628c --- /dev/null +++ b/src/sub_0807B820.c @@ -0,0 +1,18 @@ +#include "global.h" + +extern void sub_0807B314(u32, u32, u32); + +void sub_0807B820(u32 param_1) + +{ + sub_0807B314(620,param_1 + -65,1); + sub_0807B314(627,param_1 + -65,2); + sub_0807B314(621,param_1 + -64,1); + sub_0807B314(628,param_1 + -64,2); + sub_0807B314(622,param_1 + -63,1); + sub_0807B314(629,param_1 + -63,2); + sub_0807B314(623,param_1 + -1,1); + sub_0807B314(624,param_1,1); + sub_0807B314(626,param_1 + 1,1); + return; +} \ No newline at end of file diff --git a/src/sub_0807B8A8.c b/src/sub_0807B8A8.c new file mode 100644 index 00000000..f18d1f90 --- /dev/null +++ b/src/sub_0807B8A8.c @@ -0,0 +1,18 @@ +#include "global.h" + +extern void sub_0807B314(u32, u32, u32); + +void sub_0807B8A8(u32 param_1) + +{ + sub_0807B314(636,param_1 + -65,1); + sub_0807B314(643,param_1 + -65,2); + sub_0807B314(637,param_1 + -64,1); + sub_0807B314(644,param_1 + -64,2); + sub_0807B314(638,param_1 + -63,1); + sub_0807B314(645,param_1 + -63,2); + sub_0807B314(639,param_1 + -1,1); + sub_0807B314(640,param_1,1); + sub_0807B314(642,param_1 + 1,1); + return; +} \ No newline at end of file diff --git a/src/sub_0807B930.c b/src/sub_0807B930.c new file mode 100644 index 00000000..aafa58af --- /dev/null +++ b/src/sub_0807B930.c @@ -0,0 +1,19 @@ +#include "global.h" + + +extern void sub_0807B314(u32, u32, u32); + +void sub_0807B930(int param_1) + +{ + sub_0807B314(652,param_1 + -65,1); + sub_0807B314(659,param_1 + -65,2); + sub_0807B314(653,param_1 + -64,1); + sub_0807B314(660,param_1 + -64,2); + sub_0807B314(654,param_1 + -63,1); + sub_0807B314(661,param_1 + -63,2); + sub_0807B314(655,param_1 + -1,1); + sub_0807B314(656,param_1,1); + sub_0807B314(658,param_1 + 1,1); + return; +} diff --git a/src/sub_080A554C.c b/src/sub_080A554C.c new file mode 100644 index 00000000..ab9057fe --- /dev/null +++ b/src/sub_080A554C.c @@ -0,0 +1,20 @@ +#include "global.h" + +extern u8 gUnk_02000090; + +u32 sub_080A554C(u32 param_1) + +{ + u32 uVar1; + + if (param_1 != 0) { + uVar1 = 0; + do { + if (param_1 == (&gUnk_02000090)[uVar1]) { + return uVar1; + } + uVar1 = uVar1 + 1; + } while (uVar1 < 17); + } + return 17; +} diff --git a/src/sub_080AD644.c b/src/sub_080AD644.c new file mode 100644 index 00000000..3d501516 --- /dev/null +++ b/src/sub_080AD644.c @@ -0,0 +1,17 @@ +#include "global.h" + +extern s32 sub_080ADA14(u32, u32); +extern u16 gUnk_03001010[4]; + + +void sub_080AD644(void) +{ + + gUnk_03001010[2] = 0; + gUnk_03001010[3] = 0; + gUnk_03001010[4] = 57376; + gUnk_03001010[0] = 120; + gUnk_03001010[1] = 152; + sub_080ADA14(511,1); + return; +} \ No newline at end of file diff --git a/src/sub_080AD834.c b/src/sub_080AD834.c new file mode 100644 index 00000000..0a20c2f5 --- /dev/null +++ b/src/sub_080AD834.c @@ -0,0 +1,13 @@ +#include "global.h" + +extern void sub_08056010(u32); +extern u8 gUnk_03000FD0; + +void sub_080AD834(void) + +{ + if (gUnk_03000FD0 == '\0') { + sub_08056010(1); + } + return; +} \ No newline at end of file diff --git a/src/sub_08127D30.c b/src/sub_08127D30.c new file mode 100644 index 00000000..c4830e1d --- /dev/null +++ b/src/sub_08127D30.c @@ -0,0 +1,11 @@ +#include "global.h" + +extern u8 gUnk_08127D30[69]; + +u32 sub_08052654(u32 r0) +{ + //u32 r1 = gUnk_08127D30; + //u32 r1 = gUnk_08127D30; + + return gUnk_08127D30[r0 * 4] == 129; +} \ No newline at end of file diff --git a/src/textbox.c b/src/textbox.c new file mode 100644 index 00000000..d0c970d5 --- /dev/null +++ b/src/textbox.c @@ -0,0 +1,92 @@ +#include "global.h" +#include "room.h" +#include "entity.h" +#include "textbox.h" + +void TextboxNoOverlap(u32 index,Entity *ent); +void sub_0801D630(); +void ShowTextbox(); +void TextboxAtPosition(); + +extern TextBox gTextBox; +extern RoomControls gRoomControls; +extern u32 gUnk_02022780; +extern u32 gUnk_02036A40; +extern u32 gUnk_02036A38; +extern u32 gUnk_02000040; + +void sub_08056360() + +{ + if ((gTextBox.doTextBox & 127) != 0) { + gTextBox.doTextBox = 136; + } + return; +} + +void TextboxTryNoOverlap(u32 index) + +{ + if (gRoomControls.cameraTarget != NULL) { + TextboxNoOverlap(index, gRoomControls.cameraTarget); + } + else { + ShowTextbox(index); + } + return; +} + +void TextboxNoOverlap(u32 index,Entity *ent) + +{ + s16 y; + s16 h; + + ShowTextbox(index); + + y = *(&ent->y.HI + 1); + h = *(&ent->height.HI + 1); + + if (88 < ((y + h) - gRoomControls.roomScrollY)) { + gTextBox.textWindowPosY = 1; + } + return; +} + +void sub_080563C8(u32 param_1,u32 param_2) +{ + TextboxAtPosition(param_1,1,param_2); + return; +} + +void TextboxAtPosition(u32 index,u32 x,u32 y) +{ + ShowTextbox(index); + gTextBox.textWindowPosX = x; + gTextBox.textWindowPosY = y; + return; +} + +void ShowTextbox(u32 index,u32 param_2,u32 *dest) +{ + sub_0801D630(&gTextBox, 32, dest); + gTextBox.textIndex = index; + gTextBox.textSpeed = 99; + gTextBox.textWindowWidth = 26; + gTextBox.textWindowHeight = 4; + gTextBox.textWindowPosX = 1; + gTextBox.textWindowPosY = 12; + gTextBox.doTextBox = 1; + return; +} + +void sub_08056418() +{ + + sub_0801D630(&gTextBox,32); + sub_0801D630(&gUnk_02022780,168); + sub_0801D630(&gUnk_02036A40,8); + sub_0801D630(&gUnk_02036A38,8); + sub_0801D630(&gUnk_02000040,4); + return; +}