.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start umul3232H32 umul3232H32: adr r2, _080AE268 bx r2 .arm _080AE268: umull r2, r3, r0, r1 add r0, r3, 0 bx lr thumb_func_end umul3232H32 thumb_func_start SoundMain SoundMain: ldr r0, _080AE2E0 ldr r0, [r0] ldr r2, _080AE2E4 ldr r3, [r0] cmp r2, r3 beq _080AE282 bx lr _080AE282: adds r3, 0x1 str r3, [r0] push {r4-r7,lr} mov r1, r8 mov r2, r9 mov r3, r10 mov r4, r11 push {r0-r4} sub sp, 0x18 ldrb r1, [r0, 0xC] cmp r1, 0 beq _080AE2A6 ldr r2, _080AE2EC ldrb r2, [r2] cmp r2, 0xA0 bcs _080AE2A4 adds r2, 0xE4 _080AE2A4: adds r1, r2 _080AE2A6: str r1, [sp, 0x14] ldr r3, [r0, 0x20] cmp r3, 0 beq _080AE2B6 ldr r0, [r0, 0x24] bl call_r3 ldr r0, [sp, 0x18] _080AE2B6: ldr r3, [r0, 0x28] bl call_r3 ldr r0, [sp, 0x18] ldr r3, [r0, 0x10] mov r8, r3 ldr r5, _080AE2F0 adds r5, r0 ldrb r4, [r0, 0x4] subs r7, r4, 0x1 bls _080AE2D6 ldrb r1, [r0, 0xB] subs r1, r7 mov r2, r8 muls r2, r1 adds r5, r2 _080AE2D6: str r5, [sp, 0x8] ldr r6, _080AE2F4 ldr r3, _080AE2E8 bx r3 .align 2, 0 _080AE2E0: .4byte SOUND_INFO_PTR _080AE2E4: .4byte 0x68736d53 _080AE2E8: .4byte SoundMainRAM_Buffer + 1 _080AE2EC: .4byte 0x04000006 _080AE2F0: .4byte 0x00000350 _080AE2F4: .4byte 0x00000630 thumb_func_end SoundMain thumb_func_start sub_80AE2F8 sub_80AE2F8: ldrb r3, [r0, 0x5] cmp r3, 0 beq _080AE358 adr r1, _080AE304 bx r1 .arm _080AE304: cmp r4, 0x2 addeq r7, r0, 0x350 addne r7, r5, r8 mov r4, r8 _080AE314: ldrsb r0, [r5, r6] ldrsb r1, [r5] add r0, r0, r1 ldrsb r1, [r7, r6] add r0, r0, r1 ldrsb r1, [r7], 0x1 add r0, r0, r1 mul r1, r0, r3 mov r0, r1, asr 9 tst r0, 0x80 addne r0, r0, 0x1 strb r0, [r5, r6] strb r0, [r5], 0x1 subs r4, r4, 0x1 bgt _080AE314 add r0, pc, 0x2F bx r0 .thumb _080AE358: movs r0, 0 mov r1, r8 adds r6, r5 lsrs r1, 3 bcc _080AE366 stm r5!, {r0} stm r6!, {r0} _080AE366: lsrs r1, 1 bcc _080AE372 stm r5!, {r0} stm r6!, {r0} stm r5!, {r0} stm r6!, {r0} _080AE372: stm r5!, {r0} stm r6!, {r0} stm r5!, {r0} stm r6!, {r0} stm r5!, {r0} stm r6!, {r0} stm r5!, {r0} stm r6!, {r0} subs r1, 0x1 bgt _080AE372 ldr r4, [sp, 0x18] ldr r0, [r4, 0x18] mov r12, r0 ldrb r0, [r4, 0x6] adds r4, 0x50 _080AE390: str r0, [sp, 0x4] ldr r3, [r4, 0x24] ldr r0, [sp, 0x14] cmp r0, 0 beq _080AE3B0 ldr r1, _080AE3AC ldrb r1, [r1] cmp r1, 0xA0 bcs _080AE3A4 adds r1, 0xE4 _080AE3A4: cmp r1, r0 bcc _080AE3B0 b _080AE682 .align 2, 0 _080AE3AC: .4byte 0x04000006 _080AE3B0: ldrb r6, [r4] movs r0, 0xC7 tst r0, r6 bne _080AE3BA b _080AE678 _080AE3BA: movs r0, 0x80 tst r0, r6 beq _080AE3EA movs r0, 0x40 tst r0, r6 bne _080AE3FA movs r6, 0x3 strb r6, [r4] adds r0, r3, 0 adds r0, 0x10 str r0, [r4, 0x28] ldr r0, [r3, 0xC] str r0, [r4, 0x18] movs r5, 0 strb r5, [r4, 0x9] str r5, [r4, 0x1C] ldrb r2, [r3, 0x3] movs r0, 0xC0 tst r0, r2 beq _080AE442 movs r0, 0x10 orrs r6, r0 strb r6, [r4] b _080AE442 _080AE3EA: ldrb r5, [r4, 0x9] movs r0, 0x4 tst r0, r6 beq _080AE400 ldrb r0, [r4, 0xD] subs r0, 0x1 strb r0, [r4, 0xD] bhi _080AE450 _080AE3FA: movs r0, 0 strb r0, [r4] b _080AE678 _080AE400: movs r0, 0x40 tst r0, r6 beq _080AE420 ldrb r0, [r4, 0x7] muls r5, r0 lsrs r5, 8 ldrb r0, [r4, 0xC] cmp r5, r0 bhi _080AE450 _080AE412: ldrb r5, [r4, 0xC] cmp r5, 0 beq _080AE3FA movs r0, 0x4 orrs r6, r0 strb r6, [r4] b _080AE450 _080AE420: movs r2, 0x3 ands r2, r6 cmp r2, 0x2 bne _080AE43E ldrb r0, [r4, 0x5] muls r5, r0 lsrs r5, 8 ldrb r0, [r4, 0x6] cmp r5, r0 bhi _080AE450 adds r5, r0, 0 beq _080AE412 subs r6, 0x1 strb r6, [r4] b _080AE450 _080AE43E: cmp r2, 0x3 bne _080AE450 _080AE442: ldrb r0, [r4, 0x4] adds r5, r0 cmp r5, 0xFF bcc _080AE450 movs r5, 0xFF subs r6, 0x1 strb r6, [r4] _080AE450: strb r5, [r4, 0x9] ldr r0, [sp, 0x18] ldrb r0, [r0, 0x7] adds r0, 0x1 muls r0, r5 lsrs r5, r0, 4 ldrb r0, [r4, 0x2] muls r0, r5 lsrs r0, 8 strb r0, [r4, 0xA] ldrb r0, [r4, 0x3] muls r0, r5 lsrs r0, 8 strb r0, [r4, 0xB] movs r0, 0x10 ands r0, r6 str r0, [sp, 0x10] beq _080AE484 adds r0, r3, 0 adds r0, 0x10 ldr r1, [r3, 0x8] adds r0, r1 str r0, [sp, 0xC] ldr r0, [r3, 0xC] subs r0, r1 str r0, [sp, 0x10] _080AE484: ldr r5, [sp, 0x8] ldr r2, [r4, 0x18] ldr r3, [r4, 0x28] adr r0, _080AE490 bx r0 .arm _080AE490: str r8, [sp] ldrb r10, [r4, 0xA] ldrb r11, [r4, 0xB] mov r10, r10, lsl 16 mov r11, r11, lsl 16 ldrb r0, [r4, 0x1] tst r0, 0x8 beq _080AE5D0 _080AE4B0: cmp r2, 0x4 ble _080AE520 subs r2, r2, r8 movgt lr, 0 bgt _080AE4DC mov lr, r8 add r2, r2, r8 sub r8, r2, 0x4 sub lr, lr, r8 ands r2, r2, 0x3 moveq r2, 0x4 _080AE4DC: ldr r6, [r5] ldr r7, [r5, 0x630] _080AE4E4: ldrsb r0, [r3], 0x1 mul r1, r10, r0 bic r1, r1, 0xFF0000 add r6, r1, r6, ror 8 mul r1, r11, r0 bic r1, r1, 0xFF0000 add r7, r1, r7, ror 8 adds r5, r5, 0x40000000 bcc _080AE4E4 str r7, [r5, 0x630] str r6, [r5], 0x4 subs r8, r8, 0x4 bgt _080AE4DC adds r8, r8, lr beq _080AE664 _080AE520: ldr r6, [r5] ldr r7, [r5, 0x630] _080AE528: ldrsb r0, [r3], 0x1 mul r1, r10, r0 bic r1, r1, 0xFF0000 add r6, r1, r6, ror 8 mul r1, r11, r0 bic r1, r1, 0xFF0000 add r7, r1, r7, ror 8 subs r2, r2, 0x1 beq _080AE598 _080AE54C: adds r5, r5, 0x40000000 bcc _080AE528 str r7, [r5, 0x630] str r6, [r5], 0x4 subs r8, r8, 0x4 bgt _080AE4B0 b _080AE664 _080AE568: ldr r0, [sp, 0x18] cmp r0, 0 beq _080AE58C ldr r3, [sp, 0x14] rsb r9, r2, 0 _080AE57C: adds r2, r0, r2 bgt _080AE634 sub r9, r9, r0 b _080AE57C _080AE58C: ldmia sp!, {r4,r12} mov r2, 0 b _080AE5A8 _080AE598: ldr r2, [sp, 0x10] cmp r2, 0 ldrne r3, [sp, 0xC] bne _080AE54C _080AE5A8: strb r2, [r4] mov r0, r5, lsr 30 bic r5, r5, 0xC0000000 rsb r0, r0, 0x3 mov r0, r0, lsl 3 mov r6, r6, ror r0 mov r7, r7, ror r0 str r7, [r5, 0x630] str r6, [r5], 0x4 b _080AE66C _080AE5D0: stmdb sp!, {r4,r12} ldr lr, [r4, 0x1C] ldr r1, [r4, 0x20] mul r4, r12, r1 ldrsb r0, [r3] ldrsb r1, [r3, 0x1]! sub r1, r1, r0 _080AE5EC: ldr r6, [r5] ldr r7, [r5, 0x630] _080AE5F4: mul r9, lr, r1 add r9, r0, r9, asr 23 mul r12, r10, r9 bic r12, r12, 0xFF0000 add r6, r12, r6, ror 8 mul r12, r11, r9 bic r12, r12, 0xFF0000 add r7, r12, r7, ror 8 add lr, lr, r4 movs r9, lr, lsr 23 beq _080AE640 bic lr, lr, 0x3F800000 subs r2, r2, r9 ble _080AE568 subs r9, r9, 0x1 addeq r0, r0, r1 _080AE634: ldrsbne r0, [r3, r9]! ldrsb r1, [r3, 0x1]! sub r1, r1, r0 _080AE640: adds r5, r5, 0x40000000 bcc _080AE5F4 str r7, [r5, 0x630] str r6, [r5], 0x4 subs r8, r8, 0x4 bgt _080AE5EC sub r3, r3, 0x1 ldmia sp!, {r4,r12} str lr, [r4, 0x1C] _080AE664: str r2, [r4, 0x18] str r3, [r4, 0x28] _080AE66C: ldr r8, [sp] add r0, pc, 0x1 bx r0 .thumb _080AE678: ldr r0, [sp, 0x4] subs r0, 0x1 ble _080AE682 adds r4, 0x40 b _080AE390 _080AE682: ldr r0, [sp, 0x18] ldr r3, _080AE698 str r3, [r0] add sp, 0x1C pop {r0-r7} mov r8, r0 mov r9, r1 mov r10, r2 mov r11, r3 pop {r3} call_r3: bx r3 .align 2, 0 _080AE698: .4byte 0x68736D53 thumb_func_end sub_80AE2F8 thumb_func_start sub_80AE69C sub_80AE69C: mov r12, r4 movs r1, 0 movs r2, 0 movs r3, 0 movs r4, 0 stm r0!, {r1-r4} stm r0!, {r1-r4} stm r0!, {r1-r4} stm r0!, {r1-r4} mov r4, r12 bx lr thumb_func_end sub_80AE69C thumb_func_start sub_80AE6B4 sub_80AE6B4: ldr r3, [r0, 0x2C] cmp r3, 0 beq _080AE6D2 ldr r1, [r0, 0x34] ldr r2, [r0, 0x30] cmp r2, 0 beq _080AE6C6 str r1, [r2, 0x34] b _080AE6C8 _080AE6C6: str r1, [r3, 0x20] _080AE6C8: cmp r1, 0 beq _080AE6CE str r2, [r1, 0x30] _080AE6CE: movs r1, 0 str r1, [r0, 0x2C] _080AE6D2: bx lr thumb_func_end sub_80AE6B4 thumb_func_start sub_80AE6D4 sub_80AE6D4: push {r4,r5,lr} adds r5, r1, 0 ldr r4, [r5, 0x20] cmp r4, 0 beq _080AE6F8 _080AE6DE: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _080AE6EC movs r0, 0x40 orrs r1, r0 strb r1, [r4] _080AE6EC: adds r0, r4, 0 bl sub_80AE6B4 ldr r4, [r4, 0x34] cmp r4, 0 bne _080AE6DE _080AE6F8: movs r0, 0 strb r0, [r5] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80AE6D4 thumb_func_start sub_80AE704 sub_80AE704: mov r12, lr movs r1, 0x24 ldr r2, _080AE734 _080AE70A: ldr r3, [r2] bl _080AE71E stm r0!, {r3} adds r2, 0x4 subs r1, 0x1 bgt _080AE70A bx r12 thumb_func_end sub_80AE704 .align 2, 0 .thumb_func _080AE71C: ldrb r3, [r2] .thumb_func _080AE71E: push {r0} lsrs r0, r2, 25 bne _080AE730 ldr r0, _080AE734 cmp r2, r0 bcc _080AE72E lsrs r0, r2, 14 beq _080AE730 _080AE72E: movs r3, 0 _080AE730: pop {r0} bx lr .align 2, 0 _080AE734: .4byte gUnknown_826F98C thumb_func_start sub_80AE738 sub_80AE738: ldr r2, [r1, 0x40] _080AE73A: adds r3, r2, 0x1 str r3, [r1, 0x40] ldrb r3, [r2] b _080AE71E thumb_func_end sub_80AE738 thumb_func_start sub_80AE744 sub_80AE744: push {lr} _080AE746: ldr r2, [r1, 0x40] ldrb r0, [r2, 0x3] lsls r0, 8 ldrb r3, [r2, 0x2] orrs r0, r3 lsls r0, 8 ldrb r3, [r2, 0x1] orrs r0, r3 lsls r0, 8 bl _080AE71C orrs r0, r3 str r0, [r1, 0x40] pop {r0} bx r0 thumb_func_end sub_80AE744 thumb_func_start sub_80AE764 sub_80AE764: ldrb r2, [r1, 0x2] cmp r2, 0x3 bcs _080AE77C lsls r2, 2 adds r3, r1, r2 ldr r2, [r1, 0x40] adds r2, 0x4 str r2, [r3, 0x44] ldrb r2, [r1, 0x2] adds r2, 0x1 strb r2, [r1, 0x2] b sub_80AE744 _080AE77C: b sub_80AE6D4 thumb_func_end sub_80AE764 thumb_func_start sub_80AE780 sub_80AE780: ldrb r2, [r1, 0x2] cmp r2, 0 beq _080AE792 subs r2, 0x1 strb r2, [r1, 0x2] lsls r2, 2 adds r3, r1, r2 ldr r2, [r3, 0x44] str r2, [r1, 0x40] _080AE792: bx lr thumb_func_end sub_80AE780 thumb_func_start sub_80AE794 sub_80AE794: push {lr} ldr r2, [r1, 0x40] ldrb r3, [r2] cmp r3, 0 bne _080AE7A4 adds r2, 0x1 str r2, [r1, 0x40] b _080AE746 _080AE7A4: ldrb r3, [r1, 0x3] adds r3, 0x1 strb r3, [r1, 0x3] mov r12, r3 bl sub_80AE738 cmp r12, r3 bcs _080AE7B6 b _080AE746 _080AE7B6: movs r3, 0 strb r3, [r1, 0x3] adds r2, 0x5 str r2, [r1, 0x40] pop {r0} bx r0 thumb_func_end sub_80AE794 thumb_func_start sub_80AE7C4 sub_80AE7C4: mov r12, lr bl sub_80AE738 strb r3, [r1, 0x1D] bx r12 thumb_func_end sub_80AE7C4 thumb_func_start sub_80AE7D0 sub_80AE7D0: mov r12, lr bl sub_80AE738 lsls r3, 1 strh r3, [r0, 0x1C] ldrh r2, [r0, 0x1E] muls r3, r2 lsrs r3, 8 strh r3, [r0, 0x20] bx r12 thumb_func_end sub_80AE7D0 thumb_func_start sub_80AE7E4 sub_80AE7E4: mov r12, lr bl sub_80AE738 strb r3, [r1, 0xA] ldrb r3, [r1] movs r2, 0xC orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end sub_80AE7E4 thumb_func_start sub_80AE7F8 sub_80AE7F8: mov r12, lr ldr r2, [r1, 0x40] ldrb r3, [r2] adds r2, 0x1 str r2, [r1, 0x40] lsls r2, r3, 1 adds r2, r3 lsls r2, 2 ldr r3, [r0, 0x30] adds r2, r3 ldr r3, [r2] bl _080AE71E str r3, [r1, 0x24] ldr r3, [r2, 0x4] bl _080AE71E str r3, [r1, 0x28] ldr r3, [r2, 0x8] bl _080AE71E str r3, [r1, 0x2C] bx r12 thumb_func_end sub_80AE7F8 thumb_func_start sub_80AE828 sub_80AE828: mov r12, lr bl sub_80AE738 strb r3, [r1, 0x12] ldrb r3, [r1] movs r2, 0x3 orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end sub_80AE828 thumb_func_start sub_80AE83C sub_80AE83C: mov r12, lr bl sub_80AE738 subs r3, 0x40 strb r3, [r1, 0x14] ldrb r3, [r1] movs r2, 0x3 orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end sub_80AE83C thumb_func_start sub_80AE850 sub_80AE850: mov r12, lr bl sub_80AE738 subs r3, 0x40 strb r3, [r1, 0xE] ldrb r3, [r1] movs r2, 0xC orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end sub_80AE850 thumb_func_start sub_80AE864 sub_80AE864: mov r12, lr bl sub_80AE738 strb r3, [r1, 0xF] ldrb r3, [r1] movs r2, 0xC orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end sub_80AE864 thumb_func_start sub_80AE878 sub_80AE878: mov r12, lr bl sub_80AE738 strb r3, [r1, 0x1B] bx r12 thumb_func_end sub_80AE878 thumb_func_start sub_80AE884 sub_80AE884: mov r12, lr bl sub_80AE738 ldrb r0, [r1, 0x18] cmp r0, r3 beq _080AE89A strb r3, [r1, 0x18] ldrb r3, [r1] movs r2, 0xF orrs r3, r2 strb r3, [r1] _080AE89A: bx r12 thumb_func_end sub_80AE884 thumb_func_start sub_80AE89C sub_80AE89C: mov r12, lr bl sub_80AE738 subs r3, 0x40 strb r3, [r1, 0xC] ldrb r3, [r1] movs r2, 0xC orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end sub_80AE89C thumb_func_start sub_80AE8B0 sub_80AE8B0: mov r12, lr ldr r2, [r1, 0x40] ldrb r3, [r2] adds r2, 0x1 ldr r0, _080AE8C4 adds r0, r3 bl _080AE73A strb r3, [r0] bx r12 .align 2, 0 _080AE8C4: .4byte 0x04000060 thumb_func_end sub_80AE8B0 thumb_func_start m4aSoundVSync m4aSoundVSync: ldr r0, _080AEB74 ldr r0, [r0] ldr r2, _080AEB78 ldr r3, [r0] subs r3, r2 cmp r3, 0x1 bhi _080AE908 ldrb r1, [r0, 0x4] subs r1, 0x1 strb r1, [r0, 0x4] bgt _080AE908 ldrb r1, [r0, 0xB] strb r1, [r0, 0x4] ldr r2, _080AE90C ldr r1, [r2, 0x8] lsls r1, 7 bcc _080AE8EE ldr r1, _080AE910 str r1, [r2, 0x8] _080AE8EE: ldr r1, [r2, 0x14] lsls r1, 7 bcc _080AE8F8 ldr r1, _080AE910 str r1, [r2, 0x14] _080AE8F8: movs r1, 0x4 lsls r1, 8 strh r1, [r2, 0xA] strh r1, [r2, 0x16] movs r1, 0xB6 lsls r1, 8 strh r1, [r2, 0xA] strh r1, [r2, 0x16] _080AE908: bx lr .align 2, 0 _080AE90C: .4byte 0x040000bc _080AE910: .4byte 0x84400004 thumb_func_end m4aSoundVSync thumb_func_start sub_80AE914 sub_80AE914: ldr r2, _080AEB78 ldr r3, [r0, 0x34] cmp r2, r3 beq _080AE91E bx lr _080AE91E: adds r3, 0x1 str r3, [r0, 0x34] push {r0,lr} ldr r3, [r0, 0x38] cmp r3, 0 beq _080AE930 ldr r0, [r0, 0x3C] bl _080AEB6C _080AE930: pop {r0} push {r4-r7} mov r4, r8 mov r5, r9 mov r6, r10 mov r7, r11 push {r4-r7} adds r7, r0, 0 ldr r0, [r7, 0x4] cmp r0, 0 bge _080AE948 b _080AEB5C _080AE948: ldr r0, _080AEB74 ldr r0, [r0] mov r8, r0 adds r0, r7, 0 bl sub_80AF800 ldr r0, [r7, 0x4] cmp r0, 0 bge _080AE95C b _080AEB5C _080AE95C: ldrh r0, [r7, 0x22] ldrh r1, [r7, 0x20] adds r0, r1 b _080AEAAC _080AE964: ldrb r6, [r7, 0x8] ldr r5, [r7, 0x2C] movs r3, 0x1 movs r4, 0 _080AE96C: ldrb r0, [r5] movs r1, 0x80 tst r1, r0 bne _080AE976 b _080AEA88 _080AE976: mov r10, r3 orrs r4, r3 mov r11, r4 ldr r4, [r5, 0x20] cmp r4, 0 beq _080AE9AA _080AE982: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _080AE99E ldrb r0, [r4, 0x10] cmp r0, 0 beq _080AE9A4 subs r0, 0x1 strb r0, [r4, 0x10] bne _080AE9A4 movs r0, 0x40 orrs r1, r0 strb r1, [r4] b _080AE9A4 _080AE99E: adds r0, r4, 0 bl sub_80AF2FC _080AE9A4: ldr r4, [r4, 0x34] cmp r4, 0 bne _080AE982 _080AE9AA: ldrb r3, [r5] movs r0, 0x40 tst r0, r3 beq _080AEA28 adds r0, r5, 0 bl sub_80AF310 movs r0, 0x80 strb r0, [r5] movs r0, 0x2 strb r0, [r5, 0xF] movs r0, 0x40 strb r0, [r5, 0x13] movs r0, 0x16 strb r0, [r5, 0x19] movs r0, 0x1 adds r1, r5, 0x6 strb r0, [r1, 0x1E] b _080AEA28 _080AE9D0: ldr r2, [r5, 0x40] ldrb r1, [r2] cmp r1, 0x80 bcs _080AE9DC ldrb r1, [r5, 0x7] b _080AE9E6 _080AE9DC: adds r2, 0x1 str r2, [r5, 0x40] cmp r1, 0xBD bcc _080AE9E6 strb r1, [r5, 0x7] _080AE9E6: cmp r1, 0xCF bcc _080AE9FC mov r0, r8 ldr r3, [r0, 0x38] adds r0, r1, 0 subs r0, 0xCF adds r1, r7, 0 adds r2, r5, 0 bl _080AEB6C b _080AEA28 _080AE9FC: cmp r1, 0xB0 bls _080AEA1E adds r0, r1, 0 subs r0, 0xB1 strb r0, [r7, 0xA] mov r3, r8 ldr r3, [r3, 0x34] lsls r0, 2 ldr r3, [r3, r0] adds r0, r7, 0 adds r1, r5, 0 bl _080AEB6C ldrb r0, [r5] cmp r0, 0 beq _080AEA84 b _080AEA28 _080AEA1E: ldr r0, _080AEB70 subs r1, 0x80 adds r1, r0 ldrb r0, [r1] strb r0, [r5, 0x1] _080AEA28: ldrb r0, [r5, 0x1] cmp r0, 0 beq _080AE9D0 subs r0, 0x1 strb r0, [r5, 0x1] ldrb r1, [r5, 0x19] cmp r1, 0 beq _080AEA84 ldrb r0, [r5, 0x17] cmp r0, 0 beq _080AEA84 ldrb r0, [r5, 0x1C] cmp r0, 0 beq _080AEA4A subs r0, 0x1 strb r0, [r5, 0x1C] b _080AEA84 _080AEA4A: ldrb r0, [r5, 0x1A] adds r0, r1 strb r0, [r5, 0x1A] adds r1, r0, 0 subs r0, 0x40 lsls r0, 24 bpl _080AEA5E lsls r2, r1, 24 asrs r2, 24 b _080AEA62 _080AEA5E: movs r0, 0x80 subs r2, r0, r1 _080AEA62: ldrb r0, [r5, 0x17] muls r0, r2 asrs r2, r0, 6 ldrb r0, [r5, 0x16] eors r0, r2 lsls r0, 24 beq _080AEA84 strb r2, [r5, 0x16] ldrb r0, [r5] ldrb r1, [r5, 0x18] cmp r1, 0 bne _080AEA7E movs r1, 0xC b _080AEA80 _080AEA7E: movs r1, 0x3 _080AEA80: orrs r0, r1 strb r0, [r5] _080AEA84: mov r3, r10 mov r4, r11 _080AEA88: subs r6, 0x1 ble _080AEA94 movs r0, 0x50 adds r5, r0 lsls r3, 1 b _080AE96C _080AEA94: ldr r0, [r7, 0xC] adds r0, 0x1 str r0, [r7, 0xC] cmp r4, 0 bne _080AEAA6 movs r0, 0x80 lsls r0, 24 str r0, [r7, 0x4] b _080AEB5C _080AEAA6: str r4, [r7, 0x4] ldrh r0, [r7, 0x22] subs r0, 0x96 _080AEAAC: strh r0, [r7, 0x22] cmp r0, 0x96 bcc _080AEAB4 b _080AE964 _080AEAB4: ldrb r2, [r7, 0x8] ldr r5, [r7, 0x2C] _080AEAB8: ldrb r0, [r5] movs r1, 0x80 tst r1, r0 beq _080AEB52 movs r1, 0xF tst r1, r0 beq _080AEB52 mov r9, r2 adds r0, r7, 0 adds r1, r5, 0 bl sub_80AF8C8 ldr r4, [r5, 0x20] cmp r4, 0 beq _080AEB48 _080AEAD6: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 bne _080AEAE6 adds r0, r4, 0 bl sub_80AF2FC b _080AEB42 _080AEAE6: ldrb r0, [r4, 0x1] movs r6, 0x7 ands r6, r0 ldrb r3, [r5] movs r0, 0x3 tst r0, r3 beq _080AEB04 bl sub_80AEBC0 cmp r6, 0 beq _080AEB04 ldrb r0, [r4, 0x1D] movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1D] _080AEB04: ldrb r3, [r5] movs r0, 0xC tst r0, r3 beq _080AEB42 ldrb r1, [r4, 0x8] movs r0, 0x8 ldrsb r0, [r5, r0] adds r2, r1, r0 bpl _080AEB18 movs r2, 0 _080AEB18: cmp r6, 0 beq _080AEB36 mov r0, r8 ldr r3, [r0, 0x30] adds r1, r2, 0 ldrb r2, [r5, 0x9] adds r0, r6, 0 bl _080AEB6C str r0, [r4, 0x20] ldrb r0, [r4, 0x1D] movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x1D] b _080AEB42 _080AEB36: adds r1, r2, 0 ldrb r2, [r5, 0x9] ldr r0, [r4, 0x24] bl sub_80AEE80 str r0, [r4, 0x20] _080AEB42: ldr r4, [r4, 0x34] cmp r4, 0 bne _080AEAD6 _080AEB48: ldrb r0, [r5] movs r1, 0xF0 ands r0, r1 strb r0, [r5] mov r2, r9 _080AEB52: subs r2, 0x1 ble _080AEB5C movs r0, 0x50 adds r5, r0 bgt _080AEAB8 _080AEB5C: ldr r0, _080AEB78 str r0, [r7, 0x34] pop {r0-r7} mov r8, r0 mov r9, r1 mov r10, r2 mov r11, r3 pop {r3} _080AEB6C: bx r3 .align 2, 0 _080AEB70: .4byte gUnknown_826FC00 _080AEB74: .4byte SOUND_INFO_PTR _080AEB78: .4byte 0x68736d53 thumb_func_end sub_80AE914 thumb_func_start sub_80AEB7C sub_80AEB7C: push {r4-r6,lr} adds r5, r1, 0 ldrb r1, [r5] movs r0, 0x80 tst r0, r1 beq _080AEBB4 ldr r4, [r5, 0x20] cmp r4, 0 beq _080AEBB2 movs r6, 0 _080AEB90: ldrb r0, [r4] cmp r0, 0 beq _080AEBAA ldrb r0, [r4, 0x1] movs r3, 0x7 ands r0, r3 beq _080AEBA8 ldr r3, _080AEBBC ldr r3, [r3] ldr r3, [r3, 0x2C] bl _080AEB6C _080AEBA8: strb r6, [r4] _080AEBAA: str r6, [r4, 0x2C] ldr r4, [r4, 0x34] cmp r4, 0 bne _080AEB90 _080AEBB2: str r4, [r5, 0x20] _080AEBB4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AEBBC: .4byte SOUND_INFO_PTR thumb_func_end sub_80AEB7C thumb_func_start sub_80AEBC0 sub_80AEBC0: ldrb r1, [r4, 0x12] movs r0, 0x14 ldrsb r2, [r4, r0] movs r3, 0x80 adds r3, r2 muls r3, r1 ldrb r0, [r5, 0x10] muls r0, r3 asrs r0, 14 cmp r0, 0xFF bls _080AEBD8 movs r0, 0xFF _080AEBD8: strb r0, [r4, 0x2] movs r3, 0x7F subs r3, r2 muls r3, r1 ldrb r0, [r5, 0x11] muls r0, r3 asrs r0, 14 cmp r0, 0xFF bls _080AEBEC movs r0, 0xFF _080AEBEC: strb r0, [r4, 0x3] bx lr thumb_func_end sub_80AEBC0 thumb_func_start sub_80AEBF0 sub_80AEBF0: push {r4-r7,lr} mov r4, r8 mov r5, r9 mov r6, r10 mov r7, r11 push {r4-r7} sub sp, 0x18 str r1, [sp] adds r5, r2, 0 ldr r1, _080AEDE8 ldr r1, [r1] str r1, [sp, 0x4] ldr r1, _080AEDEC adds r0, r1 ldrb r0, [r0] strb r0, [r5, 0x4] ldr r3, [r5, 0x40] ldrb r0, [r3] cmp r0, 0x80 bcs _080AEC36 strb r0, [r5, 0x5] adds r3, 0x1 ldrb r0, [r3] cmp r0, 0x80 bcs _080AEC34 strb r0, [r5, 0x6] adds r3, 0x1 ldrb r0, [r3] cmp r0, 0x80 bcs _080AEC34 ldrb r1, [r5, 0x4] adds r1, r0 strb r1, [r5, 0x4] adds r3, 0x1 _080AEC34: str r3, [r5, 0x40] _080AEC36: movs r0, 0 str r0, [sp, 0x14] adds r4, r5, 0 adds r4, 0x24 ldrb r2, [r4] movs r0, 0xC0 tst r0, r2 beq _080AEC88 ldrb r3, [r5, 0x5] movs r0, 0x40 tst r0, r2 beq _080AEC56 ldr r1, [r5, 0x2C] adds r1, r3 ldrb r0, [r1] b _080AEC58 _080AEC56: adds r0, r3, 0 _080AEC58: lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, [r5, 0x28] adds r1, r0 mov r9, r1 mov r6, r9 ldrb r1, [r6] movs r0, 0xC0 tst r0, r1 beq _080AEC70 b _080AEDD6 _080AEC70: movs r0, 0x80 tst r0, r2 beq _080AEC8C ldrb r1, [r6, 0x3] movs r0, 0x80 tst r0, r1 beq _080AEC84 subs r1, 0xC0 lsls r1, 1 str r1, [sp, 0x14] _080AEC84: ldrb r3, [r6, 0x1] b _080AEC8C _080AEC88: mov r9, r4 ldrb r3, [r5, 0x5] _080AEC8C: str r3, [sp, 0x8] ldr r6, [sp] ldrb r1, [r6, 0x9] ldrb r0, [r5, 0x1D] adds r0, r1 cmp r0, 0xFF bls _080AEC9C movs r0, 0xFF _080AEC9C: str r0, [sp, 0x10] mov r6, r9 ldrb r0, [r6] movs r6, 0x7 ands r6, r0 str r6, [sp, 0xC] beq _080AECDC ldr r0, [sp, 0x4] ldr r4, [r0, 0x1C] cmp r4, 0 bne _080AECB4 b _080AEDD6 _080AECB4: subs r6, 0x1 lsls r0, r6, 6 adds r4, r0 ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _080AED30 movs r0, 0x40 tst r0, r1 bne _080AED30 ldrb r1, [r4, 0x13] ldr r0, [sp, 0x10] cmp r1, r0 bcc _080AED30 beq _080AECD4 b _080AEDD6 _080AECD4: ldr r0, [r4, 0x2C] cmp r0, r5 bcs _080AED30 b _080AEDD6 _080AECDC: ldr r6, [sp, 0x10] adds r7, r5, 0 movs r2, 0 mov r8, r2 ldr r4, [sp, 0x4] ldrb r3, [r4, 0x6] adds r4, 0x50 _080AECEA: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _080AED30 movs r0, 0x40 tst r0, r1 beq _080AED04 cmp r2, 0 bne _080AED08 adds r2, 0x1 ldrb r6, [r4, 0x13] ldr r7, [r4, 0x2C] b _080AED22 _080AED04: cmp r2, 0 bne _080AED24 _080AED08: ldrb r0, [r4, 0x13] cmp r0, r6 bcs _080AED14 adds r6, r0, 0 ldr r7, [r4, 0x2C] b _080AED22 _080AED14: bhi _080AED24 ldr r0, [r4, 0x2C] cmp r0, r7 bls _080AED20 adds r7, r0, 0 b _080AED22 _080AED20: bcc _080AED24 _080AED22: mov r8, r4 _080AED24: adds r4, 0x40 subs r3, 0x1 bgt _080AECEA mov r4, r8 cmp r4, 0 beq _080AEDD6 _080AED30: adds r0, r4, 0 bl sub_80AF2FC movs r1, 0 str r1, [r4, 0x30] ldr r3, [r5, 0x20] str r3, [r4, 0x34] cmp r3, 0 beq _080AED44 str r4, [r3, 0x30] _080AED44: str r4, [r5, 0x20] str r5, [r4, 0x2C] ldrb r0, [r5, 0x1B] strb r0, [r5, 0x1C] cmp r0, r1 beq _080AED56 adds r1, r5, 0 bl sub_80AEE30 _080AED56: ldr r0, [sp] adds r1, r5, 0 bl sub_80AF8C8 ldr r0, [r5, 0x4] str r0, [r4, 0x10] ldr r0, [sp, 0x10] strb r0, [r4, 0x13] ldr r0, [sp, 0x8] strb r0, [r4, 0x8] ldr r0, [sp, 0x14] strb r0, [r4, 0x14] mov r6, r9 ldrb r0, [r6] strb r0, [r4, 0x1] ldr r7, [r6, 0x4] str r7, [r4, 0x24] ldr r0, [r6, 0x8] str r0, [r4, 0x4] ldrh r0, [r5, 0x1E] strh r0, [r4, 0xC] bl sub_80AEBC0 ldrb r1, [r4, 0x8] movs r0, 0x8 ldrsb r0, [r5, r0] adds r3, r1, r0 bpl _080AED90 movs r3, 0 _080AED90: ldr r6, [sp, 0xC] cmp r6, 0 beq _080AEDBE mov r6, r9 ldrb r0, [r6, 0x2] strb r0, [r4, 0x1E] ldrb r1, [r6, 0x3] movs r0, 0x80 tst r0, r1 bne _080AEDAA movs r0, 0x70 tst r0, r1 bne _080AEDAC _080AEDAA: movs r1, 0x8 _080AEDAC: strb r1, [r4, 0x1F] ldrb r2, [r5, 0x9] adds r1, r3, 0 ldr r0, [sp, 0xC] ldr r3, [sp, 0x4] ldr r3, [r3, 0x30] bl _080AEB6C b _080AEDC8 _080AEDBE: ldrb r2, [r5, 0x9] adds r1, r3, 0 adds r0, r7, 0 bl sub_80AEE80 _080AEDC8: str r0, [r4, 0x20] movs r0, 0x80 strb r0, [r4] ldrb r1, [r5] movs r0, 0xF0 ands r0, r1 strb r0, [r5] _080AEDD6: add sp, 0x18 pop {r0-r7} mov r8, r0 mov r9, r1 mov r10, r2 mov r11, r3 pop {r0} bx r0 .align 2, 0 _080AEDE8: .4byte SOUND_INFO_PTR _080AEDEC: .4byte gUnknown_826FC00 thumb_func_end sub_80AEBF0 thumb_func_start sub_80AEDF0 sub_80AEDF0: push {r4,r5} ldr r2, [r1, 0x40] ldrb r3, [r2] cmp r3, 0x80 bcs _080AEE02 strb r3, [r1, 0x5] adds r2, 0x1 str r2, [r1, 0x40] b _080AEE04 _080AEE02: ldrb r3, [r1, 0x5] _080AEE04: ldr r1, [r1, 0x20] cmp r1, 0 beq _080AEE2C movs r4, 0x83 movs r5, 0x40 _080AEE0E: ldrb r2, [r1] tst r2, r4 beq _080AEE26 tst r2, r5 bne _080AEE26 ldrb r0, [r1, 0x11] cmp r0, r3 bne _080AEE26 movs r0, 0x40 orrs r2, r0 strb r2, [r1] b _080AEE2C _080AEE26: ldr r1, [r1, 0x34] cmp r1, 0 bne _080AEE0E _080AEE2C: pop {r4,r5} bx lr thumb_func_end sub_80AEDF0 thumb_func_start sub_80AEE30 sub_80AEE30: movs r2, 0 strb r2, [r1, 0x16] strb r2, [r1, 0x1A] ldrb r2, [r1, 0x18] cmp r2, 0 bne _080AEE40 movs r2, 0xC b _080AEE42 _080AEE40: movs r2, 0x3 _080AEE42: ldrb r3, [r1] orrs r3, r2 strb r3, [r1] bx lr thumb_func_end sub_80AEE30 thumb_func_start sub_80AEE4C sub_80AEE4C: ldr r2, [r1, 0x40] adds r3, r2, 0x1 str r3, [r1, 0x40] ldrb r3, [r2] bx lr thumb_func_end sub_80AEE4C thumb_func_start sub_80AEE58 sub_80AEE58: mov r12, lr bl sub_80AEE4C strb r3, [r1, 0x19] cmp r3, 0 bne _080AEE68 bl sub_80AEE30 _080AEE68: bx r12 thumb_func_end sub_80AEE58 thumb_func_start sub_80AEE6C sub_80AEE6C: mov r12, lr bl sub_80AEE4C strb r3, [r1, 0x17] cmp r3, 0 bne _080AEE7C bl sub_80AEE30 _080AEE7C: bx r12 thumb_func_end sub_80AEE6C thumb_func_start sub_80AEE80 sub_80AEE80: push {r4-r7,lr} mov r12, r0 lsls r1, 24 lsrs r6, r1, 24 lsls r7, r2, 24 cmp r6, 0xB2 bls _080AEE94 movs r6, 0xB2 movs r7, 0xFF lsls r7, 24 _080AEE94: ldr r3, _080AEEDC adds r0, r6, r3 ldrb r5, [r0] ldr r4, _080AEEE0 movs r2, 0xF adds r0, r5, 0 ands r0, r2 lsls r0, 2 adds r0, r4 lsrs r1, r5, 4 ldr r5, [r0] lsrs r5, r1 adds r0, r6, 0x1 adds r0, r3 ldrb r1, [r0] adds r0, r1, 0 ands r0, r2 lsls r0, 2 adds r0, r4 lsrs r1, 4 ldr r0, [r0] lsrs r0, r1 mov r1, r12 ldr r4, [r1, 0x4] subs r0, r5 adds r1, r7, 0 bl umul3232H32 adds r1, r0, 0 adds r1, r5, r1 adds r0, r4, 0 bl umul3232H32 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AEEDC: .4byte gUnknown_826FA1C _080AEEE0: .4byte gUnknown_826FAD0 thumb_func_end sub_80AEE80 thumb_func_start nullsub_212 nullsub_212: bx lr thumb_func_end nullsub_212 thumb_func_start sub_80AEEE8 sub_80AEEE8: adds r2, r0, 0 ldr r3, [r2, 0x34] ldr r0, _080AEEFC cmp r3, r0 bne _080AEEFA ldr r0, [r2, 0x4] ldr r1, _080AEF00 ands r0, r1 str r0, [r2, 0x4] _080AEEFA: bx lr .align 2, 0 _080AEEFC: .4byte 0x68736d53 _080AEF00: .4byte 0x7fffffff thumb_func_end sub_80AEEE8 thumb_func_start sub_80AEF04 sub_80AEF04: adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _080AEF20 cmp r3, r0 bne _080AEF1C strh r1, [r2, 0x26] strh r1, [r2, 0x24] movs r0, 0x80 lsls r0, 1 strh r0, [r2, 0x28] _080AEF1C: bx lr .align 2, 0 _080AEF20: .4byte 0x68736d53 thumb_func_end sub_80AEF04 thumb_func_start sub_80AEF24 sub_80AEF24: push {r4-r6,lr} ldr r0, _080AEF78 movs r1, 0x2 negs r1, r1 ands r0, r1 ldr r1, _080AEF7C ldr r2, _080AEF80 bl CpuSet ldr r0, _080AEF84 bl sub_80AF324 ldr r0, _080AEF88 bl sub_80AF1E0 ldr r0, _080AEF8C bl sub_80AF4C0 ldr r0, _080AEF90 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _080AEF72 ldr r5, _080AEF94 adds r6, r0, 0 _080AEF56: ldr r4, [r5] ldr r1, [r5, 0x4] ldrb r2, [r5, 0x8] adds r0, r4, 0 bl sub_80AF664 ldrh r0, [r5, 0xA] strb r0, [r4, 0xB] ldr r0, _080AEF98 str r0, [r4, 0x18] adds r5, 0xC subs r6, 0x1 cmp r6, 0 bne _080AEF56 _080AEF72: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AEF78: .4byte sub_80AE2F8 _080AEF7C: .4byte SoundMainRAM_Buffer _080AEF80: .4byte 0x04000100 _080AEF84: .4byte gUnknown_2039ED0 _080AEF88: .4byte gUnknown_203AF10 _080AEF8C: .4byte 0x0096e500 _080AEF90: .4byte 0x00000008 _080AEF94: .4byte 0x09e8665c _080AEF98: .4byte gUnknown_2000A30 thumb_func_end sub_80AEF24 thumb_func_start m4aSoundMain m4aSoundMain: push {lr} bl SoundMain pop {r0} bx r0 thumb_func_end m4aSoundMain thumb_func_start sub_80AEFA8 sub_80AEFA8: push {lr} lsls r0, 16 ldr r2, _080AEFCC ldr r1, _080AEFD0 lsrs r0, 13 adds r0, r1 ldrh r3, [r0, 0x4] lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r2 ldr r2, [r1] ldr r1, [r0] adds r0, r2, 0 bl sub_80AF6DC pop {r0} bx r0 .align 2, 0 _080AEFCC: .4byte 0x09e8665c _080AEFD0: .4byte 0x09e866bc thumb_func_end sub_80AEFA8 thumb_func_start sub_80AEFD4 sub_80AEFD4: push {lr} lsls r0, 16 ldr r2, _080AF000 ldr r1, _080AF004 lsrs r0, 13 adds r0, r1 ldrh r3, [r0, 0x4] lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r2 ldr r1, [r1] ldr r3, [r1] ldr r2, [r0] cmp r3, r2 beq _080AF008 adds r0, r1, 0 adds r1, r2, 0 bl sub_80AF6DC b _080AF01C .align 2, 0 _080AF000: .4byte 0x09e8665c _080AF004: .4byte 0x09e866bc _080AF008: ldr r2, [r1, 0x4] ldrh r0, [r1, 0x4] cmp r0, 0 beq _080AF014 cmp r2, 0 bge _080AF01C _080AF014: adds r0, r1, 0 adds r1, r3, 0 bl sub_80AF6DC _080AF01C: pop {r0} bx r0 thumb_func_end sub_80AEFD4 thumb_func_start sub_80AF020 sub_80AF020: push {lr} lsls r0, 16 ldr r2, _080AF04C ldr r1, _080AF050 lsrs r0, 13 adds r0, r1 ldrh r3, [r0, 0x4] lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r2 ldr r1, [r1] ldr r3, [r1] ldr r2, [r0] cmp r3, r2 beq _080AF054 adds r0, r1, 0 adds r1, r2, 0 bl sub_80AF6DC b _080AF070 .align 2, 0 _080AF04C: .4byte 0x09e8665c _080AF050: .4byte 0x09e866bc _080AF054: ldr r2, [r1, 0x4] ldrh r0, [r1, 0x4] cmp r0, 0 bne _080AF066 adds r0, r1, 0 adds r1, r3, 0 bl sub_80AF6DC b _080AF070 _080AF066: cmp r2, 0 bge _080AF070 adds r0, r1, 0 bl sub_80AEEE8 _080AF070: pop {r0} bx r0 thumb_func_end sub_80AF020 thumb_func_start sub_80AF074 sub_80AF074: push {lr} lsls r0, 16 ldr r2, _080AF0A0 ldr r1, _080AF0A4 lsrs r0, 13 adds r0, r1 ldrh r3, [r0, 0x4] lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r2 ldr r2, [r1] ldr r1, [r2] ldr r0, [r0] cmp r1, r0 bne _080AF09A adds r0, r2, 0 bl sub_80AF7C0 _080AF09A: pop {r0} bx r0 .align 2, 0 _080AF0A0: .4byte 0x09e8665c _080AF0A4: .4byte 0x09e866bc thumb_func_end sub_80AF074 thumb_func_start sub_80AF0A8 sub_80AF0A8: push {lr} lsls r0, 16 ldr r2, _080AF0D4 ldr r1, _080AF0D8 lsrs r0, 13 adds r0, r1 ldrh r3, [r0, 0x4] lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r2 ldr r2, [r1] ldr r1, [r2] ldr r0, [r0] cmp r1, r0 bne _080AF0CE adds r0, r2, 0 bl sub_80AEEE8 _080AF0CE: pop {r0} bx r0 .align 2, 0 _080AF0D4: .4byte 0x09e8665c _080AF0D8: .4byte 0x09e866bc thumb_func_end sub_80AF0A8 thumb_func_start sub_80AF0DC sub_80AF0DC: push {r4,r5,lr} ldr r0, _080AF100 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _080AF0FA ldr r5, _080AF104 adds r4, r0, 0 _080AF0EC: ldr r0, [r5] bl sub_80AF7C0 adds r5, 0xC subs r4, 0x1 cmp r4, 0 bne _080AF0EC _080AF0FA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AF100: .4byte 0x00000008 _080AF104: .4byte 0x09e8665c thumb_func_end sub_80AF0DC thumb_func_start sub_80AF108 sub_80AF108: push {lr} bl sub_80AEEE8 pop {r0} bx r0 thumb_func_end sub_80AF108 thumb_func_start sub_80AF114 sub_80AF114: push {r4,r5,lr} ldr r0, _080AF138 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _080AF132 ldr r5, _080AF13C adds r4, r0, 0 _080AF124: ldr r0, [r5] bl sub_80AEEE8 adds r5, 0xC subs r4, 0x1 cmp r4, 0 bne _080AF124 _080AF132: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AF138: .4byte 0x00000008 _080AF13C: .4byte 0x09e8665c thumb_func_end sub_80AF114 thumb_func_start sub_80AF140 sub_80AF140: push {lr} lsls r1, 16 lsrs r1, 16 bl sub_80AEF04 pop {r0} bx r0 thumb_func_end sub_80AF140 thumb_func_start sub_80AF150 sub_80AF150: adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _080AF168 cmp r3, r0 bne _080AF166 strh r1, [r2, 0x26] strh r1, [r2, 0x24] ldr r0, _080AF16C strh r0, [r2, 0x28] _080AF166: bx lr .align 2, 0 _080AF168: .4byte 0x68736d53 _080AF16C: .4byte 0x00000101 thumb_func_end sub_80AF150 thumb_func_start sub_80AF170 sub_80AF170: adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _080AF190 cmp r3, r0 bne _080AF18E strh r1, [r2, 0x26] strh r1, [r2, 0x24] movs r0, 0x2 strh r0, [r2, 0x28] ldr r0, [r2, 0x4] ldr r1, _080AF194 ands r0, r1 str r0, [r2, 0x4] _080AF18E: bx lr .align 2, 0 _080AF190: .4byte 0x68736d53 _080AF194: .4byte 0x7fffffff thumb_func_end sub_80AF170 thumb_func_start sub_80AF198 sub_80AF198: push {r4-r7,lr} ldrb r5, [r0, 0x8] ldr r4, [r0, 0x2C] cmp r5, 0 ble _080AF1DA movs r7, 0x80 _080AF1A4: ldrb r1, [r4] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080AF1D2 movs r6, 0x40 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080AF1D2 adds r0, r4, 0 bl sub_80AF310 strb r7, [r4] movs r0, 0x2 strb r0, [r4, 0xF] strb r6, [r4, 0x13] movs r0, 0x16 strb r0, [r4, 0x19] adds r1, r4, 0 adds r1, 0x24 movs r0, 0x1 strb r0, [r1] _080AF1D2: subs r5, 0x1 adds r4, 0x50 cmp r5, 0 bgt _080AF1A4 _080AF1DA: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80AF198 thumb_func_start sub_80AF1E0 sub_80AF1E0: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 ldr r1, _080AF2A8 movs r0, 0x8F strh r0, [r1] ldr r3, _080AF2AC movs r2, 0 strh r2, [r3] ldr r0, _080AF2B0 movs r1, 0x8 strb r1, [r0] adds r0, 0x6 strb r1, [r0] adds r0, 0x10 strb r1, [r0] subs r0, 0x14 movs r1, 0x80 strb r1, [r0] adds r0, 0x8 strb r1, [r0] adds r0, 0x10 strb r1, [r0] subs r0, 0xD strb r2, [r0] movs r0, 0x77 strb r0, [r3] ldr r0, _080AF2B4 ldr r4, [r0] ldr r6, [r4] ldr r0, _080AF2B8 cmp r6, r0 bne _080AF2A0 adds r0, r6, 0x1 str r0, [r4] ldr r1, _080AF2BC ldr r0, _080AF2C0 str r0, [r1, 0x20] ldr r0, _080AF2C4 str r0, [r1, 0x44] ldr r0, _080AF2C8 str r0, [r1, 0x4C] ldr r0, _080AF2CC str r0, [r1, 0x70] ldr r0, _080AF2D0 str r0, [r1, 0x74] ldr r0, _080AF2D4 str r0, [r1, 0x78] ldr r0, _080AF2D8 str r0, [r1, 0x7C] adds r2, r1, 0 adds r2, 0x80 ldr r0, _080AF2DC str r0, [r2] adds r1, 0x84 ldr r0, _080AF2E0 str r0, [r1] str r5, [r4, 0x1C] ldr r0, _080AF2E4 str r0, [r4, 0x28] ldr r0, _080AF2E8 str r0, [r4, 0x2C] ldr r0, _080AF2EC str r0, [r4, 0x30] ldr r0, _080AF2F0 movs r1, 0 strb r0, [r4, 0xC] str r1, [sp] ldr r2, _080AF2F4 mov r0, sp adds r1, r5, 0 bl CpuSet movs r0, 0x1 strb r0, [r5, 0x1] movs r0, 0x11 strb r0, [r5, 0x1C] adds r1, r5, 0 adds r1, 0x41 movs r0, 0x2 strb r0, [r1] adds r1, 0x1B movs r0, 0x22 strb r0, [r1] adds r1, 0x25 movs r0, 0x3 strb r0, [r1] adds r1, 0x1B movs r0, 0x44 strb r0, [r1] adds r1, 0x24 movs r0, 0x4 strb r0, [r1, 0x1] movs r0, 0x88 strb r0, [r1, 0x1C] str r6, [r4] _080AF2A0: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AF2A8: .4byte 0x04000084 _080AF2AC: .4byte 0x04000080 _080AF2B0: .4byte 0x04000063 _080AF2B4: .4byte SOUND_INFO_PTR _080AF2B8: .4byte 0x68736d53 _080AF2BC: .4byte gUnknown_203AE80 _080AF2C0: .4byte sub_80B019C _080AF2C4: .4byte sub_80AEE58 _080AF2C8: .4byte sub_80AEE6C _080AF2CC: .4byte sub_80B02F4 _080AF2D0: .4byte sub_80AEDF0 _080AF2D4: .4byte sub_80AF41C _080AF2D8: .4byte sub_80AEB7C _080AF2DC: .4byte sub_80AF800 _080AF2E0: .4byte sub_80AF8C8 _080AF2E4: .4byte sub_80AFADC _080AF2E8: .4byte sub_80AFA24 _080AF2EC: .4byte sub_80AF97C _080AF2F0: .4byte 0x00000000 _080AF2F4: .4byte 0x05000040 thumb_func_end sub_80AF1E0 thumb_func_start sub_80AF2F8 sub_80AF2F8: swi 0x2A bx lr thumb_func_end sub_80AF2F8 thumb_func_start sub_80AF2FC sub_80AF2FC: push {lr} ldr r1, _080AF30C ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080AF30C: .4byte gUnknown_203AF08 thumb_func_end sub_80AF2FC thumb_func_start sub_80AF310 sub_80AF310: push {lr} ldr r1, _080AF320 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080AF320: .4byte gUnknown_203AF0C thumb_func_end sub_80AF310 thumb_func_start sub_80AF324 sub_80AF324: push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r3, 0 str r3, [r5] ldr r1, _080AF3DC ldr r0, [r1] movs r2, 0x80 lsls r2, 18 ands r0, r2 cmp r0, 0 beq _080AF340 ldr r0, _080AF3E0 str r0, [r1] _080AF340: ldr r1, _080AF3E4 ldr r0, [r1] ands r0, r2 cmp r0, 0 beq _080AF34E ldr r0, _080AF3E0 str r0, [r1] _080AF34E: ldr r0, _080AF3E8 movs r2, 0x80 lsls r2, 3 adds r1, r2, 0 strh r1, [r0] adds r0, 0xC strh r1, [r0] ldr r1, _080AF3EC movs r0, 0x8F strh r0, [r1] subs r1, 0x2 ldr r2, _080AF3F0 adds r0, r2, 0 strh r0, [r1] ldr r2, _080AF3F4 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldr r1, _080AF3F8 movs r2, 0xD4 lsls r2, 2 adds r0, r5, r2 str r0, [r1] adds r1, 0x4 ldr r0, _080AF3FC str r0, [r1] adds r1, 0x8 movs r2, 0x98 lsls r2, 4 adds r0, r5, r2 str r0, [r1] adds r1, 0x4 ldr r0, _080AF400 str r0, [r1] ldr r0, _080AF404 str r5, [r0] str r3, [sp] ldr r2, _080AF408 mov r0, sp adds r1, r5, 0 bl CpuSet movs r0, 0x8 strb r0, [r5, 0x6] movs r0, 0xF strb r0, [r5, 0x7] ldr r0, _080AF40C str r0, [r5, 0x38] ldr r0, _080AF410 str r0, [r5, 0x28] str r0, [r5, 0x2C] str r0, [r5, 0x30] str r0, [r5, 0x3C] ldr r4, _080AF414 adds r0, r4, 0 bl sub_80AE704 str r4, [r5, 0x34] movs r0, 0x80 lsls r0, 11 bl sub_80AF41C ldr r0, _080AF418 str r0, [r5] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AF3DC: .4byte 0x040000c4 _080AF3E0: .4byte 0x84400004 _080AF3E4: .4byte 0x040000d0 _080AF3E8: .4byte 0x040000c6 _080AF3EC: .4byte 0x04000084 _080AF3F0: .4byte 0x0000a90e _080AF3F4: .4byte 0x04000089 _080AF3F8: .4byte 0x040000bc _080AF3FC: .4byte 0x040000a0 _080AF400: .4byte 0x040000a4 _080AF404: .4byte SOUND_INFO_PTR _080AF408: .4byte 0x050003ec _080AF40C: .4byte sub_80AEBF0 _080AF410: .4byte nullsub_139 _080AF414: .4byte gUnknown_203AE80 _080AF418: .4byte 0x68736d53 thumb_func_end sub_80AF324 thumb_func_start sub_80AF41C sub_80AF41C: push {r4-r6,lr} adds r2, r0, 0 ldr r0, _080AF49C ldr r4, [r0] movs r0, 0xF0 lsls r0, 12 ands r0, r2 lsrs r2, r0, 16 movs r6, 0 strb r2, [r4, 0x8] ldr r1, _080AF4A0 subs r0, r2, 0x1 lsls r0, 1 adds r0, r1 ldrh r5, [r0] str r5, [r4, 0x10] movs r0, 0xC6 lsls r0, 3 adds r1, r5, 0 bl __divsi3 strb r0, [r4, 0xB] ldr r0, _080AF4A4 muls r0, r5 ldr r1, _080AF4A8 adds r0, r1 ldr r1, _080AF4AC bl __divsi3 adds r1, r0, 0 str r1, [r4, 0x14] movs r0, 0x80 lsls r0, 17 bl __divsi3 adds r0, 0x1 asrs r0, 1 str r0, [r4, 0x18] ldr r0, _080AF4B0 strh r6, [r0] ldr r4, _080AF4B4 ldr r0, _080AF4B8 adds r1, r5, 0 bl __divsi3 negs r0, r0 strh r0, [r4] bl sub_80AF628 ldr r1, _080AF4BC _080AF480: ldrb r0, [r1] cmp r0, 0x9F beq _080AF480 ldr r1, _080AF4BC _080AF488: ldrb r0, [r1] cmp r0, 0x9F bne _080AF488 ldr r1, _080AF4B0 movs r0, 0x80 strh r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AF49C: .4byte SOUND_INFO_PTR _080AF4A0: .4byte gUnknown_826FB00 _080AF4A4: .4byte 0x00091d1b _080AF4A8: .4byte 0x00001388 _080AF4AC: .4byte 0x00002710 _080AF4B0: .4byte 0x04000102 _080AF4B4: .4byte 0x04000100 _080AF4B8: .4byte 0x00044940 _080AF4BC: .4byte 0x04000006 thumb_func_end sub_80AF41C thumb_func_start sub_80AF4C0 sub_80AF4C0: push {r4,r5,lr} adds r3, r0, 0 ldr r0, _080AF54C ldr r5, [r0] ldr r1, [r5] ldr r0, _080AF550 cmp r1, r0 bne _080AF546 adds r0, r1, 0x1 str r0, [r5] movs r4, 0xFF ands r4, r3 cmp r4, 0 beq _080AF4E2 movs r0, 0x7F ands r4, r0 strb r4, [r5, 0x5] _080AF4E2: movs r4, 0xF0 lsls r4, 4 ands r4, r3 cmp r4, 0 beq _080AF502 lsrs r0, r4, 8 strb r0, [r5, 0x6] movs r4, 0xC adds r0, r5, 0 adds r0, 0x50 movs r1, 0 _080AF4F8: strb r1, [r0] subs r4, 0x1 adds r0, 0x40 cmp r4, 0 bne _080AF4F8 _080AF502: movs r4, 0xF0 lsls r4, 8 ands r4, r3 cmp r4, 0 beq _080AF510 lsrs r0, r4, 12 strb r0, [r5, 0x7] _080AF510: movs r4, 0xB0 lsls r4, 16 ands r4, r3 cmp r4, 0 beq _080AF52E movs r0, 0xC0 lsls r0, 14 ands r0, r4 lsrs r4, r0, 14 ldr r2, _080AF554 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 orrs r0, r4 strb r0, [r2] _080AF52E: movs r4, 0xF0 lsls r4, 12 ands r4, r3 cmp r4, 0 beq _080AF542 bl sub_80AF5AC adds r0, r4, 0 bl sub_80AF41C _080AF542: ldr r0, _080AF550 str r0, [r5] _080AF546: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AF54C: .4byte SOUND_INFO_PTR _080AF550: .4byte 0x68736d53 _080AF554: .4byte 0x04000089 thumb_func_end sub_80AF4C0 thumb_func_start sub_80AF558 sub_80AF558: push {r4-r7,lr} ldr r0, _080AF5A4 ldr r6, [r0] ldr r1, [r6] ldr r0, _080AF5A8 cmp r1, r0 bne _080AF59E adds r0, r1, 0x1 str r0, [r6] movs r5, 0xC adds r4, r6, 0 adds r4, 0x50 movs r0, 0 _080AF572: strb r0, [r4] subs r5, 0x1 adds r4, 0x40 cmp r5, 0 bgt _080AF572 ldr r4, [r6, 0x1C] cmp r4, 0 beq _080AF59A movs r5, 0x1 movs r7, 0 _080AF586: lsls r0, r5, 24 lsrs r0, 24 ldr r1, [r6, 0x2C] bl _call_via_r1 strb r7, [r4] adds r5, 0x1 adds r4, 0x40 cmp r5, 0x4 ble _080AF586 _080AF59A: ldr r0, _080AF5A8 str r0, [r6] _080AF59E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AF5A4: .4byte SOUND_INFO_PTR _080AF5A8: .4byte 0x68736d53 thumb_func_end sub_80AF558 thumb_func_start sub_80AF5AC sub_80AF5AC: push {lr} sub sp, 0x4 ldr r0, _080AF60C ldr r2, [r0] ldr r1, [r2] ldr r3, _080AF610 adds r0, r1, r3 cmp r0, 0x1 bhi _080AF604 adds r0, r1, 0 adds r0, 0xA str r0, [r2] ldr r1, _080AF614 ldr r0, [r1] movs r3, 0x80 lsls r3, 18 ands r0, r3 cmp r0, 0 beq _080AF5D6 ldr r0, _080AF618 str r0, [r1] _080AF5D6: ldr r1, _080AF61C ldr r0, [r1] ands r0, r3 cmp r0, 0 beq _080AF5E4 ldr r0, _080AF618 str r0, [r1] _080AF5E4: ldr r0, _080AF620 movs r3, 0x80 lsls r3, 3 adds r1, r3, 0 strh r1, [r0] adds r0, 0xC strh r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0xD4 lsls r0, 2 adds r1, r2, r0 ldr r2, _080AF624 mov r0, sp bl CpuSet _080AF604: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080AF60C: .4byte SOUND_INFO_PTR _080AF610: .4byte 0x978c92ad _080AF614: .4byte 0x040000c4 _080AF618: .4byte 0x84400004 _080AF61C: .4byte 0x040000d0 _080AF620: .4byte 0x040000c6 _080AF624: .4byte 0x05000318 thumb_func_end sub_80AF5AC thumb_func_start sub_80AF628 sub_80AF628: push {r4,lr} ldr r0, _080AF658 ldr r2, [r0] ldr r3, [r2] ldr r0, _080AF65C cmp r3, r0 beq _080AF650 ldr r0, _080AF660 movs r4, 0xB6 lsls r4, 8 adds r1, r4, 0 strh r1, [r0] adds r0, 0xC strh r1, [r0] ldrb r0, [r2, 0x4] movs r0, 0 strb r0, [r2, 0x4] adds r0, r3, 0 subs r0, 0xA str r0, [r2] _080AF650: pop {r4} pop {r0} bx r0 .align 2, 0 _080AF658: .4byte SOUND_INFO_PTR _080AF65C: .4byte 0x68736d53 _080AF660: .4byte 0x040000c6 thumb_func_end sub_80AF628 thumb_func_start sub_80AF664 sub_80AF664: push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r4, r2, 24 cmp r4, 0 beq _080AF6C8 cmp r4, 0x10 bls _080AF678 movs r4, 0x10 _080AF678: ldr r0, _080AF6D0 ldr r5, [r0] ldr r1, [r5] ldr r0, _080AF6D4 cmp r1, r0 bne _080AF6C8 adds r0, r1, 0x1 str r0, [r5] adds r0, r7, 0 bl sub_80AF310 str r6, [r7, 0x2C] strb r4, [r7, 0x8] movs r0, 0x80 lsls r0, 24 str r0, [r7, 0x4] cmp r4, 0 beq _080AF6AC movs r1, 0 _080AF69E: strb r1, [r6] subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r6, 0x50 cmp r4, 0 bne _080AF69E _080AF6AC: ldr r0, [r5, 0x20] cmp r0, 0 beq _080AF6BC str r0, [r7, 0x38] ldr r0, [r5, 0x24] str r0, [r7, 0x3C] movs r0, 0 str r0, [r5, 0x20] _080AF6BC: str r7, [r5, 0x24] ldr r0, _080AF6D8 str r0, [r5, 0x20] ldr r0, _080AF6D4 str r0, [r5] str r0, [r7, 0x34] _080AF6C8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AF6D0: .4byte SOUND_INFO_PTR _080AF6D4: .4byte 0x68736d53 _080AF6D8: .4byte sub_80AE914 thumb_func_end sub_80AF664 thumb_func_start sub_80AF6DC sub_80AF6DC: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r7, r1, 0 ldr r1, [r5, 0x34] ldr r0, _080AF7BC cmp r1, r0 bne _080AF7B2 ldrb r0, [r5, 0xB] ldrb r2, [r7, 0x2] cmp r0, 0 beq _080AF71E ldr r0, [r5] cmp r0, 0 beq _080AF708 ldr r1, [r5, 0x2C] movs r0, 0x40 ldrb r1, [r1] ands r0, r1 cmp r0, 0 bne _080AF714 _080AF708: ldr r1, [r5, 0x4] ldrh r0, [r5, 0x4] cmp r0, 0 beq _080AF71E cmp r1, 0 blt _080AF71E _080AF714: ldrb r0, [r7, 0x2] adds r2, r0, 0 ldrb r0, [r5, 0x9] cmp r0, r2 bhi _080AF7B2 _080AF71E: ldr r0, [r5, 0x34] adds r0, 0x1 str r0, [r5, 0x34] movs r1, 0 str r1, [r5, 0x4] str r7, [r5] ldr r0, [r7, 0x4] str r0, [r5, 0x30] strb r2, [r5, 0x9] str r1, [r5, 0xC] movs r0, 0x96 strh r0, [r5, 0x1C] strh r0, [r5, 0x20] adds r0, 0x6A strh r0, [r5, 0x1E] strh r1, [r5, 0x22] strh r1, [r5, 0x24] movs r6, 0 ldr r4, [r5, 0x2C] ldrb r1, [r7] cmp r6, r1 bge _080AF77E ldrb r0, [r5, 0x8] cmp r6, r0 bge _080AF79E mov r8, r6 _080AF752: adds r0, r5, 0 adds r1, r4, 0 bl sub_80AEB7C movs r0, 0xC0 strb r0, [r4] mov r1, r8 str r1, [r4, 0x20] lsls r1, r6, 2 adds r0, r7, 0 adds r0, 0x8 adds r0, r1 ldr r0, [r0] str r0, [r4, 0x40] adds r6, 0x1 adds r4, 0x50 ldrb r0, [r7] cmp r6, r0 bge _080AF77E ldrb r1, [r5, 0x8] cmp r6, r1 blt _080AF752 _080AF77E: ldrb r0, [r5, 0x8] cmp r6, r0 bge _080AF79E movs r1, 0 mov r8, r1 _080AF788: adds r0, r5, 0 adds r1, r4, 0 bl sub_80AEB7C mov r0, r8 strb r0, [r4] adds r6, 0x1 adds r4, 0x50 ldrb r1, [r5, 0x8] cmp r6, r1 blt _080AF788 _080AF79E: movs r0, 0x80 ldrb r1, [r7, 0x3] ands r0, r1 cmp r0, 0 beq _080AF7AE ldrb r0, [r7, 0x3] bl sub_80AF4C0 _080AF7AE: ldr r0, _080AF7BC str r0, [r5, 0x34] _080AF7B2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AF7BC: .4byte 0x68736d53 thumb_func_end sub_80AF6DC thumb_func_start sub_80AF7C0 sub_80AF7C0: push {r4-r6,lr} adds r6, r0, 0 ldr r1, [r6, 0x34] ldr r0, _080AF7FC cmp r1, r0 bne _080AF7F6 adds r0, r1, 0x1 str r0, [r6, 0x34] ldr r0, [r6, 0x4] movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r6, 0x4] ldrb r4, [r6, 0x8] ldr r5, [r6, 0x2C] cmp r4, 0 ble _080AF7F2 _080AF7E2: adds r0, r6, 0 adds r1, r5, 0 bl sub_80AEB7C subs r4, 0x1 adds r5, 0x50 cmp r4, 0 bgt _080AF7E2 _080AF7F2: ldr r0, _080AF7FC str r0, [r6, 0x34] _080AF7F6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AF7FC: .4byte 0x68736d53 thumb_func_end sub_80AF7C0 thumb_func_start sub_80AF800 sub_80AF800: push {r4-r7,lr} adds r6, r0, 0 ldrh r1, [r6, 0x24] cmp r1, 0 beq _080AF8C2 ldrh r0, [r6, 0x26] subs r0, 0x1 strh r0, [r6, 0x26] ldr r3, _080AF840 adds r2, r3, 0 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 bne _080AF8C2 strh r1, [r6, 0x26] ldrh r1, [r6, 0x28] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080AF844 adds r0, r1, 0 adds r0, 0x10 strh r0, [r6, 0x28] ands r0, r2 cmp r0, 0xFF bls _080AF896 movs r0, 0x80 lsls r0, 1 strh r0, [r6, 0x28] strh r3, [r6, 0x24] b _080AF896 .align 2, 0 _080AF840: .4byte 0x0000ffff _080AF844: adds r0, r1, 0 subs r0, 0x10 strh r0, [r6, 0x28] ands r0, r2 lsls r0, 16 cmp r0, 0 bgt _080AF896 ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] cmp r5, 0 ble _080AF876 _080AF85A: adds r0, r6, 0 adds r1, r4, 0 bl sub_80AEB7C movs r0, 0x1 ldrh r7, [r6, 0x28] ands r0, r7 cmp r0, 0 bne _080AF86E strb r0, [r4] _080AF86E: subs r5, 0x1 adds r4, 0x50 cmp r5, 0 bgt _080AF85A _080AF876: movs r0, 0x1 ldrh r1, [r6, 0x28] ands r0, r1 cmp r0, 0 beq _080AF88A ldr r0, [r6, 0x4] movs r1, 0x80 lsls r1, 24 orrs r0, r1 b _080AF88E _080AF88A: movs r0, 0x80 lsls r0, 24 _080AF88E: str r0, [r6, 0x4] movs r0, 0 strh r0, [r6, 0x24] b _080AF8C2 _080AF896: ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] cmp r5, 0 ble _080AF8C2 movs r3, 0x80 movs r7, 0 movs r2, 0x3 _080AF8A4: ldrb r1, [r4] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080AF8BA ldrh r7, [r6, 0x28] lsrs r0, r7, 2 strb r0, [r4, 0x13] adds r0, r1, 0 orrs r0, r2 strb r0, [r4] _080AF8BA: subs r5, 0x1 adds r4, 0x50 cmp r5, 0 bgt _080AF8A4 _080AF8C2: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80AF800 thumb_func_start sub_80AF8C8 sub_80AF8C8: push {r4,lr} adds r2, r1, 0 movs r0, 0x1 ldrb r1, [r2] ands r0, r1 cmp r0, 0 beq _080AF92C ldrb r3, [r2, 0x13] ldrb r1, [r2, 0x12] adds r0, r3, 0 muls r0, r1 lsrs r3, r0, 5 ldrb r4, [r2, 0x18] cmp r4, 0x1 bne _080AF8F0 movs r0, 0x16 ldrsb r0, [r2, r0] adds r0, 0x80 muls r0, r3 lsrs r3, r0, 7 _080AF8F0: movs r0, 0x14 ldrsb r0, [r2, r0] lsls r0, 1 movs r1, 0x15 ldrsb r1, [r2, r1] adds r1, r0, r1 cmp r4, 0x2 bne _080AF906 movs r0, 0x16 ldrsb r0, [r2, r0] adds r1, r0 _080AF906: movs r0, 0x80 negs r0, r0 cmp r1, r0 bge _080AF912 adds r1, r0, 0 b _080AF918 _080AF912: cmp r1, 0x7F ble _080AF918 movs r1, 0x7F _080AF918: adds r0, r1, 0 adds r0, 0x80 muls r0, r3 lsrs r0, 8 strb r0, [r2, 0x10] movs r0, 0x7F subs r0, r1 muls r0, r3 lsrs r0, 8 strb r0, [r2, 0x11] _080AF92C: ldrb r1, [r2] movs r0, 0x4 ands r0, r1 adds r3, r1, 0 cmp r0, 0 beq _080AF970 movs r0, 0xE ldrsb r0, [r2, r0] ldrb r1, [r2, 0xF] muls r0, r1 movs r1, 0xC ldrsb r1, [r2, r1] adds r1, r0 lsls r1, 2 movs r0, 0xA ldrsb r0, [r2, r0] lsls r0, 8 adds r1, r0 movs r0, 0xB ldrsb r0, [r2, r0] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0xD] adds r1, r0, r1 ldrb r0, [r2, 0x18] cmp r0, 0 bne _080AF96A movs r0, 0x16 ldrsb r0, [r2, r0] lsls r0, 4 adds r1, r0 _080AF96A: asrs r0, r1, 8 strb r0, [r2, 0x8] strb r1, [r2, 0x9] _080AF970: movs r0, 0xFA ands r0, r3 strb r0, [r2] pop {r4} pop {r0} bx r0 thumb_func_end sub_80AF8C8 thumb_func_start sub_80AF97C sub_80AF97C: push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 mov r12, r2 cmp r0, 0x4 bne _080AF9B4 cmp r5, 0x14 bhi _080AF998 movs r5, 0 b _080AF9A6 _080AF998: adds r0, r5, 0 subs r0, 0x15 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3B bls _080AF9A6 movs r5, 0x3B _080AF9A6: ldr r0, _080AF9B0 adds r0, r5, r0 ldrb r0, [r0] b _080AFA16 .align 2, 0 _080AF9B0: .4byte gUnknown_826FBB4 _080AF9B4: cmp r5, 0x23 bhi _080AF9C0 movs r0, 0 mov r12, r0 movs r5, 0 b _080AF9D2 _080AF9C0: adds r0, r5, 0 subs r0, 0x24 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x82 bls _080AF9D2 movs r5, 0x82 movs r1, 0xFF mov r12, r1 _080AF9D2: ldr r3, _080AFA1C adds r0, r5, r3 ldrb r6, [r0] ldr r4, _080AFA20 movs r2, 0xF adds r0, r6, 0 ands r0, r2 lsls r0, 1 adds r0, r4 movs r7, 0 ldrsh r1, [r0, r7] asrs r0, r6, 4 adds r6, r1, 0 asrs r6, r0 adds r0, r5, 0x1 adds r0, r3 ldrb r1, [r0] adds r0, r1, 0 ands r0, r2 lsls r0, 1 adds r0, r4 movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 4 asrs r0, r1 subs r0, r6 mov r7, r12 muls r7, r0 adds r0, r7, 0 asrs r0, 8 adds r0, r6, r0 movs r1, 0x80 lsls r1, 4 adds r0, r1 _080AFA16: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AFA1C: .4byte gUnknown_826FB18 _080AFA20: .4byte gUnknown_826FB9C thumb_func_end sub_80AF97C thumb_func_start sub_80AFA24 sub_80AFA24: lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x2 beq _080AFA4C cmp r0, 0x2 bgt _080AFA38 cmp r0, 0x1 beq _080AFA3E b _080AFA60 _080AFA38: cmp r1, 0x3 beq _080AFA54 b _080AFA60 _080AFA3E: ldr r1, _080AFA48 movs r0, 0x8 strb r0, [r1] adds r1, 0x2 b _080AFA68 .align 2, 0 _080AFA48: .4byte 0x04000063 _080AFA4C: ldr r1, _080AFA50 b _080AFA62 .align 2, 0 _080AFA50: .4byte 0x04000069 _080AFA54: ldr r1, _080AFA5C movs r0, 0 b _080AFA6A .align 2, 0 _080AFA5C: .4byte 0x04000070 _080AFA60: ldr r1, _080AFA70 _080AFA62: movs r0, 0x8 strb r0, [r1] adds r1, 0x4 _080AFA68: movs r0, 0x80 _080AFA6A: strb r0, [r1] bx lr .align 2, 0 _080AFA70: .4byte 0x04000079 thumb_func_end sub_80AFA24 thumb_func_start sub_80AFA74 sub_80AFA74: push {r4,lr} adds r1, r0, 0 ldrb r0, [r1, 0x2] lsls r2, r0, 24 lsrs r4, r2, 24 ldrb r3, [r1, 0x3] lsls r0, r3, 24 lsrs r3, r0, 24 cmp r4, r3 bcc _080AFA94 lsrs r0, r2, 25 cmp r0, r3 bcc _080AFAA0 movs r0, 0xF strb r0, [r1, 0x1B] b _080AFAAE _080AFA94: lsrs r0, 25 cmp r0, r4 bcc _080AFAA0 movs r0, 0xF0 strb r0, [r1, 0x1B] b _080AFAAE _080AFAA0: movs r0, 0xFF strb r0, [r1, 0x1B] ldrb r2, [r1, 0x3] ldrb r3, [r1, 0x2] adds r0, r2, r3 lsrs r0, 4 b _080AFABE _080AFAAE: ldrb r2, [r1, 0x3] ldrb r3, [r1, 0x2] adds r0, r2, r3 lsrs r0, 4 strb r0, [r1, 0xA] cmp r0, 0xF bls _080AFAC0 movs r0, 0xF _080AFABE: strb r0, [r1, 0xA] _080AFAC0: ldrb r2, [r1, 0x6] ldrb r3, [r1, 0xA] adds r0, r2, 0 muls r0, r3 adds r0, 0xF asrs r0, 4 strb r0, [r1, 0x19] ldrb r0, [r1, 0x1C] ldrb r2, [r1, 0x1B] ands r0, r2 strb r0, [r1, 0x1B] pop {r4} pop {r0} bx r0 thumb_func_end sub_80AFA74 thumb_func_start sub_80AFADC sub_80AFADC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r0, _080AFAFC ldr r0, [r0] str r0, [sp, 0x4] ldrb r0, [r0, 0xA] cmp r0, 0 beq _080AFB00 subs r0, 0x1 ldr r1, [sp, 0x4] strb r0, [r1, 0xA] b _080AFB06 .align 2, 0 _080AFAFC: .4byte SOUND_INFO_PTR _080AFB00: movs r0, 0xE ldr r2, [sp, 0x4] strb r0, [r2, 0xA] _080AFB06: movs r6, 0x1 ldr r0, [sp, 0x4] ldr r4, [r0, 0x1C] _080AFB0C: ldrb r1, [r4] movs r0, 0xC7 ands r0, r1 adds r2, r6, 0x1 mov r10, r2 movs r2, 0x40 adds r2, r4 mov r9, r2 cmp r0, 0 bne _080AFB22 b _080AFF0C _080AFB22: cmp r6, 0x2 beq _080AFB54 cmp r6, 0x2 bgt _080AFB30 cmp r6, 0x1 beq _080AFB36 b _080AFB8C _080AFB30: cmp r6, 0x3 beq _080AFB6C b _080AFB8C _080AFB36: ldr r0, _080AFB48 str r0, [sp, 0x8] ldr r7, _080AFB4C ldr r2, _080AFB50 str r2, [sp, 0xC] adds r0, 0x4 str r0, [sp, 0x10] adds r2, 0x2 b _080AFB9C .align 2, 0 _080AFB48: .4byte 0x04000060 _080AFB4C: .4byte 0x04000062 _080AFB50: .4byte 0x04000063 _080AFB54: ldr r0, _080AFB60 str r0, [sp, 0x8] ldr r7, _080AFB64 ldr r2, _080AFB68 b _080AFB94 .align 2, 0 _080AFB60: .4byte 0x04000061 _080AFB64: .4byte 0x04000068 _080AFB68: .4byte 0x04000069 _080AFB6C: ldr r0, _080AFB80 str r0, [sp, 0x8] ldr r7, _080AFB84 ldr r2, _080AFB88 str r2, [sp, 0xC] adds r0, 0x4 str r0, [sp, 0x10] adds r2, 0x2 b _080AFB9C .align 2, 0 _080AFB80: .4byte 0x04000070 _080AFB84: .4byte 0x04000072 _080AFB88: .4byte 0x04000073 _080AFB8C: ldr r0, _080AFBEC str r0, [sp, 0x8] ldr r7, _080AFBF0 ldr r2, _080AFBF4 _080AFB94: str r2, [sp, 0xC] adds r0, 0xB str r0, [sp, 0x10] adds r2, 0x4 _080AFB9C: str r2, [sp, 0x14] ldr r0, [sp, 0x4] ldrb r0, [r0, 0xA] str r0, [sp] ldr r2, [sp, 0xC] ldrb r0, [r2] mov r8, r0 adds r2, r1, 0 movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080AFC92 movs r3, 0x40 adds r0, r3, 0 ands r0, r2 lsls r0, 24 lsrs r5, r0, 24 adds r0, r6, 0x1 mov r10, r0 movs r1, 0x40 adds r1, r4 mov r9, r1 cmp r5, 0 bne _080AFCB6 movs r0, 0x3 strb r0, [r4] strb r0, [r4, 0x1D] adds r0, r4, 0 str r3, [sp, 0x18] bl sub_80AFA74 ldr r3, [sp, 0x18] cmp r6, 0x2 beq _080AFC04 cmp r6, 0x2 bgt _080AFBF8 cmp r6, 0x1 beq _080AFBFE b _080AFC58 .align 2, 0 _080AFBEC: .4byte 0x04000071 _080AFBF0: .4byte 0x04000078 _080AFBF4: .4byte 0x04000079 _080AFBF8: cmp r6, 0x3 beq _080AFC10 b _080AFC58 _080AFBFE: ldrb r0, [r4, 0x1F] ldr r2, [sp, 0x8] strb r0, [r2] _080AFC04: ldr r0, [r4, 0x24] lsls r0, 6 ldrb r1, [r4, 0x1E] adds r0, r1, r0 strb r0, [r7] b _080AFC64 _080AFC10: ldr r1, [r4, 0x24] ldr r0, [r4, 0x28] cmp r1, r0 beq _080AFC38 ldr r2, [sp, 0x8] strb r3, [r2] ldr r1, _080AFC4C ldr r2, [r4, 0x24] ldr r0, [r2] str r0, [r1] adds r1, 0x4 ldr r0, [r2, 0x4] str r0, [r1] adds r1, 0x4 ldr r0, [r2, 0x8] str r0, [r1] adds r1, 0x4 ldr r0, [r2, 0xC] str r0, [r1] str r2, [r4, 0x28] _080AFC38: ldr r0, [sp, 0x8] strb r5, [r0] ldrb r0, [r4, 0x1E] strb r0, [r7] ldrb r0, [r4, 0x1E] cmp r0, 0 beq _080AFC50 movs r0, 0xC0 b _080AFC72 .align 2, 0 _080AFC4C: .4byte 0x04000090 _080AFC50: movs r1, 0x80 negs r1, r1 strb r1, [r4, 0x1A] b _080AFC74 _080AFC58: ldrb r0, [r4, 0x1E] strb r0, [r7] ldr r0, [r4, 0x24] lsls r0, 3 ldr r2, [sp, 0x10] strb r0, [r2] _080AFC64: ldrb r0, [r4, 0x4] adds r0, 0x8 mov r8, r0 ldrb r0, [r4, 0x1E] cmp r0, 0 beq _080AFC72 movs r0, 0x40 _080AFC72: strb r0, [r4, 0x1A] _080AFC74: ldrb r1, [r4, 0x4] movs r2, 0 strb r1, [r4, 0xB] movs r0, 0xFF ands r0, r1 adds r1, r6, 0x1 mov r10, r1 movs r1, 0x40 adds r1, r4 mov r9, r1 cmp r0, 0 bne _080AFC8E b _080AFDCA _080AFC8E: strb r2, [r4, 0x9] b _080AFDF8 _080AFC92: movs r0, 0x4 ands r0, r2 cmp r0, 0 beq _080AFCC4 ldrb r0, [r4, 0xD] subs r0, 0x1 strb r0, [r4, 0xD] movs r2, 0xFF ands r0, r2 lsls r0, 24 adds r1, r6, 0x1 mov r10, r1 movs r2, 0x40 adds r2, r4 mov r9, r2 cmp r0, 0 ble _080AFCB6 b _080AFE0A _080AFCB6: lsls r0, r6, 24 lsrs r0, 24 bl sub_80AFA24 movs r0, 0 strb r0, [r4] b _080AFF08 _080AFCC4: movs r0, 0x40 ands r0, r1 adds r2, r6, 0x1 mov r10, r2 movs r2, 0x40 adds r2, r4 mov r9, r2 cmp r0, 0 beq _080AFD04 movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080AFD04 movs r0, 0xFC ands r0, r1 movs r2, 0 strb r0, [r4] ldrb r1, [r4, 0x7] strb r1, [r4, 0xB] movs r0, 0xFF ands r0, r1 cmp r0, 0 beq _080AFD36 movs r0, 0x1 ldrb r1, [r4, 0x1D] orrs r0, r1 strb r0, [r4, 0x1D] cmp r6, 0x3 beq _080AFDF8 ldrb r2, [r4, 0x7] mov r8, r2 b _080AFDF8 _080AFD04: ldrb r0, [r4, 0xB] cmp r0, 0 bne _080AFDF8 cmp r6, 0x3 bne _080AFD16 movs r0, 0x1 ldrb r1, [r4, 0x1D] orrs r0, r1 strb r0, [r4, 0x1D] _080AFD16: adds r0, r4, 0 bl sub_80AFA74 movs r0, 0x3 ldrb r2, [r4] ands r0, r2 cmp r0, 0 bne _080AFD6A ldrb r0, [r4, 0x9] subs r0, 0x1 strb r0, [r4, 0x9] movs r1, 0xFF ands r0, r1 lsls r0, 24 cmp r0, 0 bgt _080AFD66 _080AFD36: ldrb r2, [r4, 0xC] ldrb r1, [r4, 0xA] adds r0, r2, 0 muls r0, r1 adds r0, 0xFF asrs r0, 8 movs r1, 0 strb r0, [r4, 0x9] lsls r0, 24 cmp r0, 0 beq _080AFCB6 movs r0, 0x4 ldrb r2, [r4] orrs r0, r2 strb r0, [r4] movs r0, 0x1 ldrb r1, [r4, 0x1D] orrs r0, r1 strb r0, [r4, 0x1D] cmp r6, 0x3 beq _080AFE0A movs r2, 0x8 mov r8, r2 b _080AFE0A _080AFD66: ldrb r0, [r4, 0x7] b _080AFDF6 _080AFD6A: cmp r0, 0x1 bne _080AFD76 _080AFD6E: ldrb r0, [r4, 0x19] strb r0, [r4, 0x9] movs r0, 0x7 b _080AFDF6 _080AFD76: cmp r0, 0x2 bne _080AFDBA ldrb r0, [r4, 0x9] subs r0, 0x1 strb r0, [r4, 0x9] movs r1, 0xFF ands r0, r1 lsls r0, 24 ldrb r2, [r4, 0x19] lsls r1, r2, 24 cmp r0, r1 bgt _080AFDB6 _080AFD8E: ldrb r0, [r4, 0x6] cmp r0, 0 bne _080AFD9E movs r0, 0xFC ldrb r1, [r4] ands r0, r1 strb r0, [r4] b _080AFD36 _080AFD9E: ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] movs r0, 0x1 ldrb r2, [r4, 0x1D] orrs r0, r2 strb r0, [r4, 0x1D] cmp r6, 0x3 beq _080AFD6E movs r0, 0x8 mov r8, r0 b _080AFD6E _080AFDB6: ldrb r0, [r4, 0x5] b _080AFDF6 _080AFDBA: ldrb r0, [r4, 0x9] adds r0, 0x1 strb r0, [r4, 0x9] movs r1, 0xFF ands r0, r1 ldrb r2, [r4, 0xA] cmp r0, r2 bcc _080AFDF4 _080AFDCA: ldrb r0, [r4] subs r0, 0x1 movs r2, 0 strb r0, [r4] ldrb r1, [r4, 0x5] strb r1, [r4, 0xB] movs r0, 0xFF ands r0, r1 cmp r0, 0 beq _080AFD8E movs r0, 0x1 ldrb r1, [r4, 0x1D] orrs r0, r1 strb r0, [r4, 0x1D] ldrb r0, [r4, 0xA] strb r0, [r4, 0x9] cmp r6, 0x3 beq _080AFDF8 ldrb r2, [r4, 0x5] mov r8, r2 b _080AFDF8 _080AFDF4: ldrb r0, [r4, 0x4] _080AFDF6: strb r0, [r4, 0xB] _080AFDF8: ldrb r0, [r4, 0xB] subs r0, 0x1 strb r0, [r4, 0xB] ldr r0, [sp] cmp r0, 0 bne _080AFE0A subs r0, 0x1 str r0, [sp] b _080AFD04 _080AFE0A: movs r0, 0x2 ldrb r1, [r4, 0x1D] ands r0, r1 cmp r0, 0 beq _080AFE82 cmp r6, 0x3 bgt _080AFE4A movs r0, 0x8 ldrb r2, [r4, 0x1] ands r0, r2 cmp r0, 0 beq _080AFE4A ldr r0, _080AFE34 ldrb r0, [r0] cmp r0, 0x3F bgt _080AFE3C ldr r0, [r4, 0x20] adds r0, 0x2 ldr r1, _080AFE38 b _080AFE46 .align 2, 0 _080AFE34: .4byte 0x04000089 _080AFE38: .4byte 0x000007fc _080AFE3C: cmp r0, 0x7F bgt _080AFE4A ldr r0, [r4, 0x20] adds r0, 0x1 ldr r1, _080AFE58 _080AFE46: ands r0, r1 str r0, [r4, 0x20] _080AFE4A: cmp r6, 0x4 beq _080AFE5C ldr r0, [r4, 0x20] ldr r1, [sp, 0x10] strb r0, [r1] b _080AFE6A .align 2, 0 _080AFE58: .4byte 0x000007fe _080AFE5C: ldr r2, [sp, 0x10] ldrb r0, [r2] movs r1, 0x8 ands r1, r0 ldr r0, [r4, 0x20] orrs r0, r1 strb r0, [r2] _080AFE6A: movs r0, 0xC0 ldrb r1, [r4, 0x1A] ands r0, r1 adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] adds r0, r1, r0 strb r0, [r4, 0x1A] movs r2, 0xFF ands r0, r2 ldr r1, [sp, 0x14] strb r0, [r1] _080AFE82: movs r0, 0x1 ldrb r2, [r4, 0x1D] ands r0, r2 cmp r0, 0 beq _080AFF08 ldr r1, _080AFECC ldrb r0, [r1] ldrb r2, [r4, 0x1C] bics r0, r2 ldrb r2, [r4, 0x1B] orrs r0, r2 strb r0, [r1] cmp r6, 0x3 bne _080AFED4 ldr r0, _080AFED0 ldrb r1, [r4, 0x9] adds r0, r1, r0 ldrb r0, [r0] ldr r2, [sp, 0xC] strb r0, [r2] movs r1, 0x80 adds r0, r1, 0 ldrb r2, [r4, 0x1A] ands r0, r2 cmp r0, 0 beq _080AFF08 ldr r0, [sp, 0x8] strb r1, [r0] ldrb r0, [r4, 0x1A] ldr r1, [sp, 0x14] strb r0, [r1] movs r0, 0x7F ldrb r2, [r4, 0x1A] ands r0, r2 strb r0, [r4, 0x1A] b _080AFF08 .align 2, 0 _080AFECC: .4byte 0x04000081 _080AFED0: .4byte gUnknown_826FBF0 _080AFED4: movs r0, 0xF mov r1, r8 ands r1, r0 mov r8, r1 ldrb r2, [r4, 0x9] lsls r0, r2, 4 add r0, r8 ldr r1, [sp, 0xC] strb r0, [r1] movs r2, 0x80 ldrb r0, [r4, 0x1A] orrs r0, r2 ldr r1, [sp, 0x14] strb r0, [r1] cmp r6, 0x1 bne _080AFF08 ldr r0, [sp, 0x8] ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080AFF08 ldrb r0, [r4, 0x1A] orrs r0, r2 ldr r1, [sp, 0x14] strb r0, [r1] _080AFF08: movs r0, 0 strb r0, [r4, 0x1D] _080AFF0C: mov r6, r10 mov r4, r9 cmp r6, 0x4 bgt _080AFF16 b _080AFB0C _080AFF16: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80AFADC thumb_func_start sub_80AFF28 sub_80AFF28: push {r4,lr} adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _080AFF4C cmp r3, r0 bne _080AFF44 strh r1, [r2, 0x1E] ldrh r4, [r2, 0x1C] adds r0, r1, 0 muls r0, r4 asrs r0, 8 strh r0, [r2, 0x20] _080AFF44: pop {r4} pop {r0} bx r0 .align 2, 0 _080AFF4C: .4byte 0x68736d53 thumb_func_end sub_80AFF28 thumb_func_start sub_80AFF50 sub_80AFF50: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 lsls r1, 16 lsrs r7, r1, 16 lsls r6, r2, 16 ldr r3, [r4, 0x34] ldr r0, _080AFFB4 cmp r3, r0 bne _080AFFA8 adds r0, r3, 0x1 str r0, [r4, 0x34] ldrb r2, [r4, 0x8] ldr r1, [r4, 0x2C] movs r5, 0x1 cmp r2, 0 ble _080AFFA4 movs r0, 0x80 mov r8, r0 lsrs r6, 18 movs r0, 0x3 mov r12, r0 _080AFF80: adds r0, r7, 0 ands r0, r5 cmp r0, 0 beq _080AFF9A ldrb r3, [r1] mov r0, r8 ands r0, r3 cmp r0, 0 beq _080AFF9A strb r6, [r1, 0x13] mov r0, r12 orrs r0, r3 strb r0, [r1] _080AFF9A: subs r2, 0x1 adds r1, 0x50 lsls r5, 1 cmp r2, 0 bgt _080AFF80 _080AFFA4: ldr r0, _080AFFB4 str r0, [r4, 0x34] _080AFFA8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AFFB4: .4byte 0x68736d53 thumb_func_end sub_80AFF50 thumb_func_start sub_80AFFB8 sub_80AFFB8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 lsls r1, 16 lsrs r1, 16 mov r12, r1 lsls r2, 16 lsrs r6, r2, 16 ldr r3, [r4, 0x34] ldr r0, _080B0028 cmp r3, r0 bne _080B001A adds r0, r3, 0x1 str r0, [r4, 0x34] ldrb r2, [r4, 0x8] ldr r3, [r4, 0x2C] movs r5, 0x1 cmp r2, 0 ble _080B0016 movs r0, 0x80 mov r9, r0 lsls r0, r6, 16 asrs r7, r0, 24 movs r0, 0xC mov r8, r0 _080AFFF0: mov r0, r12 ands r0, r5 cmp r0, 0 beq _080B000C ldrb r1, [r3] mov r0, r9 ands r0, r1 cmp r0, 0 beq _080B000C strb r7, [r3, 0xB] strb r6, [r3, 0xD] mov r0, r8 orrs r0, r1 strb r0, [r3] _080B000C: subs r2, 0x1 adds r3, 0x50 lsls r5, 1 cmp r2, 0 bgt _080AFFF0 _080B0016: ldr r0, _080B0028 str r0, [r4, 0x34] _080B001A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B0028: .4byte 0x68736d53 thumb_func_end sub_80AFFB8 thumb_func_start sub_80B002C sub_80B002C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 24 lsrs r6, r2, 24 ldr r3, [r4, 0x34] ldr r0, _080B0090 cmp r3, r0 bne _080B0084 adds r0, r3, 0x1 str r0, [r4, 0x34] ldrb r2, [r4, 0x8] ldr r1, [r4, 0x2C] movs r5, 0x1 cmp r2, 0 ble _080B0080 movs r0, 0x80 mov r8, r0 movs r0, 0x3 mov r12, r0 _080B005C: adds r0, r7, 0 ands r0, r5 cmp r0, 0 beq _080B0076 ldrb r3, [r1] mov r0, r8 ands r0, r3 cmp r0, 0 beq _080B0076 strb r6, [r1, 0x15] mov r0, r12 orrs r0, r3 strb r0, [r1] _080B0076: subs r2, 0x1 adds r1, 0x50 lsls r5, 1 cmp r2, 0 bgt _080B005C _080B0080: ldr r0, _080B0090 str r0, [r4, 0x34] _080B0084: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B0090: .4byte 0x68736d53 thumb_func_end sub_80B002C thumb_func_start sub_80B0094 sub_80B0094: adds r1, r0, 0 movs r2, 0 movs r0, 0 strb r0, [r1, 0x1A] strb r0, [r1, 0x16] ldrb r0, [r1, 0x18] cmp r0, 0 bne _080B00A8 movs r0, 0xC b _080B00AA _080B00A8: movs r0, 0x3 _080B00AA: ldrb r2, [r1] orrs r0, r2 strb r0, [r1] bx lr thumb_func_end sub_80B0094 thumb_func_start sub_80B00B4 sub_80B00B4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 lsls r1, 16 lsrs r1, 16 mov r10, r1 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldr r1, [r6, 0x34] ldr r0, _080B0124 cmp r1, r0 bne _080B0114 adds r0, r1, 0x1 str r0, [r6, 0x34] ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] movs r7, 0x1 cmp r5, 0 ble _080B0110 mov r9, r8 _080B00E4: mov r0, r10 ands r0, r7 cmp r0, 0 beq _080B0106 movs r0, 0x80 ldrb r1, [r4] ands r0, r1 cmp r0, 0 beq _080B0106 mov r0, r8 strb r0, [r4, 0x17] mov r1, r9 cmp r1, 0 bne _080B0106 adds r0, r4, 0 bl sub_80B0094 _080B0106: subs r5, 0x1 adds r4, 0x50 lsls r7, 1 cmp r5, 0 bgt _080B00E4 _080B0110: ldr r0, _080B0124 str r0, [r6, 0x34] _080B0114: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B0124: .4byte 0x68736d53 thumb_func_end sub_80B00B4 thumb_func_start sub_80B0128 sub_80B0128: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 lsls r1, 16 lsrs r1, 16 mov r10, r1 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldr r1, [r6, 0x34] ldr r0, _080B0198 cmp r1, r0 bne _080B0188 adds r0, r1, 0x1 str r0, [r6, 0x34] ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] movs r7, 0x1 cmp r5, 0 ble _080B0184 mov r9, r8 _080B0158: mov r0, r10 ands r0, r7 cmp r0, 0 beq _080B017A movs r0, 0x80 ldrb r1, [r4] ands r0, r1 cmp r0, 0 beq _080B017A mov r0, r8 strb r0, [r4, 0x19] mov r1, r9 cmp r1, 0 bne _080B017A adds r0, r4, 0 bl sub_80B0094 _080B017A: subs r5, 0x1 adds r4, 0x50 lsls r7, 1 cmp r5, 0 bgt _080B0158 _080B0184: ldr r0, _080B0198 str r0, [r6, 0x34] _080B0188: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B0198: .4byte 0x68736d53 thumb_func_end sub_80B0128 thumb_func_start sub_80B019C sub_80B019C: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r1, [r6, 0x40] ldrb r5, [r1] adds r2, r1, 0x1 str r2, [r6, 0x40] ldr r0, [r4, 0x18] ldrb r1, [r1, 0x1] adds r3, r1, r0 adds r0, r2, 0x1 str r0, [r6, 0x40] ldrb r2, [r2, 0x1] adds r0, 0x1 str r0, [r6, 0x40] cmp r5, 0x11 bls _080B01C0 b _080B02EE _080B01C0: lsls r0, r5, 2 ldr r1, _080B01CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B01CC: .4byte _080B01D0 .align 2, 0 _080B01D0: .4byte _080B0218 .4byte _080B021C .4byte _080B0224 .4byte _080B022C .4byte _080B0236 .4byte _080B0244 .4byte _080B0252 .4byte _080B025A .4byte _080B0262 .4byte _080B026A .4byte _080B0272 .4byte _080B027A .4byte _080B0282 .4byte _080B0290 .4byte _080B029E .4byte _080B02AC .4byte _080B02BA .4byte _080B02C8 _080B0218: strb r2, [r3] b _080B02EE _080B021C: ldrb r1, [r3] adds r0, r1, r2 strb r0, [r3] b _080B02EE _080B0224: ldrb r1, [r3] subs r0, r1, r2 strb r0, [r3] b _080B02EE _080B022C: ldr r0, [r4, 0x18] adds r0, r2 ldrb r0, [r0] strb r0, [r3] b _080B02EE _080B0236: ldr r0, [r4, 0x18] adds r0, r2 ldrb r1, [r3] ldrb r0, [r0] adds r0, r1, r0 strb r0, [r3] b _080B02EE _080B0244: ldr r0, [r4, 0x18] adds r0, r2 ldrb r1, [r3] ldrb r0, [r0] subs r0, r1, r0 strb r0, [r3] b _080B02EE _080B0252: ldrb r3, [r3] cmp r3, r2 beq _080B02D4 b _080B02E8 _080B025A: ldrb r3, [r3] cmp r3, r2 bne _080B02D4 b _080B02E8 _080B0262: ldrb r3, [r3] cmp r3, r2 bhi _080B02D4 b _080B02E8 _080B026A: ldrb r3, [r3] cmp r3, r2 bcs _080B02D4 b _080B02E8 _080B0272: ldrb r3, [r3] cmp r3, r2 bls _080B02D4 b _080B02E8 _080B027A: ldrb r3, [r3] cmp r3, r2 bcc _080B02D4 b _080B02E8 _080B0282: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 beq _080B02D4 b _080B02E8 _080B0290: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bne _080B02D4 b _080B02E8 _080B029E: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bhi _080B02D4 b _080B02E8 _080B02AC: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bcs _080B02D4 b _080B02E8 _080B02BA: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bls _080B02D4 b _080B02E8 _080B02C8: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bcs _080B02E8 _080B02D4: ldr r0, _080B02E4 ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl _call_via_r2 b _080B02EE .align 2, 0 _080B02E4: .4byte gUnknown_203AE84 _080B02E8: ldr r0, [r6, 0x40] adds r0, 0x4 str r0, [r6, 0x40] _080B02EE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B019C thumb_func_start sub_80B02F4 sub_80B02F4: push {lr} ldr r2, [r1, 0x40] ldrb r3, [r2] adds r2, 0x1 str r2, [r1, 0x40] ldr r2, _080B0310 lsls r3, 2 adds r3, r2 ldr r2, [r3] bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _080B0310: .4byte gUnknown_826FC34 thumb_func_end sub_80B02F4 thumb_func_start sub_80B0314 sub_80B0314: push {lr} ldr r2, _080B0324 ldr r2, [r2] bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _080B0324: .4byte gUnknown_203AE80 thumb_func_end sub_80B0314 thumb_func_start sub_80B0328 sub_80B0328: push {r4,lr} ldr r2, [r1, 0x40] ldr r0, _080B0360 ands r4, r0 ldrb r0, [r2] orrs r4, r0 ldrb r0, [r2, 0x1] lsls r3, r0, 8 ldr r0, _080B0364 ands r4, r0 orrs r4, r3 ldrb r0, [r2, 0x2] lsls r3, r0, 16 ldr r0, _080B0368 ands r4, r0 orrs r4, r3 ldrb r0, [r2, 0x3] lsls r3, r0, 24 ldr r0, _080B036C ands r4, r0 orrs r4, r3 str r4, [r1, 0x28] adds r2, 0x4 str r2, [r1, 0x40] pop {r4} pop {r0} bx r0 .align 2, 0 _080B0360: .4byte 0xffffff00 _080B0364: .4byte 0xffff00ff _080B0368: .4byte 0xff00ffff _080B036C: .4byte 0x00ffffff thumb_func_end sub_80B0328 thumb_func_start sub_80B0370 sub_80B0370: ldr r0, [r1, 0x40] ldrb r2, [r0] adds r0, r1, 0 adds r0, 0x24 strb r2, [r0] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end sub_80B0370 thumb_func_start sub_80B0384 sub_80B0384: ldr r0, [r1, 0x40] ldrb r2, [r0] adds r0, r1, 0 adds r0, 0x2C strb r2, [r0] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end sub_80B0384 thumb_func_start sub_80B0398 sub_80B0398: ldr r0, [r1, 0x40] ldrb r0, [r0] adds r2, r1, 0 adds r2, 0x2D strb r0, [r2] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end sub_80B0398 thumb_func_start sub_80B03AC sub_80B03AC: ldr r0, [r1, 0x40] ldrb r0, [r0] adds r2, r1, 0 adds r2, 0x2E strb r0, [r2] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end sub_80B03AC thumb_func_start sub_80B03C0 sub_80B03C0: ldr r0, [r1, 0x40] ldrb r0, [r0] adds r2, r1, 0 adds r2, 0x2F strb r0, [r2] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end sub_80B03C0 thumb_func_start sub_80B03D4 sub_80B03D4: ldr r0, [r1, 0x40] ldrb r2, [r0] strb r2, [r1, 0x1E] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end sub_80B03D4 thumb_func_start sub_80B03E0 sub_80B03E0: ldr r0, [r1, 0x40] ldrb r2, [r0] strb r2, [r1, 0x1F] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end sub_80B03E0 thumb_func_start sub_80B03EC sub_80B03EC: ldr r0, [r1, 0x40] ldrb r0, [r0] adds r2, r1, 0 adds r2, 0x26 strb r0, [r2] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end sub_80B03EC thumb_func_start ply_xswee ply_xswee: ldr r0, [r1, 0x40] ldrb r0, [r0] adds r2, r1, 0 adds r2, 0x27 strb r0, [r2] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end ply_xswee thumb_func_start nullsub_139 nullsub_139: bx lr thumb_func_end nullsub_139 .align 2, 0 @ Don't pad with nop.